diff options
63 files changed, 82557 insertions, 82538 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 58a1c8cf..bf06adbd 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -154,6 +154,8 @@ SECTIONS { unk_0201137C.o (.text) unk_02011744.o (.text) unk_02012CC8.o (.text) + unk_02013724.o (.text) + unk_020139D8.o (.text) script.o (.text) unk_02038C78.o (.text) scrcmd.o (.text) diff --git a/arm9/asm/libc.s b/arm9/asm/libc.s index 0627aa20..d45dbaec 100644 --- a/arm9/asm/libc.s +++ b/arm9/asm/libc.s @@ -1463,8 +1463,8 @@ _020DF490: bne _020DF490 bx lr - arm_func_start Call_FillMemWithValue -Call_FillMemWithValue: ; 0x020DF4A4 + arm_func_start memset +memset: ; 0x020DF4A4 stmdb sp!, {r4,lr} mov r4, r0 bl __fill_mem diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index dfda1697..265769e5 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -8810,7 +8810,7 @@ FUN_0203DFA8: ; 0x0203DFA8 ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -8835,7 +8835,7 @@ FUN_0203DFE0: ; 0x0203DFE0 ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -9763,7 +9763,7 @@ FUN_0203E774: ; 0x0203E774 add r0, r7, #0x0
bl FUN_020244A4
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0x0
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11057,7 +11057,7 @@ _0203F1E0: mov r0, #0x0
pop {r4-r7, pc}
_0203F1F8:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
bl _s32_div_f
mov r4, #0x0
@@ -11483,7 +11483,7 @@ _0203F54C: lsl r7, r7, #0x2
b _0203F582
_0203F556:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x19
@@ -11491,7 +11491,7 @@ _0203F556: ldr r7, _0203F5CC ; =0x0000010D
b _0203F582
_0203F568:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x6
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11898,7 +11898,7 @@ FUN_0203F880: ; 0x0203F880 bls _0203F8A2
mov r4, #0x64
_0203F8A2:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x65
bl _s32_div_f
lsl r0, r1, #0x10
@@ -16502,7 +16502,7 @@ _02041DCE: mov r1, #0x0
mov r2, #0x2
bl FUN_02028810
- bl FUN_0201BA60
+ bl rand_MT
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -18699,7 +18699,7 @@ FUN_02042F6C: ; 0x02042F6C bl FUN_020671BC
add r6, r0, #0x0
bl OS_GetTick
- bl FUN_0201BA10
+ bl rand_ALT
add r1, r0, #0x0
ldr r0, [sp, #0x14]
str r1, [sp, #0x34]
@@ -18713,7 +18713,7 @@ FUN_02042F6C: ; 0x02042F6C beq _02042FE8
_02042FD0:
ldr r0, [sp, #0x34]
- bl FUN_0201BA10
+ bl rand_ALT
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
@@ -18774,7 +18774,7 @@ _02042FE8: add r0, r0, r1
str r0, [sp, #0x30]
bne _020430DA
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -18801,7 +18801,7 @@ _02042FE8: mov r1, #0x48
add r2, sp, #0x34
bl FUN_02067830
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -20912,7 +20912,7 @@ FUN_02044198: ; 0x02044198 ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
lsl r0, r1, #0x10
diff --git a/arm9/asm/unk_02003B98.s b/arm9/asm/unk_02003B98.s index ff9003d1..8b13d499 100644 --- a/arm9/asm/unk_02003B98.s +++ b/arm9/asm/unk_02003B98.s @@ -634,7 +634,7 @@ FUN_02004064: ; 0x02004064 ldr r2, _02004080 ; =0x000BCD60 mov r1, #0x0 add r4, r0, #0x0 - bl Call_FillMemWithValue + bl memset ldr r0, _02004084 ; =0x000BCD1C mov r1, #0x0 _02004074: diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s index 92efef87..70c2420e 100644 --- a/arm9/asm/unk_020040F4.s +++ b/arm9/asm/unk_020040F4.s @@ -1394,7 +1394,7 @@ _02004B80: _02004B9C: mov r1, #0x0 add r2, r6, #0x0 - bl Call_FillMemWithValue + bl memset ldr r0, [r7, #0x0] ldr r1, [r4, #0x0] lsl r0, r0, #0x8 diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s index 0dc1c0e6..be1f5c15 100644 --- a/arm9/asm/unk_02005CFC.s +++ b/arm9/asm/unk_02005CFC.s @@ -70,7 +70,7 @@ _02005D70: bl FUN_02005DFC mov r0, #0xe bl FUN_02004984 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x13 sub r1, r1, r2 diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s index c33f29be..1af19f20 100644 --- a/arm9/asm/unk_020061E8.s +++ b/arm9/asm/unk_020061E8.s @@ -19,7 +19,7 @@ FUN_020061E8: ; 0x020061E8 _02006202: mov r1, #0x0 add r2, r5, #0x0 - bl Call_FillMemWithValue + bl memset b _0200620E _0200620C: mov r4, #0x0 diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index 0d67adc9..402bb494 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -26,7 +26,7 @@ FUN_02008DEC: ; 0x02008DEC mov r1, #0x0 add r2, r7, #0x0 str r0, [r4, #0x4] - bl Call_FillMemWithValue + bl memset str r5, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0xc] diff --git a/arm9/asm/unk_0200E1D0.s b/arm9/asm/unk_0200E1D0.s index e89f4c33..d25e4428 100644 --- a/arm9/asm/unk_0200E1D0.s +++ b/arm9/asm/unk_0200E1D0.s @@ -857,12 +857,12 @@ _0200E812: add r0, #0x14 mov r1, #0x0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r0, r4, #0x0 add r0, #0x44 mov r1, #0x0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r2, r4, #0x0 add r2, #0x74 mov r1, #0x18 @@ -876,5 +876,5 @@ _0200E83A: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xc0 - bl Call_FillMemWithValue + bl memset pop {r4, pc} diff --git a/arm9/asm/unk_0200E850.s b/arm9/asm/unk_0200E850.s index 3c5e5299..32b61453 100644 --- a/arm9/asm/unk_0200E850.s +++ b/arm9/asm/unk_0200E850.s @@ -1939,7 +1939,7 @@ FUN_0200F6FC: ; 0x0200F6FC lsl r2, r2, #0x2 add r5, r0, #0x0 add r7, r3, #0x0 - bl Call_FillMemWithValue + bl memset cmp r4, #0x1 bne _0200F726 mov r0, #0x6 @@ -4248,7 +4248,7 @@ FUN_02010894: ; 0x02010894 lsl r2, r2, #0x8 add r0, r0, r2 mov r1, #0x0 - bl Call_FillMemWithValue + bl memset ldr r0, [r6, #0x10] sub r4, r0, #0x1 bmi _020108C6 @@ -4350,7 +4350,7 @@ FUN_02010948: ; 0x02010948 str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] @@ -4763,7 +4763,7 @@ FUN_02010C7C: ; 0x02010C7C str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] @@ -5108,7 +5108,7 @@ FUN_02010F2C: ; 0x02010F2C str r0, [r5, #0x14] mov r1, #0x0 lsl r2, r2, #0x2 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] @@ -5200,23 +5200,23 @@ FUN_02010FD0: ; 0x02010FD0 add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xc0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x1 mov r2, #0xc0 - bl Call_FillMemWithValue + bl memset b _02011020 _0201100A: add r0, r5, #0x0 mov r1, #0x0 mov r2, #0xc0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x0 mov r2, #0xc0 - bl Call_FillMemWithValue + bl memset _02011020: mov r1, #0xc3 lsl r1, r1, #0x2 @@ -5447,7 +5447,7 @@ FUN_020111AC: ; 0x020111AC mov r1, #0x0 lsl r2, r2, #0x2 str r0, [r5, #0x14] - bl Call_FillMemWithValue + bl memset add r1, r4, #0x0 add r1, #0x23 ldrb r1, [r1, #0x0] diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index fa1d06fb..18739e2f 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -57,7 +57,7 @@ _020117A4: str r1, [r0, #0x64] ldr r0, [r0, #0x60] mov r1, #0x0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x8] add sp, #0xc pop {r4-r7, pc} @@ -2591,7 +2591,7 @@ FUN_02012A00: ; 0x02012A00 ldr r2, _02012A2C ; =0x0000079C mov r1, #0x0 add r4, r0, #0x0 - bl Call_FillMemWithValue + bl memset mov r2, #0x3 lsl r2, r2, #0x8 add r0, r5, #0x0 @@ -2697,7 +2697,7 @@ _02012ACE: mov r2, #0x3 ldr r1, [r4, r1] lsl r2, r2, #0x8 - bl Call_FillMemWithValue + bl memset _02012AF4: pop {r4, pc} nop diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index 74f0d331..81a2a18b 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -52,7 +52,7 @@ _02012D14: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xdc - bl Call_FillMemWithValue + bl memset add r2, r4, #0x0 ldr r0, [sp, #0x8] str r7, [r4, #0x18] @@ -80,7 +80,7 @@ _02012D14: str r0, [r2, #0x0] ldr r2, [sp, #0xc] add r0, r6, #0x0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0xc] str r6, [r4, #0xc] str r6, [r4, #0x10] @@ -1519,81668 +1519,3 @@ FUN_020136F8: ; 0x020136F8 bl FUN_02019548 add sp, #0x10 pop {r4-r6, pc} - - thumb_func_start FUN_02013724 -FUN_02013724: ; 0x02013724 - ldr r1, _02013738 ; =0x0000FFFF - mov r2, #0x0 - strh r1, [r0, #0x0] -_0201372A: - add r2, r2, #0x1 - strh r1, [r0, #0x4] - add r0, r0, #0x2 - cmp r2, #0x2 - blt _0201372A - bx lr - nop -_02013738: .word 0x0000FFFF - - thumb_func_start FUN_0201373C -FUN_0201373C: ; 0x0201373C - strh r1, [r0, #0x0] - mov r2, #0x0 - ldr r1, _02013750 ; =0x0000FFFF - strh r2, [r0, #0x2] -_02013744: - add r2, r2, #0x1 - strh r1, [r0, #0x4] - add r0, r0, #0x2 - cmp r2, #0x2 - blt _02013744 - bx lr - .balign 4 -_02013750: .word 0x0000FFFF - - thumb_func_start FUN_02013754 -FUN_02013754: ; 0x02013754 - push {r4, lr} - mov r1, #0x4 - add r4, r0, #0x0 - bl FUN_0201373C - mov r0, #0x5 - strh r0, [r4, #0x2] - pop {r4, pc} - - thumb_func_start FUN_02013764 -FUN_02013764: ; 0x02013764 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - cmp r6, #0x4 - blo _02013772 - bl ErrorHandling -_02013772: - cmp r6, #0x4 - bhs _020137B8 - mov r0, #0xa - add r4, r6, #0x0 - mul r4, r0 - ldr r1, _020137BC ; =0x020ED556 - add r0, r5, #0x0 - ldrb r1, [r1, r4] - bl FUN_0201373C - ldr r0, _020137C0 ; =0x020ED557 - mov r1, #0x0 - ldrb r0, [r0, r4] - mvn r1, r1 - strh r0, [r5, #0x2] - ldr r0, _020137C4 ; =0x020ED558 - ldrsh r0, [r0, r4] - cmp r0, r1 - beq _020137A2 - ldr r1, _020137C8 ; =0x020ED55A - ldrh r1, [r1, r4] - bl FUN_02013A9C - strh r0, [r5, #0x4] -_020137A2: - ldr r0, _020137CC ; =0x020ED55C - mov r1, #0x0 - ldrsh r0, [r0, r4] - mvn r1, r1 - cmp r0, r1 - beq _020137B8 - ldr r1, _020137D0 ; =0x020ED55E - ldrh r1, [r1, r4] - bl FUN_02013A9C - strh r0, [r5, #0x6] -_020137B8: - pop {r4-r6, pc} - nop -_020137BC: .word 0x020ED556 -_020137C0: .word 0x020ED557 -_020137C4: .word 0x020ED558 -_020137C8: .word 0x020ED55A -_020137CC: .word 0x020ED55C -_020137D0: .word 0x020ED55E - - thumb_func_start FUN_020137D4 -FUN_020137D4: ; 0x020137D4 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - add r0, r1, #0x0 - str r1, [sp, #0x4] - bl FUN_0200AA80 - ldr r5, [sp, #0x0] - ldr r7, _02013838 ; =0x0000FFFF - add r6, r0, #0x0 - mov r4, #0x0 -_020137EA: - ldrh r2, [r5, #0x4] - cmp r2, r7 - beq _02013800 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0200B518 - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, #0x2 - blt _020137EA -_02013800: - ldr r2, [sp, #0x0] - mov r0, #0x1 - ldrh r2, [r2, #0x0] - mov r1, #0x1a - lsl r3, r2, #0x1 - ldr r2, _0201383C ; =0x020ED54C - ldrh r2, [r2, r3] - ldr r3, [sp, #0x4] - bl FUN_0200A86C - add r5, r0, #0x0 - ldr r2, [sp, #0x0] - ldr r3, [sp, #0x4] - ldrh r2, [r2, #0x2] - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0200A9C4 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0200A8B8 - add r0, r6, #0x0 - bl FUN_0200AB18 - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02013838: .word 0x0000FFFF -_0201383C: .word 0x020ED54C - - thumb_func_start FUN_02013840 -FUN_02013840: ; 0x02013840 - push {r4, lr} - add r4, r0, #0x0 - add r3, r1, #0x0 - ldrh r1, [r4, #0x0] - mov r0, #0x1a - lsl r2, r1, #0x1 - ldr r1, _02013858 ; =0x020ED54C - ldrh r1, [r1, r2] - ldrh r2, [r4, #0x2] - bl FUN_0200A738 - pop {r4, pc} - .balign 4 -_02013858: .word 0x020ED54C - - thumb_func_start FUN_0201385C -FUN_0201385C: ; 0x0201385C - ldrh r1, [r0, #0x0] - ldr r0, _0201386C ; =0x0000FFFF - cmp r1, r0 - beq _02013868 - mov r0, #0x1 - bx lr -_02013868: - mov r0, #0x0 - bx lr - .balign 4 -_0201386C: .word 0x0000FFFF - - thumb_func_start FUN_02013870 -FUN_02013870: ; 0x02013870 - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x0] - ldrh r1, [r4, #0x2] - bl FUN_020138A0 - mov r3, #0x0 - cmp r0, #0x0 - bls _02013896 - ldr r1, _0201389C ; =0x0000FFFF -_02013884: - ldrh r2, [r4, #0x4] - cmp r2, r1 - bne _0201388E - mov r0, #0x0 - pop {r4, pc} -_0201388E: - add r3, r3, #0x1 - add r4, r4, #0x2 - cmp r3, r0 - blo _02013884 -_02013896: - mov r0, #0x1 - pop {r4, pc} - nop -_0201389C: .word 0x0000FFFF - - thumb_func_start FUN_020138A0 -FUN_020138A0: ; 0x020138A0 - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x5 - blo _020138AE - bl ErrorHandling -_020138AE: - add r0, r5, #0x0 - bl FUN_02013974 - cmp r4, r0 - blo _020138BC - bl ErrorHandling -_020138BC: - ldr r1, _02013910 ; =0x020ED54C - lsl r2, r5, #0x1 - ldrh r1, [r1, r2] - mov r0, #0x1a - add r2, r4, #0x0 - mov r3, #0x0 - bl FUN_0200A738 - str r0, [sp, #0x0] - bl FUN_02021F2C - add r4, r0, #0x0 - ldrh r1, [r4, #0x0] - ldr r0, _02013914 ; =0x0000FFFF - mov r5, #0x0 - cmp r1, r0 - beq _02013904 - add r7, r0, #0x0 - sub r6, r0, #0x1 -_020138E2: - cmp r1, r6 - bne _020138FC - add r0, r4, #0x0 - bl FUN_0201B8F8 - cmp r0, #0x0 - beq _020138F2 - add r5, r5, #0x1 -_020138F2: - add r0, r4, #0x0 - bl FUN_0201B8B8 - add r4, r0, #0x0 - b _020138FE -_020138FC: - add r4, r4, #0x2 -_020138FE: - ldrh r1, [r4, #0x0] - cmp r1, r7 - bne _020138E2 -_02013904: - ldr r0, [sp, #0x0] - bl FUN_02021A20 - add r0, r5, #0x0 - pop {r3-r7, pc} - nop -_02013910: .word 0x020ED54C -_02013914: .word 0x0000FFFF - - thumb_func_start FUN_02013918 -FUN_02013918: ; 0x02013918 - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_02013920 -FUN_02013920: ; 0x02013920 - ldrh r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02013924 -FUN_02013924: ; 0x02013924 - ldrh r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02013928 -FUN_02013928: ; 0x02013928 - push {r3-r4} - ldrh r3, [r0, #0x0] - ldrh r2, [r1, #0x0] - cmp r3, r2 - bne _0201393A - ldrh r3, [r0, #0x2] - ldrh r2, [r1, #0x2] - cmp r3, r2 - beq _02013940 -_0201393A: - mov r0, #0x0 - pop {r3-r4} - bx lr -_02013940: - mov r4, #0x0 -_02013942: - ldrh r3, [r0, #0x4] - ldrh r2, [r1, #0x4] - cmp r3, r2 - beq _02013950 - mov r0, #0x0 - pop {r3-r4} - bx lr -_02013950: - add r4, r4, #0x1 - add r1, r1, #0x2 - add r0, r0, #0x2 - cmp r4, #0x2 - blt _02013942 - mov r0, #0x1 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02013960 -FUN_02013960: ; 0x02013960 - ldrh r2, [r1, #0x0] - strh r2, [r0, #0x0] - ldrh r2, [r1, #0x2] - strh r2, [r0, #0x2] - ldrh r2, [r1, #0x4] - strh r2, [r0, #0x4] - ldrh r1, [r1, #0x6] - strh r1, [r0, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_02013974 -FUN_02013974: ; 0x02013974 - cmp r0, #0x5 - bhs _0201397C - mov r0, #0x14 - bx lr -_0201397C: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02013980 -FUN_02013980: ; 0x02013980 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x5 - blo _02013990 - bl ErrorHandling -_02013990: - strh r4, [r5, #0x0] - strh r6, [r5, #0x2] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02013998 -FUN_02013998: ; 0x02013998 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x2 - blo _020139A8 - bl ErrorHandling -_020139A8: - lsl r0, r4, #0x1 - add r0, r5, r0 - strh r6, [r0, #0x4] - pop {r4-r6, pc} - - thumb_func_start FUN_020139B0 -FUN_020139B0: ; 0x020139B0 - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x0] - ldrh r1, [r4, #0x2] - bl FUN_020138A0 - cmp r0, #0x2 - bhs _020139D0 - lsl r1, r0, #0x1 - add r2, r4, r1 - ldr r1, _020139D4 ; =0x0000FFFF -_020139C6: - add r0, r0, #0x1 - strh r1, [r2, #0x4] - add r2, r2, #0x2 - cmp r0, #0x2 - blo _020139C6 -_020139D0: - pop {r4, pc} - nop -_020139D4: .word 0x0000FFFF - - thumb_func_start FUN_020139D8 -FUN_020139D8: ; 0x020139D8 - push {r3-r7, lr} - mov r1, #0x30 - add r6, r0, #0x0 - bl FUN_02016998 - ldr r4, _02013A0C ; =0x020ED5C0 - str r0, [sp, #0x0] - mov r7, #0x0 - add r5, r0, #0x0 -_020139EA: - ldr r0, [sp, #0x0] - mov r1, #0x1a - str r6, [r0, #0x0] - ldrh r2, [r4, #0x0] - mov r0, #0x1 - add r3, r6, #0x0 - bl FUN_0200A86C - str r0, [r5, #0x4] - add r7, r7, #0x1 - add r4, r4, #0x2 - add r5, r5, #0x4 - cmp r7, #0xb - blt _020139EA - ldr r0, [sp, #0x0] - pop {r3-r7, pc} - nop -_02013A0C: .word 0x020ED5C0 - - thumb_func_start FUN_02013A10 -FUN_02013A10: ; 0x02013A10 - push {r4-r6, lr} - add r6, r0, #0x0 - mov r4, #0x0 - add r5, r6, #0x0 -_02013A18: - ldr r0, [r5, #0x4] - bl FUN_0200A8B8 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0xb - blt _02013A18 - add r0, r6, #0x0 - bl FUN_02016A18 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02013A30 -FUN_02013A30: ; 0x02013A30 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r2, #0x0 - add r0, r1, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - bl FUN_02013AEC - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x0] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x4] - add r2, r4, #0x0 - bl FUN_0200A8E0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02013A58 -FUN_02013A58: ; 0x02013A58 - push {r3-r4, lr} - sub sp, #0xc - add r4, r1, #0x0 - ldr r1, _02013A94 ; =0x0000FFFF - cmp r0, r1 - beq _02013A88 - add r1, sp, #0x8 - add r2, sp, #0x4 - bl FUN_02013AEC - ldr r0, [sp, #0x8] - mov r3, #0x0 - lsl r1, r0, #0x1 - ldr r0, _02013A98 ; =0x020ED5C0 - ldrh r0, [r0, r1] - str r0, [sp, #0x8] - str r4, [sp, #0x0] - ldr r1, [sp, #0x8] - ldr r2, [sp, #0x4] - mov r0, #0x1a - bl FUN_0200A648 - add sp, #0xc - pop {r3-r4, pc} -_02013A88: - add r0, r4, #0x0 - bl FUN_02021A4C - add sp, #0xc - pop {r3-r4, pc} - nop -_02013A94: .word 0x0000FFFF -_02013A98: .word 0x020ED5C0 - - thumb_func_start FUN_02013A9C -FUN_02013A9C: ; 0x02013A9C - push {r4-r5} - ldr r4, _02013AE0 ; =0x020ED5C0 - mov r2, #0x0 -_02013AA2: - ldrh r3, [r4, #0x0] - cmp r0, r3 - bne _02013AD0 - mov r4, #0x0 - add r3, r4, #0x0 - cmp r2, #0x0 - bls _02013AC6 - ldr r0, _02013AE4 ; =0x020ED5D6 -_02013AB2: - lsl r5, r4, #0x1 - ldrh r5, [r0, r5] - add r4, r4, #0x1 - lsl r4, r4, #0x10 - add r3, r3, r5 - lsl r3, r3, #0x10 - lsr r4, r4, #0x10 - lsr r3, r3, #0x10 - cmp r4, r2 - blo _02013AB2 -_02013AC6: - add r0, r3, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4-r5} - bx lr -_02013AD0: - add r2, r2, #0x1 - add r4, r4, #0x2 - cmp r2, #0xb - blo _02013AA2 - ldr r0, _02013AE8 ; =0x0000FFFF - pop {r4-r5} - bx lr - nop -_02013AE0: .word 0x020ED5C0 -_02013AE4: .word 0x020ED5D6 -_02013AE8: .word 0x0000FFFF - - thumb_func_start FUN_02013AEC -FUN_02013AEC: ; 0x02013AEC - push {r3-r6} - ldr r3, _02013B20 ; =0x00000FFF - ldr r6, _02013B24 ; =0x020ED5D6 - and r3, r0 - mov r0, #0x0 - add r5, r0, #0x0 -_02013AF8: - ldrh r4, [r6, #0x0] - add r0, r0, r4 - cmp r3, r0 - bhs _02013B12 - str r5, [r1, #0x0] - ldr r1, _02013B24 ; =0x020ED5D6 - lsl r4, r5, #0x1 - ldrh r1, [r1, r4] - sub r0, r0, r1 - sub r0, r3, r0 - str r0, [r2, #0x0] - pop {r3-r6} - bx lr -_02013B12: - add r5, r5, #0x1 - add r6, r6, #0x2 - cmp r5, #0xb - blo _02013AF8 - pop {r3-r6} - bx lr - nop -_02013B20: .word 0x00000FFF -_02013B24: .word 0x020ED5D6 - - thumb_func_start FUN_02013B28 -FUN_02013B28: ; 0x02013B28 - mov r0, #0x8 - bx lr - - thumb_func_start FUN_02013B2C -FUN_02013B2C: ; 0x02013B2C - push {r3, lr} - mov r2, #0x0 - str r2, [r0, #0x0] - ldr r3, _02013B54 ; =0x020ED5B4 - str r2, [r0, #0x4] -_02013B36: - ldrb r1, [r3, #0x0] - cmp r1, #0x2 - bne _02013B48 - ldr r1, _02013B58 ; =0x020ED5B5 - lsl r2, r2, #0x1 - ldrb r1, [r1, r2] - bl FUN_02013C18 - pop {r3, pc} -_02013B48: - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, #0x6 - blo _02013B36 - pop {r3, pc} - nop -_02013B54: .word 0x020ED5B4 -_02013B58: .word 0x020ED5B5 - - thumb_func_start FUN_02013B5C -FUN_02013B5C: ; 0x02013B5C - ldr r3, _02013B64 ; =FUN_02022610 - mov r1, #0x22 - bx r3 - nop -_02013B64: .word FUN_02022610 - - thumb_func_start FUN_02013B68 -FUN_02013B68: ; 0x02013B68 - ldr r0, [r0, #0x4] - add r2, r0, #0x0 - lsr r2, r1 - mov r0, #0x1 - and r0, r2 - bx lr - - thumb_func_start FUN_02013B74 -FUN_02013B74: ; 0x02013B74 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r2, #0x0 - ldr r3, [r5, #0x4] - add r4, r2, #0x0 - mov r0, #0x1 -_02013B80: - add r1, r3, #0x0 - lsr r1, r2 - tst r1, r0 - bne _02013B8A - add r4, r4, #0x1 -_02013B8A: - add r2, r2, #0x1 - cmp r2, #0x20 - blo _02013B80 - cmp r4, #0x0 - beq _02013BC4 - bl FUN_0201B9EC - add r1, r4, #0x0 - bl _u32_div_f - ldr r4, [r5, #0x4] - mov r0, #0x0 - mov r2, #0x1 -_02013BA4: - add r3, r4, #0x0 - lsr r3, r0 - tst r3, r2 - bne _02013BBE - cmp r1, #0x0 - bne _02013BBC - mov r1, #0x1 - ldr r2, [r5, #0x4] - lsl r1, r0 - orr r1, r2 - str r1, [r5, #0x4] - pop {r3-r5, pc} -_02013BBC: - sub r1, r1, #0x1 -_02013BBE: - add r0, r0, #0x1 - cmp r0, #0x20 - blo _02013BA4 -_02013BC4: - mov r0, #0x20 - pop {r3-r5, pc} - - thumb_func_start FUN_02013BC8 -FUN_02013BC8: ; 0x02013BC8 - ldr r3, [r0, #0x4] - mov r2, #0x0 - mov r0, #0x1 -_02013BCE: - add r1, r3, #0x0 - lsr r1, r2 - tst r1, r0 - bne _02013BDA - mov r0, #0x0 - bx lr -_02013BDA: - add r2, r2, #0x1 - cmp r2, #0x20 - blo _02013BCE - mov r0, #0x1 - bx lr - - thumb_func_start FUN_02013BE4 -FUN_02013BE4: ; 0x02013BE4 - push {r3-r4} - mov r3, #0x0 - ldr r4, _02013C08 ; =0x020ED5D6 - add r2, r3, #0x0 -_02013BEC: - ldrh r1, [r4, #0x0] - add r2, r2, #0x1 - add r4, r4, #0x2 - add r1, r3, r1 - lsl r1, r1, #0x10 - lsr r3, r1, #0x10 - cmp r2, #0x9 - blt _02013BEC - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r3-r4} - bx lr - nop -_02013C08: .word 0x020ED5D6 - - thumb_func_start FUN_02013C0C -FUN_02013C0C: ; 0x02013C0C - ldr r0, [r0, #0x0] - add r2, r0, #0x0 - lsr r2, r1 - mov r0, #0x1 - and r0, r2 - bx lr - - thumb_func_start FUN_02013C18 -FUN_02013C18: ; 0x02013C18 - mov r2, #0x1 - ldr r3, [r0, #0x0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02013C28 -FUN_02013C28: ; 0x02013C28 - push {r4-r7} - mov r3, #0x0 - ldr r5, _02013C64 ; =0x020ED5EC - add r2, r3, #0x0 -_02013C30: - ldr r7, [r5, #0x4] - add r4, r2, #0x0 - cmp r7, #0x0 - ble _02013C54 - ldr r6, [r5, #0x0] -_02013C3A: - ldrh r1, [r6, #0x0] - cmp r0, r1 - bne _02013C4C - ldr r0, _02013C68 ; =0x020ED5F0 - lsl r1, r3, #0x3 - ldr r0, [r0, r1] - sub r0, r0, #0x1 - pop {r4-r7} - bx lr -_02013C4C: - add r4, r4, #0x1 - add r6, r6, #0x2 - cmp r4, r7 - blt _02013C3A -_02013C54: - add r3, r3, #0x1 - add r5, #0x8 - cmp r3, #0xc - blo _02013C30 - mov r0, #0x0 - pop {r4-r7} - bx lr - nop -_02013C64: .word 0x020ED5EC -_02013C68: .word 0x020ED5F0 - - thumb_func_start FUN_02013C6C -FUN_02013C6C: ; 0x02013C6C - push {r3-r7, lr} - ldr r3, _02013CC8 ; =0x020ED5EC - add r6, r1, #0x0 - mov r7, #0x0 -_02013C74: - ldr r5, [r3, #0x4] - mov r2, #0x0 - cmp r5, #0x0 - ble _02013CBC - ldr r4, [r3, #0x0] -_02013C7E: - ldrh r1, [r4, #0x0] - cmp r0, r1 - bne _02013CB4 - ldr r2, _02013CCC ; =0x020ED5F0 - lsl r1, r7, #0x3 - ldr r2, [r2, r1] - mov r0, #0x0 - cmp r2, #0x0 - beq _02013CAC - ldr r2, _02013CC8 ; =0x020ED5EC - add r2, r2, r1 - ldr r2, [r2, #0x4] -_02013C96: - cmp r6, #0x0 - bne _02013CA4 - ldr r2, _02013CC8 ; =0x020ED5EC - lsl r0, r0, #0x1 - ldr r1, [r2, r1] - ldrh r0, [r1, r0] - pop {r3-r7, pc} -_02013CA4: - sub r6, r6, #0x1 - add r0, r0, #0x1 - cmp r2, #0x0 - bne _02013C96 -_02013CAC: - bl ErrorHandling - ldr r0, _02013CD0 ; =0x0000FFFF - pop {r3-r7, pc} -_02013CB4: - add r2, r2, #0x1 - add r4, r4, #0x2 - cmp r2, r5 - blt _02013C7E -_02013CBC: - add r7, r7, #0x1 - add r3, #0x8 - cmp r7, #0xc - blo _02013C74 - pop {r3-r7, pc} - nop -_02013CC8: .word 0x020ED5EC -_02013CCC: .word 0x020ED5F0 -_02013CD0: .word 0x0000FFFF - - thumb_func_start FUN_02013CD4 -FUN_02013CD4: ; 0x02013CD4 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - mov r1, #0x18 - bl FUN_02016998 - add r4, r0, #0x0 - bne _02013CE8 - bl ErrorHandling -_02013CE8: - ldr r0, [r5, #0x0] - ldr r1, [r5, #0xc] - bl FUN_02013F68 - str r0, [r4, #0x0] - ldr r0, [r5, #0x0] - str r0, [r4, #0x4] - ldr r0, [r5, #0x4] - ldr r1, [r5, #0xc] - bl FUN_02013F98 - str r0, [r4, #0x8] - ldr r0, [r5, #0x4] - str r0, [r4, #0xc] - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - bl FUN_02013FC8 - str r0, [r4, #0x10] - ldr r0, [r5, #0x8] - str r0, [r4, #0x14] - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02013D18 -FUN_02013D18: ; 0x02013D18 - push {r4, lr} - add r4, r0, #0x0 - bne _02013D22 - bl ErrorHandling -_02013D22: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02013D2C - bl ErrorHandling -_02013D2C: - ldr r0, [r4, #0x8] - cmp r0, #0x0 - bne _02013D36 - bl ErrorHandling -_02013D36: - ldr r0, [r4, #0x10] - cmp r0, #0x0 - bne _02013D40 - bl ErrorHandling -_02013D40: - ldr r0, [r4, #0x0] - bl FUN_02016A18 - ldr r0, [r4, #0x8] - bl FUN_02016A18 - ldr r0, [r4, #0x10] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02013D5C -FUN_02013D5C: ; 0x02013D5C - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _02013D90 ; =0x04000444 - mov r6, #0x0 - str r6, [r0, #0x0] - ldr r0, [r5, #0x4] - cmp r0, #0x0 - ble _02013D86 - add r4, r6, #0x0 -_02013D6E: - ldr r0, [r5, #0x0] - add r0, r0, r4 - ldr r1, [r0, #0x20] - cmp r1, #0x0 - beq _02013D7C - bl FUN_020140D8 -_02013D7C: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, #0x40 - cmp r6, r0 - blt _02013D6E -_02013D86: - ldr r0, _02013D94 ; =0x04000448 - mov r1, #0x1 - str r1, [r0, #0x0] - pop {r4-r6, pc} - nop -_02013D90: .word 0x04000444 -_02013D94: .word 0x04000448 - - thumb_func_start FUN_02013D98 -FUN_02013D98: ; 0x02013D98 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - bl FUN_02014024 - add r4, r0, #0x0 - bne _02013DAA - bl ErrorHandling -_02013DAA: - ldr r0, [r5, #0x4] - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _02013DB6 - bl ErrorHandling -_02013DB6: - ldr r0, [r5, #0x4] - bl FUN_0201407C - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _02013DC6 - bl ErrorHandling -_02013DC6: - ldr r0, [r5, #0x4] - ldr r1, [r4, #0x0] - add r2, r4, #0x4 - bl FUN_020140A4 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02013DD4 -FUN_02013DD4: ; 0x02013DD4 - push {r4, lr} - ldr r1, _02013DE8 ; =0x021064BC - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - blx r1 - add r0, r4, #0x0 - bl FUN_02013F50 - pop {r4, pc} - .balign 4 -_02013DE8: .word 0x021064BC - - thumb_func_start FUN_02013DEC -FUN_02013DEC: ; 0x02013DEC - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - mov r6, #0x0 - cmp r0, #0x0 - ble _02013E12 - add r4, r6, #0x0 -_02013DFA: - ldr r1, [r5, #0x8] - ldr r0, [r1, r4] - cmp r0, #0x0 - beq _02013E08 - add r0, r1, r4 - bl FUN_02013DD4 -_02013E08: - ldr r0, [r5, #0xc] - add r6, r6, #0x1 - add r4, #0x28 - cmp r6, r0 - blt _02013DFA -_02013E12: - pop {r4-r6, pc} - - thumb_func_start FUN_02013E14 -FUN_02013E14: ; 0x02013E14 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - bl FUN_02014050 - add r4, r0, #0x0 - bne _02013E26 - bl ErrorHandling -_02013E26: - ldr r0, [r5, #0x8] - bl FUN_02014090 - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _02013E36 - bl ErrorHandling -_02013E36: - ldr r0, [r5, #0x4] - ldr r1, [r4, #0x0] - add r2, r4, #0x4 - bl FUN_020140B4 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02013E44 -FUN_02013E44: ; 0x02013E44 - push {r4, lr} - ldr r1, _02013E58 ; =0x021064C4 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - blx r1 - add r0, r4, #0x0 - bl FUN_02013F5C - pop {r4, pc} - .balign 4 -_02013E58: .word 0x021064C4 - - thumb_func_start FUN_02013E5C -FUN_02013E5C: ; 0x02013E5C - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x14] - mov r6, #0x0 - cmp r0, #0x0 - ble _02013E82 - add r4, r6, #0x0 -_02013E6A: - ldr r1, [r5, #0x10] - ldr r0, [r1, r4] - cmp r0, #0x0 - beq _02013E78 - add r0, r1, r4 - bl FUN_02013E44 -_02013E78: - ldr r0, [r5, #0x14] - add r6, r6, #0x1 - add r4, #0x18 - cmp r6, r0 - blt _02013E6A -_02013E82: - pop {r4-r6, pc} - - thumb_func_start FUN_02013E84 -FUN_02013E84: ; 0x02013E84 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - bl FUN_02013FF8 - add r4, r0, #0x0 - bne _02013E96 - bl ErrorHandling -_02013E96: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02014218 - mov r0, #0x1 - str r0, [r4, #0x1c] - str r0, [r4, #0x20] - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02013EA8 -FUN_02013EA8: ; 0x02013EA8 - ldr r3, _02013EAC ; =FUN_02013F30 - bx r3 - .balign 4 -_02013EAC: .word FUN_02013F30 - - thumb_func_start FUN_02013EB0 -FUN_02013EB0: ; 0x02013EB0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02013EBE - bl ErrorHandling -_02013EBE: - str r4, [r5, #0x20] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02013EC4 -FUN_02013EC4: ; 0x02013EC4 - strh r1, [r0, #0x0] - strh r2, [r0, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_02013ECC -FUN_02013ECC: ; 0x02013ECC - ldrh r1, [r0, #0x2] - ldrh r0, [r0, #0x0] - lsl r1, r1, #0x10 - orr r0, r1 - bx lr - .balign 4 - - thumb_func_start FUN_02013ED8 -FUN_02013ED8: ; 0x02013ED8 - strh r1, [r0, #0x4] - strh r2, [r0, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_02013EE0 -FUN_02013EE0: ; 0x02013EE0 - str r1, [r0, #0xc] - str r2, [r0, #0x10] - bx lr - .balign 4 - - thumb_func_start FUN_02013EE8 -FUN_02013EE8: ; 0x02013EE8 - strh r1, [r0, #0x8] - strh r2, [r0, #0xa] - bx lr - .balign 4 - - thumb_func_start FUN_02013EF0 -FUN_02013EF0: ; 0x02013EF0 - ldrh r1, [r0, #0xa] - ldrh r0, [r0, #0x8] - lsl r1, r1, #0x10 - orr r0, r1 - bx lr - .balign 4 - - thumb_func_start FUN_02013EFC -FUN_02013EFC: ; 0x02013EFC - str r1, [r0, #0x14] - bx lr - - thumb_func_start FUN_02013F00 -FUN_02013F00: ; 0x02013F00 - ldr r0, [r0, #0x14] - bx lr - - thumb_func_start FUN_02013F04 -FUN_02013F04: ; 0x02013F04 - add r0, #0x3e - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02013F0C -FUN_02013F0C: ; 0x02013F0C - strh r1, [r0, #0x3c] - bx lr - - thumb_func_start FUN_02013F10 -FUN_02013F10: ; 0x02013F10 - str r1, [r0, #0x24] - bx lr - - thumb_func_start FUN_02013F14 -FUN_02013F14: ; 0x02013F14 - str r1, [r0, #0x28] - bx lr - - thumb_func_start FUN_02013F18 -FUN_02013F18: ; 0x02013F18 - str r1, [r0, #0x2c] - bx lr - - thumb_func_start FUN_02013F1C -FUN_02013F1C: ; 0x02013F1C - str r1, [r0, #0x30] - bx lr - - thumb_func_start FUN_02013F20 -FUN_02013F20: ; 0x02013F20 - cmp r1, #0x0 - bne _02013F28 - str r2, [r0, #0x34] - bx lr -_02013F28: - str r2, [r0, #0x38] - bx lr - - thumb_func_start FUN_02013F2C -FUN_02013F2C: ; 0x02013F2C - str r1, [r0, #0x18] - bx lr - - thumb_func_start FUN_02013F30 -FUN_02013F30: ; 0x02013F30 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x40 - bl Call_FillMemWithValue - add r0, r4, #0x0 - mov r1, #0x1f - add r0, #0x3e - strb r1, [r0, #0x0] - ldr r0, _02013F4C ; =0x00007FFF - strh r0, [r4, #0x3c] - pop {r4, pc} - nop -_02013F4C: .word 0x00007FFF - - thumb_func_start FUN_02013F50 -FUN_02013F50: ; 0x02013F50 - ldr r3, _02013F58 ; =FUN_020B1A24 - mov r1, #0x0 - stmia r0!, {r1} - bx r3 - .balign 4 -_02013F58: .word FUN_020B1A24 - - thumb_func_start FUN_02013F5C -FUN_02013F5C: ; 0x02013F5C - ldr r3, _02013F64 ; =FUN_020B19DC - mov r1, #0x0 - stmia r0!, {r1} - bx r3 - .balign 4 -_02013F64: .word FUN_020B19DC - - thumb_func_start FUN_02013F68 -FUN_02013F68: ; 0x02013F68 - push {r3-r7, lr} - add r6, r0, #0x0 - add r0, r1, #0x0 - lsl r1, r6, #0x6 - bl FUN_02016998 - add r7, r0, #0x0 - bne _02013F7C - bl ErrorHandling -_02013F7C: - mov r4, #0x0 - cmp r6, #0x0 - ble _02013F92 - add r5, r7, #0x0 -_02013F84: - add r0, r5, #0x0 - bl FUN_02013F30 - add r4, r4, #0x1 - add r5, #0x40 - cmp r4, r6 - blt _02013F84 -_02013F92: - add r0, r7, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02013F98 -FUN_02013F98: ; 0x02013F98 - push {r3-r7, lr} - add r6, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x28 - mul r1, r6 - bl FUN_02016998 - add r7, r0, #0x0 - bne _02013FAE - bl ErrorHandling -_02013FAE: - mov r4, #0x0 - cmp r6, #0x0 - ble _02013FC4 - add r5, r7, #0x0 -_02013FB6: - add r0, r5, #0x0 - bl FUN_02013F50 - add r4, r4, #0x1 - add r5, #0x28 - cmp r4, r6 - blt _02013FB6 -_02013FC4: - add r0, r7, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02013FC8 -FUN_02013FC8: ; 0x02013FC8 - push {r3-r7, lr} - add r6, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x18 - mul r1, r6 - bl FUN_02016998 - add r7, r0, #0x0 - bne _02013FDE - bl ErrorHandling -_02013FDE: - mov r4, #0x0 - cmp r6, #0x0 - ble _02013FF4 - add r5, r7, #0x0 -_02013FE6: - add r0, r5, #0x0 - bl FUN_02013F5C - add r4, r4, #0x1 - add r5, #0x18 - cmp r4, r6 - blt _02013FE6 -_02013FF4: - add r0, r7, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02013FF8 -FUN_02013FF8: ; 0x02013FF8 - push {r3-r4} - ldr r4, [r0, #0x4] - mov r1, #0x0 - cmp r4, #0x0 - ble _0201401C - ldr r3, [r0, #0x0] - add r2, r3, #0x0 -_02014006: - ldr r0, [r2, #0x1c] - cmp r0, #0x0 - bne _02014014 - lsl r0, r1, #0x6 - add r0, r3, r0 - pop {r3-r4} - bx lr -_02014014: - add r1, r1, #0x1 - add r2, #0x40 - cmp r1, r4 - blt _02014006 -_0201401C: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_02014024 -FUN_02014024: ; 0x02014024 - push {r3-r4} - ldr r4, [r0, #0x4] - mov r1, #0x0 - cmp r4, #0x0 - ble _0201404A - ldr r3, [r0, #0x8] - add r2, r3, #0x0 -_02014032: - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _02014042 - mov r0, #0x28 - mul r0, r1 - add r0, r3, r0 - pop {r3-r4} - bx lr -_02014042: - add r1, r1, #0x1 - add r2, #0x28 - cmp r1, r4 - blt _02014032 -_0201404A: - mov r0, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02014050 -FUN_02014050: ; 0x02014050 - push {r3-r4} - ldr r4, [r0, #0x4] - mov r1, #0x0 - cmp r4, #0x0 - ble _02014076 - ldr r3, [r0, #0x10] - add r2, r3, #0x0 -_0201405E: - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _0201406E - mov r0, #0x18 - mul r0, r1 - add r0, r3, r0 - pop {r3-r4} - bx lr -_0201406E: - add r1, r1, #0x1 - add r2, #0x18 - cmp r1, r4 - blt _0201405E -_02014076: - mov r0, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201407C -FUN_0201407C: ; 0x0201407C - push {r3, lr} - ldr r3, _0201408C ; =0x021064B8 - mov r1, #0x0 - ldr r0, [r0, #0x10] - ldr r3, [r3, #0x0] - add r2, r1, #0x0 - blx r3 - pop {r3, pc} - .balign 4 -_0201408C: .word 0x021064B8 - - thumb_func_start FUN_02014090 -FUN_02014090: ; 0x02014090 - push {r3, lr} - ldr r3, _020140A0 ; =0x021064C0 - mov r1, #0x0 - ldr r3, [r3, #0x0] - lsl r0, r0, #0x5 - add r2, r1, #0x0 - blx r3 - pop {r3, pc} - .balign 4 -_020140A0: .word 0x021064C0 - - thumb_func_start FUN_020140A4 -FUN_020140A4: ; 0x020140A4 - push {r3, lr} - lsl r1, r1, #0x10 - add r3, r2, #0x0 - lsr r1, r1, #0xd - mov r2, #0x0 - bl FUN_020B1528 - pop {r3, pc} - - thumb_func_start FUN_020140B4 -FUN_020140B4: ; 0x020140B4 - push {r3-r5, lr} - add r3, r2, #0x0 - ldr r2, _020140D4 ; =0xFFFF0000 - add r5, r0, #0x0 - and r2, r1 - lsr r2, r2, #0x10 - lsl r1, r1, #0x10 - ldr r4, [r5, #0x8] - lsl r2, r2, #0x3 - str r2, [r5, #0x8] - lsr r1, r1, #0xd - mov r2, #0x0 - bl FUN_020B1240 - str r4, [r5, #0x8] - pop {r3-r5, pc} - .balign 4 -_020140D4: .word 0xFFFF0000 - - thumb_func_start FUN_020140D8 -FUN_020140D8: ; 0x020140D8 - push {r3-r7, lr} - sub sp, #0x18 - ldr r7, _020141F8 ; =0x04000444 - mov r6, #0x0 - add r5, r0, #0x0 - str r6, [r7, #0x0] - ldrh r1, [r5, #0x3c] - ldr r0, _020141FC ; =0x7FFF8000 - orr r0, r1 - str r0, [r7, #0x7c] - add r0, r7, #0x0 - ldr r1, _02014200 ; =0x00004210 - add r0, #0x80 - str r1, [r0, #0x0] - ldr r3, [r5, #0x24] - ldr r4, [r3, #0x8] - ldr r2, [r3, #0x10] - ldr r1, [r3, #0x4] - ldr r0, [r3, #0x0] - lsl r3, r2, #0x1d - lsl r2, r1, #0x17 - lsl r1, r0, #0x14 - ldr r0, [r5, #0x28] - lsl r4, r4, #0x1a - lsr r0, r0, #0x3 - orr r4, r0 - mov r0, #0x1 - lsl r0, r0, #0x1e - orr r0, r4 - orr r0, r1 - orr r0, r2 - orr r0, r3 - str r0, [r7, #0x64] - ldr r0, [r5, #0x24] - ldr r0, [r0, #0x8] - cmp r0, #0x2 - bne _02014124 - mov r6, #0x1 -_02014124: - ldr r0, [r5, #0x30] - ldr r1, [r5, #0x2c] - lsl r0, r0, #0x5 - add r1, r1, r0 - mov r0, #0x4 - sub r0, r0, r6 - lsr r1, r0 - ldr r2, _02014204 ; =0x040004AC - add r0, r5, #0x0 - str r1, [r2, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - sub r2, #0x8 - lsl r1, r0, #0x10 - mov r0, #0xc0 - orr r0, r1 - str r0, [r2, #0x0] - ldr r0, [r5, #0x34] - cmp r0, #0x0 - beq _02014156 - mov r0, #0x8 - ldrsh r0, [r5, r0] - mov r7, #0x0 - str r0, [sp, #0x14] - b _0201415E -_02014156: - mov r0, #0x8 - ldrsh r7, [r5, r0] - mov r0, #0x0 - str r0, [sp, #0x14] -_0201415E: - ldr r0, [r5, #0x38] - cmp r0, #0x0 - beq _0201416C - mov r0, #0xa - ldrsh r6, [r5, r0] - mov r4, #0x0 - b _02014172 -_0201416C: - mov r0, #0xa - ldrsh r4, [r5, r0] - mov r6, #0x0 -_02014172: - ldr r0, [r5, #0x14] - mov r1, #0x6 - lsl r2, r0, #0xc - mov r0, #0x2 - ldrsh r0, [r5, r0] - ldrsh r1, [r5, r1] - mov r3, #0x4 - ldrsh r3, [r5, r3] - add r0, r0, r1 - lsl r1, r0, #0xc - mov r0, #0x0 - ldrsh r0, [r5, r0] - add r0, r0, r3 - ldr r3, _02014208 ; =0x04000470 - lsl r0, r0, #0xc - str r0, [r3, #0x0] - str r1, [r3, #0x0] - str r2, [r3, #0x0] - ldr r0, [r5, #0x18] - ldr r1, _0201420C ; =0x020FFA38 - asr r0, r0, #0x4 - lsl r2, r0, #0x1 - lsl r0, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r0, [r1, r0] - ldrsh r1, [r1, r2] - bl G3_RotZ - ldr r2, [r5, #0x10] - ldr r0, [r5, #0xc] - ldr r1, _02014210 ; =0x0400046C - mov r3, #0x8 - str r0, [r1, #0x0] - str r2, [r1, #0x0] - lsr r0, r1, #0xe - str r0, [r1, #0x0] - mov r2, #0x4 - mov r0, #0x6 - ldrsh r2, [r5, r2] - ldrsh r0, [r5, r0] - neg r2, r2 - neg r0, r0 - lsl r2, r2, #0xc - lsl r0, r0, #0xc - str r2, [r1, #0x4] - str r0, [r1, #0x4] - mov r0, #0x0 - str r0, [r1, #0x4] - mov r1, #0xa - ldrsh r1, [r5, r1] - add r2, r0, #0x0 - str r1, [sp, #0x0] - ldr r1, [sp, #0x14] - str r1, [sp, #0x4] - str r6, [sp, #0x8] - str r7, [sp, #0xc] - str r4, [sp, #0x10] - ldrsh r3, [r5, r3] - add r1, r0, #0x0 - bl FUN_020B0250 - ldr r0, _02014214 ; =0x04000448 - mov r1, #0x1 - str r1, [r0, #0x0] - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 -_020141F8: .word 0x04000444 -_020141FC: .word 0x7FFF8000 -_02014200: .word 0x00004210 -_02014204: .word 0x040004AC -_02014208: .word 0x04000470 -_0201420C: .word 0x020FFA38 -_02014210: .word 0x0400046C -_02014214: .word 0x04000448 - - thumb_func_start FUN_02014218 -FUN_02014218: ; 0x02014218 - push {r3-r7, lr} - add r5, r1, #0x0 - ldr r1, [r5, #0x4] - add r7, r0, #0x0 - ldr r2, [r1, #0x10] - mov r6, #0x8 - mov r0, #0x0 - cmp r2, #0x0 - ble _02014236 -_0201422A: - ldr r2, [r5, #0x4] - add r0, r0, #0x1 - ldr r2, [r2, #0x10] - lsl r6, r6, #0x1 - cmp r0, r2 - blt _0201422A -_02014236: - ldr r1, [r1, #0x14] - mov r4, #0x8 - mov r0, #0x0 - cmp r1, #0x0 - ble _0201424C -_02014240: - ldr r1, [r5, #0x4] - add r0, r0, #0x1 - ldr r1, [r1, #0x14] - lsl r4, r4, #0x1 - cmp r0, r1 - blt _02014240 -_0201424C: - mov r1, #0xc - mov r2, #0xe - ldrsh r1, [r5, r1] - ldrsh r2, [r5, r2] - add r0, r7, #0x0 - bl FUN_02013EC4 - lsr r1, r6, #0x1f - lsr r2, r4, #0x1f - add r1, r6, r1 - add r2, r4, r2 - lsl r1, r1, #0xf - lsl r2, r2, #0xf - add r0, r7, #0x0 - asr r1, r1, #0x10 - asr r2, r2, #0x10 - bl FUN_02013ED8 - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [r7, #0xc] - str r0, [r7, #0x10] - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02013EE8 - ldr r1, [r5, #0x18] - add r0, r7, #0x0 - bl FUN_02013EFC - ldr r1, [r5, #0x14] - add r0, r7, #0x0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02013F04 - ldr r1, [r5, #0x4] - add r0, r7, #0x0 - add r1, #0x10 - bl FUN_02013F10 - ldr r0, [r5, #0x4] - mov r1, #0x0 - add r0, r0, #0x4 - bl FUN_020B1A14 - add r1, r0, #0x0 - add r0, r7, #0x0 - bl FUN_02013F14 - ldr r0, [r5, #0x8] - mov r1, #0x0 - add r0, r0, #0x4 - bl FUN_020B19C4 - add r1, r0, #0x0 - add r0, r7, #0x0 - bl FUN_02013F18 - ldrh r1, [r5, #0x1c] - add r0, r7, #0x0 - bl FUN_02013F1C - mov r1, #0x0 - add r0, r7, #0x0 - add r2, r1, #0x0 - bl FUN_02013F20 - add r0, r7, #0x0 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_02013F20 - ldrh r1, [r5, #0x10] - add r0, r7, #0x0 - bl FUN_02013F2C - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020142EC -FUN_020142EC: ; 0x020142EC - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - ldr r0, _02014394 ; =FUN_020143DC - mov r1, #0x50 - mov r2, #0x0 - bl FUN_020061E8 - str r0, [sp, #0x4] - bl FUN_0201B6C8 - add r4, r0, #0x0 - cmp r5, #0x0 - beq _02014330 - cmp r6, #0x0 - bne _02014320 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_020031FC - str r0, [sp, #0x0] - ldr r0, _02014398 ; =FUN_020144E0 - str r0, [r4, #0x4] - b _0201434A -_02014320: - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_020031FC - str r0, [sp, #0x0] - ldr r0, _0201439C ; =FUN_020144FC - str r0, [r4, #0x4] - b _0201434A -_02014330: - cmp r6, #0x0 - bne _02014340 - bl FUN_020222E8 - str r0, [sp, #0x0] - ldr r0, _020143A0 ; =FUN_020144B0 - str r0, [r4, #0x4] - b _0201434A -_02014340: - bl FUN_020222F8 - str r0, [sp, #0x0] - ldr r0, _020143A4 ; =FUN_020144C8 - str r0, [r4, #0x4] -_0201434A: - ldr r1, [sp, #0x0] - lsl r0, r7, #0x5 - str r0, [sp, #0x8] - add r0, r1, r0 - add r1, r4, #0x0 - add r1, #0xc - mov r2, #0x20 - bl MIi_CpuCopy16 - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x8] - mov r2, #0x20 - add r0, r1, r0 - add r1, r4, #0x0 - add r1, #0x2c - bl MIi_CpuCopy16 - ldr r0, [sp, #0x4] - mov r1, #0x1 - str r0, [r4, #0x0] - add r0, r4, #0x0 - str r5, [r4, #0x8] - add r0, #0x4c - strb r6, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x4d - strb r7, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x4e - strb r1, [r0, #0x0] - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x4f - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02014394: .word FUN_020143DC -_02014398: .word FUN_020144E0 -_0201439C: .word FUN_020144FC -_020143A0: .word FUN_020144B0 -_020143A4: .word FUN_020144C8 - - thumb_func_start FUN_020143A8 -FUN_020143A8: ; 0x020143A8 - cmp r1, #0x0 - beq _020143B6 - cmp r1, #0x1 - beq _020143BE - cmp r1, #0x2 - beq _020143C6 - bx lr -_020143B6: - mov r1, #0x0 - add r0, #0x4e - strb r1, [r0, #0x0] - bx lr -_020143BE: - mov r1, #0x2 - add r0, #0x4e - strb r1, [r0, #0x0] - bx lr -_020143C6: - mov r1, #0x3 - add r0, #0x4e - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_020143D0 -FUN_020143D0: ; 0x020143D0 - ldr r3, _020143D8 ; =FUN_0200621C - ldr r0, [r0, #0x0] - bx r3 - nop -_020143D8: .word FUN_0200621C - - thumb_func_start FUN_020143DC -FUN_020143DC: ; 0x020143DC - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x4e - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - bhi _02014452 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020143F8: ; jump table (using 16-bit offset) - .short _02014400 - _020143F8 - 2; case 0 - .short _02014410 - _020143F8 - 2; case 1 - .short _02014452 - _020143F8 - 2; case 2 - .short _02014444 - _020143F8 - 2; case 3 -_02014400: - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x4f - strb r1, [r0, #0x0] - mov r0, #0x1 - add r4, #0x4e - strb r0, [r4, #0x0] - pop {r3-r5, pc} -_02014410: - add r0, r4, #0x0 - bl FUN_02014454 - cmp r0, #0x1 - bne _02014424 - add r1, r4, #0x0 - ldr r2, [r4, #0x4] - add r0, r4, #0x0 - add r1, #0x2c - blx r2 -_02014424: - add r0, r4, #0x0 - add r0, #0x4f - ldrb r0, [r0, #0x0] - add r1, r0, #0x1 - add r0, r4, #0x0 - add r0, #0x4f - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x4f - ldrb r0, [r0, #0x0] - cmp r0, #0x20 - bne _02014452 - mov r0, #0x0 - add r4, #0x4f - strb r0, [r4, #0x0] - pop {r3-r5, pc} -_02014444: - ldr r2, [r4, #0x4] - add r0, r4, #0x0 - add r1, #0xc - blx r2 - add r0, r5, #0x0 - bl FUN_0200621C -_02014452: - pop {r3-r5, pc} - - thumb_func_start FUN_02014454 -FUN_02014454: ; 0x02014454 - push {r4-r5} - add r1, r0, #0x0 - add r1, #0x4f - ldrb r1, [r1, #0x0] - cmp r1, #0x0 - bne _02014482 - mov r1, #0x1e - mov r4, #0x0 - mov r3, #0x1 - lsl r1, r1, #0xa -_02014468: - add r2, r3, #0x0 - lsl r2, r4 - tst r2, r1 - beq _02014474 - ldrh r2, [r0, #0xc] - strh r2, [r0, #0x2c] -_02014474: - add r4, r4, #0x1 - add r0, r0, #0x2 - cmp r4, #0x10 - blo _02014468 - mov r0, #0x1 - pop {r4-r5} - bx lr -_02014482: - cmp r1, #0x18 - bne _020144AA - mov r1, #0x1e - mov r5, #0x0 - add r4, r0, #0x0 - mov r3, #0x1 - lsl r1, r1, #0xa -_02014490: - add r2, r3, #0x0 - lsl r2, r5 - tst r2, r1 - beq _0201449C - ldrh r2, [r0, #0x2a] - strh r2, [r4, #0x2c] -_0201449C: - add r5, r5, #0x1 - add r4, r4, #0x2 - cmp r5, #0x10 - blo _02014490 - mov r0, #0x1 - pop {r4-r5} - bx lr -_020144AA: - mov r0, #0x0 - pop {r4-r5} - bx lr - - thumb_func_start FUN_020144B0 -FUN_020144B0: ; 0x020144B0 - push {r3, lr} - add r3, r0, #0x0 - add r3, #0x4d - ldrb r3, [r3, #0x0] - mov r0, #0x0 - mov r2, #0x20 - lsl r3, r3, #0x15 - lsr r3, r3, #0x10 - bl FUN_02017FB4 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020144C8 -FUN_020144C8: ; 0x020144C8 - push {r3, lr} - add r3, r0, #0x0 - add r3, #0x4d - ldrb r3, [r3, #0x0] - mov r0, #0x4 - mov r2, #0x20 - lsl r3, r3, #0x15 - lsr r3, r3, #0x10 - bl FUN_02017FB4 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020144E0 -FUN_020144E0: ; 0x020144E0 - push {r3, lr} - add r3, r0, #0x0 - mov r0, #0x20 - str r0, [sp, #0x0] - ldr r0, [r3, #0x8] - add r3, #0x4d - ldrb r3, [r3, #0x0] - mov r2, #0x0 - lsl r3, r3, #0x14 - lsr r3, r3, #0x10 - bl FUN_02003054 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020144FC -FUN_020144FC: ; 0x020144FC - push {r3, lr} - add r3, r0, #0x0 - mov r0, #0x20 - str r0, [sp, #0x0] - ldr r0, [r3, #0x8] - add r3, #0x4d - ldrb r3, [r3, #0x0] - mov r2, #0x1 - lsl r3, r3, #0x14 - lsr r3, r3, #0x10 - bl FUN_02003054 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02014518 -FUN_02014518: ; 0x02014518 - push {r3-r7, lr} - mov r1, #0x78 - add r7, r0, #0x0 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x78 - add r6, r0, #0x0 - bl MI_CpuFill8 - ldr r2, _02014560 ; =0x0000019E - mov r0, #0x0 - mov r1, #0x1a - add r3, r7, #0x0 - bl FUN_0200A86C - str r0, [r6, #0x0] - mov r4, #0x0 - add r5, r6, #0x0 -_0201453E: - mov r0, #0x16 - add r1, r7, #0x0 - bl FUN_020219F4 - str r0, [r5, #0x4] - ldr r0, [r6, #0x0] - ldr r2, [r5, #0x4] - add r1, r4, #0x0 - bl FUN_0200A8E0 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x1d - blt _0201453E - add r0, r6, #0x0 - pop {r3-r7, pc} - nop -_02014560: .word 0x0000019E - - thumb_func_start FUN_02014564 -FUN_02014564: ; 0x02014564 - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r6, #0x0 - mov r4, #0x1c - add r5, #0x70 -_0201456E: - ldr r0, [r5, #0x4] - bl FUN_02021A20 - sub r5, r5, #0x4 - sub r4, r4, #0x1 - bpl _0201456E - ldr r0, [r6, #0x0] - bl FUN_0200A8B8 - add r0, r6, #0x0 - bl FUN_02016A18 - pop {r4-r6, pc} - - thumb_func_start FUN_02014588 -FUN_02014588: ; 0x02014588 - lsl r1, r1, #0x2 - add r0, r0, r1 - ldr r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_02014590 -FUN_02014590: ; 0x02014590 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r1, #0x9c - bl FUN_02016998 - add r1, r5, #0x0 - add r4, r0, #0x0 - bl FUN_020146F0 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020145A8 -FUN_020145A8: ; 0x020145A8 - push {r4, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x9b - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - cmp r1, #0x1 - bne _020145BE - bl FUN_020146C4 -_020145BE: - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020145C8 -FUN_020145C8: ; 0x020145C8 - push {r3-r5, lr} - add r4, r1, #0x0 - ldr r2, [r4, #0x0] - add r5, r0, #0x0 - str r2, [r5, #0x7c] - add r2, r5, #0x0 - ldr r3, [r4, #0x4] - add r2, #0x80 - str r3, [r2, #0x0] - add r2, r5, #0x0 - ldrb r3, [r4, #0x10] - add r2, #0x98 - strb r3, [r2, #0x0] - add r2, r5, #0x0 - ldrb r3, [r4, #0x11] - add r2, #0x99 - strb r3, [r2, #0x0] - bl FUN_02014730 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02014754 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02014784 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02014814 - add r0, r5, #0x0 - add r0, #0x9b - ldrb r1, [r0, #0x0] - mov r0, #0xf - bic r1, r0 - mov r0, #0x1 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x9b - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x9b - ldrb r1, [r0, #0x0] - mov r0, #0xf0 - add r5, #0x9b - bic r1, r0 - mov r0, #0x80 - orr r0, r1 - strb r0, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02014630 -FUN_02014630: ; 0x02014630 - push {r4, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x9b - ldrb r2, [r1, #0x0] - mov r1, #0xf0 - bic r2, r1 - mov r1, #0x80 - orr r2, r1 - add r1, r4, #0x0 - add r1, #0x9b - strb r2, [r1, #0x0] - bl FUN_0201466C - cmp r0, #0x0 - bne _0201466A - add r1, r4, #0x0 - add r1, #0x9b - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x18 - lsr r1, r1, #0x1c - bne _0201466A - add r4, #0x9a - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _02014668 - mov r0, #0x3 - pop {r4, pc} -_02014668: - mov r0, #0x4 -_0201466A: - pop {r4, pc} - - thumb_func_start FUN_0201466C -FUN_0201466C: ; 0x0201466C - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x9b - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - cmp r0, #0x1 - beq _02014680 - bl ErrorHandling -_02014680: - add r0, r4, #0x0 - add r0, #0x9a - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - bne _02014690 - ldr r0, [r4, #0x0] - bl FUN_02022144 -_02014690: - add r1, r4, #0x0 - add r1, #0x9a - ldrb r2, [r1, #0x0] - mov r0, #0x0 - cmp r2, #0x3 - beq _020146AA - add r1, r4, #0x0 - mov r0, #0x38 - add r1, #0xc - mul r0, r2 - add r0, r1, r0 - bl FUN_02014930 -_020146AA: - cmp r0, #0x1 - bne _020146BE - add r4, #0x9a - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _020146BA - mov r0, #0x1 - pop {r4, pc} -_020146BA: - mov r0, #0x2 - pop {r4, pc} -_020146BE: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020146C4 -FUN_020146C4: ; 0x020146C4 - push {r4-r6, lr} - add r6, r0, #0x0 - ldr r0, [r6, #0x0] - bl FUN_0202212C - add r5, r6, #0x0 - mov r4, #0x0 - add r5, #0xc -_020146D4: - add r0, r5, #0x0 - bl FUN_02014970 - add r4, r4, #0x1 - add r5, #0x38 - cmp r4, #0x2 - blt _020146D4 - add r0, r6, #0x0 - add r6, #0x84 - ldr r1, [r6, #0x0] - bl FUN_020146F0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020146F0 -FUN_020146F0: ; 0x020146F0 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - mov r1, #0x0 - mov r2, #0x9c - bl Call_FillMemWithValue - add r0, r5, #0x0 - add r0, #0x9b - ldrb r1, [r0, #0x0] - mov r0, #0xf - bic r1, r0 - add r0, r5, #0x0 - add r0, #0x9b - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x84 - str r4, [r0, #0x0] - add r0, r5, #0x0 - mov r1, #0x3 - add r0, #0x9a - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x9b - ldrb r1, [r0, #0x0] - mov r0, #0xf0 - add r5, #0x9b - bic r1, r0 - mov r0, #0x80 - orr r0, r1 - strb r0, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02014730 -FUN_02014730: ; 0x02014730 - push {r3, lr} - sub sp, #0x8 - add r3, r0, #0x0 - ldr r0, [r1, #0x8] - mov r1, #0x1 - str r0, [sp, #0x0] - add r0, r3, #0x0 - add r0, #0x84 - ldr r0, [r0, #0x0] - str r0, [sp, #0x4] - ldr r2, [r3, #0x7c] - add r3, #0x80 - ldr r3, [r3, #0x0] - mov r0, #0x54 - bl FUN_02014A3C - add sp, #0x8 - pop {r3, pc} - - thumb_func_start FUN_02014754 -FUN_02014754: ; 0x02014754 - push {r3, lr} - sub sp, #0x8 - add r3, r1, #0x0 - add r1, r0, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - cmp r1, #0x4 - bhs _02014768 - mov r2, #0x0 - b _0201476A -_02014768: - mov r2, #0x4 -_0201476A: - mov r1, #0x40 - str r1, [sp, #0x0] - add r0, #0x84 - ldr r0, [r0, #0x0] - mov r1, #0x0 - str r0, [sp, #0x4] - ldr r3, [r3, #0xc] - mov r0, #0x54 - lsl r3, r3, #0x5 - bl FUN_02014A8C - add sp, #0x8 - pop {r3, pc} - - thumb_func_start FUN_02014784 -FUN_02014784: ; 0x02014784 - push {r3-r7, lr} - sub sp, #0x30 - add r7, r0, #0x0 - mov r3, #0x0 - add r4, r7, #0x0 -_0201478E: - add r0, r4, #0x0 - add r3, r3, #0x1 - lsl r2, r3, #0xc - add r0, #0x88 - add r4, r4, #0x4 - str r2, [r0, #0x0] - cmp r3, #0x4 - blt _0201478E - ldr r0, [r7, #0x7c] - mov r5, #0x0 - str r0, [sp, #0x0] - add r0, r7, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - add r4, r7, #0x0 - str r0, [sp, #0x4] - mov r0, #0x54 - str r0, [sp, #0x8] - ldr r0, [r1, #0x8] - add r6, r5, #0x0 - str r0, [sp, #0x1c] - ldr r0, [r1, #0xc] - add r4, #0xc - str r0, [sp, #0x20] - add r0, r7, #0x0 - add r0, #0x88 - str r0, [sp, #0x24] - mov r0, #0x4 - str r0, [sp, #0x28] - add r0, r7, #0x0 - add r0, #0x98 - ldrb r1, [r0, #0x0] - add r0, sp, #0x20 - strb r1, [r0, #0xc] -_020147D2: - mov r1, #0x0 - mov r2, #0x2 - add r3, sp, #0x0 -_020147D8: - add r0, r5, r2 - str r0, [r3, #0xc] - add r1, r1, #0x1 - add r2, r2, #0x2 - add r3, r3, #0x4 - cmp r1, #0x4 - blt _020147D8 - add r0, r7, #0x0 - add r0, #0x99 - ldrb r0, [r0, #0x0] - add r2, r7, #0x0 - add r2, #0x84 - add r1, r0, r6 - add r0, sp, #0x20 - strb r1, [r0, #0xd] - ldr r0, [sp, #0x20] - add r1, sp, #0x0 - add r0, r0, r5 - str r0, [sp, #0x20] - ldr r2, [r2, #0x0] - add r0, r4, #0x0 - bl FUN_020148A8 - add r5, r5, #0x1 - add r6, r6, #0x4 - add r4, #0x38 - cmp r5, #0x2 - blt _020147D2 - add sp, #0x30 - pop {r3-r7, pc} - - thumb_func_start FUN_02014814 -FUN_02014814: ; 0x02014814 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r4, #0x0 -_02014820: - add r3, r4, #0x0 - add r3, #0x99 - ldrb r3, [r3, #0x0] - add r0, r0, #0x1 - lsl r3, r3, #0x3 - add r3, r3, r1 - strb r3, [r2, #0x4] - add r3, r4, #0x0 - add r3, #0x99 - ldrb r3, [r3, #0x0] - lsl r3, r3, #0x3 - add r3, r3, r1 - add r3, #0x20 - strb r3, [r2, #0x5] - add r3, r4, #0x0 - add r3, #0x98 - ldrb r3, [r3, #0x0] - add r1, #0x20 - lsl r3, r3, #0x3 - strb r3, [r2, #0x6] - add r3, r4, #0x0 - add r3, #0x98 - ldrb r3, [r3, #0x0] - lsl r3, r3, #0x3 - add r3, #0x30 - strb r3, [r2, #0x7] - add r2, r2, #0x4 - cmp r0, #0x2 - blt _02014820 - add r0, r4, #0x0 - add r0, #0x84 - ldr r0, [r0, #0x0] - ldr r2, _02014874 ; =FUN_02014878 - str r0, [sp, #0x0] - add r0, r4, #0x4 - mov r1, #0x2 - add r3, r4, #0x0 - bl FUN_020220C4 - str r0, [r4, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_02014874: .word FUN_02014878 - - thumb_func_start FUN_02014878 -FUN_02014878: ; 0x02014878 - push {r4, lr} - add r3, r2, #0x0 - add r3, #0x9b - ldrb r3, [r3, #0x0] - mov r4, #0xf0 - bic r3, r4 - lsl r4, r1, #0x18 - lsr r4, r4, #0x18 - lsl r4, r4, #0x1c - lsr r4, r4, #0x18 - orr r4, r3 - add r3, r2, #0x0 - add r3, #0x9b - strb r4, [r3, #0x0] - cmp r1, #0x0 - bne _020148A2 - add r2, #0x9a - strb r0, [r2, #0x0] - ldr r0, _020148A4 ; =0x000005E4 - bl FUN_020054C8 -_020148A2: - pop {r4, pc} - .balign 4 -_020148A4: .word 0x000005E4 - - thumb_func_start FUN_020148A8 -FUN_020148A8: ; 0x020148A8 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r1, #0x0 - str r2, [sp, #0x8] - str r0, [sp, #0x4] - ldr r1, [r5, #0x24] - ldr r2, [r5, #0x28] - add r0, #0x28 - bl FUN_020149FC - ldr r1, [r5, #0x0] - ldr r0, [sp, #0x4] - ldr r6, [sp, #0x4] - str r1, [r0, #0x0] - ldr r1, [r5, #0x4] - ldr r4, [sp, #0x4] - str r1, [r0, #0x4] - add r0, r5, #0x0 - add r0, #0x2c - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x4] - add r6, #0x18 - add r0, #0x34 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x2d - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x4] - add r7, r5, #0x0 - add r0, #0x35 - strb r1, [r0, #0x0] - mov r0, #0x0 - str r0, [sp, #0xc] -_020148EA: - ldr r0, [sp, #0x8] - mov r2, #0x1 - str r0, [sp, #0x0] - ldr r0, [r5, #0x8] - ldr r1, [r7, #0xc] - add r3, r6, #0x0 - bl FUN_02006BDC - str r0, [r4, #0x8] - ldr r0, [r4, #0x18] - ldr r1, [r5, #0x1c] - bl FUN_02014BA4 - ldr r0, [r4, #0x18] - ldr r1, [r5, #0x20] - bl FUN_02014BC4 - ldr r0, [sp, #0xc] - add r6, r6, #0x4 - add r0, r0, #0x1 - add r7, r7, #0x4 - add r4, r4, #0x4 - str r0, [sp, #0xc] - cmp r0, #0x4 - blt _020148EA - ldr r0, [sp, #0x4] - bl FUN_020149D0 - ldr r0, [sp, #0x4] - mov r1, #0x0 - add r0, #0x36 - str r0, [sp, #0x4] - strb r1, [r0, #0x0] - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start FUN_02014930 -FUN_02014930: ; 0x02014930 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x28 - bl FUN_02014A10 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x36 - ldrb r0, [r0, #0x0] - cmp r0, r4 - beq _02014952 - add r0, r5, #0x0 - bl FUN_020149D0 - add r0, r5, #0x0 - add r0, #0x36 - strb r4, [r0, #0x0] -_02014952: - ldr r0, [r5, #0x2c] - sub r0, r0, #0x1 - cmp r4, r0 - bne _0201495E - mov r0, #0x1 - pop {r3-r5, pc} -_0201495E: - add r5, #0x28 - mov r1, #0x1 - add r0, r5, #0x0 - lsl r1, r1, #0xc - bl FUN_02014A08 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02014970 -FUN_02014970: ; 0x02014970 - push {r4-r6, lr} - sub sp, #0x10 - add r6, r0, #0x0 - add r0, #0x35 - ldrb r0, [r0, #0x0] - ldr r1, [r6, #0x18] - add r3, r6, #0x0 - str r0, [sp, #0x0] - ldrh r0, [r1, #0x0] - mov r2, #0x0 - add r3, #0x34 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #0x4] - ldrh r0, [r1, #0x2] - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #0x8] - str r2, [sp, #0xc] - ldr r1, [r6, #0x4] - ldrb r3, [r3, #0x0] - lsl r1, r1, #0x18 - ldr r0, [r6, #0x0] - lsr r1, r1, #0x18 - bl FUN_02018540 - ldr r1, [r6, #0x4] - ldr r0, [r6, #0x0] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_0201AC68 - mov r4, #0x0 - add r5, r6, #0x0 -_020149B4: - ldr r0, [r5, #0x8] - bl FUN_02016A18 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x4 - blt _020149B4 - add r0, r6, #0x0 - mov r1, #0x0 - mov r2, #0x38 - bl Call_FillMemWithValue - add sp, #0x10 - pop {r4-r6, pc} - - thumb_func_start FUN_020149D0 -FUN_020149D0: ; 0x020149D0 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, #0x28 - bl FUN_02014A10 - add r2, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x35 - ldrb r0, [r0, #0x0] - lsl r2, r2, #0x2 - add r2, r4, r2 - str r0, [sp, #0x0] - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x4] - add r4, #0x34 - ldrb r3, [r4, #0x0] - ldr r2, [r2, #0x18] - bl FUN_02014B58 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_020149FC -FUN_020149FC: ; 0x020149FC - str r1, [r0, #0x0] - str r2, [r0, #0x4] - mov r1, #0x0 - str r1, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_02014A08 -FUN_02014A08: ; 0x02014A08 - ldr r2, [r0, #0x8] - add r1, r2, r1 - str r1, [r0, #0x8] - bx lr - - thumb_func_start FUN_02014A10 -FUN_02014A10: ; 0x02014A10 - push {r4-r5} - ldr r5, [r0, #0x4] - mov r2, #0x0 - cmp r5, #0x0 - bls _02014A34 - ldr r3, [r0, #0x0] - ldr r4, [r0, #0x8] -_02014A1E: - ldr r1, [r3, #0x0] - cmp r1, r4 - blt _02014A2A - add r0, r2, #0x0 - pop {r4-r5} - bx lr -_02014A2A: - ldr r1, [r0, #0x4] - add r2, r2, #0x1 - add r3, r3, #0x4 - cmp r2, r1 - blo _02014A1E -_02014A34: - sub r0, r5, #0x1 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_02014A3C -FUN_02014A3C: ; 0x02014A3C - push {r3-r7, lr} - sub sp, #0x8 - add r7, r0, #0x0 - str r1, [sp, #0x4] - ldr r0, [sp, #0x24] - mov r1, #0x14 - add r5, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - add r2, r4, #0x0 - mov r1, #0x14 - mov r0, #0x0 -_02014A58: - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _02014A58 - ldr r0, [sp, #0x24] - ldr r1, [sp, #0x4] - str r0, [sp, #0x0] - add r0, r7, #0x0 - mov r2, #0x1 - add r3, r4, #0x4 - bl FUN_02006BB0 - str r0, [r4, #0x8] - str r5, [r4, #0x0] - ldr r0, [sp, #0x20] - str r6, [r4, #0xc] - str r0, [r4, #0x10] - ldr r0, _02014A88 ; =FUN_02014AD4 - add r1, r4, #0x0 - mov r2, #0x80 - bl FUN_0200CA98 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02014A88: .word FUN_02014AD4 - - thumb_func_start FUN_02014A8C -FUN_02014A8C: ; 0x02014A8C - push {r3-r7, lr} - add r7, r0, #0x0 - str r1, [sp, #0x0] - ldr r0, [sp, #0x1c] - mov r1, #0x14 - add r5, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - add r2, r4, #0x0 - mov r1, #0x14 - mov r0, #0x0 -_02014AA6: - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _02014AA6 - ldr r1, [sp, #0x0] - ldr r3, [sp, #0x1c] - add r0, r7, #0x0 - add r2, r4, #0x0 - bl FUN_02006C08 - str r0, [r4, #0x4] - str r5, [r4, #0x8] - ldr r0, [sp, #0x18] - str r6, [r4, #0xc] - str r0, [r4, #0x10] - ldr r0, _02014AD0 ; =FUN_02014B10 - add r1, r4, #0x0 - mov r2, #0x80 - bl FUN_0200CA98 - pop {r3-r7, pc} - .balign 4 -_02014AD0: .word FUN_02014B10 - - thumb_func_start FUN_02014AD4 -FUN_02014AD4: ; 0x02014AD4 - push {r3-r5, lr} - add r4, r1, #0x0 - ldr r1, [r4, #0x4] - add r5, r0, #0x0 - ldr r0, [r1, #0x14] - ldr r1, [r1, #0x10] - bl DC_FlushRange - ldr r3, [r4, #0x4] - ldr r0, [r4, #0x10] - str r0, [sp, #0x0] - ldr r1, [r4, #0xc] - ldr r2, [r3, #0x14] - lsl r1, r1, #0x18 - ldr r0, [r4, #0x0] - ldr r3, [r3, #0x10] - lsr r1, r1, #0x18 - bl FUN_02017E14 - add r0, r5, #0x0 - bl FUN_0200CAB4 - ldr r0, [r4, #0x8] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02014B10 -FUN_02014B10: ; 0x02014B10 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x10] - ldr r0, [r0, #0xc] - bl DC_FlushRange - ldr r0, [r4, #0x8] - cmp r0, #0x0 - bne _02014B34 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0xc] - ldr r0, [r0, #0xc] - ldr r2, [r4, #0x10] - bl GX_LoadBGPltt - b _02014B44 -_02014B34: - cmp r0, #0x4 - bne _02014B44 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0xc] - ldr r0, [r0, #0xc] - ldr r2, [r4, #0x10] - bl GXS_LoadBGPltt -_02014B44: - add r0, r5, #0x0 - bl FUN_0200CAB4 - ldr r0, [r4, #0x4] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r3-r5, pc} - - thumb_func_start FUN_02014B58 -FUN_02014B58: ; 0x02014B58 - push {r3-r6, lr} - sub sp, #0x1c - add r4, r1, #0x0 - add r1, r2, #0x0 - add r2, r3, #0x0 - ldrh r6, [r1, #0x0] - ldrh r3, [r1, #0x2] - lsl r2, r2, #0x18 - lsl r6, r6, #0x15 - lsr r6, r6, #0x18 - lsl r3, r3, #0x15 - str r6, [sp, #0x0] - lsr r3, r3, #0x18 - str r3, [sp, #0x4] - add r1, #0xc - str r1, [sp, #0x8] - mov r1, #0x0 - str r1, [sp, #0xc] - str r1, [sp, #0x10] - str r6, [sp, #0x14] - str r3, [sp, #0x18] - ldr r3, [sp, #0x30] - lsl r1, r4, #0x18 - lsl r3, r3, #0x18 - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - add r5, r0, #0x0 - bl FUN_02018170 - lsl r1, r4, #0x18 - add r0, r5, #0x0 - lsr r1, r1, #0x18 - bl FUN_0201AC68 - add sp, #0x1c - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02014BA4 -FUN_02014BA4: ; 0x02014BA4 - push {r3-r4} - ldr r2, [r0, #0x8] - add r0, #0xc - lsr r4, r2, #0x1 - mov r3, #0x0 - cmp r4, #0x0 - ble _02014BC0 -_02014BB2: - ldrh r2, [r0, #0x0] - add r3, r3, #0x1 - add r2, r2, r1 - strh r2, [r0, #0x0] - add r0, r0, #0x2 - cmp r3, r4 - blt _02014BB2 -_02014BC0: - pop {r3-r4} - bx lr - - thumb_func_start FUN_02014BC4 -FUN_02014BC4: ; 0x02014BC4 - push {r4-r5} - ldr r2, [r0, #0x8] - add r0, #0xc - lsr r3, r2, #0x1 - mov r2, #0x0 - cmp r3, #0x0 - ble _02014BEA - ldr r4, _02014BF0 ; =0x00000FFF - lsl r1, r1, #0xc -_02014BD6: - ldrh r5, [r0, #0x0] - add r2, r2, #0x1 - and r5, r4 - strh r5, [r0, #0x0] - ldrh r5, [r0, #0x0] - orr r5, r1 - strh r5, [r0, #0x0] - add r0, r0, #0x2 - cmp r2, r3 - blt _02014BD6 -_02014BEA: - pop {r4-r5} - bx lr - nop -_02014BF0: .word 0x00000FFF - - thumb_func_start FUN_02014BF4 -FUN_02014BF4: ; 0x02014BF4 - push {r3-r7, lr} - add r7, r1, #0x0 - mov r1, #0xc - add r5, r0, #0x0 - add r6, r2, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - strb r6, [r4, #0x8] - mov r0, #0x1d - strb r7, [r4, #0x9] - lsl r0, r0, #0x4 - add r6, r7, #0x0 - mul r6, r0 - add r0, r5, #0x0 - add r1, r6, #0x0 - str r5, [r4, #0x4] - bl FUN_02016998 - mov r1, #0x0 - add r2, r6, #0x0 - str r0, [r4, #0x0] - bl MI_CpuFill8 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02014C28 -FUN_02014C28: ; 0x02014C28 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02014C3C -FUN_02014C3C: ; 0x02014C3C - push {r4, lr} - add r4, r0, #0x0 - cmp r4, #0x19 - blo _02014C48 - bl ErrorHandling -_02014C48: - ldr r0, _02014C50 ; =0x020ED64C - ldrb r0, [r0, r4] - pop {r4, pc} - nop -_02014C50: .word 0x020ED64C - - thumb_func_start FUN_02014C54 -FUN_02014C54: ; 0x02014C54 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - str r3, [sp, #0x4] - add r0, r2, #0x0 - ldrh r6, [r0, #0x0] - ldrh r0, [r0, #0x2] - add r7, r1, #0x0 - ldrb r1, [r5, #0x9] - str r0, [sp, #0x8] - ldr r0, [sp, #0x4] - str r2, [sp, #0x0] - cmp r0, r1 - blo _02014C74 - bl ErrorHandling -_02014C74: - ldr r0, [sp, #0x4] - mov r1, #0x1d - add r4, r0, #0x0 - lsl r1, r1, #0x4 - ldr r0, [r5, #0x0] - mul r4, r1 - add r0, r0, r4 - ldr r0, [r0, #0x10] - cmp r0, #0x0 - beq _02014C8C - bl ErrorHandling -_02014C8C: - ldr r0, [r5, #0x0] - mov r2, #0x1d - add r0, r0, r4 - mov r1, #0x0 - lsl r2, r2, #0x4 - bl MI_CpuFill8 - ldr r0, [r5, #0x0] - mov r1, #0x1 - add r0, r0, r4 - str r1, [r0, #0x10] - ldr r0, [r5, #0x0] - cmp r6, #0x86 - str r7, [r0, r4] - blt _02014CAE - mov r6, #0x0 - str r6, [sp, #0x8] -_02014CAE: - ldr r0, [r5, #0x0] - add r0, r0, r4 - str r6, [r0, #0x14] - ldrb r0, [r5, #0x8] - cmp r0, #0x0 - beq _02014CC0 - ldr r0, [sp, #0x0] - ldrb r2, [r0, #0x4] - b _02014CC2 -_02014CC0: - mov r2, #0x0 -_02014CC2: - ldr r0, [r5, #0x0] - add r1, r0, r4 - mov r0, #0x73 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - ldr r1, [r5, #0x0] - ldr r2, [r5, #0x4] - add r1, r1, r4 - ldr r1, [r1, #0x14] - mov r0, #0x5e - bl FUN_02006528 - ldr r1, [r5, #0x0] - mov r2, #0x0 - add r1, r1, r4 - str r0, [r1, #0x8] - ldr r0, [r5, #0x0] - mov r6, #0x1c - add r1, r0, r4 - ldr r0, [r1, #0x8] - str r0, [r1, #0xc] - ldr r0, [r5, #0x0] - add r0, r0, r4 - str r2, [r0, #0x1c] - ldr r0, [r5, #0x0] - add r0, r0, r4 - str r2, [r0, #0x20] - ldr r0, [r5, #0x0] - add r1, r0, r4 - ldr r0, _02014D74 ; =0x000001CD - strb r2, [r1, r0] - ldr r1, [r5, #0x0] - add r3, r1, r4 - add r1, r0, #0x1 - strb r6, [r3, r1] - ldr r1, [r5, #0x0] - add r0, r0, #0x2 - add r1, r1, r4 - strb r2, [r1, r0] - ldr r1, [r5, #0x0] - ldr r0, _02014D78 ; =FUN_02014DD8 - add r1, r1, r4 - bl FUN_0200CA44 - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x4] - ldr r0, [r5, #0x0] - add r1, r0, r4 - ldr r0, [sp, #0x8] - str r0, [r1, #0x54] - add r0, r7, #0x0 - mov r1, #0x0 - bl FUN_0200782C - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x58] - add r0, r7, #0x0 - mov r1, #0x1 - bl FUN_0200782C - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x5c] - ldr r1, [r5, #0x0] - mov r0, #0x0 - add r1, r1, r4 - str r0, [r1, #0x60] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x64] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x68] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x6c] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x70] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x74] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x78] - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02014D74: .word 0x000001CD -_02014D78: .word FUN_02014DD8 - - thumb_func_start FUN_02014D7C -FUN_02014D7C: ; 0x02014D7C - push {r3-r5, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0x9] - add r4, r1, #0x0 - cmp r4, r0 - blo _02014D8C - bl ErrorHandling -_02014D8C: - mov r0, #0x1d - lsl r0, r0, #0x4 - ldr r1, [r5, #0x0] - mul r0, r4 - add r0, r1, r0 - ldr r0, [r0, #0x20] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02014D9C -FUN_02014D9C: ; 0x02014D9C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x1d - lsl r0, r0, #0x4 - add r4, r1, #0x0 - mul r4, r0 - ldr r0, [r5, #0x0] - add r0, r0, r4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _02014DD6 - bl FUN_0200CAB4 - ldr r1, [r5, #0x0] - mov r0, #0x0 - add r1, r1, r4 - str r0, [r1, #0x4] - ldr r1, [r5, #0x0] - mov r2, #0x1 - add r1, r1, r4 - str r2, [r1, #0x20] - ldr r1, [r5, #0x0] - add r1, r1, r4 - str r0, [r1, #0x10] - ldr r0, [r5, #0x0] - add r0, r0, r4 - ldr r0, [r0, #0x8] - bl FUN_02016A18 -_02014DD6: - pop {r3-r5, pc} - - thumb_func_start FUN_02014DD8 -FUN_02014DD8: ; 0x02014DD8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x54] - cmp r0, #0x0 - bne _02014DEC - add r0, r4, #0x0 - bl FUN_02014E10 - b _02014DF0 -_02014DEC: - sub r0, r0, #0x1 - str r0, [r4, #0x54] -_02014DF0: - ldr r0, [r4, #0x1c] - cmp r0, #0x0 - beq _02014E0E - mov r0, #0x1 - str r0, [r4, #0x20] - mov r0, #0x0 - str r0, [r4, #0x10] - add r0, r5, #0x0 - bl FUN_0200CAB4 - mov r0, #0x0 - str r0, [r4, #0x4] - ldr r0, [r4, #0x8] - bl FUN_02016A18 -_02014E0E: - pop {r3-r5, pc} - - thumb_func_start FUN_02014E10 -FUN_02014E10: ; 0x02014E10 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r6, #0x0 - str r6, [r5, #0x18] - add r7, r5, #0x0 - str r6, [r5, #0x44] - add r4, r6, #0x0 - add r7, #0x7c -_02014E20: - mov r0, #0x54 - add r1, r4, #0x0 - mul r1, r0 - add r0, r7, r1 - ldr r1, [r7, r1] - cmp r1, #0x0 - beq _02014E4E - add r1, r0, #0x0 - add r1, #0x2d - ldrb r1, [r1, #0x0] - cmp r1, #0x0 - bne _02014E40 - ldr r2, [r0, #0x50] - add r1, r5, #0x0 - blx r2 - b _02014E54 -_02014E40: - add r1, r0, #0x0 - add r1, #0x2d - ldrb r1, [r1, #0x0] - add r0, #0x2d - sub r1, r1, #0x1 - strb r1, [r0, #0x0] - b _02014E54 -_02014E4E: - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 -_02014E54: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x4 - blo _02014E20 - cmp r6, #0x4 - bne _02014E68 - ldr r0, _02014EFC ; =0x000001CD - mov r1, #0x0 - strb r1, [r5, r0] -_02014E68: - ldr r0, _02014EFC ; =0x000001CD - ldrb r1, [r5, r0] - cmp r1, #0x0 - beq _02014E7E - add r0, r5, #0x0 - bl FUN_020156E8 - add r0, r5, #0x0 - bl FUN_02015730 - pop {r3-r7, pc} -_02014E7E: - add r0, r0, #0x2 - ldrb r0, [r5, r0] - cmp r0, #0x0 - beq _02014E96 - ldr r0, [r5, #0x0] - bl FUN_02007F20 - cmp r0, #0x0 - bne _02014EF8 - ldr r0, _02014F00 ; =0x000001CF - mov r1, #0x0 - strb r1, [r5, r0] -_02014E96: - add r6, r5, #0x0 - add r4, r5, #0x0 - ldr r7, _02014F04 ; =0x020ED6A4 - add r6, #0xc - add r4, #0x44 -_02014EA0: - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - ldr r0, [r0, #0x0] - cmp r0, #0x22 - blo _02014EB2 - bl ErrorHandling -_02014EB2: - ldr r1, [r5, #0xc] - add r0, r5, #0x0 - ldr r1, [r1, #0x0] - lsl r1, r1, #0x2 - ldr r1, [r7, r1] - blx r1 - ldr r0, [r5, #0x1c] - cmp r0, #0x0 - bne _02014EF8 - ldr r0, [r6, #0x0] - add r0, r0, #0x4 - str r0, [r6, #0x0] - ldr r0, [r5, #0x18] - cmp r0, #0x0 - bne _02014EF8 - ldr r0, _02014EFC ; =0x000001CD - ldrb r0, [r5, r0] - cmp r0, #0x0 - beq _02014EE6 - add r0, r5, #0x0 - bl FUN_020156E8 - add r0, r5, #0x0 - bl FUN_02015730 - pop {r3-r7, pc} -_02014EE6: - mov r0, #0x1 - ldr r1, [r5, #0x44] - lsl r0, r0, #0x8 - cmp r1, r0 - blt _02014EA0 - bl ErrorHandling - mov r0, #0x1 - str r0, [r5, #0x1c] -_02014EF8: - pop {r3-r7, pc} - nop -_02014EFC: .word 0x000001CD -_02014F00: .word 0x000001CF -_02014F04: .word 0x020ED6A4 - - thumb_func_start FUN_02014F08 -FUN_02014F08: ; 0x02014F08 - push {r4, lr} - lsl r1, r1, #0x2 - ldr r4, [r0, r1] - cmp r2, #0x1 - beq _02014F16 - bl ErrorHandling -_02014F16: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02014F1C -FUN_02014F1C: ; 0x02014F1C - ldr r3, _02014F24 ; =FUN_02014F08 - add r2, r1, #0x0 - mov r1, #0x0 - bx r3 - .balign 4 -_02014F24: .word FUN_02014F08 - - thumb_func_start FUN_02014F28 -FUN_02014F28: ; 0x02014F28 - ldr r3, _02014F30 ; =FUN_02014F1C - mov r1, #0x1 - bx r3 - nop -_02014F30: .word FUN_02014F1C - - thumb_func_start FUN_02014F34 -FUN_02014F34: ; 0x02014F34 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r3, #0x0 - add r0, #0x7c - mov r2, #0x54 -_02014F3E: - add r1, r3, #0x0 - mul r1, r2 - add r4, r0, r1 - ldr r1, [r0, r1] - cmp r1, #0x0 - bne _02014F68 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x54 - bl MI_CpuFill8 - mov r0, #0x1 - str r0, [r4, #0x0] - mov r0, #0xc - add r1, r5, #0x0 - mul r1, r0 - ldr r0, _02014F7C ; =0x020ED668 - ldr r0, [r0, r1] - str r0, [r4, #0x50] - add r0, r4, #0x0 - pop {r3-r5, pc} -_02014F68: - add r1, r3, #0x1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #0x4 - blo _02014F3E - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02014F7C: .word 0x020ED668 - - thumb_func_start FUN_02014F80 -FUN_02014F80: ; 0x02014F80 - push {r4, lr} - add r4, r1, #0x0 - ldr r1, [r0, #0xc] - add r1, r1, #0x4 - str r1, [r0, #0xc] - add r0, r1, #0x0 - bl FUN_02014F28 - str r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02014F94 -FUN_02014F94: ; 0x02014F94 - push {r4, lr} - add r4, r1, #0x0 - ldr r1, [r0, #0xc] - add r1, r1, #0x4 - str r1, [r0, #0xc] - add r0, r1, #0x0 - bl FUN_02014F28 - strb r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02014FA8 -FUN_02014FA8: ; 0x02014FA8 - push {r4, lr} - add r4, r1, #0x0 - ldr r1, [r0, #0xc] - add r1, r1, #0x4 - str r1, [r0, #0xc] - add r0, r1, #0x0 - bl FUN_02014F28 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x0] - cmp r0, #0x8 - blo _02014FC4 - bl ErrorHandling -_02014FC4: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02014FC8 -FUN_02014FC8: ; 0x02014FC8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02014FA8 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02014FA8 - pop {r3-r5, pc} - - thumb_func_start FUN_02014FDC -FUN_02014FDC: ; 0x02014FDC - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02014FA8 - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x12 - bne _0201501C - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x2 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - add r1, r6, #0x0 - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x0] - add r0, r5, #0x0 - bl FUN_02014F80 - add sp, #0x4 - pop {r3-r6, pc} -_0201501C: - cmp r0, #0x13 - bne _02015048 - add r1, sp, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x2 - add r2, #0x1 - bl FUN_02014FC8 - add r0, sp, #0x0 - ldrb r1, [r0, #0x2] - add sp, #0x4 - lsl r1, r1, #0x2 - add r1, r5, r1 - ldr r1, [r1, #0x24] - str r1, [r4, #0x0] - ldrb r0, [r0, #0x1] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [r6, #0x0] - pop {r3-r6, pc} -_02015048: - bl ErrorHandling - add sp, #0x4 - pop {r3-r6, pc} - - thumb_func_start FUN_02015050 -FUN_02015050: ; 0x02015050 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02014FA8 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x1 - bl FUN_02014F94 - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r0, #0x12 - bne _02015082 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02014F80 - b _020150A2 -_02015082: - cmp r0, #0x13 - bne _0201509E - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x3] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x0] - b _020150A2 -_0201509E: - bl ErrorHandling -_020150A2: - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x12 - bne _020150B6 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02014F80 - add sp, #0x4 - pop {r3-r6, pc} -_020150B6: - cmp r0, #0x13 - bne _020150D4 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x2 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [r6, #0x0] - pop {r3-r6, pc} -_020150D4: - bl ErrorHandling - add sp, #0x4 - pop {r3-r6, pc} - - thumb_func_start FUN_020150DC -FUN_020150DC: ; 0x020150DC - push {r3-r7, lr} - sub sp, #0x8 - add r4, r2, #0x0 - add r2, sp, #0x0 - add r2, #0x3 - add r5, r0, #0x0 - add r6, r3, #0x0 - bl FUN_02014FC8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x3] - add r1, sp, #0x0 - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r7, [r0, #0x24] - add r0, r5, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x14 - bne _02015112 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02014F80 - b _02015132 -_02015112: - cmp r0, #0x15 - bne _0201512E - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x2 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [r6, #0x0] - b _02015132 -_0201512E: - bl ErrorHandling -_02015132: - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x14 - bne _0201514C - add r0, r5, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - b _0201516C -_0201514C: - cmp r0, #0x15 - bne _02015168 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x1 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0x4] - b _0201516C -_02015168: - bl ErrorHandling -_0201516C: - ldr r0, [sp, #0x4] - add r0, r7, r0 - lsr r2, r0, #0x1f - lsl r1, r0, #0x10 - sub r1, r1, r2 - mov r0, #0x10 - ror r1, r0 - add r0, r2, r1 - str r0, [r4, #0x0] - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02015184 -FUN_02015184: ; 0x02015184 - ldr r2, [r0, #0x0] - ldr r0, [r1, #0x0] - sub r0, r2, r0 - bpl _02015190 - mov r0, #0xf - bx lr -_02015190: - cmp r0, #0x0 - ble _02015198 - mov r0, #0x10 - bx lr -_02015198: - mov r0, #0x11 - bx lr - - thumb_func_start FUN_0201519C -FUN_0201519C: ; 0x0201519C - add r2, r0, #0x0 - ldr r0, [r2, #0x0] - ldr r2, [r2, #0x74] - mov r1, #0x1 - neg r3, r2 - asr r2, r3, #0x2 - lsr r2, r2, #0x1d - add r2, r3, r2 - ldr r3, _020151B4 ; =FUN_020079E0 - asr r2, r2, #0x3 - bx r3 - nop -_020151B4: .word FUN_020079E0 - - thumb_func_start FUN_020151B8 -FUN_020151B8: ; 0x020151B8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020151D0 - mov r0, #0x1 - str r0, [r4, #0x18] - str r0, [r4, #0x1c] - pop {r4, pc} - - thumb_func_start FUN_020151C8 -FUN_020151C8: ; 0x020151C8 - mov r1, #0x1 - str r1, [r0, #0x18] - bx lr - .balign 4 - - thumb_func_start FUN_020151D0 -FUN_020151D0: ; 0x020151D0 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r2, [r4, #0x58] - mov r1, #0x0 - bl FUN_02007558 - ldr r0, [r4, #0x0] - ldr r2, [r4, #0x5c] - mov r1, #0x1 - bl FUN_02007558 - ldr r0, [r4, #0x0] - mov r1, #0x9 - mov r2, #0x0 - bl FUN_02007558 - ldr r0, [r4, #0x0] - mov r1, #0xa - mov r2, #0x0 - bl FUN_02007558 - mov r1, #0xc - add r2, r1, #0x0 - ldr r0, [r4, #0x0] - add r2, #0xf4 - bl FUN_02007558 - mov r1, #0xd - add r2, r1, #0x0 - ldr r0, [r4, #0x0] - add r2, #0xf3 - bl FUN_02007558 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02015218 -FUN_02015218: ; 0x02015218 - push {r3-r4, lr} - sub sp, #0x4 - add r1, sp, #0x0 - add r1, #0x1 - add r2, sp, #0x0 - add r4, r0, #0x0 - bl FUN_02014FC8 - add r0, sp, #0x0 - ldrb r1, [r0, #0x0] - ldrb r0, [r0, #0x1] - lsl r1, r1, #0x2 - add r1, r4, r1 - lsl r0, r0, #0x2 - ldr r1, [r1, #0x24] - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_02015240 -FUN_02015240: ; 0x02015240 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_02014FDC - ldr r1, [sp, #0x8] - ldr r0, [sp, #0x4] - add r1, r1, r0 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x2 - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_02015264 -FUN_02015264: ; 0x02015264 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_02014FDC - ldr r1, [sp, #0x8] - ldr r0, [sp, #0x4] - add r2, r1, #0x0 - mul r2, r0 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x2 - add r0, r4, r0 - str r2, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201528C -FUN_0201528C: ; 0x0201528C - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_02015050 - ldr r1, [sp, #0x8] - ldr r0, [sp, #0x4] - sub r1, r1, r0 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x2 - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_020152B0 -FUN_020152B0: ; 0x020152B0 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_02015050 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x4] - bl _s32_div_f - add r1, sp, #0x0 - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x2 - add r1, r4, r1 - str r0, [r1, #0x24] - add sp, #0xc - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_020152D8 -FUN_020152D8: ; 0x020152D8 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_02015050 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x4] - bl _s32_div_f - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x2 - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_02015300 -FUN_02015300: ; 0x02015300 - push {r3-r5, lr} - sub sp, #0x10 - add r1, sp, #0x0 - add r5, r0, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x14 - bne _02015334 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x3] - add r1, sp, #0x8 - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0xc] - add r0, r5, #0x0 - bl FUN_02014F80 - b _02015362 -_02015334: - cmp r0, #0x15 - bne _0201535E - add r1, sp, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3 - add r2, #0x2 - bl FUN_02014FC8 - add r0, sp, #0x0 - ldrb r1, [r0, #0x3] - lsl r1, r1, #0x2 - add r1, r5, r1 - ldr r1, [r1, #0x24] - str r1, [sp, #0xc] - ldrb r0, [r0, #0x2] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0x8] - b _02015362 -_0201535E: - bl ErrorHandling -_02015362: - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x1 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r0, #0x11 - bls _02015378 - bl ErrorHandling -_02015378: - add r0, sp, #0xc - add r1, sp, #0x8 - bl FUN_02015184 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x14 - bne _020153A6 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3 - bl FUN_02014FA8 - add r0, r5, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - b _020153CA -_020153A6: - cmp r0, #0x15 - bne _020153C6 - add r1, sp, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3 - add r2, #0x2 - bl FUN_02014FC8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0x4] - b _020153CA -_020153C6: - bl ErrorHandling -_020153CA: - add r0, sp, #0x0 - ldrb r1, [r0, #0x1] - cmp r1, r4 - bne _020153DC - ldrb r0, [r0, #0x3] - ldr r1, [sp, #0x4] - lsl r0, r0, #0x2 - add r0, r5, r0 - str r1, [r0, #0x24] -_020153DC: - add sp, #0x10 - pop {r3-r5, pc} - - thumb_func_start FUN_020153E0 -FUN_020153E0: ; 0x020153E0 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r1, sp, #0x0 - bl FUN_02014FA8 - ldr r0, [r4, #0xc] - add r0, r0, #0x4 - str r0, [r4, #0xc] - bl FUN_02014F28 - add r1, sp, #0x0 - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x2 - add r1, r4, r1 - str r0, [r1, #0x24] - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_02015404 -FUN_02015404: ; 0x02015404 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x50] - cmp r0, #0x0 - beq _02015412 - bl ErrorHandling -_02015412: - ldr r0, [r4, #0xc] - add r0, r0, #0x4 - str r0, [r4, #0xc] - str r0, [r4, #0x50] - ldr r0, [r4, #0xc] - bl FUN_02014F28 - str r0, [r4, #0x48] - mov r0, #0x0 - str r0, [r4, #0x4c] - pop {r4, pc} - - thumb_func_start FUN_02015428 -FUN_02015428: ; 0x02015428 - ldr r1, [r0, #0x4c] - add r2, r1, #0x1 - str r2, [r0, #0x4c] - ldr r1, [r0, #0x48] - cmp r2, r1 - blt _0201543E - mov r1, #0x0 - str r1, [r0, #0x50] - str r1, [r0, #0x4c] - str r1, [r0, #0x48] - bx lr -_0201543E: - ldr r1, [r0, #0x50] - str r1, [r0, #0xc] - bx lr - - thumb_func_start FUN_02015444 -FUN_02015444: ; 0x02015444 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02014FA8 - add r2, sp, #0x0 - ldrb r2, [r2, #0x0] - ldr r0, [r4, #0x0] - ldr r1, [sp, #0x4] - lsl r2, r2, #0x2 - add r2, r4, r2 - ldr r2, [r2, #0x24] - bl FUN_02007558 - add sp, #0x8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02015470 -FUN_02015470: ; 0x02015470 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02014FA8 - add r2, sp, #0x0 - ldrb r2, [r2, #0x0] - ldr r0, [r4, #0x0] - ldr r1, [sp, #0x4] - lsl r2, r2, #0x2 - add r2, r4, r2 - ldr r2, [r2, #0x24] - bl FUN_020079E0 - add sp, #0x8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201549C -FUN_0201549C: ; 0x0201549C - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x8 - add r4, r0, #0x0 - bl FUN_02014F80 - add r1, sp, #0x0 - add r0, r4, #0x0 - add r1, #0x1 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r0, #0x14 - bne _020154C4 - add r0, r4, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - b _020154E4 -_020154C4: - cmp r0, #0x15 - bne _020154E0 - add r1, sp, #0x0 - add r0, r4, #0x0 - add r1, #0x2 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0x4] - b _020154E4 -_020154E0: - bl ErrorHandling -_020154E4: - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x16 - bne _02015502 - ldr r0, [r4, #0x0] - ldr r1, [sp, #0x8] - ldr r2, [sp, #0x4] - bl FUN_02007558 - add sp, #0xc - pop {r3-r4, pc} -_02015502: - cmp r0, #0x17 - bne _02015514 - ldr r0, [r4, #0x0] - ldr r1, [sp, #0x8] - ldr r2, [sp, #0x4] - bl FUN_020079E0 - add sp, #0xc - pop {r3-r4, pc} -_02015514: - bl ErrorHandling - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0201551C -FUN_0201551C: ; 0x0201551C - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_020150DC - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x4] - asr r0, r0, #0x4 - lsl r1, r0, #0x2 - ldr r0, _0201554C ; =0x020FFA38 - ldrsh r0, [r0, r1] - mul r0, r2 - asr r1, r0, #0xc - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x2 - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - nop -_0201554C: .word 0x020FFA38 - - thumb_func_start FUN_02015550 -FUN_02015550: ; 0x02015550 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x0 - add r2, sp, #0x8 - add r3, sp, #0x4 - add r4, r0, #0x0 - bl FUN_020150DC - ldr r1, [sp, #0x8] - ldr r0, [sp, #0x4] - asr r1, r1, #0x4 - lsl r1, r1, #0x1 - add r1, r1, #0x1 - lsl r2, r1, #0x1 - ldr r1, _02015584 ; =0x020FFA38 - ldrsh r1, [r1, r2] - mul r1, r0 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - asr r1, r1, #0xc - lsl r0, r0, #0x2 - add r0, r4, r0 - str r1, [r0, #0x24] - add sp, #0xc - pop {r3-r4, pc} - nop -_02015584: .word 0x020FFA38 - - thumb_func_start FUN_02015588 -FUN_02015588: ; 0x02015588 - push {r3-r4, lr} - sub sp, #0x4 - add r1, sp, #0x0 - add r4, r0, #0x0 - add r1, #0x1 - bl FUN_02014FA8 - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r1, [r0, #0x0] - cmp r1, #0x8 - bne _020155B4 - ldrb r0, [r0, #0x1] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x60] - pop {r3-r4, pc} -_020155B4: - cmp r1, #0x9 - bne _020155C6 - ldrb r0, [r0, #0x1] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x64] - pop {r3-r4, pc} -_020155C6: - bl ErrorHandling - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_020155D0 -FUN_020155D0: ; 0x020155D0 - push {r3-r4, lr} - sub sp, #0x4 - add r1, sp, #0x0 - add r4, r0, #0x0 - add r1, #0x1 - bl FUN_02014FA8 - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r1, [r0, #0x0] - cmp r1, #0x8 - bne _02015600 - ldrb r0, [r0, #0x1] - ldr r1, [r4, #0x60] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - add r0, r1, r0 - str r0, [r4, #0x60] - pop {r3-r4, pc} -_02015600: - cmp r1, #0x9 - bne _02015616 - ldrb r0, [r0, #0x1] - ldr r1, [r4, #0x64] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - add r0, r1, r0 - str r0, [r4, #0x64] - pop {r3-r4, pc} -_02015616: - bl ErrorHandling - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_02015620 -FUN_02015620: ; 0x02015620 - push {r3-r5, lr} - sub sp, #0x8 - add r1, sp, #0x0 - add r1, #0x3 - add r5, r0, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x3] - cmp r0, #0x8 - bne _0201563C - add r4, r5, #0x0 - add r4, #0x60 - b _0201567C -_0201563C: - cmp r0, #0x9 - bne _02015646 - add r4, r5, #0x0 - add r4, #0x64 - b _0201567C -_02015646: - cmp r0, #0xa - bne _02015650 - add r4, r5, #0x0 - add r4, #0x68 - b _0201567C -_02015650: - cmp r0, #0xb - bne _0201565A - add r4, r5, #0x0 - add r4, #0x6c - b _0201567C -_0201565A: - cmp r0, #0xc - bne _02015664 - add r4, r5, #0x0 - add r4, #0x70 - b _0201567C -_02015664: - cmp r0, #0xd - bne _0201566E - add r4, r5, #0x0 - add r4, #0x74 - b _0201567C -_0201566E: - cmp r0, #0xe - bne _02015678 - add r4, r5, #0x0 - add r4, #0x78 - b _0201567C -_02015678: - bl ErrorHandling -_0201567C: - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x1 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r0, #0x14 - bne _02015698 - add r0, r5, #0x0 - add r1, sp, #0x4 - bl FUN_02014F80 - b _020156B8 -_02015698: - cmp r0, #0x15 - bne _020156B4 - add r1, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x2 - bl FUN_02014FA8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x2] - lsl r0, r0, #0x2 - add r0, r5, r0 - ldr r0, [r0, #0x24] - str r0, [sp, #0x4] - b _020156B8 -_020156B4: - bl ErrorHandling -_020156B8: - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02014F94 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x16 - bne _020156D0 - ldr r0, [sp, #0x4] - add sp, #0x8 - str r0, [r4, #0x0] - pop {r3-r5, pc} -_020156D0: - cmp r0, #0x17 - bne _020156E0 - ldr r0, [sp, #0x4] - ldr r1, [r4, #0x0] - add sp, #0x8 - add r0, r1, r0 - str r0, [r4, #0x0] - pop {r3-r5, pc} -_020156E0: - bl ErrorHandling - add sp, #0x8 - pop {r3-r5, pc} - - thumb_func_start FUN_020156E8 -FUN_020156E8: ; 0x020156E8 - push {r3-r5, lr} - add r4, r0, #0x0 - mov r0, #0x73 - lsl r0, r0, #0x2 - ldrb r0, [r4, r0] - cmp r0, #0x0 - ldr r0, [r4, #0x0] - beq _0201570A - ldr r3, [r4, #0x60] - ldr r2, [r4, #0x68] - ldr r5, [r4, #0x58] - add r2, r3, r2 - mov r1, #0x0 - sub r2, r5, r2 - bl FUN_02007558 - b _0201571A -_0201570A: - ldr r3, [r4, #0x58] - ldr r2, [r4, #0x60] - ldr r5, [r4, #0x68] - add r2, r3, r2 - mov r1, #0x0 - add r2, r5, r2 - bl FUN_02007558 -_0201571A: - ldr r3, [r4, #0x5c] - ldr r2, [r4, #0x64] - ldr r5, [r4, #0x6c] - add r2, r3, r2 - ldr r0, [r4, #0x0] - mov r1, #0x1 - add r2, r5, r2 - bl FUN_02007558 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02015730 -FUN_02015730: ; 0x02015730 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0xc - add r2, r1, #0x0 - ldr r3, [r4, #0x70] - add r2, #0xf4 - ldr r0, [r4, #0x0] - add r2, r3, r2 - bl FUN_02007558 - mov r1, #0xd - add r2, r1, #0x0 - ldr r3, [r4, #0x74] - add r2, #0xf3 - ldr r0, [r4, #0x0] - add r2, r3, r2 - bl FUN_02007558 - ldr r2, [r4, #0x78] - ldr r0, [r4, #0x0] - lsl r2, r2, #0x10 - mov r1, #0x9 - lsr r2, r2, #0x10 - bl FUN_02007558 - ldr r0, _02015794 ; =0x000001CE - ldrb r0, [r4, r0] - cmp r0, #0x1b - bne _02015778 - ldr r0, [r4, #0x74] - cmp r0, #0x0 - bge _02015792 - add r0, r4, #0x0 - bl FUN_0201519C - pop {r4, pc} -_02015778: - cmp r0, #0x1d - bne _0201578A - ldr r0, [r4, #0x74] - cmp r0, #0x0 - beq _02015792 - add r0, r4, #0x0 - bl FUN_0201519C - pop {r4, pc} -_0201578A: - cmp r0, #0x1c - beq _02015792 - bl ErrorHandling -_02015792: - pop {r4, pc} - .balign 4 -_02015794: .word 0x000001CE - - thumb_func_start FUN_02015798 -FUN_02015798: ; 0x02015798 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r1, sp, #0x0 - bl FUN_02014FA8 - ldr r0, [r4, #0xc] - add r0, r0, #0x4 - str r0, [r4, #0xc] - bl FUN_02014F28 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x8 - beq _020157BA - cmp r0, #0xa - bne _020157CA -_020157BA: - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x68] - pop {r3-r4, pc} -_020157CA: - cmp r0, #0x9 - beq _020157D2 - cmp r0, #0xb - bne _020157E2 -_020157D2: - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - add sp, #0x4 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x24] - str r0, [r4, #0x6c] - pop {r3-r4, pc} -_020157E2: - bl ErrorHandling - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_020157EC -FUN_020157EC: ; 0x020157EC - push {r4, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x54 - bl FUN_02014F80 - mov r0, #0x1 - str r0, [r4, #0x18] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02015800 -FUN_02015800: ; 0x02015800 - push {r3-r4, lr} - sub sp, #0xc - add r1, sp, #0x4 - add r1, #0x2 - add r4, r0, #0x0 - bl FUN_02014F94 - add r1, sp, #0x4 - add r0, r4, #0x0 - add r1, #0x1 - bl FUN_02014F94 - add r0, r4, #0x0 - add r1, sp, #0x4 - bl FUN_02014F94 - add r0, r4, #0x0 - add r1, sp, #0x8 - bl FUN_02014F80 - ldr r0, [sp, #0x8] - add r3, sp, #0x4 - str r0, [sp, #0x0] - ldrb r1, [r3, #0x2] - ldrb r2, [r3, #0x1] - ldrb r3, [r3, #0x0] - ldr r0, [r4, #0x0] - bl FUN_02007E68 - add sp, #0xc - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_02015840 -FUN_02015840: ; 0x02015840 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_02007F20 - cmp r0, #0x0 - beq _02015856 - ldr r0, _02015858 ; =0x000001CF - mov r1, #0x1 - strb r1, [r4, r0] - str r1, [r4, #0x18] -_02015856: - pop {r4, pc} - .balign 4 -_02015858: .word 0x000001CF - - thumb_func_start FUN_0201585C -FUN_0201585C: ; 0x0201585C - ldr r1, _02015864 ; =0x000001CD - mov r2, #0x1 - strb r2, [r0, r1] - bx lr - .balign 4 -_02015864: .word 0x000001CD - - thumb_func_start FUN_02015868 -FUN_02015868: ; 0x02015868 - push {r4, lr} - ldr r1, _0201589C ; =0x000001CE - add r4, r0, #0x0 - add r1, r4, r1 - bl FUN_02014F94 - ldr r0, _0201589C ; =0x000001CE - mov r1, #0x1 - ldrb r0, [r4, r0] - add r2, r1, #0x0 - cmp r0, #0x1b - beq _02015886 - cmp r0, #0x1d - beq _02015886 - mov r2, #0x0 -_02015886: - cmp r2, #0x0 - bne _02015890 - cmp r0, #0x1c - beq _02015890 - mov r1, #0x0 -_02015890: - cmp r1, #0x0 - bne _02015898 - bl ErrorHandling -_02015898: - pop {r4, pc} - nop -_0201589C: .word 0x000001CE - - thumb_func_start FUN_020158A0 -FUN_020158A0: ; 0x020158A0 - ldr r3, _020158A8 ; =FUN_0201598C - mov r1, #0x0 - bx r3 - nop -_020158A8: .word FUN_0201598C - - thumb_func_start FUN_020158AC -FUN_020158AC: ; 0x020158AC - ldr r3, _020158B4 ; =FUN_0201598C - mov r1, #0x1 - bx r3 - nop -_020158B4: .word FUN_0201598C - - thumb_func_start FUN_020158B8 -FUN_020158B8: ; 0x020158B8 - ldr r3, _020158C0 ; =FUN_0201598C - mov r1, #0x2 - bx r3 - nop -_020158C0: .word FUN_0201598C - - thumb_func_start FUN_020158C4 -FUN_020158C4: ; 0x020158C4 - ldr r3, _020158CC ; =FUN_0201598C - mov r1, #0x3 - bx r3 - nop -_020158CC: .word FUN_0201598C - - thumb_func_start FUN_020158D0 -FUN_020158D0: ; 0x020158D0 - ldr r3, _020158D8 ; =FUN_0201598C - mov r1, #0x4 - bx r3 - nop -_020158D8: .word FUN_0201598C - - thumb_func_start FUN_020158DC -FUN_020158DC: ; 0x020158DC - push {r3, lr} - cmp r0, #0x18 - bne _020158E8 - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - pop {r3, pc} -_020158E8: - cmp r0, #0x19 - bne _020158F6 - ldr r1, [r1, #0x0] - ldr r0, [r2, #0x0] - add r0, r1, r0 - str r0, [r3, #0x0] - pop {r3, pc} -_020158F6: - cmp r0, #0x1a - bne _02015904 - ldr r1, [r3, #0x0] - ldr r0, [r2, #0x0] - add r0, r1, r0 - str r0, [r3, #0x0] - pop {r3, pc} -_02015904: - bl ErrorHandling - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201590C -FUN_0201590C: ; 0x0201590C - push {r3, lr} - sub r0, #0x23 - cmp r0, #0x4 - bhi _02015984 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02015920: ; jump table (using 16-bit offset) - .short _0201592A - _02015920 - 2; case 0 - .short _0201593C - _02015920 - 2; case 1 - .short _0201594E - _02015920 - 2; case 2 - .short _02015960 - _02015920 - 2; case 3 - .short _02015972 - _02015920 - 2; case 4 -_0201592A: - add r0, r1, #0x0 - add r0, #0x3c - str r0, [r1, #0x24] - add r0, r2, #0x0 - add r0, #0x68 - str r0, [r1, #0x28] - ldr r0, [r2, #0x68] - str r0, [r1, #0x30] - pop {r3, pc} -_0201593C: - add r0, r1, #0x0 - add r0, #0x40 - str r0, [r1, #0x24] - add r0, r2, #0x0 - add r0, #0x6c - str r0, [r1, #0x28] - ldr r0, [r2, #0x6c] - str r0, [r1, #0x30] - pop {r3, pc} -_0201594E: - add r0, r1, #0x0 - add r0, #0x44 - str r0, [r1, #0x24] - add r0, r2, #0x0 - add r0, #0x70 - str r0, [r1, #0x28] - ldr r0, [r2, #0x70] - str r0, [r1, #0x30] - pop {r3, pc} -_02015960: - add r0, r1, #0x0 - add r0, #0x48 - str r0, [r1, #0x24] - add r0, r2, #0x0 - add r0, #0x74 - str r0, [r1, #0x28] - ldr r0, [r2, #0x74] - str r0, [r1, #0x30] - pop {r3, pc} -_02015972: - add r0, r1, #0x0 - add r0, #0x4c - str r0, [r1, #0x24] - add r0, r2, #0x0 - add r0, #0x78 - str r0, [r1, #0x28] - ldr r0, [r2, #0x78] - str r0, [r1, #0x30] - pop {r3, pc} -_02015984: - bl ErrorHandling - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201598C -FUN_0201598C: ; 0x0201598C - push {r3-r7, lr} - sub sp, #0x8 - add r6, r1, #0x0 - lsl r1, r6, #0x18 - lsr r1, r1, #0x18 - add r5, r0, #0x0 - bl FUN_02014F34 - str r0, [sp, #0x4] - ldr r1, [sp, #0x4] - add r0, r5, #0x0 - add r1, #0x2c - bl FUN_02014F94 - ldr r1, [sp, #0x4] - add r0, r5, #0x0 - add r1, #0x2d - bl FUN_02014F94 - mov r0, #0xc - mul r0, r6 - ldr r1, _02015A28 ; =0x020ED66C - str r0, [sp, #0x0] - ldr r0, [r1, r0] - mov r4, #0x0 - cmp r0, #0x0 - ble _020159E2 - ldr r1, _02015A2C ; =0x020ED668 - ldr r0, [sp, #0x0] - add r6, r1, r0 - ldr r0, [sp, #0x4] - add r7, r0, #0x4 -_020159CC: - lsl r1, r4, #0x2 - add r0, r5, #0x0 - add r1, r7, r1 - bl FUN_02014F80 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, [r6, #0x4] - cmp r4, r0 - blt _020159CC -_020159E2: - ldr r1, _02015A30 ; =0x020ED670 - ldr r0, [sp, #0x0] - add r2, r5, #0x0 - ldr r0, [r1, r0] - lsl r1, r0, #0x2 - ldr r0, [sp, #0x4] - add r0, r0, r1 - ldr r0, [r0, #0x4] - ldr r1, [sp, #0x4] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_0201590C - ldr r0, [sp, #0x4] - add r0, #0x2d - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02015A14 - ldr r0, [sp, #0x4] - add r1, r5, #0x0 - add r2, r0, #0x0 - ldr r2, [r2, #0x50] - blx r2 - add sp, #0x8 - pop {r3-r7, pc} -_02015A14: - ldr r0, [sp, #0x4] - add r0, #0x2d - ldrb r0, [r0, #0x0] - sub r1, r0, #0x1 - ldr r0, [sp, #0x4] - add r0, #0x2d - str r0, [sp, #0x4] - strb r1, [r0, #0x0] - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02015A28: .word 0x020ED66C -_02015A2C: .word 0x020ED668 -_02015A30: .word 0x020ED670 - - thumb_func_start FUN_02015A34 -FUN_02015A34: ; 0x02015A34 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x1c] - ldr r1, [r4, #0x10] - add r0, r0, #0x1 - ldr r2, [r4, #0x14] - mul r0, r1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, [r4, #0x4] - sub r0, #0x1e - cmp r0, #0x3 - bhi _02015AC0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02015A5C: ; jump table (using 16-bit offset) - .short _02015A64 - _02015A5C - 2; case 0 - .short _02015A78 - _02015A5C - 2; case 1 - .short _02015A90 - _02015A5C - 2; case 2 - .short _02015AA6 - _02015A5C - 2; case 3 -_02015A64: - asr r0, r1, #0x4 - lsl r1, r0, #0x2 - ldr r0, _02015AE8 ; =0x020FFA38 - ldr r2, [r4, #0xc] - ldrsh r0, [r0, r1] - mul r0, r2 - asr r1, r0, #0xc - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015AC4 -_02015A78: - asr r1, r1, #0x4 - lsl r1, r1, #0x1 - add r1, r1, #0x1 - lsl r2, r1, #0x1 - ldr r1, _02015AE8 ; =0x020FFA38 - ldr r0, [r4, #0xc] - ldrsh r1, [r1, r2] - mul r1, r0 - ldr r0, [r4, #0x24] - asr r1, r1, #0xc - str r1, [r0, #0x0] - b _02015AC4 -_02015A90: - asr r0, r1, #0x4 - lsl r1, r0, #0x2 - ldr r0, _02015AE8 ; =0x020FFA38 - ldr r2, [r4, #0xc] - ldrsh r0, [r0, r1] - mul r0, r2 - asr r0, r0, #0xc - neg r1, r0 - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015AC4 -_02015AA6: - asr r1, r1, #0x4 - lsl r1, r1, #0x1 - add r1, r1, #0x1 - lsl r2, r1, #0x1 - ldr r1, _02015AE8 ; =0x020FFA38 - ldr r0, [r4, #0xc] - ldrsh r1, [r1, r2] - mul r1, r0 - asr r0, r1, #0xc - neg r1, r0 - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015AC4 -_02015AC0: - bl ErrorHandling -_02015AC4: - add r0, r4, #0x0 - add r0, #0x2c - ldrb r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r2, [r4, #0x24] - ldr r3, [r4, #0x28] - add r1, #0x30 - bl FUN_020158DC - ldr r0, [r4, #0x1c] - add r1, r0, #0x1 - str r1, [r4, #0x1c] - ldr r0, [r4, #0x18] - cmp r1, r0 - blt _02015AE6 - mov r0, #0x0 - str r0, [r4, #0x0] -_02015AE6: - pop {r4, pc} - .balign 4 -_02015AE8: .word 0x020FFA38 - - thumb_func_start FUN_02015AEC -FUN_02015AEC: ; 0x02015AEC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x1c] - ldr r1, [r4, #0x10] - add r0, r0, #0x1 - mul r0, r1 - ldr r1, [r4, #0x18] - bl _s32_div_f - ldr r1, [r4, #0x14] - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, [r4, #0x4] - sub r0, #0x1e - cmp r0, #0x3 - bhi _02015B7E - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02015B1A: ; jump table (using 16-bit offset) - .short _02015B22 - _02015B1A - 2; case 0 - .short _02015B36 - _02015B1A - 2; case 1 - .short _02015B4E - _02015B1A - 2; case 2 - .short _02015B64 - _02015B1A - 2; case 3 -_02015B22: - asr r0, r1, #0x4 - lsl r1, r0, #0x2 - ldr r0, _02015BA8 ; =0x020FFA38 - ldr r2, [r4, #0xc] - ldrsh r0, [r0, r1] - mul r0, r2 - asr r1, r0, #0xc - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015B82 -_02015B36: - asr r1, r1, #0x4 - lsl r1, r1, #0x1 - add r1, r1, #0x1 - lsl r2, r1, #0x1 - ldr r1, _02015BA8 ; =0x020FFA38 - ldr r0, [r4, #0xc] - ldrsh r1, [r1, r2] - mul r1, r0 - ldr r0, [r4, #0x24] - asr r1, r1, #0xc - str r1, [r0, #0x0] - b _02015B82 -_02015B4E: - asr r0, r1, #0x4 - lsl r1, r0, #0x2 - ldr r0, _02015BA8 ; =0x020FFA38 - ldr r2, [r4, #0xc] - ldrsh r0, [r0, r1] - mul r0, r2 - asr r0, r0, #0xc - neg r1, r0 - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015B82 -_02015B64: - asr r1, r1, #0x4 - lsl r1, r1, #0x1 - add r1, r1, #0x1 - lsl r2, r1, #0x1 - ldr r1, _02015BA8 ; =0x020FFA38 - ldr r0, [r4, #0xc] - ldrsh r1, [r1, r2] - mul r1, r0 - asr r0, r1, #0xc - neg r1, r0 - ldr r0, [r4, #0x24] - str r1, [r0, #0x0] - b _02015B82 -_02015B7E: - bl ErrorHandling -_02015B82: - add r0, r4, #0x0 - add r0, #0x2c - ldrb r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r2, [r4, #0x24] - ldr r3, [r4, #0x28] - add r1, #0x30 - bl FUN_020158DC - ldr r0, [r4, #0x1c] - add r1, r0, #0x1 - str r1, [r4, #0x1c] - ldr r0, [r4, #0x18] - cmp r1, r0 - blt _02015BA4 - mov r0, #0x0 - str r0, [r4, #0x0] -_02015BA4: - pop {r4, pc} - nop -_02015BA8: .word 0x020FFA38 - - thumb_func_start FUN_02015BAC -FUN_02015BAC: ; 0x02015BAC - push {r3-r5, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x24] - ldr r3, [r4, #0xc] - ldr r2, [r4, #0x14] - ldr r5, [r4, #0x8] - mul r2, r3 - ldr r0, [r1, #0x0] - add r2, r5, r2 - add r0, r0, r2 - str r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0x2c - add r1, r4, #0x0 - ldrb r0, [r0, #0x0] - ldr r2, [r4, #0x24] - ldr r3, [r4, #0x28] - add r1, #0x30 - bl FUN_020158DC - ldr r0, [r4, #0x14] - add r1, r0, #0x1 - str r1, [r4, #0x14] - ldr r0, [r4, #0x10] - cmp r1, r0 - blt _02015BE4 - mov r0, #0x0 - str r0, [r4, #0x0] -_02015BE4: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02015BE8 -FUN_02015BE8: ; 0x02015BE8 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x10] - add r1, r0, #0x1 - ldr r0, [r4, #0x8] - mul r0, r1 - ldr r1, [r4, #0xc] - bl _s32_div_f - ldr r1, [r4, #0x24] - str r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0x2c - add r1, r4, #0x0 - ldrb r0, [r0, #0x0] - ldr r2, [r4, #0x24] - ldr r3, [r4, #0x28] - add r1, #0x30 - bl FUN_020158DC - ldr r0, [r4, #0x10] - add r1, r0, #0x1 - str r1, [r4, #0x10] - ldr r0, [r4, #0xc] - cmp r1, r0 - blt _02015C20 - mov r0, #0x0 - str r0, [r4, #0x0] -_02015C20: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02015C24 -FUN_02015C24: ; 0x02015C24 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0xc] - ldr r0, [r4, #0x14] - ldr r2, [r4, #0x8] - mul r0, r1 - ldr r1, [r4, #0x24] - add r2, r2, r0 - ldr r0, [r1, #0x0] - add r0, r0, r2 - str r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0x2c - ldrb r0, [r0, #0x0] - cmp r0, #0x18 - beq _02015C48 - cmp r0, #0x1a - bne _02015C6E -_02015C48: - cmp r2, #0x0 - ldr r2, [r4, #0x10] - bge _02015C5E - ldr r1, [r4, #0x24] - ldr r0, [r1, #0x0] - cmp r0, r2 - bgt _02015CA4 - str r2, [r1, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02015CA4 -_02015C5E: - ldr r1, [r4, #0x24] - ldr r0, [r1, #0x0] - cmp r0, r2 - blt _02015CA4 - str r2, [r1, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02015CA4 -_02015C6E: - cmp r0, #0x19 - bne _02015CA0 - ldr r1, [r4, #0x24] - ldr r3, [r4, #0x30] - ldr r0, [r1, #0x0] - add r3, r3, r0 - cmp r2, #0x0 - ldr r2, [r4, #0x10] - bge _02015C90 - cmp r3, r2 - bgt _02015CA4 - sub r2, r2, r3 - add r0, r0, r2 - str r0, [r1, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02015CA4 -_02015C90: - cmp r3, r2 - blt _02015CA4 - sub r2, r3, r2 - sub r0, r0, r2 - str r0, [r1, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02015CA4 -_02015CA0: - bl ErrorHandling -_02015CA4: - add r0, r4, #0x0 - add r0, #0x2c - ldrb r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r2, [r4, #0x24] - ldr r3, [r4, #0x28] - add r1, #0x30 - bl FUN_020158DC - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02015CC0 -FUN_02015CC0: ; 0x02015CC0 - ldr r3, _02015CDC ; =0x020ED72C - mov r2, #0x0 -_02015CC4: - ldrh r1, [r3, #0x2] - cmp r0, r1 - bhs _02015CCE - add r0, r2, #0x0 - bx lr -_02015CCE: - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, #0x2 - blt _02015CC4 - add r0, r2, #0x0 - bx lr - nop -_02015CDC: .word 0x020ED72C - - thumb_func_start FUN_02015CE0 -FUN_02015CE0: ; 0x02015CE0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02015CC0 - lsl r1, r0, #0x1 - ldr r0, _02015CF4 ; =0x020ED72C - ldrh r0, [r0, r1] - sub r0, r4, r0 - pop {r4, pc} - nop -_02015CF4: .word 0x020ED72C - - thumb_func_start FUN_02015CF8 -FUN_02015CF8: ; 0x02015CF8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x3 - blt _02015D06 - bl ErrorHandling -_02015D06: - ldr r0, _02015D10 ; =0x020ED72C - lsl r1, r5, #0x1 - ldrh r0, [r0, r1] - add r0, r4, r0 - pop {r3-r5, pc} - .balign 4 -_02015D10: .word 0x020ED72C - - thumb_func_start FUN_02015D14 -FUN_02015D14: ; 0x02015D14 - cmp r0, #0x7 - bhi _02015D34 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02015D24: ; jump table (using 16-bit offset) - .short _02015D34 - _02015D24 - 2; case 0 - .short _02015D34 - _02015D24 - 2; case 1 - .short _02015D38 - _02015D24 - 2; case 2 - .short _02015D3E - _02015D24 - 2; case 3 - .short _02015D38 - _02015D24 - 2; case 4 - .short _02015D42 - _02015D24 - 2; case 5 - .short _02015D34 - _02015D24 - 2; case 6 - .short _02015D38 - _02015D24 - 2; case 7 -_02015D34: - mov r0, #0xea - bx lr -_02015D38: - mov r0, #0x6d - lsl r0, r0, #0x2 - bx lr -_02015D3E: - ldr r0, _02015D48 ; =0x000001B7 - bx lr -_02015D42: - ldr r0, _02015D4C ; =0x000001B6 - bx lr - nop -_02015D48: .word 0x000001B7 -_02015D4C: .word 0x000001B6 - - thumb_func_start FUN_02015D50 -FUN_02015D50: ; 0x02015D50 - cmp r0, #0x7 - bhi _02015D70 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02015D60: ; jump table (using 16-bit offset) - .short _02015D70 - _02015D60 - 2; case 0 - .short _02015D70 - _02015D60 - 2; case 1 - .short _02015D74 - _02015D60 - 2; case 2 - .short _02015D78 - _02015D60 - 2; case 3 - .short _02015D74 - _02015D60 - 2; case 4 - .short _02015D7E - _02015D60 - 2; case 5 - .short _02015D70 - _02015D60 - 2; case 6 - .short _02015D74 - _02015D60 - 2; case 7 -_02015D70: - mov r0, #0xeb - bx lr -_02015D74: - ldr r0, _02015D84 ; =0x000001B5 - bx lr -_02015D78: - mov r0, #0x6e - lsl r0, r0, #0x2 - bx lr -_02015D7E: - mov r0, #0x6d - lsl r0, r0, #0x2 - bx lr - .balign 4 -_02015D84: .word 0x000001B5 - - thumb_func_start FUN_02015D88 -FUN_02015D88: ; 0x02015D88 - push {r3-r7, lr} - sub sp, #0x10 - add r6, r3, #0x0 - str r0, [sp, #0x0] - str r1, [sp, #0x4] - str r2, [sp, #0x8] - cmp r6, #0x1 - beq _02015D9C - mov r2, #0x1 - b _02015D9E -_02015D9C: - mov r2, #0x0 -_02015D9E: - ldr r0, [sp, #0x8] - mov r4, #0x0 - sub r0, r0, #0x1 - str r0, [sp, #0xc] - beq _02015E18 - ldr r1, _02015E28 ; =0x020ED734 - lsl r0, r2, #0x1 - ldr r5, [sp, #0x4] - add r7, r1, r0 -_02015DB0: - ldr r0, [sp, #0x0] - ldrb r0, [r0, r4] - cmp r0, #0xff - beq _02015E18 - cmp r0, #0xf7 - blo _02015DEA - ldr r0, [sp, #0x8] - sub r3, r0, #0x1 - cmp r3, #0xa - blo _02015DC6 - mov r3, #0xa -_02015DC6: - mov r1, #0x0 - cmp r3, #0x0 - ble _02015DDC - mov r0, #0x6b - ldr r2, [sp, #0x4] - lsl r0, r0, #0x2 -_02015DD2: - add r1, r1, #0x1 - strh r0, [r2, #0x0] - add r2, r2, #0x2 - cmp r1, r3 - blt _02015DD2 -_02015DDC: - ldr r0, [sp, #0x4] - ldr r2, _02015E2C ; =0x0000FFFF - lsl r1, r1, #0x1 - strh r2, [r0, r1] - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_02015DEA: - lsl r0, r0, #0x2 - ldrh r0, [r7, r0] - cmp r0, #0xea - beq _02015DF8 - cmp r0, #0xeb - beq _02015E02 - b _02015E0C -_02015DF8: - add r0, r6, #0x0 - bl FUN_02015D14 - strh r0, [r5, #0x0] - b _02015E0E -_02015E02: - add r0, r6, #0x0 - bl FUN_02015D50 - strh r0, [r5, #0x0] - b _02015E0E -_02015E0C: - strh r0, [r5, #0x0] -_02015E0E: - ldr r0, [sp, #0xc] - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, r0 - blo _02015DB0 -_02015E18: - ldr r2, _02015E2C ; =0x0000FFFF - ldr r0, [sp, #0x4] - lsl r1, r4, #0x1 - strh r2, [r0, r1] - mov r0, #0x1 - add sp, #0x10 - pop {r3-r7, pc} - nop -_02015E28: .word 0x020ED734 -_02015E2C: .word 0x0000FFFF - - thumb_func_start FUN_02015E30 -FUN_02015E30: ; 0x02015E30 - ldr r0, _02015E38 ; =0x021C4898 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_02015E38: .word 0x021C4898 - - thumb_func_start FUN_02015E3C -FUN_02015E3C: ; 0x02015E3C - push {r3, lr} - ldr r1, _02015E5C ; =0x021C4898 - mov r2, #0x1 - str r2, [r1, #0x0] - mov r2, #0x0 - str r2, [r1, #0x10] - str r2, [r1, #0x14] - str r2, [r1, #0x8] - str r2, [r1, #0xc] - str r0, [r1, #0x4] - bl FUN_02020BF4 - ldr r2, _02015E5C ; =0x021C4898 - str r0, [r2, #0x18] - str r1, [r2, #0x1c] - pop {r3, pc} - .balign 4 -_02015E5C: .word 0x021C4898 - - thumb_func_start FUN_02015E60 -FUN_02015E60: ; 0x02015E60 - push {r3-r5, lr} - ldr r0, _02015E9C ; =0x021C4898 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02015E9A - bl FUN_02020BF4 - ldr r2, _02015E9C ; =0x021C4898 - ldr r3, [r2, #0x18] - ldr r2, [r2, #0x1c] - sub r0, r0, r3 - sbc r1, r2 - bl FUN_02020C14 - add r5, r1, #0x0 - ldr r1, _02015E9C ; =0x021C4898 - add r4, r0, #0x0 - ldr r3, [r1, #0x8] - ldr r2, [r1, #0xc] - sub r0, r3, r4 - sbc r2, r5 - bhs _02015E9A - ldr r0, [r1, #0x4] - sub r1, r4, r3 - bl FUN_02029E54 - ldr r0, _02015E9C ; =0x021C4898 - str r4, [r0, #0x8] - str r5, [r0, #0xc] -_02015E9A: - pop {r3-r5, pc} - .balign 4 -_02015E9C: .word 0x021C4898 - - thumb_func_start FUN_02015EA0 -FUN_02015EA0: ; 0x02015EA0 - push {r3, lr} - ldr r3, _02015EC8 ; =0x027E0000 - ldr r1, _02015ECC ; =0x00003FF8 - mov r0, #0x1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - mov r0, #0x3 - bl MI_WaitDma - ldr r0, _02015ED0 ; =0x021C48B8 - ldr r0, [r0, #0x1c] - bl FUN_0201B5CC - ldr r0, _02015ED0 ; =0x021C48B8 - ldr r1, [r0, #0x30] - add r1, r1, #0x1 - str r1, [r0, #0x30] - pop {r3, pc} - nop -_02015EC8: .word 0x027E0000 -_02015ECC: .word 0x00003FF8 -_02015ED0: .word 0x021C48B8 - - thumb_func_start FUN_02015ED4 -FUN_02015ED4: ; 0x02015ED4 - ldr r3, _02015EE8 ; =0x027E0000 - ldr r1, _02015EEC ; =0x00003FF8 - mov r0, #0x1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - ldr r3, _02015EF0 ; =MI_WaitDma - mov r0, #0x3 - bx r3 - nop -_02015EE8: .word 0x027E0000 -_02015EEC: .word 0x00003FF8 -_02015EF0: .word MI_WaitDma - - thumb_func_start FUN_02015EF4 -FUN_02015EF4: ; 0x02015EF4 - push {r3, lr} - mov r0, #0x1 - bl OS_DisableIrqMask - ldr r1, _02015F0C ; =FUN_02015ED4 - mov r0, #0x1 - bl OS_SetIrqFunction - mov r0, #0x1 - bl OS_EnableIrqMask - pop {r3, pc} - .balign 4 -_02015F0C: .word FUN_02015ED4 - - thumb_func_start FUN_02015F10 -FUN_02015F10: ; 0x02015F10 - ldr r2, _02015F18 ; =0x021C48B8 - str r0, [r2, #0x0] - str r1, [r2, #0x4] - bx lr - .balign 4 -_02015F18: .word 0x021C48B8 - - thumb_func_start FUN_02015F1C -FUN_02015F1C: ; 0x02015F1C - push {r3, lr} - mov r0, #0x0 - bl FUN_02015F80 - ldr r0, _02015F30 ; =0x021C48B8 - mov r1, #0x0 - str r1, [r0, #0x8] - str r1, [r0, #0xc] - pop {r3, pc} - nop -_02015F30: .word 0x021C48B8 - - thumb_func_start FUN_02015F34 -FUN_02015F34: ; 0x02015F34 - push {r3, lr} - cmp r0, #0x0 - bne _02015F4C - mov r0, #0x0 - bl FUN_02015F80 - ldr r0, _02015F68 ; =0x021C48B8 - mov r1, #0x0 - str r1, [r0, #0x8] - str r1, [r0, #0xc] - mov r0, #0x1 - pop {r3, pc} -_02015F4C: - ldr r2, _02015F68 ; =0x021C48B8 - ldr r3, [r2, #0x8] - cmp r3, #0x0 - bne _02015F62 - str r1, [r2, #0xc] - str r0, [r2, #0x8] - mov r0, #0x1 - bl FUN_02015F80 - mov r0, #0x1 - pop {r3, pc} -_02015F62: - mov r0, #0x0 - pop {r3, pc} - nop -_02015F68: .word 0x021C48B8 - - thumb_func_start FUN_02015F6C -FUN_02015F6C: ; 0x02015F6C - push {r3, lr} - ldr r0, _02015F7C ; =0x021C48B8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _02015F7A - ldr r0, [r0, #0xc] - blx r1 -_02015F7A: - pop {r3, pc} - .balign 4 -_02015F7C: .word 0x021C48B8 - - thumb_func_start FUN_02015F80 -FUN_02015F80: ; 0x02015F80 - push {r3, lr} - ldr r2, _02015FC0 ; =0x04000208 - ldrh r1, [r2, #0x0] - mov r1, #0x0 - strh r1, [r2, #0x0] - cmp r0, #0x0 - bne _02015F9E - ldr r0, [r2, #0x8] - mov r0, #0x2 - bl OS_DisableIrqMask - mov r0, #0x0 - bl GX_HBlankIntr - b _02015FB4 -_02015F9E: - ldr r0, [r2, #0x8] - ldr r1, _02015FC4 ; =FUN_02015F6C - mov r0, #0x2 - bl OS_SetIrqFunction - mov r0, #0x2 - bl OS_EnableIrqMask - mov r0, #0x1 - bl GX_HBlankIntr -_02015FB4: - ldr r1, _02015FC0 ; =0x04000208 - ldrh r0, [r1, #0x0] - mov r0, #0x1 - strh r0, [r1, #0x0] - pop {r3, pc} - nop -_02015FC0: .word 0x04000208 -_02015FC4: .word FUN_02015F6C - - thumb_func_start FUN_02015FC8 -FUN_02015FC8: ; 0x02015FC8 - push {r3, lr} - sub sp, #0x30 - add r0, sp, #0x10 - bl OS_GetLowEntropyData - add r0, sp, #0x0 - add r1, sp, #0x10 - mov r2, #0x20 - bl MATH_CalcMD5 - mov r3, #0x0 - add r1, r3, #0x0 - add r2, sp, #0x0 -_02015FE2: - ldrb r0, [r2, #0x0] - add r1, r1, #0x1 - add r2, r2, #0x1 - add r3, r3, r0 - cmp r1, #0x10 - blo _02015FE2 - lsl r0, r3, #0x18 - lsr r3, r0, #0x18 - mov r0, #0x3 - tst r0, r3 - beq _02016002 - mov r0, #0x3 -_02015FFA: - add r3, r3, #0x1 - add r1, r3, #0x0 - tst r1, r0 - bne _02015FFA -_02016002: - ldr r0, _02016010 ; =0x020EDB10 - mov r1, #0x4 - mov r2, #0x5c - bl FUN_020166C8 - add sp, #0x30 - pop {r3, pc} - .balign 4 -_02016010: .word 0x020EDB10 - - thumb_func_start InitSystemForTheGame -InitSystemForTheGame: ; 0x02016014 - push {r3-r5, lr} - bl OS_Init - bl FX_Init - ldr r2, _02016124 ; =0x04000304 - ldr r0, _02016128 ; =0xFFFFFDF1 - ldrh r1, [r2, #0x0] - and r1, r0 - ldr r0, _0201612C ; =0x0000020E - orr r0, r1 - strh r0, [r2, #0x0] - bl GX_Init - bl OS_InitTick - bl FUN_02015FC8 - mov r0, #0xa0 - bl FUN_0201B578 - add r1, r0, #0x0 - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - add r1, r0, #0x0 - mov r0, #0xa0 - bl FUN_0201B580 - ldr r1, _02016130 ; =0x021C48B8 - str r0, [r1, #0x18] - mov r0, #0x10 - bl FUN_0201B578 - add r1, r0, #0x0 - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - add r1, r0, #0x0 - mov r0, #0x10 - bl FUN_0201B580 - ldr r1, _02016130 ; =0x021C48B8 - str r0, [r1, #0x1c] - mov r0, #0x20 - bl FUN_0201B578 - add r1, r0, #0x0 - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - add r1, r0, #0x0 - mov r0, #0x20 - bl FUN_0201B580 - ldr r1, _02016130 ; =0x021C48B8 - str r0, [r1, #0x20] - mov r0, #0x4 - bl FUN_0201B578 - add r1, r0, #0x0 - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - add r1, r0, #0x0 - mov r0, #0x4 - bl FUN_0201B580 - ldr r1, _02016130 ; =0x021C48B8 - str r0, [r1, #0x24] - bl GX_DispOff - ldr r2, _02016134 ; =0x04001000 - ldr r0, _02016138 ; =0xFFFEFFFF - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - ldr r2, _02016124 ; =0x04000304 - ldrh r1, [r2, #0x0] - lsr r0, r2, #0xb - orr r0, r1 - strh r0, [r2, #0x0] - ldr r1, _0201613C ; =FUN_02015EA0 - mov r0, #0x1 - bl OS_SetIrqFunction - mov r0, #0x1 - bl OS_EnableIrqMask - mov r0, #0x1 - lsl r0, r0, #0x12 - bl OS_EnableIrqMask - ldr r1, _02016140 ; =0x04000208 - ldrh r0, [r1, #0x0] - mov r0, #0x1 - strh r0, [r1, #0x0] - bl GX_VBlankIntr - mov r0, #0x1 - bl FS_Init - bl FUN_02022450 - mov r0, #0x0 - add r1, r0, #0x0 - bl FS_TryLoadTable - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - add r5, r0, #0x0 - bne _02016108 - bl ErrorHandling -_02016108: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FS_TryLoadTable - ldr r0, _02016130 ; =0x021C48B8 - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x8] - str r1, [r0, #0x10] - str r1, [r0, #0x14] - str r1, [r0, #0x2c] - ldr r0, _02016144 ; =0x021C4918 - strb r1, [r0, #0x5] - pop {r3-r5, pc} - .balign 4 -_02016124: .word 0x04000304 -_02016128: .word 0xFFFFFDF1 -_0201612C: .word 0x0000020E -_02016130: .word 0x021C48B8 -_02016134: .word 0x04001000 -_02016138: .word 0xFFFEFFFF -_0201613C: .word FUN_02015EA0 -_02016140: .word 0x04000208 -_02016144: .word 0x021C4918 - - thumb_func_start InitGraphicMemory -InitGraphicMemory: ; 0x02016148 - push {r3, lr} - ldr r0, _02016198 ; =0x000001FF - bl GX_SetBankForLCDC - mov r1, #0x1a - mov r2, #0x29 - mov r0, #0x0 - lsl r1, r1, #0x16 - lsl r2, r2, #0xe - bl MIi_CpuClearFast - bl GX_DisableBankForLCDC - mov r1, #0x7 - mov r2, #0x1 - mov r0, #0xc0 - lsl r1, r1, #0x18 - lsl r2, r2, #0xa - bl MIi_CpuClearFast - mov r2, #0x1 - ldr r1, _0201619C ; =0x07000400 - mov r0, #0xc0 - lsl r2, r2, #0xa - bl MIi_CpuClearFast - mov r1, #0x5 - mov r2, #0x1 - mov r0, #0x0 - lsl r1, r1, #0x18 - lsl r2, r2, #0xa - bl MIi_CpuClearFast - mov r2, #0x1 - ldr r1, _020161A0 ; =0x05000400 - mov r0, #0x0 - lsl r2, r2, #0xa - bl MIi_CpuClearFast - pop {r3, pc} - .balign 4 -_02016198: .word 0x000001FF -_0201619C: .word 0x07000400 -_020161A0: .word 0x05000400 - - thumb_func_start FUN_020161A4 -FUN_020161A4: ; 0x020161A4 - push {r4-r6, lr} - sub sp, #0x48 - add r6, r0, #0x0 - add r4, r1, #0x0 - add r0, sp, #0x0 - bl FS_InitFile - add r0, sp, #0x0 - add r1, r4, #0x0 - bl FS_OpenFile - cmp r0, #0x0 - beq _020161F0 - ldr r1, [sp, #0x28] - ldr r0, [sp, #0x24] - sub r5, r1, r0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - beq _020161E8 - add r0, sp, #0x0 - add r1, r4, #0x0 - add r2, r5, #0x0 - bl FS_ReadFile - cmp r5, r0 - beq _020161E8 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02016A8C - mov r4, #0x0 -_020161E8: - add r0, sp, #0x0 - bl FS_CloseFile - b _020161F2 -_020161F0: - mov r4, #0x0 -_020161F2: - add r0, r4, #0x0 - add sp, #0x48 - pop {r4-r6, pc} - - thumb_func_start FUN_020161F8 -FUN_020161F8: ; 0x020161F8 - push {r3-r5, lr} - sub sp, #0x48 - add r5, r0, #0x0 - add r0, sp, #0x0 - add r4, r1, #0x0 - bl FS_InitFile - add r0, sp, #0x0 - add r1, r5, #0x0 - bl FS_OpenFile - cmp r0, #0x0 - beq _0201622A - ldr r1, [sp, #0x28] - ldr r0, [sp, #0x24] - sub r2, r1, r0 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02016224 - add r0, sp, #0x0 - bl FS_ReadFile -_02016224: - add r0, sp, #0x0 - bl FS_CloseFile -_0201622A: - add sp, #0x48 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02016230 -FUN_02016230: ; 0x02016230 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - bl strlen - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - lsr r2, r3, #0x1f - lsl r1, r3, #0x1e - sub r1, r1, r2 - mov r0, #0x1e - ror r1, r0 - add r0, r2, r1 - beq _02016258 - lsr r0, r3, #0x2 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - b _0201625E -_02016258: - lsl r0, r3, #0xe - lsr r0, r0, #0x10 - str r0, [sp, #0x4] -_0201625E: - ldr r0, [sp, #0x4] - mov r7, #0x0 - mov r12, r7 - cmp r0, #0x0 - ble _0201629A - add r6, r7, #0x0 - add r4, r7, #0x0 -_0201626C: - ldr r2, [sp, #0x0] - mov r1, #0x0 - add r0, r1, #0x0 - add r2, r2, r6 - add r3, r1, #0x0 -_02016276: - ldrsb r5, [r2, r4] - cmp r5, #0x0 - beq _0201628A - lsl r5, r3 - add r0, r0, #0x1 - orr r1, r5 - add r2, r2, #0x1 - add r3, #0x8 - cmp r0, #0x4 - blt _02016276 -_0201628A: - mov r0, r12 - eor r7, r1 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - add r6, r6, #0x4 - mov r12, r1 - cmp r1, r0 - blt _0201626C -_0201629A: - add r0, r7, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_020162A0 -FUN_020162A0: ; 0x020162A0 - ldr r3, _020162C4 ; =0x021C4928 - mov r2, #0x0 -_020162A4: - ldr r1, [r3, #0x4] - cmp r0, r1 - bne _020162B4 - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _020162B4 - add r0, r2, #0x0 - bx lr -_020162B4: - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, #0x80 - blt _020162A4 - mov r0, #0x0 - mvn r0, r0 - bx lr - nop -_020162C4: .word 0x021C4928 - - thumb_func_start FUN_020162C8 -FUN_020162C8: ; 0x020162C8 - push {r3-r4} - ldr r3, _020162F4 ; =0x021C4928 - mov r4, #0x0 -_020162CE: - ldr r2, [r3, #0x0] - cmp r2, #0x0 - bne _020162E4 - ldr r2, _020162F4 ; =0x021C4928 - lsl r3, r4, #0x3 - str r0, [r2, r3] - ldr r0, _020162F8 ; =0x021C492C - str r1, [r0, r3] - add r0, r4, #0x0 - pop {r3-r4} - bx lr -_020162E4: - add r4, r4, #0x1 - add r3, #0x8 - cmp r4, #0x80 - blt _020162CE - mov r0, #0x0 - mvn r0, r0 - pop {r3-r4} - bx lr - .balign 4 -_020162F4: .word 0x021C4928 -_020162F8: .word 0x021C492C - - thumb_func_start FUN_020162FC -FUN_020162FC: ; 0x020162FC - push {r3-r7, lr} - mov r6, #0x0 - ldr r5, _02016320 ; =0x021C4D20 - mov r4, #0x7f - sub r7, r6, #0x1 -_02016306: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _02016314 - bl FUN_02016A18 - str r6, [r5, #0x0] - str r6, [r5, #0x4] -_02016314: - sub r4, r4, #0x1 - sub r5, #0x8 - cmp r4, r7 - bgt _02016306 - pop {r3-r7, pc} - nop -_02016320: .word 0x021C4D20 - - thumb_func_start FUN_02016324 -FUN_02016324: ; 0x02016324 - push {r3-r7, lr} - sub sp, #0x68 - add r2, r0, #0x0 - mov r5, #0x0 - ldrsb r0, [r2, r5] - add r4, r1, #0x0 - cmp r0, #0x21 - add r0, sp, #0x0 - bne _02016340 - add r1, r2, #0x1 - bl strcpy - mov r5, #0x1 - b _02016346 -_02016340: - add r1, r2, #0x0 - bl strcpy -_02016346: - add r0, sp, #0x0 - bl FUN_02016230 - add r7, r0, #0x0 - bl FUN_020162A0 - cmp r0, #0x0 - blt _02016362 - cmp r5, #0x0 - bne _02016362 - lsl r1, r0, #0x3 - ldr r0, _020163B8 ; =0x021C4928 - ldr r4, [r0, r1] - b _020163B2 -_02016362: - add r0, sp, #0x20 - bl FS_InitFile - add r0, sp, #0x20 - add r1, sp, #0x0 - bl FS_OpenFile - cmp r0, #0x0 - beq _020163B0 - ldr r1, [sp, #0x48] - ldr r0, [sp, #0x44] - sub r6, r1, r0 - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - beq _0201639C - add r0, sp, #0x20 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FS_ReadFile - cmp r6, r0 - beq _0201639C - add r0, r4, #0x0 - bl FUN_02016A18 - mov r4, #0x0 -_0201639C: - add r0, sp, #0x20 - bl FS_CloseFile - cmp r5, #0x0 - bne _020163B2 - add r0, r4, #0x0 - add r1, r7, #0x0 - bl FUN_020162C8 - b _020163B2 -_020163B0: - mov r4, #0x0 -_020163B2: - add r0, r4, #0x0 - add sp, #0x68 - pop {r3-r7, pc} - .balign 4 -_020163B8: .word 0x021C4928 - - thumb_func_start FUN_020163BC -FUN_020163BC: ; 0x020163BC - push {r3, lr} - sub sp, #0x8 - ldr r0, _0201641C ; =0x021C48B8 - mov r2, #0x0 - str r2, [r0, #0x34] - str r2, [r0, #0x38] - str r2, [r0, #0x3c] - str r2, [r0, #0x40] - str r2, [r0, #0x44] - str r2, [r0, #0x48] - str r2, [r0, #0x4c] - str r2, [r0, #0x50] - mov r1, #0x8 - str r1, [r0, #0x54] - mov r1, #0xf - str r1, [r0, #0x58] - ldr r0, _02016420 ; =0x021C48F8 - strh r2, [r0, #0x1c] - strh r2, [r0, #0x1e] - strh r2, [r0, #0x20] - strh r2, [r0, #0x22] - ldr r0, _02016424 ; =0x021C4918 - strb r2, [r0, #0x4] - bl TP_Init - add r0, sp, #0x0 - bl TP_GetUserInfo - cmp r0, #0x1 - add r0, sp, #0x0 - bne _02016402 - bl TP_SetCalibrateParam - add sp, #0x8 - pop {r3, pc} -_02016402: - ldr r1, _02016428 ; =0x000002AE - strh r1, [r0, #0x0] - ldr r1, _0201642C ; =0x0000058C - strh r1, [r0, #0x2] - ldr r1, _02016430 ; =0x00000E25 - strh r1, [r0, #0x4] - ldr r1, _02016434 ; =0x00001208 - strh r1, [r0, #0x6] - add r0, sp, #0x0 - bl TP_SetCalibrateParam - add sp, #0x8 - pop {r3, pc} - .balign 4 -_0201641C: .word 0x021C48B8 -_02016420: .word 0x021C48F8 -_02016424: .word 0x021C4918 -_02016428: .word 0x000002AE -_0201642C: .word 0x0000058C -_02016430: .word 0x00000E25 -_02016434: .word 0x00001208 - - thumb_func_start FUN_02016438 -FUN_02016438: ; 0x02016438 - ldr r1, _02016440 ; =0x021C4918 - strb r0, [r1, #0x6] - bx lr - nop -_02016440: .word 0x021C4918 - - thumb_func_start FUN_02016444 -FUN_02016444: ; 0x02016444 - ldr r1, _02016450 ; =0x021C4918 - ldrb r2, [r1, #0x7] - orr r0, r2 - strb r0, [r1, #0x7] - bx lr - nop -_02016450: .word 0x021C4918 - - thumb_func_start FUN_02016454 -FUN_02016454: ; 0x02016454 - ldr r1, _02016460 ; =0x021C4918 - mvn r0, r0 - ldrb r2, [r1, #0x7] - and r0, r2 - strb r0, [r1, #0x7] - bx lr - .balign 4 -_02016460: .word 0x021C4918 - - thumb_func_start FUN_02016464 -FUN_02016464: ; 0x02016464 - push {r4, lr} - sub sp, #0x10 - ldr r2, _02016550 ; =0x027FFFA8 - mov r0, #0x2 - ldrh r1, [r2, #0x0] - lsl r0, r0, #0xe - and r0, r1 - asr r0, r0, #0xf - beq _0201648A - ldr r0, _02016554 ; =0x021C48B8 - mov r1, #0x0 - str r1, [r0, #0x48] - str r1, [r0, #0x44] - str r1, [r0, #0x4c] - ldr r0, _02016558 ; =0x021C48F8 - add sp, #0x10 - strh r1, [r0, #0x20] - strh r1, [r0, #0x22] - pop {r4, pc} -_0201648A: - ldr r0, _0201655C ; =0x04000130 - ldrh r1, [r0, #0x0] - ldrh r0, [r2, #0x0] - orr r1, r0 - ldr r0, _02016560 ; =0x00002FFF - eor r1, r0 - and r0, r1 - ldr r1, _02016554 ; =0x021C48B8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - ldr r2, [r1, #0x38] - add r3, r0, #0x0 - eor r3, r2 - and r3, r0 - str r3, [r1, #0x3c] - str r3, [r1, #0x40] - cmp r0, #0x0 - beq _020164C2 - cmp r2, r0 - bne _020164C2 - ldr r2, [r1, #0x50] - sub r2, r2, #0x1 - str r2, [r1, #0x50] - bne _020164C8 - str r0, [r1, #0x40] - ldr r2, [r1, #0x54] - str r2, [r1, #0x50] - b _020164C8 -_020164C2: - ldr r1, _02016554 ; =0x021C48B8 - ldr r2, [r1, #0x58] - str r2, [r1, #0x50] -_020164C8: - ldr r1, _02016554 ; =0x021C48B8 - str r0, [r1, #0x38] - ldr r2, [r1, #0x3c] - str r2, [r1, #0x48] - str r0, [r1, #0x44] - ldr r0, [r1, #0x40] - str r0, [r1, #0x4c] - bl FUN_02016568 - ldr r0, _02016564 ; =0x021C4918 - ldrb r0, [r0, #0x4] - cmp r0, #0x0 - bne _020164F4 - add r4, sp, #0x8 -_020164E4: - bl TP_RequestSamplingAsync - add r0, r4, #0x0 - bl TP_WaitRawResult - cmp r0, #0x0 - bne _020164E4 - b _020164FA -_020164F4: - add r0, sp, #0x8 - bl TP_GetLatestRawPointInAuto -_020164FA: - add r0, sp, #0x0 - add r1, sp, #0x8 - bl TP_GetCalibratedPoint - add r1, sp, #0x0 - ldrh r3, [r1, #0x6] - cmp r3, #0x0 - bne _02016516 - ldrh r2, [r1, #0x0] - ldr r0, _02016558 ; =0x021C48F8 - strh r2, [r0, #0x1c] - ldrh r1, [r1, #0x2] - strh r1, [r0, #0x1e] - b _0201653A -_02016516: - ldr r0, _02016558 ; =0x021C48F8 - ldrh r2, [r0, #0x22] - cmp r2, #0x0 - beq _02016536 - cmp r3, #0x1 - beq _0201652A - cmp r3, #0x2 - beq _02016530 - cmp r3, #0x3 - b _0201653A -_0201652A: - ldrh r1, [r1, #0x2] - strh r1, [r0, #0x1e] - b _0201653A -_02016530: - ldrh r1, [r1, #0x0] - strh r1, [r0, #0x1c] - b _0201653A -_02016536: - mov r0, #0x0 - strh r0, [r1, #0x4] -_0201653A: - add r0, sp, #0x0 - ldrh r2, [r0, #0x4] - ldr r0, _02016558 ; =0x021C48F8 - ldrh r1, [r0, #0x22] - eor r1, r2 - and r1, r2 - strh r1, [r0, #0x20] - strh r2, [r0, #0x22] - add sp, #0x10 - pop {r4, pc} - nop -_02016550: .word 0x027FFFA8 -_02016554: .word 0x021C48B8 -_02016558: .word 0x021C48F8 -_0201655C: .word 0x04000130 -_02016560: .word 0x00002FFF -_02016564: .word 0x021C4918 - - thumb_func_start FUN_02016568 -FUN_02016568: ; 0x02016568 - ldr r0, _02016690 ; =0x021C48B8 - ldr r1, [r0, #0x34] - cmp r1, #0x3 - bls _02016572 - b _0201668C -_02016572: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201657E: ; jump table (using 16-bit offset) - .short _0201668C - _0201657E - 2; case 0 - .short _02016586 - _0201657E - 2; case 1 - .short _020165BC - _0201657E - 2; case 2 - .short _02016642 - _0201657E - 2; case 3 -_02016586: - ldr r2, [r0, #0x48] - mov r1, #0x8 - add r3, r2, #0x0 - tst r3, r1 - beq _02016596 - lsl r1, r1, #0x7 - orr r1, r2 - str r1, [r0, #0x48] -_02016596: - ldr r1, _02016690 ; =0x021C48B8 - mov r0, #0x8 - ldr r2, [r1, #0x44] - add r3, r2, #0x0 - tst r3, r0 - beq _020165A8 - lsl r0, r0, #0x7 - orr r0, r2 - str r0, [r1, #0x44] -_020165A8: - ldr r1, _02016690 ; =0x021C48B8 - mov r0, #0x8 - ldr r2, [r1, #0x4c] - add r3, r2, #0x0 - tst r3, r0 - beq _0201668C - lsl r0, r0, #0x7 - orr r0, r2 - str r0, [r1, #0x4c] - bx lr -_020165BC: - ldr r3, [r0, #0x48] - mov r0, #0x1 - lsl r0, r0, #0xa - add r2, r3, #0x0 - mov r1, #0x0 - tst r2, r0 - beq _020165CE - lsl r0, r0, #0x1 - orr r1, r0 -_020165CE: - mov r0, #0x2 - lsl r0, r0, #0xa - add r2, r3, #0x0 - tst r2, r0 - beq _020165DC - lsr r0, r0, #0x1 - orr r1, r0 -_020165DC: - ldr r2, _02016690 ; =0x021C48B8 - ldr r0, _02016694 ; =0x0000F3FF - ldr r3, [r2, #0x48] - and r0, r3 - orr r0, r1 - str r0, [r2, #0x48] - ldr r3, [r2, #0x44] - mov r1, #0x1 - lsl r1, r1, #0xa - add r2, r3, #0x0 - mov r0, #0x0 - tst r2, r1 - beq _020165FA - lsl r1, r1, #0x1 - orr r0, r1 -_020165FA: - mov r1, #0x2 - lsl r1, r1, #0xa - add r2, r3, #0x0 - tst r2, r1 - beq _02016608 - lsr r1, r1, #0x1 - orr r0, r1 -_02016608: - ldr r2, _02016690 ; =0x021C48B8 - ldr r1, _02016694 ; =0x0000F3FF - ldr r3, [r2, #0x44] - and r1, r3 - orr r0, r1 - str r0, [r2, #0x44] - ldr r3, [r2, #0x4c] - mov r1, #0x1 - lsl r1, r1, #0xa - add r2, r3, #0x0 - mov r0, #0x0 - tst r2, r1 - beq _02016626 - lsl r1, r1, #0x1 - orr r0, r1 -_02016626: - mov r1, #0x2 - lsl r1, r1, #0xa - add r2, r3, #0x0 - tst r2, r1 - beq _02016634 - lsr r1, r1, #0x1 - orr r0, r1 -_02016634: - ldr r2, _02016690 ; =0x021C48B8 - ldr r1, _02016694 ; =0x0000F3FF - ldr r3, [r2, #0x4c] - and r1, r3 - orr r0, r1 - str r0, [r2, #0x4c] - bx lr -_02016642: - mov r1, #0x2 - ldr r2, [r0, #0x48] - lsl r1, r1, #0x8 - tst r1, r2 - beq _02016652 - mov r1, #0x1 - orr r1, r2 - str r1, [r0, #0x48] -_02016652: - ldr r1, _02016690 ; =0x021C48B8 - mov r0, #0x2 - ldr r2, [r1, #0x44] - lsl r0, r0, #0x8 - tst r0, r2 - beq _02016664 - mov r0, #0x1 - orr r0, r2 - str r0, [r1, #0x44] -_02016664: - ldr r1, _02016690 ; =0x021C48B8 - mov r0, #0x2 - ldr r2, [r1, #0x4c] - lsl r0, r0, #0x8 - tst r0, r2 - beq _02016676 - mov r0, #0x1 - orr r0, r2 - str r0, [r1, #0x4c] -_02016676: - ldr r1, _02016690 ; =0x021C48B8 - ldr r0, _02016698 ; =0x0000FCFF - ldr r2, [r1, #0x48] - and r2, r0 - str r2, [r1, #0x48] - ldr r2, [r1, #0x44] - and r2, r0 - str r2, [r1, #0x44] - ldr r2, [r1, #0x4c] - and r0, r2 - str r0, [r1, #0x4c] -_0201668C: - bx lr - nop -_02016690: .word 0x021C48B8 -_02016694: .word 0x0000F3FF -_02016698: .word 0x0000FCFF - - thumb_func_start FUN_0201669C -FUN_0201669C: ; 0x0201669C - ldr r2, _020166A4 ; =0x021C48B8 - str r0, [r2, #0x54] - str r1, [r2, #0x58] - bx lr - .balign 4 -_020166A4: .word 0x021C48B8 - - thumb_func_start FUN_020166A8 -FUN_020166A8: ; 0x020166A8 - ldr r1, _020166B4 ; =0x021C4918 - ldrb r2, [r1, #0x8] - orr r0, r2 - strb r0, [r1, #0x8] - bx lr - nop -_020166B4: .word 0x021C4918 - - thumb_func_start FUN_020166B8 -FUN_020166B8: ; 0x020166B8 - ldr r1, _020166C4 ; =0x021C4918 - mvn r0, r0 - ldrb r2, [r1, #0x8] - and r0, r2 - strb r0, [r1, #0x8] - bx lr - .balign 4 -_020166C4: .word 0x021C4918 - - thumb_func_start FUN_020166C8 -FUN_020166C8: ; 0x020166C8 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - str r0, [sp, #0x4] - add r0, #0x18 - add r6, r2, #0x0 - str r0, [sp, #0x4] - cmp r6, r0 - bhs _020166E0 - add r6, r0, #0x0 -_020166E0: - cmp r3, #0x0 - beq _020166FE - mov r0, #0x3 - tst r0, r3 - beq _020166F4 - mov r0, #0x3 -_020166EC: - add r3, r3, #0x1 - add r1, r3, #0x0 - tst r1, r0 - bne _020166EC -_020166F4: - mov r0, #0x0 - add r1, r3, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo -_020166FE: - ldr r1, [sp, #0x4] - lsl r7, r6, #0x1 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r1, #0x1 - lsl r1, r1, #0x2 - add r1, r7, r1 - mov r0, #0x0 - add r1, r6, r1 - mov r2, #0x4 - bl OS_AllocFromArenaLo - ldr r1, _020167F0 ; =0x021C4D28 - str r0, [r1, #0x0] - ldr r1, [sp, #0x4] - add r1, r1, #0x1 - lsl r1, r1, #0x2 - add r1, r0, r1 - ldr r0, _020167F0 ; =0x021C4D28 - str r1, [r0, #0x4] - ldr r0, [sp, #0x4] - lsl r0, r0, #0x2 - add r2, r1, r0 - ldr r1, _020167F0 ; =0x021C4D28 - str r2, [r1, #0x8] - add r1, r2, r0 - ldr r0, _020167F0 ; =0x021C4D28 - str r1, [r0, #0xc] - add r1, r1, r7 - str r1, [r0, #0x10] - strh r6, [r0, #0x14] - strh r4, [r0, #0x16] - ldr r0, [sp, #0x4] - mov r7, #0x0 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, _020167F0 ; =0x021C4D28 - cmp r4, #0x0 - strh r1, [r0, #0x1a] - strh r1, [r0, #0x18] - bls _020167A0 - str r7, [sp, #0x0] -_02016752: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - beq _0201675C - cmp r0, #0x2 - beq _02016768 -_0201675C: - ldr r1, [r5, #0x0] - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - b _02016772 -_02016768: - ldr r1, [r5, #0x0] - mov r0, #0x2 - mov r2, #0x4 - bl OS_AllocFromArenaHi -_02016772: - cmp r0, #0x0 - beq _0201678E - ldr r1, [r5, #0x0] - mov r2, #0x0 - bl tempName_NNS_FndCreateExpHeapEx - ldr r1, _020167F0 ; =0x021C4D28 - ldr r2, [r1, #0x0] - ldr r1, [sp, #0x0] - str r0, [r2, r1] - ldr r0, _020167F0 ; =0x021C4D28 - ldr r0, [r0, #0x10] - strb r7, [r0, r7] - b _02016792 -_0201678E: - bl ErrorHandling -_02016792: - ldr r0, [sp, #0x0] - add r7, r7, #0x1 - add r0, r0, #0x4 - add r5, #0x8 - str r0, [sp, #0x0] - cmp r7, r4 - blo _02016752 -_020167A0: - ldr r0, [sp, #0x4] - add r1, r0, #0x1 - cmp r4, r1 - bhs _020167C0 - ldr r3, _020167F0 ; =0x021C4D28 - lsl r2, r4, #0x2 - mov r0, #0x0 -_020167AE: - ldr r5, [r3, #0x0] - str r0, [r5, r2] - ldrh r7, [r3, #0x1a] - ldr r5, [r3, #0x10] - add r2, r2, #0x4 - strb r7, [r5, r4] - add r4, r4, #0x1 - cmp r4, r1 - blo _020167AE -_020167C0: - cmp r4, r6 - bhs _020167D2 - ldr r0, _020167F0 ; =0x021C4D28 -_020167C6: - ldrh r2, [r0, #0x1a] - ldr r1, [r0, #0x10] - strb r2, [r1, r4] - add r4, r4, #0x1 - cmp r4, r6 - blo _020167C6 -_020167D2: - mov r4, #0x0 - cmp r6, #0x0 - bls _020167EA - ldr r0, _020167F0 ; =0x021C4D28 - add r3, r4, #0x0 - add r2, r4, #0x0 -_020167DE: - ldr r1, [r0, #0xc] - add r4, r4, #0x1 - strh r2, [r1, r3] - add r3, r3, #0x2 - cmp r4, r6 - blo _020167DE -_020167EA: - add sp, #0x8 - pop {r3-r7, pc} - nop -_020167F0: .word 0x021C4D28 - - thumb_func_start FUN_020167F4 -FUN_020167F4: ; 0x020167F4 - ldr r1, _02016818 ; =0x021C4D28 - ldrh r0, [r1, #0x16] - ldrh r3, [r1, #0x18] - cmp r0, r3 - bge _02016812 - ldr r2, [r1, #0x0] - lsl r1, r0, #0x2 - add r2, r2, r1 -_02016804: - ldr r1, [r2, #0x0] - cmp r1, #0x0 - beq _02016816 - add r0, r0, #0x1 - add r2, r2, #0x4 - cmp r0, r3 - blt _02016804 -_02016812: - mov r0, #0x0 - mvn r0, r0 -_02016816: - bx lr - .balign 4 -_02016818: .word 0x021C4D28 - - thumb_func_start FUN_0201681C -FUN_0201681C: ; 0x0201681C - push {r3, lr} - mov r3, #0x4 - bl FUN_02016834 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02016828 -FUN_02016828: ; 0x02016828 - push {r3, lr} - mov r3, #0x3 - mvn r3, r3 - bl FUN_02016834 - pop {r3, pc} - - thumb_func_start FUN_02016834 -FUN_02016834: ; 0x02016834 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r5, r1, #0x0 - str r2, [sp, #0x0] - add r7, r3, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _0201684C - bl ErrorHandling -_0201684C: - ldr r1, _020168CC ; =0x021C4D28 - ldr r0, [r1, #0x10] - ldrh r3, [r1, #0x1a] - ldrb r2, [r0, r5] - cmp r3, r2 - bne _020168C2 - ldrb r0, [r0, r4] - ldr r1, [r1, #0x0] - lsl r0, r0, #0x2 - ldr r6, [r1, r0] - cmp r6, #0x0 - beq _020168BC - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - add r2, r7, #0x0 - bl tempName_NNS_FndAllocFromExpHeapEx - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _020168B6 - bl FUN_020167F4 - add r7, r0, #0x0 - bmi _020168B0 - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x0] - mov r2, #0x0 - lsl r4, r7, #0x2 - bl tempName_NNS_FndCreateExpHeapEx - ldr r1, _020168CC ; =0x021C4D28 - ldr r2, [r1, #0x0] - str r0, [r2, r4] - ldr r0, [r1, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _020168AA - ldr r0, [r1, #0x4] - str r6, [r0, r4] - ldr r0, [sp, #0x4] - ldr r2, [r1, #0x8] - add sp, #0x8 - str r0, [r2, r4] - ldr r0, [r1, #0x10] - strb r7, [r0, r5] - mov r0, #0x1 - pop {r3-r7, pc} -_020168AA: - bl ErrorHandling - b _020168C6 -_020168B0: - bl ErrorHandling - b _020168C6 -_020168B6: - bl ErrorHandling - b _020168C6 -_020168BC: - bl ErrorHandling - b _020168C6 -_020168C2: - bl ErrorHandling -_020168C6: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020168CC: .word 0x021C4D28 - - thumb_func_start FUN_020168D0 -FUN_020168D0: ; 0x020168D0 - push {r4, lr} - add r4, r0, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _020168E0 - bl ErrorHandling -_020168E0: - ldr r0, _02016940 ; =0x021C4D28 - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r4] - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - cmp r0, #0x0 - beq _0201693E - bl thunk_FUN_020adc8c - ldr r1, _02016940 ; =0x021C4D28 - ldr r0, [r1, #0x10] - ldrb r0, [r0, r4] - lsl r2, r0, #0x2 - ldr r0, [r1, #0x4] - ldr r1, [r1, #0x8] - ldr r0, [r0, r2] - ldr r1, [r1, r2] - cmp r0, #0x0 - beq _02016912 - cmp r1, #0x0 - beq _02016912 - bl FUN_020ADDF0 - b _02016916 -_02016912: - bl ErrorHandling -_02016916: - ldr r1, _02016940 ; =0x021C4D28 - mov r0, #0x0 - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x0] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x4] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x8] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldrh r2, [r1, #0x1a] - ldr r0, [r1, #0x10] - strb r2, [r0, r4] -_0201693E: - pop {r4, pc} - .balign 4 -_02016940: .word 0x021C4D28 - - thumb_func_start FUN_02016944 -FUN_02016944: ; 0x02016944 - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r7, r2, #0x0 - add r6, r3, #0x0 - cmp r5, #0x0 - bne _02016956 - bl ErrorHandling -_02016956: - bl OS_DisableInterrupts - add r4, #0x10 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - bl tempName_NNS_FndAllocFromExpHeapEx - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - bl OS_RestoreInterrupts - cmp r4, #0x0 - beq _02016984 - ldr r1, [r4, #0xc] - mov r0, #0xff - bic r1, r0 - lsl r0, r6, #0x18 - lsr r0, r0, #0x18 - orr r0, r1 - str r0, [r4, #0xc] - add r4, #0x10 -_02016984: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02016988 -FUN_02016988: ; 0x02016988 - push {r3, lr} - bl FUN_02031810 - cmp r0, #0x0 - beq _02016996 - bl FUN_0208A9B8 -_02016996: - pop {r3, pc} - - thumb_func_start FUN_02016998 -FUN_02016998: ; 0x02016998 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _020169D4 ; =0x021C4D28 - mov r4, #0x0 - ldrh r2, [r0, #0x14] - cmp r5, r2 - bhs _020169BA - ldr r2, [r0, #0x0] - ldr r0, [r0, #0x10] - add r3, r5, #0x0 - ldrb r0, [r0, r5] - lsl r0, r0, #0x2 - ldr r0, [r2, r0] - mov r2, #0x4 - bl FUN_02016944 - add r4, r0, #0x0 -_020169BA: - cmp r4, #0x0 - beq _020169CC - ldr r0, _020169D4 ; =0x021C4D28 - lsl r1, r5, #0x1 - ldr r2, [r0, #0xc] - ldrh r0, [r2, r1] - add r0, r0, #0x1 - strh r0, [r2, r1] - b _020169D0 -_020169CC: - bl FUN_02016988 -_020169D0: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_020169D4: .word 0x021C4D28 - - thumb_func_start FUN_020169D8 -FUN_020169D8: ; 0x020169D8 - push {r3-r5, lr} - ldr r2, _02016A14 ; =0x021C4D28 - add r5, r0, #0x0 - ldrh r0, [r2, #0x14] - mov r4, #0x0 - cmp r5, r0 - bhs _020169FA - ldr r0, [r2, #0x0] - ldr r2, [r2, #0x10] - add r3, r5, #0x0 - ldrb r2, [r2, r5] - lsl r2, r2, #0x2 - ldr r0, [r0, r2] - sub r2, r4, #0x4 - bl FUN_02016944 - add r4, r0, #0x0 -_020169FA: - cmp r4, #0x0 - beq _02016A0C - ldr r0, _02016A14 ; =0x021C4D28 - lsl r1, r5, #0x1 - ldr r2, [r0, #0xc] - ldrh r0, [r2, r1] - add r0, r0, #0x1 - strh r0, [r2, r1] - b _02016A10 -_02016A0C: - bl FUN_02016988 -_02016A10: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02016A14: .word 0x021C4D28 - - thumb_func_start FUN_02016A18 -FUN_02016A18: ; 0x02016A18 - push {r3-r7, lr} - add r6, r0, #0x0 - sub r0, r6, #0x4 - ldr r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, _02016A88 ; =0x021C4D28 - ldrh r1, [r0, #0x14] - cmp r4, r1 - bhs _02016A80 - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r4] - lsl r0, r0, #0x2 - ldr r7, [r1, r0] - cmp r7, #0x0 - bne _02016A3E - bl ErrorHandling -_02016A3E: - ldr r0, _02016A88 ; =0x021C4D28 - lsl r5, r4, #0x1 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r5] - cmp r0, #0x0 - bne _02016A50 - add r0, r4, #0x0 - bl FUN_02016B90 -_02016A50: - ldr r0, _02016A88 ; =0x021C4D28 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r5] - cmp r0, #0x0 - bne _02016A5E - bl ErrorHandling -_02016A5E: - ldr r0, _02016A88 ; =0x021C4D28 - ldr r1, [r0, #0xc] - ldrh r0, [r1, r5] - sub r0, r0, #0x1 - strh r0, [r1, r5] - bl OS_DisableInterrupts - sub r6, #0x10 - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_020ADDF0 - add r0, r4, #0x0 - bl OS_RestoreInterrupts - pop {r3-r7, pc} -_02016A80: - bl ErrorHandling - pop {r3-r7, pc} - nop -_02016A88: .word 0x021C4D28 - - thumb_func_start FUN_02016A8C -FUN_02016A8C: ; 0x02016A8C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _02016A9E - bl ErrorHandling -_02016A9E: - ldr r0, _02016AF4 ; =0x021C4D28 - ldrh r1, [r0, #0x14] - cmp r5, r1 - bhs _02016AEE - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r5] - lsl r0, r0, #0x2 - ldr r6, [r1, r0] - cmp r6, #0x0 - bne _02016AB8 - bl ErrorHandling -_02016AB8: - sub r0, r4, #0x4 - ldr r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, r5 - beq _02016AC8 - bl ErrorHandling -_02016AC8: - sub r4, #0x10 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_020ADDF0 - ldr r0, _02016AF4 ; =0x021C4D28 - lsl r4, r5, #0x1 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r4] - cmp r0, #0x0 - bne _02016AE2 - bl ErrorHandling -_02016AE2: - ldr r0, _02016AF4 ; =0x021C4D28 - ldr r1, [r0, #0xc] - ldrh r0, [r1, r4] - sub r0, r0, #0x1 - strh r0, [r1, r4] - pop {r4-r6, pc} -_02016AEE: - bl ErrorHandling - pop {r4-r6, pc} - .balign 4 -_02016AF4: .word 0x021C4D28 - - thumb_func_start FUN_02016AF8 -FUN_02016AF8: ; 0x02016AF8 - push {r3, lr} - ldr r1, _02016B1C ; =0x021C4D28 - ldrh r2, [r1, #0x14] - cmp r0, r2 - bhs _02016B12 - ldr r2, [r1, #0x0] - ldr r1, [r1, #0x10] - ldrb r0, [r1, r0] - lsl r0, r0, #0x2 - ldr r0, [r2, r0] - bl FUN_020ADDC8 - pop {r3, pc} -_02016B12: - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - nop -_02016B1C: .word 0x021C4D28 - - thumb_func_start FUN_02016B20 -FUN_02016B20: ; 0x02016B20 - push {r4, lr} - ldr r4, _02016B40 ; =0x021C4D28 - ldrh r3, [r4, #0x14] - cmp r1, r3 - bhs _02016B3A - ldr r3, [r4, #0x0] - ldr r4, [r4, #0x10] - ldrb r1, [r4, r1] - lsl r1, r1, #0x2 - ldr r1, [r3, r1] - bl FUN_020AE82C - pop {r4, pc} -_02016B3A: - bl ErrorHandling - pop {r4, pc} - .balign 4 -_02016B40: .word 0x021C4D28 - - thumb_func_start FUN_02016B44 -FUN_02016B44: ; 0x02016B44 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _02016B56 - bl ErrorHandling -_02016B56: - add r0, r5, #0x0 - sub r0, #0x10 - bl FUN_020ADDC0 - add r4, #0x10 - cmp r0, r4 - blo _02016B84 - sub r2, r5, #0x4 - ldr r0, _02016B8C ; =0x021C4D28 - ldr r2, [r2, #0x0] - ldr r1, [r0, #0x0] - lsl r2, r2, #0x18 - ldr r0, [r0, #0x10] - lsr r2, r2, #0x18 - ldrb r0, [r0, r2] - sub r5, #0x10 - add r2, r4, #0x0 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - add r1, r5, #0x0 - bl FUN_020ADE2C - pop {r3-r5, pc} -_02016B84: - bl ErrorHandling - pop {r3-r5, pc} - nop -_02016B8C: .word 0x021C4D28 - - thumb_func_start FUN_02016B90 -FUN_02016B90: ; 0x02016B90 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_02016B94 -FUN_02016B94: ; 0x02016B94 - push {r3-r5, lr} - mov r1, #0x5a - lsl r1, r1, #0x2 - add r5, r0, #0x0 - bl FUN_02016998 - mov r2, #0x5a - mov r1, #0x0 - lsl r2, r2, #0x2 - add r4, r0, #0x0 - bl Call_FillMemWithValue - str r5, [r4, #0x0] - mov r0, #0x0 - strh r0, [r4, #0x4] - strh r0, [r4, #0x6] - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02016BB8 -FUN_02016BB8: ; 0x02016BB8 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02016BBC -FUN_02016BBC: ; 0x02016BBC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x4] - ldr r2, [r4, #0xc] - bl GX_SetGraphicsMode - ldr r0, [r4, #0x8] - bl GXS_SetGraphicsMode - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02016BF0 ; =0xC7FFFFFF - and r1, r0 - str r1, [r2, #0x0] - ldr r1, [r2, #0x0] - asr r0, r0, #0x3 - and r0, r1 - str r0, [r2, #0x0] - bl FUN_0201E6D8 - bl FUN_0201E740 - pop {r4, pc} - nop -_02016BF0: .word 0xC7FFFFFF - - thumb_func_start FUN_02016BF4 -FUN_02016BF4: ; 0x02016BF4 - push {r3, lr} - add r2, r0, #0x0 - cmp r1, #0x0 - bne _02016C0C - ldr r0, [r2, #0x0] - ldr r1, [r2, #0x4] - ldr r2, [r2, #0xc] - bl GX_SetGraphicsMode - bl FUN_0201E6D8 - pop {r3, pc} -_02016C0C: - ldr r0, [r2, #0x8] - bl GXS_SetGraphicsMode - bl FUN_0201E740 - pop {r3, pc} - - thumb_func_start FUN_02016C18 -FUN_02016C18: ; 0x02016C18 - push {r3-r7, lr} - sub sp, #0x18 - str r1, [sp, #0x4] - str r3, [sp, #0x8] - add r4, r2, #0x0 - str r0, [sp, #0x0] - ldrb r0, [r4, #0x10] - ldr r1, [sp, #0x8] - bl FUN_020177DC - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r0, #0x7 - bls _02016C36 - b _0201705A -_02016C36: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02016C42: ; jump table (using 16-bit offset) - .short _02016C52 - _02016C42 - 2; case 0 - .short _02016CAA - _02016C42 - 2; case 1 - .short _02016D02 - _02016C42 - 2; case 2 - .short _02016DA4 - _02016C42 - 2; case 3 - .short _02016E46 - _02016C42 - 2; case 4 - .short _02016E9E - _02016C42 - 2; case 5 - .short _02016EF6 - _02016C42 - 2; case 6 - .short _02016F98 - _02016C42 - 2; case 7 -_02016C52: - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_0201E6E4 - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0xc] - ldr r2, _02016FB4 ; =0x04000008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0xc] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CA0 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CA0: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016CAA: - mov r0, #0x2 - mov r1, #0x1 - bl FUN_0201E6E4 - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x10] - ldr r2, _02016FB8 ; =0x0400000A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x10] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CF8 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CF8: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016D02: - mov r0, #0x4 - mov r1, #0x1 - bl FUN_0201E6E4 - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016D18 - cmp r0, #0x1 - beq _02016D3A - cmp r0, #0x2 - beq _02016D5C -_02016D18: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D3A: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FBC ; =0x0400000C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D5C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016D7C: - ldr r0, _02016FBC ; =0x0400000C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016D9A - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016D9A: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016DA4: - mov r0, #0x8 - mov r1, #0x1 - bl FUN_0201E6E4 - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016DBA - cmp r0, #0x1 - beq _02016DDC - cmp r0, #0x2 - beq _02016DFE -_02016DBA: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DDC: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FC0 ; =0x0400000E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DFE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016E1E: - ldr r0, _02016FC0 ; =0x0400000E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016E3C - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016E3C: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016E46: - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_0201E74C - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x14] - ldr r2, _02016FC4 ; =0x04001008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x14] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016E94 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016E94: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016E9E: - mov r0, #0x2 - mov r1, #0x1 - bl FUN_0201E74C - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrb r3, [r4, #0x14] - lsl r0, r0, #0x7 - mov r12, r0 - ldr r2, _02016FC8 ; =0x0400100A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - lsl r3, r3, #0xd - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - mov r1, r12 - orr r0, r1 - orr r0, r7 - orr r0, r6 - orr r0, r3 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016EEC - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016EEC: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016EF6: - mov r0, #0x4 - mov r1, #0x1 - bl FUN_0201E74C - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016F0C - cmp r0, #0x1 - beq _02016F2E - cmp r0, #0x2 - beq _02016F50 -_02016F0C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F2E: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FCC ; =0x0400100C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F50: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016F70: - ldr r0, _02016FCC ; =0x0400100C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016F8E - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016F8E: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016F98: - mov r0, #0x8 - mov r1, #0x1 - bl FUN_0201E74C - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016FAE - cmp r0, #0x1 - beq _02016FF2 - cmp r0, #0x2 - beq _02017014 -_02016FAE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FD0 ; =0x0400100E - b _02016FD4 - .balign 4 -_02016FB4: .word 0x04000008 -_02016FB8: .word 0x0400000A -_02016FBC: .word 0x0400000C -_02016FC0: .word 0x0400000E -_02016FC4: .word 0x04001008 -_02016FC8: .word 0x0400100A -_02016FCC: .word 0x0400100C -_02016FD0: .word 0x0400100E -_02016FD4: - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02016FF2: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _020170F0 ; =0x0400100E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02017014: - ldrb r1, [r4, #0x12] - ldr r7, _020170F0 ; =0x0400100E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02017034: - ldr r0, _020170F0 ; =0x0400100E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02017052 - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02017052: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] -_0201705A: - ldr r0, [sp, #0x4] - mov r1, #0x2c - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mul r5, r1 - add r2, r0, r5 - mov r3, #0x0 - mov r0, #0x1 - strh r3, [r2, #0x20] - lsl r0, r0, #0xc - str r0, [r2, #0x24] - str r0, [r2, #0x28] - str r3, [r2, #0x2c] - str r3, [r2, #0x30] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020170A2 - ldr r0, [sp, #0x0] - ldr r6, [sp, #0x0] - ldr r0, [r0, #0x0] - add r6, #0x8 - bl FUN_02016998 - str r0, [r6, r5] - ldr r1, [r6, r5] - ldr r2, [r4, #0x8] - mov r0, #0x0 - bl MIi_CpuClear16 - ldr r0, [sp, #0x0] - ldr r2, [r4, #0x8] - add r1, r0, r5 - str r2, [r1, #0xc] - ldr r0, [r4, #0xc] - str r0, [r1, #0x10] - b _020170A8 -_020170A2: - str r3, [r2, #0x8] - str r3, [r2, #0xc] - str r3, [r2, #0x10] -_020170A8: - ldr r0, [sp, #0x0] - ldrb r1, [r4, #0x10] - add r0, r0, r5 - strb r1, [r0, #0x1d] - ldr r1, [sp, #0x8] - strb r1, [r0, #0x1c] - ldrb r1, [r4, #0x11] - strb r1, [r0, #0x1e] - ldr r1, [sp, #0x8] - cmp r1, #0x0 - bne _020170CA - ldrb r1, [r4, #0x11] - cmp r1, #0x0 - bne _020170CA - mov r1, #0x20 - strb r1, [r0, #0x1f] - b _020170D2 -_020170CA: - ldr r0, [sp, #0x0] - mov r1, #0x40 - add r0, r0, r5 - strb r1, [r0, #0x1f] -_020170D2: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x0] - mov r2, #0x0 - bl FUN_020179E0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x4] - mov r2, #0x3 - bl FUN_020179E0 - add sp, #0x18 - pop {r3-r7, pc} - nop -_020170F0: .word 0x0400100E - - thumb_func_start FUN_020170F4 -FUN_020170F4: ; 0x020170F4 - push {r3-r7, lr} - sub sp, #0x20 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 - add r0, r3, #0x0 - cmp r1, #0x0 - bne _0201710C - mov r2, #0x2c - mul r2, r4 - add r2, r5, r2 - strb r0, [r2, #0x1e] -_0201710C: - cmp r4, #0x7 - bls _02017112 - b _020177C4 -_02017112: - add r2, r4, r4 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0201711E: ; jump table (using 16-bit offset) - .short _0201712E - _0201711E - 2; case 0 - .short _0201719A - _0201711E - 2; case 1 - .short _02017206 - _0201711E - 2; case 2 - .short _0201733A - _0201711E - 2; case 3 - .short _0201746E - _0201711E - 2; case 4 - .short _020174F4 - _0201711E - 2; case 5 - .short _02017560 - _0201711E - 2; case 6 - .short _02017694 - _0201711E - 2; case 7 -_0201712E: - ldr r2, _02017480 ; =0x04000008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1e] - bne _0201714A - ldrh r3, [r2, #0x1e] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1e] - b _0201715C -_0201714A: - cmp r1, #0x2 - bne _0201715C - ldrh r3, [r2, #0x1e] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1e] -_0201715C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1e] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _02017480 ; =0x04000008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_0201719A: - ldr r2, _02017488 ; =0x0400000A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1c] - bne _020171B6 - ldrh r3, [r2, #0x1c] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1c] - b _020171C8 -_020171B6: - cmp r1, #0x2 - bne _020171C8 - ldrh r3, [r2, #0x1c] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1c] -_020171C8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1c] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _02017488 ; =0x0400000A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017206: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201721A - cmp r3, #0x1 - beq _0201727A - cmp r3, #0x2 - beq _020172DA -_0201721A: - ldr r3, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x1a] - bne _02017236 - ldrh r4, [r3, #0x1a] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x1a] - b _02017248 -_02017236: - cmp r1, #0x2 - bne _02017248 - ldrh r4, [r3, #0x1a] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x1a] -_02017248: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1a] - add r2, r5, r2 - ldr r6, _0201748C ; =0x0400000C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201727A: - ldr r2, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x18] - bne _02017296 - ldrh r3, [r2, #0x18] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x18] - b _020172A8 -_02017296: - cmp r1, #0x2 - bne _020172A8 - ldrh r3, [r2, #0x18] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x18] -_020172A8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x18] - ldr r6, _0201748C ; =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020172DA: - ldr r2, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x16] - bne _020172F6 - ldrh r3, [r2, #0x16] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x16] - b _02017308 -_020172F6: - cmp r1, #0x2 - bne _02017308 - ldrh r3, [r2, #0x16] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x16] -_02017308: - add r0, sp, #0x0 - ldrh r3, [r0, #0x16] - ldr r6, _0201748C ; =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201733A: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201734E - cmp r3, #0x1 - beq _020173AE - cmp r3, #0x2 - beq _0201740E -_0201734E: - ldr r3, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x14] - bne _0201736A - ldrh r4, [r3, #0x14] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x14] - b _0201737C -_0201736A: - cmp r1, #0x2 - bne _0201737C - ldrh r4, [r3, #0x14] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x14] -_0201737C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x14] - add r2, r5, r2 - ldr r6, _02017490 ; =0x0400000E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020173AE: - ldr r2, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x12] - bne _020173CA - ldrh r3, [r2, #0x12] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x12] - b _020173DC -_020173CA: - cmp r1, #0x2 - bne _020173DC - ldrh r3, [r2, #0x12] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x12] -_020173DC: - add r0, sp, #0x0 - ldrh r3, [r0, #0x12] - ldr r6, _02017490 ; =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201740E: - ldr r2, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x10] - bne _0201742A - ldrh r3, [r2, #0x10] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x10] - b _0201743C -_0201742A: - cmp r1, #0x2 - bne _0201743C - ldrh r3, [r2, #0x10] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x10] -_0201743C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x10] - ldr r6, _02017490 ; =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201746E: - ldr r2, _02017494 ; =0x04001008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xe] - bne _020174A4 - ldrh r3, [r2, #0xe] - ldr r1, _02017484 ; =0xFFFFE0FF - b _02017498 - .balign 4 -_02017480: .word 0x04000008 -_02017484: .word 0xFFFFE0FF -_02017488: .word 0x0400000A -_0201748C: .word 0x0400000C -_02017490: .word 0x0400000E -_02017494: .word 0x04001008 -_02017498: - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xe] - b _020174B6 -_020174A4: - cmp r1, #0x2 - bne _020174B6 - ldrh r3, [r2, #0xe] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xe] -_020174B6: - add r0, sp, #0x0 - ldrh r3, [r0, #0xe] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _020177C8 ; =0x04001008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_020174F4: - ldr r2, _020177CC ; =0x0400100A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xc] - bne _02017510 - ldrh r3, [r2, #0xc] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xc] - b _02017522 -_02017510: - cmp r1, #0x2 - bne _02017522 - ldrh r3, [r2, #0xc] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xc] -_02017522: - add r0, sp, #0x0 - ldrh r3, [r0, #0xc] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _020177CC ; =0x0400100A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017560: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _02017574 - cmp r3, #0x1 - beq _020175D4 - cmp r3, #0x2 - beq _02017634 -_02017574: - ldr r3, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0xa] - bne _02017590 - ldrh r4, [r3, #0xa] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0xa] - b _020175A2 -_02017590: - cmp r1, #0x2 - bne _020175A2 - ldrh r4, [r3, #0xa] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0xa] -_020175A2: - add r0, sp, #0x0 - ldrh r3, [r0, #0xa] - add r2, r5, r2 - ldr r6, _020177D4 ; =0x0400100C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020175D4: - ldr r2, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x8] - bne _020175F0 - ldrh r3, [r2, #0x8] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x8] - b _02017602 -_020175F0: - cmp r1, #0x2 - bne _02017602 - ldrh r3, [r2, #0x8] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x8] -_02017602: - add r0, sp, #0x0 - ldrh r3, [r0, #0x8] - ldr r6, _020177D4 ; =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017634: - ldr r2, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x6] - bne _02017650 - ldrh r3, [r2, #0x6] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x6] - b _02017662 -_02017650: - cmp r1, #0x2 - bne _02017662 - ldrh r3, [r2, #0x6] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x6] -_02017662: - add r0, sp, #0x0 - ldrh r3, [r0, #0x6] - ldr r6, _020177D4 ; =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017694: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _020176A8 - cmp r3, #0x1 - beq _02017708 - cmp r3, #0x2 - beq _02017768 -_020176A8: - ldr r3, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x4] - bne _020176C4 - ldrh r4, [r3, #0x4] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x4] - b _020176D6 -_020176C4: - cmp r1, #0x2 - bne _020176D6 - ldrh r4, [r3, #0x4] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x4] -_020176D6: - add r0, sp, #0x0 - ldrh r3, [r0, #0x4] - add r2, r5, r2 - ldr r6, _020177D8 ; =0x0400100E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017708: - ldr r2, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x2] - bne _02017724 - ldrh r3, [r2, #0x2] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x2] - b _02017736 -_02017724: - cmp r1, #0x2 - bne _02017736 - ldrh r3, [r2, #0x2] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x2] -_02017736: - add r0, sp, #0x0 - ldrh r3, [r0, #0x2] - ldr r6, _020177D8 ; =0x0400100E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017768: - ldr r2, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x0] - bne _02017784 - ldrh r3, [r2, #0x0] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x0] - b _02017796 -_02017784: - cmp r1, #0x2 - bne _02017796 - ldrh r3, [r2, #0x0] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x0] -_02017796: - add r0, sp, #0x0 - ldrh r3, [r0, #0x0] - ldr r6, _020177D8 ; =0x0400100E - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] -_020177C4: - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 -_020177C8: .word 0x04001008 -_020177CC: .word 0x0400100A -_020177D0: .word 0xFFFFE0FF -_020177D4: .word 0x0400100C -_020177D8: .word 0x0400100E - - thumb_func_start FUN_020177DC -FUN_020177DC: ; 0x020177DC - cmp r1, #0x0 - beq _020177EA - cmp r1, #0x1 - beq _0201780A - cmp r1, #0x2 - beq _0201782A - b _0201784A -_020177EA: - cmp r0, #0x1 - bne _020177F2 - mov r0, #0x0 - bx lr -_020177F2: - cmp r0, #0x2 - bne _020177FA - mov r0, #0x2 - bx lr -_020177FA: - cmp r0, #0x3 - bne _02017802 - mov r0, #0x1 - bx lr -_02017802: - cmp r0, #0x4 - bne _0201784A - mov r0, #0x3 - bx lr -_0201780A: - cmp r0, #0x0 - bne _02017812 - mov r0, #0x0 - bx lr -_02017812: - cmp r0, #0x1 - bne _0201781A - mov r0, #0x1 - bx lr -_0201781A: - cmp r0, #0x4 - bne _02017822 - mov r0, #0x2 - bx lr -_02017822: - cmp r0, #0x5 - bne _0201784A - mov r0, #0x3 - bx lr -_0201782A: - cmp r0, #0x0 - bne _02017832 - mov r0, #0x0 - bx lr -_02017832: - cmp r0, #0x1 - bne _0201783A - mov r0, #0x1 - bx lr -_0201783A: - cmp r0, #0x4 - bne _02017842 - mov r0, #0x2 - bx lr -_02017842: - cmp r0, #0x5 - bne _0201784A - mov r0, #0x3 - bx lr -_0201784A: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02017850 -FUN_02017850: ; 0x02017850 - cmp r0, #0x5 - bhi _0201789E - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017860: ; jump table (using 16-bit offset) - .short _0201786C - _02017860 - 2; case 0 - .short _02017874 - _02017860 - 2; case 1 - .short _0201787C - _02017860 - 2; case 2 - .short _02017886 - _02017860 - 2; case 3 - .short _02017890 - _02017860 - 2; case 4 - .short _02017898 - _02017860 - 2; case 5 -_0201786C: - mov r0, #0x10 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_02017874: - mov r0, #0x20 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_0201787C: - mov r0, #0x20 - strb r0, [r1, #0x0] - mov r0, #0x40 - strb r0, [r2, #0x0] - bx lr -_02017886: - mov r0, #0x40 - strb r0, [r1, #0x0] - mov r0, #0x20 - strb r0, [r2, #0x0] - bx lr -_02017890: - mov r0, #0x40 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_02017898: - mov r0, #0x80 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] -_0201789E: - bx lr - - thumb_func_start FUN_020178A0 -FUN_020178A0: ; 0x020178A0 - push {r3-r5, lr} - add r4, r0, #0x0 - mov r2, #0x2c - add r5, r1, #0x0 - mul r5, r2 - add r4, #0x8 - ldr r0, [r4, r5] - cmp r0, #0x0 - beq _020178BA - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, r5] -_020178BA: - pop {r3-r5, pc} - - thumb_func_start FUN_020178BC -FUN_020178BC: ; 0x020178BC - cmp r0, #0x7 - bhi _0201795A - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020178CC: ; jump table (using 16-bit offset) - .short _020178DC - _020178CC - 2; case 0 - .short _020178EC - _020178CC - 2; case 1 - .short _020178FC - _020178CC - 2; case 2 - .short _0201790C - _020178CC - 2; case 3 - .short _0201791C - _020178CC - 2; case 4 - .short _0201792C - _020178CC - 2; case 5 - .short _0201793C - _020178CC - 2; case 6 - .short _0201794C - _020178CC - 2; case 7 -_020178DC: - ldr r2, _0201795C ; =0x04000008 - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_020178EC: - ldr r2, _02017960 ; =0x0400000A - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_020178FC: - ldr r2, _02017964 ; =0x0400000C - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201790C: - ldr r2, _02017968 ; =0x0400000E - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201791C: - ldr r2, _0201796C ; =0x04001008 - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201792C: - ldr r2, _02017970 ; =0x0400100A - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201793C: - ldr r2, _02017974 ; =0x0400100C - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201794C: - ldr r2, _02017978 ; =0x0400100E - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] -_0201795A: - bx lr - .balign 4 -_0201795C: .word 0x04000008 -_02017960: .word 0x0400000A -_02017964: .word 0x0400000C -_02017968: .word 0x0400000E -_0201796C: .word 0x04001008 -_02017970: .word 0x0400100A -_02017974: .word 0x0400100C -_02017978: .word 0x0400100E - - thumb_func_start FUN_0201797C -FUN_0201797C: ; 0x0201797C - push {r3, lr} - cmp r0, #0x7 - bhi _020179DC - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201798E: ; jump table (using 16-bit offset) - .short _0201799E - _0201798E - 2; case 0 - .short _020179A6 - _0201798E - 2; case 1 - .short _020179AE - _0201798E - 2; case 2 - .short _020179B6 - _0201798E - 2; case 3 - .short _020179BE - _0201798E - 2; case 4 - .short _020179C6 - _0201798E - 2; case 5 - .short _020179CE - _0201798E - 2; case 6 - .short _020179D6 - _0201798E - 2; case 7 -_0201799E: - mov r0, #0x1 - bl FUN_0201E6E4 - pop {r3, pc} -_020179A6: - mov r0, #0x2 - bl FUN_0201E6E4 - pop {r3, pc} -_020179AE: - mov r0, #0x4 - bl FUN_0201E6E4 - pop {r3, pc} -_020179B6: - mov r0, #0x8 - bl FUN_0201E6E4 - pop {r3, pc} -_020179BE: - mov r0, #0x1 - bl FUN_0201E74C - pop {r3, pc} -_020179C6: - mov r0, #0x2 - bl FUN_0201E74C - pop {r3, pc} -_020179CE: - mov r0, #0x4 - bl FUN_0201E74C - pop {r3, pc} -_020179D6: - mov r0, #0x8 - bl FUN_0201E74C -_020179DC: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020179E0 -FUN_020179E0: ; 0x020179E0 - push {r4-r6, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - mov r0, #0x2c - add r6, r5, #0x0 - mul r6, r0 - add r0, r4, #0x0 - add r0, #0x8 - add r1, r2, #0x0 - add r2, r3, #0x0 - add r0, r0, r6 - bl FUN_02017B8C - add r0, r4, r6 - ldr r1, [r0, #0x14] - ldr r0, [r0, #0x18] - cmp r5, #0x7 - bls _02017A06 - b _02017B1C -_02017A06: - add r2, r5, r5 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02017A12: ; jump table (using 16-bit offset) - .short _02017A22 - _02017A12 - 2; case 0 - .short _02017A38 - _02017A12 - 2; case 1 - .short _02017A4E - _02017A12 - 2; case 2 - .short _02017A78 - _02017A12 - 2; case 3 - .short _02017AA2 - _02017A12 - 2; case 4 - .short _02017AB8 - _02017A12 - 2; case 5 - .short _02017ACE - _02017A12 - 2; case 6 - .short _02017AF6 - _02017A12 - 2; case 7 -_02017A22: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B24 ; =0x04000010 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A38: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B28 ; =0x04000014 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A4E: - add r2, r4, #0x0 - add r2, #0x74 - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _02017A6E - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B2C ; =0x04000018 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A6E: - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017A78: - add r2, r4, #0x0 - add r2, #0xa0 - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _02017A98 - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B30 ; =0x0400001C - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A98: - add r0, r4, #0x0 - mov r1, #0x3 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017AA2: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B34 ; =0x04001010 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017AB8: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B38 ; =0x04001014 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017ACE: - mov r2, #0x49 - lsl r2, r2, #0x2 - ldrb r3, [r4, r2] - cmp r3, #0x0 - bne _02017AEC - add r2, #0xdb - and r2, r1 - lsl r1, r0, #0x10 - ldr r0, _02017B3C ; =0x01FF0000 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _02017B40 ; =0x04001018 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017AEC: - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017AF6: - mov r2, #0x15 - lsl r2, r2, #0x4 - ldrb r3, [r4, r2] - cmp r3, #0x0 - bne _02017B14 - add r2, #0xaf - and r2, r1 - lsl r1, r0, #0x10 - ldr r0, _02017B3C ; =0x01FF0000 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _02017B44 ; =0x0400101C - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017B14: - add r0, r4, #0x0 - mov r1, #0x7 - bl FUN_02017C6C -_02017B1C: - pop {r4-r6, pc} - nop -_02017B20: .word 0x000001FF -_02017B24: .word 0x04000010 -_02017B28: .word 0x04000014 -_02017B2C: .word 0x04000018 -_02017B30: .word 0x0400001C -_02017B34: .word 0x04001010 -_02017B38: .word 0x04001014 -_02017B3C: .word 0x01FF0000 -_02017B40: .word 0x04001018 -_02017B44: .word 0x0400101C - - thumb_func_start FUN_02017B48 -FUN_02017B48: ; 0x02017B48 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x14] - bx lr - .balign 4 - - thumb_func_start FUN_02017B54 -FUN_02017B54: ; 0x02017B54 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x18] - bx lr - .balign 4 - - thumb_func_start FUN_02017B60 -FUN_02017B60: ; 0x02017B60 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_02017B8C - ldr r0, [sp, #0x18] - ldr r2, [sp, #0x10] - str r0, [sp, #0x0] - ldr r3, [sp, #0x14] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017BD0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02017B8C -FUN_02017B8C: ; 0x02017B8C - cmp r1, #0x5 - bhi _02017BCE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02017B9C: ; jump table (using 16-bit offset) - .short _02017BA8 - _02017B9C - 2; case 0 - .short _02017BAC - _02017B9C - 2; case 1 - .short _02017BB4 - _02017B9C - 2; case 2 - .short _02017BBC - _02017B9C - 2; case 3 - .short _02017BC0 - _02017B9C - 2; case 4 - .short _02017BC8 - _02017B9C - 2; case 5 -_02017BA8: - str r2, [r0, #0xc] - bx lr -_02017BAC: - ldr r1, [r0, #0xc] - add r1, r1, r2 - str r1, [r0, #0xc] - bx lr -_02017BB4: - ldr r1, [r0, #0xc] - sub r1, r1, r2 - str r1, [r0, #0xc] - bx lr -_02017BBC: - str r2, [r0, #0x10] - bx lr -_02017BC0: - ldr r1, [r0, #0x10] - add r1, r1, r2 - str r1, [r0, #0x10] - bx lr -_02017BC8: - ldr r1, [r0, #0x10] - sub r1, r1, r2 - str r1, [r0, #0x10] -_02017BCE: - bx lr - - thumb_func_start FUN_02017BD0 -FUN_02017BD0: ; 0x02017BD0 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r1, #0x0 - add r1, r2, #0x0 - add r2, r3, #0x0 - ldr r3, [sp, #0x18] - cmp r4, #0x7 - bhi _02017C58 - add r5, r4, r4 - add r5, pc - ldrh r5, [r5, #0x6] - lsl r5, r5, #0x10 - asr r5, r5, #0x10 - add pc, r5 -_02017BEC: ; jump table (using 16-bit offset) - .short _02017C58 - _02017BEC - 2; case 0 - .short _02017C58 - _02017BEC - 2; case 1 - .short _02017BFC - _02017BEC - 2; case 2 - .short _02017C14 - _02017BEC - 2; case 3 - .short _02017C58 - _02017BEC - 2; case 4 - .short _02017C58 - _02017BEC - 2; case 5 - .short _02017C2C - _02017BEC - 2; case 6 - .short _02017C44 - _02017BEC - 2; case 7 -_02017BFC: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C5C ; =0x04000020 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C14: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C60 ; =0x04000030 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C2C: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C64 ; =0x04001020 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C44: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C68 ; =0x04001030 - bl G2x_SetBGyAffine_ -_02017C58: - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02017C5C: .word 0x04000020 -_02017C60: .word 0x04000030 -_02017C64: .word 0x04001020 -_02017C68: .word 0x04001030 - - thumb_func_start FUN_02017C6C -FUN_02017C6C: ; 0x02017C6C - push {r4-r5, lr} - sub sp, #0x14 - mov r2, #0x1 - lsl r2, r2, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r1, #0x0 - add r0, sp, #0x4 - add r3, r2, #0x0 - str r1, [sp, #0x0] - bl FUN_0201BB74 - mov r3, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, sp, #0x4 - str r3, [sp, #0x0] - bl FUN_02017BD0 - add sp, #0x14 - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_02017C98 -FUN_02017C98: ; 0x02017C98 - push {r3-r5, lr} - cmp r2, #0x0 - bne _02017CA4 - bl MI_UncompressLZ8 - pop {r3-r5, pc} -_02017CA4: - mov r4, #0x3 - add r3, r0, #0x0 - tst r3, r4 - bne _02017CCA - add r3, r1, #0x0 - tst r3, r4 - bne _02017CCA - lsl r3, r2, #0x10 - lsr r3, r3, #0x10 - lsr r4, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r4 - mov r3, #0x1e - ror r5, r3 - add r3, r4, r5 - bne _02017CCA - bl MIi_CpuCopy32 - pop {r3-r5, pc} -_02017CCA: - bl MIi_CpuCopy16 - pop {r3-r5, pc} - - thumb_func_start FUN_02017CD0 -FUN_02017CD0: ; 0x02017CD0 - push {r3, lr} - mov r2, #0x2c - mul r2, r1 - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02017CE8 -FUN_02017CE8: ; 0x02017CE8 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x0] - cmp r3, #0x0 - bne _02017D56 - mov r0, #0x2c - add r7, r4, #0x0 - mul r7, r0 - add r0, r5, r7 - ldr r0, [r0, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02017D26 - ldr r1, [sp, #0x4] - add r0, r6, #0x0 - add r2, r3, #0x0 - bl FUN_02017C98 - add r3, r5, r7 - ldr r2, [r3, #0x10] - ldr r1, [sp, #0x4] - ldr r3, [r3, #0xc] - add r0, r4, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 - add sp, #0x8 - pop {r3-r7, pc} -_02017D26: - ldr r0, [r6, #0x0] - lsr r7, r0, #0x8 - ldr r0, [r5, #0x0] - add r1, r7, #0x0 - bl FUN_020169D8 - add r5, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02017C98 - ldr r2, [sp, #0x20] - add r0, r4, #0x0 - add r1, r5, #0x0 - lsl r2, r2, #0x1 - add r3, r7, #0x0 - bl FUN_02017D68 - add r0, r5, #0x0 - bl FUN_02016A18 - add sp, #0x8 - pop {r3-r7, pc} -_02017D56: - ldr r2, [sp, #0x20] - add r0, r4, #0x0 - add r1, r6, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02017D68 -FUN_02017D68: ; 0x02017D68 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r3, #0x0 - add r7, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - add r5, r2, #0x0 - bl DC_FlushRange - cmp r7, #0x7 - bhi _02017DF8 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017D8A: ; jump table (using 16-bit offset) - .short _02017D9A - _02017D8A - 2; case 0 - .short _02017DA6 - _02017D8A - 2; case 1 - .short _02017DB2 - _02017D8A - 2; case 2 - .short _02017DBE - _02017D8A - 2; case 3 - .short _02017DCA - _02017D8A - 2; case 4 - .short _02017DD6 - _02017D8A - 2; case 5 - .short _02017DE2 - _02017D8A - 2; case 6 - .short _02017DEE - _02017D8A - 2; case 7 -_02017D9A: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG0Scr - pop {r3-r7, pc} -_02017DA6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG1Scr - pop {r3-r7, pc} -_02017DB2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG2Scr - pop {r3-r7, pc} -_02017DBE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG3Scr - pop {r3-r7, pc} -_02017DCA: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG0Scr - pop {r3-r7, pc} -_02017DD6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG1Scr - pop {r3-r7, pc} -_02017DE2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG2Scr - pop {r3-r7, pc} -_02017DEE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG3Scr -_02017DF8: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02017DFC -FUN_02017DFC: ; 0x02017DFC - push {r4, lr} - add r4, r0, #0x0 - add r0, r2, #0x0 - mov r2, #0x2c - mul r2, r1 - add r1, r4, r2 - ldr r1, [r1, #0x8] - add r2, r3, #0x0 - bl FUN_02017C98 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02017E14 -FUN_02017E14: ; 0x02017E14 - push {r3-r4, lr} - sub sp, #0x4 - mov r4, #0x2c - mul r4, r1 - add r4, r0, r4 - ldrb r4, [r4, #0x1e] - cmp r4, #0x0 - bne _02017E32 - ldr r4, [sp, #0x10] - lsl r4, r4, #0x5 - str r4, [sp, #0x0] - bl FUN_02017E40 - add sp, #0x4 - pop {r3-r4, pc} -_02017E32: - ldr r4, [sp, #0x10] - lsl r4, r4, #0x6 - str r4, [sp, #0x0] - bl FUN_02017E40 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_02017E40 -FUN_02017E40: ; 0x02017E40 - push {r3-r7, lr} - add r7, r1, #0x0 - add r5, r2, #0x0 - str r3, [sp, #0x0] - cmp r3, #0x0 - bne _02017E78 - ldr r1, [r5, #0x0] - ldr r0, [r0, #0x0] - lsr r4, r1, #0x8 - add r1, r4, #0x0 - bl FUN_020169D8 - add r6, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02017C98 - ldr r2, [sp, #0x18] - add r0, r7, #0x0 - add r1, r6, #0x0 - add r3, r4, #0x0 - bl FUN_02017E84 - add r0, r6, #0x0 - bl FUN_02016A18 - pop {r3-r7, pc} -_02017E78: - ldr r2, [sp, #0x18] - add r0, r7, #0x0 - add r1, r5, #0x0 - bl FUN_02017E84 - pop {r3-r7, pc} - - thumb_func_start FUN_02017E84 -FUN_02017E84: ; 0x02017E84 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r3, #0x0 - add r7, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - add r5, r2, #0x0 - bl DC_FlushRange - cmp r7, #0x7 - bhi _02017F14 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017EA6: ; jump table (using 16-bit offset) - .short _02017EB6 - _02017EA6 - 2; case 0 - .short _02017EC2 - _02017EA6 - 2; case 1 - .short _02017ECE - _02017EA6 - 2; case 2 - .short _02017EDA - _02017EA6 - 2; case 3 - .short _02017EE6 - _02017EA6 - 2; case 4 - .short _02017EF2 - _02017EA6 - 2; case 5 - .short _02017EFE - _02017EA6 - 2; case 6 - .short _02017F0A - _02017EA6 - 2; case 7 -_02017EB6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG0Char - pop {r3-r7, pc} -_02017EC2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG1Char - pop {r3-r7, pc} -_02017ECE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG2Char - pop {r3-r7, pc} -_02017EDA: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG3Char - pop {r3-r7, pc} -_02017EE6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG0Char - pop {r3-r7, pc} -_02017EF2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG1Char - pop {r3-r7, pc} -_02017EFE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG2Char - pop {r3-r7, pc} -_02017F0A: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG3Char -_02017F14: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02017F18 -FUN_02017F18: ; 0x02017F18 - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r3, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - bl FUN_020169D8 - add r4, r0, #0x0 - mov r1, #0x0 - add r2, r5, #0x0 - bl Call_FillMemWithValue - add r0, r6, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - add r3, r5, #0x0 - bl FUN_02017E84 - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl FUN_02016A8C - pop {r3-r7, pc} - - thumb_func_start FUN_02017F48 -FUN_02017F48: ; 0x02017F48 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r1, #0x0 - add r4, r0, #0x0 - mov r1, #0x2c - add r6, r7, #0x0 - add r4, #0x1f - mul r6, r1 - ldrb r1, [r4, r6] - ldr r0, [r0, #0x0] - add r5, r2, #0x0 - mul r1, r3 - str r1, [sp, #0x0] - bl FUN_020169D8 - str r0, [sp, #0x4] - ldrb r0, [r4, r6] - cmp r0, #0x20 - bne _02017F82 - lsl r2, r5, #0xc - lsl r1, r5, #0x8 - lsl r0, r5, #0x4 - orr r1, r2 - orr r0, r1 - add r1, r5, #0x0 - orr r1, r0 - lsl r0, r1, #0x10 - add r5, r1, #0x0 - b _02017F8C -_02017F82: - lsl r2, r5, #0x18 - lsl r1, r5, #0x10 - lsl r0, r5, #0x8 - orr r1, r2 - orr r0, r1 -_02017F8C: - orr r5, r0 - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - bl MIi_CpuClearFast - lsl r0, r7, #0x18 - ldrb r2, [r4, r6] - ldr r3, [sp, #0x20] - ldr r1, [sp, #0x4] - mul r2, r3 - ldr r3, [sp, #0x0] - lsr r0, r0, #0x18 - bl FUN_02017E84 - ldr r0, [sp, #0x4] - bl FUN_02016A18 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02017FB4 -FUN_02017FB4: ; 0x02017FB4 - push {r3-r7, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r7, r3, #0x0 - bl DC_FlushRange - cmp r6, #0x4 - bhs _02017FD6 - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r4, #0x0 - bl GX_LoadBGPltt - pop {r3-r7, pc} -_02017FD6: - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r4, #0x0 - bl GXS_LoadBGPltt - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02017FE4 -FUN_02017FE4: ; 0x02017FE4 - push {r0-r3} - push {r3, lr} - add r1, sp, #0xc - mov r2, #0x2 - mov r3, #0x0 - bl FUN_02017FB4 - pop {r3} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 - - thumb_func_start FUN_02017FFC -FUN_02017FFC: ; 0x02017FFC - cmp r2, #0x5 - bhi _02018066 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0201800C: ; jump table (using 16-bit offset) - .short _02018018 - _0201800C - 2; case 0 - .short _02018022 - _0201800C - 2; case 1 - .short _02018022 - _0201800C - 2; case 2 - .short _0201802C - _0201800C - 2; case 3 - .short _02018042 - _0201800C - 2; case 4 - .short _02018064 - _0201800C - 2; case 5 -_02018018: - lsl r1, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018022: - lsl r1, r1, #0x5 - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_0201802C: - mov r2, #0x1f - add r3, r0, #0x0 - and r3, r2 - mov r2, #0x1f - bic r0, r2 - add r0, r1, r0 - lsl r0, r0, #0x5 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018042: - asr r2, r1, #0x5 - asr r3, r0, #0x5 - lsl r2, r2, #0x1 - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - lsl r2, r2, #0x1a - lsr r3, r2, #0x10 - mov r2, #0x1f - and r2, r0 - lsl r0, r1, #0x1b - lsr r0, r0, #0x16 - add r0, r2, r0 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018064: - mov r0, #0x0 -_02018066: - bx lr - - thumb_func_start FUN_02018068 -FUN_02018068: ; 0x02018068 - push {r3-r7} - sub sp, #0x4 - str r3, [sp, #0x0] - add r6, r2, #0x0 - ldr r5, [sp, #0x0] - add r4, r6, #0x0 - sub r4, #0x20 - sub r5, #0x20 - mov r2, #0x0 - lsl r4, r4, #0x10 - lsl r5, r5, #0x10 - add r3, r2, #0x0 - asr r4, r4, #0x10 - asr r7, r5, #0x10 - lsr r5, r0, #0x5 - beq _0201808E - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 -_0201808E: - lsr r5, r1, #0x5 - beq _02018098 - add r2, r2, #0x2 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 -_02018098: - cmp r2, #0x3 - bhi _02018140 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_020180A8: ; jump table (using 16-bit offset) - .short _020180B0 - _020180A8 - 2; case 0 - .short _020180CE - _020180A8 - 2; case 1 - .short _020180F4 - _020180A8 - 2; case 2 - .short _02018120 - _020180A8 - 2; case 3 -_020180B0: - cmp r4, #0x0 - blt _020180C0 - lsl r1, r1, #0x5 - add r0, r0, r1 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180C0: - add r2, r1, #0x0 - mul r2, r6 - add r0, r0, r2 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180CE: - cmp r7, #0x0 - blt _020180D8 - mov r2, #0x1 - lsl r2, r2, #0xa - b _020180DC -_020180D8: - ldr r2, [sp, #0x0] - lsl r2, r2, #0x5 -_020180DC: - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r3, r2, #0x10 - mov r2, #0x1f - and r2, r0 - add r0, r1, #0x0 - mul r0, r4 - add r0, r2, r0 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180F4: - lsl r2, r6, #0x5 - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r4, #0x0 - blt _0201810E - lsl r1, r1, #0x1b - lsr r1, r1, #0x16 - add r0, r0, r1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_0201810E: - mov r3, #0x1f - and r1, r3 - add r3, r1, #0x0 - mul r3, r6 - add r0, r0, r3 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_02018120: - add r2, r6, r7 - lsl r2, r2, #0x5 - add r2, r3, r2 - add r5, r0, #0x0 - mov r3, #0x1f - add r0, r1, #0x0 - and r0, r3 - add r1, r0, #0x0 - lsl r2, r2, #0x10 - and r5, r3 - mul r1, r4 - lsr r2, r2, #0x10 - add r0, r5, r1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 -_02018140: - add r0, r3, #0x0 - add sp, #0x4 - pop {r3-r7} - bx lr - - thumb_func_start FUN_02018148 -FUN_02018148: ; 0x02018148 - push {r3-r6, lr} - sub sp, #0x1c - add r6, sp, #0x20 - ldrb r5, [r6, #0x14] - str r5, [sp, #0x0] - ldrb r4, [r6, #0x18] - str r4, [sp, #0x4] - str r2, [sp, #0x8] - mov r2, #0x0 - str r2, [sp, #0xc] - str r2, [sp, #0x10] - str r5, [sp, #0x14] - str r4, [sp, #0x18] - add r2, r3, #0x0 - ldrb r3, [r6, #0x10] - bl FUN_02018170 - add sp, #0x1c - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02018170 -FUN_02018170: ; 0x02018170 - push {r4-r5, lr} - sub sp, #0x1c - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x18 - cmp r1, #0x1 - beq _020181BA - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x0 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018268 - add sp, #0x1c - pop {r4-r5, pc} -_020181BA: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x0 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_020183DC - add sp, #0x1c - pop {r4-r5, pc} - - thumb_func_start FUN_020181EC -FUN_020181EC: ; 0x020181EC - push {r4-r5, lr} - sub sp, #0x1c - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x18 - cmp r1, #0x1 - beq _02018236 - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x1 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018268 - add sp, #0x1c - pop {r4-r5, pc} -_02018236: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x1 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_020183DC - add sp, #0x1c - pop {r4-r5, pc} - - thumb_func_start FUN_02018268 -FUN_02018268: ; 0x02018268 - push {r4-r7, lr} - sub sp, #0x44 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r7, r0, #0x0 - ldr r0, [sp, #0x58] - add r6, r3, #0x0 - str r0, [sp, #0x58] - ldr r0, [sp, #0x5c] - ldr r4, [sp, #0x68] - str r0, [sp, #0x5c] - ldr r0, [sp, #0x6c] - str r0, [sp, #0x6c] - ldr r0, [r7, #0x0] - str r0, [sp, #0x2c] - cmp r0, #0x0 - bne _0201828C - b _020183D6 -_0201828C: - ldrb r0, [r7, #0x15] - add r1, sp, #0x40 - add r1, #0x1 - add r2, sp, #0x40 - bl FUN_02017850 - add r0, sp, #0x70 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201833A - mov r0, #0x0 - str r0, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _020182CA - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x1c] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x18] - lsl r1, r0, #0x1 - ldr r0, [sp, #0x5c] - add r0, r0, r1 - str r0, [sp, #0x14] -_020182BC: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x28] - add r0, r1, r0 - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - cmp r0, r1 - blt _020182CC -_020182CA: - b _020183D6 -_020182CC: - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x28] - add r2, r2, r1 - ldr r1, [sp, #0x6c] - cmp r2, r1 - bge _020183D6 - mov r5, #0x0 - cmp r6, #0x0 - bls _02018326 - add r1, r4, #0x0 - mul r1, r2 - lsl r2, r1, #0x1 - ldr r1, [sp, #0x14] - lsl r0, r0, #0x18 - add r1, r1, r2 - lsr r0, r0, #0x18 - str r1, [sp, #0x10] - str r0, [sp, #0x30] -_020182F0: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _02018326 - ldr r1, [sp, #0x18] - add r1, r1, r5 - cmp r1, r4 - bge _02018326 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x30] - lsr r0, r0, #0x18 - bl FUN_02017FFC - ldr r1, [sp, #0x10] - lsl r2, r5, #0x1 - ldrh r1, [r1, r2] - lsl r2, r0, #0x1 - ldr r0, [sp, #0x2c] - strh r1, [r0, r2] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _020182F0 -_02018326: - ldr r0, [sp, #0x28] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _020182BC - add sp, #0x44 - pop {r4-r7, pc} -_0201833A: - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _020183D6 - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x24] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x20] -_0201834E: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - add r1, r1, r0 - add r0, sp, #0x40 - ldrb r0, [r0, #0x0] - cmp r1, r0 - bge _020183D6 - ldr r2, [sp, #0x24] - ldr r0, [sp, #0x8] - add r0, r2, r0 - ldr r2, [sp, #0x6c] - cmp r0, r2 - bge _020183D6 - mov r5, #0x0 - cmp r6, #0x0 - bls _020183C6 - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x34] - str r0, [sp, #0x3c] -_0201837A: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _020183C6 - ldr r1, [sp, #0x20] - add r1, r1, r5 - str r1, [sp, #0xc] - cmp r1, r4 - bge _020183C6 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x34] - lsr r0, r0, #0x18 - bl FUN_02017FFC - str r0, [sp, #0x38] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x3c] - lsl r0, r0, #0x18 - ldr r3, [sp, #0x6c] - lsr r0, r0, #0x18 - add r2, r4, #0x0 - bl FUN_02018068 - lsl r1, r0, #0x1 - ldr r0, [sp, #0x5c] - ldrh r0, [r0, r1] - ldr r1, [sp, #0x38] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x2c] - strh r0, [r1, r2] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _0201837A -_020183C6: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _0201834E -_020183D6: - add sp, #0x44 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_020183DC -FUN_020183DC: ; 0x020183DC - push {r4-r7, lr} - sub sp, #0x44 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r7, r0, #0x0 - ldr r0, [sp, #0x58] - add r6, r3, #0x0 - str r0, [sp, #0x58] - ldr r0, [sp, #0x5c] - ldr r4, [sp, #0x68] - str r0, [sp, #0x5c] - ldr r0, [sp, #0x6c] - str r0, [sp, #0x6c] - ldr r0, [r7, #0x0] - str r0, [sp, #0x2c] - cmp r0, #0x0 - bne _02018400 - b _0201853C -_02018400: - ldrb r0, [r7, #0x15] - add r1, sp, #0x40 - add r1, #0x1 - add r2, sp, #0x40 - bl FUN_02017850 - add r0, sp, #0x70 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _020184A4 - mov r0, #0x0 - str r0, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bhi _02018420 - b _0201853C -_02018420: - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x1c] - ldrb r0, [r1, #0x18] - ldr r1, [sp, #0x5c] - str r0, [sp, #0x18] - add r0, r1, r0 - str r0, [sp, #0x14] -_02018430: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x28] - add r0, r1, r0 - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - cmp r0, r1 - bge _0201853C - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x28] - add r2, r2, r1 - ldr r1, [sp, #0x6c] - cmp r2, r1 - bge _0201853C - mov r5, #0x0 - cmp r6, #0x0 - bls _02018490 - ldr r1, [sp, #0x14] - mul r2, r4 - lsl r0, r0, #0x18 - add r1, r1, r2 - lsr r0, r0, #0x18 - str r1, [sp, #0x10] - str r0, [sp, #0x30] -_0201845E: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _02018490 - ldr r1, [sp, #0x18] - add r1, r1, r5 - cmp r1, r4 - bge _02018490 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x30] - lsr r0, r0, #0x18 - bl FUN_02017FFC - ldr r1, [sp, #0x10] - ldrb r2, [r1, r5] - ldr r1, [sp, #0x2c] - strb r2, [r1, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _0201845E -_02018490: - ldr r0, [sp, #0x28] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _02018430 - add sp, #0x44 - pop {r4-r7, pc} -_020184A4: - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _0201853C - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x24] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x20] -_020184B8: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - add r1, r1, r0 - add r0, sp, #0x40 - ldrb r0, [r0, #0x0] - cmp r1, r0 - bge _0201853C - ldr r2, [sp, #0x24] - ldr r0, [sp, #0x8] - add r0, r2, r0 - ldr r2, [sp, #0x6c] - cmp r0, r2 - bge _0201853C - mov r5, #0x0 - cmp r6, #0x0 - bls _0201852C - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x34] - str r0, [sp, #0x3c] -_020184E4: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _0201852C - ldr r1, [sp, #0x20] - add r1, r1, r5 - str r1, [sp, #0xc] - cmp r1, r4 - bge _0201852C - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x34] - lsr r0, r0, #0x18 - bl FUN_02017FFC - str r0, [sp, #0x38] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x3c] - lsl r0, r0, #0x18 - ldr r3, [sp, #0x6c] - lsr r0, r0, #0x18 - add r2, r4, #0x0 - bl FUN_02018068 - ldr r1, [sp, #0x5c] - ldrb r2, [r1, r0] - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x38] - strb r2, [r1, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _020184E4 -_0201852C: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _020184B8 -_0201853C: - add sp, #0x44 - pop {r4-r7, pc} - - thumb_func_start FUN_02018540 -FUN_02018540: ; 0x02018540 - push {r4-r5, lr} - sub sp, #0xc - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x8 - cmp r1, #0x1 - beq _02018574 - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldrb r1, [r3, #0x18] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018590 - add sp, #0xc - pop {r4-r5, pc} -_02018574: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldrb r1, [r3, #0x18] - str r1, [sp, #0x4] - lsl r1, r4, #0x18 - ldrb r3, [r3, #0x10] - lsr r1, r1, #0x18 - bl FUN_02018640 - add sp, #0xc - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_02018590 -FUN_02018590: ; 0x02018590 - push {r4-r7, lr} - sub sp, #0x1c - str r2, [sp, #0x4] - str r3, [sp, #0x8] - ldr r4, [r0, #0x0] - add r7, r1, #0x0 - str r0, [sp, #0x0] - ldr r6, [sp, #0x38] - cmp r4, #0x0 - beq _0201863A - ldrb r0, [r0, #0x15] - add r1, sp, #0x18 - add r1, #0x1 - add r2, sp, #0x18 - bl FUN_02017850 - add r0, sp, #0x20 - ldrb r2, [r0, #0x14] - ldr r1, [sp, #0x8] - add r1, r1, r2 - ldr r2, [sp, #0x8] - str r1, [sp, #0xc] - cmp r2, r1 - bge _0201863A - ldrb r2, [r0, #0x10] - ldr r0, [sp, #0x4] - lsl r1, r6, #0xc - add r0, r0, r2 - add r1, r1, r7 - str r0, [sp, #0x10] - lsl r0, r1, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x14] -_020185D2: - add r0, sp, #0x18 - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x8] - cmp r0, r1 - bhs _0201863A - ldr r5, [sp, #0x4] - ldr r0, [sp, #0x10] - add r1, r5, #0x0 - cmp r1, r0 - bge _0201862A -_020185E6: - add r0, sp, #0x18 - ldrb r0, [r0, #0x1] - cmp r5, r0 - bhs _0201862A - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x8] - ldrb r2, [r2, #0x15] - add r0, r5, #0x0 - bl FUN_02017FFC - cmp r6, #0x11 - bne _02018604 - lsl r0, r0, #0x1 - strh r7, [r4, r0] - b _0201861E -_02018604: - cmp r6, #0x10 - bne _02018618 - lsl r0, r0, #0x1 - ldrh r2, [r4, r0] - mov r1, #0xf - lsl r1, r1, #0xc - and r1, r2 - add r1, r7, r1 - strh r1, [r4, r0] - b _0201861E -_02018618: - lsl r1, r0, #0x1 - ldr r0, [sp, #0x14] - strh r0, [r4, r1] -_0201861E: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, [sp, #0x10] - cmp r5, r0 - blt _020185E6 -_0201862A: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r0, [sp, #0xc] - str r1, [sp, #0x8] - cmp r1, r0 - blt _020185D2 -_0201863A: - add sp, #0x1c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02018640 -FUN_02018640: ; 0x02018640 - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x0] - add r7, r0, #0x0 - str r2, [sp, #0x4] - ldr r0, [r7, #0x0] - add r5, r3, #0x0 - str r0, [sp, #0xc] - cmp r0, #0x0 - beq _020186B0 - ldrb r0, [r7, #0x15] - add r1, sp, #0x10 - add r1, #0x1 - add r2, sp, #0x10 - bl FUN_02017850 - add r1, sp, #0x18 - ldrb r0, [r1, #0x14] - add r0, r5, r0 - str r0, [sp, #0x8] - cmp r5, r0 - bge _020186B0 - ldrb r1, [r1, #0x10] - ldr r0, [sp, #0x4] - add r6, r0, r1 -_02018672: - add r0, sp, #0x10 - ldrb r0, [r0, #0x0] - cmp r5, r0 - bhs _020186B0 - ldr r4, [sp, #0x4] - add r0, r4, #0x0 - cmp r0, r6 - bge _020186A4 -_02018682: - add r0, sp, #0x10 - ldrb r0, [r0, #0x1] - cmp r4, r0 - bhs _020186A4 - ldrb r2, [r7, #0x15] - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02017FFC - ldr r2, [sp, #0x0] - ldr r1, [sp, #0xc] - strb r2, [r1, r0] - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, r6 - blt _02018682 -_020186A4: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, [sp, #0x8] - cmp r5, r0 - blt _02018672 -_020186B0: - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_020186B4 -FUN_020186B4: ; 0x020186B4 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - mov r0, #0x2c - add r7, r1, #0x0 - mul r7, r0 - str r2, [sp, #0x0] - add r0, r5, r7 - ldr r4, [r0, #0x8] - add r6, r3, #0x0 - cmp r4, #0x0 - beq _0201873C - ldrb r0, [r0, #0x1d] - add r1, sp, #0x10 - add r1, #0x1 - add r2, sp, #0x10 - bl FUN_02017850 - add r0, sp, #0x18 - ldrb r1, [r0, #0x14] - add r1, r6, r1 - str r1, [sp, #0x4] - cmp r6, r1 - bge _0201873C - add r1, r5, r7 - str r1, [sp, #0xc] - ldrb r1, [r0, #0x18] - lsl r1, r1, #0xc - str r1, [sp, #0x8] - ldrb r1, [r0, #0x10] - ldr r0, [sp, #0x0] - add r7, r0, r1 -_020186F4: - add r0, sp, #0x10 - ldrb r0, [r0, #0x0] - cmp r6, r0 - bhs _0201873C - ldr r5, [sp, #0x0] - add r0, r5, #0x0 - cmp r0, r7 - bge _02018730 -_02018704: - add r0, sp, #0x10 - ldrb r0, [r0, #0x1] - cmp r5, r0 - bhs _02018730 - ldr r2, [sp, #0xc] - add r0, r5, #0x0 - ldrb r2, [r2, #0x1d] - add r1, r6, #0x0 - bl FUN_02017FFC - lsl r0, r0, #0x1 - ldrh r2, [r4, r0] - ldr r1, _02018740 ; =0x00000FFF - and r2, r1 - ldr r1, [sp, #0x8] - orr r1, r2 - strh r1, [r4, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r7 - blt _02018704 -_02018730: - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r0, [sp, #0x4] - cmp r6, r0 - blt _020186F4 -_0201873C: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02018740: .word 0x00000FFF - - thumb_func_start FUN_02018744 -FUN_02018744: ; 0x02018744 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r2, r5, r0 - ldr r1, [r2, #0x8] - cmp r1, #0x0 - beq _02018766 - ldr r2, [r2, #0xc] - mov r0, #0x0 - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017CD0 -_02018766: - pop {r3-r5, pc} - - thumb_func_start FUN_02018768 -FUN_02018768: ; 0x02018768 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r3, r5, r0 - ldr r1, [r3, #0x8] - cmp r1, #0x0 - beq _0201878A - add r0, r2, #0x0 - ldr r2, [r3, #0xc] - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017CD0 -_0201878A: - pop {r3-r5, pc} - - thumb_func_start FUN_0201878C -FUN_0201878C: ; 0x0201878C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r3, r5, r0 - ldr r1, [r3, #0x8] - cmp r1, #0x0 - beq _020187AE - add r0, r2, #0x0 - ldr r2, [r3, #0xc] - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201AC68 -_020187AE: - pop {r3-r5, pc} - - thumb_func_start FUN_020187B0 -FUN_020187B0: ; 0x020187B0 - push {r3, lr} - cmp r0, #0x7 - bhi _02018802 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020187C2: ; jump table (using 16-bit offset) - .short _020187D2 - _020187C2 - 2; case 0 - .short _020187D8 - _020187C2 - 2; case 1 - .short _020187DE - _020187C2 - 2; case 2 - .short _020187E4 - _020187C2 - 2; case 3 - .short _020187EA - _020187C2 - 2; case 4 - .short _020187F0 - _020187C2 - 2; case 5 - .short _020187F6 - _020187C2 - 2; case 6 - .short _020187FC - _020187C2 - 2; case 7 -_020187D2: - bl G2_GetBG0CharPtr - pop {r3, pc} -_020187D8: - bl G2_GetBG1CharPtr - pop {r3, pc} -_020187DE: - bl G2_GetBG2CharPtr - pop {r3, pc} -_020187E4: - bl G2_GetBG3CharPtr - pop {r3, pc} -_020187EA: - bl G2S_GetBG0CharPtr - pop {r3, pc} -_020187F0: - bl G2S_GetBG1CharPtr - pop {r3, pc} -_020187F6: - bl G2S_GetBG2CharPtr - pop {r3, pc} -_020187FC: - bl G2S_GetBG3CharPtr - pop {r3, pc} -_02018802: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02018808 -FUN_02018808: ; 0x02018808 - push {r4-r7} - lsl r3, r3, #0x1c - lsr r3, r3, #0x18 - mov r4, #0x0 - cmp r1, #0x0 - bls _02018842 - mov r5, #0xf - add r6, r5, #0x0 -_02018818: - ldrb r7, [r0, r4] - and r7, r6 - strb r7, [r2, #0x0] - ldrb r7, [r2, #0x0] - cmp r7, #0x0 - beq _02018828 - add r7, r7, r3 - strb r7, [r2, #0x0] -_02018828: - ldrb r7, [r0, r4] - asr r7, r7, #0x4 - and r7, r5 - strb r7, [r2, #0x1] - ldrb r7, [r2, #0x1] - cmp r7, #0x0 - beq _0201883A - add r7, r7, r3 - strb r7, [r2, #0x1] -_0201883A: - add r4, r4, #0x1 - add r2, r2, #0x2 - cmp r4, r1 - blo _02018818 -_02018842: - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02018848 -FUN_02018848: ; 0x02018848 - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r0, #0x0 - add r0, r3, #0x0 - lsl r1, r5, #0x1 - add r7, r2, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - add r3, r7, #0x0 - bl FUN_02018808 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201886C -FUN_0201886C: ; 0x0201886C - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_02018878 -FUN_02018878: ; 0x02018878 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrh r0, [r0, #0x20] - bx lr - .balign 4 - - thumb_func_start FUN_02018884 -FUN_02018884: ; 0x02018884 - sub sp, #0x20 - cmp r1, #0x7 - bls _0201888C - b _02018A38 -_0201888C: - add r2, r1, r1 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02018898: ; jump table (using 16-bit offset) - .short _020188A8 - _02018898 - 2; case 0 - .short _020188BC - _02018898 - 2; case 1 - .short _020188D0 - _02018898 - 2; case 2 - .short _02018920 - _02018898 - 2; case 3 - .short _02018970 - _02018898 - 2; case 4 - .short _02018984 - _02018898 - 2; case 5 - .short _02018998 - _02018898 - 2; case 6 - .short _020189E8 - _02018898 - 2; case 7 -_020188A8: - ldr r0, _02018A40 ; =0x04000008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1e] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188BC: - ldr r0, _02018A44 ; =0x0400000A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1c] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188D0: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020188E4 - cmp r0, #0x1 - beq _020188F8 - cmp r0, #0x2 - beq _0201890C -_020188E4: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1a] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188F8: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x18] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201890C: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x16] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018920: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _02018934 - cmp r0, #0x1 - beq _02018948 - cmp r0, #0x2 - beq _0201895C -_02018934: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x14] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018948: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x12] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201895C: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x10] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018970: - ldr r0, _02018A50 ; =0x04001008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xe] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018984: - ldr r0, _02018A54 ; =0x0400100A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xc] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018998: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189AC - cmp r0, #0x1 - beq _020189C0 - cmp r0, #0x2 - beq _020189D4 -_020189AC: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xa] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189C0: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x8] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189D4: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x6] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189E8: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189FC - cmp r0, #0x1 - beq _02018A10 - cmp r0, #0x2 - beq _02018A24 -_020189FC: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x4] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A10: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x2] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A24: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x0] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A38: - mov r0, #0x0 - add sp, #0x20 - bx lr - nop -_02018A40: .word 0x04000008 -_02018A44: .word 0x0400000A -_02018A48: .word 0x0400000C -_02018A4C: .word 0x0400000E -_02018A50: .word 0x04001008 -_02018A54: .word 0x0400100A -_02018A58: .word 0x0400100C -_02018A5C: .word 0x0400100E - - thumb_func_start FUN_02018A60 -FUN_02018A60: ; 0x02018A60 - push {r3-r7, lr} - sub sp, #0x68 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x70 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018A88 - ldr r0, [sp, #0x8] - add r0, r0, r3 - str r0, [sp, #0x50] - b _02018A8E -_02018A88: - ldr r0, [sp, #0x8] - add r0, r2, r0 - str r0, [sp, #0x50] -_02018A8E: - ldr r2, [sp, #0x4] - add r3, sp, #0x70 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018AA6 - ldr r2, [sp, #0xc] - add r2, r2, r4 - str r2, [sp, #0x4c] - b _02018AAC -_02018AA6: - ldr r2, [sp, #0xc] - add r2, r3, r2 - str r2, [sp, #0x4c] -_02018AAC: - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x48] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x44] - add r1, sp, #0x70 - ldrh r1, [r1, #0x20] - ldr r2, _02018C98 ; =0x0000FFFF - str r1, [sp, #0x38] - cmp r1, r2 - bne _02018BB4 - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018ADE - cmp r2, r1 - blt _02018AE0 -_02018ADE: - b _02018C92 -_02018AE0: - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018AEA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018B96 - cmp r1, r0 - bge _02018B96 - add r0, r3, #0x0 - lsl r5, r0, #0x2 - add r0, r4, #0x0 - lsl r6, r0, #0x2 - ldr r0, _02018C9C ; =0x00003FE0 - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x48] - and r1, r0 - mul r2, r1 - str r2, [sp, #0x20] - ldr r2, [sp, #0x28] - mov r1, #0x1c - and r2, r1 - str r2, [sp, #0x1c] - ldr r2, [sp, #0x24] - and r0, r2 - ldr r2, [sp, #0x44] - mul r2, r0 - ldr r0, [sp, #0x24] - str r2, [sp, #0x18] - and r0, r1 - str r0, [sp, #0x14] -_02018B26: - ldr r0, [sp, #0x4] - asr r2, r4, #0x1 - mov r1, #0x3 - ldr r0, [r0, #0x0] - and r1, r2 - add r1, r0, r1 - ldr r0, _02018C9C ; =0x00003FE0 - and r0, r6 - add r1, r1, r0 - ldr r0, [sp, #0x18] - add r6, r6, #0x4 - add r0, r1, r0 - str r0, [sp, #0x64] - lsl r0, r4, #0x1f - lsr r2, r0, #0x1d - ldr r0, [sp, #0x0] - asr r1, r3, #0x1 - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r1 - ldr r1, _02018C9C ; =0x00003FE0 - add r4, r4, #0x1 - and r1, r5 - str r1, [sp, #0x54] - add r1, r7, r0 - ldr r0, [sp, #0x54] - add r5, r5, #0x4 - add r1, r0, r1 - ldr r0, [sp, #0x20] - add r1, r0, r1 - ldr r0, [sp, #0x1c] - ldrb r1, [r0, r1] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r1, r0 - mov r0, #0xf - and r0, r1 - add r7, r0, #0x0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - lsl r7, r2 - ldrb r0, [r0, r1] - add r3, r3, #0x1 - str r0, [sp, #0x58] - mov r0, #0xf0 - asr r0, r2 - ldr r1, [sp, #0x58] - add r2, r7, #0x0 - and r0, r1 - orr r2, r0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - strb r2, [r0, r1] - ldr r0, [sp, #0x50] - cmp r3, r0 - blt _02018B26 -_02018B96: - ldr r0, [sp, #0x28] - add r0, r0, #0x4 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x24] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018AEA - add sp, #0x68 - pop {r3-r7, pc} -_02018BB4: - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018C92 - cmp r2, r1 - bge _02018C92 - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x40] - str r0, [sp, #0x3c] -_02018BCA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018C78 - cmp r1, r0 - bge _02018C78 - add r0, r3, #0x0 - lsl r1, r0, #0x2 - add r0, r4, #0x0 - lsl r2, r0, #0x2 - ldr r0, _02018C9C ; =0x00003FE0 - ldr r5, [sp, #0x40] - ldr r6, [sp, #0x48] - and r5, r0 - mul r6, r5 - str r6, [sp, #0x34] - ldr r6, [sp, #0x40] - mov r5, #0x1c - and r6, r5 - str r6, [sp, #0x30] - ldr r6, [sp, #0x3c] - and r0, r6 - ldr r6, [sp, #0x44] - mul r6, r0 - ldr r0, [sp, #0x3c] - str r6, [sp, #0x2c] - and r0, r5 - str r0, [sp, #0x60] -_02018C06: - ldr r0, [sp, #0x4] - asr r6, r4, #0x1 - mov r5, #0x3 - and r5, r6 - ldr r0, [r0, #0x0] - asr r6, r3, #0x1 - add r5, r0, r5 - ldr r0, _02018C9C ; =0x00003FE0 - and r0, r2 - add r5, r5, r0 - ldr r0, [sp, #0x2c] - add r5, r5, r0 - ldr r0, [sp, #0x0] - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r6 - ldr r6, _02018C9C ; =0x00003FE0 - and r6, r1 - str r6, [sp, #0x5c] - add r6, r7, r0 - ldr r0, [sp, #0x5c] - add r6, r0, r6 - ldr r0, [sp, #0x34] - add r6, r0, r6 - ldr r0, [sp, #0x30] - ldrb r6, [r0, r6] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r6, r0 - mov r0, #0xf - and r0, r6 - ldr r6, [sp, #0x38] - cmp r0, r6 - beq _02018C6A - lsl r6, r4, #0x1f - lsr r7, r6, #0x1d - lsl r0, r7 - mov lr, r0 - ldr r0, [sp, #0x60] - ldrb r0, [r5, r0] - mov r12, r0 - mov r0, #0xf0 - add r6, r0, #0x0 - asr r6, r7 - mov r0, r12 - and r0, r6 - mov r6, lr - orr r6, r0 - ldr r0, [sp, #0x60] - strb r6, [r5, r0] -_02018C6A: - ldr r0, [sp, #0x50] - add r3, r3, #0x1 - add r1, r1, #0x4 - add r2, r2, #0x4 - add r4, r4, #0x1 - cmp r3, r0 - blt _02018C06 -_02018C78: - ldr r0, [sp, #0x40] - add r0, r0, #0x4 - str r0, [sp, #0x40] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018BCA -_02018C92: - add sp, #0x68 - pop {r3-r7, pc} - nop -_02018C98: .word 0x0000FFFF -_02018C9C: .word 0x00003FE0 - - thumb_func_start FUN_02018CA0 -FUN_02018CA0: ; 0x02018CA0 - push {r3-r7, lr} - sub sp, #0x50 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x58 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018CC6 - ldr r0, [sp, #0x8] - add r0, r0, r3 - b _02018CCA -_02018CC6: - ldr r0, [sp, #0x8] - add r0, r2, r0 -_02018CCA: - ldr r2, [sp, #0x4] - add r3, sp, #0x58 - mov r12, r0 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018CE2 - ldr r2, [sp, #0xc] - add r2, r2, r4 - b _02018CE6 -_02018CE2: - ldr r2, [sp, #0xc] - add r2, r3, r2 -_02018CE6: - mov lr, r2 - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x4c] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x48] - add r1, sp, #0x58 - ldrh r1, [r1, #0x20] - ldr r2, _02018E80 ; =0x0000FFFF - str r1, [sp, #0x3c] - cmp r1, r2 - bne _02018DC6 - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018D1C - mov r1, lr - cmp r2, r1 - blt _02018D1E -_02018D1C: - b _02018E7C -_02018D1E: - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018D28: - ldr r1, [sp, #0x8] - mov r0, r12 - add r2, r1, #0x0 - ldr r7, [sp, #0x10] - cmp r2, r0 - bge _02018DA8 - mov r0, r12 - cmp r2, r0 - bge _02018DA8 - add r0, r1, #0x0 - lsl r2, r0, #0x3 - add r0, r7, #0x0 - lsl r3, r0, #0x3 - ldr r6, _02018E84 ; =0x00007FC0 - ldr r0, [sp, #0x28] - ldr r4, [sp, #0x4c] - and r0, r6 - mul r4, r0 - str r4, [sp, #0x20] - ldr r0, [sp, #0x28] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x48] - and r0, r6 - mul r4, r0 - ldr r0, [sp, #0x24] - str r4, [sp, #0x18] - and r0, r5 - str r0, [sp, #0x14] -_02018D66: - ldr r0, [sp, #0x0] - add r5, r1, #0x0 - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r2 - add r4, r4, r0 - ldr r0, [sp, #0x20] - add r5, r7, #0x0 - add r4, r0, r4 - ldr r0, [sp, #0x1c] - add r1, r1, #0x1 - ldrb r6, [r0, r4] - ldr r0, [sp, #0x4] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r3 - add r4, r4, r0 - ldr r0, [sp, #0x18] - add r2, #0x8 - add r4, r0, r4 - ldr r0, [sp, #0x14] - add r3, #0x8 - strb r6, [r0, r4] - mov r0, r12 - add r7, r7, #0x1 - cmp r1, r0 - blt _02018D66 -_02018DA8: - ldr r0, [sp, #0x28] - add r0, #0x8 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x24] - mov r0, lr - cmp r1, r0 - blt _02018D28 - add sp, #0x50 - pop {r3-r7, pc} -_02018DC6: - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018E7C - mov r1, lr - cmp r2, r1 - bge _02018E7C - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x44] - str r0, [sp, #0x40] -_02018DDE: - ldr r2, [sp, #0x8] - mov r0, r12 - add r1, r2, #0x0 - ldr r3, [sp, #0x10] - cmp r1, r0 - bge _02018E62 - mov r0, r12 - cmp r1, r0 - bge _02018E62 - add r0, r2, #0x0 - lsl r6, r0, #0x3 - add r0, r3, #0x0 - lsl r1, r0, #0x3 - ldr r7, _02018E84 ; =0x00007FC0 - ldr r0, [sp, #0x44] - ldr r4, [sp, #0x4c] - and r0, r7 - mul r4, r0 - str r4, [sp, #0x38] - ldr r0, [sp, #0x44] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x34] - ldr r0, [sp, #0x40] - ldr r4, [sp, #0x48] - and r0, r7 - mul r4, r0 - ldr r0, [sp, #0x40] - str r4, [sp, #0x30] - and r0, r5 - str r0, [sp, #0x2c] -_02018E1C: - ldr r0, [sp, #0x4] - mov r4, #0x7 - ldr r0, [r0, #0x0] - and r4, r3 - add r0, r0, r4 - ldr r4, _02018E84 ; =0x00007FC0 - add r5, r2, #0x0 - and r4, r1 - add r4, r0, r4 - ldr r0, [sp, #0x30] - add r7, r4, r0 - ldr r0, [sp, #0x0] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r6 - add r4, r4, r0 - ldr r0, [sp, #0x38] - add r4, r0, r4 - ldr r0, [sp, #0x34] - ldrb r0, [r0, r4] - ldr r4, [sp, #0x3c] - cmp r0, r4 - beq _02018E54 - ldr r4, [sp, #0x2c] - strb r0, [r7, r4] -_02018E54: - add r2, r2, #0x1 - mov r0, r12 - add r6, #0x8 - add r1, #0x8 - add r3, r3, #0x1 - cmp r2, r0 - blt _02018E1C -_02018E62: - ldr r0, [sp, #0x44] - add r0, #0x8 - str r0, [sp, #0x44] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x40] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x40] - mov r0, lr - cmp r1, r0 - blt _02018DDE -_02018E7C: - add sp, #0x50 - pop {r3-r7, pc} - .balign 4 -_02018E80: .word 0x0000FFFF -_02018E84: .word 0x00007FC0 - - thumb_func_start FUN_02018E88 -FUN_02018E88: ; 0x02018E88 - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - str r0, [sp, #0x2c] - ldr r0, [sp, #0x4] - add r6, r0, r3 - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - cmp r6, r0 - ble _02018EA4 - add r6, r0, #0x0 -_02018EA4: - add r1, sp, #0x18 - ldrh r2, [r1, #0x10] - ldr r1, [sp, #0x8] - add r1, r1, r2 - mov r12, r1 - ldr r1, [sp, #0x0] - ldrh r2, [r1, #0x6] - mov r1, r12 - cmp r1, r2 - ble _02018EBA - mov r12, r2 -_02018EBA: - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - mov lr, r0 - ldr r1, [sp, #0x8] - mov r0, r12 - cmp r1, r0 - bge _02018F44 - add r0, r1, #0x0 - lsl r0, r0, #0x2 - str r0, [sp, #0xc] - ldr r0, [sp, #0x2c] - lsl r0, r0, #0x4 - str r0, [sp, #0x10] -_02018ED8: - ldr r1, [sp, #0x4] - add r0, r1, #0x0 - cmp r0, r6 - bge _02018F32 - lsl r5, r0, #0x2 - ldr r2, _02018F48 ; =0x00003FE0 - ldr r0, [sp, #0xc] - and r0, r2 - add r7, r0, #0x0 - mov r2, lr - mul r7, r2 - ldr r0, [sp, #0xc] - mov r2, #0x1c - and r2, r0 -_02018EF4: - ldr r0, [sp, #0x0] - asr r3, r1, #0x1 - ldr r4, [r0, #0x0] - mov r0, #0x3 - and r0, r3 - ldr r3, _02018F48 ; =0x00003FE0 - add r0, r4, r0 - and r3, r5 - add r0, r0, r3 - add r0, r0, r7 - mov r3, #0x1 - tst r3, r1 - ldrb r4, [r0, r2] - beq _02018F1C - mov r3, #0xf - and r3, r4 - strb r3, [r0, r2] - ldrb r4, [r0, r2] - ldr r3, [sp, #0x10] - b _02018F26 -_02018F1C: - mov r3, #0xf0 - and r3, r4 - strb r3, [r0, r2] - ldrb r4, [r0, r2] - ldr r3, [sp, #0x2c] -_02018F26: - orr r3, r4 - add r1, r1, #0x1 - strb r3, [r0, r2] - add r5, r5, #0x4 - cmp r1, r6 - blt _02018EF4 -_02018F32: - ldr r0, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r1, r0, #0x1 - mov r0, r12 - str r1, [sp, #0x8] - cmp r1, r0 - blt _02018ED8 -_02018F44: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02018F48: .word 0x00003FE0 - - thumb_func_start FUN_02018F4C -FUN_02018F4C: ; 0x02018F4C - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - str r0, [sp, #0x2c] - ldr r0, [sp, #0x4] - add r5, r0, r3 - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - cmp r5, r0 - ble _02018F68 - add r5, r0, #0x0 -_02018F68: - add r1, sp, #0x18 - ldrh r2, [r1, #0x10] - ldr r1, [sp, #0x8] - add r1, r1, r2 - mov lr, r1 - ldr r1, [sp, #0x0] - ldrh r2, [r1, #0x6] - mov r1, lr - cmp r1, r2 - ble _02018F7E - mov lr, r2 -_02018F7E: - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x10] - ldr r1, [sp, #0x8] - mov r0, lr - cmp r1, r0 - bge _02018FEA - add r0, r1, #0x0 - lsl r0, r0, #0x3 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - lsl r0, r0, #0x3 - mov r12, r0 -_02018F9C: - ldr r2, [sp, #0x4] - add r0, r2, #0x0 - cmp r0, r5 - bge _02018FD8 - ldr r1, [sp, #0xc] - ldr r0, _02018FF0 ; =0x00007FC0 - mov r3, r12 - and r0, r1 - add r7, r0, #0x0 - ldr r1, [sp, #0x10] - mov r0, #0x38 - mul r7, r1 - ldr r1, [sp, #0xc] - add r6, r1, #0x0 - and r6, r0 -_02018FBA: - ldr r0, [sp, #0x0] - ldr r4, _02018FF0 ; =0x00007FC0 - ldr r1, [r0, #0x0] - mov r0, #0x7 - and r0, r2 - and r4, r3 - add r0, r1, r0 - add r0, r4, r0 - add r1, r7, r0 - ldr r0, [sp, #0x2c] - add r2, r2, #0x1 - strb r0, [r6, r1] - add r3, #0x8 - cmp r2, r5 - blt _02018FBA -_02018FD8: - ldr r0, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r1, r0, #0x1 - mov r0, lr - str r1, [sp, #0x8] - cmp r1, r0 - blt _02018F9C -_02018FEA: - add sp, #0x14 - pop {r4-r7, pc} - nop -_02018FF0: .word 0x00007FC0 - - thumb_func_start FUN_02018FF4 -FUN_02018FF4: ; 0x02018FF4 - push {r4-r6, lr} - add r5, r1, #0x0 - lsl r1, r5, #0x4 - bl FUN_02016998 - add r6, r0, #0x0 - mov r4, #0x0 - cmp r5, #0x0 - ble _02019018 -_02019006: - lsl r0, r4, #0x4 - add r0, r6, r0 - bl FUN_0201901C - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r5 - blt _02019006 -_02019018: - add r0, r6, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0201901C -FUN_0201901C: ; 0x0201901C - mov r3, #0x0 - str r3, [r0, #0x0] - mov r1, #0xff - strb r1, [r0, #0x4] - strb r3, [r0, #0x5] - strb r3, [r0, #0x6] - strb r3, [r0, #0x7] - strb r3, [r0, #0x8] - strb r3, [r0, #0x9] - ldrh r2, [r0, #0xa] - ldr r1, _02019044 ; =0xFFFF8000 - and r2, r1 - strh r2, [r0, #0xa] - str r3, [r0, #0xc] - ldrh r2, [r0, #0xa] - sub r1, r1, #0x1 - and r1, r2 - strh r1, [r0, #0xa] - bx lr - nop -_02019044: .word 0xFFFF8000 - - thumb_func_start FUN_02019048 -FUN_02019048: ; 0x02019048 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0201905A - ldrb r1, [r0, #0x4] - cmp r1, #0xff - beq _0201905A - ldr r0, [r0, #0xc] - cmp r0, #0x0 - bne _0201905E -_0201905A: - mov r0, #0x0 - bx lr -_0201905E: - mov r0, #0x1 - bx lr - .balign 4 - - thumb_func_start FUN_02019064 -FUN_02019064: ; 0x02019064 - push {r3-r7, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - mov r0, #0x2c - add r7, r6, #0x0 - mul r7, r0 - add r4, r1, #0x0 - str r3, [sp, #0x0] - add r1, r5, r7 - ldr r0, [r1, #0x8] - cmp r0, #0x0 - beq _020190E0 - add r3, sp, #0x8 - ldrb r2, [r1, #0x1f] - ldrb r1, [r3, #0x14] - ldrb r3, [r3, #0x18] - ldr r0, [r5, #0x0] - mul r3, r1 - add r1, r2, #0x0 - mul r1, r3 - bl FUN_02016998 - add r1, r0, #0x0 - beq _020190E0 - str r5, [r4, #0x0] - strb r6, [r4, #0x4] - ldr r0, [sp, #0x0] - add r3, sp, #0x8 - strb r0, [r4, #0x5] - ldrb r0, [r3, #0x10] - ldr r2, _020190E4 ; =0xFFFF8000 - strb r0, [r4, #0x6] - ldrb r0, [r3, #0x14] - strb r0, [r4, #0x7] - ldrb r0, [r3, #0x18] - strb r0, [r4, #0x8] - ldrb r0, [r3, #0x1c] - strb r0, [r4, #0x9] - ldrh r0, [r4, #0xa] - ldrh r3, [r3, #0x20] - and r0, r2 - lsr r2, r2, #0x11 - and r2, r3 - orr r0, r2 - strh r0, [r4, #0xa] - str r1, [r4, #0xc] - add r0, r5, r7 - ldrb r0, [r0, #0x1e] - cmp r0, #0x0 - bne _020190CC - mov r2, #0x0 - b _020190CE -_020190CC: - mov r2, #0x1 -_020190CE: - ldrh r1, [r4, #0xa] - ldr r0, _020190E8 ; =0xFFFF7FFF - and r1, r0 - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x10 - orr r0, r1 - strh r0, [r4, #0xa] -_020190E0: - pop {r3-r7, pc} - nop -_020190E4: .word 0xFFFF8000 -_020190E8: .word 0xFFFF7FFF - - thumb_func_start FUN_020190EC -FUN_020190EC: ; 0x020190EC - push {r3-r7, lr} - sub sp, #0x8 - str r3, [sp, #0x0] - add r5, r0, #0x0 - ldr r0, [sp, #0x24] - add r6, r2, #0x0 - str r0, [sp, #0x24] - ldr r0, [sp, #0x0] - add r4, r1, #0x0 - mul r0, r6 - lsl r0, r0, #0x5 - str r0, [sp, #0x4] - ldr r0, [r5, #0x0] - ldr r1, [sp, #0x4] - bl FUN_02016998 - ldr r1, [sp, #0x24] - add r7, r0, #0x0 - lsl r2, r1, #0x4 - orr r1, r2 - lsl r1, r1, #0x18 - ldr r2, [sp, #0x4] - lsr r1, r1, #0x18 - bl Call_FillMemWithValue - cmp r7, #0x0 - beq _02019148 - str r5, [r4, #0x0] - strb r6, [r4, #0x7] - ldr r0, [sp, #0x0] - strb r0, [r4, #0x8] - ldrh r1, [r4, #0xa] - ldr r0, _0201914C ; =0xFFFF8000 - add r3, r1, #0x0 - add r1, sp, #0x10 - ldrh r2, [r1, #0x10] - lsr r1, r0, #0x11 - and r3, r0 - and r1, r2 - orr r1, r3 - strh r1, [r4, #0xa] - str r7, [r4, #0xc] - ldrh r1, [r4, #0xa] - sub r0, r0, #0x1 - and r0, r1 - strh r0, [r4, #0xa] -_02019148: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_0201914C: .word 0xFFFF8000 - - thumb_func_start FUN_02019150 -FUN_02019150: ; 0x02019150 - push {lr} - sub sp, #0x14 - add r3, r2, #0x0 - ldrb r2, [r3, #0x2] - str r2, [sp, #0x0] - ldrb r2, [r3, #0x3] - str r2, [sp, #0x4] - ldrb r2, [r3, #0x4] - str r2, [sp, #0x8] - ldrb r2, [r3, #0x5] - str r2, [sp, #0xc] - ldrh r2, [r3, #0x6] - str r2, [sp, #0x10] - ldrb r2, [r3, #0x0] - ldrb r3, [r3, #0x1] - bl FUN_02019064 - add sp, #0x14 - pop {pc} - .balign 4 - - thumb_func_start FUN_02019178 -FUN_02019178: ; 0x02019178 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02016A18 - mov r2, #0x0 - str r2, [r4, #0x0] - mov r0, #0xff - strb r0, [r4, #0x4] - strb r2, [r4, #0x5] - strb r2, [r4, #0x6] - strb r2, [r4, #0x7] - strb r2, [r4, #0x8] - strb r2, [r4, #0x9] - ldrh r1, [r4, #0xa] - ldr r0, _020191A0 ; =0xFFFF8000 - and r0, r1 - strh r0, [r4, #0xa] - str r2, [r4, #0xc] - pop {r4, pc} - .balign 4 -_020191A0: .word 0xFFFF8000 - - thumb_func_start FUN_020191A4 -FUN_020191A4: ; 0x020191A4 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - mov r4, #0x0 - cmp r6, #0x0 - ble _020191C8 -_020191B0: - lsl r0, r4, #0x4 - add r0, r5, r0 - ldr r0, [r0, #0xc] - cmp r0, #0x0 - beq _020191BE - bl FUN_02016A18 -_020191BE: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r6 - blt _020191B0 -_020191C8: - add r0, r5, #0x0 - bl FUN_02016A18 - pop {r4-r6, pc} - - thumb_func_start FUN_020191D0 -FUN_020191D0: ; 0x020191D0 - push {r4, lr} - add r4, r0, #0x0 - bne _020191DA - bl ErrorHandling -_020191DA: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _020191E4 - bl ErrorHandling -_020191E4: - ldrb r0, [r4, #0x4] - cmp r0, #0x8 - blo _020191EE - bl ErrorHandling -_020191EE: - ldrb r1, [r4, #0x4] - mov r0, #0x2c - ldr r2, [r4, #0x0] - mul r0, r1 - add r0, r2, r0 - ldrb r0, [r0, #0x1c] - cmp r0, #0x3 - blo _02019202 - bl ErrorHandling -_02019202: - ldrb r2, [r4, #0x4] - mov r1, #0x2c - ldr r3, [r4, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - add r0, r4, #0x0 - lsl r2, r1, #0x2 - ldr r1, _0201921C ; =0x020EDB68 - ldr r1, [r1, r2] - blx r1 - pop {r4, pc} - nop -_0201921C: .word 0x020EDB68 - - thumb_func_start FUN_02019220 -FUN_02019220: ; 0x02019220 - push {r4, lr} - add r4, r0, #0x0 - bne _0201922A - bl ErrorHandling -_0201922A: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02019234 - bl ErrorHandling -_02019234: - ldrb r0, [r4, #0x4] - cmp r0, #0x8 - blo _0201923E - bl ErrorHandling -_0201923E: - ldrb r1, [r4, #0x4] - mov r0, #0x2c - ldr r2, [r4, #0x0] - mul r0, r1 - add r0, r2, r0 - ldrb r0, [r0, #0x1c] - cmp r0, #0x3 - blo _02019252 - bl ErrorHandling -_02019252: - ldrb r2, [r4, #0x4] - mov r1, #0x2c - ldr r3, [r4, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - add r0, r4, #0x0 - lsl r2, r1, #0x2 - ldr r1, _0201926C ; =0x020EDB5C - ldr r1, [r1, r2] - blx r1 - pop {r4, pc} - nop -_0201926C: .word 0x020EDB5C - - thumb_func_start FUN_02019270 -FUN_02019270: ; 0x02019270 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _02019288 ; =0x020EDB38 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_02019288: .word 0x020EDB38 - - thumb_func_start FUN_0201928C -FUN_0201928C: ; 0x0201928C - push {r4-r6, lr} - add r5, r0, #0x0 - ldrb r6, [r5, #0x7] - ldrb r4, [r5, #0x8] - strb r1, [r5, #0x7] - strb r2, [r5, #0x8] - ldrb r3, [r5, #0x4] - mov r2, #0x2c - ldr r1, [r5, #0x0] - mul r2, r3 - add r1, r1, r2 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020192B4 ; =0x020EDB38 - ldr r1, [r1, r2] - blx r1 - strb r6, [r5, #0x7] - strb r4, [r5, #0x8] - pop {r4-r6, pc} - nop -_020192B4: .word 0x020EDB38 - - thumb_func_start FUN_020192B8 -FUN_020192B8: ; 0x020192B8 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020192D0 ; =0x020EDB74 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_020192D0: .word 0x020EDB74 - - thumb_func_start FUN_020192D4 -FUN_020192D4: ; 0x020192D4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldrb r1, [r5, #0x4] - mov r0, #0x2c - ldr r2, [r5, #0x0] - mul r0, r1 - add r0, r2, r0 - ldr r0, [r0, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02019354 - ldrh r0, [r5, #0xa] - ldrb r1, [r5, #0x5] - lsl r0, r0, #0x11 - lsr r3, r0, #0x11 - ldrb r0, [r5, #0x7] - add r7, r1, r0 - ldrb r0, [r5, #0x6] - ldrb r1, [r5, #0x8] - mov r12, r0 - add r0, r0, r1 - mov r1, r12 - mov lr, r0 - cmp r1, r0 - bhs _02019354 -_02019308: - ldrb r2, [r5, #0x5] - cmp r2, r7 - bhs _02019348 - mov r0, r12 - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - lsl r1, r0, #0x1 - ldr r0, [sp, #0x4] - add r0, r0, r1 - mov r1, r12 - str r0, [sp, #0x0] - mov r0, #0x20 - add r6, r1, #0x0 - and r6, r0 -_02019324: - ldrb r0, [r5, #0x9] - mov r4, #0x20 - add r1, r3, #0x0 - lsl r0, r0, #0xc - and r4, r2 - orr r1, r0 - mov r0, #0x1f - add r4, r6, r4 - and r0, r2 - lsl r4, r4, #0x5 - add r0, r0, r4 - lsl r4, r0, #0x1 - ldr r0, [sp, #0x0] - add r2, r2, #0x1 - strh r1, [r0, r4] - add r3, r3, #0x1 - cmp r2, r7 - blo _02019324 -_02019348: - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _02019308 -_02019354: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02019358 -FUN_02019358: ; 0x02019358 - push {r4-r7} - ldrb r3, [r0, #0x4] - mov r1, #0x2c - add r2, r3, #0x0 - mul r2, r1 - ldr r1, [r0, #0x0] - add r1, r1, r2 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _020193AC - ldrb r2, [r1, #0x1d] - ldr r1, _020193B0 ; =0x020EDB30 - ldrb r6, [r1, r2] - ldrb r1, [r0, #0x6] - add r2, r1, #0x0 - mul r2, r6 - add r2, r3, r2 - ldrb r1, [r0, #0x5] - mov r3, #0x0 - add r4, r2, r1 - ldrh r1, [r0, #0xa] - lsl r1, r1, #0x11 - lsr r5, r1, #0x11 - ldrb r1, [r0, #0x8] - cmp r1, #0x0 - ble _020193AC - add r1, r3, #0x0 -_0201938E: - ldrb r7, [r0, #0x7] - add r2, r1, #0x0 - cmp r7, #0x0 - ble _020193A2 -_02019396: - strb r5, [r4, r2] - ldrb r7, [r0, #0x7] - add r2, r2, #0x1 - add r5, r5, #0x1 - cmp r2, r7 - blt _02019396 -_020193A2: - ldrb r2, [r0, #0x8] - add r3, r3, #0x1 - add r4, r4, r6 - cmp r3, r2 - blt _0201938E -_020193AC: - pop {r4-r7} - bx lr - .balign 4 -_020193B0: .word 0x020EDB30 - - thumb_func_start FUN_020193B4 -FUN_020193B4: ; 0x020193B4 - push {r4-r7, lr} - sub sp, #0xc - ldrb r2, [r0, #0x4] - str r0, [sp, #0x0] - mov r0, #0x2c - add r1, r2, #0x0 - mul r1, r0 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - add r1, r0, r1 - ldr r0, [r1, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _0201943C - ldrb r1, [r1, #0x1d] - ldr r0, _02019440 ; =0x020EDB30 - ldrb r0, [r0, r1] - str r0, [sp, #0x8] - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x5] - ldrb r0, [r0, #0x7] - add r2, r1, r0 - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x6] - mov r12, r0 - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x8] - mov r0, r12 - add r0, r0, r1 - mov r1, r12 - mov lr, r0 - cmp r1, r0 - bhs _0201943C - mov r6, #0x0 - mov r7, #0x20 -_020193FA: - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x5] - cmp r1, r2 - bhs _02019430 - mov r3, r12 - mov r0, #0x1f - and r3, r0 - ldr r0, [sp, #0x8] - mul r0, r3 - lsl r3, r0, #0x1 - ldr r0, [sp, #0x4] - add r5, r0, r3 - mov r3, r12 - mov r0, #0x20 - and r3, r0 -_02019418: - add r4, r1, #0x0 - and r4, r7 - mov r0, #0x1f - add r4, r3, r4 - and r0, r1 - lsl r4, r4, #0x5 - add r0, r0, r4 - lsl r0, r0, #0x1 - add r1, r1, #0x1 - strh r6, [r5, r0] - cmp r1, r2 - blo _02019418 -_02019430: - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _020193FA -_0201943C: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02019440: .word 0x020EDB30 - - thumb_func_start FUN_02019444 -FUN_02019444: ; 0x02019444 - push {r4-r7} - ldrb r3, [r0, #0x4] - mov r1, #0x2c - add r2, r3, #0x0 - mul r2, r1 - ldr r1, [r0, #0x0] - add r1, r1, r2 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _02019492 - ldrb r2, [r1, #0x1d] - ldr r1, _02019498 ; =0x020EDB30 - mov r4, #0x0 - ldrb r6, [r1, r2] - ldrb r1, [r0, #0x6] - add r2, r1, #0x0 - mul r2, r6 - ldrb r1, [r0, #0x5] - add r2, r3, r2 - add r5, r2, r1 - ldrb r1, [r0, #0x8] - cmp r1, #0x0 - ble _02019492 - add r1, r4, #0x0 - add r2, r4, #0x0 -_02019476: - ldrb r7, [r0, #0x7] - add r3, r2, #0x0 - cmp r7, #0x0 - ble _02019488 -_0201947E: - strb r1, [r5, r3] - ldrb r7, [r0, #0x7] - add r3, r3, #0x1 - cmp r3, r7 - blt _0201947E -_02019488: - ldrb r3, [r0, #0x8] - add r4, r4, #0x1 - add r5, r5, r6 - cmp r4, r3 - blt _02019476 -_02019492: - pop {r4-r7} - bx lr - nop -_02019498: .word 0x020EDB30 - - thumb_func_start FUN_0201949C -FUN_0201949C: ; 0x0201949C - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_020192D4 - add r0, r4, #0x0 - bl FUN_02019548 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_020194C8 -FUN_020194C8: ; 0x020194C8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020192D4 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - add r0, r4, #0x0 - bl FUN_02019548 - pop {r4, pc} - - thumb_func_start FUN_020194E0 -FUN_020194E0: ; 0x020194E0 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02019358 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x11 - lsr r0, r0, #0x11 - str r0, [sp, #0x0] - ldrb r5, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - mul r3, r5 - ldr r2, [r4, #0xc] - lsl r3, r3, #0x6 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_0201951C -FUN_0201951C: ; 0x0201951C - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02019358 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x11 - lsr r0, r0, #0x11 - str r0, [sp, #0x0] - ldrb r5, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - mul r3, r5 - ldr r2, [r4, #0xc] - lsl r3, r3, #0x6 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_02019548 -FUN_02019548: ; 0x02019548 - push {r3-r5, lr} - add r3, r0, #0x0 - ldrh r2, [r3, #0xa] - ldrb r1, [r3, #0x4] - mov r4, #0x2c - lsl r2, r2, #0x11 - ldr r0, [r3, #0x0] - lsr r2, r2, #0x11 - str r2, [sp, #0x0] - mul r4, r1 - add r4, r0, r4 - ldr r2, [r3, #0xc] - ldrb r5, [r3, #0x7] - ldrb r3, [r3, #0x8] - ldrb r4, [r4, #0x1f] - mul r3, r5 - mul r3, r4 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_02019570 -FUN_02019570: ; 0x02019570 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _02019588 ; =0x020EDB50 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_02019588: .word 0x020EDB50 - - thumb_func_start FUN_0201958C -FUN_0201958C: ; 0x0201958C - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020195A4 ; =0x020EDB44 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_020195A4: .word 0x020EDB44 - - thumb_func_start FUN_020195A8 -FUN_020195A8: ; 0x020195A8 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_020193B4 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_020195D0 -FUN_020195D0: ; 0x020195D0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020193B4 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020195E4 -FUN_020195E4: ; 0x020195E4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_02019444 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201960C -FUN_0201960C: ; 0x0201960C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02019444 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02019620 -FUN_02019620: ; 0x02019620 - push {r3-r5, lr} - add r4, r0, #0x0 - ldrb r2, [r4, #0x4] - mov r0, #0x2c - ldr r3, [r4, #0x0] - mul r0, r2 - add r0, r3, r0 - ldrb r2, [r0, #0x1f] - cmp r2, #0x20 - bne _0201963C - lsl r0, r1, #0x4 - orr r0, r1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -_0201963C: - lsl r3, r1, #0x18 - lsl r0, r1, #0x10 - orr r0, r3 - lsl r5, r1, #0x8 - orr r0, r5 - orr r0, r1 - ldr r1, [r4, #0xc] - ldrb r3, [r4, #0x8] - ldrb r4, [r4, #0x7] - mul r2, r4 - mul r2, r3 - bl MIi_CpuClearFast - pop {r3-r5, pc} - - thumb_func_start FUN_02019658 -FUN_02019658: ; 0x02019658 - push {r4-r5, lr} - sub sp, #0x1c - add r4, sp, #0x18 - ldrh r5, [r4, #0x10] - str r5, [sp, #0x0] - ldrh r5, [r4, #0x14] - str r5, [sp, #0x4] - ldrh r5, [r4, #0x18] - str r5, [sp, #0x8] - ldrh r5, [r4, #0x1c] - str r5, [sp, #0xc] - ldrh r5, [r4, #0x20] - str r5, [sp, #0x10] - ldrh r4, [r4, #0x24] - str r4, [sp, #0x14] - mov r4, #0x0 - str r4, [sp, #0x18] - bl FUN_02019684 - add sp, #0x1c - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_02019684 -FUN_02019684: ; 0x02019684 - push {r4-r5, lr} - sub sp, #0x24 - str r1, [sp, #0x1c] - add r4, sp, #0x20 - ldrh r5, [r4, #0x10] - add r1, sp, #0x14 - strh r5, [r1, #0xc] - ldrh r5, [r4, #0x14] - strh r5, [r1, #0xe] - ldr r5, [r0, #0xc] - str r5, [sp, #0x14] - ldrb r5, [r0, #0x7] - lsl r5, r5, #0x3 - strh r5, [r1, #0x4] - ldrb r5, [r0, #0x8] - lsl r5, r5, #0x3 - strh r5, [r1, #0x6] - ldrb r5, [r0, #0x4] - ldr r1, [r0, #0x0] - mov r0, #0x2c - mul r0, r5 - add r0, r1, r0 - ldrb r0, [r0, #0x1e] - add r1, sp, #0x14 - cmp r0, #0x0 - ldrh r0, [r4, #0x18] - bne _020196D6 - str r0, [sp, #0x0] - ldrh r0, [r4, #0x1c] - str r0, [sp, #0x4] - ldrh r0, [r4, #0x20] - str r0, [sp, #0x8] - ldrh r0, [r4, #0x24] - str r0, [sp, #0xc] - ldrh r0, [r4, #0x28] - str r0, [sp, #0x10] - add r0, sp, #0x1c - bl FUN_02018A60 - add sp, #0x24 - pop {r4-r5, pc} -_020196D6: - str r0, [sp, #0x0] - ldrh r0, [r4, #0x1c] - str r0, [sp, #0x4] - ldrh r0, [r4, #0x20] - str r0, [sp, #0x8] - ldrh r0, [r4, #0x24] - str r0, [sp, #0xc] - ldrh r0, [r4, #0x28] - str r0, [sp, #0x10] - add r0, sp, #0x1c - bl FUN_02018CA0 - add sp, #0x24 - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_020196F4 -FUN_020196F4: ; 0x020196F4 - push {r3-r5, lr} - sub sp, #0x10 - add r5, r1, #0x0 - ldr r1, [r0, #0xc] - add r4, r2, #0x0 - str r1, [sp, #0x8] - ldrb r1, [r0, #0x7] - add r2, r3, #0x0 - lsl r3, r1, #0x3 - add r1, sp, #0x8 - strh r3, [r1, #0x4] - ldrb r3, [r0, #0x8] - lsl r3, r3, #0x3 - strh r3, [r1, #0x6] - ldrb r3, [r0, #0x4] - ldr r1, [r0, #0x0] - mov r0, #0x2c - mul r0, r3 - add r0, r1, r0 - ldrb r0, [r0, #0x1e] - add r3, sp, #0x10 - cmp r0, #0x0 - bne _02019736 - ldrh r0, [r3, #0x14] - add r1, r4, #0x0 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x10] - add r0, sp, #0x8 - bl FUN_02018E88 - add sp, #0x10 - pop {r3-r5, pc} -_02019736: - ldrh r0, [r3, #0x14] - add r1, r4, #0x0 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x10] - add r0, sp, #0x8 - bl FUN_02018F4C - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201974C -FUN_0201974C: ; 0x0201974C - push {r4-r7, lr} - sub sp, #0x1fc - sub sp, #0x118 - add r5, r0, #0x0 - ldr r0, [sp, #0x330] - str r1, [sp, #0x0] - str r0, [sp, #0x330] - add r1, sp, #0x318 - ldrh r1, [r1, #0x10] - ldr r0, [r5, #0xc] - str r1, [sp, #0x5c] - ldrb r1, [r5, #0x7] - str r0, [sp, #0x278] - ldrb r0, [r5, #0x8] - lsl r1, r1, #0x13 - lsr r4, r1, #0x10 - ldr r1, [sp, #0x5c] - lsl r0, r0, #0x13 - sub r1, r4, r1 - lsr r0, r0, #0x10 - str r4, [sp, #0x58] - str r1, [sp, #0x8] - cmp r1, r2 - blt _0201977E - str r2, [sp, #0x8] -_0201977E: - add r1, sp, #0x318 - ldrh r1, [r1, #0x14] - sub r0, r0, r1 - str r1, [sp, #0x48] - str r0, [sp, #0x4] - cmp r0, r3 - blt _0201978E - str r3, [sp, #0x4] -_0201978E: - ldr r0, [sp, #0x8] - mov r4, #0x0 - cmp r0, #0x8 - ble _0201979E - mov r0, #0x1 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_0201979E: - ldr r0, [sp, #0x4] - cmp r0, #0x8 - ble _020197AC - mov r0, #0x2 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_020197AC: - ldrh r0, [r5, #0xa] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - beq _020197B8 - bl FUN_0201A12C -_020197B8: - cmp r4, #0x3 - bls _020197C0 - bl FUN_0201A8BC -_020197C0: - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020197CC: ; jump table (using 16-bit offset) - .short _020197D4 - _020197CC - 2; case 0 - .short _020198D6 - _020197CC - 2; case 1 - .short _02019AE6 - _020197CC - 2; case 2 - .short _02019D06 - _020197CC - 2; case 3 -_020197D4: - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x70] - mov r0, #0x0 - str r0, [sp, #0x274] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020197EA - bl FUN_0201A8BC -_020197EA: - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x6c] -_020197F6: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x70] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x26c] - ldr r0, [sp, #0x274] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x270] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _020198AA - ble _020198AA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x6c] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x68] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x6c] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x64] - str r0, [sp, #0x60] -_02019848: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x68] - str r5, [sp, #0x27c] - add r0, r5, r0 - ldr r5, [sp, #0x26c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201989C - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x280] - ldrb r5, [r0, r7] - str r5, [sp, #0x284] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x284] - and r6, r5 - ldr r5, [sp, #0x280] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _0201989C - ldr r6, [sp, #0x27c] - ldr r0, [sp, #0x64] - add r6, r6, r0 - ldr r0, [sp, #0x60] - strb r5, [r0, r6] -_0201989C: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019848 -_020198AA: - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _020198B8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _020198BE -_020198B8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_020198BE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x274] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x274] - cmp r1, r0 - blt _020197F6 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_020198D6: - ldr r0, [sp, #0x0] - str r0, [sp, #0x25c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x264] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x84] - mov r0, #0x0 - str r0, [sp, #0x268] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _020199D2 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x80] -_02019902: - ldr r0, [sp, #0x25c] - ldr r1, [sp, #0x84] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x258] - ldr r0, [sp, #0x268] - ldr r6, [sp, #0x80] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x260] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x264] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x264] - str r6, [sp, #0x7c] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x80] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x78] - str r0, [sp, #0x74] -_0201994C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x7c] - str r5, [sp, #0x288] - add r0, r5, r0 - ldr r5, [sp, #0x258] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _020199A0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x28c] - ldrb r5, [r0, r7] - str r5, [sp, #0x290] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x290] - and r6, r5 - ldr r5, [sp, #0x28c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199A0 - ldr r6, [sp, #0x288] - ldr r0, [sp, #0x78] - add r6, r6, r0 - ldr r0, [sp, #0x74] - strb r5, [r0, r6] -_020199A0: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _0201994C - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199BA - ldr r0, [sp, #0x264] - add r0, r0, #0x2 - str r0, [sp, #0x264] - b _020199C0 -_020199BA: - ldr r0, [sp, #0x264] - add r0, r0, #0x1 - str r0, [sp, #0x264] -_020199C0: - ldr r0, [sp, #0x25c] - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r0, [sp, #0x268] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x268] - cmp r1, r0 - blt _02019902 -_020199D2: - ldr r0, [sp, #0x0] - add r0, #0x20 - str r0, [sp, #0x0] - ldr r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x98] - mov r0, #0x0 - str r0, [sp, #0x254] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020199EE - bl FUN_0201A8BC -_020199EE: - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x94] -_02019A00: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x98] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x24c] - ldr r0, [sp, #0x254] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x250] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x294] - sub r0, #0x8 - str r0, [sp, #0x294] - cmp r0, #0x0 - ble _02019ABA - ble _02019ABA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x94] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x90] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x94] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x8c] - str r0, [sp, #0x88] -_02019A58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x90] - str r5, [sp, #0x298] - add r0, r5, r0 - ldr r5, [sp, #0x24c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019AAC - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x29c] - ldrb r5, [r0, r7] - str r5, [sp, #0x2a0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2a0] - and r6, r5 - ldr r5, [sp, #0x29c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AAC - ldr r6, [sp, #0x298] - ldr r0, [sp, #0x8c] - add r6, r6, r0 - ldr r0, [sp, #0x88] - strb r5, [r0, r6] -_02019AAC: - ldr r0, [sp, #0x294] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019A58 -_02019ABA: - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AC8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019ACE -_02019AC8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019ACE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x254] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x254] - cmp r1, r0 - blt _02019A00 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019AE6: - ldr r0, [sp, #0x0] - mov r1, #0x7 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x244] - mov r0, #0x0 - str r0, [sp, #0x248] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xa8] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x40] -_02019B06: - ldr r0, [sp, #0x23c] - ldr r1, [sp, #0xa8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x238] - ldr r0, [sp, #0x248] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x240] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019BC2 - ble _02019BC2 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x244] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x244] - str r6, [sp, #0xa4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xa0] - str r0, [sp, #0x9c] -_02019B58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - b _02019B6C - nop -_02019B68: .word 0x00003FE0 -_02019B6C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xa4] - str r5, [sp, #0x2a4] - add r0, r5, r0 - ldr r5, [sp, #0x238] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019BB4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2a8] - ldrb r5, [r0, r7] - str r5, [sp, #0x2ac] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2ac] - and r6, r5 - ldr r5, [sp, #0x2a8] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BB4 - ldr r6, [sp, #0x2a4] - ldr r0, [sp, #0xa0] - add r6, r6, r0 - ldr r0, [sp, #0x9c] - strb r5, [r0, r6] -_02019BB4: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019B58 -_02019BC2: - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BD0 - ldr r0, [sp, #0x244] - add r0, r0, #0x2 - str r0, [sp, #0x244] - b _02019BD6 -_02019BD0: - ldr r0, [sp, #0x244] - add r0, r0, #0x1 - str r0, [sp, #0x244] -_02019BD6: - ldr r0, [sp, #0x23c] - add r0, r0, #0x4 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x248] - add r0, r0, #0x1 - str r0, [sp, #0x248] - cmp r0, #0x8 - blt _02019B06 - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x40 - str r0, [sp, #0x0] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] -_02019BF6: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019C04 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019C04: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019BF6 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xb8] - mov r0, #0x0 - str r0, [sp, #0x20] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _02019C24 - bl FUN_0201A8BC -_02019C24: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xb8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x230] - ldr r0, [sp, #0x20] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x234] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019CD8 - ble _02019CD8 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xb4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xb0] - str r0, [sp, #0xac] -_02019C76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xb4] - str r5, [sp, #0x2b0] - add r0, r5, r0 - ldr r5, [sp, #0x230] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019CCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2b4] - ldrb r5, [r0, r7] - str r5, [sp, #0x2b8] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2b8] - and r6, r5 - ldr r5, [sp, #0x2b4] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CCA - ldr r6, [sp, #0x2b0] - ldr r0, [sp, #0xb0] - add r6, r6, r0 - ldr r0, [sp, #0xac] - strb r5, [r0, r6] -_02019CCA: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019C76 -_02019CD8: - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CE6 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019CEC -_02019CE6: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019CEC: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x20] - cmp r0, r1 - blt _02019C24 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019D06: - ldr r0, [sp, #0x0] - str r0, [sp, #0x220] - ldr r0, [sp, #0x48] - str r0, [sp, #0x228] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x22c] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x38] -_02019D2A: - ldr r0, [sp, #0x220] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x21c] - ldr r0, [sp, #0x22c] - ldr r6, [sp, #0x38] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x224] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x228] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x228] - str r6, [sp, #0xc4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - str r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xc0] - str r0, [sp, #0xbc] -_02019D76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xc4] - str r5, [sp, #0x2bc] - add r0, r5, r0 - ldr r5, [sp, #0x21c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019DCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2c0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2c4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2c4] - and r6, r5 - ldr r5, [sp, #0x2c0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DCA - ldr r6, [sp, #0x2bc] - ldr r0, [sp, #0xc0] - add r6, r6, r0 - ldr r0, [sp, #0xbc] - strb r5, [r0, r6] -_02019DCA: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019D76 - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DE4 - ldr r0, [sp, #0x228] - add r0, r0, #0x2 - str r0, [sp, #0x228] - b _02019DEA -_02019DE4: - ldr r0, [sp, #0x228] - add r0, r0, #0x1 - str r0, [sp, #0x228] -_02019DEA: - ldr r0, [sp, #0x220] - add r0, r0, #0x4 - str r0, [sp, #0x220] - ldr r0, [sp, #0x22c] - add r0, r0, #0x1 - str r0, [sp, #0x22c] - cmp r0, #0x8 - blt _02019D2A - ldr r0, [sp, #0x0] - str r0, [sp, #0x20c] - add r0, #0x20 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x214] - mov r0, #0x0 - str r0, [sp, #0x218] - ldr r0, [sp, #0x5c] - str r0, [sp, #0xd4] - add r0, #0x8 - str r0, [sp, #0xd4] -_02019E12: - ldr r0, [sp, #0x20c] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0xd4] - str r0, [sp, #0x208] - ldr r0, [sp, #0x218] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x210] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2c8] - sub r0, #0x8 - str r0, [sp, #0x2c8] - cmp r0, #0x0 - ble _02019ECC - ble _02019ECC - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x214] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x214] - str r6, [sp, #0xd0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xcc] - str r0, [sp, #0xc8] -_02019E6A: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xd0] - str r5, [sp, #0x2cc] - add r0, r5, r0 - ldr r5, [sp, #0x208] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019EBE - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2d0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2d4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2d4] - and r6, r5 - ldr r5, [sp, #0x2d0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EBE - ldr r6, [sp, #0x2cc] - ldr r0, [sp, #0xcc] - add r6, r6, r0 - ldr r0, [sp, #0xc8] - strb r5, [r0, r6] -_02019EBE: - ldr r0, [sp, #0x2c8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019E6A -_02019ECC: - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EDA - ldr r0, [sp, #0x214] - add r0, r0, #0x2 - str r0, [sp, #0x214] - b _02019EE0 -_02019EDA: - ldr r0, [sp, #0x214] - add r0, r0, #0x1 - str r0, [sp, #0x214] -_02019EE0: - ldr r0, [sp, #0x20c] - add r0, r0, #0x4 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x218] - add r0, r0, #0x1 - str r0, [sp, #0x218] - cmp r0, #0x8 - blt _02019E12 - ldr r0, [sp, #0x0] - mov r2, #0x0 - str r0, [sp, #0x1fc] - add r0, #0x40 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] - str r0, [sp, #0x204] -_02019F04: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019F12 - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019F12: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019F04 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xe4] - mov r0, #0x0 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A008 -_02019F30: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0xe4] - ldr r0, [r0, #0x0] - ldr r6, [sp, #0x38] - str r0, [sp, #0x1f8] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x200] - ldr r0, [sp, #0x204] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x204] - str r6, [sp, #0xe0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - ldr r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xdc] - str r0, [sp, #0xd8] -_02019F78: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - b _02019F8C - nop -_02019F88: .word 0x00003FE0 -_02019F8C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xe0] - str r5, [sp, #0x2d8] - add r0, r5, r0 - ldr r5, [sp, #0x1f8] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019FD4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2dc] - ldrb r5, [r0, r7] - str r5, [sp, #0x2e0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2e0] - and r6, r5 - ldr r5, [sp, #0x2dc] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FD4 - ldr r6, [sp, #0x2d8] - ldr r0, [sp, #0xdc] - add r6, r6, r0 - ldr r0, [sp, #0xd8] - strb r5, [r0, r6] -_02019FD4: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019F78 - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FEE - ldr r0, [sp, #0x204] - add r0, r0, #0x2 - str r0, [sp, #0x204] - b _02019FF4 -_02019FEE: - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019FF4: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x1c] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1c] - cmp r0, r1 - blt _02019F30 -_0201A008: - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x60 - str r0, [sp, #0x0] - mov r1, #0x1 -_0201A012: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A020 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A020: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A012 - ldr r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xf4] - mov r0, #0x0 - str r0, [sp, #0x18] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _0201A03E - bl FUN_0201A8BC -_0201A03E: - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A044: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xf4] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x1f0] - ldr r0, [sp, #0x18] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1f4] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2e4] - sub r0, #0x8 - str r0, [sp, #0x2e4] - cmp r0, #0x0 - ble _0201A0FE - ble _0201A0FE - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, _0201A3A8 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xf0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _0201A3A8 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xec] - str r0, [sp, #0xe8] -_0201A09C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _0201A3A8 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xf0] - str r5, [sp, #0x2e8] - add r0, r5, r0 - ldr r5, [sp, #0x1f0] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201A0F0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2ec] - ldrb r5, [r0, r7] - mov r12, r5 - mov r5, #0xf0 - asr r5, r6 - mov r6, r12 - and r6, r5 - ldr r5, [sp, #0x2ec] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A0F0 - ldr r6, [sp, #0x2e8] - ldr r0, [sp, #0xec] - add r6, r6, r0 - ldr r0, [sp, #0xe8] - strb r5, [r0, r6] -_0201A0F0: - ldr r0, [sp, #0x2e4] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _0201A09C -_0201A0FE: - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A10C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A112 -_0201A10C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A112: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x18] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x18] - cmp r0, r1 - blt _0201A044 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - - thumb_func_start FUN_0201A12C -FUN_0201A12C: ; 0x0201A12C - lsl r1, r2, #0x2 - mul r1, r3 - ldr r3, [r5, #0x0] - ldrb r2, [r5, #0x9] - ldr r0, [sp, #0x0] - ldr r3, [r3, #0x0] - lsl r1, r1, #0x3 - bl FUN_02018848 - str r0, [sp, #0x1ec] - cmp r4, #0x3 - bhi _0201A21E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201A150: ; jump table (using 16-bit offset) - .short _0201A158 - _0201A150 - 2; case 0 - .short _0201A220 - _0201A150 - 2; case 1 - .short _0201A3CA - _0201A150 - 2; case 2 - .short _0201A56E - _0201A150 - 2; case 3 -_0201A158: - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x10c] - mov r0, #0x0 - str r0, [sp, #0x1e8] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A21E - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x108] -_0201A178: - ldr r1, [sp, #0x10c] - ldr r0, [sp, #0x1e8] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x310] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A1FC - ble _0201A1FC - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x108] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x100] - ldr r0, [sp, #0x48] - str r2, [sp, #0x104] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x108] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0xfc] - str r0, [sp, #0xf8] -_0201A1C4: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x104] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0x100] - strb r1, [r2, r0] - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0xfc] - add r2, r3, r0 - ldr r0, [sp, #0xf8] - strb r1, [r0, r2] -_0201A1F0: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A1C4 -_0201A1FC: - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A20A - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A210 -_0201A20A: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A210: - ldr r0, [sp, #0x1e8] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e8] - cmp r1, r0 - blt _0201A178 -_0201A21E: - b _0201A8B6 -_0201A220: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1e0] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x124] - mov r0, #0x0 - str r0, [sp, #0x1e4] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A2E6 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x120] -_0201A24A: - ldr r1, [sp, #0x124] - ldr r0, [sp, #0x1e4] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x30c] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1e0] - ldr r2, [sp, #0x120] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x118] - ldr r0, [sp, #0x1e0] - str r2, [sp, #0x11c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x120] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r2, [sp, #0x114] - str r0, [sp, #0x110] -_0201A28E: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x11c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x118] - strb r1, [r2, r0] - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x114] - add r2, r3, r0 - ldr r0, [sp, #0x110] - strb r1, [r0, r2] -_0201A2BA: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A28E - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2D2 - ldr r0, [sp, #0x1e0] - add r0, r0, #0x2 - str r0, [sp, #0x1e0] - b _0201A2D8 -_0201A2D2: - ldr r0, [sp, #0x1e0] - add r0, r0, #0x1 - str r0, [sp, #0x1e0] -_0201A2D8: - ldr r0, [sp, #0x1e4] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e4] - cmp r1, r0 - blt _0201A24A -_0201A2E6: - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x308] - add r0, #0x40 - str r0, [sp, #0x308] - ldr r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x13c] - mov r0, #0x0 - str r0, [sp, #0x1dc] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A3C8 - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x138] -_0201A312: - ldr r1, [sp, #0x13c] - ldr r0, [sp, #0x1dc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1d8] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A398 - ble _0201A398 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x138] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x130] - ldr r0, [sp, #0x48] - str r2, [sp, #0x134] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x138] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x12c] - str r0, [sp, #0x128] -_0201A360: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x134] - add r2, r3, r0 - ldr r0, [sp, #0x308] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A38E - ldr r0, [sp, #0x130] - strb r1, [r2, r0] - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A38E - ldr r0, [sp, #0x12c] - add r2, r3, r0 - ldr r0, [sp, #0x128] - strb r1, [r0, r2] -_0201A38E: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A360 -_0201A398: - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A3B0 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A3B6 - nop -_0201A3A8: .word 0x00003FE0 -_0201A3AC: .word 0x00007FC0 -_0201A3B0: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A3B6: - ldr r0, [sp, #0x308] - add r0, #0x8 - str r0, [sp, #0x308] - ldr r0, [sp, #0x1dc] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1dc] - cmp r1, r0 - blt _0201A312 -_0201A3C8: - b _0201A8B6 -_0201A3CA: - ldr r0, [sp, #0x48] - mov r1, #0x7 - str r0, [sp, #0x1d0] - mov r0, #0x0 - str r0, [sp, #0x1d4] - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x150] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x30] -_0201A3E8: - ldr r1, [sp, #0x150] - ldr r0, [sp, #0x1d4] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x304] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A46C - ble _0201A46C - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1d0] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x148] - ldr r0, [sp, #0x1d0] - str r2, [sp, #0x14c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x144] - str r0, [sp, #0x140] -_0201A434: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x14c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A460 - ldr r0, [sp, #0x148] - strb r1, [r2, r0] - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A460 - ldr r0, [sp, #0x144] - add r2, r3, r0 - ldr r0, [sp, #0x140] - strb r1, [r0, r2] -_0201A460: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A434 -_0201A46C: - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A47A - ldr r0, [sp, #0x1d0] - add r0, r0, #0x2 - str r0, [sp, #0x1d0] - b _0201A480 -_0201A47A: - ldr r0, [sp, #0x1d0] - add r0, r0, #0x1 - str r0, [sp, #0x1d0] -_0201A480: - ldr r0, [sp, #0x1d4] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1d4] - cmp r0, #0x8 - blt _0201A3E8 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - str r0, [sp, #0x48] - add r7, #0x80 - mov r0, #0x0 - mov r2, #0x1 -_0201A49A: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A4A8 - ldr r1, [sp, #0x48] - add r1, r1, #0x1 - str r1, [sp, #0x48] -_0201A4A8: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A49A - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x164] - mov r0, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A56C -_0201A4C4: - ldr r1, [sp, #0x164] - ldr r0, [sp, #0x14] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x300] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A548 - ble _0201A548 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x15c] - ldr r0, [sp, #0x48] - str r2, [sp, #0x160] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x158] - str r0, [sp, #0x154] -_0201A510: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x160] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A53C - ldr r0, [sp, #0x15c] - strb r1, [r2, r0] - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A53C - ldr r0, [sp, #0x158] - add r2, r3, r0 - ldr r0, [sp, #0x154] - strb r1, [r0, r2] -_0201A53C: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A510 -_0201A548: - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A556 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A55C -_0201A556: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A55C: - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x14] - cmp r0, r1 - blt _0201A4C4 -_0201A56C: - b _0201A8B6 -_0201A56E: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1c8] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x1cc] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x28] -_0201A590: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1cc] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2fc] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c8] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x170] - ldr r0, [sp, #0x1c8] - str r2, [sp, #0x174] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r6, [sp, #0x24] - str r2, [sp, #0x16c] - str r0, [sp, #0x168] -_0201A5D6: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x174] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A602 - ldr r0, [sp, #0x170] - strb r1, [r2, r0] - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A602 - ldr r0, [sp, #0x16c] - add r2, r3, r0 - ldr r0, [sp, #0x168] - strb r1, [r0, r2] -_0201A602: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A5D6 - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A61A - ldr r0, [sp, #0x1c8] - add r0, r0, #0x2 - str r0, [sp, #0x1c8] - b _0201A620 -_0201A61A: - ldr r0, [sp, #0x1c8] - add r0, r0, #0x1 - str r0, [sp, #0x1c8] -_0201A620: - ldr r0, [sp, #0x1cc] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1cc] - cmp r0, #0x8 - blt _0201A590 - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x2f8] - add r0, #0x40 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x48] - str r0, [sp, #0x1c0] - mov r0, #0x0 - str r0, [sp, #0x1c4] - ldr r0, [sp, #0x5c] - str r0, [sp, #0x188] - add r0, #0x8 - str r0, [sp, #0x188] -_0201A644: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1c4] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1bc] - ldr r5, [sp, #0x188] - cmp r7, #0x0 - ble _0201A6CA - ble _0201A6CA - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c0] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x180] - ldr r0, [sp, #0x1c0] - str r2, [sp, #0x184] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x17c] - str r0, [sp, #0x178] -_0201A692: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x184] - add r2, r3, r0 - ldr r0, [sp, #0x2f8] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x180] - strb r1, [r2, r0] - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x17c] - add r2, r3, r0 - ldr r0, [sp, #0x178] - strb r1, [r0, r2] -_0201A6C0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A692 -_0201A6CA: - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6D8 - ldr r0, [sp, #0x1c0] - add r0, r0, #0x2 - str r0, [sp, #0x1c0] - b _0201A6DE -_0201A6D8: - ldr r0, [sp, #0x1c0] - add r0, r0, #0x1 - str r0, [sp, #0x1c0] -_0201A6DE: - ldr r0, [sp, #0x2f8] - add r0, #0x8 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x1c4] - add r0, r0, #0x1 - str r0, [sp, #0x1c4] - cmp r0, #0x8 - blt _0201A644 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - add r7, #0x80 - str r0, [sp, #0x48] - str r0, [sp, #0x1b8] - mov r0, #0x0 - mov r2, #0x1 -_0201A6FE: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A70C - ldr r1, [sp, #0x1b8] - add r1, r1, #0x1 - str r1, [sp, #0x1b8] -_0201A70C: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A6FE - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x19c] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A7CE -_0201A72A: - ldr r1, [sp, #0x19c] - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x28] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2f4] - ldr r0, [sp, #0x1b8] - mov r3, #0x38 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - b _0201A74C - nop -_0201A748: .word 0x00007FC0 -_0201A74C: - ldr r5, [sp, #0x5c] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x194] - ldr r0, [sp, #0x1b8] - str r2, [sp, #0x198] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - ldr r6, [sp, #0x24] - mov r4, #0x0 - str r2, [sp, #0x190] - str r0, [sp, #0x18c] -_0201A774: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A8C4 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x198] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x194] - strb r1, [r2, r0] - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x190] - add r2, r3, r0 - ldr r0, [sp, #0x18c] - strb r1, [r0, r2] -_0201A7A0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A774 - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7B8 - ldr r0, [sp, #0x1b8] - add r0, r0, #0x2 - str r0, [sp, #0x1b8] - b _0201A7BE -_0201A7B8: - ldr r0, [sp, #0x1b8] - add r0, r0, #0x1 - str r0, [sp, #0x1b8] -_0201A7BE: - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x10] - cmp r0, r1 - blt _0201A72A -_0201A7CE: - ldr r0, [sp, #0x1ec] - mov r2, #0x0 - str r0, [sp, #0x2f0] - add r0, #0xc0 - str r0, [sp, #0x2f0] - mov r1, #0x1 -_0201A7DA: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A7E8 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A7E8: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A7DA - ldr r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1b0] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A8B6 - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A808: - ldr r1, [sp, #0x1b0] - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1b4] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A88E - ble _0201A88E - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x1a8] - ldr r0, [sp, #0x48] - str r2, [sp, #0x1ac] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x1a4] - str r0, [sp, #0x1a0] -_0201A856: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A8C4 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x1ac] - add r2, r3, r0 - ldr r0, [sp, #0x2f0] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a8] - strb r1, [r2, r0] - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a4] - add r2, r3, r0 - ldr r0, [sp, #0x1a0] - strb r1, [r0, r2] -_0201A884: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A856 -_0201A88E: - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A89C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A8A2 -_0201A89C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A8A2: - ldr r0, [sp, #0x2f0] - ldr r1, [sp, #0x4] - add r0, #0x8 - str r0, [sp, #0x2f0] - ldr r0, [sp, #0xc] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, r1 - blt _0201A808 -_0201A8B6: - ldr r0, [sp, #0x1ec] - bl FUN_02016A18 - - thumb_func_start FUN_0201A8BC -FUN_0201A8BC: ; 0x0201A8BC - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - nop -_0201A8C4: .word 0x00007FC0 - - thumb_func_start FUN_0201A8C8 -FUN_0201A8C8: ; 0x0201A8C8 - push {r4-r6, lr} - ldrb r6, [r0, #0x4] - mov r5, #0x2c - ldr r4, [r0, #0x0] - mul r5, r6 - add r4, r4, r5 - ldrb r4, [r4, #0x1e] - cmp r4, #0x0 - bne _0201A8E0 - bl FUN_0201A8E8 - pop {r4-r6, pc} -_0201A8E0: - bl FUN_0201A9D4 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201A8E8 -FUN_0201A8E8: ; 0x0201A8E8 - push {r3-r7, lr} - sub sp, #0x10 - add r6, r3, #0x0 - add r4, r0, #0x0 - add r0, r1, #0x0 - lsl r3, r6, #0x18 - lsl r1, r6, #0x10 - str r2, [sp, #0x0] - orr r1, r3 - lsl r5, r6, #0x8 - orr r1, r5 - orr r1, r6 - str r1, [sp, #0x4] - ldrb r1, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldr r2, [r4, #0xc] - str r1, [sp, #0x8] - mul r1, r3 - lsl r1, r1, #0x5 - str r1, [sp, #0xc] - cmp r0, #0x3 - bhi _0201A9CE - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201A920: ; jump table (using 16-bit offset) - .short _0201A928 - _0201A920 - 2; case 0 - .short _0201A976 - _0201A920 - 2; case 1 - .short _0201A9CE - _0201A920 - 2; case 2 - .short _0201A9CE - _0201A920 - 2; case 3 -_0201A928: - add r0, r1, #0x0 - mov r7, #0x0 - cmp r0, #0x0 - ble _0201A9CE - mov r0, #0x7 - mov lr, r0 -_0201A934: - ldr r3, [sp, #0x0] - mov r4, #0x0 - add r5, r7, #0x0 -_0201A93A: - mov r0, #0x7 - add r6, r3, #0x0 - and r6, r0 - add r1, r3, #0x0 - mov r0, lr - bic r1, r0 - ldr r0, [sp, #0x8] - mul r1, r0 - add r0, r6, #0x0 - orr r0, r1 - lsl r0, r0, #0x2 - add r1, r7, r0 - ldr r0, [sp, #0xc] - cmp r1, r0 - bge _0201A95C - ldr r0, [r2, r1] - b _0201A95E -_0201A95C: - ldr r0, [sp, #0x4] -_0201A95E: - add r4, r4, #0x1 - str r0, [r2, r5] - add r3, r3, #0x1 - add r5, r5, #0x4 - cmp r4, #0x8 - blt _0201A93A - ldr r0, [sp, #0xc] - add r7, #0x20 - cmp r7, r0 - blt _0201A934 - add sp, #0x10 - pop {r3-r7, pc} -_0201A976: - add r0, r1, #0x0 - sub r0, r0, #0x4 - add r2, r2, r0 - add r0, r1, #0x0 - mov r7, #0x0 - cmp r0, #0x0 - ble _0201A9CE - mov r0, #0x7 - mov r12, r0 -_0201A988: - ldr r4, [sp, #0x0] - mov r5, #0x0 - add r3, r7, #0x0 -_0201A98E: - mov r0, #0x7 - add r6, r4, #0x0 - and r6, r0 - add r1, r4, #0x0 - mov r0, r12 - bic r1, r0 - ldr r0, [sp, #0x8] - mul r1, r0 - add r0, r6, #0x0 - orr r0, r1 - lsl r0, r0, #0x2 - add r1, r7, r0 - ldr r0, [sp, #0xc] - cmp r1, r0 - bge _0201A9B6 - sub r0, r2, r1 - ldr r1, [r0, #0x0] - sub r0, r2, r3 - str r1, [r0, #0x0] - b _0201A9BC -_0201A9B6: - ldr r0, [sp, #0x4] - sub r1, r2, r3 - str r0, [r1, #0x0] -_0201A9BC: - add r5, r5, #0x1 - add r4, r4, #0x1 - add r3, r3, #0x4 - cmp r5, #0x8 - blt _0201A98E - ldr r0, [sp, #0xc] - add r7, #0x20 - cmp r7, r0 - blt _0201A988 -_0201A9CE: - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201A9D4 -FUN_0201A9D4: ; 0x0201A9D4 - push {r3-r7, lr} - sub sp, #0x20 - add r6, r3, #0x0 - add r4, r0, #0x0 - str r2, [sp, #0x0] - lsl r2, r6, #0x18 - lsl r0, r6, #0x10 - orr r0, r2 - ldrb r2, [r4, #0x7] - ldr r3, [r4, #0xc] - lsl r5, r6, #0x8 - orr r0, r5 - ldrb r4, [r4, #0x8] - str r2, [sp, #0x10] - orr r0, r6 - mul r2, r4 - lsl r2, r2, #0x6 - str r2, [sp, #0x1c] - cmp r1, #0x3 - bls _0201A9FE - b _0201AB04 -_0201A9FE: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201AA0A: ; jump table (using 16-bit offset) - .short _0201AA12 - _0201AA0A - 2; case 0 - .short _0201AA80 - _0201AA0A - 2; case 1 - .short _0201AB04 - _0201AA0A - 2; case 2 - .short _0201AB04 - _0201AA0A - 2; case 3 -_0201AA12: - mov r1, #0x0 - str r1, [sp, #0xc] - add r1, r2, #0x0 - cmp r1, #0x0 - ble _0201AB04 - add r1, r1, #0x4 - str r1, [sp, #0x14] - mov r1, #0x7 - mov lr, r1 -_0201AA24: - ldr r4, [sp, #0x0] - ldr r5, [sp, #0xc] - mov r7, #0x0 -_0201AA2A: - mov r1, #0x7 - add r6, r4, #0x0 - and r6, r1 - add r2, r4, #0x0 - mov r1, lr - bic r2, r1 - ldr r1, [sp, #0x10] - mul r2, r1 - add r1, r6, #0x0 - orr r1, r2 - lsl r2, r1, #0x3 - ldr r1, [sp, #0xc] - add r1, r1, r2 - ldr r2, [sp, #0x1c] - cmp r1, r2 - bge _0201AA50 - ldr r2, [r3, r1] - str r2, [r3, r5] - b _0201AA52 -_0201AA50: - str r0, [r3, r5] -_0201AA52: - add r2, r1, #0x4 - ldr r1, [sp, #0x14] - cmp r2, r1 - bge _0201AA62 - ldr r2, [r3, r2] - add r1, r5, #0x4 - str r2, [r3, r1] - b _0201AA66 -_0201AA62: - add r1, r5, #0x4 - str r0, [r3, r1] -_0201AA66: - add r7, r7, #0x1 - add r4, r4, #0x1 - add r5, #0x8 - cmp r7, #0x8 - blt _0201AA2A - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x1c] - add r2, #0x40 - str r2, [sp, #0xc] - cmp r2, r1 - blt _0201AA24 - add sp, #0x20 - pop {r3-r7, pc} -_0201AA80: - add r1, r2, #0x0 - sub r1, #0x8 - add r3, r3, r1 - mov r1, #0x0 - str r1, [sp, #0x8] - add r1, r2, #0x0 - cmp r1, #0x0 - ble _0201AB04 -_0201AA90: - mov r1, #0x0 - str r1, [sp, #0x4] - ldr r1, [sp, #0x1c] - ldr r5, [sp, #0x0] - sub r1, r1, #0x4 - str r1, [sp, #0x18] - mov r1, #0x7 - ldr r4, [sp, #0x8] - mov r12, r1 -_0201AAA2: - mov r1, #0x7 - add r6, r5, #0x0 - and r6, r1 - add r2, r5, #0x0 - mov r1, r12 - bic r2, r1 - ldr r1, [sp, #0x10] - mul r2, r1 - add r1, r6, #0x0 - orr r1, r2 - lsl r2, r1, #0x3 - ldr r1, [sp, #0x8] - add r6, r1, r2 - ldr r1, [sp, #0x1c] - cmp r6, r1 - bge _0201AACC - sub r1, r3, r6 - ldr r2, [r1, #0x0] - sub r1, r3, r4 - str r2, [r1, #0x0] - b _0201AAD0 -_0201AACC: - sub r1, r3, r4 - str r0, [r1, #0x0] -_0201AAD0: - ldr r1, [sp, #0x18] - sub r2, r6, #0x4 - cmp r2, r1 - bge _0201AAE4 - sub r1, r3, r2 - sub r2, r4, #0x4 - ldr r1, [r1, #0x0] - sub r2, r3, r2 - str r1, [r2, #0x0] - b _0201AAEA -_0201AAE4: - sub r1, r4, #0x4 - sub r1, r3, r1 - str r0, [r1, #0x0] -_0201AAEA: - ldr r1, [sp, #0x4] - add r5, r5, #0x1 - add r1, r1, #0x1 - add r4, #0x8 - str r1, [sp, #0x4] - cmp r1, #0x8 - blt _0201AAA2 - ldr r2, [sp, #0x8] - ldr r1, [sp, #0x1c] - add r2, #0x40 - str r2, [sp, #0x8] - cmp r2, r1 - blt _0201AA90 -_0201AB04: - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_0201AB08 -FUN_0201AB08: ; 0x0201AB08 - ldrb r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_0201AB0C -FUN_0201AB0C: ; 0x0201AB0C - ldrb r0, [r0, #0x7] - bx lr - - thumb_func_start FUN_0201AB10 -FUN_0201AB10: ; 0x0201AB10 - ldrb r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_0201AB14 -FUN_0201AB14: ; 0x0201AB14 - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_0201AB18 -FUN_0201AB18: ; 0x0201AB18 - ldrb r0, [r0, #0x6] - bx lr - - thumb_func_start FUN_0201AB1C -FUN_0201AB1C: ; 0x0201AB1C - strb r1, [r0, #0x5] - bx lr - - thumb_func_start FUN_0201AB20 -FUN_0201AB20: ; 0x0201AB20 - strb r1, [r0, #0x6] - bx lr - - thumb_func_start FUN_0201AB24 -FUN_0201AB24: ; 0x0201AB24 - strb r1, [r0, #0x9] - bx lr - - thumb_func_start FUN_0201AB28 -FUN_0201AB28: ; 0x0201AB28 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl FUN_020161A4 - add r1, sp, #0x0 - str r0, [r4, #0x0] - bl FUN_020B0030 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_0201AB44 -FUN_0201AB44: ; 0x0201AB44 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl FUN_020161A4 - add r1, sp, #0x0 - str r0, [r4, #0x0] - bl FUN_020B0138 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_0201AB60 -FUN_0201AB60: ; 0x0201AB60 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0201AC78 - add r0, r4, #0x0 - bl FUN_0201AB78 - mov r0, #0x0 - strh r0, [r4, #0x4] - strh r0, [r4, #0x6] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201AB78 -FUN_0201AB78: ; 0x0201AB78 - push {r4, lr} - add r4, r0, #0x0 - ldrh r1, [r4, #0x6] - mov r0, #0x1 - tst r0, r1 - beq _0201AB92 - ldr r2, [r4, #0x10] - ldr r1, [r4, #0x8] - ldr r3, [r4, #0xc] - mov r0, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AB92: - ldrh r1, [r4, #0x6] - mov r0, #0x2 - tst r0, r1 - beq _0201ABA8 - ldr r2, [r4, #0x3c] - ldr r1, [r4, #0x34] - ldr r3, [r4, #0x38] - mov r0, #0x1 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABA8: - ldrh r1, [r4, #0x6] - mov r0, #0x4 - tst r0, r1 - beq _0201ABBE - ldr r2, [r4, #0x68] - ldr r1, [r4, #0x60] - ldr r3, [r4, #0x64] - mov r0, #0x2 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABBE: - ldrh r1, [r4, #0x6] - mov r0, #0x8 - tst r0, r1 - beq _0201ABE0 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0x94 - add r3, r4, #0x0 - add r1, #0x8c - ldr r2, [r2, #0x0] - add r3, #0x90 - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x3 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABE0: - ldrh r1, [r4, #0x6] - mov r0, #0x10 - tst r0, r1 - beq _0201AC02 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0xc0 - add r3, r4, #0x0 - add r1, #0xb8 - ldr r2, [r2, #0x0] - add r3, #0xbc - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x4 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC02: - ldrh r1, [r4, #0x6] - mov r0, #0x20 - tst r0, r1 - beq _0201AC24 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0xec - add r3, r4, #0x0 - add r1, #0xe4 - ldr r2, [r2, #0x0] - add r3, #0xe8 - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x5 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC24: - ldrh r0, [r4, #0x6] - mov r3, #0x40 - tst r0, r3 - beq _0201AC44 - add r2, r3, #0x0 - add r1, r3, #0x0 - add r2, #0xd8 - add r1, #0xd0 - ldr r2, [r4, r2] - add r3, #0xd4 - ldr r1, [r4, r1] - ldr r3, [r4, r3] - mov r0, #0x6 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC44: - ldrh r0, [r4, #0x6] - mov r3, #0x80 - tst r0, r3 - beq _0201AC64 - add r2, r3, #0x0 - add r1, r3, #0x0 - add r2, #0xc4 - add r1, #0xbc - ldr r2, [r4, r2] - add r3, #0xc0 - ldr r1, [r4, r1] - ldr r3, [r4, r3] - mov r0, #0x7 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC64: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201AC68 -FUN_0201AC68: ; 0x0201AC68 - ldrh r3, [r0, #0x6] - mov r2, #0x1 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strh r1, [r0, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_0201AC78 -FUN_0201AC78: ; 0x0201AC78 - push {r4, lr} - sub sp, #0x48 - add r4, r0, #0x0 - ldrh r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201AC9E - ldr r1, [r4, #0x14] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x18] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEB4 ; =0x04000010 - str r1, [r0, #0x0] -_0201AC9E: - ldrh r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201ACBE - ldr r1, [r4, #0x40] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x44] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEB8 ; =0x04000014 - str r1, [r0, #0x0] -_0201ACBE: - ldrh r1, [r4, #0x4] - mov r0, #0x4 - tst r0, r1 - beq _0201AD1E - add r0, r4, #0x0 - add r0, #0x74 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201ACEA - ldr r1, [r4, #0x6c] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x70] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEBC ; =0x04000018 - str r1, [r0, #0x0] - b _0201AD1E -_0201ACEA: - mov r0, #0x2 - str r0, [sp, #0x0] - add r1, r4, #0x0 - add r1, #0x78 - add r3, r4, #0x0 - add r3, #0x80 - ldrh r1, [r1, #0x0] - ldr r2, [r4, #0x7c] - ldr r3, [r3, #0x0] - add r0, sp, #0x38 - bl FUN_0201BB74 - ldr r0, [r4, #0x6c] - add r2, r4, #0x0 - str r0, [sp, #0x0] - ldr r0, [r4, #0x70] - add r3, r4, #0x0 - str r0, [sp, #0x4] - add r2, #0x84 - add r3, #0x88 - ldr r0, _0201AEC0 ; =0x04000020 - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r1, sp, #0x38 - bl G2x_SetBGyAffine_ -_0201AD1E: - ldrh r1, [r4, #0x4] - mov r0, #0x8 - tst r0, r1 - beq _0201AD8E - add r0, r4, #0x0 - add r0, #0xa0 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201AD4E - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0x98 - add r2, #0x9c - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AEC4 ; =0x0400001C - str r1, [r0, #0x0] - b _0201AD8E -_0201AD4E: - mov r0, #0x2 - add r1, r4, #0x0 - str r0, [sp, #0x0] - add r1, #0xa4 - add r2, r4, #0x0 - add r3, r4, #0x0 - add r2, #0xa8 - add r3, #0xac - ldrh r1, [r1, #0x0] - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r0, sp, #0x28 - bl FUN_0201BB74 - add r0, r4, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - add r2, r4, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r0, #0x9c - ldr r0, [r0, #0x0] - add r3, r4, #0x0 - str r0, [sp, #0x4] - add r2, #0xb0 - add r3, #0xb4 - ldr r0, _0201AEC8 ; =0x04000030 - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r1, sp, #0x28 - bl G2x_SetBGyAffine_ -_0201AD8E: - ldrh r1, [r4, #0x4] - mov r0, #0x10 - tst r0, r1 - beq _0201ADB2 - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0xc4 - add r2, #0xc8 - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AECC ; =0x04001010 - str r1, [r0, #0x0] -_0201ADB2: - ldrh r1, [r4, #0x4] - mov r0, #0x20 - tst r0, r1 - beq _0201ADD6 - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0xf0 - add r2, #0xf4 - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AED0 ; =0x04001014 - str r1, [r0, #0x0] -_0201ADD6: - ldrh r0, [r4, #0x4] - mov r3, #0x40 - tst r0, r3 - beq _0201AE3E - add r0, r3, #0x0 - add r0, #0xe4 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _0201AE04 - ldr r1, _0201AEB0 ; =0x000001FF - add r3, #0xdc - add r2, r1, #0x0 - sub r2, #0xdf - ldr r0, [r4, r3] - ldr r2, [r4, r2] - and r0, r1 - lsl r2, r2, #0x10 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AED4 ; =0x04001018 - str r1, [r0, #0x0] - b _0201AE3E -_0201AE04: - mov r0, #0x2 - add r1, r3, #0x0 - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r1, #0xe8 - add r2, #0xec - add r3, #0xf0 - ldrh r1, [r4, r1] - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r0, sp, #0x18 - bl FUN_0201BB74 - mov r3, #0x47 - lsl r3, r3, #0x2 - ldr r0, [r4, r3] - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r0, r3, #0x4 - ldr r0, [r4, r0] - add r2, #0x18 - str r0, [sp, #0x4] - add r3, #0x1c - ldr r0, _0201AED8 ; =0x04001020 - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r1, sp, #0x18 - bl G2x_SetBGyAffine_ -_0201AE3E: - ldrh r0, [r4, #0x4] - mov r3, #0x80 - tst r0, r3 - beq _0201AEAC - add r0, r3, #0x0 - add r0, #0xd0 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _0201AE72 - add r3, #0xc8 - ldr r1, [r4, r3] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - add r1, r0, #0x0 - sub r1, #0xb3 - ldr r1, [r4, r1] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEDC ; =0x0400101C - add sp, #0x48 - str r1, [r0, #0x0] - pop {r4, pc} -_0201AE72: - mov r0, #0x2 - add r1, r3, #0x0 - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r1, #0xd4 - add r2, #0xd8 - add r3, #0xdc - ldrh r1, [r4, r1] - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r0, sp, #0x8 - bl FUN_0201BB74 - mov r3, #0x52 - lsl r3, r3, #0x2 - ldr r0, [r4, r3] - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r0, r3, #0x4 - ldr r0, [r4, r0] - add r2, #0x18 - str r0, [sp, #0x4] - add r3, #0x1c - ldr r0, _0201AEE0 ; =0x04001030 - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r1, sp, #0x8 - bl G2x_SetBGyAffine_ -_0201AEAC: - add sp, #0x48 - pop {r4, pc} - .balign 4 -_0201AEB0: .word 0x000001FF -_0201AEB4: .word 0x04000010 -_0201AEB8: .word 0x04000014 -_0201AEBC: .word 0x04000018 -_0201AEC0: .word 0x04000020 -_0201AEC4: .word 0x0400001C -_0201AEC8: .word 0x04000030 -_0201AECC: .word 0x04001010 -_0201AED0: .word 0x04001014 -_0201AED4: .word 0x04001018 -_0201AED8: .word 0x04001020 -_0201AEDC: .word 0x0400101C -_0201AEE0: .word 0x04001030 - - thumb_func_start FUN_0201AEE4 -FUN_0201AEE4: ; 0x0201AEE4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_02017B8C - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF08 -FUN_0201AF08: ; 0x0201AF08 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_0201AF2C - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF2C -FUN_0201AF2C: ; 0x0201AF2C - cmp r1, #0x0 - beq _0201AF3A - cmp r1, #0x1 - beq _0201AF3E - cmp r1, #0x2 - beq _0201AF46 - bx lr -_0201AF3A: - strh r2, [r0, #0x18] - bx lr -_0201AF3E: - ldrh r1, [r0, #0x18] - add r1, r1, r2 - strh r1, [r0, #0x18] - bx lr -_0201AF46: - ldrh r1, [r0, #0x18] - sub r1, r1, r2 - strh r1, [r0, #0x18] - bx lr - .balign 4 - - thumb_func_start FUN_0201AF50 -FUN_0201AF50: ; 0x0201AF50 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_0201AF74 - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF74 -FUN_0201AF74: ; 0x0201AF74 - sub r1, #0x9 - cmp r1, #0x5 - bhi _0201AFB8 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201AF86: ; jump table (using 16-bit offset) - .short _0201AF92 - _0201AF86 - 2; case 0 - .short _0201AF96 - _0201AF86 - 2; case 1 - .short _0201AF9E - _0201AF86 - 2; case 2 - .short _0201AFA6 - _0201AF86 - 2; case 3 - .short _0201AFAA - _0201AF86 - 2; case 4 - .short _0201AFB2 - _0201AF86 - 2; case 5 -_0201AF92: - str r2, [r0, #0x24] - bx lr -_0201AF96: - ldr r1, [r0, #0x24] - add r1, r1, r2 - str r1, [r0, #0x24] - bx lr -_0201AF9E: - ldr r1, [r0, #0x24] - sub r1, r1, r2 - str r1, [r0, #0x24] - bx lr -_0201AFA6: - str r2, [r0, #0x28] - bx lr -_0201AFAA: - ldr r1, [r0, #0x28] - add r1, r1, r2 - str r1, [r0, #0x28] - bx lr -_0201AFB2: - ldr r1, [r0, #0x28] - sub r1, r1, r2 - str r1, [r0, #0x28] -_0201AFB8: - bx lr - .balign 4 - - thumb_func_start FUN_0201AFBC -FUN_0201AFBC: ; 0x0201AFBC - push {r4-r7, lr} - sub sp, #0x1c - str r1, [sp, #0x0] - add r7, r0, #0x0 - str r2, [sp, #0x4] - ldr r0, [sp, #0x30] - str r3, [sp, #0x8] - str r0, [sp, #0x30] - ldr r0, [sp, #0x0] - add r4, r7, #0x0 - mov r1, #0x2c - add r5, r0, #0x0 - mul r5, r1 - add r4, #0x8 - ldr r0, [r4, r5] - cmp r0, #0x0 - bne _0201AFE4 - add sp, #0x1c - mov r0, #0x0 - pop {r4-r7, pc} -_0201AFE4: - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x8] - add r2, r7, r5 - lsl r0, r0, #0x15 - lsl r1, r1, #0x15 - ldrb r2, [r2, #0x1d] - lsr r0, r0, #0x18 - lsr r1, r1, #0x18 - bl FUN_02017FFC - add r6, r0, #0x0 - ldr r0, [sp, #0x0] - bl FUN_020187B0 - str r0, [sp, #0x18] - ldr r1, [sp, #0x4] - mov r0, #0x7 - and r1, r0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x14] - ldr r1, [sp, #0x8] - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r1, r7, r5 - str r0, [sp, #0x10] - ldrb r0, [r1, #0x1e] - cmp r0, #0x0 - bne _0201B096 - ldr r0, [r4, r5] - mov r1, #0x40 - str r0, [sp, #0xc] - ldr r0, [r7, #0x0] - bl FUN_020169D8 - add r4, r0, #0x0 - lsl r0, r6, #0x1 - ldr r1, [sp, #0xc] - mov r12, r0 - ldrh r0, [r1, r0] - mov r3, #0x0 - mov r6, #0xf - lsl r0, r0, #0x16 - lsr r1, r0, #0x11 - ldr r0, [sp, #0x18] - add r2, r0, r1 -_0201B042: - ldrb r5, [r2, r3] - lsl r0, r3, #0x1 - add r1, r4, r0 - and r5, r6 - strb r5, [r4, r0] - ldrb r0, [r2, r3] - asr r0, r0, #0x4 - strb r0, [r1, #0x1] - add r0, r3, #0x1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, #0x20 - blo _0201B042 - ldr r2, [sp, #0xc] - mov r1, r12 - ldrh r1, [r2, r1] - add r0, r7, #0x0 - asr r2, r1, #0xa - mov r1, #0x3 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r4, #0x0 - bl FUN_0201B118 - ldr r0, [sp, #0x10] - lsl r1, r0, #0x3 - ldr r0, [sp, #0x14] - add r0, r0, r1 - ldrb r5, [r4, r0] - add r0, r4, #0x0 - bl FUN_02016A18 - ldr r0, [sp, #0x30] - ldrh r2, [r0, #0x0] - mov r0, #0x1 - add r1, r0, #0x0 - lsl r1, r5 - tst r1, r2 - beq _0201B10C - add sp, #0x1c - pop {r4-r7, pc} -_0201B096: - ldrb r0, [r1, #0x1c] - cmp r0, #0x1 - beq _0201B0E0 - ldr r0, [r7, #0x0] - ldr r4, [r4, r5] - mov r1, #0x40 - bl FUN_020169D8 - lsl r6, r6, #0x1 - ldrh r1, [r4, r6] - add r5, r0, #0x0 - lsl r1, r1, #0x16 - lsr r2, r1, #0x10 - ldr r1, [sp, #0x18] - add r1, r1, r2 - mov r2, #0x40 - bl memcpy - ldrh r1, [r4, r6] - add r0, r7, #0x0 - asr r2, r1, #0xa - mov r1, #0x3 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r5, #0x0 - bl FUN_0201B118 - ldr r0, [sp, #0x10] - lsl r1, r0, #0x3 - ldr r0, [sp, #0x14] - add r0, r0, r1 - ldrb r4, [r5, r0] - add r0, r5, #0x0 - bl FUN_02016A18 - b _0201B0F4 -_0201B0E0: - ldr r1, [r4, r5] - ldr r0, [sp, #0x10] - ldrb r1, [r1, r6] - lsl r0, r0, #0x3 - lsl r2, r1, #0x6 - ldr r1, [sp, #0x14] - add r1, r1, r2 - add r1, r0, r1 - ldr r0, [sp, #0x18] - ldrb r4, [r0, r1] -_0201B0F4: - ldr r0, [sp, #0x30] - ldrh r2, [r0, #0x0] - lsl r0, r2, #0x18 - lsr r1, r0, #0x18 - ldr r0, _0201B114 ; =0x0000FFFF -_0201B0FE: - cmp r2, r0 - beq _0201B10C - cmp r4, r1 - bne _0201B0FE - add sp, #0x1c - mov r0, #0x1 - pop {r4-r7, pc} -_0201B10C: - mov r0, #0x0 - add sp, #0x1c - pop {r4-r7, pc} - nop -_0201B114: .word 0x0000FFFF - - thumb_func_start FUN_0201B118 -FUN_0201B118: ; 0x0201B118 - push {r3-r7, lr} - str r1, [sp, #0x0] - ldr r1, [sp, #0x0] - add r7, r2, #0x0 - cmp r1, #0x0 - beq _0201B1A4 - ldr r0, [r0, #0x0] - mov r1, #0x40 - bl FUN_020169D8 - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - mov r1, #0x1 - tst r0, r1 - beq _0201B166 - mov r0, #0x0 - mov r5, #0x7 -_0201B13A: - lsl r3, r0, #0x3 - add r2, r7, r3 - mov r1, #0x0 - add r3, r4, r3 -_0201B142: - sub r6, r5, r1 - ldrb r6, [r2, r6] - strb r6, [r3, r1] - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - cmp r1, #0x8 - blo _0201B142 - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x8 - blo _0201B13A - add r0, r7, #0x0 - add r1, r4, #0x0 - mov r2, #0x40 - bl memcpy -_0201B166: - ldr r0, [sp, #0x0] - mov r1, #0x2 - tst r0, r1 - beq _0201B19E - mov r5, #0x0 - mov r6, #0x7 -_0201B172: - lsl r0, r5, #0x3 - add r3, r4, r0 - sub r0, r6, r5 - lsl r0, r0, #0x3 - add r2, r7, r0 - mov r1, #0x8 -_0201B17E: - ldrb r0, [r2, #0x0] - add r2, r2, #0x1 - strb r0, [r3, #0x0] - add r3, r3, #0x1 - sub r1, r1, #0x1 - bne _0201B17E - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x8 - blo _0201B172 - add r0, r7, #0x0 - add r1, r4, #0x0 - mov r2, #0x40 - bl memcpy -_0201B19E: - add r0, r4, #0x0 - bl FUN_02016A18 -_0201B1A4: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201B1A8 -FUN_0201B1A8: ; 0x0201B1A8 - push {r3-r5, lr} - add r5, r3, #0x0 - add r4, r2, #0x0 - bl FUN_020161A4 - str r0, [r5, #0x0] - bl FUN_020BC0FC - cmp r0, #0x0 - beq _0201B1D2 - bl FUN_0201B254 - cmp r0, #0x0 - bne _0201B1D2 - ldr r0, [r5, #0x0] - ldr r1, [r0, #0x8] - bl DC_FlushRange - ldr r0, [r5, #0x0] - bl FUN_020BB59C -_0201B1D2: - ldr r0, [r5, #0x0] - bl FUN_020BC13C - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r0, r0, r1 - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201B1E4 -FUN_0201B1E4: ; 0x0201B1E4 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - bl FUN_020BC0FC - cmp r0, #0x0 - beq _0201B20A - bl FUN_0201B254 - cmp r0, #0x0 - bne _0201B20A - ldr r0, [r5, #0x0] - ldr r1, [r0, #0x8] - bl DC_FlushRange - ldr r0, [r5, #0x0] - bl FUN_020BB59C -_0201B20A: - ldr r0, [r5, #0x0] - bl FUN_020BC13C - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r0, r0, r1 - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201B21C -FUN_0201B21C: ; 0x0201B21C - push {r3-r5, lr} - add r4, r3, #0x0 - add r5, r2, #0x0 - ldr r3, [sp, #0x10] - add r2, r4, #0x0 - bl FUN_0201B1A8 - ldr r1, [r4, #0x0] - add r0, r5, #0x0 - bl FUN_020B80B4 - pop {r3-r5, pc} - - thumb_func_start FUN_0201B234 -FUN_0201B234: ; 0x0201B234 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r2, #0x0 - bl FUN_0201B1E4 - cmp r4, #0x0 - bne _0201B24A - bl ErrorHandling -_0201B24A: - ldr r1, [r4, #0x0] - add r0, r5, #0x0 - bl FUN_020B80B4 - pop {r3-r5, pc} - - thumb_func_start FUN_0201B254 -FUN_0201B254: ; 0x0201B254 - ldrh r2, [r0, #0x10] - mov r1, #0x1 - tst r2, r1 - bne _0201B262 - ldrh r0, [r0, #0x20] - tst r0, r1 - beq _0201B266 -_0201B262: - mov r0, #0x1 - bx lr -_0201B266: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0201B26C -FUN_0201B26C: ; 0x0201B26C - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_020B8474 - ldr r1, _0201B2A0 ; =0x021CEDD4 - add r0, r4, #0x0 - bl MI_Copy36B - ldr r1, _0201B2A4 ; =0x021CED98 - mov r0, #0xa4 - ldr r2, [r1, #0x7c] - bic r2, r0 - add r0, r6, #0x0 - str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C - add r0, r5, #0x0 - bl FUN_020BAC98 - pop {r4-r6, pc} - nop -_0201B2A0: .word 0x021CEDD4 -_0201B2A4: .word 0x021CED98 - - thumb_func_start FUN_0201B2A8 -FUN_0201B2A8: ; 0x0201B2A8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_020B8474 - ldr r1, _0201B2E4 ; =0x021CEDD4 - add r0, r4, #0x0 - bl MI_Copy36B - ldr r1, _0201B2E8 ; =0x021CED98 - mov r0, #0xa4 - ldr r2, [r1, #0x7c] - bic r2, r0 - str r2, [r1, #0x7c] - add r0, r6, #0x0 - bl FUN_020B844C - bl FUN_020B849C - mov r1, #0x0 - ldr r0, [r5, #0x4] - add r2, r1, #0x0 - mov r3, #0x1 - bl FUN_020BAFB8 - bl FUN_020BB394 - pop {r4-r6, pc} - .balign 4 -_0201B2E4: .word 0x021CEDD4 -_0201B2E8: .word 0x021CED98 - - thumb_func_start FUN_0201B2EC -FUN_0201B2EC: ; 0x0201B2EC - push {r3, lr} - sub sp, #0x8 - mov r1, #0x4 - str r1, [sp, #0x0] - ldr r1, _0201B30C ; =FUN_0201B314 - mov r2, #0x2 - str r1, [sp, #0x4] - mov r1, #0x0 - add r3, r1, #0x0 - bl FUN_02022318 - ldr r1, _0201B310 ; =0x021C4D44 - str r0, [r1, #0x0] - add sp, #0x8 - pop {r3, pc} - nop -_0201B30C: .word FUN_0201B314 -_0201B310: .word 0x021C4D44 - - thumb_func_start FUN_0201B314 -FUN_0201B314: ; 0x0201B314 - push {r3, lr} - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_0201E6E4 - ldr r0, _0201B380 ; =0x04000008 - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r0, #0x0] - add r0, #0x58 - ldrh r2, [r0, #0x0] - ldr r1, _0201B384 ; =0xFFFFCFFD - and r2, r1 - strh r2, [r0, #0x0] - add r2, r1, #0x2 - ldrh r3, [r0, #0x0] - add r1, r1, #0x2 - and r3, r2 - mov r2, #0x10 - orr r2, r3 - strh r2, [r0, #0x0] - ldrh r3, [r0, #0x0] - ldr r2, _0201B388 ; =0x0000CFFB - and r3, r2 - strh r3, [r0, #0x0] - ldrh r3, [r0, #0x0] - sub r2, #0x1c - and r3, r1 - mov r1, #0x8 - orr r1, r3 - strh r1, [r0, #0x0] - ldrh r1, [r0, #0x0] - and r1, r2 - strh r1, [r0, #0x0] - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - add r3, r0, #0x0 - bl G3X_SetFog - mov r0, #0x0 - ldr r2, _0201B38C ; =0x00007FFF - add r1, r0, #0x0 - mov r3, #0x3f - str r0, [sp, #0x0] - bl G3X_SetClearColor - ldr r1, _0201B390 ; =0xBFFF0000 - ldr r0, _0201B394 ; =0x04000580 - str r1, [r0, #0x0] - pop {r3, pc} - .balign 4 -_0201B380: .word 0x04000008 -_0201B384: .word 0xFFFFCFFD -_0201B388: .word 0x0000CFFB -_0201B38C: .word 0x00007FFF -_0201B390: .word 0xBFFF0000 -_0201B394: .word 0x04000580 - - thumb_func_start FUN_0201B398 -FUN_0201B398: ; 0x0201B398 - ldr r0, _0201B3A0 ; =0x021C4D44 - ldr r3, _0201B3A4 ; =FUN_020223BC - ldr r0, [r0, #0x0] - bx r3 - .balign 4 -_0201B3A0: .word 0x021C4D44 -_0201B3A4: .word FUN_020223BC - - thumb_func_start FUN_0201B3A8 -FUN_0201B3A8: ; 0x0201B3A8 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_020BC13C - cmp r4, #0x0 - beq _0201B3BE - add r1, r4, #0x0 - bl FUN_020B7790 - mov r0, #0x1 - pop {r4, pc} -_0201B3BE: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201B3C4 -FUN_0201B3C4: ; 0x0201B3C4 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - bne _0201B3D2 - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0201B3D2: - mov r1, #0x0 - str r1, [r5, #0x8] - mov r1, #0x1 - str r1, [sp, #0x8] - str r1, [sp, #0x4] - str r1, [sp, #0x0] - cmp r5, #0x0 - beq _0201B4D0 - bl FUN_020B7E1C - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7E10 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7CE4 - str r0, [sp, #0xc] - cmp r6, #0x0 - beq _0201B412 - ldr r3, _0201B4D8 ; =0x021064B8 - mov r1, #0x0 - ldr r3, [r3, #0x0] - add r0, r6, #0x0 - add r2, r1, #0x0 - blx r3 - add r7, r0, #0x0 - bne _0201B414 - mov r0, #0x0 - str r0, [sp, #0x8] - b _0201B414 -_0201B412: - mov r7, #0x0 -_0201B414: - cmp r4, #0x0 - beq _0201B42E - ldr r3, _0201B4D8 ; =0x021064B8 - add r0, r4, #0x0 - ldr r3, [r3, #0x0] - mov r1, #0x1 - mov r2, #0x0 - blx r3 - add r6, r0, #0x0 - bne _0201B430 - mov r0, #0x0 - str r0, [sp, #0x4] - b _0201B430 -_0201B42E: - mov r6, #0x0 -_0201B430: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - beq _0201B450 - ldr r3, _0201B4DC ; =0x021064C0 - mov r1, #0x2 - ldrh r2, [r5, #0x20] - lsl r1, r1, #0xe - ldr r3, [r3, #0x0] - and r1, r2 - mov r2, #0x0 - blx r3 - add r4, r0, #0x0 - bne _0201B452 - mov r0, #0x0 - str r0, [sp, #0x0] - b _0201B452 -_0201B450: - mov r4, #0x0 -_0201B452: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bne _0201B46E - ldr r1, _0201B4E0 ; =0x021064BC - add r0, r7, #0x0 - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _0201B468 - bl ErrorHandling -_0201B468: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0201B46E: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _0201B48A - ldr r1, _0201B4E0 ; =0x021064BC - add r0, r6, #0x0 - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _0201B484 - bl ErrorHandling -_0201B484: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0201B48A: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - bne _0201B4A6 - ldr r1, _0201B4E4 ; =0x021064C4 - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _0201B4A0 - bl ErrorHandling -_0201B4A0: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0201B4A6: - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl FUN_020B7DFC - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020B7CDC - ldr r1, [r5, #0x4] - add r0, r5, #0x0 - bl DC_FlushRange - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_020B7D28 - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_020B7C78 -_0201B4D0: - mov r0, #0x1 - add sp, #0x10 - pop {r3-r7, pc} - nop -_0201B4D8: .word 0x021064B8 -_0201B4DC: .word 0x021064C0 -_0201B4E0: .word 0x021064BC -_0201B4E4: .word 0x021064C4 - - thumb_func_start FUN_0201B4E8 -FUN_0201B4E8: ; 0x0201B4E8 - str r0, [r1, #0x0] - add r0, r0, #0x4 - str r0, [r1, #0x8] - str r0, [r1, #0x4] - mov r0, #0x0 - str r0, [r1, #0xc] - str r0, [r1, #0x10] - str r0, [r1, #0x14] - bx lr - .balign 4 - - thumb_func_start FUN_0201B4FC -FUN_0201B4FC: ; 0x0201B4FC - push {r3-r7, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x0] - mov r7, #0x0 - cmp r0, #0x0 - ble _0201B52A - add r4, r7, #0x0 - add r6, r7, #0x0 -_0201B50C: - ldr r1, [r5, #0x24] - add r0, r5, #0x0 - add r1, r1, r4 - bl FUN_0201B4E8 - ldr r0, [r5, #0x24] - add r7, r7, #0x1 - add r1, r0, r4 - ldr r0, [r5, #0x20] - add r4, #0x1c - str r1, [r0, r6] - ldrh r0, [r5, #0x0] - add r6, r6, #0x4 - cmp r7, r0 - blt _0201B50C -_0201B52A: - mov r0, #0x0 - strh r0, [r5, #0x2] - pop {r3-r7, pc} - - thumb_func_start FUN_0201B530 -FUN_0201B530: ; 0x0201B530 - ldrh r3, [r0, #0x2] - ldrh r1, [r0, #0x0] - cmp r3, r1 - bne _0201B53C - mov r0, #0x0 - bx lr -_0201B53C: - ldr r2, [r0, #0x20] - lsl r1, r3, #0x2 - ldr r2, [r2, r1] - add r1, r3, #0x1 - strh r1, [r0, #0x2] - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0201B54C -FUN_0201B54C: ; 0x0201B54C - ldrh r2, [r0, #0x2] - cmp r2, #0x0 - bne _0201B556 - mov r0, #0x0 - bx lr -_0201B556: - str r0, [r1, #0x0] - add r2, r0, #0x4 - str r2, [r1, #0x8] - str r2, [r1, #0x4] - mov r2, #0x0 - str r2, [r1, #0xc] - str r2, [r1, #0x10] - str r2, [r1, #0x14] - ldrh r2, [r0, #0x2] - sub r2, r2, #0x1 - strh r2, [r0, #0x2] - ldr r2, [r0, #0x20] - ldrh r0, [r0, #0x2] - lsl r0, r0, #0x2 - str r1, [r2, r0] - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0201B578 -FUN_0201B578: ; 0x0201B578 - lsl r0, r0, #0x5 - add r0, #0x34 - bx lr - .balign 4 - - thumb_func_start FUN_0201B580 -FUN_0201B580: ; 0x0201B580 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bne _0201B58C - bl ErrorHandling -_0201B58C: - add r1, r4, #0x0 - add r1, #0x34 - lsl r0, r5, #0x2 - str r1, [r4, #0x20] - add r0, r1, r0 - str r0, [r4, #0x24] - strh r5, [r4, #0x0] - mov r0, #0x0 - strh r0, [r4, #0x2] - str r0, [r4, #0x28] - add r0, r4, #0x0 - bl FUN_0201B5AC - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201B5AC -FUN_0201B5AC: ; 0x0201B5AC - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0201B4FC - str r4, [r4, #0x4] - add r0, r4, #0x4 - str r0, [r4, #0xc] - str r0, [r4, #0x8] - mov r0, #0x0 - str r0, [r4, #0x10] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - ldr r0, [r4, #0xc] - str r0, [r4, #0x2c] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201B5CC -FUN_0201B5CC: ; 0x0201B5CC - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x28] - cmp r0, #0x0 - bne _0201B608 - ldr r1, [r5, #0xc] - add r4, r5, #0x4 - str r1, [r5, #0x2c] - cmp r1, r4 - beq _0201B604 - mov r6, #0x0 -_0201B5E2: - ldr r0, [r1, #0x8] - str r0, [r5, #0x30] - ldr r0, [r5, #0x2c] - ldr r1, [r0, #0x18] - cmp r1, #0x0 - bne _0201B5FA - ldr r2, [r0, #0x14] - cmp r2, #0x0 - beq _0201B5FC - ldr r1, [r0, #0x10] - blx r2 - b _0201B5FC -_0201B5FA: - str r6, [r0, #0x18] -_0201B5FC: - ldr r1, [r5, #0x30] - str r1, [r5, #0x2c] - cmp r1, r4 - bne _0201B5E2 -_0201B604: - mov r0, #0x0 - str r0, [r1, #0x14] -_0201B608: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201B60C -FUN_0201B60C: ; 0x0201B60C - push {r3-r5, lr} - add r4, r0, #0x0 - mov r5, #0x1 - str r5, [r4, #0x28] - bl FUN_0201B620 - mov r1, #0x0 - str r1, [r4, #0x28] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201B620 -FUN_0201B620: ; 0x0201B620 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - add r4, r3, #0x0 - bl FUN_0201B530 - cmp r0, #0x0 - bne _0201B636 - mov r0, #0x0 - pop {r3-r7, pc} -_0201B636: - str r4, [r0, #0xc] - str r7, [r0, #0x10] - str r6, [r0, #0x14] - ldr r2, [r5, #0x2c] - ldr r1, [r2, #0x14] - cmp r1, #0x0 - beq _0201B656 - ldr r1, [r2, #0xc] - cmp r1, r4 - bhi _0201B650 - mov r1, #0x1 - str r1, [r0, #0x18] - b _0201B65A -_0201B650: - mov r1, #0x0 - str r1, [r0, #0x18] - b _0201B65A -_0201B656: - mov r1, #0x0 - str r1, [r0, #0x18] -_0201B65A: - ldr r3, [r5, #0xc] - add r2, r5, #0x4 - cmp r3, r2 - beq _0201B686 - ldr r4, [r0, #0xc] -_0201B664: - ldr r1, [r3, #0xc] - cmp r1, r4 - bls _0201B680 - ldr r1, [r3, #0x4] - str r1, [r0, #0x4] - str r3, [r0, #0x8] - ldr r1, [r3, #0x4] - str r0, [r1, #0x8] - str r0, [r3, #0x4] - ldr r1, [r5, #0x30] - cmp r3, r1 - bne _0201B69E - str r0, [r5, #0x30] - pop {r3-r7, pc} -_0201B680: - ldr r3, [r3, #0x8] - cmp r3, r2 - bne _0201B664 -_0201B686: - ldr r2, [r5, #0x30] - add r1, r5, #0x4 - cmp r2, r1 - bne _0201B690 - str r0, [r5, #0x30] -_0201B690: - ldr r1, [r5, #0x8] - str r1, [r0, #0x4] - add r1, r5, #0x4 - str r1, [r0, #0x8] - ldr r1, [r5, #0x8] - str r0, [r1, #0x8] - str r0, [r5, #0x8] -_0201B69E: - pop {r3-r7, pc} - - thumb_func_start FUN_0201B6A0 -FUN_0201B6A0: ; 0x0201B6A0 - add r1, r0, #0x0 - ldr r2, [r1, #0x0] - ldr r0, [r2, #0x30] - cmp r0, r1 - bne _0201B6AE - ldr r0, [r1, #0x8] - str r0, [r2, #0x30] -_0201B6AE: - ldr r2, [r1, #0x8] - ldr r0, [r1, #0x4] - ldr r3, _0201B6C0 ; =0x0201B54D - str r2, [r0, #0x8] - ldr r2, [r1, #0x4] - ldr r0, [r1, #0x8] - str r2, [r0, #0x4] - ldr r0, [r1, #0x0] - bx r3 - .balign 4 -_0201B6C0: .word 0x0201B54D - - thumb_func_start FUN_0201B6C4 -FUN_0201B6C4: ; 0x0201B6C4 - str r1, [r0, #0x14] - bx lr - - thumb_func_start FUN_0201B6C8 -FUN_0201B6C8: ; 0x0201B6C8 - ldr r0, [r0, #0x10] - bx lr - - thumb_func_start FUN_0201B6CC -FUN_0201B6CC: ; 0x0201B6CC - ldr r0, [r0, #0xc] - bx lr - - thumb_func_start FUN_0201B6D0 -FUN_0201B6D0: ; 0x0201B6D0 - push {r4-r7, lr} - sub sp, #0x34 - add r6, r1, #0x0 - add r4, r0, #0x0 - add r5, r2, #0x0 - ldmia r6!, {r0-r1} - add r2, sp, #0x1c - stmia r2!, {r0-r1} - ldr r0, [r6, #0x0] - add r4, #0x14 - str r0, [r2, #0x0] - mov r0, #0x20 - ldrsh r0, [r4, r0] - add r7, r3, #0x0 - mov r1, #0x1a - str r0, [sp, #0x0] - mov r0, #0x22 - ldrsh r0, [r4, r0] - mov r2, #0x1c - mov r3, #0x1e - str r0, [sp, #0x4] - add r0, sp, #0x28 - str r0, [sp, #0x8] - mov r0, #0x18 - ldrsh r0, [r4, r0] - ldrsh r1, [r4, r1] - ldrsh r2, [r4, r2] - ldrsh r3, [r4, r3] - bl FUN_0201B808 - add r0, sp, #0x1c - bl FUN_020B8474 - ldr r1, _0201B764 ; =0x021CEDD4 - add r0, r5, #0x0 - bl MI_Copy36B - ldr r1, _0201B768 ; =0x021CED98 - mov r0, #0xa4 - ldr r2, [r1, #0x7c] - bic r2, r0 - add r0, r7, #0x0 - str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C - mov r1, #0x0 - mov r0, #0x11 - add r2, r1, #0x0 - bl FUN_020BB1C0 - ldr r0, [r4, #0x24] - add r1, sp, #0x10 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - str r0, [sp, #0x18] - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 - add r0, sp, #0x28 - bl FUN_0201B82C - add r4, r0, #0x0 - mov r2, #0x1 - mov r0, #0x12 - add r1, sp, #0xc - str r2, [sp, #0xc] - bl FUN_020BB1C0 - add r0, r4, #0x0 - add sp, #0x34 - pop {r4-r7, pc} - .balign 4 -_0201B764: .word 0x021CEDD4 -_0201B768: .word 0x021CED98 - - thumb_func_start FUN_0201B76C -FUN_0201B76C: ; 0x0201B76C - push {r3-r5, lr} - sub sp, #0x28 - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2 - ldrsh r0, [r4, r0] - str r0, [sp, #0x0] - mov r0, #0x4 - ldrsh r0, [r4, r0] - str r0, [sp, #0x4] - add r0, sp, #0x1c - str r0, [sp, #0x8] - mov r0, #0x0 - ldrsh r3, [r4, r0] - add r1, r0, #0x0 - add r2, r0, #0x0 - bl FUN_0201B808 - add r0, r5, #0x0 - bl FUN_020B8474 - bl FUN_020B849C - mov r1, #0x0 - mov r0, #0x11 - add r2, r1, #0x0 - bl FUN_020BB1C0 - ldr r0, [r4, #0x10] - lsl r2, r0, #0xc - ldr r0, [r4, #0xc] - lsl r1, r0, #0xc - ldr r0, [r4, #0x8] - lsl r0, r0, #0xc - str r0, [sp, #0x10] - str r1, [sp, #0x14] - str r2, [sp, #0x18] - mov r0, #0x1b - add r1, sp, #0x10 - mov r2, #0x3 - bl FUN_020BB1C0 - add r0, sp, #0x1c - bl FUN_0201B82C - add r4, r0, #0x0 - mov r2, #0x1 - mov r0, #0x12 - add r1, sp, #0xc - str r2, [sp, #0xc] - bl FUN_020BB1C0 - add r0, r4, #0x0 - add sp, #0x28 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201B7DC -FUN_0201B7DC: ; 0x0201B7DC - push {r4-r6, lr} - add r6, r3, #0x0 - add r4, r2, #0x0 - add r2, r6, #0x0 - add r5, r1, #0x0 - add r1, r6, #0x0 - add r2, #0x8 - bl FUN_0201B880 - add r2, r6, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x2 - add r2, #0xc - bl FUN_0201B880 - add r1, r6, #0x4 - add r6, #0x10 - add r0, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0201B880 - pop {r4-r6, pc} - - thumb_func_start FUN_0201B808 -FUN_0201B808: ; 0x0201B808 - push {r3-r4} - ldr r4, [sp, #0x10] - strh r0, [r4, #0x0] - strh r1, [r4, #0x2] - ldr r1, _0201B828 ; =0xFFFFFFF8 - strh r2, [r4, #0x4] - strh r3, [r4, #0x6] - add r1, sp - mov r0, #0x10 - ldrsh r0, [r1, r0] - strh r0, [r4, #0x8] - mov r0, #0x14 - ldrsh r0, [r1, r0] - strh r0, [r4, #0xa] - pop {r3-r4} - bx lr - .balign 4 -_0201B828: .word 0xFFFFFFF8 - - thumb_func_start FUN_0201B82C -FUN_0201B82C: ; 0x0201B82C - push {r3-r4, lr} - sub sp, #0xc - add r4, r0, #0x0 - ldr r0, _0201B87C ; =0x000030C1 - mov r2, #0x1 - str r0, [sp, #0x4] - mov r0, #0x29 - add r1, sp, #0x4 - str r2, [sp, #0x8] - bl FUN_020BB1C0 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r0, #0x40 - add r1, sp, #0x0 - mov r2, #0x1 - bl FUN_020BB1C0 - mov r1, #0x0 - mov r0, #0x41 - add r2, r1, #0x0 - bl FUN_020BB1C0 - mov r0, #0x70 - add r1, r4, #0x0 - mov r2, #0x3 - bl FUN_020BB1C0 - bl FUN_020BB394 - add r4, sp, #0x8 -_0201B86A: - add r0, r4, #0x0 - bl G3X_GetBoxTestResult - cmp r0, #0x0 - bne _0201B86A - ldr r0, [sp, #0x8] - add sp, #0xc - pop {r3-r4, pc} - nop -_0201B87C: .word 0x000030C1 - - thumb_func_start FUN_0201B880 -FUN_0201B880: ; 0x0201B880 - push {r3-r4} - ldr r4, _0201B8B4 ; =0x00007FFF - mov r3, #0x0 - cmp r0, r4 - blo _0201B896 -_0201B88A: - add r3, r3, #0x1 - lsl r3, r3, #0x18 - lsr r0, r0, #0x1 - lsr r3, r3, #0x18 - cmp r0, r4 - bhs _0201B88A -_0201B896: - strh r0, [r1, #0x0] - mov r0, #0x1 - mov r1, #0x0 - str r0, [r2, #0x0] - cmp r3, #0x0 - ble _0201B8AE -_0201B8A2: - ldr r0, [r2, #0x0] - add r1, r1, #0x1 - lsl r0, r0, #0x1 - str r0, [r2, #0x0] - cmp r1, r3 - blt _0201B8A2 -_0201B8AE: - pop {r3-r4} - bx lr - nop -_0201B8B4: .word 0x00007FFF - - thumb_func_start FUN_0201B8B8 -FUN_0201B8B8: ; 0x0201B8B8 - push {r4, lr} - add r4, r0, #0x0 - ldrh r1, [r4, #0x0] - ldr r0, _0201B8DC ; =0x0000FFFE - cmp r1, r0 - beq _0201B8C8 - bl ErrorHandling -_0201B8C8: - ldrh r1, [r4, #0x0] - ldr r0, _0201B8DC ; =0x0000FFFE - cmp r1, r0 - bne _0201B8D8 - ldrh r0, [r4, #0x4] - add r1, r4, #0x6 - lsl r0, r0, #0x1 - add r4, r1, r0 -_0201B8D8: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 -_0201B8DC: .word 0x0000FFFE - - thumb_func_start FUN_0201B8E0 -FUN_0201B8E0: ; 0x0201B8E0 - push {r4, lr} - add r4, r0, #0x0 - ldrh r1, [r4, #0x0] - ldr r0, _0201B8F4 ; =0x0000FFFE - cmp r1, r0 - beq _0201B8F0 - bl ErrorHandling -_0201B8F0: - ldrh r0, [r4, #0x2] - pop {r4, pc} - .balign 4 -_0201B8F4: .word 0x0000FFFE - - thumb_func_start FUN_0201B8F8 -FUN_0201B8F8: ; 0x0201B8F8 - push {r3, lr} - bl FUN_0201B8E0 - mov r1, #0xff - lsl r1, r1, #0x8 - and r1, r0 - mov r0, #0x1 - lsl r0, r0, #0x8 - cmp r1, r0 - bne _0201B910 - mov r0, #0x1 - pop {r3, pc} -_0201B910: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0201B914 -FUN_0201B914: ; 0x0201B914 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldrh r1, [r5, #0x0] - ldr r0, _0201B938 ; =0x0000FFFE - cmp r1, r0 - beq _0201B926 - bl ErrorHandling -_0201B926: - ldrh r0, [r5, #0x4] - cmp r4, r0 - blo _0201B930 - bl ErrorHandling -_0201B930: - lsl r0, r4, #0x1 - add r0, r5, r0 - ldrh r0, [r0, #0x6] - pop {r3-r5, pc} - .balign 4 -_0201B938: .word 0x0000FFFE - - thumb_func_start FUN_0201B93C -FUN_0201B93C: ; 0x0201B93C - mov r1, #0x5a - lsl r1, r1, #0x2 - cmp r0, r1 - blo _0201B948 - mov r0, #0x0 - bx lr -_0201B948: - lsl r1, r0, #0x2 - ldr r0, _0201B950 ; =0x020EDF50 - ldr r0, [r0, r1] - bx lr - .balign 4 -_0201B950: .word 0x020EDF50 - - thumb_func_start FUN_0201B954 -FUN_0201B954: ; 0x0201B954 - mov r1, #0x5a - lsl r1, r1, #0x2 - cmp r0, r1 - blo _0201B960 - mov r0, #0x0 - bx lr -_0201B960: - add r0, #0x5a - lsl r1, r0, #0x2 - ldr r0, _0201B96C ; =0x020EDF50 - ldr r0, [r0, r1] - bx lr - nop -_0201B96C: .word 0x020EDF50 - - thumb_func_start FUN_0201B970 -FUN_0201B970: ; 0x0201B970 - push {r3, lr} - mov r1, #0x5a - lsl r1, r1, #0x2 - bl _s32_div_f - ldr r0, _0201B984 ; =0x020EDF50 - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - pop {r3, pc} - nop -_0201B984: .word 0x020EDF50 - - thumb_func_start FUN_0201B988 -FUN_0201B988: ; 0x0201B988 - push {r3, lr} - mov r1, #0x5a - lsl r1, r1, #0x2 - bl _s32_div_f - add r1, #0x5a - ldr r0, _0201B99C ; =0x020EDF50 - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - pop {r3, pc} - .balign 4 -_0201B99C: .word 0x020EDF50 - - thumb_func_start FUN_0201B9A0 -FUN_0201B9A0: ; 0x0201B9A0 - push {r3, lr} - mov r1, #0x5a - lsl r1, r1, #0x2 - bl _s32_div_f - ldr r0, _0201B9B4 ; =0x020EDC7E - lsl r1, r1, #0x1 - ldrh r0, [r0, r1] - pop {r3, pc} - nop -_0201B9B4: .word 0x020EDC7E - - thumb_func_start FUN_0201B9B8 -FUN_0201B9B8: ; 0x0201B9B8 - push {r3, lr} - lsl r0, r0, #0x4 - mov r1, #0x5a - lsr r0, r0, #0x10 - lsl r1, r1, #0x2 - bl _s32_div_f - ldr r0, _0201B9D0 ; =0x020EDF50 - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - pop {r3, pc} - nop -_0201B9D0: .word 0x020EDF50 - - thumb_func_start FUN_0201B9D4 -FUN_0201B9D4: ; 0x0201B9D4 - ldr r0, _0201B9DC ; =0x021C4D48 - ldr r0, [r0, #0x0] - bx lr - nop -_0201B9DC: .word 0x021C4D48 - - thumb_func_start FUN_0201B9E0 -FUN_0201B9E0: ; 0x0201B9E0 - ldr r1, _0201B9E8 ; =0x021C4D48 - str r0, [r1, #0x0] - bx lr - nop -_0201B9E8: .word 0x021C4D48 - - thumb_func_start FUN_0201B9EC -FUN_0201B9EC: ; 0x0201B9EC - ldr r1, _0201BA04 ; =0x021C4D48 - ldr r0, _0201BA08 ; =0x41C64E6D - ldr r2, [r1, #0x0] - add r3, r2, #0x0 - mul r3, r0 - ldr r0, _0201BA0C ; =0x00006073 - add r0, r3, r0 - str r0, [r1, #0x0] - lsr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - .balign 4 -_0201BA04: .word 0x021C4D48 -_0201BA08: .word 0x41C64E6D -_0201BA0C: .word 0x00006073 - - thumb_func_start FUN_0201BA10 -FUN_0201BA10: ; 0x0201BA10 - ldr r1, _0201BA18 ; =0x6C078965 - mul r1, r0 - add r0, r1, #0x1 - bx lr - .balign 4 -_0201BA18: .word 0x6C078965 - - thumb_func_start FUN_0201BA1C -FUN_0201BA1C: ; 0x0201BA1C - push {r4-r5} - ldr r1, _0201BA50 ; =0x021C4D48 - mov r4, #0x27 - str r0, [r1, #0x4] - ldr r1, _0201BA54 ; =0x02105BA8 - mov r0, #0x1 - str r0, [r1, #0x0] - ldr r1, _0201BA58 ; =0x021C4D50 - ldr r3, _0201BA5C ; =0x6C078965 - lsl r4, r4, #0x4 -_0201BA30: - sub r2, r1, #0x4 - ldr r5, [r2, #0x0] - lsr r2, r5, #0x1e - eor r2, r5 - add r5, r2, #0x0 - mul r5, r3 - add r2, r0, r5 - add r0, r0, #0x1 - stmia r1!, {r2} - cmp r0, r4 - blt _0201BA30 - ldr r1, _0201BA54 ; =0x02105BA8 - str r0, [r1, #0x0] - pop {r4-r5} - bx lr - nop -_0201BA50: .word 0x021C4D48 -_0201BA54: .word 0x02105BA8 -_0201BA58: .word 0x021C4D50 -_0201BA5C: .word 0x6C078965 - - thumb_func_start FUN_0201BA60 -FUN_0201BA60: ; 0x0201BA60 - push {r3-r7, lr} - ldr r0, _0201BB44 ; =0x02105BA8 - ldr r1, [r0, #0x0] - mov r0, #0x27 - lsl r0, r0, #0x4 - cmp r1, r0 - blt _0201BB18 - add r0, r0, #0x1 - cmp r1, r0 - bne _0201BA7A - ldr r0, _0201BB48 ; =0x00001571 - bl FUN_0201BA1C -_0201BA7A: - ldr r4, _0201BB4C ; =0x021C4D4C - ldr r1, _0201BB50 ; =0x02105BAC - ldr r5, _0201BB54 ; =0x7FFFFFFF - ldr r6, _0201BB58 ; =0x00000634 - mov r0, #0x0 -_0201BA84: - mov r2, #0x2 - ldr r3, [r4, #0x0] - lsl r2, r2, #0x1e - and r3, r2 - ldr r2, [r4, #0x4] - add r0, r0, #0x1 - and r2, r5 - orr r3, r2 - lsr r7, r3, #0x1 - lsl r3, r3, #0x1f - ldr r2, [r4, r6] - lsr r3, r3, #0x1d - ldr r3, [r1, r3] - eor r2, r7 - eor r2, r3 - stmia r4!, {r2} - cmp r0, #0xe3 - blt _0201BA84 - ldr r1, _0201BB5C ; =0x0000026F - cmp r0, r1 - bge _0201BAE4 - ldr r2, _0201BB4C ; =0x021C4D4C - lsl r1, r0, #0x2 - add r1, r2, r1 - mov r2, #0xe3 - ldr r4, _0201BB50 ; =0x02105BAC - ldr r3, _0201BB5C ; =0x0000026F - lsl r2, r2, #0x2 -_0201BABC: - mov r5, #0x2 - ldr r6, [r1, #0x0] - lsl r5, r5, #0x1e - and r5, r6 - ldr r7, [r1, #0x4] - ldr r6, _0201BB54 ; =0x7FFFFFFF - add r0, r0, #0x1 - and r6, r7 - orr r6, r5 - lsr r5, r6, #0x1 - sub r7, r1, r2 - lsl r6, r6, #0x1f - ldr r7, [r7, #0x0] - lsr r6, r6, #0x1d - ldr r6, [r4, r6] - eor r5, r7 - eor r5, r6 - stmia r1!, {r5} - cmp r0, r3 - blt _0201BABC -_0201BAE4: - ldr r2, _0201BB60 ; =0x021C56C8 - mov r0, #0x2 - ldr r1, [r2, #0x40] - lsl r0, r0, #0x1e - add r3, r1, #0x0 - ldr r1, _0201BB64 ; =0x021C4D48 - and r3, r0 - ldr r1, [r1, #0x4] - sub r0, r0, #0x1 - and r0, r1 - add r4, r3, #0x0 - orr r4, r0 - ldr r0, _0201BB68 ; =0x021C5348 - ldr r1, [r0, #0x34] - lsr r0, r4, #0x1 - add r3, r1, #0x0 - eor r3, r0 - lsl r0, r4, #0x1f - lsr r1, r0, #0x1d - ldr r0, _0201BB50 ; =0x02105BAC - ldr r0, [r0, r1] - mov r1, #0x0 - eor r0, r3 - str r0, [r2, #0x40] - ldr r0, _0201BB44 ; =0x02105BA8 - str r1, [r0, #0x0] -_0201BB18: - ldr r0, _0201BB44 ; =0x02105BA8 - ldr r2, [r0, #0x0] - add r1, r2, #0x1 - str r1, [r0, #0x0] - ldr r0, _0201BB4C ; =0x021C4D4C - lsl r1, r2, #0x2 - ldr r1, [r0, r1] - lsr r0, r1, #0xb - add r2, r1, #0x0 - eor r2, r0 - ldr r0, _0201BB6C ; =0x9D2C5680 - lsl r1, r2, #0x7 - and r0, r1 - eor r2, r0 - ldr r0, _0201BB70 ; =0xEFC60000 - lsl r1, r2, #0xf - and r0, r1 - add r1, r2, #0x0 - eor r1, r0 - lsr r0, r1, #0x12 - eor r0, r1 - pop {r3-r7, pc} - .balign 4 -_0201BB44: .word 0x02105BA8 -_0201BB48: .word 0x00001571 -_0201BB4C: .word 0x021C4D4C -_0201BB50: .word 0x02105BAC -_0201BB54: .word 0x7FFFFFFF -_0201BB58: .word 0x00000634 -_0201BB5C: .word 0x0000026F -_0201BB60: .word 0x021C56C8 -_0201BB64: .word 0x021C4D48 -_0201BB68: .word 0x021C5348 -_0201BB6C: .word 0x9D2C5680 -_0201BB70: .word 0xEFC60000 - - thumb_func_start FUN_0201BB74 -FUN_0201BB74: ; 0x0201BB74 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, sp, #0x0 - ldrb r0, [r0, #0x10] - add r4, r2, #0x0 - add r6, r3, #0x0 - cmp r0, #0x1 - bne _0201BB8E - ldr r0, _0201BBC8 ; =0x0000FFFF - mul r0, r1 - lsl r0, r0, #0x8 - lsr r1, r0, #0x10 - b _0201BBA2 -_0201BB8E: - cmp r0, #0x2 - bne _0201BBA2 - ldr r0, _0201BBC8 ; =0x0000FFFF - mul r0, r1 - mov r1, #0x5a - lsl r1, r1, #0x2 - bl _u32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 -_0201BBA2: - asr r0, r1, #0x4 - lsl r3, r0, #0x1 - lsl r1, r3, #0x1 - ldr r2, _0201BBCC ; =0x020FFA38 - add r3, r3, #0x1 - lsl r3, r3, #0x1 - ldrsh r1, [r2, r1] - ldrsh r2, [r2, r3] - add r0, r5, #0x0 - bl MTX_Rot22_ - add r0, r5, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl MTX_ScaleApply22 - pop {r4-r6, pc} - nop -_0201BBC8: .word 0x0000FFFF -_0201BBCC: .word 0x020FFA38 - - thumb_func_start FUN_0201BBD0 -FUN_0201BBD0: ; 0x0201BBD0 - push {r3-r7, lr} - sub sp, #0x38 - lsl r5, r0, #0xc - lsl r4, r1, #0xc - mov r1, #0x0 - lsl r0, r2, #0xc - lsl r6, r3, #0xc - str r1, [sp, #0x34] - str r0, [sp, #0x0] - str r0, [sp, #0x20] - str r1, [sp, #0x28] - str r1, [sp, #0x8] - str r1, [sp, #0xc] - asr r1, r5, #0x1f - add r0, r5, #0x0 - asr r3, r6, #0x1f - add r2, r6, #0x0 - str r5, [sp, #0x2c] - str r4, [sp, #0x30] - str r6, [sp, #0x24] - bl _ll_mul - str r0, [sp, #0x4] - add r2, r4, #0x0 - ldr r0, [sp, #0x20] - add r7, r1, #0x0 - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #0x2 - ldr r3, [sp, #0x4] - lsl r2, r2, #0xa - add r3, r3, r2 - ldr r2, _0201BC80 ; =0x00000000 - str r4, [sp, #0x2c] - adc r7, r2 - lsl r2, r7, #0x14 - lsr r3, r3, #0xc - orr r3, r2 - mov r2, #0x2 - lsl r2, r2, #0xa - add r0, r0, r2 - ldr r2, _0201BC80 ; =0x00000000 - str r5, [sp, #0x30] - adc r1, r2 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - sub r2, r3, r0 - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - str r2, [sp, #0x10] - add r0, r1, r0 - add r7, r2, r0 - mov r0, #0x0 - str r0, [sp, #0x34] - add r0, sp, #0x2c - add r1, sp, #0x14 - bl VEC_Normalize - mov r1, #0x0 - ldr r0, [sp, #0x0] - str r1, [sp, #0x34] - str r0, [sp, #0x20] - str r1, [sp, #0x28] - add r0, sp, #0x20 - add r1, sp, #0x2c - add r2, sp, #0x8 - str r5, [sp, #0x2c] - str r4, [sp, #0x30] - str r6, [sp, #0x24] - bl VEC_Subtract - add r0, sp, #0x14 - add r1, sp, #0x8 - bl VEC_DotProduct - asr r0, r0, #0xc - bpl _0201BC72 - neg r0, r0 -_0201BC72: - cmp r7, #0x0 - bgt _0201BC7C - mov r1, #0x0 - mvn r1, r1 - mul r0, r1 -_0201BC7C: - add sp, #0x38 - pop {r3-r7, pc} - .balign 4 -_0201BC80: .word 0x00000000 - - thumb_func_start FUN_0201BC84 -FUN_0201BC84: ; 0x0201BC84 - push {r3-r5, lr} - lsl r0, r0, #0xd - add r4, r1, #0x0 - ldr r2, _0201BCB4 ; =0x0000323D - asr r1, r0, #0x1f - mov r3, #0x0 - bl _ll_mul - add r5, r0, #0x0 - ldr r0, _0201BCB8 ; =0x0000FFFF - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - mul r0, r4 - add r2, r5, r2 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r2, r2, #0xc - orr r2, r1 - asr r1, r2, #0xc - bl _s32_div_f - pop {r3-r5, pc} - nop -_0201BCB4: .word 0x0000323D -_0201BCB8: .word 0x0000FFFF - - thumb_func_start FUN_0201BCBC -FUN_0201BCBC: ; 0x0201BCBC - ldr r1, _0201BCC4 ; =0x02105BB4 - str r0, [r1, #0x0] - bx lr - nop -_0201BCC4: .word 0x02105BB4 - - thumb_func_start FUN_0201BCC8 -FUN_0201BCC8: ; 0x0201BCC8 - push {r4-r6, lr} - ldr r4, _0201BCF8 ; =0x021C5714 - mov r5, #0x0 -_0201BCCE: - ldr r3, [r4, #0x0] - cmp r3, #0x0 - bne _0201BCE8 - ldr r6, _0201BCF8 ; =0x021C5714 - lsl r4, r5, #0x2 - bl FUN_0200CA7C - str r0, [r6, r4] - ldr r0, [r6, r4] - cmp r0, #0x0 - bne _0201BCF0 - mov r5, #0x8 - b _0201BCF0 -_0201BCE8: - add r5, r5, #0x1 - add r4, r4, #0x4 - cmp r5, #0x8 - blt _0201BCCE -_0201BCF0: - lsl r0, r5, #0x18 - lsr r0, r0, #0x18 - pop {r4-r6, pc} - nop -_0201BCF8: .word 0x021C5714 - - thumb_func_start FUN_0201BCFC -FUN_0201BCFC: ; 0x0201BCFC - push {r4-r6, lr} - add r5, r0, #0x0 - cmp r5, #0x8 - blo _0201BD08 - bl ErrorHandling -_0201BD08: - ldr r6, _0201BD40 ; =0x021C5714 - lsl r4, r5, #0x2 - ldr r0, [r6, r4] - cmp r0, #0x0 - bne _0201BD16 - bl ErrorHandling -_0201BD16: - cmp r5, #0x8 - bhs _0201BD3C - ldr r0, [r6, r4] - cmp r0, #0x0 - beq _0201BD3C - bl FUN_0201B6C8 - add r5, r0, #0x0 - beq _0201BD32 - bl FUN_0201C238 - add r0, r5, #0x0 - bl FUN_02016A18 -_0201BD32: - ldr r0, [r6, r4] - bl FUN_0200CAB4 - mov r0, #0x0 - str r0, [r6, r4] -_0201BD3C: - pop {r4-r6, pc} - nop -_0201BD40: .word 0x021C5714 - - thumb_func_start FUN_0201BD44 -FUN_0201BD44: ; 0x0201BD44 - lsl r1, r0, #0x2 - ldr r0, _0201BD58 ; =0x021C5714 - ldr r0, [r0, r1] - cmp r0, #0x0 - beq _0201BD52 - mov r0, #0x1 - bx lr -_0201BD52: - mov r0, #0x0 - bx lr - nop -_0201BD58: .word 0x021C5714 - - thumb_func_start FUN_0201BD5C -FUN_0201BD5C: ; 0x0201BD5C - mov r1, #0x0 - ldr r2, _0201BD6C ; =0x021C5714 - add r0, r1, #0x0 -_0201BD62: - add r1, r1, #0x1 - stmia r2!, {r0} - cmp r1, #0x8 - blt _0201BD62 - bx lr - .balign 4 -_0201BD6C: .word 0x021C5714 - - thumb_func_start FUN_0201BD70 -FUN_0201BD70: ; 0x0201BD70 - push {r3, lr} - bl FUN_0201BD44 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - - thumb_func_start FUN_0201BD7C -FUN_0201BD7C: ; 0x0201BD7C - ldr r3, _0201BD80 ; =FUN_0201BCFC - bx r3 - .balign 4 -_0201BD80: .word FUN_0201BCFC - - thumb_func_start FUN_0201BD84 -FUN_0201BD84: ; 0x0201BD84 - push {r3, lr} - sub sp, #0x18 - str r0, [sp, #0x4] - lsl r0, r3, #0x18 - lsr r3, r0, #0x18 - ldr r0, [sp, #0x20] - str r2, [sp, #0x0] - add r2, sp, #0x0 - strb r1, [r2, #0x9] - lsl r0, r0, #0x18 - strb r3, [r2, #0xa] - lsr r0, r0, #0x18 - strb r0, [r2, #0xb] - strb r3, [r2, #0xc] - strb r0, [r2, #0xd] - ldr r0, _0201BDDC ; =0x02105BB4 - lsl r1, r1, #0x3 - ldr r0, [r0, #0x0] - add r1, r0, r1 - ldrb r0, [r1, #0x2] - strb r0, [r2, #0xe] - ldrb r0, [r1, #0x3] - strb r0, [r2, #0xf] - ldrb r0, [r1, #0x4] - strb r0, [r2, #0x10] - ldrb r0, [r1, #0x5] - strb r0, [r2, #0x11] - ldrb r0, [r1, #0x6] - strb r0, [r2, #0x12] - ldrb r0, [r1, #0x7] - ldr r1, [sp, #0x24] - strb r0, [r2, #0x13] - mov r0, #0x0 - strh r0, [r2, #0x14] - strb r0, [r2, #0x16] - mov r0, #0xff - strb r0, [r2, #0x17] - ldr r2, [sp, #0x28] - add r0, sp, #0x0 - bl FUN_0201BE98 - add sp, #0x18 - pop {r3, pc} - nop -_0201BDDC: .word 0x02105BB4 - - thumb_func_start FUN_0201BDE0 -FUN_0201BDE0: ; 0x0201BDE0 - push {r3, lr} - sub sp, #0x18 - str r0, [sp, #0x4] - lsl r0, r3, #0x18 - lsr r3, r0, #0x18 - ldr r0, [sp, #0x20] - str r2, [sp, #0x0] - add r2, sp, #0x0 - strb r1, [r2, #0x9] - lsl r0, r0, #0x18 - strb r3, [r2, #0xa] - lsr r0, r0, #0x18 - strb r0, [r2, #0xb] - strb r3, [r2, #0xc] - strb r0, [r2, #0xd] - ldr r0, _0201BE38 ; =0x02105BB4 - lsl r1, r1, #0x3 - ldr r0, [r0, #0x0] - add r1, r0, r1 - ldrb r0, [r1, #0x2] - strb r0, [r2, #0xe] - ldrb r0, [r1, #0x3] - strb r0, [r2, #0xf] - ldrb r0, [r1, #0x4] - ldr r1, [sp, #0x28] - strb r0, [r2, #0x10] - lsr r0, r1, #0x10 - strb r0, [r2, #0x11] - lsr r0, r1, #0x8 - strb r0, [r2, #0x13] - strb r1, [r2, #0x12] - mov r0, #0x0 - strh r0, [r2, #0x14] - strb r0, [r2, #0x16] - mov r0, #0xff - strb r0, [r2, #0x17] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x2c] - add r0, sp, #0x0 - bl FUN_0201BE98 - add sp, #0x18 - pop {r3, pc} - nop -_0201BE38: .word 0x02105BB4 - - thumb_func_start FUN_0201BE3C -FUN_0201BE3C: ; 0x0201BE3C - push {r3, lr} - sub sp, #0x18 - str r0, [sp, #0x4] - lsl r0, r3, #0x18 - lsr r3, r0, #0x18 - ldr r0, [sp, #0x20] - str r2, [sp, #0x0] - add r2, sp, #0x0 - strb r1, [r2, #0x9] - lsl r0, r0, #0x18 - strb r3, [r2, #0xa] - lsr r0, r0, #0x18 - strb r0, [r2, #0xb] - strb r3, [r2, #0xc] - strb r0, [r2, #0xd] - ldr r0, [sp, #0x2c] - strb r0, [r2, #0xe] - ldr r0, [sp, #0x30] - strb r0, [r2, #0xf] - ldr r0, _0201BE94 ; =0x02105BB4 - ldr r3, [r0, #0x0] - lsl r0, r1, #0x3 - add r0, r3, r0 - ldrb r0, [r0, #0x4] - ldr r1, [sp, #0x28] - strb r0, [r2, #0x10] - lsr r0, r1, #0x10 - strb r0, [r2, #0x11] - lsr r0, r1, #0x8 - strb r0, [r2, #0x13] - strb r1, [r2, #0x12] - mov r0, #0x0 - strh r0, [r2, #0x14] - strb r0, [r2, #0x16] - mov r0, #0xff - strb r0, [r2, #0x17] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x34] - add r0, sp, #0x0 - bl FUN_0201BE98 - add sp, #0x18 - pop {r3, pc} - nop -_0201BE94: .word 0x02105BB4 - - thumb_func_start FUN_0201BE98 -FUN_0201BE98: ; 0x0201BE98 - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _0201BFD0 ; =0x02105BB4 - add r6, r1, #0x0 - ldr r0, [r0, #0x0] - add r5, r2, #0x0 - cmp r0, #0x0 - bne _0201BEAC - mov r0, #0xff - pop {r3-r7, pc} -_0201BEAC: - mov r0, #0x0 - mov r1, #0x30 - bl FUN_02016998 - add r4, r0, #0x0 - mov r1, #0x1 - add r0, #0x23 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - mov r3, #0x0 - add r0, #0x24 - strb r3, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x25 - ldrb r2, [r0, #0x0] - mov r0, #0x7f - bic r2, r0 - lsl r0, r6, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x7f - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x25 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x26 - strb r3, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x27 - strb r3, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x29 - strb r3, [r0, #0x0] - add r1, r3, #0x0 -_0201BEF4: - add r0, r4, r3 - add r3, r3, #0x1 - strb r1, [r0, #0x1c] - cmp r3, #0x7 - blt _0201BEF4 - add r3, r7, #0x0 - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r4, #0x0] - bl FUN_02021F2C - str r0, [r4, #0x0] - ldr r0, _0201BFD4 ; =0x021C570C - str r5, [r4, #0x18] - mov r1, #0x0 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0201C1A8 - cmp r6, #0xff - beq _0201BF74 - cmp r6, #0x0 - beq _0201BF74 - add r0, r4, #0x0 - add r0, #0x25 - ldrb r2, [r0, #0x0] - mov r1, #0x7f - add r0, r2, #0x0 - bic r0, r1 - lsl r1, r2, #0x19 - lsr r1, r1, #0x19 - add r1, #0xff - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - mov r1, #0x7f - and r1, r2 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x25 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x25 - ldrb r1, [r0, #0x0] - mov r0, #0x80 - mov r2, #0x1 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x25 - strb r1, [r0, #0x0] - ldr r0, _0201BFD8 ; =FUN_0201BFDC - add r1, r4, #0x0 - bl FUN_0201BCC8 - add r1, r4, #0x0 - add r1, #0x28 - strb r0, [r1, #0x0] - add r4, #0x28 - ldrb r0, [r4, #0x0] - pop {r3-r7, pc} -_0201BF74: - add r0, r4, #0x0 - add r0, #0x25 - ldrb r1, [r0, #0x0] - mov r0, #0x7f - mov r5, #0x0 - bic r1, r0 - add r0, r4, #0x0 - add r0, #0x25 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x25 - ldrb r1, [r0, #0x0] - mov r0, #0x80 - bic r1, r0 - add r0, r4, #0x0 - add r0, #0x25 - strb r1, [r0, #0x0] - ldrb r0, [r7, #0x11] - ldrb r1, [r7, #0x12] - ldrb r2, [r7, #0x13] - bl FUN_0201C05C - mov r7, #0x1 - lsl r7, r7, #0xa -_0201BFA4: - add r0, r4, #0x0 - bl FUN_0201C048 - cmp r0, #0x1 - beq _0201BFB4 - add r5, r5, #0x1 - cmp r5, r7 - blo _0201BFA4 -_0201BFB4: - cmp r6, #0xff - beq _0201BFBE - ldr r0, [r4, #0x4] - bl FUN_020191D0 -_0201BFBE: - add r0, r4, #0x0 - bl FUN_0201C238 - add r0, r4, #0x0 - bl FUN_02016A18 - mov r0, #0x8 - pop {r3-r7, pc} - nop -_0201BFD0: .word 0x02105BB4 -_0201BFD4: .word 0x021C570C -_0201BFD8: .word FUN_0201BFDC - - thumb_func_start FUN_0201BFDC -FUN_0201BFDC: ; 0x0201BFDC - push {r4, lr} - ldr r0, _0201C044 ; =0x021C570C - add r4, r1, #0x0 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201C042 - add r0, r4, #0x0 - add r0, #0x29 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201C036 - mov r0, #0x0 - strh r0, [r4, #0x2a] - ldrb r0, [r4, #0x11] - ldrb r1, [r4, #0x12] - ldrb r2, [r4, #0x13] - bl FUN_0201C05C - add r0, r4, #0x0 - bl FUN_0201C048 - cmp r0, #0x0 - beq _0201C014 - cmp r0, #0x1 - beq _0201C02C - cmp r0, #0x3 - beq _0201C01A - pop {r4, pc} -_0201C014: - ldr r0, [r4, #0x4] - bl FUN_020191D0 -_0201C01A: - ldr r2, [r4, #0x18] - cmp r2, #0x0 - beq _0201C042 - ldrh r1, [r4, #0x2a] - add r0, r4, #0x0 - blx r2 - add r4, #0x29 - strb r0, [r4, #0x0] - pop {r4, pc} -_0201C02C: - add r4, #0x28 - ldrb r0, [r4, #0x0] - bl FUN_0201BCFC - pop {r4, pc} -_0201C036: - ldrh r1, [r4, #0x2a] - ldr r2, [r4, #0x18] - add r0, r4, #0x0 - blx r2 - add r4, #0x29 - strb r0, [r4, #0x0] -_0201C042: - pop {r4, pc} - .balign 4 -_0201C044: .word 0x021C570C - - thumb_func_start FUN_0201C048 -FUN_0201C048: ; 0x0201C048 - push {r4, lr} - add r4, r0, #0x0 -_0201C04C: - ldrb r0, [r4, #0x9] - add r1, r4, #0x0 - bl FUN_02002DB0 - cmp r0, #0x2 - beq _0201C04C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201C05C -FUN_0201C05C: ; 0x0201C05C - push {r3-r7, lr} - sub sp, #0x30 - ldr r3, _0201C0F8 ; =0x021C570C - mov r5, #0x0 - str r5, [sp, #0x20] - str r0, [sp, #0x24] - str r2, [sp, #0x28] - str r1, [sp, #0x2c] - strh r1, [r3, #0x6] - strh r0, [r3, #0x2] - add r0, sp, #0x20 - strh r2, [r3, #0x4] - str r5, [sp, #0x14] - str r0, [sp, #0x8] - mov r12, r0 - mov lr, r0 - str r0, [sp, #0x18] -_0201C07E: - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x18] - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r0, [r0, #0x0] - str r0, [sp, #0x1c] -_0201C08C: - mov r0, #0x0 - str r0, [sp, #0xc] - mov r0, lr - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x0] - lsl r7, r0, #0x4 -_0201C09A: - ldr r0, [sp, #0x0] - mov r3, #0x0 - ldr r0, [r0, #0x0] - mov r4, r12 - lsl r6, r0, #0x8 -_0201C0A4: - ldr r0, [r4, #0x0] - add r1, r7, #0x0 - lsl r0, r0, #0xc - orr r0, r6 - orr r1, r0 - ldr r0, [sp, #0x1c] - add r3, r3, #0x1 - add r2, r0, #0x0 - orr r2, r1 - lsl r1, r5, #0x1 - ldr r0, _0201C0FC ; =0x021C5734 - add r5, r5, #0x1 - add r4, r4, #0x4 - strh r2, [r0, r1] - cmp r3, #0x4 - blt _0201C0A4 - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, #0x4 - blt _0201C09A - ldr r0, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x10] - add r0, r0, #0x1 - str r0, [sp, #0x10] - cmp r0, #0x4 - blt _0201C08C - ldr r0, [sp, #0x8] - add r0, r0, #0x4 - str r0, [sp, #0x8] - ldr r0, [sp, #0x14] - add r0, r0, #0x1 - str r0, [sp, #0x14] - cmp r0, #0x4 - blt _0201C07E - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_0201C0F8: .word 0x021C570C -_0201C0FC: .word 0x021C5734 - - thumb_func_start FUN_0201C100 -FUN_0201C100: ; 0x0201C100 - ldrh r2, [r0, #0x0] - lsr r2, r2, #0x8 - lsl r3, r2, #0x1 - ldr r2, _0201C1A4 ; =0x021C5734 - ldrh r3, [r2, r3] - strh r3, [r1, #0x0] - ldrh r3, [r0, #0x0] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0x2] - ldrh r3, [r0, #0x2] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x4] - ldrh r3, [r0, #0x2] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0x6] - ldrh r3, [r0, #0x4] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x8] - ldrh r3, [r0, #0x4] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0xa] - ldrh r3, [r0, #0x6] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0xc] - ldrh r3, [r0, #0x6] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0xe] - ldrh r3, [r0, #0x8] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x10] - ldrh r3, [r0, #0x8] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0x12] - ldrh r3, [r0, #0xa] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x14] - ldrh r3, [r0, #0xa] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0x16] - ldrh r3, [r0, #0xc] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x18] - ldrh r3, [r0, #0xc] - lsl r3, r3, #0x18 - lsr r3, r3, #0x17 - ldrh r3, [r2, r3] - strh r3, [r1, #0x1a] - ldrh r3, [r0, #0xe] - lsr r3, r3, #0x8 - lsl r3, r3, #0x1 - ldrh r3, [r2, r3] - strh r3, [r1, #0x1c] - ldrh r0, [r0, #0xe] - lsl r0, r0, #0x18 - lsr r0, r0, #0x17 - ldrh r0, [r2, r0] - strh r0, [r1, #0x1e] - bx lr - .balign 4 -_0201C1A4: .word 0x021C5734 - - thumb_func_start FUN_0201C1A8 -FUN_0201C1A8: ; 0x0201C1A8 - mov r1, #0x0 - str r1, [r0, #0x2c] - bx lr - .balign 4 - - thumb_func_start FUN_0201C1B0 -FUN_0201C1B0: ; 0x0201C1B0 - push {r3-r5, lr} - sub sp, #0x8 - mov r1, #0x6 - mov r0, #0x0 - lsl r1, r1, #0x8 - bl FUN_02016998 - mov r2, #0x0 - add r5, r0, #0x0 - str r2, [sp, #0x0] - mov r0, #0xe - mov r1, #0x5 - add r3, sp, #0x4 - bl FUN_02006BB0 - add r4, r0, #0x0 - ldr r0, [sp, #0x4] - mov r2, #0x6 - ldr r0, [r0, #0x14] - add r1, r5, #0x0 - lsl r2, r2, #0x8 - bl MIi_CpuCopy32 - add r0, r4, #0x0 - bl FUN_02016A18 - add r0, r5, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201C1EC -FUN_0201C1EC: ; 0x0201C1EC - push {r3-r7, lr} - sub sp, #0x18 - add r4, r0, #0x0 - ldr r0, [r4, #0x2c] - add r7, r3, #0x0 - ldr r5, [r4, #0x4] - cmp r0, #0x0 - bne _0201C202 - bl FUN_0201C1B0 - str r0, [r4, #0x2c] -_0201C202: - mov r0, #0x6 - lsl r0, r0, #0x6 - add r6, r7, #0x0 - mul r6, r0 - add r0, r5, #0x0 - ldr r4, [r4, #0x2c] - bl FUN_0201AB0C - sub r0, r0, #0x3 - lsl r0, r0, #0x13 - mov r1, #0x18 - lsr r2, r0, #0x10 - str r1, [sp, #0x0] - mov r0, #0x20 - str r0, [sp, #0x4] - str r2, [sp, #0x8] - mov r2, #0x0 - str r2, [sp, #0xc] - str r1, [sp, #0x10] - str r0, [sp, #0x14] - add r0, r5, #0x0 - add r1, r4, r6 - add r3, r2, #0x0 - bl FUN_02019658 - add sp, #0x18 - pop {r3-r7, pc} - - thumb_func_start FUN_0201C238 -FUN_0201C238: ; 0x0201C238 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x2c] - cmp r0, #0x0 - beq _0201C24A - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x2c] -_0201C24A: - pop {r4, pc} - - thumb_func_start FUN_0201C24C -FUN_0201C24C: ; 0x0201C24C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0201C298 ; =0x021C5934 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201C25E - bl ErrorHandling -_0201C25E: - add r0, r4, #0x0 - mov r1, #0xc - bl FUN_02016998 - ldr r1, _0201C298 ; =0x021C5934 - cmp r0, #0x0 - str r0, [r1, #0x0] - bne _0201C272 - bl ErrorHandling -_0201C272: - add r0, r4, #0x0 - lsl r1, r5, #0x4 - bl FUN_02016998 - ldr r1, _0201C298 ; =0x021C5934 - ldr r2, [r1, #0x0] - str r0, [r2, #0x8] - ldr r0, [r1, #0x0] - mov r2, #0x0 - str r5, [r0, #0x0] - ldr r0, [r1, #0x0] - str r2, [r0, #0x4] - ldr r1, [r1, #0x0] - ldr r0, [r1, #0x8] - ldr r1, [r1, #0x0] - bl FUN_020AEF1C - pop {r3-r5, pc} - nop -_0201C298: .word 0x021C5934 - - thumb_func_start FUN_0201C29C -FUN_0201C29C: ; 0x0201C29C - push {r3, lr} - ldr r0, _0201C2C4 ; =0x021C5934 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201C2AA - bl ErrorHandling -_0201C2AA: - ldr r0, _0201C2C4 ; =0x021C5934 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x8] - bl FUN_02016A18 - ldr r0, _0201C2C4 ; =0x021C5934 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201C2C4 ; =0x021C5934 - mov r1, #0x0 - str r1, [r0, #0x0] - pop {r3, pc} - .balign 4 -_0201C2C4: .word 0x021C5934 - - thumb_func_start FUN_0201C2C8 -FUN_0201C2C8: ; 0x0201C2C8 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, _0201C308 ; =0x021C5934 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r0, #0x0 - bne _0201C2DE - bl ErrorHandling -_0201C2DE: - ldr r1, _0201C308 ; =0x021C5934 - ldr r0, [r1, #0x0] - ldr r2, [r0, #0x4] - add r2, r2, #0x1 - str r2, [r0, #0x4] - ldr r0, [r1, #0x0] - ldr r1, [r0, #0x4] - ldr r0, [r0, #0x0] - cmp r1, r0 - blo _0201C2FA - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} -_0201C2FA: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl FUN_020AEE40 - pop {r3-r7, pc} - .balign 4 -_0201C308: .word 0x021C5934 - - thumb_func_start FUN_0201C30C -FUN_0201C30C: ; 0x0201C30C - push {r3, lr} - ldr r0, _0201C324 ; =0x021C5934 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201C322 - bl FUN_020AEEB8 - ldr r0, _0201C324 ; =0x021C5934 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x4] -_0201C322: - pop {r3, pc} - .balign 4 -_0201C324: .word 0x021C5934 - - thumb_func_start FUN_0201C328 -FUN_0201C328: ; 0x0201C328 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x30 - mul r1, r4 - bl FUN_02016998 - ldr r2, _0201C344 ; =FUN_0201C358 - add r1, r4, #0x0 - add r5, r0, #0x0 - bl FUN_020B4568 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 -_0201C344: .word FUN_0201C358 - - thumb_func_start FUN_0201C348 -FUN_0201C348: ; 0x0201C348 - ldr r3, _0201C34C ; =FUN_020B442C - bx r3 - .balign 4 -_0201C34C: .word FUN_020B442C - - thumb_func_start FUN_0201C350 -FUN_0201C350: ; 0x0201C350 - ldr r3, _0201C354 ; =FUN_02016A18 - bx r3 - .balign 4 -_0201C354: .word FUN_02016A18 - - thumb_func_start FUN_0201C358 -FUN_0201C358: ; 0x0201C358 - push {r3, lr} - bl FUN_0201C2C8 - pop {r3, pc} - - thumb_func_start FUN_0201C360 -FUN_0201C360: ; 0x0201C360 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - mov r1, #0x8 - bl FUN_02016998 - mov r1, #0x14 - add r4, r0, #0x0 - add r0, r6, #0x0 - mul r1, r5 - bl FUN_02016998 - str r0, [r4, #0x0] - mov r6, #0x0 - str r5, [r4, #0x4] - cmp r5, #0x0 - ble _0201C398 - add r5, r6, #0x0 -_0201C386: - ldr r0, [r4, #0x0] - add r0, r0, r5 - bl FUN_0201C444 - ldr r0, [r4, #0x4] - add r6, r6, #0x1 - add r5, #0x14 - cmp r6, r0 - blt _0201C386 -_0201C398: - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0201C39C -FUN_0201C39C: ; 0x0201C39C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0201C414 - ldr r0, [r4, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201C3B4 -FUN_0201C3B4: ; 0x0201C3B4 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x4] - mov r4, #0x0 - add r7, r2, #0x0 - mov r12, r1 - add r6, r3, #0x0 - add r2, r4, #0x0 - cmp r0, #0x0 - ble _0201C3E2 - ldr r5, [r5, #0x0] - add r3, r5, #0x0 -_0201C3CC: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - bne _0201C3DA - mov r0, #0x14 - mul r0, r2 - add r4, r5, r0 - b _0201C3E2 -_0201C3DA: - add r2, r2, #0x1 - add r3, #0x14 - cmp r2, r0 - blt _0201C3CC -_0201C3E2: - cmp r4, #0x0 - bne _0201C3EA - mov r0, #0x0 - pop {r3-r7, pc} -_0201C3EA: - mov r0, r12 - str r0, [r4, #0x0] - str r7, [r4, #0x4] - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0x18] - str r6, [r4, #0x8] - str r0, [r4, #0xc] - mov r0, #0xff - strb r0, [r4, #0x10] - lsl r1, r1, #0x4 - strb r0, [r4, #0x11] - add r0, r4, #0x0 - lsr r1, r1, #0x10 - bl FUN_0201C454 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0201C40C -FUN_0201C40C: ; 0x0201C40C - ldr r3, _0201C410 ; =FUN_0201C444 - bx r3 - .balign 4 -_0201C410: .word FUN_0201C444 - - thumb_func_start FUN_0201C414 -FUN_0201C414: ; 0x0201C414 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _0201C434 - add r4, r6, #0x0 -_0201C422: - ldr r0, [r5, #0x0] - add r0, r0, r4 - bl FUN_0201C444 - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, #0x14 - cmp r6, r0 - blt _0201C422 -_0201C434: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201C438 -FUN_0201C438: ; 0x0201C438 - ldr r3, _0201C440 ; =FUN_0201C454 - lsl r1, r1, #0x4 - lsr r1, r1, #0x10 - bx r3 - .balign 4 -_0201C440: .word FUN_0201C454 - - thumb_func_start FUN_0201C444 -FUN_0201C444: ; 0x0201C444 - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - str r1, [r0, #0x8] - str r1, [r0, #0xc] - strb r1, [r0, #0x10] - strb r1, [r0, #0x11] - bx lr - - thumb_func_start FUN_0201C454 -FUN_0201C454: ; 0x0201C454 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_02022244 - add r2, sp, #0x0 - strb r0, [r2, #0x0] - lsr r0, r0, #0x8 - strb r0, [r2, #0x1] - ldrb r0, [r2, #0x0] - add r1, sp, #0x0 - add r1, #0x2 - strb r0, [r2, #0x2] - ldrb r0, [r2, #0x1] - strb r0, [r2, #0x3] - ldrb r3, [r4, #0x10] - ldrb r0, [r2, #0x2] - cmp r3, r0 - beq _0201C482 - add r0, r4, #0x0 - bl FUN_0201C49C -_0201C482: - add r0, sp, #0x0 - ldrb r1, [r4, #0x11] - ldrb r0, [r0, #0x3] - cmp r1, r0 - beq _0201C496 - add r1, sp, #0x0 - add r0, r4, #0x0 - add r1, #0x2 - bl FUN_0201C4C8 -_0201C496: - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201C49C -FUN_0201C49C: ; 0x0201C49C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0201C4F4 - ldr r3, [r5, #0x8] - add r2, r0, #0x0 - lsl r1, r3, #0x10 - ldr r6, _0201C4C4 ; =0x7FFF0000 - mov r0, #0x0 - and r3, r6 - lsr r3, r3, #0x10 - lsr r1, r1, #0xd - lsl r3, r3, #0x4 - bl FUN_0201C2C8 - ldrb r0, [r4, #0x0] - strb r0, [r5, #0x10] - pop {r4-r6, pc} - nop -_0201C4C4: .word 0x7FFF0000 - - thumb_func_start FUN_0201C4C8 -FUN_0201C4C8: ; 0x0201C4C8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0201C500 - ldr r3, [r5, #0xc] - add r2, r0, #0x0 - lsl r1, r3, #0x10 - ldr r6, _0201C4F0 ; =0xFFFF0000 - mov r0, #0x1 - and r3, r6 - lsr r3, r3, #0x10 - lsr r1, r1, #0xd - lsl r3, r3, #0x3 - bl FUN_0201C2C8 - ldrb r0, [r4, #0x1] - strb r0, [r5, #0x11] - pop {r4-r6, pc} - nop -_0201C4F0: .word 0xFFFF0000 - - thumb_func_start FUN_0201C4F4 -FUN_0201C4F4: ; 0x0201C4F4 - ldr r3, _0201C4FC ; =FUN_0201C50C - ldr r0, [r0, #0x4] - ldrb r1, [r1, #0x0] - bx r3 - .balign 4 -_0201C4FC: .word FUN_0201C50C - - thumb_func_start FUN_0201C500 -FUN_0201C500: ; 0x0201C500 - ldr r3, _0201C508 ; =FUN_0201C540 - ldr r0, [r0, #0x4] - ldrb r1, [r1, #0x1] - bx r3 - .balign 4 -_0201C508: .word FUN_0201C540 - - thumb_func_start FUN_0201C50C -FUN_0201C50C: ; 0x0201C50C - push {r3-r4} - add r2, r0, #0x0 - add r2, #0x42 - ldrh r2, [r2, #0x0] - add r4, r0, #0x0 - add r4, #0x3c - add r3, r4, r2 - ldrh r2, [r4, r2] - add r3, r3, #0x4 - mul r1, r2 - add r3, r3, r1 - bne _0201C52A - mov r0, #0x0 - pop {r3-r4} - bx lr -_0201C52A: - ldr r1, [r0, #0x14] - add r2, r0, r1 - ldr r1, [r3, #0x0] - ldr r0, [r0, #0x8] - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r1, r0 - lsl r0, r0, #0x3 - add r0, r2, r0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201C540 -FUN_0201C540: ; 0x0201C540 - push {r3-r4} - ldrh r2, [r0, #0x34] - add r4, r0, r2 - ldrh r2, [r4, #0x6] - add r3, r4, r2 - ldrh r2, [r4, r2] - add r3, r3, #0x4 - mul r1, r2 - add r2, r3, r1 - bne _0201C55A - mov r0, #0x0 - pop {r3-r4} - bx lr -_0201C55A: - ldr r1, [r0, #0x38] - add r1, r0, r1 - ldrh r0, [r2, #0x0] - lsl r0, r0, #0x3 - add r0, r1, r0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201C568 -FUN_0201C568: ; 0x0201C568 - ldr r1, [r1, #0x0] - ldr r0, [r0, #0x8] - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - lsr r1, r1, #0xd - lsr r0, r0, #0xd - add r0, r1, r0 - bx lr - - thumb_func_start FUN_0201C578 -FUN_0201C578: ; 0x0201C578 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl FUN_0201C750 - add r0, r4, #0x0 - add r0, #0x3c - add r1, sp, #0x0 - bl FUN_020BC2A0 - add r1, r0, #0x0 - bne _0201C598 - add sp, #0x10 - mov r0, #0x0 - pop {r4, pc} -_0201C598: - add r0, r4, #0x0 - bl FUN_0201C568 - add sp, #0x10 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201C5A4 -FUN_0201C5A4: ; 0x0201C5A4 - push {r3, lr} - ldr r0, [r1, #0x0] - mov r1, #0x7 - lsl r1, r1, #0x1a - and r1, r0 - lsr r1, r1, #0x1a - cmp r1, #0x4 - bhi _0201C5DA - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201C5C0: ; jump table (using 16-bit offset) - .short _0201C5DA - _0201C5C0 - 2; case 0 - .short _0201C5D6 - _0201C5C0 - 2; case 1 - .short _0201C5CA - _0201C5C0 - 2; case 2 - .short _0201C5CE - _0201C5C0 - 2; case 3 - .short _0201C5D2 - _0201C5C0 - 2; case 4 -_0201C5CA: - mov r1, #0x4 - b _0201C5DE -_0201C5CE: - mov r1, #0x2 - b _0201C5DE -_0201C5D2: - mov r1, #0x1 - b _0201C5DE -_0201C5D6: - mov r1, #0x1 - b _0201C5DE -_0201C5DA: - mov r0, #0x0 - pop {r3, pc} -_0201C5DE: - mov r3, #0x7 - lsl r3, r3, #0x14 - add r2, r0, #0x0 - and r2, r3 - lsl r3, r3, #0x3 - and r0, r3 - lsr r2, r2, #0x14 - lsr r0, r0, #0x17 - lsl r2, r2, #0x4 - lsl r0, r0, #0x4 - mul r0, r2 - bl _u32_div_f - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201C5FC -FUN_0201C5FC: ; 0x0201C5FC - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl FUN_0201C750 - add r0, r4, #0x0 - add r0, #0x3c - add r1, sp, #0x0 - bl FUN_020BC2A0 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0201C5A4 - add sp, #0x10 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201C620 -FUN_0201C620: ; 0x0201C620 - ldrb r3, [r0, #0x0] - strb r3, [r1, #0x0] - ldrb r0, [r0, #0x1] - strb r0, [r2, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0201C62C -FUN_0201C62C: ; 0x0201C62C - ldrb r3, [r0, #0x2] - strb r3, [r1, #0x0] - ldrb r0, [r0, #0x3] - strb r0, [r2, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0201C638 -FUN_0201C638: ; 0x0201C638 - push {r4-r5} - ldr r5, _0201C6B0 ; =0xFFFFFFF8 - ldr r4, [sp, #0xc] - add r5, sp - ldrb r5, [r5, #0x18] - cmp r5, #0x3 - bhi _0201C678 - add r5, r5, r5 - add r5, pc - ldrh r5, [r5, #0x6] - lsl r5, r5, #0x10 - asr r5, r5, #0x10 - add pc, r5 -_0201C652: ; jump table (using 16-bit offset) - .short _0201C65A - _0201C652 - 2; case 0 - .short _0201C662 - _0201C652 - 2; case 1 - .short _0201C66A - _0201C652 - 2; case 2 - .short _0201C672 - _0201C652 - 2; case 3 -_0201C65A: - lsl r4, r4, #0x3 - add r4, r0, r4 - ldrb r4, [r4, #0x4] - b _0201C678 -_0201C662: - lsl r4, r4, #0x3 - add r4, r0, r4 - ldrb r4, [r4, #0x5] - b _0201C678 -_0201C66A: - lsl r4, r4, #0x3 - add r4, r0, r4 - ldrb r4, [r4, #0x6] - b _0201C678 -_0201C672: - lsl r4, r4, #0x3 - add r4, r0, r4 - ldrb r4, [r4, #0x7] -_0201C678: - cmp r1, #0x0 - beq _0201C682 - lsl r5, r4, #0x3 - ldrb r5, [r0, r5] - strb r5, [r1, #0x0] -_0201C682: - cmp r2, #0x0 - beq _0201C68E - lsl r1, r4, #0x3 - add r1, r0, r1 - ldrb r1, [r1, #0x1] - strb r1, [r2, #0x0] -_0201C68E: - cmp r3, #0x0 - beq _0201C69A - lsl r1, r4, #0x3 - add r1, r0, r1 - ldrb r1, [r1, #0x2] - strb r1, [r3, #0x0] -_0201C69A: - ldr r2, [sp, #0x8] - cmp r2, #0x0 - beq _0201C6A8 - lsl r1, r4, #0x3 - add r0, r0, r1 - ldrb r0, [r0, #0x3] - strb r0, [r2, #0x0] -_0201C6A8: - add r0, r4, #0x0 - pop {r4-r5} - bx lr - nop -_0201C6B0: .word 0xFFFFFFF8 - - thumb_func_start FUN_0201C6B4 -FUN_0201C6B4: ; 0x0201C6B4 - mov r2, #0x0 - ldrsb r1, [r0, r2] - cmp r1, #0x0 - beq _0201C6C4 -_0201C6BC: - add r2, r2, #0x1 - ldrsb r1, [r0, r2] - cmp r1, #0x0 - bne _0201C6BC -_0201C6C4: - add r0, r2, #0x0 - bx lr - - thumb_func_start FUN_0201C6C8 -FUN_0201C6C8: ; 0x0201C6C8 - push {r4-r5} - mov r4, #0x1 - mov r3, #0x0 - lsl r4, r4, #0x8 -_0201C6D0: - ldrsb r5, [r0, r3] - strb r5, [r1, r3] - ldrsb r5, [r0, r3] - cmp r2, r5 - beq _0201C6DE - cmp r5, #0x0 - bne _0201C6FE -_0201C6DE: - mov r4, #0x0 - strb r4, [r1, r3] - cmp r2, #0xd - bne _0201C6F6 - add r1, r3, #0x1 - ldrsb r1, [r0, r1] - cmp r1, #0xa - bne _0201C6F6 - add r1, r3, #0x2 - add r0, r0, r1 - pop {r4-r5} - bx lr -_0201C6F6: - add r1, r3, #0x1 - add r0, r0, r1 - pop {r4-r5} - bx lr -_0201C6FE: - add r3, r3, #0x1 - cmp r3, r4 - blt _0201C6D0 - mov r0, #0x0 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_0201C70C -FUN_0201C70C: ; 0x0201C70C - push {r4-r6, lr} - add r4, r0, #0x0 - bl FUN_0201C6B4 - mov r5, #0x1 - mov r6, #0x0 - sub r3, r0, #0x1 - bmi _0201C74A - sub r1, r6, #0x1 - mov r0, #0xa -_0201C720: - ldrsb r2, [r4, r3] - cmp r2, #0x30 - blt _0201C732 - cmp r2, #0x39 - bgt _0201C732 - sub r2, #0x30 - mul r2, r5 - add r6, r6, r2 - b _0201C744 -_0201C732: - cmp r3, #0x0 - bne _0201C73E - cmp r2, #0x2d - bne _0201C744 - mul r6, r1 - b _0201C744 -_0201C73E: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_0201C744: - mul r5, r0 - sub r3, r3, #0x1 - bpl _0201C720 -_0201C74A: - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201C750 -FUN_0201C750: ; 0x0201C750 - push {r3-r5, lr} - mov r2, #0x0 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 -_0201C75A: - lsl r0, r2, #0x2 - str r1, [r5, r0] - add r0, r2, #0x1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x4 - blo _0201C75A - add r0, r4, #0x0 - bl FUN_0201C6B4 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r2, _0201C788 ; =0x00000000 - beq _0201C784 -_0201C776: - ldrsb r0, [r4, r2] - strb r0, [r5, r2] - add r0, r2, #0x1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, r1 - blo _0201C776 -_0201C784: - pop {r3-r5, pc} - nop -_0201C788: .word 0x00000000 - - thumb_func_start FUN_0201C78C -FUN_0201C78C: ; 0x0201C78C - ldr r1, _0201C79C ; =0x00000121 - cmp r0, r1 - bhs _0201C796 - mov r0, #0x1 - bx lr -_0201C796: - mov r0, #0x0 - bx lr - nop -_0201C79C: .word 0x00000121 - - thumb_func_start FUN_0201C7A0 -FUN_0201C7A0: ; 0x0201C7A0 - cmp r0, r1 - blt _0201C7A6 - add r0, r1, #0x0 -_0201C7A6: - bx lr - - thumb_func_start FUN_0201C7A8 -FUN_0201C7A8: ; 0x0201C7A8 - cmp r0, r1 - bgt _0201C7AE - add r0, r1, #0x0 -_0201C7AE: - bx lr - - thumb_func_start FUN_0201C7B0 -FUN_0201C7B0: ; 0x0201C7B0 - push {r3-r7, lr} - sub sp, #0x30 - add r4, r1, #0x0 - add r1, sp, #0x24 - bl VEC_Normalize - add r0, r4, #0x0 - add r1, sp, #0x18 - bl VEC_Normalize - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x18] - str r0, [sp, #0x0] - asr r0, r0, #0x1f - str r0, [sp, #0x4] - ldr r0, [sp, #0x20] - asr r6, r4, #0x1f - str r0, [sp, #0x8] - asr r0, r0, #0x1f - str r0, [sp, #0xc] - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x8] - asr r7, r0, #0x1f - ldr r3, [sp, #0xc] - add r1, r7, #0x0 - str r0, [sp, #0x10] - bl _ll_mul - str r0, [sp, #0x14] - add r5, r1, #0x0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r2, r4, #0x0 - add r3, r6, #0x0 - bl _ll_mul - mov r2, #0x2 - ldr r3, [sp, #0x14] - lsl r2, r2, #0xa - add r3, r3, r2 - ldr r2, _0201C874 ; =0x00000000 - adc r5, r2 - lsl r2, r5, #0x14 - lsr r3, r3, #0xc - orr r3, r2 - mov r2, #0x2 - lsl r2, r2, #0xa - add r0, r0, r2 - ldr r2, _0201C874 ; =0x00000000 - adc r1, r2 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - add r5, r3, r0 - ldr r0, [sp, #0x10] - add r1, r7, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl _ll_mul - add r6, r0, #0x0 - add r4, r1, #0x0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r6, r6, r2 - adc r4, r3 - lsl r4, r4, #0x14 - lsr r6, r6, #0xc - orr r6, r4 - add r4, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r4, #0xc - orr r1, r0 - sub r0, r6, r1 - cmp r5, #0x0 - bne _0201C86A - cmp r0, #0x0 - ble _0201C862 - add sp, #0x30 - lsl r0, r2, #0x3 - pop {r3-r7, pc} -_0201C862: - mov r0, #0x3 - add sp, #0x30 - lsl r0, r0, #0xe - pop {r3-r7, pc} -_0201C86A: - add r1, r5, #0x0 - bl FX_Atan2 - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_0201C874: .word 0x00000000 - - thumb_func_start FUN_0201C878 -FUN_0201C878: ; 0x0201C878 - push {r0-r3} - push {r4-r7, lr} - sub sp, #0x54 - ldr r0, [sp, #0x7c] - ldr r2, [sp, #0x80] - str r0, [sp, #0x8] - ldr r0, [sp, #0x94] - ldr r1, [sp, #0x8c] - str r0, [sp, #0xc] - ldr r0, [sp, #0x88] - ldr r4, [sp, #0x70] - str r0, [sp, #0x10] - sub r0, r2, r1 - str r0, [sp, #0x14] - asr r0, r0, #0x1f - str r0, [sp, #0x18] - ldr r0, [sp, #0x8] - asr r0, r0, #0x1f - str r0, [sp, #0x1c] - ldr r0, [sp, #0x74] - sub r3, r0, r2 - sub r0, r1, r0 - str r3, [sp, #0x20] - asr r3, r3, #0x1f - str r3, [sp, #0x24] - ldr r3, [sp, #0xc] - str r0, [sp, #0x2c] - asr r0, r0, #0x1f - str r0, [sp, #0x30] - ldr r0, [sp, #0x10] - asr r3, r3, #0x1f - str r3, [sp, #0x28] - asr r0, r0, #0x1f - ldr r3, [sp, #0x68] - str r0, [sp, #0x34] - asr r0, r4, #0x1f - str r0, [sp, #0x38] - sub r2, r2, r3 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x1c] - asr r3, r2, #0x1f - bl _ll_mul - add r7, r0, #0x0 - add r6, r1, #0x0 - ldr r3, [sp, #0x68] - ldr r2, [sp, #0x74] - ldr r0, [sp, #0x10] - sub r2, r3, r2 - ldr r1, [sp, #0x34] - asr r3, r2, #0x1f - bl _ll_mul - add r5, r1, #0x0 - str r0, [sp, #0x3c] - ldr r1, [sp, #0x38] - ldr r2, [sp, #0x20] - ldr r3, [sp, #0x24] - add r0, r4, #0x0 - bl _ll_mul - mov r2, #0x2 - str r0, [sp, #0x4c] - add r0, r1, #0x0 - mov r1, #0x0 - lsl r2, r2, #0xa - add r3, r7, r2 - adc r6, r1 - lsl r2, r6, #0x14 - lsr r3, r3, #0xc - orr r3, r2 - mov r2, #0x2 - ldr r6, [sp, #0x3c] - lsl r2, r2, #0xa - add r2, r6, r2 - adc r5, r1 - mov r6, #0x2 - lsl r5, r5, #0x14 - lsr r2, r2, #0xc - orr r2, r5 - ldr r5, [sp, #0x4c] - lsl r6, r6, #0xa - add r5, r5, r6 - adc r0, r1 - lsl r0, r0, #0x14 - lsr r1, r5, #0xc - orr r1, r0 - add r0, r2, r1 - add r0, r3, r0 - str r0, [sp, #0x4] - ldr r3, [sp, #0x8c] - ldr r2, [sp, #0x68] - ldr r0, [sp, #0x10] - sub r2, r3, r2 - ldr r1, [sp, #0x34] - asr r3, r2, #0x1f - bl _ll_mul - add r7, r0, #0x0 - add r6, r1, #0x0 - ldr r3, [sp, #0x68] - ldr r2, [sp, #0x80] - ldr r0, [sp, #0xc] - sub r2, r3, r2 - ldr r1, [sp, #0x28] - asr r3, r2, #0x1f - bl _ll_mul - str r0, [sp, #0x40] - add r5, r1, #0x0 - ldr r1, [sp, #0x38] - ldr r2, [sp, #0x14] - ldr r3, [sp, #0x18] - add r0, r4, #0x0 - bl _ll_mul - mov r2, #0x2 - str r0, [sp, #0x50] - add r0, r1, #0x0 - mov r1, #0x0 - lsl r2, r2, #0xa - add r3, r7, r2 - adc r6, r1 - lsl r2, r6, #0x14 - lsr r3, r3, #0xc - orr r3, r2 - mov r2, #0x2 - ldr r6, [sp, #0x40] - lsl r2, r2, #0xa - add r2, r6, r2 - adc r5, r1 - mov r6, #0x2 - lsl r5, r5, #0x14 - lsr r2, r2, #0xc - orr r2, r5 - ldr r5, [sp, #0x50] - lsl r6, r6, #0xa - add r5, r5, r6 - adc r0, r1 - lsl r0, r0, #0x14 - lsr r1, r5, #0xc - orr r1, r0 - add r0, r2, r1 - add r0, r3, r0 - str r0, [sp, #0x0] - ldr r3, [sp, #0x74] - ldr r2, [sp, #0x68] - ldr r0, [sp, #0xc] - sub r2, r3, r2 - ldr r1, [sp, #0x28] - asr r3, r2, #0x1f - bl _ll_mul - add r7, r0, #0x0 - add r6, r1, #0x0 - ldr r3, [sp, #0x68] - ldr r2, [sp, #0x8c] - ldr r0, [sp, #0x8] - sub r2, r3, r2 - ldr r1, [sp, #0x1c] - asr r3, r2, #0x1f - bl _ll_mul - add r5, r1, #0x0 - str r0, [sp, #0x44] - ldr r1, [sp, #0x38] - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x30] - add r0, r4, #0x0 - bl _ll_mul - mov r3, #0x2 - mov r2, #0x0 - lsl r3, r3, #0xa - add r4, r7, r3 - adc r6, r2 - lsl r3, r6, #0x14 - lsr r4, r4, #0xc - orr r4, r3 - mov r3, #0x2 - ldr r6, [sp, #0x44] - lsl r3, r3, #0xa - add r3, r6, r3 - adc r5, r2 - lsl r5, r5, #0x14 - lsr r3, r3, #0xc - orr r3, r5 - mov r5, #0x2 - lsl r5, r5, #0xa - add r5, r0, r5 - adc r1, r2 - lsl r0, r1, #0x14 - lsr r1, r5, #0xc - orr r1, r0 - add r0, r3, r1 - add r6, r4, r0 - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x34] - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x30] - bl _ll_mul - add r7, r0, #0x0 - add r5, r1, #0x0 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x20] - ldr r3, [sp, #0x24] - bl _ll_mul - str r0, [sp, #0x48] - add r4, r1, #0x0 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0x14] - ldr r3, [sp, #0x18] - bl _ll_mul - mov r12, r0 - mov r0, #0x2 - add r2, r1, #0x0 - mov r1, #0x0 - lsl r0, r0, #0xa - add r0, r7, r0 - adc r5, r1 - lsl r3, r5, #0x14 - lsr r0, r0, #0xc - orr r0, r3 - mov r3, #0x2 - ldr r5, [sp, #0x48] - lsl r3, r3, #0xa - add r3, r5, r3 - adc r4, r1 - lsl r4, r4, #0x14 - lsr r3, r3, #0xc - orr r3, r4 - mov r4, #0x2 - lsl r4, r4, #0xa - mov r5, r12 - add r4, r5, r4 - adc r2, r1 - lsl r2, r2, #0x14 - lsr r4, r4, #0xc - orr r4, r2 - add r2, r3, r4 - add r0, r0, r2 - bpl _0201CA72 - add sp, #0x54 - add r0, r1, #0x0 - pop {r4-r7} - pop {r3} - add sp, #0x10 - bx r3 -_0201CA72: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bge _0201CA84 - add sp, #0x54 - add r0, r1, #0x0 - pop {r4-r7} - pop {r3} - add sp, #0x10 - bx r3 -_0201CA84: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - bge _0201CA96 - add sp, #0x54 - add r0, r1, #0x0 - pop {r4-r7} - pop {r3} - add sp, #0x10 - bx r3 -_0201CA96: - cmp r6, #0x0 - blt _0201CA9C - mov r1, #0x1 -_0201CA9C: - add r0, r1, #0x0 - add sp, #0x54 - pop {r4-r7} - pop {r3} - add sp, #0x10 - bx r3 - - thumb_func_start FUN_0201CAA8 -FUN_0201CAA8: ; 0x0201CAA8 - push {r4-r5, lr} - sub sp, #0x24 - add r4, r1, #0x0 - ldr r1, [r4, #0x0] - ldr r3, _0201CB1C ; =0x020FFA38 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - asr r1, r1, #0x4 - lsl r2, r1, #0x1 - lsl r1, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r5, r0, #0x0 - bl MTX_RotX33_ - ldr r0, [r4, #0x4] - ldr r3, _0201CB1C ; =0x020FFA38 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - asr r0, r0, #0x4 - lsl r2, r0, #0x1 - lsl r1, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0x0 - bl MTX_RotY33_ - add r0, r5, #0x0 - add r1, sp, #0x0 - add r2, r5, #0x0 - bl MTX_Concat33 - ldr r0, [r4, #0x8] - ldr r3, _0201CB1C ; =0x020FFA38 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - asr r0, r0, #0x4 - lsl r2, r0, #0x1 - lsl r1, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r1, [r3, r1] - ldrsh r2, [r3, r2] - add r0, sp, #0x0 - bl MTX_RotZ33_ - add r0, r5, #0x0 - add r1, sp, #0x0 - add r2, r5, #0x0 - bl MTX_Concat33 - add sp, #0x24 - pop {r4-r5, pc} - nop -_0201CB1C: .word 0x020FFA38 - - thumb_func_start FUN_0201CB20 -FUN_0201CB20: ; 0x0201CB20 - push {r4-r7, lr} - sub sp, #0x24 - add r6, r1, #0x0 - add r5, r2, #0x0 - lsl r1, r6, #0x2 - ldr r2, _0201CB78 ; =0x020EDF50 - add r6, #0x5a - add r4, r3, #0x0 - lsl r3, r6, #0x2 - ldr r1, [r2, r1] - ldr r2, [r2, r3] - add r7, r0, #0x0 - bl MTX_RotX33_ - lsl r1, r5, #0x2 - ldr r3, _0201CB78 ; =0x020EDF50 - add r5, #0x5a - lsl r2, r5, #0x2 - ldr r1, [r3, r1] - ldr r2, [r3, r2] - add r0, sp, #0x0 - bl MTX_RotY33_ - add r0, r7, #0x0 - add r1, sp, #0x0 - add r2, r7, #0x0 - bl MTX_Concat33 - lsl r1, r4, #0x2 - ldr r3, _0201CB78 ; =0x020EDF50 - add r4, #0x5a - lsl r2, r4, #0x2 - ldr r1, [r3, r1] - ldr r2, [r3, r2] - add r0, sp, #0x0 - bl MTX_RotZ33_ - add r0, r7, #0x0 - add r1, sp, #0x0 - add r2, r7, #0x0 - bl MTX_Concat33 - add sp, #0x24 - pop {r4-r7, pc} - .balign 4 -_0201CB78: .word 0x020EDF50 - - thumb_func_start FUN_0201CB7C -FUN_0201CB7C: ; 0x0201CB7C - push {r3-r7, lr} - asr r0, r0, #0x4 - add r7, r2, #0x0 - lsl r2, r0, #0x1 - add r6, r1, #0x0 - lsl r0, r2, #0x1 - ldr r1, _0201CBE8 ; =0x020FFA38 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r0, [r1, r0] - ldrsh r1, [r1, r2] - add r5, r3, #0x0 - ldr r4, [sp, #0x18] - bl FX_Div - add r2, r0, #0x0 - asr r1, r6, #0x1f - add r0, r6, #0x0 - asr r3, r2, #0x1f - bl _ll_mul - mov r6, #0x2 - mov r2, #0x0 - lsl r6, r6, #0xa - add r0, r0, r6 - adc r1, r2 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - asr r3, r0, #0x1f - lsr r1, r0, #0x13 - lsl r3, r3, #0xd - orr r3, r1 - lsl r0, r0, #0xd - add r0, r0, r6 - adc r3, r2 - lsl r1, r3, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - asr r1, r0, #0x1f - asr r3, r7, #0x1f - add r2, r7, #0x0 - str r0, [r4, #0x0] - bl _ll_mul - mov r3, #0x0 - add r2, r6, #0x0 - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - str r1, [r5, #0x0] - pop {r3-r7, pc} - .balign 4 -_0201CBE8: .word 0x020FFA38 - - thumb_func_start FUN_0201CBEC -FUN_0201CBEC: ; 0x0201CBEC - push {r3, lr} - sub r0, r0, r2 - sub r2, r1, r3 - add r1, r0, #0x0 - mul r1, r0 - add r0, r2, #0x0 - mul r0, r2 - add r0, r1, r0 - lsl r0, r0, #0xc - bl FX_Sqrt - asr r0, r0, #0xc - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201CC08 -FUN_0201CC08: ; 0x0201CC08 - push {r3, lr} - ldr r0, _0201CC20 ; =0x021C5978 - ldrh r0, [r0, #0x1a] - cmp r0, #0x0 - beq _0201CC16 - bl ErrorHandling -_0201CC16: - ldr r0, _0201CC20 ; =0x021C5978 - mov r1, #0x0 - strh r1, [r0, #0x18] - strh r1, [r0, #0x1a] - pop {r3, pc} - .balign 4 -_0201CC20: .word 0x021C5978 - - thumb_func_start FUN_0201CC24 -FUN_0201CC24: ; 0x0201CC24 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - ldr r0, _0201CC74 ; =0x021C5978 - ldrh r0, [r0, #0x1a] - cmp r0, #0x0 - beq _0201CC36 - bl ErrorHandling -_0201CC36: - cmp r4, #0x5 - bhs _0201CC3E - cmp r4, #0x0 - bne _0201CC44 -_0201CC3E: - add sp, #0x8 - mov r0, #0x0 - pop {r4, pc} -_0201CC44: - ldr r0, _0201CC74 ; =0x021C5978 - ldrh r0, [r0, #0x18] - cmp r0, #0x0 - beq _0201CC52 - add sp, #0x8 - mov r0, #0x0 - pop {r4, pc} -_0201CC52: - add r0, r4, #0x0 - bl FUN_0201CE2C - cmp r0, #0x1 - bne _0201CC70 - mov r2, #0x0 - str r2, [sp, #0x0] - lsl r0, r4, #0x1 - str r0, [sp, #0x4] - mov r0, #0x2 - mov r1, #0x1 - add r3, r2, #0x0 - bl FUN_0201CC78 - mov r0, #0x1 -_0201CC70: - add sp, #0x8 - pop {r4, pc} - .balign 4 -_0201CC74: .word 0x021C5978 - - thumb_func_start FUN_0201CC78 -FUN_0201CC78: ; 0x0201CC78 - push {r4, lr} - ldr r4, _0201CC9C ; =0x021C5978 - strh r0, [r4, #0x18] - ldr r0, _0201CCA0 ; =0x021C4918 - strb r1, [r0, #0x4] - ldr r0, _0201CCA4 ; =0x021C5938 - ldr r1, [sp, #0xc] - str r2, [r0, #0x0] - str r3, [r0, #0x4] - str r1, [r0, #0x8] - ldr r1, [sp, #0x8] - str r1, [r0, #0x54] - ldr r0, _0201CCA8 ; =0x021C5944 - mov r1, #0x9 - bl FUN_0201CCAC - pop {r4, pc} - nop -_0201CC9C: .word 0x021C5978 -_0201CCA0: .word 0x021C4918 -_0201CCA4: .word 0x021C5938 -_0201CCA8: .word 0x021C5944 - - thumb_func_start FUN_0201CCAC -FUN_0201CCAC: ; 0x0201CCAC - mov r3, #0x0 - cmp r1, #0x0 - ble _0201CCBE - add r2, r3, #0x0 -_0201CCB4: - add r3, r3, #0x1 - strh r2, [r0, #0x4] - add r0, #0x8 - cmp r3, r1 - blt _0201CCB4 -_0201CCBE: - bx lr - - thumb_func_start FUN_0201CCC0 -FUN_0201CCC0: ; 0x0201CCC0 - push {r4-r6, lr} - ldr r0, _0201CD00 ; =0x021C5978 - mov r5, #0x0 - ldrh r0, [r0, #0x18] - cmp r0, #0x0 - bne _0201CCD0 - mov r0, #0x1 - pop {r4-r6, pc} -_0201CCD0: - mov r4, #0x4 - add r6, r4, #0x0 -_0201CCD4: - bl TP_RequestAutoSamplingStopAsync - add r0, r4, #0x0 - bl TP_WaitBusy - add r0, r6, #0x0 - bl TP_CheckError - cmp r0, #0x0 - beq _0201CCEA - add r5, r5, #0x1 -_0201CCEA: - cmp r0, #0x0 - beq _0201CCF2 - cmp r5, #0x5 - bls _0201CCD4 -_0201CCF2: - cmp r5, #0x5 - bls _0201CCFA - mov r0, #0x2 - pop {r4-r6, pc} -_0201CCFA: - mov r0, #0x1 - pop {r4-r6, pc} - nop -_0201CD00: .word 0x021C5978 - - thumb_func_start FUN_0201CD04 -FUN_0201CD04: ; 0x0201CD04 - push {r4, lr} - sub sp, #0x8 - ldr r0, _0201CD34 ; =0x021C5978 - ldrh r0, [r0, #0x1a] - cmp r0, #0x0 - beq _0201CD14 - bl ErrorHandling -_0201CD14: - bl FUN_0201CCC0 - add r4, r0, #0x0 - cmp r4, #0x1 - bne _0201CD2E - mov r0, #0x0 - str r0, [sp, #0x0] - add r1, r0, #0x0 - add r2, r0, #0x0 - add r3, r0, #0x0 - str r0, [sp, #0x4] - bl FUN_0201CC78 -_0201CD2E: - add r0, r4, #0x0 - add sp, #0x8 - pop {r4, pc} - .balign 4 -_0201CD34: .word 0x021C5978 - - thumb_func_start FUN_0201CD38 -FUN_0201CD38: ; 0x0201CD38 - push {r3-r7, lr} - add r4, r0, #0x0 - ldr r0, _0201CD8C ; =0x021C5978 - add r6, r1, #0x0 - ldrh r0, [r0, #0x1a] - add r7, r2, #0x0 - mov r5, #0x3 - cmp r0, #0x0 - beq _0201CD4E - bl ErrorHandling -_0201CD4E: - ldr r0, _0201CD8C ; =0x021C5978 - ldrh r0, [r0, #0x18] - cmp r0, #0x0 - beq _0201CD88 - bl TP_GetLatestIndexInAuto - add r5, r0, #0x0 - ldr r0, _0201CD90 ; =0x021C5944 - mov r1, #0x9 - bl FUN_0201CD94 - cmp r4, #0x0 - beq _0201CD70 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0201CFD0 -_0201CD70: - ldr r0, _0201CD8C ; =0x021C5978 - ldrh r0, [r0, #0x18] - cmp r0, #0x1 - bne _0201CD86 - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r7, #0x0 - bl FUN_0201CE70 - add r5, r0, #0x0 - b _0201CD88 -_0201CD86: - mov r5, #0x1 -_0201CD88: - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 -_0201CD8C: .word 0x021C5978 -_0201CD90: .word 0x021C5944 - - thumb_func_start FUN_0201CD94 -FUN_0201CD94: ; 0x0201CD94 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r7, #0x0 - str r1, [sp, #0x0] - add r0, r1, #0x0 - beq _0201CDCA - add r4, r5, #0x0 - add r6, sp, #0x4 -_0201CDA6: - add r0, sp, #0x4 - add r1, r5, #0x0 - bl TP_GetCalibratedPoint - ldrh r0, [r6, #0x0] - add r7, r7, #0x1 - add r5, #0x8 - strh r0, [r4, #0x0] - ldrh r0, [r6, #0x2] - strh r0, [r4, #0x2] - ldrh r0, [r6, #0x4] - strh r0, [r4, #0x4] - ldrh r0, [r6, #0x6] - strh r0, [r4, #0x6] - ldr r0, [sp, #0x0] - add r4, #0x8 - cmp r7, r0 - blo _0201CDA6 -_0201CDCA: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0201CDD0 -FUN_0201CDD0: ; 0x0201CDD0 - push {r3, lr} - ldr r0, _0201CDFC ; =0x021C5978 - ldrh r1, [r0, #0x1a] - cmp r1, #0x0 - beq _0201CDF8 - ldrh r0, [r0, #0x18] - cmp r0, #0x0 - beq _0201CDF8 - ldr r0, _0201CE00 ; =0x021C5938 - ldr r0, [r0, #0x8] - lsr r0, r0, #0x1 - bl FUN_0201CE2C - cmp r0, #0x1 - beq _0201CDF2 - bl ErrorHandling -_0201CDF2: - ldr r0, _0201CDFC ; =0x021C5978 - mov r1, #0x0 - strh r1, [r0, #0x1a] -_0201CDF8: - pop {r3, pc} - nop -_0201CDFC: .word 0x021C5978 -_0201CE00: .word 0x021C5938 - - thumb_func_start FUN_0201CE04 -FUN_0201CE04: ; 0x0201CE04 - push {r3, lr} - ldr r0, _0201CE28 ; =0x021C5978 - ldrh r1, [r0, #0x1a] - cmp r1, #0x1 - beq _0201CE26 - ldrh r0, [r0, #0x18] - cmp r0, #0x0 - beq _0201CE26 - bl FUN_0201CCC0 - cmp r0, #0x1 - beq _0201CE20 - bl ErrorHandling -_0201CE20: - ldr r0, _0201CE28 ; =0x021C5978 - mov r1, #0x1 - strh r1, [r0, #0x1a] -_0201CE26: - pop {r3, pc} - .balign 4 -_0201CE28: .word 0x021C5978 - - thumb_func_start FUN_0201CE2C -FUN_0201CE2C: ; 0x0201CE2C - push {r3-r7, lr} - mov r5, #0x0 - lsl r0, r0, #0x10 - ldr r7, _0201CE6C ; =0x021C5944 - add r6, r5, #0x0 - lsr r4, r0, #0x10 -_0201CE38: - add r0, r6, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - mov r3, #0x9 - bl TP_RequestAutoSamplingStartAsync - mov r0, #0x2 - bl TP_WaitBusy - mov r0, #0x2 - bl TP_CheckError - cmp r0, #0x0 - beq _0201CE56 - add r5, r5, #0x1 -_0201CE56: - cmp r0, #0x0 - beq _0201CE5E - cmp r5, #0x5 - ble _0201CE38 -_0201CE5E: - cmp r5, #0x5 - ble _0201CE66 - mov r0, #0x2 - pop {r3-r7, pc} -_0201CE66: - mov r0, #0x1 - pop {r3-r7, pc} - nop -_0201CE6C: .word 0x021C5944 - - thumb_func_start FUN_0201CE70 -FUN_0201CE70: ; 0x0201CE70 - push {r3, lr} - cmp r0, #0x5 - bhi _0201CE9A - add r3, r0, r0 - add r3, pc - ldrh r3, [r3, #0x6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_0201CE82: ; jump table (using 16-bit offset) - .short _0201CE9A - _0201CE82 - 2; case 0 - .short _0201CE8E - _0201CE82 - 2; case 1 - .short _0201CE9A - _0201CE82 - 2; case 2 - .short _0201CE8E - _0201CE82 - 2; case 3 - .short _0201CE94 - _0201CE82 - 2; case 4 - .short _0201CE94 - _0201CE82 - 2; case 5 -_0201CE8E: - bl FUN_0201CEA0 - pop {r3, pc} -_0201CE94: - bl FUN_0201CF58 - pop {r3, pc} -_0201CE9A: - mov r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201CEA0 -FUN_0201CEA0: ; 0x0201CEA0 - push {r3-r7, lr} - sub sp, #0x8 - ldr r5, _0201CF50 ; =0x021C5938 - str r1, [sp, #0x4] - ldr r1, [r5, #0x8] - str r0, [sp, #0x0] - add r7, r2, #0x0 - mov r4, #0x0 - cmp r1, #0x0 - bls _0201CF46 -_0201CEB4: - ldr r0, [sp, #0x4] - sub r0, r0, r1 - add r0, r4, r0 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bpl _0201CEC8 - add r0, #0x9 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 -_0201CEC8: - lsl r1, r0, #0x3 - ldr r0, _0201CF54 ; =0x021C5938 - add r1, r0, r1 - ldrh r0, [r1, #0x10] - cmp r0, #0x1 - bne _0201CF3E - ldrh r0, [r1, #0x12] - cmp r0, #0x0 - bne _0201CF3E - ldr r2, [r5, #0x54] - ldr r0, [r5, #0x0] - lsl r2, r2, #0x3 - add r2, r0, r2 - add r0, r2, #0x0 - sub r0, #0x8 - ldrh r3, [r1, #0xc] - ldrh r0, [r0, #0x0] - cmp r0, r3 - blt _0201CEF2 - sub r3, r0, r3 - b _0201CEF4 -_0201CEF2: - sub r3, r3, r0 -_0201CEF4: - sub r6, r2, #0x6 - ldrh r0, [r1, #0xe] - ldrh r6, [r6, #0x0] - cmp r6, r0 - blt _0201CF02 - sub r0, r6, r0 - b _0201CF04 -_0201CF02: - sub r0, r0, r6 -_0201CF04: - cmp r3, r7 - bhs _0201CF0C - cmp r0, r7 - blo _0201CF3E -_0201CF0C: - ldrh r0, [r1, #0xc] - strh r0, [r2, #0x0] - ldrh r0, [r1, #0xe] - strh r0, [r2, #0x2] - ldrh r0, [r1, #0x10] - strh r0, [r2, #0x4] - ldrh r0, [r1, #0x12] - strh r0, [r2, #0x6] - ldr r0, [r5, #0x54] - add r0, r0, #0x1 - str r0, [r5, #0x54] - ldr r1, [r5, #0x4] - cmp r0, r1 - blo _0201CF3E - ldr r2, [sp, #0x0] - cmp r2, #0x1 - bne _0201CF36 - bl _u32_div_f - str r1, [r5, #0x54] - b _0201CF3E -_0201CF36: - mov r0, #0x0 - add sp, #0x8 - mvn r0, r0 - pop {r3-r7, pc} -_0201CF3E: - ldr r1, [r5, #0x8] - add r4, r4, #0x1 - cmp r4, r1 - blo _0201CEB4 -_0201CF46: - ldr r0, _0201CF50 ; =0x021C5938 - ldr r0, [r0, #0x54] - add sp, #0x8 - pop {r3-r7, pc} - nop -_0201CF50: .word 0x021C5938 -_0201CF54: .word 0x021C5938 - - thumb_func_start FUN_0201CF58 -FUN_0201CF58: ; 0x0201CF58 - push {r3-r7, lr} - ldr r5, _0201CFC8 ; =0x021C5938 - str r1, [sp, #0x0] - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - mov r4, #0x0 - cmp r1, #0x0 - bls _0201CFC0 -_0201CF68: - ldr r0, [sp, #0x0] - sub r0, r0, r1 - add r0, r4, r0 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - asr r1, r0, #0x10 - bpl _0201CF7C - add r1, #0x9 - lsl r0, r1, #0x10 - asr r1, r0, #0x10 -_0201CF7C: - ldr r0, [r5, #0x54] - lsl r1, r1, #0x3 - lsl r3, r0, #0x3 - ldr r0, _0201CFCC ; =0x021C5938 - ldr r6, [r5, #0x0] - add r2, r0, r1 - ldrh r0, [r2, #0xc] - add r1, r6, r3 - strh r0, [r6, r3] - ldrh r0, [r2, #0xe] - strh r0, [r1, #0x2] - ldrh r0, [r2, #0x10] - strh r0, [r1, #0x4] - ldrh r0, [r2, #0x12] - strh r0, [r1, #0x6] - ldr r0, [r5, #0x54] - add r0, r0, #0x1 - str r0, [r5, #0x54] - ldr r1, [r5, #0x4] - cmp r0, r1 - blo _0201CFB8 - cmp r7, #0x4 - bne _0201CFB2 - bl _u32_div_f - str r1, [r5, #0x54] - b _0201CFB8 -_0201CFB2: - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} -_0201CFB8: - ldr r1, [r5, #0x8] - add r4, r4, #0x1 - cmp r4, r1 - blo _0201CF68 -_0201CFC0: - ldr r0, _0201CFC8 ; =0x021C5938 - ldr r0, [r0, #0x54] - pop {r3-r7, pc} - nop -_0201CFC8: .word 0x021C5938 -_0201CFCC: .word 0x021C5938 - - thumb_func_start FUN_0201CFD0 -FUN_0201CFD0: ; 0x0201CFD0 - push {r4-r7} - mov r2, #0x0 - strh r2, [r0, #0x0] - add r3, r0, #0x0 - add r6, r2, #0x0 -_0201CFDA: - strh r6, [r3, #0x8] - strh r6, [r3, #0x6] - strh r6, [r3, #0x2] - strh r6, [r3, #0x4] - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, #0x8 - blt _0201CFDA - ldr r2, _0201D038 ; =0x021C5938 - ldr r3, [r2, #0x8] - cmp r3, #0x0 - bls _0201D034 - ldr r4, _0201D03C ; =0x021C5938 -_0201CFF4: - sub r3, r1, r3 - add r3, r6, r3 - add r3, r3, #0x1 - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - bpl _0201D006 - add r3, #0x9 - lsl r3, r3, #0x10 - asr r3, r3, #0x10 -_0201D006: - lsl r3, r3, #0x3 - add r5, r4, r3 - ldrh r3, [r5, #0x12] - cmp r3, #0x0 - bne _0201D02C - ldrh r3, [r0, #0x0] - ldrh r7, [r5, #0xc] - lsl r3, r3, #0x3 - add r3, r0, r3 - strh r7, [r3, #0x2] - ldrh r7, [r5, #0xe] - strh r7, [r3, #0x4] - ldrh r7, [r5, #0x10] - strh r7, [r3, #0x6] - ldrh r5, [r5, #0x12] - strh r5, [r3, #0x8] - ldrh r3, [r0, #0x0] - add r3, r3, #0x1 - strh r3, [r0, #0x0] -_0201D02C: - ldr r3, [r2, #0x8] - add r6, r6, #0x1 - cmp r6, r3 - blo _0201CFF4 -_0201D034: - pop {r4-r7} - bx lr - .balign 4 -_0201D038: .word 0x021C5938 -_0201D03C: .word 0x021C5938 - - thumb_func_start FUN_0201D040 -FUN_0201D040: ; 0x0201D040 - ldr r1, _0201D054 ; =0x04001000 - ldr r2, [r1, #0x0] - ldr r1, _0201D058 ; =0x00300010 - lsl r3, r1, #0x16 - ldr r3, [r3, #0x0] - and r2, r1 - and r1, r3 - ldr r3, _0201D05C ; =FUN_0201D060 - bx r3 - nop -_0201D054: .word 0x04001000 -_0201D058: .word 0x00300010 -_0201D05C: .word FUN_0201D060 - - thumb_func_start FUN_0201D060 -FUN_0201D060: ; 0x0201D060 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, _0201D120 ; =0x021C5994 - str r1, [sp, #0x0] - ldr r0, [r0, #0x0] - str r2, [sp, #0x4] - cmp r0, #0x0 - bne _0201D11A - ldr r0, [r5, #0xc] - mov r1, #0x3c - bl FUN_02016998 - add r1, r0, #0x0 - ldr r0, _0201D120 ; =0x021C5994 - mov r2, #0x3c - str r1, [r0, #0x0] - mov r0, #0x0 - bl MIi_CpuClear32 - ldr r1, _0201D120 ; =0x021C5994 - ldr r2, [r5, #0x0] - ldr r0, [r1, #0x0] - str r2, [r0, #0x4] - ldr r1, [r1, #0x0] - ldr r0, [r5, #0xc] - ldr r2, [r1, #0x4] - mov r1, #0x54 - mul r1, r2 - bl FUN_02016998 - ldr r7, _0201D120 ; =0x021C5994 - mov r6, #0x0 - ldr r1, [r7, #0x0] - str r0, [r1, #0x0] - ldr r0, [r5, #0x0] - cmp r0, #0x0 - ble _0201D0C2 - add r4, r6, #0x0 -_0201D0AE: - ldr r0, [r7, #0x0] - ldr r0, [r0, #0x0] - add r0, r0, r4 - bl FUN_0201D690 - ldr r0, [r5, #0x0] - add r6, r6, #0x1 - add r4, #0x54 - cmp r6, r0 - blt _0201D0AE -_0201D0C2: - ldr r0, [sp, #0x0] - bl FUN_0201DED0 - ldr r1, _0201D120 ; =0x021C5994 - ldr r1, [r1, #0x0] - str r0, [r1, #0x2c] - ldr r0, [sp, #0x4] - bl FUN_0201DED0 - ldr r2, _0201D120 ; =0x021C5994 - mov r3, #0x1 - ldr r1, [r2, #0x0] - lsl r3, r3, #0x1a - str r0, [r1, #0x30] - ldr r0, [r3, #0x0] - ldr r1, _0201D124 ; =0xFFCFFFEF - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - and r4, r1 - orr r0, r4 - str r0, [r3, #0x0] - ldr r3, _0201D128 ; =0x04001000 - ldr r0, [r3, #0x0] - and r1, r0 - ldr r0, [sp, #0x4] - orr r0, r1 - str r0, [r3, #0x0] - ldr r1, [r2, #0x0] - ldr r0, [r5, #0x4] - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - ldr r1, _0201D120 ; =0x021C5994 - add r4, r0, #0x0 - ldr r1, [r1, #0x0] - ldr r0, [r5, #0x8] - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - add r1, r0, #0x0 - ldr r2, [r5, #0xc] - add r0, r4, #0x0 - bl FUN_0201DC58 -_0201D11A: - add sp, #0x8 - pop {r3-r7, pc} - nop -_0201D120: .word 0x021C5994 -_0201D124: .word 0xFFCFFFEF -_0201D128: .word 0x04001000 - - thumb_func_start FUN_0201D12C -FUN_0201D12C: ; 0x0201D12C - push {r3, lr} - ldr r0, _0201D164 ; =0x021C5994 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201D162 - ldr r0, [r0, #0x34] - bl FUN_0201DCC0 - ldr r0, _0201D164 ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0201DCC0 - bl FUN_0201D374 - ldr r0, _0201D164 ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201D164 ; =0x021C5994 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201D164 ; =0x021C5994 - mov r1, #0x0 - str r1, [r0, #0x0] -_0201D162: - pop {r3, pc} - .balign 4 -_0201D164: .word 0x021C5994 - - thumb_func_start FUN_0201D168 -FUN_0201D168: ; 0x0201D168 - push {r3, lr} - ldr r0, _0201D190 ; =0x021C5994 - mov r2, #0x0 - ldr r1, [r0, #0x0] - str r2, [r1, #0xc] - ldr r1, [r0, #0x0] - str r2, [r1, #0x10] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x34] - bl FUN_0201DD00 - ldr r0, _0201D190 ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0201DD00 - bl FUN_0201DAE8 - pop {r3, pc} - nop -_0201D190: .word 0x021C5994 - - thumb_func_start FUN_0201D194 -FUN_0201D194: ; 0x0201D194 - push {r3-r4, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r3, r1, #0x0 - cmp r2, #0x1 - add r0, sp, #0x4 - bne _0201D1CA - str r0, [sp, #0x0] - ldr r0, _0201D1F4 ; =0x021C5994 - add r2, r3, #0x0 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0x1c] - add r3, sp, #0x8 - bl FUN_0201DFF0 - ldr r3, [sp, #0x4] - cmp r3, #0x0 - ble _0201D1F0 - mov r2, #0x0 - str r2, [sp, #0x0] - ldr r1, [sp, #0x8] - mov r0, #0x1 - bl FUN_0201D948 - add sp, #0xc - pop {r3-r4, pc} -_0201D1CA: - str r0, [sp, #0x0] - ldr r0, _0201D1F4 ; =0x021C5994 - add r2, r3, #0x0 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0x20] - add r3, sp, #0x8 - bl FUN_0201DFF0 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201D1F0 - str r0, [sp, #0x0] - mov r1, #0x0 - ldr r2, [sp, #0x8] - mov r0, #0x2 - add r3, r1, #0x0 - bl FUN_0201D948 -_0201D1F0: - add sp, #0xc - pop {r3-r4, pc} - .balign 4 -_0201D1F4: .word 0x021C5994 - - thumb_func_start FUN_0201D1F8 -FUN_0201D1F8: ; 0x0201D1F8 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x8] - bl FUN_0201D2AC - cmp r0, #0x1 - bne _0201D20A - bl ErrorHandling -_0201D20A: - bl FUN_0201DAAC - add r4, r0, #0x0 - bne _0201D21A - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201D21A: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201D6B4 - cmp r0, #0x0 - bne _0201D22A - mov r0, #0x0 - pop {r3-r5, pc} -_0201D22A: - add r0, r4, #0x0 - bl FUN_0201D724 - cmp r0, #0x0 - bne _0201D23E - ldr r0, [r4, #0xc] - bl FUN_0201D324 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D23E: - ldr r0, _0201D24C ; =0x021C5994 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x8] - add r0, r0, #0x1 - str r0, [r1, #0x8] - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 -_0201D24C: .word 0x021C5994 - - thumb_func_start FUN_0201D250 -FUN_0201D250: ; 0x0201D250 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x8] - bl FUN_0201D2AC - cmp r0, #0x1 - bne _0201D262 - bl ErrorHandling -_0201D262: - bl FUN_0201DAAC - add r4, r0, #0x0 - bne _0201D272 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201D272: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201D6B4 - cmp r0, #0x0 - bne _0201D282 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D282: - mov r0, #0x1 - str r0, [r4, #0x40] - add r0, r4, #0x0 - bl FUN_0201D724 - cmp r0, #0x0 - bne _0201D29A - ldr r0, [r4, #0xc] - bl FUN_0201D324 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D29A: - ldr r0, _0201D2A8 ; =0x021C5994 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x8] - add r0, r0, #0x1 - str r0, [r1, #0x8] - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 -_0201D2A8: .word 0x021C5994 - - thumb_func_start FUN_0201D2AC -FUN_0201D2AC: ; 0x0201D2AC - push {r3-r4} - ldr r1, _0201D2D8 ; =0x021C5994 - mov r2, #0x0 - ldr r4, [r1, #0x0] - ldr r1, [r4, #0x4] - cmp r1, #0x0 - ble _0201D2D2 - ldr r3, [r4, #0x0] -_0201D2BC: - ldr r1, [r3, #0xc] - cmp r0, r1 - bne _0201D2C8 - mov r0, #0x1 - pop {r3-r4} - bx lr -_0201D2C8: - ldr r1, [r4, #0x4] - add r2, r2, #0x1 - add r3, #0x54 - cmp r2, r1 - blt _0201D2BC -_0201D2D2: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 -_0201D2D8: .word 0x021C5994 - - thumb_func_start FUN_0201D2DC -FUN_0201D2DC: ; 0x0201D2DC - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - bne _0201D2E8 - bl ErrorHandling -_0201D2E8: - add r0, r4, #0x0 - bl FUN_0201D7F8 - add r4, r0, #0x0 - bne _0201D2F6 - bl ErrorHandling -_0201D2F6: - str r5, [r4, #0x0] - ldr r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201D30C - ldr r1, [r4, #0x34] - ldr r2, [r5, #0x14] - ldr r3, [r5, #0x10] - mov r0, #0x13 - bl FUN_0201C2C8 -_0201D30C: - ldr r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201D320 - ldr r1, [r4, #0x38] - ldr r2, [r5, #0x14] - ldr r3, [r5, #0x10] - mov r0, #0x23 - bl FUN_0201C2C8 -_0201D320: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201D324 -FUN_0201D324: ; 0x0201D324 - push {r3-r7, lr} - add r6, r0, #0x0 - mov r5, #0x1 - mov r7, #0x0 -_0201D32C: - add r0, r6, #0x0 - bl FUN_0201D7F8 - add r4, r0, #0x0 - bne _0201D33A - bl ErrorHandling -_0201D33A: - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x4 - bne _0201D34E - add r0, r4, #0x0 - add r0, #0x10 - bl FUN_0201D4F0 - b _0201D350 -_0201D34E: - add r5, r7, #0x0 -_0201D350: - cmp r5, #0x0 - bne _0201D32C - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201D36E - add r0, r4, #0x0 - bl FUN_0201D7E0 - ldr r0, _0201D370 ; =0x021C5994 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x8] - sub r0, r0, #0x1 - str r0, [r1, #0x8] -_0201D36E: - pop {r3-r7, pc} - .balign 4 -_0201D370: .word 0x021C5994 - - thumb_func_start FUN_0201D374 -FUN_0201D374: ; 0x0201D374 - push {r4-r6, lr} - ldr r6, _0201D3AC ; =0x021C5994 - mov r4, #0x0 - ldr r1, [r6, #0x0] - ldr r0, [r1, #0x4] - cmp r0, #0x0 - ble _0201D3AA - add r5, r4, #0x0 -_0201D384: - ldr r1, [r1, #0x0] - add r0, r1, r5 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201D39E - add r0, r1, r5 - bl FUN_0201D7E0 - ldr r1, [r6, #0x0] - ldr r0, [r1, #0x8] - sub r0, r0, #0x1 - str r0, [r1, #0x8] -_0201D39E: - ldr r1, [r6, #0x0] - add r4, r4, #0x1 - ldr r0, [r1, #0x4] - add r5, #0x54 - cmp r4, r0 - blt _0201D384 -_0201D3AA: - pop {r4-r6, pc} - .balign 4 -_0201D3AC: .word 0x021C5994 - - thumb_func_start FUN_0201D3B0 -FUN_0201D3B0: ; 0x0201D3B0 - push {r4, lr} - bl FUN_0201D7F8 - add r4, r0, #0x0 - bne _0201D3BE - bl ErrorHandling -_0201D3BE: - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201D3CC - mov r0, #0x0 - pop {r4, pc} -_0201D3CC: - add r4, #0x10 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201D3D4 -FUN_0201D3D4: ; 0x0201D3D4 - push {r3-r5, lr} - sub sp, #0x18 - add r5, r1, #0x0 - bl FUN_0201D7F8 - add r4, r0, #0x0 - bne _0201D3E6 - bl ErrorHandling -_0201D3E6: - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201D3F6 - add sp, #0x18 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D3F6: - add r0, sp, #0xc - str r0, [sp, #0x0] - add r0, sp, #0x8 - str r0, [sp, #0x4] - ldr r0, [r4, #0x4] - add r1, sp, #0x14 - add r2, sp, #0x10 - add r3, r5, #0x0 - bl FUN_0201D86C - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - bne _0201D41A - add sp, #0x18 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D41A: - add r0, r4, #0x0 - mov r1, #0x3 - add r0, #0x3c - strb r1, [r0, #0x0] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - add r0, r4, #0x0 - bl FUN_0201D918 - mov r0, #0x1 - str r0, [r4, #0x48] - ldr r0, [sp, #0xc] - str r0, [r4, #0x4c] - ldr r0, [sp, #0x8] - str r0, [r4, #0x50] - add r0, r4, #0x0 - bl FUN_0201DA38 - ldr r0, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [r4, #0x4] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - bl FUN_0201D948 - add r4, #0x10 - add r0, r4, #0x0 - add sp, #0x18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201D458 -FUN_0201D458: ; 0x0201D458 - push {r3-r5, lr} - sub sp, #0x18 - bl FUN_0201D6D8 - add r4, r0, #0x0 - bne _0201D468 - bl ErrorHandling -_0201D468: - bl FUN_0201DAAC - add r5, r0, #0x0 - bne _0201D474 - bl ErrorHandling -_0201D474: - add r0, r4, #0x0 - add r0, #0x3c - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - beq _0201D484 - add sp, #0x18 - mov r0, #0x0 - pop {r3-r5, pc} -_0201D484: - add r3, r5, #0x0 - mov r2, #0xa -_0201D488: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _0201D488 - ldr r0, [r4, #0x0] - mov r1, #0x4 - str r0, [r3, #0x0] - add r0, r5, #0x0 - add r0, #0x3c - strb r1, [r0, #0x0] - ldr r0, [r5, #0x4] - mov r1, #0x1 - tst r1, r0 - beq _0201D4A8 - ldr r3, [r5, #0x4c] - b _0201D4AA -_0201D4A8: - ldr r3, [r5, #0x50] -_0201D4AA: - add r1, sp, #0xc - str r1, [sp, #0x0] - add r1, sp, #0x8 - str r1, [sp, #0x4] - add r1, sp, #0x14 - add r2, sp, #0x10 - bl FUN_0201D86C - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - add r0, r5, #0x0 - bl FUN_0201D918 - mov r0, #0x1 - str r0, [r5, #0x48] - ldr r0, [sp, #0xc] - str r0, [r5, #0x4c] - ldr r0, [sp, #0x8] - str r0, [r5, #0x50] - add r0, r5, #0x0 - bl FUN_0201DA38 - ldr r0, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - bl FUN_0201D948 - add r5, #0x10 - add r0, r5, #0x0 - add sp, #0x18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201D4F0 -FUN_0201D4F0: ; 0x0201D4F0 - push {r4-r6, lr} - ldr r2, _0201D564 ; =0x021C5994 - mov r1, #0x0 - ldr r5, [r2, #0x0] - ldr r4, [r5, #0x4] - cmp r4, #0x0 - ble _0201D52E - ldr r2, [r5, #0x0] - add r3, r1, #0x0 -_0201D502: - add r6, r2, #0x0 - add r6, #0x3c - ldrb r6, [r6, #0x0] - cmp r6, #0x3 - beq _0201D518 - ldr r6, [r5, #0x0] - add r6, r6, r3 - add r6, #0x3c - ldrb r6, [r6, #0x0] - cmp r6, #0x4 - bne _0201D522 -_0201D518: - ldr r6, [r5, #0x0] - add r6, r6, r3 - add r6, #0x10 - cmp r6, r0 - beq _0201D52E -_0201D522: - ldr r6, [r5, #0x4] - add r1, r1, #0x1 - add r2, #0x54 - add r3, #0x54 - cmp r1, r6 - blt _0201D502 -_0201D52E: - cmp r1, r4 - bge _0201D562 - mov r0, #0x54 - add r4, r1, #0x0 - mul r4, r0 - ldr r0, [r5, #0x0] - add r0, r0, r4 - bl FUN_0201DE4C - ldr r0, _0201D564 ; =0x021C5994 - ldr r1, [r0, #0x0] - ldr r2, [r1, #0x0] - add r2, #0x3c - ldrb r1, [r2, r4] - cmp r1, #0x3 - bne _0201D554 - mov r0, #0x2 - strb r0, [r2, r4] - pop {r4-r6, pc} -_0201D554: - mov r1, #0x0 - strb r1, [r2, r4] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - add r0, r0, r4 - bl FUN_0201D690 -_0201D562: - pop {r4-r6, pc} - .balign 4 -_0201D564: .word 0x021C5994 - - thumb_func_start FUN_0201D568 -FUN_0201D568: ; 0x0201D568 - push {r3-r7, lr} - sub sp, #0x18 - add r6, r0, #0x0 - add r5, r2, #0x0 - add r4, r3, #0x0 - cmp r1, #0x0 - bne _0201D5A0 - add r1, r5, #0x0 - add r2, sp, #0x14 - add r3, sp, #0x10 - bl FUN_0201DF44 - add r7, r0, #0x0 - beq _0201D5E0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0201DF94 - str r5, [r4, #0x8] - str r6, [r4, #0x0] - cmp r5, #0x1 - bne _0201D59A - ldr r0, [sp, #0x14] - str r0, [r4, #0x4] - b _0201D5E0 -_0201D59A: - ldr r0, [sp, #0x10] - str r0, [r4, #0x4] - b _0201D5E0 -_0201D5A0: - add r0, sp, #0xc - str r0, [sp, #0x0] - add r0, sp, #0x8 - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r1, sp, #0x14 - add r2, sp, #0x10 - add r3, r6, #0x0 - bl FUN_0201D86C - add r7, r0, #0x0 - beq _0201D5E0 - ldr r0, [sp, #0x8] - str r0, [sp, #0x0] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - add r0, r5, #0x0 - bl FUN_0201D948 - str r5, [r4, #0x8] - cmp r5, #0x1 - bne _0201D5D8 - ldr r0, [sp, #0xc] - str r0, [r4, #0x0] - ldr r0, [sp, #0x14] - str r0, [r4, #0x4] - b _0201D5E0 -_0201D5D8: - ldr r0, [sp, #0x8] - str r0, [r4, #0x0] - ldr r0, [sp, #0x10] - str r0, [r4, #0x4] -_0201D5E0: - add r0, r7, #0x0 - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201D5E8 -FUN_0201D5E8: ; 0x0201D5E8 - push {r3-r5, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x8] - mov r0, #0x1 - tst r0, r1 - beq _0201D61E - ldr r1, _0201D654 ; =0x021C5994 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - add r5, r0, #0x0 - ldr r0, _0201D654 ; =0x021C5994 - ldr r1, [r4, #0x4] - ldr r2, [r0, #0x0] - ldr r0, [r2, #0x1c] - sub r0, r1, r0 - ldr r1, [r2, #0x2c] - bl FUN_0201DF2C - ldr r2, _0201D654 ; =0x021C5994 - add r1, r5, #0x0 - ldr r2, [r2, #0x0] - ldr r2, [r2, #0x34] - bl FUN_0201DDFC -_0201D61E: - ldr r1, [r4, #0x8] - mov r0, #0x2 - tst r0, r1 - beq _0201D650 - ldr r1, _0201D654 ; =0x021C5994 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - add r5, r0, #0x0 - ldr r0, _0201D654 ; =0x021C5994 - ldr r1, [r4, #0x4] - ldr r2, [r0, #0x0] - ldr r0, [r2, #0x20] - sub r0, r1, r0 - ldr r1, [r2, #0x30] - bl FUN_0201DF2C - ldr r2, _0201D654 ; =0x021C5994 - add r1, r5, #0x0 - ldr r2, [r2, #0x0] - ldr r2, [r2, #0x38] - bl FUN_0201DDFC -_0201D650: - pop {r3-r5, pc} - nop -_0201D654: .word 0x021C5994 - - thumb_func_start FUN_0201D658 -FUN_0201D658: ; 0x0201D658 - push {r3, lr} - ldr r0, _0201D670 ; =0x021C5994 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201D666 - bl ErrorHandling -_0201D666: - ldr r1, _0201D670 ; =0x021C5994 - mov r2, #0x0 - ldr r0, [r1, #0x0] - str r2, [r1, #0x0] - pop {r3, pc} - .balign 4 -_0201D670: .word 0x021C5994 - - thumb_func_start FUN_0201D674 -FUN_0201D674: ; 0x0201D674 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0201D68C ; =0x021C5994 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201D684 - bl ErrorHandling -_0201D684: - ldr r0, _0201D68C ; =0x021C5994 - str r4, [r0, #0x0] - pop {r4, pc} - nop -_0201D68C: .word 0x021C5994 - - thumb_func_start FUN_0201D690 -FUN_0201D690: ; 0x0201D690 - mov r2, #0x0 - str r2, [r0, #0x0] - str r2, [r0, #0x4] - strb r2, [r0, #0x8] - sub r1, r2, #0x1 - str r1, [r0, #0xc] - str r2, [r0, #0x34] - add r1, r0, #0x0 - str r2, [r0, #0x38] - add r1, #0x3c - strb r2, [r1, #0x0] - str r2, [r0, #0x40] - ldr r3, _0201D6B0 ; =FUN_020B1A24 - add r0, #0x10 - bx r3 - nop -_0201D6B0: .word FUN_020B1A24 - - thumb_func_start FUN_0201D6B4 -FUN_0201D6B4: ; 0x0201D6B4 - ldr r2, [r0, #0x0] - str r2, [r1, #0x0] - ldr r2, [r0, #0x8] - str r2, [r1, #0xc] - ldr r2, [r0, #0x4] - str r2, [r1, #0x4] - ldr r2, [r1, #0x0] - ldr r2, [r2, #0xc] - lsr r2, r2, #0x8 - strb r2, [r1, #0x8] - ldr r0, [r0, #0xc] - str r0, [r1, #0x44] - mov r0, #0x0 - str r0, [r1, #0x48] - str r0, [r1, #0x4c] - str r0, [r1, #0x50] - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0201D6D8 -FUN_0201D6D8: ; 0x0201D6D8 - push {r3-r6} - ldr r2, _0201D720 ; =0x021C5994 - mov r1, #0x0 - ldr r5, [r2, #0x0] - ldr r4, [r5, #0x4] - cmp r4, #0x0 - ble _0201D70A - ldr r2, [r5, #0x0] - add r3, r1, #0x0 -_0201D6EA: - add r6, r2, #0x0 - add r6, #0x3c - ldrb r6, [r6, #0x0] - cmp r6, #0x0 - beq _0201D6FE - ldr r6, [r5, #0x0] - add r6, r6, r3 - add r6, #0x10 - cmp r6, r0 - beq _0201D70A -_0201D6FE: - ldr r6, [r5, #0x4] - add r1, r1, #0x1 - add r2, #0x54 - add r3, #0x54 - cmp r1, r6 - blt _0201D6EA -_0201D70A: - cmp r1, r4 - blt _0201D714 - mov r0, #0x0 - pop {r3-r6} - bx lr -_0201D714: - mov r0, #0x54 - ldr r2, [r5, #0x0] - mul r0, r1 - add r0, r2, r0 - pop {r3-r6} - bx lr - .balign 4 -_0201D720: .word 0x021C5994 - - thumb_func_start FUN_0201D724 -FUN_0201D724: ; 0x0201D724 - push {r3, lr} - ldrb r1, [r0, #0x8] - mov r2, #0x1 - cmp r1, #0x0 - beq _0201D736 - mov r1, #0x2 - add r0, #0x3c - strb r1, [r0, #0x0] - b _0201D750 -_0201D736: - add r1, r0, #0x0 - add r1, #0x3c - strb r2, [r1, #0x0] - ldr r1, [r0, #0x44] - cmp r1, #0x0 - bne _0201D74A - bl FUN_0201D754 - add r2, r0, #0x0 - b _0201D750 -_0201D74A: - bl FUN_0201D788 - add r2, r0, #0x0 -_0201D750: - add r0, r2, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0201D754 -FUN_0201D754: ; 0x0201D754 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - ldr r0, [r0, #0x10] - add r2, sp, #0x4 - add r3, sp, #0x0 - bl FUN_0201DF44 - add r4, r0, #0x0 - beq _0201D780 - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_0201D858 - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - ldr r0, [r0, #0x10] - bl FUN_0201DF94 -_0201D780: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201D788 -FUN_0201D788: ; 0x0201D788 - push {r4, lr} - sub sp, #0x18 - add r4, r0, #0x0 - add r0, sp, #0xc - str r0, [sp, #0x0] - add r0, sp, #0x8 - str r0, [sp, #0x4] - ldr r3, [r4, #0x0] - ldr r0, [r4, #0x4] - ldr r3, [r3, #0x10] - add r1, sp, #0x14 - add r2, sp, #0x10 - bl FUN_0201D86C - cmp r0, #0x0 - bne _0201D7AE - add sp, #0x18 - mov r0, #0x0 - pop {r4, pc} -_0201D7AE: - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - add r0, r4, #0x0 - bl FUN_0201D918 - mov r0, #0x1 - str r0, [r4, #0x48] - ldr r0, [sp, #0xc] - str r0, [r4, #0x4c] - ldr r0, [sp, #0x8] - str r0, [r4, #0x50] - add r0, r4, #0x0 - bl FUN_0201D9B0 - ldr r0, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [r4, #0x4] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0xc] - bl FUN_0201D948 - mov r0, #0x1 - add sp, #0x18 - pop {r4, pc} - - thumb_func_start FUN_0201D7E0 -FUN_0201D7E0: ; 0x0201D7E0 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x48] - cmp r1, #0x0 - beq _0201D7EE - bl FUN_0201DE4C -_0201D7EE: - add r0, r4, #0x0 - bl FUN_0201D690 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201D7F8 -FUN_0201D7F8: ; 0x0201D7F8 - push {r4-r5} - ldr r2, _0201D82C ; =0x021C5994 - mov r1, #0x0 - ldr r5, [r2, #0x0] - ldr r2, [r5, #0x4] - cmp r2, #0x0 - ble _0201D824 - ldr r2, [r5, #0x0] - add r4, r2, #0x0 -_0201D80A: - ldr r3, [r4, #0xc] - cmp r0, r3 - bne _0201D81A - mov r0, #0x54 - mul r0, r1 - add r0, r2, r0 - pop {r4-r5} - bx lr -_0201D81A: - ldr r3, [r5, #0x4] - add r1, r1, #0x1 - add r4, #0x54 - cmp r1, r3 - blt _0201D80A -_0201D824: - mov r0, #0x0 - pop {r4-r5} - bx lr - nop -_0201D82C: .word 0x021C5994 - - thumb_func_start FUN_0201D830 -FUN_0201D830: ; 0x0201D830 - cmp r1, #0x1 - bne _0201D83C - mov r1, #0x1 - lsl r1, r1, #0x1a - ldr r2, [r1, #0x0] - b _0201D840 -_0201D83C: - ldr r1, _0201D850 ; =0x04001000 - ldr r2, [r1, #0x0] -_0201D840: - ldr r1, _0201D854 ; =0x00300010 - and r2, r1 - ldr r1, [r0, #0x0] - str r2, [r1, #0x8] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x8] - bx lr - nop -_0201D850: .word 0x04001000 -_0201D854: .word 0x00300010 - - thumb_func_start FUN_0201D858 -FUN_0201D858: ; 0x0201D858 - push {r3, lr} - str r1, [r0, #0x34] - str r2, [r0, #0x38] - ldrb r1, [r0, #0x8] - cmp r1, #0x0 - bne _0201D868 - bl FUN_0201D9B0 -_0201D868: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201D86C -FUN_0201D86C: ; 0x0201D86C - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x1c] - add r6, r2, #0x0 - str r0, [sp, #0x1c] - mov r2, #0x1 - add r0, r5, #0x0 - add r4, r1, #0x0 - str r3, [sp, #0x0] - ldr r7, [sp, #0x18] - tst r0, r2 - beq _0201D8C4 - ldr r1, _0201D914 ; =0x021C5994 - add r0, r3, #0x0 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x2c] - bl FUN_0201DF10 - ldr r1, _0201D914 ; =0x021C5994 - str r0, [r7, #0x0] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - ldr r1, _0201D914 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x34] - bl FUN_0201DD74 - mov r1, #0x0 - mvn r1, r1 - str r0, [r4, #0x0] - cmp r0, r1 - bne _0201D8B8 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} -_0201D8B8: - ldr r1, _0201D914 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x2c] - bl FUN_0201DF3C - str r0, [r4, #0x0] -_0201D8C4: - mov r0, #0x2 - tst r0, r5 - beq _0201D90E - ldr r1, _0201D914 ; =0x021C5994 - ldr r0, [sp, #0x0] - ldr r1, [r1, #0x0] - mov r2, #0x1 - ldr r1, [r1, #0x30] - bl FUN_0201DF10 - ldr r1, [sp, #0x1c] - str r0, [r1, #0x0] - ldr r1, _0201D914 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - ldr r1, _0201D914 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x38] - bl FUN_0201DD74 - mov r1, #0x0 - mvn r1, r1 - str r0, [r6, #0x0] - cmp r0, r1 - bne _0201D902 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} -_0201D902: - ldr r1, _0201D914 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x30] - bl FUN_0201DF3C - str r0, [r6, #0x0] -_0201D90E: - mov r0, #0x1 - pop {r3-r7, pc} - nop -_0201D914: .word 0x021C5994 - - thumb_func_start FUN_0201D918 -FUN_0201D918: ; 0x0201D918 - push {r3-r4} - ldr r4, [r0, #0x4] - mov r3, #0x1 - tst r3, r4 - beq _0201D92C - ldr r3, _0201D944 ; =0x021C5994 - ldr r3, [r3, #0x0] - ldr r3, [r3, #0x1c] - add r1, r1, r3 - str r1, [r0, #0x34] -_0201D92C: - ldr r3, [r0, #0x4] - mov r1, #0x2 - tst r1, r3 - beq _0201D93E - ldr r1, _0201D944 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x20] - add r1, r2, r1 - str r1, [r0, #0x38] -_0201D93E: - pop {r3-r4} - bx lr - nop -_0201D944: .word 0x021C5994 - - thumb_func_start FUN_0201D948 -FUN_0201D948: ; 0x0201D948 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x1 - add r4, r1, #0x0 - add r6, r2, #0x0 - tst r0, r5 - beq _0201D97C - ldr r1, _0201D9AC ; =0x021C5994 - add r0, r3, #0x0 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - ldr r1, _0201D9AC ; =0x021C5994 - add r7, r0, #0x0 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - ldr r2, _0201D9AC ; =0x021C5994 - add r1, r7, #0x0 - ldr r2, [r2, #0x0] - ldr r2, [r2, #0x34] - bl FUN_0201DD18 -_0201D97C: - mov r0, #0x2 - tst r0, r5 - beq _0201D9A8 - ldr r1, _0201D9AC ; =0x021C5994 - ldr r0, [sp, #0x18] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - ldr r1, _0201D9AC ; =0x021C5994 - add r4, r0, #0x0 - ldr r1, [r1, #0x0] - add r0, r6, #0x0 - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - ldr r2, _0201D9AC ; =0x021C5994 - add r1, r4, #0x0 - ldr r2, [r2, #0x0] - ldr r2, [r2, #0x38] - bl FUN_0201DD18 -_0201D9A8: - pop {r3-r7, pc} - nop -_0201D9AC: .word 0x021C5994 - - thumb_func_start FUN_0201D9B0 -FUN_0201D9B0: ; 0x0201D9B0 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x10 - bl FUN_020B1A24 - ldr r1, [r4, #0x4] - cmp r1, #0x3 - beq _0201D9C8 - add r0, r4, #0x0 - bl FUN_0201D9DC - pop {r4, pc} -_0201D9C8: - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_0201D9DC - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_0201D9DC - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201D9DC -FUN_0201D9DC: ; 0x0201D9DC - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0x40] - add r4, r1, #0x0 - cmp r2, #0x0 - beq _0201D9EE - bl FUN_0201D830 - b _0201D9F0 -_0201D9EE: - add r0, r4, #0x0 -_0201D9F0: - cmp r4, #0x1 - bne _0201D9FE - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r5, #0x34] - ldr r2, [r2, #0x0] - b _0201DA04 -_0201D9FE: - ldr r2, _0201DA34 ; =0x04001000 - ldr r1, [r5, #0x38] - ldr r2, [r2, #0x0] -_0201DA04: - cmp r0, #0x0 - ldr r0, [r5, #0x0] - bne _0201DA16 - add r5, #0x10 - add r2, r4, #0x0 - add r3, r5, #0x0 - bl FUN_020B1528 - b _0201DA20 -_0201DA16: - add r5, #0x10 - add r2, r4, #0x0 - add r3, r5, #0x0 - bl FUN_020B1768 -_0201DA20: - cmp r4, #0x1 - bne _0201DA2C - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r0, [r0, #0x0] - pop {r3-r5, pc} -_0201DA2C: - ldr r0, _0201DA34 ; =0x04001000 - ldr r0, [r0, #0x0] - pop {r3-r5, pc} - nop -_0201DA34: .word 0x04001000 - - thumb_func_start FUN_0201DA38 -FUN_0201DA38: ; 0x0201DA38 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x10 - bl FUN_020B1A24 - ldr r1, [r4, #0x4] - cmp r1, #0x3 - beq _0201DA50 - add r0, r4, #0x0 - bl FUN_0201DA64 - pop {r4, pc} -_0201DA50: - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_0201DA64 - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_0201DA64 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201DA64 -FUN_0201DA64: ; 0x0201DA64 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0x40] - add r4, r1, #0x0 - cmp r2, #0x0 - beq _0201DA74 - bl FUN_0201D830 -_0201DA74: - cmp r4, #0x1 - bne _0201DA82 - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r1, [r5, #0x34] - ldr r0, [r0, #0x0] - b _0201DA88 -_0201DA82: - ldr r0, _0201DAA8 ; =0x04001000 - ldr r1, [r5, #0x38] - ldr r0, [r0, #0x0] -_0201DA88: - ldr r0, [r5, #0x0] - add r5, #0x10 - add r2, r4, #0x0 - add r3, r5, #0x0 - bl FUN_020B1340 - cmp r4, #0x1 - bne _0201DAA0 - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r0, [r0, #0x0] - pop {r3-r5, pc} -_0201DAA0: - ldr r0, _0201DAA8 ; =0x04001000 - ldr r0, [r0, #0x0] - pop {r3-r5, pc} - nop -_0201DAA8: .word 0x04001000 - - thumb_func_start FUN_0201DAAC -FUN_0201DAAC: ; 0x0201DAAC - push {r3-r4} - ldr r1, _0201DAE4 ; =0x021C5994 - mov r0, #0x0 - ldr r4, [r1, #0x0] - ldr r1, [r4, #0x4] - cmp r1, #0x0 - ble _0201DADC - ldr r1, [r4, #0x0] - add r3, r1, #0x0 -_0201DABE: - add r2, r3, #0x0 - add r2, #0x3c - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _0201DAD2 - mov r2, #0x54 - mul r2, r0 - add r0, r1, r2 - pop {r3-r4} - bx lr -_0201DAD2: - ldr r2, [r4, #0x4] - add r0, r0, #0x1 - add r3, #0x54 - cmp r0, r2 - blt _0201DABE -_0201DADC: - mov r0, #0x0 - pop {r3-r4} - bx lr - nop -_0201DAE4: .word 0x021C5994 - - thumb_func_start FUN_0201DAE8 -FUN_0201DAE8: ; 0x0201DAE8 - push {r3, lr} - bl GX_GetBankForOBJ - cmp r0, #0x30 - bgt _0201DB18 - bge _0201DB60 - cmp r0, #0x10 - bgt _0201DB12 - bge _0201DB54 - cmp r0, #0x3 - bhi _0201DB90 - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201DB0A: ; jump table (using 16-bit offset) - .short _0201DB32 - _0201DB0A - 2; case 0 - .short _0201DB78 - _0201DB0A - 2; case 1 - .short _0201DB78 - _0201DB0A - 2; case 2 - .short _0201DB84 - _0201DB0A - 2; case 3 -_0201DB12: - cmp r0, #0x20 - beq _0201DB3C - b _0201DB90 -_0201DB18: - cmp r0, #0x50 - bgt _0201DB24 - bge _0201DB60 - cmp r0, #0x40 - beq _0201DB3C - b _0201DB90 -_0201DB24: - cmp r0, #0x60 - bgt _0201DB2C - beq _0201DB48 - b _0201DB90 -_0201DB2C: - cmp r0, #0x70 - beq _0201DB6C - b _0201DB90 -_0201DB32: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x14] - b _0201DB98 -_0201DB3C: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x1 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xe - str r1, [r0, #0x14] - b _0201DB98 -_0201DB48: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x2 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xe - str r1, [r0, #0x14] - b _0201DB98 -_0201DB54: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x1 - ldr r0, [r0, #0x0] - lsl r1, r1, #0x10 - str r1, [r0, #0x14] - b _0201DB98 -_0201DB60: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x5 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xe - str r1, [r0, #0x14] - b _0201DB98 -_0201DB6C: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x6 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xe - str r1, [r0, #0x14] - b _0201DB98 -_0201DB78: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x2 - ldr r0, [r0, #0x0] - lsl r1, r1, #0x10 - str r1, [r0, #0x14] - b _0201DB98 -_0201DB84: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x1 - ldr r0, [r0, #0x0] - lsl r1, r1, #0x12 - str r1, [r0, #0x14] - b _0201DB98 -_0201DB90: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x14] -_0201DB98: - bl GX_GetBankForSubOBJ - cmp r0, #0x0 - beq _0201DBAE - cmp r0, #0x8 - beq _0201DBC2 - mov r1, #0x1 - lsl r1, r1, #0x8 - cmp r0, r1 - beq _0201DBB8 - b _0201DBCE -_0201DBAE: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x18] - b _0201DBD6 -_0201DBB8: - ldr r0, _0201DC38 ; =0x021C5994 - lsl r1, r1, #0x6 - ldr r0, [r0, #0x0] - str r1, [r0, #0x18] - b _0201DBD6 -_0201DBC2: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x2 - ldr r0, [r0, #0x0] - lsl r1, r1, #0x10 - str r1, [r0, #0x18] - b _0201DBD6 -_0201DBCE: - ldr r0, _0201DC38 ; =0x021C5994 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x18] -_0201DBD6: - ldr r0, _0201DC38 ; =0x021C5994 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x24] - ldr r1, [r1, #0x2c] - bl FUN_0201DF3C - ldr r1, _0201DC38 ; =0x021C5994 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x14] - sub r0, r2, r0 - str r0, [r3, #0x1c] - ldr r1, [r1, #0x0] - ldr r0, [r1, #0x28] - ldr r1, [r1, #0x30] - bl FUN_0201DF3C - ldr r1, _0201DC38 ; =0x021C5994 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x18] - sub r0, r2, r0 - str r0, [r3, #0x20] - ldr r1, [r1, #0x0] - mov r2, #0x0 - ldr r0, [r1, #0x1c] - cmp r0, #0x0 - blt _0201DC12 - ldr r0, [r1, #0x20] - cmp r0, #0x0 - blt _0201DC12 - mov r2, #0x1 -_0201DC12: - cmp r2, #0x0 - bne _0201DC1A - bl ErrorHandling -_0201DC1A: - ldr r0, _0201DC38 ; =0x021C5994 - mov r2, #0x0 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x1c] - cmp r0, #0x0 - blt _0201DC2E - ldr r0, [r1, #0x20] - cmp r0, #0x0 - blt _0201DC2E - mov r2, #0x1 -_0201DC2E: - cmp r2, #0x0 - bne _0201DC36 - bl ErrorHandling -_0201DC36: - pop {r3, pc} - .balign 4 -_0201DC38: .word 0x021C5994 - - thumb_func_start FUN_0201DC3C -FUN_0201DC3C: ; 0x0201DC3C - push {r3, lr} - ldr r0, _0201DC54 ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x34] - bl FUN_0201DD00 - ldr r0, _0201DC54 ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0201DD00 - pop {r3, pc} - .balign 4 -_0201DC54: .word 0x021C5994 - - thumb_func_start FUN_0201DC58 -FUN_0201DC58: ; 0x0201DC58 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _0201DCBC ; =0x021C5994 - add r4, r1, #0x0 - ldr r1, [r0, #0x0] - add r6, r2, #0x0 - str r5, [r1, #0x24] - ldr r1, [r0, #0x0] - str r4, [r1, #0x28] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x34] - cmp r0, #0x0 - beq _0201DC76 - bl FUN_02016A18 -_0201DC76: - ldr r0, _0201DCBC ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - cmp r0, #0x0 - beq _0201DC84 - bl FUN_02016A18 -_0201DC84: - ldr r0, _0201DCBC ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x24] - cmp r0, #0x0 - beq _0201DC9C - add r0, r6, #0x0 - lsr r1, r5, #0x3 - bl FUN_02016998 - ldr r1, _0201DCBC ; =0x021C5994 - ldr r1, [r1, #0x0] - str r0, [r1, #0x34] -_0201DC9C: - ldr r0, _0201DCBC ; =0x021C5994 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - cmp r0, #0x0 - beq _0201DCB4 - add r0, r6, #0x0 - lsr r1, r4, #0x3 - bl FUN_02016998 - ldr r1, _0201DCBC ; =0x021C5994 - ldr r1, [r1, #0x0] - str r0, [r1, #0x38] -_0201DCB4: - bl FUN_0201DC3C - pop {r4-r6, pc} - nop -_0201DCBC: .word 0x021C5994 - - thumb_func_start FUN_0201DCC0 -FUN_0201DCC0: ; 0x0201DCC0 - push {r3, lr} - cmp r0, #0x0 - beq _0201DCE2 - ldr r1, _0201DCE4 ; =0x021C5994 - ldr r2, [r1, #0x0] - ldr r1, [r2, #0x34] - cmp r0, r1 - bne _0201DCDA - mov r1, #0x0 - str r1, [r2, #0x24] - bl FUN_02016A18 - pop {r3, pc} -_0201DCDA: - mov r1, #0x0 - str r1, [r2, #0x28] - bl FUN_02016A18 -_0201DCE2: - pop {r3, pc} - .balign 4 -_0201DCE4: .word 0x021C5994 - - thumb_func_start FUN_0201DCE8 -FUN_0201DCE8: ; 0x0201DCE8 - ldr r1, _0201DCFC ; =0x021C5994 - ldr r2, [r1, #0x0] - ldr r1, [r2, #0x34] - cmp r0, r1 - bne _0201DCF6 - ldr r0, [r2, #0x24] - bx lr -_0201DCF6: - ldr r0, [r2, #0x28] - bx lr - nop -_0201DCFC: .word 0x021C5994 - - thumb_func_start FUN_0201DD00 -FUN_0201DD00: ; 0x0201DD00 - push {r4, lr} - add r4, r0, #0x0 - beq _0201DD16 - bl FUN_0201DCE8 - add r2, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x0 - lsr r2, r2, #0x3 - bl Call_FillMemWithValue -_0201DD16: - pop {r4, pc} - - thumb_func_start FUN_0201DD18 -FUN_0201DD18: ; 0x0201DD18 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - beq _0201DD6E - add r0, r4, #0x0 - bl FUN_0201DCE8 - add r6, r5, r6 - add r7, r0, #0x0 - cmp r5, r6 - bhs _0201DD6E -_0201DD32: - cmp r5, r7 - bhs _0201DD6E - add r0, r5, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - bl FUN_0201DFE4 - add r0, sp, #0x0 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - lsl r0, r1 - ldr r1, [sp, #0x4] - ldrb r1, [r4, r1] - tst r0, r1 - beq _0201DD54 - bl ErrorHandling -_0201DD54: - add r2, sp, #0x0 - ldrb r3, [r2, #0x0] - ldr r1, [sp, #0x4] - mov r2, #0x1 - lsl r2, r3 - lsl r2, r2, #0x18 - ldrb r0, [r4, r1] - lsr r2, r2, #0x18 - add r5, r5, #0x1 - orr r0, r2 - strb r0, [r4, r1] - cmp r5, r6 - blo _0201DD32 -_0201DD6E: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201DD74 -FUN_0201DD74: ; 0x0201DD74 - push {r3-r7, lr} - sub sp, #0x10 - add r7, r0, #0x0 - str r1, [sp, #0x0] - cmp r1, #0x0 - beq _0201DDF2 - add r0, r1, #0x0 - bl FUN_0201DCE8 - mov r6, #0x0 - str r0, [sp, #0x4] - cmp r0, #0x0 - bls _0201DDF2 -_0201DD8E: - add r0, r6, #0x0 - add r1, sp, #0xc - add r2, sp, #0x8 - bl FUN_0201DFE4 - add r0, sp, #0x8 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - mov r4, #0x0 - lsl r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - b _0201DDD0 -_0201DDA8: - add r5, r6, r4 - add r0, r5, #0x0 - add r1, sp, #0xc - add r2, sp, #0x8 - bl FUN_0201DFE4 - add r0, sp, #0x8 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - lsl r0, r1 - lsl r0, r0, #0x18 - ldr r1, [sp, #0x4] - lsr r0, r0, #0x18 - cmp r5, r1 - blo _0201DDCE - mov r0, #0x0 - add sp, #0x10 - mvn r0, r0 - pop {r3-r7, pc} -_0201DDCE: - add r4, r4, #0x1 -_0201DDD0: - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x0] - ldrb r1, [r1, r2] - tst r0, r1 - bne _0201DDDE - cmp r4, r7 - bls _0201DDA8 -_0201DDDE: - cmp r4, r7 - bls _0201DDE8 - add sp, #0x10 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0201DDE8: - add r0, r6, r4 - add r6, r0, #0x1 - ldr r0, [sp, #0x4] - cmp r6, r0 - blo _0201DD8E -_0201DDF2: - mov r0, #0x0 - mvn r0, r0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201DDFC -FUN_0201DDFC: ; 0x0201DDFC - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r2, #0x0 - beq _0201DE46 - add r6, r5, r1 - cmp r5, r6 - bhs _0201DE46 - add r7, sp, #0x0 -_0201DE0E: - add r0, r5, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - bl FUN_0201DFE4 - ldrb r1, [r7, #0x0] - mov r0, #0x1 - lsl r0, r1 - ldr r1, [sp, #0x4] - ldrb r1, [r4, r1] - tst r0, r1 - bne _0201DE2A - bl ErrorHandling -_0201DE2A: - ldrb r0, [r7, #0x0] - mov r1, #0x1 - ldr r3, [sp, #0x4] - lsl r1, r0 - mov r0, #0xff - eor r0, r1 - lsl r0, r0, #0x18 - ldrb r2, [r4, r3] - lsr r0, r0, #0x18 - add r5, r5, #0x1 - and r0, r2 - strb r0, [r4, r3] - cmp r5, r6 - blo _0201DE0E -_0201DE46: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201DE4C -FUN_0201DE4C: ; 0x0201DE4C - push {r3-r5, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - mov r1, #0x1 - tst r0, r1 - beq _0201DE8A - add r0, r4, #0x0 - add r0, #0x10 - bl FUN_020B1A14 - ldr r1, _0201DECC ; =0x021C5994 - ldr r2, [r1, #0x0] - ldr r1, [r2, #0x1c] - sub r0, r0, r1 - ldr r1, [r2, #0x2c] - bl FUN_0201DF2C - ldr r1, _0201DECC ; =0x021C5994 - add r5, r0, #0x0 - ldr r1, [r1, #0x0] - ldr r0, [r4, #0x4c] - ldr r1, [r1, #0x2c] - bl FUN_0201DF2C - ldr r2, _0201DECC ; =0x021C5994 - add r1, r0, #0x0 - ldr r2, [r2, #0x0] - add r0, r5, #0x0 - ldr r2, [r2, #0x34] - bl FUN_0201DDFC -_0201DE8A: - ldr r0, [r4, #0x4] - mov r1, #0x2 - tst r0, r1 - beq _0201DEC4 - add r0, r4, #0x0 - add r0, #0x10 - bl FUN_020B1A14 - ldr r1, _0201DECC ; =0x021C5994 - ldr r2, [r1, #0x0] - ldr r1, [r2, #0x20] - sub r0, r0, r1 - ldr r1, [r2, #0x30] - bl FUN_0201DF2C - ldr r1, _0201DECC ; =0x021C5994 - add r5, r0, #0x0 - ldr r1, [r1, #0x0] - ldr r0, [r4, #0x50] - ldr r1, [r1, #0x30] - bl FUN_0201DF2C - ldr r2, _0201DECC ; =0x021C5994 - add r1, r0, #0x0 - ldr r2, [r2, #0x0] - add r0, r5, #0x0 - ldr r2, [r2, #0x38] - bl FUN_0201DDFC -_0201DEC4: - mov r0, #0x0 - str r0, [r4, #0x48] - pop {r3-r5, pc} - nop -_0201DECC: .word 0x021C5994 - - thumb_func_start FUN_0201DED0 -FUN_0201DED0: ; 0x0201DED0 - ldr r1, _0201DF04 ; =0x00100010 - cmp r0, r1 - bgt _0201DEDE - bge _0201DEF4 - cmp r0, #0x10 - beq _0201DEF0 - b _0201DF00 -_0201DEDE: - ldr r1, _0201DF08 ; =0x00200010 - cmp r0, r1 - bgt _0201DEE8 - beq _0201DEF8 - b _0201DF00 -_0201DEE8: - ldr r1, _0201DF0C ; =0x00300010 - cmp r0, r1 - beq _0201DEFC - b _0201DF00 -_0201DEF0: - mov r0, #0x1 - bx lr -_0201DEF4: - mov r0, #0x2 - bx lr -_0201DEF8: - mov r0, #0x4 - bx lr -_0201DEFC: - mov r0, #0x8 - bx lr -_0201DF00: - mov r0, #0x1 - bx lr - .balign 4 -_0201DF04: .word 0x00100010 -_0201DF08: .word 0x00200010 -_0201DF0C: .word 0x00300010 - - thumb_func_start FUN_0201DF10 -FUN_0201DF10: ; 0x0201DF10 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl _s32_div_f - cmp r1, #0x0 - beq _0201DF28 - sub r5, r5, r1 - cmp r6, #0x1 - bne _0201DF28 - add r5, r5, r4 -_0201DF28: - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0201DF2C -FUN_0201DF2C: ; 0x0201DF2C - asr r2, r0, #0x4 - lsr r2, r2, #0x1b - add r2, r0, r2 - ldr r3, _0201DF38 ; =_s32_div_f - asr r0, r2, #0x5 - bx r3 - .balign 4 -_0201DF38: .word _s32_div_f - - thumb_func_start FUN_0201DF3C -FUN_0201DF3C: ; 0x0201DF3C - mul r1, r0 - lsl r0, r1, #0x5 - bx lr - .balign 4 - - thumb_func_start FUN_0201DF44 -FUN_0201DF44: ; 0x0201DF44 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 - mov r0, #0x1 - add r2, r4, #0x0 - add r7, r3, #0x0 - tst r2, r0 - beq _0201DF6E - ldr r2, _0201DF90 ; =0x021C5994 - ldr r2, [r2, #0x0] - ldr r6, [r2, #0xc] - ldr r2, [r2, #0x1c] - add r3, r6, r5 - cmp r3, r2 - bls _0201DF6C - bl ErrorHandling - mov r0, #0x0 - b _0201DF6E -_0201DF6C: - str r6, [r1, #0x0] -_0201DF6E: - mov r1, #0x2 - tst r1, r4 - beq _0201DF8C - ldr r1, _0201DF90 ; =0x021C5994 - ldr r1, [r1, #0x0] - ldr r3, [r1, #0x10] - ldr r1, [r1, #0x20] - add r2, r3, r5 - cmp r2, r1 - bls _0201DF8A - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} -_0201DF8A: - str r3, [r7, #0x0] -_0201DF8C: - pop {r3-r7, pc} - nop -_0201DF90: .word 0x021C5994 - - thumb_func_start FUN_0201DF94 -FUN_0201DF94: ; 0x0201DF94 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - mov r2, #0x1 - add r0, r4, #0x0 - tst r0, r2 - beq _0201DFBC - ldr r0, _0201DFE0 ; =0x021C5994 - ldr r3, [r0, #0x0] - ldr r1, [r3, #0xc] - add r1, r1, r5 - str r1, [r3, #0xc] - ldr r1, [r0, #0x0] - ldr r0, [r1, #0xc] - ldr r1, [r1, #0x2c] - bl FUN_0201DF10 - ldr r1, _0201DFE0 ; =0x021C5994 - ldr r1, [r1, #0x0] - str r0, [r1, #0xc] -_0201DFBC: - mov r0, #0x2 - tst r0, r4 - beq _0201DFDE - ldr r0, _0201DFE0 ; =0x021C5994 - ldr r2, [r0, #0x0] - ldr r1, [r2, #0x10] - add r1, r1, r5 - str r1, [r2, #0x10] - ldr r1, [r0, #0x0] - mov r2, #0x1 - ldr r0, [r1, #0x10] - ldr r1, [r1, #0x30] - bl FUN_0201DF10 - ldr r1, _0201DFE0 ; =0x021C5994 - ldr r1, [r1, #0x0] - str r0, [r1, #0x10] -_0201DFDE: - pop {r3-r5, pc} - .balign 4 -_0201DFE0: .word 0x021C5994 - - thumb_func_start FUN_0201DFE4 -FUN_0201DFE4: ; 0x0201DFE4 - asr r3, r0, #0x3 - str r3, [r1, #0x0] - mov r1, #0x7 - and r0, r1 - strb r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_0201DFF0 -FUN_0201DFF0: ; 0x0201DFF0 - push {r3-r4} - sub r0, r1, r0 - ldr r4, [sp, #0x8] - str r0, [r3, #0x0] - bpl _0201E006 - add r0, r2, r0 - str r0, [r4, #0x0] - mov r0, #0x0 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_0201E006: - str r2, [r4, #0x0] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201E00C -FUN_0201E00C: ; 0x0201E00C - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, _0201E064 ; =0x021C5998 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201E060 - add r0, r4, #0x0 - mov r1, #0x28 - bl FUN_02016998 - add r1, r0, #0x0 - ldr r0, _0201E064 ; =0x021C5998 - mov r2, #0x28 - str r1, [r0, #0x0] - mov r0, #0x0 - bl MIi_CpuClear32 - ldr r0, _0201E064 ; =0x021C5998 - mov r1, #0x30 - ldr r0, [r0, #0x0] - mul r1, r6 - str r6, [r0, #0x4] - add r0, r4, #0x0 - bl FUN_02016998 - ldr r7, _0201E064 ; =0x021C5998 - mov r4, #0x0 - ldr r1, [r7, #0x0] - cmp r6, #0x0 - str r0, [r1, #0x0] - ble _0201E060 - add r5, r4, #0x0 -_0201E04E: - ldr r0, [r7, #0x0] - ldr r0, [r0, #0x0] - add r0, r0, r5 - bl FUN_0201E2F8 - add r4, r4, #0x1 - add r5, #0x30 - cmp r4, r6 - blt _0201E04E -_0201E060: - pop {r3-r7, pc} - nop -_0201E064: .word 0x021C5998 - - thumb_func_start FUN_0201E068 -FUN_0201E068: ; 0x0201E068 - cmp r1, #0x1 - bne _0201E078 - ldr r1, _0201E088 ; =0x021C5998 - ldr r2, [r1, #0x0] - ldrh r1, [r2, #0x24] - orr r0, r1 - strh r0, [r2, #0x24] - bx lr -_0201E078: - cmp r1, #0x2 - bne _0201E086 - ldr r1, _0201E088 ; =0x021C5998 - ldr r2, [r1, #0x0] - ldrh r1, [r2, #0x26] - orr r0, r1 - strh r0, [r2, #0x26] -_0201E086: - bx lr - .balign 4 -_0201E088: .word 0x021C5998 - - thumb_func_start FUN_0201E08C -FUN_0201E08C: ; 0x0201E08C - push {r3, lr} - ldr r0, _0201E0B4 ; =0x021C5998 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201E0B2 - bl FUN_0201E1F0 - ldr r0, _0201E0B4 ; =0x021C5998 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201E0B4 ; =0x021C5998 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201E0B4 ; =0x021C5998 - mov r1, #0x0 - str r1, [r0, #0x0] -_0201E0B2: - pop {r3, pc} - .balign 4 -_0201E0B4: .word 0x021C5998 - - thumb_func_start FUN_0201E0B8 -FUN_0201E0B8: ; 0x0201E0B8 - bx lr - .balign 4 - - thumb_func_start FUN_0201E0BC -FUN_0201E0BC: ; 0x0201E0BC - push {r3, lr} - ldr r0, _0201E0E0 ; =0x021C5998 - mov r2, #0x0 - ldr r1, [r0, #0x0] - str r2, [r1, #0xc] - ldr r1, [r0, #0x0] - str r2, [r1, #0x10] - ldr r1, [r0, #0x0] - str r2, [r1, #0x14] - ldr r0, [r0, #0x0] - str r2, [r0, #0x18] - bl FUN_0201E464 - ldr r0, _0201E0E0 ; =0x021C5998 - ldr r0, [r0, #0x0] - bl FUN_0201E574 - pop {r3, pc} - .balign 4 -_0201E0E0: .word 0x021C5998 - - thumb_func_start FUN_0201E0E4 -FUN_0201E0E4: ; 0x0201E0E4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0201E428 - add r4, r0, #0x0 - bne _0201E0F8 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201E0F8: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201E2C4 - cmp r0, #0x0 - bne _0201E108 - mov r0, #0x0 - pop {r3-r5, pc} -_0201E108: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201E314 - cmp r0, #0x0 - bne _0201E11E - ldr r0, [r5, #0xc] - bl FUN_0201E1C8 - mov r0, #0x0 - pop {r3-r5, pc} -_0201E11E: - add r0, r4, #0x0 - bl FUN_0201E57C - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_0201E128 -FUN_0201E128: ; 0x0201E128 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0201E428 - add r4, r0, #0x0 - bne _0201E13C - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201E13C: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201E2C4 - cmp r0, #0x0 - bne _0201E14C - mov r0, #0x0 - pop {r3-r5, pc} -_0201E14C: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201E36C - cmp r0, #0x0 - bne _0201E162 - ldr r0, [r5, #0xc] - bl FUN_0201E1C8 - mov r0, #0x0 - pop {r3-r5, pc} -_0201E162: - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201E168 -FUN_0201E168: ; 0x0201E168 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - bne _0201E174 - bl ErrorHandling -_0201E174: - add r0, r4, #0x0 - bl FUN_0201E3F0 - add r4, r0, #0x0 - bne _0201E182 - bl ErrorHandling -_0201E182: - str r5, [r4, #0x0] - ldr r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201E19A - ldr r3, [r4, #0x8] - ldr r1, [r4, #0x24] - ldr r2, [r5, #0xc] - mov r0, #0xe - lsl r3, r3, #0x5 - bl FUN_0201C2C8 -_0201E19A: - ldr r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201E1B0 - ldr r3, [r4, #0x8] - ldr r1, [r4, #0x28] - ldr r2, [r5, #0xc] - mov r0, #0x1e - lsl r3, r3, #0x5 - bl FUN_0201C2C8 -_0201E1B0: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201E1B4 -FUN_0201E1B4: ; 0x0201E1B4 - push {r3, lr} - bl FUN_0201E3F0 - cmp r0, #0x0 - beq _0201E1C2 - mov r0, #0x1 - pop {r3, pc} -_0201E1C2: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201E1C8 -FUN_0201E1C8: ; 0x0201E1C8 - push {r4, lr} - bl FUN_0201E3F0 - add r4, r0, #0x0 - bne _0201E1D6 - bl ErrorHandling -_0201E1D6: - add r0, r4, #0x0 - add r0, #0x2c - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _0201E1EC - add r0, r4, #0x0 - bl FUN_0201E5B8 - add r0, r4, #0x0 - bl FUN_0201E2BC -_0201E1EC: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201E1F0 -FUN_0201E1F0: ; 0x0201E1F0 - push {r4-r6, lr} - ldr r6, _0201E22C ; =0x021C5998 - mov r4, #0x0 - ldr r1, [r6, #0x0] - ldr r0, [r1, #0x4] - cmp r0, #0x0 - ble _0201E228 - add r5, r4, #0x0 -_0201E200: - ldr r1, [r1, #0x0] - add r0, r1, r5 - add r0, #0x2c - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _0201E21C - add r0, r1, r5 - bl FUN_0201E5B8 - ldr r0, [r6, #0x0] - ldr r0, [r0, #0x0] - add r0, r0, r5 - bl FUN_0201E2BC -_0201E21C: - ldr r1, [r6, #0x0] - add r4, r4, #0x1 - ldr r0, [r1, #0x4] - add r5, #0x30 - cmp r4, r0 - blt _0201E200 -_0201E228: - pop {r4-r6, pc} - nop -_0201E22C: .word 0x021C5998 - - thumb_func_start FUN_0201E230 -FUN_0201E230: ; 0x0201E230 - push {r3, lr} - bl FUN_0201E3F0 - cmp r0, #0x0 - bne _0201E244 - bne _0201E240 - bl ErrorHandling -_0201E240: - mov r0, #0x0 - pop {r3, pc} -_0201E244: - add r1, r0, #0x0 - add r1, #0x2c - ldrb r1, [r1, #0x0] - cmp r1, #0x1 - bne _0201E252 - add r0, #0x10 - pop {r3, pc} -_0201E252: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201E258 -FUN_0201E258: ; 0x0201E258 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_0201E3F0 - cmp r0, #0x0 - bne _0201E26E - bne _0201E26A - bl ErrorHandling -_0201E26A: - mov r0, #0x0 - pop {r4, pc} -_0201E26E: - add r1, r0, #0x0 - add r1, #0x2c - ldrb r1, [r1, #0x0] - cmp r1, #0x1 - beq _0201E27C - mov r0, #0x0 - pop {r4, pc} -_0201E27C: - ldr r1, [r0, #0x0] - ldr r1, [r1, #0x4] - cmp r1, #0x0 - beq _0201E288 - mov r1, #0x1 - str r1, [r4, #0x18] -_0201E288: - add r0, #0x10 - pop {r4, pc} - - thumb_func_start FUN_0201E28C -FUN_0201E28C: ; 0x0201E28C - push {r4, lr} - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _0201E29A - mov r4, #0x2 - lsl r4, r4, #0x8 - b _0201E2A6 -_0201E29A: - ldr r2, [r0, #0x0] - cmp r2, #0x4 - bne _0201E2A4 - mov r4, #0x0 - b _0201E2A6 -_0201E2A4: - mov r4, #0x20 -_0201E2A6: - cmp r4, #0x0 - beq _0201E2B6 - bl FUN_020B19C4 - add r1, r4, #0x0 - bl _u32_div_f - pop {r4, pc} -_0201E2B6: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201E2BC -FUN_0201E2BC: ; 0x0201E2BC - ldr r3, _0201E2C0 ; =FUN_0201E2F8 - bx r3 - .balign 4 -_0201E2C0: .word FUN_0201E2F8 - - thumb_func_start FUN_0201E2C4 -FUN_0201E2C4: ; 0x0201E2C4 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - add r4, r1, #0x0 - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_0201E1B4 - cmp r0, #0x1 - bne _0201E2E0 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201E2E0: - ldr r0, [r5, #0xc] - add r1, r4, #0x0 - str r0, [r4, #0xc] - ldr r0, [r5, #0x4] - add r1, #0x2c - str r0, [r4, #0x4] - mov r0, #0x1 - strb r0, [r1, #0x0] - ldr r1, [r5, #0x8] - str r1, [r4, #0x8] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201E2F8 -FUN_0201E2F8: ; 0x0201E2F8 - push {r4, lr} - mov r1, #0x0 - mov r2, #0x30 - add r4, r0, #0x0 - bl Call_FillMemWithValue - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0xc] - add r4, #0x10 - add r0, r4, #0x0 - bl FUN_020B19DC - pop {r4, pc} - - thumb_func_start FUN_0201E314 -FUN_0201E314: ; 0x0201E314 - push {r3-r6, lr} - sub sp, #0x4 - add r6, r1, #0x0 - ldr r0, [r6, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0201E334 - ldr r0, _0201E368 ; =0x021C5998 - ldr r0, [r0, #0x0] - add r4, r0, #0x0 - add r5, r0, #0x0 - ldr r3, [r0, #0x1c] - add r4, #0x14 - add r5, #0x18 - ldr r0, [r0, #0x20] - b _0201E344 -_0201E334: - ldr r0, _0201E368 ; =0x021C5998 - mov r3, #0x2 - ldr r5, [r0, #0x0] - lsl r3, r3, #0x8 - add r4, r5, #0x0 - add r4, #0xc - add r5, #0x10 - add r0, r3, #0x0 -_0201E344: - str r0, [sp, #0x0] - ldr r1, [r4, #0x0] - ldr r2, [r5, #0x0] - add r0, r6, #0x0 - bl FUN_0201E5F4 - add r0, r6, #0x0 - bl FUN_0201E4AC - add r0, r6, #0x0 - add r1, r4, #0x0 - add r2, r5, #0x0 - bl FUN_0201E640 - mov r0, #0x1 - add sp, #0x4 - pop {r3-r6, pc} - nop -_0201E368: .word 0x021C5998 - - thumb_func_start FUN_0201E36C -FUN_0201E36C: ; 0x0201E36C - push {r4-r6, lr} - add r5, r1, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0201E37C - bl ErrorHandling -_0201E37C: - ldr r1, [r5, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201E39E - ldr r0, _0201E3EC ; =0x021C5998 - ldr r1, [r5, #0x8] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x24] - bl FUN_0201E534 - add r6, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r6, r0 - bne _0201E39E - mov r0, #0x0 - pop {r4-r6, pc} -_0201E39E: - ldr r1, [r5, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201E3C0 - ldr r0, _0201E3EC ; =0x021C5998 - ldr r1, [r5, #0x8] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x26] - bl FUN_0201E534 - add r4, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r4, r0 - bne _0201E3C0 - mov r0, #0x0 - pop {r4-r6, pc} -_0201E3C0: - ldr r1, [r5, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201E3CA - str r6, [r5, #0x24] -_0201E3CA: - ldr r1, [r5, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201E3D4 - str r4, [r5, #0x28] -_0201E3D4: - ldr r0, [r5, #0x8] - lsl r1, r0, #0x5 - ldr r0, [r5, #0x0] - str r1, [r0, #0x8] - add r0, r5, #0x0 - bl FUN_0201E4BC - add r0, r5, #0x0 - bl FUN_0201E57C - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 -_0201E3EC: .word 0x021C5998 - - thumb_func_start FUN_0201E3F0 -FUN_0201E3F0: ; 0x0201E3F0 - push {r4-r5} - ldr r2, _0201E424 ; =0x021C5998 - mov r1, #0x0 - ldr r5, [r2, #0x0] - ldr r2, [r5, #0x4] - cmp r2, #0x0 - ble _0201E41C - ldr r2, [r5, #0x0] - add r4, r2, #0x0 -_0201E402: - ldr r3, [r4, #0xc] - cmp r0, r3 - bne _0201E412 - mov r0, #0x30 - mul r0, r1 - add r0, r2, r0 - pop {r4-r5} - bx lr -_0201E412: - ldr r3, [r5, #0x4] - add r1, r1, #0x1 - add r4, #0x30 - cmp r1, r3 - blt _0201E402 -_0201E41C: - mov r0, #0x0 - pop {r4-r5} - bx lr - nop -_0201E424: .word 0x021C5998 - - thumb_func_start FUN_0201E428 -FUN_0201E428: ; 0x0201E428 - push {r3-r4} - ldr r1, _0201E460 ; =0x021C5998 - mov r0, #0x0 - ldr r4, [r1, #0x0] - ldr r1, [r4, #0x4] - cmp r1, #0x0 - ble _0201E458 - ldr r1, [r4, #0x0] - add r3, r1, #0x0 -_0201E43A: - add r2, r3, #0x0 - add r2, #0x2c - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _0201E44E - mov r2, #0x30 - mul r2, r0 - add r0, r1, r2 - pop {r3-r4} - bx lr -_0201E44E: - ldr r2, [r4, #0x4] - add r0, r0, #0x1 - add r3, #0x30 - cmp r0, r2 - blt _0201E43A -_0201E458: - mov r0, #0x0 - pop {r3-r4} - bx lr - nop -_0201E460: .word 0x021C5998 - - thumb_func_start FUN_0201E464 -FUN_0201E464: ; 0x0201E464 - push {r3, lr} - bl GX_GetBankForOBJExtPltt - cmp r0, #0x20 - beq _0201E472 - cmp r0, #0x40 - bne _0201E47E -_0201E472: - ldr r0, _0201E4A8 ; =0x021C5998 - mov r1, #0x2 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xc - str r1, [r0, #0x1c] - b _0201E486 -_0201E47E: - ldr r0, _0201E4A8 ; =0x021C5998 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x1c] -_0201E486: - bl GX_GetBankForSubOBJExtPltt - mov r1, #0x1 - lsl r1, r1, #0x8 - cmp r0, r1 - bne _0201E49C - ldr r0, _0201E4A8 ; =0x021C5998 - lsl r1, r1, #0x5 - ldr r0, [r0, #0x0] - str r1, [r0, #0x20] - pop {r3, pc} -_0201E49C: - ldr r0, _0201E4A8 ; =0x021C5998 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x20] - pop {r3, pc} - nop -_0201E4A8: .word 0x021C5998 - - thumb_func_start FUN_0201E4AC -FUN_0201E4AC: ; 0x0201E4AC - ldr r1, [r0, #0x8] - ldr r3, _0201E4B8 ; =FUN_0201E4BC - lsl r2, r1, #0x5 - ldr r1, [r0, #0x0] - str r2, [r1, #0x8] - bx r3 - .balign 4 -_0201E4B8: .word FUN_0201E4BC - - thumb_func_start FUN_0201E4BC -FUN_0201E4BC: ; 0x0201E4BC - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x10 - bl FUN_020B19DC - ldr r0, [r4, #0x4] - mov r2, #0x1 - tst r0, r2 - beq _0201E4DA - add r3, r4, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x24] - add r3, #0x10 - bl FUN_020B1240 -_0201E4DA: - ldr r0, [r4, #0x4] - mov r2, #0x2 - tst r0, r2 - beq _0201E4EE - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x28] - add r4, #0x10 - add r3, r4, #0x0 - bl FUN_020B1240 -_0201E4EE: - pop {r4, pc} - - thumb_func_start FUN_0201E4F0 -FUN_0201E4F0: ; 0x0201E4F0 - push {r4-r7} - mov r3, #0x0 - cmp r1, #0x0 - ble _0201E50E - mov r5, #0x1 -_0201E4FA: - ldrh r7, [r0, #0x0] - add r4, r2, r3 - add r6, r5, #0x0 - lsl r6, r4 - add r4, r7, #0x0 - orr r4, r6 - add r3, r3, #0x1 - strh r4, [r0, #0x0] - cmp r3, r1 - blt _0201E4FA -_0201E50E: - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_0201E514 -FUN_0201E514: ; 0x0201E514 - push {r4-r7} - mov r4, #0x0 - cmp r1, #0x0 - ble _0201E530 - mov r6, #0x1 -_0201E51E: - add r5, r2, r4 - add r7, r6, #0x0 - ldrh r3, [r0, #0x0] - lsl r7, r5 - bic r3, r7 - add r4, r4, #0x1 - strh r3, [r0, #0x0] - cmp r4, r1 - blt _0201E51E -_0201E530: - pop {r4-r7} - bx lr - - thumb_func_start FUN_0201E534 -FUN_0201E534: ; 0x0201E534 - push {r4-r7} - mov r3, #0x0 - mov r6, #0x1 - add r2, r3, #0x0 -_0201E53C: - add r4, r2, #0x0 - b _0201E546 -_0201E540: - cmp r5, #0x10 - bge _0201E554 - add r4, r4, #0x1 -_0201E546: - add r5, r3, r4 - add r7, r6, #0x0 - lsl r7, r5 - tst r7, r0 - bne _0201E554 - cmp r4, r1 - blt _0201E540 -_0201E554: - cmp r4, r1 - bge _0201E560 - add r3, r3, r4 - add r3, r3, #0x1 - cmp r3, #0x10 - blt _0201E53C -_0201E560: - cmp r3, #0x10 - blt _0201E56C - mov r0, #0x0 - mvn r0, r0 - pop {r4-r7} - bx lr -_0201E56C: - lsl r0, r3, #0x5 - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_0201E574 -FUN_0201E574: ; 0x0201E574 - mov r1, #0x0 - strh r1, [r0, #0x24] - strh r1, [r0, #0x26] - bx lr - - thumb_func_start FUN_0201E57C -FUN_0201E57C: ; 0x0201E57C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201E598 - ldr r0, _0201E5B4 ; =0x021C5998 - ldr r2, [r4, #0x24] - ldr r0, [r0, #0x0] - ldr r1, [r4, #0x8] - add r0, #0x24 - lsr r2, r2, #0x5 - bl FUN_0201E4F0 -_0201E598: - ldr r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201E5B0 - ldr r0, _0201E5B4 ; =0x021C5998 - ldr r2, [r4, #0x28] - ldr r0, [r0, #0x0] - ldr r1, [r4, #0x8] - add r0, #0x26 - lsr r2, r2, #0x5 - bl FUN_0201E4F0 -_0201E5B0: - pop {r4, pc} - nop -_0201E5B4: .word 0x021C5998 - - thumb_func_start FUN_0201E5B8 -FUN_0201E5B8: ; 0x0201E5B8 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201E5D4 - ldr r0, _0201E5F0 ; =0x021C5998 - ldr r2, [r4, #0x24] - ldr r0, [r0, #0x0] - ldr r1, [r4, #0x8] - add r0, #0x24 - lsr r2, r2, #0x5 - bl FUN_0201E514 -_0201E5D4: - ldr r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201E5EC - ldr r0, _0201E5F0 ; =0x021C5998 - ldr r2, [r4, #0x28] - ldr r0, [r0, #0x0] - ldr r1, [r4, #0x8] - add r0, #0x26 - lsr r2, r2, #0x5 - bl FUN_0201E514 -_0201E5EC: - pop {r4, pc} - nop -_0201E5F0: .word 0x021C5998 - - thumb_func_start FUN_0201E5F4 -FUN_0201E5F4: ; 0x0201E5F4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - ldr r2, [r5, #0x4] - mov r0, #0x1 - tst r2, r0 - beq _0201E61A - ldr r2, [r5, #0x8] - lsl r2, r2, #0x5 - add r2, r1, r2 - cmp r2, r3 - bls _0201E618 - bl ErrorHandling - bl FUN_0201E0B8 - mov r0, #0x0 - b _0201E61A -_0201E618: - str r1, [r5, #0x24] -_0201E61A: - ldr r2, [r5, #0x4] - mov r1, #0x2 - tst r1, r2 - beq _0201E63C - ldr r1, [r5, #0x8] - lsl r1, r1, #0x5 - add r2, r4, r1 - ldr r1, [sp, #0x10] - cmp r2, r1 - bls _0201E63A - bl ErrorHandling - bl FUN_0201E0B8 - mov r0, #0x0 - pop {r3-r5, pc} -_0201E63A: - str r4, [r5, #0x28] -_0201E63C: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201E640 -FUN_0201E640: ; 0x0201E640 - push {r3-r4} - ldr r4, [r0, #0x4] - mov r3, #0x1 - tst r3, r4 - beq _0201E654 - ldr r3, [r0, #0x8] - ldr r4, [r1, #0x0] - lsl r3, r3, #0x5 - add r3, r4, r3 - str r3, [r1, #0x0] -_0201E654: - ldr r3, [r0, #0x4] - mov r1, #0x2 - tst r1, r3 - beq _0201E666 - ldr r0, [r0, #0x8] - ldr r1, [r2, #0x0] - lsl r0, r0, #0x5 - add r0, r1, r0 - str r0, [r2, #0x0] -_0201E666: - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0201E66C -FUN_0201E66C: ; 0x0201E66C - push {r4, lr} - add r4, r0, #0x0 - bl GX_ResetBankForBG - bl GX_ResetBankForBGExtPltt - bl GX_ResetBankForSubBG - bl FUN_020C6034 - bl GX_ResetBankForOBJ - bl GX_ResetBankForOBJExtPltt - bl FUN_020C605C - bl GX_ResetBankForSubOBJ - bl GX_ResetBankForTex - bl GX_ResetBankForTexPltt - ldr r0, [r4, #0x0] - bl GX_SetBankForBG - ldr r0, [r4, #0x4] - bl GX_SetBankForBGExtPltt - ldr r0, [r4, #0x8] - bl GX_SetBankForSubBG - ldr r0, [r4, #0xc] - bl GX_SetBankForSubBGExtPltt - ldr r0, [r4, #0x10] - bl GX_SetBankForOBJ - ldr r0, [r4, #0x14] - bl GX_SetBankForOBJExtPltt - ldr r0, [r4, #0x18] - bl GX_SetBankForSubOBJ - ldr r0, [r4, #0x1c] - bl GX_SetBankForSubOBJExtPltt - ldr r0, [r4, #0x20] - bl GX_SetBankForTex - ldr r0, [r4, #0x24] - bl GX_SetBankForTexPltt - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201E6D8 -FUN_0201E6D8: ; 0x0201E6D8 - ldr r0, _0201E6E0 ; =0x021C599C - mov r1, #0x0 - str r1, [r0, #0x4] - bx lr - .balign 4 -_0201E6E0: .word 0x021C599C - - thumb_func_start FUN_0201E6E4 -FUN_0201E6E4: ; 0x0201E6E4 - cmp r1, #0x1 - bne _0201E6F2 - ldr r1, _0201E718 ; =0x021C599C - ldr r1, [r1, #0x4] - tst r1, r0 - beq _0201E6FA - bx lr -_0201E6F2: - ldr r1, _0201E718 ; =0x021C599C - ldr r1, [r1, #0x4] - tst r1, r0 - beq _0201E714 -_0201E6FA: - ldr r1, _0201E718 ; =0x021C599C - ldr r2, [r1, #0x4] - add r3, r2, #0x0 - eor r3, r0 - mov r2, #0x1 - lsl r2, r2, #0x1a - str r3, [r1, #0x4] - ldr r1, [r2, #0x0] - ldr r0, _0201E71C ; =0xFFFFE0FF - and r1, r0 - lsl r0, r3, #0x8 - orr r0, r1 - str r0, [r2, #0x0] -_0201E714: - bx lr - nop -_0201E718: .word 0x021C599C -_0201E71C: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E720 -FUN_0201E720: ; 0x0201E720 - ldr r1, _0201E738 ; =0x021C599C - mov r3, #0x1 - str r0, [r1, #0x4] - lsl r3, r3, #0x1a - ldr r2, [r3, #0x0] - ldr r1, _0201E73C ; =0xFFFFE0FF - lsl r0, r0, #0x8 - and r1, r2 - orr r0, r1 - str r0, [r3, #0x0] - bx lr - nop -_0201E738: .word 0x021C599C -_0201E73C: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E740 -FUN_0201E740: ; 0x0201E740 - ldr r0, _0201E748 ; =0x021C599C - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_0201E748: .word 0x021C599C - - thumb_func_start FUN_0201E74C -FUN_0201E74C: ; 0x0201E74C - cmp r1, #0x1 - bne _0201E75A - ldr r1, _0201E77C ; =0x021C599C - ldr r1, [r1, #0x0] - tst r1, r0 - beq _0201E762 - bx lr -_0201E75A: - ldr r1, _0201E77C ; =0x021C599C - ldr r1, [r1, #0x0] - tst r1, r0 - beq _0201E77A -_0201E762: - ldr r1, _0201E77C ; =0x021C599C - ldr r2, [r1, #0x0] - add r3, r2, #0x0 - eor r3, r0 - ldr r2, _0201E780 ; =0x04001000 - str r3, [r1, #0x0] - ldr r1, [r2, #0x0] - ldr r0, _0201E784 ; =0xFFFFE0FF - and r1, r0 - lsl r0, r3, #0x8 - orr r0, r1 - str r0, [r2, #0x0] -_0201E77A: - bx lr - .balign 4 -_0201E77C: .word 0x021C599C -_0201E780: .word 0x04001000 -_0201E784: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E788 -FUN_0201E788: ; 0x0201E788 - push {r3, lr} - bl GX_DispOn - ldr r2, _0201E79C ; =0x04001000 - mov r0, #0x1 - ldr r1, [r2, #0x0] - lsl r0, r0, #0x10 - orr r0, r1 - str r0, [r2, #0x0] - pop {r3, pc} - .balign 4 -_0201E79C: .word 0x04001000 - - thumb_func_start FUN_0201E7A0 -FUN_0201E7A0: ; 0x0201E7A0 - ldr r0, _0201E7C0 ; =0x021C4918 - ldr r2, _0201E7C4 ; =0x04000304 - ldrb r0, [r0, #0x5] - cmp r0, #0x0 - bne _0201E7B4 - ldrh r1, [r2, #0x0] - lsr r0, r2, #0xb - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201E7B4: - ldrh r1, [r2, #0x0] - ldr r0, _0201E7C8 ; =0xFFFF7FFF - and r0, r1 - strh r0, [r2, #0x0] - bx lr - nop -_0201E7C0: .word 0x021C4918 -_0201E7C4: .word 0x04000304 -_0201E7C8: .word 0xFFFF7FFF - - thumb_func_start FUN_0201E7CC -FUN_0201E7CC: ; 0x0201E7CC - ldr r0, _0201E7D4 ; =0x021C599C - ldr r0, [r0, #0x4] - bx lr - nop -_0201E7D4: .word 0x021C599C - - thumb_func_start FUN_0201E7D8 -FUN_0201E7D8: ; 0x0201E7D8 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x3e] - ldr r2, [r5, #0x38] - ldrh r4, [r5, #0x3c] - asr r0, r0, #0x4 - lsl r1, r0, #0x2 - ldr r0, _0201E8B4 ; =0x020FFA38 - asr r3, r2, #0x1f - ldrsh r0, [r0, r1] - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - asr r2, r4, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r3, r2, #0x1 - ldr r2, _0201E8B4 ; =0x020FFA38 - lsl r1, r1, #0x14 - ldrsh r2, [r2, r3] - lsr r0, r0, #0xc - orr r0, r1 - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - str r1, [r5, #0x14] - ldrh r0, [r5, #0x3e] - ldr r2, [r5, #0x38] - asr r0, r0, #0x4 - lsl r0, r0, #0x1 - add r0, r0, #0x1 - lsl r1, r0, #0x1 - ldr r0, _0201E8B4 ; =0x020FFA38 - asr r3, r2, #0x1f - ldrsh r0, [r0, r1] - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - lsl r2, r2, #0xa - mov r3, #0x0 - add r0, r0, r2 - adc r1, r3 - ldrh r2, [r5, #0x3c] - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - asr r2, r2, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r3, r2, #0x1 - ldr r2, _0201E8B4 ; =0x020FFA38 - orr r0, r1 - ldrsh r2, [r2, r3] - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - neg r0, r4 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r1, [r5, #0x1c] - asr r0, r0, #0x4 - lsl r1, r0, #0x2 - ldr r0, _0201E8B4 ; =0x020FFA38 - ldr r2, [r5, #0x38] - ldrsh r0, [r0, r1] - asr r3, r2, #0x1f - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - add r0, r5, #0x0 - str r1, [r5, #0x18] - add r0, #0x14 - add r5, #0x20 - add r1, r5, #0x0 - add r2, r0, #0x0 - bl VEC_Add - pop {r3-r5, pc} - nop -_0201E8B4: .word 0x020FFA38 - - thumb_func_start FUN_0201E8B8 -FUN_0201E8B8: ; 0x0201E8B8 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x3e] - ldr r2, [r5, #0x38] - ldrh r4, [r5, #0x3c] - asr r0, r0, #0x4 - lsl r1, r0, #0x2 - ldr r0, _0201E998 ; =0x020FFA38 - asr r3, r2, #0x1f - ldrsh r0, [r0, r1] - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - asr r2, r4, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r3, r2, #0x1 - ldr r2, _0201E998 ; =0x020FFA38 - lsl r1, r1, #0x14 - ldrsh r2, [r2, r3] - lsr r0, r0, #0xc - orr r0, r1 - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - neg r0, r1 - str r0, [r5, #0x20] - ldrh r0, [r5, #0x3e] - ldr r2, [r5, #0x38] - asr r0, r0, #0x4 - lsl r0, r0, #0x1 - add r0, r0, #0x1 - lsl r1, r0, #0x1 - ldr r0, _0201E998 ; =0x020FFA38 - asr r3, r2, #0x1f - ldrsh r0, [r0, r1] - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - lsl r2, r2, #0xa - mov r3, #0x0 - add r0, r0, r2 - adc r1, r3 - ldrh r2, [r5, #0x3c] - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - asr r2, r2, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r3, r2, #0x1 - ldr r2, _0201E998 ; =0x020FFA38 - orr r0, r1 - ldrsh r2, [r2, r3] - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - neg r0, r1 - str r0, [r5, #0x28] - neg r0, r4 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - asr r0, r0, #0x4 - lsl r1, r0, #0x2 - ldr r0, _0201E998 ; =0x020FFA38 - ldr r2, [r5, #0x38] - ldrsh r0, [r0, r1] - asr r3, r2, #0x1f - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - neg r0, r1 - str r0, [r5, #0x24] - add r0, r5, #0x0 - add r0, #0x20 - add r5, #0x14 - add r1, r5, #0x0 - add r2, r0, #0x0 - bl VEC_Add - pop {r3-r5, pc} - .balign 4 -_0201E998: .word 0x020FFA38 - - thumb_func_start FUN_0201E99C -FUN_0201E99C: ; 0x0201E99C - add r2, r1, #0x0 - add r2, #0x46 - strh r0, [r2, #0x0] - asr r0, r0, #0x4 - lsl r3, r0, #0x1 - ldr r2, _0201E9E0 ; =0x020FFA38 - lsl r0, r3, #0x1 - ldrsh r0, [r2, r0] - str r0, [r1, #0x0] - add r0, r3, #0x1 - lsl r0, r0, #0x1 - ldrsh r0, [r2, r0] - mov r2, #0x0 - str r0, [r1, #0x4] - ldr r0, _0201E9E4 ; =0x00001555 - str r0, [r1, #0x8] - mov r0, #0x96 - lsl r0, r0, #0xc - str r0, [r1, #0xc] - mov r0, #0xe1 - lsl r0, r0, #0xe - str r0, [r1, #0x10] - mov r0, #0x1 - str r2, [r1, #0x2c] - lsl r0, r0, #0xc - str r0, [r1, #0x30] - str r2, [r1, #0x34] - str r2, [r1, #0x54] - str r2, [r1, #0x58] - str r2, [r1, #0x5c] - str r2, [r1, #0x60] - str r2, [r1, #0x64] - bx lr - nop -_0201E9E0: .word 0x020FFA38 -_0201E9E4: .word 0x00001555 - - thumb_func_start FUN_0201E9E8 -FUN_0201E9E8: ; 0x0201E9E8 - ldr r2, [r0, #0x58] - cmp r2, #0x0 - bne _0201E9F2 - mov r2, #0x0 - str r2, [r1, #0x0] -_0201E9F2: - ldr r2, [r0, #0x5c] - cmp r2, #0x0 - bne _0201E9FC - mov r2, #0x0 - str r2, [r1, #0x4] -_0201E9FC: - ldr r0, [r0, #0x60] - cmp r0, #0x0 - bne _0201EA06 - mov r0, #0x0 - str r0, [r1, #0x8] -_0201EA06: - bx lr - - thumb_func_start FUN_0201EA08 -FUN_0201EA08: ; 0x0201EA08 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r7, [r5, #0x64] - add r4, r1, #0x0 - add r6, r2, #0x0 - cmp r7, #0x0 - bne _0201EA20 - ldmia r4!, {r0-r1} - stmia r6!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r6, #0x0] - pop {r3-r7, pc} -_0201EA20: - add r0, r7, #0x0 - str r0, [sp, #0x0] - add r0, #0x8 - str r0, [sp, #0x0] - ldr r0, [r7, #0x10] - cmp r0, #0x0 - bne _0201EA48 - add r3, r4, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - ldr r0, [r5, #0x64] - ldr r2, [r7, #0x4] - ldr r1, [r0, #0xc] - cmp r2, r1 - bne _0201EA5C - mov r1, #0x1 - str r1, [r0, #0x10] - b _0201EA5C -_0201EA48: - ldr r2, [r7, #0x4] - mov r1, #0xc - mul r1, r2 - ldr r0, [r7, #0x20] - add r2, r6, #0x0 - add r3, r0, r1 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] -_0201EA5C: - ldr r1, [r5, #0x64] - ldr r0, [r7, #0x4] - ldr r1, [r1, #0x0] - add r0, r0, #0x1 - bl _s32_div_f - str r1, [r7, #0x4] - ldr r1, [sp, #0x0] - ldr r0, [r5, #0x64] - ldr r2, [r1, #0x0] - mov r1, #0xc - ldr r0, [r0, #0x20] - mul r1, r2 - add r3, r4, #0x0 - add r2, r0, r1 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - ldr r0, [sp, #0x0] - ldr r1, [r5, #0x64] - ldr r0, [r0, #0x0] - ldr r1, [r1, #0x0] - add r0, r0, #0x1 - bl _s32_div_f - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x14] - cmp r0, #0x0 - bne _0201EAA0 - ldr r0, [r4, #0x0] - str r0, [r6, #0x0] -_0201EAA0: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x18] - cmp r0, #0x0 - bne _0201EAAC - ldr r0, [r4, #0x4] - str r0, [r6, #0x4] -_0201EAAC: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x1c] - cmp r0, #0x0 - bne _0201EAB8 - ldr r0, [r4, #0x8] - str r0, [r6, #0x8] -_0201EAB8: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201EABC -FUN_0201EABC: ; 0x0201EABC - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x18] - add r7, r1, #0x0 - str r0, [sp, #0x18] - ldr r0, [r0, #0x54] - add r6, r2, #0x0 - str r3, [sp, #0x0] - cmp r0, #0x0 - beq _0201EB46 - add r0, r7, #0x1 - cmp r0, r5 - ble _0201EADA - bl ErrorHandling -_0201EADA: - ldr r0, [sp, #0x0] - mov r1, #0x24 - bl FUN_02016998 - add r4, r0, #0x0 - mov r1, #0xc - ldr r0, [sp, #0x0] - mul r1, r5 - bl FUN_02016998 - mov r1, #0x0 - str r0, [r4, #0x20] - cmp r5, #0x0 - ble _0201EB12 - add r2, r1, #0x0 - add r0, r1, #0x0 -_0201EAFA: - ldr r3, [r4, #0x20] - add r1, r1, #0x1 - str r0, [r3, r2] - ldr r3, [r4, #0x20] - add r3, r3, r2 - str r0, [r3, #0x4] - ldr r3, [r4, #0x20] - add r3, r3, r2 - str r0, [r3, #0x8] - add r2, #0xc - cmp r1, r5 - blt _0201EAFA -_0201EB12: - str r5, [r4, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - str r7, [r4, #0x8] - str r7, [r4, #0xc] - str r0, [r4, #0x10] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - str r0, [r4, #0x1c] - mov r0, #0x1 - add r1, r6, #0x0 - tst r1, r0 - beq _0201EB2E - str r0, [r4, #0x14] -_0201EB2E: - mov r0, #0x2 - tst r0, r6 - beq _0201EB38 - mov r0, #0x1 - str r0, [r4, #0x18] -_0201EB38: - mov r0, #0x4 - tst r0, r6 - beq _0201EB42 - mov r0, #0x1 - str r0, [r4, #0x1c] -_0201EB42: - ldr r0, [sp, #0x18] - str r4, [r0, #0x64] -_0201EB46: - pop {r3-r7, pc} - - thumb_func_start FUN_0201EB48 -FUN_0201EB48: ; 0x0201EB48 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x64] - cmp r0, #0x0 - beq _0201EB62 - ldr r0, [r0, #0x20] - bl FUN_02016A18 - ldr r0, [r4, #0x64] - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x64] -_0201EB62: - pop {r4, pc} - - thumb_func_start FUN_0201EB64 -FUN_0201EB64: ; 0x0201EB64 - ldr r3, _0201EB6C ; =FUN_02016998 - mov r1, #0x68 - bx r3 - nop -_0201EB6C: .word FUN_02016998 - - thumb_func_start FUN_0201EB70 -FUN_0201EB70: ; 0x0201EB70 - ldr r3, _0201EB74 ; =FUN_02016A18 - bx r3 - .balign 4 -_0201EB74: .word FUN_02016A18 - - thumb_func_start FUN_0201EB78 -FUN_0201EB78: ; 0x0201EB78 - push {r3-r4} - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r2, #0xd -_0201EB80: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _0201EB80 - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201EB8C -FUN_0201EB8C: ; 0x0201EB8C - ldr r1, _0201EB94 ; =0x021C59A4 - str r0, [r1, #0x0] - bx lr - nop -_0201EB94: .word 0x021C59A4 - - thumb_func_start FUN_0201EB98 -FUN_0201EB98: ; 0x0201EB98 - ldr r0, _0201EBA0 ; =0x021C59A4 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_0201EBA0: .word 0x021C59A4 - - thumb_func_start FUN_0201EBA4 -FUN_0201EBA4: ; 0x0201EBA4 - push {r3-r6, lr} - sub sp, #0x1c - ldr r0, _0201EC40 ; =0x021C59A4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0201EC3A - ldr r0, [r1, #0x54] - cmp r0, #0x0 - beq _0201EBEE - add r1, #0x48 - add r2, sp, #0x10 - bl VEC_Subtract - ldr r0, _0201EC40 ; =0x021C59A4 - add r1, sp, #0x10 - ldr r0, [r0, #0x0] - bl FUN_0201E9E8 - ldr r0, _0201EC40 ; =0x021C59A4 - add r1, sp, #0x10 - ldr r0, [r0, #0x0] - add r2, sp, #0x4 - bl FUN_0201EA08 - ldr r1, _0201EC40 ; =0x021C59A4 - add r0, sp, #0x4 - ldr r1, [r1, #0x0] - bl FUN_0201EF70 - ldr r0, _0201EC40 ; =0x021C59A4 - ldr r3, [r0, #0x0] - ldr r2, [r3, #0x54] - add r3, #0x48 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] -_0201EBEE: - ldr r0, _0201EC40 ; =0x021C59A4 - ldr r5, _0201EC44 ; =0x021CEF58 - ldr r4, [r0, #0x0] - add r3, r4, #0x0 - add r2, r4, #0x0 - add r4, #0x14 - add r6, r4, #0x0 - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldr r0, [r6, #0x0] - add r2, #0x2c - str r0, [r5, #0x0] - add r6, r2, #0x0 - ldr r5, _0201EC48 ; =0x021CEF64 - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldr r0, [r6, #0x0] - add r3, #0x20 - str r0, [r5, #0x0] - add r6, r3, #0x0 - ldr r5, _0201EC4C ; =0x021CEF70 - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldr r0, [r6, #0x0] - add r1, r2, #0x0 - str r0, [r5, #0x0] - ldr r0, _0201EC50 ; =0x021CED64 - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - mov r3, #0x0 - bl G3i_LookAt_ - ldr r1, _0201EC54 ; =0x021CED98 - mov r0, #0xe8 - ldr r2, [r1, #0x7c] - bic r2, r0 - str r2, [r1, #0x7c] -_0201EC3A: - add sp, #0x1c - pop {r3-r6, pc} - nop -_0201EC40: .word 0x021C59A4 -_0201EC44: .word 0x021CEF58 -_0201EC48: .word 0x021CEF64 -_0201EC4C: .word 0x021CEF70 -_0201EC50: .word 0x021CED64 -_0201EC54: .word 0x021CED98 - - thumb_func_start FUN_0201EC58 -FUN_0201EC58: ; 0x0201EC58 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x2c - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_0201EC68 -FUN_0201EC68: ; 0x0201EC68 - push {r3-r4} - add r3, r1, #0x0 - add r4, r0, #0x0 - str r4, [r3, #0x54] - add r2, r3, #0x0 - ldmia r4!, {r0-r1} - add r2, #0x48 - stmia r2!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r2, #0x0] - mov r0, #0x1 - str r0, [r3, #0x58] - str r0, [r3, #0x5c] - str r0, [r3, #0x60] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201EC88 -FUN_0201EC88: ; 0x0201EC88 - mov r1, #0x0 - str r1, [r0, #0x54] - str r1, [r0, #0x58] - str r1, [r0, #0x5c] - str r1, [r0, #0x60] - bx lr - - thumb_func_start FUN_0201EC94 -FUN_0201EC94: ; 0x0201EC94 - str r0, [r2, #0xc] - add r0, r2, #0x0 - str r1, [r2, #0x10] - add r0, #0x44 - ldr r3, _0201ECA4 ; =FUN_0201EE2C - ldrb r0, [r0, #0x0] - add r1, r2, #0x0 - bx r3 - .balign 4 -_0201ECA4: .word FUN_0201EE2C - - thumb_func_start FUN_0201ECA8 -FUN_0201ECA8: ; 0x0201ECA8 - push {r3-r7, lr} - ldr r4, [sp, #0x20] - add r5, r0, #0x0 - add r7, r1, #0x0 - add r0, r3, #0x0 - add r1, r4, #0x0 - add r6, r2, #0x0 - bl FUN_0201E99C - add r3, r5, #0x0 - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - str r7, [r4, #0x38] - ldrh r0, [r6, #0x0] - strh r0, [r4, #0x3c] - ldrh r0, [r6, #0x2] - strh r0, [r4, #0x3e] - add r0, r4, #0x0 - ldrh r1, [r6, #0x4] - add r0, #0x40 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - ldrh r1, [r6, #0x6] - add r0, #0x42 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0201E7D8 - add r0, sp, #0x8 - ldrb r0, [r0, #0x10] - add r1, r4, #0x0 - bl FUN_0201EE2C - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - beq _0201ED0E - str r5, [r4, #0x54] - add r2, r4, #0x0 - ldmia r5!, {r0-r1} - add r2, #0x48 - stmia r2!, {r0-r1} - ldr r0, [r5, #0x0] - str r0, [r2, #0x0] - mov r0, #0x1 - str r0, [r4, #0x58] - str r0, [r4, #0x5c] - str r0, [r4, #0x60] -_0201ED0E: - pop {r3-r7, pc} - - thumb_func_start FUN_0201ED10 -FUN_0201ED10: ; 0x0201ED10 - push {r3-r7, lr} - ldr r4, [sp, #0x1c] - add r6, r0, #0x0 - add r7, r1, #0x0 - add r0, r3, #0x0 - add r1, r4, #0x0 - add r5, r2, #0x0 - bl FUN_0201E99C - add r2, r4, #0x0 - ldmia r6!, {r0-r1} - add r2, #0x14 - stmia r2!, {r0-r1} - ldr r0, [r6, #0x0] - str r0, [r2, #0x0] - str r7, [r4, #0x38] - ldrh r0, [r5, #0x0] - strh r0, [r4, #0x3c] - ldrh r0, [r5, #0x2] - strh r0, [r4, #0x3e] - add r0, r4, #0x0 - ldrh r1, [r5, #0x4] - add r0, #0x40 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - ldrh r1, [r5, #0x6] - add r0, #0x42 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0201E8B8 - add r0, sp, #0x8 - ldrb r0, [r0, #0x10] - add r1, r4, #0x0 - bl FUN_0201EE2C - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201ED5C -FUN_0201ED5C: ; 0x0201ED5C - push {r4-r7, lr} - sub sp, #0x3c - ldr r4, [sp, #0x54] - add r5, r0, #0x0 - add r6, r1, #0x0 - add r0, r2, #0x0 - add r1, r4, #0x0 - add r7, r3, #0x0 - bl FUN_0201E99C - add r3, r5, #0x0 - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r3, r6, #0x0 - str r0, [r2, #0x0] - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x14 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r1, r5, #0x0 - str r0, [r2, #0x0] - add r0, r6, #0x0 - add r2, sp, #0x30 - bl VEC_Subtract - add r0, sp, #0x30 - bl VEC_Mag - str r0, [r4, #0x38] - mov r6, #0x0 - add r0, sp, #0x24 - str r6, [r0, #0x0] - str r6, [r0, #0x4] - str r6, [r0, #0x8] - add r0, sp, #0x18 - str r6, [r0, #0x0] - str r6, [r0, #0x4] - str r6, [r0, #0x8] - add r0, sp, #0xc - str r6, [r0, #0x0] - str r6, [r0, #0x4] - str r6, [r0, #0x8] - mov r0, #0x1 - lsl r0, r0, #0xc - add r3, sp, #0x30 - str r0, [sp, #0x8] - ldmia r3!, {r0-r1} - add r2, sp, #0xc - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r6, [sp, #0x0] - str r0, [r2, #0x0] - str r6, [sp, #0x4] - str r6, [sp, #0x10] - add r0, sp, #0x0 - add r1, sp, #0xc - bl FUN_0201C7B0 - strh r0, [r4, #0x3e] - add r1, r6, #0x0 - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [sp, #0x0] - ldr r0, [sp, #0x38] - str r1, [sp, #0x4] - str r0, [sp, #0xc] - ldr r0, [sp, #0x34] - str r1, [sp, #0x8] - str r0, [sp, #0x14] - str r1, [sp, #0x10] - add r0, sp, #0x0 - add r1, sp, #0xc - bl FUN_0201C7B0 - strh r0, [r4, #0x3c] - add r0, r4, #0x0 - add r1, r6, #0x0 - add r0, #0x40 - strh r1, [r0, #0x0] - add r0, r7, #0x0 - add r1, r4, #0x0 - bl FUN_0201EE2C - ldr r0, [sp, #0x50] - cmp r0, #0x0 - beq _0201EE26 - str r5, [r4, #0x54] - add r2, r4, #0x0 - ldmia r5!, {r0-r1} - add r2, #0x48 - stmia r2!, {r0-r1} - ldr r0, [r5, #0x0] - str r0, [r2, #0x0] - mov r0, #0x1 - str r0, [r4, #0x58] - str r0, [r4, #0x5c] - str r0, [r4, #0x60] -_0201EE26: - add sp, #0x3c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0201EE2C -FUN_0201EE2C: ; 0x0201EE2C - push {r3-r6, lr} - sub sp, #0x14 - add r5, r1, #0x0 - cmp r0, #0x0 - bne _0201EE6C - ldr r0, [r5, #0x10] - str r0, [sp, #0x0] - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [sp, #0x4] - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, _0201EEE4 ; =0x021CED20 - str r0, [sp, #0xc] - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - ldr r2, [r5, #0x8] - ldr r3, [r5, #0xc] - bl G3i_PerspectiveW_ - ldr r1, _0201EEE8 ; =0x021CED98 - mov r0, #0x50 - ldr r2, [r1, #0x7c] - add r5, #0x44 - bic r2, r0 - str r2, [r1, #0x7c] - mov r1, #0x0 - ldr r0, _0201EEEC ; =0x02105BB8 - strb r1, [r5, #0x0] - str r1, [r0, #0x0] - add sp, #0x14 - pop {r3-r6, pc} -_0201EE6C: - ldr r4, [r5, #0x38] - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - bl FX_Div - asr r1, r0, #0x1f - asr r3, r4, #0x1f - add r2, r4, #0x0 - bl _ll_mul - mov r2, #0x2 - mov r3, #0x0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsr r4, r2, #0xc - lsl r0, r1, #0x14 - orr r4, r0 - ldr r2, [r5, #0x8] - asr r1, r4, #0x1f - add r0, r4, #0x0 - asr r3, r2, #0x1f - bl _ll_mul - mov r6, #0x2 - mov r2, #0x0 - lsl r6, r6, #0xa - add r3, r0, r6 - adc r1, r2 - lsl r0, r1, #0x14 - lsr r3, r3, #0xc - orr r3, r0 - ldr r0, [r5, #0xc] - neg r1, r4 - str r0, [sp, #0x0] - ldr r0, [r5, #0x10] - str r0, [sp, #0x4] - lsl r0, r6, #0x1 - str r0, [sp, #0x8] - str r2, [sp, #0xc] - ldr r0, _0201EEE4 ; =0x021CED20 - neg r2, r3 - str r0, [sp, #0x10] - add r0, r4, #0x0 - bl G3i_OrthoW_ - ldr r1, _0201EEE8 ; =0x021CED98 - mov r0, #0x50 - ldr r2, [r1, #0x7c] - add r5, #0x44 - bic r2, r0 - str r2, [r1, #0x7c] - mov r0, #0x1 - strb r0, [r5, #0x0] - ldr r0, _0201EEEC ; =0x02105BB8 - mov r1, #0x0 - str r1, [r0, #0x0] - add sp, #0x14 - pop {r3-r6, pc} - nop -_0201EEE4: .word 0x021CED20 -_0201EEE8: .word 0x021CED98 -_0201EEEC: .word 0x02105BB8 - - thumb_func_start FUN_0201EEF0 -FUN_0201EEF0: ; 0x0201EEF0 - add r2, r1, #0x0 - add r2, #0x46 - strh r0, [r2, #0x0] - add r0, r1, #0x0 - add r0, #0x46 - ldrh r0, [r0, #0x0] - ldr r3, _0201EF24 ; =FUN_0201EE2C - asr r0, r0, #0x4 - lsl r2, r0, #0x2 - ldr r0, _0201EF28 ; =0x020FFA38 - ldrsh r2, [r0, r2] - str r2, [r1, #0x0] - add r2, r1, #0x0 - add r2, #0x46 - ldrh r2, [r2, #0x0] - asr r2, r2, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r0, [r0, r2] - str r0, [r1, #0x4] - add r0, r1, #0x0 - add r0, #0x44 - ldrb r0, [r0, #0x0] - bx r3 - nop -_0201EF24: .word FUN_0201EE2C -_0201EF28: .word 0x020FFA38 - - thumb_func_start FUN_0201EF2C -FUN_0201EF2C: ; 0x0201EF2C - add r2, r1, #0x0 - add r2, #0x46 - ldrh r2, [r2, #0x0] - ldr r3, _0201EF68 ; =FUN_0201EE2C - add r2, r2, r0 - add r0, r1, #0x0 - add r0, #0x46 - strh r2, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x46 - ldrh r0, [r0, #0x0] - asr r0, r0, #0x4 - lsl r2, r0, #0x2 - ldr r0, _0201EF6C ; =0x020FFA38 - ldrsh r2, [r0, r2] - str r2, [r1, #0x0] - add r2, r1, #0x0 - add r2, #0x46 - ldrh r2, [r2, #0x0] - asr r2, r2, #0x4 - lsl r2, r2, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x1 - ldrsh r0, [r0, r2] - str r0, [r1, #0x4] - add r0, r1, #0x0 - add r0, #0x44 - ldrb r0, [r0, #0x0] - bx r3 - nop -_0201EF68: .word FUN_0201EE2C -_0201EF6C: .word 0x020FFA38 - - thumb_func_start FUN_0201EF70 -FUN_0201EF70: ; 0x0201EF70 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x14 - add r1, r5, #0x0 - add r2, r0, #0x0 - bl VEC_Add - add r4, #0x20 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl VEC_Add - pop {r3-r5, pc} - - thumb_func_start FUN_0201EF90 -FUN_0201EF90: ; 0x0201EF90 - ldrh r2, [r0, #0x0] - strh r2, [r1, #0x3c] - ldrh r2, [r0, #0x2] - strh r2, [r1, #0x3e] - add r2, r1, #0x0 - ldrh r3, [r0, #0x4] - add r2, #0x40 - strh r3, [r2, #0x0] - ldrh r2, [r0, #0x6] - add r0, r1, #0x0 - add r0, #0x42 - strh r2, [r0, #0x0] - ldr r3, _0201EFB0 ; =FUN_0201E7D8 - add r0, r1, #0x0 - bx r3 - nop -_0201EFB0: .word FUN_0201E7D8 - - thumb_func_start FUN_0201EFB4 -FUN_0201EFB4: ; 0x0201EFB4 - ldrh r3, [r1, #0x3c] - ldrh r2, [r0, #0x0] - add r2, r3, r2 - strh r2, [r1, #0x3c] - ldrh r3, [r1, #0x3e] - ldrh r2, [r0, #0x2] - add r2, r3, r2 - strh r2, [r1, #0x3e] - add r2, r1, #0x0 - add r2, #0x40 - ldrh r2, [r2, #0x0] - ldrh r0, [r0, #0x4] - ldr r3, _0201EFDC ; =FUN_0201E8B8 - add r2, r2, r0 - add r0, r1, #0x0 - add r0, #0x40 - strh r2, [r0, #0x0] - add r0, r1, #0x0 - bx r3 - nop -_0201EFDC: .word FUN_0201E8B8 - - thumb_func_start FUN_0201EFE0 -FUN_0201EFE0: ; 0x0201EFE0 - ldr r3, _0201EFE8 ; =FUN_0201E7D8 - str r0, [r1, #0x38] - add r0, r1, #0x0 - bx r3 - .balign 4 -_0201EFE8: .word FUN_0201E7D8 - - thumb_func_start FUN_0201EFEC -FUN_0201EFEC: ; 0x0201EFEC - push {r4, lr} - add r3, r1, #0x0 - add r4, r0, #0x0 - add r2, r3, #0x0 - ldmia r4!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r2, #0x0] - add r0, r3, #0x0 - bl FUN_0201E7D8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F008 -FUN_0201F008: ; 0x0201F008 - add r0, #0x46 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0201F010 -FUN_0201F010: ; 0x0201F010 - ldr r0, [r0, #0x38] - bx lr - - thumb_func_start FUN_0201F014 -FUN_0201F014: ; 0x0201F014 - ldrh r2, [r1, #0x3c] - strh r2, [r0, #0x0] - ldrh r2, [r1, #0x3e] - strh r2, [r0, #0x2] - add r2, r1, #0x0 - add r2, #0x40 - ldrh r2, [r2, #0x0] - add r1, #0x42 - strh r2, [r0, #0x4] - ldrh r1, [r1, #0x0] - strh r1, [r0, #0x6] - bx lr - - thumb_func_start FUN_0201F02C -FUN_0201F02C: ; 0x0201F02C - add r2, r1, #0x0 - add r2, #0x20 - add r3, r0, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - bx lr - - thumb_func_start FUN_0201F03C -FUN_0201F03C: ; 0x0201F03C - add r2, r1, #0x0 - add r2, #0x14 - add r3, r0, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - bx lr - - thumb_func_start FUN_0201F04C -FUN_0201F04C: ; 0x0201F04C - add r3, r0, #0x0 - add r2, r1, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_0201F05C -FUN_0201F05C: ; 0x0201F05C - add r3, r0, #0x0 - add r2, r1, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x14 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_0201F06C -FUN_0201F06C: ; 0x0201F06C - mov r2, #0x0 - strb r2, [r0, #0x0] - strb r2, [r0, #0x1] - str r2, [r0, #0x4] - add r1, r0, #0x0 - str r2, [r0, #0x8] - add r1, #0xc4 - str r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0xc8 - str r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0xcc - str r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0xd0 - str r2, [r1, #0x0] - strb r2, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_0201F094 -FUN_0201F094: ; 0x0201F094 - mov r3, #0x0 - str r3, [r0, #0x1c] - str r3, [r0, #0x20] - str r3, [r0, #0x78] - add r1, r0, #0x0 - str r3, [r0, #0x7c] - add r1, #0x80 - str r3, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x84 - add r2, r0, #0x0 - str r3, [r1, #0x0] - add r2, #0x94 - mov r1, #0x10 -_0201F0B0: - strb r3, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0201F0B0 - add r2, r0, #0x0 - mov r1, #0x0 - add r2, #0x88 - str r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0x8c - str r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0x90 - str r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xa4 - str r1, [r2, #0x0] - str r1, [r0, #0x0] - str r1, [r0, #0x4] - mov r2, #0x1 - str r1, [r0, #0x8] - lsl r2, r2, #0xc - str r2, [r0, #0xc] - str r2, [r0, #0x10] - str r2, [r0, #0x14] - add r2, r0, #0x0 - add r2, #0xaa - strh r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xa8 - strb r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xb0 - str r1, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xb4 - str r1, [r2, #0x0] - strb r1, [r0, #0x18] - bx lr - .balign 4 - - thumb_func_start FUN_0201F100 -FUN_0201F100: ; 0x0201F100 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, _0201F13C ; =0x021C59A8 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201F112 - bl ErrorHandling -_0201F112: - mov r1, #0xd4 - add r0, r4, #0x0 - mul r1, r6 - bl FUN_02016998 - ldr r7, _0201F13C ; =0x021C59A8 - mov r4, #0x0 - str r0, [r7, #0x0] - str r6, [r7, #0x4] - cmp r6, #0x0 - ble _0201F13A - add r5, r4, #0x0 -_0201F12A: - ldr r0, [r7, #0x0] - add r0, r0, r5 - bl FUN_0201F06C - add r4, r4, #0x1 - add r5, #0xd4 - cmp r4, r6 - blt _0201F12A -_0201F13A: - pop {r3-r7, pc} - .balign 4 -_0201F13C: .word 0x021C59A8 - - thumb_func_start FUN_0201F140 -FUN_0201F140: ; 0x0201F140 - push {r4-r6, lr} - ldr r6, _0201F174 ; =0x021C59A8 - mov r4, #0x0 - ldr r0, [r6, #0x4] - cmp r0, #0x0 - ble _0201F160 - add r5, r4, #0x0 -_0201F14E: - ldr r0, [r6, #0x0] - add r0, r0, r5 - bl FUN_0201F23C - ldr r0, [r6, #0x4] - add r4, r4, #0x1 - add r5, #0xd4 - cmp r4, r0 - blt _0201F14E -_0201F160: - ldr r0, _0201F174 ; =0x021C59A8 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0201F174 ; =0x021C59A8 - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - pop {r4-r6, pc} - nop -_0201F174: .word 0x021C59A8 - - thumb_func_start FUN_0201F178 -FUN_0201F178: ; 0x0201F178 - push {r3-r7, lr} - ldr r6, _0201F1B0 ; =0x021C59A8 - mov r4, #0x0 - ldr r0, [r6, #0x4] - cmp r0, #0x0 - ble _0201F1AC - add r5, r4, #0x0 - mov r7, #0x2 -_0201F188: - ldr r0, [r6, #0x0] - add r0, r0, r5 - ldrb r1, [r0, #0x1] - cmp r1, #0x1 - bne _0201F196 - bl FUN_0201F318 -_0201F196: - ldr r0, [r6, #0x0] - add r1, r0, r5 - ldrb r0, [r1, #0x3] - cmp r0, #0x1 - bne _0201F1A2 - strb r7, [r1, #0x3] -_0201F1A2: - ldr r0, [r6, #0x4] - add r4, r4, #0x1 - add r5, #0xd4 - cmp r4, r0 - blt _0201F188 -_0201F1AC: - pop {r3-r7, pc} - nop -_0201F1B0: .word 0x021C59A8 - - thumb_func_start FUN_0201F1B4 -FUN_0201F1B4: ; 0x0201F1B4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0201F2E4 - add r4, r0, #0x0 - bne _0201F1C8 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0201F1C8: - mov r0, #0x1 - strb r0, [r4, #0x0] - strb r0, [r4, #0x1] - ldr r2, [r5, #0x0] - mov r1, #0xb8 - ldr r0, [r5, #0x4] - mul r1, r2 - bl FUN_02016998 - str r0, [r4, #0x4] - ldr r0, [r5, #0x0] - str r0, [r4, #0x8] - add r0, r4, #0x0 - add r0, #0xc - bl FUN_0201F094 - add r1, r4, #0x0 - add r0, r4, #0x0 - add r1, #0xc - add r0, #0xbc - str r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0xc0 - str r1, [r0, #0x0] - ldr r1, [r5, #0x0] - ldr r0, [r5, #0x4] - lsl r1, r1, #0x2 - bl FUN_02016998 - add r1, r4, #0x0 - add r1, #0xc4 - str r0, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_0201FABC - ldr r0, [r5, #0x4] - mov r1, #0x10 - bl FUN_02016998 - add r1, r4, #0x0 - add r1, #0xcc - str r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0xcc - ldr r0, [r0, #0x0] - ldr r1, [r5, #0x4] - mov r2, #0x4 - bl FUN_02016B20 - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - bl FUN_0201C360 - add r1, r4, #0x0 - add r1, #0xd0 - str r0, [r1, #0x0] - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0201F23C -FUN_0201F23C: ; 0x0201F23C - push {r4, lr} - add r4, r0, #0x0 - bne _0201F24A - bl ErrorHandling - mov r0, #0x0 - pop {r4, pc} -_0201F24A: - ldrb r1, [r4, #0x0] - cmp r1, #0x0 - beq _0201F27E - bl FUN_0201F284 - ldr r0, [r4, #0x4] - bl FUN_02016A18 - add r0, r4, #0x0 - add r0, #0xc4 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - add r0, #0xcc - ldr r0, [r0, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - add r0, #0xd0 - ldr r0, [r0, #0x0] - bl FUN_0201C39C - add r0, r4, #0x0 - bl FUN_0201F06C -_0201F27E: - mov r0, #0x1 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F284 -FUN_0201F284: ; 0x0201F284 - push {r3-r5, lr} - cmp r0, #0x0 - bne _0201F294 - bne _0201F290 - bl ErrorHandling -_0201F290: - mov r0, #0x0 - pop {r3-r5, pc} -_0201F294: - ldrb r1, [r0, #0x0] - cmp r1, #0x0 - beq _0201F2BA - add r1, r0, #0x0 - add r1, #0xbc - add r4, r0, #0x0 - ldr r1, [r1, #0x0] - add r4, #0xc - cmp r1, r4 - beq _0201F2BA -_0201F2A8: - add r0, r1, #0x0 - add r0, #0xb0 - ldr r5, [r0, #0x0] - add r0, r1, #0x0 - bl FUN_0201F744 - add r1, r5, #0x0 - cmp r5, r4 - bne _0201F2A8 -_0201F2BA: - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F2C0 -FUN_0201F2C0: ; 0x0201F2C0 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F2CA - bl ErrorHandling -_0201F2CA: - ldrb r0, [r4, #0x3] - cmp r0, #0x0 - bne _0201F2D4 - mov r0, #0x0 - pop {r4, pc} -_0201F2D4: - mov r0, #0x1 - pop {r4, pc} - - thumb_func_start FUN_0201F2D8 -FUN_0201F2D8: ; 0x0201F2D8 - ldrb r1, [r0, #0x3] - cmp r1, #0x2 - bne _0201F2E2 - mov r1, #0x0 - strb r1, [r0, #0x3] -_0201F2E2: - bx lr - - thumb_func_start FUN_0201F2E4 -FUN_0201F2E4: ; 0x0201F2E4 - push {r3-r4} - ldr r0, _0201F314 ; =0x021C59A8 - mov r1, #0x0 - ldr r3, [r0, #0x4] - cmp r3, #0x0 - ble _0201F30C - ldr r4, [r0, #0x0] - add r2, r4, #0x0 -_0201F2F4: - ldrb r0, [r2, #0x0] - cmp r0, #0x0 - bne _0201F304 - mov r0, #0xd4 - mul r0, r1 - add r0, r4, r0 - pop {r3-r4} - bx lr -_0201F304: - add r1, r1, #0x1 - add r2, #0xd4 - cmp r1, r3 - blt _0201F2F4 -_0201F30C: - mov r0, #0x0 - pop {r3-r4} - bx lr - nop -_0201F314: .word 0x021C59A8 - - thumb_func_start FUN_0201F318 -FUN_0201F318: ; 0x0201F318 - push {r3-r6, lr} - sub sp, #0x24 - add r5, r0, #0x0 - bne _0201F324 - bl ErrorHandling -_0201F324: - add r0, sp, #0x0 - bl MTX_Identity33_ - add r0, r5, #0x0 - add r0, #0xbc - ldr r4, [r0, #0x0] - add r5, #0xc - cmp r4, r5 - beq _0201F37E - add r6, sp, #0x0 -_0201F338: - ldrb r0, [r4, #0x18] - cmp r0, #0x1 - bne _0201F376 - add r0, r4, #0x0 - bl FUN_0201FC54 - add r0, r4, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - bne _0201F356 - add r0, r4, #0x0 - bl FUN_0201F90C - b _0201F360 -_0201F356: - cmp r0, #0x2 - bne _0201F360 - add r0, r4, #0x0 - bl FUN_0201F8F0 -_0201F360: - add r0, r4, #0x0 - add r3, r4, #0x0 - add r0, #0x24 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, #0xc - bl FUN_0201B26C - add r0, r4, #0x0 - bl FUN_0201FC70 -_0201F376: - add r4, #0xb0 - ldr r4, [r4, #0x0] - cmp r4, r5 - bne _0201F338 -_0201F37E: - add sp, #0x24 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_0201F384 -FUN_0201F384: ; 0x0201F384 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r6, [r5, #0x1c] - add r4, r1, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0201F5B8 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201F5D4 - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0201F648 - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _0201F3BA - add r6, #0xc - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0201FB58 -_0201F3BA: - add r0, r5, #0x0 - mov r1, #0x2 - add r0, #0xa8 - strb r1, [r0, #0x0] - ldr r0, [r4, #0x8] - mov r1, #0x0 - str r0, [r5, #0x20] - add r0, r5, #0x0 - add r0, #0xaa - strh r1, [r0, #0x0] - add r5, #0xac - str r1, [r5, #0x0] - pop {r4-r6, pc} - - thumb_func_start FUN_0201F3D4 -FUN_0201F3D4: ; 0x0201F3D4 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r6, [r5, #0x1c] - add r4, r1, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0201F5B8 - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _0201F3FE - add r0, r5, #0x0 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r0, #0x88 - add r1, #0x8c - add r2, #0x90 - bl FUN_0201F524 -_0201F3FE: - add r0, r5, #0x0 - ldr r1, [r4, #0x1c] - add r0, #0x88 - str r1, [r0, #0x0] - add r0, r5, #0x0 - ldr r1, [r4, #0x20] - add r0, #0x8c - str r1, [r0, #0x0] - add r0, r5, #0x0 - ldr r1, [r4, #0x24] - add r0, #0x90 - str r1, [r0, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201F69C - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201F6C8 - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _0201F43A - add r6, #0xc - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0201FB58 -_0201F43A: - add r0, r5, #0x0 - mov r1, #0x3 - add r0, #0xa8 - strb r1, [r0, #0x0] - ldr r0, [r4, #0x8] - mov r1, #0x0 - str r0, [r5, #0x20] - add r0, r5, #0x0 - add r0, #0xaa - strh r1, [r0, #0x0] - add r5, #0xac - str r1, [r5, #0x0] - pop {r4-r6, pc} - - thumb_func_start FUN_0201F454 -FUN_0201F454: ; 0x0201F454 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_020B7E1C - str r0, [sp, #0x8] - add r0, r5, #0x0 - bl FUN_020B7E10 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_020B7CE4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _0201F492 - ldr r3, _0201F4E4 ; =0x021064B8 - mov r1, #0x0 - ldr r3, [r3, #0x0] - add r2, r1, #0x0 - blx r3 - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _0201F496 - bl ErrorHandling - b _0201F496 -_0201F492: - mov r0, #0x0 - str r0, [r4, #0x0] -_0201F496: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _0201F4B2 - ldr r3, _0201F4E4 ; =0x021064B8 - mov r1, #0x1 - ldr r3, [r3, #0x0] - mov r2, #0x0 - blx r3 - str r0, [r6, #0x0] - cmp r0, #0x0 - bne _0201F4B6 - bl ErrorHandling - b _0201F4B6 -_0201F4B2: - mov r0, #0x0 - str r0, [r6, #0x0] -_0201F4B6: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _0201F4DA - ldr r3, _0201F4E8 ; =0x021064C0 - mov r1, #0x2 - ldrh r2, [r5, #0x20] - lsl r1, r1, #0xe - ldr r3, [r3, #0x0] - and r1, r2 - mov r2, #0x0 - blx r3 - str r0, [r7, #0x0] - cmp r0, #0x0 - bne _0201F4DE - bl ErrorHandling - add sp, #0xc - pop {r4-r7, pc} -_0201F4DA: - mov r0, #0x0 - str r0, [r7, #0x0] -_0201F4DE: - add sp, #0xc - pop {r4-r7, pc} - nop -_0201F4E4: .word 0x021064B8 -_0201F4E8: .word 0x021064C0 - - thumb_func_start FUN_0201F4EC -FUN_0201F4EC: ; 0x0201F4EC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r3, #0x0 - bl FUN_020B7CF0 - add r0, r5, #0x0 - bl FUN_020B7C58 - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201F500 -FUN_0201F500: ; 0x0201F500 - push {r3-r5, lr} - add r4, r1, #0x0 - ldr r1, [r2, #0x0] - ldr r2, [r3, #0x0] - add r5, r0, #0x0 - bl FUN_020B7DFC - ldr r1, [sp, #0x10] - add r0, r5, #0x0 - ldr r1, [r1, #0x0] - bl FUN_020B7CDC - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020B7790 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F524 -FUN_0201F524: ; 0x0201F524 - push {r3-r5, lr} - ldr r0, [r0, #0x0] - add r5, r1, #0x0 - add r4, r2, #0x0 - cmp r0, #0x0 - beq _0201F536 - ldr r1, _0201F550 ; =0x021064BC - ldr r1, [r1, #0x0] - blx r1 -_0201F536: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _0201F542 - ldr r1, _0201F550 ; =0x021064BC - ldr r1, [r1, #0x0] - blx r1 -_0201F542: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _0201F54E - ldr r1, _0201F554 ; =0x021064C4 - ldr r1, [r1, #0x0] - blx r1 -_0201F54E: - pop {r3-r5, pc} - .balign 4 -_0201F550: .word 0x021064BC -_0201F554: .word 0x021064C4 - - thumb_func_start FUN_0201F558 -FUN_0201F558: ; 0x0201F558 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - beq _0201F568 - cmp r5, #0x0 - bne _0201F56E -_0201F568: - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0201F56E: - bl FUN_020B7E1C - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_020B7E10 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_020B7CE4 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7E1C - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7E10 - add r7, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7CE4 - ldr r1, [sp, #0x0] - cmp r1, r6 - bne _0201F5AA - ldr r1, [sp, #0x4] - cmp r1, r7 - bne _0201F5AA - cmp r4, r0 - beq _0201F5B0 -_0201F5AA: - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0201F5B0: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201F5B8 -FUN_0201F5B8: ; 0x0201F5B8 - push {r4, lr} - add r4, r1, #0x0 - add r0, r4, #0x0 - add r0, #0xa4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0201F5D0 - bl FUN_0201C40C - mov r0, #0x0 - add r4, #0xa4 - str r0, [r4, #0x0] -_0201F5D0: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F5D4 -FUN_0201F5D4: ; 0x0201F5D4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - add r0, r1, #0x0 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r1, #0x7c - add r2, #0x80 - bl FUN_0201FB9C - str r0, [r5, #0x78] - add r0, r5, #0x0 - ldr r1, [r5, #0x7c] - add r0, #0x24 - bl FUN_020B80B4 - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - beq _0201F60E - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_0201F558 - b _0201F610 -_0201F60E: - mov r0, #0x0 -_0201F610: - cmp r0, #0x0 - bne _0201F644 - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _0201F62E - add r0, r5, #0x0 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r0, #0x88 - add r1, #0x8c - add r2, #0x90 - bl FUN_0201F524 -_0201F62E: - add r0, r5, #0x0 - add r0, #0x80 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r5, #0x90 - ldr r0, [r0, #0x0] - add r1, #0x88 - add r2, #0x8c - add r3, r5, #0x0 - bl FUN_0201F454 -_0201F644: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F648 -FUN_0201F648: ; 0x0201F648 - push {r4-r6, lr} - sub sp, #0x8 - add r4, r2, #0x0 - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r4, #0x0 - bl FUN_0201FBCC - add r1, r5, #0x0 - add r1, #0x84 - add r3, r5, #0x0 - add r3, #0x94 - str r0, [r1, #0x0] - add r4, #0xc - add r2, r3, #0x0 - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - add r0, r5, #0x0 - add r0, #0x90 - ldr r0, [r0, #0x0] - add r1, r2, #0x0 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r0, #0xac - ldr r0, [r0, #0x0] - add r2, r5, #0x0 - add r3, r5, #0x0 - str r0, [sp, #0x4] - add r6, #0xd0 - add r2, #0x84 - add r3, #0x88 - ldr r0, [r6, #0x0] - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - bl FUN_0201C3B4 - add r5, #0xa4 - str r0, [r5, #0x0] - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_0201F69C -FUN_0201F69C: ; 0x0201F69C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r0, r4, #0x0 - add r1, #0x7c - add r2, #0x80 - bl FUN_0201FB9C - str r0, [r5, #0x78] - add r0, r5, #0x0 - ldr r1, [r5, #0x7c] - add r0, #0x24 - bl FUN_020B80B4 - add r0, r4, #0x0 - bl FUN_0201FBCC - add r5, #0x84 - str r0, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201F6C8 -FUN_0201F6C8: ; 0x0201F6C8 - push {r3-r4} - add r4, r0, #0x0 - add r2, r4, #0x0 - add r3, r1, #0x0 - add r3, #0xc - add r2, #0x94 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - mov r0, #0x0 - add r4, #0xa4 - str r0, [r4, #0x0] - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0201F6E8 -FUN_0201F6E8: ; 0x0201F6E8 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r6, [r5, #0x0] - cmp r6, #0x0 - bne _0201F6F6 - mov r0, #0x0 - pop {r4-r6, pc} -_0201F6F6: - add r0, r6, #0x0 - bl FUN_0201FAF4 - add r4, r0, #0x0 - bne _0201F704 - mov r0, #0x0 - pop {r4-r6, pc} -_0201F704: - add r3, r5, #0x0 - str r6, [r4, #0x1c] - add r3, #0x8 - ldmia r3!, {r0-r1} - add r2, r4, #0x0 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r3, r5, #0x0 - str r0, [r2, #0x0] - add r3, #0x14 - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0xc - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - mov r1, #0x0 - str r0, [r2, #0x0] - add r0, r4, #0x0 - add r0, #0xaa - strh r1, [r0, #0x0] - mov r1, #0x1 - add r0, r4, #0x0 - strb r1, [r4, #0x18] - add r0, #0xa8 - strb r1, [r0, #0x0] - ldr r1, [r5, #0x4] - add r0, r4, #0x0 - bl FUN_0201FBD8 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201F744 -FUN_0201F744: ; 0x0201F744 - push {r3-r5, lr} - add r5, r0, #0x0 - bne _0201F74E - bl ErrorHandling -_0201F74E: - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _0201F75C - bl ErrorHandling -_0201F75C: - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - ldr r4, [r5, #0x1c] - cmp r0, #0x0 - bne _0201F76C - mov r0, #0x0 - pop {r3-r5, pc} -_0201F76C: - add r0, r5, #0x0 - bl FUN_0201FB7C - add r0, r5, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _0201F78C - add r0, r5, #0x0 - add r1, r5, #0x0 - add r2, r5, #0x0 - add r0, #0x88 - add r1, #0x8c - add r2, #0x90 - bl FUN_0201F524 -_0201F78C: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0201F5B8 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0201FB20 - mov r0, #0x1 - strb r0, [r4, #0x3] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F7A4 -FUN_0201F7A4: ; 0x0201F7A4 - push {r3-r4} - add r4, r0, #0x0 - str r1, [r4, #0x0] - str r2, [r4, #0x4] - str r3, [r4, #0x8] - ldr r3, [sp, #0x8] - add r2, r4, #0x0 - add r2, #0xc - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - mov r0, #0x0 - str r0, [r4, #0x1c] - str r0, [r4, #0x20] - str r0, [r4, #0x24] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0201F7C8 -FUN_0201F7C8: ; 0x0201F7C8 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - bne _0201F7D6 - bl ErrorHandling -_0201F7D6: - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [r5, #0x0] - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201F7E0 -FUN_0201F7E0: ; 0x0201F7E0 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F7EA - bl ErrorHandling -_0201F7EA: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F7F0 -FUN_0201F7F0: ; 0x0201F7F0 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - bne _0201F7FE - bl ErrorHandling -_0201F7FE: - ldmia r5!, {r0-r1} - add r4, #0xc - stmia r4!, {r0-r1} - ldr r0, [r5, #0x0] - str r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F80C -FUN_0201F80C: ; 0x0201F80C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0201F81A - bl ErrorHandling -_0201F81A: - strb r4, [r5, #0x18] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F820 -FUN_0201F820: ; 0x0201F820 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F82A - bl ErrorHandling -_0201F82A: - ldrb r0, [r4, #0x18] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F830 -FUN_0201F830: ; 0x0201F830 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0201F83E - bl ErrorHandling -_0201F83E: - add r5, #0xaa - strh r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201F844 -FUN_0201F844: ; 0x0201F844 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F84E - bl ErrorHandling -_0201F84E: - add r4, #0xaa - ldrh r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_0201F854 -FUN_0201F854: ; 0x0201F854 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0201F862 - bl ErrorHandling -_0201F862: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201FBFC - pop {r3-r5, pc} - - thumb_func_start FUN_0201F86C -FUN_0201F86C: ; 0x0201F86C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0201F87A - bl ErrorHandling -_0201F87A: - add r5, #0xac - str r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0201F880 -FUN_0201F880: ; 0x0201F880 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F88A - bl ErrorHandling -_0201F88A: - add r4, #0xac - ldr r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_0201F890 -FUN_0201F890: ; 0x0201F890 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0201F89E - bl ErrorHandling -_0201F89E: - add r1, r5, #0x0 - add r1, #0xaa - ldrh r1, [r1, #0x0] - add r0, r5, #0x0 - bl FUN_0201FBEC - add r1, r5, #0x0 - add r1, #0xac - str r0, [r1, #0x0] - add r0, r5, #0x0 - add r0, #0xac - ldr r0, [r0, #0x0] - add r5, #0xac - add r0, r0, r4 - str r0, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201F8C0 -FUN_0201F8C0: ; 0x0201F8C0 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F8CA - bl ErrorHandling -_0201F8CA: - add r1, r4, #0x0 - add r1, #0xaa - ldrh r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_0201FBEC - add r4, #0xac - ldr r1, [r4, #0x0] - sub r0, r1, r0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F8E0 -FUN_0201F8E0: ; 0x0201F8E0 - push {r4, lr} - add r4, r0, #0x0 - bne _0201F8EA - bl ErrorHandling -_0201F8EA: - ldr r0, [r4, #0x7c] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201F8F0 -FUN_0201F8F0: ; 0x0201F8F0 - push {r3, lr} - add r1, r0, #0x0 - add r0, #0xa8 - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _0201F90A - add r0, r1, #0x0 - add r0, #0xa4 - add r1, #0xac - ldr r0, [r0, #0x0] - ldr r1, [r1, #0x0] - bl FUN_0201C438 -_0201F90A: - pop {r3, pc} - - thumb_func_start FUN_0201F90C -FUN_0201F90C: ; 0x0201F90C - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0xac - ldr r1, [r1, #0x0] - add r0, #0x94 - lsl r1, r1, #0x4 - lsr r1, r1, #0x10 - bl FUN_02022244 - add r2, sp, #0x0 - strb r0, [r2, #0x0] - lsr r0, r0, #0x8 - strb r0, [r2, #0x1] - ldrb r0, [r2, #0x0] - add r1, r4, #0x0 - add r1, #0x84 - strb r0, [r2, #0x2] - ldrb r0, [r2, #0x1] - strb r0, [r2, #0x3] - ldrb r2, [r2, #0x2] - ldr r0, [r4, #0x7c] - ldr r1, [r1, #0x0] - bl FUN_0201F954 - add r2, sp, #0x0 - ldr r0, [r4, #0x7c] - add r4, #0x84 - ldrb r2, [r2, #0x3] - ldr r1, [r4, #0x0] - bl FUN_0201FA04 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201F954 -FUN_0201F954: ; 0x0201F954 - push {r3-r7, lr} - ldr r3, [r0, #0x8] - mov r5, #0x0 - add r6, r0, r3 - ldrh r0, [r0, r3] - add r3, r1, #0x0 - add r1, #0x42 - ldrh r1, [r1, #0x0] - add r3, #0x3c - add r4, r6, r0 - add r0, r3, r1 - ldrh r1, [r3, r1] - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x4] - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - ldrb r0, [r4, #0x1] - cmp r0, #0x0 - ble _0201F9A2 -_0201F97C: - ldrh r0, [r4, #0x6] - add r1, r4, r0 - ldrh r0, [r4, r0] - add r2, r1, #0x4 - add r1, r0, #0x0 - mul r1, r5 - add r1, r2, r1 - ldrb r2, [r1, #0x3] - mov r0, #0x1 - tst r0, r2 - beq _0201F99A - add r0, r6, #0x0 - add r2, r7, #0x0 - bl FUN_0201F9A4 -_0201F99A: - ldrb r0, [r4, #0x1] - add r5, r5, #0x1 - cmp r5, r0 - blt _0201F97C -_0201F9A2: - pop {r3-r7, pc} - - thumb_func_start FUN_0201F9A4 -FUN_0201F9A4: ; 0x0201F9A4 - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - add r0, r1, #0x0 - ldrh r0, [r0, #0x0] - str r1, [sp, #0x0] - add r7, r2, #0x0 - add r0, r6, r0 - str r0, [sp, #0x4] - add r0, r1, #0x0 - ldrb r0, [r0, #0x2] - mov r4, #0x0 - cmp r0, #0x0 - ble _0201F9FC - add r0, r6, #0x4 - str r0, [sp, #0x8] -_0201F9C4: - ldrh r2, [r6, #0xa] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x8] - add r0, r0, r2 - ldrh r2, [r1, r2] - ldr r1, [sp, #0x4] - ldrb r1, [r1, r4] - mul r1, r2 - add r0, r0, r1 - ldr r0, [r0, #0x4] - add r5, r6, r0 - ldr r0, [r5, #0x14] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r0, r7 - ldr r0, _0201FA00 ; =0x0000FFFF - cmp r1, r0 - bls _0201F9EC - bl ErrorHandling -_0201F9EC: - ldr r0, [r5, #0x14] - add r4, r4, #0x1 - add r0, r0, r7 - str r0, [r5, #0x14] - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x2] - cmp r4, r0 - blt _0201F9C4 -_0201F9FC: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_0201FA00: .word 0x0000FFFF - - thumb_func_start FUN_0201FA04 -FUN_0201FA04: ; 0x0201FA04 - push {r3-r7, lr} - ldr r3, [r0, #0x8] - add r7, r0, r3 - ldrh r0, [r7, #0x2] - add r4, r7, r0 - ldrh r0, [r1, #0x34] - add r5, r1, r0 - ldrh r0, [r5, #0x6] - add r1, r5, r0 - ldrh r0, [r5, r0] - add r3, r1, #0x4 - add r1, r0, #0x0 - mul r1, r2 - add r0, r3, r1 - ldrh r6, [r3, r1] - ldrh r1, [r0, #0x2] - mov r0, #0x1 - tst r0, r1 - bne _0201FA2C - lsr r6, r6, #0x1 -_0201FA2C: - ldrb r0, [r4, #0x1] - mov r5, #0x0 - cmp r0, #0x0 - bls _0201FA5A -_0201FA34: - ldrh r0, [r4, #0x6] - add r1, r4, r0 - ldrh r0, [r4, r0] - add r2, r1, #0x4 - add r1, r0, #0x0 - mul r1, r5 - add r1, r2, r1 - ldrb r2, [r1, #0x3] - mov r0, #0x1 - tst r0, r2 - beq _0201FA52 - add r0, r7, #0x0 - add r2, r6, #0x0 - bl FUN_0201FA5C -_0201FA52: - ldrb r0, [r4, #0x1] - add r5, r5, #0x1 - cmp r5, r0 - blo _0201FA34 -_0201FA5A: - pop {r3-r7, pc} - - thumb_func_start FUN_0201FA5C -FUN_0201FA5C: ; 0x0201FA5C - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - add r0, r1, #0x0 - ldrh r0, [r0, #0x0] - str r1, [sp, #0x0] - add r7, r2, #0x0 - add r0, r6, r0 - str r0, [sp, #0x4] - add r0, r1, #0x0 - ldrb r0, [r0, #0x2] - mov r4, #0x0 - cmp r0, #0x0 - bls _0201FAB4 - add r0, r6, #0x4 - str r0, [sp, #0x8] -_0201FA7C: - ldrh r2, [r6, #0xa] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x8] - add r0, r0, r2 - ldrh r2, [r1, r2] - ldr r1, [sp, #0x4] - ldrb r1, [r1, r4] - mul r1, r2 - add r0, r0, r1 - ldr r0, [r0, #0x4] - add r5, r6, r0 - ldrh r1, [r5, #0x1c] - ldr r0, _0201FAB8 ; =0x00001FFF - and r0, r1 - add r1, r0, r7 - ldr r0, _0201FAB8 ; =0x00001FFF - cmp r1, r0 - bls _0201FAA4 - bl ErrorHandling -_0201FAA4: - ldrh r0, [r5, #0x1c] - add r4, r4, #0x1 - add r0, r0, r7 - strh r0, [r5, #0x1c] - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x2] - cmp r4, r0 - blo _0201FA7C -_0201FAB4: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_0201FAB8: .word 0x00001FFF - - thumb_func_start FUN_0201FABC -FUN_0201FABC: ; 0x0201FABC - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x8] - mov r7, #0x0 - cmp r0, #0x0 - ble _0201FAEC - add r4, r7, #0x0 - add r6, r7, #0x0 -_0201FACC: - ldr r0, [r5, #0x4] - add r0, r0, r4 - bl FUN_0201F094 - ldr r0, [r5, #0x4] - add r7, r7, #0x1 - add r1, r0, r4 - add r0, r5, #0x0 - add r0, #0xc4 - ldr r0, [r0, #0x0] - add r4, #0xb8 - str r1, [r0, r6] - ldr r0, [r5, #0x8] - add r6, r6, #0x4 - cmp r7, r0 - blt _0201FACC -_0201FAEC: - mov r0, #0x0 - add r5, #0xc8 - str r0, [r5, #0x0] - pop {r3-r7, pc} - - thumb_func_start FUN_0201FAF4 -FUN_0201FAF4: ; 0x0201FAF4 - add r1, r0, #0x0 - add r1, #0xc8 - ldr r3, [r1, #0x0] - ldr r1, [r0, #0x8] - cmp r3, r1 - blt _0201FB04 - mov r0, #0x0 - bx lr -_0201FB04: - add r1, r0, #0x0 - add r1, #0xc4 - ldr r2, [r1, #0x0] - lsl r1, r3, #0x2 - ldr r2, [r2, r1] - add r1, r0, #0x0 - add r1, #0xc8 - ldr r1, [r1, #0x0] - add r0, #0xc8 - add r1, r1, #0x1 - str r1, [r0, #0x0] - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0201FB20 -FUN_0201FB20: ; 0x0201FB20 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0xc8 - ldr r0, [r0, #0x0] - add r4, r1, #0x0 - cmp r0, #0x0 - bgt _0201FB32 - mov r0, #0x0 - pop {r3-r5, pc} -_0201FB32: - add r0, r4, #0x0 - bl FUN_0201F094 - add r0, r5, #0x0 - add r0, #0xc8 - ldr r0, [r0, #0x0] - sub r1, r0, #0x1 - add r0, r5, #0x0 - add r0, #0xc8 - str r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0xc4 - add r5, #0xc8 - ldr r1, [r0, #0x0] - ldr r0, [r5, #0x0] - lsl r0, r0, #0x2 - str r4, [r1, r0] - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_0201FB58 -FUN_0201FB58: ; 0x0201FB58 - add r2, r0, #0x0 - add r2, #0xb4 - ldr r3, [r2, #0x0] - add r2, r1, #0x0 - add r2, #0xb4 - str r3, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xb4 - ldr r2, [r2, #0x0] - add r2, #0xb0 - str r1, [r2, #0x0] - add r2, r1, #0x0 - add r2, #0xb0 - str r0, [r2, #0x0] - add r0, #0xb4 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0201FB7C -FUN_0201FB7C: ; 0x0201FB7C - add r1, r0, #0x0 - add r1, #0xb0 - ldr r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0xb4 - ldr r1, [r1, #0x0] - add r1, #0xb0 - str r2, [r1, #0x0] - add r1, r0, #0x0 - add r0, #0xb0 - add r1, #0xb4 - ldr r0, [r0, #0x0] - ldr r1, [r1, #0x0] - add r0, #0xb4 - str r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0201FB9C -FUN_0201FB9C: ; 0x0201FB9C - push {r3-r7, lr} - add r6, r1, #0x0 - mov r1, #0x0 - add r5, r2, #0x0 - bl FUN_0201FC90 - add r7, r0, #0x0 - bl FUN_020BC13C - add r4, r0, #0x0 - ldrh r0, [r4, #0xe] - add r0, r4, r0 - ldr r0, [r0, #0xc] - add r0, r4, r0 - str r0, [r6, #0x0] - cmp r5, #0x0 - beq _0201FBC6 - add r0, r7, #0x0 - bl FUN_020BC0FC - str r0, [r5, #0x0] -_0201FBC6: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201FBCC -FUN_0201FBCC: ; 0x0201FBCC - ldr r3, _0201FBD4 ; =FUN_0201FC90 - mov r1, #0x1 - bx r3 - nop -_0201FBD4: .word FUN_0201FC90 - - thumb_func_start FUN_0201FBD8 -FUN_0201FBD8: ; 0x0201FBD8 - push {r3, lr} - ldr r2, [r1, #0x1c] - cmp r2, #0x0 - bne _0201FBE6 - bl FUN_0201F384 - pop {r3, pc} -_0201FBE6: - bl FUN_0201F3D4 - pop {r3, pc} - - thumb_func_start FUN_0201FBEC -FUN_0201FBEC: ; 0x0201FBEC - push {r3, lr} - ldr r0, [r0, #0x20] - bl FUN_0201FCA8 - ldr r0, [r0, #0x0] - lsl r0, r0, #0xc - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0201FBFC -FUN_0201FBFC: ; 0x0201FBFC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - add r1, #0xaa - ldrh r1, [r1, #0x0] - ldr r0, [r5, #0x20] - bl FUN_0201FCA8 - add r5, #0xac - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0201FC1C - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201FC1C -FUN_0201FC1C: ; 0x0201FC1C - push {r3-r6} - ldr r4, [r0, #0x0] - ldr r6, [r1, #0x0] - lsl r4, r4, #0xc - mov r3, #0x0 - cmp r4, r6 - bgt _0201FC32 - ldr r5, [r0, #0x4] - lsl r5, r5, #0xc - cmp r5, r6 - bge _0201FC36 -_0201FC32: - str r4, [r1, #0x0] - b _0201FC4E -_0201FC36: - add r2, r6, r2 - cmp r5, r2 - bge _0201FC4C - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0201FC46 - str r4, [r1, #0x0] - b _0201FC4E -_0201FC46: - mov r3, #0x1 - str r5, [r1, #0x0] - b _0201FC4E -_0201FC4C: - str r2, [r1, #0x0] -_0201FC4E: - add r0, r3, #0x0 - pop {r3-r6} - bx lr - - thumb_func_start FUN_0201FC54 -FUN_0201FC54: ; 0x0201FC54 - push {r3, lr} - add r3, r0, #0x0 - add r0, #0x90 - str r0, [sp, #0x0] - add r0, r3, #0x0 - add r0, #0x80 - add r2, r3, #0x0 - ldr r1, [r3, #0x78] - ldr r0, [r0, #0x0] - add r2, #0x88 - add r3, #0x8c - bl FUN_0201F500 - pop {r3, pc} - - thumb_func_start FUN_0201FC70 -FUN_0201FC70: ; 0x0201FC70 - push {r3-r4, lr} - sub sp, #0xc - add r4, r0, #0x0 - ldr r0, [r4, #0x78] - bl FUN_020B772C - add r4, #0x80 - ldr r0, [r4, #0x0] - add r1, sp, #0x4 - add r2, sp, #0x8 - add r3, sp, #0x0 - bl FUN_0201F4EC - add sp, #0xc - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201FC90 -FUN_0201FC90: ; 0x0201FC90 - cmp r1, #0x0 - beq _0201FC9A - cmp r1, #0x1 - beq _0201FC9E - b _0201FCA2 -_0201FC9A: - ldr r0, [r0, #0x0] - bx lr -_0201FC9E: - ldr r0, [r0, #0x4] - bx lr -_0201FCA2: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0201FCA8 -FUN_0201FCA8: ; 0x0201FCA8 - mov r2, #0xc - mul r2, r1 - add r0, r0, r2 - bx lr - - thumb_func_start FUN_0201FCB0 -FUN_0201FCB0: ; 0x0201FCB0 - push {r3-r5, lr} - add r5, r0, #0x0 - bne _0201FCBA - bl ErrorHandling -_0201FCBA: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _0201FCC4 - bl ErrorHandling -_0201FCC4: - mov r1, #0x49 - ldr r0, [r5, #0x8] - lsl r1, r1, #0x2 - bl FUN_02016998 - add r4, r0, #0x0 - bne _0201FCD6 - bl ErrorHandling -_0201FCD6: - add r0, r4, #0x0 - bl FUN_0201FE44 - ldr r2, [r5, #0x0] - ldr r0, [r5, #0x8] - lsl r1, r2, #0x6 - add r1, r2, r1 - lsl r1, r1, #0x2 - bl FUN_02016998 - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _0201FCF4 - bl ErrorHandling -_0201FCF4: - ldr r0, [r5, #0x0] - str r0, [r4, #0x4] - ldr r1, [r5, #0x0] - ldr r0, [r5, #0x8] - lsl r1, r1, #0x2 - bl FUN_02016998 - str r0, [r4, #0x8] - cmp r0, #0x0 - bne _0201FD0C - bl ErrorHandling -_0201FD0C: - add r0, r4, #0x0 - bl FUN_0202083C - add r0, r4, #0x0 - add r0, #0x10 - bl FUN_0201FE6C - add r2, r4, #0x0 - mov r1, #0x43 - lsl r1, r1, #0x2 - add r2, #0x10 - str r2, [r4, r1] - add r0, r1, #0x4 - str r2, [r4, r0] - ldr r0, [r5, #0x4] - add r1, #0x8 - str r0, [r4, r1] - ldr r0, [r5, #0x8] - ldr r1, _0201FD54 ; =0x02105BBC - bl FUN_020161A4 - mov r1, #0x46 - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, [r4, r1] - add r1, r1, #0x4 - add r1, r4, r1 - bl thunk_FUN_020afda0_2 - mov r0, #0x12 - mov r1, #0x1 - lsl r0, r0, #0x4 - str r1, [r4, r0] - add r0, r4, #0x0 - pop {r3-r5, pc} - nop -_0201FD54: .word 0x02105BBC - - thumb_func_start FUN_0201FD58 -FUN_0201FD58: ; 0x0201FD58 - push {r4, lr} - add r4, r0, #0x0 - bne _0201FD62 - mov r0, #0x0 - pop {r4, pc} -_0201FD62: - ldr r1, [r4, #0x0] - cmp r1, #0x0 - bne _0201FD6C - mov r0, #0x1 - pop {r4, pc} -_0201FD6C: - bl FUN_0201FDB4 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - ldr r0, [r4, #0x8] - bl FUN_02016A18 - ldr r0, [r4, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_0201FE44 - add r0, r4, #0x0 - bl FUN_02016A18 - mov r0, #0x1 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201FD98 -FUN_0201FD98: ; 0x0201FD98 - cmp r0, #0x0 - bne _0201FDA0 - mov r0, #0x0 - bx lr -_0201FDA0: - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _0201FDAA - mov r0, #0x0 - bx lr -_0201FDAA: - mov r2, #0x12 - lsl r2, r2, #0x4 - str r1, [r0, r2] - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0201FDB4 -FUN_0201FDB4: ; 0x0201FDB4 - push {r4-r6, lr} - cmp r0, #0x0 - bne _0201FDBE - mov r0, #0x0 - pop {r4-r6, pc} -_0201FDBE: - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _0201FDC8 - mov r0, #0x1 - pop {r4-r6, pc} -_0201FDC8: - mov r1, #0x11 - lsl r1, r1, #0x4 - add r4, r0, #0x0 - ldr r1, [r0, r1] - add r4, #0x10 - cmp r1, r4 - beq _0201FDE8 - mov r6, #0x1 - lsl r6, r6, #0x8 -_0201FDDA: - ldr r5, [r1, r6] - add r0, r1, #0x0 - bl FUN_0201FFC8 - add r1, r5, #0x0 - cmp r5, r4 - bne _0201FDDA -_0201FDE8: - mov r0, #0x1 - pop {r4-r6, pc} - - thumb_func_start FUN_0201FDEC -FUN_0201FDEC: ; 0x0201FDEC - push {r3-r7, lr} - add r5, r0, #0x0 - bne _0201FDF6 - bl ErrorHandling -_0201FDF6: - mov r0, #0x12 - lsl r0, r0, #0x4 - ldr r1, [r5, r0] - cmp r1, #0x0 - beq _0201FE38 - sub r0, #0x10 - add r6, r5, #0x0 - ldr r4, [r5, r0] - add r6, #0x10 - cmp r4, r6 - beq _0201FE38 - ldr r7, _0201FE3C ; =0x020EE658 -_0201FE0E: - add r2, r4, #0x0 - add r2, #0x34 - ldrb r2, [r2, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - ldr r2, [r7, r2] - blx r2 - add r1, r4, #0x0 - add r1, #0x35 - ldrb r1, [r1, #0x0] - add r0, r4, #0x0 - lsl r2, r1, #0x2 - ldr r1, _0201FE40 ; =0x020EE660 - ldr r1, [r1, r2] - blx r1 - mov r0, #0x1 - lsl r0, r0, #0x8 - ldr r4, [r4, r0] - cmp r4, r6 - bne _0201FE0E -_0201FE38: - pop {r3-r7, pc} - nop -_0201FE3C: .word 0x020EE658 -_0201FE40: .word 0x020EE660 - - thumb_func_start FUN_0201FE44 -FUN_0201FE44: ; 0x0201FE44 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - str r1, [r4, #0x0] - str r1, [r4, #0x4] - str r1, [r4, #0x8] - mov r0, #0x45 - str r1, [r4, #0xc] - lsl r0, r0, #0x2 - str r1, [r4, r0] - add r0, r4, #0x0 - add r0, #0x10 - bl FUN_0201FE6C - mov r0, #0x12 - mov r1, #0x0 - lsl r0, r0, #0x4 - str r1, [r4, r0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201FE6C -FUN_0201FE6C: ; 0x0201FE6C - push {r4, lr} - mov r2, #0x41 - add r4, r0, #0x0 - mov r1, #0x0 - lsl r2, r2, #0x2 - str r1, [r4, #0x3c] - bl Call_FillMemWithValue - add r0, r4, #0x0 - add r0, #0xb4 - bl FUN_020B1A24 - add r0, r4, #0x0 - add r0, #0xd8 - bl FUN_020B19DC - mov r0, #0x0 - str r0, [r4, #0x30] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201FE94 -FUN_0201FE94: ; 0x0201FE94 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - bl FUN_02020874 - add r4, r0, #0x0 - bne _0201FEA6 - mov r0, #0x0 - pop {r4-r6, pc} -_0201FEA6: - ldr r0, [r5, #0x0] - add r6, r5, #0x0 - str r0, [r4, #0x3c] - add r0, r4, #0x0 - mov r2, #0x0 - add r0, #0xf0 - add r6, #0x8 - strh r2, [r0, #0x0] - ldmia r6!, {r0-r1} - add r3, r4, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r6, #0x0] - add r6, r5, #0x0 - str r0, [r3, #0x0] - add r6, #0x14 - add r3, r4, #0x0 - ldmia r6!, {r0-r1} - add r3, #0x18 - stmia r3!, {r0-r1} - ldr r0, [r6, #0x0] - str r0, [r3, #0x0] - ldrh r0, [r5, #0x20] - strh r0, [r4, #0x24] - add r0, r4, #0x0 - ldr r1, [r5, #0x28] - add r0, #0xf8 - str r1, [r0, #0x0] - add r0, r4, #0x0 - ldr r1, [r5, #0x24] - add r0, #0xf4 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x26 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x27 - strb r2, [r0, #0x0] - str r2, [r4, #0x2c] - add r0, r4, #0x0 - str r2, [r4, #0x30] - mov r1, #0x11 - add r0, #0x28 - strb r1, [r0, #0x0] - mov r0, #0x45 - ldr r1, [r5, #0x0] - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - add r1, r4, #0x0 - add r1, #0x26 - ldrb r1, [r1, #0x0] - bl FUN_020B502C - add r0, r4, #0x0 - add r0, #0x27 - ldrb r2, [r0, #0x0] - mov r0, #0x45 - ldr r1, [r5, #0x0] - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - mov r1, #0x1 - mov r3, #0x2 - and r1, r2 - and r2, r3 - bl FUN_020B4F38 - add r0, r4, #0x0 - mov r2, #0x1 - add r0, #0x34 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x35 - strb r1, [r0, #0x0] - lsl r0, r2, #0xd - str r0, [r4, #0x38] - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x4] - ldr r3, [r5, #0x2c] - add r2, r4, #0x0 - bl FUN_02020434 - cmp r0, #0x0 - bne _0201FF56 - add r0, r4, #0x0 - bl FUN_0201FFC8 - mov r0, #0x0 - pop {r4-r6, pc} -_0201FF56: - add r1, r4, #0x0 - add r1, #0xf8 - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - add r0, #0xd8 - bl FUN_020205E8 - add r1, r4, #0x0 - add r1, #0x2a - strb r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0x2a - ldrb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x29 - strb r1, [r0, #0x0] - ldr r0, [r5, #0x0] - add r1, r4, #0x0 - bl FUN_02020788 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201FF84 -FUN_0201FF84: ; 0x0201FF84 - push {r4, lr} - sub sp, #0x30 - add r2, r0, #0x0 - ldr r0, [r2, #0x0] - add r4, r2, #0x0 - str r0, [sp, #0x0] - ldr r0, [r2, #0x4] - add r4, #0x8 - str r0, [sp, #0x4] - ldmia r4!, {r0-r1} - add r3, sp, #0x8 - stmia r3!, {r0-r1} - ldr r0, [r4, #0x0] - mov r1, #0x0 - str r0, [r3, #0x0] - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [sp, #0x14] - str r0, [sp, #0x18] - str r0, [sp, #0x1c] - add r0, sp, #0x0 - strh r1, [r0, #0x20] - ldr r0, [r2, #0x14] - str r0, [sp, #0x24] - ldr r0, [r2, #0x18] - str r0, [sp, #0x28] - ldr r0, [r2, #0x1c] - str r0, [sp, #0x2c] - add r0, sp, #0x0 - bl FUN_0201FE94 - add sp, #0x30 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201FFC8 -FUN_0201FFC8: ; 0x0201FFC8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0xec - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _02020040 - add r1, r5, #0x0 - add r1, #0xfc - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _0201FFE4 - bl FUN_02020820 -_0201FFE4: - add r0, r5, #0x0 - add r0, #0xec - ldr r0, [r0, #0x0] - cmp r0, #0x3 - bne _0202000E - add r1, r5, #0x0 - add r1, #0xf8 - add r0, r5, #0x0 - add r4, r5, #0x0 - ldr r1, [r1, #0x0] - add r0, #0xb4 - add r4, #0x40 - bl FUN_020B1A14 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _0202000E - ldr r0, [r4, #0x5c] - bl FUN_020B4358 -_0202000E: - add r0, r5, #0x0 - add r0, #0xec - ldr r0, [r0, #0x0] - cmp r0, #0x2 - bne _02020030 - add r4, r5, #0x0 - add r4, #0x40 - ldr r0, [r4, #0x70] - cmp r0, #0x0 - beq _02020026 - bl FUN_02016A18 -_02020026: - ldr r0, [r4, #0x74] - cmp r0, #0x0 - beq _02020030 - bl FUN_02016A18 -_02020030: - add r0, r5, #0x0 - mov r1, #0x0 - add r0, #0xec - str r1, [r0, #0x0] - ldr r0, [r5, #0x3c] - add r1, r5, #0x0 - bl FUN_02020890 -_02020040: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02020044 -FUN_02020044: ; 0x02020044 - add r2, r1, #0x0 - add r3, r0, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020054 -FUN_02020054: ; 0x02020054 - add r3, r1, #0x0 - add r2, r0, #0x0 - ldmia r3!, {r0-r1} - add r2, #0xc - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_02020064 -FUN_02020064: ; 0x02020064 - add r3, r1, #0x0 - add r2, r0, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x18 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_02020074 -FUN_02020074: ; 0x02020074 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02020064 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020200EC - pop {r3-r5, pc} - - thumb_func_start FUN_02020088 -FUN_02020088: ; 0x02020088 - strh r1, [r0, #0x24] - bx lr - - thumb_func_start FUN_0202008C -FUN_0202008C: ; 0x0202008C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02020088 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020200EC - pop {r3-r5, pc} - - thumb_func_start FUN_020200A0 -FUN_020200A0: ; 0x020200A0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020200AE - bl ErrorHandling -_020200AE: - cmp r4, #0x2 - blt _020200B6 - bl ErrorHandling -_020200B6: - add r5, #0x34 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020200BC -FUN_020200BC: ; 0x020200BC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020200CA - bl ErrorHandling -_020200CA: - cmp r4, #0x2 - blt _020200D2 - bl ErrorHandling -_020200D2: - add r5, #0x35 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020200D8 -FUN_020200D8: ; 0x020200D8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020200E6 - bl ErrorHandling -_020200E6: - str r4, [r5, #0x38] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020200EC -FUN_020200EC: ; 0x020200EC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020200FA - bl ErrorHandling -_020200FA: - add r5, #0x26 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02020100 -FUN_02020100: ; 0x02020100 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0202010E - bl ErrorHandling -_0202010E: - add r0, r5, #0x0 - add r0, #0x27 - strb r4, [r0, #0x0] - mov r0, #0x0 - add r5, #0x26 - strb r0, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202011C -FUN_0202011C: ; 0x0202011C - bx lr - .balign 4 - - thumb_func_start FUN_02020120 -FUN_02020120: ; 0x02020120 - add r0, #0x18 - bx lr - - thumb_func_start FUN_02020124 -FUN_02020124: ; 0x02020124 - ldrh r0, [r0, #0x24] - bx lr - - thumb_func_start FUN_02020128 -FUN_02020128: ; 0x02020128 - add r0, #0x34 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020130 -FUN_02020130: ; 0x02020130 - push {r4, lr} - lsl r2, r1, #0x10 - lsr r3, r2, #0x10 - add r2, r0, #0x0 - add r2, #0xf0 - strh r3, [r2, #0x0] - add r2, r0, #0x0 - add r2, #0xec - ldr r2, [r2, #0x0] - cmp r2, #0x1 - beq _0202014A - cmp r2, #0x3 - bne _02020168 -_0202014A: - add r4, r0, #0x0 - add r4, #0x40 - lsl r1, r1, #0x10 - ldr r0, [r4, #0x4] - lsr r1, r1, #0x10 - bl FUN_020AFC04 - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x8 - bl FUN_020B1EE4 - mov r0, #0x1 - str r0, [r4, #0x10] - pop {r4, pc} -_02020168: - add r4, r0, #0x0 - add r4, #0x40 - ldr r0, [r4, #0x6c] - add r1, r3, #0x0 - bl FUN_020AFC04 - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x8 - bl FUN_020B242C - mov r0, #0x1 - str r0, [r4, #0x10] - pop {r4, pc} - - thumb_func_start FUN_02020184 -FUN_02020184: ; 0x02020184 - push {r3, lr} - add r2, r0, #0x0 - add r2, #0xf0 - ldrh r2, [r2, #0x0] - cmp r2, r1 - beq _02020194 - bl FUN_02020130 -_02020194: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02020198 -FUN_02020198: ; 0x02020198 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0xec - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _020201A8 - cmp r0, #0x3 - bne _020201C2 -_020201A8: - add r5, r4, #0x0 - add r5, #0x40 - add r0, r5, #0x0 - add r0, #0x8 - bl FUN_020B0448 - mov r0, #0x1 - str r0, [r5, #0x10] - add r0, r4, #0x0 - mov r1, #0x0 - bl FUN_02020208 - pop {r3-r5, pc} -_020201C2: - add r5, r4, #0x0 - add r5, #0x40 - add r0, r5, #0x0 - add r0, #0x8 - bl FUN_020B0448 - mov r0, #0x1 - str r0, [r5, #0x10] - add r0, r4, #0x0 - mov r1, #0x0 - bl FUN_02020208 - pop {r3-r5, pc} - - thumb_func_start FUN_020201DC -FUN_020201DC: ; 0x020201DC - add r0, #0xf0 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_020201E4 -FUN_020201E4: ; 0x020201E4 - push {r3, lr} - add r2, r0, #0x0 - add r2, #0xec - ldr r2, [r2, #0x0] - cmp r2, #0x1 - beq _020201F4 - cmp r2, #0x3 - bne _020201FE -_020201F4: - add r0, #0x40 - add r0, #0x8 - bl FUN_020B1EC4 - pop {r3, pc} -_020201FE: - add r0, #0x40 - add r0, #0x8 - bl FUN_020B224C - pop {r3, pc} - - thumb_func_start FUN_02020208 -FUN_02020208: ; 0x02020208 - push {r3, lr} - add r2, r0, #0x0 - add r2, #0xec - ldr r2, [r2, #0x0] - cmp r2, #0x1 - beq _02020218 - cmp r2, #0x3 - bne _02020222 -_02020218: - add r0, #0x40 - add r0, #0x8 - bl FUN_020B1EA4 - pop {r3, pc} -_02020222: - add r0, #0x40 - add r0, #0x8 - bl FUN_020B2194 - pop {r3, pc} - - thumb_func_start FUN_0202022C -FUN_0202022C: ; 0x0202022C - ldr r3, _02020234 ; =0x020B04FC - add r0, #0x40 - add r0, #0x8 - bx r3 - .balign 4 -_02020234: .word 0x020B04FC - - thumb_func_start FUN_02020238 -FUN_02020238: ; 0x02020238 - add r0, #0xf2 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020240 -FUN_02020240: ; 0x02020240 - add r0, #0xf2 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020248 -FUN_02020248: ; 0x02020248 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020256 - bl ErrorHandling -_02020256: - add r0, r5, #0x0 - add r0, #0x29 - strb r4, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x2 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x28 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x10 - add r5, #0x28 - bic r1, r0 - strb r1, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202027C -FUN_0202027C: ; 0x0202027C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02020248 - add r1, r4, #0x0 - add r1, #0xf8 - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - add r0, #0xd8 - bl FUN_020205E8 - add r1, r4, #0x0 - add r1, #0x29 - ldrb r1, [r1, #0x0] - add r4, #0x29 - add r0, r1, r0 - strb r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_020202A0 -FUN_020202A0: ; 0x020202A0 - add r0, #0x29 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_020202A8 -FUN_020202A8: ; 0x020202A8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020202B6 - bl ErrorHandling -_020202B6: - add r0, r5, #0x0 - add r0, #0x2a - strb r4, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x10 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x28 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x2 - add r5, #0x28 - bic r1, r0 - strb r1, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020202DC -FUN_020202DC: ; 0x020202DC - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020202A8 - add r1, r4, #0x0 - add r1, #0xf8 - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - add r0, #0xd8 - bl FUN_020205E8 - add r1, r4, #0x0 - add r1, #0x2a - ldrb r1, [r1, #0x0] - add r4, #0x2a - add r0, r1, r0 - strb r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02020300 -FUN_02020300: ; 0x02020300 - push {r4, lr} - add r4, r0, #0x0 - bne _0202030A - bl ErrorHandling -_0202030A: - add r4, #0x2a - ldrb r0, [r4, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02020310 -FUN_02020310: ; 0x02020310 - push {r3-r5, lr} - add r5, r0, #0x0 - add r2, r5, #0x0 - ldr r4, [r5, #0x3c] - add r2, #0xf4 - strh r1, [r2, #0x0] - bl FUN_02020820 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02020788 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202032C -FUN_0202032C: ; 0x0202032C - add r0, #0xf4 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020334 -FUN_02020334: ; 0x02020334 - push {r3-r4} - add r3, r0, #0x0 - add r4, r1, #0x0 - add r3, #0xb4 - mov r2, #0x4 -_0202033E: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _0202033E - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_02020350 -FUN_02020350: ; 0x02020350 - add r0, #0xb4 - bx lr - - thumb_func_start FUN_02020354 -FUN_02020354: ; 0x02020354 - add r0, #0xd8 - bx lr - - thumb_func_start FUN_02020358 -FUN_02020358: ; 0x02020358 - str r1, [r0, #0x2c] - cmp r1, #0x1 - bne _0202036E - add r1, r0, #0x0 - add r1, #0x28 - ldrb r2, [r1, #0x0] - mov r1, #0x4 - add r0, #0x28 - orr r1, r2 - strb r1, [r0, #0x0] - bx lr -_0202036E: - add r1, r0, #0x0 - add r1, #0x28 - ldrb r2, [r1, #0x0] - mov r1, #0x4 - eor r1, r2 - add r0, #0x28 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020380 -FUN_02020380: ; 0x02020380 - add r0, #0xf8 - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020388 -FUN_02020388: ; 0x02020388 - push {r4, lr} - add r4, r0, #0x0 - bne _02020392 - bl ErrorHandling -_02020392: - ldr r0, [r4, #0x50] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020398 -FUN_02020398: ; 0x02020398 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x0 - bne _020203A6 - bl ErrorHandling -_020203A6: - str r5, [r4, #0x30] - cmp r5, #0x0 - bne _020203BC - add r0, r4, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x8 - add r4, #0x28 - eor r0, r1 - strb r0, [r4, #0x0] - pop {r3-r5, pc} -_020203BC: - add r0, r4, #0x0 - add r0, #0x28 - ldrb r1, [r0, #0x0] - mov r0, #0x8 - orr r0, r1 - add r4, #0x28 - strb r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020203CC -FUN_020203CC: ; 0x020203CC - push {r4, lr} - mov r1, #0x1 - lsl r1, r1, #0xa - bl FUN_02016998 - add r4, r0, #0x0 - mov r0, #0xb - mov r2, #0x1 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - lsl r2, r2, #0xa - bl MIi_CpuClear16 - mov r1, #0x1 - add r0, r4, #0x0 - lsl r1, r1, #0xa - bl DC_FlushRange - mov r2, #0x1 - add r0, r4, #0x0 - mov r1, #0x0 - lsl r2, r2, #0xa - bl GX_LoadOAM - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - - thumb_func_start FUN_02020404 -FUN_02020404: ; 0x02020404 - push {r4, lr} - mov r1, #0x1 - lsl r1, r1, #0xa - bl FUN_02016998 - add r4, r0, #0x0 - mov r0, #0xb - mov r2, #0x1 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - lsl r2, r2, #0xa - bl MIi_CpuClear16 - mov r2, #0x1 - add r0, r4, #0x0 - mov r1, #0x0 - lsl r2, r2, #0xa - bl GXS_LoadOAM - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020434 -FUN_02020434: ; 0x02020434 - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - add r4, r2, #0x0 - add r0, r5, #0x0 - add r7, r3, #0x0 - bl FUN_020204DC - add r1, r4, #0x0 - add r1, #0xec - str r0, [r1, #0x0] - add r3, r4, #0x0 - ldr r6, [r5, #0x0] - add r3, #0xb4 - mov r2, #0x4 -_02020452: - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02020452 - ldr r0, [r6, #0x0] - add r2, r4, #0x0 - str r0, [r3, #0x0] - ldr r3, [r5, #0x8] - add r2, #0xd8 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r1, r4, #0x0 - str r0, [r2, #0x0] - ldr r0, [r5, #0xc] - bl FUN_020204F4 - ldr r0, [r5, #0x10] - cmp r0, #0x0 - beq _02020486 - add r1, r4, #0x0 - bl FUN_020204F8 - b _02020494 -_02020486: - mov r1, #0x47 - ldr r0, [sp, #0x0] - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - add r1, r4, #0x0 - bl FUN_020204F8 -_02020494: - add r0, r4, #0x0 - add r0, #0xec - ldr r0, [r0, #0x0] - cmp r0, #0x2 - bne _020204B8 - ldr r0, [r5, #0x14] - add r1, r4, #0x0 - bl FUN_020204FC - ldr r0, [r5, #0x18] - add r1, r4, #0x0 - bl FUN_02020504 - add r0, r4, #0x0 - add r1, r7, #0x0 - bl FUN_02020588 - b _020204D0 -_020204B8: - cmp r0, #0x3 - bne _020204C8 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - bl FUN_0202052C - b _020204D0 -_020204C8: - add r0, r4, #0x0 - add r1, r7, #0x0 - bl FUN_0202050C -_020204D0: - add r5, #0x20 - ldrb r0, [r5, #0x0] - add r4, #0xf2 - strb r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} - - thumb_func_start FUN_020204DC -FUN_020204DC: ; 0x020204DC - ldr r1, [r0, #0x14] - cmp r1, #0x0 - beq _020204E6 - mov r0, #0x2 - bx lr -_020204E6: - ldr r0, [r0, #0x1c] - cmp r0, #0x1 - bne _020204F0 - mov r0, #0x3 - bx lr -_020204F0: - mov r0, #0x1 - bx lr - - thumb_func_start FUN_020204F4 -FUN_020204F4: ; 0x020204F4 - str r0, [r1, #0x40] - bx lr - - thumb_func_start FUN_020204F8 -FUN_020204F8: ; 0x020204F8 - str r0, [r1, #0x44] - bx lr - - thumb_func_start FUN_020204FC -FUN_020204FC: ; 0x020204FC - add r1, #0xa8 - str r0, [r1, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02020504 -FUN_02020504: ; 0x02020504 - add r1, #0xac - str r0, [r1, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202050C -FUN_0202050C: ; 0x0202050C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r5, #0x0 - add r4, #0x40 - ldr r0, [r4, #0x4] - mov r1, #0x0 - bl FUN_020AFC04 - add r4, #0x8 - add r1, r0, #0x0 - ldr r2, [r5, #0x40] - add r0, r4, #0x0 - bl FUN_020B1F80 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202052C -FUN_0202052C: ; 0x0202052C - push {r4-r7, lr} - sub sp, #0x1c - add r6, r1, #0x0 - add r4, r6, #0x0 - add r4, #0x40 - add r5, r0, #0x0 - bl FUN_020B43A4 - str r0, [r4, #0x5c] - ldr r0, [r4, #0x4] - mov r1, #0x0 - ldr r5, [r5, #0x4] - bl FUN_020AFC04 - str r0, [sp, #0x18] - add r0, r6, #0x0 - add r0, #0xb4 - mov r1, #0x1 - bl FUN_020B1A14 - add r7, r0, #0x0 - add r0, r6, #0x0 - add r0, #0xb4 - mov r1, #0x2 - bl FUN_020B1A14 - mov r1, #0x0 - mvn r1, r1 - str r1, [sp, #0x0] - str r7, [sp, #0x4] - str r0, [sp, #0x8] - ldr r0, [r5, #0x14] - ldr r1, [sp, #0x18] - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [r5, #0x10] - str r0, [sp, #0x14] - add r0, r4, #0x0 - ldr r2, [r6, #0x40] - ldr r3, [r4, #0x5c] - add r0, #0x8 - bl FUN_020B1EFC - add sp, #0x1c - pop {r4-r7, pc} - - thumb_func_start FUN_02020588 -FUN_02020588: ; 0x02020588 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r4, r5, #0x0 - add r4, #0x40 - ldr r0, [r4, #0x6c] - add r7, r1, #0x0 - mov r1, #0x0 - bl FUN_020AFC04 - str r0, [sp, #0xc] - ldr r0, [r4, #0x68] - bl FUN_020B23D8 - add r6, r0, #0x0 - mov r1, #0x28 - add r0, r7, #0x0 - mul r1, r6 - bl FUN_02016998 - mov r1, #0x54 - str r0, [r4, #0x70] - add r0, r7, #0x0 - mul r1, r6 - bl FUN_02016998 - str r0, [r4, #0x74] - ldr r0, [r4, #0x4] - add r3, r6, #0x0 - str r0, [sp, #0x0] - ldr r0, [r5, #0x40] - str r0, [sp, #0x4] - ldr r0, [r4, #0x68] - str r0, [sp, #0x8] - add r0, r4, #0x0 - ldr r1, [r4, #0x70] - ldr r2, [r4, #0x74] - add r0, #0x8 - bl FUN_020B20C8 - add r4, #0x8 - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl FUN_020B242C - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020205E8 -FUN_020205E8: ; 0x020205E8 - push {r4, lr} - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _020205F6 - mov r4, #0x2 - lsl r4, r4, #0x8 - b _02020602 -_020205F6: - ldr r2, [r0, #0x0] - cmp r2, #0x4 - bne _02020600 - mov r4, #0x0 - b _02020602 -_02020600: - mov r4, #0x20 -_02020602: - cmp r4, #0x0 - beq _02020612 - bl FUN_020B19C4 - add r1, r4, #0x0 - bl _u32_div_f - pop {r4, pc} -_02020612: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020618 -FUN_02020618: ; 0x02020618 - push {r3-r6, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r3, r4, #0x0 - add r5, r0, #0x0 - ldmia r3!, {r0-r1} - add r2, sp, #0x0 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r1, r4, #0x0 - str r0, [r2, #0x0] - mov r0, #0x45 - lsl r0, r0, #0x2 - add r2, r4, #0x0 - ldr r0, [r5, r0] - add r1, #0xb4 - add r2, #0xd8 - bl thunk_FUN_020b5040 - mov r0, #0x45 - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - bl FUN_020B326C - bl FUN_020B2B58 - add r1, r4, #0x0 - mov r0, #0x45 - add r1, #0x26 - lsl r0, r0, #0x2 - ldrb r1, [r1, #0x0] - ldr r0, [r5, r0] - bl FUN_020B502C - add r0, r4, #0x0 - add r0, #0x26 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02020680 - add r0, r4, #0x0 - add r0, #0x27 - ldrb r2, [r0, #0x0] - mov r0, #0x45 - lsl r0, r0, #0x2 - mov r1, #0x1 - ldr r0, [r5, r0] - mov r3, #0x2 - and r1, r2 - and r2, r3 - bl FUN_020B4F38 - b _0202068E -_02020680: - mov r0, #0x45 - lsl r0, r0, #0x2 - mov r1, #0x0 - ldr r0, [r5, r0] - add r2, r1, #0x0 - bl FUN_020B4F38 -_0202068E: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x8] - bl FUN_020B2A08 - add r0, r4, #0x0 - add r0, #0x26 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _020206DC - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - ldr r2, [r4, #0x14] - bl FUN_020B2A08 - ldr r0, [r4, #0x18] - ldr r1, [r4, #0x1c] - ldr r2, [r4, #0x20] - bl FUN_020B28B4 - ldrh r0, [r4, #0x24] - ldr r2, _02020770 ; =0x020FFA38 - asr r0, r0, #0x4 - lsl r1, r0, #0x1 - lsl r0, r1, #0x1 - add r1, r1, #0x1 - lsl r1, r1, #0x1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - bl FUN_020B2794 - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - ldr r2, [r4, #0x14] - neg r0, r0 - neg r1, r1 - neg r2, r2 - bl FUN_020B2A08 -_020206DC: - add r0, r4, #0x0 - add r0, #0x28 - ldrb r3, [r0, #0x0] - mov r0, #0x45 - lsl r0, r0, #0x2 - ldr r2, [r5, r0] - add r1, r2, #0x0 - add r1, #0x84 - ldr r1, [r1, #0x0] - add r2, #0x84 - orr r1, r3 - str r1, [r2, #0x0] - add r1, r4, #0x0 - add r1, #0x28 - ldrb r1, [r1, #0x0] - mvn r6, r1 - ldr r1, [r5, r0] - add r2, r1, #0x0 - add r2, #0x84 - ldr r3, [r2, #0x0] - mvn r2, r6 - and r2, r3 - add r1, #0x84 - str r2, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0x29 - ldrb r2, [r1, #0x0] - ldr r1, [r5, r0] - add r1, #0x8a - strh r2, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0x2a - ldrb r2, [r1, #0x0] - ldr r1, [r5, r0] - add r1, #0x94 - strh r2, [r1, #0x0] - ldr r1, [r5, r0] - ldr r2, [r4, #0x2c] - add r1, #0x90 - str r2, [r1, #0x0] - ldr r1, [r5, r0] - ldr r2, [r4, #0x30] - add r1, #0x8c - str r2, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0xf2 - ldr r0, [r5, r0] - ldrb r1, [r1, #0x0] - add r0, #0x88 - strh r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0xec - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _0202074E - cmp r0, #0x3 - bne _0202075A -_0202074E: - add r4, #0x40 - add r4, #0x8 - add r0, r4, #0x0 - bl FUN_020B317C - b _02020764 -_0202075A: - add r4, #0x40 - add r4, #0x8 - add r0, r4, #0x0 - bl FUN_020B2D9C -_02020764: - bl FUN_020B2B08 - bl FUN_020B31F0 - add sp, #0xc - pop {r3-r6, pc} - .balign 4 -_02020770: .word 0x020FFA38 - - thumb_func_start FUN_02020774 -FUN_02020774: ; 0x02020774 - bx lr - .balign 4 - - thumb_func_start FUN_02020778 -FUN_02020778: ; 0x02020778 - ldr r3, _02020780 ; =FUN_020201E4 - ldr r1, [r0, #0x38] - bx r3 - nop -_02020780: .word FUN_020201E4 - - thumb_func_start FUN_02020784 -FUN_02020784: ; 0x02020784 - bx lr - .balign 4 - - thumb_func_start FUN_02020788 -FUN_02020788: ; 0x02020788 - push {r4-r7} - mov r2, #0x11 - lsl r2, r2, #0x4 - add r4, r0, #0x0 - ldr r5, [r0, r2] - add r4, #0x10 - cmp r5, r4 - bne _020207AC - str r1, [r0, r2] - sub r3, r2, #0x4 - str r1, [r0, r3] - add r0, r1, #0x0 - add r0, #0xfc - str r4, [r0, #0x0] - sub r2, #0x10 - str r4, [r1, r2] - pop {r4-r7} - bx lr -_020207AC: - add r3, r1, #0x0 - add r3, #0xf4 - ldrh r6, [r3, #0x0] - sub r3, r2, #0x4 - ldr r3, [r0, r3] - add r7, r3, #0x0 - add r7, #0xf4 - ldrh r7, [r7, #0x0] - cmp r7, r6 - bhi _020207DE - add r5, r1, #0x0 - add r5, #0xfc - str r3, [r5, #0x0] - sub r3, r2, #0x4 - ldr r5, [r0, r3] - add r3, r2, #0x0 - sub r3, #0x10 - str r1, [r5, r3] - add r3, r2, #0x0 - sub r3, #0x10 - str r4, [r1, r3] - sub r2, r2, #0x4 - str r1, [r0, r2] - pop {r4-r7} - bx lr -_020207DE: - cmp r5, r4 - beq _0202081A - add r0, r2, #0x0 - sub r0, #0x10 -_020207E6: - add r2, r5, #0x0 - add r2, #0xf4 - ldrh r2, [r2, #0x0] - cmp r2, r6 - bls _02020814 - add r0, r5, #0x0 - add r0, #0xfc - mov r2, #0x1 - ldr r0, [r0, #0x0] - lsl r2, r2, #0x8 - str r1, [r0, r2] - add r0, r5, #0x0 - add r0, #0xfc - ldr r3, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0xfc - str r3, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0xfc - str r1, [r0, #0x0] - str r5, [r1, r2] - pop {r4-r7} - bx lr -_02020814: - ldr r5, [r5, r0] - cmp r5, r4 - bne _020207E6 -_0202081A: - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02020820 -FUN_02020820: ; 0x02020820 - mov r2, #0x1 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - add r1, #0xfc - ldr r3, [r0, r2] - ldr r1, [r1, #0x0] - str r3, [r1, r2] - add r1, r0, #0x0 - add r1, #0xfc - ldr r0, [r0, r2] - ldr r1, [r1, #0x0] - add r0, #0xfc - str r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202083C -FUN_0202083C: ; 0x0202083C - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x4] - mov r7, #0x0 - cmp r0, #0x0 - ble _0202086C - add r4, r7, #0x0 - add r6, r7, #0x0 -_0202084C: - ldr r0, [r5, #0x0] - add r0, r0, r4 - bl FUN_0201FE6C - ldr r0, [r5, #0x0] - add r7, r7, #0x1 - add r1, r0, r4 - ldr r0, [r5, #0x8] - str r1, [r0, r6] - mov r0, #0x41 - lsl r0, r0, #0x2 - add r4, r4, r0 - ldr r0, [r5, #0x4] - add r6, r6, #0x4 - cmp r7, r0 - blt _0202084C -_0202086C: - mov r0, #0x0 - str r0, [r5, #0xc] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02020874 -FUN_02020874: ; 0x02020874 - ldr r3, [r0, #0xc] - ldr r1, [r0, #0x4] - cmp r3, r1 - blt _02020880 - mov r0, #0x0 - bx lr -_02020880: - ldr r2, [r0, #0x8] - lsl r1, r3, #0x2 - ldr r2, [r2, r1] - add r1, r3, #0x1 - str r1, [r0, #0xc] - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02020890 -FUN_02020890: ; 0x02020890 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - add r4, r1, #0x0 - cmp r0, #0x0 - bgt _020208A0 - mov r0, #0x0 - pop {r3-r5, pc} -_020208A0: - add r0, r4, #0x0 - bl FUN_0201FE6C - ldr r0, [r5, #0xc] - sub r0, r0, #0x1 - str r0, [r5, #0xc] - ldr r1, [r5, #0x8] - lsl r0, r0, #0x2 - str r4, [r1, r0] - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020208B8 -FUN_020208B8: ; 0x020208B8 - push {r4-r7} - ldrb r3, [r0, #0x0] - mov r4, #0x0 - cmp r3, #0xff - beq _020208FA -_020208C2: - ldrb r7, [r0, #0x2] - ldrb r3, [r0, #0x3] - ldrb r5, [r0, #0x0] - sub r6, r1, r7 - sub r3, r3, r7 - cmp r6, r3 - bhs _020208D4 - mov r6, #0x1 - b _020208D6 -_020208D4: - mov r6, #0x0 -_020208D6: - ldrb r7, [r0, #0x1] - sub r3, r2, r5 - sub r5, r7, r5 - cmp r3, r5 - bhs _020208E4 - mov r3, #0x1 - b _020208E6 -_020208E4: - mov r3, #0x0 -_020208E6: - tst r3, r6 - beq _020208F0 - add r0, r4, #0x0 - pop {r4-r7} - bx lr -_020208F0: - add r0, r0, #0x4 - ldrb r3, [r0, #0x0] - add r4, r4, #0x1 - cmp r3, #0xff - bne _020208C2 -_020208FA: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02020904 -FUN_02020904: ; 0x02020904 - push {r3-r4} - ldrb r3, [r0, #0x1] - sub r4, r3, r1 - ldrb r1, [r0, #0x2] - sub r3, r1, r2 - ldrb r2, [r0, #0x3] - add r1, r4, #0x0 - add r0, r3, #0x0 - mul r1, r4 - mul r0, r3 - add r1, r1, r0 - add r0, r2, #0x0 - mul r0, r2 - cmp r1, r0 - bhs _02020928 - mov r0, #0x1 - pop {r3-r4} - bx lr -_02020928: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_02020930 -FUN_02020930: ; 0x02020930 - push {r4-r5} - ldrb r5, [r0, #0x2] - ldrb r3, [r0, #0x0] - sub r4, r1, r5 - ldrb r1, [r0, #0x3] - sub r1, r1, r5 - cmp r4, r1 - bhs _02020944 - mov r4, #0x1 - b _02020946 -_02020944: - mov r4, #0x0 -_02020946: - ldrb r0, [r0, #0x1] - sub r1, r2, r3 - sub r0, r0, r3 - cmp r1, r0 - bhs _02020954 - mov r0, #0x1 - b _02020956 -_02020954: - mov r0, #0x0 -_02020956: - tst r0, r4 - beq _02020960 - mov r0, #0x1 - pop {r4-r5} - bx lr -_02020960: - mov r0, #0x0 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_02020968 -FUN_02020968: ; 0x02020968 - push {r3, lr} - ldr r2, _02020984 ; =0x021C48F8 - ldrh r1, [r2, #0x22] - cmp r1, #0x0 - beq _0202097C - ldrh r1, [r2, #0x1c] - ldrh r2, [r2, #0x1e] - bl FUN_020208B8 - pop {r3, pc} -_0202097C: - mov r0, #0x0 - mvn r0, r0 - pop {r3, pc} - nop -_02020984: .word 0x021C48F8 - - thumb_func_start FUN_02020988 -FUN_02020988: ; 0x02020988 - push {r3, lr} - ldr r2, _020209A4 ; =0x021C48F8 - ldrh r1, [r2, #0x20] - cmp r1, #0x0 - beq _0202099C - ldrh r1, [r2, #0x1c] - ldrh r2, [r2, #0x1e] - bl FUN_020208B8 - pop {r3, pc} -_0202099C: - mov r0, #0x0 - mvn r0, r0 - pop {r3, pc} - nop -_020209A4: .word 0x021C48F8 - - thumb_func_start FUN_020209A8 -FUN_020209A8: ; 0x020209A8 - push {r3-r7, lr} - ldr r7, _020209F0 ; =0x021C48F8 - add r5, r0, #0x0 - ldrh r0, [r7, #0x22] - cmp r0, #0x0 - beq _020209EA - mov r6, #0x0 - add r4, r5, #0x0 -_020209B8: - ldrb r0, [r5, #0x0] - cmp r0, #0xfe - bne _020209D0 - ldrh r1, [r7, #0x1c] - ldrh r2, [r7, #0x1e] - add r0, r4, #0x0 - bl FUN_02020904 - cmp r0, #0x0 - beq _020209E2 - add r0, r6, #0x0 - pop {r3-r7, pc} -_020209D0: - ldrh r1, [r7, #0x1c] - ldrh r2, [r7, #0x1e] - add r0, r4, #0x0 - bl FUN_02020930 - cmp r0, #0x0 - beq _020209E2 - add r0, r6, #0x0 - pop {r3-r7, pc} -_020209E2: - add r5, r5, #0x4 - add r4, r4, #0x4 - add r6, r6, #0x1 - b _020209B8 -_020209EA: - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} - .balign 4 -_020209F0: .word 0x021C48F8 - - thumb_func_start FUN_020209F4 -FUN_020209F4: ; 0x020209F4 - push {r3-r7, lr} - ldr r7, _02020A3C ; =0x021C48F8 - add r5, r0, #0x0 - ldrh r0, [r7, #0x20] - cmp r0, #0x0 - beq _02020A36 - mov r6, #0x0 - add r4, r5, #0x0 -_02020A04: - ldrb r0, [r5, #0x0] - cmp r0, #0xfe - bne _02020A1C - ldrh r1, [r7, #0x1c] - ldrh r2, [r7, #0x1e] - add r0, r4, #0x0 - bl FUN_02020904 - cmp r0, #0x0 - beq _02020A2E - add r0, r6, #0x0 - pop {r3-r7, pc} -_02020A1C: - ldrh r1, [r7, #0x1c] - ldrh r2, [r7, #0x1e] - add r0, r4, #0x0 - bl FUN_02020930 - cmp r0, #0x0 - beq _02020A2E - add r0, r6, #0x0 - pop {r3-r7, pc} -_02020A2E: - add r5, r5, #0x4 - add r4, r4, #0x4 - add r6, r6, #0x1 - b _02020A04 -_02020A36: - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} - .balign 4 -_02020A3C: .word 0x021C48F8 - - thumb_func_start FUN_02020A40 -FUN_02020A40: ; 0x02020A40 - push {r3, lr} - ldr r2, _02020A68 ; =0x021C48F8 - ldrh r1, [r2, #0x22] - cmp r1, #0x0 - beq _02020A62 - ldrb r1, [r0, #0x0] - cmp r1, #0xfe - ldrh r1, [r2, #0x1c] - bne _02020A5A - ldrh r2, [r2, #0x1e] - bl FUN_02020904 - pop {r3, pc} -_02020A5A: - ldrh r2, [r2, #0x1e] - bl FUN_02020930 - pop {r3, pc} -_02020A62: - mov r0, #0x0 - pop {r3, pc} - nop -_02020A68: .word 0x021C48F8 - - thumb_func_start FUN_02020A6C -FUN_02020A6C: ; 0x02020A6C - push {r3, lr} - ldr r2, _02020A94 ; =0x021C48F8 - ldrh r1, [r2, #0x20] - cmp r1, #0x0 - beq _02020A8E - ldrb r1, [r0, #0x0] - cmp r1, #0xfe - ldrh r1, [r2, #0x1c] - bne _02020A86 - ldrh r2, [r2, #0x1e] - bl FUN_02020904 - pop {r3, pc} -_02020A86: - ldrh r2, [r2, #0x1e] - bl FUN_02020930 - pop {r3, pc} -_02020A8E: - mov r0, #0x0 - pop {r3, pc} - nop -_02020A94: .word 0x021C48F8 - - thumb_func_start FUN_02020A98 -FUN_02020A98: ; 0x02020A98 - ldr r0, _02020AA0 ; =0x021C48F8 - ldrh r0, [r0, #0x22] - bx lr - nop -_02020AA0: .word 0x021C48F8 - - thumb_func_start FUN_02020AA4 -FUN_02020AA4: ; 0x02020AA4 - ldr r0, _02020AAC ; =0x021C48F8 - ldrh r0, [r0, #0x20] - bx lr - nop -_02020AAC: .word 0x021C48F8 - - thumb_func_start FUN_02020AB0 -FUN_02020AB0: ; 0x02020AB0 - ldr r2, _02020AC8 ; =0x021C48F8 - ldrh r3, [r2, #0x22] - cmp r3, #0x0 - beq _02020AC4 - ldrh r3, [r2, #0x1c] - str r3, [r0, #0x0] - ldrh r0, [r2, #0x1e] - str r0, [r1, #0x0] - mov r0, #0x1 - bx lr -_02020AC4: - mov r0, #0x0 - bx lr - .balign 4 -_02020AC8: .word 0x021C48F8 - - thumb_func_start FUN_02020ACC -FUN_02020ACC: ; 0x02020ACC - ldr r2, _02020AE4 ; =0x021C48F8 - ldrh r3, [r2, #0x20] - cmp r3, #0x0 - beq _02020AE0 - ldrh r3, [r2, #0x1c] - str r3, [r0, #0x0] - ldrh r0, [r2, #0x1e] - str r0, [r1, #0x0] - mov r0, #0x1 - bx lr -_02020AE0: - mov r0, #0x0 - bx lr - .balign 4 -_02020AE4: .word 0x021C48F8 - - thumb_func_start FUN_02020AE8 -FUN_02020AE8: ; 0x02020AE8 - push {r3, lr} - ldrb r3, [r0, #0x0] - cmp r3, #0xfe - bne _02020AF6 - bl FUN_02020904 - pop {r3, pc} -_02020AF6: - bl FUN_02020930 - pop {r3, pc} - - thumb_func_start FUN_02020AFC -FUN_02020AFC: ; 0x02020AFC - push {r3, lr} - ldr r0, _02020B24 ; =0x021C59B0 - mov r2, #0x0 - str r2, [r0, #0x4] - str r2, [r0, #0x8] - ldr r1, _02020B28 ; =0x0400010E - str r2, [r0, #0x0] - strh r2, [r1, #0x0] - sub r0, r1, #0x2 - strh r2, [r0, #0x0] - mov r0, #0xc1 - strh r0, [r1, #0x0] - ldr r1, _02020B2C ; =FUN_02020B30 - mov r0, #0x40 - bl OS_SetIrqFunction - mov r0, #0x40 - bl OS_EnableIrqMask - pop {r3, pc} - .balign 4 -_02020B24: .word 0x021C59B0 -_02020B28: .word 0x0400010E -_02020B2C: .word FUN_02020B30 - - thumb_func_start FUN_02020B30 -FUN_02020B30: ; 0x02020B30 - ldr r0, _02020B68 ; =0x021C59B0 - mov r3, #0x0 - ldr r1, [r0, #0x4] - ldr r2, [r0, #0x8] - add r1, r1, #0x1 - adc r2, r3 - str r1, [r0, #0x4] - str r2, [r0, #0x8] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02020B54 - ldr r2, _02020B6C ; =0x0400010E - strh r3, [r2, #0x0] - sub r1, r2, #0x2 - strh r3, [r1, #0x0] - mov r1, #0xc1 - strh r1, [r2, #0x0] - str r3, [r0, #0x0] -_02020B54: - ldr r3, _02020B70 ; =0x027E0000 - ldr r1, _02020B74 ; =0x00003FF8 - mov r0, #0x40 - ldr r2, [r3, r1] - orr r2, r0 - str r2, [r3, r1] - ldr r3, _02020B78 ; =OS_SetIrqFunction - ldr r1, _02020B7C ; =FUN_02020B30 - bx r3 - nop -_02020B68: .word 0x021C59B0 -_02020B6C: .word 0x0400010E -_02020B70: .word 0x027E0000 -_02020B74: .word 0x00003FF8 -_02020B78: .word OS_SetIrqFunction -_02020B7C: .word FUN_02020B30 - - thumb_func_start FUN_02020B80 -FUN_02020B80: ; 0x02020B80 - push {r4-r5, lr} - sub sp, #0xc - bl OS_DisableInterrupts - ldr r1, _02020BE4 ; =0x0400010C - add r3, sp, #0x0 - ldrh r1, [r1, #0x0] - ldr r2, _02020BE8 ; =0x0000FFFF - strh r1, [r3, #0x0] - ldr r1, _02020BEC ; =0x021C59B0 - ldr r5, [r1, #0x4] - ldr r4, [r1, #0x8] - mov r1, #0x0 - mvn r1, r1 - and r1, r5 - str r1, [sp, #0x4] - and r2, r4 - ldr r1, _02020BF0 ; =0x04000214 - str r2, [sp, #0x8] - ldr r2, [r1, #0x0] - mov r1, #0x40 - tst r2, r1 - beq _02020BC4 - ldrh r2, [r3, #0x0] - lsl r1, r1, #0x9 - tst r1, r2 - bne _02020BC4 - ldr r2, [sp, #0x4] - mov r1, #0x0 - ldr r3, [sp, #0x8] - add r2, r2, #0x1 - adc r3, r1 - str r2, [sp, #0x4] - str r3, [sp, #0x8] -_02020BC4: - bl OS_RestoreInterrupts - ldr r2, [sp, #0x4] - ldr r1, [sp, #0x8] - lsr r0, r2, #0x10 - lsl r1, r1, #0x10 - orr r1, r0 - add r0, sp, #0x0 - lsl r3, r2, #0x10 - ldrh r2, [r0, #0x0] - asr r0, r2, #0x1f - orr r1, r0 - add r0, r3, #0x0 - orr r0, r2 - add sp, #0xc - pop {r4-r5, pc} - .balign 4 -_02020BE4: .word 0x0400010C -_02020BE8: .word 0x0000FFFF -_02020BEC: .word 0x021C59B0 -_02020BF0: .word 0x04000214 - - thumb_func_start FUN_02020BF4 -FUN_02020BF4: ; 0x02020BF4 - ldr r3, _02020BF8 ; =FUN_02020B80 - bx r3 - .balign 4 -_02020BF8: .word FUN_02020B80 - - thumb_func_start FUN_02020BFC -FUN_02020BFC: ; 0x02020BFC - push {r3, lr} - lsr r2, r0, #0x1a - lsl r1, r1, #0x6 - orr r1, r2 - ldr r2, _02020C10 ; =0x000082EA - lsl r0, r0, #0x6 - mov r3, #0x0 - bl _ll_udiv - pop {r3, pc} - .balign 4 -_02020C10: .word 0x000082EA - - thumb_func_start FUN_02020C14 -FUN_02020C14: ; 0x02020C14 - push {r3, lr} - lsr r2, r0, #0x1a - lsl r1, r1, #0x6 - orr r1, r2 - ldr r2, _02020C28 ; =0x01FF6210 - lsl r0, r0, #0x6 - mov r3, #0x0 - bl _ll_udiv - pop {r3, pc} - .balign 4 -_02020C28: .word 0x01FF6210 - - thumb_func_start ErrorHandling -ErrorHandling: ; 0x02020C2C - push {r3, lr} - bl FUN_02031810 - cmp r0, #0x0 - beq _02020C42 - bl OS_GetProcMode - cmp r0, #0x12 - beq _02020C42 - bl FUN_0208A9B8 -_02020C42: - pop {r3, pc} - - thumb_func_start FUN_02020C44 -FUN_02020C44: ; 0x02020C44 - push {r3-r7, lr} - add r4, r1, #0x0 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0xc - bl FUN_02016998 - add r6, r0, #0x0 - bne _02020C5A - bl ErrorHandling -_02020C5A: - add r0, r4, #0x0 - lsl r1, r7, #0x3 - bl FUN_02016998 - str r0, [r6, #0x0] - cmp r0, #0x0 - bne _02020C6C - bl ErrorHandling -_02020C6C: - mov r4, #0x0 - cmp r7, #0x0 - ble _02020C84 - add r5, r4, #0x0 -_02020C74: - ldr r0, [r6, #0x0] - add r0, r0, r5 - bl FUN_02020E78 - add r4, r4, #0x1 - add r5, #0x8 - cmp r4, r7 - blt _02020C74 -_02020C84: - str r7, [r6, #0x4] - mov r0, #0x0 - str r0, [r6, #0x8] - add r0, r6, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02020C90 -FUN_02020C90: ; 0x02020C90 - push {r4, lr} - add r4, r0, #0x0 - bne _02020C9A - bl ErrorHandling -_02020C9A: - add r0, r4, #0x0 - bl FUN_02020D9C - ldr r0, [r4, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020CB0 -FUN_02020CB0: ; 0x02020CB0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020CBE - bl ErrorHandling -_02020CBE: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02020DD8 - cmp r0, #0x0 - bne _02020CCE - mov r0, #0x1 - pop {r3-r5, pc} -_02020CCE: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02020CD4 -FUN_02020CD4: ; 0x02020CD4 - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r1, #0x0 - add r6, r2, #0x0 - cmp r5, #0x0 - bne _02020CE4 - bl ErrorHandling -_02020CE4: - add r0, r5, #0x0 - bl FUN_02020E48 - add r4, r0, #0x0 - bne _02020CF2 - bl ErrorHandling -_02020CF2: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02020CB0 - cmp r0, #0x1 - beq _02020D02 - bl ErrorHandling -_02020D02: - str r7, [r4, #0x4] - str r6, [r4, #0x0] - ldr r0, [r5, #0x8] - add r0, r0, #0x1 - str r0, [r5, #0x8] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02020D10 -FUN_02020D10: ; 0x02020D10 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - cmp r5, #0x0 - bne _02020D22 - bl ErrorHandling -_02020D22: - cmp r6, #0x0 - bne _02020D2A - bl ErrorHandling -_02020D2A: - add r0, r5, #0x0 - bl FUN_02020E48 - add r4, r0, #0x0 - bne _02020D38 - bl ErrorHandling -_02020D38: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_02020CB0 - cmp r0, #0x1 - beq _02020D48 - bl ErrorHandling -_02020D48: - ldr r0, [sp, #0x0] - add r1, r6, #0x0 - bl FUN_020161A4 - str r0, [r4, #0x4] - cmp r0, #0x0 - bne _02020D5A - bl ErrorHandling -_02020D5A: - str r7, [r4, #0x0] - ldr r0, [r5, #0x8] - add r0, r0, #0x1 - str r0, [r5, #0x8] - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02020D68 -FUN_02020D68: ; 0x02020D68 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020D76 - bl ErrorHandling -_02020D76: - cmp r4, #0x0 - bne _02020D7E - bl ErrorHandling -_02020D7E: - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _02020D8C - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x4] -_02020D8C: - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0x0] - ldr r0, [r5, #0x8] - sub r0, r0, #0x1 - str r0, [r5, #0x8] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02020D9C -FUN_02020D9C: ; 0x02020D9C - push {r3-r7, lr} - add r5, r0, #0x0 - bne _02020DA6 - bl ErrorHandling -_02020DA6: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - bne _02020DB0 - bl ErrorHandling -_02020DB0: - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - ble _02020DD6 - add r4, r6, #0x0 - sub r7, r6, #0x1 -_02020DBC: - ldr r1, [r5, #0x0] - ldr r0, [r1, r4] - cmp r0, r7 - beq _02020DCC - add r0, r5, #0x0 - add r1, r1, r4 - bl FUN_02020D68 -_02020DCC: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, #0x8 - cmp r6, r0 - blt _02020DBC -_02020DD6: - pop {r3-r7, pc} - - thumb_func_start FUN_02020DD8 -FUN_02020DD8: ; 0x02020DD8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020DE6 - bl ErrorHandling -_02020DE6: - ldr r6, [r5, #0x4] - mov r1, #0x0 - cmp r6, #0x0 - ble _02020E06 - ldr r3, [r5, #0x0] - add r2, r3, #0x0 -_02020DF2: - ldr r0, [r2, #0x0] - cmp r4, r0 - bne _02020DFE - lsl r0, r1, #0x3 - add r0, r3, r0 - pop {r4-r6, pc} -_02020DFE: - add r1, r1, #0x1 - add r2, #0x8 - cmp r1, r6 - blt _02020DF2 -_02020E06: - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02020E0C -FUN_02020E0C: ; 0x02020E0C - push {r4, lr} - add r4, r0, #0x0 - bne _02020E16 - bl ErrorHandling -_02020E16: - ldr r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020E1C -FUN_02020E1C: ; 0x02020E1C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020E2A - bl ErrorHandling -_02020E2A: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - beq _02020E34 - bl FUN_02016A18 -_02020E34: - str r4, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_02020E38 -FUN_02020E38: ; 0x02020E38 - push {r4, lr} - add r4, r0, #0x0 - bne _02020E42 - bl ErrorHandling -_02020E42: - ldr r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020E48 -FUN_02020E48: ; 0x02020E48 - push {r3-r5, lr} - add r4, r0, #0x0 - bne _02020E52 - bl ErrorHandling -_02020E52: - ldr r5, [r4, #0x4] - mov r2, #0x0 - cmp r5, #0x0 - ble _02020E74 - ldr r4, [r4, #0x0] - sub r0, r2, #0x1 - add r3, r4, #0x0 -_02020E60: - ldr r1, [r3, #0x0] - cmp r1, r0 - bne _02020E6C - lsl r0, r2, #0x3 - add r0, r4, r0 - pop {r3-r5, pc} -_02020E6C: - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, r5 - blt _02020E60 -_02020E74: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02020E78 -FUN_02020E78: ; 0x02020E78 - push {r4, lr} - add r4, r0, #0x0 - bne _02020E82 - bl ErrorHandling -_02020E82: - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02020E90 -FUN_02020E90: ; 0x02020E90 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02016998 - add r7, r0, #0x0 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02020C44 - mov r1, #0x18 - str r0, [r7, #0x0] - add r0, r4, #0x0 - mul r1, r6 - bl FUN_02016998 - mov r4, #0x0 - str r0, [r7, #0x4] - cmp r6, #0x0 - ble _02020ECE - add r5, r4, #0x0 -_02020EBE: - ldr r0, [r7, #0x4] - add r0, r0, r5 - bl FUN_0202120C - add r4, r4, #0x1 - add r5, #0x18 - cmp r4, r6 - blt _02020EBE -_02020ECE: - add r0, r7, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02020ED4 -FUN_02020ED4: ; 0x02020ED4 - push {r4, lr} - add r4, r0, #0x0 - bne _02020EDE - bl ErrorHandling -_02020EDE: - add r0, r4, #0x0 - bl FUN_02021010 - ldr r0, [r4, #0x0] - bl FUN_02020C90 - ldr r0, [r4, #0x4] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - - thumb_func_start FUN_02020EF8 -FUN_02020EF8: ; 0x02020EF8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020F06 - bl ErrorHandling -_02020F06: - ldr r0, [r5, #0x0] - add r1, r4, #0x0 - bl FUN_02020CB0 - pop {r3-r5, pc} - - thumb_func_start FUN_02020F10 -FUN_02020F10: ; 0x02020F10 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r3, #0x0 - str r2, [sp, #0x0] - cmp r5, #0x0 - bne _02020F22 - bl ErrorHandling -_02020F22: - add r0, r5, #0x0 - bl FUN_020211DC - add r4, r0, #0x0 - strh r7, [r4, #0x16] - ldrh r0, [r4, #0x16] - cmp r0, #0x1 - bne _02020F40 - ldr r1, [sp, #0x18] - add r0, r6, #0x0 - bl FUN_02021310 - add r1, r0, #0x0 - str r6, [r4, #0x10] - b _02020F46 -_02020F40: - mov r0, #0x0 - add r1, r6, #0x0 - str r0, [r4, #0x10] -_02020F46: - ldr r0, [r5, #0x0] - ldr r2, [sp, #0x0] - bl FUN_02020CD4 - str r0, [r4, #0x0] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02020F54 -FUN_02020F54: ; 0x02020F54 - push {r3-r4, lr} - sub sp, #0x4 - ldr r4, [sp, #0x10] - str r4, [sp, #0x0] - bl FUN_02020F10 - add r4, r0, #0x0 - bl FUN_02021174 - add r0, r4, #0x0 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_02020F6C -FUN_02020F6C: ; 0x02020F6C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020F7A - bl ErrorHandling -_02020F7A: - cmp r4, #0x0 - bne _02020F82 - bl ErrorHandling -_02020F82: - ldrh r0, [r4, #0x16] - cmp r0, #0x1 - bne _02020F98 - ldrh r0, [r4, #0x14] - cmp r0, #0x0 - bne _02020F98 - ldr r0, [r4, #0x10] - bl FUN_02016A18 - mov r0, #0x0 - strh r0, [r4, #0x16] -_02020F98: - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02020FA4 - ldr r0, [r5, #0x0] - bl FUN_02020D68 -_02020FA4: - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _02020FB8 - ldr r1, _02020FE8 ; =0x021064BC - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _02020FB8 - bl ErrorHandling -_02020FB8: - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _02020FCC - ldr r1, _02020FE8 ; =0x021064BC - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _02020FCC - bl ErrorHandling -_02020FCC: - ldr r0, [r4, #0xc] - cmp r0, #0x0 - beq _02020FE0 - ldr r1, _02020FEC ; =0x021064C4 - ldr r1, [r1, #0x0] - blx r1 - cmp r0, #0x0 - beq _02020FE0 - bl ErrorHandling -_02020FE0: - add r0, r4, #0x0 - bl FUN_0202120C - pop {r3-r5, pc} - .balign 4 -_02020FE8: .word 0x021064BC -_02020FEC: .word 0x021064C4 - - thumb_func_start FUN_02020FF0 -FUN_02020FF0: ; 0x02020FF0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02020FFE - bl ErrorHandling -_02020FFE: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02021050 - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02020F6C - pop {r3-r5, pc} - - thumb_func_start FUN_02021010 -FUN_02021010: ; 0x02021010 - push {r4-r6, lr} - add r5, r0, #0x0 - bne _0202101A - bl ErrorHandling -_0202101A: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _02021024 - bl ErrorHandling -_02021024: - ldr r0, [r5, #0x0] - mov r6, #0x0 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - ble _0202104C - add r4, r6, #0x0 -_02021030: - ldr r1, [r5, #0x4] - ldr r0, [r1, r4] - cmp r0, #0x0 - beq _02021040 - add r0, r5, #0x0 - add r1, r1, r4 - bl FUN_02020F6C -_02021040: - ldr r0, [r5, #0x0] - add r6, r6, #0x1 - ldr r0, [r0, #0x4] - add r4, #0x18 - cmp r6, r0 - blt _02021030 -_0202104C: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02021050 -FUN_02021050: ; 0x02021050 - push {r3-r7, lr} - add r6, r0, #0x0 - add r7, r1, #0x0 - cmp r6, #0x0 - bne _0202105E - bl ErrorHandling -_0202105E: - ldr r0, [r6, #0x0] - mov r4, #0x0 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - ble _02021092 - add r5, r4, #0x0 -_0202106A: - ldr r1, [r6, #0x4] - ldr r0, [r1, r5] - cmp r0, #0x0 - beq _02021086 - add r0, r1, r5 - bl FUN_02021098 - cmp r0, r7 - bne _02021086 - mov r0, #0x18 - ldr r1, [r6, #0x4] - mul r0, r4 - add r0, r1, r0 - pop {r3-r7, pc} -_02021086: - ldr r0, [r6, #0x0] - add r4, r4, #0x1 - ldr r0, [r0, #0x4] - add r5, #0x18 - cmp r4, r0 - blt _0202106A -_02021092: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02021098 -FUN_02021098: ; 0x02021098 - push {r4, lr} - add r4, r0, #0x0 - bne _020210A2 - bl ErrorHandling -_020210A2: - ldr r0, [r4, #0x0] - bl FUN_02020E38 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020210AC -FUN_020210AC: ; 0x020210AC - push {r4, lr} - add r4, r0, #0x0 - bne _020210B6 - bl ErrorHandling -_020210B6: - add r0, r4, #0x0 - bl FUN_02021220 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020210C0 -FUN_020210C0: ; 0x020210C0 - push {r4, lr} - add r4, r0, #0x0 - bne _020210CA - bl ErrorHandling -_020210CA: - ldrh r0, [r4, #0x14] - cmp r0, #0x0 - beq _020210D4 - bl ErrorHandling -_020210D4: - ldr r0, [r4, #0xc] - cmp r0, #0x0 - bne _020210E0 - bl ErrorHandling - pop {r4, pc} -_020210E0: - add r0, r4, #0x0 - bl FUN_02021230 - add r1, r4, #0x0 - bl FUN_020212B8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020210F0 -FUN_020210F0: ; 0x020210F0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _020210FE - bl ErrorHandling -_020210FE: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02021050 - bl FUN_020210C0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202110C -FUN_0202110C: ; 0x0202110C - push {r4, lr} - add r4, r0, #0x0 - bne _02021116 - bl ErrorHandling -_02021116: - ldrh r0, [r4, #0x16] - cmp r0, #0x0 - bne _02021122 - bl ErrorHandling - pop {r4, pc} -_02021122: - ldrh r0, [r4, #0x14] - cmp r0, #0x0 - beq _0202112E - bl ErrorHandling - pop {r4, pc} -_0202112E: - add r0, r4, #0x0 - bl FUN_02021230 - bl FUN_020212F8 - add r0, r4, #0x0 - bl FUN_02021220 - ldr r1, [r4, #0x4] - ldr r2, [r4, #0x8] - ldr r3, [r4, #0xc] - bl FUN_020212E4 - ldr r0, [r4, #0x10] - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x10] - mov r0, #0x1 - strh r0, [r4, #0x14] - pop {r4, pc} - - thumb_func_start FUN_02021158 -FUN_02021158: ; 0x02021158 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021166 - bl ErrorHandling -_02021166: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02021050 - bl FUN_0202110C - pop {r3-r5, pc} - - thumb_func_start FUN_02021174 -FUN_02021174: ; 0x02021174 - push {r4, lr} - add r4, r0, #0x0 - bne _0202117E - bl ErrorHandling -_0202117E: - ldrh r0, [r4, #0x14] - cmp r0, #0x0 - beq _02021188 - bl ErrorHandling -_02021188: - ldr r0, [r4, #0xc] - cmp r0, #0x0 - beq _02021194 - bl ErrorHandling - pop {r4, pc} -_02021194: - add r0, r4, #0x0 - bl FUN_02021230 - add r2, r4, #0x0 - add r1, r4, #0x4 - add r4, #0xc - add r2, #0x8 - add r3, r4, #0x0 - bl FUN_02021248 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020211AC -FUN_020211AC: ; 0x020211AC - push {r4, lr} - add r4, r0, #0x0 - bne _020211B6 - bl ErrorHandling -_020211B6: - ldr r0, [r4, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020211BC -FUN_020211BC: ; 0x020211BC - push {r4, lr} - add r4, r0, #0x0 - bne _020211C6 - bl ErrorHandling -_020211C6: - ldr r0, [r4, #0x8] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020211CC -FUN_020211CC: ; 0x020211CC - push {r4, lr} - add r4, r0, #0x0 - bne _020211D6 - bl ErrorHandling -_020211D6: - ldr r0, [r4, #0xc] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020211DC -FUN_020211DC: ; 0x020211DC - push {r3-r4} - ldr r1, [r0, #0x0] - mov r2, #0x0 - ldr r4, [r1, #0x4] - cmp r4, #0x0 - ble _02021204 - ldr r3, [r0, #0x4] -_020211EA: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - bne _020211FC - ldr r1, [r0, #0x4] - mov r0, #0x18 - mul r0, r2 - add r0, r1, r0 - pop {r3-r4} - bx lr -_020211FC: - add r2, r2, #0x1 - add r3, #0x18 - cmp r2, r4 - blt _020211EA -_02021204: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0202120C -FUN_0202120C: ; 0x0202120C - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - str r1, [r0, #0x8] - str r1, [r0, #0xc] - strh r1, [r0, #0x14] - str r1, [r0, #0x10] - strh r1, [r0, #0x14] - bx lr - .balign 4 - - thumb_func_start FUN_02021220 -FUN_02021220: ; 0x02021220 - push {r3, lr} - ldr r0, [r0, #0x0] - bl FUN_02020E0C - bl FUN_020BC0FC - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02021230 -FUN_02021230: ; 0x02021230 - push {r3, lr} - ldrh r1, [r0, #0x16] - cmp r1, #0x0 - bne _02021240 - ldr r0, [r0, #0x0] - bl FUN_02020E0C - b _02021242 -_02021240: - ldr r0, [r0, #0x10] -_02021242: - bl FUN_020BC0FC - pop {r3, pc} - - thumb_func_start FUN_02021248 -FUN_02021248: ; 0x02021248 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - str r3, [sp, #0x8] - bl FUN_020B7E1C - add r7, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7E10 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020B7CE4 - add r4, r0, #0x0 - cmp r7, #0x0 - beq _0202127E - ldr r3, _020212B0 ; =0x021064B8 - mov r1, #0x0 - ldr r3, [r3, #0x0] - add r0, r7, #0x0 - add r2, r1, #0x0 - blx r3 - ldr r1, [sp, #0x0] - str r0, [r1, #0x0] -_0202127E: - cmp r6, #0x0 - beq _02021292 - ldr r3, _020212B0 ; =0x021064B8 - add r0, r6, #0x0 - ldr r3, [r3, #0x0] - mov r1, #0x1 - mov r2, #0x0 - blx r3 - ldr r1, [sp, #0x4] - str r0, [r1, #0x0] -_02021292: - cmp r4, #0x0 - beq _020212AC - ldr r3, _020212B4 ; =0x021064C0 - mov r1, #0x2 - ldrh r2, [r5, #0x20] - lsl r1, r1, #0xe - ldr r3, [r3, #0x0] - and r1, r2 - add r0, r4, #0x0 - mov r2, #0x0 - blx r3 - ldr r1, [sp, #0x8] - str r0, [r1, #0x0] -_020212AC: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_020212B0: .word 0x021064B8 -_020212B4: .word 0x021064C0 - - thumb_func_start FUN_020212B8 -FUN_020212B8: ; 0x020212B8 - push {r4, lr} - add r3, r1, #0x0 - ldr r1, [r3, #0x4] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - add r4, r0, #0x0 - bl FUN_020212E4 - ldr r1, [r4, #0x4] - add r0, r4, #0x0 - bl DC_FlushRange - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_020B7D28 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_020B7C78 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020212E4 -FUN_020212E4: ; 0x020212E4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r3, #0x0 - bl FUN_020B7DFC - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020B7CDC - pop {r3-r5, pc} - - thumb_func_start FUN_020212F8 -FUN_020212F8: ; 0x020212F8 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - bl FUN_020B7CF0 - add r0, r4, #0x0 - bl FUN_020B7C58 - add sp, #0x8 - pop {r4, pc} - - thumb_func_start FUN_02021310 -FUN_02021310: ; 0x02021310 - push {r4-r6, lr} - add r6, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02021334 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02016998 - add r1, r6, #0x0 - add r2, r5, #0x0 - add r4, r0, #0x0 - bl memcpy - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02021334 -FUN_02021334: ; 0x02021334 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_020BC0FC - add r4, r0, #0x0 - bne _02021344 - bl ErrorHandling -_02021344: - ldr r0, [r4, #0x14] - add r0, r4, r0 - sub r0, r0, r5 - pop {r3-r5, pc} - - thumb_func_start FUN_0202134C -FUN_0202134C: ; 0x0202134C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020B33A0 - add r5, #0x80 - str r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202135C -FUN_0202135C: ; 0x0202135C - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_020B3334 - add r2, r5, #0x0 - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - str r6, [r5, #0x28] - ldr r0, [sp, #0x18] - str r7, [r5, #0x2c] - str r0, [r5, #0x34] - ldr r0, [sp, #0x1c] - str r0, [r5, #0x14] - ldr r0, [sp, #0x20] - cmp r0, #0x0 - beq _0202138C - add r1, r5, #0x0 - bl FUN_020B3390 -_0202138C: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02021390 -FUN_02021390: ; 0x02021390 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - bx lr - .balign 4 - - thumb_func_start FUN_020213A0 -FUN_020213A0: ; 0x020213A0 - push {r3-r7, lr} - sub sp, #0x60 - add r5, r1, #0x0 - add r6, r2, #0x0 - ldr r4, [r5, #0x10] - ldr r3, [r6, #0x0] - add r2, r0, #0x0 - sub r3, r4, r3 - ldrh r1, [r0, #0x2] - mov r0, #0x3f - str r3, [sp, #0x18] - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r0, r0, #0x1a - ldr r4, [r5, #0x14] - ldr r3, [r6, #0x4] - add r2, #0x8 - sub r3, r4, r3 - str r3, [sp, #0x14] - asr r3, r1, #0xb - mov r1, #0x1 - and r1, r3 - lsr r0, r0, #0x18 - cmp r1, #0x1 - bne _020213F4 - mov r0, #0x6 - ldrsh r0, [r2, r0] - lsl r4, r0, #0xc - mov r0, #0x2 - ldrsh r0, [r2, r0] - lsl r0, r0, #0xc - str r0, [sp, #0x10] - mov r0, #0x4 - ldrsh r0, [r2, r0] - lsl r0, r0, #0xc - str r0, [sp, #0xc] - mov r0, #0x0 - ldrsh r0, [r2, r0] - lsl r0, r0, #0xc - str r0, [sp, #0x8] - b _02021400 -_020213F4: - neg r1, r0 - lsl r0, r0, #0xc - lsl r4, r1, #0xc - str r0, [sp, #0x10] - str r4, [sp, #0xc] - str r0, [sp, #0x8] -_02021400: - ldr r0, [r5, #0xc] - str r0, [sp, #0x1c] - asr r0, r0, #0x1f - str r0, [sp, #0x20] - asr r0, r4, #0x1f - str r0, [sp, #0x24] - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x24] - str r0, [sp, #0x28] - asr r0, r0, #0x1f - str r0, [sp, #0x2c] - ldr r2, [sp, #0x28] - ldr r3, [sp, #0x2c] - add r0, r4, #0x0 - bl _ll_mul - add r7, r1, #0x0 - str r0, [sp, #0x30] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - add r0, r4, #0x0 - bl _ll_mul - add r2, r0, #0x0 - add r3, r1, #0x0 - mov r0, #0x2 - ldr r1, [sp, #0x30] - mov r4, #0x0 - lsl r0, r0, #0xa - add r0, r1, r0 - adc r7, r4 - lsl r1, r7, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - mov r1, #0x2 - lsl r1, r1, #0xa - add r2, r2, r1 - adc r3, r4 - lsl r1, r3, #0x14 - lsr r2, r2, #0xc - orr r2, r1 - add r1, r0, r2 - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x28] - add r0, r0, r1 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x10] - ldr r3, [sp, #0x2c] - asr r0, r0, #0x1f - str r0, [sp, #0x34] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x34] - bl _ll_mul - str r0, [sp, #0x38] - add r4, r1, #0x0 - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x34] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - bl _ll_mul - mov r2, #0x2 - ldr r3, [sp, #0x38] - lsl r2, r2, #0xa - add r2, r3, r2 - ldr r3, _0202158C ; =0x00000000 - adc r4, r3 - lsl r3, r4, #0x14 - lsr r2, r2, #0xc - orr r2, r3 - mov r3, #0x2 - lsl r3, r3, #0xa - add r3, r0, r3 - ldr r0, _0202158C ; =0x00000000 - adc r1, r0 - lsl r0, r1, #0x14 - lsr r1, r3, #0xc - orr r1, r0 - ldr r0, [sp, #0x14] - add r1, r2, r1 - add r4, r0, r1 - ldr r0, [r5, #0x8] - str r0, [sp, #0x3c] - asr r0, r0, #0x1f - str r0, [sp, #0x40] - ldr r0, [sp, #0xc] - asr r0, r0, #0x1f - str r0, [sp, #0x44] - ldr r0, [r5, #0x0] - ldr r1, [sp, #0x44] - str r0, [sp, #0x48] - asr r0, r0, #0x1f - str r0, [sp, #0x4c] - ldr r0, [sp, #0xc] - ldr r2, [sp, #0x48] - ldr r3, [sp, #0x4c] - bl _ll_mul - str r0, [sp, #0x50] - add r5, r1, #0x0 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x44] - ldr r2, [sp, #0x3c] - ldr r3, [sp, #0x40] - bl _ll_mul - mov r2, #0x2 - ldr r3, [sp, #0x50] - lsl r2, r2, #0xa - add r2, r3, r2 - ldr r3, _0202158C ; =0x00000000 - adc r5, r3 - lsl r3, r5, #0x14 - lsr r2, r2, #0xc - orr r2, r3 - mov r3, #0x2 - lsl r3, r3, #0xa - add r3, r0, r3 - ldr r0, _0202158C ; =0x00000000 - adc r1, r0 - lsl r0, r1, #0x14 - lsr r1, r3, #0xc - orr r1, r0 - ldr r0, [sp, #0x18] - add r1, r2, r1 - add r5, r0, r1 - ldr r0, [sp, #0x8] - asr r0, r0, #0x1f - str r0, [sp, #0x54] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x54] - ldr r2, [sp, #0x48] - ldr r3, [sp, #0x4c] - bl _ll_mul - str r0, [sp, #0x58] - str r1, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x54] - ldr r2, [sp, #0x3c] - ldr r3, [sp, #0x40] - bl _ll_mul - mov r12, r0 - add r2, r1, #0x0 - mov r0, #0x2 - ldr r1, [sp, #0x58] - lsl r0, r0, #0xa - add r3, r1, r0 - ldr r1, [sp, #0x4] - ldr r0, _0202158C ; =0x00000000 - adc r1, r0 - str r1, [sp, #0x4] - lsl r0, r1, #0x14 - lsr r1, r3, #0xc - orr r1, r0 - mov r0, #0x2 - lsl r0, r0, #0xa - mov r3, r12 - add r0, r3, r0 - ldr r3, _0202158C ; =0x00000000 - adc r2, r3 - lsl r2, r2, #0x14 - lsr r0, r0, #0xc - orr r0, r2 - add r1, r1, r0 - ldr r0, [sp, #0x18] - add r0, r0, r1 - ldr r1, [sp, #0x5c] - cmp r4, r1 - bge _02021560 - add r1, r4, #0x0 - ldr r4, [sp, #0x5c] - str r1, [sp, #0x5c] -_02021560: - cmp r0, r5 - bge _0202156A - add r1, r0, #0x0 - add r0, r5, #0x0 - add r5, r1, #0x0 -_0202156A: - cmp r4, #0x0 - ble _02021586 - ldr r2, [r6, #0xc] - ldr r1, [sp, #0x5c] - cmp r1, r2 - bge _02021586 - cmp r0, #0x0 - ble _02021586 - ldr r0, [r6, #0x8] - cmp r5, r0 - bge _02021586 - add sp, #0x60 - mov r0, #0x1 - pop {r3-r7, pc} -_02021586: - mov r0, #0x0 - add sp, #0x60 - pop {r3-r7, pc} - .balign 4 -_0202158C: .word 0x00000000 - - thumb_func_start FUN_02021590 -FUN_02021590: ; 0x02021590 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r6, r1, #0x0 - ldr r0, [sp, #0x20] - mov r1, #0x78 - add r7, r2, #0x0 - str r3, [sp, #0x4] - bl FUN_02016998 - add r4, r0, #0x0 - beq _020215C0 - ldr r1, [sp, #0x20] - ldr r3, [sp, #0x4] - str r1, [sp, #0x0] - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02021600 - ldr r2, [sp, #0x20] - add r0, r4, #0x0 - add r1, r7, #0x0 - bl FUN_020216D4 -_020215C0: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020215C8 -FUN_020215C8: ; 0x020215C8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02021728 - add r0, r4, #0x0 - bl FUN_020216B8 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020215E0 -FUN_020215E0: ; 0x020215E0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - add r6, r2, #0x0 - cmp r1, r4 - beq _020215FC - bl FUN_02021728 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020216D4 -_020215FC: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02021600 -FUN_02021600: ; 0x02021600 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - add r0, r1, #0x0 - ldr r1, [sp, #0x18] - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02006670 - str r0, [r5, #0x54] - cmp r0, #0x0 - beq _020216A6 - add r1, r5, #0x0 - add r1, #0x5c - str r1, [sp, #0x0] - add r1, r4, #0x0 - mov r2, #0x0 - mov r3, #0x10 - bl FUN_02006814 - str r6, [r5, #0x6c] - cmp r6, #0x0 - beq _02021638 - mov r0, #0x0 - str r0, [r5, #0x74] - ldr r0, _020216AC ; =FUN_0202192C - str r0, [r5, #0x70] - b _02021660 -_02021638: - ldr r0, [r5, #0x60] - cmp r0, #0x0 - bne _02021642 - bl ErrorHandling -_02021642: - ldr r0, [sp, #0x18] - ldr r1, [r5, #0x64] - bl FUN_02016998 - str r0, [r5, #0x74] - ldr r0, _020216B0 ; =FUN_02021924 - add r1, r4, #0x0 - str r0, [r5, #0x70] - ldr r0, [r5, #0x74] - str r0, [sp, #0x0] - ldr r0, [r5, #0x54] - ldr r2, [r5, #0x60] - ldr r3, [r5, #0x64] - bl FUN_02006814 -_02021660: - add r0, r5, #0x0 - add r0, #0x6a - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bhi _02021674 - add r0, r5, #0x0 - add r0, #0x6b - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bls _02021678 -_02021674: - bl ErrorHandling -_02021678: - add r0, r5, #0x0 - add r0, #0x6a - ldrb r0, [r0, #0x0] - ldr r2, _020216B4 ; =0x020EE668 - sub r0, r0, #0x1 - lsl r3, r0, #0x1 - add r0, r5, #0x0 - add r0, #0x6b - ldrb r0, [r0, #0x0] - sub r1, r0, #0x1 - add r0, r2, r3 - ldrb r0, [r1, r0] - str r0, [r5, #0x8] - add r0, r5, #0x0 - add r0, #0x6b - ldrb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x6a - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x4 - mul r0, r1 - str r0, [r5, #0xc] - str r4, [r5, #0x58] -_020216A6: - add sp, #0x4 - pop {r3-r6, pc} - nop -_020216AC: .word FUN_0202192C -_020216B0: .word FUN_02021924 -_020216B4: .word 0x020EE668 - - thumb_func_start FUN_020216B8 -FUN_020216B8: ; 0x020216B8 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x74] - cmp r0, #0x0 - beq _020216C6 - bl FUN_02016A18 -_020216C6: - ldr r0, [r4, #0x54] - cmp r0, #0x0 - beq _020216D0 - bl FUN_020066F4 -_020216D0: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020216D4 -FUN_020216D4: ; 0x020216D4 - push {r3, lr} - add r3, r1, #0x0 - add r1, r2, #0x0 - str r3, [r0, #0x0] - ldr r2, _020216E8 ; =0x020EE66C - lsl r3, r3, #0x2 - ldr r2, [r2, r3] - blx r2 - pop {r3, pc} - nop -_020216E8: .word 0x020EE66C - - thumb_func_start FUN_020216EC -FUN_020216EC: ; 0x020216EC - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0xc] - ldr r0, [r5, #0x64] - add r4, r2, #0x0 - mul r4, r0 - add r0, r1, #0x0 - add r1, r4, #0x0 - bl FUN_02016998 - str r0, [r5, #0x10] - ldr r0, _02021718 ; =FUN_02021774 - add r3, r4, #0x0 - str r0, [r5, #0x4] - ldr r0, [r5, #0x10] - str r0, [sp, #0x0] - ldr r0, [r5, #0x54] - ldr r1, [r5, #0x58] - ldr r2, [r5, #0x5c] - bl FUN_02006814 - pop {r3-r5, pc} - .balign 4 -_02021718: .word FUN_02021774 - - thumb_func_start FUN_0202171C -FUN_0202171C: ; 0x0202171C - ldr r1, _02021724 ; =FUN_0202181C - str r1, [r0, #0x4] - bx lr - nop -_02021724: .word FUN_0202181C - - thumb_func_start FUN_02021728 -FUN_02021728: ; 0x02021728 - push {r3, lr} - ldr r1, [r0, #0x0] - lsl r2, r1, #0x2 - ldr r1, _02021738 ; =0x020EE674 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - nop -_02021738: .word 0x020EE674 - - thumb_func_start FUN_0202173C -FUN_0202173C: ; 0x0202173C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x10] - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x10] - pop {r4, pc} - - thumb_func_start FUN_0202174C -FUN_0202174C: ; 0x0202174C - bx lr - .balign 4 - - thumb_func_start FUN_02021750 -FUN_02021750: ; 0x02021750 - push {r3, lr} - ldr r3, [r0, #0x64] - cmp r1, r3 - bhi _02021764 - sub r1, r1, #0x1 - lsl r1, r1, #0x10 - ldr r3, [r0, #0x4] - lsr r1, r1, #0x10 - blx r3 - pop {r3, pc} -_02021764: - add r0, r2, #0x0 - mov r1, #0x0 - add r0, #0x80 - strb r1, [r0, #0x0] - add r2, #0x81 - strb r1, [r2, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02021774 -FUN_02021774: ; 0x02021774 - push {r3-r7, lr} - str r1, [sp, #0x0] - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - ldr r1, [r7, #0xc] - add r5, r0, #0x0 - ldr r0, [r7, #0x8] - add r6, r2, #0x0 - mul r5, r1 - ldr r4, [r7, #0x10] - cmp r0, #0x3 - bhi _02021802 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02021798: ; jump table (using 16-bit offset) - .short _020217A0 - _02021798 - 2; case 0 - .short _020217AA - _02021798 - 2; case 1 - .short _020217C0 - _02021798 - 2; case 2 - .short _020217D6 - _02021798 - 2; case 3 -_020217A0: - add r0, r4, r5 - add r1, r6, #0x0 - bl FUN_0201C100 - b _02021802 -_020217AA: - add r0, r4, r5 - add r1, r6, #0x0 - bl FUN_0201C100 - add r0, r4, r5 - add r1, r6, #0x0 - add r0, #0x10 - add r1, #0x40 - bl FUN_0201C100 - b _02021802 -_020217C0: - add r0, r4, r5 - add r1, r6, #0x0 - bl FUN_0201C100 - add r0, r4, r5 - add r1, r6, #0x0 - add r0, #0x10 - add r1, #0x20 - bl FUN_0201C100 - b _02021802 -_020217D6: - add r0, r4, r5 - add r1, r6, #0x0 - bl FUN_0201C100 - add r0, r4, r5 - add r1, r6, #0x0 - add r0, #0x10 - add r1, #0x20 - bl FUN_0201C100 - add r0, r4, r5 - add r1, r6, #0x0 - add r0, #0x20 - add r1, #0x40 - bl FUN_0201C100 - add r0, r4, r5 - add r1, r6, #0x0 - add r0, #0x30 - add r1, #0x60 - bl FUN_0201C100 -_02021802: - ldr r1, [sp, #0x0] - ldr r2, [r7, #0x70] - add r0, r7, #0x0 - blx r2 - add r1, r6, #0x0 - add r1, #0x80 - add r7, #0x69 - strb r0, [r1, #0x0] - ldrb r0, [r7, #0x0] - add r6, #0x81 - strb r0, [r6, #0x0] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202181C -FUN_0202181C: ; 0x0202181C - push {r3-r7, lr} - add r4, r0, #0x0 - ldr r6, [r4, #0xc] - add r0, #0x14 - str r0, [sp, #0x0] - add r7, r1, #0x0 - add r5, r2, #0x0 - add r2, r7, #0x0 - ldr r3, [r4, #0x5c] - mul r2, r6 - add r2, r3, r2 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x58] - add r3, r6, #0x0 - bl FUN_02006814 - ldr r0, [r4, #0x8] - cmp r0, #0x3 - bhi _020218C0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202184E: ; jump table (using 16-bit offset) - .short _02021856 - _0202184E - 2; case 0 - .short _02021862 - _0202184E - 2; case 1 - .short _0202187A - _0202184E - 2; case 2 - .short _02021892 - _0202184E - 2; case 3 -_02021856: - add r0, r4, #0x0 - add r0, #0x14 - add r1, r5, #0x0 - bl FUN_0201C100 - b _020218C0 -_02021862: - add r0, r4, #0x0 - add r0, #0x14 - add r1, r5, #0x0 - bl FUN_0201C100 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x24 - add r1, #0x40 - bl FUN_0201C100 - b _020218C0 -_0202187A: - add r0, r4, #0x0 - add r0, #0x14 - add r1, r5, #0x0 - bl FUN_0201C100 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x24 - add r1, #0x20 - bl FUN_0201C100 - b _020218C0 -_02021892: - add r0, r4, #0x0 - add r0, #0x14 - add r1, r5, #0x0 - bl FUN_0201C100 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x24 - add r1, #0x20 - bl FUN_0201C100 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x34 - add r1, #0x40 - bl FUN_0201C100 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x44 - add r1, #0x60 - bl FUN_0201C100 -_020218C0: - ldr r2, [r4, #0x70] - add r0, r4, #0x0 - add r1, r7, #0x0 - blx r2 - add r1, r5, #0x0 - add r1, #0x80 - add r4, #0x69 - strb r0, [r1, #0x0] - ldrb r0, [r4, #0x0] - add r5, #0x81 - strb r0, [r5, #0x0] - pop {r3-r7, pc} - - thumb_func_start FUN_020218D8 -FUN_020218D8: ; 0x020218D8 - push {r3-r7, lr} - add r4, r1, #0x0 - ldrh r1, [r4, #0x0] - add r5, r0, #0x0 - ldr r0, _0202191C ; =0x0000FFFF - add r7, r2, #0x0 - mov r6, #0x0 - cmp r1, r0 - beq _02021916 -_020218EA: - ldr r0, _02021920 ; =0x0000FFFE - cmp r1, r0 - bne _02021900 - add r0, r4, #0x0 - bl FUN_0201B8B8 - add r4, r0, #0x0 - ldrh r1, [r4, #0x0] - ldr r0, _0202191C ; =0x0000FFFF - cmp r1, r0 - beq _02021916 -_02021900: - ldr r2, [r5, #0x70] - add r0, r5, #0x0 - sub r1, r1, #0x1 - blx r2 - add r4, r4, #0x2 - add r0, r7, r0 - add r6, r6, r0 - ldrh r1, [r4, #0x0] - ldr r0, _0202191C ; =0x0000FFFF - cmp r1, r0 - bne _020218EA -_02021916: - sub r0, r6, r7 - pop {r3-r7, pc} - nop -_0202191C: .word 0x0000FFFF -_02021920: .word 0x0000FFFE - - thumb_func_start FUN_02021924 -FUN_02021924: ; 0x02021924 - ldr r0, [r0, #0x74] - ldrb r0, [r0, r1] - bx lr - .balign 4 - - thumb_func_start FUN_0202192C -FUN_0202192C: ; 0x0202192C - add r0, #0x68 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02021934 -FUN_02021934: ; 0x02021934 - push {r3-r7, lr} - add r5, r1, #0x0 - ldrh r1, [r5, #0x0] - add r7, r0, #0x0 - mov r4, #0x0 - ldr r0, _02021994 ; =0x0000FFFF - add r6, r2, #0x0 - str r4, [sp, #0x0] - cmp r1, r0 - beq _02021986 -_02021948: - ldr r0, _02021998 ; =0x0000FFFE - cmp r1, r0 - bne _02021958 - add r0, r5, #0x0 - bl FUN_0201B8B8 - add r5, r0, #0x0 - b _0202197E -_02021958: - mov r0, #0xe - lsl r0, r0, #0xc - cmp r1, r0 - bne _02021970 - ldr r0, [sp, #0x0] - sub r1, r4, r6 - cmp r0, r1 - bhs _0202196A - str r1, [sp, #0x0] -_0202196A: - mov r4, #0x0 - add r5, r5, #0x2 - b _0202197E -_02021970: - ldr r2, [r7, #0x70] - add r0, r7, #0x0 - sub r1, r1, #0x1 - blx r2 - add r0, r6, r0 - add r4, r4, r0 - add r5, r5, #0x2 -_0202197E: - ldrh r1, [r5, #0x0] - ldr r0, _02021994 ; =0x0000FFFF - cmp r1, r0 - bne _02021948 -_02021986: - ldr r0, [sp, #0x0] - sub r1, r4, r6 - cmp r0, r1 - bhs _02021990 - str r1, [sp, #0x0] -_02021990: - ldr r0, [sp, #0x0] - pop {r3-r7, pc} - .balign 4 -_02021994: .word 0x0000FFFF -_02021998: .word 0x0000FFFE - - thumb_func_start FUN_0202199C -FUN_0202199C: ; 0x0202199C - push {r3-r7, lr} - add r5, r1, #0x0 - ldrh r1, [r5, #0x0] - add r6, r0, #0x0 - ldr r0, _020219EC ; =0x0000FFFF - mov r4, #0x0 - cmp r1, r0 - beq _020219E8 - sub r7, r0, #0x1 -_020219AE: - cmp r1, r7 - bne _020219D4 - add r0, r5, #0x0 - bl FUN_0201B8E0 - ldr r1, _020219F0 ; =0x00000203 - cmp r0, r1 - bne _020219CA - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0201B914 - add r4, r0, #0x0 - sub r4, #0xc -_020219CA: - add r0, r5, #0x0 - bl FUN_0201B8B8 - add r5, r0, #0x0 - b _020219E0 -_020219D4: - ldr r2, [r6, #0x70] - add r0, r6, #0x0 - sub r1, r1, #0x1 - blx r2 - add r4, r4, r0 - add r5, r5, #0x2 -_020219E0: - ldrh r1, [r5, #0x0] - ldr r0, _020219EC ; =0x0000FFFF - cmp r1, r0 - bne _020219AE -_020219E8: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 -_020219EC: .word 0x0000FFFF -_020219F0: .word 0x00000203 - - thumb_func_start FUN_020219F4 -FUN_020219F4: ; 0x020219F4 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - lsl r1, r4, #0x1 - add r1, #0xa - bl FUN_02016998 - cmp r0, #0x0 - beq _02021A14 - ldr r1, _02021A18 ; =0xB6F8D2EC - str r1, [r0, #0x4] - strh r4, [r0, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x2] - ldr r1, _02021A1C ; =0x0000FFFF - strh r1, [r0, #0x8] -_02021A14: - pop {r4, pc} - nop -_02021A18: .word 0xB6F8D2EC -_02021A1C: .word 0x0000FFFF - - thumb_func_start FUN_02021A20 -FUN_02021A20: ; 0x02021A20 - push {r4, lr} - add r4, r0, #0x0 - bne _02021A2A - bl ErrorHandling -_02021A2A: - ldr r1, [r4, #0x4] - ldr r0, _02021A44 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021A36 - bl ErrorHandling -_02021A36: - ldr r0, _02021A48 ; =0xB6F8D2ED - str r0, [r4, #0x4] - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - nop -_02021A44: .word 0xB6F8D2EC -_02021A48: .word 0xB6F8D2ED - - thumb_func_start FUN_02021A4C -FUN_02021A4C: ; 0x02021A4C - push {r4, lr} - add r4, r0, #0x0 - bne _02021A56 - bl ErrorHandling -_02021A56: - ldr r1, [r4, #0x4] - ldr r0, _02021A6C ; =0xB6F8D2EC - cmp r1, r0 - beq _02021A62 - bl ErrorHandling -_02021A62: - mov r0, #0x0 - strh r0, [r4, #0x2] - ldr r0, _02021A70 ; =0x0000FFFF - strh r0, [r4, #0x8] - pop {r4, pc} - .balign 4 -_02021A6C: .word 0xB6F8D2EC -_02021A70: .word 0x0000FFFF - - thumb_func_start FUN_02021A74 -FUN_02021A74: ; 0x02021A74 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021A82 - bl ErrorHandling -_02021A82: - ldr r1, [r5, #0x4] - ldr r0, _02021AC8 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021A8E - bl ErrorHandling -_02021A8E: - cmp r4, #0x0 - bne _02021A96 - bl ErrorHandling -_02021A96: - ldr r1, [r4, #0x4] - ldr r0, _02021AC8 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021AA2 - bl ErrorHandling -_02021AA2: - ldrh r2, [r4, #0x2] - ldrh r0, [r5, #0x0] - cmp r0, r2 - bls _02021AC0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r2, #0x1 - add r0, #0x8 - add r1, #0x8 - lsl r2, r2, #0x1 - bl memcpy - ldrh r0, [r4, #0x2] - strh r0, [r5, #0x2] - pop {r3-r5, pc} -_02021AC0: - bl ErrorHandling - pop {r3-r5, pc} - nop -_02021AC8: .word 0xB6F8D2EC - - thumb_func_start FUN_02021ACC -FUN_02021ACC: ; 0x02021ACC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021ADA - bl ErrorHandling -_02021ADA: - ldr r1, [r5, #0x4] - ldr r0, _02021B00 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021AE6 - bl ErrorHandling -_02021AE6: - ldrh r0, [r5, #0x2] - add r1, r4, #0x0 - add r0, r0, #0x1 - bl FUN_020219F4 - add r4, r0, #0x0 - beq _02021AFA - add r1, r5, #0x0 - bl FUN_02021A74 -_02021AFA: - add r0, r4, #0x0 - pop {r3-r5, pc} - nop -_02021B00: .word 0xB6F8D2EC - - thumb_func_start FUN_02021B04 -FUN_02021B04: ; 0x02021B04 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, [sp, #0x20] - add r6, r1, #0x0 - add r7, r3, #0x0 - str r2, [sp, #0x0] - str r0, [sp, #0x20] - cmp r5, #0x0 - bne _02021B1C - bl ErrorHandling -_02021B1C: - ldr r1, [r5, #0x4] - ldr r0, _02021C1C ; =0xB6F8D2EC - cmp r1, r0 - beq _02021B28 - bl ErrorHandling -_02021B28: - cmp r6, #0x0 - bge _02021B30 - mov r4, #0x1 - b _02021B32 -_02021B30: - mov r4, #0x0 -_02021B32: - ldr r0, [sp, #0x0] - ldrh r1, [r5, #0x0] - add r0, r0, r4 - cmp r1, r0 - bls _02021C14 - ldr r0, [sp, #0x20] - cmp r0, #0x0 - bne _02021B48 - ldr r0, _02021C20 ; =0x020EE67C - str r0, [sp, #0x4] - b _02021B4C -_02021B48: - ldr r0, _02021C24 ; =0x020EE690 - str r0, [sp, #0x4] -_02021B4C: - add r0, r5, #0x0 - bl FUN_02021A4C - cmp r4, #0x0 - beq _02021B74 - mov r0, #0x0 - mvn r0, r0 - mul r6, r0 - ldr r0, [sp, #0x20] - cmp r0, #0x0 - bne _02021B66 - mov r0, #0xf1 - b _02021B68 -_02021B66: - ldr r0, _02021C28 ; =0x000001BE -_02021B68: - ldrh r2, [r5, #0x2] - add r1, r2, #0x1 - strh r1, [r5, #0x2] - lsl r1, r2, #0x1 - add r1, r5, r1 - strh r0, [r1, #0x8] -_02021B74: - ldr r0, [sp, #0x0] - lsl r1, r0, #0x2 - ldr r0, _02021C2C ; =0x020EE6A0 - ldr r4, [r0, r1] - cmp r4, #0x0 - beq _02021C06 -_02021B80: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl _u32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - add r0, r4, #0x0 - mul r0, r1 - sub r6, r6, r0 - cmp r7, #0x2 - bne _02021BB4 - cmp r1, #0xa - bhs _02021BA2 - ldr r0, [sp, #0x4] - lsl r1, r1, #0x1 - ldrh r1, [r0, r1] - b _02021BA4 -_02021BA2: - mov r1, #0xe2 -_02021BA4: - ldrh r0, [r5, #0x2] - add r2, r0, #0x0 - add r2, r2, #0x1 - lsl r0, r0, #0x1 - strh r2, [r5, #0x2] - add r0, r5, r0 - strh r1, [r0, #0x8] - b _02021BFA -_02021BB4: - cmp r1, #0x0 - bne _02021BBC - cmp r4, #0x1 - bne _02021BDC -_02021BBC: - mov r7, #0x2 - cmp r1, #0xa - bhs _02021BCA - ldr r0, [sp, #0x4] - lsl r1, r1, #0x1 - ldrh r1, [r0, r1] - b _02021BCC -_02021BCA: - mov r1, #0xe2 -_02021BCC: - ldrh r0, [r5, #0x2] - add r2, r0, #0x0 - add r2, r2, #0x1 - lsl r0, r0, #0x1 - strh r2, [r5, #0x2] - add r0, r5, r0 - strh r1, [r0, #0x8] - b _02021BFA -_02021BDC: - cmp r7, #0x1 - bne _02021BFA - ldr r0, [sp, #0x20] - cmp r0, #0x0 - bne _02021BEA - mov r1, #0x1 - b _02021BEC -_02021BEA: - ldr r1, _02021C30 ; =0x000001E2 -_02021BEC: - ldrh r0, [r5, #0x2] - add r2, r0, #0x0 - add r2, r2, #0x1 - lsl r0, r0, #0x1 - strh r2, [r5, #0x2] - add r0, r5, r0 - strh r1, [r0, #0x8] -_02021BFA: - add r0, r4, #0x0 - mov r1, #0xa - bl _u32_div_f - add r4, r0, #0x0 - bne _02021B80 -_02021C06: - ldrh r0, [r5, #0x2] - ldr r1, _02021C34 ; =0x0000FFFF - add sp, #0x8 - lsl r0, r0, #0x1 - add r0, r5, r0 - strh r1, [r0, #0x8] - pop {r3-r7, pc} -_02021C14: - bl ErrorHandling - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02021C1C: .word 0xB6F8D2EC -_02021C20: .word 0x020EE67C -_02021C24: .word 0x020EE690 -_02021C28: .word 0x000001BE -_02021C2C: .word 0x020EE6A0 -_02021C30: .word 0x000001E2 -_02021C34: .word 0x0000FFFF - - thumb_func_start FUN_02021C38 -FUN_02021C38: ; 0x02021C38 - push {r3-r7, lr} - sub sp, #0x10 - str r1, [sp, #0x0] - mov r1, #0x0 - str r1, [sp, #0x8] - str r1, [sp, #0xc] - add r5, r1, #0x0 - ldrh r1, [r0, #0x2] - mov r7, #0x1 - cmp r1, #0x12 - bls _02021C56 - ldr r0, [sp, #0x8] - add sp, #0x10 - add r1, r0, #0x0 - pop {r3-r7, pc} -_02021C56: - sub r1, r1, #0x1 - str r1, [sp, #0x4] - bmi _02021CCC - lsl r1, r1, #0x1 - add r4, r0, r1 -_02021C60: - ldrh r6, [r4, #0x8] - mov r3, #0xa - mov r0, #0x0 - add r1, r6, #0x0 - sub r1, #0xa2 - asr r2, r1, #0x1f - sub r3, r1, r3 - mov r12, r2 - mov r3, r12 - sbc r3, r0 - blo _02021C98 - ldr r0, _02021CDC ; =0x00000121 - mov r3, #0xa - sub r1, r6, r0 - asr r2, r1, #0x1f - mov r0, #0x0 - sub r3, r1, r3 - mov r12, r2 - mov r3, r12 - sbc r3, r0 - blo _02021C98 - ldr r0, [sp, #0x0] - mov r1, #0x0 - str r1, [r0, #0x0] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - add sp, #0x10 - pop {r3-r7, pc} -_02021C98: - add r0, r1, #0x0 - add r1, r2, #0x0 - add r2, r7, #0x0 - add r3, r5, #0x0 - bl _ll_mul - add r2, r1, #0x0 - ldr r1, [sp, #0x8] - add r0, r1, r0 - str r0, [sp, #0x8] - ldr r0, [sp, #0xc] - adc r0, r2 - str r0, [sp, #0xc] - add r0, r7, #0x0 - add r1, r5, #0x0 - mov r2, #0xa - mov r3, #0x0 - bl _ll_mul - add r7, r0, #0x0 - ldr r0, [sp, #0x4] - add r5, r1, #0x0 - sub r4, r4, #0x2 - sub r0, r0, #0x1 - str r0, [sp, #0x4] - bpl _02021C60 -_02021CCC: - ldr r0, [sp, #0x0] - mov r1, #0x1 - str r1, [r0, #0x0] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - add sp, #0x10 - pop {r3-r7, pc} - nop -_02021CDC: .word 0x00000121 - - thumb_func_start FUN_02021CE0 -FUN_02021CE0: ; 0x02021CE0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021CEE - bl ErrorHandling -_02021CEE: - ldr r1, [r5, #0x4] - ldr r0, _02021D34 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021CFA - bl ErrorHandling -_02021CFA: - cmp r4, #0x0 - bne _02021D02 - bl ErrorHandling -_02021D02: - ldr r1, [r4, #0x4] - ldr r0, _02021D34 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021D0E - bl ErrorHandling -_02021D0E: - ldrh r1, [r5, #0x8] - ldrh r0, [r4, #0x8] - cmp r1, r0 - bne _02021D2E - ldr r0, _02021D38 ; =0x0000FFFF -_02021D18: - ldrh r1, [r5, #0x8] - cmp r1, r0 - bne _02021D22 - mov r0, #0x0 - pop {r3-r5, pc} -_02021D22: - add r5, r5, #0x2 - add r4, r4, #0x2 - ldrh r2, [r5, #0x8] - ldrh r1, [r4, #0x8] - cmp r2, r1 - beq _02021D18 -_02021D2E: - mov r0, #0x1 - pop {r3-r5, pc} - nop -_02021D34: .word 0xB6F8D2EC -_02021D38: .word 0x0000FFFF - - thumb_func_start FUN_02021D3C -FUN_02021D3C: ; 0x02021D3C - push {r4, lr} - add r4, r0, #0x0 - bne _02021D46 - bl ErrorHandling -_02021D46: - ldr r1, [r4, #0x4] - ldr r0, _02021D58 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021D52 - bl ErrorHandling -_02021D52: - ldrh r0, [r4, #0x2] - pop {r4, pc} - nop -_02021D58: .word 0xB6F8D2EC - - thumb_func_start FUN_02021D5C -FUN_02021D5C: ; 0x02021D5C - push {r3-r5, lr} - add r4, r0, #0x0 - bne _02021D66 - bl ErrorHandling -_02021D66: - ldr r1, [r4, #0x4] - ldr r0, _02021D98 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021D72 - bl ErrorHandling -_02021D72: - ldrh r1, [r4, #0x2] - mov r3, #0x0 - mov r0, #0x1 - cmp r1, #0x0 - ble _02021D94 - mov r1, #0xe - add r5, r4, #0x0 - lsl r1, r1, #0xc -_02021D82: - ldrh r2, [r5, #0x8] - cmp r2, r1 - bne _02021D8A - add r0, r0, #0x1 -_02021D8A: - ldrh r2, [r4, #0x2] - add r3, r3, #0x1 - add r5, r5, #0x2 - cmp r3, r2 - blt _02021D82 -_02021D94: - pop {r3-r5, pc} - nop -_02021D98: .word 0xB6F8D2EC - - thumb_func_start FUN_02021D9C -FUN_02021D9C: ; 0x02021D9C - push {r3-r7, lr} - add r5, r1, #0x0 - add r7, r0, #0x0 - add r6, r2, #0x0 - cmp r5, #0x0 - bne _02021DAC - bl ErrorHandling -_02021DAC: - ldr r1, [r5, #0x4] - ldr r0, _02021E24 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021DB8 - bl ErrorHandling -_02021DB8: - cmp r7, #0x0 - bne _02021DC0 - bl ErrorHandling -_02021DC0: - ldr r1, [r7, #0x4] - ldr r0, _02021E24 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021DCC - bl ErrorHandling -_02021DCC: - mov r4, #0x0 - cmp r6, #0x0 - beq _02021DF6 - ldrh r0, [r5, #0x2] - cmp r0, #0x0 - ble _02021DF6 - mov r1, #0xe - add r0, r5, #0x0 - lsl r1, r1, #0xc -_02021DDE: - ldrh r2, [r0, #0x8] - cmp r2, r1 - bne _02021DEC - sub r6, r6, #0x1 - bne _02021DEC - add r4, r4, #0x1 - b _02021DF6 -_02021DEC: - ldrh r2, [r5, #0x2] - add r4, r4, #0x1 - add r0, r0, #0x2 - cmp r4, r2 - blt _02021DDE -_02021DF6: - add r0, r7, #0x0 - bl FUN_02021A4C - ldrh r0, [r5, #0x2] - cmp r4, r0 - bge _02021E20 - lsl r0, r4, #0x1 - add r6, r5, r0 -_02021E06: - ldrh r1, [r6, #0x8] - mov r0, #0xe - lsl r0, r0, #0xc - cmp r1, r0 - beq _02021E20 - add r0, r7, #0x0 - bl FUN_02021FB0 - ldrh r0, [r5, #0x2] - add r4, r4, #0x1 - add r6, r6, #0x2 - cmp r4, r0 - blt _02021E06 -_02021E20: - pop {r3-r7, pc} - nop -_02021E24: .word 0xB6F8D2EC - - thumb_func_start FUN_02021E28 -FUN_02021E28: ; 0x02021E28 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021E36 - bl ErrorHandling -_02021E36: - ldr r1, [r5, #0x4] - ldr r0, _02021E84 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021E42 - bl ErrorHandling -_02021E42: - mov r0, #0x0 - strh r0, [r5, #0x2] - ldrh r1, [r4, #0x0] - ldr r0, _02021E88 ; =0x0000FFFF - cmp r1, r0 - beq _02021E76 - add r1, r0, #0x0 -_02021E50: - ldrh r2, [r5, #0x0] - ldrh r0, [r5, #0x2] - sub r2, r2, #0x1 - cmp r0, r2 - blt _02021E60 - bl ErrorHandling - b _02021E76 -_02021E60: - add r2, r0, #0x0 - add r2, r2, #0x1 - strh r2, [r5, #0x2] - ldrh r2, [r4, #0x0] - lsl r0, r0, #0x1 - add r0, r5, r0 - add r4, r4, #0x2 - strh r2, [r0, #0x8] - ldrh r0, [r4, #0x0] - cmp r0, r1 - bne _02021E50 -_02021E76: - ldrh r0, [r5, #0x2] - ldr r1, _02021E88 ; =0x0000FFFF - lsl r0, r0, #0x1 - add r0, r5, r0 - strh r1, [r0, #0x8] - pop {r3-r5, pc} - nop -_02021E84: .word 0xB6F8D2EC -_02021E88: .word 0x0000FFFF - - thumb_func_start FUN_02021E8C -FUN_02021E8C: ; 0x02021E8C - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r1, #0x0 - add r4, r2, #0x0 - cmp r5, #0x0 - bne _02021E9C - bl ErrorHandling -_02021E9C: - ldr r1, [r5, #0x4] - ldr r0, _02021EE8 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021EA8 - bl ErrorHandling -_02021EA8: - ldrh r0, [r5, #0x0] - cmp r4, r0 - bhi _02021EE2 - lsl r6, r4, #0x1 - add r0, r5, #0x0 - add r0, #0x8 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl memcpy - mov r2, #0x0 - cmp r4, #0x0 - bls _02021ED4 - ldr r0, _02021EEC ; =0x0000FFFF - add r3, r5, #0x0 -_02021EC6: - ldrh r1, [r3, #0x8] - cmp r1, r0 - beq _02021ED4 - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, r4 - blo _02021EC6 -_02021ED4: - strh r2, [r5, #0x2] - cmp r2, r4 - bne _02021EE6 - ldr r1, _02021EEC ; =0x0000FFFF - add r0, r5, r6 - strh r1, [r0, #0x6] - pop {r3-r7, pc} -_02021EE2: - bl ErrorHandling -_02021EE6: - pop {r3-r7, pc} - .balign 4 -_02021EE8: .word 0xB6F8D2EC -_02021EEC: .word 0x0000FFFF - - thumb_func_start FUN_02021EF0 -FUN_02021EF0: ; 0x02021EF0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - cmp r5, #0x0 - bne _02021F00 - bl ErrorHandling -_02021F00: - ldr r1, [r5, #0x4] - ldr r0, _02021F28 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021F0C - bl ErrorHandling -_02021F0C: - ldrh r0, [r5, #0x2] - add r2, r0, #0x1 - cmp r2, r4 - bhi _02021F22 - add r5, #0x8 - add r0, r6, #0x0 - add r1, r5, #0x0 - lsl r2, r2, #0x1 - bl memcpy - pop {r4-r6, pc} -_02021F22: - bl ErrorHandling - pop {r4-r6, pc} - .balign 4 -_02021F28: .word 0xB6F8D2EC - - thumb_func_start FUN_02021F2C -FUN_02021F2C: ; 0x02021F2C - push {r4, lr} - add r4, r0, #0x0 - bne _02021F36 - bl ErrorHandling -_02021F36: - ldr r1, [r4, #0x4] - ldr r0, _02021F48 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021F42 - bl ErrorHandling -_02021F42: - add r4, #0x8 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 -_02021F48: .word 0xB6F8D2EC - - thumb_func_start FUN_02021F4C -FUN_02021F4C: ; 0x02021F4C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021F5A - bl ErrorHandling -_02021F5A: - ldr r1, [r5, #0x4] - ldr r0, _02021FAC ; =0xB6F8D2EC - cmp r1, r0 - beq _02021F66 - bl ErrorHandling -_02021F66: - cmp r4, #0x0 - bne _02021F6E - bl ErrorHandling -_02021F6E: - ldr r1, [r4, #0x4] - ldr r0, _02021FAC ; =0xB6F8D2EC - cmp r1, r0 - beq _02021F7A - bl ErrorHandling -_02021F7A: - ldrh r2, [r4, #0x2] - ldrh r0, [r5, #0x2] - add r1, r0, r2 - add r3, r1, #0x1 - ldrh r1, [r5, #0x0] - cmp r3, r1 - bgt _02021FA6 - add r1, r5, #0x0 - add r1, #0x8 - lsl r0, r0, #0x1 - add r0, r1, r0 - add r1, r4, #0x0 - add r2, r2, #0x1 - add r1, #0x8 - lsl r2, r2, #0x1 - bl memcpy - ldrh r1, [r5, #0x2] - ldrh r0, [r4, #0x2] - add r0, r1, r0 - strh r0, [r5, #0x2] - pop {r3-r5, pc} -_02021FA6: - bl ErrorHandling - pop {r3-r5, pc} - .balign 4 -_02021FAC: .word 0xB6F8D2EC - - thumb_func_start FUN_02021FB0 -FUN_02021FB0: ; 0x02021FB0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _02021FBE - bl ErrorHandling -_02021FBE: - ldr r1, [r5, #0x4] - ldr r0, _02021FF0 ; =0xB6F8D2EC - cmp r1, r0 - beq _02021FCA - bl ErrorHandling -_02021FCA: - ldrh r2, [r5, #0x2] - ldrh r0, [r5, #0x0] - add r1, r2, #0x1 - cmp r1, r0 - bge _02021FE8 - lsl r0, r2, #0x1 - strh r1, [r5, #0x2] - add r0, r5, r0 - strh r4, [r0, #0x8] - ldrh r0, [r5, #0x2] - ldr r1, _02021FF4 ; =0x0000FFFF - lsl r0, r0, #0x1 - add r0, r5, r0 - strh r1, [r0, #0x8] - pop {r3-r5, pc} -_02021FE8: - bl ErrorHandling - pop {r3-r5, pc} - nop -_02021FF0: .word 0xB6F8D2EC -_02021FF4: .word 0x0000FFFF - - thumb_func_start FUN_02021FF8 -FUN_02021FF8: ; 0x02021FF8 - push {r4, lr} - add r4, r0, #0x0 - bne _02022002 - bl ErrorHandling -_02022002: - ldr r1, [r4, #0x4] - ldr r0, _02022028 ; =0xB6F8D2EC - cmp r1, r0 - beq _0202200E - bl ErrorHandling -_0202200E: - ldrh r0, [r4, #0x2] - cmp r0, #0x0 - beq _02022026 - ldrh r1, [r4, #0x8] - ldr r0, _0202202C ; =0x00000145 - cmp r1, r0 - blo _02022026 - add r0, #0x19 - cmp r1, r0 - bhi _02022026 - sub r1, #0x1a - strh r1, [r4, #0x8] -_02022026: - pop {r4, pc} - .balign 4 -_02022028: .word 0xB6F8D2EC -_0202202C: .word 0x00000145 - - thumb_func_start FUN_02022030 -FUN_02022030: ; 0x02022030 - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _02022044 - ldrh r1, [r0, #0x8] - mov r0, #0xf1 - lsl r0, r0, #0x8 - cmp r1, r0 - bne _02022044 - mov r0, #0x1 - bx lr -_02022044: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02022048 -FUN_02022048: ; 0x02022048 - push {r3-r7, lr} - add r4, r1, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_02022030 - cmp r0, #0x0 - beq _020220B2 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x0] - ldrh r0, [r0, #0x2] - add r1, #0x8 - ldr r7, _020220BC ; =0x000001FF - lsl r0, r0, #0x1 - add r3, r1, r0 - mov r0, #0x0 - add r4, #0xa - add r1, r0, #0x0 -_0202206C: - ldrh r2, [r4, #0x0] - asr r2, r0 - and r2, r7 - lsl r2, r2, #0x10 - add r0, #0x9 - lsr r2, r2, #0x10 - cmp r0, #0xf - blt _02022094 - add r4, r4, #0x2 - sub r0, #0xf - beq _02022094 - ldrh r6, [r4, #0x0] - mov r5, #0x9 - sub r5, r5, r0 - lsl r6, r5 - ldr r5, _020220BC ; =0x000001FF - and r5, r6 - orr r2, r5 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 -_02022094: - ldr r5, _020220BC ; =0x000001FF - cmp r2, r5 - beq _020220A2 - strh r2, [r3, #0x0] - add r3, r3, #0x2 - add r1, r1, #0x1 - b _0202206C -_020220A2: - ldr r0, _020220C0 ; =0x0000FFFF - strh r0, [r3, #0x0] - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x2] - add r1, r0, r1 - ldr r0, [sp, #0x0] - strh r1, [r0, #0x2] - pop {r3-r7, pc} -_020220B2: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl FUN_02021F4C - pop {r3-r7, pc} - .balign 4 -_020220BC: .word 0x000001FF -_020220C0: .word 0x0000FFFF - - thumb_func_start FUN_020220C4 -FUN_020220C4: ; 0x020220C4 - push {r3-r7, lr} - add r7, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x0] - cmp r7, #0x0 - bne _020220D6 - bl ErrorHandling -_020220D6: - ldr r0, [sp, #0x18] - mov r1, #0x14 - bl FUN_02016998 - add r4, r0, #0x0 - beq _0202211C - str r5, [r4, #0x0] - str r7, [r4, #0x4] - ldr r0, [sp, #0x0] - str r6, [r4, #0x8] - str r0, [r4, #0xc] - ldr r0, [sp, #0x18] - lsl r1, r7, #0x2 - bl FUN_02016998 - str r0, [r4, #0x10] - cmp r0, #0x0 - beq _02022114 - mov r6, #0x0 - cmp r7, #0x0 - bls _0202211C - add r5, r6, #0x0 -_02022102: - ldr r0, [r4, #0x10] - add r0, r0, r5 - bl FUN_02022120 - add r6, r6, #0x1 - add r5, r5, #0x4 - cmp r6, r7 - blo _02022102 - b _0202211C -_02022114: - add r0, r4, #0x0 - bl FUN_02016A18 - mov r4, #0x0 -_0202211C: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02022120 -FUN_02022120: ; 0x02022120 - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strh r1, [r0, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_0202212C -FUN_0202212C: ; 0x0202212C - push {r4, lr} - add r4, r0, #0x0 - bne _02022136 - bl ErrorHandling -_02022136: - ldr r0, [r4, #0x10] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - - thumb_func_start FUN_02022144 -FUN_02022144: ; 0x02022144 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl FUN_02020A98 - str r0, [sp, #0x0] - cmp r0, #0x0 - beq _02022190 - bl FUN_02020AA4 - str r0, [sp, #0x4] - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - bls _020221AE - add r4, r6, #0x0 -_02022164: - ldr r0, [r5, #0x10] - add r0, r0, r4 - ldrb r0, [r0, #0x1] - cmp r0, #0x0 - ldr r0, [r5, #0x0] - beq _02022178 - add r0, r0, r4 - bl FUN_02020A40 - b _0202217E -_02022178: - add r0, r0, r4 - bl FUN_02020A6C -_0202217E: - ldr r1, [r5, #0x10] - add r6, r6, #0x1 - add r1, r1, r4 - strb r0, [r1, #0x1] - ldr r0, [r5, #0x4] - add r4, r4, #0x4 - cmp r6, r0 - blo _02022164 - b _020221AE -_02022190: - ldr r0, [r5, #0x4] - mov r3, #0x0 - str r3, [sp, #0x4] - cmp r0, #0x0 - bls _020221AE - add r2, r3, #0x0 - add r1, r3, #0x0 -_0202219E: - ldr r0, [r5, #0x10] - add r3, r3, #0x1 - add r0, r0, r2 - strb r1, [r0, #0x1] - ldr r0, [r5, #0x4] - add r2, r2, #0x4 - cmp r3, r0 - blo _0202219E -_020221AE: - mov r4, #0x0 - cmp r0, #0x0 - bls _020221E4 - add r7, r4, #0x0 -_020221B6: - ldr r3, [r5, #0x10] - ldr r1, [sp, #0x0] - add r0, r3, r7 - ldrb r3, [r3, r7] - ldr r2, [sp, #0x4] - lsl r6, r3, #0x2 - ldr r3, _020221E8 ; =0x020EE6CC - ldr r3, [r3, r6] - blx r3 - add r1, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r1, r0 - beq _020221DA - ldr r2, [r5, #0xc] - ldr r3, [r5, #0x8] - add r0, r4, #0x0 - blx r3 -_020221DA: - ldr r0, [r5, #0x4] - add r4, r4, #0x1 - add r7, r7, #0x4 - cmp r4, r0 - blo _020221B6 -_020221E4: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020221E8: .word 0x020EE6CC - - thumb_func_start FUN_020221EC -FUN_020221EC: ; 0x020221EC - push {r3, lr} - ldrb r1, [r0, #0x1] - cmp r1, #0x0 - beq _02022202 - cmp r2, #0x0 - beq _02022202 - mov r1, #0x1 - bl FUN_0202223C - mov r0, #0x0 - pop {r3, pc} -_02022202: - mov r0, #0x0 - mvn r0, r0 - pop {r3, pc} - - thumb_func_start FUN_02022208 -FUN_02022208: ; 0x02022208 - push {r3, lr} - ldrb r2, [r0, #0x1] - cmp r2, #0x0 - beq _02022220 - ldrh r2, [r0, #0x2] - ldr r1, _02022238 ; =0x0000FFFF - cmp r2, r1 - bhs _0202221C - add r1, r2, #0x1 - strh r1, [r0, #0x2] -_0202221C: - mov r0, #0x2 - pop {r3, pc} -_02022220: - cmp r1, #0x0 - beq _0202222E - mov r1, #0x0 - bl FUN_0202223C - mov r0, #0x3 - pop {r3, pc} -_0202222E: - mov r1, #0x0 - bl FUN_0202223C - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_02022238: .word 0x0000FFFF - - thumb_func_start FUN_0202223C -FUN_0202223C: ; 0x0202223C - strb r1, [r0, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x2] - bx lr - - thumb_func_start FUN_02022244 -FUN_02022244: ; 0x02022244 - push {r3-r4} - ldr r3, [r0, #0xc] - mov r2, #0x0 - sub r3, r3, #0x1 - beq _02022262 - ldr r4, [r0, #0x0] -_02022250: - ldrh r3, [r4, #0x2] - cmp r3, r1 - bhi _02022262 - ldr r3, [r0, #0xc] - add r2, r2, #0x1 - sub r3, r3, #0x1 - add r4, r4, #0x2 - cmp r2, r3 - blo _02022250 -_02022262: - ldr r1, [r0, #0x4] - ldrb r3, [r1, r2] - add r1, sp, #0x0 - strb r3, [r1, #0x0] - ldr r0, [r0, #0x8] - ldrb r2, [r0, r2] - strb r2, [r1, #0x1] - ldrb r0, [r1, #0x0] - lsl r1, r2, #0x8 - orr r0, r1 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0202227C -FUN_0202227C: ; 0x0202227C - ldr r2, [r0, #0x0] - str r2, [r1, #0xc] - add r2, r0, #0x4 - str r2, [r1, #0x0] - ldr r0, [r1, #0xc] - lsl r0, r0, #0x1 - add r2, r2, r0 - str r2, [r1, #0x4] - ldr r0, [r1, #0xc] - add r0, r2, r0 - str r0, [r1, #0x8] - bx lr - - thumb_func_start FUN_02022294 -FUN_02022294: ; 0x02022294 - ldr r0, _020222A4 ; =0x021C59BC - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - str r1, [r0, #0x8] - ldr r0, _020222A8 ; =0x021C59BC - str r1, [r0, #0x0] - bx lr - .balign 4 -_020222A4: .word 0x021C59BC -_020222A8: .word 0x021C59BC - - thumb_func_start FUN_020222AC -FUN_020222AC: ; 0x020222AC - ldr r3, _020222B0 ; =G3X_ResetMtxStack - bx r3 - .balign 4 -_020222B0: .word G3X_ResetMtxStack - - thumb_func_start FUN_020222B4 -FUN_020222B4: ; 0x020222B4 - ldr r2, _020222C0 ; =0x021C59BC - str r0, [r2, #0x4] - str r1, [r2, #0x8] - mov r0, #0x1 - str r0, [r2, #0x0] - bx lr - .balign 4 -_020222C0: .word 0x021C59BC - - thumb_func_start FUN_020222C4 -FUN_020222C4: ; 0x020222C4 - ldr r0, _020222E0 ; =0x021C59BC - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _020222DC - ldr r1, [r0, #0x8] - ldr r2, [r0, #0x4] - lsl r1, r1, #0x1 - orr r2, r1 - ldr r1, _020222E4 ; =0x04000540 - str r2, [r1, #0x0] - mov r1, #0x0 - str r1, [r0, #0x0] -_020222DC: - bx lr - nop -_020222E0: .word 0x021C59BC -_020222E4: .word 0x04000540 - - thumb_func_start FUN_020222E8 -FUN_020222E8: ; 0x020222E8 - mov r0, #0x5 - lsl r0, r0, #0x18 - bx lr - .balign 4 - - thumb_func_start FUN_020222F0 -FUN_020222F0: ; 0x020222F0 - mov r0, #0x2 - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_020222F8 -FUN_020222F8: ; 0x020222F8 - ldr r0, _020222FC ; =0x05000400 - bx lr - .balign 4 -_020222FC: .word 0x05000400 - - thumb_func_start FUN_02022300 -FUN_02022300: ; 0x02022300 - mov r0, #0x2 - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_02022308 -FUN_02022308: ; 0x02022308 - ldr r0, _0202230C ; =0x05000200 - bx lr - .balign 4 -_0202230C: .word 0x05000200 - - thumb_func_start FUN_02022310 -FUN_02022310: ; 0x02022310 - ldr r0, _02022314 ; =0x05000600 - bx lr - .balign 4 -_02022314: .word 0x05000600 - - thumb_func_start FUN_02022318 -FUN_02022318: ; 0x02022318 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r1, #0x0 - mov r1, #0xc - add r6, r0, #0x0 - add r5, r2, #0x0 - str r3, [sp, #0x4] - bl FUN_02016998 - add r4, r0, #0x0 - str r6, [r4, #0x0] - bl FUN_020BB7F4 - bl G3X_InitMtxStack - mov r1, #0x2 - ldr r0, _020223B8 ; =0x04000540 - cmp r7, #0x0 - str r1, [r0, #0x0] - bne _02022364 - lsl r0, r5, #0x7 - bl FUN_020AFA28 - add r6, r0, #0x0 - ldr r0, [r4, #0x0] - add r1, r6, #0x0 - bl FUN_02016998 - str r0, [r4, #0x8] - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r2, [r4, #0x8] - lsl r0, r5, #0x11 - mov r1, #0x0 - add r3, r6, #0x0 - bl FUN_020AF9C4 - b _0202236E -_02022364: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - bl FUN_020AEB70 -_0202236E: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _02022398 - ldr r0, [sp, #0x20] - lsl r0, r0, #0x8 - bl FUN_020AFBFC - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - add r1, r5, #0x0 - bl FUN_02016998 - str r0, [r4, #0x4] - ldr r0, [sp, #0x20] - ldr r1, [r4, #0x4] - lsl r0, r0, #0xd - add r2, r5, #0x0 - mov r3, #0x1 - bl FUN_020AFBA8 - b _020223A4 -_02022398: - ldr r0, [sp, #0x20] - mov r1, #0x1 - lsl r0, r0, #0x1d - lsr r0, r0, #0x10 - bl FUN_020AEB70 -_020223A4: - ldr r0, [sp, #0x24] - cmp r0, #0x0 - beq _020223AE - blx r0 - b _020223B2 -_020223AE: - bl FUN_020223D4 -_020223B2: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020223B8: .word 0x04000540 - - thumb_func_start FUN_020223BC -FUN_020223BC: ; 0x020223BC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - bl FUN_02016A18 - ldr r0, [r4, #0x8] - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - - thumb_func_start FUN_020223D4 -FUN_020223D4: ; 0x020223D4 - push {r3, lr} - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_0201E6E4 - ldr r0, _02022438 ; =0x04000008 - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - strh r2, [r0, #0x0] - add r0, #0x58 - ldrh r2, [r0, #0x0] - ldr r1, _0202243C ; =0xFFFFCFFD - and r1, r2 - strh r1, [r0, #0x0] - ldrh r1, [r0, #0x0] - ldr r2, _02022440 ; =0x0000CFEF - and r1, r2 - strh r1, [r0, #0x0] - add r1, r2, #0x0 - ldrh r3, [r0, #0x0] - add r1, #0xc - and r1, r3 - strh r1, [r0, #0x0] - add r1, r2, #0x0 - ldrh r3, [r0, #0x0] - add r1, #0x8 - sub r2, #0x10 - and r1, r3 - strh r1, [r0, #0x0] - ldrh r1, [r0, #0x0] - and r1, r2 - strh r1, [r0, #0x0] - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - add r3, r0, #0x0 - bl G3X_SetFog - mov r0, #0x0 - ldr r2, _02022444 ; =0x00007FFF - add r1, r0, #0x0 - mov r3, #0x3f - str r0, [sp, #0x0] - bl G3X_SetClearColor - ldr r1, _02022448 ; =0xBFFF0000 - ldr r0, _0202244C ; =0x04000580 - str r1, [r0, #0x0] - pop {r3, pc} - .balign 4 -_02022438: .word 0x04000008 -_0202243C: .word 0xFFFFCFFD -_02022440: .word 0x0000CFEF -_02022444: .word 0x00007FFF -_02022448: .word 0xBFFF0000 -_0202244C: .word 0x04000580 - - thumb_func_start FUN_02022450 -FUN_02022450: ; 0x02022450 - push {r3, lr} - bl FS_IsAvailable - cmp r0, #0x0 - bne _02022460 - bl OS_Terminate - pop {r3, pc} -_02022460: - ldr r0, _020224BC ; =0x027FF00C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202248A - bl CARD_Init - mov r2, #0x16 - ldr r0, _020224C0 ; =0x027FFE00 - ldr r1, _020224C4 ; =0x027FF000 - lsl r2, r2, #0x4 - bl MI_CpuCopy8 - mov r2, #0x16 - ldr r0, _020224C0 ; =0x027FFE00 - ldr r1, _020224C8 ; =0x027FFA80 - lsl r2, r2, #0x4 - bl MI_CpuCopy8 - ldr r1, _020224CC ; =0x4A414441 - ldr r0, _020224BC ; =0x027FF00C - str r1, [r0, #0x0] -_0202248A: - ldr r0, _020224D0 ; =0x020EE6D4 - mov r1, #0x3 - bl FS_FindArchive - ldr r1, _020224C4 ; =0x027FF000 - ldr r2, [r1, #0x48] - str r2, [r0, #0x2c] - ldr r2, [r1, #0x4c] - str r2, [r0, #0x30] - ldr r2, [r1, #0x40] - str r2, [r0, #0x34] - ldr r2, [r1, #0x44] - str r2, [r0, #0x38] - ldr r2, [r1, #0xc] - ldr r0, _020224CC ; =0x4A414441 - cmp r2, r0 - bne _020224B4 - ldrh r1, [r1, #0x10] - ldr r0, _020224D4 ; =0x00003130 - cmp r1, r0 - beq _020224B8 -_020224B4: - bl OS_Terminate -_020224B8: - pop {r3, pc} - nop -_020224BC: .word 0x027FF00C -_020224C0: .word 0x027FFE00 -_020224C4: .word 0x027FF000 -_020224C8: .word 0x027FFA80 -_020224CC: .word 0x4A414441 -_020224D0: .word 0x020EE6D4 -_020224D4: .word 0x00003130 - - thumb_func_start FUN_020224D8 -FUN_020224D8: ; 0x020224D8 - push {r4, lr} - sub sp, #0x48 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl FS_InitFile - add r0, sp, #0x0 - add r1, r4, #0x0 - bl FS_OpenFile - cmp r0, #0x0 - beq _020224FC - ldr r1, [sp, #0x24] - ldr r0, _02022500 ; =0x027FFC2C - str r1, [r0, #0x0] - mov r0, #0x0 - bl OS_ResetSystem -_020224FC: - add sp, #0x48 - pop {r4, pc} - .balign 4 -_02022500: .word 0x027FFC2C - - thumb_func_start FUN_02022504 -FUN_02022504: ; 0x02022504 - ldr r3, _0202250C ; =FUN_02022610 - mov r1, #0x1b - bx r3 - nop -_0202250C: .word FUN_02022610 - - thumb_func_start FUN_02022510 -FUN_02022510: ; 0x02022510 - ldr r3, _02022518 ; =FUN_02022610 - mov r1, #0x23 - bx r3 - nop -_02022518: .word FUN_02022610 - - thumb_func_start FUN_0202251C -FUN_0202251C: ; 0x0202251C - ldr r3, _02022524 ; =FUN_02022610 - mov r1, #0x1f - bx r3 - nop -_02022524: .word FUN_02022610 - - thumb_func_start FUN_02022528 -FUN_02022528: ; 0x02022528 - ldr r3, _02022530 ; =FUN_02022610 - mov r1, #0x20 - bx r3 - nop -_02022530: .word FUN_02022610 - - thumb_func_start FUN_02022534 -FUN_02022534: ; 0x02022534 - push {r3, lr} - add r3, r2, #0x0 - mov r2, #0x0 - bl FUN_02023408 - pop {r3, pc} - - thumb_func_start FUN_02022540 -FUN_02022540: ; 0x02022540 - ldr r3, _02022548 ; =FUN_020232BC - add r2, r1, #0x0 - mov r1, #0x0 - bx r3 - .balign 4 -_02022548: .word FUN_020232BC - - thumb_func_start FUN_0202254C -FUN_0202254C: ; 0x0202254C - push {r4, lr} - ldr r1, _020225E0 ; =0x000204A8 - mov r0, #0x1 - bl FUN_02016998 - add r4, r0, #0x0 - ldr r2, _020225E0 ; =0x000204A8 - mov r0, #0x0 - add r1, r4, #0x0 - bl MIi_CpuClearFast - ldr r0, _020225E4 ; =0x021C59C8 - str r4, [r0, #0x0] - bl FUN_02023570 - str r0, [r4, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - mov r0, #0x1 - str r0, [r4, #0x8] - str r0, [r4, #0xc] - add r0, r4, #0x0 - ldr r1, _020225E8 ; =0x00001021 - add r0, #0x14 - bl MATHi_CRC16InitTable - ldr r0, _020225EC ; =0x00020224 - add r0, r4, r0 - bl FUN_020230E4 - ldr r0, _020225F0 ; =0x00020464 - ldr r1, _020225EC ; =0x00020224 - add r0, r4, r0 - add r1, r4, r1 - bl FUN_02023160 - ldr r1, _020225F4 ; =0x00020218 - mov r0, #0x0 - add r1, r4, r1 - mov r2, #0x8 - bl MIi_CpuClearFast - add r0, r4, #0x0 - bl FUN_02022AD8 - str r0, [r4, #0x10] - cmp r0, #0x3 - bhi _020225DA - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020225B8: ; jump table (using 16-bit offset) - .short _020225D4 - _020225B8 - 2; case 0 - .short _020225C0 - _020225B8 - 2; case 1 - .short _020225C4 - _020225B8 - 2; case 2 - .short _020225D4 - _020225B8 - 2; case 3 -_020225C0: - mov r0, #0x0 - str r0, [r4, #0xc] -_020225C4: - add r0, r4, #0x0 - bl FUN_02022D08 - mov r0, #0x1 - str r0, [r4, #0x4] - mov r0, #0x0 - str r0, [r4, #0x8] - b _020225DA -_020225D4: - add r0, r4, #0x0 - bl FUN_020227DC -_020225DA: - add r0, r4, #0x0 - pop {r4, pc} - nop -_020225E0: .word 0x000204A8 -_020225E4: .word 0x021C59C8 -_020225E8: .word 0x00001021 -_020225EC: .word 0x00020224 -_020225F0: .word 0x00020464 -_020225F4: .word 0x00020218 - - thumb_func_start FUN_020225F8 -FUN_020225F8: ; 0x020225F8 - push {r3, lr} - ldr r0, _0202260C ; =0x021C59C8 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02022606 - bl ErrorHandling -_02022606: - ldr r0, _0202260C ; =0x021C59C8 - ldr r0, [r0, #0x0] - pop {r3, pc} - .balign 4 -_0202260C: .word 0x021C59C8 - - thumb_func_start FUN_02022610 -FUN_02022610: ; 0x02022610 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x24 - blt _0202261E - bl ErrorHandling -_0202261E: - mov r0, #0x85 - lsl r0, r0, #0x2 - add r2, r5, r0 - lsl r0, r4, #0x4 - add r1, r5, r0 - ldr r0, _02022630 ; =0x0002022C - ldr r0, [r1, r0] - add r0, r2, r0 - pop {r3-r5, pc} - .balign 4 -_02022630: .word 0x0002022C - - thumb_func_start FUN_02022634 -FUN_02022634: ; 0x02022634 - ldr r3, _02022638 ; =FUN_02022610 - bx r3 - .balign 4 -_02022638: .word FUN_02022610 - - thumb_func_start FUN_0202263C -FUN_0202263C: ; 0x0202263C - push {r3-r7, lr} - mov r1, #0x1 - str r0, [sp, #0x0] - mov r0, #0x3 - lsl r1, r1, #0xc - bl FUN_020169D8 - add r6, r0, #0x0 - mov r0, #0x1 - bl FUN_02016444 - ldr r1, _020226F4 ; =0x00020220 - ldr r0, [sp, #0x0] - ldrb r0, [r0, r1] - cmp r0, #0x0 - bne _02022660 - mov r2, #0x1 - b _02022662 -_02022660: - mov r2, #0x0 -_02022662: - ldr r0, [sp, #0x0] - mov r1, #0x0 - bl FUN_02023074 - ldr r1, _020226F8 ; =0x00020221 - ldr r0, [sp, #0x0] - ldrb r0, [r0, r1] - cmp r0, #0x0 - bne _02022678 - mov r2, #0x1 - b _0202267A -_02022678: - mov r2, #0x0 -_0202267A: - ldr r0, [sp, #0x0] - mov r1, #0x1 - bl FUN_02023074 - ldr r0, [sp, #0x0] - ldr r3, _020226F4 ; =0x00020220 - add r2, r0, #0x0 - ldrb r2, [r2, r3] - mov r1, #0x0 - bl FUN_02023074 - ldr r0, [sp, #0x0] - ldr r3, _020226F8 ; =0x00020221 - add r2, r0, #0x0 - ldrb r2, [r2, r3] - mov r1, #0x1 - bl FUN_02023074 - mov r0, #0x0 - mov r2, #0x1 - mvn r0, r0 - add r1, r6, #0x0 - lsl r2, r2, #0xc - bl MIi_CpuClearFast - mov r4, #0x0 - mov r7, #0x1 - add r5, r4, #0x0 - lsl r7, r7, #0xc -_020226B4: - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020235D0 - add r0, r4, #0x0 - add r0, #0x40 - lsl r0, r0, #0xc - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020235D0 - mov r0, #0x1 - lsl r0, r0, #0xc - add r4, r4, #0x1 - add r5, r5, r0 - cmp r4, #0x40 - blt _020226B4 - add r0, r6, #0x0 - bl FUN_02016A18 - ldr r0, [sp, #0x0] - bl FUN_020227DC - ldr r0, [sp, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] - mov r0, #0x1 - bl FUN_02016454 - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 -_020226F4: .word 0x00020220 -_020226F8: .word 0x00020221 - - thumb_func_start FUN_020226FC -FUN_020226FC: ; 0x020226FC - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - bne _0202270A - mov r0, #0x0 - pop {r4, pc} -_0202270A: - bl FUN_02022D08 - cmp r0, #0x0 - beq _0202271C - mov r0, #0x1 - str r0, [r4, #0x4] - mov r1, #0x0 - str r1, [r4, #0x8] - pop {r4, pc} -_0202271C: - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02022720 -FUN_02022720: ; 0x02022720 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _0202272E - mov r0, #0x3 - pop {r4, pc} -_0202272E: - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _02022784 - mov r0, #0x1 - bl FUN_02016444 - ldr r0, _02022798 ; =0x00020220 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _02022746 - mov r2, #0x1 - b _02022748 -_02022746: - mov r2, #0x0 -_02022748: - add r0, r4, #0x0 - mov r1, #0x0 - bl FUN_02023074 - ldr r0, _0202279C ; =0x00020221 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _0202275C - mov r2, #0x1 - b _0202275E -_0202275C: - mov r2, #0x0 -_0202275E: - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_02023074 - ldr r2, _02022798 ; =0x00020220 - add r0, r4, #0x0 - ldrb r2, [r4, r2] - mov r1, #0x0 - bl FUN_02023074 - ldr r2, _0202279C ; =0x00020221 - add r0, r4, #0x0 - ldrb r2, [r4, r2] - mov r1, #0x1 - bl FUN_02023074 - mov r0, #0x1 - bl FUN_02016454 -_02022784: - add r0, r4, #0x0 - bl FUN_02023044 - cmp r0, #0x2 - bne _02022796 - mov r1, #0x1 - str r1, [r4, #0x4] - mov r1, #0x0 - str r1, [r4, #0x8] -_02022796: - pop {r4, pc} - .balign 4 -_02022798: .word 0x00020220 -_0202279C: .word 0x00020221 - - thumb_func_start FUN_020227A0 -FUN_020227A0: ; 0x020227A0 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x2 - blt _020227AE - bl ErrorHandling -_020227AE: - ldr r0, [r5, #0x8] - cmp r0, #0x0 - beq _020227B8 - bl ErrorHandling -_020227B8: - ldr r0, [r5, #0x4] - cmp r0, #0x1 - beq _020227C2 - bl ErrorHandling -_020227C2: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02022840 -_020227CA: - add r0, r5, #0x0 - bl FUN_02022854 - cmp r0, #0x0 - beq _020227CA - cmp r0, #0x1 - beq _020227CA - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020227DC -FUN_020227DC: ; 0x020227DC - add r2, r0, #0x0 - mov r0, #0x1 - str r0, [r2, #0x8] - str r0, [r2, #0xc] - mov r0, #0x85 - ldr r1, _020227F4 ; =0x00020224 - lsl r0, r0, #0x2 - ldr r3, _020227F8 ; =FUN_020231F4 - add r0, r2, r0 - add r1, r2, r1 - bx r3 - nop -_020227F4: .word 0x00020224 -_020227F8: .word FUN_020231F4 - - thumb_func_start FUN_020227FC -FUN_020227FC: ; 0x020227FC - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02022800 -FUN_02022800: ; 0x02022800 - ldr r0, [r0, #0x10] - bx lr - - thumb_func_start FUN_02022804 -FUN_02022804: ; 0x02022804 - ldr r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_02022808 -FUN_02022808: ; 0x02022808 - ldr r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_0202280C -FUN_0202280C: ; 0x0202280C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02022808 - cmp r0, #0x0 - beq _02022826 - add r0, r4, #0x0 - bl FUN_02022804 - cmp r0, #0x0 - beq _02022826 - mov r0, #0x1 - pop {r4, pc} -_02022826: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202282C -FUN_0202282C: ; 0x0202282C - ldr r0, [r0, #0xc] - bx lr - - thumb_func_start FUN_02022830 -FUN_02022830: ; 0x02022830 - ldr r0, _0202283C ; =0x021C59C8 - mov r1, #0x1 - ldr r0, [r0, #0x0] - str r1, [r0, #0xc] - bx lr - nop -_0202283C: .word 0x021C59C8 - - thumb_func_start FUN_02022840 -FUN_02022840: ; 0x02022840 - add r2, r1, #0x0 - ldr r1, _0202284C ; =0x0002047C - ldr r3, _02022850 ; =FUN_02022DFC - add r1, r0, r1 - bx r3 - nop -_0202284C: .word 0x0002047C -_02022850: .word FUN_02022DFC - - thumb_func_start FUN_02022854 -FUN_02022854: ; 0x02022854 - push {r3-r5, lr} - ldr r1, _02022878 ; =0x0002047C - add r5, r0, #0x0 - add r1, r5, r1 - bl FUN_02022E78 - add r4, r0, #0x0 - beq _02022874 - cmp r4, #0x1 - beq _02022874 - ldr r1, _02022878 ; =0x0002047C - add r0, r5, #0x0 - add r1, r5, r1 - add r2, r4, #0x0 - bl FUN_02022F80 -_02022874: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02022878: .word 0x0002047C - - thumb_func_start FUN_0202287C -FUN_0202287C: ; 0x0202287C - ldr r1, _02022884 ; =0x0002047C - ldr r3, _02022888 ; =FUN_02022FF0 - add r1, r0, r1 - bx r3 - .balign 4 -_02022884: .word 0x0002047C -_02022888: .word FUN_02022FF0 - - thumb_func_start FUN_0202288C -FUN_0202288C: ; 0x0202288C - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - str r1, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_02022898 -FUN_02022898: ; 0x02022898 - ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT - add r0, #0x14 - sub r2, #0x14 - bx r3 - .balign 4 -_020228A0: .word MATH_CalcCRC16CCITT - - thumb_func_start FUN_020228A4 -FUN_020228A4: ; 0x020228A4 - cmp r0, #0x0 - bne _020228AC - mov r2, #0x0 - b _020228B0 -_020228AC: - mov r2, #0x1 - lsl r2, r2, #0x12 -_020228B0: - ldr r0, [r1, #0x4] - add r0, r2, r0 - bx lr - .balign 4 - - thumb_func_start FUN_020228B8 -FUN_020228B8: ; 0x020228B8 - push {r3-r5, lr} - ldr r3, _020228DC ; =0x00020464 - add r3, r0, r3 - mov r0, #0xc - mul r0, r2 - add r5, r3, r0 - ldr r0, [r5, #0x4] - add r4, r1, r0 - ldr r0, [r5, #0x8] - cmp r0, #0x0 - bne _020228D2 - bl ErrorHandling -_020228D2: - ldr r0, [r5, #0x8] - add r0, r4, r0 - sub r0, #0x14 - pop {r3-r5, pc} - nop -_020228DC: .word 0x00020464 - - thumb_func_start FUN_020228E0 -FUN_020228E0: ; 0x020228E0 - push {r3-r7, lr} - ldr r4, _02022934 ; =0x00020464 - add r3, r0, #0x0 - add r3, r3, r4 - add r5, r2, #0x0 - mov r4, #0xc - mul r4, r5 - str r0, [sp, #0x0] - add r7, r1, #0x0 - add r6, r3, r4 - bl FUN_020228B8 - add r4, r0, #0x0 - ldr r2, [r6, #0x8] - ldr r0, [r4, #0x8] - ldr r1, [r6, #0x4] - cmp r0, r2 - beq _02022908 - mov r0, #0x0 - pop {r3-r7, pc} -_02022908: - ldr r3, [r4, #0xc] - ldr r0, _02022938 ; =0x20060623 - cmp r3, r0 - beq _02022914 - mov r0, #0x0 - pop {r3-r7, pc} -_02022914: - ldrb r0, [r4, #0x10] - cmp r0, r5 - beq _0202291E - mov r0, #0x0 - pop {r3-r7, pc} -_0202291E: - ldr r0, [sp, #0x0] - add r1, r7, r1 - bl FUN_02022898 - ldrh r1, [r4, #0x12] - cmp r1, r0 - bne _02022930 - mov r0, #0x1 - pop {r3-r7, pc} -_02022930: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_02022934: .word 0x00020464 -_02022938: .word 0x20060623 - - thumb_func_start FUN_0202293C -FUN_0202293C: ; 0x0202293C - push {r3-r7, lr} - add r7, r2, #0x0 - add r6, r1, #0x0 - add r5, r0, #0x0 - str r3, [sp, #0x0] - add r0, r6, #0x0 - add r1, r7, #0x0 - add r2, r3, #0x0 - bl FUN_020228B8 - add r4, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_020228E0 - str r0, [r5, #0x0] - ldr r0, [r4, #0x0] - str r0, [r5, #0x4] - ldr r0, [r4, #0x4] - str r0, [r5, #0x8] - pop {r3-r7, pc} - - thumb_func_start FUN_02022968 -FUN_02022968: ; 0x02022968 - push {r3-r7, lr} - ldr r3, _020229AC ; =0x00020464 - add r5, r0, #0x0 - add r7, r2, #0x0 - mov r4, #0xc - add r3, r5, r3 - mul r4, r7 - str r1, [sp, #0x0] - add r6, r3, r4 - bl FUN_020228B8 - ldr r2, _020229B0 ; =0x00020214 - add r4, r0, #0x0 - ldr r0, [r5, r2] - ldr r1, [r6, #0x4] - add r2, r2, #0x4 - str r0, [r4, #0x0] - lsl r0, r7, #0x2 - add r0, r5, r0 - ldr r0, [r0, r2] - ldr r2, [sp, #0x0] - str r0, [r4, #0x4] - ldr r0, [r6, #0x8] - add r1, r2, r1 - str r0, [r4, #0x8] - ldr r0, _020229B4 ; =0x20060623 - str r0, [r4, #0xc] - strb r7, [r4, #0x10] - ldr r2, [r6, #0x8] - add r0, r5, #0x0 - bl FUN_02022898 - strh r0, [r4, #0x12] - pop {r3-r7, pc} - .balign 4 -_020229AC: .word 0x00020464 -_020229B0: .word 0x00020214 -_020229B4: .word 0x20060623 - - thumb_func_start FUN_020229B8 -FUN_020229B8: ; 0x020229B8 - mov r2, #0x0 - mvn r2, r2 - cmp r0, r2 - bne _020229C8 - cmp r1, #0x0 - bne _020229C8 - add r0, r2, #0x0 - bx lr -_020229C8: - cmp r0, #0x0 - bne _020229D8 - mov r2, #0x0 - mvn r2, r2 - cmp r1, r2 - bne _020229D8 - mov r0, #0x1 - bx lr -_020229D8: - cmp r0, r1 - bls _020229E0 - mov r0, #0x1 - bx lr -_020229E0: - cmp r0, r1 - bhs _020229E8 - mov r0, #0x1 - b _020229EA -_020229E8: - mov r0, #0x0 -_020229EA: - neg r0, r0 - bx lr - .balign 4 - - thumb_func_start FUN_020229F0 -FUN_020229F0: ; 0x020229F0 - push {r3-r7, lr} - add r7, r0, #0x0 - add r6, r1, #0x0 - ldr r0, [r7, #0x4] - ldr r1, [r6, #0x4] - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_020229B8 - str r0, [sp, #0x0] - ldr r0, [r7, #0x8] - ldr r1, [r6, #0x8] - bl FUN_020229B8 - ldr r2, [r7, #0x0] - cmp r2, #0x0 - beq _02022A6A - ldr r1, [r6, #0x0] - cmp r1, #0x0 - beq _02022A6A - ldr r1, [sp, #0x0] - cmp r1, #0x0 - ble _02022A30 - cmp r0, #0x0 - bgt _02022A26 - bl ErrorHandling -_02022A26: - mov r0, #0x0 - str r0, [r5, #0x0] - mov r0, #0x1 - str r0, [r4, #0x0] - b _02022A66 -_02022A30: - bge _02022A44 - cmp r0, #0x0 - blt _02022A3A - bl ErrorHandling -_02022A3A: - mov r0, #0x1 - str r0, [r5, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02022A66 -_02022A44: - cmp r0, #0x0 - ble _02022A52 - mov r0, #0x0 - str r0, [r5, #0x0] - mov r0, #0x1 - str r0, [r4, #0x0] - b _02022A66 -_02022A52: - bge _02022A5E - mov r0, #0x1 - str r0, [r5, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - b _02022A66 -_02022A5E: - mov r0, #0x0 - str r0, [r5, #0x0] - mov r0, #0x1 - str r0, [r4, #0x0] -_02022A66: - mov r0, #0x2 - pop {r3-r7, pc} -_02022A6A: - cmp r2, #0x0 - beq _02022A80 - ldr r0, [r6, #0x0] - cmp r0, #0x0 - bne _02022A80 - mov r0, #0x0 - str r0, [r5, #0x0] - mov r0, #0x2 - str r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} -_02022A80: - cmp r2, #0x0 - bne _02022A94 - ldr r0, [r6, #0x0] - cmp r0, #0x0 - beq _02022A94 - mov r0, #0x1 - str r0, [r5, #0x0] - mov r1, #0x2 - str r1, [r4, #0x0] - pop {r3-r7, pc} -_02022A94: - mov r0, #0x2 - str r0, [r5, #0x0] - str r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02022AA0 -FUN_02022AA0: ; 0x02022AA0 - push {r3-r6} - mov r4, #0xc - add r5, r3, #0x0 - mul r5, r4 - add r6, r1, r5 - ldr r5, [r6, #0x4] - ldr r1, _02022AD4 ; =0x00020214 - str r5, [r0, r1] - ldr r6, [r6, #0x8] - add r5, r1, #0x4 - str r6, [r0, r5] - ldr r5, [sp, #0x10] - mul r4, r5 - add r2, r2, r4 - ldr r4, [r2, #0x8] - add r2, r1, #0x0 - add r2, #0x8 - str r4, [r0, r2] - add r2, r1, #0x0 - add r2, #0xc - strb r3, [r0, r2] - add r1, #0xd - strb r5, [r0, r1] - pop {r3-r6} - bx lr - nop -_02022AD4: .word 0x00020214 - - thumb_func_start FUN_02022AD8 -FUN_02022AD8: ; 0x02022AD8 - push {r3-r6, lr} - sub sp, #0x44 - mov r1, #0x2 - add r5, r0, #0x0 - mov r0, #0x3 - lsl r1, r1, #0x10 - bl FUN_020169D8 - mov r1, #0x2 - add r6, r0, #0x0 - mov r0, #0x3 - lsl r1, r1, #0x10 - bl FUN_020169D8 - mov r2, #0x2 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r6, #0x0 - lsl r2, r2, #0x10 - bl FUN_020235EC - cmp r0, #0x0 - add r0, sp, #0x2c - beq _02022B20 - add r1, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0x0 - bl FUN_0202293C - add r0, sp, #0x14 - add r1, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0x1 - bl FUN_0202293C - b _02022B2A -_02022B20: - bl FUN_0202288C - add r0, sp, #0x14 - bl FUN_0202288C -_02022B2A: - mov r0, #0x1 - lsl r0, r0, #0x12 - add r1, r4, #0x0 - lsr r2, r0, #0x1 - bl FUN_020235EC - cmp r0, #0x0 - add r0, sp, #0x38 - beq _02022B54 - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl FUN_0202293C - add r0, sp, #0x20 - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x1 - bl FUN_0202293C - b _02022B5E -_02022B54: - bl FUN_0202288C - add r0, sp, #0x20 - bl FUN_0202288C -_02022B5E: - add r0, r6, #0x0 - bl FUN_02016A18 - add r0, r4, #0x0 - bl FUN_02016A18 - add r0, sp, #0x2c - add r1, sp, #0x38 - add r2, sp, #0x10 - add r3, sp, #0x8 - bl FUN_020229F0 - add r4, r0, #0x0 - add r0, sp, #0x14 - add r1, sp, #0x20 - add r2, sp, #0xc - add r3, sp, #0x4 - bl FUN_020229F0 - cmp r4, #0x0 - bne _02022B92 - cmp r0, #0x0 - bne _02022B92 - add sp, #0x44 - mov r0, #0x0 - pop {r3-r6, pc} -_02022B92: - cmp r4, #0x0 - beq _02022B9A - cmp r0, #0x0 - bne _02022BA0 -_02022B9A: - add sp, #0x44 - mov r0, #0x3 - pop {r3-r6, pc} -_02022BA0: - cmp r4, #0x2 - bne _02022BE4 - cmp r0, #0x2 - bne _02022BE4 - ldr r3, [sp, #0x10] - ldr r1, [sp, #0xc] - mov r2, #0xc - add r4, r3, #0x0 - mul r4, r2 - add r0, sp, #0x30 - ldr r0, [r0, r4] - add r4, r1, #0x0 - mul r4, r2 - add r2, sp, #0x18 - ldr r2, [r2, r4] - cmp r0, r2 - str r1, [sp, #0x0] - add r1, sp, #0x2c - bne _02022BD4 - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x1 - pop {r3-r6, pc} -_02022BD4: - ldr r3, [sp, #0x8] - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x2 - pop {r3-r6, pc} -_02022BE4: - cmp r4, #0x1 - bne _02022C3A - cmp r0, #0x2 - bne _02022C3A - ldr r3, [sp, #0x10] - ldr r0, [sp, #0xc] - mov r4, #0xc - add r2, r3, #0x0 - add r6, r0, #0x0 - mul r2, r4 - add r1, sp, #0x30 - ldr r2, [r1, r2] - mul r6, r4 - add r1, sp, #0x18 - ldr r6, [r1, r6] - cmp r2, r6 - bne _02022C18 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, sp, #0x2c - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x2 - pop {r3-r6, pc} -_02022C18: - ldr r0, [sp, #0x4] - mul r4, r0 - ldr r1, [r1, r4] - cmp r2, r1 - bne _02022C34 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, sp, #0x2c - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x2 - pop {r3-r6, pc} -_02022C34: - add sp, #0x44 - mov r0, #0x3 - pop {r3-r6, pc} -_02022C3A: - cmp r4, #0x2 - bne _02022C7E - cmp r0, #0x1 - bne _02022C7E - ldr r3, [sp, #0x10] - ldr r1, [sp, #0xc] - mov r2, #0xc - add r4, r3, #0x0 - mul r4, r2 - add r0, sp, #0x30 - ldr r0, [r0, r4] - add r4, r1, #0x0 - mul r4, r2 - add r2, sp, #0x18 - ldr r2, [r2, r4] - cmp r0, r2 - str r1, [sp, #0x0] - add r1, sp, #0x2c - bne _02022C6E - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x1 - pop {r3-r6, pc} -_02022C6E: - ldr r3, [sp, #0x8] - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x2 - pop {r3-r6, pc} -_02022C7E: - cmp r4, #0x1 - bne _02022CBC - cmp r0, #0x1 - bne _02022CBC - ldr r0, [sp, #0xc] - ldr r2, [sp, #0x10] - cmp r2, r0 - bne _02022CBC - add r3, r2, #0x0 - mov r1, #0xc - mul r3, r1 - add r2, sp, #0x30 - mul r1, r0 - add r0, sp, #0x18 - ldr r2, [r2, r3] - ldr r0, [r0, r1] - cmp r2, r0 - beq _02022CA6 - bl ErrorHandling -_02022CA6: - ldr r0, [sp, #0xc] - add r1, sp, #0x2c - str r0, [sp, #0x0] - ldr r3, [sp, #0x10] - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - add sp, #0x44 - mov r0, #0x1 - pop {r3-r6, pc} -_02022CBC: - ldr r1, [sp, #0x10] - mov r0, #0xc - add r2, r1, #0x0 - mul r2, r0 - add r1, sp, #0x30 - ldr r3, [r1, r2] - ldr r1, [sp, #0xc] - add r2, r1, #0x0 - mul r2, r0 - add r0, sp, #0x18 - ldr r0, [r0, r2] - cmp r3, r0 - beq _02022CDA - bl ErrorHandling -_02022CDA: - ldr r0, [sp, #0xc] - add r1, sp, #0x2c - str r0, [sp, #0x0] - ldr r3, [sp, #0x10] - add r0, r5, #0x0 - add r2, sp, #0x14 - bl FUN_02022AA0 - mov r0, #0x2 - add sp, #0x44 - pop {r3-r6, pc} - - thumb_func_start FUN_02022CF0 -FUN_02022CF0: ; 0x02022CF0 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020228A4 - ldr r1, [r5, #0x4] - ldr r2, [r5, #0x8] - add r1, r4, r1 - bl FUN_020235EC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02022D08 -FUN_02022D08: ; 0x02022D08 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, _02022D4C ; =0x00020464 - mov r7, #0x85 - mov r4, #0x0 - add r6, r5, r0 - lsl r7, r7, #0x2 -_02022D16: - ldr r0, _02022D50 ; =0x00020220 - add r1, r5, r4 - ldrb r0, [r1, r0] - add r1, r6, #0x0 - add r2, r5, r7 - bl FUN_02022CF0 - cmp r0, #0x0 - bne _02022D2C - mov r0, #0x0 - pop {r3-r7, pc} -_02022D2C: - add r0, r5, #0x0 - add r1, r5, r7 - add r2, r4, #0x0 - bl FUN_020228E0 - cmp r0, #0x0 - bne _02022D3E - mov r0, #0x0 - pop {r3-r7, pc} -_02022D3E: - add r4, r4, #0x1 - add r6, #0xc - cmp r4, #0x2 - blt _02022D16 - mov r0, #0x1 - pop {r3-r7, pc} - nop -_02022D4C: .word 0x00020464 -_02022D50: .word 0x00020220 - - thumb_func_start FUN_02022D54 -FUN_02022D54: ; 0x02022D54 - push {r4-r6, lr} - add r3, r1, #0x0 - ldr r1, _02022D90 ; =0x00020464 - add r5, r0, #0x0 - add r6, r2, #0x0 - add r2, r5, r1 - mov r1, #0xc - mul r1, r3 - add r4, r2, r1 - mov r1, #0x85 - lsl r1, r1, #0x2 - add r1, r5, r1 - add r2, r3, #0x0 - bl FUN_02022968 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_020228A4 - mov r1, #0x85 - lsl r1, r1, #0x2 - add r2, r5, r1 - ldr r1, [r4, #0x4] - add r1, r2, r1 - ldr r2, [r4, #0x8] - sub r2, #0x14 - bl FUN_02023668 - pop {r4-r6, pc} - nop -_02022D90: .word 0x00020464 - - thumb_func_start FUN_02022D94 -FUN_02022D94: ; 0x02022D94 - push {r4-r6, lr} - add r6, r0, #0x0 - ldr r0, _02022DC4 ; =0x00020464 - add r3, r6, r0 - mov r0, #0xc - mul r0, r1 - add r4, r3, r0 - add r0, r2, #0x0 - add r1, r4, #0x0 - ldr r5, [r4, #0x8] - bl FUN_020228A4 - mov r1, #0x2 - lsl r1, r1, #0x8 - add r2, r6, r1 - ldr r1, [r4, #0x4] - add r0, r5, r0 - add r1, r2, r1 - sub r0, #0x14 - add r1, r1, r5 - mov r2, #0x14 - bl FUN_02023668 - pop {r4-r6, pc} - .balign 4 -_02022DC4: .word 0x00020464 - - thumb_func_start FUN_02022DC8 -FUN_02022DC8: ; 0x02022DC8 - push {r4-r6, lr} - add r6, r0, #0x0 - ldr r0, _02022DF8 ; =0x00020464 - add r3, r6, r0 - mov r0, #0xc - mul r0, r1 - add r4, r3, r0 - add r0, r2, #0x0 - add r1, r4, #0x0 - ldr r5, [r4, #0x8] - bl FUN_020228A4 - mov r1, #0x82 - lsl r1, r1, #0x2 - add r2, r6, r1 - ldr r1, [r4, #0x4] - add r0, r5, r0 - add r1, r2, r1 - sub r0, #0xc - add r1, r1, r5 - mov r2, #0x8 - bl FUN_02023668 - pop {r4-r6, pc} - .balign 4 -_02022DF8: .word 0x00020464 - - thumb_func_start FUN_02022DFC -FUN_02022DFC: ; 0x02022DFC - push {r3-r7, lr} - ldr r7, _02022E70 ; =0x00020218 - add r4, r1, #0x0 - mov r12, r2 - mov r1, #0x0 - add r2, r0, #0x0 - add r3, r4, #0x0 - add r6, r7, #0x0 -_02022E0C: - ldr r5, _02022E70 ; =0x00020218 - add r1, r1, #0x1 - ldr r5, [r2, r5] - str r5, [r3, #0x1c] - ldr r5, [r2, r7] - add r3, r3, #0x4 - add r5, r5, #0x1 - str r5, [r2, r6] - add r2, r2, #0x4 - cmp r1, #0x2 - blt _02022E0C - mov r1, #0x0 - str r1, [r4, #0x14] - mov r2, r12 - str r1, [r4, #0x0] - cmp r2, #0x2 - bne _02022E58 - ldr r2, [r0, #0xc] - cmp r2, #0x0 - beq _02022E4E - mov r2, #0x1 - str r2, [r4, #0x0] - ldr r2, _02022E74 ; =0x00020214 - ldr r3, [r0, r2] - str r3, [r4, #0x18] - ldr r3, [r0, r2] - add r3, r3, #0x1 - str r3, [r0, r2] - str r1, [r4, #0x4] - str r1, [r4, #0x8] - mov r0, #0x2 - str r0, [r4, #0xc] - b _02022E66 -_02022E4E: - str r1, [r4, #0x4] - str r1, [r4, #0x8] - mov r0, #0x1 - str r0, [r4, #0xc] - b _02022E66 -_02022E58: - mov r0, r12 - str r0, [r4, #0x4] - mov r0, r12 - str r0, [r4, #0x8] - mov r0, r12 - add r0, r0, #0x1 - str r0, [r4, #0xc] -_02022E66: - mov r0, #0x1 - bl FUN_02016444 - pop {r3-r7, pc} - nop -_02022E70: .word 0x00020218 -_02022E74: .word 0x00020214 - - thumb_func_start FUN_02022E78 -FUN_02022E78: ; 0x02022E78 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x14] - cmp r0, #0x5 - bhi _02022F78 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02022E90: ; jump table (using 16-bit offset) - .short _02022E9C - _02022E90 - 2; case 0 - .short _02022EC0 - _02022E90 - 2; case 1 - .short _02022EDC - _02022E90 - 2; case 2 - .short _02022F00 - _02022E90 - 2; case 3 - .short _02022F2A - _02022E90 - 2; case 4 - .short _02022F4E - _02022E90 - 2; case 5 -_02022E9C: - ldr r1, [r4, #0x8] - ldr r0, _02022F7C ; =0x00020220 - add r2, r5, r1 - ldrb r0, [r2, r0] - cmp r0, #0x0 - bne _02022EAC - mov r2, #0x1 - b _02022EAE -_02022EAC: - mov r2, #0x0 -_02022EAE: - lsl r2, r2, #0x18 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02022D54 - str r0, [r4, #0x10] - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] -_02022EC0: - ldr r0, [r4, #0x10] - add r1, sp, #0x0 - bl FUN_020236E4 - cmp r0, #0x0 - beq _02022F78 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - bne _02022ED6 - mov r0, #0x3 - pop {r3-r5, pc} -_02022ED6: - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] -_02022EDC: - ldr r1, [r4, #0x8] - ldr r0, _02022F7C ; =0x00020220 - add r2, r5, r1 - ldrb r0, [r2, r0] - cmp r0, #0x0 - bne _02022EEC - mov r2, #0x1 - b _02022EEE -_02022EEC: - mov r2, #0x0 -_02022EEE: - lsl r2, r2, #0x18 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02022DC8 - str r0, [r4, #0x10] - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] -_02022F00: - ldr r0, [r4, #0x10] - add r1, sp, #0x0 - bl FUN_020236E4 - cmp r0, #0x0 - beq _02022F78 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - bne _02022F16 - mov r0, #0x3 - pop {r3-r5, pc} -_02022F16: - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] - ldr r0, [r4, #0x8] - add r1, r0, #0x1 - ldr r0, [r4, #0xc] - cmp r1, r0 - bne _02022F2A - mov r0, #0x1 - pop {r3-r5, pc} -_02022F2A: - ldr r1, [r4, #0x8] - ldr r0, _02022F7C ; =0x00020220 - add r2, r5, r1 - ldrb r0, [r2, r0] - cmp r0, #0x0 - bne _02022F3A - mov r2, #0x1 - b _02022F3C -_02022F3A: - mov r2, #0x0 -_02022F3C: - lsl r2, r2, #0x18 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02022D94 - str r0, [r4, #0x10] - ldr r0, [r4, #0x14] - add r0, r0, #0x1 - str r0, [r4, #0x14] -_02022F4E: - ldr r0, [r4, #0x10] - add r1, sp, #0x0 - bl FUN_020236E4 - cmp r0, #0x0 - beq _02022F78 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - bne _02022F64 - mov r0, #0x3 - pop {r3-r5, pc} -_02022F64: - ldr r0, [r4, #0x8] - add r1, r0, #0x1 - str r1, [r4, #0x8] - ldr r0, [r4, #0xc] - cmp r1, r0 - bne _02022F74 - mov r0, #0x2 - pop {r3-r5, pc} -_02022F74: - mov r0, #0x0 - str r0, [r4, #0x14] -_02022F78: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02022F7C: .word 0x00020220 - - thumb_func_start FUN_02022F80 -FUN_02022F80: ; 0x02022F80 - push {r3-r7, lr} - add r3, r0, #0x0 - add r0, r1, #0x0 - cmp r2, #0x3 - bne _02022FAA - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02022F96 - ldr r2, [r0, #0x18] - ldr r1, _02022FE4 ; =0x00020214 - str r2, [r3, r1] -_02022F96: - ldr r1, _02022FE8 ; =0x00020218 - mov r4, #0x0 -_02022F9A: - ldr r2, [r0, #0x1c] - add r4, r4, #0x1 - str r2, [r3, r1] - add r0, r0, #0x4 - add r3, r3, #0x4 - cmp r4, #0x2 - blt _02022F9A - b _02022FDA -_02022FAA: - ldr r6, [r0, #0x4] - ldr r1, [r0, #0xc] - cmp r6, r1 - bge _02022FD0 - ldr r1, _02022FEC ; =0x00020220 - mov r7, #0x1 - add r2, r1, #0x0 -_02022FB8: - add r5, r3, r6 - ldrb r4, [r5, r2] - cmp r4, #0x0 - bne _02022FC4 - add r4, r7, #0x0 - b _02022FC6 -_02022FC4: - mov r4, #0x0 -_02022FC6: - strb r4, [r5, r1] - ldr r4, [r0, #0xc] - add r6, r6, #0x1 - cmp r6, r4 - blt _02022FB8 -_02022FD0: - mov r0, #0x1 - str r0, [r3, #0x4] - mov r0, #0x0 - str r0, [r3, #0x8] - str r0, [r3, #0xc] -_02022FDA: - mov r0, #0x1 - bl FUN_02016454 - pop {r3-r7, pc} - nop -_02022FE4: .word 0x00020214 -_02022FE8: .word 0x00020218 -_02022FEC: .word 0x00020220 - - thumb_func_start FUN_02022FF0 -FUN_02022FF0: ; 0x02022FF0 - push {r3-r5, lr} - add r4, r1, #0x0 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02023000 - ldr r2, [r4, #0x18] - ldr r1, _0202303C ; =0x00020214 - str r2, [r0, r1] -_02023000: - ldr r1, _02023040 ; =0x00020218 - mov r3, #0x0 - add r5, r4, #0x0 -_02023006: - ldr r2, [r5, #0x1c] - add r3, r3, #0x1 - str r2, [r0, r1] - add r5, r5, #0x4 - add r0, r0, #0x4 - cmp r3, #0x2 - blt _02023006 - bl CARD_TryWaitBackupAsync - cmp r0, #0x0 - bne _02023034 - bl CARD_CancelBackupAsync - ldr r0, [r4, #0x10] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl CARD_UnlockBackup - ldr r0, [r4, #0x10] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl OS_ReleaseLockID -_02023034: - mov r0, #0x1 - bl FUN_02016454 - pop {r3-r5, pc} - .balign 4 -_0202303C: .word 0x00020214 -_02023040: .word 0x00020218 - - thumb_func_start FUN_02023044 -FUN_02023044: ; 0x02023044 - push {r3-r6, lr} - sub sp, #0x24 - add r1, sp, #0x0 - mov r2, #0x2 - add r5, r0, #0x0 - bl FUN_02022DFC - add r6, sp, #0x0 -_02023054: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02022E78 - add r4, r0, #0x0 - beq _02023054 - cmp r4, #0x1 - beq _02023054 - add r0, r5, #0x0 - add r1, sp, #0x0 - add r2, r4, #0x0 - bl FUN_02022F80 - add r0, r4, #0x0 - add sp, #0x24 - pop {r3-r6, pc} - - thumb_func_start FUN_02023074 -FUN_02023074: ; 0x02023074 - push {r4-r5, lr} - sub sp, #0x14 - add r4, r2, #0x0 - ldr r2, _020230A8 ; =0x00020464 - add r2, r0, r2 - mov r0, #0xc - mul r0, r1 - add r5, r2, r0 - add r0, sp, #0x0 - mov r1, #0xff - mov r2, #0x14 - bl MI_CpuFill8 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020228A4 - ldr r1, [r5, #0x8] - mov r2, #0x14 - add r0, r1, r0 - sub r0, #0x14 - add r1, sp, #0x0 - bl FUN_020235D0 - add sp, #0x14 - pop {r4-r5, pc} - .balign 4 -_020230A8: .word 0x00020464 - - thumb_func_start FUN_020230AC -FUN_020230AC: ; 0x020230AC - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _020230DC ; =0x020EE6DC - ldr r4, _020230E0 ; =0x020EE700 - ldr r0, [r0, #0x0] - cmp r5, r0 - blt _020230BE - bl ErrorHandling -_020230BE: - lsl r0, r5, #0x4 - add r0, r4, r0 - ldr r0, [r0, #0x8] - blx r0 - lsr r3, r0, #0x1f - lsl r2, r0, #0x1e - sub r2, r2, r3 - mov r1, #0x1e - ror r2, r1 - add r2, r3, r2 - mov r1, #0x4 - sub r1, r1, r2 - add r0, r0, r1 - pop {r3-r5, pc} - nop -_020230DC: .word 0x020EE6DC -_020230E0: .word 0x020EE700 - - thumb_func_start FUN_020230E4 -FUN_020230E4: ; 0x020230E4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, _02023158 ; =0x020EE6DC - ldr r4, _0202315C ; =0x020EE700 - ldr r0, [r0, #0x0] - mov r7, #0x0 - str r0, [sp, #0x0] - cmp r0, #0x24 - beq _020230FC - bl ErrorHandling -_020230FC: - ldr r0, [sp, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - ble _02023148 - sub r0, r0, #0x1 - str r0, [sp, #0x4] -_02023108: - ldr r0, [r4, #0x0] - cmp r6, r0 - beq _02023112 - bl ErrorHandling -_02023112: - ldr r0, [r4, #0x0] - str r0, [r5, #0x0] - add r0, r6, #0x0 - bl FUN_020230AC - str r0, [r5, #0x4] - str r7, [r5, #0x8] - mov r0, #0x0 - strh r0, [r5, #0xc] - ldr r0, [r4, #0x4] - strh r0, [r5, #0xe] - ldr r0, [r5, #0x4] - add r7, r7, r0 - ldr r0, [sp, #0x4] - cmp r6, r0 - beq _0202313A - ldr r1, [r4, #0x4] - ldr r0, [r4, #0x14] - cmp r1, r0 - beq _0202313C -_0202313A: - add r7, #0x14 -_0202313C: - ldr r0, [sp, #0x0] - add r6, r6, #0x1 - add r4, #0x10 - add r5, #0x10 - cmp r6, r0 - blt _02023108 -_02023148: - mov r0, #0x2 - lsl r0, r0, #0x10 - cmp r7, r0 - ble _02023154 - bl ErrorHandling -_02023154: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02023158: .word 0x020EE6DC -_0202315C: .word 0x020EE700 - - thumb_func_start FUN_02023160 -FUN_02023160: ; 0x02023160 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - mov r12, r0 - add r3, r0, #0x0 - add r6, r0, #0x0 - ldr r0, _020231EC ; =0x020EE6DC - ldr r4, [sp, #0x0] - ldr r7, [r0, #0x0] - add r5, r1, #0x0 -_02023178: - add r2, r4, #0x0 - strb r6, [r4, #0x0] - mov r0, #0x0 - str r0, [r4, #0x8] - add r2, #0x8 - b _02023190 -_02023184: - ldr r0, [r5, #0x4] - ldr r1, [r2, #0x0] - add r5, #0x10 - add r0, r1, r0 - str r0, [r2, #0x0] - add r3, r3, #0x1 -_02023190: - ldrh r0, [r5, #0xe] - cmp r6, r0 - bne _0202319A - cmp r3, r7 - blt _02023184 -_0202319A: - ldr r0, [r4, #0x8] - add r6, r6, #0x1 - add r0, #0x14 - str r0, [r4, #0x8] - ldr r0, [sp, #0x4] - strb r0, [r4, #0x1] - mov r0, r12 - str r0, [r4, #0x4] - ldr r1, [r4, #0x8] - ldr r0, _020231F0 ; =0x00000FFF - add r0, r1, r0 - lsr r0, r0, #0xc - strb r0, [r4, #0x2] - ldrb r1, [r4, #0x2] - ldr r0, [sp, #0x4] - add r0, r0, r1 - str r0, [sp, #0x4] - ldr r0, [r4, #0x8] - mov r1, r12 - add r0, r1, r0 - add r4, #0xc - mov r12, r0 - cmp r6, #0x2 - blt _02023178 - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0xd] - ldrb r0, [r0, #0xe] - add r1, r1, r0 - ldr r0, [sp, #0x4] - cmp r0, r1 - beq _020231DC - bl ErrorHandling -_020231DC: - ldr r0, [sp, #0x4] - cmp r0, #0x20 - ble _020231E6 - bl ErrorHandling -_020231E6: - add sp, #0x8 - pop {r3-r7, pc} - nop -_020231EC: .word 0x020EE6DC -_020231F0: .word 0x00000FFF - - thumb_func_start FUN_020231F4 -FUN_020231F4: ; 0x020231F4 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r0, #0x0 - mov r2, #0x2 - add r5, r1, #0x0 - mov r0, #0x0 - add r1, r6, #0x0 - lsl r2, r2, #0x10 - ldr r4, _02023240 ; =0x020EE700 - bl MIi_CpuClearFast - ldr r0, _02023244 ; =0x020EE6DC - mov r7, #0x0 - ldr r0, [r0, #0x0] - str r0, [sp, #0x0] - cmp r0, #0x0 - ble _0202323A -_02023216: - ldr r0, [r5, #0x8] - ldr r2, [r5, #0x4] - str r0, [sp, #0x4] - ldr r1, [sp, #0x4] - mov r0, #0x0 - add r1, r6, r1 - bl MIi_CpuClearFast - ldr r0, [sp, #0x4] - ldr r1, [r4, #0xc] - add r0, r6, r0 - blx r1 - ldr r0, [sp, #0x0] - add r7, r7, #0x1 - add r5, #0x10 - add r4, #0x10 - cmp r7, r0 - blt _02023216 -_0202323A: - add sp, #0x8 - pop {r3-r7, pc} - nop -_02023240: .word 0x020EE700 -_02023244: .word 0x020EE6DC - - thumb_func_start FUN_02023248 -FUN_02023248: ; 0x02023248 - push {r3-r5, lr} - ldr r5, _0202326C ; =0x20060623 - add r4, r1, r3 - str r5, [r1, r3] - ldr r5, _02023270 ; =0x000204A4 - ldr r5, [r0, r5] - add r0, #0x14 - add r5, r5, #0x1 - str r5, [r4, #0x4] - str r3, [r4, #0x8] - add r3, #0xe - strh r2, [r4, #0xc] - add r2, r3, #0x0 - bl MATH_CalcCRC16CCITT - strh r0, [r4, #0xe] - pop {r3-r5, pc} - nop -_0202326C: .word 0x20060623 -_02023270: .word 0x000204A4 - - thumb_func_start FUN_02023274 -FUN_02023274: ; 0x02023274 - push {r4-r6, lr} - ldr r6, [r1, r3] - ldr r5, _020232B0 ; =0x20060623 - add r4, r1, r3 - cmp r6, r5 - beq _02023284 - mov r0, #0x0 - pop {r4-r6, pc} -_02023284: - ldr r5, [r4, #0x8] - cmp r5, r3 - beq _0202328E - mov r0, #0x0 - pop {r4-r6, pc} -_0202328E: - ldrh r5, [r4, #0xc] - cmp r5, r2 - beq _02023298 - mov r0, #0x0 - pop {r4-r6, pc} -_02023298: - add r3, #0xe - add r0, #0x14 - add r2, r3, #0x0 - bl MATH_CalcCRC16CCITT - ldrh r1, [r4, #0xe] - cmp r1, r0 - bne _020232AC - mov r0, #0x1 - pop {r4-r6, pc} -_020232AC: - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_020232B0: .word 0x20060623 - - thumb_func_start FUN_020232B4 -FUN_020232B4: ; 0x020232B4 - add r0, r0, r1 - ldr r0, [r0, #0x4] - bx lr - .balign 4 - - thumb_func_start FUN_020232BC -FUN_020232BC: ; 0x020232BC - push {r3-r7, lr} - sub sp, #0x8 - add r7, r0, #0x0 - mov r0, #0x1 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02016444 - ldr r0, _020233FC ; =0x020EE6D8 - ldr r0, [r0, #0x0] - cmp r5, r0 - blt _020232D8 - bl ErrorHandling -_020232D8: - ldr r1, _02023400 ; =0x020EE6E0 - lsl r0, r5, #0x4 - add r4, r1, r0 - ldr r0, [r1, r0] - cmp r0, r5 - beq _020232E8 - bl ErrorHandling -_020232E8: - ldr r0, [r4, #0x8] - blx r0 - str r0, [sp, #0x4] - add r0, #0x10 - str r0, [sp, #0x4] - ldr r0, _02023404 ; =0x000204A0 - ldr r0, [r7, r0] - cmp r0, #0x1 - ldr r0, [r4, #0x8] - bne _0202336E - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023248 - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x4] - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235D0 - str r0, [sp, #0x0] - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023274 - cmp r0, #0x1 - beq _02023330 - bl ErrorHandling -_02023330: - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023248 - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x4] - add r0, #0x40 - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235D0 - ldr r1, [sp, #0x0] - orr r0, r1 - str r0, [sp, #0x0] - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023274 - cmp r0, #0x1 - beq _020233DE - bl ErrorHandling - b _020233DE -_0202336E: - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023248 - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x4] - add r0, #0x40 - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235D0 - str r0, [sp, #0x0] - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023274 - cmp r0, #0x1 - beq _020233A4 - bl ErrorHandling -_020233A4: - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023248 - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x4] - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235D0 - ldr r1, [sp, #0x0] - orr r0, r1 - str r0, [sp, #0x0] - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02023274 - cmp r0, #0x1 - beq _020233DE - bl ErrorHandling -_020233DE: - ldr r0, [sp, #0x0] - cmp r0, #0x1 - bne _020233F0 - mov r0, #0x1 - bl FUN_02016454 - add sp, #0x8 - mov r0, #0x2 - pop {r3-r7, pc} -_020233F0: - mov r0, #0x1 - bl FUN_02016454 - mov r0, #0x3 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020233FC: .word 0x020EE6D8 -_02023400: .word 0x020EE6E0 -_02023404: .word 0x000204A0 - - thumb_func_start FUN_02023408 -FUN_02023408: ; 0x02023408 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - ldr r0, _02023564 ; =0x020EE6D8 - add r7, r2, #0x0 - ldr r0, [r0, #0x0] - add r6, r1, #0x0 - str r3, [sp, #0x0] - cmp r7, r0 - blt _02023420 - bl ErrorHandling -_02023420: - ldr r1, _02023568 ; =0x020EE6E0 - lsl r0, r7, #0x4 - add r4, r1, r0 - ldr r0, [r1, r0] - cmp r0, r7 - beq _02023430 - bl ErrorHandling -_02023430: - ldr r0, [r4, #0x8] - blx r0 - str r0, [sp, #0x10] - add r0, #0x10 - str r0, [sp, #0x10] - ldr r1, [sp, #0x10] - add r0, r6, #0x0 - bl FUN_02016998 - add r6, r0, #0x0 - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x10] - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235EC - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02023274 - str r0, [sp, #0xc] - ldr r0, [r4, #0x8] - blx r0 - add r1, r0, #0x0 - add r0, r6, #0x0 - bl FUN_020232B4 - str r0, [sp, #0x8] - ldr r0, [r4, #0x4] - ldr r2, [sp, #0x10] - add r0, #0x40 - lsl r0, r0, #0xc - add r1, r6, #0x0 - bl FUN_020235EC - ldr r0, [r4, #0x8] - blx r0 - add r3, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02023274 - add r7, r0, #0x0 - ldr r0, [r4, #0x8] - blx r0 - add r1, r0, #0x0 - add r0, r6, #0x0 - bl FUN_020232B4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x0] - mov r1, #0x1 - str r1, [r0, #0x0] - ldr r0, [sp, #0xc] - cmp r0, #0x1 - bne _020234CC - cmp r7, #0x0 - bne _020234CC - ldr r0, _0202356C ; =0x000204A0 - mov r1, #0x0 - str r1, [r5, r0] - add r1, r0, #0x4 - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x10] - str r0, [r5, r1] - ldr r0, [r4, #0x4] - add r1, r6, #0x0 - lsl r0, r0, #0xc - bl FUN_020235EC - add sp, #0x14 - add r0, r6, #0x0 - pop {r4-r7, pc} -_020234CC: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - bne _020234F6 - cmp r7, #0x1 - bne _020234F6 - ldr r0, _0202356C ; =0x000204A0 - mov r1, #0x1 - str r1, [r5, r0] - add r1, r0, #0x4 - ldr r0, [sp, #0x4] - ldr r2, [sp, #0x10] - str r0, [r5, r1] - ldr r0, [r4, #0x4] - add r1, r6, #0x0 - add r0, #0x40 - lsl r0, r0, #0xc - bl FUN_020235EC - add sp, #0x14 - add r0, r6, #0x0 - pop {r4-r7, pc} -_020234F6: - ldr r0, [sp, #0xc] - cmp r0, #0x1 - bne _0202354C - cmp r7, #0x1 - bne _0202354C - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x4] - bl FUN_020229B8 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - ldr r0, _0202356C ; =0x000204A0 - beq _0202352E - mov r1, #0x0 - str r1, [r5, r0] - add r1, r0, #0x4 - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x10] - str r0, [r5, r1] - ldr r0, [r4, #0x4] - add r1, r6, #0x0 - lsl r0, r0, #0xc - bl FUN_020235EC - add sp, #0x14 - add r0, r6, #0x0 - pop {r4-r7, pc} -_0202352E: - mov r1, #0x1 - str r1, [r5, r0] - add r1, r0, #0x4 - ldr r0, [sp, #0x4] - ldr r2, [sp, #0x10] - str r0, [r5, r1] - ldr r0, [r4, #0x4] - add r1, r6, #0x0 - add r0, #0x40 - lsl r0, r0, #0xc - bl FUN_020235EC - add sp, #0x14 - add r0, r6, #0x0 - pop {r4-r7, pc} -_0202354C: - ldr r0, [sp, #0x0] - mov r1, #0x2 - str r1, [r0, #0x0] - ldr r0, _0202356C ; =0x000204A0 - mov r1, #0x0 - str r1, [r5, r0] - add r0, r0, #0x4 - str r1, [r5, r0] - add r0, r6, #0x0 - add sp, #0x14 - pop {r4-r7, pc} - nop -_02023564: .word 0x020EE6D8 -_02023568: .word 0x020EE6E0 -_0202356C: .word 0x000204A0 - - thumb_func_start FUN_02023570 -FUN_02023570: ; 0x02023570 - push {r3-r5, lr} - bl OS_GetLockID - add r4, r0, #0x0 - mov r0, #0x2 - mvn r0, r0 - cmp r4, r0 - bne _02023584 - bl ErrorHandling -_02023584: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl CARD_LockBackup - ldr r0, _020235C8 ; =0x00001302 - bl CARD_IdentifyBackup - cmp r0, #0x0 - beq _0202359A - ldr r5, _020235C8 ; =0x00001302 - b _020235AA -_0202359A: - ldr r0, _020235CC ; =0x00001202 - bl CARD_IdentifyBackup - cmp r0, #0x0 - beq _020235A8 - ldr r5, _020235CC ; =0x00001202 - b _020235AA -_020235A8: - mov r5, #0x0 -_020235AA: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl CARD_UnlockBackup - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl OS_ReleaseLockID - cmp r5, #0x0 - beq _020235C2 - mov r0, #0x1 - pop {r3-r5, pc} -_020235C2: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_020235C8: .word 0x00001302 -_020235CC: .word 0x00001202 - - thumb_func_start FUN_020235D0 -FUN_020235D0: ; 0x020235D0 - push {r3-r5, lr} - bl FUN_02023668 - add r5, r0, #0x0 - add r4, sp, #0x0 -_020235DA: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020236E4 - cmp r0, #0x0 - beq _020235DA - ldr r0, [sp, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020235EC -FUN_020235EC: ; 0x020235EC - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - bl OS_GetLockID - add r4, r0, #0x0 - mov r0, #0x2 - mvn r0, r0 - cmp r4, r0 - bne _02023608 - bl ErrorHandling -_02023608: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl CARD_LockBackup - mov r3, #0x0 - str r3, [sp, #0x0] - mov r1, #0x1 - str r1, [sp, #0x4] - mov r0, #0x6 - str r0, [sp, #0x8] - str r1, [sp, #0xc] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - str r3, [sp, #0x10] - bl CARDi_RequestStreamCommand - bl CARD_WaitBackupAsync - add r5, r0, #0x0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl CARD_UnlockBackup - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl OS_ReleaseLockID - cmp r5, #0x0 - bne _02023652 - ldr r0, _02023658 ; =0x021C59C8 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - mov r0, #0x1 - bl FUN_02089D90 -_02023652: - add r0, r5, #0x0 - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02023658: .word 0x021C59C8 - - thumb_func_start FUN_0202365C -FUN_0202365C: ; 0x0202365C - ldr r0, _02023664 ; =0x021C59C8 - mov r1, #0x1 - str r1, [r0, #0x4] - bx lr - .balign 4 -_02023664: .word 0x021C59C8 - - thumb_func_start FUN_02023668 -FUN_02023668: ; 0x02023668 - push {r3-r7, lr} - sub sp, #0x18 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - bl OS_GetLockID - add r4, r0, #0x0 - mov r0, #0x2 - mvn r0, r0 - cmp r4, r0 - bne _02023684 - bl ErrorHandling -_02023684: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl CARD_LockBackup - mov r0, #0x0 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - mov r1, #0x6 - str r1, [sp, #0x8] - mov r1, #0x1 - str r1, [sp, #0xc] - add r1, sp, #0x14 - mov r2, #0x4 - add r3, r0, #0x0 - str r0, [sp, #0x10] - bl CARDi_RequestStreamCommand - cmp r0, #0x0 - bne _020236B2 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_02023740 -_020236B2: - ldr r0, _020236DC ; =0x021C59C8 - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - mov r0, #0x7 - str r0, [sp, #0x8] - mov r0, #0xa - str r0, [sp, #0xc] - mov r0, #0x2 - str r0, [sp, #0x10] - ldr r3, _020236E0 ; =FUN_0202365C - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r7, #0x0 - bl CARDi_RequestStreamCommand - add r0, r4, #0x0 - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 -_020236DC: .word 0x021C59C8 -_020236E0: .word FUN_0202365C - - thumb_func_start FUN_020236E4 -FUN_020236E4: ; 0x020236E4 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0202373C ; =0x021C59C8 - add r4, r1, #0x0 - ldr r0, [r0, #0x4] - cmp r0, #0x1 - bne _02023738 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl CARD_UnlockBackup - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl OS_ReleaseLockID - bl CARD_GetResultCode - cmp r0, #0x0 - beq _02023714 - cmp r0, #0x4 - beq _0202371E - cmp r0, #0x6 - beq _02023728 - b _0202371A -_02023714: - mov r0, #0x1 - str r0, [r4, #0x0] - b _02023734 -_0202371A: - bl ErrorHandling -_0202371E: - mov r1, #0x0 - add r0, r5, #0x0 - str r1, [r4, #0x0] - bl FUN_02023740 -_02023728: - mov r0, #0x0 - str r0, [r4, #0x0] - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_02023740 -_02023734: - mov r0, #0x1 - pop {r3-r5, pc} -_02023738: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202373C: .word 0x021C59C8 - - thumb_func_start FUN_02023740 -FUN_02023740: ; 0x02023740 - push {r3-r5, lr} - add r5, r0, #0x0 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - add r4, r1, #0x0 - bl CARD_UnlockBackup - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl OS_ReleaseLockID - ldr r0, _02023768 ; =0x021C59C8 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - mov r0, #0x1 - add r1, r4, #0x0 - bl FUN_0208A0B8 - pop {r3-r5, pc} - .balign 4 -_02023768: .word 0x021C59C8 - - thumb_func_start FUN_0202376C -FUN_0202376C: ; 0x0202376C - mov r0, #0x5c - bx lr - - thumb_func_start FUN_02023770 -FUN_02023770: ; 0x02023770 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0x5c - bl MIi_CpuClearFast - add r4, #0x10 - add r0, r4, #0x0 - bl FUN_02023840 - pop {r4, pc} - - thumb_func_start FUN_02023788 -FUN_02023788: ; 0x02023788 - ldr r3, _02023790 ; =FUN_02022610 - mov r1, #0x0 - bx r3 - nop -_02023790: .word FUN_02022610 - - thumb_func_start FUN_02023794 -FUN_02023794: ; 0x02023794 - push {r3, lr} - bl FUN_02023788 - add r0, #0x10 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020237A0 -FUN_020237A0: ; 0x020237A0 - push {r4, lr} - sub sp, #0x50 - add r4, r0, #0x0 - bl OS_GetOwnerRtcOffset - str r0, [r4, #0x0] - add r0, r4, #0x0 - add r0, #0x8 - str r1, [r4, #0x4] - bl OS_GetMacAddress - add r0, sp, #0x0 - bl OS_GetOwnerInfo - add r0, sp, #0x0 - ldrb r1, [r0, #0x2] - strb r1, [r4, #0xe] - ldrb r0, [r0, #0x3] - strb r0, [r4, #0xf] - add sp, #0x50 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020237CC -FUN_020237CC: ; 0x020237CC - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl OS_GetMacAddress - mov r2, #0x0 - add r3, sp, #0x0 -_020237DC: - add r0, r4, r2 - ldrb r1, [r3, #0x0] - ldrb r0, [r0, #0x8] - cmp r1, r0 - beq _020237EC - add sp, #0x8 - mov r0, #0x0 - pop {r4, pc} -_020237EC: - add r2, r2, #0x1 - add r3, r3, #0x1 - cmp r2, #0x6 - blt _020237DC - mov r0, #0x1 - add sp, #0x8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020237FC -FUN_020237FC: ; 0x020237FC - push {r4, lr} - add r4, r0, #0x0 - bl OS_GetOwnerRtcOffset - ldr r3, [r4, #0x0] - ldr r2, [r4, #0x4] - eor r0, r3 - eor r1, r2 - orr r0, r1 - bne _02023814 - mov r0, #0x1 - pop {r4, pc} -_02023814: - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02023818 -FUN_02023818: ; 0x02023818 - ldrb r0, [r0, #0xe] - bx lr - - thumb_func_start FUN_0202381C -FUN_0202381C: ; 0x0202381C - ldrb r0, [r0, #0xf] - bx lr - - thumb_func_start FUN_02023820 -FUN_02023820: ; 0x02023820 - add r0, #0x48 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02023828 -FUN_02023828: ; 0x02023828 - add r0, #0x48 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02023830 -FUN_02023830: ; 0x02023830 - ldr r0, [r0, #0x4c] - bx lr - - thumb_func_start FUN_02023834 -FUN_02023834: ; 0x02023834 - ldr r2, [r0, #0x4c] - cmp r2, #0x0 - bne _0202383C - str r1, [r0, #0x4c] -_0202383C: - bx lr - .balign 4 - - thumb_func_start FUN_02023840 -FUN_02023840: ; 0x02023840 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1 - add r1, r4, #0x0 - str r0, [r4, #0x0] - add r0, r4, #0x4 - add r1, #0x14 - bl FUN_0201265C - add r0, r4, #0x4 - bl RTC_ConvertDateToDay - add r1, r4, #0x0 - str r0, [r4, #0x20] - add r0, r4, #0x4 - add r1, #0x14 - bl RTC_ConvertDateTimeToSecond - str r0, [r4, #0x24] - str r1, [r4, #0x28] - mov r0, #0x0 - str r0, [r4, #0x2c] - str r0, [r4, #0x30] - str r0, [r4, #0x34] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02023874 -FUN_02023874: ; 0x02023874 - ldr r0, [r0, #0x34] - cmp r0, #0x0 - beq _0202387E - mov r0, #0x1 - bx lr -_0202387E: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02023884 -FUN_02023884: ; 0x02023884 - mov r2, #0x5a - ldr r3, [r0, #0x34] - lsl r2, r2, #0x4 - cmp r3, r2 - bls _02023890 - str r2, [r0, #0x34] -_02023890: - ldr r2, [r0, #0x34] - cmp r2, r1 - bhs _0202389C - mov r1, #0x0 - str r1, [r0, #0x34] - bx lr -_0202389C: - sub r1, r2, r1 - str r1, [r0, #0x34] - bx lr - .balign 4 - - thumb_func_start FUN_020238A4 -FUN_020238A4: ; 0x020238A4 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x5a - lsl r0, r0, #0x4 - add r1, r4, #0x0 - str r0, [r4, #0x34] - add r0, r4, #0x4 - add r1, #0x14 - bl FUN_0201265C - add r0, r4, #0x4 - bl RTC_ConvertDateToDay - str r0, [r4, #0x20] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020238C4 -FUN_020238C4: ; 0x020238C4 - mov r0, #0x2c - bx lr - - thumb_func_start FUN_020238C8 -FUN_020238C8: ; 0x020238C8 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0x2c - bl MIi_CpuClearFast - add r0, r4, #0x0 - bl FUN_02024F50 - add r0, r4, #0x4 - bl FUN_02023948 - add r0, r4, #0x0 - add r0, #0x24 - bl FUN_02028910 - add r4, #0x26 - add r0, r4, #0x0 - bl FUN_02029E48 - pop {r4, pc} - - thumb_func_start FUN_020238F4 -FUN_020238F4: ; 0x020238F4 - push {r3, lr} - mov r1, #0x1 - bl FUN_02022610 - add r0, r0, #0x4 - pop {r3, pc} - - thumb_func_start LoadPlayerDataAddress -LoadPlayerDataAddress: ; 0x02023900 - ldr r3, _02023908 ; =FUN_02022610 - mov r1, #0x1 - bx r3 - nop -_02023908: .word FUN_02022610 - - thumb_func_start FUN_0202390C -FUN_0202390C: ; 0x0202390C - push {r3, lr} - mov r1, #0x1 - bl FUN_02022610 - add r0, #0x24 - pop {r3, pc} - - thumb_func_start FUN_02023918 -FUN_02023918: ; 0x02023918 - push {r3, lr} - mov r1, #0x1 - bl FUN_02022610 - add r0, #0x26 - pop {r3, pc} - - thumb_func_start FUN_02023924 -FUN_02023924: ; 0x02023924 - mov r0, #0x20 - bx lr - - thumb_func_start FUN_02023928 -FUN_02023928: ; 0x02023928 - push {r4, lr} - mov r1, #0x20 - bl FUN_02016998 - add r4, r0, #0x0 - bl FUN_02023948 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202393C -FUN_0202393C: ; 0x0202393C - ldr r3, _02023944 ; =MI_CpuCopy8 - mov r2, #0x20 - bx r3 - nop -_02023944: .word MI_CpuCopy8 - - thumb_func_start FUN_02023948 -FUN_02023948: ; 0x02023948 - push {r4, lr} - mov r1, #0x0 - mov r2, #0x20 - add r4, r0, #0x0 - bl Call_FillMemWithValue - mov r0, #0x2 - strb r0, [r4, #0x19] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202395C -FUN_0202395C: ; 0x0202395C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl StringLength - cmp r0, #0x8 - blt _02023970 - bl ErrorHandling -_02023970: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl StringCopy - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202397C -FUN_0202397C: ; 0x0202397C - ldr r3, _02023988 ; =FUN_02021EF0 - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - mov r2, #0x8 - bx r3 - .balign 4 -_02023988: .word FUN_02021EF0 - - thumb_func_start FUN_0202398C -FUN_0202398C: ; 0x0202398C - bx lr - .balign 4 - - thumb_func_start FUN_02023990 -FUN_02023990: ; 0x02023990 - ldr r3, _0202399C ; =FUN_02021E28 - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bx r3 - nop -_0202399C: .word FUN_02021E28 - - thumb_func_start FUN_020239A0 -FUN_020239A0: ; 0x020239A0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x8 - bl FUN_020219F4 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02023990 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020239B8 -FUN_020239B8: ; 0x020239B8 - str r1, [r0, #0x10] - bx lr - - thumb_func_start FUN_020239BC -FUN_020239BC: ; 0x020239BC - ldr r0, [r0, #0x10] - bx lr - - thumb_func_start FUN_020239C0 -FUN_020239C0: ; 0x020239C0 - ldr r0, [r0, #0x10] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - - thumb_func_start FUN_020239C8 -FUN_020239C8: ; 0x020239C8 - strb r1, [r0, #0x18] - bx lr - - thumb_func_start FUN_020239CC -FUN_020239CC: ; 0x020239CC - ldrb r0, [r0, #0x18] - bx lr - - thumb_func_start FUN_020239D0 -FUN_020239D0: ; 0x020239D0 - ldrb r3, [r0, #0x1a] - mov r0, #0x1 - add r2, r0, #0x0 - lsl r2, r1 - add r1, r3, #0x0 - tst r1, r2 - bne _020239E0 - mov r0, #0x0 -_020239E0: - bx lr - .balign 4 - - thumb_func_start FUN_020239E4 -FUN_020239E4: ; 0x020239E4 - ldrb r3, [r0, #0x1a] - mov r2, #0x1 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strb r1, [r0, #0x1a] - bx lr - .balign 4 - - thumb_func_start FUN_020239F4 -FUN_020239F4: ; 0x020239F4 - ldrb r3, [r0, #0x1a] - mov r2, #0x0 - cmp r3, #0x0 - beq _02023A0A - mov r0, #0x1 -_020239FE: - add r1, r3, #0x0 - tst r1, r0 - beq _02023A06 - add r2, r2, #0x1 -_02023A06: - lsr r3, r3, #0x1 - bne _020239FE -_02023A0A: - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02023A10 -FUN_02023A10: ; 0x02023A10 - ldr r0, [r0, #0x14] - bx lr - - thumb_func_start FUN_02023A14 -FUN_02023A14: ; 0x02023A14 - ldr r2, _02023A24 ; =0x000F423F - cmp r1, r2 - bls _02023A1C - add r1, r2, #0x0 -_02023A1C: - str r1, [r0, #0x14] - add r0, r1, #0x0 - bx lr - nop -_02023A24: .word 0x000F423F - - thumb_func_start FUN_02023A28 -FUN_02023A28: ; 0x02023A28 - ldrb r0, [r0, #0x1b] - bx lr - - thumb_func_start FUN_02023A2C -FUN_02023A2C: ; 0x02023A2C - strb r1, [r0, #0x1b] - bx lr - - thumb_func_start FUN_02023A30 -FUN_02023A30: ; 0x02023A30 - ldr r2, _02023A50 ; =0x000F423F - cmp r1, r2 - bls _02023A3A - str r2, [r0, #0x14] - b _02023A40 -_02023A3A: - ldr r2, [r0, #0x14] - add r1, r2, r1 - str r1, [r0, #0x14] -_02023A40: - ldr r2, [r0, #0x14] - ldr r1, _02023A50 ; =0x000F423F - cmp r2, r1 - bls _02023A4A - str r1, [r0, #0x14] -_02023A4A: - ldr r0, [r0, #0x14] - bx lr - nop -_02023A50: .word 0x000F423F - - thumb_func_start FUN_02023A54 -FUN_02023A54: ; 0x02023A54 - ldr r2, [r0, #0x14] - cmp r2, r1 - bhs _02023A5E - mov r1, #0x0 - b _02023A60 -_02023A5E: - sub r1, r2, r1 -_02023A60: - str r1, [r0, #0x14] - ldr r0, [r0, #0x14] - bx lr - .balign 4 - - thumb_func_start FUN_02023A68 -FUN_02023A68: ; 0x02023A68 - ldrb r0, [r0, #0x1c] - bx lr - - thumb_func_start FUN_02023A6C -FUN_02023A6C: ; 0x02023A6C - strb r1, [r0, #0x1c] - bx lr - - thumb_func_start FUN_02023A70 -FUN_02023A70: ; 0x02023A70 - ldrb r0, [r0, #0x19] - bx lr - - thumb_func_start FUN_02023A74 -FUN_02023A74: ; 0x02023A74 - strb r1, [r0, #0x19] - bx lr - - thumb_func_start FUN_02023A78 -FUN_02023A78: ; 0x02023A78 - ldrb r2, [r0, #0x1d] - mov r1, #0x1 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strb r1, [r0, #0x1d] - bx lr - .balign 4 - - thumb_func_start FUN_02023A88 -FUN_02023A88: ; 0x02023A88 - ldrb r0, [r0, #0x1d] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_02023A90 -FUN_02023A90: ; 0x02023A90 - ldrb r2, [r0, #0x1d] - mov r1, #0x2 - orr r1, r2 - strb r1, [r0, #0x1d] - bx lr - .balign 4 - - thumb_func_start FUN_02023A9C -FUN_02023A9C: ; 0x02023A9C - ldrb r0, [r0, #0x1d] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_02023AA4 -FUN_02023AA4: ; 0x02023AA4 - push {r3-r5, lr} - mov r2, #0x7 - add r5, r0, #0x0 - add r4, r1, #0x0 - bl StringNotEqualN - cmp r0, #0x0 - bne _02023AC0 - ldr r1, [r5, #0x10] - ldr r0, [r4, #0x10] - cmp r1, r0 - bne _02023AC0 - mov r0, #0x1 - pop {r3-r5, pc} -_02023AC0: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02023AC4 -FUN_02023AC4: ; 0x02023AC4 - mov r0, #0x20 - bx lr - - thumb_func_start FUN_02023AC8 -FUN_02023AC8: ; 0x02023AC8 - mov r0, #0x20 - bx lr - - thumb_func_start FUN_02023ACC -FUN_02023ACC: ; 0x02023ACC - ldr r3, _02023AD4 ; =MI_CpuCopy8 - mov r2, #0x20 - bx r3 - nop -_02023AD4: .word MI_CpuCopy8 - - thumb_func_start FUN_02023AD8 -FUN_02023AD8: ; 0x02023AD8 - ldr r3, _02023AE0 ; =Call_FillMemWithValue - mov r1, #0x0 - mov r2, #0x20 - bx r3 - .balign 4 -_02023AE0: .word Call_FillMemWithValue - - thumb_func_start FUN_02023AE4 -FUN_02023AE4: ; 0x02023AE4 - ldr r3, _02023AF0 ; =FUN_02021E8C - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - mov r2, #0xc - bx r3 - .balign 4 -_02023AF0: .word FUN_02021E8C - - thumb_func_start FUN_02023AF4 -FUN_02023AF4: ; 0x02023AF4 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x18 - bl FUN_020219F4 - add r1, r5, #0x0 - add r4, r0, #0x0 - bl FUN_02021E28 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02023B0C -FUN_02023B0C: ; 0x02023B0C - mov r2, #0x0 - cmp r1, #0xc - bhi _02023B9E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02023B1E: ; jump table (using 16-bit offset) - .short _02023B9E - _02023B1E - 2; case 0 - .short _02023B38 - _02023B1E - 2; case 1 - .short _02023B3C - _02023B1E - 2; case 2 - .short _02023B40 - _02023B1E - 2; case 3 - .short _02023B44 - _02023B1E - 2; case 4 - .short _02023B4C - _02023B1E - 2; case 5 - .short _02023B52 - _02023B1E - 2; case 6 - .short _02023B66 - _02023B1E - 2; case 7 - .short _02023B6C - _02023B1E - 2; case 8 - .short _02023B80 - _02023B1E - 2; case 9 - .short _02023B88 - _02023B1E - 2; case 10 - .short _02023B90 - _02023B1E - 2; case 11 - .short _02023B98 - _02023B1E - 2; case 12 -_02023B38: - ldrb r2, [r0, #0x1a] - b _02023B9E -_02023B3C: - ldrb r2, [r0, #0x1b] - b _02023B9E -_02023B40: - ldrh r2, [r0, #0x18] - b _02023B9E -_02023B44: - ldrb r0, [r0, #0x1e] - lsl r0, r0, #0x1f - lsr r2, r0, #0x1f - b _02023B9E -_02023B4C: - mov r1, #0x1c - ldrsb r2, [r0, r1] - b _02023B9E -_02023B52: - mov r1, #0x1c - ldrsb r0, [r0, r1] - cmp r0, #0x0 - ble _02023B5E - mov r2, #0x1 - b _02023B9E -_02023B5E: - bge _02023B9E - add r2, r1, #0x0 - sub r2, #0x1d - b _02023B9E -_02023B66: - mov r1, #0x1d - ldrsb r2, [r0, r1] - b _02023B9E -_02023B6C: - mov r1, #0x1d - ldrsb r0, [r0, r1] - cmp r0, #0x0 - ble _02023B78 - mov r2, #0x1 - b _02023B9E -_02023B78: - bge _02023B9E - add r2, r1, #0x0 - sub r2, #0x1e - b _02023B9E -_02023B80: - ldrb r0, [r0, #0x1e] - lsl r0, r0, #0x1c - lsr r2, r0, #0x1f - b _02023B9E -_02023B88: - ldrb r0, [r0, #0x1e] - lsl r0, r0, #0x1d - lsr r2, r0, #0x1f - b _02023B9E -_02023B90: - ldrb r0, [r0, #0x1e] - lsl r0, r0, #0x1e - lsr r2, r0, #0x1f - b _02023B9E -_02023B98: - ldrb r0, [r0, #0x1e] - lsl r0, r0, #0x1b - lsr r2, r0, #0x1f -_02023B9E: - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02023BA4 -FUN_02023BA4: ; 0x02023BA4 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x1 - blt _02023BB2 - bl ErrorHandling -_02023BB2: - add r0, r4, #0x0 - mov r1, #0xd - bl FUN_02022610 - add r4, r0, #0x0 - lsl r5, r5, #0x5 - add r0, r4, r5 - mov r1, #0x1 - bl FUN_02023B0C - cmp r0, #0x0 - beq _02023BCE - add r0, r4, r5 - pop {r3-r5, pc} -_02023BCE: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02023BD4 -FUN_02023BD4: ; 0x02023BD4 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0xd - bl FUN_02022610 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02023ACC - pop {r4, pc} - - thumb_func_start FUN_02023BE8 -FUN_02023BE8: ; 0x02023BE8 - push {r3, lr} - cmp r1, #0x5 - bhs _02023BF6 - ldr r2, _02023C00 ; =0x02105BD4 - lsl r0, r1, #0x5 - add r0, r2, r0 - pop {r3, pc} -_02023BF6: - mov r1, #0xd - bl FUN_02022610 - pop {r3, pc} - nop -_02023C00: .word 0x02105BD4 - - thumb_func_start FUN_02023C04 -FUN_02023C04: ; 0x02023C04 - push {r4-r6, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - cmp r5, #0x5 - bhs _02023C2C - ldr r2, _02023C3C ; =0x0000013A - mov r0, #0x0 - mov r1, #0x1a - bl FUN_0200A86C - add r5, #0x38 - add r6, r0, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0200A8E0 - add r0, r6, #0x0 - bl FUN_0200A8B8 - pop {r4-r6, pc} -_02023C2C: - mov r1, #0x0 - bl FUN_02023BA4 - add r1, r4, #0x0 - bl FUN_02023AE4 - pop {r4-r6, pc} - nop -_02023C3C: .word 0x0000013A - - thumb_func_start FUN_02023C40 -FUN_02023C40: ; 0x02023C40 - mov r0, #0x1e - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02023C48 -FUN_02023C48: ; 0x02023C48 - push {r4, lr} - mov r2, #0x1e - add r4, r0, #0x0 - mov r1, #0x0 - lsl r2, r2, #0x4 - bl Call_FillMemWithValue - add r0, r4, #0x0 - bl FUN_020669A0 - add r0, r4, #0x0 - add r0, #0xec - bl FUN_020669A0 - mov r0, #0x76 - mov r1, #0x0 - lsl r0, r0, #0x2 - str r1, [r4, r0] - add r0, r0, #0x4 - strb r1, [r4, r0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02023C74 -FUN_02023C74: ; 0x02023C74 - mov r2, #0xec - mul r2, r1 - add r0, r0, r2 - bx lr - - thumb_func_start FUN_02023C7C -FUN_02023C7C: ; 0x02023C7C - bx lr - .balign 4 - - thumb_func_start FUN_02023C80 -FUN_02023C80: ; 0x02023C80 - add r0, #0x88 - bx lr - - thumb_func_start FUN_02023C84 -FUN_02023C84: ; 0x02023C84 - add r0, #0xe8 - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02023C8C -FUN_02023C8C: ; 0x02023C8C - bx lr - .balign 4 - - thumb_func_start FUN_02023C90 -FUN_02023C90: ; 0x02023C90 - mov r1, #0x76 - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - bx lr - - thumb_func_start FUN_02023C98 -FUN_02023C98: ; 0x02023C98 - mov r1, #0x77 - lsl r1, r1, #0x2 - ldrb r0, [r0, r1] - bx lr - - thumb_func_start FUN_02023CA0 -FUN_02023CA0: ; 0x02023CA0 - add r0, #0xe8 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02023CA8 -FUN_02023CA8: ; 0x02023CA8 - add r2, r0, #0x0 - add r2, #0xe8 - ldr r2, [r2, #0x0] - add r0, #0xe8 - add r1, r2, r1 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02023CB8 -FUN_02023CB8: ; 0x02023CB8 - mov r2, #0x76 - lsl r2, r2, #0x2 - str r1, [r0, r2] - bx lr - - thumb_func_start FUN_02023CC0 -FUN_02023CC0: ; 0x02023CC0 - mov r2, #0x77 - lsl r2, r2, #0x2 - strb r1, [r0, r2] - bx lr - - thumb_func_start FUN_02023CC8 -FUN_02023CC8: ; 0x02023CC8 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r1, #0xc - mov r2, #0x0 - bl FUN_020672BC - add r5, #0xec - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xc - mov r2, #0x0 - bl FUN_020672BC - cmp r4, r0 - beq _02023CEA - mov r0, #0x1 - pop {r3-r5, pc} -_02023CEA: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02023CF0 -FUN_02023CF0: ; 0x02023CF0 - push {r3-r4} - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r2, #0x1d -_02023CF8: - ldmia r3!, {r0-r1} - stmia r4!, {r0-r1} - sub r2, r2, #0x1 - bne _02023CF8 - ldr r0, [r3, #0x0] - str r0, [r4, #0x0] - pop {r3-r4} - bx lr - - thumb_func_start FUN_02023D08 -FUN_02023D08: ; 0x02023D08 - push {r3-r4} - mov r1, #0x0 - add r2, r0, #0x0 - add r4, r1, #0x0 -_02023D10: - add r1, r1, #0x1 - strh r4, [r2, #0x38] - add r2, r2, #0x2 - cmp r1, #0x8 - blt _02023D10 - add r3, r0, #0x0 - mov r2, #0x0 -_02023D1E: - add r1, r3, #0x0 - add r1, #0x48 - add r4, r4, #0x1 - add r3, r3, #0x2 - strh r2, [r1, #0x0] - cmp r4, #0xb - blt _02023D1E - ldr r1, _02023D38 ; =0x0000FFFF - strh r1, [r0, #0x38] - add r0, #0x48 - strh r1, [r0, #0x0] - pop {r3-r4} - bx lr - .balign 4 -_02023D38: .word 0x0000FFFF - - thumb_func_start FUN_02023D3C -FUN_02023D3C: ; 0x02023D3C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020669A0 - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0xe8 - add r4, #0x88 - str r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_02023D08 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02023D58 -FUN_02023D58: ; 0x02023D58 - ldr r3, _02023D60 ; =FUN_02022610 - mov r1, #0x8 - bx r3 - nop -_02023D60: .word FUN_02022610 - - thumb_func_start FUN_02023D64 -FUN_02023D64: ; 0x02023D64 - mov r0, #0x4f - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_02023D6C -FUN_02023D6C: ; 0x02023D6C - push {r4, lr} - mov r1, #0x4f - lsl r1, r1, #0x2 - bl FUN_02016998 - add r4, r0, #0x0 - bl FUN_02024378 - add r0, r4, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02023D80 -FUN_02023D80: ; 0x02023D80 - ldr r3, _02023D88 ; =MI_CpuCopy8 - mov r2, #0x4f - lsl r2, r2, #0x2 - bx r3 - .balign 4 -_02023D88: .word MI_CpuCopy8 - - thumb_func_start FUN_02023D8C -FUN_02023D8C: ; 0x02023D8C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _02023DE8 ; =0x000001A6 - add r4, r1, #0x0 - cmp r4, r0 - beq _02023DA2 - add r0, r0, #0x1 - cmp r4, r0 - beq _02023DA2 - bl ErrorHandling -_02023DA2: - lsl r1, r4, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x0 - bne _02023DB4 - mov r0, #0x0 - pop {r3-r5, pc} -_02023DB4: - ldr r0, _02023DE8 ; =0x000001A6 - cmp r4, r0 - bne _02023DBE - sub r0, #0x9e - b _02023DC0 -_02023DBE: - sub r0, #0x9d -_02023DC0: - add r0, r5, r0 - ldrb r1, [r0, #0x0] - mov r2, #0x1 - add r0, r1, #0x0 - tst r0, r2 - bne _02023DCE - mov r2, #0x0 -_02023DCE: - mov r0, #0x2 - tst r0, r1 - beq _02023DD8 - mov r0, #0x1 - b _02023DDA -_02023DD8: - mov r0, #0x0 -_02023DDA: - cmp r2, r0 - bne _02023DE2 - mov r0, #0x1 - pop {r3-r5, pc} -_02023DE2: - mov r0, #0x2 - pop {r3-r5, pc} - nop -_02023DE8: .word 0x000001A6 - - thumb_func_start FUN_02023DEC -FUN_02023DEC: ; 0x02023DEC - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _02023E6C ; =0x000001A6 - add r6, r1, #0x0 - add r5, r2, #0x0 - cmp r6, r0 - beq _02023E04 - add r0, r0, #0x1 - cmp r6, r0 - beq _02023E04 - bl ErrorHandling -_02023E04: - lsl r1, r6, #0x10 - add r0, r7, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x0 - bne _02023E16 - mov r0, #0x0 - pop {r3-r7, pc} -_02023E16: - ldr r0, _02023E6C ; =0x000001A6 - cmp r6, r0 - bne _02023E20 - sub r0, #0x9e - b _02023E22 -_02023E20: - sub r0, #0x9d -_02023E22: - add r4, r7, r0 - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_02023D8C - mov r6, #0x0 - cmp r0, #0x0 - bls _02023E66 - mov r1, #0x1 -_02023E34: - add r2, r6, #0x1 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - sub r2, r2, #0x1 - lsl r2, r2, #0x10 - lsr r3, r2, #0x10 - add r7, r3, #0x0 - mov r2, #0x7 - asr r3, r3, #0x3 - and r7, r2 - add r2, r1, #0x0 - ldrb r3, [r4, r3] - lsl r2, r7 - tst r2, r3 - beq _02023E56 - add r2, r1, #0x0 - b _02023E58 -_02023E56: - mov r2, #0x0 -_02023E58: - cmp r2, r5 - bne _02023E60 - mov r0, #0x1 - pop {r3-r7, pc} -_02023E60: - add r6, r6, #0x1 - cmp r6, r0 - blo _02023E34 -_02023E66: - mov r0, #0x0 - pop {r3-r7, pc} - nop -_02023E6C: .word 0x000001A6 - - thumb_func_start FUN_02023E70 -FUN_02023E70: ; 0x02023E70 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, _02023F28 ; =0x000001A6 - add r5, r1, #0x0 - add r7, r2, #0x0 - cmp r5, r0 - beq _02023E88 - add r0, r0, #0x1 - cmp r5, r0 - beq _02023E88 - bl ErrorHandling -_02023E88: - lsl r2, r7, #0x18 - add r0, r6, #0x0 - add r1, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02023DEC - cmp r0, #0x0 - bne _02023F26 - ldr r0, _02023F28 ; =0x000001A6 - cmp r5, r0 - bne _02023EA2 - sub r0, #0x9e - b _02023EA4 -_02023EA2: - sub r0, #0x9d -_02023EA4: - add r4, r6, r0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02023D8C - add r5, r0, #0x0 - cmp r5, #0x2 - bge _02023F26 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x2 - blo _02023EC6 - bl ErrorHandling -_02023EC6: - sub r0, r6, #0x1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - add r2, r1, #0x0 - mov r0, #0x7 - and r2, r0 - asr r1, r1, #0x3 - mov r3, #0x1 - lsl r3, r2 - ldrb r0, [r4, r1] - mvn r3, r3 - and r0, r3 - strb r0, [r4, r1] - lsl r0, r7, #0x18 - lsr r6, r0, #0x18 - add r0, r6, #0x0 - ldrb r3, [r4, r1] - lsl r0, r2 - orr r0, r3 - strb r0, [r4, r1] - cmp r5, #0x0 - bne _02023F26 - add r0, r5, #0x2 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r6, #0x2 - blo _02023F00 - bl ErrorHandling -_02023F00: - sub r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0x7 - add r1, r2, #0x0 - and r1, r0 - asr r0, r2, #0x3 - mov r2, #0x1 - lsl r2, r1 - ldrb r3, [r4, r0] - mvn r2, r2 - and r2, r3 - strb r2, [r4, r0] - add r2, r6, #0x0 - ldrb r3, [r4, r0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strb r1, [r4, r0] -_02023F26: - pop {r3-r7, pc} - .balign 4 -_02023F28: .word 0x000001A6 - - thumb_func_start FUN_02023F2C -FUN_02023F2C: ; 0x02023F2C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x67 - add r4, r1, #0x0 - lsl r0, r0, #0x2 - cmp r4, r0 - beq _02023F44 - add r0, r0, #0x1 - cmp r4, r0 - beq _02023F44 - bl ErrorHandling -_02023F44: - lsl r1, r4, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x0 - bne _02023F56 - mov r0, #0x0 - pop {r3-r5, pc} -_02023F56: - mov r0, #0x67 - lsl r0, r0, #0x2 - cmp r4, r0 - bne _02023F62 - sub r0, #0x92 - b _02023F64 -_02023F62: - sub r0, #0x91 -_02023F64: - add r1, r5, r0 - mov r0, #0x0 - mov r3, #0x3 -_02023F6A: - lsl r2, r0, #0x10 - lsr r5, r2, #0x10 - asr r2, r5, #0x2 - ldrb r4, [r1, r2] - lsl r2, r5, #0x1e - lsr r2, r2, #0x1d - asr r4, r2 - add r2, r4, #0x0 - and r2, r3 - cmp r2, #0x3 - beq _02023F86 - add r0, r0, #0x1 - cmp r0, #0x3 - blt _02023F6A -_02023F86: - pop {r3-r5, pc} - - thumb_func_start FUN_02023F88 -FUN_02023F88: ; 0x02023F88 - push {r4-r6, lr} - add r6, r0, #0x0 - mov r0, #0x67 - add r5, r1, #0x0 - lsl r0, r0, #0x2 - add r4, r2, #0x0 - cmp r5, r0 - beq _02023FA2 - add r0, r0, #0x1 - cmp r5, r0 - beq _02023FA2 - bl ErrorHandling -_02023FA2: - lsl r1, r5, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x0 - bne _02023FB4 - mov r0, #0x0 - pop {r4-r6, pc} -_02023FB4: - mov r0, #0x67 - lsl r0, r0, #0x2 - cmp r5, r0 - bne _02023FC0 - sub r0, #0x92 - b _02023FC2 -_02023FC0: - sub r0, #0x91 -_02023FC2: - add r1, r6, r0 - mov r0, #0x0 - mov r3, #0x3 -_02023FC8: - lsl r2, r0, #0x10 - lsr r6, r2, #0x10 - asr r2, r6, #0x2 - ldrb r5, [r1, r2] - lsl r2, r6, #0x1e - lsr r2, r2, #0x1d - asr r5, r2 - add r2, r5, #0x0 - and r2, r3 - cmp r2, r4 - bne _02023FE2 - mov r0, #0x1 - pop {r4-r6, pc} -_02023FE2: - add r0, r0, #0x1 - cmp r0, #0x3 - blt _02023FC8 - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02023FEC -FUN_02023FEC: ; 0x02023FEC - push {r3-r7, lr} - add r6, r0, #0x0 - mov r0, #0x67 - add r5, r1, #0x0 - lsl r0, r0, #0x2 - add r7, r2, #0x0 - cmp r5, r0 - beq _02024006 - add r0, r0, #0x1 - cmp r5, r0 - beq _02024006 - bl ErrorHandling -_02024006: - lsl r2, r7, #0x18 - add r0, r6, #0x0 - add r1, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02023F88 - cmp r0, #0x0 - bne _02024064 - mov r0, #0x67 - lsl r0, r0, #0x2 - cmp r5, r0 - bne _02024022 - sub r0, #0x92 - b _02024024 -_02024022: - sub r0, #0x91 -_02024024: - add r4, r6, r0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02023F2C - add r5, r0, #0x0 - cmp r5, #0x3 - bge _02024064 - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x4 - blo _02024040 - bl ErrorHandling -_02024040: - lsl r0, r5, #0x10 - lsr r2, r0, #0x10 - lsl r0, r2, #0x1e - lsr r1, r0, #0x1d - asr r0, r2, #0x2 - mov r2, #0x3 - lsl r2, r1 - ldrb r3, [r4, r0] - mvn r2, r2 - and r2, r3 - strb r2, [r4, r0] - lsl r2, r7, #0x18 - lsr r2, r2, #0x18 - ldrb r3, [r4, r0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strb r1, [r4, r0] -_02024064: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02024068 -FUN_02024068: ; 0x02024068 - push {r4-r6, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r6, #0x4 - blo _02024078 - bl ErrorHandling -_02024078: - cmp r4, #0xf - bls _02024080 - bl ErrorHandling -_02024080: - cmp r6, #0x2 - bhs _0202409E - lsl r0, r6, #0x2 - add r0, #0x18 - mov r1, #0xf - lsl r1, r0 - ldr r2, [r5, #0x40] - mvn r1, r1 - and r2, r1 - add r1, r4, #0x0 - lsl r1, r0 - add r0, r2, #0x0 - orr r0, r1 - str r0, [r5, #0x40] - pop {r4-r6, pc} -_0202409E: - sub r0, r6, #0x2 - lsl r0, r0, #0x18 - add r1, r5, #0x0 - lsr r0, r0, #0x16 - add r1, #0x80 - ldr r2, [r1, #0x0] - add r0, #0x18 - mov r1, #0xf - lsl r1, r0 - mvn r1, r1 - and r2, r1 - add r1, r5, #0x0 - add r1, #0x80 - str r2, [r1, #0x0] - add r1, r5, #0x0 - add r1, #0x80 - ldr r2, [r1, #0x0] - add r1, r4, #0x0 - lsl r1, r0 - add r0, r2, #0x0 - orr r0, r1 - add r5, #0x80 - str r0, [r5, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020240D0 -FUN_020240D0: ; 0x020240D0 - push {r3-r6} - mov r3, #0xf - mov r1, #0x0 - add r4, r3, #0x0 -_020240D8: - lsl r2, r1, #0x18 - lsr r6, r2, #0x18 - cmp r6, #0x2 - bhs _020240EE - lsl r2, r6, #0x2 - ldr r5, [r0, #0x40] - add r2, #0x18 - lsr r5, r2 - add r2, r5, #0x0 - and r2, r4 - b _02024102 -_020240EE: - add r2, r0, #0x0 - add r2, #0x80 - ldr r5, [r2, #0x0] - sub r2, r6, #0x2 - lsl r2, r2, #0x18 - lsr r2, r2, #0x16 - add r2, #0x18 - lsr r5, r2 - add r2, r5, #0x0 - and r2, r3 -_02024102: - cmp r2, #0xf - beq _0202410C - add r1, r1, #0x1 - cmp r1, #0x4 - blt _020240D8 -_0202410C: - add r0, r1, #0x0 - pop {r3-r6} - bx lr - .balign 4 - - thumb_func_start FUN_02024114 -FUN_02024114: ; 0x02024114 - push {r4-r7} - mov r2, #0xf - mov r6, #0x0 - add r3, r2, #0x0 -_0202411C: - lsl r4, r6, #0x18 - lsr r5, r4, #0x18 - cmp r5, #0x2 - bhs _02024134 - ldr r7, [r0, #0x40] - lsl r4, r5, #0x2 - add r4, #0x18 - add r5, r7, #0x0 - lsr r5, r4 - add r4, r5, #0x0 - and r4, r3 - b _02024146 -_02024134: - add r4, r0, #0x0 - sub r5, r5, #0x2 - add r4, #0x80 - lsl r5, r5, #0x18 - lsr r5, r5, #0x16 - ldr r4, [r4, #0x0] - add r5, #0x18 - lsr r4, r5 - and r4, r2 -_02024146: - cmp r1, r4 - bne _02024150 - mov r0, #0x1 - pop {r4-r7} - bx lr -_02024150: - add r6, r6, #0x1 - cmp r6, #0x4 - blt _0202411C - mov r0, #0x0 - pop {r4-r7} - bx lr - - thumb_func_start FUN_0202415C -FUN_0202415C: ; 0x0202415C - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, _02024198 ; =0x00000182 - cmp r6, r0 - bne _02024196 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02024114 - cmp r0, #0x0 - bne _02024196 - add r0, r5, #0x0 - bl FUN_020240D0 - add r2, r0, #0x0 - lsl r2, r2, #0x18 - add r0, r5, #0x0 - add r1, r4, #0x0 - lsr r2, r2, #0x18 - bl FUN_02024068 -_02024196: - pop {r4-r6, pc} - .balign 4 -_02024198: .word 0x00000182 - - thumb_func_start FUN_0202419C -FUN_0202419C: ; 0x0202419C - push {r4-r6, lr} - add r5, r0, #0x0 - mov r4, #0x0 - mov r6, #0xf -_020241A4: - lsl r2, r4, #0x18 - add r0, r5, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x18 - bl FUN_02024068 - add r4, r4, #0x1 - cmp r4, #0x4 - blt _020241A4 - pop {r4-r6, pc} - - thumb_func_start FUN_020241B8 -FUN_020241B8: ; 0x020241B8 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xc9 - bne _02024210 - add r0, r2, #0x0 - bl FUN_020690CC - lsl r1, r0, #0x18 - lsr r3, r1, #0x18 - mov r1, #0x43 - mov r4, #0x0 - add r6, r5, #0x0 - lsl r1, r1, #0x2 -_020241D4: - ldrb r2, [r6, r1] - cmp r3, r2 - bne _020241DE - mov r1, #0x1 - b _020241E8 -_020241DE: - add r4, r4, #0x1 - add r6, r6, #0x1 - cmp r4, #0x1c - blt _020241D4 - mov r1, #0x0 -_020241E8: - cmp r1, #0x0 - bne _02024290 - mov r1, #0x43 - mov r3, #0x0 - add r4, r5, #0x0 - lsl r1, r1, #0x2 -_020241F4: - ldrb r2, [r4, r1] - cmp r2, #0xff - beq _02024202 - add r3, r3, #0x1 - add r4, r4, #0x1 - cmp r3, #0x1c - blt _020241F4 -_02024202: - cmp r3, #0x1c - bge _02024290 - mov r1, #0x43 - add r2, r5, r3 - lsl r1, r1, #0x2 - strb r0, [r2, r1] - pop {r4-r6, pc} -_02024210: - mov r6, #0x67 - lsl r6, r6, #0x2 - cmp r4, r6 - bne _0202422E - add r0, r2, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02023FEC - pop {r4-r6, pc} -_0202422E: - add r3, r6, #0x1 - cmp r4, r3 - bne _0202424A - add r0, r2, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02023FEC - pop {r4-r6, pc} -_0202424A: - add r3, r6, #0x0 - add r3, #0xa - cmp r4, r3 - bne _02024268 - add r0, r2, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02023E70 - pop {r4-r6, pc} -_02024268: - add r3, r6, #0x0 - add r3, #0xb - cmp r4, r3 - bne _02024286 - add r0, r2, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02023E70 - pop {r4-r6, pc} -_02024286: - sub r6, #0x1a - cmp r4, r6 - bne _02024290 - bl FUN_0202415C -_02024290: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02024294 -FUN_02024294: ; 0x02024294 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r2, #0x0 - add r0, r1, #0x0 - bl FUN_02087A50 - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FUN_02087A1C - cmp r4, #0xe - beq _020242C0 - cmp r0, #0x6 - beq _020242C0 - ldr r1, _020242C4 ; =0x00000129 - add r3, r5, r1 - ldrb r2, [r3, r4] - mov r1, #0x1 - lsl r1, r0 - add r0, r2, #0x0 - orr r0, r1 - strb r0, [r3, r4] -_020242C0: - pop {r4-r6, pc} - nop -_020242C4: .word 0x00000129 - - thumb_func_start FUN_020242C8 -FUN_020242C8: ; 0x020242C8 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - mov r1, #0x12 - add r4, r2, #0x0 - bl FUN_02068678 - cmp r0, #0xff - bne _020242EA - cmp r4, #0x0 - bne _020242E4 - mov r0, #0x2 - pop {r4-r6, pc} -_020242E4: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_020242EA: - sub r0, r6, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r1, #0x1 - mov r0, #0x7 - add r3, r2, #0x0 - and r3, r0 - add r0, r1, #0x0 - lsl r0, r3 - asr r3, r2, #0x3 - add r3, r5, r3 - add r3, #0x84 - ldrb r3, [r3, #0x0] - tst r0, r3 - bne _0202430A - mov r1, #0x0 -_0202430A: - lsl r0, r1, #0x18 - lsr r1, r0, #0x18 - cmp r4, #0x1 - bne _0202433A - add r4, r2, #0x0 - asr r2, r2, #0x3 - add r2, r5, r2 - mov r0, #0x7 - add r2, #0xc4 - mov r3, #0x1 - and r4, r0 - add r0, r3, #0x0 - ldrb r2, [r2, #0x0] - lsl r0, r4 - tst r0, r2 - bne _0202432C - mov r3, #0x0 -_0202432C: - lsl r0, r3, #0x18 - lsr r0, r0, #0x18 - cmp r0, r1 - bne _0202433C - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_0202433A: - add r0, r1, #0x0 -_0202433C: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02024340 -FUN_02024340: ; 0x02024340 - push {r4-r5} - mov r3, #0x0 - ldr r5, _02024360 ; =0x020EE942 - mov r4, #0x1 - add r1, r3, #0x0 -_0202434A: - ldrh r2, [r5, #0x0] - cmp r0, r2 - bne _02024352 - add r4, r1, #0x0 -_02024352: - add r3, r3, #0x1 - add r5, r5, #0x2 - cmp r3, #0xb - blt _0202434A - add r0, r4, #0x0 - pop {r4-r5} - bx lr - .balign 4 -_02024360: .word 0x020EE942 - - thumb_func_start FUN_02024364 -FUN_02024364: ; 0x02024364 - ldr r1, _02024374 ; =0x000001EA - mov r2, #0x1 - cmp r0, r1 - bne _0202436E - mov r2, #0x0 -_0202436E: - add r0, r2, #0x0 - bx lr - nop -_02024374: .word 0x000001EA - - thumb_func_start FUN_02024378 -FUN_02024378: ; 0x02024378 - push {r4, lr} - mov r2, #0x4f - mov r1, #0x0 - lsl r2, r2, #0x2 - add r4, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, _020243C0 ; =0xBEEFCAFE - mov r1, #0x0 - str r0, [r4, #0x0] - ldr r0, _020243C4 ; =0x00000139 - mov r2, #0x1c - strb r1, [r4, r0] - sub r0, #0x2d - add r0, r4, r0 - mov r1, #0xff - bl Call_FillMemWithValue - mov r1, #0xff - add r0, r1, #0x0 - add r0, #0x9 - strb r1, [r4, r0] - add r0, r1, #0x0 - add r0, #0xa - strb r1, [r4, r0] - add r0, r1, #0x0 - add r0, #0xb - strb r1, [r4, r0] - add r0, r1, #0x0 - add r0, #0xc - strb r1, [r4, r0] - add r0, r4, #0x0 - bl FUN_0202419C - pop {r4, pc} - nop -_020243C0: .word 0xBEEFCAFE -_020243C4: .word 0x00000139 - - thumb_func_start FUN_020243C8 -FUN_020243C8: ; 0x020243C8 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r1, [r6, #0x0] - ldr r0, _020243FC ; =0xBEEFCAFE - cmp r1, r0 - beq _020243D8 - bl ErrorHandling -_020243D8: - ldr r7, _02024400 ; =0x000001ED - mov r5, #0x0 - mov r4, #0x1 -_020243DE: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_02024594 - cmp r0, #0x1 - bne _020243EE - add r5, r5, #0x1 -_020243EE: - add r4, r4, #0x1 - cmp r4, r7 - ble _020243DE - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - pop {r3-r7, pc} - nop -_020243FC: .word 0xBEEFCAFE -_02024400: .word 0x000001ED - - thumb_func_start FUN_02024404 -FUN_02024404: ; 0x02024404 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r1, [r6, #0x0] - ldr r0, _02024438 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024414 - bl ErrorHandling -_02024414: - ldr r7, _0202443C ; =0x000001ED - mov r5, #0x0 - mov r4, #0x1 -_0202441A: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x1 - bne _0202442A - add r5, r5, #0x1 -_0202442A: - add r4, r4, #0x1 - cmp r4, r7 - ble _0202441A - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - pop {r3-r7, pc} - nop -_02024438: .word 0xBEEFCAFE -_0202443C: .word 0x000001ED - - thumb_func_start FUN_02024440 -FUN_02024440: ; 0x02024440 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02024CA4 - cmp r0, #0x0 - beq _02024454 - add r0, r4, #0x0 - bl FUN_02024404 - pop {r4, pc} -_02024454: - add r0, r4, #0x0 - bl FUN_020244A4 - pop {r4, pc} - - thumb_func_start FUN_0202445C -FUN_0202445C: ; 0x0202445C - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r1, [r6, #0x0] - ldr r0, _0202449C ; =0xBEEFCAFE - cmp r1, r0 - beq _0202446C - bl ErrorHandling -_0202446C: - ldr r7, _020244A0 ; =0x000001ED - mov r5, #0x0 - mov r4, #0x1 -_02024472: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_02024594 - cmp r0, #0x1 - bne _0202448E - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02069B40 - cmp r0, #0x0 - beq _0202448E - add r5, r5, #0x1 -_0202448E: - add r4, r4, #0x1 - cmp r4, r7 - ble _02024472 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - pop {r3-r7, pc} - nop -_0202449C: .word 0xBEEFCAFE -_020244A0: .word 0x000001ED - - thumb_func_start FUN_020244A4 -FUN_020244A4: ; 0x020244A4 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r1, [r6, #0x0] - ldr r0, _020244E4 ; =0xBEEFCAFE - cmp r1, r0 - beq _020244B4 - bl ErrorHandling -_020244B4: - ldr r7, _020244E8 ; =0x000001ED - mov r5, #0x0 - mov r4, #0x1 -_020244BA: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x1 - bne _020244D6 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02069B40 - cmp r0, #0x0 - beq _020244D6 - add r5, r5, #0x1 -_020244D6: - add r4, r4, #0x1 - cmp r4, r7 - ble _020244BA - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - pop {r3-r7, pc} - nop -_020244E4: .word 0xBEEFCAFE -_020244E8: .word 0x000001ED - - thumb_func_start FUN_020244EC -FUN_020244EC: ; 0x020244EC - push {r3, lr} - bl FUN_02024518 - ldr r1, _02024500 ; =0x000001E2 - cmp r0, r1 - blo _020244FC - mov r0, #0x1 - pop {r3, pc} -_020244FC: - mov r0, #0x0 - pop {r3, pc} - .balign 4 -_02024500: .word 0x000001E2 - - thumb_func_start FUN_02024504 -FUN_02024504: ; 0x02024504 - push {r3, lr} - bl FUN_02024550 - cmp r0, #0x96 - blo _02024512 - mov r0, #0x1 - pop {r3, pc} -_02024512: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02024518 -FUN_02024518: ; 0x02024518 - push {r3-r7, lr} - ldr r7, _0202454C ; =0x000001ED - add r6, r0, #0x0 - mov r5, #0x0 - mov r4, #0x1 -_02024522: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_02024594 - cmp r0, #0x1 - bne _02024542 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02024340 - cmp r0, #0x1 - bne _02024542 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02024542: - add r4, r4, #0x1 - cmp r4, r7 - ble _02024522 - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 -_0202454C: .word 0x000001ED - - thumb_func_start FUN_02024550 -FUN_02024550: ; 0x02024550 - push {r3-r7, lr} - ldr r7, _02024590 ; =0x000001ED - add r6, r0, #0x0 - mov r5, #0x0 - mov r4, #0x1 -_0202455A: - lsl r1, r4, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl FUN_020245F0 - cmp r0, #0x1 - bne _02024586 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02069B40 - cmp r0, #0x0 - beq _02024586 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02024364 - cmp r0, #0x1 - bne _02024586 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02024586: - add r4, r4, #0x1 - cmp r4, r7 - ble _0202455A - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 -_02024590: .word 0x000001ED - - thumb_func_start FUN_02024594 -FUN_02024594: ; 0x02024594 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020245E8 ; =0xBEEFCAFE - cmp r1, r0 - beq _020245A6 - bl ErrorHandling -_020245A6: - cmp r4, #0x0 - beq _020245B0 - ldr r0, _020245EC ; =0x000001ED - cmp r4, r0 - bls _020245B8 -_020245B0: - bl ErrorHandling - mov r0, #0x1 - b _020245BA -_020245B8: - mov r0, #0x0 -_020245BA: - cmp r0, #0x0 - beq _020245C2 - mov r0, #0x0 - pop {r3-r5, pc} -_020245C2: - sub r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0x1 - mov r1, #0x7 - and r1, r2 - add r3, r0, #0x0 - lsl r3, r1 - asr r1, r2, #0x3 - add r2, r5, r1 - ldrb r1, [r2, #0x4] - tst r1, r3 - beq _020245E4 - add r2, #0x44 - ldrb r1, [r2, #0x0] - tst r1, r3 - bne _020245E6 -_020245E4: - mov r0, #0x0 -_020245E6: - pop {r3-r5, pc} - .balign 4 -_020245E8: .word 0xBEEFCAFE -_020245EC: .word 0x000001ED - - thumb_func_start FUN_020245F0 -FUN_020245F0: ; 0x020245F0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024640 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024602 - bl ErrorHandling -_02024602: - cmp r4, #0x0 - beq _0202460C - ldr r0, _02024644 ; =0x000001ED - cmp r4, r0 - bls _02024614 -_0202460C: - bl ErrorHandling - mov r0, #0x1 - b _02024616 -_02024614: - mov r0, #0x0 -_02024616: - cmp r0, #0x0 - beq _0202461E - mov r0, #0x0 - pop {r3-r5, pc} -_0202461E: - sub r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - mov r0, #0x1 - mov r1, #0x7 - and r1, r3 - add r2, r0, #0x0 - lsl r2, r1 - asr r1, r3, #0x3 - add r1, r5, r1 - add r1, #0x44 - ldrb r1, [r1, #0x0] - tst r1, r2 - bne _0202463C - mov r0, #0x0 -_0202463C: - pop {r3-r5, pc} - nop -_02024640: .word 0xBEEFCAFE -_02024644: .word 0x000001ED - - thumb_func_start FUN_02024648 -FUN_02024648: ; 0x02024648 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024670 ; =0xBEEFCAFE - cmp r1, r0 - beq _0202465A - bl ErrorHandling -_0202465A: - cmp r4, #0x0 - bne _02024666 - mov r0, #0x41 - lsl r0, r0, #0x2 - ldr r6, [r5, r0] - b _0202466A -_02024666: - bl ErrorHandling -_0202466A: - add r0, r6, #0x0 - pop {r4-r6, pc} - nop -_02024670: .word 0xBEEFCAFE - - thumb_func_start FUN_02024674 -FUN_02024674: ; 0x02024674 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020246D4 ; =0xBEEFCAFE - add r6, r2, #0x0 - cmp r1, r0 - beq _02024688 - bl ErrorHandling -_02024688: - cmp r4, #0x0 - beq _02024692 - ldr r0, _020246D8 ; =0x000001ED - cmp r4, r0 - bls _0202469A -_02024692: - bl ErrorHandling - mov r0, #0x1 - b _0202469C -_0202469A: - mov r0, #0x0 -_0202469C: - cmp r0, #0x0 - beq _020246A6 - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_020246A6: - sub r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - add r3, r2, #0x0 - asr r2, r2, #0x3 - add r2, r5, r2 - mov r0, #0x7 - add r2, #0x44 - mov r1, #0x1 - and r3, r0 - ldrb r2, [r2, #0x0] - lsl r1, r3 - tst r1, r2 - beq _020246CE - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020242C8 - pop {r4-r6, pc} -_020246CE: - sub r0, #0x8 - pop {r4-r6, pc} - nop -_020246D4: .word 0xBEEFCAFE -_020246D8: .word 0x000001ED - - thumb_func_start FUN_020246DC -FUN_020246DC: ; 0x020246DC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024718 ; =0xBEEFCAFE - cmp r1, r0 - beq _020246EE - bl ErrorHandling -_020246EE: - mov r0, #0x43 - mov r2, #0x0 - lsl r0, r0, #0x2 -_020246F4: - add r1, r5, r2 - ldrb r1, [r1, r0] - cmp r1, #0xff - beq _02024702 - add r2, r2, #0x1 - cmp r2, #0x1c - blt _020246F4 -_02024702: - cmp r2, r4 - bgt _0202470C - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} -_0202470C: - mov r0, #0x43 - add r1, r5, r4 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - pop {r3-r5, pc} - nop -_02024718: .word 0xBEEFCAFE - - thumb_func_start FUN_0202471C -FUN_0202471C: ; 0x0202471C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024744 ; =0xBEEFCAFE - cmp r1, r0 - beq _0202472C - bl ErrorHandling -_0202472C: - mov r1, #0x43 - mov r0, #0x0 - lsl r1, r1, #0x2 -_02024732: - add r2, r4, r0 - ldrb r2, [r2, r1] - cmp r2, #0xff - beq _02024740 - add r0, r0, #0x1 - cmp r0, #0x1c - blt _02024732 -_02024740: - pop {r4, pc} - nop -_02024744: .word 0xBEEFCAFE - - thumb_func_start FUN_02024748 -FUN_02024748: ; 0x02024748 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _0202479C ; =0xBEEFCAFE - cmp r1, r0 - beq _0202475A - bl ErrorHandling -_0202475A: - ldr r1, _020247A0 ; =0x000001A6 - add r0, r5, #0x0 - bl FUN_02023D8C - cmp r0, r4 - bgt _0202476C - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} -_0202476C: - cmp r4, #0x2 - blt _02024774 - bl ErrorHandling -_02024774: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - sub r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0x1 - mov r1, #0x7 - and r1, r2 - add r3, r0, #0x0 - lsl r3, r1 - asr r1, r2, #0x3 - add r2, r5, r1 - mov r1, #0x42 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - tst r1, r3 - bne _0202479A - mov r0, #0x0 -_0202479A: - pop {r3-r5, pc} - .balign 4 -_0202479C: .word 0xBEEFCAFE -_020247A0: .word 0x000001A6 - - thumb_func_start FUN_020247A4 -FUN_020247A4: ; 0x020247A4 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _020247C0 ; =0xBEEFCAFE - cmp r1, r0 - beq _020247B4 - bl ErrorHandling -_020247B4: - ldr r1, _020247C4 ; =0x000001A6 - add r0, r4, #0x0 - bl FUN_02023D8C - pop {r4, pc} - nop -_020247C0: .word 0xBEEFCAFE -_020247C4: .word 0x000001A6 - - thumb_func_start FUN_020247C8 -FUN_020247C8: ; 0x020247C8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _0202481C ; =0xBEEFCAFE - cmp r1, r0 - beq _020247DA - bl ErrorHandling -_020247DA: - ldr r1, _02024820 ; =0x000001A7 - add r0, r5, #0x0 - bl FUN_02023D8C - cmp r0, r4 - bgt _020247EC - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} -_020247EC: - cmp r4, #0x2 - blt _020247F4 - bl ErrorHandling -_020247F4: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - sub r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0x1 - mov r1, #0x7 - and r1, r2 - add r3, r0, #0x0 - lsl r3, r1 - asr r1, r2, #0x3 - add r2, r5, r1 - ldr r1, _02024824 ; =0x00000109 - ldrb r1, [r2, r1] - tst r1, r3 - bne _02024818 - mov r0, #0x0 -_02024818: - pop {r3-r5, pc} - nop -_0202481C: .word 0xBEEFCAFE -_02024820: .word 0x000001A7 -_02024824: .word 0x00000109 - - thumb_func_start FUN_02024828 -FUN_02024828: ; 0x02024828 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024844 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024838 - bl ErrorHandling -_02024838: - ldr r1, _02024848 ; =0x000001A7 - add r0, r4, #0x0 - bl FUN_02023D8C - pop {r4, pc} - nop -_02024844: .word 0xBEEFCAFE -_02024848: .word 0x000001A7 - - thumb_func_start FUN_0202484C -FUN_0202484C: ; 0x0202484C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024894 ; =0xBEEFCAFE - cmp r1, r0 - beq _0202485E - bl ErrorHandling -_0202485E: - mov r1, #0x67 - add r0, r5, #0x0 - lsl r1, r1, #0x2 - bl FUN_02023F2C - cmp r0, r4 - bgt _02024872 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} -_02024872: - cmp r4, #0x3 - blt _0202487A - bl ErrorHandling -_0202487A: - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - asr r0, r2, #0x2 - add r1, r5, r0 - ldr r0, _02024898 ; =0x0000010A - ldrb r1, [r1, r0] - lsl r0, r2, #0x1e - lsr r0, r0, #0x1d - asr r1, r0 - mov r0, #0x3 - and r0, r1 - pop {r3-r5, pc} - nop -_02024894: .word 0xBEEFCAFE -_02024898: .word 0x0000010A - - thumb_func_start FUN_0202489C -FUN_0202489C: ; 0x0202489C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _020248B8 ; =0xBEEFCAFE - cmp r1, r0 - beq _020248AC - bl ErrorHandling -_020248AC: - mov r1, #0x67 - add r0, r4, #0x0 - lsl r1, r1, #0x2 - bl FUN_02023F2C - pop {r4, pc} - .balign 4 -_020248B8: .word 0xBEEFCAFE - - thumb_func_start FUN_020248BC -FUN_020248BC: ; 0x020248BC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024900 ; =0xBEEFCAFE - cmp r1, r0 - beq _020248CE - bl ErrorHandling -_020248CE: - ldr r1, _02024904 ; =0x0000019D - add r0, r5, #0x0 - bl FUN_02023F2C - cmp r0, r4 - bgt _020248E0 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} -_020248E0: - cmp r4, #0x3 - blt _020248E8 - bl ErrorHandling -_020248E8: - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - asr r0, r2, #0x2 - add r1, r5, r0 - ldr r0, _02024908 ; =0x0000010B - ldrb r1, [r1, r0] - lsl r0, r2, #0x1e - lsr r0, r0, #0x1d - asr r1, r0 - mov r0, #0x3 - and r0, r1 - pop {r3-r5, pc} - .balign 4 -_02024900: .word 0xBEEFCAFE -_02024904: .word 0x0000019D -_02024908: .word 0x0000010B - - thumb_func_start FUN_0202490C -FUN_0202490C: ; 0x0202490C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024928 ; =0xBEEFCAFE - cmp r1, r0 - beq _0202491C - bl ErrorHandling -_0202491C: - ldr r1, _0202492C ; =0x0000019D - add r0, r4, #0x0 - bl FUN_02023F2C - pop {r4, pc} - nop -_02024928: .word 0xBEEFCAFE -_0202492C: .word 0x0000019D - - thumb_func_start FUN_02024930 -FUN_02024930: ; 0x02024930 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _0202496C ; =0xBEEFCAFE - cmp r1, r0 - beq _02024942 - bl ErrorHandling -_02024942: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x2 - bhs _02024958 - lsl r0, r0, #0x2 - ldr r1, [r5, #0x40] - add r0, #0x18 - lsr r1, r0 - mov r0, #0xf - and r0, r1 - pop {r3-r5, pc} -_02024958: - add r5, #0x80 - sub r0, r0, #0x2 - lsl r0, r0, #0x18 - ldr r1, [r5, #0x0] - lsr r0, r0, #0x16 - add r0, #0x18 - lsr r1, r0 - mov r0, #0xf - and r0, r1 - pop {r3-r5, pc} - .balign 4 -_0202496C: .word 0xBEEFCAFE - - thumb_func_start FUN_02024970 -FUN_02024970: ; 0x02024970 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024988 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024980 - bl ErrorHandling -_02024980: - add r0, r4, #0x0 - bl FUN_020240D0 - pop {r4, pc} - .balign 4 -_02024988: .word 0xBEEFCAFE - - thumb_func_start FUN_0202498C -FUN_0202498C: ; 0x0202498C - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - str r1, [sp, #0x0] - add r0, r1, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl FUN_020671BC - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - mov r1, #0x0 - ldr r0, [sp, #0x0] - add r2, r1, #0x0 - bl FUN_020671BC - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - bl FUN_020689E0 - add r6, r0, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02024AE4 ; =0xBEEFCAFE - cmp r1, r0 - beq _020249C4 - bl ErrorHandling -_020249C4: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020249D0 - ldr r1, _02024AE8 ; =0x000001ED - cmp r0, r1 - bls _020249D8 -_020249D0: - bl ErrorHandling - mov r0, #0x1 - b _020249DA -_020249D8: - mov r0, #0x0 -_020249DA: - cmp r0, #0x0 - bne _02024ADE - ldr r0, [sp, #0x4] - mov r2, #0x1 - sub r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0x7 - and r0, r4 - add r1, r2, #0x0 - lsl r1, r0 - asr r0, r4, #0x3 - add r3, r5, r0 - add r3, #0x44 - ldrb r3, [r3, #0x0] - tst r3, r1 - bne _02024A70 - ldr r1, _02024AEC ; =0x00000147 - ldr r0, [sp, #0x4] - cmp r0, r1 - bne _02024A08 - sub r1, #0x43 - str r7, [r5, r1] -_02024A08: - lsl r0, r6, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x2 - bls _02024A14 - bl ErrorHandling -_02024A14: - cmp r6, #0x2 - bne _02024A1A - mov r6, #0x0 -_02024A1A: - cmp r6, #0x2 - blo _02024A22 - bl ErrorHandling -_02024A22: - add r2, r5, #0x0 - mov r0, #0x7 - add r3, r4, #0x0 - and r3, r0 - mov r0, #0x1 - lsl r0, r3 - add r2, #0xc4 - asr r1, r4, #0x3 - ldrb r7, [r2, r1] - mvn r0, r0 - and r0, r7 - strb r0, [r2, r1] - add r0, r6, #0x0 - ldrb r7, [r2, r1] - lsl r0, r3 - orr r0, r7 - strb r0, [r2, r1] - cmp r6, #0x2 - blo _02024A4C - bl ErrorHandling -_02024A4C: - add r1, r5, #0x0 - mov r0, #0x7 - add r2, r4, #0x0 - and r2, r0 - mov r3, #0x1 - lsl r3, r2 - add r1, #0x84 - asr r0, r4, #0x3 - ldrb r7, [r1, r0] - mvn r3, r3 - lsl r6, r2 - and r3, r7 - strb r3, [r1, r0] - ldrb r3, [r1, r0] - add r2, r3, #0x0 - orr r2, r6 - strb r2, [r1, r0] - b _02024AC0 -_02024A70: - add r0, r5, r0 - add r0, #0x84 - ldrb r0, [r0, #0x0] - tst r0, r1 - bne _02024A7C - mov r2, #0x0 -_02024A7C: - lsl r0, r2, #0x18 - lsr r0, r0, #0x18 - cmp r0, r6 - beq _02024AC0 - lsl r0, r6, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x2 - bls _02024A90 - bl ErrorHandling -_02024A90: - cmp r6, #0x2 - bne _02024A96 - mov r6, #0x0 -_02024A96: - cmp r6, #0x2 - blo _02024A9E - bl ErrorHandling -_02024A9E: - add r1, r5, #0x0 - mov r0, #0x7 - add r2, r4, #0x0 - and r2, r0 - mov r3, #0x1 - lsl r3, r2 - add r1, #0xc4 - asr r0, r4, #0x3 - ldrb r7, [r1, r0] - mvn r3, r3 - lsl r6, r2 - and r3, r7 - strb r3, [r1, r0] - ldrb r3, [r1, r0] - add r2, r3, #0x0 - orr r2, r6 - strb r2, [r1, r0] -_02024AC0: - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_020241B8 - mov r1, #0x7 - add r5, #0x44 - asr r0, r4, #0x3 - ldrb r3, [r5, r0] - mov r2, #0x1 - and r1, r4 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strb r1, [r5, r0] -_02024ADE: - add sp, #0x8 - pop {r3-r7, pc} - nop -_02024AE4: .word 0xBEEFCAFE -_02024AE8: .word 0x000001ED -_02024AEC: .word 0x00000147 - - thumb_func_start FUN_02024AF0 -FUN_02024AF0: ; 0x02024AF0 - push {r4-r7, lr} - sub sp, #0x14 - add r4, r0, #0x0 - str r1, [sp, #0x0] - add r0, r1, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl FUN_020671BC - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - ldr r0, [sp, #0x0] - mov r1, #0xc - mov r2, #0x0 - bl FUN_020671BC - str r0, [sp, #0x8] - mov r1, #0x0 - ldr r0, [sp, #0x0] - add r2, r1, #0x0 - bl FUN_020671BC - str r0, [sp, #0x4] - ldr r0, [sp, #0x0] - bl FUN_020689E0 - add r7, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024C78 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024B32 - bl ErrorHandling -_02024B32: - cmp r6, #0x0 - beq _02024B3C - ldr r0, _02024C7C ; =0x000001ED - cmp r6, r0 - bls _02024B44 -_02024B3C: - bl ErrorHandling - mov r0, #0x1 - b _02024B46 -_02024B44: - mov r0, #0x0 -_02024B46: - cmp r0, #0x0 - beq _02024B4C - b _02024C72 -_02024B4C: - sub r0, r6, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - mov r0, #0x1 - mov r1, #0x7 - and r1, r5 - add r2, r0, #0x0 - asr r3, r5, #0x3 - lsl r2, r1 - add r1, r4, r3 - add r1, #0x44 - ldrb r1, [r1, #0x0] - tst r1, r2 - bne _02024BEA - ldr r1, _02024C80 ; =0x00000147 - cmp r6, r1 - bne _02024B74 - ldr r0, [sp, #0x4] - sub r1, #0x43 - str r0, [r4, r1] -_02024B74: - lsl r0, r7, #0x18 - lsr r7, r0, #0x18 - cmp r7, #0x2 - bls _02024B80 - bl ErrorHandling -_02024B80: - cmp r7, #0x2 - bne _02024B86 - mov r7, #0x0 -_02024B86: - cmp r7, #0x2 - blo _02024B8E - bl ErrorHandling -_02024B8E: - mov r0, #0x7 - and r0, r5 - str r0, [sp, #0x10] - add r0, r4, #0x0 - add r0, #0xc4 - asr r3, r5, #0x3 - ldrb r1, [r0, r3] - mov r2, #0x1 - str r1, [sp, #0xc] - ldr r1, [sp, #0x10] - lsl r2, r1 - ldr r1, [sp, #0xc] - mvn r2, r2 - and r1, r2 - strb r1, [r0, r3] - ldrb r1, [r0, r3] - add r2, r7, #0x0 - mov r12, r1 - ldr r1, [sp, #0x10] - lsl r2, r1 - mov r1, r12 - orr r1, r2 - strb r1, [r0, r3] - cmp r7, #0x2 - blo _02024BC4 - bl ErrorHandling -_02024BC4: - add r1, r4, #0x0 - mov r0, #0x7 - add r2, r5, #0x0 - and r2, r0 - mov r3, #0x1 - lsl r3, r2 - add r1, #0x84 - asr r0, r5, #0x3 - ldrb r5, [r1, r0] - mvn r3, r3 - and r3, r5 - strb r3, [r1, r0] - add r5, r7, #0x0 - ldrb r3, [r1, r0] - lsl r5, r2 - add r2, r3, #0x0 - orr r2, r5 - strb r2, [r1, r0] - b _02024C3C -_02024BEA: - add r1, r4, r3 - add r1, #0x84 - ldrb r1, [r1, #0x0] - tst r1, r2 - bne _02024BF6 - mov r0, #0x0 -_02024BF6: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, r7 - beq _02024C3C - lsl r0, r7, #0x18 - lsr r7, r0, #0x18 - cmp r7, #0x2 - bls _02024C0A - bl ErrorHandling -_02024C0A: - cmp r7, #0x2 - bne _02024C10 - mov r7, #0x0 -_02024C10: - cmp r7, #0x2 - blo _02024C18 - bl ErrorHandling -_02024C18: - add r1, r4, #0x0 - mov r0, #0x7 - add r2, r5, #0x0 - and r2, r0 - mov r3, #0x1 - lsl r3, r2 - add r1, #0xc4 - asr r0, r5, #0x3 - ldrb r5, [r1, r0] - mvn r3, r3 - and r3, r5 - strb r3, [r1, r0] - add r5, r7, #0x0 - ldrb r3, [r1, r0] - lsl r5, r2 - add r2, r3, #0x0 - orr r2, r5 - strb r2, [r1, r0] -_02024C3C: - ldr r2, [sp, #0x0] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_020241B8 - ldr r2, [sp, #0x8] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_02024294 - sub r0, r6, #0x1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r1, r4, #0x4 - asr r0, r6, #0x3 - mov r2, #0x7 - ldrb r5, [r1, r0] - mov r3, #0x1 - and r2, r6 - lsl r3, r2 - add r2, r5, #0x0 - orr r2, r3 - add r4, #0x44 - strb r2, [r1, r0] - ldrb r1, [r4, r0] - orr r1, r3 - strb r1, [r4, r0] -_02024C72: - add sp, #0x14 - pop {r4-r7, pc} - nop -_02024C78: .word 0xBEEFCAFE -_02024C7C: .word 0x000001ED -_02024C80: .word 0x00000147 - - thumb_func_start FUN_02024C84 -FUN_02024C84: ; 0x02024C84 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024C9C ; =0xBEEFCAFE - cmp r1, r0 - beq _02024C94 - bl ErrorHandling -_02024C94: - ldr r0, _02024CA0 ; =0x00000139 - mov r1, #0x1 - strb r1, [r4, r0] - pop {r4, pc} - .balign 4 -_02024C9C: .word 0xBEEFCAFE -_02024CA0: .word 0x00000139 - - thumb_func_start FUN_02024CA4 -FUN_02024CA4: ; 0x02024CA4 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024CBC ; =0xBEEFCAFE - cmp r1, r0 - beq _02024CB4 - bl ErrorHandling -_02024CB4: - ldr r0, _02024CC0 ; =0x00000139 - ldrb r0, [r4, r0] - pop {r4, pc} - nop -_02024CBC: .word 0xBEEFCAFE -_02024CC0: .word 0x00000139 - - thumb_func_start FUN_02024CC4 -FUN_02024CC4: ; 0x02024CC4 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024CDC ; =0xBEEFCAFE - cmp r1, r0 - beq _02024CD4 - bl ErrorHandling -_02024CD4: - mov r0, #0x4a - lsl r0, r0, #0x2 - ldrb r0, [r4, r0] - pop {r4, pc} - .balign 4 -_02024CDC: .word 0xBEEFCAFE - - thumb_func_start FUN_02024CE0 -FUN_02024CE0: ; 0x02024CE0 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024CFC ; =0xBEEFCAFE - cmp r1, r0 - beq _02024CF0 - bl ErrorHandling -_02024CF0: - mov r0, #0x4a - mov r1, #0x1 - lsl r0, r0, #0x2 - strb r1, [r4, r0] - pop {r4, pc} - nop -_02024CFC: .word 0xBEEFCAFE - - thumb_func_start FUN_02024D00 -FUN_02024D00: ; 0x02024D00 - push {r4-r6, lr} - add r6, r2, #0x0 - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r6, #0x8 - blo _02024D10 - bl ErrorHandling -_02024D10: - ldr r1, [r4, #0x0] - ldr r0, _02024D44 ; =0xBEEFCAFE - cmp r1, r0 - beq _02024D1C - bl ErrorHandling -_02024D1C: - add r0, r5, #0x0 - bl FUN_02087A50 - add r5, r0, #0x0 - cmp r5, #0xe - bne _02024D2C - mov r0, #0x0 - pop {r4-r6, pc} -_02024D2C: - add r0, r6, #0x0 - bl FUN_02087A1C - mov r1, #0x1 - add r2, r1, #0x0 - lsl r2, r0 - ldr r0, _02024D48 ; =0x00000129 - add r1, r4, r5 - ldrb r0, [r1, r0] - and r0, r2 - pop {r4-r6, pc} - nop -_02024D44: .word 0xBEEFCAFE -_02024D48: .word 0x00000129 - - thumb_func_start FUN_02024D4C -FUN_02024D4C: ; 0x02024D4C - ldr r1, _02024D54 ; =0x00000137 - mov r2, #0x1 - strb r2, [r0, r1] - bx lr - .balign 4 -_02024D54: .word 0x00000137 - - thumb_func_start FUN_02024D58 -FUN_02024D58: ; 0x02024D58 - ldr r1, _02024D60 ; =0x00000137 - ldrb r0, [r0, r1] - bx lr - nop -_02024D60: .word 0x00000137 - - thumb_func_start FUN_02024D64 -FUN_02024D64: ; 0x02024D64 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024D7C ; =0xBEEFCAFE - cmp r1, r0 - beq _02024D74 - bl ErrorHandling -_02024D74: - mov r0, #0x4e - lsl r0, r0, #0x2 - ldrb r0, [r4, r0] - pop {r4, pc} - .balign 4 -_02024D7C: .word 0xBEEFCAFE - - thumb_func_start FUN_02024D80 -FUN_02024D80: ; 0x02024D80 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02024D9C ; =0xBEEFCAFE - cmp r1, r0 - beq _02024D90 - bl ErrorHandling -_02024D90: - mov r0, #0x4e - mov r1, #0x1 - lsl r0, r0, #0x2 - strb r1, [r4, r0] - pop {r4, pc} - nop -_02024D9C: .word 0xBEEFCAFE - - thumb_func_start FUN_02024DA0 -FUN_02024DA0: ; 0x02024DA0 - ldr r3, _02024DA8 ; =FUN_02022610 - mov r1, #0x7 - bx r3 - nop -_02024DA8: .word FUN_02022610 - - thumb_func_start FUN_02024DAC -FUN_02024DAC: ; 0x02024DAC - push {r3-r5, lr} - add r4, r2, #0x0 - ldr r2, _02024E60 ; =0x0000019D - add r5, r0, #0x0 - cmp r1, r2 - bgt _02024DD6 - sub r3, r2, #0x1 - cmp r1, r3 - blt _02024DC6 - beq _02024E24 - cmp r1, r2 - beq _02024E36 - b _02024E5A -_02024DC6: - cmp r1, #0xc9 - bgt _02024DCE - beq _02024DEE - b _02024E5A -_02024DCE: - sub r2, #0x1b - cmp r1, r2 - beq _02024E48 - b _02024E5A -_02024DD6: - add r3, r2, #0x0 - add r3, #0x9 - cmp r1, r3 - bgt _02024DE6 - add r2, #0x9 - cmp r1, r2 - beq _02024E00 - b _02024E5A -_02024DE6: - add r2, #0xa - cmp r1, r2 - beq _02024E12 - b _02024E5A -_02024DEE: - bl FUN_0202471C - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020246DC - pop {r3-r5, pc} -_02024E00: - bl FUN_020247A4 - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02024748 - pop {r3-r5, pc} -_02024E12: - bl FUN_02024828 - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020247C8 - pop {r3-r5, pc} -_02024E24: - bl FUN_0202489C - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202484C - pop {r3-r5, pc} -_02024E36: - bl FUN_0202490C - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020248BC - pop {r3-r5, pc} -_02024E48: - bl FUN_02024970 - cmp r4, r0 - bhs _02024E5A - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02024930 - pop {r3-r5, pc} -_02024E5A: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02024E60: .word 0x0000019D - - thumb_func_start FUN_02024E64 -FUN_02024E64: ; 0x02024E64 - ldr r0, _02024E68 ; =0x0000074C - bx lr - .balign 4 -_02024E68: .word 0x0000074C - - thumb_func_start FUN_02024E6C -FUN_02024E6C: ; 0x02024E6C - push {r4, lr} - add r4, r0, #0x0 - ldr r2, _02024EA4 ; =0x0000074C - mov r0, #0x0 - add r1, r4, #0x0 - bl MIi_CpuClearFast - add r0, r4, #0x0 - bl FUN_020250A4 - mov r0, #0x7 - lsl r0, r0, #0x8 - add r0, r4, r0 - bl FUN_02025484 - ldr r1, _02024EA8 ; =0x00000724 - ldr r0, _02024EAC ; =0x0000FFFF - add r1, r4, r1 - mov r2, #0x8 - bl MIi_CpuClear16 - ldr r1, _02024EB0 ; =0x00000734 - ldr r0, _02024EAC ; =0x0000FFFF - add r1, r4, r1 - mov r2, #0xb - bl MIi_CpuClear16 - pop {r4, pc} - .balign 4 -_02024EA4: .word 0x0000074C -_02024EA8: .word 0x00000724 -_02024EAC: .word 0x0000FFFF -_02024EB0: .word 0x00000734 - - thumb_func_start FUN_02024EB4 -FUN_02024EB4: ; 0x02024EB4 - ldr r3, _02024EBC ; =FUN_02022610 - mov r1, #0xa - bx r3 - nop -_02024EBC: .word FUN_02022610 - - thumb_func_start FUN_02024EC0 -FUN_02024EC0: ; 0x02024EC0 - ldr r3, _02024EC8 ; =FUN_02022634 - mov r1, #0xa - bx r3 - nop -_02024EC8: .word FUN_02022634 - - thumb_func_start FUN_02024ECC -FUN_02024ECC: ; 0x02024ECC - ldr r3, _02024ED4 ; =FUN_02022610 - mov r1, #0xa - bx r3 - nop -_02024ED4: .word FUN_02022610 - - thumb_func_start FUN_02024ED8 -FUN_02024ED8: ; 0x02024ED8 - push {r3, lr} - mov r1, #0xa - bl FUN_02022610 - mov r1, #0x7 - lsl r1, r1, #0x8 - add r0, r0, r1 - pop {r3, pc} - - thumb_func_start FUN_02024EE8 -FUN_02024EE8: ; 0x02024EE8 - ldr r1, _02024EF0 ; =0x00000724 - add r0, r0, r1 - bx lr - nop -_02024EF0: .word 0x00000724 - - thumb_func_start FUN_02024EF4 -FUN_02024EF4: ; 0x02024EF4 - add r2, r0, #0x0 - add r0, r1, #0x0 - ldr r1, _02024F04 ; =0x00000724 - ldr r3, _02024F08 ; =FUN_02021EF0 - add r1, r2, r1 - mov r2, #0x8 - bx r3 - nop -_02024F04: .word 0x00000724 -_02024F08: .word FUN_02021EF0 - - thumb_func_start FUN_02024F0C -FUN_02024F0C: ; 0x02024F0C - ldr r1, _02024F14 ; =0x00000734 - add r0, r0, r1 - bx lr - nop -_02024F14: .word 0x00000734 - - thumb_func_start FUN_02024F18 -FUN_02024F18: ; 0x02024F18 - add r2, r0, #0x0 - add r0, r1, #0x0 - ldr r1, _02024F28 ; =0x00000734 - ldr r3, _02024F2C ; =FUN_02021EF0 - add r1, r2, r1 - mov r2, #0xb - bx r3 - nop -_02024F28: .word 0x00000734 -_02024F2C: .word FUN_02021EF0 - - thumb_func_start FUN_02024F30 -FUN_02024F30: ; 0x02024F30 - push {r4, lr} - mov r1, #0x2 - bl FUN_02016998 - add r4, r0, #0x0 - bl FUN_02024F50 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02024F44 -FUN_02024F44: ; 0x02024F44 - ldr r3, _02024F4C ; =MI_CpuCopy8 - mov r2, #0x2 - bx r3 - nop -_02024F4C: .word MI_CpuCopy8 - - thumb_func_start FUN_02024F50 -FUN_02024F50: ; 0x02024F50 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x2 - bl MI_CpuFill8 - ldrh r1, [r4, #0x0] - mov r0, #0xf - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strh r0, [r4, #0x0] - ldrh r1, [r4, #0x0] - mov r0, #0x30 - bic r1, r0 - strh r1, [r4, #0x0] - ldrh r1, [r4, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r4, #0x0] - ldrh r1, [r4, #0x0] - mov r0, #0x80 - bic r1, r0 - strh r1, [r4, #0x0] - ldrh r1, [r4, #0x0] - ldr r0, _02024F94 ; =0xFFFFFCFF - and r0, r1 - strh r0, [r4, #0x0] - ldrh r1, [r4, #0x0] - ldr r0, _02024F98 ; =0xFFFF83FF - and r0, r1 - strh r0, [r4, #0x0] - pop {r4, pc} - nop -_02024F94: .word 0xFFFFFCFF -_02024F98: .word 0xFFFF83FF - - thumb_func_start FUN_02024F9C -FUN_02024F9C: ; 0x02024F9C - push {r3, lr} - cmp r0, #0x0 - beq _02024FAC - bl LoadPlayerDataAddress - bl FUN_02025064 - add r1, r0, #0x0 -_02024FAC: - cmp r1, #0x0 - beq _02024FCA - cmp r1, #0x1 - beq _02024FBA - cmp r1, #0x2 - beq _02024FC2 - b _02024FCA -_02024FBA: - ldr r0, _02024FD4 ; =0x021C48B8 - mov r1, #0x1 - str r1, [r0, #0x34] - pop {r3, pc} -_02024FC2: - ldr r0, _02024FD4 ; =0x021C48B8 - mov r1, #0x3 - str r1, [r0, #0x34] - pop {r3, pc} -_02024FCA: - ldr r0, _02024FD4 ; =0x021C48B8 - mov r1, #0x0 - str r1, [r0, #0x34] - pop {r3, pc} - nop -_02024FD4: .word 0x021C48B8 - - thumb_func_start FUN_02024FD8 -FUN_02024FD8: ; 0x02024FD8 - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - bx lr - - thumb_func_start FUN_02024FE0 -FUN_02024FE0: ; 0x02024FE0 - ldrh r3, [r0, #0x0] - mov r2, #0xf - lsl r1, r1, #0x10 - bic r3, r2 - lsr r2, r1, #0x10 - mov r1, #0xf - and r1, r2 - orr r1, r3 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_02024FF4 -FUN_02024FF4: ; 0x02024FF4 - push {r3, lr} - bl FUN_02024FD8 - cmp r0, #0x0 - bne _02025002 - mov r0, #0x8 - pop {r3, pc} -_02025002: - cmp r0, #0x1 - bne _0202500A - mov r0, #0x4 - pop {r3, pc} -_0202500A: - mov r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02025010 -FUN_02025010: ; 0x02025010 - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1a - lsr r0, r0, #0x1e - bx lr - - thumb_func_start FUN_02025018 -FUN_02025018: ; 0x02025018 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1e - ldrh r3, [r0, #0x0] - mov r2, #0x30 - lsr r1, r1, #0x1a - bic r3, r2 - orr r1, r3 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202502C -FUN_0202502C: ; 0x0202502C - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_02025034 -FUN_02025034: ; 0x02025034 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - ldrh r3, [r0, #0x0] - mov r2, #0x80 - lsr r1, r1, #0x18 - bic r3, r2 - orr r1, r3 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_02025048 -FUN_02025048: ; 0x02025048 - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_02025050 -FUN_02025050: ; 0x02025050 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - ldrh r3, [r0, #0x0] - mov r2, #0x40 - lsr r1, r1, #0x19 - bic r3, r2 - orr r1, r3 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_02025064 -FUN_02025064: ; 0x02025064 - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x16 - lsr r0, r0, #0x1e - bx lr - - thumb_func_start FUN_0202506C -FUN_0202506C: ; 0x0202506C - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1e - ldrh r3, [r0, #0x0] - ldr r2, _02025080 ; =0xFFFFFCFF - lsr r1, r1, #0x16 - and r2, r3 - orr r1, r2 - strh r1, [r0, #0x0] - bx lr - .balign 4 -_02025080: .word 0xFFFFFCFF - - thumb_func_start FUN_02025084 -FUN_02025084: ; 0x02025084 - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x11 - lsr r0, r0, #0x1b - bx lr - - thumb_func_start FUN_0202508C -FUN_0202508C: ; 0x0202508C - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1b - ldrh r3, [r0, #0x0] - ldr r2, _020250A0 ; =0xFFFF83FF - lsr r1, r1, #0x11 - and r2, r3 - orr r1, r2 - strh r1, [r0, #0x0] - bx lr - .balign 4 -_020250A0: .word 0xFFFF83FF - - thumb_func_start FUN_020250A4 -FUN_020250A4: ; 0x020250A4 - push {r4, lr} - mov r2, #0x7 - mov r1, #0x0 - lsl r2, r2, #0x8 - add r4, r0, #0x0 - bl MI_CpuFill8 - mov r1, #0x0 - add r0, r1, #0x0 -_020250B6: - strb r0, [r4, #0x1] - strb r0, [r4, #0x0] - add r1, r1, #0x1 - add r4, #0xe - cmp r1, #0x80 - blt _020250B6 - pop {r4, pc} - - thumb_func_start FUN_020250C4 -FUN_020250C4: ; 0x020250C4 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r0, r1, #0x0 - str r2, [sp, #0x0] - str r3, [sp, #0x4] - bl FUN_02025128 - mov r4, #0x0 - str r0, [sp, #0x8] - add r6, r4, #0x0 - b _02025112 -_020250DC: - add r0, r5, #0x0 - bl FUN_02025184 - ldr r0, [sp, #0x0] - lsl r1, r6, #0x1 - add r7, r0, r1 - ldrh r0, [r0, r1] - sub r0, #0x94 - strb r0, [r5, #0x0] - mov r0, #0x5 - strb r0, [r5, #0x1] - ldrb r1, [r5, #0x0] - ldrb r2, [r5, #0xc] - ldr r0, [sp, #0x8] - bl FUN_020251B0 - lsl r0, r0, #0x2 - strh r0, [r5, #0x2] - ldrh r0, [r7, #0x2] - add r6, r6, #0x2 - add r4, r4, #0x1 - strh r0, [r5, #0x8] - mov r0, #0x64 - strb r0, [r5, #0xa] - mov r0, #0x3 - strb r0, [r5, #0xb] - add r5, #0xe -_02025112: - cmp r4, #0x80 - blt _020250DC - ldr r0, [sp, #0x4] - cmp r4, r0 - blt _020250DC - ldr r0, [sp, #0x8] - bl FUN_02016A18 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02025128 -FUN_02025128: ; 0x02025128 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r0, #0x0 - bl FUN_02085258 - str r0, [sp, #0x0] - add r0, r7, #0x0 - mov r1, #0xc0 - bl FUN_02016998 - str r0, [sp, #0x4] - mov r6, #0x0 - add r5, r0, #0x0 -_02025142: - ldr r0, [sp, #0x0] - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02085264 - add r4, r0, #0x0 - mov r1, #0x3 - bl FUN_02085290 - strb r0, [r5, #0x0] - add r0, r4, #0x0 - mov r1, #0x4 - bl FUN_02085290 - strb r0, [r5, #0x1] - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_02085290 - strb r0, [r5, #0x2] - add r0, r4, #0x0 - bl FUN_02016A18 - add r6, r6, #0x1 - add r5, r5, #0x3 - cmp r6, #0x40 - blt _02025142 - ldr r0, [sp, #0x0] - bl FUN_0208526C - ldr r0, [sp, #0x4] - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02025184 -FUN_02025184: ; 0x02025184 - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strh r1, [r0, #0x2] - strh r1, [r0, #0x4] - strb r1, [r0, #0x6] - strh r1, [r0, #0x8] - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - bx lr - - thumb_func_start FUN_0202519C -FUN_0202519C: ; 0x0202519C - ldrb r2, [r0, #0xb] - ldrb r0, [r0, #0x0] - sub r3, r0, #0x1 - lsl r0, r3, #0x1 - add r0, r3, r0 - add r0, r1, r0 - ldrb r0, [r0, #0x2] - mul r0, r2 - bx lr - .balign 4 - - thumb_func_start FUN_020251B0 -FUN_020251B0: ; 0x020251B0 - sub r3, r1, #0x1 - lsl r1, r3, #0x1 - add r1, r3, r1 - ldrb r1, [r0, r1] - mov r0, #0x3c - mul r0, r1 - cmp r2, #0x1 - bne _020251CE - lsl r1, r0, #0x1 - add r1, r0, r1 - asr r0, r1, #0x1 - lsr r0, r0, #0x1e - add r0, r1, r0 - asr r0, r0, #0x2 - bx lr -_020251CE: - cmp r2, #0x2 - bne _020251DA - lsr r1, r0, #0x1f - add r1, r0, r1 - asr r1, r1, #0x1 - add r0, r0, r1 -_020251DA: - bx lr - - thumb_func_start FUN_020251DC -FUN_020251DC: ; 0x020251DC - sub r3, r1, #0x1 - lsl r1, r3, #0x1 - add r1, r3, r1 - add r0, r0, r1 - ldrb r0, [r0, #0x1] - cmp r2, #0x2 - bne _020251F2 - lsr r1, r0, #0x1f - add r1, r0, r1 - asr r0, r1, #0x1 - bx lr -_020251F2: - cmp r2, #0x1 - bne _020251FE - lsr r1, r0, #0x1f - add r1, r0, r1 - asr r1, r1, #0x1 - add r0, r0, r1 -_020251FE: - bx lr - - thumb_func_start FUN_02025200 -FUN_02025200: ; 0x02025200 - ldrb r0, [r0, #0xc] - cmp r0, #0x3 - bne _0202520A - mov r0, #0x6 - bx lr -_0202520A: - mov r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02025210 -FUN_02025210: ; 0x02025210 - ldrb r0, [r0, #0xc] - cmp r0, #0x4 - bne _0202521A - mov r0, #0xf - bx lr -_0202521A: - mov r0, #0xa - bx lr - .balign 4 - - thumb_func_start FUN_02025220 -FUN_02025220: ; 0x02025220 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02025200 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02025210 - add r1, r4, #0x3 - mul r0, r1 - add r0, r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_02025238 -FUN_02025238: ; 0x02025238 - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1] - bx lr - .balign 4 - - thumb_func_start FUN_02025244 -FUN_02025244: ; 0x02025244 - mov r2, #0xe - mul r2, r1 - ldrb r0, [r0, r2] - bx lr - - thumb_func_start FUN_0202524C -FUN_0202524C: ; 0x0202524C - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0xa] - cmp r0, #0x0 - bne _0202525C - mov r0, #0x0 - bx lr -_0202525C: - cmp r0, #0x32 - bgt _02025264 - mov r0, #0x1 - bx lr -_02025264: - mov r0, #0x2 - bx lr - - thumb_func_start FUN_02025268 -FUN_02025268: ; 0x02025268 - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0xb] - bx lr - .balign 4 - - thumb_func_start FUN_02025274 -FUN_02025274: ; 0x02025274 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0xe - mul r4, r0 - strb r3, [r5, r4] - mov r0, #0x1 - add r6, r5, r4 - strb r0, [r6, #0x1] - add r0, r2, #0x0 - ldrb r2, [r6, #0xc] - add r1, r3, #0x0 - bl FUN_020251B0 - add r1, r6, #0x0 - strh r0, [r1, #0x2] - mov r0, #0x0 - strh r0, [r1, #0x4] - strb r0, [r1, #0x6] - strh r0, [r1, #0x8] - mov r0, #0x64 - strb r0, [r1, #0xa] - mov r0, #0x5 - strb r0, [r1, #0xb] - mov r0, #0x1 - strb r0, [r1, #0xd] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020252AC -FUN_020252AC: ; 0x020252AC - mov r2, #0xe - mul r2, r1 - mov r3, #0x64 - add r0, r0, r2 - strb r3, [r0, #0xa] - bx lr - - thumb_func_start FUN_020252B8 -FUN_020252B8: ; 0x020252B8 - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0xd] - bx lr - .balign 4 - - thumb_func_start FUN_020252C4 -FUN_020252C4: ; 0x020252C4 - mov r3, #0xe - mul r3, r1 - add r0, r0, r3 - strb r2, [r0, #0xd] - bx lr - .balign 4 - - thumb_func_start FUN_020252D0 -FUN_020252D0: ; 0x020252D0 - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0xc] - bx lr - .balign 4 - - thumb_func_start FUN_020252DC -FUN_020252DC: ; 0x020252DC - mov r3, #0xe - mul r3, r1 - add r0, r0, r3 - strb r2, [r0, #0xc] - bx lr - .balign 4 - - thumb_func_start FUN_020252E8 -FUN_020252E8: ; 0x020252E8 - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrh r0, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_020252F4 -FUN_020252F4: ; 0x020252F4 - push {r4, lr} - mov r2, #0xe - mul r2, r1 - add r0, r0, r2 - ldrh r4, [r0, #0x8] - bl FUN_02025184 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02025308 -FUN_02025308: ; 0x02025308 - push {r4, lr} - add r4, r0, #0x0 - ldrb r2, [r4, #0x1] - cmp r2, #0x5 - bhi _02025370 - add r3, r2, r2 - add r3, pc - ldrh r3, [r3, #0x6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_0202531E: ; jump table (using 16-bit offset) - .short _0202532A - _0202531E - 2; case 0 - .short _02025330 - _0202531E - 2; case 1 - .short _02025330 - _0202531E - 2; case 2 - .short _02025330 - _0202531E - 2; case 3 - .short _02025336 - _0202531E - 2; case 4 - .short _0202534E - _0202531E - 2; case 5 -_0202532A: - bl ErrorHandling - pop {r4, pc} -_02025330: - add r0, r2, #0x1 - strb r0, [r4, #0x1] - pop {r4, pc} -_02025336: - bl FUN_0202519C - strh r0, [r4, #0x8] - ldrh r0, [r4, #0x8] - cmp r0, #0x2 - bhs _02025346 - mov r0, #0x2 - strh r0, [r4, #0x8] -_02025346: - ldrb r0, [r4, #0x1] - add r0, r0, #0x1 - strb r0, [r4, #0x1] - pop {r4, pc} -_0202534E: - mov r1, #0x0 - strh r1, [r4, #0x8] - mov r1, #0x2 - strb r1, [r4, #0x1] - mov r1, #0x5 - strb r1, [r4, #0xb] - ldrb r1, [r4, #0x6] - add r1, r1, #0x1 - strb r1, [r4, #0x6] - bl FUN_02025210 - ldrb r1, [r4, #0x6] - cmp r1, r0 - bne _02025370 - add r0, r4, #0x0 - bl FUN_02025184 -_02025370: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02025374 -FUN_02025374: ; 0x02025374 - push {r3-r7, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0x1] - add r7, r2, #0x0 - cmp r0, #0x5 - beq _020253DE - add r0, r1, #0x0 - ldrb r1, [r5, #0x0] - ldrb r2, [r5, #0xc] - bl FUN_020251DC - add r6, r0, #0x0 - ldrh r0, [r5, #0x4] - mov r1, #0x3c - str r0, [sp, #0x0] - add r0, r7, r0 - bl _s32_div_f - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - mov r1, #0x3c - add r0, r7, r0 - bl _s32_div_f - strh r1, [r5, #0x4] - cmp r4, #0x0 - beq _020253DE - ldrb r1, [r5, #0xa] - add r0, r6, #0x0 - mul r0, r4 - cmp r1, r0 - blt _020253BA - sub r0, r1, r0 - strb r0, [r5, #0xa] - pop {r3-r7, pc} -_020253BA: - cmp r1, #0x0 - beq _020253CE - sub r0, r6, #0x1 - add r0, r1, r0 - add r1, r6, #0x0 - bl _s32_div_f - sub r4, r4, r0 - mov r0, #0x0 - strb r0, [r5, #0xa] -_020253CE: - ldrb r0, [r5, #0xb] - cmp r0, r4 - ble _020253DA - sub r0, r0, r4 - strb r0, [r5, #0xb] - pop {r3-r7, pc} -_020253DA: - mov r0, #0x0 - strb r0, [r5, #0xb] -_020253DE: - pop {r3-r7, pc} - - thumb_func_start FUN_020253E0 -FUN_020253E0: ; 0x020253E0 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r0, [sp, #0x0] -_020253EC: - ldrb r1, [r5, #0x0] - cmp r1, #0x0 - beq _02025474 - ldrb r0, [r5, #0x1] - cmp r0, #0x0 - beq _02025474 - ldrb r0, [r5, #0xd] - cmp r0, #0x0 - beq _02025474 - ldrb r2, [r5, #0xc] - add r0, r6, #0x0 - bl FUN_020251B0 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02025220 - mul r0, r4 - cmp r7, r0 - blt _0202541C - add r0, r5, #0x0 - bl FUN_02025184 - b _02025474 -_0202541C: - add r4, r7, #0x0 - b _0202546A -_02025420: - ldrh r2, [r5, #0x2] - cmp r2, r4 - ble _02025438 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02025374 - ldrh r0, [r5, #0x2] - sub r0, r0, r4 - strh r0, [r5, #0x2] - b _02025474 -_02025438: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02025374 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02025308 - ldrh r0, [r5, #0x2] - ldrb r1, [r5, #0x0] - ldrb r2, [r5, #0xc] - sub r4, r4, r0 - add r0, r6, #0x0 - bl FUN_020251B0 - strh r0, [r5, #0x2] - ldrb r0, [r5, #0x1] - cmp r0, #0x5 - bne _0202546A - add r0, r5, #0x0 - bl FUN_02025200 - ldrh r1, [r5, #0x2] - mul r0, r1 - strh r0, [r5, #0x2] -_0202546A: - ldrb r0, [r5, #0x1] - cmp r0, #0x0 - beq _02025474 - cmp r4, #0x0 - bne _02025420 -_02025474: - ldr r0, [sp, #0x0] - add r5, #0xe - add r0, r0, #0x1 - str r0, [sp, #0x0] - cmp r0, #0x80 - blt _020253EC - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02025484 -FUN_02025484: ; 0x02025484 - ldr r3, _0202548C ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x24 - bx r3 - .balign 4 -_0202548C: .word MI_CpuFill8 - - thumb_func_start FUN_02025490 -FUN_02025490: ; 0x02025490 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02025484 - str r4, [r5, #0x0] - add r0, r5, #0x4 - pop {r3-r5, pc} - - thumb_func_start FUN_020254A0 -FUN_020254A0: ; 0x020254A0 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, r1 - beq _020254AE - bl ErrorHandling -_020254AE: - add r0, r4, #0x4 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020254B4 -FUN_020254B4: ; 0x020254B4 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_020254B8 -FUN_020254B8: ; 0x020254B8 - mov r0, #0x22 - lsl r0, r0, #0x6 - bx lr - .balign 4 - - thumb_func_start FUN_020254C0 -FUN_020254C0: ; 0x020254C0 - ldr r3, _020254C8 ; =FUN_02022610 - mov r1, #0x9 - bx r3 - nop -_020254C8: .word FUN_02022610 - - thumb_func_start FUN_020254CC -FUN_020254CC: ; 0x020254CC - push {r3-r7, lr} - mov r4, #0x0 - ldr r6, _020254EC ; =0x0000FFFF - add r5, r0, #0x0 - add r7, r4, #0x0 -_020254D6: - add r0, r5, #0x0 - add r1, r7, #0x0 - mov r2, #0x88 - bl Call_FillMemWithValue - strh r6, [r5, #0x0] - add r4, r4, #0x1 - add r5, #0x88 - cmp r4, #0x10 - blt _020254D6 - pop {r3-r7, pc} - .balign 4 -_020254EC: .word 0x0000FFFF - - thumb_func_start FUN_020254F0 -FUN_020254F0: ; 0x020254F0 - mov r2, #0x88 - mul r2, r1 - add r0, r0, r2 - bx lr - - thumb_func_start FUN_020254F8 -FUN_020254F8: ; 0x020254F8 - add r0, r0, r1 - add r0, #0x68 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02025500 -FUN_02025500: ; 0x02025500 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl StringNotEqual - cmp r0, #0x0 - bne _0202551A - ldr r1, [r5, #0x10] - ldr r0, [r4, #0x10] - cmp r1, r0 - bne _0202551A - mov r0, #0x1 - pop {r3-r5, pc} -_0202551A: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02025520 -FUN_02025520: ; 0x02025520 - push {r4-r7, lr} - sub sp, #0x2c - str r1, [sp, #0x4] - mov r1, #0x22 - str r0, [sp, #0x0] - add r0, r3, #0x0 - lsl r1, r1, #0x6 - str r2, [sp, #0x8] - bl FUN_02016998 - str r0, [sp, #0x10] - bl FUN_020254CC - mov r0, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x8] - cmp r0, #0x0 - ble _02025578 - ldr r7, [sp, #0x4] - add r6, sp, #0x18 -_02025548: - mov r0, #0x0 - mvn r0, r0 - ldr r5, [sp, #0x0] - str r0, [r6, #0x0] - mov r4, #0x0 -_02025552: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_02025500 - cmp r0, #0x0 - beq _02025560 - str r4, [r6, #0x0] -_02025560: - add r4, r4, #0x1 - add r5, #0x88 - cmp r4, #0x10 - blt _02025552 - ldr r0, [sp, #0x14] - add r6, r6, #0x4 - add r1, r0, #0x1 - ldr r0, [sp, #0x8] - add r7, #0x88 - str r1, [sp, #0x14] - cmp r1, r0 - blt _02025548 -_02025578: - ldr r0, [sp, #0x8] - mov r4, #0x0 - str r4, [sp, #0xc] - cmp r0, #0x0 - ble _020255BE - ldr r5, [sp, #0x10] - add r6, sp, #0x18 -_02025586: - ldr r3, [sp, #0x4] - add r7, r5, #0x0 - mov r2, #0x11 -_0202558C: - ldmia r3!, {r0-r1} - stmia r7!, {r0-r1} - sub r2, r2, #0x1 - bne _0202558C - ldr r1, [r6, #0x0] - cmp r1, #0x0 - blt _020255A6 - add r2, r1, #0x0 - mov r0, #0x88 - mul r2, r0 - ldr r1, _02025610 ; =0x0000FFFF - ldr r0, [sp, #0x0] - strh r1, [r0, r2] -_020255A6: - ldr r0, [sp, #0x4] - add r5, #0x88 - add r0, #0x88 - str r0, [sp, #0x4] - ldr r0, [sp, #0xc] - add r4, r4, #0x1 - add r1, r0, #0x1 - ldr r0, [sp, #0x8] - add r6, r6, #0x4 - str r1, [sp, #0xc] - cmp r1, r0 - blt _02025586 -_020255BE: - mov r0, #0x0 - mov r12, r0 - mov r0, #0x88 - add r1, r4, #0x0 - mul r1, r0 - ldr r0, [sp, #0x10] - ldr r3, [sp, #0x0] - add r5, r0, r1 -_020255CE: - ldrh r1, [r3, #0x0] - ldr r0, _02025610 ; =0x0000FFFF - cmp r1, r0 - beq _020255EC - add r6, r3, #0x0 - add r7, r5, #0x0 - mov r2, #0x11 -_020255DC: - ldmia r6!, {r0-r1} - stmia r7!, {r0-r1} - sub r2, r2, #0x1 - bne _020255DC - add r4, r4, #0x1 - add r5, #0x88 - cmp r4, #0x10 - bge _020255F8 -_020255EC: - mov r0, r12 - add r0, r0, #0x1 - add r3, #0x88 - mov r12, r0 - cmp r0, #0x10 - blt _020255CE -_020255F8: - mov r2, #0x22 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x10] - lsl r2, r2, #0x6 - bl memcpy - ldr r0, [sp, #0x10] - bl FUN_02016A18 - add sp, #0x2c - pop {r4-r7, pc} - nop -_02025610: .word 0x0000FFFF - - thumb_func_start FUN_02025614 -FUN_02025614: ; 0x02025614 - push {r3-r6} - mov r3, #0x0 - add r4, r0, #0x0 -_0202561A: - ldr r2, [r4, #0x10] - cmp r1, r2 - bne _02025626 - mov r0, #0x1 - pop {r3-r6} - bx lr -_02025626: - add r3, r3, #0x1 - add r4, #0x88 - cmp r3, #0x10 - blt _0202561A - mov r6, #0x0 - add r3, r6, #0x0 -_02025632: - add r4, r3, #0x0 - add r5, r0, #0x0 -_02025636: - ldr r2, [r5, #0x18] - cmp r1, r2 - bne _02025642 - add r0, r6, #0x2 - pop {r3-r6} - bx lr -_02025642: - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x10 - blt _02025636 - add r6, r6, #0x1 - add r0, #0x88 - cmp r6, #0x10 - blt _02025632 - mov r0, #0x0 - pop {r3-r6} - bx lr - - thumb_func_start FUN_02025658 -FUN_02025658: ; 0x02025658 - push {r3-r5, lr} - add r4, r0, #0x0 - mov r0, #0x0 - str r0, [r4, #0x0] - strb r0, [r4, #0x4] - ldr r0, _020256A0 ; =0x020ECAC4 - mov r1, #0x8 - ldrb r0, [r0, #0x0] - strb r0, [r4, #0x5] - ldr r0, _020256A4 ; =0x020ECAC0 - ldrb r0, [r0, #0x0] - strb r0, [r4, #0x6] - mov r0, #0xff - strb r0, [r4, #0x7] - add r0, r4, #0x0 - add r0, #0x8 - bl StringFillEOS - ldr r0, _020256A8 ; =0x0000FFFF - mov r1, #0x0 - add r2, r4, #0x0 -_02025682: - add r1, r1, #0x1 - strh r0, [r2, #0x18] - add r2, r2, #0x2 - cmp r1, #0x3 - blt _02025682 - mov r5, #0x0 - add r4, #0x20 -_02025690: - add r0, r4, #0x0 - bl FUN_02013724 - add r5, r5, #0x1 - add r4, #0x8 - cmp r5, #0x3 - blt _02025690 - pop {r3-r5, pc} - .balign 4 -_020256A0: .word 0x020ECAC4 -_020256A4: .word 0x020ECAC0 -_020256A8: .word 0x0000FFFF - - thumb_func_start FUN_020256AC -FUN_020256AC: ; 0x020256AC - ldrb r0, [r0, #0x7] - cmp r0, #0xb - bhi _020256B6 - mov r0, #0x1 - bx lr -_020256B6: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_020256BC -FUN_020256BC: ; 0x020256BC - push {r4, lr} - mov r1, #0x38 - bl FUN_020169D8 - add r4, r0, #0x0 - bl FUN_02025658 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020256D0 -FUN_020256D0: ; 0x020256D0 - ldr r3, _020256D8 ; =MI_CpuCopy8 - mov r2, #0x38 - bx r3 - nop -_020256D8: .word MI_CpuCopy8 - - thumb_func_start FUN_020256DC -FUN_020256DC: ; 0x020256DC - push {r4-r7, lr} - sub sp, #0x14 - add r7, r3, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02025658 - add r0, r7, #0x0 - strb r6, [r5, #0x7] - bl FUN_0206BB1C - str r0, [sp, #0x0] - add r0, r7, #0x0 - bl FUN_020238F4 - add r6, r0, #0x0 - bl FUN_0202398C - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x8 - bl StringCopy - add r0, r6, #0x0 - bl FUN_020239CC - strb r0, [r5, #0x4] - add r0, r6, #0x0 - bl FUN_020239BC - str r0, [r5, #0x0] - ldr r0, [sp, #0x0] - mov r6, #0x0 - bl FUN_0206B9AC - cmp r4, r0 - bge _020257AE - add r5, #0x18 -_0202572A: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl FUN_0206B9B0 - mov r1, #0x5 - mov r2, #0x0 - add r7, r0, #0x0 - bl FUN_020671BC - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - add r0, r7, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl FUN_020671BC - str r0, [sp, #0x8] - add r0, r7, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - str r0, [sp, #0xc] - add r0, r7, #0x0 - bl FUN_0206B6C8 - str r0, [sp, #0x10] - ldr r0, [sp, #0x4] - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x8] - bl FUN_0206B7BC - lsl r3, r6, #0x1 - ldrh r1, [r5, r3] - add r7, r0, #0x0 - ldr r0, _020257B4 ; =0xFFFFF000 - add r2, r1, #0x0 - and r2, r0 - ldr r0, [sp, #0x10] - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, _020257B8 ; =0x00000FFF - and r0, r1 - orr r0, r2 - strh r0, [r5, r3] - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldrh r1, [r5, r3] - ldr r0, _020257BC ; =0xFFFF0FFF - and r0, r1 - lsl r1, r7, #0x1c - lsr r1, r1, #0x10 - orr r0, r1 - strh r0, [r5, r3] - cmp r6, #0x3 - bhs _020257AE - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, [sp, #0x0] - bl FUN_0206B9AC - cmp r4, r0 - blt _0202572A -_020257AE: - add sp, #0x14 - pop {r4-r7, pc} - nop -_020257B4: .word 0xFFFFF000 -_020257B8: .word 0x00000FFF -_020257BC: .word 0xFFFF0FFF - - thumb_func_start FUN_020257C0 -FUN_020257C0: ; 0x020257C0 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_020257C4 -FUN_020257C4: ; 0x020257C4 - add r0, #0x8 - bx lr - - thumb_func_start FUN_020257C8 -FUN_020257C8: ; 0x020257C8 - ldrb r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_020257CC -FUN_020257CC: ; 0x020257CC - ldrb r0, [r0, #0x7] - bx lr - - thumb_func_start FUN_020257D0 -FUN_020257D0: ; 0x020257D0 - cmp r1, #0xc - bhs _020257D6 - strb r1, [r0, #0x7] -_020257D6: - bx lr - - thumb_func_start FUN_020257D8 -FUN_020257D8: ; 0x020257D8 - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_020257DC -FUN_020257DC: ; 0x020257DC - ldrb r0, [r0, #0x6] - bx lr - - thumb_func_start FUN_020257E0 -FUN_020257E0: ; 0x020257E0 - cmp r1, #0x3 - bhs _02025810 - cmp r2, #0x0 - beq _020257F0 - cmp r2, #0x1 - beq _020257FC - cmp r2, #0x2 - b _02025808 -_020257F0: - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0x18] - lsl r0, r0, #0x14 - lsr r0, r0, #0x14 - bx lr -_020257FC: - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0x18] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1c - bx lr -_02025808: - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0x18] - bx lr -_02025810: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02025814 -FUN_02025814: ; 0x02025814 - cmp r1, #0x3 - bhs _02025820 - add r0, #0x20 - lsl r1, r1, #0x3 - add r0, r0, r1 - bx lr -_02025820: - add r0, #0x20 - bx lr - - thumb_func_start FUN_02025824 -FUN_02025824: ; 0x02025824 - push {r3, lr} - cmp r2, #0x3 - bhs _02025834 - add r0, #0x20 - lsl r2, r2, #0x3 - add r0, r0, r2 - bl FUN_02013960 -_02025834: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02025838 -FUN_02025838: ; 0x02025838 - ldr r3, _02025840 ; =FUN_02022610 - mov r1, #0xf - bx r3 - nop -_02025840: .word FUN_02022610 - - thumb_func_start FUN_02025844 -FUN_02025844: ; 0x02025844 - mov r0, #0x46 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_0202584C -FUN_0202584C: ; 0x0202584C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 -_02025852: - add r0, r5, #0x0 - bl FUN_02025658 - add r4, r4, #0x1 - add r5, #0x38 - cmp r4, #0x14 - blt _02025852 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02025864 -FUN_02025864: ; 0x02025864 - push {r3, lr} - cmp r1, #0x0 - bne _02025872 - mov r1, #0x14 - bl FUN_020258F0 - pop {r3, pc} -_02025872: - mov r0, #0x0 - mvn r0, r0 - pop {r3, pc} - - thumb_func_start FUN_02025878 -FUN_02025878: ; 0x02025878 - push {r3, lr} - bl FUN_02025940 - cmp r0, #0x0 - beq _02025886 - bl FUN_02025658 -_02025886: - pop {r3, pc} - - thumb_func_start FUN_02025888 -FUN_02025888: ; 0x02025888 - push {r4, lr} - add r4, r3, #0x0 - bl FUN_02025940 - add r1, r0, #0x0 - beq _0202589A - add r0, r4, #0x0 - bl FUN_020256D0 -_0202589A: - pop {r4, pc} - - thumb_func_start FUN_0202589C -FUN_0202589C: ; 0x0202589C - push {r3, lr} - cmp r1, #0x0 - bne _020258AA - mov r1, #0x14 - bl FUN_02025918 - pop {r3, pc} -_020258AA: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020258B0 -FUN_020258B0: ; 0x020258B0 - push {r3-r5, lr} - add r5, r3, #0x0 - bl FUN_02025940 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020256BC - add r5, r0, #0x0 - cmp r4, #0x0 - beq _020258CE - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020256D0 -_020258CE: - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020258D4 -FUN_020258D4: ; 0x020258D4 - push {r4, lr} - add r4, r3, #0x0 - bl FUN_02025940 - cmp r0, #0x0 - bne _020258E8 - add r0, r4, #0x0 - bl FUN_02025658 - pop {r4, pc} -_020258E8: - add r1, r4, #0x0 - bl FUN_020256D0 - pop {r4, pc} - - thumb_func_start FUN_020258F0 -FUN_020258F0: ; 0x020258F0 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - mov r4, #0x0 - cmp r6, #0x0 - ble _02025912 -_020258FC: - add r0, r5, #0x0 - bl FUN_020256AC - cmp r0, #0x0 - bne _0202590A - add r0, r4, #0x0 - pop {r4-r6, pc} -_0202590A: - add r4, r4, #0x1 - add r5, #0x38 - cmp r4, r6 - blt _020258FC -_02025912: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} - - thumb_func_start FUN_02025918 -FUN_02025918: ; 0x02025918 - push {r3-r7, lr} - mov r4, #0x0 - add r7, r1, #0x0 - add r5, r0, #0x0 - add r6, r4, #0x0 - cmp r7, #0x0 - ble _0202593A -_02025926: - add r0, r5, #0x0 - bl FUN_020256AC - cmp r0, #0x0 - beq _02025932 - add r4, r4, #0x1 -_02025932: - add r6, r6, #0x1 - add r5, #0x38 - cmp r6, r7 - blt _02025926 -_0202593A: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02025940 -FUN_02025940: ; 0x02025940 - mov r3, #0x0 - cmp r1, #0x0 - bne _02025950 - cmp r2, #0x14 - bge _02025950 - mov r1, #0x38 - mul r1, r2 - add r3, r0, r1 -_02025950: - add r0, r3, #0x0 - bx lr - - thumb_func_start FUN_02025954 -FUN_02025954: ; 0x02025954 - ldr r0, _02025958 ; =0x000009B4 - bx lr - .balign 4 -_02025958: .word 0x000009B4 - - thumb_func_start FUN_0202595C -FUN_0202595C: ; 0x0202595C - mov r0, #0x94 - bx lr - - thumb_func_start FUN_02025960 -FUN_02025960: ; 0x02025960 - mov r0, #0x3c - bx lr - - thumb_func_start FUN_02025964 -FUN_02025964: ; 0x02025964 - push {r4, lr} - mov r1, #0x3c - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x3c - add r4, r0, #0x0 - bl MI_CpuFill8 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202597C -FUN_0202597C: ; 0x0202597C - push {r4-r7, lr} - sub sp, #0x1c - add r4, r0, #0x0 - add r0, sp, #0xc - add r1, sp, #0x0 - bl FUN_0201265C - ldr r0, _020259D8 ; =0x021C48B8 - ldr r6, [sp, #0xc] - ldr r1, [sp, #0x8] - ldr r0, [r0, #0x2c] - lsl r6, r6, #0x5 - add r5, r1, r0 - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r0, r0, r6 - lsl r0, r0, #0x5 - add r0, r1, r0 - mov r7, #0x0 - ldr r2, [sp, #0x0] - lsl r0, r0, #0x5 - add r0, r2, r0 - ldr r3, [sp, #0x4] - lsl r0, r0, #0x5 - add r0, r3, r0 - lsl r0, r0, #0x5 - add r5, r5, r0 - ldr r2, _020259DC ; =0x000009B4 - add r0, r4, #0x0 - add r1, r7, #0x0 - bl MI_CpuFill8 - add r0, r4, #0x0 - add r0, #0x94 - mov r1, #0x9b - str r5, [r0, #0x0] - lsl r1, r1, #0x4 - ldrb r2, [r4, r1] - mov r0, #0xf - bic r2, r0 - mov r0, #0x1 - orr r0, r2 - strb r0, [r4, r1] - add sp, #0x1c - pop {r4-r7, pc} - nop -_020259D8: .word 0x021C48B8 -_020259DC: .word 0x000009B4 - - thumb_func_start FUN_020259E0 -FUN_020259E0: ; 0x020259E0 - mov r1, #0x9 - mov r3, #0x0 - lsl r1, r1, #0x8 -_020259E6: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - bne _020259F2 - add r0, r3, #0x0 - bx lr -_020259F2: - add r3, r3, #0x1 - cmp r3, #0x28 - blt _020259E6 - mov r0, #0x0 - mvn r0, r0 - bx lr - .balign 4 - - thumb_func_start FUN_02025A00 -FUN_02025A00: ; 0x02025A00 - mov r1, #0x95 - mov r3, #0x0 - lsl r1, r1, #0x4 -_02025A06: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - bne _02025A12 - add r0, r3, #0x0 - bx lr -_02025A12: - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02025A06 - mov r0, #0x0 - mvn r0, r0 - bx lr - .balign 4 - - thumb_func_start FUN_02025A20 -FUN_02025A20: ; 0x02025A20 - ldr r1, _02025A3C ; =0x00000928 - mov r3, #0x0 -_02025A24: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - bne _02025A30 - add r0, r3, #0x0 - bx lr -_02025A30: - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02025A24 - mov r0, #0x0 - mvn r0, r0 - bx lr - .balign 4 -_02025A3C: .word 0x00000928 - - thumb_func_start FUN_02025A40 -FUN_02025A40: ; 0x02025A40 - ldr r1, _02025A5C ; =0x000008D8 - mov r3, #0x0 -_02025A44: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - bne _02025A50 - add r0, r3, #0x0 - bx lr -_02025A50: - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02025A44 - mov r0, #0x0 - mvn r0, r0 - bx lr - .balign 4 -_02025A5C: .word 0x000008D8 - - thumb_func_start FUN_02025A60 -FUN_02025A60: ; 0x02025A60 - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x0] - bl FUN_02026CC4 - ldr r1, _02025B50 ; =0x020EE958 - add r6, r0, #0x0 - ldrb r2, [r1, #0x0] - add r0, sp, #0x8 - strb r2, [r0, #0x6] - ldrb r2, [r1, #0x1] - strb r2, [r0, #0x7] - ldrb r2, [r1, #0x2] - strb r2, [r0, #0x8] - ldrb r2, [r1, #0x3] - strb r2, [r0, #0x9] - ldrb r2, [r1, #0x4] - strb r2, [r0, #0xa] - ldrb r2, [r1, #0x5] - strb r2, [r0, #0xb] - ldrb r2, [r1, #0x6] - strb r2, [r0, #0x0] - ldrb r2, [r1, #0x7] - strb r2, [r0, #0x1] - ldrb r2, [r1, #0x8] - strb r2, [r0, #0x2] - ldrb r2, [r1, #0x9] - strb r2, [r0, #0x3] - ldrb r2, [r1, #0xa] - strb r2, [r0, #0x4] - ldrb r1, [r1, #0xb] - strb r1, [r0, #0x5] - ldr r0, [sp, #0x0] - cmp r0, #0x0 - ble _02025B4C - str r0, [sp, #0x4] - cmp r0, #0x63 - ble _02025AB0 - mov r0, #0x63 - str r0, [sp, #0x4] -_02025AB0: - add r0, r6, #0x0 - add r0, #0x94 - ldr r3, [r0, #0x0] - mov r0, #0x0 - mov r12, r0 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _02025B28 - add r7, sp, #0xc - add r7, #0x2 -_02025AC4: - mov r2, #0x0 -_02025AC6: - ldr r0, _02025B54 ; =0x0000055C - add r4, r6, r2 - ldrb r5, [r4, r0] - cmp r5, #0x0 - beq _02025B16 - ldr r0, _02025B58 ; =0x5D588B65 - ldrb r1, [r7, r5] - mul r0, r3 - ldr r3, _02025B5C ; =0x00269EC3 - add r3, r0, r3 - cmp r1, #0x0 - bne _02025AE2 - lsr r0, r3, #0x10 - b _02025AE8 -_02025AE2: - lsr r0, r3, #0x10 - mul r1, r0 - lsr r0, r1, #0x10 -_02025AE8: - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - add r0, sp, #0x8 - ldrb r0, [r0, r5] - add r0, r0, r1 - mov r1, #0x17 - lsl r1, r1, #0x6 - ldrb r1, [r4, r1] - add r1, r0, r1 - cmp r1, #0x63 - bge _02025B0E - mov r1, #0x17 - lsl r1, r1, #0x6 - ldrb r1, [r4, r1] - add r1, r1, r0 - mov r0, #0x17 - lsl r0, r0, #0x6 - strb r1, [r4, r0] - b _02025B16 -_02025B0E: - mov r0, #0x17 - mov r1, #0x63 - lsl r0, r0, #0x6 - strb r1, [r4, r0] -_02025B16: - add r2, r2, #0x1 - cmp r2, #0x64 - blt _02025AC6 - mov r0, r12 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - mov r12, r1 - cmp r1, r0 - blt _02025AC4 -_02025B28: - add r0, r6, #0x0 - add r0, #0x94 - ldr r1, [r0, #0x0] - ldr r0, [sp, #0x0] - add r0, r1, r0 - bl FUN_0201BA10 - add r1, r6, #0x0 - add r1, #0x94 - str r0, [r1, #0x0] - mov r1, #0x9b - lsl r1, r1, #0x4 - ldrb r2, [r6, r1] - mov r0, #0xf - bic r2, r0 - mov r0, #0x1 - orr r0, r2 - strb r0, [r6, r1] -_02025B4C: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02025B50: .word 0x020EE958 -_02025B54: .word 0x0000055C -_02025B58: .word 0x5D588B65 -_02025B5C: .word 0x00269EC3 - - thumb_func_start FUN_02025B60 -FUN_02025B60: ; 0x02025B60 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r2, #0x0 - bl FUN_02026CC4 - cmp r4, #0x0 - blt _02025B90 - cmp r5, #0x0 - bne _02025B90 - add r1, r0, #0x0 - add r1, #0x98 - ldr r1, [r1, #0x0] - cmp r1, r4 - bge _02025B84 - mov r1, #0x0 - add r0, #0x98 - str r1, [r0, #0x0] - pop {r3-r5, pc} -_02025B84: - add r1, r0, #0x0 - add r1, #0x98 - ldr r1, [r1, #0x0] - add r0, #0x98 - sub r1, r1, r4 - str r1, [r0, #0x0] -_02025B90: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02025B94 -FUN_02025B94: ; 0x02025B94 - push {r3, lr} - bl FUN_02026CC4 - add r1, r0, #0x0 - add r1, #0x98 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _02025BB6 - add r1, r0, #0x0 - add r1, #0x9c - ldrb r1, [r1, #0x0] - cmp r1, #0x2 - bne _02025BB6 - add r1, r0, #0x0 - mov r2, #0x0 - add r1, #0x9c - strb r2, [r1, #0x0] -_02025BB6: - add r1, r0, #0x0 - add r1, #0x98 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _02025BD4 - add r1, r0, #0x0 - add r1, #0x9c - ldrb r1, [r1, #0x0] - cmp r1, #0x1 - bne _02025BD4 - mov r2, #0x5a - add r1, r0, #0x0 - lsl r2, r2, #0x4 - add r1, #0x98 - str r2, [r1, #0x0] -_02025BD4: - add r1, r0, #0x0 - add r1, #0x9c - ldrb r1, [r1, #0x0] - cmp r1, #0x1 - bne _02025BE4 - mov r1, #0x2 - add r0, #0x9c - strb r1, [r0, #0x0] -_02025BE4: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02025BE8 -FUN_02025BE8: ; 0x02025BE8 - push {r3, lr} - bl FUN_02026CC4 - add r1, r0, #0x0 - add r1, #0x9c - ldrb r1, [r1, #0x0] - cmp r1, #0x0 - bne _02025BFE - mov r1, #0x1 - add r0, #0x9c - strb r1, [r0, #0x0] -_02025BFE: - pop {r3, pc} - - thumb_func_start FUN_02025C00 -FUN_02025C00: ; 0x02025C00 - push {r3, lr} - bl FUN_02026CC4 - add r1, r0, #0x0 - add r1, #0x9c - ldrb r1, [r1, #0x0] - cmp r1, #0x1 - bne _02025C16 - mov r1, #0x0 - add r0, #0x9c - strb r1, [r0, #0x0] -_02025C16: - pop {r3, pc} - - thumb_func_start FUN_02025C18 -FUN_02025C18: ; 0x02025C18 - push {r3, lr} - bl FUN_02026CC4 - add r0, #0x9c - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - beq _02025C2A - mov r0, #0x1 - pop {r3, pc} -_02025C2A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02025C30 -FUN_02025C30: ; 0x02025C30 - mov r1, #0x1 - add r0, #0x9d - strb r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_02025C38 -FUN_02025C38: ; 0x02025C38 - add r0, #0x9d - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02025C40 -FUN_02025C40: ; 0x02025C40 - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _02025CD0 ; =0x0000010E - add r6, r1, #0x0 - ldrb r0, [r7, r0] - mov r4, #0x0 - add r5, r7, #0x0 - str r0, [sp, #0x0] -_02025C50: - add r0, r6, #0x0 - bl FUN_020239BC - add r1, r5, #0x0 - add r1, #0xa0 - ldr r1, [r1, #0x0] - cmp r1, r0 - beq _02025CCC - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x5 - blt _02025C50 - ldr r0, [sp, #0x0] - cmp r0, #0x5 - blt _02025C72 - bl ErrorHandling -_02025C72: - add r0, r6, #0x0 - bl FUN_0202398C - ldr r1, [sp, #0x0] - add r2, r7, #0x0 - add r2, #0xb4 - lsl r1, r1, #0x4 - add r1, r2, r1 - mov r2, #0x10 - bl MI_CpuCopy8 - add r0, r6, #0x0 - bl FUN_020239BC - ldr r1, [sp, #0x0] - lsl r1, r1, #0x2 - add r1, r7, r1 - add r1, #0xa0 - str r0, [r1, #0x0] - add r0, r6, #0x0 - bl FUN_02023A70 - ldr r1, [sp, #0x0] - add r2, r7, r1 - mov r1, #0x41 - lsl r1, r1, #0x2 - strb r0, [r2, r1] - add r0, r6, #0x0 - bl FUN_02023A68 - ldr r1, [sp, #0x0] - add r2, r7, r1 - ldr r1, _02025CD4 ; =0x00000109 - strb r0, [r2, r1] - add r0, r1, #0x5 - ldrb r0, [r7, r0] - add r2, r0, #0x1 - add r0, r1, #0x5 - strb r2, [r7, r0] - ldrb r0, [r7, r0] - cmp r0, #0x5 - blo _02025CCC - mov r2, #0x0 - add r0, r1, #0x5 - strb r2, [r7, r0] -_02025CCC: - pop {r3-r7, pc} - nop -_02025CD0: .word 0x0000010E -_02025CD4: .word 0x00000109 - - thumb_func_start FUN_02025CD8 -FUN_02025CD8: ; 0x02025CD8 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, _02025D38 ; =0x0000010E - ldrb r0, [r5, r0] - sub r0, r0, r2 - sub r4, r0, #0x1 - bpl _02025CE8 - add r4, r4, #0x5 -_02025CE8: - add r7, r5, #0x0 - lsl r0, r4, #0x4 - add r7, #0xb4 - str r0, [sp, #0x0] - ldrh r0, [r7, r0] - cmp r0, #0x0 - beq _02025D32 - add r0, r1, #0x0 - bl FUN_02023928 - ldr r1, [sp, #0x0] - add r6, r0, #0x0 - add r1, r7, r1 - bl FUN_0202395C - ldr r1, _02025D3C ; =0x00000109 - add r2, r5, r4 - ldrb r1, [r2, r1] - add r0, r6, #0x0 - bl FUN_02023A6C - mov r1, #0x41 - add r2, r5, r4 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - add r0, r6, #0x0 - bl FUN_02023A74 - lsl r1, r4, #0x2 - add r1, r5, r1 - add r1, #0xa0 - ldr r1, [r1, #0x0] - add r0, r6, #0x0 - bl FUN_020239B8 - add r0, r6, #0x0 - pop {r3-r7, pc} -_02025D32: - mov r0, #0x0 - pop {r3-r7, pc} - nop -_02025D38: .word 0x0000010E -_02025D3C: .word 0x00000109 - - thumb_func_start FUN_02025D40 -FUN_02025D40: ; 0x02025D40 - add r0, #0x94 - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02025D48 -FUN_02025D48: ; 0x02025D48 - push {r4, lr} - add r4, r0, #0x0 - cmp r4, #0xb - bge _02025D54 - bl ErrorHandling -_02025D54: - cmp r4, #0x3c - blt _02025D5C - bl ErrorHandling -_02025D5C: - sub r4, #0xb - ldr r0, _02025D68 ; =0x02105C74 - lsl r1, r4, #0x1 - ldrh r0, [r0, r1] - pop {r4, pc} - nop -_02025D68: .word 0x02105C74 - - thumb_func_start FUN_02025D6C -FUN_02025D6C: ; 0x02025D6C - push {r4-r5} - mov r2, #0x81 - mov r5, #0x0 - lsl r2, r2, #0x4 -_02025D74: - add r4, r0, r5 - ldrb r3, [r4, r2] - cmp r3, #0x0 - bne _02025D88 - mov r0, #0x81 - lsl r0, r0, #0x4 - strb r1, [r4, r0] - mov r0, #0x1 - pop {r4-r5} - bx lr -_02025D88: - add r5, r5, #0x1 - cmp r5, #0xc8 - blt _02025D74 - mov r0, #0x0 - pop {r4-r5} - bx lr - - thumb_func_start FUN_02025D94 -FUN_02025D94: ; 0x02025D94 - mov r1, #0x81 - mov r3, #0x0 - lsl r1, r1, #0x4 -_02025D9A: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - bne _02025DA6 - mov r0, #0x1 - bx lr -_02025DA6: - add r3, r3, #0x1 - cmp r3, #0xc8 - blt _02025D9A - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02025DB0 -FUN_02025DB0: ; 0x02025DB0 - mov r1, #0x81 - mov r3, #0x0 - lsl r1, r1, #0x4 -_02025DB6: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - beq _02025DC4 - add r3, r3, #0x1 - cmp r3, #0xc8 - blt _02025DB6 -_02025DC4: - add r0, r3, #0x0 - bx lr - - thumb_func_start FUN_02025DC8 -FUN_02025DC8: ; 0x02025DC8 - add r1, r0, r1 - mov r0, #0x81 - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02025DD4 -FUN_02025DD4: ; 0x02025DD4 - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02025F0C - cmp r0, #0x0 - beq _02025DE6 - bl ErrorHandling -_02025DE6: - mov r0, #0x81 - add r1, r5, r4 - lsl r0, r0, #0x4 - add r6, r4, #0x0 - ldrb r7, [r1, r0] - cmp r4, #0xc7 - bge _02025E06 - mov r1, #0x81 - add r0, r0, #0x1 - lsl r1, r1, #0x4 -_02025DFA: - add r3, r5, r6 - ldrb r2, [r3, r0] - add r6, r6, #0x1 - cmp r6, #0xc7 - strb r2, [r3, r1] - blt _02025DFA -_02025E06: - ldr r0, _02025E1C ; =0x000008D7 - mov r2, #0x0 - strb r2, [r5, r0] - add r0, r5, #0x0 - add r1, r4, #0x0 - sub r2, r2, #0x1 - bl FUN_02025F58 - add r0, r7, #0x0 - pop {r3-r7, pc} - nop -_02025E1C: .word 0x000008D7 - - thumb_func_start FUN_02025E20 -FUN_02025E20: ; 0x02025E20 - push {r4-r7, lr} - sub sp, #0xd4 - mov r4, #0x0 - add r5, r0, #0x0 - sub r0, r4, #0x1 - str r0, [sp, #0x4] - mov r0, #0x81 - lsl r0, r0, #0x4 - str r1, [sp, #0x8] - str r2, [sp, #0x0] - add r0, r5, r0 - add r1, sp, #0xc - mov r2, #0xc8 - bl MI_CpuCopy8 - ldr r2, [sp, #0x8] - add r1, sp, #0xc - add r0, r4, #0x0 - add r7, r1, r2 -_02025E46: - ldr r2, [sp, #0x8] - cmp r0, r2 - beq _02025E58 - ldrb r6, [r1, #0x0] - mov r2, #0x81 - add r3, r5, r4 - lsl r2, r2, #0x4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_02025E58: - ldr r2, [sp, #0x0] - cmp r0, r2 - bne _02025E6A - ldrb r6, [r7, #0x0] - mov r2, #0x81 - add r3, r5, r4 - lsl r2, r2, #0x4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_02025E6A: - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r0, #0xc8 - blt _02025E46 - ldr r0, [sp, #0x8] - mov r3, #0x0 - add r2, r0, #0x1 - mov r0, #0x9a - lsl r0, r0, #0x4 -_02025E7C: - add r1, r5, r3 - ldrb r1, [r1, r0] - cmp r2, r1 - bne _02025E88 - str r3, [sp, #0x4] - b _02025E8E -_02025E88: - add r3, r3, #0x1 - cmp r3, #0xf - blt _02025E7C -_02025E8E: - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - mov r2, #0x1 - bl FUN_02025F58 - mov r2, #0x0 - ldr r1, [sp, #0x8] - add r0, r5, #0x0 - mvn r2, r2 - bl FUN_02025F58 - mov r1, #0x0 - ldr r0, [sp, #0x4] - mvn r1, r1 - cmp r0, r1 - beq _02025ED6 - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x8] - cmp r0, r1 - bge _02025EC8 - add r0, r1, #0x0 - add r2, r0, #0x1 - ldr r0, [sp, #0x4] - add sp, #0xd4 - add r1, r5, r0 - mov r0, #0x9a - lsl r0, r0, #0x4 - strb r2, [r1, r0] - pop {r4-r7, pc} -_02025EC8: - add r0, r1, #0x0 - add r2, r0, #0x2 - ldr r0, [sp, #0x4] - add r1, r5, r0 - mov r0, #0x9a - lsl r0, r0, #0x4 - strb r2, [r1, r0] -_02025ED6: - add sp, #0xd4 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02025EDC -FUN_02025EDC: ; 0x02025EDC - push {r4-r6, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r6, #0x1 - bge _02025EEC - bl ErrorHandling -_02025EEC: - cmp r6, #0xf - ble _02025EF4 - bl ErrorHandling -_02025EF4: - sub r0, r6, #0x1 - add r1, r5, r0 - mov r0, #0x9a - add r2, r4, #0x1 - lsl r0, r0, #0x4 - strb r2, [r1, r0] - mov r0, #0x81 - add r1, r5, r4 - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02025F0C -FUN_02025F0C: ; 0x02025F0C - push {r3-r4} - add r3, r1, #0x1 - mov r1, #0x9a - mov r4, #0x0 - lsl r1, r1, #0x4 -_02025F16: - add r2, r0, r4 - ldrb r2, [r2, r1] - cmp r3, r2 - bne _02025F24 - mov r0, #0x1 - pop {r3-r4} - bx lr -_02025F24: - add r4, r4, #0x1 - cmp r4, #0xf - blt _02025F16 - mov r0, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02025F30 -FUN_02025F30: ; 0x02025F30 - sub r1, r1, #0x1 - cmp r1, #0xf - bge _02025F40 - add r1, r0, r1 - mov r0, #0x9a - mov r2, #0x0 - lsl r0, r0, #0x4 - strb r2, [r1, r0] -_02025F40: - bx lr - .balign 4 - - thumb_func_start FUN_02025F44 -FUN_02025F44: ; 0x02025F44 - mov r1, #0x9a - lsl r1, r1, #0x4 - add r0, r0, r1 - ldr r3, _02025F54 ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0xf - bx r3 - nop -_02025F54: .word MI_CpuFill8 - - thumb_func_start FUN_02025F58 -FUN_02025F58: ; 0x02025F58 - push {r4-r7} - mov r6, #0x9a - lsl r6, r6, #0x4 - mov r4, #0x0 - add r1, r1, #0x1 - add r7, r6, #0x0 -_02025F64: - add r3, r0, r4 - ldrb r5, [r3, r7] - cmp r5, r1 - ble _02025F76 - mov r5, #0x9a - lsl r5, r5, #0x4 - ldrb r5, [r3, r5] - add r5, r5, r2 - strb r5, [r3, r6] -_02025F76: - add r4, r4, #0x1 - cmp r4, #0xf - blt _02025F64 - pop {r4-r7} - bx lr - - thumb_func_start FUN_02025F80 -FUN_02025F80: ; 0x02025F80 - mov r1, #0x9 - mov r3, #0x0 - lsl r1, r1, #0x8 -_02025F86: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - beq _02025F94 - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02025F86 -_02025F94: - add r0, r3, #0x0 - bx lr - - thumb_func_start FUN_02025F98 -FUN_02025F98: ; 0x02025F98 - add r1, r0, r1 - mov r0, #0x9 - lsl r0, r0, #0x8 - ldrb r0, [r1, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02025FA4 -FUN_02025FA4: ; 0x02025FA4 - push {r3-r6} - mov r2, #0x9 - add r3, r0, r1 - lsl r2, r2, #0x8 - ldrb r2, [r3, r2] - cmp r1, #0x27 - bge _02025FC2 - ldr r3, _02025FD0 ; =0x00000901 - sub r4, r3, #0x1 -_02025FB6: - add r6, r0, r1 - ldrb r5, [r6, r3] - add r1, r1, #0x1 - cmp r1, #0x27 - strb r5, [r6, r4] - blt _02025FB6 -_02025FC2: - ldr r1, _02025FD4 ; =0x00000927 - mov r3, #0x0 - strb r3, [r0, r1] - add r0, r2, #0x0 - pop {r3-r6} - bx lr - nop -_02025FD0: .word 0x00000901 -_02025FD4: .word 0x00000927 - - thumb_func_start FUN_02025FD8 -FUN_02025FD8: ; 0x02025FD8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020259E0 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02025FF6 - add r1, r5, r0 - mov r0, #0x9 - lsl r0, r0, #0x8 - strb r4, [r1, r0] - mov r0, #0x1 - pop {r3-r5, pc} -_02025FF6: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02025FFC -FUN_02025FFC: ; 0x02025FFC - push {r3-r7, lr} - sub sp, #0x30 - add r5, r0, #0x0 - mov r0, #0x9 - lsl r0, r0, #0x8 - str r1, [sp, #0x4] - str r2, [sp, #0x0] - add r0, r5, r0 - add r1, sp, #0x8 - mov r2, #0x28 - mov r4, #0x0 - bl MI_CpuCopy8 - ldr r2, [sp, #0x4] - add r1, sp, #0x8 - add r0, r4, #0x0 - add r7, r1, r2 -_0202601E: - ldr r2, [sp, #0x4] - cmp r0, r2 - beq _02026030 - ldrb r6, [r1, #0x0] - mov r2, #0x9 - add r3, r5, r4 - lsl r2, r2, #0x8 - strb r6, [r3, r2] - add r4, r4, #0x1 -_02026030: - ldr r2, [sp, #0x0] - cmp r0, r2 - bne _02026042 - ldrb r6, [r7, #0x0] - mov r2, #0x9 - add r3, r5, r4 - lsl r2, r2, #0x8 - strb r6, [r3, r2] - add r4, r4, #0x1 -_02026042: - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r0, #0x28 - blt _0202601E - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02026050 -FUN_02026050: ; 0x02026050 - mov r1, #0x95 - mov r3, #0x0 - lsl r1, r1, #0x4 -_02026056: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - beq _02026064 - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02026056 -_02026064: - add r0, r3, #0x0 - bx lr - - thumb_func_start FUN_02026068 -FUN_02026068: ; 0x02026068 - add r1, r0, r1 - mov r0, #0x95 - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02026074 -FUN_02026074: ; 0x02026074 - add r1, r0, r1 - ldr r0, _0202607C ; =0x00000978 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_0202607C: .word 0x00000978 - - thumb_func_start FUN_02026080 -FUN_02026080: ; 0x02026080 - push {r4-r7} - add r2, r0, #0x0 - mov r0, #0x95 - add r3, r2, r1 - lsl r0, r0, #0x4 - ldrb r0, [r3, r0] - cmp r1, #0x27 - mov r12, r0 - bge _020260AE - ldr r7, _020260BC ; =0x00000951 - add r4, r7, #0x0 - add r5, r7, #0x0 - sub r3, r7, #0x1 - add r4, #0x28 - add r5, #0x27 -_0202609E: - add r0, r2, r1 - ldrb r6, [r0, r7] - add r1, r1, #0x1 - cmp r1, #0x27 - strb r6, [r0, r3] - ldrb r6, [r0, r4] - strb r6, [r0, r5] - blt _0202609E -_020260AE: - ldr r0, _020260C0 ; =0x00000977 - mov r1, #0x0 - strb r1, [r2, r0] - mov r0, r12 - pop {r4-r7} - bx lr - nop -_020260BC: .word 0x00000951 -_020260C0: .word 0x00000977 - - thumb_func_start FUN_020260C4 -FUN_020260C4: ; 0x020260C4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02025A00 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020260E8 - add r1, r5, r0 - mov r0, #0x95 - lsl r0, r0, #0x4 - strb r4, [r1, r0] - add r0, #0x28 - strb r6, [r1, r0] - mov r0, #0x1 - pop {r4-r6, pc} -_020260E8: - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020260EC -FUN_020260EC: ; 0x020260EC - push {r4-r7, lr} - sub sp, #0x5c - add r7, r0, #0x0 - mov r0, #0x95 - lsl r0, r0, #0x4 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r0, r7, r0 - add r1, sp, #0x34 - mov r2, #0x28 - mov r4, #0x0 - bl MI_CpuCopy8 - ldr r0, _02026168 ; =0x00000978 - add r1, sp, #0xc - add r0, r7, r0 - mov r2, #0x28 - bl MI_CpuCopy8 - ldr r3, [sp, #0x0] - add r1, sp, #0x34 - add r3, r1, r3 - mov r12, r3 - ldr r3, [sp, #0x0] - add r2, sp, #0xc - add r3, r2, r3 - add r0, r4, #0x0 - str r3, [sp, #0x8] -_02026124: - ldr r3, [sp, #0x0] - cmp r0, r3 - beq _0202613C - ldrb r5, [r1, #0x0] - mov r3, #0x95 - add r6, r7, r4 - lsl r3, r3, #0x4 - strb r5, [r6, r3] - ldrb r5, [r2, #0x0] - add r3, #0x28 - add r4, r4, #0x1 - strb r5, [r6, r3] -_0202613C: - ldr r3, [sp, #0x4] - cmp r0, r3 - bne _02026158 - mov r3, r12 - ldrb r5, [r3, #0x0] - mov r3, #0x95 - add r6, r7, r4 - lsl r3, r3, #0x4 - strb r5, [r6, r3] - ldr r3, [sp, #0x8] - add r4, r4, #0x1 - ldrb r5, [r3, #0x0] - ldr r3, _02026168 ; =0x00000978 - strb r5, [r6, r3] -_02026158: - add r0, r0, #0x1 - add r1, r1, #0x1 - add r2, r2, #0x1 - cmp r0, #0x28 - blt _02026124 - add sp, #0x5c - pop {r4-r7, pc} - nop -_02026168: .word 0x00000978 - - thumb_func_start FUN_0202616C -FUN_0202616C: ; 0x0202616C - ldr r1, _02026184 ; =0x00000928 - mov r3, #0x0 -_02026170: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - beq _0202617E - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02026170 -_0202617E: - add r0, r3, #0x0 - bx lr - nop -_02026184: .word 0x00000928 - - thumb_func_start FUN_02026188 -FUN_02026188: ; 0x02026188 - add r1, r0, r1 - ldr r0, _02026190 ; =0x00000928 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_02026190: .word 0x00000928 - - thumb_func_start FUN_02026194 -FUN_02026194: ; 0x02026194 - push {r3-r6} - ldr r2, _020261BC ; =0x00000928 - add r3, r0, r1 - ldrb r2, [r3, r2] - cmp r1, #0x27 - bge _020261B0 - ldr r3, _020261C0 ; =0x00000929 - sub r4, r3, #0x1 -_020261A4: - add r6, r0, r1 - ldrb r5, [r6, r3] - add r1, r1, #0x1 - cmp r1, #0x27 - strb r5, [r6, r4] - blt _020261A4 -_020261B0: - ldr r1, _020261C4 ; =0x0000094F - mov r3, #0x0 - strb r3, [r0, r1] - add r0, r2, #0x0 - pop {r3-r6} - bx lr - .balign 4 -_020261BC: .word 0x00000928 -_020261C0: .word 0x00000929 -_020261C4: .word 0x0000094F - - thumb_func_start FUN_020261C8 -FUN_020261C8: ; 0x020261C8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02025A20 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020261E4 - add r1, r5, r0 - ldr r0, _020261E8 ; =0x00000928 - strb r4, [r1, r0] - mov r0, #0x1 - pop {r3-r5, pc} -_020261E4: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_020261E8: .word 0x00000928 - - thumb_func_start FUN_020261EC -FUN_020261EC: ; 0x020261EC - push {r3-r7, lr} - sub sp, #0x30 - add r5, r0, #0x0 - ldr r0, _02026238 ; =0x00000928 - str r1, [sp, #0x4] - str r2, [sp, #0x0] - add r0, r5, r0 - add r1, sp, #0x8 - mov r2, #0x28 - mov r4, #0x0 - bl MI_CpuCopy8 - ldr r2, [sp, #0x4] - add r1, sp, #0x8 - add r0, r4, #0x0 - add r7, r1, r2 -_0202620C: - ldr r2, [sp, #0x4] - cmp r0, r2 - beq _0202621C - ldrb r6, [r1, #0x0] - ldr r2, _02026238 ; =0x00000928 - add r3, r5, r4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_0202621C: - ldr r2, [sp, #0x0] - cmp r0, r2 - bne _0202622C - ldrb r6, [r7, #0x0] - ldr r2, _02026238 ; =0x00000928 - add r3, r5, r4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_0202622C: - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r0, #0x28 - blt _0202620C - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_02026238: .word 0x00000928 - - thumb_func_start FUN_0202623C -FUN_0202623C: ; 0x0202623C - ldr r1, _02026254 ; =0x000008D8 - mov r3, #0x0 -_02026240: - add r2, r0, r3 - ldrb r2, [r2, r1] - cmp r2, #0x0 - beq _0202624E - add r3, r3, #0x1 - cmp r3, #0x28 - blt _02026240 -_0202624E: - add r0, r3, #0x0 - bx lr - nop -_02026254: .word 0x000008D8 - - thumb_func_start FUN_02026258 -FUN_02026258: ; 0x02026258 - add r1, r0, r1 - ldr r0, _02026260 ; =0x000008D8 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_02026260: .word 0x000008D8 - - thumb_func_start FUN_02026264 -FUN_02026264: ; 0x02026264 - push {r3-r6} - ldr r2, _0202628C ; =0x000008D8 - add r3, r0, r1 - ldrb r2, [r3, r2] - cmp r1, #0x27 - bge _02026280 - ldr r3, _02026290 ; =0x000008D9 - sub r4, r3, #0x1 -_02026274: - add r6, r0, r1 - ldrb r5, [r6, r3] - add r1, r1, #0x1 - cmp r1, #0x27 - strb r5, [r6, r4] - blt _02026274 -_02026280: - ldr r1, _02026294 ; =0x000008FF - mov r3, #0x0 - strb r3, [r0, r1] - add r0, r2, #0x0 - pop {r3-r6} - bx lr - .balign 4 -_0202628C: .word 0x000008D8 -_02026290: .word 0x000008D9 -_02026294: .word 0x000008FF - - thumb_func_start FUN_02026298 -FUN_02026298: ; 0x02026298 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02025A40 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020262B4 - add r1, r5, r0 - ldr r0, _020262B8 ; =0x000008D8 - strb r4, [r1, r0] - mov r0, #0x1 - pop {r3-r5, pc} -_020262B4: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_020262B8: .word 0x000008D8 - - thumb_func_start FUN_020262BC -FUN_020262BC: ; 0x020262BC - push {r3-r7, lr} - sub sp, #0x30 - add r5, r0, #0x0 - ldr r0, _02026308 ; =0x000008D8 - str r1, [sp, #0x4] - str r2, [sp, #0x0] - add r0, r5, r0 - add r1, sp, #0x8 - mov r2, #0x28 - mov r4, #0x0 - bl MI_CpuCopy8 - ldr r2, [sp, #0x4] - add r1, sp, #0x8 - add r0, r4, #0x0 - add r7, r1, r2 -_020262DC: - ldr r2, [sp, #0x4] - cmp r0, r2 - beq _020262EC - ldrb r6, [r1, #0x0] - ldr r2, _02026308 ; =0x000008D8 - add r3, r5, r4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_020262EC: - ldr r2, [sp, #0x0] - cmp r0, r2 - bne _020262FC - ldrb r6, [r7, #0x0] - ldr r2, _02026308 ; =0x000008D8 - add r3, r5, r4 - strb r6, [r3, r2] - add r4, r4, #0x1 -_020262FC: - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r0, #0x28 - blt _020262DC - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_02026308: .word 0x000008D8 - - thumb_func_start FUN_0202630C -FUN_0202630C: ; 0x0202630C - push {r3-r7, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r6, r3, #0x0 - cmp r4, #0x40 - blt _0202631E - bl ErrorHandling -_0202631E: - ldr r0, _02026350 ; =0x0000010F - add r1, r5, r4 - strb r7, [r1, r0] - lsl r1, r4, #0x1 - add r1, r4, r1 - add r2, r0, #0x0 - add r1, r5, r1 - add r2, #0x40 - strb r6, [r1, r2] - mov r2, #0xf - lsl r2, r2, #0x8 - add r3, r6, #0x0 - and r3, r2 - asr r4, r3, #0x8 - ldr r3, [sp, #0x18] - and r2, r3 - asr r2, r2, #0x4 - add r4, r4, r2 - add r2, r0, #0x0 - add r2, #0x41 - strb r4, [r1, r2] - add r0, #0x42 - strb r3, [r1, r0] - pop {r3-r7, pc} - nop -_02026350: .word 0x0000010F - - thumb_func_start FUN_02026354 -FUN_02026354: ; 0x02026354 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x40 - blt _02026362 - bl ErrorHandling -_02026362: - ldr r0, _0202636C ; =0x0000010F - add r1, r5, r4 - ldrb r0, [r1, r0] - pop {r3-r5, pc} - nop -_0202636C: .word 0x0000010F - - thumb_func_start FUN_02026370 -FUN_02026370: ; 0x02026370 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x40 - blt _0202637E - bl ErrorHandling -_0202637E: - lsl r0, r4, #0x1 - add r0, r4, r0 - add r1, r5, r0 - ldr r0, _02026398 ; =0x0000014F - ldrb r2, [r1, r0] - add r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x8 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - pop {r3-r5, pc} - .balign 4 -_02026398: .word 0x0000014F - - thumb_func_start FUN_0202639C -FUN_0202639C: ; 0x0202639C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x40 - blt _020263AA - bl ErrorHandling -_020263AA: - lsl r0, r4, #0x1 - add r0, r4, r0 - add r1, r5, r0 - ldr r0, _020263C4 ; =0x00000151 - ldrb r2, [r1, r0] - sub r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x4 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - pop {r3-r5, pc} - .balign 4 -_020263C4: .word 0x00000151 - - thumb_func_start FUN_020263C8 -FUN_020263C8: ; 0x020263C8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x40 - blt _020263D6 - bl ErrorHandling -_020263D6: - ldr r0, _020263F0 ; =0x0000010F - mov r1, #0x0 - add r2, r5, r4 - strb r1, [r2, r0] - add r0, #0x40 - add r2, r5, r0 - lsl r0, r4, #0x1 - add r0, r4, r0 - add r0, r2, r0 - mov r2, #0x3 - bl MI_CpuFill8 - pop {r3-r5, pc} - .balign 4 -_020263F0: .word 0x0000010F - - thumb_func_start FUN_020263F4 -FUN_020263F4: ; 0x020263F4 - push {r3-r7, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r6, r3, #0x0 - cmp r4, #0x10 - blt _02026406 - bl ErrorHandling -_02026406: - lsl r2, r4, #0x1 - ldr r1, _02026440 ; =0x0000050C - add r0, r5, r4 - add r2, r4, r2 - add r4, r5, r2 - add r2, r1, #0x0 - mov r5, #0xf - strb r7, [r0, r1] - add r2, #0x10 - strb r6, [r4, r2] - lsl r5, r5, #0x8 - add r2, r6, #0x0 - and r2, r5 - asr r3, r2, #0x8 - ldr r2, [sp, #0x18] - and r5, r2 - asr r5, r5, #0x4 - add r5, r3, r5 - add r3, r1, #0x0 - add r3, #0x11 - strb r5, [r4, r3] - add r3, r1, #0x0 - add r3, #0x12 - strb r2, [r4, r3] - ldr r2, [sp, #0x1c] - add r1, #0x40 - strb r2, [r0, r1] - pop {r3-r7, pc} - nop -_02026440: .word 0x0000050C - - thumb_func_start FUN_02026444 -FUN_02026444: ; 0x02026444 - add r1, r0, r1 - ldr r0, _0202644C ; =0x0000050C - ldrb r0, [r1, r0] - bx lr - .balign 4 -_0202644C: .word 0x0000050C - - thumb_func_start FUN_02026450 -FUN_02026450: ; 0x02026450 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _0202646C ; =0x0000051C - ldrb r2, [r1, r0] - add r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x8 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_0202646C: .word 0x0000051C - - thumb_func_start FUN_02026470 -FUN_02026470: ; 0x02026470 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _0202648C ; =0x0000051E - ldrb r2, [r1, r0] - sub r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x4 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_0202648C: .word 0x0000051E - - thumb_func_start FUN_02026490 -FUN_02026490: ; 0x02026490 - add r1, r0, r1 - ldr r0, _02026498 ; =0x0000054C - ldrb r0, [r1, r0] - bx lr - .balign 4 -_02026498: .word 0x0000054C - - thumb_func_start FUN_0202649C -FUN_0202649C: ; 0x0202649C - push {r3-r7, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r3, #0x0 - cmp r4, #0x64 - blt _020264AE - bl ErrorHandling -_020264AE: - ldr r1, _020264E8 ; =0x0000055C - add r0, r5, r4 - strb r6, [r0, r1] - lsl r1, r4, #0x1 - add r1, r4, r1 - add r4, r5, r1 - mov r5, #0xf - lsl r5, r5, #0x8 - add r2, r7, #0x0 - and r2, r5 - asr r3, r2, #0x8 - ldr r2, [sp, #0x18] - ldr r1, _020264EC ; =0x00000688 - and r5, r2 - asr r5, r5, #0x4 - add r5, r3, r5 - strb r7, [r4, r1] - add r3, r1, #0x1 - strb r5, [r4, r3] - add r3, r1, #0x2 - strb r2, [r4, r3] - add r2, r1, #0x0 - ldr r3, [sp, #0x1c] - sub r2, #0x64 - strb r3, [r0, r2] - ldr r2, [sp, #0x20] - sub r1, #0xc8 - strb r2, [r0, r1] - pop {r3-r7, pc} - .balign 4 -_020264E8: .word 0x0000055C -_020264EC: .word 0x00000688 - - thumb_func_start FUN_020264F0 -FUN_020264F0: ; 0x020264F0 - add r1, r0, r1 - ldr r0, _020264F8 ; =0x0000055C - ldrb r0, [r1, r0] - bx lr - .balign 4 -_020264F8: .word 0x0000055C - - thumb_func_start FUN_020264FC -FUN_020264FC: ; 0x020264FC - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _02026518 ; =0x00000688 - ldrb r2, [r1, r0] - add r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x8 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_02026518: .word 0x00000688 - - thumb_func_start FUN_0202651C -FUN_0202651C: ; 0x0202651C - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _02026538 ; =0x0000068A - ldrb r2, [r1, r0] - sub r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x4 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_02026538: .word 0x0000068A - - thumb_func_start FUN_0202653C -FUN_0202653C: ; 0x0202653C - add r1, r0, r1 - ldr r0, _02026544 ; =0x00000624 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_02026544: .word 0x00000624 - - thumb_func_start FUN_02026548 -FUN_02026548: ; 0x02026548 - add r1, r0, r1 - mov r0, #0x17 - lsl r0, r0, #0x6 - ldrb r0, [r1, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02026554 -FUN_02026554: ; 0x02026554 - push {r4-r7} - ldr r3, _020265B0 ; =0x00000211 - add r7, r0, #0x0 - mov r12, r1 - mov r0, #0x0 - add r1, r7, #0x0 - sub r4, r3, #0x1 - sub r5, r3, #0x2 -_02026564: - ldrb r6, [r1, r5] - cmp r6, #0x0 - bne _020265A0 - ldrb r6, [r1, r4] - cmp r6, #0x0 - bne _020265A0 - ldrb r6, [r1, r3] - cmp r6, #0x0 - bne _020265A0 - lsl r1, r0, #0x1 - add r1, r0, r1 - mov r5, #0xf - ldr r4, _020265B4 ; =0x0000020F - add r1, r7, r1 - mov r3, r12 - strb r3, [r1, r4] - lsl r5, r5, #0x8 - mov r3, r12 - and r3, r5 - asr r6, r3, #0x8 - add r3, r2, #0x0 - and r3, r5 - asr r3, r3, #0x4 - add r5, r6, r3 - add r3, r4, #0x1 - strb r5, [r1, r3] - add r3, r4, #0x2 - strb r2, [r1, r3] - pop {r4-r7} - bx lr -_020265A0: - add r0, r0, #0x1 - add r1, r1, #0x3 - cmp r0, #0xff - blt _02026564 - mov r0, #0x0 - pop {r4-r7} - bx lr - nop -_020265B0: .word 0x00000211 -_020265B4: .word 0x0000020F - - thumb_func_start FUN_020265B8 -FUN_020265B8: ; 0x020265B8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xff - blt _020265C6 - bl ErrorHandling -_020265C6: - ldr r0, _020265DC ; =0x0000020F - mov r2, #0x3 - add r1, r5, r0 - lsl r0, r4, #0x1 - add r0, r4, r0 - add r0, r1, r0 - mov r1, #0x0 - bl MI_CpuFill8 - pop {r3-r5, pc} - nop -_020265DC: .word 0x0000020F - - thumb_func_start FUN_020265E0 -FUN_020265E0: ; 0x020265E0 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _020265FC ; =0x0000020F - ldrb r2, [r1, r0] - add r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x8 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_020265FC: .word 0x0000020F - - thumb_func_start FUN_02026600 -FUN_02026600: ; 0x02026600 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r0, r1 - ldr r0, _0202661C ; =0x00000211 - ldrb r2, [r1, r0] - sub r0, r0, #0x1 - ldrb r0, [r1, r0] - lsl r1, r0, #0x4 - mov r0, #0xf - lsl r0, r0, #0x8 - and r0, r1 - add r0, r2, r0 - bx lr - nop -_0202661C: .word 0x00000211 - - thumb_func_start FUN_02026620 -FUN_02026620: ; 0x02026620 - mov r1, #0x9b - lsl r1, r1, #0x4 - ldrb r0, [r0, r1] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - bne _02026630 - mov r0, #0x1 - bx lr -_02026630: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02026634 -FUN_02026634: ; 0x02026634 - mov r2, #0x9b - lsl r2, r2, #0x4 - ldrb r3, [r0, r2] - mov r1, #0xf0 - bic r3, r1 - mov r1, #0x10 - orr r1, r3 - strb r1, [r0, r2] - bx lr - .balign 4 - - thumb_func_start FUN_02026648 -FUN_02026648: ; 0x02026648 - mov r1, #0x9b - lsl r1, r1, #0x4 - ldrb r0, [r0, r1] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - bx lr - - thumb_func_start FUN_02026654 -FUN_02026654: ; 0x02026654 - mov r2, #0x9b - lsl r2, r2, #0x4 - ldrb r3, [r0, r2] - mov r1, #0xf - bic r3, r1 - strb r3, [r0, r2] - bx lr - .balign 4 - - thumb_func_start FUN_02026664 -FUN_02026664: ; 0x02026664 - push {r3-r4} - cmp r1, #0x2c - blt _0202667E - cmp r1, #0x3b - bgt _0202667E - ldr r2, _02026684 ; =0x0000080C - mov r3, #0x1 - sub r1, #0x2c - ldr r4, [r0, r2] - lsl r3, r1 - add r1, r4, #0x0 - orr r1, r3 - str r1, [r0, r2] -_0202667E: - pop {r3-r4} - bx lr - nop -_02026684: .word 0x0000080C - - thumb_func_start FUN_02026688 -FUN_02026688: ; 0x02026688 - cmp r1, #0x2c - blt _02026690 - cmp r1, #0x3b - ble _02026694 -_02026690: - mov r0, #0x1 - bx lr -_02026694: - ldr r2, _020266AC ; =0x0000080C - sub r1, #0x2c - ldr r3, [r0, r2] - mov r0, #0x1 - add r2, r0, #0x0 - lsl r2, r1 - add r1, r3, #0x0 - tst r1, r2 - beq _020266A8 - mov r0, #0x0 -_020266A8: - bx lr - nop -_020266AC: .word 0x0000080C - - thumb_func_start FUN_020266B0 -FUN_020266B0: ; 0x020266B0 - ldr r1, _020266C4 ; =0x000009AF - ldrb r2, [r0, r1] - cmp r2, #0x63 - blo _020266BE - mov r2, #0x0 - strb r2, [r0, r1] - bx lr -_020266BE: - add r2, r2, #0x1 - strb r2, [r0, r1] - bx lr - .balign 4 -_020266C4: .word 0x000009AF - - thumb_func_start FUN_020266C8 -FUN_020266C8: ; 0x020266C8 - ldr r1, _020266D0 ; =0x000009AF - ldrb r0, [r0, r1] - bx lr - nop -_020266D0: .word 0x000009AF - - thumb_func_start FUN_020266D4 -FUN_020266D4: ; 0x020266D4 - ldr r3, _020266DC ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x94 - bx r3 - .balign 4 -_020266DC: .word MI_CpuFill8 - - thumb_func_start FUN_020266E0 -FUN_020266E0: ; 0x020266E0 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x2d - bl MI_CpuFill8 - add r0, r4, #0x0 - add r0, #0x2d - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x8c - strh r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x8e - strh r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x90 - strb r1, [r0, #0x0] - add r4, #0x91 - strb r1, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02026714 -FUN_02026714: ; 0x02026714 - mov r1, #0x0 - add r0, #0x91 - strb r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202671C -FUN_0202671C: ; 0x0202671C - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r7, r2, #0x0 - add r6, r3, #0x0 - cmp r4, #0x20 - blt _0202672E - bl ErrorHandling -_0202672E: - cmp r6, #0x20 - blt _02026736 - bl ErrorHandling -_02026736: - ldr r0, [sp, #0x18] - cmp r0, #0x20 - blt _02026740 - bl ErrorHandling -_02026740: - cmp r5, #0x0 - bne _02026748 - bl ErrorHandling -_02026748: - cmp r4, #0x0 - beq _02026774 - cmp r4, #0x10 - bge _02026762 - sub r1, r4, #0x1 - lsl r0, r1, #0x1 - add r0, r1, r0 - strb r6, [r5, r0] - ldr r1, [sp, #0x18] - add r0, r5, r0 - strb r1, [r0, #0x1] - strb r7, [r0, #0x2] - pop {r3-r7, pc} -_02026762: - sub r4, #0x10 - lsl r2, r4, #0x1 - add r0, r5, r2 - add r0, #0x2d - strb r6, [r0, #0x0] - add r0, r5, r2 - ldr r1, [sp, #0x18] - add r0, #0x2e - strb r1, [r0, #0x0] -_02026774: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02026778 -FUN_02026778: ; 0x02026778 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - add r4, r3, #0x0 - bl FUN_020267C4 - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r3, r7, #0x0 - str r4, [sp, #0x0] - bl FUN_0202671C - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02026798 -FUN_02026798: ; 0x02026798 - add r0, #0x88 - ldr r0, [r0, #0x0] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - cmp r0, #0x32 - blt _020267A8 - mov r0, #0x5 - bx lr -_020267A8: - cmp r0, #0xa - blt _020267B0 - mov r0, #0x4 - bx lr -_020267B0: - cmp r0, #0x3 - blt _020267B8 - mov r0, #0x3 - bx lr -_020267B8: - cmp r0, #0x1 - blt _020267C0 - mov r0, #0x2 - bx lr -_020267C0: - mov r0, #0x1 - bx lr - - thumb_func_start FUN_020267C4 -FUN_020267C4: ; 0x020267C4 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x20 - blt _020267D2 - bl ErrorHandling -_020267D2: - cmp r5, #0x0 - bne _020267DE - add r0, r4, #0x0 - bl FUN_02026798 - pop {r3-r5, pc} -_020267DE: - cmp r5, #0x10 - bge _020267EE - sub r1, r5, #0x1 - lsl r0, r1, #0x1 - add r0, r1, r0 - add r0, r4, r0 - ldrb r0, [r0, #0x2] - pop {r3-r5, pc} -_020267EE: - sub r5, #0x10 - lsl r1, r5, #0x1 - add r0, r4, r1 - add r0, #0x2d - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202680A - add r0, r4, r1 - add r0, #0x2e - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202680A - mov r0, #0x6 - pop {r3-r5, pc} -_0202680A: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02026810 -FUN_02026810: ; 0x02026810 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x20 - blt _0202681E - bl ErrorHandling -_0202681E: - cmp r5, #0x0 - bne _02026826 - mov r0, #0xf - pop {r3-r5, pc} -_02026826: - cmp r5, #0x10 - bge _02026834 - sub r1, r5, #0x1 - lsl r0, r1, #0x1 - add r0, r1, r0 - ldrb r0, [r4, r0] - pop {r3-r5, pc} -_02026834: - sub r5, #0x10 - lsl r0, r5, #0x1 - add r0, r4, r0 - add r0, #0x2d - ldrb r0, [r0, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02026840 -FUN_02026840: ; 0x02026840 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x20 - blt _0202684E - bl ErrorHandling -_0202684E: - cmp r5, #0x0 - bne _02026856 - mov r0, #0xc - pop {r3-r5, pc} -_02026856: - cmp r5, #0x10 - bge _02026866 - sub r1, r5, #0x1 - lsl r0, r1, #0x1 - add r0, r1, r0 - add r0, r4, r0 - ldrb r0, [r0, #0x1] - pop {r3-r5, pc} -_02026866: - sub r5, #0x10 - lsl r0, r5, #0x1 - add r0, r4, r0 - add r0, #0x2e - ldrb r0, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02026874 -FUN_02026874: ; 0x02026874 - add r0, #0x88 - ldr r0, [r0, #0x0] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - cmp r0, #0x32 - blo _02026884 - mov r0, #0x0 - bx lr -_02026884: - cmp r0, #0xa - blo _0202688C - mov r0, #0x6 - bx lr -_0202688C: - cmp r0, #0x3 - blo _02026894 - mov r0, #0xb - bx lr -_02026894: - cmp r0, #0x1 - blo _0202689C - mov r0, #0xf - bx lr -_0202689C: - mov r0, #0x10 - bx lr - - thumb_func_start FUN_020268A0 -FUN_020268A0: ; 0x020268A0 - add r0, #0x88 - ldr r0, [r0, #0x0] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - cmp r0, #0x32 - blo _020268B0 - mov r0, #0xf - bx lr -_020268B0: - cmp r0, #0xa - blo _020268B8 - mov r0, #0xf - bx lr -_020268B8: - cmp r0, #0x3 - blo _020268C0 - mov r0, #0xf - bx lr -_020268C0: - cmp r0, #0x1 - blo _020268C8 - mov r0, #0xc - bx lr -_020268C8: - mov r0, #0xa - bx lr - - thumb_func_start FUN_020268CC -FUN_020268CC: ; 0x020268CC - ldr r0, [r0, #0x0] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_020268D4 -FUN_020268D4: ; 0x020268D4 - push {r3, lr} - bl FUN_020269A0 - cmp r0, #0x4 - bne _020268E2 - mov r0, #0x1 - pop {r3, pc} -_020268E2: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020268E8 -FUN_020268E8: ; 0x020268E8 - ldr r3, [r0, #0x0] - ldr r2, _020268F8 ; =0xFFF00000 - and r3, r2 - ldr r2, _020268FC ; =0x000FFFFF - and r1, r2 - orr r1, r3 - str r1, [r0, #0x0] - bx lr - .balign 4 -_020268F8: .word 0xFFF00000 -_020268FC: .word 0x000FFFFF - - thumb_func_start FUN_02026900 -FUN_02026900: ; 0x02026900 - ldr r0, [r0, #0x4] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026908 -FUN_02026908: ; 0x02026908 - push {r3-r4} - ldr r2, [r0, #0x4] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _0202692C ; =0x000F423F - cmp r4, r1 - bhs _02026926 - ldr r1, _02026930 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026934 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x4] -_02026926: - pop {r3-r4} - bx lr - nop -_0202692C: .word 0x000F423F -_02026930: .word 0xFFF00000 -_02026934: .word 0x000FFFFF - - thumb_func_start FUN_02026938 -FUN_02026938: ; 0x02026938 - ldr r0, [r0, #0x8] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026940 -FUN_02026940: ; 0x02026940 - push {r3-r4} - ldr r2, [r0, #0x8] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026964 ; =0x000F423F - cmp r4, r1 - bhs _0202695E - ldr r1, _02026968 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _0202696C ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x8] -_0202695E: - pop {r3-r4} - bx lr - nop -_02026964: .word 0x000F423F -_02026968: .word 0xFFF00000 -_0202696C: .word 0x000FFFFF - - thumb_func_start FUN_02026970 -FUN_02026970: ; 0x02026970 - push {r3-r4} - ldr r2, [r0, #0xc] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026994 ; =0x000F423F - cmp r4, r1 - bhs _0202698E - ldr r1, _02026998 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _0202699C ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0xc] -_0202698E: - pop {r3-r4} - bx lr - nop -_02026994: .word 0x000F423F -_02026998: .word 0xFFF00000 -_0202699C: .word 0x000FFFFF - - thumb_func_start FUN_020269A0 -FUN_020269A0: ; 0x020269A0 - ldr r0, [r0, #0x38] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - cmp r0, #0x32 - blt _020269AE - mov r0, #0x4 - bx lr -_020269AE: - cmp r0, #0xa - blt _020269B6 - mov r0, #0x3 - bx lr -_020269B6: - cmp r0, #0x3 - blt _020269BE - mov r0, #0x2 - bx lr -_020269BE: - cmp r0, #0x1 - blt _020269C6 - mov r0, #0x1 - bx lr -_020269C6: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_020269CC -FUN_020269CC: ; 0x020269CC - ldr r0, [r0, #0x38] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_020269D4 -FUN_020269D4: ; 0x020269D4 - push {r3-r4} - ldr r2, [r0, #0x38] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _020269F8 ; =0x000F423F - cmp r4, r1 - bhs _020269F2 - ldr r1, _020269FC ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026A00 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x38] -_020269F2: - pop {r3-r4} - bx lr - nop -_020269F8: .word 0x000F423F -_020269FC: .word 0xFFF00000 -_02026A00: .word 0x000FFFFF - - thumb_func_start FUN_02026A04 -FUN_02026A04: ; 0x02026A04 - ldr r0, [r0, #0x10] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026A0C -FUN_02026A0C: ; 0x02026A0C - push {r4-r5} - cmp r1, #0x0 - ble _02026A2C - ldr r4, [r0, #0x10] - lsl r2, r4, #0xc - lsr r5, r2, #0xc - ldr r2, _02026A44 ; =0x000F423F - sub r3, r2, r1 - cmp r5, r3 - bls _02026A2C - ldr r1, _02026A48 ; =0xFFF00000 - and r1, r4 - orr r1, r2 - str r1, [r0, #0x10] - pop {r4-r5} - bx lr -_02026A2C: - ldr r3, [r0, #0x10] - ldr r2, _02026A48 ; =0xFFF00000 - and r2, r3 - lsl r3, r3, #0xc - lsr r3, r3, #0xc - add r3, r3, r1 - ldr r1, _02026A4C ; =0x000FFFFF - and r1, r3 - orr r1, r2 - str r1, [r0, #0x10] - pop {r4-r5} - bx lr - .balign 4 -_02026A44: .word 0x000F423F -_02026A48: .word 0xFFF00000 -_02026A4C: .word 0x000FFFFF - - thumb_func_start FUN_02026A50 -FUN_02026A50: ; 0x02026A50 - ldr r0, [r0, #0x14] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026A58 -FUN_02026A58: ; 0x02026A58 - push {r4-r5} - cmp r1, #0x0 - ble _02026A78 - ldr r4, [r0, #0x14] - lsl r2, r4, #0xc - lsr r5, r2, #0xc - ldr r2, _02026A90 ; =0x000F423F - sub r3, r2, r1 - cmp r5, r3 - bls _02026A78 - ldr r1, _02026A94 ; =0xFFF00000 - and r1, r4 - orr r1, r2 - str r1, [r0, #0x14] - pop {r4-r5} - bx lr -_02026A78: - ldr r3, [r0, #0x14] - ldr r2, _02026A94 ; =0xFFF00000 - and r2, r3 - lsl r3, r3, #0xc - lsr r3, r3, #0xc - add r3, r3, r1 - ldr r1, _02026A98 ; =0x000FFFFF - and r1, r3 - orr r1, r2 - str r1, [r0, #0x14] - pop {r4-r5} - bx lr - .balign 4 -_02026A90: .word 0x000F423F -_02026A94: .word 0xFFF00000 -_02026A98: .word 0x000FFFFF - - thumb_func_start FUN_02026A9C -FUN_02026A9C: ; 0x02026A9C - push {r4-r5} - cmp r1, #0x0 - ble _02026ABC - ldr r4, [r0, #0x18] - lsl r2, r4, #0xc - lsr r5, r2, #0xc - ldr r2, _02026AD4 ; =0x000F423F - sub r3, r2, r1 - cmp r5, r3 - bls _02026ABC - ldr r1, _02026AD8 ; =0xFFF00000 - and r1, r4 - orr r1, r2 - str r1, [r0, #0x18] - pop {r4-r5} - bx lr -_02026ABC: - ldr r3, [r0, #0x18] - ldr r2, _02026AD8 ; =0xFFF00000 - and r2, r3 - lsl r3, r3, #0xc - lsr r3, r3, #0xc - add r3, r3, r1 - ldr r1, _02026ADC ; =0x000FFFFF - and r1, r3 - orr r1, r2 - str r1, [r0, #0x18] - pop {r4-r5} - bx lr - .balign 4 -_02026AD4: .word 0x000F423F -_02026AD8: .word 0xFFF00000 -_02026ADC: .word 0x000FFFFF - - thumb_func_start FUN_02026AE0 -FUN_02026AE0: ; 0x02026AE0 - ldr r0, [r0, #0x1c] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026AE8 -FUN_02026AE8: ; 0x02026AE8 - push {r3-r4} - ldr r2, [r0, #0x1c] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026B0C ; =0x000F423F - cmp r4, r1 - bhs _02026B06 - ldr r1, _02026B10 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026B14 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x1c] -_02026B06: - pop {r3-r4} - bx lr - nop -_02026B0C: .word 0x000F423F -_02026B10: .word 0xFFF00000 -_02026B14: .word 0x000FFFFF - - thumb_func_start FUN_02026B18 -FUN_02026B18: ; 0x02026B18 - ldr r0, [r0, #0x20] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026B20 -FUN_02026B20: ; 0x02026B20 - push {r3-r4} - ldr r2, [r0, #0x20] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026B44 ; =0x000F423F - cmp r4, r1 - bhs _02026B3E - ldr r1, _02026B48 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026B4C ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x20] -_02026B3E: - pop {r3-r4} - bx lr - nop -_02026B44: .word 0x000F423F -_02026B48: .word 0xFFF00000 -_02026B4C: .word 0x000FFFFF - - thumb_func_start FUN_02026B50 -FUN_02026B50: ; 0x02026B50 - ldr r0, [r0, #0x24] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026B58 -FUN_02026B58: ; 0x02026B58 - push {r3-r4} - ldr r2, [r0, #0x24] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026B7C ; =0x000F423F - cmp r4, r1 - bhs _02026B76 - ldr r1, _02026B80 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026B84 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x24] -_02026B76: - pop {r3-r4} - bx lr - nop -_02026B7C: .word 0x000F423F -_02026B80: .word 0xFFF00000 -_02026B84: .word 0x000FFFFF - - thumb_func_start FUN_02026B88 -FUN_02026B88: ; 0x02026B88 - ldr r0, [r0, #0x28] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026B90 -FUN_02026B90: ; 0x02026B90 - push {r3-r4} - ldr r2, [r0, #0x28] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026BB4 ; =0x000F423F - cmp r4, r1 - bhs _02026BAE - ldr r1, _02026BB8 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026BBC ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x28] -_02026BAE: - pop {r3-r4} - bx lr - nop -_02026BB4: .word 0x000F423F -_02026BB8: .word 0xFFF00000 -_02026BBC: .word 0x000FFFFF - - thumb_func_start FUN_02026BC0 -FUN_02026BC0: ; 0x02026BC0 - ldr r0, [r0, #0x2c] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026BC8 -FUN_02026BC8: ; 0x02026BC8 - push {r3-r4} - ldr r2, [r0, #0x2c] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026BEC ; =0x000F423F - cmp r4, r1 - bhs _02026BE6 - ldr r1, _02026BF0 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026BF4 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x2c] -_02026BE6: - pop {r3-r4} - bx lr - nop -_02026BEC: .word 0x000F423F -_02026BF0: .word 0xFFF00000 -_02026BF4: .word 0x000FFFFF - - thumb_func_start FUN_02026BF8 -FUN_02026BF8: ; 0x02026BF8 - ldr r0, [r0, #0x30] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026C00 -FUN_02026C00: ; 0x02026C00 - push {r3-r4} - ldr r2, [r0, #0x30] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026C24 ; =0x000F423F - cmp r4, r1 - bhs _02026C1E - ldr r1, _02026C28 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026C2C ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x30] -_02026C1E: - pop {r3-r4} - bx lr - nop -_02026C24: .word 0x000F423F -_02026C28: .word 0xFFF00000 -_02026C2C: .word 0x000FFFFF - - thumb_func_start FUN_02026C30 -FUN_02026C30: ; 0x02026C30 - ldr r0, [r0, #0x34] - lsl r0, r0, #0xc - lsr r0, r0, #0xc - bx lr - - thumb_func_start FUN_02026C38 -FUN_02026C38: ; 0x02026C38 - push {r3-r4} - ldr r2, [r0, #0x34] - lsl r1, r2, #0xc - lsr r4, r1, #0xc - ldr r1, _02026C5C ; =0x000F423F - cmp r4, r1 - bhs _02026C56 - ldr r1, _02026C60 ; =0xFFF00000 - add r3, r2, #0x0 - and r3, r1 - ldr r1, _02026C64 ; =0x000FFFFF - add r2, r4, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x34] -_02026C56: - pop {r3-r4} - bx lr - nop -_02026C5C: .word 0x000F423F -_02026C60: .word 0xFFF00000 -_02026C64: .word 0x000FFFFF - - thumb_func_start FUN_02026C68 -FUN_02026C68: ; 0x02026C68 - push {r3-r4} - add r4, r0, #0x0 - add r4, #0x8c - strh r1, [r4, #0x0] - add r1, r0, #0x0 - add r1, #0x8e - strh r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x90 - strb r3, [r1, #0x0] - mov r1, #0x1 - add r0, #0x91 - strb r1, [r0, #0x0] - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_02026C88 -FUN_02026C88: ; 0x02026C88 - add r0, #0x8c - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02026C90 -FUN_02026C90: ; 0x02026C90 - add r0, #0x8e - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02026C98 -FUN_02026C98: ; 0x02026C98 - add r0, #0x90 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02026CA0 -FUN_02026CA0: ; 0x02026CA0 - add r0, #0x91 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02026CA8 -FUN_02026CA8: ; 0x02026CA8 - ldr r3, _02026CB0 ; =FUN_02022610 - mov r1, #0xc - bx r3 - nop -_02026CB0: .word FUN_02022610 - - thumb_func_start FUN_02026CB4 -FUN_02026CB4: ; 0x02026CB4 - push {r3, lr} - mov r1, #0xc - bl FUN_02022610 - add r0, #0x50 - pop {r3, pc} - - thumb_func_start FUN_02026CC0 -FUN_02026CC0: ; 0x02026CC0 - add r0, #0x50 - bx lr - - thumb_func_start FUN_02026CC4 -FUN_02026CC4: ; 0x02026CC4 - ldr r3, _02026CCC ; =FUN_02022610 - mov r1, #0xc - bx r3 - nop -_02026CCC: .word FUN_02022610 - - thumb_func_start FUN_02026CD0 -FUN_02026CD0: ; 0x02026CD0 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - add r0, r4, #0x0 - mov r1, #0x5 - mov r2, #0x0 - add r7, r3, #0x0 - bl FUN_020671BC - add r2, r5, #0x0 - strh r0, [r5, #0x8] - add r0, r4, #0x0 - mov r1, #0x74 - add r2, #0xa - bl FUN_020671BC - mov r1, #0x0 - add r0, r4, #0x0 - add r2, r1, #0x0 - bl FUN_020671BC - str r0, [r5, #0x0] - add r0, r4, #0x0 - mov r1, #0x7 - mov r2, #0x0 - bl FUN_020671BC - str r0, [r5, #0x4] - add r0, r4, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - add r1, r5, #0x0 - add r1, #0x33 - strb r0, [r1, #0x0] - add r0, r5, #0x0 - add r0, #0x31 - strb r6, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x32 - strb r7, [r0, #0x0] - add r1, sp, #0x8 - mov r0, #0x10 - ldrsb r0, [r1, r0] - add r5, #0x30 - strb r0, [r5, #0x0] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02026D34 -FUN_02026D34: ; 0x02026D34 - push {r3-r6, lr} - sub sp, #0xc - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r0, r4, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x8 - bl MOD17_021DB858 - add r0, r4, #0x0 - bl MOD17_021DB7E8 - add r4, r0, #0x0 - mov r0, #0x1 - ldr r1, [sp, #0x4] - lsl r0, r0, #0x8 - cmp r1, r0 - blt _02026D5E - bl ErrorHandling -_02026D5E: - mov r0, #0x1 - ldr r1, [sp, #0x8] - lsl r0, r0, #0x8 - cmp r1, r0 - blt _02026D6C - bl ErrorHandling -_02026D6C: - mov r0, #0x7f - mvn r0, r0 - cmp r4, r0 - bgt _02026D78 - bl ErrorHandling -_02026D78: - lsl r0, r4, #0x18 - asr r0, r0, #0x18 - str r0, [sp, #0x0] - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x8] - lsl r2, r2, #0x18 - lsl r3, r3, #0x18 - add r0, r5, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl FUN_02026CD0 - add sp, #0xc - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02026D98 -FUN_02026D98: ; 0x02026D98 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - add r1, r5, #0x0 - add r4, r2, #0x0 - add r1, #0x20 - mov r2, #0x8 - bl FUN_02021EF0 - add r5, #0x34 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02026DB0 -FUN_02026DB0: ; 0x02026DB0 - strb r1, [r0, #0x0] - ldr r1, _02026DC0 ; =0xFFFFFFF0 - strb r2, [r0, #0x1] - strb r3, [r0, #0x2] - add r1, sp - ldrb r1, [r1, #0x10] - strb r1, [r0, #0x3] - bx lr - .balign 4 -_02026DC0: .word 0xFFFFFFF0 - - thumb_func_start FUN_02026DC4 -FUN_02026DC4: ; 0x02026DC4 - push {r4-r6, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - cmp r4, #0x3d - blo _02026DD4 - bl ErrorHandling -_02026DD4: - lsr r2, r4, #0x1f - lsl r1, r4, #0x1d - sub r1, r1, r2 - mov r0, #0x1d - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r0, r0, #0x1a - lsr r1, r0, #0x18 - lsr r0, r4, #0x3 - lsl r0, r0, #0x18 - mov r2, #0xf - lsr r0, r0, #0x16 - lsl r2, r1 - ldr r3, [r5, r0] - mvn r2, r2 - and r2, r3 - str r2, [r5, r0] - add r2, r6, #0x0 - ldr r3, [r5, r0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - str r1, [r5, r0] - pop {r4-r6, pc} - - thumb_func_start FUN_02026E08 -FUN_02026E08: ; 0x02026E08 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3d - blo _02026E16 - bl ErrorHandling -_02026E16: - lsr r3, r4, #0x1f - lsl r2, r4, #0x1d - lsr r0, r4, #0x3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x16 - sub r2, r2, r3 - mov r1, #0x1d - ror r2, r1 - add r1, r3, r2 - lsl r1, r1, #0x18 - ldr r0, [r5, r0] - lsr r1, r1, #0x18 - lsl r1, r1, #0x1a - add r2, r0, #0x0 - lsr r1, r1, #0x18 - lsr r2, r1 - mov r0, #0xf - and r0, r2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x9 - bls _02026E44 - mov r0, #0x9 -_02026E44: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02026E48 -FUN_02026E48: ; 0x02026E48 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x2 - blo _02026E58 - bl ErrorHandling -_02026E58: - lsr r2, r6, #0x1f - lsl r1, r6, #0x1b - sub r1, r1, r2 - mov r0, #0x1b - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - lsr r0, r6, #0x5 - lsl r0, r0, #0x18 - mov r2, #0x1 - lsr r0, r0, #0x16 - lsl r2, r1 - ldr r3, [r5, r0] - mvn r2, r2 - and r2, r3 - str r2, [r5, r0] - add r2, r4, #0x0 - ldr r3, [r5, r0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - str r1, [r5, r0] - pop {r4-r6, pc} - - thumb_func_start FUN_02026E88 -FUN_02026E88: ; 0x02026E88 - lsr r2, r1, #0x5 - lsl r2, r2, #0x18 - lsr r2, r2, #0x16 - ldr r3, [r0, r2] - lsr r2, r1, #0x1f - lsl r1, r1, #0x1b - sub r1, r1, r2 - mov r0, #0x1b - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r1, r3, #0x0 - lsr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4 - - thumb_func_start FUN_02026EB0 -FUN_02026EB0: ; 0x02026EB0 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x12 - bls _02026EC0 - bl ErrorHandling -_02026EC0: - lsr r2, r6, #0x1f - lsl r1, r6, #0x1e - sub r1, r1, r2 - mov r0, #0x1e - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r0, r0, #0x1b - lsr r1, r0, #0x18 - lsr r0, r6, #0x2 - lsl r0, r0, #0x18 - mov r2, #0xff - lsr r0, r0, #0x16 - lsl r2, r1 - ldr r3, [r5, r0] - mvn r2, r2 - and r2, r3 - str r2, [r5, r0] - add r2, r4, #0x0 - ldr r3, [r5, r0] - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - str r1, [r5, r0] - pop {r4-r6, pc} - - thumb_func_start FUN_02026EF4 -FUN_02026EF4: ; 0x02026EF4 - lsr r2, r1, #0x2 - lsl r2, r2, #0x18 - lsr r2, r2, #0x16 - ldr r0, [r0, r2] - lsr r3, r1, #0x1f - lsl r2, r1, #0x1e - sub r2, r2, r3 - mov r1, #0x1e - ror r2, r1 - add r1, r3, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1b - lsr r1, r1, #0x18 - lsr r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - - thumb_func_start FUN_02026F18 -FUN_02026F18: ; 0x02026F18 - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_02026F20: - lsl r1, r4, #0x18 - add r0, r6, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026EF4 - cmp r0, #0x12 - beq _02026F30 - add r5, r5, #0x1 -_02026F30: - add r4, r4, #0x1 - cmp r4, #0x12 - blt _02026F20 - lsl r0, r5, #0x18 - lsr r0, r0, #0x18 - pop {r4-r6, pc} - - thumb_func_start FUN_02026F3C -FUN_02026F3C: ; 0x02026F3C - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x2 - add r4, r2, #0x0 - bl FUN_02068E14 - mov r1, #0x80 - strb r1, [r5, #0x0] - mov r1, #0x28 - sub r1, r1, r0 - mov r0, #0x8d - sub r0, r0, r1 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x0] - add r0, #0x28 - strb r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02026F60 -FUN_02026F60: ; 0x02026F60 - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r6, _02026FC8 ; =0x00001234 - mov r4, #0x0 - add r5, r7, #0x0 -_02026F6A: - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x74 - bl Call_FillMemWithValue - str r6, [r5, #0x0] - add r4, r4, #0x1 - add r5, #0x74 - cmp r4, #0xb - blt _02026F6A - ldr r0, _02026FCC ; =0x000004FC - mov r6, #0x0 - add r4, r7, r0 - add r5, r7, #0x0 -_02026F86: - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x98 - bl Call_FillMemWithValue - ldr r1, _02026FC8 ; =0x00001234 - ldr r0, _02026FCC ; =0x000004FC - add r6, r6, #0x1 - str r1, [r5, r0] - add r4, #0x98 - add r5, #0x98 - cmp r6, #0x5 - blt _02026F86 - ldr r0, _02026FD0 ; =0x000007F4 - mov r1, #0x0 - add r0, r7, r0 - mov r2, #0x40 - bl Call_FillMemWithValue - ldr r5, _02026FD4 ; =0x0000081C - mov r4, #0x0 - mov r6, #0x12 -_02026FB2: - lsl r2, r4, #0x18 - add r0, r7, r5 - add r1, r6, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026EB0 - add r4, r4, #0x1 - cmp r4, #0x12 - blt _02026FB2 - pop {r3-r7, pc} - nop -_02026FC8: .word 0x00001234 -_02026FCC: .word 0x000004FC -_02026FD0: .word 0x000007F4 -_02026FD4: .word 0x0000081C - - thumb_func_start FUN_02026FD8 -FUN_02026FD8: ; 0x02026FD8 - ldr r0, _02026FDC ; =0x00000834 - bx lr - .balign 4 -_02026FDC: .word 0x00000834 - - thumb_func_start FUN_02026FE0 -FUN_02026FE0: ; 0x02026FE0 - mov r0, #0x74 - bx lr - - thumb_func_start FUN_02026FE4 -FUN_02026FE4: ; 0x02026FE4 - mov r0, #0x98 - bx lr - - thumb_func_start FUN_02026FE8 -FUN_02026FE8: ; 0x02026FE8 - push {r4, lr} - mov r1, #0x98 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x98 - add r4, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, _02027004 ; =0x00001234 - str r0, [r4, #0x0] - add r0, r4, #0x0 - pop {r4, pc} - nop -_02027004: .word 0x00001234 - - thumb_func_start FUN_02027008 -FUN_02027008: ; 0x02027008 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - cmp r6, #0xb - blt _02027016 - bl ErrorHandling -_02027016: - mov r0, #0x74 - add r4, r6, #0x0 - mul r4, r0 - ldr r1, [r5, r4] - ldr r0, _0202703C ; =0x00001234 - cmp r1, r0 - beq _0202702A - ldr r0, _02027040 ; =0x00002345 - cmp r1, r0 - bne _0202702E -_0202702A: - mov r0, #0x1 - b _02027030 -_0202702E: - mov r0, #0x0 -_02027030: - cmp r0, #0x0 - bne _02027038 - bl ErrorHandling -_02027038: - add r0, r5, r4 - pop {r4-r6, pc} - .balign 4 -_0202703C: .word 0x00001234 -_02027040: .word 0x00002345 - - thumb_func_start FUN_02027044 -FUN_02027044: ; 0x02027044 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - cmp r6, #0x5 - blt _02027052 - bl ErrorHandling -_02027052: - mov r0, #0x98 - add r4, r6, #0x0 - mul r4, r0 - ldr r0, _02027080 ; =0x000004FC - add r1, r5, r4 - ldr r1, [r1, r0] - ldr r0, _02027084 ; =0x00001234 - cmp r1, r0 - beq _0202706A - ldr r0, _02027088 ; =0x00002345 - cmp r1, r0 - bne _0202706E -_0202706A: - mov r0, #0x1 - b _02027070 -_0202706E: - mov r0, #0x0 -_02027070: - cmp r0, #0x0 - bne _02027078 - bl ErrorHandling -_02027078: - ldr r0, _02027080 ; =0x000004FC - add r0, r5, r0 - add r0, r0, r4 - pop {r4-r6, pc} - .balign 4 -_02027080: .word 0x000004FC -_02027084: .word 0x00001234 -_02027088: .word 0x00002345 - - thumb_func_start FUN_0202708C -FUN_0202708C: ; 0x0202708C - ldr r1, _02027094 ; =0x000007F4 - add r0, r0, r1 - bx lr - nop -_02027094: .word 0x000007F4 - - thumb_func_start FUN_02027098 -FUN_02027098: ; 0x02027098 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xb - blt _020270A6 - bl ErrorHandling -_020270A6: - mov r0, #0x74 - mul r0, r4 - add r0, r5, r0 - bl FUN_0202729C - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020270B4 -FUN_020270B4: ; 0x020270B4 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x5 - blt _020270C2 - bl ErrorHandling -_020270C2: - ldr r0, _020270D4 ; =0x000004FC - add r1, r5, r0 - mov r0, #0x98 - mul r0, r4 - add r0, r1, r0 - bl FUN_020276D8 - pop {r3-r5, pc} - nop -_020270D4: .word 0x000004FC - - thumb_func_start FUN_020270D8 -FUN_020270D8: ; 0x020270D8 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r2, #0x0 - mov r4, #0x1 - bl FUN_02027114 - cmp r6, #0x3d - bhs _020270F2 - add r0, r0, r5 - cmp r0, #0x9 - bls _020270FA - mov r4, #0x0 - b _020270FA -_020270F2: - add r0, r0, r5 - cmp r0, #0x1 - bls _020270FA - mov r4, #0x0 -_020270FA: - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02027100 -FUN_02027100: ; 0x02027100 - push {r3, lr} - bl FUN_0202714C - cmp r0, #0x12 - beq _0202710E - mov r0, #0x1 - pop {r3, pc} -_0202710E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02027114 -FUN_02027114: ; 0x02027114 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x64 - blo _02027122 - bl ErrorHandling -_02027122: - cmp r5, #0x3d - bhs _02027132 - lsl r1, r5, #0x18 - add r0, r4, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026E08 - pop {r3-r5, pc} -_02027132: - bhs _02027138 - bl ErrorHandling -_02027138: - sub r5, #0x3d - lsl r0, r5, #0x18 - lsr r1, r0, #0x18 - add r4, #0x20 - lsl r1, r1, #0x18 - add r0, r4, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026E88 - pop {r3-r5, pc} - - thumb_func_start FUN_0202714C -FUN_0202714C: ; 0x0202714C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x12 - blo _0202715A - bl ErrorHandling -_0202715A: - add r5, #0x28 - lsl r1, r4, #0x18 - add r0, r5, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026EF4 - pop {r3-r5, pc} - - thumb_func_start FUN_02027168 -FUN_02027168: ; 0x02027168 - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_02027170: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02027114 - add r4, r4, #0x1 - add r5, r5, r0 - cmp r4, #0x64 - blt _02027170 - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02027184 -FUN_02027184: ; 0x02027184 - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_0202718C: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0202714C - cmp r0, #0x12 - beq _0202719A - add r5, r5, #0x1 -_0202719A: - add r4, r4, #0x1 - cmp r4, #0x12 - blt _0202718C - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020271A4 -FUN_020271A4: ; 0x020271A4 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x64 - blo _020271B4 - bl ErrorHandling -_020271B4: - cmp r4, #0x3d - bhs _020271DA - lsl r1, r4, #0x18 - add r0, r5, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026E08 - add r0, r0, r6 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - cmp r1, #0x9 - bls _020271CE - mov r1, #0x9 -_020271CE: - lsl r2, r4, #0x18 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026DC4 - pop {r4-r6, pc} -_020271DA: - add r0, r5, #0x0 - lsl r1, r4, #0x18 - add r0, #0x20 - lsr r1, r1, #0x18 - bl FUN_02026E88 - add r0, r0, r6 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x1 - bls _020271F2 - mov r6, #0x1 -_020271F2: - cmp r4, #0x3d - bhs _020271FA - bl ErrorHandling -_020271FA: - sub r4, #0x3d - lsl r0, r4, #0x18 - lsr r2, r0, #0x18 - add r5, #0x20 - lsl r2, r2, #0x18 - add r0, r5, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026E48 - pop {r4-r6, pc} - - thumb_func_start FUN_02027210 -FUN_02027210: ; 0x02027210 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x64 - blo _02027220 - bl ErrorHandling -_02027220: - cmp r4, #0x3d - bhs _02027248 - lsl r1, r4, #0x18 - add r0, r5, #0x0 - lsr r1, r1, #0x18 - bl FUN_02026E08 - cmp r0, r6 - bls _0202723A - sub r0, r0, r6 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - b _0202723C -_0202723A: - mov r1, #0x0 -_0202723C: - lsl r2, r4, #0x18 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026DC4 - pop {r4-r6, pc} -_02027248: - bhs _0202724E - bl ErrorHandling -_0202724E: - sub r4, #0x3d - lsl r0, r4, #0x18 - lsr r2, r0, #0x18 - add r5, #0x20 - lsl r2, r2, #0x18 - add r0, r5, #0x0 - mov r1, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026E48 - pop {r4-r6, pc} - - thumb_func_start FUN_02027264 -FUN_02027264: ; 0x02027264 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x12 - blo _02027272 - bl ErrorHandling -_02027272: - add r0, r5, #0x0 - lsl r1, r4, #0x18 - add r0, #0x28 - lsr r1, r1, #0x18 - bl FUN_02026EF4 - cmp r0, #0x12 - bne _02027298 - add r0, r5, #0x0 - add r0, #0x28 - bl FUN_02026F18 - lsl r2, r4, #0x18 - add r5, #0x28 - add r1, r0, #0x0 - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_02026EB0 -_02027298: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202729C -FUN_0202729C: ; 0x0202729C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _020272CC ; =0x00001234 - cmp r1, r0 - beq _020272AE - ldr r0, _020272D0 ; =0x00002345 - cmp r1, r0 - bne _020272B2 -_020272AE: - mov r0, #0x1 - b _020272B4 -_020272B2: - mov r0, #0x0 -_020272B4: - cmp r0, #0x0 - bne _020272BC - bl ErrorHandling -_020272BC: - ldr r1, [r4, #0x0] - ldr r0, _020272D0 ; =0x00002345 - cmp r1, r0 - bne _020272C8 - mov r0, #0x1 - pop {r4, pc} -_020272C8: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_020272CC: .word 0x00001234 -_020272D0: .word 0x00002345 - - thumb_func_start FUN_020272D4 -FUN_020272D4: ; 0x020272D4 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027304 ; =0x00001234 - cmp r1, r0 - beq _020272E6 - ldr r0, _02027308 ; =0x00002345 - cmp r1, r0 - bne _020272EA -_020272E6: - mov r0, #0x1 - b _020272EC -_020272EA: - mov r0, #0x0 -_020272EC: - cmp r0, #0x0 - bne _020272F4 - bl ErrorHandling -_020272F4: - ldr r0, _02027308 ; =0x00002345 - str r0, [r4, #0x0] - ldr r0, _0202730C ; =0x020ECAC4 - add r4, #0x71 - ldrb r0, [r0, #0x0] - strb r0, [r4, #0x0] - pop {r4, pc} - nop -_02027304: .word 0x00001234 -_02027308: .word 0x00002345 -_0202730C: .word 0x020ECAC4 - - thumb_func_start FUN_02027310 -FUN_02027310: ; 0x02027310 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027340 ; =0x00001234 - cmp r1, r0 - beq _02027322 - ldr r0, _02027344 ; =0x00002345 - cmp r1, r0 - bne _02027326 -_02027322: - mov r0, #0x1 - b _02027328 -_02027326: - mov r0, #0x0 -_02027328: - cmp r0, #0x0 - bne _02027330 - bl ErrorHandling -_02027330: - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x74 - bl Call_FillMemWithValue - ldr r0, _02027340 ; =0x00001234 - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_02027340: .word 0x00001234 -_02027344: .word 0x00002345 - - thumb_func_start FUN_02027348 -FUN_02027348: ; 0x02027348 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027378 ; =0x00001234 - add r6, r2, #0x0 - cmp r1, r0 - beq _0202735E - ldr r0, _0202737C ; =0x00002345 - cmp r1, r0 - bne _02027362 -_0202735E: - mov r0, #0x1 - b _02027364 -_02027362: - mov r0, #0x0 -_02027364: - cmp r0, #0x0 - bne _0202736C - bl ErrorHandling -_0202736C: - add r0, r5, #0x4 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02026D34 - pop {r4-r6, pc} - .balign 4 -_02027378: .word 0x00001234 -_0202737C: .word 0x00002345 - - thumb_func_start FUN_02027380 -FUN_02027380: ; 0x02027380 - push {r4-r7, lr} - sub sp, #0x14 - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x4] - add r6, r2, #0x0 - bl FUN_02013ECC - add r1, sp, #0xc - strh r0, [r1, #0x0] - lsr r0, r0, #0x10 - strh r0, [r1, #0x2] - ldrh r0, [r1, #0x0] - strh r0, [r1, #0x4] - ldrh r0, [r1, #0x2] - strh r0, [r1, #0x6] - ldr r0, [r4, #0x4] - bl FUN_02013F00 - str r0, [sp, #0x8] - cmp r6, #0xa - blt _020273B0 - bl ErrorHandling -_020273B0: - add r1, sp, #0xc - mov r0, #0x4 - ldrsh r1, [r1, r0] - add r0, #0xfc - cmp r1, r0 - blt _020273C0 - bl ErrorHandling -_020273C0: - add r1, sp, #0xc - mov r0, #0x6 - ldrsh r7, [r1, r0] - add r0, #0xfa - cmp r7, r0 - blt _020273D0 - bl ErrorHandling -_020273D0: - mov r1, #0x7f - ldr r0, [sp, #0x8] - mvn r1, r1 - cmp r0, r1 - bgt _020273DE - bl ErrorHandling -_020273DE: - mov r0, #0x1 - lsl r0, r6 - ldr r1, [r5, #0x3c] - str r0, [sp, #0x4] - tst r0, r1 - beq _020273EE - bl ErrorHandling -_020273EE: - ldr r1, [r5, #0x0] - ldr r0, _02027440 ; =0x00001234 - cmp r1, r0 - beq _020273FC - ldr r0, _02027444 ; =0x00002345 - cmp r1, r0 - bne _02027400 -_020273FC: - mov r0, #0x1 - b _02027402 -_02027400: - mov r0, #0x0 -_02027402: - cmp r0, #0x0 - bne _0202740A - bl ErrorHandling -_0202740A: - ldr r0, [sp, #0x8] - add r1, r5, #0x0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - add r3, sp, #0xc - mov r2, #0x4 - ldrsh r2, [r3, r2] - lsl r3, r7, #0x18 - add r1, #0x48 - lsl r0, r6, #0x2 - add r0, r1, r0 - ldr r1, [r4, #0x0] - lsl r2, r2, #0x18 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl FUN_02026DB0 - ldr r1, [r5, #0x3c] - ldr r0, [sp, #0x4] - orr r0, r1 - str r0, [r5, #0x3c] - add sp, #0x14 - pop {r4-r7, pc} - nop -_02027440: .word 0x00001234 -_02027444: .word 0x00002345 - - thumb_func_start FUN_02027448 -FUN_02027448: ; 0x02027448 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027470 ; =0x00001234 - cmp r1, r0 - beq _0202745C - ldr r0, _02027474 ; =0x00002345 - cmp r1, r0 - bne _02027460 -_0202745C: - mov r0, #0x1 - b _02027462 -_02027460: - mov r0, #0x0 -_02027462: - cmp r0, #0x0 - bne _0202746A - bl ErrorHandling -_0202746A: - add r5, #0x70 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 -_02027470: .word 0x00001234 -_02027474: .word 0x00002345 - - thumb_func_start FUN_02027478 -FUN_02027478: ; 0x02027478 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020274B0 ; =0x00001234 - cmp r1, r0 - beq _0202748C - ldr r0, _020274B4 ; =0x00002345 - cmp r1, r0 - bne _02027490 -_0202748C: - mov r0, #0x1 - b _02027492 -_02027490: - mov r0, #0x0 -_02027492: - cmp r0, #0x0 - bne _0202749A - bl ErrorHandling -_0202749A: - add r0, r5, #0x0 - add r0, #0x40 - bl FUN_02013724 - add r5, #0x40 - add r0, r5, #0x0 - mov r1, #0x0 - add r2, r4, #0x0 - bl FUN_02013998 - pop {r3-r5, pc} - .balign 4 -_020274B0: .word 0x00001234 -_020274B4: .word 0x00002345 - - thumb_func_start FUN_020274B8 -FUN_020274B8: ; 0x020274B8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020274E8 ; =0x00001234 - cmp r1, r0 - beq _020274CC - ldr r0, _020274EC ; =0x00002345 - cmp r1, r0 - bne _020274D0 -_020274CC: - mov r0, #0x1 - b _020274D2 -_020274D0: - mov r0, #0x0 -_020274D2: - cmp r0, #0x0 - bne _020274DA - bl ErrorHandling -_020274DA: - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x74 - bl memcpy - pop {r3-r5, pc} - nop -_020274E8: .word 0x00001234 -_020274EC: .word 0x00002345 - - thumb_func_start FUN_020274F0 -FUN_020274F0: ; 0x020274F0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027520 ; =0x00001234 - add r6, r2, #0x0 - cmp r1, r0 - beq _02027506 - ldr r0, _02027524 ; =0x00002345 - cmp r1, r0 - bne _0202750A -_02027506: - mov r0, #0x1 - b _0202750C -_0202750A: - mov r0, #0x0 -_0202750C: - cmp r0, #0x0 - bne _02027514 - bl ErrorHandling -_02027514: - add r0, r5, #0x4 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02026D98 - pop {r4-r6, pc} - .balign 4 -_02027520: .word 0x00001234 -_02027524: .word 0x00002345 - - thumb_func_start FUN_02027528 -FUN_02027528: ; 0x02027528 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xa - blt _02027536 - bl ErrorHandling -_02027536: - ldr r1, [r5, #0x0] - ldr r0, _0202755C ; =0x00001234 - cmp r1, r0 - beq _02027544 - ldr r0, _02027560 ; =0x00002345 - cmp r1, r0 - bne _02027548 -_02027544: - mov r0, #0x1 - b _0202754A -_02027548: - mov r0, #0x0 -_0202754A: - cmp r0, #0x0 - bne _02027552 - bl ErrorHandling -_02027552: - mov r0, #0x1 - ldr r1, [r5, #0x3c] - lsl r0, r4 - and r0, r1 - pop {r3-r5, pc} - .balign 4 -_0202755C: .word 0x00001234 -_02027560: .word 0x00002345 - - thumb_func_start FUN_02027564 -FUN_02027564: ; 0x02027564 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027588 ; =0x00001234 - cmp r1, r0 - beq _02027576 - ldr r0, _0202758C ; =0x00002345 - cmp r1, r0 - bne _0202757A -_02027576: - mov r0, #0x1 - b _0202757C -_0202757A: - mov r0, #0x0 -_0202757C: - cmp r0, #0x0 - bne _02027584 - bl ErrorHandling -_02027584: - add r0, r4, #0x4 - pop {r4, pc} - .balign 4 -_02027588: .word 0x00001234 -_0202758C: .word 0x00002345 - - thumb_func_start FUN_02027590 -FUN_02027590: ; 0x02027590 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xa - blt _0202759E - bl ErrorHandling -_0202759E: - mov r0, #0x1 - ldr r1, [r5, #0x3c] - lsl r0, r4 - tst r0, r1 - bne _020275AC - bl ErrorHandling -_020275AC: - ldr r1, [r5, #0x0] - ldr r0, _020275D0 ; =0x00001234 - cmp r1, r0 - beq _020275BA - ldr r0, _020275D4 ; =0x00002345 - cmp r1, r0 - bne _020275BE -_020275BA: - mov r0, #0x1 - b _020275C0 -_020275BE: - mov r0, #0x0 -_020275C0: - cmp r0, #0x0 - bne _020275C8 - bl ErrorHandling -_020275C8: - add r5, #0x48 - lsl r0, r4, #0x2 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 -_020275D0: .word 0x00001234 -_020275D4: .word 0x00002345 - - thumb_func_start FUN_020275D8 -FUN_020275D8: ; 0x020275D8 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027600 ; =0x00001234 - cmp r1, r0 - beq _020275EA - ldr r0, _02027604 ; =0x00002345 - cmp r1, r0 - bne _020275EE -_020275EA: - mov r0, #0x1 - b _020275F0 -_020275EE: - mov r0, #0x0 -_020275F0: - cmp r0, #0x0 - bne _020275F8 - bl ErrorHandling -_020275F8: - add r0, r4, #0x4 - bl FUN_02027C84 - pop {r4, pc} - .balign 4 -_02027600: .word 0x00001234 -_02027604: .word 0x00002345 - - thumb_func_start FUN_02027608 -FUN_02027608: ; 0x02027608 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027634 ; =0x00001234 - cmp r1, r0 - beq _0202761C - ldr r0, _02027638 ; =0x00002345 - cmp r1, r0 - bne _02027620 -_0202761C: - mov r0, #0x1 - b _02027622 -_02027620: - mov r0, #0x0 -_02027622: - cmp r0, #0x0 - bne _0202762A - bl ErrorHandling -_0202762A: - add r0, r5, #0x4 - add r1, r4, #0x0 - bl FUN_02027C88 - pop {r3-r5, pc} - .balign 4 -_02027634: .word 0x00001234 -_02027638: .word 0x00002345 - - thumb_func_start FUN_0202763C -FUN_0202763C: ; 0x0202763C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027664 ; =0x00001234 - cmp r1, r0 - beq _0202764E - ldr r0, _02027668 ; =0x00002345 - cmp r1, r0 - bne _02027652 -_0202764E: - mov r0, #0x1 - b _02027654 -_02027652: - mov r0, #0x0 -_02027654: - cmp r0, #0x0 - bne _0202765C - bl ErrorHandling -_0202765C: - add r0, r4, #0x4 - bl FUN_02027C98 - pop {r4, pc} - .balign 4 -_02027664: .word 0x00001234 -_02027668: .word 0x00002345 - - thumb_func_start FUN_0202766C -FUN_0202766C: ; 0x0202766C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027694 ; =0x00001234 - cmp r1, r0 - beq _0202767E - ldr r0, _02027698 ; =0x00002345 - cmp r1, r0 - bne _02027682 -_0202767E: - mov r0, #0x1 - b _02027684 -_02027682: - mov r0, #0x0 -_02027684: - cmp r0, #0x0 - bne _0202768C - bl ErrorHandling -_0202768C: - add r4, #0x70 - ldrb r0, [r4, #0x0] - pop {r4, pc} - nop -_02027694: .word 0x00001234 -_02027698: .word 0x00002345 - - thumb_func_start FUN_0202769C -FUN_0202769C: ; 0x0202769C - ldr r3, _020276A4 ; =FUN_02013918 - add r0, #0x40 - mov r1, #0x0 - bx r3 - .balign 4 -_020276A4: .word FUN_02013918 - - thumb_func_start FUN_020276A8 -FUN_020276A8: ; 0x020276A8 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _020276D0 ; =0x00001234 - cmp r1, r0 - beq _020276BA - ldr r0, _020276D4 ; =0x00002345 - cmp r1, r0 - bne _020276BE -_020276BA: - mov r0, #0x1 - b _020276C0 -_020276BE: - mov r0, #0x0 -_020276C0: - cmp r0, #0x0 - bne _020276C8 - bl ErrorHandling -_020276C8: - add r4, #0x71 - ldrb r0, [r4, #0x0] - pop {r4, pc} - nop -_020276D0: .word 0x00001234 -_020276D4: .word 0x00002345 - - thumb_func_start FUN_020276D8 -FUN_020276D8: ; 0x020276D8 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027708 ; =0x00001234 - cmp r1, r0 - beq _020276EA - ldr r0, _0202770C ; =0x00002345 - cmp r1, r0 - bne _020276EE -_020276EA: - mov r0, #0x1 - b _020276F0 -_020276EE: - mov r0, #0x0 -_020276F0: - cmp r0, #0x0 - bne _020276F8 - bl ErrorHandling -_020276F8: - ldr r1, [r4, #0x0] - ldr r0, _0202770C ; =0x00002345 - cmp r1, r0 - bne _02027704 - mov r0, #0x1 - pop {r4, pc} -_02027704: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_02027708: .word 0x00001234 -_0202770C: .word 0x00002345 - - thumb_func_start FUN_02027710 -FUN_02027710: ; 0x02027710 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027738 ; =0x00001234 - cmp r1, r0 - beq _02027722 - ldr r0, _0202773C ; =0x00002345 - cmp r1, r0 - bne _02027726 -_02027722: - mov r0, #0x1 - b _02027728 -_02027726: - mov r0, #0x0 -_02027728: - cmp r0, #0x0 - bne _02027730 - bl ErrorHandling -_02027730: - ldr r0, _0202773C ; =0x00002345 - str r0, [r4, #0x0] - pop {r4, pc} - nop -_02027738: .word 0x00001234 -_0202773C: .word 0x00002345 - - thumb_func_start FUN_02027740 -FUN_02027740: ; 0x02027740 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027770 ; =0x00001234 - cmp r1, r0 - beq _02027752 - ldr r0, _02027774 ; =0x00002345 - cmp r1, r0 - bne _02027756 -_02027752: - mov r0, #0x1 - b _02027758 -_02027756: - mov r0, #0x0 -_02027758: - cmp r0, #0x0 - bne _02027760 - bl ErrorHandling -_02027760: - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x98 - bl Call_FillMemWithValue - ldr r0, _02027770 ; =0x00001234 - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_02027770: .word 0x00001234 -_02027774: .word 0x00002345 - - thumb_func_start FUN_02027778 -FUN_02027778: ; 0x02027778 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020277AC ; =0x00001234 - add r6, r2, #0x0 - cmp r1, r0 - beq _0202778E - ldr r0, _020277B0 ; =0x00002345 - cmp r1, r0 - bne _02027792 -_0202778E: - mov r0, #0x1 - b _02027794 -_02027792: - mov r0, #0x0 -_02027794: - cmp r0, #0x0 - bne _0202779C - bl ErrorHandling -_0202779C: - add r5, #0x8 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02026D34 - pop {r4-r6, pc} - nop -_020277AC: .word 0x00001234 -_020277B0: .word 0x00002345 - - thumb_func_start FUN_020277B4 -FUN_020277B4: ; 0x020277B4 - push {r4-r7, lr} - sub sp, #0x14 - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x4] - add r6, r2, #0x0 - bl FUN_02013ECC - add r1, sp, #0xc - strh r0, [r1, #0x0] - lsr r0, r0, #0x10 - strh r0, [r1, #0x2] - ldrh r0, [r1, #0x0] - strh r0, [r1, #0x4] - ldrh r0, [r1, #0x2] - strh r0, [r1, #0x6] - ldr r0, [r4, #0x4] - bl FUN_02013F00 - str r0, [sp, #0x8] - cmp r6, #0x14 - blt _020277E4 - bl ErrorHandling -_020277E4: - add r1, sp, #0xc - mov r0, #0x4 - ldrsh r1, [r1, r0] - add r0, #0xfc - cmp r1, r0 - blt _020277F4 - bl ErrorHandling -_020277F4: - add r1, sp, #0xc - mov r0, #0x6 - ldrsh r7, [r1, r0] - add r0, #0xfa - cmp r7, r0 - blt _02027804 - bl ErrorHandling -_02027804: - mov r1, #0x7f - ldr r0, [sp, #0x8] - mvn r1, r1 - cmp r0, r1 - bgt _02027812 - bl ErrorHandling -_02027812: - mov r0, #0x1 - lsl r0, r6 - ldr r1, [r5, #0x40] - str r0, [sp, #0x4] - tst r0, r1 - beq _02027822 - bl ErrorHandling -_02027822: - ldr r1, [r5, #0x0] - ldr r0, _02027874 ; =0x00001234 - cmp r1, r0 - beq _02027830 - ldr r0, _02027878 ; =0x00002345 - cmp r1, r0 - bne _02027834 -_02027830: - mov r0, #0x1 - b _02027836 -_02027834: - mov r0, #0x0 -_02027836: - cmp r0, #0x0 - bne _0202783E - bl ErrorHandling -_0202783E: - ldr r0, [sp, #0x8] - add r1, r5, #0x0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - add r3, sp, #0xc - mov r2, #0x4 - ldrsh r2, [r3, r2] - lsl r3, r7, #0x18 - add r1, #0x44 - lsl r0, r6, #0x2 - add r0, r1, r0 - ldr r1, [r4, #0x0] - lsl r2, r2, #0x18 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl FUN_02026DB0 - ldr r1, [r5, #0x40] - ldr r0, [sp, #0x4] - orr r0, r1 - str r0, [r5, #0x40] - add sp, #0x14 - pop {r4-r7, pc} - nop -_02027874: .word 0x00001234 -_02027878: .word 0x00002345 - - thumb_func_start FUN_0202787C -FUN_0202787C: ; 0x0202787C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020278A4 ; =0x00001234 - cmp r1, r0 - beq _02027890 - ldr r0, _020278A8 ; =0x00002345 - cmp r1, r0 - bne _02027894 -_02027890: - mov r0, #0x1 - b _02027896 -_02027894: - mov r0, #0x0 -_02027896: - cmp r0, #0x0 - bne _0202789E - bl ErrorHandling -_0202789E: - add r5, #0x94 - strb r4, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 -_020278A4: .word 0x00001234 -_020278A8: .word 0x00002345 - - thumb_func_start FUN_020278AC -FUN_020278AC: ; 0x020278AC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _020278D4 ; =0x00001234 - cmp r1, r0 - beq _020278C0 - ldr r0, _020278D8 ; =0x00002345 - cmp r1, r0 - bne _020278C4 -_020278C0: - mov r0, #0x1 - b _020278C6 -_020278C4: - mov r0, #0x0 -_020278C6: - cmp r0, #0x0 - bne _020278CE - bl ErrorHandling -_020278CE: - str r4, [r5, #0x4] - pop {r3-r5, pc} - nop -_020278D4: .word 0x00001234 -_020278D8: .word 0x00002345 - - thumb_func_start FUN_020278DC -FUN_020278DC: ; 0x020278DC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _0202790C ; =0x00001234 - cmp r1, r0 - beq _020278F0 - ldr r0, _02027910 ; =0x00002345 - cmp r1, r0 - bne _020278F4 -_020278F0: - mov r0, #0x1 - b _020278F6 -_020278F4: - mov r0, #0x0 -_020278F6: - cmp r0, #0x0 - bne _020278FE - bl ErrorHandling -_020278FE: - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x98 - bl memcpy - pop {r3-r5, pc} - nop -_0202790C: .word 0x00001234 -_02027910: .word 0x00002345 - - thumb_func_start FUN_02027914 -FUN_02027914: ; 0x02027914 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _0202795C ; =0x00001234 - add r6, r2, #0x0 - cmp r1, r0 - beq _0202792C - ldr r0, _02027960 ; =0x00002345 - cmp r1, r0 - bne _02027930 -_0202792C: - mov r0, #0x1 - b _02027932 -_02027930: - mov r0, #0x0 -_02027932: - cmp r0, #0x0 - bne _0202793A - bl ErrorHandling -_0202793A: - add r1, sp, #0x4 - add r0, r4, #0x0 - add r1, #0x1 - add r2, sp, #0x4 - bl FUN_02026F3C - add r5, #0x8 - str r6, [sp, #0x0] - add r3, sp, #0x4 - ldrb r2, [r3, #0x1] - ldrb r3, [r3, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02026CD0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_0202795C: .word 0x00001234 -_02027960: .word 0x00002345 - - thumb_func_start FUN_02027964 -FUN_02027964: ; 0x02027964 - push {r4-r7, lr} - sub sp, #0xc - str r3, [sp, #0x4] - add r6, r1, #0x0 - add r5, r0, #0x0 - add r7, r2, #0x0 - ldr r4, [sp, #0x24] - cmp r6, #0x14 - blo _0202797A - bl ErrorHandling -_0202797A: - cmp r7, #0x64 - blo _02027982 - bl ErrorHandling -_02027982: - mov r1, #0x1 - ldr r0, [sp, #0x4] - lsl r1, r1, #0x8 - cmp r0, r1 - blt _02027990 - bl ErrorHandling -_02027990: - add r0, sp, #0x10 - ldrb r1, [r0, #0x10] - mov r0, #0x1 - lsl r0, r0, #0x8 - cmp r1, r0 - blt _020279A0 - bl ErrorHandling -_020279A0: - mov r0, #0x7f - mvn r0, r0 - cmp r4, r0 - bgt _020279AC - bl ErrorHandling -_020279AC: - mov r0, #0x1 - lsl r0, r6 - ldr r1, [r5, #0x40] - str r0, [sp, #0x8] - tst r0, r1 - beq _020279BC - bl ErrorHandling -_020279BC: - ldr r1, [r5, #0x0] - ldr r0, _02027A0C ; =0x00001234 - cmp r1, r0 - beq _020279CA - ldr r0, _02027A10 ; =0x00002345 - cmp r1, r0 - bne _020279CE -_020279CA: - mov r0, #0x1 - b _020279D0 -_020279CE: - mov r0, #0x0 -_020279D0: - cmp r0, #0x0 - bne _020279D8 - bl ErrorHandling -_020279D8: - mov r0, #0x38 - ldrsb r0, [r5, r0] - cmp r0, r4 - blt _020279E6 - add r0, r0, #0x1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_020279E6: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - add r3, sp, #0x10 - add r1, r5, #0x0 - ldrb r3, [r3, #0x10] - add r1, #0x44 - lsl r0, r6, #0x2 - add r0, r1, r0 - ldr r2, [sp, #0x4] - add r1, r7, #0x0 - bl FUN_02026DB0 - ldr r1, [r5, #0x40] - ldr r0, [sp, #0x8] - orr r0, r1 - str r0, [r5, #0x40] - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02027A0C: .word 0x00001234 -_02027A10: .word 0x00002345 - - thumb_func_start FUN_02027A14 -FUN_02027A14: ; 0x02027A14 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x14 - blt _02027A22 - bl ErrorHandling -_02027A22: - ldr r1, [r5, #0x0] - ldr r0, _02027A50 ; =0x00001234 - cmp r1, r0 - beq _02027A30 - ldr r0, _02027A54 ; =0x00002345 - cmp r1, r0 - bne _02027A34 -_02027A30: - mov r0, #0x1 - b _02027A36 -_02027A34: - mov r0, #0x0 -_02027A36: - cmp r0, #0x0 - bne _02027A3E - bl ErrorHandling -_02027A3E: - mov r0, #0x1 - add r1, r0, #0x0 - ldr r2, [r5, #0x40] - lsl r1, r4 - tst r1, r2 - bne _02027A4C - mov r0, #0x0 -_02027A4C: - pop {r3-r5, pc} - nop -_02027A50: .word 0x00001234 -_02027A54: .word 0x00002345 - - thumb_func_start FUN_02027A58 -FUN_02027A58: ; 0x02027A58 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027A8C ; =0x00001234 - add r6, r2, #0x0 - cmp r1, r0 - beq _02027A6E - ldr r0, _02027A90 ; =0x00002345 - cmp r1, r0 - bne _02027A72 -_02027A6E: - mov r0, #0x1 - b _02027A74 -_02027A72: - mov r0, #0x0 -_02027A74: - cmp r0, #0x0 - bne _02027A7C - bl ErrorHandling -_02027A7C: - add r5, #0x8 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02026D98 - pop {r4-r6, pc} - nop -_02027A8C: .word 0x00001234 -_02027A90: .word 0x00002345 - - thumb_func_start FUN_02027A94 -FUN_02027A94: ; 0x02027A94 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027ABC ; =0x00001234 - cmp r1, r0 - beq _02027AA6 - ldr r0, _02027AC0 ; =0x00002345 - cmp r1, r0 - bne _02027AAA -_02027AA6: - mov r0, #0x1 - b _02027AAC -_02027AAA: - mov r0, #0x0 -_02027AAC: - cmp r0, #0x0 - bne _02027AB4 - bl ErrorHandling -_02027AB4: - add r4, #0x8 - add r0, r4, #0x0 - pop {r4, pc} - nop -_02027ABC: .word 0x00001234 -_02027AC0: .word 0x00002345 - - thumb_func_start FUN_02027AC4 -FUN_02027AC4: ; 0x02027AC4 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x14 - blt _02027AD2 - bl ErrorHandling -_02027AD2: - mov r0, #0x1 - ldr r1, [r5, #0x40] - lsl r0, r4 - tst r0, r1 - bne _02027AE0 - bl ErrorHandling -_02027AE0: - ldr r1, [r5, #0x0] - ldr r0, _02027B04 ; =0x00001234 - cmp r1, r0 - beq _02027AEE - ldr r0, _02027B08 ; =0x00002345 - cmp r1, r0 - bne _02027AF2 -_02027AEE: - mov r0, #0x1 - b _02027AF4 -_02027AF2: - mov r0, #0x0 -_02027AF4: - cmp r0, #0x0 - bne _02027AFC - bl ErrorHandling -_02027AFC: - add r5, #0x44 - lsl r0, r4, #0x2 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 -_02027B04: .word 0x00001234 -_02027B08: .word 0x00002345 - - thumb_func_start FUN_02027B0C -FUN_02027B0C: ; 0x02027B0C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027B3C ; =0x00001234 - cmp r1, r0 - beq _02027B20 - ldr r0, _02027B40 ; =0x00002345 - cmp r1, r0 - bne _02027B24 -_02027B20: - mov r0, #0x1 - b _02027B26 -_02027B24: - mov r0, #0x0 -_02027B26: - cmp r0, #0x0 - bne _02027B2E - bl ErrorHandling -_02027B2E: - add r5, #0x8 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02027C88 - pop {r3-r5, pc} - nop -_02027B3C: .word 0x00001234 -_02027B40: .word 0x00002345 - - thumb_func_start FUN_02027B44 -FUN_02027B44: ; 0x02027B44 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027B70 ; =0x00001234 - cmp r1, r0 - beq _02027B56 - ldr r0, _02027B74 ; =0x00002345 - cmp r1, r0 - bne _02027B5A -_02027B56: - mov r0, #0x1 - b _02027B5C -_02027B5A: - mov r0, #0x0 -_02027B5C: - cmp r0, #0x0 - bne _02027B64 - bl ErrorHandling -_02027B64: - add r4, #0x8 - add r0, r4, #0x0 - bl FUN_02027C98 - pop {r4, pc} - nop -_02027B70: .word 0x00001234 -_02027B74: .word 0x00002345 - - thumb_func_start FUN_02027B78 -FUN_02027B78: ; 0x02027B78 - push {r3-r5, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r4, r1, #0x0 - ldr r1, [r5, #0x0] - ldr r0, _02027BD4 ; =0x00001234 - cmp r1, r0 - beq _02027B8E - ldr r0, _02027BD8 ; =0x00002345 - cmp r1, r0 - bne _02027B92 -_02027B8E: - mov r0, #0x1 - b _02027B94 -_02027B92: - mov r0, #0x0 -_02027B94: - cmp r0, #0x0 - bne _02027B9C - bl ErrorHandling -_02027B9C: - mov r1, #0x1 - str r1, [sp, #0x0] - ldr r0, [r5, #0x8] - mov r2, #0x0 - str r0, [sp, #0x4] - str r1, [sp, #0x8] - ldr r0, [r5, #0xc] - add r3, r2, #0x0 - str r0, [sp, #0xc] - ldrh r1, [r5, #0x10] - add r0, r4, #0x0 - bl FUN_02066ACC - add r2, r5, #0x0 - add r0, r4, #0x0 - mov r1, #0x74 - add r2, #0x12 - bl FUN_02067830 - add r5, #0x3b - add r0, r4, #0x0 - mov r1, #0x70 - add r2, r5, #0x0 - bl FUN_02067830 - add sp, #0x10 - pop {r3-r5, pc} - nop -_02027BD4: .word 0x00001234 -_02027BD8: .word 0x00002345 - - thumb_func_start FUN_02027BDC -FUN_02027BDC: ; 0x02027BDC - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x14 - blt _02027BEA - bl ErrorHandling -_02027BEA: - mov r0, #0x1 - ldr r1, [r5, #0x40] - lsl r0, r4 - tst r0, r1 - bne _02027BF8 - bl ErrorHandling -_02027BF8: - ldr r1, [r5, #0x0] - ldr r0, _02027C20 ; =0x00001234 - cmp r1, r0 - beq _02027C06 - ldr r0, _02027C24 ; =0x00002345 - cmp r1, r0 - bne _02027C0A -_02027C06: - mov r0, #0x1 - b _02027C0C -_02027C0A: - mov r0, #0x0 -_02027C0C: - cmp r0, #0x0 - bne _02027C14 - bl ErrorHandling -_02027C14: - add r5, #0x44 - lsl r0, r4, #0x2 - add r0, r5, r0 - bl FUN_02027CF8 - pop {r3-r5, pc} - .balign 4 -_02027C20: .word 0x00001234 -_02027C24: .word 0x00002345 - - thumb_func_start FUN_02027C28 -FUN_02027C28: ; 0x02027C28 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027C50 ; =0x00001234 - cmp r1, r0 - beq _02027C3A - ldr r0, _02027C54 ; =0x00002345 - cmp r1, r0 - bne _02027C3E -_02027C3A: - mov r0, #0x1 - b _02027C40 -_02027C3E: - mov r0, #0x0 -_02027C40: - cmp r0, #0x0 - bne _02027C48 - bl ErrorHandling -_02027C48: - add r4, #0x94 - ldrb r0, [r4, #0x0] - pop {r4, pc} - nop -_02027C50: .word 0x00001234 -_02027C54: .word 0x00002345 - - thumb_func_start FUN_02027C58 -FUN_02027C58: ; 0x02027C58 - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - ldr r0, _02027C7C ; =0x00001234 - cmp r1, r0 - beq _02027C6A - ldr r0, _02027C80 ; =0x00002345 - cmp r1, r0 - bne _02027C6E -_02027C6A: - mov r0, #0x1 - b _02027C70 -_02027C6E: - mov r0, #0x0 -_02027C70: - cmp r0, #0x0 - bne _02027C78 - bl ErrorHandling -_02027C78: - ldr r0, [r4, #0x4] - pop {r4, pc} - .balign 4 -_02027C7C: .word 0x00001234 -_02027C80: .word 0x00002345 - - thumb_func_start FUN_02027C84 -FUN_02027C84: ; 0x02027C84 - ldrh r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_02027C88 -FUN_02027C88: ; 0x02027C88 - add r2, r0, #0x0 - ldr r3, _02027C94 ; =FUN_02021E28 - add r2, #0x20 - add r0, r1, #0x0 - add r1, r2, #0x0 - bx r3 - .balign 4 -_02027C94: .word FUN_02021E28 - - thumb_func_start FUN_02027C98 -FUN_02027C98: ; 0x02027C98 - add r0, #0x34 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02027CA0 -FUN_02027CA0: ; 0x02027CA0 - mov r1, #0x30 - ldrsb r0, [r0, r1] - bx lr - .balign 4 - - thumb_func_start FUN_02027CA8 -FUN_02027CA8: ; 0x02027CA8 - add r0, #0x31 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02027CB0 -FUN_02027CB0: ; 0x02027CB0 - add r0, #0x32 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02027CB8 -FUN_02027CB8: ; 0x02027CB8 - push {r3-r5, lr} - sub sp, #0x10 - add r4, r1, #0x0 - mov r1, #0x1 - add r5, r0, #0x0 - str r1, [sp, #0x0] - ldr r0, [r5, #0x0] - mov r2, #0x0 - str r0, [sp, #0x4] - str r1, [sp, #0x8] - ldr r0, [r5, #0x4] - add r3, r2, #0x0 - str r0, [sp, #0xc] - ldrh r1, [r5, #0x8] - add r0, r4, #0x0 - bl FUN_02066ACC - add r2, r5, #0x0 - add r0, r4, #0x0 - mov r1, #0x74 - add r2, #0xa - bl FUN_02067830 - add r5, #0x33 - add r0, r4, #0x0 - mov r1, #0x70 - add r2, r5, #0x0 - bl FUN_02067830 - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02027CF8 -FUN_02027CF8: ; 0x02027CF8 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02027CFC -FUN_02027CFC: ; 0x02027CFC - ldrb r0, [r0, #0x1] - bx lr - - thumb_func_start FUN_02027D00 -FUN_02027D00: ; 0x02027D00 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02027D04 -FUN_02027D04: ; 0x02027D04 - mov r1, #0x3 - ldrsb r0, [r0, r1] - bx lr - .balign 4 - - thumb_func_start FUN_02027D0C -FUN_02027D0C: ; 0x02027D0C - push {r4-r7, lr} - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0xc - add r7, r0, #0x0 - mov r0, #0x1 - add r4, r1, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_0202729C - cmp r0, #0x1 - bne _02027D6A - ldr r1, _02027D78 ; =0xEDB88320 - add r0, sp, #0x4 - bl MATHi_CRC32InitTableRev - add r0, sp, #0x4 - add r1, r4, #0x0 - mov r2, #0x74 - bl MATH_CalcCRC32 - add r6, r0, #0x0 - mov r5, #0x0 -_02027D3C: - add r0, r7, #0x0 - add r1, r5, #0x0 - bl FUN_02027008 - add r4, r0, #0x0 - ldr r1, _02027D78 ; =0xEDB88320 - add r0, sp, #0x4 - bl MATHi_CRC32InitTableRev - add r0, sp, #0x4 - add r1, r4, #0x0 - mov r2, #0x74 - bl MATH_CalcCRC32 - cmp r0, r6 - bne _02027D62 - mov r0, #0x0 - str r0, [sp, #0x0] - b _02027D6E -_02027D62: - add r5, r5, #0x1 - cmp r5, #0xb - blt _02027D3C - b _02027D6E -_02027D6A: - mov r0, #0x0 - str r0, [sp, #0x0] -_02027D6E: - ldr r0, [sp, #0x0] - add sp, #0x1fc - add sp, #0x1fc - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02027D78: .word 0xEDB88320 - - thumb_func_start FUN_02027D7C -FUN_02027D7C: ; 0x02027D7C - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - mov r7, #0x0 - ldr r0, [sp, #0x0] - str r1, [sp, #0x4] - add r5, r2, #0x0 - add r6, r7, #0x0 - str r3, [sp, #0x8] - cmp r0, #0x0 - ble _02027DB6 - add r4, r3, #0x0 -_02027D94: - ldr r0, [sp, #0x4] - cmp r6, r0 - beq _02027DAC - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02027DAC - add r0, r5, #0x0 - bl FUN_02027D0C - cmp r0, #0x1 - bne _02027DAC - add r7, r7, #0x1 -_02027DAC: - ldr r0, [sp, #0x0] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _02027D94 -_02027DB6: - mov r4, #0xa -_02027DB8: - add r1, r4, r7 - cmp r1, #0xb - bge _02027DD6 - add r0, r5, #0x0 - bl FUN_02027008 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02027008 - add r1, r0, #0x0 - add r0, r6, #0x0 - bl FUN_020274B8 -_02027DD6: - sub r4, r4, #0x1 - cmp r4, #0x1 - bge _02027DB8 - ldr r0, [sp, #0x0] - mov r6, #0x1 - mov r4, #0x0 - cmp r0, #0x0 - ble _02027E1E -_02027DE6: - ldr r0, [sp, #0x4] - cmp r4, r0 - beq _02027E10 - ldr r0, [sp, #0x8] - ldr r7, [r0, #0x0] - cmp r7, #0x0 - beq _02027E10 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_02027D0C - cmp r0, #0x1 - bne _02027E10 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02027008 - add r1, r7, #0x0 - add r6, r6, #0x1 - bl FUN_020274B8 -_02027E10: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r0, r0, #0x4 - str r0, [sp, #0x8] - ldr r0, [sp, #0x0] - cmp r4, r0 - blt _02027DE6 -_02027E1E: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02027E24 -FUN_02027E24: ; 0x02027E24 - ldr r3, _02027E2C ; =FUN_02022610 - mov r1, #0xe - bx r3 - nop -_02027E2C: .word FUN_02022610 - - thumb_func_start FUN_02027E30 -FUN_02027E30: ; 0x02027E30 - mov r0, #0x8 - bx lr - - thumb_func_start FUN_02027E34 -FUN_02027E34: ; 0x02027E34 - ldrb r0, [r0, #0x0] - cmp r0, #0x1e - beq _02027E3E - mov r0, #0x1 - bx lr -_02027E3E: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02027E44 -FUN_02027E44: ; 0x02027E44 - mov r1, #0x1e - strb r1, [r0, #0x0] - mov r1, #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] - bx lr - .balign 4 - - thumb_func_start FUN_02027E5C -FUN_02027E5C: ; 0x02027E5C - push {r4, lr} - mov r1, #0x8 - bl FUN_020169D8 - add r4, r0, #0x0 - bl FUN_02027E44 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02027E70 -FUN_02027E70: ; 0x02027E70 - ldrb r2, [r0, #0x0] - strb r2, [r1, #0x0] - ldrb r2, [r0, #0x1] - strb r2, [r1, #0x1] - ldrb r2, [r0, #0x2] - strb r2, [r1, #0x2] - ldrb r2, [r0, #0x3] - strb r2, [r1, #0x3] - ldrb r2, [r0, #0x4] - strb r2, [r1, #0x4] - ldrb r2, [r0, #0x5] - strb r2, [r1, #0x5] - ldrb r2, [r0, #0x6] - strb r2, [r1, #0x6] - ldrb r0, [r0, #0x7] - strb r0, [r1, #0x7] - bx lr - .balign 4 - - thumb_func_start FUN_02027E94 -FUN_02027E94: ; 0x02027E94 - cmp r1, #0x6 - bhi _02027ECA - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02027EA4: ; jump table (using 16-bit offset) - .short _02027EB2 - _02027EA4 - 2; case 0 - .short _02027EB6 - _02027EA4 - 2; case 1 - .short _02027EBA - _02027EA4 - 2; case 2 - .short _02027EBE - _02027EA4 - 2; case 3 - .short _02027EC2 - _02027EA4 - 2; case 4 - .short _02027EC6 - _02027EA4 - 2; case 5 - .short _02027ECA - _02027EA4 - 2; case 6 -_02027EB2: - ldrb r0, [r0, #0x0] - bx lr -_02027EB6: - ldrb r0, [r0, #0x1] - bx lr -_02027EBA: - ldrb r0, [r0, #0x2] - bx lr -_02027EBE: - ldrb r0, [r0, #0x3] - bx lr -_02027EC2: - ldrb r0, [r0, #0x4] - bx lr -_02027EC6: - ldrb r0, [r0, #0x5] - bx lr -_02027ECA: - ldrb r0, [r0, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_02027ED0 -FUN_02027ED0: ; 0x02027ED0 - push {r3-r7, lr} - add r5, r0, #0x0 - str r1, [sp, #0x0] - mov r4, #0x0 - mov r6, #0x2 - mov r7, #0x5 -_02027EDC: - bl FUN_0201B9EC - add r1, r7, #0x0 - bl _s32_div_f - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - add r1, r5, r0 - ldrb r0, [r1, #0x1] - cmp r0, #0x0 - bne _02027EF6 - strb r6, [r1, #0x1] - add r4, r4, #0x1 -_02027EF6: - cmp r4, #0x3 - blt _02027EDC - mov r0, #0x1b - strb r0, [r5, #0x0] - ldr r0, [sp, #0x0] - strb r0, [r5, #0x6] - pop {r3-r7, pc} - - thumb_func_start FUN_02027F04 -FUN_02027F04: ; 0x02027F04 - push {r3-r7, lr} - sub sp, #0x8 - mov r12, r2 - mov r2, #0x0 - add r6, r2, #0x0 - mov r5, #0x1b - cmp r3, #0x0 - beq _02027F20 - mov r1, r12 - bl FUN_02027ED0 - add sp, #0x8 - add r0, r5, #0x0 - pop {r3-r7, pc} -_02027F20: - add r4, r2, #0x0 - add r7, sp, #0x0 -_02027F24: - ldrb r3, [r1, r4] - cmp r3, #0x0 - beq _02027F34 - cmp r3, #0x32 - blo _02027F30 - mov r6, #0x1 -_02027F30: - strb r4, [r7, r2] - add r2, r2, #0x1 -_02027F34: - add r4, r4, #0x1 - cmp r4, #0x5 - blt _02027F24 - cmp r2, #0x5 - bhi _02027F9C - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02027F4A: ; jump table (using 16-bit offset) - .short _02027F56 - _02027F4A - 2; case 0 - .short _02027F62 - _02027F4A - 2; case 1 - .short _02027F70 - _02027F4A - 2; case 2 - .short _02027F96 - _02027F4A - 2; case 3 - .short _02027F9A - _02027F4A - 2; case 4 - .short _02027F9A - _02027F4A - 2; case 5 -_02027F56: - mov r1, r12 - bl FUN_02027ED0 - add sp, #0x8 - mov r0, #0x1b - pop {r3-r7, pc} -_02027F62: - add r2, sp, #0x0 - ldrb r3, [r2, #0x0] - mov r2, #0x6 - mul r2, r3 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - b _02027F9C -_02027F70: - add r2, sp, #0x0 - ldrb r3, [r2, #0x1] - ldrb r2, [r2, #0x0] - ldrb r4, [r1, r3] - ldrb r5, [r1, r2] - cmp r5, r4 - blo _02027F8A - lsl r4, r2, #0x2 - add r2, r2, r4 - add r2, r3, r2 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - b _02027F9C -_02027F8A: - lsl r4, r3, #0x2 - add r3, r3, r4 - add r2, r2, r3 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - b _02027F9C -_02027F96: - mov r5, #0x19 - b _02027F9C -_02027F9A: - mov r5, #0x1a -_02027F9C: - cmp r6, #0x0 - beq _02027FA2 - mov r5, #0x1c -_02027FA2: - mov r4, #0x0 -_02027FA4: - ldrb r3, [r1, r4] - add r2, r0, r4 - add r4, r4, #0x1 - strb r3, [r2, #0x1] - cmp r4, #0x5 - blt _02027FA4 - strb r5, [r0, #0x0] - mov r1, r12 - strb r1, [r0, #0x6] - add r0, r5, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02027FBC -FUN_02027FBC: ; 0x02027FBC - ldrb r2, [r0, #0x0] - strb r2, [r1, #0x0] - ldrb r2, [r0, #0x1] - strb r2, [r1, #0x1] - ldrb r2, [r0, #0x2] - strb r2, [r1, #0x2] - ldrb r2, [r0, #0x3] - strb r2, [r1, #0x3] - ldrb r2, [r0, #0x4] - strb r2, [r1, #0x4] - ldrb r2, [r0, #0x5] - strb r2, [r1, #0x5] - ldrb r0, [r0, #0x6] - strb r0, [r1, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_02027FDC -FUN_02027FDC: ; 0x02027FDC - push {r4, lr} - add r4, r0, #0x0 - ldrb r0, [r4, #0x0] - mov r1, #0x5 - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x5 - bhi _0202801C - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02027FFC: ; jump table (using 16-bit offset) - .short _02028008 - _02027FFC - 2; case 0 - .short _0202800C - _02027FFC - 2; case 1 - .short _02028010 - _02027FFC - 2; case 2 - .short _02028014 - _02027FFC - 2; case 3 - .short _02028018 - _02027FFC - 2; case 4 - .short _0202801C - _02027FFC - 2; case 5 -_02028008: - ldrb r0, [r4, #0x1] - b _0202803E -_0202800C: - ldrb r0, [r4, #0x2] - b _0202803E -_02028010: - ldrb r0, [r4, #0x3] - b _0202803E -_02028014: - ldrb r0, [r4, #0x4] - b _0202803E -_02028018: - ldrb r0, [r4, #0x5] - b _0202803E -_0202801C: - ldrb r0, [r4, #0x1] - ldrb r1, [r4, #0x2] - cmp r0, r1 - bhs _02028026 - add r0, r1, #0x0 -_02028026: - ldrb r1, [r4, #0x3] - cmp r0, r1 - bhs _0202802E - add r0, r1, #0x0 -_0202802E: - ldrb r1, [r4, #0x4] - cmp r0, r1 - bhs _02028036 - add r0, r1, #0x0 -_02028036: - ldrb r1, [r4, #0x5] - cmp r0, r1 - bhs _0202803E - add r0, r1, #0x0 -_0202803E: - cmp r0, #0x63 - bls _02028044 - mov r0, #0x63 -_02028044: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02028048 -FUN_02028048: ; 0x02028048 - ldr r3, _02028050 ; =FUN_02022610 - mov r1, #0x10 - bx r3 - nop -_02028050: .word FUN_02022610 - - thumb_func_start FUN_02028054 -FUN_02028054: ; 0x02028054 - mov r0, #0x32 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_0202805C -FUN_0202805C: ; 0x0202805C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 -_02028062: - add r0, r5, #0x0 - bl FUN_02027E44 - add r4, r4, #0x1 - add r5, #0x8 - cmp r4, #0x64 - blt _02028062 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02028074 -FUN_02028074: ; 0x02028074 - mov r2, #0x0 -_02028076: - lsl r1, r2, #0x3 - ldrb r1, [r0, r1] - cmp r1, #0x1e - bne _02028082 - add r0, r2, #0x0 - bx lr -_02028082: - add r1, r2, #0x1 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - cmp r2, #0x64 - blo _02028076 - ldr r0, _02028090 ; =0x0000FFFF - bx lr - .balign 4 -_02028090: .word 0x0000FFFF - - thumb_func_start FUN_02028094 -FUN_02028094: ; 0x02028094 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - bl FUN_02028074 - ldr r1, _020280B4 ; =0x0000FFFF - add r4, r0, #0x0 - cmp r4, r1 - beq _020280B2 - lsl r1, r4, #0x3 - add r0, r6, #0x0 - add r1, r5, r1 - bl FUN_02027E70 - add r0, r4, #0x0 -_020280B2: - pop {r4-r6, pc} - .balign 4 -_020280B4: .word 0x0000FFFF - - thumb_func_start FUN_020280B8 -FUN_020280B8: ; 0x020280B8 - push {r3, lr} - cmp r1, #0x64 - blo _020280C2 - mov r0, #0x0 - pop {r3, pc} -_020280C2: - lsl r1, r1, #0x3 - add r0, r0, r1 - bl FUN_02027E44 - mov r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020280D0 -FUN_020280D0: ; 0x020280D0 - cmp r1, #0x64 - bhs _020280EA -_020280D4: - lsl r2, r1, #0x3 - ldrb r2, [r0, r2] - cmp r2, #0x1e - beq _020280E0 - add r0, r1, #0x0 - bx lr -_020280E0: - add r1, r1, #0x1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #0x64 - blo _020280D4 -_020280EA: - ldr r0, _020280F0 ; =0x0000FFFF - bx lr - nop -_020280F0: .word 0x0000FFFF - - thumb_func_start FUN_020280F4 -FUN_020280F4: ; 0x020280F4 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r0, #0x0 - mov r7, #0x64 - str r0, [sp, #0x4] -_02028100: - ldr r0, [sp, #0x4] - lsl r0, r0, #0x3 - ldrb r0, [r5, r0] - cmp r0, #0x1e - bne _0202815C - ldr r6, [sp, #0x4] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020280D0 - add r4, r0, #0x0 - ldr r0, _02028170 ; =0x0000FFFF - cmp r4, r0 - beq _0202816A - ldr r0, [sp, #0x4] - sub r0, r4, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - cmp r4, r7 - bhs _02028154 - cmp r4, r7 - bhs _02028154 -_0202812E: - lsl r0, r4, #0x3 - lsl r1, r6, #0x3 - str r0, [sp, #0x8] - add r0, r5, r0 - add r1, r5, r1 - bl FUN_02027E70 - ldr r0, [sp, #0x8] - add r0, r5, r0 - bl FUN_02027E44 - add r0, r6, #0x1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r7 - blo _0202812E -_02028154: - ldr r0, [sp, #0x0] - sub r0, r7, r0 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 -_0202815C: - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - cmp r0, r7 - blo _02028100 -_0202816A: - add sp, #0xc - pop {r4-r7, pc} - nop -_02028170: .word 0x0000FFFF - - thumb_func_start FUN_02028174 -FUN_02028174: ; 0x02028174 - push {r3, lr} - cmp r1, #0x64 - blo _02028182 - add r0, r2, #0x0 - bl FUN_02027E44 - pop {r3, pc} -_02028182: - lsl r1, r1, #0x3 - add r0, r0, r1 - add r1, r2, #0x0 - bl FUN_02027E70 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02028190 -FUN_02028190: ; 0x02028190 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r2, #0x0 - add r4, r1, #0x0 - bl FUN_02027E5C - add r6, r0, #0x0 - cmp r4, #0x64 - blo _020281AA - bl FUN_02027E44 - mov r0, #0x0 - pop {r4-r6, pc} -_020281AA: - lsl r0, r4, #0x3 - add r0, r5, r0 - add r1, r6, #0x0 - bl FUN_02027E70 - add r0, r6, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020281B8 -FUN_020281B8: ; 0x020281B8 - push {r4-r6, lr} - mov r4, #0x0 - add r6, r0, #0x0 - add r5, r4, #0x0 -_020281C0: - lsl r0, r5, #0x3 - add r0, r6, r0 - bl FUN_02027E34 - cmp r0, #0x0 - beq _020281D2 - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020281D2: - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, #0x64 - blo _020281C0 - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020281E0 -FUN_020281E0: ; 0x020281E0 - mov r0, #0x1f - lsl r0, r0, #0x6 - bx lr - .balign 4 - - thumb_func_start FUN_020281E8 -FUN_020281E8: ; 0x020281E8 - push {r3-r7, lr} - add r7, r0, #0x0 - mov r2, #0x1f - mov r0, #0x0 - add r1, r7, #0x0 - lsl r2, r2, #0x6 - bl MIi_CpuClearFast - mov r0, #0x1d - lsl r0, r0, #0x4 - add r1, r0, #0x0 - add r2, r0, #0x0 - ldr r4, _02028224 ; =0x0000FFFF - mov r5, #0x0 - add r6, r7, #0x0 - mov r3, #0x2 - sub r1, #0x10 - add r2, #0x1e -_0202820C: - strh r4, [r6, r0] - strh r4, [r6, r1] - strb r3, [r6, r2] - add r5, r5, #0x1 - add r6, #0x30 - cmp r5, #0x20 - blt _0202820C - add r0, r7, #0x0 - bl FUN_0203380C - pop {r3-r7, pc} - nop -_02028224: .word 0x0000FFFF - - thumb_func_start FUN_02028228 -FUN_02028228: ; 0x02028228 - bx lr - .balign 4 - - thumb_func_start FUN_0202822C -FUN_0202822C: ; 0x0202822C - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r7, r2, #0x0 - cmp r4, #0x20 - blt _0202823C - bl ErrorHandling -_0202823C: - cmp r7, #0x8 - bhi _020282D0 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202824C: ; jump table (using 16-bit offset) - .short _0202825E - _0202824C - 2; case 0 - .short _0202826C - _0202824C - 2; case 1 - .short _0202827A - _0202824C - 2; case 2 - .short _02028286 - _0202824C - 2; case 3 - .short _02028294 - _0202824C - 2; case 4 - .short _020282A0 - _0202824C - 2; case 5 - .short _020282AE - _0202824C - 2; case 6 - .short _020282C6 - _0202824C - 2; case 7 - .short _020282BA - _0202824C - 2; case 8 -_0202825E: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x1e - lsl r0, r0, #0x4 - ldr r6, [r1, r0] - b _020282D0 -_0202826C: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x79 - lsl r0, r0, #0x2 - ldrh r6, [r1, r0] - b _020282D0 -_0202827A: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _020282D4 ; =0x000001E6 - ldrh r6, [r1, r0] - b _020282D0 -_02028286: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x7a - lsl r0, r0, #0x2 - ldrh r6, [r1, r0] - b _020282D0 -_02028294: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _020282D8 ; =0x000001EA - ldrh r6, [r1, r0] - b _020282D0 -_020282A0: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x7b - lsl r0, r0, #0x2 - ldrb r6, [r1, r0] - b _020282D0 -_020282AE: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _020282DC ; =0x000001ED - ldrb r6, [r1, r0] - b _020282D0 -_020282BA: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _020282E0 ; =0x000001EE - ldrb r6, [r1, r0] - b _020282D0 -_020282C6: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _020282E4 ; =0x000001EF - ldrb r6, [r1, r0] -_020282D0: - add r0, r6, #0x0 - pop {r3-r7, pc} - .balign 4 -_020282D4: .word 0x000001E6 -_020282D8: .word 0x000001EA -_020282DC: .word 0x000001ED -_020282E0: .word 0x000001EE -_020282E4: .word 0x000001EF - - thumb_func_start FUN_020282E8 -FUN_020282E8: ; 0x020282E8 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r7, r2, #0x0 - add r6, r3, #0x0 - cmp r4, #0x20 - blt _020282FA - bl ErrorHandling -_020282FA: - cmp r7, #0x8 - bhi _02028378 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202830A: ; jump table (using 16-bit offset) - .short _0202831C - _0202830A - 2; case 0 - .short _0202832A - _0202830A - 2; case 1 - .short _02028330 - _0202830A - 2; case 2 - .short _02028336 - _0202830A - 2; case 3 - .short _0202833C - _0202830A - 2; case 4 - .short _02028348 - _0202830A - 2; case 5 - .short _02028356 - _0202830A - 2; case 6 - .short _0202836E - _0202830A - 2; case 7 - .short _02028362 - _0202830A - 2; case 8 -_0202831C: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x1e - lsl r0, r0, #0x4 - str r6, [r1, r0] - pop {r3-r7, pc} -_0202832A: - bl ErrorHandling - pop {r3-r7, pc} -_02028330: - bl ErrorHandling - pop {r3-r7, pc} -_02028336: - bl ErrorHandling - pop {r3-r7, pc} -_0202833C: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _0202837C ; =0x000001EA - strh r6, [r1, r0] - pop {r3-r7, pc} -_02028348: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - mov r0, #0x7b - lsl r0, r0, #0x2 - strb r6, [r1, r0] - pop {r3-r7, pc} -_02028356: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _02028380 ; =0x000001ED - strb r6, [r1, r0] - pop {r3-r7, pc} -_02028362: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _02028384 ; =0x000001EE - strb r6, [r1, r0] - pop {r3-r7, pc} -_0202836E: - mov r0, #0x30 - mul r0, r4 - add r1, r5, r0 - ldr r0, _02028388 ; =0x000001EF - strb r6, [r1, r0] -_02028378: - pop {r3-r7, pc} - nop -_0202837C: .word 0x000001EA -_02028380: .word 0x000001ED -_02028384: .word 0x000001EE -_02028388: .word 0x000001EF - - thumb_func_start FUN_0202838C -FUN_0202838C: ; 0x0202838C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x20 - blt _0202839A - bl ErrorHandling -_0202839A: - mov r0, #0xc - add r5, #0x40 - mul r0, r4 - add r0, r5, r0 - pop {r3-r5, pc} - - thumb_func_start FUN_020283A4 -FUN_020283A4: ; 0x020283A4 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x20 - blt _020283B2 - bl ErrorHandling -_020283B2: - mov r0, #0x1d - lsl r0, r0, #0x4 - add r1, r5, r0 - mov r0, #0x30 - mul r0, r4 - add r0, r1, r0 - pop {r3-r5, pc} - - thumb_func_start FUN_020283C0 -FUN_020283C0: ; 0x020283C0 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x20 - blt _020283D0 - bl ErrorHandling -_020283D0: - mov r1, #0x1d - lsl r1, r1, #0x4 - add r2, r5, r1 - mov r1, #0x30 - mul r1, r4 - add r1, r2, r1 - add r0, r6, #0x0 - mov r2, #0x10 - bl FUN_02021EF0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020283E8 -FUN_020283E8: ; 0x020283E8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x20 - blt _020283F6 - bl ErrorHandling -_020283F6: - mov r0, #0x7 - lsl r0, r0, #0x6 - add r1, r5, r0 - mov r0, #0x30 - mul r0, r4 - add r0, r1, r0 - pop {r3-r5, pc} - - thumb_func_start FUN_02028404 -FUN_02028404: ; 0x02028404 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x20 - blt _02028414 - bl ErrorHandling -_02028414: - mov r1, #0x7 - lsl r1, r1, #0x6 - add r2, r5, r1 - mov r1, #0x30 - mul r1, r4 - add r1, r2, r1 - add r0, r6, #0x0 - mov r2, #0x10 - bl FUN_02021EF0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202842C -FUN_0202842C: ; 0x0202842C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x20 - blt _0202843A - bl ErrorHandling -_0202843A: - mov r0, #0xc - add r5, #0x40 - mul r0, r4 - add r0, r5, r0 - bl FUN_0209700C - pop {r3-r5, pc} - - thumb_func_start FUN_02028448 -FUN_02028448: ; 0x02028448 - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_02028450: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0202842C - cmp r0, #0x0 - beq _0202845E - add r5, r5, #0x1 -_0202845E: - add r4, r4, #0x1 - cmp r4, #0x20 - blt _02028450 - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02028468 -FUN_02028468: ; 0x02028468 - push {r4-r7, lr} - sub sp, #0xc - add r5, r1, #0x0 - str r0, [sp, #0x0] - cmp r5, #0x20 - blt _02028478 - bl ErrorHandling -_02028478: - cmp r5, #0x1f - bge _020284D2 - mov r1, #0x7 - ldr r0, [sp, #0x0] - lsl r1, r1, #0x6 - add r0, r0, r1 - str r0, [sp, #0x4] - mov r0, #0x30 - add r1, r5, #0x0 - mul r1, r0 - ldr r0, [sp, #0x4] - add r6, r0, r1 - ldr r0, [sp, #0x0] - add r1, r5, #0x0 - str r0, [sp, #0x8] - add r0, #0x40 - str r0, [sp, #0x8] - mov r0, #0xc - mul r1, r0 - ldr r0, [sp, #0x8] - add r4, r0, r1 -_020284A2: - add r7, r5, #0x1 - mov r0, #0x30 - add r1, r7, #0x0 - mul r1, r0 - ldr r0, [sp, #0x4] - mov r2, #0x30 - add r0, r0, r1 - add r1, r6, #0x0 - bl MI_CpuCopy8 - mov r0, #0xc - add r1, r7, #0x0 - mul r1, r0 - ldr r0, [sp, #0x8] - mov r2, #0xc - add r0, r0, r1 - add r1, r4, #0x0 - bl MI_CpuCopy8 - add r5, r5, #0x1 - add r6, #0x30 - add r4, #0xc - cmp r5, #0x1f - blt _020284A2 -_020284D2: - mov r2, #0x7 - ldr r1, [sp, #0x0] - lsl r2, r2, #0x6 - add r2, r1, r2 - mov r1, #0x5d - lsl r1, r1, #0x4 - add r1, r2, r1 - mov r0, #0x0 - mov r2, #0x30 - bl MIi_CpuClearFast - ldr r2, [sp, #0x0] - mov r1, #0x5d - add r2, #0x40 - lsl r1, r1, #0x2 - add r1, r2, r1 - mov r0, #0x0 - mov r2, #0xc - bl MIi_CpuClearFast - mov r2, #0x7a - lsl r2, r2, #0x4 - add r1, r2, #0x0 - ldr r3, _02028514 ; =0x0000FFFF - ldr r0, [sp, #0x0] - sub r1, #0x10 - strh r3, [r0, r2] - strh r3, [r0, r1] - mov r1, #0x2 - add r2, #0x1e - strb r1, [r0, r2] - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02028514: .word 0x0000FFFF - - thumb_func_start FUN_02028518 -FUN_02028518: ; 0x02028518 - push {r4-r7, lr} - sub sp, #0xc - str r2, [sp, #0x4] - add r7, r0, #0x0 - ldr r0, [sp, #0x4] - mov r2, #0x30 - add r5, r0, #0x0 - mov r0, #0x7 - lsl r0, r0, #0x6 - add r3, r1, #0x0 - mul r5, r2 - add r4, r7, r0 - mul r3, r2 - str r1, [sp, #0x0] - add r0, r4, r5 - add r1, r4, r3 - bl MI_CpuCopy8 - ldr r0, [sp, #0x4] - add r6, r7, #0x0 - mov r3, #0xc - add r1, r0, #0x0 - mul r1, r3 - add r6, #0x40 - str r1, [sp, #0x8] - add r0, r6, r1 - ldr r1, [sp, #0x0] - add r2, r1, #0x0 - mul r2, r3 - add r1, r6, r2 - add r2, r3, #0x0 - bl MI_CpuCopy8 - mov r0, #0x0 - add r1, r4, r5 - mov r2, #0x30 - bl MIi_CpuClearFast - ldr r1, [sp, #0x8] - mov r0, #0x0 - add r1, r6, r1 - mov r2, #0xc - bl MIi_CpuClearFast - mov r0, #0x1d - ldr r1, _02028588 ; =0x0000FFFF - add r2, r7, r5 - lsl r0, r0, #0x4 - strh r1, [r2, r0] - strh r1, [r4, r5] - mov r1, #0x2 - add r0, #0x1e - strb r1, [r2, r0] - add sp, #0xc - pop {r4-r7, pc} - nop -_02028588: .word 0x0000FFFF - - thumb_func_start FUN_0202858C -FUN_0202858C: ; 0x0202858C - push {r3-r7, lr} - mov r5, #0x0 - mvn r5, r5 - add r6, r0, #0x0 - mov r4, #0x0 - add r7, r5, #0x0 -_02028598: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0202842C - cmp r0, #0x0 - beq _020285BC - mov r0, #0x0 - mvn r0, r0 - cmp r5, r0 - beq _020285C6 - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02028518 - add r4, r7, #0x0 - add r5, r7, #0x0 - b _020285C6 -_020285BC: - mov r0, #0x0 - mvn r0, r0 - cmp r5, r0 - bne _020285C6 - add r5, r4, #0x0 -_020285C6: - add r4, r4, #0x1 - cmp r4, #0x20 - blt _02028598 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020285D0 -FUN_020285D0: ; 0x020285D0 - push {r3-r5, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r0, sp, #0x0 - bl FUN_020126B4 - mov r0, #0x30 - add r2, r4, #0x0 - mul r2, r0 - mov r0, #0x7d - ldr r1, [sp, #0x0] - lsl r0, r0, #0x4 - add r1, r1, r0 - ldr r0, _02028604 ; =0x000001EA - add r3, r5, r2 - strh r1, [r3, r0] - add r1, r0, #0x2 - ldr r2, [sp, #0x4] - add r0, r0, #0x3 - strb r2, [r3, r1] - ldr r1, [sp, #0x8] - strb r1, [r3, r0] - add sp, #0x10 - pop {r3-r5, pc} - nop -_02028604: .word 0x000001EA - - thumb_func_start FUN_02028608 -FUN_02028608: ; 0x02028608 - push {r4-r6, lr} - mov r5, #0x79 - add r4, r0, #0x0 - mov r0, #0x30 - lsl r5, r5, #0x2 - mul r0, r1 - add r5, r4, r5 - ldrh r6, [r5, r0] - add r2, r6, r2 - strh r2, [r5, r0] - ldrh r6, [r5, r0] - ldr r2, _0202865C ; =0x0000270F - cmp r6, r2 - bls _02028626 - strh r2, [r5, r0] -_02028626: - ldr r2, _02028660 ; =0x000001E6 - add r2, r4, r2 - ldrh r5, [r2, r0] - add r3, r5, r3 - strh r3, [r2, r0] - ldrh r5, [r2, r0] - ldr r3, _0202865C ; =0x0000270F - cmp r5, r3 - bls _0202863A - strh r3, [r2, r0] -_0202863A: - mov r2, #0x7a - lsl r2, r2, #0x2 - add r2, r4, r2 - ldrh r5, [r2, r0] - ldr r3, [sp, #0x10] - add r3, r5, r3 - strh r3, [r2, r0] - ldrh r5, [r2, r0] - ldr r3, _0202865C ; =0x0000270F - cmp r5, r3 - bls _02028652 - strh r3, [r2, r0] -_02028652: - add r0, r4, #0x0 - bl FUN_020285D0 - pop {r4-r6, pc} - nop -_0202865C: .word 0x0000270F -_02028660: .word 0x000001E6 - - thumb_func_start FUN_02028664 -FUN_02028664: ; 0x02028664 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r3, #0x79 - mov r0, #0x30 - add r4, r1, #0x0 - mul r4, r0 - lsl r3, r3, #0x2 - mul r0, r2 - add r2, r5, r3 - add r6, r5, r4 - ldrh r1, [r2, r0] - ldrh r3, [r6, r3] - add r1, r1, r3 - strh r1, [r2, r0] - ldrh r3, [r2, r0] - ldr r1, _020286E0 ; =0x0000270F - cmp r3, r1 - bls _0202868A - strh r1, [r2, r0] -_0202868A: - ldr r3, _020286E4 ; =0x000001E6 - add r6, r5, r4 - add r2, r5, r3 - ldrh r1, [r2, r0] - ldrh r3, [r6, r3] - add r1, r1, r3 - strh r1, [r2, r0] - ldrh r3, [r2, r0] - ldr r1, _020286E0 ; =0x0000270F - cmp r3, r1 - bls _020286A2 - strh r1, [r2, r0] -_020286A2: - mov r3, #0x7a - lsl r3, r3, #0x2 - add r2, r5, r3 - add r6, r5, r4 - ldrh r1, [r2, r0] - ldrh r3, [r6, r3] - add r1, r1, r3 - strh r1, [r2, r0] - ldrh r3, [r2, r0] - ldr r1, _020286E0 ; =0x0000270F - cmp r3, r1 - bls _020286BC - strh r1, [r2, r0] -_020286BC: - mov r0, #0x7 - lsl r0, r0, #0x6 - add r6, r5, r0 - mov r0, #0x0 - add r1, r6, r4 - mov r2, #0x30 - bl MIi_CpuClearFast - mov r0, #0x1d - ldr r1, _020286E8 ; =0x0000FFFF - add r2, r5, r4 - lsl r0, r0, #0x4 - strh r1, [r2, r0] - strh r1, [r6, r4] - mov r1, #0x2 - add r0, #0x1e - strb r1, [r2, r0] - pop {r4-r6, pc} - .balign 4 -_020286E0: .word 0x0000270F -_020286E4: .word 0x000001E6 -_020286E8: .word 0x0000FFFF - - thumb_func_start FUN_020286EC -FUN_020286EC: ; 0x020286EC - ldr r3, _020286F4 ; =FUN_02022610 - mov r1, #0x1d - bx r3 - nop -_020286F4: .word FUN_02022610 - - thumb_func_start FUN_020286F8 -FUN_020286F8: ; 0x020286F8 - mov r0, #0x42 - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_02028700 -FUN_02028700: ; 0x02028700 - push {r4-r5} - add r5, r2, #0x0 - mov r3, #0x2c - add r2, r1, #0x0 - mul r2, r3 - mul r5, r3 - add r4, r0, r2 - add r3, r0, r5 - mov r2, #0x5 -_02028712: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02028712 - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_02028724 -FUN_02028724: ; 0x02028724 - push {r4, lr} - add r4, r0, #0x0 - mov r2, #0x42 - mov r0, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - bl MIi_CpuClearFast - ldr r0, _0202874C ; =0x0000FFFF - mov r1, #0x0 - add r2, r4, #0x0 -_0202873A: - strh r0, [r2, #0x0] - strh r0, [r2, #0x10] - add r1, r1, #0x1 - add r2, #0x2c - cmp r1, #0x6 - blt _0202873A - ldr r0, _02028750 ; =0x021C59D0 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 -_0202874C: .word 0x0000FFFF -_02028750: .word 0x021C59D0 - - thumb_func_start FUN_02028754 -FUN_02028754: ; 0x02028754 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - mov r7, #0x0 -_0202875C: - mov r4, #0x0 - cmp r6, #0x0 - bls _02028770 -_02028762: - ldr r0, [r5, #0x28] - bl FUN_0201BA10 - add r4, r4, #0x1 - str r0, [r5, #0x28] - cmp r4, r6 - blo _02028762 -_02028770: - add r7, r7, #0x1 - add r5, #0x2c - cmp r7, #0x6 - blo _0202875C - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202877C -FUN_0202877C: ; 0x0202877C - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x24] - bx lr - .balign 4 - - thumb_func_start FUN_02028788 -FUN_02028788: ; 0x02028788 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x2c - add r4, r1, #0x0 - mul r4, r0 - add r0, r5, r4 - str r2, [r0, #0x24] - add r0, r2, #0x0 - bl FUN_0201BA10 - add r1, r5, r4 - str r0, [r1, #0x28] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020287A4 -FUN_020287A4: ; 0x020287A4 - ldr r0, [r0, #0x54] - bx lr - - thumb_func_start FUN_020287A8 -FUN_020287A8: ; 0x020287A8 - cmp r2, #0x0 - bne _020287B4 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - bx lr -_020287B4: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - add r0, #0x10 - bx lr - .balign 4 - - thumb_func_start FUN_020287C0 -FUN_020287C0: ; 0x020287C0 - push {r4, lr} - add r4, r0, #0x0 - cmp r2, #0x0 - bne _020287D8 - mov r2, #0x2c - mul r2, r1 - add r1, r4, r2 - add r0, r3, #0x0 - mov r2, #0x8 - bl FUN_02021EF0 - pop {r4, pc} -_020287D8: - mov r2, #0x2c - mul r2, r1 - add r1, r4, r2 - add r0, r3, #0x0 - add r1, #0x10 - mov r2, #0x8 - bl FUN_02021EF0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020287EC -FUN_020287EC: ; 0x020287EC - mov r3, #0x2c - mul r3, r1 - add r0, r0, r3 - add r0, #0x20 - strb r2, [r0, #0x0] - bx lr - - thumb_func_start FUN_020287F8 -FUN_020287F8: ; 0x020287F8 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - add r0, #0x20 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02028804 -FUN_02028804: ; 0x02028804 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - add r0, #0x21 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02028810 -FUN_02028810: ; 0x02028810 - mov r3, #0x2c - mul r3, r1 - add r0, r0, r3 - add r0, #0x21 - strb r2, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202881C -FUN_0202881C: ; 0x0202881C - ldr r3, _02028824 ; =FUN_02022610 - mov r1, #0x11 - bx r3 - nop -_02028824: .word FUN_02022610 - - thumb_func_start FUN_02028828 -FUN_02028828: ; 0x02028828 - push {r3, lr} - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - bl FUN_0202888C - cmp r0, #0x0 - bne _0202883C - mov r0, #0x1 - pop {r3, pc} -_0202883C: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02028840 -FUN_02028840: ; 0x02028840 - mov r2, #0x2c - add r3, r0, #0x0 - mul r2, r1 - add r1, r3, r2 - ldr r3, _02028850 ; =FUN_020288AC - add r0, #0x2c - bx r3 - nop -_02028850: .word FUN_020288AC - - thumb_func_start FUN_02028854 -FUN_02028854: ; 0x02028854 - push {r3-r7, lr} - add r6, r1, #0x0 - ldrh r1, [r6, #0x0] - add r5, r0, #0x0 - ldr r0, _02028888 ; =0x0000FFFF - cmp r1, r0 - bne _02028866 - mov r0, #0x0 - pop {r3-r7, pc} -_02028866: - mov r4, #0x0 - mov r7, #0x8 -_0202886A: - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r7, #0x0 - bl StringNotEqualN - cmp r0, #0x0 - bne _0202887C - mov r0, #0x1 - pop {r3-r7, pc} -_0202887C: - add r4, r4, #0x1 - add r5, #0x2c - cmp r4, #0x6 - blt _0202886A - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_02028888: .word 0x0000FFFF - - thumb_func_start FUN_0202888C -FUN_0202888C: ; 0x0202888C - ldrh r2, [r0, #0x0] - ldr r1, _020288A8 ; =0x0000FFFF - cmp r2, r1 - bne _02028898 - mov r0, #0x1 - bx lr -_02028898: - ldrh r0, [r0, #0x10] - cmp r0, r1 - bne _020288A2 - mov r0, #0x1 - bx lr -_020288A2: - mov r0, #0x0 - bx lr - nop -_020288A8: .word 0x0000FFFF - - thumb_func_start FUN_020288AC -FUN_020288AC: ; 0x020288AC - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r0, #0x10 - add r1, #0x10 - mov r2, #0x8 - bl StringNotEqualN - cmp r0, #0x0 - beq _020288C4 - mov r0, #0x0 - pop {r3-r5, pc} -_020288C4: - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x8 - bl StringNotEqualN - cmp r0, #0x0 - beq _020288D6 - mov r0, #0x0 - pop {r3-r5, pc} -_020288D6: - add r0, r5, #0x0 - add r0, #0x20 - ldrb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x20 - ldrb r0, [r0, #0x0] - cmp r1, r0 - beq _020288EA - mov r0, #0x0 - pop {r3-r5, pc} -_020288EA: - add r0, r5, #0x0 - add r0, #0x21 - ldrb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x21 - ldrb r0, [r0, #0x0] - cmp r1, r0 - beq _020288FE - mov r0, #0x0 - pop {r3-r5, pc} -_020288FE: - ldr r1, [r5, #0x24] - ldr r0, [r4, #0x24] - cmp r1, r0 - bne _0202890A - mov r0, #0x1 - pop {r3-r5, pc} -_0202890A: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02028910 -FUN_02028910: ; 0x02028910 - mov r1, #0x0 - strh r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02028918 -FUN_02028918: ; 0x02028918 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0202892C ; =0x0000C350 - add r4, r1, #0x0 - cmp r4, r0 - bls _02028928 - bl ErrorHandling -_02028928: - strh r4, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 -_0202892C: .word 0x0000C350 - - thumb_func_start FUN_02028930 -FUN_02028930: ; 0x02028930 - ldrh r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02028934 -FUN_02028934: ; 0x02028934 - ldrh r3, [r0, #0x0] - ldr r2, _02028950 ; =0x0000C350 - cmp r3, r2 - blo _02028940 - mov r0, #0x0 - bx lr -_02028940: - add r1, r3, r1 - strh r1, [r0, #0x0] - ldrh r1, [r0, #0x0] - cmp r1, r2 - bls _0202894C - strh r2, [r0, #0x0] -_0202894C: - mov r0, #0x1 - bx lr - .balign 4 -_02028950: .word 0x0000C350 - - thumb_func_start FUN_02028954 -FUN_02028954: ; 0x02028954 - ldrh r0, [r0, #0x0] - add r1, r1, r0 - ldr r0, _02028968 ; =0x0000C350 - cmp r1, r0 - bhi _02028962 - mov r0, #0x1 - bx lr -_02028962: - mov r0, #0x0 - bx lr - nop -_02028968: .word 0x0000C350 - - thumb_func_start FUN_0202896C -FUN_0202896C: ; 0x0202896C - ldrh r2, [r0, #0x0] - cmp r2, r1 - bhs _02028976 - mov r0, #0x0 - bx lr -_02028976: - sub r1, r2, r1 - strh r1, [r0, #0x0] - mov r0, #0x1 - bx lr - .balign 4 - - thumb_func_start FUN_02028980 -FUN_02028980: ; 0x02028980 - mov r0, #0x46 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02028988 -FUN_02028988: ; 0x02028988 - ldr r3, _02028990 ; =Call_FillMemWithValue - mov r1, #0x0 - mov r2, #0x70 - bx r3 - .balign 4 -_02028990: .word Call_FillMemWithValue - - thumb_func_start FUN_02028994 -FUN_02028994: ; 0x02028994 - ldr r3, _020289A0 ; =Call_FillMemWithValue - mov r2, #0x46 - mov r1, #0x0 - lsl r2, r2, #0x4 - bx r3 - nop -_020289A0: .word Call_FillMemWithValue - - thumb_func_start FUN_020289A4 -FUN_020289A4: ; 0x020289A4 - ldr r3, _020289AC ; =FUN_02022610 - mov r1, #0x12 - bx r3 - nop -_020289AC: .word FUN_02022610 - - thumb_func_start FUN_020289B0 -FUN_020289B0: ; 0x020289B0 - push {r3-r7, lr} - sub sp, #0x10 - add r7, r0, #0x0 - cmp r1, #0x1 - beq _020289C0 - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_020289C0: - add r0, sp, #0x0 - bl FUN_020126B4 - ldr r0, [r7, #0x0] - lsl r1, r0, #0x15 - lsr r3, r1, #0x1c - beq _02028A18 - lsl r1, r0, #0x19 - lsr r2, r1, #0x19 - ldr r1, [sp, #0x0] - cmp r2, r1 - bne _020289F2 - ldr r1, [sp, #0x4] - cmp r3, r1 - bne _020289F2 - lsl r1, r0, #0xd - lsr r2, r1, #0x1b - ldr r1, [sp, #0x8] - cmp r2, r1 - bne _020289F2 - lsl r0, r0, #0x12 - lsr r1, r0, #0x1d - ldr r0, [sp, #0xc] - cmp r1, r0 - beq _02028A18 -_020289F2: - mov r0, #0x3f - lsl r0, r0, #0x4 - mov r5, #0x9 - add r6, r7, r0 -_020289FA: - add r4, r6, #0x0 - sub r4, #0x70 - add r3, r6, #0x0 - mov r2, #0xe -_02028A02: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02028A02 - sub r5, r5, #0x1 - sub r6, #0x70 - cmp r5, #0x1 - bge _020289FA - add r0, r7, #0x0 - bl FUN_02028988 -_02028A18: - add r0, r7, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02028A20 -FUN_02028A20: ; 0x02028A20 - push {r4, lr} - sub sp, #0x20 - add r4, r0, #0x0 - cmp r1, #0x1 - beq _02028A30 - add sp, #0x20 - mov r0, #0x0 - pop {r4, pc} -_02028A30: - add r0, sp, #0x0 - bl FUN_020126B4 - ldr r0, [r4, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x19 - str r0, [sp, #0x10] - ldr r0, [r4, #0x0] - lsl r0, r0, #0x15 - lsr r0, r0, #0x1c - str r0, [sp, #0x14] - ldr r0, [r4, #0x0] - lsl r0, r0, #0xd - lsr r0, r0, #0x1b - str r0, [sp, #0x18] - ldr r0, [r4, #0x0] - lsl r0, r0, #0x12 - lsr r0, r0, #0x1d - str r0, [sp, #0x1c] - add r0, sp, #0x0 - bl FUN_02012710 - add r4, r0, #0x0 - add r0, sp, #0x10 - bl FUN_02012710 - ldr r2, [sp, #0x4] - sub r0, r4, r0 - cmp r2, #0xc - bne _02028A7E - ldr r1, [sp, #0x8] - cmp r1, #0x1f - bne _02028A7E - ldr r1, [sp, #0x14] - cmp r1, #0x1 - bne _02028A7E - ldr r1, [sp, #0x18] - cmp r1, #0x1 - beq _02028A94 -_02028A7E: - cmp r2, #0x1 - bne _02028AAC - ldr r1, [sp, #0x8] - cmp r1, #0x1 - bne _02028AAC - ldr r1, [sp, #0x14] - cmp r1, #0xc - bne _02028AAC - ldr r1, [sp, #0x18] - cmp r1, #0x1f - bne _02028AAC -_02028A94: - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x10] - sub r1, r1, r0 - cmp r1, #0x2 - bge _02028AA6 - mov r0, #0x1 - mvn r0, r0 - cmp r1, r0 - bgt _02028ACC -_02028AA6: - add sp, #0x20 - mov r0, #0x1 - pop {r4, pc} -_02028AAC: - mov r1, #0x1 - mvn r1, r1 - cmp r0, r1 - ble _02028AB8 - cmp r0, #0x2 - blt _02028ABE -_02028AB8: - add sp, #0x20 - mov r0, #0x1 - pop {r4, pc} -_02028ABE: - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x10] - cmp r1, r0 - beq _02028ACC - add sp, #0x20 - mov r0, #0x1 - pop {r4, pc} -_02028ACC: - mov r0, #0x0 - add sp, #0x20 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02028AD4 -FUN_02028AD4: ; 0x02028AD4 - push {r4, lr} - add r4, r1, #0x0 - cmp r0, #0x0 - beq _02028B12 - cmp r2, #0x4 - bhi _02028B12 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02028AEC: ; jump table (using 16-bit offset) - .short _02028AF6 - _02028AEC - 2; case 0 - .short _02028AFC - _02028AEC - 2; case 1 - .short _02028B02 - _02028AEC - 2; case 2 - .short _02028B08 - _02028AEC - 2; case 3 - .short _02028B0E - _02028AEC - 2; case 4 -_02028AF6: - bl FUN_02028B1C - b _02028B12 -_02028AFC: - bl FUN_02028B5C - b _02028B12 -_02028B02: - bl FUN_02028BF0 - b _02028B12 -_02028B08: - bl FUN_02028BFC - b _02028B12 -_02028B0E: - bl FUN_02028C08 -_02028B12: - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02028B1C -FUN_02028B1C: ; 0x02028B1C - push {r4-r5} - ldr r3, [r0, #0x0] - lsl r2, r3, #0x19 - lsr r5, r2, #0x19 - ldr r2, [r1, #0x0] - lsl r4, r2, #0x19 - lsr r4, r4, #0x19 - cmp r5, r4 - bne _02028B52 - lsl r4, r3, #0x15 - lsr r5, r4, #0x1c - lsl r4, r2, #0x15 - lsr r4, r4, #0x1c - cmp r5, r4 - bne _02028B52 - lsl r4, r3, #0xd - lsr r5, r4, #0x1b - lsl r4, r2, #0xd - lsr r4, r4, #0x1b - cmp r5, r4 - bne _02028B52 - lsl r3, r3, #0x12 - lsl r2, r2, #0x12 - lsr r3, r3, #0x1d - lsr r2, r2, #0x1d - cmp r3, r2 - beq _02028B56 -_02028B52: - ldr r1, [r1, #0x0] - str r1, [r0, #0x0] -_02028B56: - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_02028B5C -FUN_02028B5C: ; 0x02028B5C - push {r3, lr} - ldrb r2, [r1, #0x0] - cmp r2, #0x23 - bhi _02028BEE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02028B70: ; jump table (using 16-bit offset) - .short _02028BEE - _02028B70 - 2; case 0 - .short _02028BB8 - _02028B70 - 2; case 1 - .short _02028BB8 - _02028B70 - 2; case 2 - .short _02028BB8 - _02028B70 - 2; case 3 - .short _02028BB8 - _02028B70 - 2; case 4 - .short _02028BB8 - _02028B70 - 2; case 5 - .short _02028BB8 - _02028B70 - 2; case 6 - .short _02028BB8 - _02028B70 - 2; case 7 - .short _02028BB8 - _02028B70 - 2; case 8 - .short _02028BC0 - _02028B70 - 2; case 9 - .short _02028BC0 - _02028B70 - 2; case 10 - .short _02028BC8 - _02028B70 - 2; case 11 - .short _02028BD0 - _02028B70 - 2; case 12 - .short _02028BD8 - _02028B70 - 2; case 13 - .short _02028BD8 - _02028B70 - 2; case 14 - .short _02028BD8 - _02028B70 - 2; case 15 - .short _02028BB8 - _02028B70 - 2; case 16 - .short _02028BB8 - _02028B70 - 2; case 17 - .short _02028BE0 - _02028B70 - 2; case 18 - .short _02028BE8 - _02028B70 - 2; case 19 - .short _02028BE8 - _02028B70 - 2; case 20 - .short _02028BE8 - _02028B70 - 2; case 21 - .short _02028BE8 - _02028B70 - 2; case 22 - .short _02028BE8 - _02028B70 - 2; case 23 - .short _02028BE8 - _02028B70 - 2; case 24 - .short _02028BE8 - _02028B70 - 2; case 25 - .short _02028BE8 - _02028B70 - 2; case 26 - .short _02028BE8 - _02028B70 - 2; case 27 - .short _02028BE8 - _02028B70 - 2; case 28 - .short _02028BE8 - _02028B70 - 2; case 29 - .short _02028BE8 - _02028B70 - 2; case 30 - .short _02028BEE - _02028B70 - 2; case 31 - .short _02028BE8 - _02028B70 - 2; case 32 - .short _02028BE8 - _02028B70 - 2; case 33 - .short _02028BB8 - _02028B70 - 2; case 34 - .short _02028BB8 - _02028B70 - 2; case 35 -_02028BB8: - add r0, r0, #0x4 - bl FUN_02028CE8 - pop {r3, pc} -_02028BC0: - add r0, r0, #0x4 - bl FUN_02028D98 - pop {r3, pc} -_02028BC8: - add r0, r0, #0x4 - bl FUN_02028D44 - pop {r3, pc} -_02028BD0: - add r0, r0, #0x4 - bl FUN_02028D24 - pop {r3, pc} -_02028BD8: - add r0, r0, #0x4 - bl FUN_02028DFC - pop {r3, pc} -_02028BE0: - add r0, r0, #0x4 - bl FUN_02028E44 - pop {r3, pc} -_02028BE8: - add r0, r0, #0x4 - bl FUN_02028E8C -_02028BEE: - pop {r3, pc} - - thumb_func_start FUN_02028BF0 -FUN_02028BF0: ; 0x02028BF0 - ldrh r2, [r1, #0x0] - strh r2, [r0, #0x14] - ldrh r1, [r1, #0x2] - strh r1, [r0, #0x16] - bx lr - .balign 4 - - thumb_func_start FUN_02028BFC -FUN_02028BFC: ; 0x02028BFC - ldrh r2, [r1, #0x0] - strh r2, [r0, #0x18] - ldrh r1, [r1, #0x2] - strh r1, [r0, #0x1a] - bx lr - .balign 4 - - thumb_func_start FUN_02028C08 -FUN_02028C08: ; 0x02028C08 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - bl FUN_02028CA8 - ldrb r1, [r4, #0x0] - cmp r1, #0x10 - bhi _02028C6E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02028C24: ; jump table (using 16-bit offset) - .short _02028C6E - _02028C24 - 2; case 0 - .short _02028C46 - _02028C24 - 2; case 1 - .short _02028C46 - _02028C24 - 2; case 2 - .short _02028C46 - _02028C24 - 2; case 3 - .short _02028C46 - _02028C24 - 2; case 4 - .short _02028C46 - _02028C24 - 2; case 5 - .short _02028C4E - _02028C24 - 2; case 6 - .short _02028C56 - _02028C24 - 2; case 7 - .short _02028C5E - _02028C24 - 2; case 8 - .short _02028C56 - _02028C24 - 2; case 9 - .short _02028C5E - _02028C24 - 2; case 10 - .short _02028C46 - _02028C24 - 2; case 11 - .short _02028C5E - _02028C24 - 2; case 12 - .short _02028C68 - _02028C24 - 2; case 13 - .short _02028C5E - _02028C24 - 2; case 14 - .short _02028C56 - _02028C24 - 2; case 15 - .short _02028C5E - _02028C24 - 2; case 16 -_02028C46: - add r1, r4, #0x0 - bl FUN_02028ED4 - pop {r3-r5, pc} -_02028C4E: - add r1, r4, #0x0 - bl FUN_02028F10 - pop {r3-r5, pc} -_02028C56: - add r1, r4, #0x0 - bl FUN_02028F2C - pop {r3-r5, pc} -_02028C5E: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02028F60 - pop {r3-r5, pc} -_02028C68: - add r1, r4, #0x0 - bl FUN_02028F94 -_02028C6E: - pop {r3-r5, pc} - - thumb_func_start FUN_02028C70 -FUN_02028C70: ; 0x02028C70 - push {r3-r4} - mov r3, #0x0 - add r4, r0, #0x0 - mov r1, #0x3f -_02028C78: - ldr r2, [r4, #0x0] - tst r2, r1 - bne _02028C86 - lsl r1, r3, #0x2 - add r0, r0, r1 - pop {r3-r4} - bx lr -_02028C86: - add r3, r3, #0x1 - add r4, r4, #0x4 - cmp r3, #0x4 - blo _02028C78 - mov r3, #0x0 - add r2, r0, #0x0 -_02028C92: - ldr r1, [r2, #0x4] - add r3, r3, #0x1 - stmia r2!, {r1} - cmp r3, #0x3 - blo _02028C92 - lsl r2, r3, #0x2 - mov r1, #0x0 - str r1, [r0, r2] - add r0, r0, r2 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02028CA8 -FUN_02028CA8: ; 0x02028CA8 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - add r2, r4, #0x0 -_02028CB0: - ldrb r0, [r2, #0x1c] - cmp r0, #0x0 - bne _02028CC0 - mov r0, #0x2a - add r4, #0x1c - mul r0, r1 - add r0, r4, r0 - pop {r4, pc} -_02028CC0: - add r1, r1, #0x1 - add r2, #0x2a - cmp r1, #0x2 - blo _02028CB0 - add r0, r4, #0x0 - add r1, r4, #0x0 - add r0, #0x1c - add r1, #0x46 - mov r2, #0x2a - bl memcpy - add r4, #0x46 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x2a - bl Call_FillMemWithValue - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02028CE8 -FUN_02028CE8: ; 0x02028CE8 - push {r4, lr} - add r4, r1, #0x0 - mov r2, #0x0 - add r3, r0, #0x0 -_02028CF0: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _02028CFE - add r2, r2, #0x1 - add r3, r3, #0x4 - cmp r2, #0x4 - blo _02028CF0 -_02028CFE: - cmp r2, #0x0 - beq _02028D14 - lsl r2, r2, #0x2 - add r2, r0, r2 - sub r2, r2, #0x4 - ldr r3, [r2, #0x0] - mov r2, #0x3f - ldrb r1, [r4, #0x0] - and r2, r3 - cmp r1, r2 - beq _02028D20 -_02028D14: - bl FUN_02028C70 - ldrb r2, [r4, #0x0] - mov r1, #0x3f - and r1, r2 - str r1, [r0, #0x0] -_02028D20: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02028D24 -FUN_02028D24: ; 0x02028D24 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02028C70 - ldrb r2, [r4, #0x0] - mov r1, #0x3f - and r1, r2 - ldrh r2, [r4, #0x2] - lsl r3, r2, #0x10 - ldrh r2, [r4, #0x4] - lsl r2, r2, #0x16 - lsr r2, r2, #0x10 - orr r2, r3 - orr r1, r2 - str r1, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02028D44 -FUN_02028D44: ; 0x02028D44 - push {r3-r5, lr} - add r4, r1, #0x0 - mov r2, #0x0 - mov r3, #0x3f -_02028D4C: - lsl r1, r2, #0x2 - ldr r5, [r0, r1] - and r5, r3 - cmp r5, #0xb - bne _02028D72 - mov r3, #0x0 - str r3, [r0, r1] - cmp r2, #0x3 - bhs _02028D7C -_02028D5E: - lsl r3, r2, #0x2 - add r1, r0, r3 - ldr r1, [r1, #0x4] - str r1, [r0, r3] - add r1, r2, #0x1 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - cmp r2, #0x3 - blo _02028D5E - b _02028D7C -_02028D72: - add r1, r2, #0x1 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - cmp r2, #0x4 - blo _02028D4C -_02028D7C: - bl FUN_02028C70 - ldrb r2, [r4, #0x0] - mov r1, #0x3f - and r1, r2 - ldrh r2, [r4, #0x2] - lsl r3, r2, #0x10 - ldrh r2, [r4, #0x4] - lsl r2, r2, #0x16 - lsr r2, r2, #0x10 - orr r2, r3 - orr r1, r2 - str r1, [r0, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02028D98 -FUN_02028D98: ; 0x02028D98 - push {r4-r6, lr} - add r4, r1, #0x0 - mov r6, #0x0 - mov r1, #0x3f -_02028DA0: - lsl r5, r6, #0x2 - ldr r3, [r0, r5] - add r2, r3, #0x0 - and r2, r1 - cmp r2, #0x9 - bne _02028DD4 - lsr r3, r3, #0x10 - lsl r3, r3, #0x10 - ldrh r2, [r4, #0x2] - lsr r3, r3, #0x10 - cmp r2, r3 - bne _02028DD4 - mov r1, #0x0 - str r1, [r0, r5] - cmp r6, #0x3 - bhs _02028DDE -_02028DC0: - lsl r2, r6, #0x2 - add r1, r0, r2 - ldr r1, [r1, #0x4] - str r1, [r0, r2] - add r1, r6, #0x1 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - cmp r6, #0x3 - blo _02028DC0 - b _02028DDE -_02028DD4: - add r2, r6, #0x1 - lsl r2, r2, #0x10 - lsr r6, r2, #0x10 - cmp r6, #0x4 - blo _02028DA0 -_02028DDE: - bl FUN_02028C70 - ldrb r2, [r4, #0x0] - mov r1, #0x3f - and r1, r2 - ldrh r2, [r4, #0x2] - lsl r3, r2, #0x10 - ldrh r2, [r4, #0x4] - lsl r2, r2, #0x16 - lsr r2, r2, #0x10 - orr r2, r3 - orr r1, r2 - str r1, [r0, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02028DFC -FUN_02028DFC: ; 0x02028DFC - push {r4, lr} - add r4, r1, #0x0 - mov r2, #0x0 - add r3, r0, #0x0 -_02028E04: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _02028E12 - add r2, r2, #0x1 - add r3, r3, #0x4 - cmp r2, #0x4 - blo _02028E04 -_02028E12: - cmp r2, #0x0 - beq _02028E30 - lsl r1, r2, #0x2 - add r1, r0, r1 - sub r1, r1, #0x4 - ldr r3, [r1, #0x0] - mov r1, #0x3f - ldrb r2, [r4, #0x0] - and r1, r3 - cmp r2, r1 - bne _02028E30 - ldrh r2, [r4, #0x2] - lsr r1, r3, #0x10 - cmp r2, r1 - beq _02028E42 -_02028E30: - bl FUN_02028C70 - ldrh r1, [r4, #0x2] - ldrb r2, [r4, #0x0] - lsl r3, r1, #0x10 - mov r1, #0x3f - and r1, r2 - orr r1, r3 - str r1, [r0, #0x0] -_02028E42: - pop {r4, pc} - - thumb_func_start FUN_02028E44 -FUN_02028E44: ; 0x02028E44 - push {r4, lr} - add r4, r1, #0x0 - mov r2, #0x0 - add r3, r0, #0x0 -_02028E4C: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _02028E5A - add r2, r2, #0x1 - add r3, r3, #0x4 - cmp r2, #0x4 - blo _02028E4C -_02028E5A: - cmp r2, #0x0 - beq _02028E78 - lsl r1, r2, #0x2 - add r1, r0, r1 - sub r1, r1, #0x4 - ldr r3, [r1, #0x0] - mov r1, #0x3f - ldrb r2, [r4, #0x0] - and r1, r3 - cmp r2, r1 - bne _02028E78 - ldrh r2, [r4, #0x6] - lsr r1, r3, #0x10 - cmp r2, r1 - beq _02028E8A -_02028E78: - bl FUN_02028C70 - ldrh r1, [r4, #0x6] - ldrb r2, [r4, #0x0] - lsl r3, r1, #0x10 - mov r1, #0x3f - and r1, r2 - orr r1, r3 - str r1, [r0, #0x0] -_02028E8A: - pop {r4, pc} - - thumb_func_start FUN_02028E8C -FUN_02028E8C: ; 0x02028E8C - push {r4, lr} - add r4, r1, #0x0 - mov r2, #0x0 - add r3, r0, #0x0 -_02028E94: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _02028EA2 - add r2, r2, #0x1 - add r3, r3, #0x4 - cmp r2, #0x4 - blo _02028E94 -_02028EA2: - cmp r2, #0x0 - beq _02028EC0 - lsl r1, r2, #0x2 - add r1, r0, r1 - sub r1, r1, #0x4 - ldr r3, [r1, #0x0] - mov r1, #0x3f - ldrb r2, [r4, #0x0] - and r1, r3 - cmp r2, r1 - bne _02028EC0 - ldrh r2, [r4, #0x2] - lsr r1, r3, #0x10 - cmp r2, r1 - beq _02028ED2 -_02028EC0: - bl FUN_02028C70 - ldrh r1, [r4, #0x2] - ldrb r2, [r4, #0x0] - lsl r3, r1, #0x10 - mov r1, #0x3f - and r1, r2 - orr r1, r3 - str r1, [r0, #0x0] -_02028ED2: - pop {r4, pc} - - thumb_func_start FUN_02028ED4 -FUN_02028ED4: ; 0x02028ED4 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldrb r0, [r4, #0x0] - strb r0, [r5, #0x0] - ldrb r3, [r4, #0x1] - lsl r1, r3, #0x1c - lsr r2, r1, #0x1a - lsl r1, r3, #0x1b - lsr r1, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r1, #0x1 - orr r1, r2 - lsr r0, r0, #0x1f - orr r0, r1 - strb r0, [r5, #0x1] - add r0, r4, #0x2 - add r1, r5, #0x2 - mov r2, #0x8 - bl FUN_020292D4 - add r4, #0x12 - add r5, #0x12 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x8 - bl FUN_020292D4 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02028F10 -FUN_02028F10: ; 0x02028F10 - add r2, r0, #0x0 - ldrb r0, [r1, #0x0] - ldr r3, _02028F28 ; =FUN_020292D4 - strb r0, [r2, #0x0] - ldrb r0, [r1, #0x1] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - strb r0, [r2, #0x1] - add r0, r1, #0x2 - add r1, r2, #0x2 - mov r2, #0x8 - bx r3 - .balign 4 -_02028F28: .word FUN_020292D4 - - thumb_func_start FUN_02028F2C -FUN_02028F2C: ; 0x02028F2C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldrb r0, [r4, #0x0] - mov r2, #0x8 - strb r0, [r5, #0x0] - ldrb r0, [r4, #0x1] - lsl r1, r0, #0x1b - lsr r1, r1, #0x1f - lsl r0, r0, #0x18 - lsl r1, r1, #0x2 - lsr r0, r0, #0x1e - orr r0, r1 - strb r0, [r5, #0x1] - add r0, r4, #0x2 - add r1, r5, #0x2 - bl FUN_020292D4 - add r4, #0x22 - add r5, #0x12 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0xc - bl FUN_020292D4 - pop {r3-r5, pc} - - thumb_func_start FUN_02028F60 -FUN_02028F60: ; 0x02028F60 - push {r4, lr} - add r4, r1, #0x0 - mov r3, #0x0 - add r2, r0, #0x0 -_02028F68: - ldrb r1, [r2, #0x1c] - cmp r1, #0x0 - beq _02028F76 - add r3, r3, #0x1 - add r2, #0x2a - cmp r3, #0x2 - blo _02028F68 -_02028F76: - cmp r3, #0x0 - beq _02028F8A - mov r1, #0x2a - mul r1, r3 - add r1, r0, r1 - sub r1, #0xe - ldrb r2, [r4, #0x0] - ldrb r1, [r1, #0x0] - cmp r2, r1 - beq _02028F92 -_02028F8A: - bl FUN_02028CA8 - ldrb r1, [r4, #0x0] - strb r1, [r0, #0x0] -_02028F92: - pop {r4, pc} - - thumb_func_start FUN_02028F94 -FUN_02028F94: ; 0x02028F94 - ldrb r2, [r1, #0x0] - strb r2, [r0, #0x0] - ldrb r1, [r1, #0x1] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - strb r1, [r0, #0x1] - bx lr - .balign 4 - - thumb_func_start FUN_02028FA4 -FUN_02028FA4: ; 0x02028FA4 - push {r3-r5, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x4 - bl FUN_02016998 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl FUN_020126B4 - ldr r2, [r4, #0x0] - mov r0, #0x7f - bic r2, r0 - ldr r1, [sp, #0x0] - mov r0, #0x7f - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - str r1, [r4, #0x0] - add r2, r1, #0x0 - ldr r1, [sp, #0x4] - ldr r0, _02029008 ; =0xFFFFF87F - lsl r1, r1, #0x1c - and r2, r0 - lsr r1, r1, #0x15 - orr r2, r1 - ldr r1, _0202900C ; =0xFFF83FFF - str r2, [r4, #0x0] - and r2, r1 - ldr r1, [sp, #0x8] - lsr r0, r0, #0xd - lsl r1, r1, #0x1b - lsr r1, r1, #0xd - orr r2, r1 - ldr r1, _02029010 ; =0xFFFFC7FF - str r2, [r4, #0x0] - and r2, r1 - ldr r1, [sp, #0xc] - lsl r1, r1, #0x1d - lsr r1, r1, #0x12 - orr r1, r2 - and r1, r0 - lsl r0, r5, #0x13 - orr r0, r1 - str r0, [r4, #0x0] - add r0, r4, #0x0 - add sp, #0x10 - pop {r3-r5, pc} - nop -_02029008: .word 0xFFFFF87F -_0202900C: .word 0xFFF83FFF -_02029010: .word 0xFFFFC7FF - - thumb_func_start FUN_02029014 -FUN_02029014: ; 0x02029014 - push {r3, lr} - mov r1, #0x8 - bl FUN_02016998 - 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] - pop {r3, pc} - - thumb_func_start FUN_02029030 -FUN_02029030: ; 0x02029030 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x1 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202903C -FUN_0202903C: ; 0x0202903C - push {r3, lr} - bl FUN_02029014 - mov r1, #0x2 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029048 -FUN_02029048: ; 0x02029048 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x3 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029054 -FUN_02029054: ; 0x02029054 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x4 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029060 -FUN_02029060: ; 0x02029060 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x5 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202906C -FUN_0202906C: ; 0x0202906C - push {r3, lr} - bl FUN_02029014 - mov r1, #0x6 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029078 -FUN_02029078: ; 0x02029078 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x7 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029084 -FUN_02029084: ; 0x02029084 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x8 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029090 -FUN_02029090: ; 0x02029090 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0x9 - strb r1, [r0, #0x0] - strh r4, [r0, #0x2] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020290A4 -FUN_020290A4: ; 0x020290A4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r2, #0x0 - add r4, r1, #0x0 - bl FUN_02029014 - mov r1, #0xa - strb r1, [r0, #0x0] - strh r5, [r0, #0x2] - strh r4, [r0, #0x4] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020290BC -FUN_020290BC: ; 0x020290BC - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0xb - strb r1, [r0, #0x0] - strh r4, [r0, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020290D0 -FUN_020290D0: ; 0x020290D0 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0xc - strb r1, [r0, #0x0] - strh r4, [r0, #0x4] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020290E4 -FUN_020290E4: ; 0x020290E4 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0xd - strb r1, [r0, #0x0] - strh r4, [r0, #0x2] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020290F8 -FUN_020290F8: ; 0x020290F8 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0xe - strb r1, [r0, #0x0] - strh r4, [r0, #0x2] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202910C -FUN_0202910C: ; 0x0202910C - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0xf - strb r1, [r0, #0x0] - strh r4, [r0, #0x2] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02029120 -FUN_02029120: ; 0x02029120 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x10 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202912C -FUN_0202912C: ; 0x0202912C - push {r3, lr} - bl FUN_02029014 - mov r1, #0x11 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029138 -FUN_02029138: ; 0x02029138 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02029014 - mov r1, #0x12 - strb r1, [r0, #0x0] - strh r4, [r0, #0x6] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202914C -FUN_0202914C: ; 0x0202914C - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r2, #0x0 - add r4, r1, #0x0 - bl FUN_02029014 - add r5, #0x13 - strb r5, [r0, #0x0] - strh r4, [r0, #0x2] - pop {r3-r5, pc} - - thumb_func_start FUN_02029160 -FUN_02029160: ; 0x02029160 - push {r3, lr} - bl FUN_02029014 - mov r1, #0x22 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202916C -FUN_0202916C: ; 0x0202916C - push {r3, lr} - bl FUN_02029014 - mov r1, #0x23 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029178 -FUN_02029178: ; 0x02029178 - push {r3, lr} - mov r1, #0x4 - bl FUN_02016998 - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - pop {r3, pc} - - thumb_func_start FUN_0202918C -FUN_0202918C: ; 0x0202918C - push {r3-r7, lr} - str r0, [sp, #0x0] - ldr r0, [sp, #0x18] - add r5, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02029178 - add r4, r0, #0x0 - mov r0, #0x1 - strb r0, [r4, #0x0] - strh r5, [r4, #0x2] - ldrb r1, [r4, #0x1] - mov r0, #0xc0 - bic r1, r0 - lsl r0, r6, #0x1e - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x3c - bic r1, r0 - lsl r0, r7, #0x1c - lsr r0, r0, #0x1a - orr r0, r1 - strb r0, [r4, #0x1] - ldr r0, [sp, #0x0] - bl FUN_02029EC0 - mov r1, #0xa - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - beq _020291DA - cmp r0, #0x2 - beq _020291DA - cmp r0, #0x4 - bne _020291E4 -_020291DA: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - strb r1, [r4, #0x1] - b _02029206 -_020291E4: - cmp r0, #0x1 - beq _020291EC - cmp r0, #0x3 - bne _020291FA -_020291EC: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strb r0, [r4, #0x1] - b _02029206 -_020291FA: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - mov r0, #0x2 - orr r0, r1 - strb r0, [r4, #0x1] -_02029206: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202920C -FUN_0202920C: ; 0x0202920C - push {r3-r7, lr} - str r0, [sp, #0x0] - ldr r0, [sp, #0x18] - add r5, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02029178 - add r4, r0, #0x0 - mov r0, #0x2 - strb r0, [r4, #0x0] - strh r5, [r4, #0x2] - ldrb r1, [r4, #0x1] - mov r0, #0xc0 - bic r1, r0 - lsl r0, r6, #0x1e - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x3c - bic r1, r0 - lsl r0, r7, #0x1c - lsr r0, r0, #0x1a - orr r0, r1 - strb r0, [r4, #0x1] - ldr r0, [sp, #0x0] - bl FUN_02029EC0 - mov r1, #0xa - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - beq _0202925C - cmp r0, #0x3 - beq _0202925C - cmp r0, #0x5 - bne _02029266 -_0202925C: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - strb r1, [r4, #0x1] - b _02029288 -_02029266: - cmp r0, #0x2 - beq _0202926E - cmp r0, #0x4 - bne _0202927C -_0202926E: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strb r0, [r4, #0x1] - b _02029288 -_0202927C: - ldrb r1, [r4, #0x1] - mov r0, #0x3 - bic r1, r0 - mov r0, #0x2 - orr r0, r1 - strb r0, [r4, #0x1] -_02029288: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0202928C -FUN_0202928C: ; 0x0202928C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x4 - bl FUN_02016998 - ldrh r2, [r0, #0x0] - mov r1, #0x1 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r0, #0x0] - strh r5, [r0, #0x2] - ldrh r2, [r0, #0x0] - ldr r1, _020292B8 ; =0xFFFF0001 - and r2, r1 - lsl r1, r4, #0x11 - lsr r1, r1, #0x10 - orr r1, r2 - strh r1, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 -_020292B8: .word 0xFFFF0001 - - thumb_func_start FUN_020292BC -FUN_020292BC: ; 0x020292BC - push {r4, lr} - mov r1, #0x3a - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x3a - add r4, r0, #0x0 - bl Call_FillMemWithValue - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020292D4 -FUN_020292D4: ; 0x020292D4 - push {r4-r5} - mov r4, #0x0 - cmp r2, #0x0 - bls _020292EA - ldr r3, _02029308 ; =0x0000FFFF - add r5, r1, #0x0 -_020292E0: - add r4, r4, #0x1 - strh r3, [r5, #0x0] - add r5, r5, #0x2 - cmp r4, r2 - blo _020292E0 -_020292EA: - mov r5, #0x0 - cmp r2, #0x0 - bls _02029304 - ldr r3, _02029308 ; =0x0000FFFF -_020292F2: - ldrh r4, [r0, #0x0] - cmp r4, r3 - beq _02029304 - add r5, r5, #0x1 - strh r4, [r1, #0x0] - add r0, r0, #0x2 - add r1, r1, #0x2 - cmp r5, r2 - blo _020292F2 -_02029304: - pop {r4-r5} - bx lr - .balign 4 -_02029308: .word 0x0000FFFF - - thumb_func_start FUN_0202930C -FUN_0202930C: ; 0x0202930C - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, r3, #0x0 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x1 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0xf - mov r2, #0x8 - bic r0, r1 - mov r1, #0xf - and r1, r6 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x10 - bic r1, r0 - lsl r0, r5, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202934C -FUN_0202934C: ; 0x0202934C - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, r3, #0x0 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x2 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0xf - mov r2, #0x8 - bic r0, r1 - mov r1, #0xf - and r1, r6 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x10 - bic r1, r0 - lsl r0, r5, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202938C -FUN_0202938C: ; 0x0202938C - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, [sp, #0x1c] - str r1, [sp, #0x0] - add r5, r2, #0x0 - add r6, r3, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x3 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0xf - bic r0, r1 - add r1, sp, #0x8 - ldrb r2, [r1, #0x10] - mov r1, #0xf - and r1, r2 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x1] - mov r1, #0x10 - mov r2, #0x8 - bic r0, r1 - lsl r1, r5, #0x1f - lsr r1, r1, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x20 - bic r1, r0 - lsl r0, r6, #0x1f - lsr r0, r0, #0x1a - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r1, r4, #0x0 - ldr r0, [sp, #0x0] - add r1, #0x12 - mov r2, #0x8 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020293EC -FUN_020293EC: ; 0x020293EC - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, r3, #0x0 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x4 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0xf - mov r2, #0x8 - bic r0, r1 - mov r1, #0xf - and r1, r6 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x10 - bic r1, r0 - lsl r0, r5, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202942C -FUN_0202942C: ; 0x0202942C - push {r4-r6, lr} - add r6, r0, #0x0 - add r0, r2, #0x0 - add r5, r1, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x6 - strb r0, [r4, #0x0] - ldrb r1, [r4, #0x1] - mov r0, #0x10 - mov r2, #0x8 - bic r1, r0 - lsl r0, r5, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r6, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202945C -FUN_0202945C: ; 0x0202945C - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, [sp, #0x18] - add r5, r1, #0x0 - str r2, [sp, #0x0] - add r6, r3, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0x7 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0x10 - mov r2, #0x8 - bic r0, r1 - lsl r1, r5, #0x1f - lsr r1, r1, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0xc0 - bic r1, r0 - lsl r0, r6, #0x1e - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r1, r4, #0x0 - ldr r0, [sp, #0x0] - add r1, #0x22 - mov r2, #0xc - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_020294A8 -FUN_020294A8: ; 0x020294A8 - push {r3, lr} - bl FUN_020292BC - mov r1, #0x8 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_020294B4 -FUN_020294B4: ; 0x020294B4 - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, r3, #0x0 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0xb - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0xf - mov r2, #0x8 - bic r0, r1 - mov r1, #0xf - and r1, r6 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0x10 - bic r1, r0 - lsl r0, r5, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020294F4 -FUN_020294F4: ; 0x020294F4 - push {r3, lr} - bl FUN_020292BC - mov r1, #0xc - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029500 -FUN_02029500: ; 0x02029500 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_020292BC - mov r1, #0xd - strb r1, [r0, #0x0] - ldrb r2, [r0, #0x1] - mov r1, #0xf - bic r2, r1 - mov r1, #0xf - and r1, r4 - orr r1, r2 - strb r1, [r0, #0x1] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02029520 -FUN_02029520: ; 0x02029520 - push {r3, lr} - bl FUN_020292BC - mov r1, #0xe - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202952C -FUN_0202952C: ; 0x0202952C - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, [sp, #0x18] - add r5, r1, #0x0 - str r2, [sp, #0x0] - add r6, r3, #0x0 - bl FUN_020292BC - add r4, r0, #0x0 - mov r0, #0xf - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - mov r1, #0x10 - mov r2, #0x8 - bic r0, r1 - lsl r1, r5, #0x1f - lsr r1, r1, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x1] - mov r0, #0xc0 - bic r1, r0 - lsl r0, r6, #0x1e - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r7, #0x0 - add r1, r4, #0x2 - bl FUN_020292D4 - add r1, r4, #0x0 - ldr r0, [sp, #0x0] - add r1, #0x22 - mov r2, #0xc - bl FUN_020292D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02029578 -FUN_02029578: ; 0x02029578 - push {r3, lr} - bl FUN_020292BC - mov r1, #0x10 - strb r1, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02029584 -FUN_02029584: ; 0x02029584 - push {r3, lr} - cmp r2, #0x4 - bhi _020295DA - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02029596: ; jump table (using 16-bit offset) - .short _020295A0 - _02029596 - 2; case 0 - .short _020295AC - _02029596 - 2; case 1 - .short _020295B8 - _02029596 - 2; case 2 - .short _020295C4 - _02029596 - 2; case 3 - .short _020295D0 - _02029596 - 2; case 4 -_020295A0: - mov r2, #0x70 - mul r2, r3 - add r0, r0, r2 - bl FUN_020295DC - pop {r3, pc} -_020295AC: - mov r2, #0x70 - mul r2, r3 - add r0, r0, r2 - bl FUN_020295E4 - pop {r3, pc} -_020295B8: - mov r2, #0x70 - mul r2, r3 - add r0, r0, r2 - bl FUN_02029690 - pop {r3, pc} -_020295C4: - mov r2, #0x70 - mul r2, r3 - add r0, r0, r2 - bl FUN_0202969C - pop {r3, pc} -_020295D0: - mov r2, #0x70 - mul r2, r3 - add r0, r0, r2 - bl FUN_020296A8 -_020295DA: - pop {r3, pc} - - thumb_func_start FUN_020295DC -FUN_020295DC: ; 0x020295DC - ldr r0, [r0, #0x0] - str r0, [r1, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_020295E4 -FUN_020295E4: ; 0x020295E4 - push {r3-r7, lr} - mov r6, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r7, r6, #0x0 -_020295EE: - strb r7, [r4, #0x0] - strb r7, [r4, #0x1] - strb r7, [r4, #0x2] - strb r7, [r4, #0x3] - strb r7, [r4, #0x4] - strb r7, [r4, #0x5] - strb r7, [r4, #0x6] - strb r7, [r4, #0x7] - ldr r0, [r5, #0x4] - mov r1, #0x3f - and r1, r0 - cmp r1, #0x23 - bhi _02029682 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02029614: ; jump table (using 16-bit offset) - .short _02029682 - _02029614 - 2; case 0 - .short _0202965C - _02029614 - 2; case 1 - .short _0202965C - _02029614 - 2; case 2 - .short _0202965C - _02029614 - 2; case 3 - .short _0202965C - _02029614 - 2; case 4 - .short _0202965C - _02029614 - 2; case 5 - .short _0202965C - _02029614 - 2; case 6 - .short _0202965C - _02029614 - 2; case 7 - .short _0202965C - _02029614 - 2; case 8 - .short _02029664 - _02029614 - 2; case 9 - .short _02029664 - _02029614 - 2; case 10 - .short _02029664 - _02029614 - 2; case 11 - .short _02029664 - _02029614 - 2; case 12 - .short _0202966C - _02029614 - 2; case 13 - .short _0202966C - _02029614 - 2; case 14 - .short _0202966C - _02029614 - 2; case 15 - .short _0202965C - _02029614 - 2; case 16 - .short _0202965C - _02029614 - 2; case 17 - .short _02029674 - _02029614 - 2; case 18 - .short _0202967C - _02029614 - 2; case 19 - .short _0202967C - _02029614 - 2; case 20 - .short _0202967C - _02029614 - 2; case 21 - .short _0202967C - _02029614 - 2; case 22 - .short _0202967C - _02029614 - 2; case 23 - .short _0202967C - _02029614 - 2; case 24 - .short _0202967C - _02029614 - 2; case 25 - .short _0202967C - _02029614 - 2; case 26 - .short _0202967C - _02029614 - 2; case 27 - .short _0202967C - _02029614 - 2; case 28 - .short _0202967C - _02029614 - 2; case 29 - .short _0202967C - _02029614 - 2; case 30 - .short _02029682 - _02029614 - 2; case 31 - .short _0202967C - _02029614 - 2; case 32 - .short _0202967C - _02029614 - 2; case 33 - .short _0202965C - _02029614 - 2; case 34 - .short _0202965C - _02029614 - 2; case 35 -_0202965C: - add r1, r4, #0x0 - bl FUN_02029730 - b _02029682 -_02029664: - add r1, r4, #0x0 - bl FUN_02029738 - b _02029682 -_0202966C: - add r1, r4, #0x0 - bl FUN_02029750 - b _02029682 -_02029674: - add r1, r4, #0x0 - bl FUN_0202975C - b _02029682 -_0202967C: - add r1, r4, #0x0 - bl FUN_02029768 -_02029682: - add r6, r6, #0x1 - add r4, #0x8 - add r5, r5, #0x4 - cmp r6, #0x4 - blo _020295EE - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02029690 -FUN_02029690: ; 0x02029690 - ldrh r2, [r0, #0x14] - strh r2, [r1, #0x0] - ldrh r0, [r0, #0x16] - strh r0, [r1, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_0202969C -FUN_0202969C: ; 0x0202969C - ldrh r2, [r0, #0x18] - strh r2, [r1, #0x0] - ldrh r0, [r0, #0x1a] - strh r0, [r1, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_020296A8 -FUN_020296A8: ; 0x020296A8 - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r6, #0x0 - add r4, r1, #0x0 - mov r7, #0x0 - add r5, #0x1c -_020296B4: - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x3a - bl Call_FillMemWithValue - ldrb r0, [r6, #0x1c] - cmp r0, #0x10 - bhi _02029722 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020296D0: ; jump table (using 16-bit offset) - .short _02029722 - _020296D0 - 2; case 0 - .short _020296F2 - _020296D0 - 2; case 1 - .short _020296F2 - _020296D0 - 2; case 2 - .short _020296F2 - _020296D0 - 2; case 3 - .short _020296F2 - _020296D0 - 2; case 4 - .short _020296F2 - _020296D0 - 2; case 5 - .short _020296FC - _020296D0 - 2; case 6 - .short _02029706 - _020296D0 - 2; case 7 - .short _02029710 - _020296D0 - 2; case 8 - .short _02029706 - _020296D0 - 2; case 9 - .short _02029710 - _020296D0 - 2; case 10 - .short _020296F2 - _020296D0 - 2; case 11 - .short _02029710 - _020296D0 - 2; case 12 - .short _0202971A - _020296D0 - 2; case 13 - .short _02029710 - _020296D0 - 2; case 14 - .short _02029706 - _020296D0 - 2; case 15 - .short _02029710 - _020296D0 - 2; case 16 -_020296F2: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029774 - b _02029722 -_020296FC: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020297E4 - b _02029722 -_02029706: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029808 - b _02029722 -_02029710: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029860 - b _02029722 -_0202971A: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029868 -_02029722: - add r7, r7, #0x1 - add r4, #0x3a - add r6, #0x2a - add r5, #0x2a - cmp r7, #0x2 - blo _020296B4 - pop {r3-r7, pc} - - thumb_func_start FUN_02029730 -FUN_02029730: ; 0x02029730 - mov r2, #0x3f - and r0, r2 - strb r0, [r1, #0x0] - bx lr - - thumb_func_start FUN_02029738 -FUN_02029738: ; 0x02029738 - mov r2, #0x3f - and r2, r0 - strb r2, [r1, #0x0] - lsr r3, r0, #0x6 - ldr r2, _0202974C ; =0x000003FF - lsr r0, r0, #0x10 - and r2, r3 - strh r2, [r1, #0x4] - strh r0, [r1, #0x2] - bx lr - .balign 4 -_0202974C: .word 0x000003FF - - thumb_func_start FUN_02029750 -FUN_02029750: ; 0x02029750 - mov r2, #0x3f - and r2, r0 - strb r2, [r1, #0x0] - lsr r0, r0, #0x10 - strh r0, [r1, #0x2] - bx lr - - thumb_func_start FUN_0202975C -FUN_0202975C: ; 0x0202975C - mov r2, #0x3f - and r2, r0 - strb r2, [r1, #0x0] - lsr r0, r0, #0x10 - strh r0, [r1, #0x6] - bx lr - - thumb_func_start FUN_02029768 -FUN_02029768: ; 0x02029768 - mov r2, #0x3f - and r2, r0 - strb r2, [r1, #0x0] - lsr r0, r0, #0x10 - strh r0, [r1, #0x2] - bx lr - - thumb_func_start FUN_02029774 -FUN_02029774: ; 0x02029774 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0x0] - add r4, r1, #0x0 - mov r1, #0xf - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - bic r0, r1 - ldrb r1, [r5, #0x1] - asr r2, r1, #0x2 - mov r1, #0x1f - and r1, r2 - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - mov r1, #0xf - and r1, r2 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x1] - mov r1, #0x10 - mov r2, #0x1 - bic r0, r1 - ldrb r1, [r5, #0x1] - asr r1, r1, #0x1 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x1] - mov r1, #0x20 - bic r0, r1 - ldrb r1, [r5, #0x1] - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1a - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r5, #0x2 - add r1, r4, #0x2 - mov r2, #0x8 - bl FUN_020292D4 - add r5, #0x12 - add r4, #0x12 - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x8 - bl FUN_020292D4 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020297E4 -FUN_020297E4: ; 0x020297E4 - ldrb r2, [r0, #0x0] - strb r2, [r1, #0x0] - ldrb r3, [r1, #0x1] - mov r2, #0x10 - bic r3, r2 - ldrb r2, [r0, #0x1] - add r0, r0, #0x2 - lsl r2, r2, #0x1f - lsr r2, r2, #0x1b - orr r2, r3 - strb r2, [r1, #0x1] - ldr r3, _02029804 ; =FUN_020292D4 - add r1, r1, #0x2 - mov r2, #0x8 - bx r3 - nop -_02029804: .word FUN_020292D4 - - thumb_func_start FUN_02029808 -FUN_02029808: ; 0x02029808 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0x0] - add r4, r1, #0x0 - mov r1, #0x10 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x1] - bic r0, r1 - ldrb r1, [r5, #0x1] - asr r2, r1, #0x2 - mov r1, #0x1 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1b - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x1] - mov r1, #0xc0 - ldrb r2, [r5, #0x1] - bic r0, r1 - mov r1, #0x3 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1e - lsr r1, r1, #0x18 - orr r0, r1 - strb r0, [r4, #0x1] - add r0, r5, #0x2 - add r1, r4, #0x2 - mov r2, #0x8 - bl FUN_020292D4 - add r5, #0x12 - add r4, #0x22 - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0xc - bl FUN_020292D4 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029860 -FUN_02029860: ; 0x02029860 - ldrb r0, [r0, #0x0] - strb r0, [r1, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02029868 -FUN_02029868: ; 0x02029868 - ldrb r2, [r0, #0x0] - strb r2, [r1, #0x0] - ldrb r3, [r1, #0x1] - mov r2, #0xf - bic r3, r2 - ldrb r2, [r0, #0x1] - mov r0, #0xf - and r0, r2 - orr r0, r3 - strb r0, [r1, #0x1] - bx lr - .balign 4 - - thumb_func_start FUN_02029880 -FUN_02029880: ; 0x02029880 - push {r4-r7, lr} - sub sp, #0xc - add r7, r0, #0x0 - mov r0, #0x0 - add r4, r3, #0x0 - str r0, [sp, #0x4] - add r0, r4, #0x0 - str r1, [sp, #0x0] - add r5, r2, #0x0 - ldr r6, [sp, #0x20] - bl FUN_02034930 - cmp r0, #0x1 - bne _020298BA - add r0, r5, #0x0 - bl FUN_02034964 - cmp r0, #0x1 - bne _02029942 - add r0, r4, #0x0 - bl FUN_02034824 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r6, #0x0 - bl FUN_020290F8 - str r0, [sp, #0x4] - b _02029942 -_020298BA: - add r0, r4, #0x0 - bl FUN_02034944 - cmp r0, #0x1 - bne _0202991A - add r0, r5, #0x0 - bl FUN_02034964 - cmp r0, #0x1 - bne _02029942 - ldr r0, _02029958 ; =0x0000019E - cmp r4, r0 - bne _020298DE - add r0, r6, #0x0 - bl FUN_02029030 - str r0, [sp, #0x4] - b _02029942 -_020298DE: - add r0, #0x8 - cmp r4, r0 - bne _020298EE - add r0, r6, #0x0 - bl FUN_0202903C - str r0, [sp, #0x4] - b _02029942 -_020298EE: - add r0, r4, #0x0 - bl FUN_02034824 - add r7, r0, #0x0 - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - ldr r5, _0202995C ; =0x020EE9A4 - mov r4, #0x0 - str r0, [sp, #0x8] -_02029900: - ldr r0, [r5, #0x0] - cmp r7, r0 - bne _02029910 - ldr r0, [sp, #0x8] - add r1, r6, #0x0 - bl FUN_0202910C - str r0, [sp, #0x4] -_02029910: - add r4, r4, #0x1 - add r5, #0x8 - cmp r4, #0x1b - blo _02029900 - b _02029942 -_0202991A: - add r0, r4, #0x0 - bl FUN_02034964 - cmp r0, #0x1 - bne _02029942 - add r0, r5, #0x0 - bl FUN_02034944 - cmp r0, #0x1 - bne _02029942 - add r0, r7, #0x0 - add r1, r5, #0x0 - bl FUN_02029988 - cmp r0, #0xff - beq _02029942 - add r1, r6, #0x0 - bl FUN_02029090 - str r0, [sp, #0x4] -_02029942: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _02029952 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - mov r2, #0x1 - bl FUN_02028AD4 -_02029952: - add sp, #0xc - pop {r4-r7, pc} - nop -_02029958: .word 0x0000019E -_0202995C: .word 0x020EE9A4 - - thumb_func_start FUN_02029960 -FUN_02029960: ; 0x02029960 - ldr r3, _02029980 ; =0x020EE9A4 - mov r2, #0x0 -_02029964: - ldr r1, [r3, #0x0] - cmp r0, r1 - bne _02029972 - ldr r0, _02029984 ; =0x020EE9A8 - lsl r1, r2, #0x3 - ldr r0, [r0, r1] - bx lr -_02029972: - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, #0x1b - blo _02029964 - mov r0, #0x0 - bx lr - nop -_02029980: .word 0x020EE9A4 -_02029984: .word 0x020EE9A8 - - thumb_func_start FUN_02029988 -FUN_02029988: ; 0x02029988 - push {r3-r5, lr} - ldr r2, _020299B8 ; =0x020EE964 - mov r4, #0x0 -_0202998E: - lsl r3, r4, #0x3 - add r5, r2, r3 - ldrh r5, [r5, #0x4] - cmp r1, r5 - bne _020299A8 - ldr r1, _020299BC ; =0x020EE96A - ldrh r1, [r1, r3] - bl FUN_020239D0 - cmp r0, #0x0 - bne _020299B2 - add r0, r4, #0x0 - pop {r3-r5, pc} -_020299A8: - add r3, r4, #0x1 - lsl r3, r3, #0x18 - lsr r4, r3, #0x18 - cmp r4, #0x8 - blo _0202998E -_020299B2: - mov r0, #0xff - pop {r3-r5, pc} - nop -_020299B8: .word 0x020EE964 -_020299BC: .word 0x020EE96A - - thumb_func_start FUN_020299C0 -FUN_020299C0: ; 0x020299C0 - push {r4, lr} - add r4, r0, #0x0 - lsl r0, r1, #0x10 - lsr r0, r0, #0x10 - add r1, r2, #0x0 - bl FUN_020290E4 - add r1, r0, #0x0 - add r0, r4, #0x0 - mov r2, #0x1 - bl FUN_02028AD4 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020299DC -FUN_020299DC: ; 0x020299DC - push {r3-r7, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r7, r1, #0x0 - add r6, r3, #0x0 - bl FUN_02029A48 - cmp r0, #0x8 - bhs _02029A04 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020290A4 - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0x1 - bl FUN_02028AD4 - pop {r3-r7, pc} -_02029A04: - bne _02029A1A - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_020290BC - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0x1 - bl FUN_02028AD4 - pop {r3-r7, pc} -_02029A1A: - cmp r0, #0x9 - bne _02029A32 - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_020290D0 - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0x1 - bl FUN_02028AD4 - pop {r3-r7, pc} -_02029A32: - add r0, r7, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0202928C - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0x3 - bl FUN_02028AD4 - pop {r3-r7, pc} - - thumb_func_start FUN_02029A48 -FUN_02029A48: ; 0x02029A48 - ldr r2, _02029A7C ; =0x020EE964 - mov r3, #0x0 -_02029A4C: - lsl r1, r3, #0x3 - ldr r1, [r2, r1] - cmp r0, r1 - bne _02029A58 - add r0, r3, #0x0 - bx lr -_02029A58: - add r1, r3, #0x1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #0x8 - blo _02029A4C - ldr r1, _02029A80 ; =0x00000105 - sub r2, r0, r1 - cmp r2, #0x3 - bhi _02029A6E - mov r0, #0x8 - bx lr -_02029A6E: - add r1, r1, #0x6 - cmp r0, r1 - bne _02029A78 - mov r0, #0x9 - bx lr -_02029A78: - mov r0, #0xa - bx lr - .balign 4 -_02029A7C: .word 0x020EE964 -_02029A80: .word 0x00000105 - - thumb_func_start FUN_02029A84 -FUN_02029A84: ; 0x02029A84 - mov r0, #0x62 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02029A8C -FUN_02029A8C: ; 0x02029A8C - push {r4-r6, lr} - mov r2, #0x62 - add r4, r0, #0x0 - mov r1, #0x0 - lsl r2, r2, #0x4 - bl Call_FillMemWithValue - add r0, r4, #0x0 - bl FUN_02029ACC - add r5, r0, #0x0 - mov r4, #0x0 - mov r6, #0x8c -_02029AA6: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02029AD8 - add r4, r4, #0x1 - cmp r4, #0x8 - blt _02029AA6 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029ABC -FUN_02029ABC: ; 0x02029ABC - ldr r3, _02029AC4 ; =FUN_02022610 - mov r1, #0x13 - bx r3 - nop -_02029AC4: .word FUN_02022610 - - thumb_func_start FUN_02029AC8 -FUN_02029AC8: ; 0x02029AC8 - add r0, #0x20 - bx lr - - thumb_func_start FUN_02029ACC -FUN_02029ACC: ; 0x02029ACC - bx lr - .balign 4 - - thumb_func_start FUN_02029AD0 -FUN_02029AD0: ; 0x02029AD0 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02029AD8 -FUN_02029AD8: ; 0x02029AD8 - lsl r0, r0, #0x2 - str r1, [r2, r0] - bx lr - .balign 4 - - thumb_func_start FUN_02029AE0 -FUN_02029AE0: ; 0x02029AE0 - ldr r0, _02029AE4 ; =0x00000FF8 - bx lr - .balign 4 -_02029AE4: .word 0x00000FF8 - - thumb_func_start FUN_02029AE8 -FUN_02029AE8: ; 0x02029AE8 - ldr r3, _02029AF4 ; =MIi_CpuClear32 - add r1, r0, #0x0 - mov r0, #0x0 - ldr r2, _02029AF8 ; =0x00000FF8 - bx r3 - nop -_02029AF4: .word MIi_CpuClear32 -_02029AF8: .word 0x00000FF8 - - thumb_func_start FUN_02029AFC -FUN_02029AFC: ; 0x02029AFC - ldr r3, _02029B04 ; =FUN_02022610 - mov r1, #0x1e - bx r3 - nop -_02029B04: .word FUN_02022610 - - thumb_func_start FUN_02029B08 -FUN_02029B08: ; 0x02029B08 - push {r4-r6, lr} - add r6, r0, #0x0 - mov r0, #0x1 - add r5, r1, #0x0 - lsl r0, r0, #0x8 - add r4, r2, #0x0 - cmp r5, r0 - blt _02029B1C - bl ErrorHandling -_02029B1C: - cmp r4, #0x40 - blt _02029B24 - bl ErrorHandling -_02029B24: - strb r5, [r6, #0x5] - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x3 - strb r4, [r6, #0x6] - bl FUN_02029B90 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029B38 -FUN_02029B38: ; 0x02029B38 - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_02029B3C -FUN_02029B3C: ; 0x02029B3C - ldrb r0, [r0, #0x6] - bx lr - - thumb_func_start FUN_02029B40 -FUN_02029B40: ; 0x02029B40 - push {r4-r6, lr} - add r6, r0, #0x0 - mov r0, #0x1 - add r5, r1, #0x0 - lsl r0, r0, #0x8 - add r4, r2, #0x0 - cmp r5, r0 - blt _02029B54 - bl ErrorHandling -_02029B54: - cmp r4, #0x40 - blt _02029B5C - bl ErrorHandling -_02029B5C: - cmp r5, #0x0 - bne _02029B64 - mov r0, #0x0 - pop {r4-r6, pc} -_02029B64: - asr r0, r4, #0x1 - lsr r0, r0, #0x1e - add r0, r4, r0 - asr r1, r0, #0x2 - sub r0, r5, #0x1 - lsl r0, r0, #0x4 - add r0, r1, r0 - add r0, r6, r0 - ldrb r3, [r0, #0x7] - lsr r2, r4, #0x1f - lsl r1, r4, #0x1e - sub r1, r1, r2 - mov r0, #0x1e - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x1 - add r1, r3, #0x0 - asr r1, r0 - mov r0, #0x3 - and r0, r1 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029B90 -FUN_02029B90: ; 0x02029B90 - push {r3-r7, lr} - add r7, r0, #0x0 - add r5, r1, #0x0 - add r4, r2, #0x0 - str r3, [sp, #0x0] - cmp r3, #0x4 - blt _02029BA2 - bl ErrorHandling -_02029BA2: - mov r0, #0x1 - lsl r0, r0, #0x8 - cmp r5, r0 - blt _02029BAE - bl ErrorHandling -_02029BAE: - cmp r4, #0x40 - blt _02029BB6 - bl ErrorHandling -_02029BB6: - cmp r5, #0x0 - beq _02029BFE - asr r0, r4, #0x1 - lsr r0, r0, #0x1e - add r0, r4, r0 - asr r2, r0, #0x2 - sub r0, r5, #0x1 - lsl r0, r0, #0x4 - add r0, r2, r0 - lsr r2, r4, #0x1f - lsl r4, r4, #0x1e - sub r4, r4, r2 - mov r3, #0x1e - ror r4, r3 - add r2, r2, r4 - lsl r6, r2, #0x1 - mov r2, #0x3 - add r3, r2, #0x0 - add r1, r7, #0x7 - ldrb r4, [r1, r0] - lsl r3, r6 - mov r2, #0xff - eor r2, r3 - and r2, r4 - ldr r3, [sp, #0x0] - strb r2, [r1, r0] - ldrb r2, [r1, r0] - lsl r3, r6 - orr r2, r3 - strb r2, [r1, r0] - cmp r5, #0x67 - beq _02029BFE - add r0, r7, #0x0 - mov r1, #0x1 - bl FUN_02029C04 -_02029BFE: - pop {r3-r7, pc} - - thumb_func_start FUN_02029C00 -FUN_02029C00: ; 0x02029C00 - ldrb r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_02029C04 -FUN_02029C04: ; 0x02029C04 - strb r1, [r0, #0x4] - bx lr - - thumb_func_start FUN_02029C08 -FUN_02029C08: ; 0x02029C08 - push {r3-r7, lr} - mov lr, r0 - mov r0, #0x3 - mov r7, #0x0 - mov r4, #0x2 - mov r6, #0xff - add r3, r0, #0x0 -_02029C16: - mov r1, lr - add r1, r1, r7 - ldrb r2, [r1, #0x7] - mov r12, r1 - mov r1, #0x0 -_02029C20: - add r5, r2, #0x0 - asr r5, r1 - and r5, r3 - cmp r5, #0x1 - bne _02029C40 - add r5, r0, #0x0 - lsl r5, r1 - eor r5, r6 - and r2, r5 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - add r2, r4, #0x0 - lsl r2, r1 - orr r2, r5 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 -_02029C40: - add r1, r1, #0x2 - cmp r1, #0x8 - blt _02029C20 - mov r1, r12 - strb r2, [r1, #0x7] - mov r1, #0xff - add r7, r7, #0x1 - lsl r1, r1, #0x4 - cmp r7, r1 - blt _02029C16 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02029C58 -FUN_02029C58: ; 0x02029C58 - mov r0, #0x17 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02029C60 -FUN_02029C60: ; 0x02029C60 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02029C58 - add r2, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x0 - bl MI_CpuFill8 - pop {r4, pc} - - thumb_func_start FUN_02029C74 -FUN_02029C74: ; 0x02029C74 - ldr r3, _02029C7C ; =MI_CpuCopy8 - mov r2, #0x18 - bx r3 - nop -_02029C7C: .word MI_CpuCopy8 - - thumb_func_start FUN_02029C80 -FUN_02029C80: ; 0x02029C80 - ldr r3, _02029C88 ; =FUN_02022610 - mov r1, #0x15 - bx r3 - nop -_02029C88: .word FUN_02022610 - - thumb_func_start FUN_02029C8C -FUN_02029C8C: ; 0x02029C8C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xc - blt _02029C9A - bl ErrorHandling -_02029C9A: - mov r0, #0x18 - mul r0, r4 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029CA4 -FUN_02029CA4: ; 0x02029CA4 - push {r4-r6, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r6, #0xc - blt _02029CB4 - bl ErrorHandling -_02029CB4: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029C8C - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02029C74 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029CC8 -FUN_02029CC8: ; 0x02029CC8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x8 - blt _02029CD6 - bl ErrorHandling -_02029CD6: - lsl r0, r4, #0x1 - add r0, r4, r0 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029CE0 -FUN_02029CE0: ; 0x02029CE0 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02029CE4 -FUN_02029CE4: ; 0x02029CE4 - ldrb r0, [r0, #0x1] - bx lr - - thumb_func_start FUN_02029CE8 -FUN_02029CE8: ; 0x02029CE8 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02029CEC -FUN_02029CEC: ; 0x02029CEC - mov r1, #0x12 - lsl r1, r1, #0x4 - add r0, r0, r1 - bx lr - - thumb_func_start FUN_02029CF4 -FUN_02029CF4: ; 0x02029CF4 - ldrb r0, [r0, r1] - bx lr - - thumb_func_start FUN_02029CF8 -FUN_02029CF8: ; 0x02029CF8 - mov r3, #0x0 - add r2, r1, #0x1 -_02029CFC: - ldrb r1, [r0, #0x0] - cmp r2, r1 - bne _02029D06 - mov r0, #0x1 - bx lr -_02029D06: - add r3, r3, #0x1 - add r0, r0, #0x3 - cmp r3, #0x8 - blt _02029CFC - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_02029D14 -FUN_02029D14: ; 0x02029D14 - push {r4-r7} - mov r6, #0x0 - add r4, r6, #0x0 - add r2, r1, #0x1 - add r3, r6, #0x0 -_02029D1E: - add r5, r3, #0x0 - add r7, r0, #0x0 -_02029D22: - ldrb r1, [r7, #0x0] - cmp r2, r1 - bne _02029D2A - add r6, r6, #0x1 -_02029D2A: - add r5, r5, #0x1 - add r7, r7, #0x3 - cmp r5, #0x8 - blt _02029D22 - add r4, r4, #0x1 - add r0, #0x18 - cmp r4, #0xc - blt _02029D1E - add r0, r6, #0x0 - pop {r4-r7} - bx lr - - thumb_func_start FUN_02029D40 -FUN_02029D40: ; 0x02029D40 - strb r2, [r0, r1] - bx lr - - thumb_func_start FUN_02029D44 -FUN_02029D44: ; 0x02029D44 - push {r4-r6, lr} - add r5, r1, #0x0 - sub r1, r5, #0x1 - add r6, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02029D14 - mov r1, #0x12 - lsl r1, r1, #0x4 - add r2, r6, r1 - sub r1, r5, #0x1 - ldrb r3, [r2, r1] - add r0, r0, r3 - cmp r4, #0x0 - bge _02029D6E - add r0, r4, r3 - bmi _02029D6A - strb r0, [r2, r1] - b _02029D7E -_02029D6A: - mov r0, #0x0 - pop {r4-r6, pc} -_02029D6E: - add r0, r0, r4 - cmp r0, #0x63 - bgt _02029D7A - add r0, r3, r4 - strb r0, [r2, r1] - b _02029D7E -_02029D7A: - mov r0, #0x0 - pop {r4-r6, pc} -_02029D7E: - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029D84 -FUN_02029D84: ; 0x02029D84 - push {r4-r6, lr} - add r5, r1, #0x0 - sub r1, r5, #0x1 - add r6, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02029D14 - cmp r4, #0x0 - bge _02029DAC - mov r0, #0x12 - lsl r0, r0, #0x4 - add r2, r6, r0 - sub r1, r5, #0x1 - ldrb r0, [r2, r1] - add r0, r4, r0 - bmi _02029DA8 - strb r0, [r2, r1] - b _02029DD0 -_02029DA8: - mov r0, #0x0 - pop {r4-r6, pc} -_02029DAC: - add r0, r0, r4 - cmp r0, #0x63 - bgt _02029DCC - mov r0, #0x12 - lsl r0, r0, #0x4 - add r2, r6, r0 - sub r1, r5, #0x1 - ldrb r0, [r2, r1] - add r0, r0, r4 - strb r0, [r2, r1] - ldrb r0, [r2, r1] - cmp r0, #0x63 - blo _02029DD0 - mov r0, #0x63 - strb r0, [r2, r1] - b _02029DD0 -_02029DCC: - mov r0, #0x0 - pop {r4-r6, pc} -_02029DD0: - mov r0, #0x1 - pop {r4-r6, pc} - - thumb_func_start FUN_02029DD4 -FUN_02029DD4: ; 0x02029DD4 - push {r4-r6, lr} - add r5, r1, #0x0 - sub r1, r5, #0x1 - add r6, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02029D14 - sub r1, r5, #0x1 - add r2, r6, r1 - mov r1, #0x12 - lsl r1, r1, #0x4 - ldrb r1, [r2, r1] - add r0, r0, r1 - cmp r4, #0x0 - bge _02029DFE - add r0, r4, r1 - bmi _02029DFA - mov r0, #0x1 - pop {r4-r6, pc} -_02029DFA: - mov r0, #0x0 - pop {r4-r6, pc} -_02029DFE: - add r0, r0, r4 - cmp r0, #0x63 - bgt _02029E08 - mov r0, #0x1 - pop {r4-r6, pc} -_02029E08: - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02029E0C -FUN_02029E0C: ; 0x02029E0C - push {r4-r6, lr} - add r6, r0, #0x0 - mov r5, #0x0 - mov r4, #0x1 -_02029E14: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02029E2C - cmp r0, #0x0 - beq _02029E22 - add r5, r5, #0x1 -_02029E22: - add r4, r4, #0x1 - cmp r4, #0x51 - blt _02029E14 - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02029E2C -FUN_02029E2C: ; 0x02029E2C - push {r3-r5, lr} - add r5, r1, #0x0 - sub r1, r5, #0x1 - add r4, r0, #0x0 - bl FUN_02029D14 - sub r1, r5, #0x1 - add r2, r4, r1 - mov r1, #0x12 - lsl r1, r1, #0x4 - ldrb r1, [r2, r1] - add r0, r0, r1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029E48 -FUN_02029E48: ; 0x02029E48 - mov r1, #0x0 - strh r1, [r0, #0x0] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_02029E54 -FUN_02029E54: ; 0x02029E54 - push {r3-r7, lr} - add r5, r0, #0x0 - ldrh r6, [r5, #0x0] - ldr r0, _02029EB8 ; =0x000003E7 - cmp r6, r0 - bne _02029E6C - ldrb r0, [r5, #0x2] - cmp r0, #0x3b - bne _02029E6C - ldrb r0, [r5, #0x3] - cmp r0, #0x3b - beq _02029EB4 -_02029E6C: - ldrb r0, [r5, #0x3] - ldrb r4, [r5, #0x2] - add r7, r0, r1 - cmp r7, #0x3b - bls _02029EAE - add r0, r7, #0x0 - mov r1, #0x3c - bl _u32_div_f - add r4, r4, r0 - add r0, r7, #0x0 - mov r1, #0x3c - bl _u32_div_f - add r7, r1, #0x0 - cmp r4, #0x3b - bls _02029EAE - add r0, r4, #0x0 - mov r1, #0x3c - bl _u32_div_f - add r6, r6, r0 - add r0, r4, #0x0 - mov r1, #0x3c - bl _u32_div_f - ldr r0, _02029EB8 ; =0x000003E7 - add r4, r1, #0x0 - cmp r6, r0 - blo _02029EAE - mov r4, #0x3b - add r6, r0, #0x0 - add r7, r4, #0x0 -_02029EAE: - strh r6, [r5, #0x0] - strb r4, [r5, #0x2] - strb r7, [r5, #0x3] -_02029EB4: - pop {r3-r7, pc} - nop -_02029EB8: .word 0x000003E7 - - thumb_func_start FUN_02029EBC -FUN_02029EBC: ; 0x02029EBC - ldrh r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02029EC0 -FUN_02029EC0: ; 0x02029EC0 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02029EC4 -FUN_02029EC4: ; 0x02029EC4 - mov r0, #0xfb - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_02029ECC -FUN_02029ECC: ; 0x02029ECC - push {r4, lr} - add r4, r0, #0x0 - mov r2, #0xfb - mov r0, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - bl MIi_CpuClear32 - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02029EE4 -FUN_02029EE4: ; 0x02029EE4 - push {r4, lr} - mov r1, #0xfb - lsl r1, r1, #0x2 - bl FUN_02016998 - add r4, r0, #0x0 - bl FUN_02029ECC - add r0, r4, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02029EF8 -FUN_02029EF8: ; 0x02029EF8 - ldr r3, _02029F00 ; =FUN_02022610 - mov r1, #0x16 - bx r3 - nop -_02029F00: .word FUN_02022610 - - thumb_func_start FUN_02029F04 -FUN_02029F04: ; 0x02029F04 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02029F08 -FUN_02029F08: ; 0x02029F08 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02029F10 -FUN_02029F10: ; 0x02029F10 - add r0, r0, #0x4 - bx lr - - thumb_func_start FUN_02029F14 -FUN_02029F14: ; 0x02029F14 - push {r4-r7} - mov r5, #0x0 - mov r2, #0xfa - add r4, r5, #0x0 - mov r6, #0xf - lsl r2, r2, #0x2 -_02029F20: - ldrsb r7, [r1, r4] - add r3, r0, r5 - and r7, r6 - lsl r7, r7, #0x18 - lsr r7, r7, #0x18 - sub r7, #0x8 - lsl r7, r7, #0x18 - asr r7, r7, #0x14 - strb r7, [r0, r5] - ldrsb r7, [r1, r4] - add r4, r4, #0x1 - add r5, r5, #0x2 - lsl r7, r7, #0x14 - lsr r7, r7, #0x18 - sub r7, #0x8 - lsl r7, r7, #0x18 - asr r7, r7, #0x14 - strb r7, [r3, #0x1] - cmp r4, r2 - blt _02029F20 - pop {r4-r7} - bx lr - - thumb_func_start FUN_02029F4C -FUN_02029F4C: ; 0x02029F4C - push {r4-r7} - add r3, r0, #0x0 - add r2, r1, #0x0 - mov r0, #0x1 - mov r1, #0x0 - str r0, [r3, #0x0] - add r0, r1, #0x0 -_02029F5A: - ldrsb r4, [r2, r0] - add r6, r3, r1 - add r7, r2, r0 - asr r5, r4, #0x3 - lsr r5, r5, #0x1c - add r5, r4, r5 - lsl r4, r5, #0x14 - asr r4, r4, #0x18 - add r4, #0x8 - strb r4, [r6, #0x4] - mov r4, #0x4 - ldrsb r5, [r6, r4] - mov r4, #0x1 - ldrsb r4, [r7, r4] - add r0, r0, #0x2 - add r1, r1, #0x1 - asr r7, r4, #0x3 - lsr r7, r7, #0x1c - add r7, r4, r7 - lsl r4, r7, #0x14 - asr r4, r4, #0x18 - add r4, #0x8 - lsl r4, r4, #0x18 - lsr r4, r4, #0x14 - orr r4, r5 - strb r4, [r6, #0x4] - mov r4, #0x7d - lsl r4, r4, #0x4 - cmp r0, r4 - blt _02029F5A - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02029F9C -FUN_02029F9C: ; 0x02029F9C - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - mov r2, #0xfb - ldr r3, _02029FAC ; =MIi_CpuCopyFast - lsl r2, r2, #0x2 - bx r3 - nop -_02029FAC: .word MIi_CpuCopyFast - - thumb_func_start FUN_02029FB0 -FUN_02029FB0: ; 0x02029FB0 - mov r0, #0x53 - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_02029FB8 -FUN_02029FB8: ; 0x02029FB8 - ldr r3, _02029FC4 ; =MIi_CpuClear32 - mov r2, #0x53 - add r1, r0, #0x0 - mov r0, #0x0 - lsl r2, r2, #0x2 - bx r3 - .balign 4 -_02029FC4: .word MIi_CpuClear32 - - thumb_func_start FUN_02029FC8 -FUN_02029FC8: ; 0x02029FC8 - ldr r3, _02029FD0 ; =FUN_02022610 - mov r1, #0x14 - bx r3 - nop -_02029FD0: .word FUN_02022610 - - thumb_func_start FUN_02029FD4 -FUN_02029FD4: ; 0x02029FD4 - push {r3, lr} - cmp r1, #0x2c - bge _02029FE0 - lsl r1, r1, #0x2 - ldr r0, [r0, r1] - pop {r3, pc} -_02029FE0: - cmp r1, #0x79 - bge _02029FF0 - sub r1, #0x2c - lsl r1, r1, #0x1 - add r0, r0, r1 - add r0, #0xb0 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_02029FF0: - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02029FF8 -FUN_02029FF8: ; 0x02029FF8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x2c - bge _0202A008 - lsl r0, r4, #0x2 - str r2, [r5, r0] - b _0202A01E -_0202A008: - cmp r4, #0x79 - bge _0202A01A - add r0, r4, #0x0 - sub r0, #0x2c - lsl r0, r0, #0x1 - add r0, r5, r0 - add r0, #0xb0 - strh r2, [r0, #0x0] - b _0202A01E -_0202A01A: - bl ErrorHandling -_0202A01E: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029FD4 - pop {r3-r5, pc} - - thumb_func_start FUN_0202A028 -FUN_0202A028: ; 0x0202A028 - push {r3, lr} - cmp r0, #0x2c - bge _0202A03E - ldr r1, _0202A05C ; =0x02105CD8 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202A03A - ldr r0, _0202A060 ; =0x3B9AC9FF - pop {r3, pc} -_0202A03A: - ldr r0, _0202A064 ; =0x000F423F - pop {r3, pc} -_0202A03E: - cmp r0, #0x79 - bge _0202A052 - ldr r1, _0202A05C ; =0x02105CD8 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202A04E - ldr r0, _0202A068 ; =0x0000FFFF - pop {r3, pc} -_0202A04E: - ldr r0, _0202A06C ; =0x0000270F - pop {r3, pc} -_0202A052: - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - nop -_0202A05C: .word 0x02105CD8 -_0202A060: .word 0x3B9AC9FF -_0202A064: .word 0x000F423F -_0202A068: .word 0x0000FFFF -_0202A06C: .word 0x0000270F - - thumb_func_start FUN_0202A070 -FUN_0202A070: ; 0x0202A070 - lsl r1, r0, #0x1 - ldr r0, _0202A078 ; =0x020EEA7C - ldrh r0, [r0, r1] - bx lr - .balign 4 -_0202A078: .word 0x020EEA7C - - thumb_func_start FUN_0202A07C -FUN_0202A07C: ; 0x0202A07C - push {r4-r6, lr} - add r5, r1, #0x0 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r4, r2, #0x0 - bl FUN_0202A028 - add r2, r0, #0x0 - cmp r4, r2 - bhs _0202A09C - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} -_0202A09C: - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202A0A8 -FUN_0202A0A8: ; 0x0202A0A8 - push {r3-r7, lr} - add r6, r1, #0x0 - add r7, r0, #0x0 - add r0, r6, #0x0 - add r5, r2, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - cmp r5, r4 - bls _0202A0C6 - add r5, r4, #0x0 -_0202A0C6: - cmp r0, r5 - bhs _0202A0D6 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} -_0202A0D6: - cmp r0, r4 - bls _0202A0E4 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02029FF8 -_0202A0E4: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202A0E8 -FUN_0202A0E8: ; 0x0202A0E8 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - add r2, r0, #0x1 - cmp r2, r4 - bhs _0202A10E - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} -_0202A10E: - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202A11C -FUN_0202A11C: ; 0x0202A11C - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r7, r2, #0x0 - bl FUN_0202A028 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029FD4 - add r2, r0, r7 - cmp r2, r6 - bhs _0202A144 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} -_0202A144: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} - - thumb_func_start FUN_0202A150 -FUN_0202A150: ; 0x0202A150 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - cmp r0, r4 - bhi _0202A16C - add r4, r0, #0x0 -_0202A16C: - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0202A170 -FUN_0202A170: ; 0x0202A170 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x26 - blt _0202A17E - bl ErrorHandling -_0202A17E: - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A150 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0202A070 - ldr r2, _0202A1B4 ; =0x05F5E0FF - add r0, r6, r0 - cmp r0, r2 - bls _0202A1A0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A07C - pop {r4-r6, pc} -_0202A1A0: - add r0, r4, #0x0 - bl FUN_0202A070 - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A11C - pop {r4-r6, pc} - nop -_0202A1B4: .word 0x05F5E0FF - - thumb_func_start FUN_0202A1B8 -FUN_0202A1B8: ; 0x0202A1B8 - ldr r3, _0202A1C0 ; =FUN_0202A150 - mov r1, #0x0 - bx r3 - nop -_0202A1C0: .word FUN_0202A150 - - thumb_func_start FUN_0202A1C4 -FUN_0202A1C4: ; 0x0202A1C4 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl FUN_02024594 - cmp r0, #0x0 - bne _0202A1DC - add r0, r4, #0x0 - mov r1, #0x16 - bl FUN_0202A170 -_0202A1DC: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A1E0 -FUN_0202A1E0: ; 0x0202A1E0 - mov r0, #0xe4 - bx lr - - thumb_func_start FUN_0202A1E4 -FUN_0202A1E4: ; 0x0202A1E4 - ldr r3, _0202A1EC ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x3c - bx r3 - .balign 4 -_0202A1EC: .word MI_CpuFill8 - - thumb_func_start FUN_0202A1F0 -FUN_0202A1F0: ; 0x0202A1F0 - push {r4, lr} - mov r2, #0x5a - mov r1, #0x0 - lsl r2, r2, #0x2 - add r4, r0, #0x0 - bl MI_CpuFill8 - mov r0, #0x1 - strb r0, [r4, #0x3] - pop {r4, pc} - - thumb_func_start FUN_0202A204 -FUN_0202A204: ; 0x0202A204 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - bl FUN_02013764 - add r0, r4, #0x0 - add r0, #0x8 - mov r1, #0x1 - bl FUN_02013764 - add r0, r4, #0x0 - add r0, #0x10 - mov r1, #0x2 - bl FUN_02013764 - add r4, #0x18 - add r0, r4, #0x0 - mov r1, #0x3 - bl FUN_02013764 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A230 -FUN_0202A230: ; 0x0202A230 - ldr r3, _0202A238 ; =MI_CpuFill8 - mov r1, #0x0 - ldr r2, _0202A23C ; =0x00000B3C - bx r3 - .balign 4 -_0202A238: .word MI_CpuFill8 -_0202A23C: .word 0x00000B3C - - thumb_func_start FUN_0202A240 -FUN_0202A240: ; 0x0202A240 - push {r3, lr} - cmp r1, #0xa - bhi _0202A2BE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202A252: ; jump table (using 16-bit offset) - .short _0202A268 - _0202A252 - 2; case 0 - .short _0202A270 - _0202A252 - 2; case 1 - .short _0202A274 - _0202A252 - 2; case 2 - .short _0202A278 - _0202A252 - 2; case 3 - .short _0202A27C - _0202A252 - 2; case 4 - .short _0202A280 - _0202A252 - 2; case 5 - .short _0202A28E - _0202A252 - 2; case 6 - .short _0202A29C - _0202A252 - 2; case 7 - .short _0202A2A4 - _0202A252 - 2; case 8 - .short _0202A2B2 - _0202A252 - 2; case 9 - .short _0202A2BA - _0202A252 - 2; case 10 -_0202A268: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1d - pop {r3, pc} -_0202A270: - ldrb r0, [r0, #0x2] - pop {r3, pc} -_0202A274: - ldrb r0, [r0, #0x3] - pop {r3, pc} -_0202A278: - ldrh r0, [r0, #0x4] - pop {r3, pc} -_0202A27C: - ldrh r0, [r0, #0x6] - pop {r3, pc} -_0202A280: - add r1, r2, #0x0 - add r0, #0x8 - mov r2, #0x4 - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A28E: - add r1, r2, #0x0 - add r0, #0x2c - mov r2, #0x10 - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A29C: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - pop {r3, pc} -_0202A2A4: - add r1, r2, #0x0 - add r0, #0xc - mov r2, #0x1c - bl MI_CpuCopy8 - mov r0, #0x0 - pop {r3, pc} -_0202A2B2: - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1d - pop {r3, pc} -_0202A2BA: - ldr r0, [r0, #0x28] - pop {r3, pc} -_0202A2BE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A2C4 -FUN_0202A2C4: ; 0x0202A2C4 - push {r4, lr} - add r3, r0, #0x0 - cmp r1, #0xa - bhi _0202A36A - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202A2D8: ; jump table (using 16-bit offset) - .short _0202A2EE - _0202A2D8 - 2; case 0 - .short _0202A300 - _0202A2D8 - 2; case 1 - .short _0202A306 - _0202A2D8 - 2; case 2 - .short _0202A30C - _0202A2D8 - 2; case 3 - .short _0202A312 - _0202A2D8 - 2; case 4 - .short _0202A318 - _0202A2D8 - 2; case 5 - .short _0202A326 - _0202A2D8 - 2; case 6 - .short _0202A334 - _0202A2D8 - 2; case 7 - .short _0202A346 - _0202A2D8 - 2; case 8 - .short _0202A35A - _0202A2D8 - 2; case 9 - .short _0202A354 - _0202A2D8 - 2; case 10 -_0202A2EE: - ldrb r1, [r3, #0x0] - mov r0, #0x1c - bic r1, r0 - ldrb r0, [r2, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1b - orr r0, r1 - strb r0, [r3, #0x0] - pop {r4, pc} -_0202A300: - ldrb r0, [r2, #0x0] - strb r0, [r3, #0x2] - pop {r4, pc} -_0202A306: - ldrb r0, [r2, #0x0] - strb r0, [r3, #0x3] - pop {r4, pc} -_0202A30C: - ldrh r0, [r2, #0x0] - strh r0, [r3, #0x4] - pop {r4, pc} -_0202A312: - ldrh r0, [r2, #0x0] - strh r0, [r3, #0x6] - pop {r4, pc} -_0202A318: - add r3, #0x8 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x4 - bl MI_CpuCopy8 - pop {r4, pc} -_0202A326: - add r3, #0x2c - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x10 - bl MI_CpuCopy8 - pop {r4, pc} -_0202A334: - ldrb r4, [r3, #0x0] - ldrb r1, [r2, #0x0] - mov r0, #0x1 - bic r4, r0 - mov r0, #0x1 - and r0, r1 - orr r0, r4 - strb r0, [r3, #0x0] - pop {r4, pc} -_0202A346: - add r3, #0xc - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x1c - bl MI_CpuCopy8 - pop {r4, pc} -_0202A354: - ldr r0, [r2, #0x0] - str r0, [r3, #0x28] - pop {r4, pc} -_0202A35A: - ldrb r1, [r3, #0x0] - mov r0, #0xe0 - bic r1, r0 - ldrb r0, [r2, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r3, #0x0] -_0202A36A: - pop {r4, pc} - - thumb_func_start FUN_0202A36C -FUN_0202A36C: ; 0x0202A36C - push {r3-r4} - ldrb r4, [r0, #0x3] - add r1, r4, r1 - cmp r1, #0xff - bge _0202A378 - strb r1, [r0, #0x3] -_0202A378: - ldrh r1, [r0, #0x4] - add r2, r1, r2 - ldr r1, _0202A394 ; =0x0000FFFF - cmp r2, r1 - bge _0202A384 - strh r2, [r0, #0x4] -_0202A384: - ldrh r1, [r0, #0x6] - add r2, r1, r3 - ldr r1, _0202A394 ; =0x0000FFFF - cmp r2, r1 - bge _0202A390 - strh r2, [r0, #0x6] -_0202A390: - pop {r3-r4} - bx lr - .balign 4 -_0202A394: .word 0x0000FFFF - - thumb_func_start FUN_0202A398 -FUN_0202A398: ; 0x0202A398 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_0202A3A0 -FUN_0202A3A0: ; 0x0202A3A0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - ldrb r3, [r0, #0x0] - mov r2, #0x2 - lsr r1, r1, #0x1e - bic r3, r2 - orr r1, r3 - strb r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202A3B4 -FUN_0202A3B4: ; 0x0202A3B4 - cmp r2, #0x6 - bhi _0202A402 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0202A3C4: ; jump table (using 16-bit offset) - .short _0202A402 - _0202A3C4 - 2; case 0 - .short _0202A3D2 - _0202A3C4 - 2; case 1 - .short _0202A402 - _0202A3C4 - 2; case 2 - .short _0202A402 - _0202A3C4 - 2; case 3 - .short _0202A402 - _0202A3C4 - 2; case 4 - .short _0202A3E0 - _0202A3C4 - 2; case 5 - .short _0202A3F2 - _0202A3C4 - 2; case 6 -_0202A3D2: - ldr r2, _0202A408 ; =0x0000270F - cmp r1, r2 - bls _0202A3DC - strh r2, [r0, #0x0] - b _0202A402 -_0202A3DC: - strh r1, [r0, #0x0] - b _0202A402 -_0202A3E0: - ldrh r2, [r0, #0x0] - add r2, r2, r1 - ldr r1, _0202A408 ; =0x0000270F - cmp r2, r1 - ble _0202A3EE - strh r1, [r0, #0x0] - b _0202A402 -_0202A3EE: - strh r2, [r0, #0x0] - b _0202A402 -_0202A3F2: - ldrh r2, [r0, #0x0] - cmp r2, r1 - bhs _0202A3FE - mov r1, #0x0 - strh r1, [r0, #0x0] - b _0202A402 -_0202A3FE: - sub r1, r2, r1 - strh r1, [r0, #0x0] -_0202A402: - ldrh r0, [r0, #0x0] - bx lr - nop -_0202A408: .word 0x0000270F - - thumb_func_start FUN_0202A40C -FUN_0202A40C: ; 0x0202A40C - cmp r1, #0x2 - beq _0202A416 - cmp r1, #0x3 - beq _0202A424 - b _0202A440 -_0202A416: - mov r1, #0x0 - strb r1, [r0, #0x2] - ldrh r2, [r0, #0x8] - mov r1, #0x10 - bic r2, r1 - strh r2, [r0, #0x8] - b _0202A440 -_0202A424: - ldrh r1, [r0, #0x8] - lsl r1, r1, #0x1b - lsr r1, r1, #0x1f - beq _0202A434 - ldrb r1, [r0, #0x2] - add r1, r1, #0x1 - strb r1, [r0, #0x2] - b _0202A440 -_0202A434: - mov r1, #0x1 - strb r1, [r0, #0x2] - ldrh r2, [r0, #0x8] - mov r1, #0x10 - orr r1, r2 - strh r1, [r0, #0x8] -_0202A440: - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_0202A444 -FUN_0202A444: ; 0x0202A444 - cmp r1, #0x2 - beq _0202A452 - cmp r1, #0x3 - beq _0202A458 - cmp r1, #0x4 - beq _0202A464 - b _0202A46E -_0202A452: - mov r1, #0x1 - strb r1, [r0, #0x3] - b _0202A46E -_0202A458: - ldrb r1, [r0, #0x3] - cmp r1, #0xa - bhs _0202A46E - add r1, r1, #0x1 - strb r1, [r0, #0x3] - b _0202A46E -_0202A464: - ldrb r1, [r0, #0x3] - cmp r1, #0x1 - bls _0202A46E - sub r1, r1, #0x1 - strb r1, [r0, #0x3] -_0202A46E: - ldrb r0, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_0202A474 -FUN_0202A474: ; 0x0202A474 - push {r3, lr} - add r3, r0, #0x0 - cmp r1, #0x0 - bne _0202A48A - add r3, #0xc0 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} -_0202A48A: - add r3, #0x18 - add r0, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} - - thumb_func_start FUN_0202A498 -FUN_0202A498: ; 0x0202A498 - push {r3, lr} - cmp r1, #0x0 - bne _0202A4AA - add r1, r2, #0x0 - add r0, #0xc0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} -_0202A4AA: - add r1, r2, #0x0 - add r0, #0x18 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A4B8 -FUN_0202A4B8: ; 0x0202A4B8 - push {r4-r6, lr} - add r6, r0, #0x0 - ldrb r0, [r1, #0x2] - mov r2, #0xfa - lsl r2, r2, #0x2 - sub r0, r0, #0x1 - add r3, r0, #0x0 - mul r3, r2 - lsl r0, r3, #0x10 - lsr r4, r0, #0x10 - ldrh r3, [r1, #0x4] - mov r0, #0xa - ldrb r5, [r1, #0x3] - mul r0, r3 - mov r3, #0x14 - mul r3, r5 - lsl r0, r0, #0x10 - lsl r3, r3, #0x10 - lsr r0, r0, #0x10 - lsr r3, r3, #0x10 - add r3, r0, r3 - add r0, r2, #0x0 - sub r0, #0x32 - cmp r3, r0 - ble _0202A4EE - mov r5, #0x0 - b _0202A4F6 -_0202A4EE: - sub r2, #0x32 - sub r0, r2, r3 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_0202A4F6: - ldrh r1, [r1, #0x6] - ldr r0, _0202A51C ; =0x000003CA - cmp r1, r0 - bls _0202A502 - mov r1, #0x0 - b _0202A510 -_0202A502: - add r0, #0x1e - sub r0, r0, r1 - mov r1, #0x1e - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 -_0202A510: - add r0, r4, r5 - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - strh r0, [r6, #0x16] - pop {r4-r6, pc} - .balign 4 -_0202A51C: .word 0x000003CA - - thumb_func_start FUN_0202A520 -FUN_0202A520: ; 0x0202A520 - ldrh r0, [r0, #0x16] - bx lr - - thumb_func_start FUN_0202A524 -FUN_0202A524: ; 0x0202A524 - push {r3, lr} - ldrh r0, [r0, #0x16] - mov r1, #0xfa - lsl r1, r1, #0x2 - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202A538 -FUN_0202A538: ; 0x0202A538 - push {r4-r5} - cmp r1, #0x5 - bne _0202A544 - mov r0, #0x0 - pop {r4-r5} - bx lr -_0202A544: - cmp r2, #0x2 - beq _0202A54E - cmp r2, #0x3 - beq _0202A558 - b _0202A56A -_0202A54E: - lsl r2, r1, #0x1 - mov r3, #0x0 - add r2, r0, r2 - strh r3, [r2, #0xc] - b _0202A56A -_0202A558: - add r5, r0, #0x0 - add r5, #0xc - lsl r4, r1, #0x1 - ldrh r3, [r5, r4] - ldr r2, _0202A574 ; =0x0000FFFE - cmp r3, r2 - bhs _0202A56A - add r2, r3, #0x1 - strh r2, [r5, r4] -_0202A56A: - lsl r1, r1, #0x1 - add r0, r0, r1 - ldrh r0, [r0, #0xc] - pop {r4-r5} - bx lr - .balign 4 -_0202A574: .word 0x0000FFFE - - thumb_func_start FUN_0202A578 -FUN_0202A578: ; 0x0202A578 - push {r3-r4} - mov r3, #0x1 - mov r4, #0x0 - cmp r1, #0x0 - bls _0202A590 -_0202A582: - add r4, r4, #0x1 - lsl r4, r4, #0x10 - lsl r3, r3, #0x11 - lsr r4, r4, #0x10 - lsr r3, r3, #0x10 - cmp r4, r1 - blo _0202A582 -_0202A590: - cmp r2, #0x0 - beq _0202A5B4 - cmp r2, #0x1 - beq _0202A5AC - cmp r2, #0x2 - bne _0202A5C2 - ldr r1, _0202A5C8 ; =0x0000FFFF - eor r1, r3 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - ldrh r1, [r0, #0x8] - and r1, r2 - strh r1, [r0, #0x8] - b _0202A5C2 -_0202A5AC: - ldrh r1, [r0, #0x8] - orr r1, r3 - strh r1, [r0, #0x8] - b _0202A5C2 -_0202A5B4: - ldrh r0, [r0, #0x8] - add r2, r0, #0x0 - asr r2, r1 - mov r0, #0x1 - and r0, r2 - pop {r3-r4} - bx lr -_0202A5C2: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 -_0202A5C8: .word 0x0000FFFF - - thumb_func_start FUN_0202A5CC -FUN_0202A5CC: ; 0x0202A5CC - str r1, [r0, #0x4] - bx lr - - thumb_func_start FUN_0202A5D0 -FUN_0202A5D0: ; 0x0202A5D0 - ldr r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_0202A5D4 -FUN_0202A5D4: ; 0x0202A5D4 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x17 - add r4, r2, #0x0 - bl FUN_02022610 - mov r1, #0x69 - lsl r1, r1, #0x2 - add r1, r0, r1 - lsl r0, r5, #0x3 - add r0, r1, r0 - add r1, r4, #0x0 - bl FUN_02013960 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202A5F4 -FUN_0202A5F4: ; 0x0202A5F4 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0x17 - bl FUN_02022610 - mov r1, #0x69 - lsl r1, r1, #0x2 - add r1, r0, r1 - lsl r0, r4, #0x3 - add r0, r1, r0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A60C -FUN_0202A60C: ; 0x0202A60C - push {r3-r6} - add r4, r3, #0x0 - mov r3, #0x1 - cmp r2, #0x0 - beq _0202A66C - cmp r2, #0xc8 - bhi _0202A66C - cmp r1, #0x0 - beq _0202A66C - cmp r1, #0xa - bhi _0202A66C - sub r5, r2, #0x1 - sub r2, r1, #0x1 - mov r1, #0xc8 - mul r1, r2 - add r1, r5, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - lsr r6, r1, #0x1f - lsl r5, r1, #0x1d - sub r5, r5, r6 - mov r2, #0x1d - ror r5, r2 - add r2, r6, r5 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r3, r2 - lsl r2, r3, #0x18 - lsl r1, r1, #0x15 - lsr r5, r2, #0x18 - add r3, r0, #0x4 - lsr r2, r1, #0x18 - ldrb r1, [r3, r2] - orr r1, r5 - strb r1, [r3, r2] - ldr r3, [r4, #0x0] - ldr r1, [r4, #0x8] - lsl r5, r3, #0x18 - ldr r3, [r4, #0x4] - lsl r1, r1, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x8 - ldr r2, [r4, #0xc] - lsr r1, r1, #0x10 - orr r3, r5 - orr r1, r3 - orr r1, r2 - str r1, [r0, #0x0] -_0202A66C: - pop {r3-r6} - bx lr - - thumb_func_start FUN_0202A670 -FUN_0202A670: ; 0x0202A670 - push {r4, lr} - add r4, r0, #0x0 - add r0, r4, #0x4 - mov r1, #0x0 - mov r2, #0xfa - bl MI_CpuFill8 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x4 - bl MI_CpuFill8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A68C -FUN_0202A68C: ; 0x0202A68C - ldr r3, [r0, #0x0] - ldr r2, [r1, #0x0] - cmp r3, r2 - bls _0202A698 - mov r0, #0x1 - bx lr -_0202A698: - ldr r3, [r0, #0x4] - ldr r2, [r1, #0x4] - cmp r3, r2 - bls _0202A6A4 - mov r0, #0x1 - bx lr -_0202A6A4: - ldr r2, [r0, #0x8] - ldr r0, [r1, #0x8] - cmp r2, r0 - bls _0202A6B0 - mov r0, #0x1 - bx lr -_0202A6B0: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202A6B4 -FUN_0202A6B4: ; 0x0202A6B4 - push {r3-r7, lr} - sub sp, #0x10 - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r7, #0x1 - cmp r6, #0xc8 - bhi _0202A6C8 - cmp r4, #0xa - bls _0202A6CE -_0202A6C8: - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202A6CE: - ldr r0, [r5, #0x0] - lsr r1, r0, #0x18 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x0] - lsr r1, r0, #0x10 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x4] - lsr r1, r0, #0x8 - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x8] - str r0, [sp, #0xc] - add r0, r3, #0x0 - add r1, sp, #0x0 - bl FUN_0202A68C - cmp r0, #0x0 - beq _0202A706 - add r0, r5, #0x0 - bl FUN_0202A670 - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202A706: - sub r1, r4, #0x1 - mov r0, #0xc8 - mul r0, r1 - sub r2, r6, #0x1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsr r3, r0, #0x1f - lsl r2, r0, #0x1d - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - add r0, r5, r0 - sub r2, r2, r3 - mov r1, #0x1d - ror r2, r1 - add r1, r3, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r7, #0x0 - lsl r2, r1 - lsl r1, r2, #0x18 - ldrb r0, [r0, #0x4] - lsr r1, r1, #0x18 - tst r0, r1 - beq _0202A73E - add sp, #0x10 - add r0, r7, #0x0 - pop {r3-r7, pc} -_0202A73E: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start FUN_0202A744 -FUN_0202A744: ; 0x0202A744 - add r0, #0xfe - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202A74C -FUN_0202A74C: ; 0x0202A74C - add r0, #0xff - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202A754 -FUN_0202A754: ; 0x0202A754 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x41 - add r4, r2, #0x0 - lsl r1, r1, #0x2 - ldr r2, _0202A77C ; =0x0000063C - add r1, r5, r1 - add r6, r3, #0x0 - bl MI_CpuCopy8 - ldr r0, _0202A780 ; =0x00000101 - strb r4, [r5, r0] - sub r0, r0, #0x1 - strb r6, [r5, r0] - mov r0, #0x1 - add r5, #0xfe - strb r0, [r5, #0x0] - pop {r4-r6, pc} - nop -_0202A77C: .word 0x0000063C -_0202A780: .word 0x00000101 - - thumb_func_start FUN_0202A784 -FUN_0202A784: ; 0x0202A784 - ldr r2, _0202A794 ; =0x00000101 - ldrb r3, [r0, r2] - sub r2, r2, #0x1 - strb r3, [r1, #0x0] - ldrb r0, [r0, r2] - strb r0, [r1, #0x1] - bx lr - nop -_0202A794: .word 0x00000101 - - thumb_func_start FUN_0202A798 -FUN_0202A798: ; 0x0202A798 - push {r3-r7, lr} - add r6, r1, #0x0 - mov r1, #0x41 - lsl r1, r1, #0x2 - add r5, r0, r1 - mov r0, #0xe4 - add r4, r2, #0x0 - mul r4, r0 - ldr r0, _0202A834 ; =0x00002710 - add r7, r6, #0x0 - str r0, [r6, #0x0] - add r0, r5, r4 - add r0, #0xc9 - ldrb r0, [r0, #0x0] - add r7, #0x30 - strh r0, [r6, #0x4] - add r0, r5, r4 - add r0, #0xc8 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _0202A7EE - mov r0, #0x0 - mov r1, #0x1a - mov r2, #0x11 - mov r3, #0xb - bl FUN_0200A86C - add r1, r5, r4 - add r1, #0xc8 - ldrb r1, [r1, #0x0] - add r2, r6, #0x0 - str r0, [sp, #0x0] - lsl r1, r1, #0x1e - lsr r1, r1, #0x1f - add r1, #0x16 - add r2, #0x8 - bl FUN_0200A968 - ldr r0, [sp, #0x0] - bl FUN_0200A8B8 - b _0202A7FC -_0202A7EE: - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xa8 - add r1, #0x8 - mov r2, #0x10 - bl MI_CpuCopy8 -_0202A7FC: - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xca - add r1, #0x18 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r1, r6, #0x0 - add r0, #0xd2 - add r1, #0x20 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r6, #0x28 - add r0, #0xda - add r1, r6, #0x0 - mov r2, #0x8 - bl MI_CpuCopy8 - add r0, r5, r4 - add r1, r7, #0x0 - mov r2, #0xa8 - bl MI_CpuCopy8 - pop {r3-r7, pc} - nop -_0202A834: .word 0x00002710 - - thumb_func_start FUN_0202A838 -FUN_0202A838: ; 0x0202A838 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x1d - add r4, r2, #0x0 - lsl r1, r1, #0x6 - mov r2, #0xff - add r1, r5, r1 - lsl r2, r2, #0x2 - add r6, r3, #0x0 - bl MI_CpuCopy8 - ldr r0, _0202A860 ; =0x00000103 - strb r4, [r5, r0] - sub r0, r0, #0x1 - strb r6, [r5, r0] - mov r0, #0x1 - add r5, #0xff - strb r0, [r5, #0x0] - pop {r4-r6, pc} - .balign 4 -_0202A860: .word 0x00000103 - - thumb_func_start FUN_0202A864 -FUN_0202A864: ; 0x0202A864 - ldr r2, _0202A874 ; =0x00000103 - ldrb r3, [r0, r2] - sub r2, r2, #0x1 - strb r3, [r1, #0x0] - ldrb r0, [r0, r2] - strb r0, [r1, #0x1] - bx lr - nop -_0202A874: .word 0x00000103 - - thumb_func_start FUN_0202A878 -FUN_0202A878: ; 0x0202A878 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0xff - lsl r1, r1, #0x2 - bl FUN_02016998 - add r4, r0, #0x0 - mov r0, #0x1d - lsl r0, r0, #0x6 - mov r2, #0xff - add r0, r5, r0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - bl MI_CpuCopy8 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202A89C -FUN_0202A89C: ; 0x0202A89C - mov r0, #0xd - lsl r0, r0, #0x8 - bx lr - .balign 4 - - thumb_func_start FUN_0202A8A4 -FUN_0202A8A4: ; 0x0202A8A4 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0202A1E4 - add r0, r4, #0x0 - add r0, #0x3c - bl FUN_0202A1F0 - mov r0, #0x69 - lsl r0, r0, #0x2 - add r0, r4, r0 - bl FUN_0202A204 - mov r0, #0x71 - lsl r0, r0, #0x2 - add r0, r4, r0 - bl FUN_0202A230 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202A8CC -FUN_0202A8CC: ; 0x0202A8CC - ldr r3, _0202A8D4 ; =FUN_02022610 - mov r1, #0x17 - bx r3 - nop -_0202A8D4: .word FUN_02022610 - - thumb_func_start FUN_0202A8D8 -FUN_0202A8D8: ; 0x0202A8D8 - push {r3, lr} - mov r1, #0x17 - bl FUN_02022610 - add r0, #0x3c - pop {r3, pc} - - thumb_func_start FUN_0202A8E4 -FUN_0202A8E4: ; 0x0202A8E4 - push {r3, lr} - mov r1, #0x17 - bl FUN_02022610 - mov r1, #0x71 - lsl r1, r1, #0x2 - add r0, r0, r1 - pop {r3, pc} - - thumb_func_start FUN_0202A8F4 -FUN_0202A8F4: ; 0x0202A8F4 - mov r0, #0xe - bx lr - - thumb_func_start FUN_0202A8F8 -FUN_0202A8F8: ; 0x0202A8F8 - 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] - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - bx lr - - thumb_func_start FUN_0202A918 -FUN_0202A918: ; 0x0202A918 - ldr r3, _0202A920 ; =FUN_02022610 - mov r1, #0x18 - bx r3 - nop -_0202A920: .word FUN_02022610 - - thumb_func_start FUN_0202A924 -FUN_0202A924: ; 0x0202A924 - mov r0, #0x45 - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_0202A92C -FUN_0202A92C: ; 0x0202A92C - push {r4, lr} - mov r2, #0x45 - add r4, r0, #0x0 - mov r1, #0x0 - lsl r2, r2, #0x2 - bl Call_FillMemWithValue - bl FUN_0201BA60 - str r0, [r4, #0x0] - bl FUN_0201BA60 - str r0, [r4, #0x4] - mov r1, #0x0 - add r3, r4, #0x0 - ldr r0, _0202A980 ; =0x0000FFFF - str r1, [r4, #0x8] - strh r0, [r4, #0xc] - strh r0, [r4, #0xe] - mov r0, #0x15 - add r3, #0x10 - strb r0, [r4, #0x10] - add r2, r1, #0x0 -_0202A95A: - str r2, [r3, #0x4] - strb r2, [r3, #0x8] - strb r2, [r3, #0x9] - strb r2, [r3, #0xa] - strb r2, [r3, #0xb] - add r1, r1, #0x1 - add r3, #0x8 - cmp r1, #0x15 - blt _0202A95A - ldr r0, _0202A984 ; =0x0000010F - strb r2, [r4, r0] - add r1, r0, #0x1 - strb r2, [r4, r1] - add r1, r0, #0x2 - strb r2, [r4, r1] - add r0, r0, #0x3 - strb r2, [r4, r0] - pop {r4, pc} - nop -_0202A980: .word 0x0000FFFF -_0202A984: .word 0x0000010F - - thumb_func_start FUN_0202A988 -FUN_0202A988: ; 0x0202A988 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - bx lr - .balign 4 - - thumb_func_start FUN_0202A990 -FUN_0202A990: ; 0x0202A990 - push {r3, lr} - cmp r1, #0x1 - beq _0202A99C - cmp r1, #0x2 - beq _0202A9A0 - b _0202A9A4 -_0202A99C: - ldr r0, [r0, #0x0] - pop {r3, pc} -_0202A9A0: - ldr r0, [r0, #0x4] - pop {r3, pc} -_0202A9A4: - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0202A9AC -FUN_0202A9AC: ; 0x0202A9AC - add r0, #0xbc - bx lr - - thumb_func_start FUN_0202A9B0 -FUN_0202A9B0: ; 0x0202A9B0 - ldr r3, _0202A9B8 ; =FUN_02022610 - mov r1, #0x19 - bx r3 - nop -_0202A9B8: .word FUN_02022610 - - thumb_func_start FUN_0202A9BC -FUN_0202A9BC: ; 0x0202A9BC - add r0, #0x10 - bx lr - - thumb_func_start FUN_0202A9C0 -FUN_0202A9C0: ; 0x0202A9C0 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202A9C4 -FUN_0202A9C4: ; 0x0202A9C4 - strb r0, [r1, #0x0] - bx lr - - thumb_func_start FUN_0202A9C8 -FUN_0202A9C8: ; 0x0202A9C8 - add r1, r1, #0x4 - lsl r0, r0, #0x3 - add r0, r1, r0 - bx lr - - thumb_func_start FUN_0202A9D0 -FUN_0202A9D0: ; 0x0202A9D0 - push {r3-r7, lr} - add r5, r1, #0x0 - bl FUN_0202A9B0 - add r6, r0, #0x0 - mov r4, #0x0 - add r6, #0x10 - add r7, r4, #0x0 -_0202A9E0: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - add r1, r6, #0x0 - bl FUN_0202A9C8 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202A9F8 - sub r1, r1, r5 - str r1, [r0, #0x0] - bpl _0202A9F8 - str r7, [r0, #0x0] -_0202A9F8: - add r4, r4, #0x1 - cmp r4, #0x15 - blt _0202A9E0 - pop {r3-r7, pc} - - thumb_func_start FUN_0202AA00 -FUN_0202AA00: ; 0x0202AA00 - push {r3, lr} - bl FUN_0202A9B0 - ldr r1, _0202AA10 ; =0x0000010F - mov r2, #0x1 - strb r2, [r0, r1] - pop {r3, pc} - nop -_0202AA10: .word 0x0000010F - - thumb_func_start FUN_0202AA14 -FUN_0202AA14: ; 0x0202AA14 - ldr r1, _0202AA1C ; =0x0000010F - ldrb r0, [r0, r1] - bx lr - nop -_0202AA1C: .word 0x0000010F - - thumb_func_start FUN_0202AA20 -FUN_0202AA20: ; 0x0202AA20 - add r2, r0, #0x0 - add r2, #0xc8 - ldr r3, [r2, #0x0] - cmp r3, r1 - beq _0202AA34 - add r2, r0, #0x0 - add r2, #0xcc - str r3, [r2, #0x0] - add r0, #0xc8 - str r1, [r0, #0x0] -_0202AA34: - bx lr - .balign 4 - - thumb_func_start FUN_0202AA38 -FUN_0202AA38: ; 0x0202AA38 - add r0, #0xcc - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202AA40 -FUN_0202AA40: ; 0x0202AA40 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - blo _0202AA4E - bl ErrorHandling -_0202AA4E: - mov r0, #0x43 - add r1, r5, r4 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202AA58 -FUN_0202AA58: ; 0x0202AA58 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - cmp r4, #0x3 - blo _0202AA68 - bl ErrorHandling -_0202AA68: - mov r0, #0x43 - add r1, r5, r4 - lsl r0, r0, #0x2 - strb r6, [r1, r0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202AA74 -FUN_0202AA74: ; 0x0202AA74 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - blo _0202AA82 - bl ErrorHandling -_0202AA82: - mov r0, #0x14 - mul r0, r4 - add r0, r5, r0 - add r0, #0xe2 - ldrb r0, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202AA90 -FUN_0202AA90: ; 0x0202AA90 - ldr r2, [r0, #0x0] - mov r1, #0x14 - mov r0, #0x0 -_0202AA96: - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0202AA96 - bx lr - - thumb_func_start FUN_0202AAA0 -FUN_0202AAA0: ; 0x0202AAA0 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - blo _0202AAAE - bl ErrorHandling -_0202AAAE: - mov r0, #0x14 - add r5, #0xd0 - mul r0, r4 - add r0, r5, r0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202AAB8 -FUN_0202AAB8: ; 0x0202AAB8 - cmp r1, #0x8 - bhi _0202AAF8 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202AAC8: ; jump table (using 16-bit offset) - .short _0202AAF8 - _0202AAC8 - 2; case 0 - .short _0202AADA - _0202AAC8 - 2; case 1 - .short _0202AADE - _0202AAC8 - 2; case 2 - .short _0202AAE2 - _0202AAC8 - 2; case 3 - .short _0202AAE6 - _0202AAC8 - 2; case 4 - .short _0202AAEA - _0202AAC8 - 2; case 5 - .short _0202AAEE - _0202AAC8 - 2; case 6 - .short _0202AAF2 - _0202AAC8 - 2; case 7 - .short _0202AAF6 - _0202AAC8 - 2; case 8 -_0202AADA: - ldr r0, [r0, #0x0] - bx lr -_0202AADE: - ldr r0, [r0, #0x4] - bx lr -_0202AAE2: - ldr r0, [r0, #0x8] - bx lr -_0202AAE6: - ldrh r0, [r0, #0xc] - bx lr -_0202AAEA: - ldrh r0, [r0, #0xe] - bx lr -_0202AAEE: - ldrb r0, [r0, #0x10] - bx lr -_0202AAF2: - ldrb r0, [r0, #0x11] - bx lr -_0202AAF6: - ldrb r0, [r0, #0x12] -_0202AAF8: - bx lr - .balign 4 - - thumb_func_start FUN_0202AAFC -FUN_0202AAFC: ; 0x0202AAFC - cmp r1, #0x8 - bhi _0202AB3C - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202AB0C: ; jump table (using 16-bit offset) - .short _0202AB3C - _0202AB0C - 2; case 0 - .short _0202AB1E - _0202AB0C - 2; case 1 - .short _0202AB22 - _0202AB0C - 2; case 2 - .short _0202AB26 - _0202AB0C - 2; case 3 - .short _0202AB2A - _0202AB0C - 2; case 4 - .short _0202AB2E - _0202AB0C - 2; case 5 - .short _0202AB32 - _0202AB0C - 2; case 6 - .short _0202AB36 - _0202AB0C - 2; case 7 - .short _0202AB3A - _0202AB0C - 2; case 8 -_0202AB1E: - str r2, [r0, #0x0] - bx lr -_0202AB22: - str r2, [r0, #0x4] - bx lr -_0202AB26: - str r2, [r0, #0x8] - bx lr -_0202AB2A: - strh r2, [r0, #0xc] - bx lr -_0202AB2E: - strh r2, [r0, #0xe] - bx lr -_0202AB32: - strb r2, [r0, #0x10] - bx lr -_0202AB36: - strb r2, [r0, #0x11] - bx lr -_0202AB3A: - strb r2, [r0, #0x12] -_0202AB3C: - bx lr - .balign 4 - - thumb_func_start FUN_0202AB40 -FUN_0202AB40: ; 0x0202AB40 - ldr r1, _0202AB48 ; =0x00000111 - add r0, r0, r1 - bx lr - nop -_0202AB48: .word 0x00000111 - - thumb_func_start FUN_0202AB4C -FUN_0202AB4C: ; 0x0202AB4C - mov r1, #0x11 - lsl r1, r1, #0x4 - add r0, r0, r1 - bx lr - - thumb_func_start FUN_0202AB54 -FUN_0202AB54: ; 0x0202AB54 - mov r1, #0x11 - lsl r1, r1, #0x4 - ldrb r0, [r0, r1] - cmp r0, #0x0 - bne _0202AB62 - mov r0, #0x1 - bx lr -_0202AB62: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202AB68 -FUN_0202AB68: ; 0x0202AB68 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x2 - bls _0202AB76 - bl ErrorHandling -_0202AB76: - ldr r0, _0202AB7C ; =0x00000112 - strb r4, [r5, r0] - pop {r3-r5, pc} - .balign 4 -_0202AB7C: .word 0x00000112 - - thumb_func_start FUN_0202AB80 -FUN_0202AB80: ; 0x0202AB80 - ldr r1, _0202AB88 ; =0x00000112 - ldrb r0, [r0, r1] - bx lr - nop -_0202AB88: .word 0x00000112 - - thumb_func_start FUN_0202AB8C -FUN_0202AB8C: ; 0x0202AB8C - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_0202A9B0 - ldrh r1, [r0, #0xc] - strh r1, [r5, #0x0] - ldrh r0, [r0, #0xe] - strh r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202ABA0 -FUN_0202ABA0: ; 0x0202ABA0 - push {r3-r5, lr} - add r5, r1, #0x0 - bl FUN_0202A9B0 - add r4, r0, #0x0 - cmp r5, #0x10 - blo _0202ABB2 - bl ErrorHandling -_0202ABB2: - ldrh r0, [r4, #0xc] - strh r0, [r4, #0xe] - strh r5, [r4, #0xc] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202ABBC -FUN_0202ABBC: ; 0x0202ABBC - ldr r3, _0202ABC4 ; =FUN_02022610 - mov r1, #0x1a - bx r3 - nop -_0202ABC4: .word FUN_02022610 - - thumb_func_start FUN_0202ABC8 -FUN_0202ABC8: ; 0x0202ABC8 - mov r0, #0xf4 - bx lr - - thumb_func_start FUN_0202ABCC -FUN_0202ABCC: ; 0x0202ABCC - ldr r3, _0202ABD8 ; =MIi_CpuClearFast - add r1, r0, #0x0 - mov r0, #0x0 - mov r2, #0xf4 - bx r3 - nop -_0202ABD8: .word MIi_CpuClearFast - - thumb_func_start FUN_0202ABDC -FUN_0202ABDC: ; 0x0202ABDC - add r0, #0xec - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202ABE4 -FUN_0202ABE4: ; 0x0202ABE4 - add r0, #0xec - strh r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202ABEC -FUN_0202ABEC: ; 0x0202ABEC - ldr r3, _0202ABF4 ; =MIi_CpuCopyFast - mov r2, #0xec - bx r3 - nop -_0202ABF4: .word MIi_CpuCopyFast - - thumb_func_start FUN_0202ABF8 -FUN_0202ABF8: ; 0x0202ABF8 - ldr r3, _0202AC04 ; =MIi_CpuCopyFast - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - mov r2, #0xec - bx r3 - .balign 4 -_0202AC04: .word MIi_CpuCopyFast - - thumb_func_start FUN_0202AC08 -FUN_0202AC08: ; 0x0202AC08 - add r0, #0xf0 - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202AC10 -FUN_0202AC10: ; 0x0202AC10 - add r0, #0xf0 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202AC18 -FUN_0202AC18: ; 0x0202AC18 - add r0, #0xee - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0202AC20 -FUN_0202AC20: ; 0x0202AC20 - ldr r0, _0202AC24 ; =0x00001354 - bx lr - .balign 4 -_0202AC24: .word 0x00001354 - - thumb_func_start FUN_0202AC28 -FUN_0202AC28: ; 0x0202AC28 - bx lr - .balign 4 - - thumb_func_start FUN_0202AC2C -FUN_0202AC2C: ; 0x0202AC2C - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x8 - blt _0202AC3A - bl ErrorHandling -_0202AC3A: - mov r0, #0x1 - lsl r0, r0, #0x8 - add r6, r5, r0 - lsl r3, r4, #0x2 - ldr r2, [r6, r3] - ldr r1, _0202AC60 ; =0xEDB88320 - cmp r2, r1 - bne _0202AC58 - add r0, #0x2c - add r1, r5, r0 - lsl r0, r4, #0x6 - add r0, r4, r0 - lsl r0, r0, #0x2 - add r0, r1, r0 - pop {r4-r6, pc} -_0202AC58: - mov r0, #0x0 - str r0, [r6, r3] - pop {r4-r6, pc} - nop -_0202AC60: .word 0xEDB88320 - - thumb_func_start FUN_0202AC64 -FUN_0202AC64: ; 0x0202AC64 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - blt _0202AC72 - bl ErrorHandling -_0202AC72: - lsl r0, r4, #0x2 - add r1, r5, r0 - mov r0, #0x12 - lsl r0, r0, #0x4 - ldr r0, [r1, r0] - cmp r0, #0x0 - beq _0202AC8E - ldr r0, _0202AC94 ; =0x0000094C - add r1, r5, r0 - mov r0, #0xd6 - lsl r0, r0, #0x2 - mul r0, r4 - add r0, r1, r0 - pop {r3-r5, pc} -_0202AC8E: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0202AC94: .word 0x0000094C - - thumb_func_start FUN_0202AC98 -FUN_0202AC98: ; 0x0202AC98 - push {r3-r7, lr} - add r5, r0, #0x0 - str r1, [sp, #0x0] - add r7, r2, #0x0 - bl FUN_0202ADF0 - cmp r0, #0x0 - bne _0202ACAC - mov r0, #0x0 - pop {r3-r7, pc} -_0202ACAC: - mov r0, #0x1 - mov r4, #0x0 - add r2, r5, #0x0 - lsl r0, r0, #0x8 -_0202ACB4: - ldr r1, [r2, r0] - cmp r1, #0x0 - bne _0202ACF6 - lsl r0, r4, #0x6 - mov r2, #0x4b - add r0, r4, r0 - lsl r2, r2, #0x2 - lsl r6, r0, #0x2 - add r1, r5, r2 - ldr r0, [sp, #0x0] - add r1, r1, r6 - sub r2, #0x28 - bl MI_CpuCopy8 - lsl r0, r4, #0x2 - add r1, r5, r0 - mov r0, #0x1 - ldr r2, _0202AD04 ; =0xEDB88320 - lsl r0, r0, #0x8 - str r2, [r1, r0] - add r0, #0x2e - add r1, r5, r0 - ldrh r0, [r1, r6] - mov r2, #0x3 - bic r0, r2 - lsl r2, r7, #0x10 - lsr r3, r2, #0x10 - mov r2, #0x3 - and r2, r3 - orr r0, r2 - strh r0, [r1, r6] - mov r0, #0x1 - pop {r3-r7, pc} -_0202ACF6: - add r4, r4, #0x1 - add r2, r2, #0x4 - cmp r4, #0x8 - blt _0202ACB4 - mov r0, #0x0 - pop {r3-r7, pc} - nop -_0202AD04: .word 0xEDB88320 - - thumb_func_start FUN_0202AD08 -FUN_0202AD08: ; 0x0202AD08 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - bl FUN_0202AE0C - cmp r0, #0x0 - bne _0202AD1A - mov r0, #0x0 - pop {r4-r6, pc} -_0202AD1A: - ldr r0, _0202AD88 ; =0x00000152 - ldrb r0, [r6, r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - cmp r0, #0x1 - bne _0202AD34 - add r0, r5, #0x0 - bl FUN_0202ADF0 - cmp r0, #0x0 - bne _0202AD34 - mov r0, #0x0 - pop {r4-r6, pc} -_0202AD34: - mov r0, #0x12 - mov r4, #0x0 - add r2, r5, #0x0 - lsl r0, r0, #0x4 -_0202AD3C: - ldr r1, [r2, r0] - cmp r1, #0x0 - bne _0202AD7C - ldr r1, _0202AD8C ; =0x0000094C - mov r2, #0xd6 - add r3, r5, r1 - lsl r2, r2, #0x2 - add r1, r4, #0x0 - mul r1, r2 - add r0, r6, #0x0 - add r1, r3, r1 - bl MI_CpuCopy8 - lsl r0, r4, #0x2 - add r1, r5, r0 - mov r0, #0x12 - ldr r2, _0202AD90 ; =0xEDB88320 - lsl r0, r0, #0x4 - str r2, [r1, r0] - add r0, #0x32 - ldrb r0, [r6, r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - cmp r0, #0x1 - bne _0202AD78 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x1 - bl FUN_0202AC98 -_0202AD78: - mov r0, #0x1 - pop {r4-r6, pc} -_0202AD7C: - add r4, r4, #0x1 - add r2, r2, #0x4 - cmp r4, #0x3 - blt _0202AD3C - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_0202AD88: .word 0x00000152 -_0202AD8C: .word 0x0000094C -_0202AD90: .word 0xEDB88320 - - thumb_func_start FUN_0202AD94 -FUN_0202AD94: ; 0x0202AD94 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - sub r0, r4, #0x1 - cmp r0, #0x8 - blt _0202ADA4 - bl ErrorHandling -_0202ADA4: - sub r4, r4, #0x1 - lsl r0, r4, #0x2 - add r1, r5, r0 - mov r0, #0x1 - mov r2, #0x0 - lsl r0, r0, #0x8 - str r2, [r1, r0] - add r0, #0x2e - add r3, r5, r0 - lsl r0, r4, #0x6 - add r0, r4, r0 - lsl r2, r0, #0x2 - ldrh r1, [r3, r2] - mov r0, #0x3 - bic r1, r0 - strh r1, [r3, r2] - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_0202ADC8 -FUN_0202ADC8: ; 0x0202ADC8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - blt _0202ADD6 - bl ErrorHandling -_0202ADD6: - lsl r0, r4, #0x2 - add r1, r5, r0 - mov r0, #0x12 - mov r2, #0x0 - lsl r0, r0, #0x4 - str r2, [r1, r0] - add r0, r5, #0x0 - add r1, r4, #0x1 - bl FUN_0202AEC4 - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202ADF0 -FUN_0202ADF0: ; 0x0202ADF0 - mov r1, #0x1 - mov r3, #0x0 - lsl r1, r1, #0x8 -_0202ADF6: - ldr r2, [r0, r1] - cmp r2, #0x0 - bne _0202AE00 - mov r0, #0x1 - bx lr -_0202AE00: - add r3, r3, #0x1 - add r0, r0, #0x4 - cmp r3, #0x8 - blt _0202ADF6 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202AE0C -FUN_0202AE0C: ; 0x0202AE0C - mov r1, #0x12 - mov r3, #0x0 - lsl r1, r1, #0x4 -_0202AE12: - ldr r2, [r0, r1] - cmp r2, #0x0 - bne _0202AE1C - mov r0, #0x1 - bx lr -_0202AE1C: - add r3, r3, #0x1 - add r0, r0, #0x4 - cmp r3, #0x3 - blt _0202AE12 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202AE28 -FUN_0202AE28: ; 0x0202AE28 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x8 - blt _0202AE36 - bl ErrorHandling -_0202AE36: - lsl r0, r5, #0x2 - add r1, r4, r0 - mov r0, #0x1 - lsl r0, r0, #0x8 - ldr r0, [r1, r0] - cmp r0, #0x0 - bne _0202AE48 - mov r0, #0x0 - pop {r3-r5, pc} -_0202AE48: - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_0202AE4C -FUN_0202AE4C: ; 0x0202AE4C - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - cmp r5, #0x3 - blt _0202AE5A - bl ErrorHandling -_0202AE5A: - lsl r0, r5, #0x2 - add r1, r4, r0 - mov r0, #0x12 - lsl r0, r0, #0x4 - ldr r0, [r1, r0] - cmp r0, #0x0 - bne _0202AE6C - mov r0, #0x0 - pop {r3-r5, pc} -_0202AE6C: - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_0202AE70 -FUN_0202AE70: ; 0x0202AE70 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 -_0202AE76: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202AE4C - cmp r0, #0x1 - bne _0202AE86 - mov r0, #0x1 - pop {r3-r5, pc} -_0202AE86: - add r4, r4, #0x1 - cmp r4, #0x3 - blt _0202AE76 - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202AE90 -FUN_0202AE90: ; 0x0202AE90 - push {r3-r4} - cmp r1, #0x0 - beq _0202AEB8 - ldr r2, _0202AEC0 ; =0x0000012E - mov r3, #0x0 - add r4, r0, r2 - add r0, r2, #0x0 - sub r0, #0x2a -_0202AEA0: - ldrh r2, [r4, #0x0] - lsl r2, r2, #0x1e - lsr r2, r2, #0x1e - cmp r1, r2 - bne _0202AEB0 - mov r0, #0x1 - pop {r3-r4} - bx lr -_0202AEB0: - add r3, r3, #0x1 - add r4, r4, r0 - cmp r3, #0x8 - blt _0202AEA0 -_0202AEB8: - mov r0, #0x0 - pop {r3-r4} - bx lr - nop -_0202AEC0: .word 0x0000012E - - thumb_func_start FUN_0202AEC4 -FUN_0202AEC4: ; 0x0202AEC4 - push {r3-r5, lr} - cmp r1, #0x0 - beq _0202AEEE - ldr r3, _0202AEF0 ; =0x0000012E - mov r4, #0x41 - mov r2, #0x0 - add r3, r0, r3 - lsl r4, r4, #0x2 -_0202AED4: - ldrh r5, [r3, #0x0] - lsl r5, r5, #0x1e - lsr r5, r5, #0x1e - cmp r1, r5 - bne _0202AEE6 - add r1, r2, #0x1 - bl FUN_0202AD94 - pop {r3-r5, pc} -_0202AEE6: - add r2, r2, #0x1 - add r3, r3, r4 - cmp r2, #0x8 - blt _0202AED4 -_0202AEEE: - pop {r3-r5, pc} - .balign 4 -_0202AEF0: .word 0x0000012E - - thumb_func_start FUN_0202AEF4 -FUN_0202AEF4: ; 0x0202AEF4 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x2 - add r4, r1, #0x0 - lsl r0, r0, #0xa - cmp r4, r0 - blt _0202AF06 - bl ErrorHandling -_0202AF06: - mov r0, #0x1 - mov r1, #0x7 - add r2, r4, #0x0 - and r2, r1 - add r1, r0, #0x0 - lsl r1, r2 - asr r2, r4, #0x2 - lsr r2, r2, #0x1d - add r2, r4, r2 - asr r2, r2, #0x3 - ldrb r2, [r5, r2] - tst r1, r2 - bne _0202AF22 - mov r0, #0x0 -_0202AF22: - pop {r3-r5, pc} - - thumb_func_start FUN_0202AF24 -FUN_0202AF24: ; 0x0202AF24 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x2 - add r4, r1, #0x0 - lsl r0, r0, #0xa - cmp r4, r0 - blt _0202AF36 - bl ErrorHandling -_0202AF36: - asr r0, r4, #0x2 - lsr r0, r0, #0x1d - add r0, r4, r0 - asr r0, r0, #0x3 - mov r1, #0x7 - ldrb r3, [r5, r0] - mov r2, #0x1 - and r1, r4 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strb r1, [r5, r0] - pop {r3-r5, pc} - - thumb_func_start FUN_0202AF50 -FUN_0202AF50: ; 0x0202AF50 - ldr r3, _0202AF58 ; =FUN_0202AEF4 - ldr r1, _0202AF5C ; =0x000007FF - bx r3 - nop -_0202AF58: .word FUN_0202AEF4 -_0202AF5C: .word 0x000007FF - - thumb_func_start FUN_0202AF60 -FUN_0202AF60: ; 0x0202AF60 - ldr r3, _0202AF68 ; =FUN_0202AF24 - ldr r1, _0202AF6C ; =0x000007FF - bx r3 - nop -_0202AF68: .word FUN_0202AF24 -_0202AF6C: .word 0x000007FF - - thumb_func_start FUN_0202AF70 -FUN_0202AF70: ; 0x0202AF70 - push {r3, lr} - ldr r1, _0202AF84 ; =0x021C59D4 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _0202AF82 - bl FUN_0202251C - ldr r1, _0202AF84 ; =0x021C59D4 - str r0, [r1, #0x0] -_0202AF82: - pop {r3, pc} - .balign 4 -_0202AF84: .word 0x021C59D4 - - thumb_func_start FUN_0202AF88 -FUN_0202AF88: ; 0x0202AF88 - ldr r0, _0202AF98 ; =0x021C59D4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202AF94 - mov r1, #0x0 - str r1, [r0, #0x0] -_0202AF94: - bx lr - nop -_0202AF98: .word 0x021C59D4 - - thumb_func_start FUN_0202AF9C -FUN_0202AF9C: ; 0x0202AF9C - push {r3-r5, lr} - ldr r4, _0202AFBC ; =0x021C59D4 - mov r5, #0x0 -_0202AFA2: - ldr r0, [r4, #0x0] - add r1, r5, #0x0 - bl FUN_0202AE28 - cmp r0, #0x1 - bne _0202AFB2 - add r0, r5, #0x1 - pop {r3-r5, pc} -_0202AFB2: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202AFA2 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202AFBC: .word 0x021C59D4 - - thumb_func_start FUN_0202AFC0 -FUN_0202AFC0: ; 0x0202AFC0 - push {r4, lr} - add r4, r0, #0x0 - bne _0202AFCA - mov r0, #0x0 - pop {r4, pc} -_0202AFCA: - sub r0, r4, #0x1 - cmp r0, #0x8 - blt _0202AFD4 - bl ErrorHandling -_0202AFD4: - ldr r0, _0202AFF8 ; =0x021C59D4 - sub r1, r4, #0x1 - ldr r0, [r0, #0x0] - bl FUN_0202AE28 - cmp r0, #0x1 - bne _0202AFF4 - ldr r0, _0202AFF8 ; =0x021C59D4 - sub r1, r4, #0x1 - ldr r0, [r0, #0x0] - bl FUN_0202AC2C - cmp r0, #0x0 - beq _0202AFF4 - ldrh r0, [r0, #0x0] - pop {r4, pc} -_0202AFF4: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_0202AFF8: .word 0x021C59D4 - - thumb_func_start FUN_0202AFFC -FUN_0202AFFC: ; 0x0202AFFC - cmp r0, #0x0 - beq _0202B016 - ldr r1, _0202B01C ; =0x021C59D4 - ldr r2, [r1, #0x0] - mov r1, #0x13 - lsl r1, r1, #0x4 - add r2, r2, r1 - sub r1, r0, #0x1 - lsl r0, r1, #0x6 - add r0, r1, r0 - lsl r0, r0, #0x2 - add r0, r2, r0 - bx lr -_0202B016: - mov r0, #0x0 - bx lr - nop -_0202B01C: .word 0x021C59D4 - - thumb_func_start FUN_0202B020 -FUN_0202B020: ; 0x0202B020 - add r1, r0, #0x0 - ldr r0, _0202B02C ; =0x021C59D4 - ldr r3, _0202B030 ; =FUN_0202AD94 - ldr r0, [r0, #0x0] - bx r3 - nop -_0202B02C: .word 0x021C59D4 -_0202B030: .word FUN_0202AD94 - - thumb_func_start FUN_0202B034 -FUN_0202B034: ; 0x0202B034 - ldr r0, _0202B038 ; =0x00002AB0 - bx lr - .balign 4 -_0202B038: .word 0x00002AB0 - - thumb_func_start FUN_0202B03C -FUN_0202B03C: ; 0x0202B03C - ldr r3, _0202B048 ; =MIi_CpuClear32 - add r1, r0, #0x0 - mov r0, #0x0 - ldr r2, _0202B04C ; =0x00002AB0 - bx r3 - nop -_0202B048: .word MIi_CpuClear32 -_0202B04C: .word 0x00002AB0 - - thumb_func_start FUN_0202B050 -FUN_0202B050: ; 0x0202B050 - push {r3-r7, lr} - sub sp, #0x18 - str r0, [sp, #0x0] - str r1, [sp, #0x4] - str r2, [sp, #0x8] - cmp r0, #0x0 - bne _0202B062 - bl ErrorHandling -_0202B062: - ldr r1, _0202B1E0 ; =0x00002AA8 - ldr r0, [sp, #0x0] - ldr r0, [r0, r1] - cmp r0, #0x1e - blo _0202B070 - bl ErrorHandling -_0202B070: - ldr r1, _0202B1E4 ; =0x00002AAC - ldr r0, [sp, #0x0] - ldr r2, [r0, r1] - ldr r0, _0202B1E8 ; =0x0000270F - cmp r2, r0 - blo _0202B07E - b _0202B1DC -_0202B07E: - ldr r0, [sp, #0x0] - sub r1, r1, #0x4 - ldr r1, [r0, r1] - mov r0, #0x5b - lsl r0, r0, #0x2 - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [sp, #0x0] - add r0, r0, r2 - str r0, [sp, #0x14] - ldr r0, [sp, #0x4] - bl FUN_0206B9AC - str r0, [sp, #0x10] - mov r0, #0xb - mov r1, #0x0 - bl FUN_020219F4 - mov r2, #0x5a - add r6, r0, #0x0 - ldr r1, [sp, #0x14] - mov r0, #0x0 - lsl r2, r2, #0x2 - bl MIi_CpuClear16 - ldr r0, [sp, #0x10] - mov r7, #0x0 - cmp r0, #0x0 - ble _0202B18E - ldr r5, [sp, #0x14] -_0202B0BA: - ldr r0, [sp, #0x4] - add r1, r7, #0x0 - bl FUN_0206B9B0 - add r4, r0, #0x0 - bl FUN_020669D4 - str r0, [sp, #0xc] - add r0, r4, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - bne _0202B17E - add r0, r4, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl FUN_020671BC - strh r0, [r5, #0x0] - add r0, r4, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl FUN_020671BC - strb r0, [r5, #0x2] - add r0, r4, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl FUN_020671BC - mov r1, #0x0 - strb r0, [r5, #0x3] - add r0, r4, #0x0 - add r2, r1, #0x0 - bl FUN_020671BC - str r0, [r5, #0x4] - add r0, r4, #0x0 - mov r1, #0x7 - mov r2, #0x0 - bl FUN_020671BC - str r0, [r5, #0x8] - add r0, r4, #0x0 - mov r1, #0x36 - mov r2, #0x0 - bl FUN_020671BC - strh r0, [r5, #0x32] - add r0, r4, #0x0 - mov r1, #0x37 - mov r2, #0x0 - bl FUN_020671BC - strh r0, [r5, #0x34] - add r0, r4, #0x0 - mov r1, #0x38 - mov r2, #0x0 - bl FUN_020671BC - strh r0, [r5, #0x36] - add r0, r4, #0x0 - mov r1, #0x39 - mov r2, #0x0 - bl FUN_020671BC - strh r0, [r5, #0x38] - cmp r6, #0x0 - beq _0202B176 - add r0, r4, #0x0 - mov r1, #0x76 - add r2, r6, #0x0 - bl FUN_020671BC - add r1, r5, #0x0 - add r0, r6, #0x0 - add r1, #0xc - mov r2, #0xb - bl FUN_02021EF0 - add r0, r4, #0x0 - mov r1, #0x90 - add r2, r6, #0x0 - bl FUN_020671BC - add r1, r5, #0x0 - add r0, r6, #0x0 - add r1, #0x22 - mov r2, #0x8 - bl FUN_02021EF0 - b _0202B17C -_0202B176: - ldr r0, _0202B1EC ; =0x0000FFFF - strh r0, [r5, #0xc] - strh r0, [r5, #0x22] -_0202B17C: - add r5, #0x3c -_0202B17E: - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl FUN_02066A20 - ldr r0, [sp, #0x10] - add r7, r7, #0x1 - cmp r7, r0 - blt _0202B0BA -_0202B18E: - ldr r0, [sp, #0x8] - mov r1, #0x5a - ldr r2, [r0, #0x0] - ldr r0, [sp, #0x14] - lsl r1, r1, #0x2 - strh r2, [r0, r1] - ldr r0, [sp, #0x8] - add r2, r1, #0x2 - ldr r3, [r0, #0x4] - ldr r0, [sp, #0x14] - add r1, r1, #0x3 - strb r3, [r0, r2] - ldr r0, [sp, #0x8] - ldr r2, [r0, #0x8] - ldr r0, [sp, #0x14] - strb r2, [r0, r1] - ldr r1, _0202B1E0 ; =0x00002AA8 - ldr r0, [sp, #0x0] - ldr r0, [r0, r1] - add r2, r0, #0x1 - ldr r0, [sp, #0x0] - str r2, [r0, r1] - ldr r0, [r0, r1] - cmp r0, #0x1e - blo _0202B1C6 - ldr r0, [sp, #0x0] - mov r2, #0x0 - str r2, [r0, r1] -_0202B1C6: - ldr r1, _0202B1E4 ; =0x00002AAC - ldr r0, [sp, #0x0] - ldr r0, [r0, r1] - add r2, r0, #0x1 - ldr r0, [sp, #0x0] - cmp r6, #0x0 - str r2, [r0, r1] - beq _0202B1DC - add r0, r6, #0x0 - bl FUN_02021A20 -_0202B1DC: - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 -_0202B1E0: .word 0x00002AA8 -_0202B1E4: .word 0x00002AAC -_0202B1E8: .word 0x0000270F -_0202B1EC: .word 0x0000FFFF - - thumb_func_start FUN_0202B1F0 -FUN_0202B1F0: ; 0x0202B1F0 - push {r4, lr} - add r4, r0, #0x0 - bne _0202B1FA - bl ErrorHandling -_0202B1FA: - ldr r0, _0202B214 ; =0x00002AA8 - ldr r0, [r4, r0] - cmp r0, #0x1e - blo _0202B206 - bl ErrorHandling -_0202B206: - ldr r0, _0202B218 ; =0x00002AAC - ldr r0, [r4, r0] - cmp r0, #0x1e - blo _0202B210 - mov r0, #0x1e -_0202B210: - pop {r4, pc} - nop -_0202B214: .word 0x00002AA8 -_0202B218: .word 0x00002AAC - - thumb_func_start FUN_0202B21C -FUN_0202B21C: ; 0x0202B21C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0202B22A - bl ErrorHandling -_0202B22A: - ldr r0, _0202B248 ; =0x00002AA8 - ldr r0, [r5, r0] - cmp r0, #0x1e - blo _0202B236 - bl ErrorHandling -_0202B236: - cmp r4, #0x1e - blt _0202B23E - bl ErrorHandling -_0202B23E: - ldr r0, _0202B24C ; =0x00002AAC - ldr r0, [r5, r0] - sub r0, r0, r4 - pop {r3-r5, pc} - nop -_0202B248: .word 0x00002AA8 -_0202B24C: .word 0x00002AAC - - thumb_func_start FUN_0202B250 -FUN_0202B250: ; 0x0202B250 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0202B25E - bl ErrorHandling -_0202B25E: - ldr r0, _0202B298 ; =0x00002AA8 - ldr r0, [r5, r0] - cmp r0, #0x1e - blo _0202B26A - bl ErrorHandling -_0202B26A: - cmp r4, #0x1e - blt _0202B272 - bl ErrorHandling -_0202B272: - ldr r0, _0202B298 ; =0x00002AA8 - ldr r0, [r5, r0] - sub r0, r0, #0x1 - sub r2, r0, r4 - bpl _0202B27E - add r2, #0x1e -_0202B27E: - mov r1, #0x5b - lsl r1, r1, #0x2 - mul r1, r2 - mov r0, #0x0 - add r2, r5, r1 -_0202B288: - ldrh r1, [r2, #0x0] - cmp r1, #0x0 - beq _0202B296 - add r0, r0, #0x1 - add r2, #0x3c - cmp r0, #0x6 - blo _0202B288 -_0202B296: - pop {r3-r5, pc} - .balign 4 -_0202B298: .word 0x00002AA8 - - thumb_func_start FUN_0202B29C -FUN_0202B29C: ; 0x0202B29C - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - add r4, r3, #0x0 - cmp r5, #0x0 - bne _0202B2AE - bl ErrorHandling -_0202B2AE: - ldr r0, _0202B318 ; =0x00002AA8 - ldr r0, [r5, r0] - cmp r0, #0x1e - blo _0202B2BA - bl ErrorHandling -_0202B2BA: - cmp r6, #0x1e - blt _0202B2C2 - bl ErrorHandling -_0202B2C2: - ldr r0, _0202B318 ; =0x00002AA8 - ldr r0, [r5, r0] - sub r0, r0, #0x1 - sub r1, r0, r6 - bpl _0202B2CE - add r1, #0x1e -_0202B2CE: - mov r0, #0x5b - lsl r0, r0, #0x2 - mul r0, r1 - add r1, r5, r0 - mov r0, #0x3c - mul r0, r7 - add r5, r1, r0 - ldrh r0, [r1, r0] - add r1, r5, #0x0 - add r1, #0xc - strh r0, [r4, #0x10] - ldrb r0, [r5, #0x2] - strb r0, [r4, #0x12] - ldr r0, [r5, #0x4] - str r0, [r4, #0x8] - ldr r0, [r5, #0x8] - str r0, [r4, #0xc] - ldrb r0, [r5, #0x3] - strb r0, [r4, #0x13] - ldr r0, [r4, #0x0] - bl FUN_02021E28 - add r1, r5, #0x0 - ldr r0, [r4, #0x4] - add r1, #0x22 - bl FUN_02021E28 - mov r1, #0x0 -_0202B306: - ldrh r0, [r5, #0x32] - add r1, r1, #0x1 - add r5, r5, #0x2 - strh r0, [r4, #0x14] - add r4, r4, #0x2 - cmp r1, #0x4 - blt _0202B306 - pop {r3-r7, pc} - nop -_0202B318: .word 0x00002AA8 - - thumb_func_start FUN_0202B31C -FUN_0202B31C: ; 0x0202B31C - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - cmp r5, #0x0 - bne _0202B32C - bl ErrorHandling -_0202B32C: - ldr r0, _0202B370 ; =0x00002AA8 - ldr r0, [r5, r0] - cmp r0, #0x1e - blo _0202B338 - bl ErrorHandling -_0202B338: - cmp r6, #0x1e - blt _0202B340 - bl ErrorHandling -_0202B340: - ldr r0, _0202B370 ; =0x00002AA8 - ldr r0, [r5, r0] - sub r0, r0, #0x1 - sub r2, r0, r6 - bpl _0202B34C - add r2, #0x1e -_0202B34C: - mov r0, #0x5b - lsl r0, r0, #0x2 - add r1, r2, #0x0 - mul r1, r0 - add r2, r5, r1 - sub r1, r0, #0x4 - ldrh r1, [r2, r1] - str r1, [r4, #0x0] - sub r1, r0, #0x2 - ldrb r1, [r2, r1] - sub r0, r0, #0x1 - str r1, [r4, #0x4] - ldrb r0, [r2, r0] - str r0, [r4, #0x8] - mov r0, #0x0 - str r0, [r4, #0xc] - pop {r4-r6, pc} - nop -_0202B370: .word 0x00002AA8 - - thumb_func_start FUN_0202B374 -FUN_0202B374: ; 0x0202B374 - ldr r0, _0202B378 ; =0x00000B88 - bx lr - .balign 4 -_0202B378: .word 0x00000B88 - - thumb_func_start FUN_0202B37C -FUN_0202B37C: ; 0x0202B37C - ldr r3, _0202B388 ; =MIi_CpuClearFast - add r1, r0, #0x0 - mov r0, #0x0 - ldr r2, _0202B38C ; =0x00000B88 - bx r3 - nop -_0202B388: .word MIi_CpuClearFast -_0202B38C: .word 0x00000B88 - - thumb_func_start FUN_0202B390 -FUN_0202B390: ; 0x0202B390 - push {r4, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - mov r0, #0x0 - add r1, #0xc - mov r2, #0xc0 - bl MIi_CpuClearFast - add r1, r4, #0x0 - mov r0, #0x0 - add r1, #0xcc - mov r2, #0xc0 - bl MIi_CpuClearFast - mov r1, #0x63 - lsl r1, r1, #0x2 - mov r0, #0x0 - add r1, r4, r1 - mov r2, #0xc0 - bl MIi_CpuClearFast - add r0, r4, #0x0 - bl FUN_0202B3F8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202B3C4 -FUN_0202B3C4: ; 0x0202B3C4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, r1 - ble _0202B3D4 - sub r0, r0, r1 - str r0, [r4, #0x4] - pop {r4, pc} -_0202B3D4: - add r0, r2, #0x0 - mov r1, #0xf - bl _s32_div_f - mov r0, #0xf - sub r1, r0, r1 - str r1, [r4, #0x4] - bne _0202B3E6 - str r0, [r4, #0x4] -_0202B3E6: - mov r1, #0x0 - strb r1, [r4, #0x8] - add r0, r1, #0x0 -_0202B3EC: - strb r0, [r4, r1] - add r1, r1, #0x1 - cmp r1, #0x4 - blt _0202B3EC - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202B3F8 -FUN_0202B3F8: ; 0x0202B3F8 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - bl FUN_0202B40C - add r0, r4, #0x0 - bl FUN_0202B430 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202B40C -FUN_0202B40C: ; 0x0202B40C - strb r1, [r0, #0x8] - bx lr - - thumb_func_start FUN_0202B410 -FUN_0202B410: ; 0x0202B410 - ldrb r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_0202B414 -FUN_0202B414: ; 0x0202B414 - push {r3, lr} - mov r3, #0x0 -_0202B418: - ldrb r2, [r0, r3] - cmp r2, #0x0 - bne _0202B422 - strb r1, [r0, r3] - pop {r3, pc} -_0202B422: - add r3, r3, #0x1 - cmp r3, #0x4 - blt _0202B418 - bl ErrorHandling - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202B430 -FUN_0202B430: ; 0x0202B430 - mov r2, #0x0 - add r1, r2, #0x0 -_0202B434: - strb r1, [r0, r2] - add r2, r2, #0x1 - cmp r2, #0x4 - blt _0202B434 - bx lr - .balign 4 - - thumb_func_start FUN_0202B440 -FUN_0202B440: ; 0x0202B440 - mov r3, #0x0 -_0202B442: - ldrb r2, [r0, r3] - cmp r1, r2 - bne _0202B44C - mov r0, #0x1 - bx lr -_0202B44C: - add r3, r3, #0x1 - cmp r3, #0x4 - blt _0202B442 - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202B458 -FUN_0202B458: ; 0x0202B458 - mov r2, #0x0 - add r3, r2, #0x0 -_0202B45C: - ldrb r1, [r0, r2] - cmp r1, #0x0 - beq _0202B464 - add r3, r3, #0x1 -_0202B464: - add r2, r2, #0x1 - cmp r2, #0x4 - blt _0202B45C - add r0, r3, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202B470 -FUN_0202B470: ; 0x0202B470 - push {r4-r6, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r0, sp, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020126B4 - ldr r0, [sp, #0x8] - ldr r3, [sp, #0x4] - lsl r0, r0, #0x18 - lsr r1, r0, #0x10 - ldr r0, [sp, #0x0] - lsl r3, r3, #0x18 - lsl r0, r0, #0x18 - lsr r3, r3, #0x8 - orr r0, r3 - ldr r2, [sp, #0xc] - orr r0, r1 - orr r0, r2 - str r0, [r5, #0x4] - strb r4, [r5, #0x0] - mov r0, #0x0 - strb r0, [r5, #0x1] - add r5, #0x8 - add r0, r6, #0x0 - add r1, r5, #0x0 - mov r2, #0x28 - bl MIi_CpuCopyFast - add sp, #0x10 - pop {r4-r6, pc} - - thumb_func_start FUN_0202B4B0 -FUN_0202B4B0: ; 0x0202B4B0 - push {r3-r5, lr} - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_0202B548 - mov r2, #0x0 - add r3, r0, #0x0 -_0202B4BE: - ldrb r1, [r3, #0x0] - cmp r5, r1 - bne _0202B4E0 - mov r1, #0x30 - mul r1, r2 - add r0, r0, r1 - ldrb r1, [r0, #0x1] - cmp r1, #0x3 - blo _0202B4DC - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202B470 - mov r0, #0x1 - pop {r3-r5, pc} -_0202B4DC: - mov r0, #0x0 - pop {r3-r5, pc} -_0202B4E0: - add r2, r2, #0x1 - add r3, #0x30 - cmp r2, #0x4 - blt _0202B4BE - mov r1, #0x0 - add r3, r0, #0x0 -_0202B4EC: - ldrb r2, [r3, #0x0] - cmp r2, #0x0 - bne _0202B504 - mov r2, #0x30 - mul r2, r1 - add r0, r0, r2 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202B470 - mov r0, #0x1 - pop {r3-r5, pc} -_0202B504: - add r1, r1, #0x1 - add r3, #0x30 - cmp r1, #0x4 - blt _0202B4EC - mov r1, #0x0 - add r3, r0, #0x0 -_0202B510: - ldrb r2, [r3, #0x1] - cmp r2, #0x3 - blo _0202B528 - mov r2, #0x30 - mul r2, r1 - add r0, r0, r2 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202B470 - mov r0, #0x1 - pop {r3-r5, pc} -_0202B528: - add r1, r1, #0x1 - add r3, #0x30 - cmp r1, #0x4 - blt _0202B510 - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202B534 -FUN_0202B534: ; 0x0202B534 - add r0, #0x8 - bx lr - - thumb_func_start FUN_0202B538 -FUN_0202B538: ; 0x0202B538 - ldrb r0, [r0, #0x6] - bx lr - - thumb_func_start FUN_0202B53C -FUN_0202B53C: ; 0x0202B53C - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_0202B540 -FUN_0202B540: ; 0x0202B540 - add r0, #0x18 - bx lr - - thumb_func_start FUN_0202B544 -FUN_0202B544: ; 0x0202B544 - bx lr - .balign 4 - - thumb_func_start FUN_0202B548 -FUN_0202B548: ; 0x0202B548 - push {r4, lr} - mov r4, #0x0 - cmp r1, #0x4 - bhi _0202B57E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202B55C: ; jump table (using 16-bit offset) - .short _0202B57E - _0202B55C - 2; case 0 - .short _0202B566 - _0202B55C - 2; case 1 - .short _0202B56E - _0202B55C - 2; case 2 - .short _0202B574 - _0202B55C - 2; case 3 - .short _0202B57A - _0202B55C - 2; case 4 -_0202B566: - mov r1, #0x63 - lsl r1, r1, #0x2 - add r4, r0, r1 - b _0202B57E -_0202B56E: - add r4, r0, #0x0 - add r4, #0xc - b _0202B57E -_0202B574: - add r4, r0, #0x0 - add r4, #0xcc - b _0202B57E -_0202B57A: - bl ErrorHandling -_0202B57E: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202B584 -FUN_0202B584: ; 0x0202B584 - push {r4, lr} - mov r4, #0x0 - cmp r1, #0x4 - bhi _0202B5BA - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202B598: ; jump table (using 16-bit offset) - .short _0202B5BA - _0202B598 - 2; case 0 - .short _0202B5B0 - _0202B598 - 2; case 1 - .short _0202B5A2 - _0202B598 - 2; case 2 - .short _0202B5AA - _0202B598 - 2; case 3 - .short _0202B5B6 - _0202B598 - 2; case 4 -_0202B5A2: - mov r1, #0x93 - lsl r1, r1, #0x2 - add r4, r0, r1 - b _0202B5BA -_0202B5AA: - ldr r1, _0202B5C0 ; =0x000006CC - add r4, r0, r1 - b _0202B5BA -_0202B5B0: - ldr r1, _0202B5C4 ; =0x0000090C - add r4, r0, r1 - b _0202B5BA -_0202B5B6: - bl ErrorHandling -_0202B5BA: - add r0, r4, #0x0 - pop {r4, pc} - nop -_0202B5C0: .word 0x000006CC -_0202B5C4: .word 0x0000090C - - thumb_func_start FUN_0202B5C8 -FUN_0202B5C8: ; 0x0202B5C8 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_0202B5CC -FUN_0202B5CC: ; 0x0202B5CC - ldrb r1, [r0, #0x1] - cmp r1, #0x3 - bhs _0202B5D6 - add r1, r1, #0x1 - strb r1, [r0, #0x1] -_0202B5D6: - bx lr - - thumb_func_start FUN_0202B5D8 -FUN_0202B5D8: ; 0x0202B5D8 - add r0, #0x8 - bx lr - - thumb_func_start FUN_0202B5DC -FUN_0202B5DC: ; 0x0202B5DC - push {r4-r7} - mov r5, #0x0 - add r4, r5, #0x0 - ldr r6, [sp, #0x10] - cmp r1, #0x0 - ble _0202B616 -_0202B5E8: - ldrb r7, [r0, #0x0] - cmp r2, r7 - bne _0202B60E - ldrb r7, [r0, #0x1] - cmp r3, #0x0 - beq _0202B600 - cmp r7, #0x0 - beq _0202B600 - add r7, r4, #0x1 - strb r7, [r6, r5] - add r5, r5, #0x1 - b _0202B60E -_0202B600: - cmp r3, #0x0 - bne _0202B60E - cmp r7, #0x0 - bne _0202B60E - add r7, r4, #0x1 - strb r7, [r6, r5] - add r5, r5, #0x1 -_0202B60E: - add r4, r4, #0x1 - add r0, #0x30 - cmp r4, r1 - blt _0202B5E8 -_0202B616: - add r0, r5, #0x0 - pop {r4-r7} - bx lr - - thumb_func_start FUN_0202B61C -FUN_0202B61C: ; 0x0202B61C - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - mov r5, #0x0 - add r0, r1, #0x0 - add r4, r5, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - str r3, [sp, #0x8] - ldr r7, [sp, #0x20] - cmp r0, #0x0 - ble _0202B672 -_0202B634: - ldrb r2, [r6, #0x18] - ldr r1, [sp, #0x4] - ldrb r0, [r6, #0x19] - cmp r1, r2 - bne _0202B668 - ldr r1, [sp, #0x8] - cmp r1, #0x0 - beq _0202B654 - cmp r0, #0x0 - beq _0202B654 - add r0, r4, #0x1 - bl FUN_0202B830 - strb r0, [r7, r5] - add r5, r5, #0x1 - b _0202B668 -_0202B654: - ldr r1, [sp, #0x8] - cmp r1, #0x0 - bne _0202B668 - cmp r0, #0x0 - bne _0202B668 - add r0, r4, #0x1 - bl FUN_0202B830 - strb r0, [r7, r5] - add r5, r5, #0x1 -_0202B668: - ldr r0, [sp, #0x0] - add r4, r4, #0x1 - add r6, #0x48 - cmp r4, r0 - blt _0202B634 -_0202B672: - add r0, r5, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0202B678 -FUN_0202B678: ; 0x0202B678 - push {r3-r5, lr} - ldr r5, [sp, #0x10] - ldr r4, [sp, #0x14] - cmp r1, #0x4 - bhi _0202B702 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0202B68E: ; jump table (using 16-bit offset) - .short _0202B702 - _0202B68E - 2; case 0 - .short _0202B6DA - _0202B68E - 2; case 1 - .short _0202B698 - _0202B68E - 2; case 2 - .short _0202B6BA - _0202B68E - 2; case 3 - .short _0202B6FE - _0202B68E - 2; case 4 -_0202B698: - cmp r3, #0x0 - str r4, [sp, #0x0] - beq _0202B6AA - add r0, #0xc - mov r1, #0x4 - add r3, r5, #0x0 - bl FUN_0202B5DC - pop {r3-r5, pc} -_0202B6AA: - mov r1, #0x93 - lsl r1, r1, #0x2 - add r0, r0, r1 - mov r1, #0x10 - add r3, r5, #0x0 - bl FUN_0202B61C - pop {r3-r5, pc} -_0202B6BA: - cmp r3, #0x0 - str r4, [sp, #0x0] - beq _0202B6CC - add r0, #0xcc - mov r1, #0x4 - add r3, r5, #0x0 - bl FUN_0202B5DC - pop {r3-r5, pc} -_0202B6CC: - ldr r1, _0202B708 ; =0x000006CC - add r3, r5, #0x0 - add r0, r0, r1 - mov r1, #0x8 - bl FUN_0202B61C - pop {r3-r5, pc} -_0202B6DA: - cmp r3, #0x0 - str r4, [sp, #0x0] - beq _0202B6F0 - mov r1, #0x63 - lsl r1, r1, #0x2 - add r0, r0, r1 - mov r1, #0x4 - add r3, r5, #0x0 - bl FUN_0202B5DC - pop {r3-r5, pc} -_0202B6F0: - ldr r1, _0202B70C ; =0x0000090C - add r3, r5, #0x0 - add r0, r0, r1 - mov r1, #0x8 - bl FUN_0202B61C - pop {r3-r5, pc} -_0202B6FE: - mov r0, #0x0 - pop {r3-r5, pc} -_0202B702: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0202B708: .word 0x000006CC -_0202B70C: .word 0x0000090C - - thumb_func_start FUN_0202B710 -FUN_0202B710: ; 0x0202B710 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r6, r1, #0x0 - add r5, r2, #0x0 - add r0, sp, #0x8 - mov r1, #0x0 - mov r2, #0x4 - bl MI_CpuFill8 - mov r0, #0x0 - str r0, [sp, #0x0] - add r0, sp, #0x8 - str r0, [sp, #0x4] - add r0, r4, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - mov r3, #0x1 - bl FUN_0202B678 - cmp r0, #0x0 - beq _0202B742 - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0202B742: - mov r3, #0x1 - str r3, [sp, #0x0] - add r0, sp, #0x8 - str r0, [sp, #0x4] - add r0, r4, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_0202B678 - cmp r0, #0x0 - beq _0202B79E - add r0, sp, #0x8 - ldrb r0, [r0, #0x0] - mov r7, #0x0 - cmp r0, #0x0 - beq _0202B798 - add r5, sp, #0x8 -_0202B764: - ldrb r2, [r5, #0x0] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_0202B7C8 - ldrb r0, [r0, #0x1] - cmp r0, #0x3 - blo _0202B77A - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0202B77A: - add r7, r7, #0x1 - add r5, r5, #0x1 - cmp r7, #0x4 - bge _0202B786 - mov r1, #0x1 - b _0202B788 -_0202B786: - mov r1, #0x0 -_0202B788: - ldrb r0, [r5, #0x0] - cmp r0, #0x0 - beq _0202B792 - mov r0, #0x1 - b _0202B794 -_0202B792: - mov r0, #0x0 -_0202B794: - tst r0, r1 - bne _0202B764 -_0202B798: - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0202B79E: - mov r5, #0x1 -_0202B7A0: - add r0, r4, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_0202B7C8 - ldrb r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202B7B6 - ldrb r0, [r0, #0x1] - cmp r0, #0x3 - blo _0202B7BC -_0202B7B6: - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0202B7BC: - add r5, r5, #0x1 - cmp r5, #0x4 - ble _0202B7A0 - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0202B7C8 -FUN_0202B7C8: ; 0x0202B7C8 - push {r4-r6, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r6, r1, #0x0 - bl FUN_0202B820 - cmp r0, #0x1 - beq _0202B7DE - bl ErrorHandling -_0202B7DE: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202B548 - mov r1, #0x80 - bic r4, r1 - sub r2, r4, #0x1 - mov r1, #0x30 - mul r1, r2 - add r0, r0, r1 - pop {r4-r6, pc} - - thumb_func_start FUN_0202B7F4 -FUN_0202B7F4: ; 0x0202B7F4 - push {r4-r6, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r6, r1, #0x0 - bl FUN_0202B820 - cmp r0, #0x0 - beq _0202B80A - bl ErrorHandling -_0202B80A: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202B584 - mov r1, #0x80 - bic r4, r1 - sub r2, r4, #0x1 - mov r1, #0x48 - mul r1, r2 - add r0, r0, r1 - pop {r4-r6, pc} - - thumb_func_start FUN_0202B820 -FUN_0202B820: ; 0x0202B820 - mov r1, #0x80 - tst r0, r1 - bne _0202B82A - mov r0, #0x1 - bx lr -_0202B82A: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202B830 -FUN_0202B830: ; 0x0202B830 - mov r1, #0x80 - orr r0, r1 - bx lr - .balign 4 - - thumb_func_start FUN_0202B838 -FUN_0202B838: ; 0x0202B838 - ldr r1, _0202B840 ; =0x00000B4C - add r0, r0, r1 - bx lr - nop -_0202B840: .word 0x00000B4C - - thumb_func_start FUN_0202B844 -FUN_0202B844: ; 0x0202B844 - ldr r1, _0202B84C ; =0x00000B56 - add r0, r0, r1 - bx lr - nop -_0202B84C: .word 0x00000B56 - - thumb_func_start FUN_0202B850 -FUN_0202B850: ; 0x0202B850 - ldr r1, _0202B858 ; =0x00000B7A - add r0, r0, r1 - bx lr - nop -_0202B858: .word 0x00000B7A - - thumb_func_start FUN_0202B85C -FUN_0202B85C: ; 0x0202B85C - ldr r1, _0202B864 ; =0x00000B7C - add r0, r0, r1 - bx lr - nop -_0202B864: .word 0x00000B7C - - thumb_func_start FUN_0202B868 -FUN_0202B868: ; 0x0202B868 - mov r1, #0x2e - lsl r1, r1, #0x6 - add r0, r0, r1 - bx lr - - thumb_func_start FUN_0202B870 -FUN_0202B870: ; 0x0202B870 - lsl r1, r0, #0x1 - ldr r0, _0202B878 ; =0x020EEAC8 - ldrb r0, [r0, r1] - bx lr - .balign 4 -_0202B878: .word 0x020EEAC8 - - thumb_func_start FUN_0202B87C -FUN_0202B87C: ; 0x0202B87C - lsl r1, r0, #0x1 - ldr r0, _0202B884 ; =0x020EEAC9 - ldrb r0, [r0, r1] - bx lr - .balign 4 -_0202B884: .word 0x020EEAC9 - - thumb_func_start FUN_0202B888 -FUN_0202B888: ; 0x0202B888 - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - ldr r3, _0202B898 ; =StringFillEOS - add r0, #0x8 - mov r1, #0x8 - bx r3 - nop -_0202B898: .word StringFillEOS - - thumb_func_start FUN_0202B89C -FUN_0202B89C: ; 0x0202B89C - push {r3, lr} - add r0, #0x8 - bl StringLength - cmp r0, #0x0 - beq _0202B8AC - mov r0, #0x1 - pop {r3, pc} -_0202B8AC: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0202B8B0 -FUN_0202B8B0: ; 0x0202B8B0 - mov r0, #0xea - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_0202B8B8 -FUN_0202B8B8: ; 0x0202B8B8 - push {r3-r7, lr} - mov r2, #0xea - mov r1, #0x0 - lsl r2, r2, #0x4 - add r6, r0, #0x0 - bl MI_CpuFill8 - mov r7, #0x0 -_0202B8C8: - mov r4, #0x0 - add r5, r6, #0x0 -_0202B8CC: - add r0, r5, #0x0 - bl FUN_0202B888 - add r4, r4, #0x1 - add r5, #0x18 - cmp r4, #0x6 - blt _0202B8CC - add r7, r7, #0x1 - add r6, #0x90 - cmp r7, #0x1a - blt _0202B8C8 - pop {r3-r7, pc} - - thumb_func_start FUN_0202B8E4 -FUN_0202B8E4: ; 0x0202B8E4 - ldr r3, _0202B8EC ; =FUN_02022610 - mov r1, #0x1c - bx r3 - nop -_0202B8EC: .word FUN_02022610 - - thumb_func_start FUN_0202B8F0 -FUN_0202B8F0: ; 0x0202B8F0 - push {r4-r6, lr} - cmp r2, #0x6 - blo _0202B8FE - blo _0202B930 - bl ErrorHandling - pop {r4-r6, pc} -_0202B8FE: - mov r3, #0x90 - mul r3, r1 - add r3, r0, r3 - cmp r2, #0x5 - bge _0202B928 - mov r0, #0x18 - mul r0, r2 - add r6, r3, r0 -_0202B90E: - add r5, r6, #0x0 - add r5, #0x18 - add r4, r6, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - add r2, r2, #0x1 - add r6, #0x18 - stmia r4!, {r0-r1} - cmp r2, #0x5 - blt _0202B90E -_0202B928: - add r3, #0x78 - add r0, r3, #0x0 - bl FUN_0202B888 -_0202B930: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202B934 -FUN_0202B934: ; 0x0202B934 - mov r0, #0x4e - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_0202B93C -FUN_0202B93C: ; 0x0202B93C - push {r3-r7, lr} - sub sp, #0x8 - add r5, r1, #0x0 - bl FUN_02029FC8 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x34 - bl FUN_020169D8 - str r0, [sp, #0x4] - add r5, r0, #0x0 - ldr r0, _0202B9E8 ; =0x020EEAD0 - mov r6, #0x0 - str r0, [sp, #0x0] -_0202B95A: - cmp r6, #0x5 - beq _0202B968 - cmp r6, #0xa - beq _0202B988 - cmp r6, #0xb - beq _0202B9A0 - b _0202B9C8 -_0202B968: - add r0, r4, #0x0 - mov r1, #0xf - bl FUN_0202A150 - add r7, r0, #0x0 - beq _0202B984 - add r0, r4, #0x0 - mov r1, #0x1d - bl FUN_0202A150 - add r1, r7, #0x0 - bl _u32_div_f - add r7, r0, #0x0 -_0202B984: - str r7, [r5, #0x0] - b _0202B9D4 -_0202B988: - add r0, r4, #0x0 - mov r1, #0x41 - bl FUN_0202A150 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x42 - bl FUN_0202A150 - add r0, r7, r0 - str r0, [r5, #0x0] - b _0202B9D4 -_0202B9A0: - add r0, r4, #0x0 - mov r1, #0x3f - bl FUN_0202A150 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x40 - bl FUN_0202A150 - add r1, r7, r0 - beq _0202B9C4 - ldr r0, [sp, #0x4] - ldr r2, [r0, #0x28] - mov r0, #0x64 - mul r0, r2 - bl _u32_div_f - add r1, r0, #0x0 -_0202B9C4: - str r1, [r5, #0x0] - b _0202B9D4 -_0202B9C8: - ldr r1, [sp, #0x0] - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - bl FUN_0202A150 - str r0, [r5, #0x0] -_0202B9D4: - ldr r0, [sp, #0x0] - add r6, r6, #0x1 - add r0, r0, #0x4 - add r5, r5, #0x4 - str r0, [sp, #0x0] - cmp r6, #0xd - blt _0202B95A - ldr r0, [sp, #0x4] - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_0202B9E8: .word 0x020EEAD0 - - thumb_func_start FUN_0202B9EC -FUN_0202B9EC: ; 0x0202B9EC - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020238F4 - mov r1, #0x4e - add r6, r0, #0x0 - add r0, r4, #0x0 - lsl r1, r1, #0x2 - bl FUN_020169D8 - mov r2, #0x4e - mov r1, #0x0 - lsl r2, r2, #0x2 - str r0, [sp, #0x4] - bl MI_CpuFill8 - add r0, r5, #0x0 - bl FUN_0202881C - mov r1, #0x1 - bl FUN_0202877C - str r0, [sp, #0x8] - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_020239A0 - add r7, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202B93C - ldr r4, [sp, #0x4] - str r0, [sp, #0x0] - mov r6, #0x0 - add r5, r0, #0x0 -_0202BA38: - ldr r0, [sp, #0x8] - add r1, r4, #0x0 - str r0, [r4, #0x0] - add r0, r7, #0x0 - add r1, #0x8 - mov r2, #0x8 - bl FUN_02021EF0 - ldr r0, [r5, #0x0] - add r6, r6, #0x1 - str r0, [r4, #0x4] - add r4, #0x18 - add r5, r5, #0x4 - cmp r6, #0xd - blt _0202BA38 - ldr r0, [sp, #0x0] - bl FUN_02016A18 - add r0, r7, #0x0 - bl FUN_02021A20 - ldr r0, [sp, #0x4] - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0202BA68 -FUN_0202BA68: ; 0x0202BA68 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 -_0202BA6E: - add r0, r5, #0x0 - bl FUN_0202B888 - add r4, r4, #0x1 - add r5, #0x18 - cmp r4, #0x6 - blt _0202BA6E - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202BA80 -FUN_0202BA80: ; 0x0202BA80 - push {r3, lr} - ldr r3, [r0, #0x0] - ldr r2, [r1, #0x0] - cmp r3, r2 - beq _0202BA8E - mov r0, #0x0 - pop {r3, pc} -_0202BA8E: - add r0, #0x8 - add r1, #0x8 - bl StringNotEqual - cmp r0, #0x0 - bne _0202BA9E - mov r0, #0x1 - pop {r3, pc} -_0202BA9E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202BAA4 -FUN_0202BAA4: ; 0x0202BAA4 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, [r6, #0x4] - add r7, r1, #0x0 - mov r4, #0x0 - cmp r0, #0x0 - ble _0202BACE - add r5, r6, #0x0 -_0202BAB4: - ldr r0, [r5, #0xc] - add r1, r7, #0x0 - bl FUN_0202BA80 - cmp r0, #0x0 - beq _0202BAC4 - mov r0, #0x1 - pop {r3-r7, pc} -_0202BAC4: - ldr r0, [r6, #0x4] - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r0 - blt _0202BAB4 -_0202BACE: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202BAD4 -FUN_0202BAD4: ; 0x0202BAD4 - push {r4-r7, lr} - sub sp, #0xc - add r6, r1, #0x0 - add r5, r0, #0x0 - str r2, [sp, #0x0] - add r0, r6, #0x0 - mov r1, #0x0 - mov r2, #0xe0 - add r4, r3, #0x0 - bl MI_CpuFill8 - add r0, sp, #0x10 - ldrb r0, [r0, #0x10] - cmp r0, #0x0 - bne _0202BB64 - mov r2, #0x90 - add r0, r4, #0x0 - mul r0, r2 - add r1, r6, #0x0 - add r0, r5, r0 - add r1, #0x50 - str r0, [sp, #0x8] - bl MI_CpuCopy8 - add r1, sp, #0x10 - ldrb r3, [r1, #0x18] - mov r0, #0x0 - cmp r3, #0x0 - ble _0202BB2E - mov r2, #0x18 - ldr r1, [sp, #0x24] - mul r2, r4 -_0202BB14: - ldr r5, [r6, #0x4] - add r0, r0, #0x1 - add r4, r5, #0x0 - add r4, r4, #0x1 - str r4, [r6, #0x4] - ldr r4, [r1, #0x0] - lsl r5, r5, #0x2 - add r4, r4, r2 - add r5, r6, r5 - str r4, [r5, #0xc] - add r1, r1, #0x4 - cmp r0, r3 - blt _0202BB14 -_0202BB2E: - add r4, r6, #0x0 - add r4, #0x50 - mov r7, #0x0 - add r5, r4, #0x0 -_0202BB36: - add r0, r4, #0x0 - bl FUN_0202B89C - cmp r0, #0x0 - beq _0202BB58 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0202BAA4 - cmp r0, #0x0 - bne _0202BB58 - ldr r1, [r6, #0x0] - add r0, r1, #0x1 - str r0, [r6, #0x0] - lsl r0, r1, #0x2 - add r0, r6, r0 - str r4, [r0, #0x38] -_0202BB58: - add r7, r7, #0x1 - add r4, #0x18 - add r5, #0x18 - cmp r7, #0x6 - blt _0202BB36 - b _0202BBF8 -_0202BB64: - add r0, r4, #0x0 - add r0, #0xd - mov r2, #0x90 - add r1, r0, #0x0 - mul r1, r2 - add r0, r5, r1 - add r1, r6, #0x0 - add r1, #0x50 - str r0, [sp, #0x8] - bl MI_CpuCopy8 - add r0, sp, #0x10 - ldrb r2, [r0, #0x18] - mov r3, #0x0 - cmp r2, #0x0 - ble _0202BBB2 - mov r1, #0x18 - ldr r0, [sp, #0x24] - mul r1, r4 -_0202BB8A: - ldr r4, [r0, #0x0] - ldr r5, [r1, r4] - cmp r5, #0x0 - beq _0202BBAA - ldr r4, [sp, #0x0] - cmp r4, r5 - bne _0202BBAA - ldr r5, [r6, #0x4] - add r4, r5, #0x0 - add r4, r4, #0x1 - str r4, [r6, #0x4] - ldr r4, [r0, #0x0] - lsl r5, r5, #0x2 - add r4, r4, r1 - add r5, r6, r5 - str r4, [r5, #0xc] -_0202BBAA: - add r3, r3, #0x1 - add r0, r0, #0x4 - cmp r3, r2 - blt _0202BB8A -_0202BBB2: - add r4, r6, #0x0 - mov r0, #0x0 - add r4, #0x50 - str r0, [sp, #0x4] - add r5, r6, #0x0 - add r7, r4, #0x0 -_0202BBBE: - add r0, r4, #0x0 - bl FUN_0202B89C - cmp r0, #0x0 - beq _0202BBE8 - ldr r1, [r5, #0x50] - ldr r0, [sp, #0x0] - cmp r0, r1 - bne _0202BBE8 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_0202BAA4 - cmp r0, #0x0 - bne _0202BBE8 - ldr r1, [r6, #0x0] - add r0, r1, #0x1 - str r0, [r6, #0x0] - lsl r0, r1, #0x2 - add r0, r6, r0 - str r4, [r0, #0x38] -_0202BBE8: - ldr r0, [sp, #0x4] - add r4, #0x18 - add r0, r0, #0x1 - add r5, #0x18 - add r7, #0x18 - str r0, [sp, #0x4] - cmp r0, #0x6 - blt _0202BBBE -_0202BBF8: - ldr r1, [r6, #0x4] - ldr r0, [r6, #0x0] - mov r2, #0x0 - add r0, r1, r0 - str r0, [r6, #0x8] - ldr r0, [r6, #0x0] - cmp r0, #0x0 - ble _0202BC20 - add r1, r6, #0x0 -_0202BC0A: - ldr r3, [r6, #0x4] - ldr r0, [r1, #0x38] - add r3, r2, r3 - lsl r3, r3, #0x2 - add r3, r6, r3 - str r0, [r3, #0xc] - ldr r0, [r6, #0x0] - add r2, r2, #0x1 - add r1, r1, #0x4 - cmp r2, r0 - blt _0202BC0A -_0202BC20: - mov r0, #0x0 - mov r12, r0 - ldr r0, [r6, #0x8] - sub r5, r0, #0x1 - cmp r5, #0x0 - ble _0202BC64 - add r3, r6, #0x0 -_0202BC2E: - mov r0, r12 - cmp r5, r0 - ble _0202BC52 - lsl r0, r5, #0x2 - add r4, r6, r0 -_0202BC38: - ldr r2, [r4, #0xc] - ldr r7, [r3, #0xc] - ldr r0, [r2, #0x4] - ldr r1, [r7, #0x4] - cmp r1, r0 - bhs _0202BC48 - str r2, [r3, #0xc] - str r7, [r4, #0xc] -_0202BC48: - sub r5, r5, #0x1 - mov r0, r12 - sub r4, r4, #0x4 - cmp r5, r0 - bgt _0202BC38 -_0202BC52: - mov r0, r12 - add r0, r0, #0x1 - mov r12, r0 - ldr r0, [r6, #0x8] - add r3, r3, #0x4 - sub r5, r0, #0x1 - mov r0, r12 - cmp r0, r5 - blt _0202BC2E -_0202BC64: - ldr r0, [sp, #0x8] - bl FUN_0202BA68 - mov r3, #0x0 - add r2, r6, #0x0 - b _0202BC8A -_0202BC70: - ldr r5, [r2, #0xc] - ldr r4, [sp, #0x8] - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [sp, #0x8] - add r2, r2, #0x4 - add r0, #0x18 - str r0, [sp, #0x8] - add r3, r3, #0x1 -_0202BC8A: - cmp r3, #0x6 - bge _0202BC94 - ldr r0, [r6, #0x8] - cmp r3, r0 - blt _0202BC70 -_0202BC94: - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0202BC98 -FUN_0202BC98: ; 0x0202BC98 - push {r4-r7, lr} - sub sp, #0x14 - add r7, r0, #0x0 - add r5, r1, #0x0 - ldr r0, [sp, #0x2c] - mov r1, #0xe0 - str r2, [sp, #0x10] - add r4, r3, #0x0 - bl FUN_020169D8 - add r6, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - str r4, [sp, #0x4] - add r0, sp, #0x18 - ldrb r0, [r0, #0x10] - add r1, r6, #0x0 - add r2, r5, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x2c] - str r0, [sp, #0xc] - ldr r3, [sp, #0x10] - add r0, r7, #0x0 - bl FUN_0202BAD4 - cmp r5, #0x0 - beq _0202BCEA - mov r0, #0x1 - str r0, [sp, #0x0] - str r4, [sp, #0x4] - add r0, sp, #0x18 - ldrb r0, [r0, #0x10] - add r1, r6, #0x0 - add r2, r5, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x2c] - str r0, [sp, #0xc] - ldr r3, [sp, #0x10] - add r0, r7, #0x0 - bl FUN_0202BAD4 -_0202BCEA: - add r0, r6, #0x0 - bl FUN_02016A18 - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_0202BCF4 -FUN_0202BCF4: ; 0x0202BCF4 - push {r4-r7, lr} - sub sp, #0x24 - add r6, r1, #0x0 - ldr r1, [sp, #0x38] - add r4, r0, #0x0 - add r5, r2, #0x0 - add r7, r3, #0x0 - str r1, [sp, #0x38] - bl FUN_0202B8E4 - str r0, [sp, #0x8] - add r0, r4, #0x0 - bl FUN_0202881C - mov r1, #0x1 - bl FUN_0202877C - mov r4, #0x0 - add r3, r4, #0x0 - str r0, [sp, #0xc] - cmp r5, #0x0 - bls _0202BD44 -_0202BD20: - cmp r3, r6 - beq _0202BD3A - lsl r0, r3, #0x2 - ldr r2, [r7, r0] - cmp r2, #0x0 - beq _0202BD3A - add r1, r4, #0x1 - add r0, r4, #0x0 - lsl r1, r1, #0x18 - lsr r4, r1, #0x18 - lsl r1, r0, #0x2 - add r0, sp, #0x10 - str r2, [r0, r1] -_0202BD3A: - add r0, r3, #0x1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, r5 - blo _0202BD20 -_0202BD44: - cmp r4, #0x0 - beq _0202BD68 - mov r5, #0x0 - add r6, sp, #0x10 -_0202BD4C: - ldr r0, [sp, #0x38] - str r4, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - add r2, r5, #0x0 - add r3, r6, #0x0 - bl FUN_0202BC98 - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0xd - blo _0202BD4C -_0202BD68: - add sp, #0x24 - pop {r4-r7, pc} - - thumb_func_start FUN_0202BD6C -FUN_0202BD6C: ; 0x0202BD6C - push {r3-r7, lr} - sub sp, #0x10 - str r2, [sp, #0x0] - add r4, r0, #0x0 - add r5, r1, #0x0 - bl FUN_020238F4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x0] - mov r1, #0x4c - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x4c - add r7, r0, #0x0 - bl MI_CpuFill8 - add r0, r4, #0x0 - bl FUN_0202881C - mov r1, #0x1 - bl FUN_0202877C - str r0, [sp, #0xc] - ldr r1, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_0202B93C - str r0, [sp, #0x8] - add r0, r5, #0x0 - bl FUN_0202B870 - str r0, [r7, #0x0] - add r0, r5, #0x0 - bl FUN_0202B87C - ldr r1, [r7, #0x0] - mov r6, #0x0 - cmp r1, #0x0 - ble _0202BDE2 - lsl r1, r0, #0x2 - ldr r0, [sp, #0x8] - add r4, r7, #0x0 - add r5, r0, r1 -_0202BDC4: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x0] - str r0, [r4, #0x4] - ldr r0, [r5, #0x0] - str r0, [r4, #0x8] - ldr r0, [sp, #0x4] - bl FUN_020239A0 - str r0, [r4, #0xc] - ldr r0, [r7, #0x0] - add r6, r6, #0x1 - add r4, #0xc - add r5, r5, #0x4 - cmp r6, r0 - blt _0202BDC4 -_0202BDE2: - ldr r0, [sp, #0x8] - bl FUN_02016A18 - add r0, r7, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202BDF0 -FUN_0202BDF0: ; 0x0202BDF0 - push {r3-r7, lr} - add r7, r2, #0x0 - add r5, r0, #0x0 - str r1, [sp, #0x0] - add r0, r7, #0x0 - mov r1, #0x4c - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x4c - add r4, r0, #0x0 - bl MI_CpuFill8 - ldr r0, [sp, #0x0] - mov r1, #0x90 - mul r1, r0 - mov r6, #0x0 - add r5, r5, r1 -_0202BE14: - add r0, r5, #0x0 - bl FUN_0202B89C - cmp r0, #0x0 - beq _0202BE60 - ldr r2, [r4, #0x0] - mov r1, #0xc - mul r1, r2 - ldr r0, [r5, #0x0] - add r1, r4, r1 - str r0, [r1, #0x4] - ldr r2, [r4, #0x0] - mov r1, #0xc - mul r1, r2 - ldr r0, [r5, #0x4] - add r1, r4, r1 - str r0, [r1, #0x8] - mov r0, #0x8 - add r1, r7, #0x0 - bl FUN_020219F4 - ldr r2, [r4, #0x0] - mov r1, #0xc - mul r1, r2 - add r1, r4, r1 - str r0, [r1, #0xc] - ldr r1, [r4, #0x0] - mov r0, #0xc - mul r0, r1 - add r0, r4, r0 - add r1, r5, #0x0 - ldr r0, [r0, #0xc] - add r1, #0x8 - bl FUN_02021E28 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] -_0202BE60: - add r6, r6, #0x1 - add r5, #0x18 - cmp r6, #0x6 - blt _0202BE14 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0202BE6C -FUN_0202BE6C: ; 0x0202BE6C - push {r4-r6, lr} - add r6, r0, #0x0 - mov r4, #0x0 - add r5, r6, #0x0 -_0202BE74: - ldr r0, [r5, #0xc] - cmp r0, #0x0 - beq _0202BE7E - bl FUN_02021A20 -_0202BE7E: - add r4, r4, #0x1 - add r5, #0xc - cmp r4, #0x6 - blt _0202BE74 - add r0, r6, #0x0 - mov r1, #0x0 - mov r2, #0x4c - bl MI_CpuFill8 - add r0, r6, #0x0 - bl FUN_02016A18 - pop {r4-r6, pc} - - thumb_func_start FUN_0202BE98 -FUN_0202BE98: ; 0x0202BE98 - ldr r0, _0202BE9C ; =0x00000688 - bx lr - .balign 4 -_0202BE9C: .word 0x00000688 - - thumb_func_start FUN_0202BEA0 -FUN_0202BEA0: ; 0x0202BEA0 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r2, _0202BED8 ; =0x00000688 - mov r0, #0x0 - add r1, r5, #0x0 - bl MIi_CpuClearFast - mov r4, #0x0 - mov r6, #0xab - add r7, r4, #0x0 -_0202BEB4: - add r0, r5, #0x0 - bl FUN_02066978 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - beq _0202BECC - bl ErrorHandling -_0202BECC: - add r4, r4, #0x1 - add r5, #0xec - cmp r4, #0x6 - blt _0202BEB4 - pop {r3-r7, pc} - nop -_0202BED8: .word 0x00000688 - - thumb_func_start FUN_0202BEDC -FUN_0202BEDC: ; 0x0202BEDC - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r2, _0202BF14 ; =0x00000588 - mov r0, #0x0 - add r1, r5, #0x0 - bl MIi_CpuClearFast - mov r4, #0x0 - mov r6, #0xab - add r7, r4, #0x0 -_0202BEF0: - add r0, r5, #0x0 - bl FUN_02066978 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - beq _0202BF08 - bl ErrorHandling -_0202BF08: - add r4, r4, #0x1 - add r5, #0xec - cmp r4, #0x6 - blt _0202BEF0 - pop {r3-r7, pc} - nop -_0202BF14: .word 0x00000588 - - thumb_func_start FUN_0202BF18 -FUN_0202BF18: ; 0x0202BF18 - push {r4-r7} - add r2, r0, #0x0 - ldr r3, _0202BF70 ; =0x00000588 - mov r0, #0x0 - add r5, r2, #0x0 -_0202BF22: - ldr r4, [r5, r3] - cmp r1, r4 - beq _0202BF6C - add r0, r0, #0x1 - add r5, r5, #0x4 - cmp r0, #0x14 - blt _0202BF22 - ldr r1, _0202BF70 ; =0x00000588 - mov r0, #0x0 - add r4, r2, #0x0 -_0202BF36: - ldr r3, [r4, r1] - cmp r3, #0x0 - beq _0202BF6C - add r0, r0, #0x1 - add r4, r4, #0x4 - cmp r0, #0x14 - blt _0202BF36 - mov r3, #0x0 - ldr r4, _0202BF74 ; =0x7FFFFFFF - add r5, r3, #0x0 -_0202BF4A: - ldr r0, _0202BF78 ; =0x000005D8 - ldr r1, [r2, r0] - add r0, r0, #0x4 - ldr r0, [r2, r0] - sub r6, r1, r4 - mov r12, r0 - mov r6, r12 - sbc r6, r3 - bge _0202BF62 - add r4, r1, #0x0 - add r3, r0, #0x0 - add r7, r5, #0x0 -_0202BF62: - add r5, r5, #0x1 - add r2, #0x8 - cmp r5, #0x14 - blt _0202BF4A - add r0, r7, #0x0 -_0202BF6C: - pop {r4-r7} - bx lr - .balign 4 -_0202BF70: .word 0x00000588 -_0202BF74: .word 0x7FFFFFFF -_0202BF78: .word 0x000005D8 - - thumb_func_start FUN_0202BF7C -FUN_0202BF7C: ; 0x0202BF7C - add r3, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0xec - mul r1, r2 - add r1, r3, r1 - ldr r3, _0202BF8C ; =FUN_02069A64 - bx r3 - nop -_0202BF8C: .word FUN_02069A64 - - thumb_func_start FUN_0202BF90 -FUN_0202BF90: ; 0x0202BF90 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0202BF18 - add r6, r0, #0x0 - lsl r0, r6, #0x2 - add r1, r5, r0 - ldr r0, _0202BFCC ; =0x00000588 - str r4, [r1, r0] - bl FUN_020126FC - lsl r2, r6, #0x3 - add r3, r5, r2 - ldr r2, _0202BFD0 ; =0x000005D8 - str r0, [r3, r2] - add r0, r2, #0x4 - str r1, [r3, r0] - bl OS_GetOwnerRtcOffset - ldr r2, _0202BFD4 ; =0x00000678 - str r0, [r5, r2] - add r0, r2, #0x4 - add r2, #0x8 - str r1, [r5, r0] - add r0, r5, r2 - bl OS_GetMacAddress - pop {r4-r6, pc} - nop -_0202BFCC: .word 0x00000588 -_0202BFD0: .word 0x000005D8 -_0202BFD4: .word 0x00000678 - - thumb_func_start FUN_0202BFD8 -FUN_0202BFD8: ; 0x0202BFD8 - push {r4-r6, lr} - add r5, r1, #0x0 - add r6, r0, #0x0 - add r4, r2, #0x0 - cmp r5, #0x6 - blt _0202BFE8 - bl ErrorHandling -_0202BFE8: - mov r0, #0xec - mul r0, r5 - add r3, r6, r0 - mov r2, #0x1d -_0202BFF0: - ldmia r3!, {r0-r1} - stmia r4!, {r0-r1} - sub r2, r2, #0x1 - bne _0202BFF0 - ldr r0, [r3, #0x0] - str r0, [r4, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202C000 -FUN_0202C000: ; 0x0202C000 - push {r3-r7, lr} - mov r4, #0x0 - add r5, r0, #0x0 - add r6, r4, #0x0 - mov r7, #0xab -_0202C00A: - add r0, r5, #0x0 - add r1, r7, #0x0 - mov r2, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - beq _0202C01A - add r4, r4, #0x1 -_0202C01A: - add r6, r6, #0x1 - add r5, #0xec - cmp r6, #0x6 - blt _0202C00A - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202C028 -FUN_0202C028: ; 0x0202C028 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020126FC - ldr r1, _0202C058 ; =0x00000588 - mov r3, #0x0 - add r6, r5, #0x0 -_0202C038: - ldr r2, [r6, r1] - cmp r4, r2 - bne _0202C04A - lsl r1, r3, #0x3 - add r2, r5, r1 - ldr r1, _0202C05C ; =0x000005D8 - ldr r1, [r2, r1] - sub r0, r0, r1 - pop {r4-r6, pc} -_0202C04A: - add r3, r3, #0x1 - add r6, r6, #0x4 - cmp r3, #0x14 - blt _0202C038 - mov r0, #0x0 - pop {r4-r6, pc} - nop -_0202C058: .word 0x00000588 -_0202C05C: .word 0x000005D8 - - thumb_func_start FUN_0202C060 -FUN_0202C060: ; 0x0202C060 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, sp, #0x0 - bl OS_GetMacAddress - mov r0, #0x1a - mov r3, #0x0 - add r5, sp, #0x0 - lsl r0, r0, #0x6 -_0202C074: - add r1, r4, r3 - ldrb r2, [r5, #0x0] - ldrb r1, [r1, r0] - cmp r2, r1 - beq _0202C084 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_0202C084: - add r3, r3, #0x1 - add r5, r5, #0x1 - cmp r3, #0x6 - blt _0202C074 - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202C094 -FUN_0202C094: ; 0x0202C094 - push {r4, lr} - add r4, r0, #0x0 - bl OS_GetOwnerRtcOffset - ldr r2, _0202C0B4 ; =0x00000678 - ldr r3, [r4, r2] - add r2, r2, #0x4 - ldr r2, [r4, r2] - eor r0, r3 - eor r1, r2 - orr r0, r1 - bne _0202C0B0 - mov r0, #0x1 - pop {r4, pc} -_0202C0B0: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_0202C0B4: .word 0x00000678 - - thumb_func_start FUN_0202C0B8 -FUN_0202C0B8: ; 0x0202C0B8 - push {r3-r4} - mov r4, #0x0 - mov r1, #0x1a - add r3, r4, #0x0 - lsl r1, r1, #0x6 -_0202C0C2: - add r2, r0, r3 - ldrb r2, [r2, r1] - add r3, r3, #0x1 - orr r4, r2 - cmp r3, #0x6 - blt _0202C0C2 - cmp r4, #0x0 - bne _0202C0D8 - mov r0, #0x1 - pop {r3-r4} - bx lr -_0202C0D8: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0202C0E0 -FUN_0202C0E0: ; 0x0202C0E0 - mov r0, #0x28 - bx lr - - thumb_func_start FUN_0202C0E4 -FUN_0202C0E4: ; 0x0202C0E4 - push {r4-r5} - mov r4, #0x0 - add r1, r4, #0x0 - add r2, r4, #0x0 -_0202C0EC: - add r3, r2, #0x0 - add r5, r0, #0x0 -_0202C0F0: - add r3, r3, #0x1 - strh r1, [r5, #0x0] - add r5, r5, #0x2 - cmp r3, #0x4 - blt _0202C0F0 - add r4, r4, #0x1 - add r0, #0x8 - cmp r4, #0x5 - blt _0202C0EC - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_0202C108 -FUN_0202C108: ; 0x0202C108 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x21 - add r4, r2, #0x0 - bl FUN_02022610 - lsl r1, r5, #0x3 - add r3, r0, r1 - lsl r2, r4, #0x1 - ldrh r1, [r3, r2] - ldr r0, _0202C128 ; =0x0000270F - cmp r1, r0 - bhs _0202C126 - add r0, r1, #0x1 - strh r0, [r3, r2] -_0202C126: - pop {r3-r5, pc} - .balign 4 -_0202C128: .word 0x0000270F - - thumb_func_start FUN_0202C12C -FUN_0202C12C: ; 0x0202C12C - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x21 - add r4, r2, #0x0 - bl FUN_02022610 - lsl r2, r5, #0x3 - lsl r1, r4, #0x1 - add r0, r0, r2 - ldrh r0, [r1, r0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202C144 -FUN_0202C144: ; 0x0202C144 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - bne _0202C194 - add r0, r5, #0x0 - bl FUN_02024DA0 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02029FC8 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl FUN_020671BC - add r2, r0, #0x0 - lsl r2, r2, #0x10 - add r0, r7, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x10 - bl FUN_0202A1C4 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02024AF0 - add r0, r5, #0x0 - bl FUN_0204C1A8 - add r1, r4, #0x0 - bl FUN_0204C104 -_0202C194: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202C198 -FUN_0202C198: ; 0x0202C198 - ldr r1, _0202C1A4 ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202C1A8 ; =0x00001310 - str r0, [r2, r1] - bx lr - nop -_0202C1A4: .word 0x021C59D8 -_0202C1A8: .word 0x00001310 - - thumb_func_start FUN_0202C1AC -FUN_0202C1AC: ; 0x0202C1AC - ldr r1, _0202C1C0 ; =0x021C59D8 - ldr r3, [r1, #0x4] - ldr r1, _0202C1C4 ; =0x00001310 - ldr r2, [r3, r1] - sub r2, #0x9 - cmp r2, #0x1 - bls _0202C1BE - add r1, #0x20 - str r0, [r3, r1] -_0202C1BE: - bx lr - .balign 4 -_0202C1C0: .word 0x021C59D8 -_0202C1C4: .word 0x00001310 - - thumb_func_start FUN_0202C1C8 -FUN_0202C1C8: ; 0x0202C1C8 - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r1, _0202C1F0 ; =0x021C59D8 - ldr r0, _0202C1F4 ; =FUN_0202C1F8 - ldr r1, [r1, #0x4] - bl WM_SetParentParameter - cmp r0, #0x2 - beq _0202C1EC - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x0 - pop {r3, pc} -_0202C1EC: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202C1F0: .word 0x021C59D8 -_0202C1F4: .word FUN_0202C1F8 - - thumb_func_start FUN_0202C1F8 -FUN_0202C1F8: ; 0x0202C1F8 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202C20C - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r3, pc} -_0202C20C: - bl FUN_0202C21C - cmp r0, #0x0 - bne _0202C21A - mov r0, #0x9 - bl FUN_0202C198 -_0202C21A: - pop {r3, pc} - - thumb_func_start FUN_0202C21C -FUN_0202C21C: ; 0x0202C21C - push {r4, lr} - ldr r0, _0202C278 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C27C ; =0x00001310 - ldr r0, [r1, r0] - sub r0, r0, #0x4 - cmp r0, #0x2 - bhi _0202C230 - mov r0, #0x1 - pop {r4, pc} -_0202C230: - bl WMi_GetStatusAddress - add r4, r0, #0x0 - mov r0, #0x66 - lsl r0, r0, #0x2 - add r0, r4, r0 - mov r1, #0x4 - bl DC_InvalidateRange - mov r0, #0x66 - mov r1, #0x0 - lsl r0, r0, #0x2 - str r1, [r4, r0] - add r0, r4, r0 - mov r1, #0x4 - bl DC_FlushRange - ldr r0, _0202C280 ; =FUN_0202C288 - bl WM_StartParent - cmp r0, #0x2 - beq _0202C264 - bl FUN_0202C1AC - mov r0, #0x0 - pop {r4, pc} -_0202C264: - ldr r2, _0202C278 ; =0x021C59D8 - ldr r1, _0202C284 ; =0x0000132C - ldr r0, [r2, #0x4] - mov r3, #0x0 - strh r3, [r0, r1] - ldr r2, [r2, #0x4] - mov r0, #0x1 - add r1, r1, #0x2 - strh r0, [r2, r1] - pop {r4, pc} - .balign 4 -_0202C278: .word 0x021C59D8 -_0202C27C: .word 0x00001310 -_0202C280: .word FUN_0202C288 -_0202C284: .word 0x0000132C - - thumb_func_start FUN_0202C288 -FUN_0202C288: ; 0x0202C288 - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x10] - mov r1, #0x1 - lsl r1, r0 - lsl r0, r1, #0x10 - lsr r4, r0, #0x10 - ldrh r0, [r5, #0x2] - cmp r0, #0x0 - beq _0202C2A8 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r4-r6, pc} -_0202C2A8: - ldrh r0, [r5, #0x8] - cmp r0, #0x7 - bgt _0202C2C0 - bge _0202C2DA - cmp r0, #0x2 - bgt _0202C378 - cmp r0, #0x0 - blt _0202C378 - beq _0202C36A - cmp r0, #0x2 - beq _0202C2CC - pop {r4-r6, pc} -_0202C2C0: - cmp r0, #0x9 - bgt _0202C2C8 - beq _0202C34C - pop {r4-r6, pc} -_0202C2C8: - cmp r0, #0x1a - pop {r4-r6, pc} -_0202C2CC: - ldr r0, _0202C37C ; =0x021C59D8 - ldr r2, [r0, #0x4] - ldr r0, _0202C380 ; =0x00001345 - ldrb r1, [r2, r0] - add r1, r1, #0x1 - strb r1, [r2, r0] - pop {r4-r6, pc} -_0202C2DA: - ldr r0, _0202C37C ; =0x021C59D8 - ldr r2, [r0, #0x4] - ldr r0, _0202C384 ; =0x00001343 - ldrb r1, [r2, r0] - cmp r1, #0x1 - beq _0202C318 - sub r0, r0, #0x1 - ldrb r0, [r2, r0] - cmp r0, #0x1 - beq _0202C318 - bl FUN_0202CBA0 - ldr r1, _0202C37C ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202C388 ; =0x00001334 - ldrb r1, [r2, r1] - cmp r0, r1 - bge _0202C318 - bl FUN_02033534 - ldrb r1, [r5, #0x14] - cmp r1, r0 - bne _0202C318 - add r1, r5, #0x0 - ldr r0, _0202C38C ; =0x02105D54 - add r1, #0x15 - mov r2, #0x3 - bl memcmp - cmp r0, #0x0 - beq _0202C330 -_0202C318: - ldrh r1, [r5, #0x10] - mov r0, #0x0 - bl WM_Disconnect - cmp r0, #0x2 - beq _0202C378 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r4-r6, pc} -_0202C330: - ldr r1, _0202C37C ; =0x021C59D8 - ldr r0, _0202C390 ; =0x0000132E - ldr r3, [r1, #0x4] - ldrh r2, [r3, r0] - orr r2, r4 - strh r2, [r3, r0] - ldr r1, [r1, #0x4] - sub r0, r0, #0x6 - ldr r1, [r1, r0] - cmp r1, #0x0 - beq _0202C378 - ldrh r0, [r5, #0x10] - blx r1 - pop {r4-r6, pc} -_0202C34C: - ldr r2, _0202C37C ; =0x021C59D8 - ldr r1, _0202C390 ; =0x0000132E - ldr r0, [r2, #0x4] - mvn r3, r4 - ldrh r6, [r0, r1] - and r3, r6 - strh r3, [r0, r1] - ldr r0, [r2, #0x4] - sub r1, #0xa - ldr r1, [r0, r1] - cmp r1, #0x0 - beq _0202C378 - ldrh r0, [r5, #0x10] - blx r1 - pop {r4-r6, pc} -_0202C36A: - bl FUN_0202C394 - cmp r0, #0x0 - bne _0202C378 - mov r0, #0x9 - bl FUN_0202C198 -_0202C378: - pop {r4-r6, pc} - nop -_0202C37C: .word 0x021C59D8 -_0202C380: .word 0x00001345 -_0202C384: .word 0x00001343 -_0202C388: .word 0x00001334 -_0202C38C: .word 0x02105D54 -_0202C390: .word 0x0000132E - - thumb_func_start FUN_0202C394 -FUN_0202C394: ; 0x0202C394 - push {r4, lr} - sub sp, #0x8 - ldr r0, _0202C3F0 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C3F4 ; =0x00001310 - ldr r0, [r1, r0] - sub r0, r0, #0x4 - cmp r0, #0x2 - bhi _0202C3AC - add sp, #0x8 - mov r0, #0x1 - pop {r4, pc} -_0202C3AC: - mov r0, #0x4 - bl FUN_0202C198 - ldr r0, _0202C3F0 ; =0x021C59D8 - ldr r2, _0202C3F8 ; =0x00001304 - ldr r4, [r0, #0x4] - ldr r3, _0202C3FC ; =0x00001020 - ldr r0, [r4, r2] - add r2, r2, #0x4 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r2, [r4, r2] - add r1, r4, r3 - lsl r2, r2, #0x10 - sub r3, #0xe0 - ldr r0, _0202C400 ; =FUN_0202C404 - lsr r2, r2, #0x10 - add r3, r4, r3 - bl WM_StartMP - cmp r0, #0x2 - beq _0202C3E8 - bl FUN_0202C1AC - add sp, #0x8 - mov r0, #0x0 - pop {r4, pc} -_0202C3E8: - mov r0, #0x1 - add sp, #0x8 - pop {r4, pc} - nop -_0202C3F0: .word 0x021C59D8 -_0202C3F4: .word 0x00001310 -_0202C3F8: .word 0x00001304 -_0202C3FC: .word 0x00001020 -_0202C400: .word FUN_0202C404 - - thumb_func_start FUN_0202C404 -FUN_0202C404: ; 0x0202C404 - push {r3, lr} - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _0202C41A - add r0, r1, #0x0 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r3, pc} -_0202C41A: - ldrh r0, [r0, #0x4] - sub r0, #0xa - cmp r0, #0x3 - bhi _0202C454 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202C42E: ; jump table (using 16-bit offset) - .short _0202C436 - _0202C42E - 2; case 0 - .short _0202C454 - _0202C42E - 2; case 1 - .short _0202C454 - _0202C42E - 2; case 2 - .short _0202C454 - _0202C42E - 2; case 3 -_0202C436: - ldr r0, _0202C458 ; =0x021C59D8 - ldr r2, [r0, #0x4] - ldr r0, _0202C45C ; =0x00001314 - ldr r1, [r2, r0] - cmp r1, #0x2 - bne _0202C44E - sub r0, r0, #0x4 - ldr r0, [r2, r0] - cmp r0, #0x4 - beq _0202C44E - cmp r0, #0x6 - beq _0202C454 -_0202C44E: - mov r0, #0x4 - bl FUN_0202C198 -_0202C454: - pop {r3, pc} - nop -_0202C458: .word 0x021C59D8 -_0202C45C: .word 0x00001314 - - thumb_func_start FUN_0202C460 -FUN_0202C460: ; 0x0202C460 - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202C480 ; =FUN_0202C484 - bl WM_EndMP - cmp r0, #0x2 - beq _0202C47A - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3, pc} -_0202C47A: - mov r0, #0x1 - pop {r3, pc} - nop -_0202C480: .word FUN_0202C484 - - thumb_func_start FUN_0202C484 -FUN_0202C484: ; 0x0202C484 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202C496 - bl FUN_0202C1AC - bl FUN_0202D0D8 - pop {r3, pc} -_0202C496: - bl FUN_0202C4A4 - cmp r0, #0x0 - bne _0202C4A2 - bl FUN_0202D0D8 -_0202C4A2: - pop {r3, pc} - - thumb_func_start FUN_0202C4A4 -FUN_0202C4A4: ; 0x0202C4A4 - push {r3, lr} - ldr r0, _0202C4BC ; =FUN_0202C4C0 - bl WM_EndParent - cmp r0, #0x2 - beq _0202C4B8 - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3, pc} -_0202C4B8: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202C4BC: .word FUN_0202C4C0 - - thumb_func_start FUN_0202C4C0 -FUN_0202C4C0: ; 0x0202C4C0 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202C4CE - bl FUN_0202C1AC - pop {r3, pc} -_0202C4CE: - mov r0, #0x1 - bl FUN_0202C198 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202C4D8 -FUN_0202C4D8: ; 0x0202C4D8 - push {r3-r7, lr} - add r6, r2, #0x0 - ldr r2, _0202C564 ; =0x021C59D8 - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r3, #0x2 - ldr r0, [r2, #0x4] - ldr r1, _0202C568 ; =0x00001308 - lsl r3, r3, #0x8 - str r3, [r0, r1] - ldr r2, [r2, #0x4] - mov r0, #0x40 - sub r1, r1, #0x4 - str r0, [r2, r1] - mov r0, #0x2 - bl FUN_0202C198 - ldr r1, _0202C564 ; =0x021C59D8 - ldr r0, _0202C56C ; =0x00001256 - ldr r3, [r1, #0x4] - mov r2, #0x1 - strh r2, [r3, r0] - add r7, r0, #0x0 - ldrh r3, [r4, #0x4] - ldr r2, [r1, #0x4] - add r7, #0x96 - strh r3, [r2, r7] - add r7, r0, #0x0 - ldrh r3, [r4, #0x2] - ldr r2, [r1, #0x4] - add r7, #0x94 - strh r3, [r2, r7] - add r2, r0, #0x0 - ldrh r4, [r4, #0x0] - ldr r3, [r1, #0x4] - add r2, #0x92 - strh r4, [r3, r2] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - add r2, #0xbe - str r5, [r3, r2] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - mov r2, #0x0 - add r3, #0xaa - str r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0xb6 - strh r6, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x8e - strh r2, [r4, r3] - ldr r2, [r1, #0x4] - add r0, #0xb8 - mov r1, #0x1 - strh r1, [r2, r0] - bl FUN_0202C5D8 - cmp r0, #0x0 - bne _0202C55E - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x0 - pop {r3-r7, pc} -_0202C55E: - mov r0, #0x1 - pop {r3-r7, pc} - nop -_0202C564: .word 0x021C59D8 -_0202C568: .word 0x00001308 -_0202C56C: .word 0x00001256 - - thumb_func_start FUN_0202C570 -FUN_0202C570: ; 0x0202C570 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0x2 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_0202C198 - ldr r1, _0202C5D4 ; =0x021C59D8 - mov r0, #0x13 - ldr r2, [r1, #0x4] - lsl r0, r0, #0x8 - str r5, [r2, r0] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - add r2, #0xc - strh r6, [r3, r2] - add r3, r0, #0x0 - ldr r5, [r1, #0x4] - mov r2, #0x0 - sub r3, #0x1c - strh r2, [r5, r3] - add r3, r0, #0x0 - ldr r5, [r1, #0x4] - add r3, #0xe - strh r2, [r5, r3] - add r2, r0, #0x0 - ldrh r5, [r4, #0x4] - ldr r3, [r1, #0x4] - sub r2, #0x14 - strh r5, [r3, r2] - add r2, r0, #0x0 - ldrh r5, [r4, #0x2] - ldr r3, [r1, #0x4] - sub r2, #0x16 - strh r5, [r3, r2] - ldrh r2, [r4, #0x0] - ldr r1, [r1, #0x4] - sub r0, #0x18 - strh r2, [r1, r0] - bl FUN_0202C5D8 - cmp r0, #0x0 - bne _0202C5D0 - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x0 - pop {r4-r6, pc} -_0202C5D0: - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 -_0202C5D4: .word 0x021C59D8 - - thumb_func_start FUN_0202C5D8 -FUN_0202C5D8: ; 0x0202C5D8 - push {r3-r7, lr} - bl WM_GetAllowedChannel - add r5, r0, #0x0 - mov r0, #0x2 - lsl r0, r0, #0xe - cmp r5, r0 - bne _0202C5F8 - mov r0, #0x3 - bl FUN_0202C1AC - mov r0, #0x1 - bl FUN_020336A0 - mov r0, #0x0 - pop {r3-r7, pc} -_0202C5F8: - cmp r5, #0x0 - bne _0202C60C - mov r0, #0x16 - bl FUN_0202C1AC - mov r0, #0x1 - bl FUN_020336A0 - mov r0, #0x0 - pop {r3-r7, pc} -_0202C60C: - ldr r1, _0202C684 ; =0x021C59D8 - ldr r0, _0202C688 ; =0x0000130C - ldr r3, [r1, #0x4] - ldrh r2, [r3, r0] - cmp r2, #0x0 - bne _0202C64C - add r7, r0, #0x0 - mov r3, #0x1 - add r2, r3, #0x0 - sub r7, #0x28 - sub r0, #0x28 -_0202C622: - ldr r4, [r1, #0x4] - ldr r6, _0202C68C ; =0x000012E4 - ldrh r6, [r4, r6] - add r6, r6, #0x1 - strh r6, [r4, r7] - ldr r4, [r1, #0x4] - ldrh r6, [r4, r0] - cmp r6, #0x10 - bls _0202C638 - ldr r6, _0202C68C ; =0x000012E4 - strh r3, [r4, r6] -_0202C638: - ldr r6, [r1, #0x4] - ldr r4, _0202C68C ; =0x000012E4 - ldrh r4, [r6, r4] - add r6, r2, #0x0 - sub r4, r4, #0x1 - lsl r6, r4 - add r4, r5, #0x0 - tst r4, r6 - bne _0202C650 - b _0202C622 -_0202C64C: - sub r0, #0x28 - strh r2, [r3, r0] -_0202C650: - bl WM_GetDispersionScanPeriod - ldr r2, _0202C684 ; =0x021C59D8 - ldr r1, _0202C690 ; =0x000012E6 - ldr r3, [r2, #0x4] - strh r0, [r3, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - sub r0, #0xc6 - add r4, r3, r0 - sub r0, r1, #0x6 - str r4, [r3, r0] - ldr r2, [r2, #0x4] - sub r1, r1, #0x6 - ldr r0, _0202C694 ; =FUN_0202C698 - add r1, r2, r1 - bl WM_StartScan - cmp r0, #0x2 - beq _0202C680 - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3-r7, pc} -_0202C680: - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 -_0202C684: .word 0x021C59D8 -_0202C688: .word 0x0000130C -_0202C68C: .word 0x000012E4 -_0202C690: .word 0x000012E6 -_0202C694: .word FUN_0202C698 - - thumb_func_start FUN_0202C698 -FUN_0202C698: ; 0x0202C698 - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x2] - cmp r0, #0x0 - beq _0202C6AE - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C6AE: - ldr r0, _0202C760 ; =0x021C59D8 - ldr r2, [r0, #0x4] - ldr r0, _0202C764 ; =0x00001310 - ldr r1, [r2, r0] - cmp r1, #0x2 - beq _0202C6D0 - mov r1, #0x0 - sub r0, r0, #0x2 - strh r1, [r2, r0] - bl FUN_0202C794 - cmp r0, #0x0 - bne _0202C75C - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C6D0: - ldrh r1, [r4, #0x8] - cmp r1, #0x3 - beq _0202C75C - cmp r1, #0x4 - beq _0202C74E - cmp r1, #0x5 - bne _0202C74E - sub r0, #0xf0 - add r0, r2, r0 - mov r1, #0xc0 - bl DC_InvalidateRange - ldr r0, _0202C760 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C768 ; =0x00001320 - ldr r2, [r1, r0] - cmp r2, #0x0 - beq _0202C704 - ldrh r0, [r4, #0x36] - cmp r0, #0x8 - blo _0202C704 - add r1, r4, #0x0 - add r1, #0x48 - ldrb r1, [r1, #0x4] - ldr r0, [r4, #0x3c] - blx r2 -_0202C704: - ldrh r0, [r4, #0x36] - cmp r0, #0x8 - blo _0202C74E - ldr r0, _0202C760 ; =0x021C59D8 - ldr r2, [r4, #0x3c] - ldr r0, [r0, #0x4] - ldr r1, [r0, #0x8] - cmp r2, r1 - bne _0202C74E - add r4, #0x43 - ldrb r2, [r4, #0x0] - mov r1, #0x3 - and r1, r2 - cmp r1, #0x1 - bne _0202C74E - mov r1, #0x13 - lsl r1, r1, #0x8 - ldr r2, [r0, r1] - cmp r2, #0x0 - beq _0202C732 - sub r1, #0xe0 - add r0, r0, r1 - blx r2 -_0202C732: - ldr r0, _0202C760 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C76C ; =0x0000130E - ldrh r0, [r1, r0] - cmp r0, #0x0 - beq _0202C74E - bl FUN_0202C794 - cmp r0, #0x0 - bne _0202C75C - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C74E: - bl FUN_0202C5D8 - cmp r0, #0x0 - bne _0202C75C - mov r0, #0x9 - bl FUN_0202C198 -_0202C75C: - pop {r4, pc} - nop -_0202C760: .word 0x021C59D8 -_0202C764: .word 0x00001310 -_0202C768: .word 0x00001320 -_0202C76C: .word 0x0000130E - - thumb_func_start FUN_0202C770 -FUN_0202C770: ; 0x0202C770 - push {r3, lr} - ldr r0, _0202C78C ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C790 ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x2 - beq _0202C782 - mov r0, #0x0 - pop {r3, pc} -_0202C782: - mov r0, #0x3 - bl FUN_0202C198 - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202C78C: .word 0x021C59D8 -_0202C790: .word 0x00001310 - - thumb_func_start FUN_0202C794 -FUN_0202C794: ; 0x0202C794 - push {r3, lr} - ldr r0, _0202C7AC ; =FUN_0202C7B0 - bl WM_EndScan - cmp r0, #0x2 - beq _0202C7A8 - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3, pc} -_0202C7A8: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202C7AC: .word FUN_0202C7B0 - - thumb_func_start FUN_0202C7B0 -FUN_0202C7B0: ; 0x0202C7B0 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202C7BE - bl FUN_0202C1AC - pop {r3, pc} -_0202C7BE: - mov r0, #0x1 - bl FUN_0202C198 - ldr r0, _0202C7E0 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C7E4 ; =0x0000130E - ldrh r0, [r1, r0] - cmp r0, #0x0 - beq _0202C7DE - bl FUN_0202C7E8 - cmp r0, #0x0 - bne _0202C7DE - mov r0, #0x9 - bl FUN_0202C198 -_0202C7DE: - pop {r3, pc} - .balign 4 -_0202C7E0: .word 0x021C59D8 -_0202C7E4: .word 0x0000130E - - thumb_func_start FUN_0202C7E8 -FUN_0202C7E8: ; 0x0202C7E8 - push {lr} - sub sp, #0x24 - ldr r0, _0202C844 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C848 ; =0x00001310 - ldr r0, [r1, r0] - sub r0, r0, #0x4 - cmp r0, #0x2 - bhi _0202C800 - add sp, #0x24 - mov r0, #0x1 - pop {pc} -_0202C800: - mov r0, #0x3 - bl FUN_0202C198 - add r1, sp, #0x4 - ldr r0, _0202C84C ; =0x02105D54 - add r1, #0x1 - mov r2, #0x3 - bl MI_CpuCopy8 - bl FUN_02033534 - add r1, sp, #0x4 - strb r0, [r1, #0x0] - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r1, _0202C844 ; =0x021C59D8 - ldr r0, _0202C850 ; =FUN_0202C858 - ldr r2, [r1, #0x4] - ldr r1, _0202C854 ; =0x00001220 - mov r3, #0x1 - add r1, r2, r1 - add r2, sp, #0x4 - bl WM_StartConnectEx - cmp r0, #0x2 - beq _0202C83E - bl FUN_0202C1AC - add sp, #0x24 - mov r0, #0x0 - pop {pc} -_0202C83E: - mov r0, #0x1 - add sp, #0x24 - pop {pc} - .balign 4 -_0202C844: .word 0x021C59D8 -_0202C848: .word 0x00001310 -_0202C84C: .word 0x02105D54 -_0202C850: .word FUN_0202C858 -_0202C854: .word 0x00001220 - - thumb_func_start FUN_0202C858 -FUN_0202C858: ; 0x0202C858 - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x2] - cmp r0, #0x0 - beq _0202C894 - bl FUN_0202C1AC - ldrh r0, [r4, #0x2] - cmp r0, #0xc - bne _0202C874 - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C874: - cmp r0, #0xb - bne _0202C880 - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C880: - cmp r0, #0x1 - bne _0202C88C - mov r0, #0x8 - bl FUN_0202C198 - pop {r4, pc} -_0202C88C: - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C894: - ldrh r0, [r4, #0x8] - cmp r0, #0x8 - beq _0202C8FA - cmp r0, #0x7 - bne _0202C8DA - ldr r0, _0202C8FC ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202C900 ; =0x00001335 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202C8B8 - mov r0, #0x14 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C8B8: - mov r0, #0x4 - bl FUN_0202C198 - bl FUN_0202C908 - cmp r0, #0x0 - bne _0202C8CE - mov r0, #0x3 - bl FUN_0202C198 - pop {r4, pc} -_0202C8CE: - ldr r0, _0202C8FC ; =0x021C59D8 - ldrh r2, [r4, #0xa] - ldr r1, [r0, #0x4] - ldr r0, _0202C904 ; =0x0000132C - strh r2, [r1, r0] - pop {r4, pc} -_0202C8DA: - cmp r0, #0x6 - beq _0202C8FA - cmp r0, #0x9 - bne _0202C8F0 - mov r0, #0x14 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r4, pc} -_0202C8F0: - cmp r0, #0x1a - beq _0202C8FA - mov r0, #0x9 - bl FUN_0202C198 -_0202C8FA: - pop {r4, pc} - .balign 4 -_0202C8FC: .word 0x021C59D8 -_0202C900: .word 0x00001335 -_0202C904: .word 0x0000132C - - thumb_func_start FUN_0202C908 -FUN_0202C908: ; 0x0202C908 - push {r4, lr} - sub sp, #0x8 - ldr r0, _0202C948 ; =0x021C59D8 - ldr r2, _0202C94C ; =0x00001304 - ldr r4, [r0, #0x4] - ldr r3, _0202C950 ; =0x00001020 - ldr r0, [r4, r2] - add r1, r4, r3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r2, r2, #0x4 - ldr r2, [r4, r2] - sub r3, #0xe0 - lsl r2, r2, #0x10 - ldr r0, _0202C954 ; =FUN_0202C958 - lsr r2, r2, #0x10 - add r3, r4, r3 - bl WM_StartMP - cmp r0, #0x2 - beq _0202C942 - bl FUN_0202C1AC - add sp, #0x8 - mov r0, #0x0 - pop {r4, pc} -_0202C942: - mov r0, #0x1 - add sp, #0x8 - pop {r4, pc} - .balign 4 -_0202C948: .word 0x021C59D8 -_0202C94C: .word 0x00001304 -_0202C950: .word 0x00001020 -_0202C954: .word FUN_0202C958 - - thumb_func_start FUN_0202C958 -FUN_0202C958: ; 0x0202C958 - push {r3, lr} - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _0202C97A - cmp r1, #0xf - beq _0202C9B0 - cmp r1, #0x9 - beq _0202C9B0 - cmp r1, #0xd - beq _0202C9B0 - add r0, r1, #0x0 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - pop {r3, pc} -_0202C97A: - ldrh r0, [r0, #0x4] - sub r0, #0xa - cmp r0, #0x3 - bhi _0202C9B0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202C98E: ; jump table (using 16-bit offset) - .short _0202C996 - _0202C98E - 2; case 0 - .short _0202C9B0 - _0202C98E - 2; case 1 - .short _0202C9B0 - _0202C98E - 2; case 2 - .short _0202C9B0 - _0202C98E - 2; case 3 -_0202C996: - ldr r0, _0202C9B4 ; =0x021C59D8 - ldr r2, [r0, #0x4] - ldr r0, _0202C9B8 ; =0x00001314 - ldr r1, [r2, r0] - cmp r1, #0x3 - bne _0202C9AA - sub r0, r0, #0x4 - ldr r0, [r2, r0] - cmp r0, #0x6 - beq _0202C9B0 -_0202C9AA: - mov r0, #0x4 - bl FUN_0202C198 -_0202C9B0: - pop {r3, pc} - nop -_0202C9B4: .word 0x021C59D8 -_0202C9B8: .word 0x00001314 - - thumb_func_start FUN_0202C9BC -FUN_0202C9BC: ; 0x0202C9BC - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202C9DC ; =FUN_0202C9E0 - bl WM_EndMP - cmp r0, #0x2 - beq _0202C9D6 - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3, pc} -_0202C9D6: - mov r0, #0x1 - pop {r3, pc} - nop -_0202C9DC: .word FUN_0202C9E0 - - thumb_func_start FUN_0202C9E0 -FUN_0202C9E0: ; 0x0202C9E0 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202C9F2 - bl FUN_0202C1AC - bl FUN_0202D100 - pop {r3, pc} -_0202C9F2: - bl FUN_0202CA04 - cmp r0, #0x0 - bne _0202CA00 - mov r0, #0x9 - bl FUN_0202C198 -_0202CA00: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202CA04 -FUN_0202CA04: ; 0x0202CA04 - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202CA28 ; =FUN_0202CA2C - mov r1, #0x0 - bl WM_Disconnect - cmp r0, #0x2 - beq _0202CA24 - bl FUN_0202C1AC - bl FUN_0202D0D8 - mov r0, #0x0 - pop {r3, pc} -_0202CA24: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202CA28: .word FUN_0202CA2C - - thumb_func_start FUN_0202CA2C -FUN_0202CA2C: ; 0x0202CA2C - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202CA3A - bl FUN_0202C1AC - pop {r3, pc} -_0202CA3A: - mov r0, #0x1 - bl FUN_0202C198 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202CA44 -FUN_0202CA44: ; 0x0202CA44 - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202CA64 ; =FUN_0202CA68 - bl WM_Reset - cmp r0, #0x2 - beq _0202CA5E - bl FUN_0202C1AC - mov r0, #0x0 - pop {r3, pc} -_0202CA5E: - mov r0, #0x1 - pop {r3, pc} - nop -_0202CA64: .word FUN_0202CA68 - - thumb_func_start FUN_0202CA68 -FUN_0202CA68: ; 0x0202CA68 - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x2] - cmp r0, #0x0 - beq _0202CA80 - mov r0, #0x9 - bl FUN_0202C198 - ldrh r0, [r4, #0x2] - bl FUN_0202C1AC - pop {r4, pc} -_0202CA80: - mov r0, #0x1 - bl FUN_0202C198 - pop {r4, pc} - - thumb_func_start FUN_0202CA88 -FUN_0202CA88: ; 0x0202CA88 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - ldr r0, _0202CAD0 ; =0x021C59D8 - add r6, r1, #0x0 - add r4, r2, #0x0 - ldr r1, [r0, #0x4] - mov r0, #0x3d - lsl r0, r0, #0x6 - ldr r2, _0202CAD4 ; =0x00001304 - add r0, r1, r0 - ldr r1, [r1, r2] - add r7, r3, #0x0 - bl DC_FlushRange - ldr r0, _0202CAD8 ; =0x0000FFFF - add r1, r7, #0x0 - str r0, [sp, #0x0] - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - ldr r0, _0202CADC ; =FUN_0202CAE0 - add r2, r5, #0x0 - add r3, r6, #0x0 - bl WM_SetMPDataToPortEx - cmp r0, #0x2 - bne _0202CACA - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0202CACA: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_0202CAD0: .word 0x021C59D8 -_0202CAD4: .word 0x00001304 -_0202CAD8: .word 0x0000FFFF -_0202CADC: .word FUN_0202CAE0 - - thumb_func_start FUN_0202CAE0 -FUN_0202CAE0: ; 0x0202CAE0 - push {r3, lr} - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _0202CAF4 - cmp r1, #0xf - beq _0202CAF4 - add r0, r1, #0x0 - bl FUN_0202C1AC - pop {r3, pc} -_0202CAF4: - ldr r2, [r0, #0x20] - cmp r2, #0x0 - beq _0202CB06 - cmp r1, #0x0 - bne _0202CB02 - mov r0, #0x1 - b _0202CB04 -_0202CB02: - mov r0, #0x0 -_0202CB04: - blx r2 -_0202CB06: - pop {r3, pc} - - thumb_func_start FUN_0202CB08 -FUN_0202CB08: ; 0x0202CB08 - push {r3, lr} - add r2, r0, #0x0 - ldrh r0, [r2, #0x2] - cmp r0, #0x0 - beq _0202CB18 - bl FUN_0202C1AC - pop {r3, pc} -_0202CB18: - ldr r0, _0202CB48 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202CB4C ; =0x00001318 - ldr r3, [r1, r0] - cmp r3, #0x0 - beq _0202CB44 - ldrh r0, [r2, #0x4] - cmp r0, #0x19 - beq _0202CB44 - cmp r0, #0x15 - bne _0202CB38 - ldrh r0, [r2, #0x12] - ldr r1, [r2, #0xc] - ldrh r2, [r2, #0x10] - blx r3 - pop {r3, pc} -_0202CB38: - cmp r0, #0x9 - bne _0202CB44 - ldrh r0, [r2, #0x12] - mov r1, #0x0 - add r2, r1, #0x0 - blx r3 -_0202CB44: - pop {r3, pc} - nop -_0202CB48: .word 0x021C59D8 -_0202CB4C: .word 0x00001318 - - thumb_func_start FUN_0202CB50 -FUN_0202CB50: ; 0x0202CB50 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202CB60 - mov r0, #0xa - bl FUN_0202C198 - pop {r3, pc} -_0202CB60: - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02090CC8 - mov r0, #0x0 - bl FUN_0202C198 - pop {r3, pc} - - thumb_func_start FUN_0202CB70 -FUN_0202CB70: ; 0x0202CB70 - ldr r1, _0202CB78 ; =0x021C59D8 - ldr r1, [r1, #0x4] - str r0, [r1, #0x8] - bx lr - .balign 4 -_0202CB78: .word 0x021C59D8 - - thumb_func_start FUN_0202CB7C -FUN_0202CB7C: ; 0x0202CB7C - ldr r2, _0202CB88 ; =0x021C59D8 - ldr r3, [r2, #0x4] - str r0, [r3, #0x0] - ldr r0, [r2, #0x4] - strh r1, [r0, #0x4] - bx lr - .balign 4 -_0202CB88: .word 0x021C59D8 - - thumb_func_start FUN_0202CB8C -FUN_0202CB8C: ; 0x0202CB8C - ldr r0, _0202CB98 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202CB9C ; =0x0000132E - ldrh r0, [r1, r0] - bx lr - nop -_0202CB98: .word 0x021C59D8 -_0202CB9C: .word 0x0000132E - - thumb_func_start FUN_0202CBA0 -FUN_0202CBA0: ; 0x0202CBA0 - push {r3-r4} - ldr r0, _0202CBCC ; =0x021C59D8 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202CBD0 ; =0x0000132E - add r3, r2, #0x0 - ldrh r4, [r1, r0] - mov r1, #0x1 -_0202CBB0: - add r0, r4, #0x0 - tst r0, r1 - beq _0202CBB8 - add r2, r2, #0x1 -_0202CBB8: - lsl r0, r4, #0xf - add r3, r3, #0x1 - lsr r4, r0, #0x10 - cmp r3, #0x10 - blt _0202CBB0 - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - pop {r3-r4} - bx lr - nop -_0202CBCC: .word 0x021C59D8 -_0202CBD0: .word 0x0000132E - - thumb_func_start FUN_0202CBD4 -FUN_0202CBD4: ; 0x0202CBD4 - ldr r0, _0202CBE0 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202CBE4 ; =0x00001310 - ldr r0, [r1, r0] - bx lr - nop -_0202CBE0: .word 0x021C59D8 -_0202CBE4: .word 0x00001310 - - thumb_func_start FUN_0202CBE8 -FUN_0202CBE8: ; 0x0202CBE8 - ldr r0, _0202CBF4 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202CBF8 ; =0x00001330 - ldr r0, [r1, r0] - bx lr - nop -_0202CBF4: .word 0x021C59D8 -_0202CBF8: .word 0x00001330 - - thumb_func_start FUN_0202CBFC -FUN_0202CBFC: ; 0x0202CBFC - push {r3-r5, lr} - sub sp, #0x8 - add r0, sp, #0x0 - bl OS_GetMacAddress - ldr r0, _0202CC84 ; =0x027FFC3C - ldr r3, [r0, #0x0] - add r0, sp, #0x0 - ldrh r2, [r0, #0x4] - ldrh r1, [r0, #0x2] - ldrh r0, [r0, #0x0] - add r0, r0, r3 - add r0, r1, r0 - add r1, r2, r0 - ldr r3, _0202CC88 ; =0x021C59D8 - ldr r2, _0202CC8C ; =0x00001338 - ldr r0, [r3, #0x4] - str r1, [r0, r2] - ldr r0, [r3, #0x4] - ldr r1, _0202CC90 ; =0x00010DCD - ldr r4, [r0, r2] - add r5, r4, #0x0 - mul r5, r1 - ldr r1, _0202CC94 ; =0x00003039 - mov r4, #0x0 - add r1, r5, r1 - str r1, [r0, r2] - ldr r1, [r3, #0x4] - add r0, r2, #0x4 - strh r4, [r1, r0] - ldr r1, [r3, #0x4] - mov r4, #0x65 - add r0, r2, #0x6 - strh r4, [r1, r0] - mov r0, #0x3 - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_0202CC98 - cmp r0, #0x18 - bne _0202CC68 - mov r0, #0x18 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_0202CC68: - cmp r0, #0x2 - beq _0202CC7C - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_0202CC7C: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - nop -_0202CC84: .word 0x027FFC3C -_0202CC88: .word 0x021C59D8 -_0202CC8C: .word 0x00001338 -_0202CC90: .word 0x00010DCD -_0202CC94: .word 0x00003039 - - thumb_func_start FUN_0202CC98 -FUN_0202CC98: ; 0x0202CC98 - push {r4, lr} - add r4, r0, #0x0 - bl WM_GetAllowedChannel - mov r1, #0x2 - lsl r1, r1, #0xe - cmp r0, r1 - bne _0202CCBE - mov r0, #0x3 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - mov r0, #0x3 - pop {r4, pc} -_0202CCBE: - cmp r0, #0x0 - bne _0202CCD8 - mov r0, #0x16 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - mov r0, #0x18 - pop {r4, pc} -_0202CCD8: - mov r2, #0x1 - sub r1, r4, #0x1 - lsl r2, r1 - add r1, r2, #0x0 - tst r1, r0 - bne _0202CD00 - mov r2, #0x1 -_0202CCE6: - add r1, r4, #0x1 - lsl r1, r1, #0x10 - lsr r4, r1, #0x10 - cmp r4, #0x10 - bls _0202CCF4 - mov r0, #0x18 - pop {r4, pc} -_0202CCF4: - sub r1, r4, #0x1 - add r3, r2, #0x0 - lsl r3, r1 - add r1, r3, #0x0 - tst r1, r0 - beq _0202CCE6 -_0202CD00: - ldr r0, _0202CD10 ; =FUN_0202CD14 - add r1, r4, #0x0 - bl FUN_0202CD90 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4, pc} - nop -_0202CD10: .word FUN_0202CD14 - - thumb_func_start FUN_0202CD14 -FUN_0202CD14: ; 0x0202CD14 - push {r3-r5, lr} - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _0202CD30 - add r0, r1, #0x0 - bl FUN_0202C1AC - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - pop {r3-r5, pc} -_0202CD30: - ldr r2, _0202CD88 ; =0x021C59D8 - ldrh r1, [r0, #0x8] - ldrh r5, [r0, #0xa] - ldr r0, [r2, #0x4] - ldr r3, _0202CD8C ; =0x0000133E - ldrh r4, [r0, r3] - cmp r4, r5 - bls _0202CD50 - strh r5, [r0, r3] - mov r4, #0x1 - sub r0, r1, #0x1 - lsl r4, r0 - ldr r2, [r2, #0x4] - add r0, r3, #0x2 - strh r4, [r2, r0] - b _0202CD64 -_0202CD50: - cmp r4, r5 - bne _0202CD64 - add r2, r3, #0x2 - ldrh r5, [r0, r2] - mov r4, #0x1 - sub r2, r1, #0x1 - lsl r4, r2 - orr r4, r5 - add r2, r3, #0x2 - strh r4, [r0, r2] -_0202CD64: - add r0, r1, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202CC98 - cmp r0, #0x18 - bne _0202CD7A - mov r0, #0x7 - bl FUN_0202C198 - pop {r3-r5, pc} -_0202CD7A: - cmp r0, #0x2 - beq _0202CD84 - mov r0, #0x9 - bl FUN_0202C198 -_0202CD84: - pop {r3-r5, pc} - nop -_0202CD88: .word 0x021C59D8 -_0202CD8C: .word 0x0000133E - - thumb_func_start FUN_0202CD90 -FUN_0202CD90: ; 0x0202CD90 - push {r3, lr} - add r3, r1, #0x0 - mov r1, #0x1e - str r1, [sp, #0x0] - mov r1, #0x3 - mov r2, #0x11 - bl WM_MeasureChannel - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202CDA4 -FUN_0202CDA4: ; 0x0202CDA4 - push {r3, lr} - mov r0, #0x1 - bl FUN_0202C198 - ldr r0, _0202CDC8 ; =0x021C59D8 - ldr r1, [r0, #0x4] - mov r0, #0x4d - lsl r0, r0, #0x6 - ldrh r0, [r1, r0] - bl FUN_0202CDD0 - ldr r2, _0202CDC8 ; =0x021C59D8 - ldr r1, _0202CDCC ; =0x0000133C - ldr r3, [r2, #0x4] - strh r0, [r3, r1] - ldr r0, [r2, #0x4] - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_0202CDC8: .word 0x021C59D8 -_0202CDCC: .word 0x0000133C - - thumb_func_start FUN_0202CDD0 -FUN_0202CDD0: ; 0x0202CDD0 - push {r4-r7} - add r4, r0, #0x0 - mov r0, #0x0 - add r3, r0, #0x0 - add r2, r0, #0x0 - mov r1, #0x1 -_0202CDDC: - add r5, r1, #0x0 - lsl r5, r2 - tst r5, r4 - beq _0202CDF0 - add r0, r2, #0x1 - add r3, r3, #0x1 - lsl r0, r0, #0x10 - lsl r3, r3, #0x10 - asr r0, r0, #0x10 - lsr r3, r3, #0x10 -_0202CDF0: - add r2, r2, #0x1 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - cmp r2, #0x10 - blt _0202CDDC - cmp r3, #0x1 - bls _0202CE4E - ldr r5, _0202CE54 ; =0x021C59D8 - ldr r2, _0202CE58 ; =0x00001338 - ldr r0, [r5, #0x4] - ldr r1, _0202CE5C ; =0x00010DCD - ldr r6, [r0, r2] - add r7, r6, #0x0 - mul r7, r1 - ldr r1, _0202CE60 ; =0x00003039 - add r1, r7, r1 - str r1, [r0, r2] - ldr r0, [r5, #0x4] - mov r1, #0x1 - ldr r0, [r0, r2] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mul r0, r3 - lsl r0, r0, #0x8 - lsr r2, r0, #0x10 - mov r3, #0x0 -_0202CE24: - add r0, r4, #0x0 - tst r0, r1 - beq _0202CE3E - cmp r2, #0x0 - bne _0202CE38 - add r0, r3, #0x1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4-r7} - bx lr -_0202CE38: - sub r0, r2, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 -_0202CE3E: - lsl r0, r4, #0xf - lsr r4, r0, #0x10 - add r0, r3, #0x1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 - cmp r3, #0x10 - blt _0202CE24 - mov r0, #0x0 -_0202CE4E: - pop {r4-r7} - bx lr - nop -_0202CE54: .word 0x021C59D8 -_0202CE58: .word 0x00001338 -_0202CE5C: .word 0x00010DCD -_0202CE60: .word 0x00003039 - - thumb_func_start FUN_0202CE64 -FUN_0202CE64: ; 0x0202CE64 - push {r3-r5, lr} - lsl r1, r0, #0x1b - lsr r2, r1, #0x1b - beq _0202CE72 - mov r1, #0x20 - sub r1, r1, r2 - add r0, r0, r1 -_0202CE72: - ldr r2, _0202CEE4 ; =0x021C59D8 - ldr r1, _0202CEE8 ; =0x00001308 - str r0, [r2, #0x4] - mov r3, #0x0 - str r3, [r0, r1] - ldr r4, [r2, #0x4] - sub r0, r1, #0x4 - str r3, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x10 - str r3, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x24 - strh r3, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - mov r5, #0x1 - add r0, #0x26 - strh r5, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x28 - str r3, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x8 - str r3, [r4, r0] - ldr r0, [r2, #0x4] - mov r5, #0x8 - str r3, [r0, #0x0] - ldr r0, [r2, #0x4] - strh r3, [r0, #0x4] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x14 - str r3, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x2c - strb r5, [r4, r0] - add r0, r1, #0x0 - ldr r4, [r2, #0x4] - add r0, #0x2d - strb r3, [r4, r0] - ldr r0, [r2, #0x4] - add r1, #0x3a - strb r3, [r0, r1] - bl FUN_0202CF0C - cmp r0, #0x0 - bne _0202CEE0 - mov r0, #0x0 - pop {r3-r5, pc} -_0202CEE0: - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 -_0202CEE4: .word 0x021C59D8 -_0202CEE8: .word 0x00001308 - - thumb_func_start FUN_0202CEEC -FUN_0202CEEC: ; 0x0202CEEC - mov r0, #0x4e - lsl r0, r0, #0x6 - bx lr - .balign 4 - - thumb_func_start FUN_0202CEF4 -FUN_0202CEF4: ; 0x0202CEF4 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x8 - bne _0202CF08 - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x19 - bl FUN_0202C1AC -_0202CF08: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202CF0C -FUN_0202CF0C: ; 0x0202CF0C - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202CF38 ; =0x021C59D8 - ldr r1, _0202CF3C ; =FUN_0202CF40 - ldr r0, [r0, #0x4] - mov r2, #0x2 - add r0, #0x40 - bl WM_Initialize - cmp r0, #0x2 - beq _0202CF34 - bl FUN_0202C1AC - mov r0, #0xa - bl FUN_0202C198 - mov r0, #0x0 - pop {r3, pc} -_0202CF34: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202CF38: .word 0x021C59D8 -_0202CF3C: .word FUN_0202CF40 - - thumb_func_start FUN_0202CF40 -FUN_0202CF40: ; 0x0202CF40 - push {r3, lr} - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - beq _0202CF5A - bl FUN_0202C1AC - mov r0, #0xa - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - pop {r3, pc} -_0202CF5A: - ldr r0, _0202CF80 ; =FUN_0202CEF4 - bl WM_SetIndCallback - cmp r0, #0x0 - beq _0202CF76 - bl FUN_0202C1AC - mov r0, #0xa - bl FUN_0202C198 - mov r0, #0x1 - bl FUN_020336A0 - pop {r3, pc} -_0202CF76: - mov r0, #0x1 - bl FUN_0202C198 - pop {r3, pc} - nop -_0202CF80: .word FUN_0202CEF4 - - thumb_func_start FUN_0202CF84 -FUN_0202CF84: ; 0x0202CF84 - push {r3-r7, lr} - add r6, r1, #0x0 - ldr r1, _0202D02C ; =0x021C59D8 - add r5, r0, #0x0 - add r7, r2, #0x0 - mov r0, #0x7 - ldr r2, [r1, #0x4] - ldr r1, _0202D030 ; =0x00001308 - lsl r0, r0, #0x6 - str r0, [r2, r1] - ldr r0, _0202D02C ; =0x021C59D8 - add r4, r3, #0x0 - ldr r2, [r0, #0x4] - sub r0, r1, #0x4 - mov r3, #0xe0 - str r3, [r2, r0] - ldr r0, _0202D02C ; =0x021C59D8 - add r1, #0xc - ldr r0, [r0, #0x4] - str r5, [r0, r1] - mov r0, #0x3 - bl FUN_0202C198 - ldr r1, _0202D02C ; =0x021C59D8 - cmp r5, #0x0 - ldr r0, [r1, #0x4] - strh r6, [r0, #0xc] - ldr r0, [r1, #0x4] - strh r7, [r0, #0x32] - add r0, sp, #0x8 - ldrh r2, [r0, #0x10] - ldr r0, [r1, #0x4] - strh r2, [r0, #0x18] - beq _0202CFCE - cmp r5, #0x4 - beq _0202CFE8 - b _0202CFF4 -_0202CFCE: - ldr r0, [r1, #0x4] - mov r2, #0xc0 - strh r2, [r0, #0x34] - cmp r4, #0x5 - blo _0202CFE0 - ldr r0, [r1, #0x4] - mov r2, #0xc - strh r2, [r0, #0x36] - b _0202CFF4 -_0202CFE0: - ldr r0, [r1, #0x4] - mov r2, #0x26 - strh r2, [r0, #0x36] - b _0202CFF4 -_0202CFE8: - ldr r0, [r1, #0x4] - mov r2, #0x64 - strh r2, [r0, #0x34] - ldr r0, [r1, #0x4] - mov r2, #0xc - strh r2, [r0, #0x36] -_0202CFF4: - ldr r1, _0202D02C ; =0x021C59D8 - ldr r0, [r1, #0x4] - strh r4, [r0, #0x10] - ldr r2, [r1, #0x4] - mov r0, #0x0 - strh r0, [r2, #0x16] - ldr r2, [r1, #0x4] - cmp r5, #0x2 - strh r0, [r2, #0x12] - ldr r2, [sp, #0x1c] - ldr r1, [r1, #0x4] - strh r2, [r1, #0xe] - bne _0202D010 - mov r0, #0x1 -_0202D010: - ldr r1, _0202D02C ; =0x021C59D8 - cmp r5, #0x0 - ldr r1, [r1, #0x4] - strh r0, [r1, #0x14] - beq _0202D022 - cmp r5, #0x2 - beq _0202D022 - cmp r5, #0x4 - bne _0202D028 -_0202D022: - bl FUN_0202C1C8 - pop {r3-r7, pc} -_0202D028: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_0202D02C: .word 0x021C59D8 -_0202D030: .word 0x00001308 - - thumb_func_start FUN_0202D034 -FUN_0202D034: ; 0x0202D034 - push {r4-r6, lr} - ldr r2, _0202D094 ; =0x021C59D8 - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r3, #0x2 - ldr r0, [r2, #0x4] - ldr r1, _0202D098 ; =0x00001308 - lsl r3, r3, #0x8 - str r3, [r0, r1] - sub r0, r1, #0x4 - ldr r3, [r2, #0x4] - mov r6, #0x40 - str r6, [r3, r0] - ldr r0, [r2, #0x4] - add r1, #0xc - str r5, [r0, r1] - mov r0, #0x3 - bl FUN_0202C198 - cmp r5, #0x1 - beq _0202D066 - cmp r5, #0x3 - beq _0202D066 - cmp r5, #0x5 - bne _0202D08E -_0202D066: - ldr r1, _0202D094 ; =0x021C59D8 - add r0, r4, #0x0 - ldr r2, [r1, #0x4] - ldr r1, _0202D09C ; =0x00001220 - add r1, r2, r1 - mov r2, #0xc0 - bl MI_CpuCopy8 - ldr r0, _0202D094 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D09C ; =0x00001220 - add r0, r1, r0 - mov r1, #0xc0 - bl DC_FlushRange - bl DC_WaitWriteBufferEmpty - bl FUN_0202C7E8 - pop {r4-r6, pc} -_0202D08E: - mov r0, #0x0 - pop {r4-r6, pc} - nop -_0202D094: .word 0x021C59D8 -_0202D098: .word 0x00001308 -_0202D09C: .word 0x00001220 - - thumb_func_start FUN_0202D0A0 -FUN_0202D0A0: ; 0x0202D0A0 - push {r3, lr} - ldr r2, _0202D0C4 ; =0x021C59D8 - ldr r3, [r2, #0x4] - ldr r2, _0202D0C8 ; =0x00001318 - str r0, [r3, r2] - lsl r0, r1, #0x10 - ldr r1, _0202D0CC ; =FUN_0202CB08 - lsr r0, r0, #0x10 - mov r2, #0x0 - bl WM_SetPortCallback - cmp r0, #0x0 - beq _0202D0C2 - mov r0, #0x9 - bl FUN_0202C198 -_0202D0C0: - b _0202D0C0 -_0202D0C2: - pop {r3, pc} - .balign 4 -_0202D0C4: .word 0x021C59D8 -_0202D0C8: .word 0x00001318 -_0202D0CC: .word FUN_0202CB08 - - thumb_func_start FUN_0202D0D0 -FUN_0202D0D0: ; 0x0202D0D0 - push {r3, lr} - bl FUN_0202CA88 - pop {r3, pc} - - thumb_func_start FUN_0202D0D8 -FUN_0202D0D8: ; 0x0202D0D8 - push {r3, lr} - ldr r0, _0202D0F8 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D0FC ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x2 - bne _0202D0E8 -_0202D0E6: - b _0202D0E6 -_0202D0E8: - bl FUN_0202CA44 - cmp r0, #0x0 - bne _0202D0F6 - mov r0, #0xa - bl FUN_0202C198 -_0202D0F6: - pop {r3, pc} - .balign 4 -_0202D0F8: .word 0x021C59D8 -_0202D0FC: .word 0x00001310 - - thumb_func_start FUN_0202D100 -FUN_0202D100: ; 0x0202D100 - push {r3, lr} - ldr r0, _0202D16C ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D170 ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x1 - beq _0202D16A - cmp r0, #0x6 - beq _0202D126 - cmp r0, #0x5 - beq _0202D126 - cmp r0, #0x4 - beq _0202D126 - mov r0, #0x3 - bl FUN_0202C198 - bl FUN_0202D0D8 - pop {r3, pc} -_0202D126: - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202D16C ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D174 ; =0x00001314 - ldr r0, [r1, r0] - cmp r0, #0x5 - bhi _0202D16A - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202D144: ; jump table (using 16-bit offset) - .short _0202D15E - _0202D144 - 2; case 0 - .short _0202D150 - _0202D144 - 2; case 1 - .short _0202D16A - _0202D144 - 2; case 2 - .short _0202D16A - _0202D144 - 2; case 3 - .short _0202D15E - _0202D144 - 2; case 4 - .short _0202D150 - _0202D144 - 2; case 5 -_0202D150: - bl FUN_0202C9BC - cmp r0, #0x0 - bne _0202D16A - bl FUN_0202D0D8 - pop {r3, pc} -_0202D15E: - bl FUN_0202C460 - cmp r0, #0x0 - bne _0202D16A - bl FUN_0202D0D8 -_0202D16A: - pop {r3, pc} - .balign 4 -_0202D16C: .word 0x021C59D8 -_0202D170: .word 0x00001310 -_0202D174: .word 0x00001314 - - thumb_func_start FUN_0202D178 -FUN_0202D178: ; 0x0202D178 - push {r3, lr} - mov r0, #0x3 - bl FUN_0202C198 - ldr r0, _0202D198 ; =FUN_0202CB50 - bl WM_End - cmp r0, #0x2 - beq _0202D194 - mov r0, #0x9 - bl FUN_0202C198 - mov r0, #0x0 - pop {r3, pc} -_0202D194: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202D198: .word FUN_0202CB50 - - thumb_func_start FUN_0202D19C -FUN_0202D19C: ; 0x0202D19C - ldr r0, _0202D1A8 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D1AC ; =0x0000132C - ldrh r0, [r1, r0] - bx lr - nop -_0202D1A8: .word 0x021C59D8 -_0202D1AC: .word 0x0000132C - - thumb_func_start FUN_0202D1B0 -FUN_0202D1B0: ; 0x0202D1B0 - ldr r1, _0202D1C0 ; =0x021C59D8 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _0202D1BC - ldr r1, _0202D1C4 ; =0x00001334 - strb r0, [r2, r1] -_0202D1BC: - bx lr - nop -_0202D1C0: .word 0x021C59D8 -_0202D1C4: .word 0x00001334 - - thumb_func_start FUN_0202D1C8 -FUN_0202D1C8: ; 0x0202D1C8 - ldr r0, _0202D1DC ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D1E0 ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x1 - bne _0202D1D8 - mov r0, #0x1 - bx lr -_0202D1D8: - mov r0, #0x0 - bx lr - .balign 4 -_0202D1DC: .word 0x021C59D8 -_0202D1E0: .word 0x00001310 - - thumb_func_start FUN_0202D1E4 -FUN_0202D1E4: ; 0x0202D1E4 - ldr r0, _0202D1F8 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D1FC ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x3 - bne _0202D1F4 - mov r0, #0x1 - bx lr -_0202D1F4: - mov r0, #0x0 - bx lr - .balign 4 -_0202D1F8: .word 0x021C59D8 -_0202D1FC: .word 0x00001310 - - thumb_func_start FUN_0202D200 -FUN_0202D200: ; 0x0202D200 - ldr r0, _0202D214 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D218 ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x9 - bne _0202D210 - mov r0, #0x1 - bx lr -_0202D210: - mov r0, #0x0 - bx lr - .balign 4 -_0202D214: .word 0x021C59D8 -_0202D218: .word 0x00001310 - - thumb_func_start FUN_0202D21C -FUN_0202D21C: ; 0x0202D21C - ldr r0, _0202D238 ; =0x021C59D8 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0202D234 - ldr r0, _0202D23C ; =0x00001310 - ldr r0, [r1, r0] - cmp r0, #0x2 - bne _0202D230 - mov r0, #0x1 - bx lr -_0202D230: - mov r0, #0x0 - bx lr -_0202D234: - mov r0, #0x0 - bx lr - .balign 4 -_0202D238: .word 0x021C59D8 -_0202D23C: .word 0x00001310 - - thumb_func_start FUN_0202D240 -FUN_0202D240: ; 0x0202D240 - push {r4-r6, lr} - sub sp, #0x8 - add r6, r0, #0x0 - ldr r0, _0202D274 ; =0x021C59D8 - add r5, r1, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202D278 ; =0x00001310 - add r4, r2, #0x0 - ldr r0, [r1, r0] - cmp r0, #0x4 - bne _0202D26E - lsl r0, r3, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - lsl r2, r5, #0x10 - str r0, [sp, #0x4] - mov r0, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x10 - add r3, r4, #0x0 - bl WM_SetGameInfo -_0202D26E: - add sp, #0x8 - pop {r4-r6, pc} - nop -_0202D274: .word 0x021C59D8 -_0202D278: .word 0x00001310 - - thumb_func_start FUN_0202D27C -FUN_0202D27C: ; 0x0202D27C - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - bne _0202D28C - ldr r0, _0202D290 ; =0x021C59D8 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _0202D294 ; =0x00001344 - strb r2, [r1, r0] -_0202D28C: - bx lr - nop -_0202D290: .word 0x021C59D8 -_0202D294: .word 0x00001344 - - thumb_func_start FUN_0202D298 -FUN_0202D298: ; 0x0202D298 - push {r4, lr} - ldr r2, _0202D2C4 ; =0x021C59D8 - add r1, r0, #0x0 - ldr r3, [r2, #0x4] - ldr r0, _0202D2C8 ; =0x00001344 - mov r4, #0x0 - strb r4, [r3, r0] - ldr r2, [r2, #0x4] - sub r0, #0x34 - ldr r0, [r2, r0] - cmp r0, #0x4 - bne _0202D2BE - ldr r0, _0202D2CC ; =FUN_0202D27C - bl WM_SetEntry - cmp r0, #0x2 - bne _0202D2BE - mov r0, #0x1 - pop {r4, pc} -_0202D2BE: - mov r0, #0x0 - pop {r4, pc} - nop -_0202D2C4: .word 0x021C59D8 -_0202D2C8: .word 0x00001344 -_0202D2CC: .word FUN_0202D27C - - thumb_func_start FUN_0202D2D0 -FUN_0202D2D0: ; 0x0202D2D0 - ldr r0, _0202D2EC ; =0x021C59D8 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0202D2E8 - ldr r0, _0202D2F0 ; =0x00001345 - ldrb r0, [r1, r0] - cmp r0, #0x6 - blo _0202D2E4 - mov r0, #0x1 - bx lr -_0202D2E4: - mov r0, #0x0 - bx lr -_0202D2E8: - mov r0, #0x0 - bx lr - .balign 4 -_0202D2EC: .word 0x021C59D8 -_0202D2F0: .word 0x00001345 - - thumb_func_start FUN_0202D2F4 -FUN_0202D2F4: ; 0x0202D2F4 - ldr r0, _0202D300 ; =0x021C59D8 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202D304 ; =0x00001345 - strb r2, [r1, r0] - bx lr - .balign 4 -_0202D300: .word 0x021C59D8 -_0202D304: .word 0x00001345 - - thumb_func_start FUN_0202D308 -FUN_0202D308: ; 0x0202D308 - ldr r1, _0202D314 ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D318 ; =0x00001320 - str r0, [r2, r1] - bx lr - nop -_0202D314: .word 0x021C59D8 -_0202D318: .word 0x00001320 - - thumb_func_start FUN_0202D31C -FUN_0202D31C: ; 0x0202D31C - ldr r1, _0202D328 ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D32C ; =0x00001324 - str r0, [r2, r1] - bx lr - nop -_0202D328: .word 0x021C59D8 -_0202D32C: .word 0x00001324 - - thumb_func_start FUN_0202D330 -FUN_0202D330: ; 0x0202D330 - ldr r1, _0202D33C ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D340 ; =0x00001328 - str r0, [r2, r1] - bx lr - nop -_0202D33C: .word 0x021C59D8 -_0202D340: .word 0x00001328 - - thumb_func_start FUN_0202D344 -FUN_0202D344: ; 0x0202D344 - ldr r1, _0202D350 ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D354 ; =0x00001342 - strb r0, [r2, r1] - bx lr - nop -_0202D350: .word 0x021C59D8 -_0202D354: .word 0x00001342 - - thumb_func_start FUN_0202D358 -FUN_0202D358: ; 0x0202D358 - ldr r0, _0202D364 ; =0x021C59D8 - ldr r1, [r0, #0x4] - ldr r0, _0202D368 ; =0x00001342 - ldrb r0, [r1, r0] - bx lr - nop -_0202D364: .word 0x021C59D8 -_0202D368: .word 0x00001342 - - thumb_func_start FUN_0202D36C -FUN_0202D36C: ; 0x0202D36C - ldr r1, _0202D378 ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D37C ; =0x00001343 - strb r0, [r2, r1] - bx lr - nop -_0202D378: .word 0x021C59D8 -_0202D37C: .word 0x00001343 - - thumb_func_start FUN_0202D380 -FUN_0202D380: ; 0x0202D380 - ldr r1, _0202D38C ; =0x021C59D8 - ldr r2, [r1, #0x4] - ldr r1, _0202D390 ; =0x00001335 - strb r0, [r2, r1] - bx lr - nop -_0202D38C: .word 0x021C59D8 -_0202D390: .word 0x00001335 - - thumb_func_start FUN_0202D394 -FUN_0202D394: ; 0x0202D394 - str r1, [r0, #0x0] - strh r2, [r0, #0xa] - mov r1, #0x0 - strh r1, [r0, #0x4] - strh r1, [r0, #0x6] - strh r1, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_0202D3A4 -FUN_0202D3A4: ; 0x0202D3A4 - push {r3-r7, lr} - str r2, [sp, #0x0] - add r5, r0, #0x0 - add r7, r1, #0x0 - bl FUN_0202D498 - ldr r1, [sp, #0x0] - cmp r0, r1 - bgt _0202D3BC - bl FUN_02031454 - pop {r3-r7, pc} -_0202D3BC: - mov r0, #0x8 - ldrsh r4, [r5, r0] - ldrsh r1, [r5, r0] - ldr r0, [sp, #0x0] - mov r6, #0x0 - add r0, r1, r0 - cmp r4, r0 - bge _0202D3F2 -_0202D3CC: - cmp r7, #0x0 - bne _0202D3D4 - bl ErrorHandling -_0202D3D4: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202D4A8 - ldrb r2, [r7, r6] - ldr r1, [r5, #0x0] - add r4, r4, #0x1 - strb r2, [r1, r0] - mov r0, #0x8 - ldrsh r1, [r5, r0] - ldr r0, [sp, #0x0] - add r6, r6, #0x1 - add r0, r1, r0 - cmp r4, r0 - blt _0202D3CC -_0202D3F2: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202D4A8 - strh r0, [r5, #0x8] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202D400 -FUN_0202D400: ; 0x0202D400 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0202D42C - mov r1, #0x4 - add r4, r0, #0x0 - ldrsh r1, [r5, r1] - add r0, r5, #0x0 - add r1, r1, r4 - bl FUN_0202D4A8 - strh r0, [r5, #0x4] - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0202D41C -FUN_0202D41C: ; 0x0202D41C - push {r3, lr} - add r1, sp, #0x0 - mov r2, #0x1 - bl FUN_0202D400 - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0202D42C -FUN_0202D42C: ; 0x0202D42C - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x4 - ldrsh r4, [r5, r0] - add r7, r2, #0x0 - str r1, [sp, #0x0] - add r0, r4, r7 - mov r6, #0x0 - cmp r4, r0 - bge _0202D472 -_0202D440: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202D4A8 - mov r1, #0x6 - ldrsh r1, [r5, r1] - cmp r1, r0 - bne _0202D454 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0202D454: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202D4A8 - ldr r1, [r5, #0x0] - add r4, r4, #0x1 - ldrb r1, [r1, r0] - ldr r0, [sp, #0x0] - strb r1, [r0, r6] - mov r0, #0x4 - ldrsh r0, [r5, r0] - add r6, r6, #0x1 - add r0, r0, r7 - cmp r4, r0 - blt _0202D440 -_0202D472: - add r0, r6, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202D478 -FUN_0202D478: ; 0x0202D478 - mov r1, #0x4 - mov r3, #0x6 - ldrsh r1, [r0, r1] - ldrsh r2, [r0, r3] - cmp r1, r2 - ble _0202D490 - mov r2, #0xa - ldrsh r2, [r0, r2] - ldrsh r0, [r0, r3] - add r0, r2, r0 - sub r0, r0, r1 - bx lr -_0202D490: - ldrsh r0, [r0, r3] - sub r0, r0, r1 - bx lr - .balign 4 - - thumb_func_start FUN_0202D498 -FUN_0202D498: ; 0x0202D498 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0202D478 - mov r1, #0xa - ldrsh r1, [r4, r1] - sub r0, r1, r0 - pop {r4, pc} - - thumb_func_start FUN_0202D4A8 -FUN_0202D4A8: ; 0x0202D4A8 - push {r3, lr} - add r2, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0xa - ldrsh r1, [r2, r1] - bl _s32_div_f - add r0, r1, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202D4BC -FUN_0202D4BC: ; 0x0202D4BC - mov r1, #0x8 - ldrsh r1, [r0, r1] - strh r1, [r0, #0x6] - bx lr - - thumb_func_start FUN_0202D4C4 -FUN_0202D4C4: ; 0x0202D4C4 - ldr r3, [r0, #0x1c] - mov r2, #0x0 - ldr r1, [r0, #0x18] - cmp r3, #0x0 - ble _0202D4E0 -_0202D4CE: - ldrb r0, [r1, #0xe] - cmp r0, #0x0 - bne _0202D4D8 - add r0, r1, #0x0 - bx lr -_0202D4D8: - add r2, r2, #0x1 - add r1, #0x10 - cmp r2, r3 - blt _0202D4CE -_0202D4E0: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202D4E4 -FUN_0202D4E4: ; 0x0202D4E4 - ldr r3, [r0, #0x1c] - mov r2, #0x0 - ldr r1, [r0, #0x18] - cmp r3, #0x0 - ble _0202D500 -_0202D4EE: - ldrb r0, [r1, #0xe] - cmp r0, #0x0 - beq _0202D4F8 - mov r0, #0x0 - bx lr -_0202D4F8: - add r2, r2, #0x1 - add r1, #0x10 - cmp r2, r3 - blt _0202D4EE -_0202D500: - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0202D504 -FUN_0202D504: ; 0x0202D504 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202D522 - ldr r1, [r1, #0x8] - cmp r1, #0x0 - beq _0202D518 - str r1, [r0, #0x0] - mov r0, #0x0 - str r0, [r1, #0x4] - b _0202D51E -_0202D518: - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] -_0202D51E: - mov r0, #0x1 - bx lr -_0202D522: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202D528 -FUN_0202D528: ; 0x0202D528 - ldr r2, [r0, #0x0] - strb r1, [r2, #0x0] - ldr r1, [r0, #0x0] - add r1, r1, #0x1 - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - sub r1, r1, #0x1 - str r1, [r0, #0x4] - bne _0202D53E - mov r0, #0x1 - bx lr -_0202D53E: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_0202D544 -FUN_0202D544: ; 0x0202D544 - push {r4-r6, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0xe] - add r4, r1, #0x0 - bl FUN_0202D9A0 - add r6, r0, #0x0 - ldr r0, _0202D5B8 ; =0x0000FFFF - cmp r6, r0 - ldr r0, [r4, #0x4] - bne _0202D56A - cmp r0, #0x3 - bge _0202D57A - ldrb r1, [r5, #0xf] - mov r0, #0x1 - bic r1, r0 - strb r1, [r5, #0xf] - mov r0, #0x1 - pop {r4-r6, pc} -_0202D56A: - cmp r0, #0x1 - bge _0202D57A - ldrb r1, [r5, #0xf] - mov r0, #0x1 - bic r1, r0 - strb r1, [r5, #0xf] - mov r0, #0x1 - pop {r4-r6, pc} -_0202D57A: - ldrb r1, [r5, #0xe] - add r0, r4, #0x0 - bl FUN_0202D528 - ldr r0, _0202D5B8 ; =0x0000FFFF - cmp r6, r0 - bne _0202D5A4 - ldrh r1, [r5, #0xc] - add r0, r4, #0x0 - asr r1, r1, #0x8 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_0202D528 - ldrh r1, [r5, #0xc] - add r0, r4, #0x0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_0202D528 - b _0202D5A6 -_0202D5A4: - strh r6, [r5, #0xc] -_0202D5A6: - ldrb r1, [r5, #0xf] - mov r0, #0x1 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strb r0, [r5, #0xf] - mov r0, #0x0 - pop {r4-r6, pc} - nop -_0202D5B8: .word 0x0000FFFF - - thumb_func_start FUN_0202D5BC -FUN_0202D5BC: ; 0x0202D5BC - push {r3-r7, lr} - add r5, r0, #0x0 - ldrb r0, [r5, #0xe] - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0202D9A0 - ldr r1, _0202D680 ; =0x0000FFFF - cmp r0, r1 - bne _0202D5D6 - mov r2, #0x3 - b _0202D5D8 -_0202D5D6: - mov r2, #0x1 -_0202D5D8: - ldrh r0, [r5, #0xc] - ldr r1, [r4, #0x4] - add r0, r0, r2 - cmp r1, r0 - bge _0202D5EA - cmp r7, #0x0 - bne _0202D5EA - mov r0, #0x0 - pop {r3-r7, pc} -_0202D5EA: - ldrb r0, [r5, #0xf] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - cmp r0, #0x1 - beq _0202D604 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0202D544 - cmp r0, #0x0 - beq _0202D604 - mov r0, #0x0 - pop {r3-r7, pc} -_0202D604: - ldrh r3, [r5, #0xc] - ldr r2, [r4, #0x4] - cmp r2, r3 - ldrb r0, [r5, #0xf] - bge _0202D64E - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - beq _0202D61E - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - bl FUN_0202D400 - b _0202D634 -_0202D61E: - mov r3, #0x0 - cmp r2, #0x0 - ble _0202D634 -_0202D624: - ldr r0, [r5, #0x0] - ldrb r1, [r0, r3] - ldr r0, [r4, #0x0] - strb r1, [r0, r3] - ldr r0, [r4, #0x4] - add r3, r3, #0x1 - cmp r3, r0 - blt _0202D624 -_0202D634: - ldr r1, [r5, #0x0] - ldr r0, [r4, #0x4] - add r0, r1, r0 - str r0, [r5, #0x0] - ldrh r1, [r5, #0xc] - ldr r0, [r4, #0x4] - sub r0, r1, r0 - strh r0, [r5, #0xc] - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0x4] - mov r0, #0x1 - pop {r3-r7, pc} -_0202D64E: - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - beq _0202D660 - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - add r2, r3, #0x0 - bl FUN_0202D400 - b _0202D66A -_0202D660: - ldr r0, [r5, #0x0] - ldr r1, [r4, #0x0] - add r2, r3, #0x0 - bl MI_CpuCopy8 -_0202D66A: - ldrh r0, [r5, #0xc] - ldr r1, [r4, #0x0] - add r0, r1, r0 - str r0, [r4, #0x0] - ldrh r0, [r5, #0xc] - ldr r1, [r4, #0x4] - sub r0, r1, r0 - str r0, [r4, #0x4] - mov r0, #0x1 - pop {r3-r7, pc} - nop -_0202D680: .word 0x0000FFFF - - thumb_func_start FUN_0202D684 -FUN_0202D684: ; 0x0202D684 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r7, r3, #0x0 - bl FUN_0202D4C4 - add r4, r0, #0x0 - bne _0202D69E - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0202D69E: - ldr r0, _0202D710 ; =0x0000FFFE - cmp r7, r0 - blt _0202D6A8 - bl ErrorHandling -_0202D6A8: - ldr r0, [sp, #0x0] - bl FUN_0202D9A0 - add r6, r0, #0x0 - ldr r0, _0202D714 ; =0x0000FFFF - cmp r6, r0 - bne _0202D6B8 - add r6, r7, #0x0 -_0202D6B8: - ldr r0, [sp, #0x24] - cmp r0, #0x0 - beq _0202D6EA - ldr r0, [r5, #0x14] - bl FUN_0202D498 - add r1, r6, #0x3 - cmp r1, r0 - blt _0202D6D0 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0202D6D0: - ldr r0, [r5, #0x14] - ldr r1, [sp, #0x4] - ldr r3, _0202D718 ; =0x00000109 - add r2, r6, #0x0 - bl FUN_0202D3A4 - ldr r0, [r5, #0x14] - bl FUN_0202D4BC - ldrb r1, [r4, #0xf] - mov r0, #0x2 - orr r0, r1 - strb r0, [r4, #0xf] -_0202D6EA: - ldr r0, [sp, #0x0] - strh r6, [r4, #0xc] - strb r0, [r4, #0xe] - ldr r0, [sp, #0x4] - str r0, [r4, #0x0] - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _0202D700 - str r4, [r5, #0x4] - str r4, [r5, #0x0] - b _0202D708 -_0202D700: - str r4, [r0, #0x8] - ldr r0, [r5, #0x4] - str r0, [r4, #0x4] - str r4, [r5, #0x4] -_0202D708: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - nop -_0202D710: .word 0x0000FFFE -_0202D714: .word 0x0000FFFF -_0202D718: .word 0x00000109 - - thumb_func_start FUN_0202D71C -FUN_0202D71C: ; 0x0202D71C - ldr r1, [r0, #0x10] - cmp r1, #0x0 - beq _0202D726 - add r0, r1, #0x0 - bx lr -_0202D726: - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202D730 - add r0, r1, #0x0 - bx lr -_0202D730: - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0202D738 - mov r0, #0x0 -_0202D738: - bx lr - .balign 4 - - thumb_func_start FUN_0202D73C -FUN_0202D73C: ; 0x0202D73C - push {r4, lr} - add r4, r0, #0x0 - ldr r1, [r4, #0x10] - cmp r1, #0x0 - beq _0202D74C - mov r0, #0x0 - str r0, [r4, #0x10] - pop {r4, pc} -_0202D74C: - bl FUN_0202D504 - cmp r0, #0x0 - bne _0202D75C - add r4, #0x8 - add r0, r4, #0x0 - bl FUN_0202D504 -_0202D75C: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202D760 -FUN_0202D760: ; 0x0202D760 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x4] - mov r7, #0x1 - str r2, [sp, #0x0] - cmp r0, #0x0 - ble _0202D7B6 -_0202D770: - add r0, r5, #0x0 - bl FUN_0202D71C - add r6, r0, #0x0 - beq _0202D7B6 - add r0, r5, #0x0 - bl FUN_0202D73C - ldr r2, [r5, #0x14] - add r0, r6, #0x0 - add r1, r4, #0x0 - add r3, r7, #0x0 - bl FUN_0202D5BC - cmp r0, #0x0 - bne _0202D794 - str r6, [r5, #0x10] - b _0202D7B6 -_0202D794: - mov r0, #0x0 - ldr r1, [r4, #0x4] - mvn r0, r0 - cmp r1, r0 - bne _0202D7A4 - str r6, [r5, #0x10] - mov r0, #0x0 - pop {r3-r7, pc} -_0202D7A4: - add r0, r6, #0x0 - mov r1, #0x0 - mov r2, #0x10 - bl MI_CpuFill8 - ldr r0, [r4, #0x4] - ldr r7, [sp, #0x0] - cmp r0, #0x0 - bgt _0202D770 -_0202D7B6: - ldr r0, [r4, #0x4] - mov r2, #0x0 - cmp r0, #0x0 - ble _0202D7D2 - mov r1, #0xee -_0202D7C0: - ldr r0, [r4, #0x0] - add r2, r2, #0x1 - strb r1, [r0, #0x0] - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - ldr r0, [r4, #0x4] - cmp r2, r0 - blt _0202D7C0 -_0202D7D2: - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202D7D8 -FUN_0202D7D8: ; 0x0202D7D8 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r2, #0x0 - mov r1, #0x0 - mov r2, #0x20 - add r5, r0, #0x0 - bl MI_CpuFill8 - lsl r7, r4, #0x4 - mov r0, #0xf - add r1, r7, #0x0 - bl FUN_02016998 - mov r1, #0x0 - add r2, r7, #0x0 - str r0, [r5, #0x18] - bl MI_CpuFill8 - str r4, [r5, #0x1c] - str r6, [r5, #0x14] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202D804 -FUN_0202D804: ; 0x0202D804 - push {r4, lr} - add r4, r0, #0x0 - ldr r2, [r4, #0x1c] - ldr r0, [r4, #0x18] - mov r1, #0x0 - lsl r2, r2, #0x4 - bl MI_CpuFill8 - mov r0, #0x0 - str r0, [r4, #0x0] - str r0, [r4, #0x4] - str r0, [r4, #0x8] - str r0, [r4, #0xc] - str r0, [r4, #0x10] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202D824 -FUN_0202D824: ; 0x0202D824 - ldr r3, _0202D82C ; =FUN_02016A18 - ldr r0, [r0, #0x18] - bx r3 - nop -_0202D82C: .word FUN_02016A18 - - thumb_func_start FUN_0202D830 -FUN_0202D830: ; 0x0202D830 - push {r3-r4} - ldr r4, [r0, #0x1c] - mov r2, #0x0 - ldr r3, [r0, #0x18] - cmp r4, #0x0 - ble _0202D850 -_0202D83C: - ldrb r0, [r3, #0xe] - cmp r0, r1 - bne _0202D848 - mov r0, #0x1 - pop {r3-r4} - bx lr -_0202D848: - add r2, r2, #0x1 - add r3, #0x10 - cmp r2, r4 - blt _0202D83C -_0202D850: - mov r0, #0x0 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0202D858 -FUN_0202D858: ; 0x0202D858 - push {r3-r4, lr} - sub sp, #0x1c - ldr r3, _0202D880 ; =0x020EEB04 - add r4, r0, #0x0 - add r2, sp, #0x0 - mov r1, #0x1a -_0202D864: - ldrb r0, [r3, #0x0] - add r3, r3, #0x1 - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0202D864 - cmp r4, #0x1a - blo _0202D878 - bl ErrorHandling -_0202D878: - add r0, sp, #0x0 - ldrb r0, [r0, r4] - add sp, #0x1c - pop {r3-r4, pc} - .balign 4 -_0202D880: .word 0x020EEB04 - - thumb_func_start FUN_0202D884 -FUN_0202D884: ; 0x0202D884 - push {r3-r4, lr} - sub sp, #0x1c - ldr r3, _0202D8AC ; =0x020EEB1E - add r4, r0, #0x0 - add r2, sp, #0x0 - mov r1, #0x1a -_0202D890: - ldrb r0, [r3, #0x0] - add r3, r3, #0x1 - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0202D890 - cmp r4, #0x1a - blo _0202D8A4 - bl ErrorHandling -_0202D8A4: - add r0, sp, #0x0 - ldrb r0, [r0, r4] - add sp, #0x1c - pop {r3-r4, pc} - .balign 4 -_0202D8AC: .word 0x020EEB1E - - thumb_func_start FUN_0202D8B0 -FUN_0202D8B0: ; 0x0202D8B0 - cmp r0, #0xd - bgt _0202D8C4 - cmp r0, #0x7 - blt _0202D8CC - beq _0202D8C8 - cmp r0, #0x9 - beq _0202D8C8 - cmp r0, #0xd - beq _0202D8C8 - b _0202D8CC -_0202D8C4: - cmp r0, #0x12 - bne _0202D8CC -_0202D8C8: - mov r0, #0x1 - bx lr -_0202D8CC: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202D8D0 -FUN_0202D8D0: ; 0x0202D8D0 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _0202D914 ; =0x021C59E0 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - cmp r0, #0x0 - bne _0202D8EC - mov r0, #0xf - mov r1, #0x18 - bl FUN_02016998 - ldr r1, _0202D914 ; =0x021C59E0 - str r0, [r1, #0x0] -_0202D8EC: - ldr r0, _0202D914 ; =0x021C59E0 - mov r3, #0x0 - ldr r1, [r0, #0x0] - add r2, r3, #0x0 - str r5, [r1, #0x0] - ldr r1, [r0, #0x0] - str r4, [r1, #0x4] - ldr r1, [r0, #0x0] - str r6, [r1, #0x8] -_0202D8FE: - ldr r1, [r0, #0x0] - add r1, r1, r3 - add r3, r3, #0x1 - strb r2, [r1, #0xc] - cmp r3, #0x8 - blt _0202D8FE - ldr r0, _0202D914 ; =0x021C59E0 - ldr r0, [r0, #0x0] - strb r2, [r0, #0x14] - pop {r4-r6, pc} - nop -_0202D914: .word 0x021C59E0 - - thumb_func_start FUN_0202D918 -FUN_0202D918: ; 0x0202D918 - push {r3, lr} - ldr r0, _0202D930 ; =0x021C59E0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202D92C - bl FUN_02016A18 - ldr r0, _0202D930 ; =0x021C59E0 - mov r1, #0x0 - str r1, [r0, #0x0] -_0202D92C: - pop {r3, pc} - nop -_0202D930: .word 0x021C59E0 - - thumb_func_start FUN_0202D934 -FUN_0202D934: ; 0x0202D934 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r4, #0x16 - bge _0202D94C - mov r0, #0xc - mul r1, r0 - ldr r0, _0202D998 ; =0x020EEB38 - ldr r4, [r0, r1] - b _0202D974 -_0202D94C: - ldr r0, _0202D99C ; =0x021C59E0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202D958 - bl ErrorHandling -_0202D958: - ldr r0, _0202D99C ; =0x021C59E0 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x4] - add r0, #0x16 - cmp r4, r0 - ble _0202D96A - bl FUN_02031454 - pop {r3-r7, pc} -_0202D96A: - ldr r1, [r1, #0x0] - sub r4, #0x16 - mov r0, #0xc - mul r0, r4 - ldr r4, [r1, r0] -_0202D974: - cmp r4, #0x0 - beq _0202D996 - ldr r0, _0202D99C ; =0x021C59E0 - ldr r3, [r0, #0x0] - cmp r3, #0x0 - beq _0202D98C - ldr r3, [r3, #0x8] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - blx r4 - pop {r3-r7, pc} -_0202D98C: - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - mov r3, #0x0 - blx r4 -_0202D996: - pop {r3-r7, pc} - .balign 4 -_0202D998: .word 0x020EEB38 -_0202D99C: .word 0x021C59E0 - - thumb_func_start FUN_0202D9A0 -FUN_0202D9A0: ; 0x0202D9A0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 - cmp r5, #0x16 - bge _0202D9B6 - mov r0, #0xc - add r1, r5, #0x0 - mul r1, r0 - ldr r0, _0202D9FC ; =0x020EEB3C - ldr r0, [r0, r1] - b _0202D9EE -_0202D9B6: - ldr r0, _0202DA00 ; =0x021C59E0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202D9C2 - bl ErrorHandling -_0202D9C2: - ldr r0, _0202DA00 ; =0x021C59E0 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _0202D9D2 - bl FUN_02031454 - mov r0, #0x0 - pop {r3-r5, pc} -_0202D9D2: - ldr r0, [r1, #0x4] - add r0, #0x16 - cmp r5, r0 - ble _0202D9E2 - bl FUN_02031454 - mov r0, #0x0 - pop {r3-r5, pc} -_0202D9E2: - ldr r1, [r1, #0x0] - sub r5, #0x16 - mov r0, #0xc - mul r0, r5 - add r0, r1, r0 - ldr r0, [r0, #0x4] -_0202D9EE: - cmp r0, #0x0 - beq _0202D9F6 - blx r0 - add r4, r0, #0x0 -_0202D9F6: - add r0, r4, #0x0 - pop {r3-r5, pc} - nop -_0202D9FC: .word 0x020EEB3C -_0202DA00: .word 0x021C59E0 - - thumb_func_start FUN_0202DA04 -FUN_0202DA04: ; 0x0202DA04 - cmp r0, #0x16 - bge _0202DA1C - mov r1, #0xc - mul r1, r0 - ldr r0, _0202DA38 ; =0x020EEB40 - ldr r0, [r0, r1] - cmp r0, #0x0 - beq _0202DA18 - mov r0, #0x1 - bx lr -_0202DA18: - mov r0, #0x0 - bx lr -_0202DA1C: - ldr r1, _0202DA3C ; =0x021C59E0 - sub r0, #0x16 - ldr r1, [r1, #0x0] - ldr r2, [r1, #0x0] - mov r1, #0xc - mul r1, r0 - add r0, r2, r1 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202DA34 - mov r0, #0x1 - bx lr -_0202DA34: - mov r0, #0x0 - bx lr - .balign 4 -_0202DA38: .word 0x020EEB40 -_0202DA3C: .word 0x021C59E0 - - thumb_func_start FUN_0202DA40 -FUN_0202DA40: ; 0x0202DA40 - push {r3-r5, lr} - add r3, r0, #0x0 - cmp r3, #0x16 - bge _0202DA58 - mov r4, #0xc - mul r4, r3 - ldr r3, _0202DA70 ; =0x020EEB40 - add r0, r1, #0x0 - ldr r3, [r3, r4] - mov r1, #0x0 - blx r3 - pop {r3-r5, pc} -_0202DA58: - ldr r0, _0202DA74 ; =0x021C59E0 - sub r3, #0x16 - ldr r4, [r0, #0x0] - add r0, r1, #0x0 - ldr r1, [r4, #0x8] - ldr r5, [r4, #0x0] - mov r4, #0xc - mul r4, r3 - add r3, r5, r4 - ldr r3, [r3, #0x8] - blx r3 - pop {r3-r5, pc} - .balign 4 -_0202DA70: .word 0x020EEB40 -_0202DA74: .word 0x021C59E0 - - thumb_func_start FUN_0202DA78 -FUN_0202DA78: ; 0x0202DA78 - ldr r0, _0202DA7C ; =0x0000FFFF - bx lr - .balign 4 -_0202DA7C: .word 0x0000FFFF - - thumb_func_start FUN_0202DA80 -FUN_0202DA80: ; 0x0202DA80 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0202DA84 -FUN_0202DA84: ; 0x0202DA84 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0202DA88 -FUN_0202DA88: ; 0x0202DA88 - mov r0, #0x2 - bx lr - - thumb_func_start FUN_0202DA8C -FUN_0202DA8C: ; 0x0202DA8C - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202DACA - ldr r4, _0202DACC ; =0x021C59E0 - mov r1, #0x1 - ldr r0, [r4, #0x0] - add r0, r0, r5 - strb r1, [r0, #0xc] - mov r5, #0x0 -_0202DAA4: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202DABA - ldr r0, [r4, #0x0] - add r0, r0, r5 - ldrb r0, [r0, #0xc] - cmp r0, #0x0 - beq _0202DACA -_0202DABA: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202DAA4 - mov r1, #0x0 - mov r0, #0xe - add r2, r1, #0x0 - bl FUN_02030BC4 -_0202DACA: - pop {r3-r5, pc} - .balign 4 -_0202DACC: .word 0x021C59E0 - - thumb_func_start FUN_0202DAD0 -FUN_0202DAD0: ; 0x0202DAD0 - ldr r0, _0202DAF0 ; =0x021C59E0 - mov r3, #0x0 - ldr r1, [r0, #0x0] - str r3, [r1, #0x0] - ldr r1, [r0, #0x0] - str r3, [r1, #0x4] - ldr r1, [r0, #0x0] - str r3, [r1, #0x8] - ldr r0, [r0, #0x0] - mov r1, #0x1 - strb r1, [r0, #0x14] - ldr r3, _0202DAF4 ; =FUN_020311D0 - mov r0, #0xf - add r1, r2, #0x0 - bx r3 - nop -_0202DAF0: .word 0x021C59E0 -_0202DAF4: .word FUN_020311D0 - - thumb_func_start FUN_0202DAF8 -FUN_0202DAF8: ; 0x0202DAF8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202DB0E - ldr r0, _0202DB10 ; =0x021C59E0 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, r4 - strb r1, [r0, #0xc] -_0202DB0E: - pop {r4, pc} - .balign 4 -_0202DB10: .word 0x021C59E0 - - thumb_func_start FUN_0202DB14 -FUN_0202DB14: ; 0x0202DB14 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - str r1, [sp, #0x4] - bl FUN_020238F4 - str r0, [sp, #0x8] - ldr r0, _0202DBA0 ; =0x021C59E4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202DB9A - mov r1, #0xe9 - mov r0, #0xf - lsl r1, r1, #0x2 - bl FUN_02016998 - ldr r1, _0202DBA0 ; =0x021C59E4 - mov r2, #0xe9 - str r0, [r1, #0x0] - mov r1, #0x0 - lsl r2, r2, #0x2 - bl MI_CpuFill8 - mov r6, #0x0 - ldr r7, _0202DBA0 ; =0x021C59E4 - add r4, r6, #0x0 - add r5, r6, #0x0 -_0202DB4A: - ldr r1, [r7, #0x0] - add r0, r1, #0x0 - add r0, #0x28 - add r2, r0, r4 - mov r0, #0xd2 - add r1, r1, r5 - lsl r0, r0, #0x2 - str r2, [r1, r0] - add r0, r6, #0x0 - bl FUN_0202DE78 - add r6, r6, #0x1 - add r4, #0x68 - add r5, r5, #0x4 - cmp r6, #0x8 - blt _0202DB4A - ldr r2, _0202DBA0 ; =0x021C59E4 - mov r1, #0x3a - ldr r3, [r2, #0x0] - mov r0, #0x0 - lsl r1, r1, #0x4 - strb r0, [r3, r1] - ldr r4, [r2, #0x0] - add r3, r1, #0x1 - strb r0, [r4, r3] - add r3, r1, #0x2 - ldr r4, [r2, #0x0] - sub r1, #0x58 - strb r0, [r4, r3] - ldr r3, [r2, #0x0] - ldr r0, [sp, #0x0] - str r0, [r3, #0x4] - ldr r3, [r2, #0x0] - ldr r0, [sp, #0x4] - str r0, [r3, #0x0] - ldr r2, [r2, #0x0] - ldr r0, [sp, #0x8] - ldr r1, [r2, r1] - bl FUN_0202393C -_0202DB9A: - add sp, #0xc - pop {r4-r7, pc} - nop -_0202DBA0: .word 0x021C59E4 - - thumb_func_start FUN_0202DBA4 -FUN_0202DBA4: ; 0x0202DBA4 - push {r3-r5, lr} - ldr r1, _0202DBDC ; =0x021C59E4 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - beq _0202DBD8 - mov r4, #0x0 - mov r0, #0xd2 - add r5, r4, #0x0 - add r3, r4, #0x0 - lsl r0, r0, #0x2 -_0202DBB8: - ldr r2, [r1, #0x0] - add r4, r4, #0x1 - add r2, r2, r5 - add r5, r5, #0x4 - str r3, [r2, r0] - cmp r4, #0x8 - blt _0202DBB8 - ldr r0, _0202DBDC ; =0x021C59E4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202DBD2 - bl FUN_02016A18 -_0202DBD2: - ldr r0, _0202DBDC ; =0x021C59E4 - mov r1, #0x0 - str r1, [r0, #0x0] -_0202DBD8: - pop {r3-r5, pc} - nop -_0202DBDC: .word 0x021C59E4 - - thumb_func_start FUN_0202DBE0 -FUN_0202DBE0: ; 0x0202DBE0 - push {r3-r7, lr} - bl FUN_02031190 - add r4, r0, #0x0 - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - bl FUN_0202881C - add r7, r0, #0x0 - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - bl FUN_020286EC - str r0, [sp, #0x0] - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - bl FUN_02029AFC - add r6, r0, #0x0 - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - bl FUN_020238F4 - ldr r1, _0202DCD8 ; =0x021C59E4 - ldr r2, [r1, #0x0] - lsl r1, r4, #0x2 - add r2, r2, r1 - mov r1, #0xd2 - lsl r1, r1, #0x2 - ldr r1, [r2, r1] - bl FUN_0202393C - mov r0, #0x68 - add r5, r4, #0x0 - mul r5, r0 - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r0, [r0, #0x0] - add r0, #0x64 - add r0, r0, r5 - bl OS_GetMacAddress - add r0, r7, #0x0 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_020287A8 - ldr r1, _0202DCD8 ; =0x021C59E4 - mov r2, #0x10 - ldr r1, [r1, #0x0] - add r1, #0x54 - add r1, r1, r5 - bl MI_CpuCopy8 - add r0, r6, #0x0 - bl FUN_02029B38 - ldr r1, _0202DCD8 ; =0x021C59E4 - ldr r1, [r1, #0x0] - add r1, r1, r5 - add r1, #0x6b - strb r0, [r1, #0x0] - add r0, r6, #0x0 - bl FUN_02029B3C - ldr r2, _0202DCD8 ; =0x021C59E4 - ldr r1, [r2, #0x0] - add r1, r1, r5 - add r1, #0x6c - strb r0, [r1, #0x0] - ldr r0, [r2, #0x0] - ldr r0, [r0, #0x4] - bl FUN_02025C18 - ldr r2, _0202DCD8 ; =0x021C59E4 - ldr r1, [r2, #0x0] - add r1, r1, r5 - add r1, #0x6d - strb r0, [r1, #0x0] - ldr r2, [r2, #0x0] - mov r0, #0x1 - add r2, #0x6d - ldrb r1, [r2, r5] - sub r0, r0, r1 - strb r0, [r2, r5] - ldr r0, [sp, #0x0] - bl FUN_02028228 - ldr r1, _0202DCD8 ; =0x021C59E4 - ldr r1, [r1, #0x0] - add r1, #0x48 - add r1, r1, r5 - bl FUN_02096CCC - ldr r0, _0202DCD8 ; =0x021C59E4 - mov r1, #0x0 - ldr r0, [r0, #0x0] - mov r2, #0x20 - add r0, #0x8 - add r0, r0, r5 - bl MI_CpuFill8 - ldr r0, _0202DCD8 ; =0x021C59E4 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x0] - cmp r0, #0x0 - beq _0202DCC4 - add r1, #0x8 - add r1, r1, r5 - bl FUN_02023ACC -_0202DCC4: - ldr r1, _0202DCD8 ; =0x021C59E4 - mov r0, #0x3 - ldr r1, [r1, #0x0] - mov r2, #0x68 - add r1, #0x8 - add r1, r1, r5 - bl FUN_02030ADC - pop {r3-r7, pc} - nop -_0202DCD8: .word 0x021C59E4 - - thumb_func_start FUN_0202DCDC -FUN_0202DCDC: ; 0x0202DCDC - mov r0, #0x68 - bx lr - - thumb_func_start FUN_0202DCE0 -FUN_0202DCE0: ; 0x0202DCE0 - ldr r0, _0202DCF4 ; =0x021C59E4 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _0202DCF0 - mov r0, #0x3a - mov r1, #0x1 - lsl r0, r0, #0x4 - strb r1, [r2, r0] -_0202DCF0: - bx lr - nop -_0202DCF4: .word 0x021C59E4 - - thumb_func_start FUN_0202DCF8 -FUN_0202DCF8: ; 0x0202DCF8 - ldr r0, _0202DD04 ; =0x021C59E4 - ldr r1, [r0, #0x0] - mov r0, #0x3a - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_0202DD04: .word 0x021C59E4 - - thumb_func_start FUN_0202DD08 -FUN_0202DD08: ; 0x0202DD08 - push {r3-r5, lr} - ldr r1, _0202DD78 ; =0x021C59E4 - add r4, r2, #0x0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _0202DD74 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202DD74 - ldr r1, _0202DD78 ; =0x021C59E4 - mov r2, #0x68 - ldr r5, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0x62 - ldrb r1, [r1, #0x0] - add r5, #0x8 - add r0, r4, #0x0 - add r3, r1, #0x0 - mul r3, r2 - add r1, r5, r3 - bl MI_CpuCopy8 - add r4, #0x62 - ldr r2, _0202DD78 ; =0x021C59E4 - ldrb r3, [r4, #0x0] - ldr r0, [r2, #0x0] - ldr r1, _0202DD7C ; =0x000003A2 - strb r3, [r0, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x0] - sub r0, #0xa - add r4, r3, r0 - ldrb r3, [r3, r1] - ldrb r0, [r4, r3] - cmp r0, #0x2 - bhs _0202DD74 - mov r0, #0x1 - strb r0, [r4, r3] - ldr r0, [r2, #0x0] - ldrb r4, [r0, r1] - bl FUN_02031190 - cmp r4, r0 - bne _0202DD74 - ldr r0, _0202DD78 ; =0x021C59E4 - mov r2, #0x3 - ldr r0, [r0, #0x0] - add r1, r0, r4 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] -_0202DD74: - pop {r3-r5, pc} - nop -_0202DD78: .word 0x021C59E4 -_0202DD7C: .word 0x000003A2 - - thumb_func_start FUN_0202DD80 -FUN_0202DD80: ; 0x0202DD80 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0202DDE0 ; =0x021C59E4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0202DDDC - mov r3, #0x68 - add r4, r5, #0x0 - add r0, r2, #0x0 - mul r4, r3 - add r1, #0x8 - add r1, r1, r4 - add r2, r3, #0x0 - bl MI_CpuCopy8 - ldr r0, _0202DDE0 ; =0x021C59E4 - add r1, r5, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x64 - add r0, r0, r4 - bl FUN_0202EFAC - ldr r0, _0202DDE0 ; =0x021C59E4 - mov r2, #0x1 - ldr r0, [r0, #0x0] - add r1, r0, r5 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - bl FUN_02031190 - cmp r5, r0 - bne _0202DDD2 - ldr r0, _0202DDE0 ; =0x021C59E4 - mov r2, #0x3 - ldr r0, [r0, #0x0] - add r1, r0, r5 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - pop {r3-r5, pc} -_0202DDD2: - ldr r0, _0202DDE0 ; =0x021C59E4 - mov r2, #0x1 - ldr r1, [r0, #0x0] - ldr r0, _0202DDE4 ; =0x000003A1 - strb r2, [r1, r0] -_0202DDDC: - pop {r3-r5, pc} - nop -_0202DDE0: .word 0x021C59E4 -_0202DDE4: .word 0x000003A1 - - thumb_func_start FUN_0202DDE8 -FUN_0202DDE8: ; 0x0202DDE8 - push {r3-r7, lr} - ldr r0, _0202DE70 ; =0x021C59E4 - ldr r1, [r0, #0x0] - ldr r0, _0202DE74 ; =0x000003A1 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _0202DDFA - mov r0, #0x0 - pop {r3-r7, pc} -_0202DDFA: - mov r0, #0x5 - bl FUN_02031354 - cmp r0, #0x0 - bne _0202DE6C - mov r4, #0x0 - add r5, r4, #0x0 - add r7, r4, #0x0 -_0202DE0A: - ldr r0, _0202DE70 ; =0x021C59E4 - ldr r2, [r0, #0x0] - mov r0, #0xe6 - add r1, r2, r4 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202DE4A - add r0, r2, r5 - add r0, #0x6a - strb r4, [r0, #0x0] - ldr r0, _0202DE70 ; =0x021C59E4 - ldr r6, [r0, #0x0] - bl FUN_02023924 - add r2, r0, #0x0 - mov r0, #0xd2 - add r1, r6, r7 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - add r6, #0x28 - add r1, r6, r5 - bl MI_CpuCopy8 - ldr r1, _0202DE70 ; =0x021C59E4 - mov r0, #0x4 - ldr r1, [r1, #0x0] - mov r2, #0x68 - add r1, #0x8 - add r1, r1, r5 - bl FUN_02031000 -_0202DE4A: - add r4, r4, #0x1 - add r5, #0x68 - add r7, r7, #0x4 - cmp r4, #0x8 - blt _0202DE0A - mov r1, #0x0 - mov r0, #0x5 - add r2, r1, #0x0 - bl FUN_02031000 - ldr r0, _0202DE70 ; =0x021C59E4 - mov r2, #0x0 - ldr r1, [r0, #0x0] - ldr r0, _0202DE74 ; =0x000003A1 - strb r2, [r1, r0] - mov r0, #0x1 - pop {r3-r7, pc} -_0202DE6C: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_0202DE70: .word 0x021C59E4 -_0202DE74: .word 0x000003A1 - - thumb_func_start FUN_0202DE78 -FUN_0202DE78: ; 0x0202DE78 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0202DEA0 ; =0x021C59E4 - ldr r1, [r0, #0x0] - lsl r0, r4, #0x2 - add r1, r1, r0 - mov r0, #0xd2 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - bl FUN_02023948 - ldr r0, _0202DEA0 ; =0x021C59E4 - mov r2, #0x0 - ldr r0, [r0, #0x0] - add r1, r0, r4 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - pop {r4, pc} - nop -_0202DEA0: .word 0x021C59E4 - - thumb_func_start FUN_0202DEA4 -FUN_0202DEA4: ; 0x0202DEA4 - ldr r1, _0202DEBC ; =0x021C59E4 - ldr r1, [r1, #0x0] - add r1, r1, r0 - mov r0, #0xe6 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0x1 - bne _0202DEB8 - mov r0, #0x1 - bx lr -_0202DEB8: - mov r0, #0x0 - bx lr - .balign 4 -_0202DEBC: .word 0x021C59E4 - - thumb_func_start FUN_0202DEC0 -FUN_0202DEC0: ; 0x0202DEC0 - ldr r1, _0202DEDC ; =0x021C59E4 - mov r2, #0x1 - ldr r1, [r1, #0x0] - add r1, r1, r0 - mov r0, #0xe6 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0x2 - beq _0202DED8 - cmp r0, #0x1 - beq _0202DED8 - mov r2, #0x0 -_0202DED8: - add r0, r2, #0x0 - bx lr - .balign 4 -_0202DEDC: .word 0x021C59E4 - - thumb_func_start FUN_0202DEE0 -FUN_0202DEE0: ; 0x0202DEE0 - ldr r1, _0202DEF0 ; =0x021C59E4 - mov r2, #0x2 - ldr r1, [r1, #0x0] - add r1, r1, r0 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - bx lr - .balign 4 -_0202DEF0: .word 0x021C59E4 - - thumb_func_start FUN_0202DEF4 -FUN_0202DEF4: ; 0x0202DEF4 - ldr r1, _0202DF04 ; =0x021C59E4 - mov r2, #0x3 - ldr r1, [r1, #0x0] - add r1, r1, r0 - mov r0, #0xe6 - lsl r0, r0, #0x2 - strb r2, [r1, r0] - bx lr - .balign 4 -_0202DF04: .word 0x021C59E4 - - thumb_func_start FUN_0202DF08 -FUN_0202DF08: ; 0x0202DF08 - ldr r1, _0202DF24 ; =0x021C59E4 - mov r0, #0x0 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - lsl r1, r1, #0x2 -_0202DF12: - ldrb r2, [r3, r1] - cmp r2, #0x1 - beq _0202DF22 - add r0, r0, #0x1 - add r3, r3, #0x1 - cmp r0, #0x8 - blt _0202DF12 - mov r0, #0xff -_0202DF22: - bx lr - .balign 4 -_0202DF24: .word 0x021C59E4 - - thumb_func_start FUN_0202DF28 -FUN_0202DF28: ; 0x0202DF28 - push {r3-r4} - ldr r1, _0202DF50 ; =0x021C59E4 - mov r0, #0x0 - ldr r4, [r1, #0x0] - mov r1, #0xe6 - add r3, r0, #0x0 - lsl r1, r1, #0x2 -_0202DF36: - ldrb r2, [r4, r1] - cmp r2, #0x2 - beq _0202DF40 - cmp r2, #0x3 - bne _0202DF42 -_0202DF40: - add r0, r0, #0x1 -_0202DF42: - add r3, r3, #0x1 - add r4, r4, #0x1 - cmp r3, #0x8 - blt _0202DF36 - pop {r3-r4} - bx lr - nop -_0202DF50: .word 0x021C59E4 - - thumb_func_start FUN_0202DF54 -FUN_0202DF54: ; 0x0202DF54 - push {r4-r6, lr} - ldr r0, _0202DFA0 ; =0x021C59E4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202DF9C - bl FUN_02030F20 - cmp r0, #0x0 - beq _0202DF9C - mov r6, #0xe6 - ldr r4, _0202DFA0 ; =0x021C59E4 - mov r5, #0x0 - lsl r6, r6, #0x2 -_0202DF6E: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202DF96 - cmp r5, #0x0 - bne _0202DF86 - bl FUN_02031280 - cmp r0, #0x0 - bne _0202DF96 -_0202DF86: - ldr r0, [r4, #0x0] - add r0, r0, r5 - ldrb r0, [r0, r6] - cmp r0, #0x0 - beq _0202DF96 - add r0, r5, #0x0 - bl FUN_0202DE78 -_0202DF96: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202DF6E -_0202DF9C: - pop {r4-r6, pc} - nop -_0202DFA0: .word 0x021C59E4 - - thumb_func_start FUN_0202DFA4 -FUN_0202DFA4: ; 0x0202DFA4 - ldr r1, _0202DFD4 ; =0x021C59E4 - ldr r3, [r1, #0x0] - cmp r3, #0x0 - bne _0202DFB0 - mov r0, #0x0 - bx lr -_0202DFB0: - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x1 - beq _0202DFC4 - cmp r1, #0x2 - beq _0202DFC4 - cmp r1, #0x3 - bne _0202DFD0 -_0202DFC4: - lsl r0, r0, #0x2 - add r1, r3, r0 - mov r0, #0xd2 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - bx lr -_0202DFD0: - mov r0, #0x0 - bx lr - .balign 4 -_0202DFD4: .word 0x021C59E4 - - thumb_func_start FUN_0202DFD8 -FUN_0202DFD8: ; 0x0202DFD8 - ldr r1, _0202DFF8 ; =0x021C59E4 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202DFF2 - mov r1, #0x68 - add r3, #0x48 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202DFF2: - mov r0, #0x0 - bx lr - nop -_0202DFF8: .word 0x021C59E4 - - thumb_func_start FUN_0202DFFC -FUN_0202DFFC: ; 0x0202DFFC - ldr r1, _0202E01C ; =0x021C59E4 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E016 - mov r1, #0x68 - add r3, #0x54 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202E016: - mov r0, #0x0 - bx lr - nop -_0202E01C: .word 0x021C59E4 - - thumb_func_start FUN_0202E020 -FUN_0202E020: ; 0x0202E020 - ldr r1, _0202E040 ; =0x021C59E4 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E03C - mov r1, #0x68 - mul r1, r0 - add r0, r3, r1 - add r0, #0x6b - ldrb r0, [r0, #0x0] - bx lr -_0202E03C: - mov r0, #0x0 - bx lr - .balign 4 -_0202E040: .word 0x021C59E4 - - thumb_func_start FUN_0202E044 -FUN_0202E044: ; 0x0202E044 - ldr r1, _0202E064 ; =0x021C59E4 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E060 - mov r1, #0x68 - mul r1, r0 - add r0, r3, r1 - add r0, #0x6c - ldrb r0, [r0, #0x0] - bx lr -_0202E060: - mov r0, #0x0 - bx lr - .balign 4 -_0202E064: .word 0x021C59E4 - - thumb_func_start FUN_0202E068 -FUN_0202E068: ; 0x0202E068 - ldr r1, _0202E088 ; =0x021C59E4 - ldr r3, [r1, #0x0] - mov r1, #0xe6 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E084 - mov r1, #0x68 - mul r1, r0 - add r0, r3, r1 - add r0, #0x6d - ldrb r0, [r0, #0x0] - bx lr -_0202E084: - mov r0, #0x0 - bx lr - .balign 4 -_0202E088: .word 0x021C59E4 - - thumb_func_start FUN_0202E08C -FUN_0202E08C: ; 0x0202E08C - push {r4-r6, lr} - mov r4, #0x0 - add r5, r4, #0x0 - add r6, r4, #0x0 -_0202E094: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202E0E8 - ldr r0, _0202E0F4 ; =0x021C59E4 - ldr r0, [r0, #0x0] - add r1, r0, r4 - mov r0, #0xe6 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202E0E8 - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202E0E8 - ldr r0, _0202E0F4 ; =0x021C59E4 - ldr r1, _0202E0F8 ; =0x00000399 - ldr r0, [r0, #0x0] - add r2, r0, r4 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E0E8 - add r1, r6, #0x0 - add r2, r0, r5 -_0202E0D0: - add r3, r2, #0x0 - add r3, #0x70 - ldrb r0, [r2, #0x8] - ldrb r3, [r3, #0x0] - cmp r0, r3 - beq _0202E0E0 - mov r0, #0x0 - pop {r4-r6, pc} -_0202E0E0: - add r1, r1, #0x1 - add r2, r2, #0x1 - cmp r1, #0x20 - blt _0202E0D0 -_0202E0E8: - add r4, r4, #0x1 - add r5, #0x68 - cmp r4, #0x7 - blt _0202E094 - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 -_0202E0F4: .word 0x021C59E4 -_0202E0F8: .word 0x00000399 - - thumb_func_start FUN_0202E0FC -FUN_0202E0FC: ; 0x0202E0FC - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _0202E1B4 ; =0x021C59E4 - add r6, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202E1B0 - cmp r7, #0x2 - beq _0202E11C - bl FUN_02031190 - bl FUN_020313CC - mov r1, #0x1 - and r0, r1 - str r0, [sp, #0x0] -_0202E11C: - mov r4, #0x0 - bl FUN_02030F20 - cmp r0, #0x0 - ble _0202E1B0 - add r5, r4, #0x0 -_0202E128: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202E1A4 - ldr r0, _0202E1B4 ; =0x021C59E4 - mov r1, #0xe6 - ldr r0, [r0, #0x0] - lsl r1, r1, #0x2 - add r2, r0, r4 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _0202E1A4 - cmp r7, #0x0 - bne _0202E16E - add r0, r4, #0x0 - bl FUN_020313CC - mov r1, #0x1 - and r1, r0 - ldr r0, [sp, #0x0] - cmp r0, r1 - beq _0202E1A4 - ldr r0, _0202E1B4 ; =0x021C59E4 - mov r1, #0xda - ldr r0, [r0, #0x0] - lsl r1, r1, #0x2 - add r0, r0, r5 - ldrh r1, [r0, r1] - add r2, r1, r6 - mov r1, #0xda - lsl r1, r1, #0x2 - strh r2, [r0, r1] - b _0202E1A4 -_0202E16E: - cmp r7, #0x1 - bne _0202E194 - add r0, r4, #0x0 - bl FUN_020313CC - mov r1, #0x1 - and r1, r0 - ldr r0, [sp, #0x0] - cmp r0, r1 - beq _0202E1A4 - ldr r0, _0202E1B4 ; =0x021C59E4 - ldr r1, _0202E1B8 ; =0x0000036A - ldr r0, [r0, #0x0] - add r0, r0, r5 - ldrh r1, [r0, r1] - add r2, r1, r6 - ldr r1, _0202E1B8 ; =0x0000036A - strh r2, [r0, r1] - b _0202E1A4 -_0202E194: - mov r1, #0xdb - add r0, r0, r5 - lsl r1, r1, #0x2 - ldrh r1, [r0, r1] - add r2, r1, r6 - mov r1, #0xdb - lsl r1, r1, #0x2 - strh r2, [r0, r1] -_0202E1A4: - add r5, r5, #0x6 - add r4, r4, #0x1 - bl FUN_02030F20 - cmp r4, r0 - blt _0202E128 -_0202E1B0: - pop {r3-r7, pc} - nop -_0202E1B4: .word 0x021C59E4 -_0202E1B8: .word 0x0000036A - - thumb_func_start FUN_0202E1BC -FUN_0202E1BC: ; 0x0202E1BC - push {r4-r7, lr} - sub sp, #0xc - add r7, r0, #0x0 - bl FUN_020286EC - str r0, [sp, #0x4] - mov r4, #0x0 - bl FUN_02030F20 - cmp r0, #0x0 - ble _0202E224 - add r5, r4, #0x0 -_0202E1D4: - add r0, r4, #0x0 - bl FUN_0202DFD8 - add r1, r0, #0x0 - beq _0202E218 - add r0, r7, #0x0 - add r2, sp, #0x8 - bl FUN_02033874 - cmp r0, #0x0 - beq _0202E1EE - cmp r0, #0x1 - bne _0202E218 -_0202E1EE: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bge _0202E1F8 - bl ErrorHandling -_0202E1F8: - ldr r0, _0202E254 ; =0x021C59E4 - mov r2, #0xda - ldr r0, [r0, #0x0] - ldr r3, _0202E258 ; =0x0000036A - add r6, r0, r5 - mov r0, #0xdb - lsl r0, r0, #0x2 - ldrh r0, [r6, r0] - lsl r2, r2, #0x2 - str r0, [sp, #0x0] - ldrh r2, [r6, r2] - ldrh r3, [r6, r3] - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x8] - bl FUN_02028608 -_0202E218: - add r5, r5, #0x6 - add r4, r4, #0x1 - bl FUN_02030F20 - cmp r4, r0 - blt _0202E1D4 -_0202E224: - mov r3, #0xda - mov r2, #0x0 - lsl r3, r3, #0x2 - ldr r6, _0202E254 ; =0x021C59E4 - add r1, r2, #0x0 - add r0, r2, #0x0 - add r4, r3, #0x2 - add r5, r3, #0x4 -_0202E234: - ldr r7, [r6, #0x0] - add r2, r2, #0x1 - add r7, r7, r1 - strh r0, [r7, r3] - ldr r7, [r6, #0x0] - add r7, r7, r1 - strh r0, [r7, r4] - ldr r7, [r6, #0x0] - add r7, r7, r1 - add r1, r1, #0x6 - strh r0, [r7, r5] - cmp r2, #0x8 - blt _0202E234 - add sp, #0xc - pop {r4-r7, pc} - nop -_0202E254: .word 0x021C59E4 -_0202E258: .word 0x0000036A - - thumb_func_start FUN_0202E25C -FUN_0202E25C: ; 0x0202E25C - push {r4, lr} - add r4, r0, #0x0 - cmp r1, #0x1 - bne _0202E26E - mov r0, #0x0 - mov r1, #0x1 - bl FUN_0202E0FC - b _0202E27E -_0202E26E: - mov r0, #0x0 - mvn r0, r0 - cmp r1, r0 - bne _0202E27E - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_0202E0FC -_0202E27E: - add r0, r4, #0x0 - bl FUN_0202E1BC - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202E288 -FUN_0202E288: ; 0x0202E288 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_0202E0FC - add r0, r4, #0x0 - bl FUN_0202E1BC - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0202E29C -FUN_0202E29C: ; 0x0202E29C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0202E334 ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0202E332 - mov r1, #0xdb - mov r0, #0xf - lsl r1, r1, #0x4 - bl FUN_02016998 - ldr r1, _0202E334 ; =0x021C59E8 - mov r2, #0xdb - str r0, [r1, #0x8] - mov r1, #0x0 - lsl r2, r2, #0x4 - bl MI_CpuFill8 - bl FUN_0202CEEC - add r1, r0, #0x0 - mov r0, #0xf - bl FUN_02016998 - ldr r1, _0202E334 ; =0x021C59E8 - ldr r2, [r1, #0x8] - ldr r1, _0202E338 ; =0x00000CA4 - str r0, [r2, r1] - bl FUN_0202CEEC - add r2, r0, #0x0 - ldr r0, _0202E334 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E338 ; =0x00000CA4 - ldr r0, [r1, r0] - mov r1, #0x0 - bl MI_CpuFill8 - bl FUN_02023AC4 - add r1, r0, #0x0 - mov r0, #0xf - bl FUN_02016998 - ldr r1, _0202E334 ; =0x021C59E8 - ldr r2, [r1, #0x8] - ldr r1, _0202E33C ; =0x00000CBC - str r0, [r2, r1] - bl FUN_02023AC4 - add r2, r0, #0x0 - ldr r0, _0202E334 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E33C ; =0x00000CBC - ldr r0, [r1, r0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r2, _0202E334 ; =0x021C59E8 - mov r1, #0x33 - ldr r3, _0202E340 ; =0x00000333 - ldr r0, [r2, #0x8] - lsl r1, r1, #0x6 - str r3, [r0, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x8] - sub r0, #0x8 - str r4, [r3, r0] - ldr r0, [r2, #0x8] - sub r1, #0x18 - add r0, r0, r1 - bl FUN_02013724 - bl FUN_0202E500 -_0202E332: - pop {r4, pc} - .balign 4 -_0202E334: .word 0x021C59E8 -_0202E338: .word 0x00000CA4 -_0202E33C: .word 0x00000CBC -_0202E340: .word 0x00000333 - - thumb_func_start FUN_0202E344 -FUN_0202E344: ; 0x0202E344 - ldr r0, _0202E354 ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202E350 - mov r0, #0x1 - bx lr -_0202E350: - mov r0, #0x0 - bx lr - .balign 4 -_0202E354: .word 0x021C59E8 - - thumb_func_start FUN_0202E358 -FUN_0202E358: ; 0x0202E358 - push {r4-r5} - mov r5, #0x0 - cmp r2, #0x0 - ble _0202E378 -_0202E360: - ldrb r4, [r0, #0x0] - ldrb r3, [r1, #0x0] - cmp r4, r3 - beq _0202E36E - mov r0, #0x0 - pop {r4-r5} - bx lr -_0202E36E: - add r5, r5, #0x1 - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r5, r2 - blt _0202E360 -_0202E378: - mov r0, #0x1 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_0202E380 -FUN_0202E380: ; 0x0202E380 - push {r3-r7, lr} - add r7, r0, #0x0 - bl FUN_02033534 - add r5, r0, #0x0 - bl FUN_0203354C - add r4, r7, #0x0 - add r6, r0, #0x0 - add r4, #0x50 - cmp r5, #0xe - beq _0202E3C2 - ldrb r0, [r4, #0x4] - bl FUN_0202D8B0 - cmp r0, #0x0 - beq _0202E3AC - add r0, r5, #0x0 - bl FUN_0202D8B0 - cmp r0, #0x0 - bne _0202E3C2 -_0202E3AC: - add r0, r4, #0x0 - add r0, #0x54 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202E3BC - ldrb r0, [r4, #0x4] - cmp r0, #0xa - beq _0202E460 -_0202E3BC: - ldrb r0, [r4, #0x4] - cmp r0, r5 - bne _0202E460 -_0202E3C2: - cmp r5, #0xe - beq _0202E3CC - ldrb r0, [r4, #0x5] - cmp r0, r6 - bne _0202E460 -_0202E3CC: - mov r6, #0x0 - add r4, r6, #0x0 - add r5, r6, #0x0 -_0202E3D2: - ldr r0, _0202E464 ; =0x021C59E8 - ldr r1, _0202E468 ; =0x00000C84 - ldr r0, [r0, #0x8] - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E412 - add r0, #0x58 - add r0, r0, r5 - add r1, r7, #0x4 - mov r2, #0x6 - bl FUN_0202E358 - cmp r0, #0x0 - beq _0202E412 - ldr r2, _0202E464 ; =0x021C59E8 - lsl r1, r6, #0x1 - ldr r3, [r2, #0x8] - mov r0, #0x96 - add r3, r3, r1 - ldr r1, _0202E468 ; =0x00000C84 - strh r0, [r3, r1] - ldr r3, [r2, #0x8] - mov r2, #0xc0 - add r1, r6, #0x0 - add r3, #0x54 - mul r1, r2 - add r0, r7, #0x0 - add r1, r3, r1 - bl MI_CpuCopy8 - pop {r3-r7, pc} -_0202E412: - add r6, r6, #0x1 - add r4, r4, #0x2 - add r5, #0xc0 - cmp r6, #0x10 - blt _0202E3D2 - ldr r0, _0202E464 ; =0x021C59E8 - ldr r2, _0202E468 ; =0x00000C84 - ldr r0, [r0, #0x8] - mov r1, #0x0 - add r4, r0, #0x0 -_0202E426: - ldrh r3, [r4, r2] - cmp r3, #0x0 - beq _0202E434 - add r1, r1, #0x1 - add r4, r4, #0x2 - cmp r1, #0x10 - blt _0202E426 -_0202E434: - cmp r1, #0x10 - bge _0202E460 - lsl r2, r1, #0x1 - add r2, r0, r2 - ldr r0, _0202E468 ; =0x00000C84 - mov r3, #0x96 - strh r3, [r2, r0] - ldr r2, _0202E464 ; =0x021C59E8 - add r3, r1, #0x0 - ldr r4, [r2, #0x8] - mov r2, #0xc0 - add r4, #0x54 - mul r3, r2 - add r0, r7, #0x0 - add r1, r4, r3 - bl MI_CpuCopy8 - ldr r0, _0202E464 ; =0x021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E46C ; =0x00000CB4 - strb r2, [r1, r0] -_0202E460: - pop {r3-r7, pc} - nop -_0202E464: .word 0x021C59E8 -_0202E468: .word 0x00000C84 -_0202E46C: .word 0x00000CB4 - - thumb_func_start FUN_0202E470 -FUN_0202E470: ; 0x0202E470 - push {r3, lr} - cmp r1, #0x0 - beq _0202E47A - bl OS_Terminate -_0202E47A: - ldr r0, _0202E484 ; =0x021C59E8 - mov r1, #0x2 - str r1, [r0, #0x4] - pop {r3, pc} - nop -_0202E484: .word 0x021C59E8 - - thumb_func_start FUN_0202E488 -FUN_0202E488: ; 0x0202E488 - ldr r0, _0202E494 ; =0x021C59E8 - mov r1, #0x0 - str r1, [r0, #0x4] - ldr r3, _0202E498 ; =FUN_02016454 - mov r0, #0x4 - bx r3 - .balign 4 -_0202E494: .word 0x021C59E8 -_0202E498: .word FUN_02016454 - - thumb_func_start FUN_0202E49C -FUN_0202E49C: ; 0x0202E49C - push {r3, lr} - mov r0, #0x4 - bl FUN_02016444 - ldr r0, _0202E4C0 ; =0x021C59E8 - mov r1, #0x1 - str r1, [r0, #0x4] - ldr r1, _0202E4C4 ; =FUN_0202E470 - mov r0, #0x8 - mov r2, #0x0 - bl FUN_02090DB8 - cmp r0, #0x1 - beq _0202E4BC - bl OS_Terminate -_0202E4BC: - pop {r3, pc} - nop -_0202E4C0: .word 0x021C59E8 -_0202E4C4: .word FUN_0202E470 - - thumb_func_start FUN_0202E4C8 -FUN_0202E4C8: ; 0x0202E4C8 - ldr r0, _0202E4D8 ; =0x021C59E8 - ldr r0, [r0, #0x4] - cmp r0, #0x2 - bne _0202E4D4 - mov r0, #0x1 - bx lr -_0202E4D4: - mov r0, #0x0 - bx lr - .balign 4 -_0202E4D8: .word 0x021C59E8 - - thumb_func_start FUN_0202E4DC -FUN_0202E4DC: ; 0x0202E4DC - ldr r0, _0202E4EC ; =0x021C59E8 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202E4E8 - mov r0, #0x1 - bx lr -_0202E4E8: - mov r0, #0x0 - bx lr - .balign 4 -_0202E4EC: .word 0x021C59E8 - - thumb_func_start FUN_0202E4F0 -FUN_0202E4F0: ; 0x0202E4F0 - ldr r3, _0202E4F8 ; =FUN_02090CC8 - ldr r0, _0202E4FC ; =FUN_0202E488 - mov r1, #0x0 - bx r3 - .balign 4 -_0202E4F8: .word FUN_02090CC8 -_0202E4FC: .word FUN_0202E488 - - thumb_func_start FUN_0202E500 -FUN_0202E500: ; 0x0202E500 - push {r3, lr} - ldr r1, _0202E534 ; =0x021C59E8 - mov r0, #0xcb - ldr r2, [r1, #0x8] - mov r3, #0x0 - lsl r0, r0, #0x4 - str r3, [r2, r0] - ldr r1, [r1, #0x8] - sub r0, #0xc - ldr r2, [r1, r0] - mov r0, #0x1f - add r1, r2, #0x0 - and r1, r0 - mov r0, #0x20 - sub r0, r0, r1 - add r0, r2, r0 - bl FUN_0202CE64 - ldr r0, _0202E534 ; =0x021C59E8 - ldr r1, [r0, #0x8] - mov r0, #0x33 - lsl r0, r0, #0x6 - ldr r0, [r1, r0] - bl FUN_0202CB70 - pop {r3, pc} - .balign 4 -_0202E534: .word 0x021C59E8 - - thumb_func_start FUN_0202E538 -FUN_0202E538: ; 0x0202E538 - push {r3-r5, lr} - mov r4, #0x0 - ldr r2, _0202E564 ; =0x021C59E8 - ldr r0, _0202E568 ; =0x00000C84 - add r5, r4, #0x0 - add r1, r4, #0x0 -_0202E544: - ldr r3, [r2, #0x8] - add r4, r4, #0x1 - add r3, r3, r5 - add r5, r5, #0x2 - strh r1, [r3, r0] - cmp r4, #0x10 - blt _0202E544 - ldr r0, _0202E564 ; =0x021C59E8 - mov r2, #0x3 - ldr r0, [r0, #0x8] - lsl r2, r2, #0xa - add r0, #0x54 - bl MI_CpuFill8 - pop {r3-r5, pc} - nop -_0202E564: .word 0x021C59E8 -_0202E568: .word 0x00000C84 - - thumb_func_start FUN_0202E56C -FUN_0202E56C: ; 0x0202E56C - push {r3-r4} - ldr r1, _0202E58C ; =0x021C59E8 - lsl r0, r0, #0x18 - ldr r2, [r1, #0x8] - ldr r4, _0202E590 ; =0x00000DAD - lsr r0, r0, #0x18 - ldrb r1, [r2, r4] - mov r3, #0x8 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1c - orr r0, r1 - strb r0, [r2, r4] - pop {r3-r4} - bx lr - nop -_0202E58C: .word 0x021C59E8 -_0202E590: .word 0x00000DAD - - thumb_func_start FUN_0202E594 -FUN_0202E594: ; 0x0202E594 - push {r4-r5} - ldr r1, _0202E5F0 ; =0x021C59E8 - ldr r0, _0202E5F4 ; =0x00000CB4 - ldr r3, [r1, #0x8] - mov r2, #0x0 - strb r2, [r3, r0] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x1 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x4 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x8] - add r3, #0xf6 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x10 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x8] - add r3, #0xf8 - strb r2, [r4, r3] - ldr r1, [r1, #0x8] - add r0, #0xf7 - strb r2, [r1, r0] - pop {r4-r5} - bx lr - .balign 4 -_0202E5F0: .word 0x021C59E8 -_0202E5F4: .word 0x00000CB4 - - thumb_func_start FUN_0202E5F8 -FUN_0202E5F8: ; 0x0202E5F8 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_0202E594 - add r0, r5, #0x0 - bl FUN_0202E56C - bl FUN_0202D2F4 - ldr r0, _0202E65C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E660 ; =0x00000DAB - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _0202E62A - ldr r0, _0202E664 ; =FUN_020303BC - mov r1, #0xe - bl FUN_0202D0A0 - ldr r0, _0202E65C ; =0x021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E660 ; =0x00000DAB - strb r2, [r1, r0] -_0202E62A: - ldr r0, _0202E65C ; =0x021C59E8 - ldr r3, _0202E668 ; =0x00000DAD - ldr r1, [r0, #0x8] - mov r2, #0x20 - ldrb r0, [r1, r3] - bic r0, r2 - lsl r2, r4, #0x18 - lsr r2, r2, #0x18 - lsl r2, r2, #0x1f - lsr r2, r2, #0x1a - orr r0, r2 - strb r0, [r1, r3] - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202E656 - bl FUN_0202CBFC - cmp r0, #0x0 - beq _0202E656 - mov r0, #0x1 - pop {r3-r5, pc} -_0202E656: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0202E65C: .word 0x021C59E8 -_0202E660: .word 0x00000DAB -_0202E664: .word FUN_020303BC -_0202E668: .word 0x00000DAD - - thumb_func_start FUN_0202E66C -FUN_0202E66C: ; 0x0202E66C - push {r4, lr} - sub sp, #0x8 - add r4, r1, #0x0 - bl FUN_0202E594 - cmp r4, #0x0 - beq _0202E67E - bl FUN_0202E538 -_0202E67E: - ldr r0, _0202E6DC ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E6E0 ; =0x00000DAB - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _0202E69C - ldr r0, _0202E6E4 ; =FUN_02030238 - mov r1, #0xe - bl FUN_0202D0A0 - ldr r0, _0202E6DC ; =0x021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E6E0 ; =0x00000DAB - strb r2, [r1, r0] -_0202E69C: - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202E6D4 - ldr r2, _0202E6E8 ; =0x020EEC40 - add r0, sp, #0x0 - ldrb r3, [r2, #0x0] - add r1, sp, #0x0 - strb r3, [r0, #0x0] - ldrb r3, [r2, #0x1] - strb r3, [r0, #0x1] - ldrb r3, [r2, #0x2] - strb r3, [r0, #0x2] - ldrb r3, [r2, #0x3] - strb r3, [r0, #0x3] - ldrb r3, [r2, #0x4] - ldrb r2, [r2, #0x5] - strb r3, [r0, #0x4] - strb r2, [r0, #0x5] - ldr r0, _0202E6EC ; =FUN_0202E380 - mov r2, #0x0 - bl FUN_0202C570 - cmp r0, #0x0 - beq _0202E6D4 - add sp, #0x8 - mov r0, #0x1 - pop {r4, pc} -_0202E6D4: - mov r0, #0x0 - add sp, #0x8 - pop {r4, pc} - nop -_0202E6DC: .word 0x021C59E8 -_0202E6E0: .word 0x00000DAB -_0202E6E4: .word FUN_02030238 -_0202E6E8: .word 0x020EEC40 -_0202E6EC: .word FUN_0202E380 - - thumb_func_start FUN_0202E6F0 -FUN_0202E6F0: ; 0x0202E6F0 - push {r3, lr} - ldr r0, _0202E77C ; =0x021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - bne _0202E6FE - mov r0, #0x1 - pop {r3, pc} -_0202E6FE: - ldr r0, _0202E780 ; =0x00000DAC - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202E710 - cmp r0, #0x1 - beq _0202E740 - cmp r0, #0x2 - beq _0202E758 - b _0202E776 -_0202E710: - bl FUN_0202D21C - cmp r0, #0x0 - beq _0202E728 - bl FUN_0202C770 - ldr r0, _0202E77C ; =0x021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E728: - bl FUN_0202D1E4 - cmp r0, #0x0 - bne _0202E776 - bl FUN_0202D100 - ldr r0, _0202E77C ; =0x021C59E8 - mov r2, #0x2 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E740: - bl FUN_0202D1E4 - cmp r0, #0x0 - bne _0202E776 - bl FUN_0202D100 - ldr r0, _0202E77C ; =0x021C59E8 - mov r2, #0x2 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E758: - bl FUN_0202D1C8 - cmp r0, #0x0 - beq _0202E764 - mov r0, #0x1 - pop {r3, pc} -_0202E764: - bl FUN_0202D200 - cmp r0, #0x0 - beq _0202E776 - ldr r0, _0202E77C ; =0x021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] -_0202E776: - mov r0, #0x0 - pop {r3, pc} - nop -_0202E77C: .word 0x021C59E8 -_0202E780: .word 0x00000DAC - - thumb_func_start FUN_0202E784 -FUN_0202E784: ; 0x0202E784 - push {r3, lr} - ldr r0, _0202E7A8 ; =0x021C59E8 - ldr r2, [r0, #0x8] - cmp r2, #0x0 - beq _0202E7A2 - ldr r0, _0202E7AC ; =0x00000DAA - ldrb r1, [r2, r0] - cmp r1, #0x0 - bne _0202E7A2 - mov r1, #0x1 - strb r1, [r2, r0] - bl FUN_0202D100 - mov r0, #0x1 - pop {r3, pc} -_0202E7A2: - mov r0, #0x0 - pop {r3, pc} - nop -_0202E7A8: .word 0x021C59E8 -_0202E7AC: .word 0x00000DAA - - thumb_func_start FUN_0202E7B0 -FUN_0202E7B0: ; 0x0202E7B0 - push {r3, lr} - ldr r1, _0202E7D0 ; =0x021C59E8 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0202E7CE - cmp r0, #0x0 - ldr r0, _0202E7D4 ; =0x00000DAA - beq _0202E7C6 - mov r1, #0x2 - strb r1, [r2, r0] - pop {r3, pc} -_0202E7C6: - mov r1, #0x0 - strb r1, [r2, r0] - bl FUN_0202E500 -_0202E7CE: - pop {r3, pc} - .balign 4 -_0202E7D0: .word 0x021C59E8 -_0202E7D4: .word 0x00000DAA - - thumb_func_start FUN_0202E7D8 -FUN_0202E7D8: ; 0x0202E7D8 - push {r3, lr} - ldr r0, _0202E804 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E808 ; =0x00000CBC - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202E804 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E80C ; =0x00000CA4 - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202E804 ; =0x021C59E8 - ldr r0, [r0, #0x8] - bl FUN_02016A18 - ldr r0, _0202E804 ; =0x021C59E8 - mov r1, #0x0 - str r1, [r0, #0x8] - pop {r3, pc} - nop -_0202E804: .word 0x021C59E8 -_0202E808: .word 0x00000CBC -_0202E80C: .word 0x00000CA4 - - thumb_func_start FUN_0202E810 -FUN_0202E810: ; 0x0202E810 - push {r4, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _0202E81E - mov r0, #0x0 - pop {r4, pc} -_0202E81E: - ldr r1, _0202E83C ; =0x021C59E8 - mov r0, #0x0 - ldr r4, [r1, #0x8] - ldr r1, _0202E840 ; =0x00000C84 - add r3, r0, #0x0 -_0202E828: - ldrh r2, [r4, r1] - cmp r2, #0x0 - beq _0202E830 - add r0, r0, #0x1 -_0202E830: - add r3, r3, #0x1 - add r4, r4, #0x2 - cmp r3, #0x10 - blt _0202E828 - pop {r4, pc} - nop -_0202E83C: .word 0x021C59E8 -_0202E840: .word 0x00000C84 - - thumb_func_start FUN_0202E844 -FUN_0202E844: ; 0x0202E844 - push {r3-r5, lr} - ldr r1, _0202E870 ; =0x021C59E8 - mov r4, #0x0 - ldr r5, [r1, #0x8] - ldr r1, _0202E874 ; =0x00000C84 - add r3, r4, #0x0 -_0202E850: - ldrh r2, [r5, r1] - cmp r2, #0x0 - beq _0202E860 - cmp r4, r0 - bne _0202E85E - add r0, r3, #0x0 - pop {r3-r5, pc} -_0202E85E: - add r4, r4, #0x1 -_0202E860: - add r3, r3, #0x1 - add r5, r5, #0x2 - cmp r3, #0x10 - blt _0202E850 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202E870: .word 0x021C59E8 -_0202E874: .word 0x00000C84 - - thumb_func_start FUN_0202E878 -FUN_0202E878: ; 0x0202E878 - ldr r0, _0202E884 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E888 ; =0x00000CB4 - ldrb r0, [r1, r0] - bx lr - nop -_0202E884: .word 0x021C59E8 -_0202E888: .word 0x00000CB4 - - thumb_func_start FUN_0202E88C -FUN_0202E88C: ; 0x0202E88C - ldr r0, _0202E898 ; =0x021C59E8 - mov r2, #0x0 - ldr r1, [r0, #0x8] - ldr r0, _0202E89C ; =0x00000CB4 - strb r2, [r1, r0] - bx lr - .balign 4 -_0202E898: .word 0x021C59E8 -_0202E89C: .word 0x00000CB4 - - thumb_func_start FUN_0202E8A0 -FUN_0202E8A0: ; 0x0202E8A0 - ldr r1, _0202E8C8 ; =0x021C59E8 - ldr r3, [r1, #0x8] - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202E8CC ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E8C2 - mov r1, #0xc0 - mul r1, r0 - add r0, r3, r1 - add r0, #0xaa - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202E8C4 - mov r0, #0x1 - bx lr -_0202E8C2: - mov r0, #0x0 -_0202E8C4: - bx lr - nop -_0202E8C8: .word 0x021C59E8 -_0202E8CC: .word 0x00000C84 - - thumb_func_start FUN_0202E8D0 -FUN_0202E8D0: ; 0x0202E8D0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0xf -_0202E8D6: - add r0, r4, #0x0 - bl FUN_0202E8A0 - cmp r0, r5 - ble _0202E8E8 - cmp r0, #0x8 - bge _0202E8E8 - add r0, r4, #0x0 - pop {r3-r5, pc} -_0202E8E8: - sub r4, r4, #0x1 - bpl _0202E8D6 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202E8F4 -FUN_0202E8F4: ; 0x0202E8F4 - push {r3-r7, lr} - bl FUN_0202E810 - cmp r0, #0x0 - bne _0202E904 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} -_0202E904: - mov r5, #0x2d - ldr r7, _0202E948 ; =0x021C59E8 - mov r6, #0xf - mov r4, #0x1e - lsl r5, r5, #0x6 -_0202E90E: - ldr r0, [r7, #0x8] - ldr r1, _0202E94C ; =0x00000C84 - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E938 - add r0, #0x58 - add r0, r0, r5 - bl FUN_0202EFE4 - cmp r0, #0x0 - beq _0202E938 - add r0, r6, #0x0 - bl FUN_0202E8A0 - cmp r0, #0x1 - ble _0202E938 - cmp r0, #0x8 - bge _0202E938 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0202E938: - sub r4, r4, #0x2 - sub r5, #0xc0 - sub r6, r6, #0x1 - bpl _0202E90E - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} - nop -_0202E948: .word 0x021C59E8 -_0202E94C: .word 0x00000C84 - - thumb_func_start FUN_0202E950 -FUN_0202E950: ; 0x0202E950 - push {r3-r7, lr} - bl FUN_0202E810 - cmp r0, #0x0 - bne _0202E960 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} -_0202E960: - mov r5, #0x2d - ldr r7, _0202E9A4 ; =0x021C59E8 - mov r6, #0xf - mov r4, #0x1e - lsl r5, r5, #0x6 -_0202E96A: - ldr r0, [r7, #0x8] - ldr r1, _0202E9A8 ; =0x00000C84 - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E986 - add r0, #0x58 - add r0, r0, r5 - bl FUN_0202EFE4 - cmp r0, #0x0 - beq _0202E986 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0202E986: - sub r4, r4, #0x2 - sub r5, #0xc0 - sub r6, r6, #0x1 - bpl _0202E96A - mov r0, #0x1 - bl FUN_0202E8D0 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - bne _0202E9A2 - mov r0, #0x0 - bl FUN_0202E8D0 -_0202E9A2: - pop {r3-r7, pc} - .balign 4 -_0202E9A4: .word 0x021C59E8 -_0202E9A8: .word 0x00000C84 - - thumb_func_start FUN_0202E9AC -FUN_0202E9AC: ; 0x0202E9AC - push {r4-r6, lr} - add r4, r1, #0x0 - ldr r1, _0202E9E0 ; =0x021C59E8 - mov r5, #0x0 - ldr r6, [r1, #0x8] - ldr r1, _0202E9E4 ; =0x00000C84 - add r3, r5, #0x0 -_0202E9BA: - ldrh r2, [r6, r1] - cmp r2, #0x0 - beq _0202E9D4 - cmp r0, r5 - bne _0202E9D2 - add r0, r3, #0x0 - bl FUN_0202EF84 - add r1, r4, #0x0 - bl FUN_0202393C - pop {r4-r6, pc} -_0202E9D2: - add r5, r5, #0x1 -_0202E9D4: - add r3, r3, #0x1 - add r6, r6, #0x2 - cmp r3, #0x10 - blt _0202E9BA - pop {r4-r6, pc} - nop -_0202E9E0: .word 0x021C59E8 -_0202E9E4: .word 0x00000C84 - - thumb_func_start FUN_0202E9E8 -FUN_0202E9E8: ; 0x0202E9E8 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0202CBD4 - cmp r0, #0x2 - bne _0202E9FC - bl FUN_0202C770 - mov r0, #0x0 - pop {r3-r5, pc} -_0202E9FC: - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202EA48 - bl FUN_02033534 - mov r1, #0xc0 - add r4, r5, #0x0 - mul r4, r1 - ldr r1, _0202EA4C ; =0x021C59E8 - ldr r3, [r1, #0x8] - add r1, r3, r4 - add r1, #0x8a - ldrh r2, [r1, #0x0] - ldr r1, _0202EA50 ; =0x00000DA8 - strb r2, [r3, r1] - bl FUN_0202D8B0 - cmp r0, #0x0 - beq _0202EA36 - ldr r1, _0202EA4C ; =0x021C59E8 - mov r0, #0x1 - ldr r1, [r1, #0x8] - mov r2, #0x0 - add r1, #0x58 - add r1, r1, r4 - bl FUN_0202C4D8 - b _0202EA44 -_0202EA36: - ldr r1, _0202EA4C ; =0x021C59E8 - mov r0, #0x1 - ldr r1, [r1, #0x8] - add r1, #0x54 - add r1, r1, r4 - bl FUN_0202D034 -_0202EA44: - mov r0, #0x1 - pop {r3-r5, pc} -_0202EA48: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202EA4C: .word 0x021C59E8 -_0202EA50: .word 0x00000DA8 - - thumb_func_start FUN_0202EA54 -FUN_0202EA54: ; 0x0202EA54 - push {r4-r7} - mov r4, #0x0 - ldr r1, _0202EA90 ; =0x021C59E8 - ldr r0, _0202EA94 ; =0x00000C84 - add r5, r4, #0x0 - mov r2, #0x1 -_0202EA60: - ldr r3, [r1, #0x8] - add r3, r3, r5 - ldrh r6, [r3, r0] - cmp r6, #0x0 - beq _0202EA84 - beq _0202EA84 - ldr r6, _0202EA94 ; =0x00000C84 - ldrh r6, [r3, r6] - sub r7, r6, #0x1 - ldr r6, _0202EA94 ; =0x00000C84 - strh r7, [r3, r6] - ldr r3, [r1, #0x8] - add r7, r3, r5 - ldrh r6, [r7, r6] - cmp r6, #0x0 - bne _0202EA84 - ldr r6, _0202EA98 ; =0x00000CB4 - strb r2, [r3, r6] -_0202EA84: - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, #0x10 - blt _0202EA60 - pop {r4-r7} - bx lr - .balign 4 -_0202EA90: .word 0x021C59E8 -_0202EA94: .word 0x00000C84 -_0202EA98: .word 0x00000CB4 - - thumb_func_start FUN_0202EA9C -FUN_0202EA9C: ; 0x0202EA9C - push {r3-r5, lr} - bl FUN_02033534 - add r5, r0, #0x0 - bl FUN_0202EF70 - add r4, r0, #0x0 - cmp r5, #0xf - beq _0202EB24 - ldr r0, _0202EB6C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r5, r1, r0 - bl FUN_02023AC4 - cmp r0, #0x20 - ble _0202EAC2 - bl ErrorHandling -_0202EAC2: - bl FUN_02023924 - cmp r0, #0x20 - beq _0202EACE - bl ErrorHandling -_0202EACE: - bl FUN_02023924 - add r1, r5, #0x0 - add r2, r0, #0x0 - add r0, r4, #0x0 - add r1, #0x10 - bl MI_CpuCopy8 - bl FUN_02023AC4 - add r2, r0, #0x0 - ldr r0, _0202EB6C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB74 ; =0x00000CBC - ldr r0, [r1, r0] - add r1, r5, #0x0 - add r1, #0x30 - bl MI_CpuCopy8 - add r0, r4, #0x0 - bl FUN_020239BC - str r0, [r5, #0x0] - bl FUN_02033534 - strb r0, [r5, #0x4] - bl FUN_0203354C - strb r0, [r5, #0x5] - ldr r0, _0202EB6C ; =0x021C59E8 - mov r2, #0x8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB78 ; =0x00000CA8 - add r0, r1, r0 - add r1, r5, #0x0 - add r1, #0x8 - bl MI_CpuCopy8 - bl FUN_0202D358 - add r5, #0x54 - strb r0, [r5, #0x0] - b _0202EB4E -_0202EB24: - ldr r1, _0202EB6C ; =0x021C59E8 - ldr r4, [r1, #0x8] - ldr r1, _0202EB70 ; =0x00000CC4 - add r5, r4, r1 - bl FUN_020239BC - ldr r1, _0202EB70 ; =0x00000CC4 - str r0, [r4, r1] - bl FUN_02033534 - strb r0, [r5, #0x4] - bl FUN_0203354C - strb r0, [r5, #0x5] - ldr r0, _0202EB6C ; =0x021C59E8 - add r5, #0x8 - ldr r0, [r0, #0x8] - add r1, r5, #0x0 - mov r2, #0x54 - bl MI_CpuCopy8 -_0202EB4E: - ldr r0, _0202EB6C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl DC_FlushRange - ldr r0, _0202EB6C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl FUN_0202CB7C - pop {r3-r5, pc} - .balign 4 -_0202EB6C: .word 0x021C59E8 -_0202EB70: .word 0x00000CC4 -_0202EB74: .word 0x00000CBC -_0202EB78: .word 0x00000CA8 - - thumb_func_start FUN_0202EB7C -FUN_0202EB7C: ; 0x0202EB7C - push {r4, lr} - ldr r0, _0202EBC8 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r4, r1, r0 - bl FUN_0202EDB8 - ldrb r1, [r4, #0x6] - cmp r1, r0 - beq _0202EBC6 - bl FUN_0202EDB8 - strb r0, [r4, #0x6] - ldr r0, _0202EBC8 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl DC_FlushRange - ldr r0, _0202EBC8 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl FUN_0202CB7C - ldr r3, _0202EBC8 ; =0x021C59E8 - ldr r2, _0202EBCC ; =0x00000CC4 - ldr r4, [r3, #0x8] - ldrh r3, [r3, #0x0] - add r0, r4, r2 - sub r2, r2, #0x4 - ldr r2, [r4, r2] - mov r1, #0x5c - bl FUN_0202D240 -_0202EBC6: - pop {r4, pc} - .balign 4 -_0202EBC8: .word 0x021C59E8 -_0202EBCC: .word 0x00000CC4 - - thumb_func_start FUN_0202EBD0 -FUN_0202EBD0: ; 0x0202EBD0 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_0202CBD4 - add r5, r0, #0x0 - bl FUN_0202DF54 - bl FUN_0202EB7C - bl FUN_0202D19C - cmp r0, #0x0 - bne _0202EC0C - bl FUN_0202EE24 - cmp r0, #0x0 - bne _0202EC0C - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED54 ; =0x00000DAD - ldrb r1, [r2, r0] - lsl r3, r1, #0x1d - lsr r3, r3, #0x1f - beq _0202EC0C - mov r3, #0x1 - bic r1, r3 - mov r3, #0x1 - orr r1, r3 - strb r1, [r2, r0] -_0202EC0C: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r1, _0202ED58 ; =0x0000FFFF - ldr r3, [r0, #0x8] - ldr r0, _0202ED5C ; =0x00000DA6 - ldrh r2, [r3, r0] - cmp r2, r1 - bne _0202EC1C - strh r4, [r3, r0] -_0202EC1C: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED54 ; =0x00000DAD - ldrb r1, [r2, r0] - lsl r3, r1, #0x1e - lsr r3, r3, #0x1f - beq _0202EC3C - sub r3, r0, #0x7 - ldrh r3, [r2, r3] - cmp r3, r4 - bls _0202EC3C - mov r3, #0x1 - bic r1, r3 - mov r3, #0x1 - orr r1, r3 - strb r1, [r2, r0] -_0202EC3C: - bl FUN_0202CBE8 - cmp r0, #0x19 - bne _0202EC4A - mov r0, #0x0 - bl FUN_020335D0 -_0202EC4A: - cmp r5, #0x9 - bhi _0202ED4C - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202EC5A: ; jump table (using 16-bit offset) - .short _0202EC6E - _0202EC5A - 2; case 0 - .short _0202EC8E - _0202EC5A - 2; case 1 - .short _0202ED4C - _0202EC5A - 2; case 2 - .short _0202ED4C - _0202EC5A - 2; case 3 - .short _0202ED4C - _0202EC5A - 2; case 4 - .short _0202ED4C - _0202EC5A - 2; case 5 - .short _0202ED4C - _0202EC5A - 2; case 6 - .short _0202ECD2 - _0202EC5A - 2; case 7 - .short _0202ECB8 - _0202EC5A - 2; case 8 - .short _0202ECB8 - _0202EC5A - 2; case 9 -_0202EC6E: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r1, [r2, r0] - cmp r1, #0x1 - bne _0202EC82 - bl FUN_0202E7D8 - add sp, #0x8 - pop {r3-r5, pc} -_0202EC82: - cmp r1, #0x2 - bne _0202ED4C - mov r1, #0x3 - strb r1, [r2, r0] - add sp, #0x8 - pop {r3-r5, pc} -_0202EC8E: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x1 - bne _0202ECA2 - bl FUN_0202D178 - cmp r0, #0x0 - bne _0202ED4C -_0202ECA2: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _0202ED4C - bl FUN_0202D178 - add sp, #0x8 - cmp r0, #0x0 - pop {r3-r5, pc} -_0202ECB8: - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r3, [r0, #0x8] - cmp r3, #0x0 - beq _0202ED4C - ldr r1, _0202ED54 ; =0x00000DAD - mov r0, #0x1 - ldrb r2, [r3, r1] - add sp, #0x8 - bic r2, r0 - mov r0, #0x1 - orr r0, r2 - strb r0, [r3, r1] - pop {r3-r5, pc} -_0202ECD2: - bl FUN_0202CDA4 - ldr r3, _0202ED50 ; =0x021C59E8 - ldr r2, _0202ED64 ; =0x00000DA9 - ldr r4, [r3, #0x8] - ldrb r1, [r4, r2] - cmp r1, #0x0 - bne _0202ECEE - sub r1, r2, #0x5 - strh r0, [r4, r1] - ldr r0, [r3, #0x8] - mov r1, #0x5 - strb r1, [r0, r2] - b _0202ECF2 -_0202ECEE: - sub r0, r1, #0x1 - strb r0, [r4, r2] -_0202ECF2: - ldr r1, _0202ED50 ; =0x021C59E8 - ldr r0, _0202ED68 ; =0x00000DA4 - ldr r2, [r1, #0x8] - ldrh r5, [r2, r0] - add r0, #0x9 - ldrb r0, [r2, r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - beq _0202ED0A - ldrh r0, [r1, #0x0] - add r0, r0, #0x1 - strh r0, [r1, #0x0] -_0202ED0A: - bl FUN_0202EA9C - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202EEE8 - str r0, [sp, #0x0] - ldr r1, _0202ED50 ; =0x021C59E8 - ldr r0, _0202ED54 ; =0x00000DAD - ldr r2, [r1, #0x8] - add r3, r4, #0x0 - ldrb r0, [r2, r0] - add r2, r5, #0x0 - lsl r0, r0, #0x1a - lsr r0, r0, #0x1f - str r0, [sp, #0x4] - ldrh r1, [r1, #0x0] - mov r0, #0x0 - bl FUN_0202CF84 - ldr r0, _0202ED50 ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED6C ; =0x00000DA8 - strb r5, [r1, r0] -_0202ED4C: - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_0202ED50: .word 0x021C59E8 -_0202ED54: .word 0x00000DAD -_0202ED58: .word 0x0000FFFF -_0202ED5C: .word 0x00000DA6 -_0202ED60: .word 0x00000DAA -_0202ED64: .word 0x00000DA9 -_0202ED68: .word 0x00000DA4 -_0202ED6C: .word 0x00000DA8 - - thumb_func_start FUN_0202ED70 -FUN_0202ED70: ; 0x0202ED70 - push {r3, lr} - ldr r1, _0202ED80 ; =0x021C59E8 - ldr r1, [r1, #0x8] - cmp r1, #0x0 - beq _0202ED7E - bl FUN_0202EBD0 -_0202ED7E: - pop {r3, pc} - .balign 4 -_0202ED80: .word 0x021C59E8 - - thumb_func_start FUN_0202ED84 -FUN_0202ED84: ; 0x0202ED84 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0202EDB4 ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0202ED94 - mov r0, #0x0 - pop {r4, pc} -_0202ED94: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _0202EDA0 - mov r0, #0x0 - pop {r4, pc} -_0202EDA0: - bl FUN_0202CB8C - mov r2, #0x1 - add r1, r2, #0x0 - lsl r1, r4 - tst r0, r1 - bne _0202EDB0 - mov r2, #0x0 -_0202EDB0: - add r0, r2, #0x0 - pop {r4, pc} - .balign 4 -_0202EDB4: .word 0x021C59E8 - - thumb_func_start FUN_0202EDB8 -FUN_0202EDB8: ; 0x0202EDB8 - push {r3-r5, lr} - mov r4, #0x0 - add r5, r4, #0x0 -_0202EDBE: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202ED84 - cmp r0, #0x0 - beq _0202EDCC - add r4, r4, #0x1 -_0202EDCC: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202EDBE - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202EDD8 -FUN_0202EDD8: ; 0x0202EDD8 - ldr r0, _0202EDF0 ; =0x021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202EDEC - ldr r0, _0202EDF4 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x3 - bne _0202EDEC - mov r0, #0x1 - bx lr -_0202EDEC: - mov r0, #0x0 - bx lr - .balign 4 -_0202EDF0: .word 0x021C59E8 -_0202EDF4: .word 0x00000DAA - - thumb_func_start FUN_0202EDF8 -FUN_0202EDF8: ; 0x0202EDF8 - ldr r0, _0202EE08 ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE04 - mov r0, #0x1 - bx lr -_0202EE04: - mov r0, #0x0 - bx lr - .balign 4 -_0202EE08: .word 0x021C59E8 - - thumb_func_start FUN_0202EE0C -FUN_0202EE0C: ; 0x0202EE0C - push {r3, lr} - ldr r0, _0202EE20 ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE1C - bl FUN_0202D1C8 - pop {r3, pc} -_0202EE1C: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202EE20: .word 0x021C59E8 - - thumb_func_start FUN_0202EE24 -FUN_0202EE24: ; 0x0202EE24 - push {r3, lr} - ldr r0, _0202EE3C ; =0x021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE38 - bl FUN_0202CB8C - ldr r1, _0202EE40 ; =0x0000FFFE - and r0, r1 - pop {r3, pc} -_0202EE38: - mov r0, #0x0 - pop {r3, pc} - .balign 4 -_0202EE3C: .word 0x021C59E8 -_0202EE40: .word 0x0000FFFE - - thumb_func_start FUN_0202EE44 -FUN_0202EE44: ; 0x0202EE44 - push {r3, lr} - bl FUN_0202EE60 - cmp r0, #0x0 - beq _0202EE5A - bl FUN_0202CBE8 - cmp r0, #0x14 - bne _0202EE5A - mov r0, #0x1 - pop {r3, pc} -_0202EE5A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202EE60 -FUN_0202EE60: ; 0x0202EE60 - ldr r0, _0202EE7C ; =0x021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202EE76 - ldr r0, _0202EE80 ; =0x00000DAD - ldrb r0, [r1, r0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _0202EE76 - mov r0, #0x1 - bx lr -_0202EE76: - mov r0, #0x0 - bx lr - nop -_0202EE7C: .word 0x021C59E8 -_0202EE80: .word 0x00000DAD - - thumb_func_start FUN_0202EE84 -FUN_0202EE84: ; 0x0202EE84 - push {r3-r4} - ldr r1, _0202EEA8 ; =0x021C59E8 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0202EEA2 - ldr r4, _0202EEAC ; =0x00000DAD - lsl r0, r0, #0x18 - ldrb r1, [r2, r4] - lsr r0, r0, #0x18 - mov r3, #0x4 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1d - orr r0, r1 - strb r0, [r2, r4] -_0202EEA2: - pop {r3-r4} - bx lr - nop -_0202EEA8: .word 0x021C59E8 -_0202EEAC: .word 0x00000DAD - - thumb_func_start FUN_0202EEB0 -FUN_0202EEB0: ; 0x0202EEB0 - push {r4-r5} - ldr r5, _0202EEDC ; =0x021C59E8 - ldr r2, [r5, #0x8] - cmp r2, #0x0 - beq _0202EED6 - ldr r4, _0202EEE0 ; =0x00000DAD - lsl r0, r0, #0x18 - ldrb r1, [r2, r4] - lsr r0, r0, #0x18 - mov r3, #0x2 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1e - orr r0, r1 - strb r0, [r2, r4] - ldr r2, _0202EEE4 ; =0x0000FFFF - ldr r1, [r5, #0x8] - sub r0, r4, #0x7 - strh r2, [r1, r0] -_0202EED6: - pop {r4-r5} - bx lr - nop -_0202EEDC: .word 0x021C59E8 -_0202EEE0: .word 0x00000DAD -_0202EEE4: .word 0x0000FFFF - - thumb_func_start FUN_0202EEE8 -FUN_0202EEE8: ; 0x0202EEE8 - push {r3-r5, lr} - add r5, r0, #0x0 - bl WM_GetDispersionBeaconPeriod - add r4, r0, #0x0 - cmp r5, #0x1a - blo _0202EEFA - bl ErrorHandling -_0202EEFA: - cmp r5, #0xa - bne _0202EF04 - lsl r0, r4, #0xe - lsr r0, r0, #0x10 - pop {r3-r5, pc} -_0202EF04: - cmp r5, #0x9 - beq _0202EF0C - cmp r5, #0xd - bne _0202EF12 -_0202EF0C: - lsl r0, r4, #0xe - lsr r0, r0, #0x10 - pop {r3-r5, pc} -_0202EF12: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202EF18 -FUN_0202EF18: ; 0x0202EF18 - ldr r1, _0202EF3C ; =0x021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202EF36 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EF40 ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202EF36 - mov r1, #0xc0 - add r3, #0x54 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202EF36: - mov r0, #0x0 - bx lr - nop -_0202EF3C: .word 0x021C59E8 -_0202EF40: .word 0x00000C84 - - thumb_func_start FUN_0202EF44 -FUN_0202EF44: ; 0x0202EF44 - ldr r1, _0202EF68 ; =0x021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202EF62 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EF6C ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202EF62 - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202EF62: - mov r0, #0x0 - bx lr - nop -_0202EF68: .word 0x021C59E8 -_0202EF6C: .word 0x00000C84 - - thumb_func_start FUN_0202EF70 -FUN_0202EF70: ; 0x0202EF70 - ldr r0, _0202EF7C ; =0x021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EF80 ; =0x00000CB8 - ldr r0, [r1, r0] - bx lr - nop -_0202EF7C: .word 0x021C59E8 -_0202EF80: .word 0x00000CB8 - - thumb_func_start FUN_0202EF84 -FUN_0202EF84: ; 0x0202EF84 - ldr r1, _0202EFA4 ; =0x021C59E8 - ldr r3, [r1, #0x8] - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EFA8 ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - bne _0202EF98 - mov r0, #0x0 - bx lr -_0202EF98: - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - add r0, #0x10 - bx lr - .balign 4 -_0202EFA4: .word 0x021C59E8 -_0202EFA8: .word 0x00000C84 - - thumb_func_start FUN_0202EFAC -FUN_0202EFAC: ; 0x0202EFAC - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0202EFDC ; =0x021C59E8 - add r4, r1, #0x0 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EFD8 - cmp r4, #0x8 - blt _0202EFC2 - bl ErrorHandling -_0202EFC2: - ldr r1, _0202EFDC ; =0x021C59E8 - add r0, r5, #0x0 - ldr r2, [r1, #0x8] - ldr r1, _0202EFE0 ; =0x00000C54 - add r3, r2, r1 - mov r2, #0x6 - add r1, r4, #0x0 - mul r1, r2 - add r1, r3, r1 - bl MI_CpuCopy8 -_0202EFD8: - pop {r3-r5, pc} - nop -_0202EFDC: .word 0x021C59E8 -_0202EFE0: .word 0x00000C54 - - thumb_func_start FUN_0202EFE4 -FUN_0202EFE4: ; 0x0202EFE4 - push {r4-r5} - ldr r2, _0202F034 ; =0x021C59E8 - mov r1, #0x0 - ldr r3, [r2, #0x8] - ldr r2, _0202F038 ; =0x00000C54 - add r2, r3, r2 - ldrb r3, [r0, #0x0] -_0202EFF2: - ldrb r4, [r2, #0x0] - cmp r4, r3 - bne _0202F026 - ldrb r5, [r2, #0x1] - ldrb r4, [r0, #0x1] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x2] - ldrb r4, [r0, #0x2] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x3] - ldrb r4, [r0, #0x3] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x4] - ldrb r4, [r0, #0x4] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x5] - ldrb r4, [r0, #0x5] - cmp r5, r4 - bne _0202F026 - mov r0, #0x1 - pop {r4-r5} - bx lr -_0202F026: - add r1, r1, #0x1 - add r2, r2, #0x6 - cmp r1, #0x8 - blt _0202EFF2 - mov r0, #0x0 - pop {r4-r5} - bx lr - .balign 4 -_0202F034: .word 0x021C59E8 -_0202F038: .word 0x00000C54 - - thumb_func_start FUN_0202F03C -FUN_0202F03C: ; 0x0202F03C - ldr r0, _0202F054 ; =0x021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202F04E - ldr r0, _0202F058 ; =0x00000DAD - ldrb r0, [r1, r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - bx lr -_0202F04E: - mov r0, #0x0 - bx lr - nop -_0202F054: .word 0x021C59E8 -_0202F058: .word 0x00000DAD - - thumb_func_start FUN_0202F05C -FUN_0202F05C: ; 0x0202F05C - ldr r0, _0202F070 ; =0x021C59E8 - ldr r3, [r0, #0x8] - cmp r3, #0x0 - beq _0202F06E - ldr r1, _0202F074 ; =0x00000DAD - mov r0, #0x10 - ldrb r2, [r3, r1] - orr r0, r2 - strb r0, [r3, r1] -_0202F06E: - bx lr - .balign 4 -_0202F070: .word 0x021C59E8 -_0202F074: .word 0x00000DAD - - thumb_func_start FUN_0202F078 -FUN_0202F078: ; 0x0202F078 - ldr r1, _0202F088 ; =0x021C59E8 - ldr r3, _0202F08C ; =MI_CpuCopy8 - ldr r2, [r1, #0x8] - ldr r1, _0202F090 ; =0x00000CA8 - add r1, r2, r1 - mov r2, #0x8 - bx r3 - nop -_0202F088: .word 0x021C59E8 -_0202F08C: .word MI_CpuCopy8 -_0202F090: .word 0x00000CA8 - - thumb_func_start FUN_0202F094 -FUN_0202F094: ; 0x0202F094 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02023AC4 - ldr r1, _0202F0B0 ; =0x021C59E8 - add r2, r0, #0x0 - ldr r3, [r1, #0x8] - ldr r1, _0202F0B4 ; =0x00000CBC - add r0, r4, #0x0 - ldr r1, [r3, r1] - bl MI_CpuCopy8 - pop {r4, pc} - nop -_0202F0B0: .word 0x021C59E8 -_0202F0B4: .word 0x00000CBC - - thumb_func_start FUN_0202F0B8 -FUN_0202F0B8: ; 0x0202F0B8 - push {r4, lr} - bl FUN_0202EA9C - ldr r3, _0202F0D4 ; =0x021C59E8 - ldr r2, _0202F0D8 ; =0x00000CC4 - ldr r4, [r3, #0x8] - ldrh r3, [r3, #0x0] - add r0, r4, r2 - sub r2, r2, #0x4 - ldr r2, [r4, r2] - mov r1, #0x5c - bl FUN_0202D240 - pop {r4, pc} - .balign 4 -_0202F0D4: .word 0x021C59E8 -_0202F0D8: .word 0x00000CC4 - - thumb_func_start FUN_0202F0DC -FUN_0202F0DC: ; 0x0202F0DC - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_0202F0E4: - add r0, r4, #0x0 - bl FUN_0202EF44 - cmp r0, #0x0 - beq _0202F0F8 - ldrb r1, [r0, #0x4] - cmp r1, r6 - bne _0202F0F8 - ldrb r0, [r0, #0x6] - add r5, r5, r0 -_0202F0F8: - add r4, r4, #0x1 - cmp r4, #0x10 - blt _0202F0E4 - add r0, r5, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202F104 -FUN_0202F104: ; 0x0202F104 - ldr r3, _0202F108 ; =FUN_0202D2D0 - bx r3 - .balign 4 -_0202F108: .word FUN_0202D2D0 - - thumb_func_start FUN_0202F10C -FUN_0202F10C: ; 0x0202F10C - push {r3, lr} - ldr r1, _0202F120 ; =0x021C59E8 - mov r2, #0x54 - ldr r1, [r1, #0x8] - bl MI_CpuCopy8 - bl FUN_0202F0B8 - pop {r3, pc} - nop -_0202F120: .word 0x021C59E8 - - thumb_func_start FUN_0202F124 -FUN_0202F124: ; 0x0202F124 - ldr r1, _0202F148 ; =0x021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202F144 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202F14C ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202F144 - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - add r0, #0x8 - bx lr -_0202F144: - mov r0, #0x0 - bx lr - .balign 4 -_0202F148: .word 0x021C59E8 -_0202F14C: .word 0x00000C84 - - thumb_func_start FUN_0202F150 -FUN_0202F150: ; 0x0202F150 - push {r4-r6, lr} - add r6, r1, #0x0 - mov r4, #0x0 - ldr r1, _0202F2BC ; =0x021C59F4 - cmp r0, #0x0 - strb r4, [r1, #0x0] - beq _0202F25C - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r5, r0, #0x1 - ldr r0, _0202F2BC ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202F178 - mov r0, #0x1 - pop {r4-r6, pc} -_0202F178: - mov r0, #0xf - bl FUN_02031480 - ldr r1, _0202F2C0 ; =0x0000068C - mov r0, #0xf - bl FUN_02016998 - ldr r1, _0202F2BC ; =0x021C59F4 - ldr r2, _0202F2C0 ; =0x0000068C - str r0, [r1, #0x4] - add r1, r4, #0x0 - bl MI_CpuFill8 - ldr r2, _0202F2BC ; =0x021C59F4 - ldr r1, _0202F2C4 ; =0x00000658 - ldr r0, [r2, #0x4] - add r6, #0x40 - str r6, [r0, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - add r6, r4, #0x0 - add r0, #0x25 - strb r6, [r3, r0] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - mov r6, #0x1b - add r0, #0x26 - strb r6, [r3, r0] - ldr r2, [r2, #0x4] - mov r0, #0xf - ldr r1, [r2, r1] - lsl r1, r1, #0x1 - bl FUN_02016998 - ldr r2, _0202F2BC ; =0x021C59F4 - ldr r1, _0202F2C8 ; =0x0000045C - ldr r3, [r2, #0x4] - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - bl FUN_02016998 - ldr r2, _0202F2BC ; =0x021C59F4 - mov r1, #0x46 - ldr r3, [r2, #0x4] - lsl r1, r1, #0x4 - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - mul r1, r5 - bl FUN_02016998 - ldr r2, _0202F2BC ; =0x021C59F4 - ldr r1, _0202F2CC ; =0x00000458 - ldr r3, [r2, #0x4] - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - mul r1, r5 - bl FUN_02016998 - ldr r1, _0202F2BC ; =0x021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _0202F2D0 ; =0x00000454 - str r0, [r2, r1] - bl FUN_02033534 - cmp r0, #0xa - ldr r2, _0202F2D4 ; =0x0000054C - bne _0202F236 - ldr r0, _0202F2BC ; =0x021C59F4 - mov r1, #0x64 - ldr r3, [r0, #0x4] - add r0, r3, r2 - sub r2, #0xe8 - add r2, r3, r2 - bl FUN_0202D7D8 - ldr r0, _0202F2BC ; =0x021C59F4 - mov r1, #0x32 - ldr r3, [r0, #0x4] - ldr r2, _0202F2D8 ; =0x0000056C - lsl r1, r1, #0x4 - add r0, r3, r2 - sub r2, #0x90 - add r2, r3, r2 - bl FUN_0202D7D8 - b _0202F268 -_0202F236: - ldr r0, _0202F2BC ; =0x021C59F4 - mov r1, #0x14 - ldr r3, [r0, #0x4] - add r0, r3, r2 - sub r2, #0xe8 - add r2, r3, r2 - bl FUN_0202D7D8 - ldr r0, _0202F2BC ; =0x021C59F4 - add r1, r6, #0x0 - ldr r3, [r0, #0x4] - ldr r2, _0202F2D8 ; =0x0000056C - add r1, #0xfd - add r0, r3, r2 - sub r2, #0x90 - add r2, r3, r2 - bl FUN_0202D7D8 - b _0202F268 -_0202F25C: - ldr r0, [r1, #0x4] - mov r4, #0x1 - cmp r0, #0x0 - bne _0202F268 - bl ErrorHandling -_0202F268: - ldr r2, _0202F2BC ; =0x021C59F4 - ldr r1, _0202F2DC ; =0x0000065C - ldr r3, [r2, #0x4] - mov r0, #0x0 - strh r0, [r3, r1] - mov r5, #0xff - add r1, #0x1b -_0202F276: - ldr r3, [r2, #0x4] - add r3, r3, r0 - add r0, r0, #0x1 - strb r5, [r3, r1] - cmp r0, #0x4 - blt _0202F276 - cmp r4, #0x0 - bne _0202F28A - bl FUN_0202F2F0 -_0202F28A: - ldr r0, _0202F2BC ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F2E0 ; =0x000005F8 - add r0, r1, r0 - bl FUN_020312BC - cmp r4, #0x0 - bne _0202F2AC - mov r1, #0x0 - ldr r0, _0202F2E4 ; =FUN_0202FB20 - add r2, r1, #0x0 - bl FUN_0200CA60 - ldr r1, _0202F2BC ; =0x021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _0202F2E8 ; =0x00000548 - str r0, [r2, r1] -_0202F2AC: - ldr r0, _0202F2BC ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F2EC ; =0x00000687 - strb r2, [r1, r0] - mov r0, #0x1 - pop {r4-r6, pc} - nop -_0202F2BC: .word 0x021C59F4 -_0202F2C0: .word 0x0000068C -_0202F2C4: .word 0x00000658 -_0202F2C8: .word 0x0000045C -_0202F2CC: .word 0x00000458 -_0202F2D0: .word 0x00000454 -_0202F2D4: .word 0x0000054C -_0202F2D8: .word 0x0000056C -_0202F2DC: .word 0x0000065C -_0202F2E0: .word 0x000005F8 -_0202F2E4: .word FUN_0202FB20 -_0202F2E8: .word 0x00000548 -_0202F2EC: .word 0x00000687 - - thumb_func_start FUN_0202F2F0 -FUN_0202F2F0: ; 0x0202F2F0 - push {r3-r7, lr} - ldr r3, _0202F54C ; =0x021C59F4 - ldr r2, _0202F550 ; =0x0000062C - ldr r1, [r3, #0x4] - mov r0, #0x0 - strb r0, [r1, r2] - ldr r4, [r3, #0x4] - add r1, r2, #0x1 - strb r0, [r4, r1] - add r1, r2, #0x0 - ldr r4, [r3, #0x4] - add r1, #0x53 - strb r0, [r4, r1] - ldr r1, [r3, #0x4] - add r2, #0x54 - strb r0, [r1, r2] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _0202F54C ; =0x021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F558 ; =0x00000458 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r4, #0x0 - cmp r6, #0x0 - ble _0202F360 - ldr r7, _0202F54C ; =0x021C59F4 - add r5, r4, #0x0 -_0202F33E: - ldr r3, [r7, #0x4] - ldr r0, _0202F554 ; =0x00000658 - ldr r1, _0202F558 ; =0x00000458 - ldr r2, [r3, r0] - ldr r0, _0202F55C ; =0x000004E8 - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r4, #0x0 - mul r1, r2 - add r0, r0, r5 - add r1, r3, r1 - bl FUN_0202D394 - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r6 - blt _0202F33E -_0202F360: - ldr r0, _0202F54C ; =0x021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F560 ; =0x00000454 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r5, #0x0 - cmp r6, #0x0 - ble _0202F3A2 - ldr r7, _0202F54C ; =0x021C59F4 - add r4, r5, #0x0 -_0202F380: - ldr r3, [r7, #0x4] - ldr r0, _0202F554 ; =0x00000658 - ldr r1, _0202F560 ; =0x00000454 - ldr r2, [r3, r0] - ldr r0, _0202F564 ; =0x0000047C - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - add r5, r5, #0x1 - add r4, #0xc - cmp r5, r6 - blt _0202F380 -_0202F3A2: - ldr r0, _0202F54C ; =0x021C59F4 - mov r2, #0x6 - ldr r1, [r0, #0x4] - mov r0, #0xb5 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x0 - lsl r2, r2, #0x6 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =0x021C59F4 - mov r1, #0xb5 - ldr r2, [r0, #0x4] - ldr r0, _0202F568 ; =0x000004DC - lsl r1, r1, #0x2 - add r0, r2, r0 - add r1, r2, r1 - mov r2, #0x6 - lsl r2, r2, #0x6 - bl FUN_0202D394 - mov r0, #0xee - add r2, r0, #0x0 - mov r3, #0x85 - ldr r4, _0202F54C ; =0x021C59F4 - mov r1, #0x0 - add r2, #0x66 - lsl r3, r3, #0x2 -_0202F3DA: - ldr r5, [r4, #0x4] - add r5, r5, r1 - strb r0, [r5, r2] - ldr r5, [r4, #0x4] - add r5, r5, r1 - add r1, r1, #0x1 - strb r0, [r5, r3] - cmp r1, #0xc0 - blt _0202F3DA - ldr r0, _0202F54C ; =0x021C59F4 - mov r2, #0x42 - ldr r0, [r0, #0x4] - mov r1, #0x0 - add r0, #0x4c - lsl r2, r2, #0x2 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =0x021C59F4 - mov r2, #0x42 - ldr r1, [r0, #0x4] - ldr r0, _0202F56C ; =0x00000464 - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, #0x4c - bl FUN_0202D394 - ldr r1, _0202F54C ; =0x021C59F4 - mov r2, #0xff - ldr r0, [r1, #0x4] - mov r3, #0x1 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x4] - add r0, #0x26 - strb r2, [r0, #0x0] - mov r2, #0xee -_0202F420: - ldr r0, [r1, #0x4] - strb r2, [r0, r3] - ldr r0, [r1, #0x4] - add r0, r0, r3 - add r0, #0x26 - add r3, r3, #0x1 - strb r2, [r0, #0x0] - cmp r3, #0x26 - blt _0202F420 - ldr r0, _0202F54C ; =0x021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F570 ; =0x0000045C - ldr r2, [r3, r2] - ldr r0, [r3, r0] - mov r1, #0x0 - lsl r2, r2, #0x1 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =0x021C59F4 - mov r1, #0x47 - ldr r3, [r0, #0x4] - ldr r2, _0202F554 ; =0x00000658 - lsl r1, r1, #0x4 - add r0, r3, r1 - sub r1, #0x14 - ldr r2, [r3, r2] - ldr r1, [r3, r1] - lsl r2, r2, #0x1 - bl FUN_0202D394 - mov r2, #0x0 - ldr r0, _0202F54C ; =0x021C59F4 - ldr r1, _0202F574 ; =0x00000684 - ldr r3, [r0, #0x4] - mov r12, r2 - strb r2, [r3, r1] - ldr r3, [r0, #0x4] - add r1, r1, #0x1 - strb r2, [r3, r1] - add r1, r2, #0x0 - add r7, r2, #0x0 - add r6, r2, #0x0 -_0202F476: - ldr r3, [r0, #0x4] - add r4, r3, r2 - ldr r3, _0202F578 ; =0x0000065F - strb r6, [r4, r3] - ldr r3, [r0, #0x4] - ldr r4, _0202F57C ; =0x00000667 - add r5, r3, r2 - mov r3, #0x1 - strb r3, [r5, r4] - ldr r3, [r0, #0x4] - add r4, #0x8 - add r5, r3, r2 - mov r3, #0x1 - strb r3, [r5, r4] - ldr r4, [r0, #0x4] - mov r3, r12 - add r4, r4, r3 - mov r3, #0x61 - lsl r3, r3, #0x4 - strh r6, [r4, r3] - ldr r3, [r0, #0x4] - mov r4, #0xee - add r5, r3, r1 - ldr r3, _0202F580 ; =0x00000596 - add r2, r2, #0x1 - strb r4, [r5, r3] - ldr r3, [r0, #0x4] - ldr r4, _0202F584 ; =0x0000FFFF - add r5, r3, r1 - ldr r3, _0202F588 ; =0x00000594 - strh r4, [r5, r3] - ldr r3, [r0, #0x4] - add r4, r3, r1 - mov r3, #0x59 - lsl r3, r3, #0x4 - str r6, [r4, r3] - ldr r3, [r0, #0x4] - add r4, r3, r1 - ldr r3, _0202F58C ; =0x0000058C - add r1, #0xc - str r6, [r4, r3] - ldr r3, [r0, #0x4] - add r4, r3, r7 - ldr r3, _0202F590 ; =0x00000638 - add r7, r7, #0x4 - str r6, [r4, r3] - mov r3, r12 - add r3, r3, #0x2 - mov r12, r3 - cmp r2, #0x8 - blt _0202F476 - ldr r1, _0202F54C ; =0x021C59F4 - ldr r0, _0202F594 ; =0x00000634 - ldr r2, [r1, #0x4] - sub r3, r0, #0x4 - str r6, [r2, r0] - ldr r4, [r1, #0x4] - mov r2, #0x1 - str r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - sub r3, #0x3e - mov r2, #0xee - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - ldr r2, _0202F584 ; =0x0000FFFF - sub r3, #0x40 - strh r2, [r4, r3] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x44 - str r6, [r3, r2] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x48 - str r6, [r3, r2] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x4e - mov r2, #0x1 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x4f - strb r2, [r4, r3] - ldr r2, _0202F598 ; =0x02105D58 - mov r3, #0x4 - strb r3, [r2, #0x1] - strb r3, [r2, #0x0] - ldr r1, [r1, #0x4] - sub r0, #0xe8 - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F54C ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F59C ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F54C ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F5A0 ; =0x00000688 - strb r2, [r1, r0] - pop {r3-r7, pc} - .balign 4 -_0202F54C: .word 0x021C59F4 -_0202F550: .word 0x0000062C -_0202F554: .word 0x00000658 -_0202F558: .word 0x00000458 -_0202F55C: .word 0x000004E8 -_0202F560: .word 0x00000454 -_0202F564: .word 0x0000047C -_0202F568: .word 0x000004DC -_0202F56C: .word 0x00000464 -_0202F570: .word 0x0000045C -_0202F574: .word 0x00000684 -_0202F578: .word 0x0000065F -_0202F57C: .word 0x00000667 -_0202F580: .word 0x00000596 -_0202F584: .word 0x0000FFFF -_0202F588: .word 0x00000594 -_0202F58C: .word 0x0000058C -_0202F590: .word 0x00000638 -_0202F594: .word 0x00000634 -_0202F598: .word 0x02105D58 -_0202F59C: .word 0x0000056C -_0202F5A0: .word 0x00000688 - - thumb_func_start FUN_0202F5A4 -FUN_0202F5A4: ; 0x0202F5A4 - push {r3-r7, lr} - ldr r1, _0202F7D4 ; =0x021C59F4 - ldr r0, _0202F7D8 ; =0x0000062C - ldr r2, [r1, #0x4] - mov r3, #0x0 - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - add r0, r0, #0x1 - strb r3, [r1, r0] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _0202F7D4 ; =0x021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7E0 ; =0x00000458 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r4, #0x0 - cmp r6, #0x0 - ble _0202F606 - ldr r7, _0202F7D4 ; =0x021C59F4 - add r5, r4, #0x0 -_0202F5E4: - ldr r3, [r7, #0x4] - ldr r0, _0202F7DC ; =0x00000658 - ldr r1, _0202F7E0 ; =0x00000458 - ldr r2, [r3, r0] - ldr r0, _0202F7E4 ; =0x000004E8 - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r4, #0x0 - mul r1, r2 - add r0, r0, r5 - add r1, r3, r1 - bl FUN_0202D394 - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r6 - blt _0202F5E4 -_0202F606: - ldr r0, _0202F7D4 ; =0x021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7E8 ; =0x00000454 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r5, #0x0 - cmp r6, #0x0 - ble _0202F648 - ldr r7, _0202F7D4 ; =0x021C59F4 - add r4, r5, #0x0 -_0202F626: - ldr r3, [r7, #0x4] - ldr r0, _0202F7DC ; =0x00000658 - ldr r1, _0202F7E8 ; =0x00000454 - ldr r2, [r3, r0] - ldr r0, _0202F7EC ; =0x0000047C - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - add r5, r5, #0x1 - add r4, #0xc - cmp r5, r6 - blt _0202F626 -_0202F648: - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r2, #0x6 - ldr r1, [r0, #0x4] - mov r0, #0xb5 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x0 - lsl r2, r2, #0x6 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r1, #0xb5 - ldr r2, [r0, #0x4] - ldr r0, _0202F7F0 ; =0x000004DC - lsl r1, r1, #0x2 - add r0, r2, r0 - add r1, r2, r1 - mov r2, #0x6 - lsl r2, r2, #0x6 - bl FUN_0202D394 - mov r0, #0xee - add r2, r0, #0x0 - mov r3, #0x85 - ldr r4, _0202F7D4 ; =0x021C59F4 - mov r1, #0x0 - add r2, #0x66 - lsl r3, r3, #0x2 -_0202F680: - ldr r5, [r4, #0x4] - add r5, r5, r1 - strb r0, [r5, r2] - ldr r5, [r4, #0x4] - add r5, r5, r1 - add r1, r1, #0x1 - strb r0, [r5, r3] - cmp r1, #0xc0 - blt _0202F680 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r2, #0x42 - ldr r0, [r0, #0x4] - mov r1, #0x0 - add r0, #0x4c - lsl r2, r2, #0x2 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r2, #0x42 - ldr r1, [r0, #0x4] - ldr r0, _0202F7F4 ; =0x00000464 - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, #0x4c - bl FUN_0202D394 - ldr r1, _0202F7D4 ; =0x021C59F4 - mov r2, #0xff - ldr r0, [r1, #0x4] - mov r3, #0x1 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x4] - add r0, #0x26 - strb r2, [r0, #0x0] - mov r2, #0xee -_0202F6C6: - ldr r0, [r1, #0x4] - strb r2, [r0, r3] - ldr r0, [r1, #0x4] - add r0, r0, r3 - add r0, #0x26 - add r3, r3, #0x1 - strb r2, [r0, #0x0] - cmp r3, #0x26 - blt _0202F6C6 - ldr r0, _0202F7D4 ; =0x021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7F8 ; =0x0000045C - ldr r2, [r3, r2] - ldr r0, [r3, r0] - mov r1, #0x0 - lsl r2, r2, #0x1 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r1, #0x47 - ldr r3, [r0, #0x4] - ldr r2, _0202F7DC ; =0x00000658 - lsl r1, r1, #0x4 - add r0, r3, r1 - sub r1, #0x14 - ldr r2, [r3, r2] - ldr r1, [r3, r1] - lsl r2, r2, #0x1 - bl FUN_0202D394 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r3, #0x0 - ldr r2, [r0, #0x4] - ldr r1, _0202F7FC ; =0x00000684 - add r7, r3, #0x0 - strb r3, [r2, r1] - ldr r2, [r0, #0x4] - add r1, r1, #0x1 - strb r3, [r2, r1] - add r1, r3, #0x0 - add r2, r3, #0x0 -_0202F71A: - ldr r4, [r0, #0x4] - add r5, r4, r3 - ldr r4, _0202F800 ; =0x0000065F - strb r7, [r5, r4] - ldr r4, [r0, #0x4] - ldr r5, _0202F804 ; =0x00000667 - add r6, r4, r3 - mov r4, #0x1 - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - add r5, #0x8 - add r6, r4, r3 - mov r4, #0x1 - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - add r3, r3, #0x1 - add r5, r4, r1 - mov r4, #0x61 - lsl r4, r4, #0x4 - strh r7, [r5, r4] - ldr r4, [r0, #0x4] - ldr r5, _0202F808 ; =0x00000596 - add r6, r4, r2 - mov r4, #0xee - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - ldr r5, _0202F80C ; =0x0000FFFF - add r6, r4, r2 - ldr r4, _0202F810 ; =0x00000594 - add r1, r1, #0x2 - strh r5, [r6, r4] - ldr r4, [r0, #0x4] - add r5, r4, r2 - mov r4, #0x59 - lsl r4, r4, #0x4 - str r7, [r5, r4] - ldr r4, [r0, #0x4] - add r5, r4, r2 - ldr r4, _0202F814 ; =0x0000058C - add r2, #0xc - str r7, [r5, r4] - cmp r3, #0x8 - blt _0202F71A - ldr r1, _0202F7D4 ; =0x021C59F4 - add r0, r4, #0x0 - ldr r3, [r1, #0x4] - add r0, #0xa4 - mov r2, #0x1 - str r2, [r3, r0] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - sub r3, #0x3a - mov r2, #0xee - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - ldr r2, _0202F80C ; =0x0000FFFF - sub r3, #0x3c - strh r2, [r4, r3] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x40 - str r7, [r3, r2] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x44 - str r7, [r3, r2] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x52 - mov r2, #0x1 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x53 - strb r2, [r4, r3] - ldr r1, [r1, #0x4] - sub r0, #0xe4 - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F7D4 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F818 ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F7D4 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F81C ; =0x00000688 - strb r2, [r1, r0] - pop {r3-r7, pc} - .balign 4 -_0202F7D4: .word 0x021C59F4 -_0202F7D8: .word 0x0000062C -_0202F7DC: .word 0x00000658 -_0202F7E0: .word 0x00000458 -_0202F7E4: .word 0x000004E8 -_0202F7E8: .word 0x00000454 -_0202F7EC: .word 0x0000047C -_0202F7F0: .word 0x000004DC -_0202F7F4: .word 0x00000464 -_0202F7F8: .word 0x0000045C -_0202F7FC: .word 0x00000684 -_0202F800: .word 0x0000065F -_0202F804: .word 0x00000667 -_0202F808: .word 0x00000596 -_0202F80C: .word 0x0000FFFF -_0202F810: .word 0x00000594 -_0202F814: .word 0x0000058C -_0202F818: .word 0x0000056C -_0202F81C: .word 0x00000688 - - thumb_func_start FUN_0202F820 -FUN_0202F820: ; 0x0202F820 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _0202F8B8 ; =0x021C59F4 - ldr r3, _0202F8BC ; =0x0000065F - ldr r1, [r0, #0x4] - mov r2, #0x0 - add r1, r1, r5 - strb r2, [r1, r3] - ldr r4, [r0, #0x4] - mov r1, #0x1 - add r6, r4, r5 - add r4, r3, #0x0 - add r4, #0x8 - strb r1, [r6, r4] - ldr r6, [r0, #0x4] - lsl r4, r5, #0x2 - add r6, r6, r4 - add r4, r3, #0x0 - sub r4, #0x27 - str r2, [r6, r4] - ldr r2, [r0, #0x4] - add r4, r2, r5 - add r2, r3, #0x0 - add r2, #0x10 - strb r1, [r4, r2] - ldr r1, [r0, #0x4] - sub r0, r3, #0x7 - ldr r2, [r1, r0] - ldr r3, _0202F8C0 ; =0x0000047C - mov r0, #0xc - add r4, r5, #0x0 - mul r4, r0 - add r0, r1, r3 - sub r3, #0x28 - ldr r3, [r1, r3] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - ldr r0, _0202F8B8 ; =0x021C59F4 - ldr r3, _0202F8C4 ; =0x000004E8 - ldr r1, [r0, #0x4] - ldr r0, _0202F8C8 ; =0x00000658 - ldr r2, [r1, r0] - add r0, r1, r3 - sub r3, #0x90 - ldr r3, [r1, r3] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - ldr r3, _0202F8B8 ; =0x021C59F4 - ldr r2, _0202F8CC ; =0x00000596 - ldr r0, [r3, #0x4] - mov r1, #0xee - add r0, r0, r4 - strb r1, [r0, r2] - ldr r0, [r3, #0x4] - ldr r5, _0202F8D0 ; =0x0000FFFF - add r1, r0, r4 - sub r0, r2, #0x2 - strh r5, [r1, r0] - ldr r1, [r3, #0x4] - mov r0, #0x0 - add r5, r1, r4 - sub r1, r2, #0x6 - str r0, [r5, r1] - ldr r1, [r3, #0x4] - sub r2, #0xa - add r1, r1, r4 - str r0, [r1, r2] - pop {r4-r6, pc} - .balign 4 -_0202F8B8: .word 0x021C59F4 -_0202F8BC: .word 0x0000065F -_0202F8C0: .word 0x0000047C -_0202F8C4: .word 0x000004E8 -_0202F8C8: .word 0x00000658 -_0202F8CC: .word 0x00000596 -_0202F8D0: .word 0x0000FFFF - - thumb_func_start FUN_0202F8D4 -FUN_0202F8D4: ; 0x0202F8D4 - push {r4-r6, lr} - ldr r4, _0202F908 ; =0x021C59F4 - ldr r6, _0202F90C ; =0x00000667 - mov r5, #0x1 -_0202F8DC: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202F900 - ldr r0, [r4, #0x4] - add r0, r0, r5 - ldrb r0, [r0, r6] - cmp r0, #0x0 - bne _0202F900 - bl FUN_02031280 - cmp r0, #0x0 - bne _0202F900 - add r0, r5, #0x0 - bl FUN_0202F820 -_0202F900: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202F8DC - pop {r4-r6, pc} - .balign 4 -_0202F908: .word 0x021C59F4 -_0202F90C: .word 0x00000667 - - thumb_func_start FUN_0202F910 -FUN_0202F910: ; 0x0202F910 - ldr r3, _0202F914 ; =FUN_0202F820 - bx r3 - .balign 4 -_0202F914: .word FUN_0202F820 - - thumb_func_start FUN_0202F918 -FUN_0202F918: ; 0x0202F918 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - mov r4, #0x1 - bl FUN_02033534 - cmp r0, #0x13 - bge _0202F93E - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202E5F8 - add r4, r0, #0x0 - ldr r0, _0202F94C ; =FUN_0202F910 - bl FUN_0202D330 -_0202F93E: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0202F150 - add r0, r4, #0x0 - pop {r3-r7, pc} - nop -_0202F94C: .word FUN_0202F910 - - thumb_func_start FUN_0202F950 -FUN_0202F950: ; 0x0202F950 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - mov r4, #0x1 - bl FUN_02033534 - cmp r0, #0x13 - bge _0202F96C - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202E66C - add r4, r0, #0x0 -_0202F96C: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0202F150 - ldr r0, _0202F980 ; =0x02105D58 - mov r1, #0x4 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - pop {r3-r7, pc} - nop -_0202F980: .word 0x02105D58 - - thumb_func_start FUN_0202F984 -FUN_0202F984: ; 0x0202F984 - push {r4, lr} - mov r4, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202F99A - ldr r0, _0202F9D4 ; =0x02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - beq _0202F9A2 - pop {r4, pc} -_0202F99A: - ldr r0, _0202F9D4 ; =0x02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x4 - bne _0202F9D0 -_0202F9A2: - ldr r0, _0202F9D8 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202F9DC ; =0x0000067D - ldrb r1, [r2, r0] - cmp r1, #0x2 - bne _0202F9B4 - mov r1, #0x0 - strb r1, [r2, r0] - mov r4, #0x1 -_0202F9B4: - ldr r0, _0202F9D8 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202F9DC ; =0x0000067D - ldrb r1, [r2, r0] - cmp r1, #0x3 - bne _0202F9C4 - mov r4, #0x1 - strb r4, [r2, r0] -_0202F9C4: - cmp r4, #0x0 - beq _0202F9CC - bl FUN_0202F5A4 -_0202F9CC: - bl FUN_02031088 -_0202F9D0: - pop {r4, pc} - nop -_0202F9D4: .word 0x02105D58 -_0202F9D8: .word 0x021C59F4 -_0202F9DC: .word 0x0000067D - - thumb_func_start FUN_0202F9E0 -FUN_0202F9E0: ; 0x0202F9E0 - ldr r1, _0202FA08 ; =0x021C59F4 - ldr r3, [r1, #0x4] - ldr r1, _0202FA0C ; =0x0000067D - ldrb r2, [r3, r1] - cmp r2, #0x0 - bne _0202F9F6 - cmp r0, #0x1 - bne _0202F9F6 - mov r0, #0x3 - strb r0, [r3, r1] - bx lr -_0202F9F6: - cmp r2, #0x1 - bne _0202FA04 - cmp r0, #0x0 - bne _0202FA04 - ldr r0, _0202FA0C ; =0x0000067D - mov r1, #0x2 - strb r1, [r3, r0] -_0202FA04: - bx lr - nop -_0202FA08: .word 0x021C59F4 -_0202FA0C: .word 0x0000067D - - thumb_func_start FUN_0202FA10 -FUN_0202FA10: ; 0x0202FA10 - ldr r3, _0202FA18 ; =FUN_0202F9E0 - mov r0, #0x1 - bx r3 - nop -_0202FA18: .word FUN_0202F9E0 - - thumb_func_start FUN_0202FA1C -FUN_0202FA1C: ; 0x0202FA1C - ldr r3, _0202FA24 ; =FUN_0202F9E0 - mov r0, #0x0 - bx r3 - nop -_0202FA24: .word FUN_0202F9E0 - - thumb_func_start FUN_0202FA28 -FUN_0202FA28: ; 0x0202FA28 - ldr r0, _0202FA40 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FA44 ; =0x0000067D - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _0202FA38 - mov r0, #0x1 - bx lr -_0202FA38: - cmp r0, #0x3 - bne _0202FA3E - mov r0, #0x0 -_0202FA3E: - bx lr - .balign 4 -_0202FA40: .word 0x021C59F4 -_0202FA44: .word 0x0000067D - - thumb_func_start FUN_0202FA48 -FUN_0202FA48: ; 0x0202FA48 - push {r3, lr} - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0202FA56 - mov r0, #0x1 - pop {r3, pc} -_0202FA56: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202FA5C -FUN_0202FA5C: ; 0x0202FA5C - push {r4, lr} - ldr r0, _0202FB00 ; =0x021C59F4 - mov r4, #0x0 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FA82 - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FA78 - bl MOD04_021D83C0 - mov r4, #0x1 - b _0202FA82 -_0202FA78: - bl FUN_0202E784 - cmp r0, #0x0 - beq _0202FA82 - mov r4, #0x1 -_0202FA82: - cmp r4, #0x0 - beq _0202FAFE - bl FUN_020314D0 - bl FUN_0202DBA4 - ldr r0, _0202FB00 ; =0x021C59F4 - mov r1, #0x0 - strb r1, [r0, #0x0] - ldr r1, [r0, #0x4] - ldr r0, _0202FB04 ; =0x00000548 - ldr r0, [r1, r0] - bl FUN_0200CAB4 - ldr r1, _0202FB00 ; =0x021C59F4 - ldr r0, _0202FB04 ; =0x00000548 - ldr r2, [r1, #0x4] - mov r3, #0x0 - str r3, [r2, r0] - ldr r1, [r1, #0x4] - sub r0, #0xec - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x46 - lsl r0, r0, #0x4 - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB08 ; =0x00000458 - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB0C ; =0x00000454 - ldr r0, [r1, r0] - bl FUN_02016A18 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB10 ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D824 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB14 ; =0x0000054C - add r0, r1, r0 - bl FUN_0202D824 - ldr r0, _0202FB00 ; =0x021C59F4 - ldr r0, [r0, #0x4] - bl FUN_02016A18 - ldr r0, _0202FB00 ; =0x021C59F4 - mov r1, #0x0 - str r1, [r0, #0x4] -_0202FAFE: - pop {r4, pc} - .balign 4 -_0202FB00: .word 0x021C59F4 -_0202FB04: .word 0x00000548 -_0202FB08: .word 0x00000458 -_0202FB0C: .word 0x00000454 -_0202FB10: .word 0x0000056C -_0202FB14: .word 0x0000054C - - thumb_func_start FUN_0202FB18 -FUN_0202FB18: ; 0x0202FB18 - ldr r3, _0202FB1C ; =FUN_0202E9E8 - bx r3 - .balign 4 -_0202FB1C: .word FUN_0202E9E8 - - thumb_func_start FUN_0202FB20 -FUN_0202FB20: ; 0x0202FB20 - push {r3, lr} - ldr r0, _0202FB54 ; =0x021C59F4 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202FB52 - bl FUN_0203050C - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FB40 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FB48 -_0202FB40: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FB4C -_0202FB48: - bl FUN_0202FEEC -_0202FB4C: - ldr r0, _0202FB54 ; =0x021C59F4 - mov r1, #0x0 - strb r1, [r0, #0x0] -_0202FB52: - pop {r3, pc} - .balign 4 -_0202FB54: .word 0x021C59F4 - - thumb_func_start FUN_0202FB58 -FUN_0202FB58: ; 0x0202FB58 - push {r3, lr} - bl FUN_0202F03C - cmp r0, #0x0 - beq _0202FB7C - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FB78 - bl FUN_0202EE24 - cmp r0, #0x0 - bne _0202FB7C - bl FUN_0202FA5C - pop {r3, pc} -_0202FB78: - bl FUN_0202FA5C -_0202FB7C: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202FB80 -FUN_0202FB80: ; 0x0202FB80 - push {r4, lr} - bl FUN_02031CDC - ldr r1, _0202FC48 ; =0x021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _0202FC34 - ldr r0, _0202FC4C ; =0x0000068A - ldrb r0, [r2, r0] - cmp r0, #0x0 - bne _0202FC16 - mov r0, #0x0 - strb r0, [r1, #0x0] - bl FUN_0202F984 - ldr r0, _0202FC48 ; =0x021C59F4 - ldr r1, _0202FC50 ; =0x021C48B8 - ldr r0, [r0, #0x4] - ldr r2, _0202FC54 ; =0x00000628 - ldr r3, [r1, #0x44] - ldr r1, _0202FC58 ; =0x00007FFF - ldrh r4, [r0, r2] - and r1, r3 - orr r1, r4 - strh r1, [r0, r2] - bl FUN_02030674 - bl FUN_0202FCCC - ldr r0, _0202FC48 ; =0x021C59F4 - ldr r1, _0202FC54 ; =0x00000628 - ldr r3, [r0, #0x4] - mov r0, #0x2 - ldrh r2, [r3, r1] - lsl r0, r0, #0xe - and r0, r2 - strh r0, [r3, r1] - bl FUN_0202FA28 - cmp r0, #0x0 - bne _0202FBD6 - bl FUN_02030DA4 -_0202FBD6: - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FBE8 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FBF0 -_0202FBE8: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FBF4 -_0202FBF0: - bl FUN_02030074 -_0202FBF4: - bl FUN_02031190 - cmp r0, #0x0 - beq _0202FC0C - bl FUN_0202FA28 - cmp r0, #0x1 - beq _0202FC0C - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FC10 -_0202FC0C: - bl FUN_02030DFC -_0202FC10: - ldr r0, _0202FC48 ; =0x021C59F4 - mov r1, #0x1 - strb r1, [r0, #0x0] -_0202FC16: - ldr r0, _0202FC48 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FC5C ; =0x0000065C - ldrh r0, [r1, r0] - bl FUN_0202ED70 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FC2E - bl FUN_0202F8D4 -_0202FC2E: - bl FUN_0202FB58 - b _0202FC3A -_0202FC34: - mov r0, #0x0 - bl FUN_0202ED70 -_0202FC3A: - mov r0, #0x0 - bl FUN_020335F4 - bl FUN_020315A4 - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0202FC48: .word 0x021C59F4 -_0202FC4C: .word 0x0000068A -_0202FC50: .word 0x021C48B8 -_0202FC54: .word 0x00000628 -_0202FC58: .word 0x00007FFF -_0202FC5C: .word 0x0000065C - - thumb_func_start FUN_0202FC60 -FUN_0202FC60: ; 0x0202FC60 - push {r4, lr} - ldr r0, _0202FC7C ; =0x021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FC74 - bl FUN_0202F2F0 -_0202FC74: - ldr r0, _0202FC7C ; =0x021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - nop -_0202FC7C: .word 0x021C59F4 - - thumb_func_start FUN_0202FC80 -FUN_0202FC80: ; 0x0202FC80 - push {r4, lr} - ldr r0, _0202FCA0 ; =0x021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _0202FC9A - ldr r0, _0202FCA4 ; =0x0000067D - mov r1, #0x1 - strb r1, [r2, r0] - bl FUN_0202F2F0 -_0202FC9A: - ldr r0, _0202FCA0 ; =0x021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 -_0202FCA0: .word 0x021C59F4 -_0202FCA4: .word 0x0000067D - - thumb_func_start FUN_0202FCA8 -FUN_0202FCA8: ; 0x0202FCA8 - push {r4, lr} - ldr r0, _0202FCC8 ; =0x021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FCC0 - bl FUN_0202F2F0 - bl FUN_0202E538 -_0202FCC0: - ldr r0, _0202FCC8 ; =0x021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - nop -_0202FCC8: .word 0x021C59F4 - - thumb_func_start FUN_0202FCCC -FUN_0202FCCC: ; 0x0202FCCC - push {r3, lr} - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202FD40 - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FD06 - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r1, _0202FE1C ; =0x00000687 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r1] - cmp r1, #0x0 - beq _0202FCF8 - mov r1, #0x26 - bl MOD04_021D78FC - cmp r0, #0x0 - bne _0202FCFA -_0202FCF8: - b _0202FE10 -_0202FCFA: - ldr r0, _0202FE14 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - strb r2, [r1, r0] - pop {r3, pc} -_0202FD06: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FD1A - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FD22 -_0202FD1A: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FE10 -_0202FD22: - ldr r0, _0202FE20 ; =0x02105D58 - mov r1, #0x0 - strb r1, [r0, #0x0] - bl FUN_0203050C - ldr r0, _0202FE20 ; =0x02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE14 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - strb r2, [r1, r0] - pop {r3, pc} -_0202FD40: - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FDB2 - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r2, _0202FE1C ; =0x00000687 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r2] - cmp r1, #0x0 - beq _0202FE10 - add r1, r2, #0x0 - sub r1, #0x57 - ldr r1, [r0, r1] - cmp r1, #0x0 - beq _0202FD7A - sub r2, #0x53 - ldr r1, [r0, r2] - cmp r1, #0x3 - bgt _0202FE10 - ldr r1, _0202FE20 ; =0x02105D58 - ldrb r1, [r1, #0x0] - cmp r1, #0x4 - bne _0202FD90 - bl FUN_02030930 - ldr r0, _0202FE20 ; =0x02105D58 - mov r1, #0x2 - strb r1, [r0, #0x0] - b _0202FD90 -_0202FD7A: - ldr r1, _0202FE20 ; =0x02105D58 - ldrb r1, [r1, #0x0] - cmp r1, #0x4 - bne _0202FD90 - bl FUN_02030930 - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE20 ; =0x02105D58 - mov r1, #0x2 - strb r1, [r0, #0x0] -_0202FD90: - ldr r0, _0202FE14 ; =0x021C59F4 - mov r1, #0x26 - ldr r0, [r0, #0x4] - bl MOD04_021D78FC - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE20 ; =0x02105D58 - mov r1, #0x4 - strb r1, [r0, #0x0] - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE24 ; =0x00000634 - ldr r1, [r2, r0] - add r1, r1, #0x1 - str r1, [r2, r0] - pop {r3, pc} -_0202FDB2: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FDC6 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FDCE -_0202FDC6: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FE10 -_0202FDCE: - ldr r0, _0202FE20 ; =0x02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x4 - bne _0202FE10 - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE24 ; =0x00000634 - ldr r1, [r2, r0] - cmp r1, #0x3 - bgt _0202FE10 - add r0, #0x4b - ldrb r1, [r2, r0] - mov r0, #0x26 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030930 - ldr r0, _0202FE14 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE28 ; =0x0000067F - ldrb r1, [r2, r0] - mov r0, #0x1 - sub r1, r0, r1 - mov r0, #0x26 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030930 - ldr r0, _0202FE20 ; =0x02105D58 - mov r1, #0x0 - strb r1, [r0, #0x0] - bl FUN_0203050C -_0202FE10: - pop {r3, pc} - nop -_0202FE14: .word 0x021C59F4 -_0202FE18: .word 0x00000683 -_0202FE1C: .word 0x00000687 -_0202FE20: .word 0x02105D58 -_0202FE24: .word 0x00000634 -_0202FE28: .word 0x0000067F - - thumb_func_start FUN_0202FE2C -FUN_0202FE2C: ; 0x0202FE2C - push {r3-r7, lr} - sub sp, #0x10 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - str r0, [sp, #0xc] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - mov r7, #0x0 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _0202FED0 - ldr r0, [sp, #0x0] - mov r1, #0xc0 - add r6, r0, #0x0 - add r4, r7, #0x0 - add r5, r7, #0x0 - mul r6, r1 -_0202FE66: - ldr r0, _0202FEE4 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FEE8 ; =0x0000047C - add r0, r1, r0 - add r0, r0, r4 - bl FUN_0202D4BC - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202FE90 - ldr r0, _0202FEE4 ; =0x021C59F4 - mov r1, #0xe - ldr r0, [r0, #0x4] - add r0, r6, r0 - add r2, r5, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - strb r1, [r2, r0] -_0202FE90: - ldr r0, _0202FEE4 ; =0x021C59F4 - mov r2, #0x55 - ldr r1, [r0, #0x4] - ldr r0, _0202FEE8 ; =0x0000047C - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, r1, r2 - add r1, r1, r6 - ldr r2, [sp, #0xc] - add r0, r0, r4 - add r1, r1, r5 - bl FUN_0202D400 - ldr r0, _0202FEE4 ; =0x021C59F4 - ldr r0, [r0, #0x4] - add r0, r6, r0 - add r1, r5, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0xe - bne _0202FEC2 - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - str r0, [sp, #0x4] -_0202FEC2: - ldr r0, [sp, #0xc] - add r7, r7, #0x1 - add r5, r5, r0 - ldr r0, [sp, #0x8] - add r4, #0xc - cmp r7, r0 - blt _0202FE66 -_0202FED0: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - cmp r1, r0 - bne _0202FEDE - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202FEDE: - mov r0, #0x1 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0202FEE4: .word 0x021C59F4 -_0202FEE8: .word 0x0000047C - - thumb_func_start FUN_0202FEEC -FUN_0202FEEC: ; 0x0202FEEC - push {r3-r7, lr} - ldr r0, _02030064 ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FEFE - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FF00 -_0202FEFE: - b _02030062 -_0202FF00: - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - str r0, [sp, #0x0] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _02030068 ; =0x02105D58 - ldrb r1, [r0, #0x1] - cmp r1, #0x2 - beq _0202FF2C - ldrb r0, [r0, #0x1] - cmp r0, #0x0 - beq _0202FF2C - b _02030062 -_0202FF2C: - ldr r0, _02030068 ; =0x02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0202FF4A - ldr r0, _02030064 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r0, [r1, r0] - bl FUN_0202FE2C -_0202FF4A: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FF86 - bl FUN_02031280 - cmp r0, #0x0 - bne _0202FF86 - ldr r0, _02030064 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r3, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r0, [r1, r0] - mov r1, #0xc0 - add r2, r0, #0x0 - mul r2, r1 - add r0, r3, r2 - ldr r3, _0203006C ; =FUN_020304F0 - mov r2, #0xe - bl FUN_0202D0D0 - cmp r0, #0x0 - bne _0202FF86 - ldr r0, _02030068 ; =0x02105D58 - ldrb r1, [r0, #0x1] - sub r1, r1, #0x1 - strb r1, [r0, #0x1] -_0202FF86: - ldr r0, _02030068 ; =0x02105D58 - ldrb r1, [r0, #0x1] - cmp r1, #0x1 - beq _0202FF94 - ldrb r0, [r0, #0x1] - cmp r0, #0x3 - bne _0203000A -_0202FF94: - mov r4, #0x0 - cmp r6, #0x0 - ble _0202FFDC - ldr r7, _02030064 ; =0x021C59F4 - add r5, r4, #0x0 -_0202FF9E: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202FFBA - ldr r0, [r7, #0x4] - ldr r1, _02030070 ; =0x00000638 - add r0, r0, r5 - ldr r1, [r0, r1] - add r2, r1, #0x1 - ldr r1, _02030070 ; =0x00000638 - str r2, [r0, r1] - b _0202FFD4 -_0202FFBA: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FFD4 - cmp r4, #0x0 - bne _0202FFD4 - ldr r0, [r7, #0x4] - ldr r1, _02030070 ; =0x00000638 - add r0, r0, r5 - ldr r1, [r0, r1] - add r2, r1, #0x1 - ldr r1, _02030070 ; =0x00000638 - str r2, [r0, r1] -_0202FFD4: - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r6 - blt _0202FF9E -_0202FFDC: - ldr r0, _02030064 ; =0x021C59F4 - mov r1, #0x55 - ldr r2, [r0, #0x4] - lsl r1, r1, #0x2 - add r4, r2, r1 - mov r1, #0x1a - lsl r1, r1, #0x6 - ldrb r1, [r2, r1] - mov r2, #0xc0 - mov r0, #0x0 - add r3, r1, #0x0 - mul r3, r2 - add r1, r4, r3 - bl FUN_0203026C - ldr r0, _02030064 ; =0x021C59F4 - mov r1, #0x1a - ldr r3, [r0, #0x4] - lsl r1, r1, #0x6 - ldrb r2, [r3, r1] - mov r0, #0x1 - sub r0, r0, r2 - strb r0, [r3, r1] -_0203000A: - mov r5, #0x0 - cmp r6, #0x0 - ble _0203004A - add r4, r5, #0x0 - mov r7, #0xff -_02030014: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030040 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030040 - ldr r0, _02030064 ; =0x021C59F4 - mov r1, #0x1a - ldr r0, [r0, #0x4] - lsl r1, r1, #0x6 - ldrb r2, [r0, r1] - mov r1, #0xc0 - mul r1, r2 - add r0, r0, r1 - add r1, r4, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - strb r7, [r1, r0] -_02030040: - ldr r0, [sp, #0x0] - add r5, r5, #0x1 - add r4, r4, r0 - cmp r5, r6 - blt _02030014 -_0203004A: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0203005A - bl FUN_02031280 - cmp r0, #0x0 - beq _02030062 -_0203005A: - ldr r0, _02030068 ; =0x02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] -_02030062: - pop {r3-r7, pc} - .balign 4 -_02030064: .word 0x021C59F4 -_02030068: .word 0x02105D58 -_0203006C: .word FUN_020304F0 -_02030070: .word 0x00000638 - - thumb_func_start FUN_02030074 -FUN_02030074: ; 0x02030074 - push {r3-r7, lr} - ldr r0, _02030228 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _020300DC - bl FUN_02033534 - cmp r0, #0x13 - blt _020300B4 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020300DC - ldr r0, _02030228 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x4c - bl MOD04_021D79B4 - cmp r0, #0x0 - beq _020300DC - ldr r0, _02030228 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - strb r2, [r1, r0] - pop {r3-r7, pc} -_020300B4: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _020300C4 - bl FUN_02031280 - cmp r0, #0x0 - beq _020300DC -_020300C4: - bl FUN_0202FEEC - ldr r0, _02030230 ; =0x02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x2 - bne _020300DC - ldr r0, _02030228 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - strb r2, [r1, r0] - pop {r3-r7, pc} -_020300DC: - bl FUN_02033534 - cmp r0, #0x13 - blt _02030184 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _020300F0 - b _02030224 -_020300F0: - ldr r0, _02030228 ; =0x021C59F4 - mov r1, #0x63 - ldr r2, [r0, #0x4] - lsl r1, r1, #0x4 - ldr r0, [r2, r1] - cmp r0, #0x0 - beq _02030130 - add r0, r1, #0x0 - add r0, #0xc - ldr r0, [r2, r0] - cmp r0, #0x3 - bgt _02030110 - add r1, #0x8 - ldr r0, [r2, r1] - cmp r0, #0x3 - ble _02030112 -_02030110: - b _02030224 -_02030112: - ldr r0, _02030230 ; =0x02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _02030150 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030128 - mov r0, #0x0 - bl FUN_0202FE2C -_02030128: - ldr r0, _02030230 ; =0x02105D58 - mov r1, #0x2 - strb r1, [r0, #0x1] - b _02030150 -_02030130: - ldr r0, _02030230 ; =0x02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _0203014A - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0203014A - mov r0, #0x0 - bl FUN_0202FE2C - cmp r0, #0x0 - beq _02030224 -_0203014A: - ldr r0, _02030230 ; =0x02105D58 - mov r1, #0x2 - strb r1, [r0, #0x1] -_02030150: - ldr r0, _02030228 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x4c - bl MOD04_021D79B4 - cmp r0, #0x0 - beq _02030224 - ldr r0, _02030230 ; =0x02105D58 - mov r1, #0x4 - strb r1, [r0, #0x1] - ldr r1, _02030228 ; =0x021C59F4 - ldr r0, _02030234 ; =0x00000638 - ldr r3, [r1, #0x4] - ldr r2, [r3, r0] - add r2, r2, #0x1 - str r2, [r3, r0] - ldr r2, [r1, #0x4] - add r1, r0, #0x4 - ldr r1, [r2, r1] - add r0, r0, #0x4 - add r1, r1, #0x1 - str r1, [r2, r0] - pop {r3-r7, pc} -_02030184: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _02030194 - bl FUN_02031280 - cmp r0, #0x0 - beq _02030224 -_02030194: - ldr r0, _02030230 ; =0x02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _02030224 - ldr r6, _02030228 ; =0x021C59F4 - ldr r7, _02030234 ; =0x00000638 - mov r4, #0x1 - mov r5, #0x4 -_020301A4: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020301BC - ldr r0, [r6, #0x4] - add r0, r0, r5 - ldr r0, [r0, r7] - cmp r0, #0x3 - ble _020301D2 - pop {r3-r7, pc} -_020301BC: - cmp r4, #0x0 - bne _020301D2 - bl FUN_02031280 - cmp r0, #0x0 - beq _020301D2 - ldr r1, [r6, #0x4] - ldr r0, _02030234 ; =0x00000638 - ldr r0, [r1, r0] - cmp r0, #0x3 - bgt _02030224 -_020301D2: - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x8 - blt _020301A4 - bl FUN_0202FA28 - cmp r0, #0x0 - bne _0203021A - ldr r0, _02030228 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r2, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r1, [r1, r0] - mov r0, #0xc0 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030A00 - ldr r0, _02030228 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r2, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r1, [r1, r0] - mov r0, #0x1 - sub r1, r0, r1 - mov r0, #0xc0 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030A00 -_0203021A: - ldr r0, _02030230 ; =0x02105D58 - mov r1, #0x0 - strb r1, [r0, #0x1] - bl FUN_0202FEEC -_02030224: - pop {r3-r7, pc} - nop -_02030228: .word 0x021C59F4 -_0203022C: .word 0x00000683 -_02030230: .word 0x02105D58 -_02030234: .word 0x00000638 - - thumb_func_start FUN_02030238 -FUN_02030238: ; 0x02030238 - push {r4-r6, lr} - ldr r4, _02030264 ; =0x021C59F4 - ldr r3, _02030268 ; =0x0000066F - ldr r5, [r4, #0x4] - ldrb r6, [r5, r3] - cmp r6, #0x0 - beq _0203025C - add r0, r3, #0x0 - sub r0, #0x3b - ldr r0, [r5, r0] - sub r1, r0, #0x1 - add r0, r3, #0x0 - sub r0, #0x3b - str r1, [r5, r0] - ldr r0, [r4, #0x4] - mov r1, #0x0 - strb r1, [r0, r3] - pop {r4-r6, pc} -_0203025C: - bl FUN_0203026C - pop {r4-r6, pc} - nop -_02030264: .word 0x021C59F4 -_02030268: .word 0x0000066F - - thumb_func_start FUN_0203026C -FUN_0203026C: ; 0x0203026C - push {r3-r7, lr} - sub sp, #0x8 - ldr r0, _020303A0 ; =0x021C59F4 - add r5, r1, #0x0 - ldr r2, [r0, #0x4] - ldr r0, _020303A4 ; =0x00000634 - ldr r1, [r2, r0] - sub r1, r1, #0x1 - str r1, [r2, r0] - cmp r5, #0x0 - beq _02030290 - ldrb r0, [r5, #0x0] - cmp r0, #0xb - bne _02030296 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030292 -_02030290: - b _0203039C -_02030292: - add r5, r5, #0x1 - b _0203029E -_02030296: - bl FUN_0202FA28 - cmp r0, #0x0 - beq _0203039C -_0203029E: - ldr r0, _020303A0 ; =0x021C59F4 - ldr r1, _020303A8 ; =0x00000682 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r1] - cmp r1, #0x0 - beq _020302B2 - ldrb r2, [r5, #0x0] - mov r1, #0x1 - tst r1, r2 - bne _0203039C -_020302B2: - ldr r1, _020303A8 ; =0x00000682 - mov r2, #0x0 - strb r2, [r0, r1] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0203036E - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r6, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - mov r4, #0x0 - str r0, [sp, #0x4] - cmp r0, #0x0 - ble _0203039C - sub r0, r6, #0x1 - add r7, r4, #0x0 - str r0, [sp, #0x0] -_020302EA: - ldrb r0, [r5, #0x0] - cmp r0, #0xff - bne _02030302 - ldr r0, _020303A0 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020303AC ; =0x0000065C - lsl r2, r4 - ldrh r0, [r1, r0] - mvn r2, r2 - and r2, r0 - b _02030310 -_02030302: - ldr r0, _020303A0 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020303AC ; =0x0000065C - lsl r2, r4 - ldrh r0, [r1, r0] - orr r2, r0 -_02030310: - ldr r0, _020303AC ; =0x0000065C - strh r2, [r1, r0] - ldrb r2, [r5, #0x0] - cmp r2, #0xff - bne _0203031E - add r5, r5, r6 - b _02030360 -_0203031E: - cmp r2, #0xe - bne _02030326 - add r5, r5, r6 - b _02030360 -_02030326: - ldr r0, _020303A0 ; =0x021C59F4 - ldr r3, [r0, #0x4] - ldr r0, _020303B0 ; =0x00000667 - add r1, r3, r4 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0203033E - mov r0, #0x1 - tst r0, r2 - beq _0203033E - add r5, r5, r6 - b _02030360 -_0203033E: - ldr r0, _020303B4 ; =0x000004E8 - add r5, r5, #0x1 - add r0, r3, r0 - ldr r2, [sp, #0x0] - ldr r3, _020303B8 ; =0x000005E6 - add r0, r0, r7 - add r1, r5, #0x0 - bl FUN_0202D3A4 - ldr r0, [sp, #0x0] - mov r1, #0x0 - add r5, r5, r0 - ldr r0, _020303A0 ; =0x021C59F4 - ldr r0, [r0, #0x4] - add r2, r0, r4 - ldr r0, _020303B0 ; =0x00000667 - strb r1, [r2, r0] -_02030360: - ldr r0, [sp, #0x4] - add r4, r4, #0x1 - add r7, #0xc - cmp r4, r0 - blt _020302EA - add sp, #0x8 - pop {r3-r7, pc} -_0203036E: - ldr r0, _020303A0 ; =0x021C59F4 - ldrb r2, [r5, #0x1] - ldr r1, [r0, #0x4] - ldr r3, _020303AC ; =0x0000065C - strh r2, [r1, r3] - ldr r2, [r0, #0x4] - ldrh r1, [r2, r3] - lsl r1, r1, #0x8 - strh r1, [r2, r3] - ldr r4, [r0, #0x4] - ldrb r1, [r5, #0x2] - ldrh r2, [r4, r3] - add r1, r2, r1 - strh r1, [r4, r3] - ldr r1, [r0, #0x4] - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - ldrb r2, [r5, #0x3] - add r1, r5, #0x4 - sub r3, #0x5d - bl FUN_0202D3A4 -_0203039C: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020303A0: .word 0x021C59F4 -_020303A4: .word 0x00000634 -_020303A8: .word 0x00000682 -_020303AC: .word 0x0000065C -_020303B0: .word 0x00000667 -_020303B4: .word 0x000004E8 -_020303B8: .word 0x000005E6 - - thumb_func_start FUN_020303BC -FUN_020303BC: ; 0x020303BC - push {r4-r6, lr} - ldr r3, _020303EC ; =0x021C59F4 - ldr r6, _020303F0 ; =0x0000066F - ldr r5, [r3, #0x4] - add r4, r5, r0 - ldrb r4, [r4, r6] - cmp r4, #0x0 - beq _020303E4 - add r1, r6, #0x0 - sub r1, #0x37 - add r4, r5, r1 - lsl r2, r0, #0x2 - ldr r1, [r4, r2] - sub r1, r1, #0x1 - str r1, [r4, r2] - ldr r1, [r3, #0x4] - mov r2, #0x0 - add r0, r1, r0 - strb r2, [r0, r6] - pop {r4-r6, pc} -_020303E4: - bl FUN_020303F4 - pop {r4-r6, pc} - nop -_020303EC: .word 0x021C59F4 -_020303F0: .word 0x0000066F - - thumb_func_start FUN_020303F4 -FUN_020303F4: ; 0x020303F4 - push {r4-r6, lr} - ldr r3, _020304B8 ; =0x021C59F4 - add r5, r0, #0x0 - ldr r0, [r3, #0x4] - ldr r2, _020304BC ; =0x00000638 - add r4, r1, #0x0 - add r1, r0, r2 - lsl r0, r5, #0x2 - ldr r6, [r1, r0] - sub r6, r6, #0x1 - str r6, [r1, r0] - cmp r4, #0x0 - beq _020304B4 - ldr r0, [r3, #0x4] - add r2, #0x2f - add r0, r0, r2 - ldrb r1, [r0, r5] - cmp r1, #0x0 - beq _02030422 - ldrb r2, [r4, #0x0] - mov r1, #0x1 - tst r1, r2 - bne _020304B4 -_02030422: - mov r1, #0x0 - strb r1, [r0, r5] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030478 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r6, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - ldrb r1, [r4, #0x0] - mov r0, #0x2 - tst r0, r1 - bne _02030468 - ldr r0, _020304B8 ; =0x021C59F4 - ldr r3, _020304C0 ; =0x0000065E - ldr r1, [r0, #0x4] - ldr r0, _020304C4 ; =0x0000047C - add r2, r6, #0x0 - add r1, r1, r0 - mov r0, #0xc - mul r0, r5 - add r0, r1, r0 - add r1, r4, #0x0 - bl FUN_0202D3A4 -_02030468: - ldr r0, _020304B8 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020304C8 ; =0x0000065F - add r1, r1, r0 - ldrb r0, [r1, r5] - add r0, r0, #0x1 - strb r0, [r1, r5] - pop {r4-r6, pc} -_02030478: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020307E4 - ldrb r1, [r4, #0x0] - mov r0, #0x2 - tst r0, r1 - bne _020304B4 - mov r0, #0xc - add r6, r5, #0x0 - mul r6, r0 - ldr r0, _020304B8 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020304CC ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r6 - bl FUN_0202D498 - cmp r0, #0xb - blt _020304B4 - ldr r0, _020304B8 ; =0x021C59F4 - ldr r3, _020304D0 ; =0x0000066E - ldr r1, [r0, #0x4] - ldr r0, _020304CC ; =0x000004E8 - mov r2, #0xb - add r0, r1, r0 - add r0, r0, r6 - add r1, r4, #0x1 - bl FUN_0202D3A4 -_020304B4: - pop {r4-r6, pc} - nop -_020304B8: .word 0x021C59F4 -_020304BC: .word 0x00000638 -_020304C0: .word 0x0000065E -_020304C4: .word 0x0000047C -_020304C8: .word 0x0000065F -_020304CC: .word 0x000004E8 -_020304D0: .word 0x0000066E - - thumb_func_start FUN_020304D4 -FUN_020304D4: ; 0x020304D4 - push {r3, lr} - cmp r0, #0x0 - beq _020304E4 - ldr r0, _020304EC ; =0x02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - pop {r3, pc} -_020304E4: - bl ErrorHandling - pop {r3, pc} - nop -_020304EC: .word 0x02105D58 - - thumb_func_start FUN_020304F0 -FUN_020304F0: ; 0x020304F0 - push {r3, lr} - cmp r0, #0x0 - beq _02030500 - ldr r0, _02030508 ; =0x02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] - pop {r3, pc} -_02030500: - bl ErrorHandling - pop {r3, pc} - nop -_02030508: .word 0x02105D58 - - thumb_func_start FUN_0203050C -FUN_0203050C: ; 0x0203050C - push {r4, lr} - ldr r0, _02030660 ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0203051E - bl FUN_02033534 - cmp r0, #0x13 - blt _02030520 -_0203051E: - b _0203065E -_02030520: - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - bl FUN_02031280 - cmp r0, #0x0 - beq _02030594 - ldr r0, _02030664 ; =0x02105D58 - ldrb r1, [r0, #0x0] - cmp r1, #0x2 - beq _02030550 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02030594 -_02030550: - ldr r0, _02030664 ; =0x02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x1 - bl FUN_020304D4 - ldr r0, _02030660 ; =0x021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r3, [r0, #0x4] - mov r0, #0x0 - ldrb r2, [r3, r1] - mov r1, #0x26 - mul r1, r2 - lsl r2, r4, #0x10 - add r1, r3, r1 - lsr r2, r2, #0x10 - bl FUN_020303F4 - ldr r2, _02030660 ; =0x021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] - pop {r4, pc} -_02030594: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0203065E - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _020305AE - bl FUN_02031190 - pop {r4, pc} -_020305AE: - ldr r0, _02030664 ; =0x02105D58 - ldrb r1, [r0, #0x0] - cmp r1, #0x2 - beq _020305BC - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203065E -_020305BC: - bl FUN_02031190 - cmp r0, #0x0 - beq _02030612 - ldr r0, _02030664 ; =0x02105D58 - ldr r3, _0203066C ; =FUN_020304D4 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - ldr r0, _02030660 ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _02030668 ; =0x0000067F - ldrb r1, [r2, r0] - mov r0, #0x26 - mul r0, r1 - lsl r1, r4, #0x10 - add r0, r2, r0 - lsr r1, r1, #0x10 - mov r2, #0xe - bl FUN_0202D0D0 - cmp r0, #0x0 - bne _020305F4 - ldr r0, _02030664 ; =0x02105D58 - ldrb r1, [r0, #0x0] - sub r1, r1, #0x1 - strb r1, [r0, #0x0] - pop {r4, pc} -_020305F4: - ldr r2, _02030660 ; =0x021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] - pop {r4, pc} -_02030612: - bl FUN_0202CB8C - ldr r1, _02030670 ; =0x0000FFFE - tst r0, r1 - beq _0203065E - ldr r0, _02030664 ; =0x02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x1 - bl FUN_020304D4 - ldr r0, _02030660 ; =0x021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r3, [r0, #0x4] - mov r0, #0x0 - ldrb r2, [r3, r1] - mov r1, #0x26 - mul r1, r2 - lsl r2, r4, #0x10 - add r1, r3, r1 - lsr r2, r2, #0x10 - bl FUN_020303F4 - ldr r2, _02030660 ; =0x021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] -_0203065E: - pop {r4, pc} - .balign 4 -_02030660: .word 0x021C59F4 -_02030664: .word 0x02105D58 -_02030668: .word 0x0000067F -_0203066C: .word FUN_020304D4 -_02030670: .word 0x0000FFFE - - thumb_func_start FUN_02030674 -FUN_02030674: ; 0x02030674 - push {r3-r7, lr} - ldr r7, _02030798 ; =0x021C59F4 - mov r6, #0x0 - ldr r5, [r7, #0x4] - ldr r2, _0203079C ; =0x0000062C - add r4, r6, #0x0 - ldrb r0, [r5, r2] - cmp r0, #0x0 - beq _02030690 - sub r1, r2, #0x4 - ldrh r1, [r5, r1] - mov r3, #0xf0 - tst r3, r1 - bne _02030692 -_02030690: - b _02030794 -_02030692: - cmp r0, #0x2 - bne _020306D0 - mov r0, #0x20 - tst r0, r1 - beq _020306A4 - mov r0, #0x10 - orr r0, r6 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306A4: - mov r0, #0x10 - tst r0, r1 - beq _020306B2 - mov r0, #0x20 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306B2: - mov r0, #0x40 - tst r0, r1 - beq _020306C0 - mov r0, #0x80 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306C0: - mov r0, #0x80 - tst r0, r1 - beq _0203077E - mov r0, #0x40 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - b _0203077E -_020306D0: - add r0, r2, #0x2 - ldrh r0, [r5, r0] - cmp r0, #0x0 - beq _020306F2 - add r4, r0, #0x0 - add r0, r2, #0x1 - ldrsb r0, [r5, r0] - sub r1, r0, #0x1 - add r0, r2, #0x1 - strb r1, [r5, r0] - ldr r1, [r7, #0x4] - ldrsb r0, [r1, r0] - cmp r0, #0x0 - bge _0203077E - add r0, r2, #0x2 - strh r6, [r1, r0] - b _0203077E -_020306F2: - add r0, r2, #0x0 - sub r0, #0x34 - add r6, r5, r0 - sub r2, #0x34 - ldr r0, [r6, #0x8] - ldr r1, [r6, #0xc] - ldr r2, [r5, r2] - ldr r3, [r6, #0x4] - bl _ll_mul - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r6, #0x10] - ldr r1, [r6, #0x14] - add r0, r0, r3 - adc r1, r2 - ldr r2, _020307A0 ; =0x000005F8 - str r0, [r5, r2] - mov r2, #0x0 - str r1, [r6, #0x4] - lsr r0, r1, #0x1e - lsl r1, r2, #0x2 - orr r1, r0 - cmp r1, #0x3 - bhi _02030746 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02030730: ; jump table (using 16-bit offset) - .short _02030738 - _02030730 - 2; case 0 - .short _0203073C - _02030730 - 2; case 1 - .short _02030740 - _02030730 - 2; case 2 - .short _02030744 - _02030730 - 2; case 3 -_02030738: - mov r4, #0x20 - b _02030746 -_0203073C: - mov r4, #0x10 - b _02030746 -_02030740: - mov r4, #0x40 - b _02030746 -_02030744: - mov r4, #0x80 -_02030746: - ldr r0, _02030798 ; =0x021C59F4 - ldr r5, [r0, #0x4] - ldr r0, _020307A0 ; =0x000005F8 - add r6, r5, r0 - ldr r0, [r6, #0x8] - ldr r1, [r6, #0xc] - ldr r2, [r6, #0x0] - ldr r3, [r6, #0x4] - bl _ll_mul - ldr r3, [r6, #0x10] - ldr r2, [r6, #0x14] - add r0, r3, r0 - adc r2, r1 - ldr r1, _020307A0 ; =0x000005F8 - mov r3, #0x0 - str r0, [r5, r1] - str r2, [r6, #0x4] - lsr r0, r2, #0x1c - lsl r2, r3, #0x4 - orr r2, r0 - add r0, r1, #0x0 - add r0, #0x35 - strb r2, [r5, r0] - ldr r0, _02030798 ; =0x021C59F4 - add r1, #0x36 - ldr r0, [r0, #0x4] - strh r4, [r0, r1] -_0203077E: - ldr r2, _02030798 ; =0x021C59F4 - ldr r1, _020307A4 ; =0x00000628 - ldr r5, [r2, #0x4] - mov r0, #0xf0 - ldrh r3, [r5, r1] - bic r3, r0 - strh r3, [r5, r1] - ldr r2, [r2, #0x4] - ldrh r0, [r2, r1] - add r0, r0, r4 - strh r0, [r2, r1] -_02030794: - pop {r3-r7, pc} - nop -_02030798: .word 0x021C59F4 -_0203079C: .word 0x0000062C -_020307A0: .word 0x000005F8 -_020307A4: .word 0x00000628 - - thumb_func_start FUN_020307A8 -FUN_020307A8: ; 0x020307A8 - ldr r0, _020307B4 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020307B8 ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307B4: .word 0x021C59F4 -_020307B8: .word 0x0000062C - - thumb_func_start FUN_020307BC -FUN_020307BC: ; 0x020307BC - ldr r0, _020307C8 ; =0x021C59F4 - mov r2, #0x2 - ldr r1, [r0, #0x4] - ldr r0, _020307CC ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307C8: .word 0x021C59F4 -_020307CC: .word 0x0000062C - - thumb_func_start FUN_020307D0 -FUN_020307D0: ; 0x020307D0 - ldr r0, _020307DC ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _020307E0 ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307DC: .word 0x021C59F4 -_020307E0: .word 0x0000062C - - thumb_func_start FUN_020307E4 -FUN_020307E4: ; 0x020307E4 - push {r4-r7} - ldr r4, _02030868 ; =0x021C59F4 - lsl r6, r1, #0x1 - ldr r2, [r4, #0x4] - mov r5, #0x0 - add r3, r2, r6 - mov r2, #0x61 - lsl r2, r2, #0x4 - strh r5, [r3, r2] - ldrb r5, [r0, #0x0] - mov r3, #0x10 - add r7, r5, #0x0 - and r7, r3 - cmp r7, #0x10 - bne _02030860 - mov r7, #0xc - and r5, r7 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - bne _0203081A - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x40 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203081A: - cmp r5, #0x4 - bne _0203082C - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x80 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203082C: - cmp r5, #0x8 - bne _0203083E - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x20 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203083E: - cmp r5, #0xc - bne _0203084C - ldr r4, [r4, #0x4] - add r4, r4, r2 - ldrh r2, [r4, r6] - orr r2, r3 - strh r2, [r4, r6] -_0203084C: - ldrb r0, [r0, #0x0] - asr r2, r0, #0x5 - mov r0, #0x7 - and r2, r0 - ldr r0, _02030868 ; =0x021C59F4 - ldr r0, [r0, #0x4] - add r1, r0, r1 - mov r0, #0x62 - lsl r0, r0, #0x4 - strb r2, [r1, r0] -_02030860: - mov r0, #0x1 - pop {r4-r7} - bx lr - nop -_02030868: .word 0x021C59F4 - - thumb_func_start FUN_0203086C -FUN_0203086C: ; 0x0203086C - bx lr - .balign 4 - - thumb_func_start FUN_02030870 -FUN_02030870: ; 0x02030870 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0203091C ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030920 ; =0x0000062A - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02030884 - mov r0, #0x0 - pop {r4, pc} -_02030884: - bl FUN_02030FE0 - cmp r0, #0x0 - bne _02030890 - mov r0, #0x0 - pop {r4, pc} -_02030890: - ldr r0, _0203091C ; =0x021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _02030924 ; =0x00000681 - ldrb r1, [r2, r0] - cmp r1, #0x0 - beq _020308A0 - sub r1, r1, #0x1 - strb r1, [r2, r0] -_020308A0: - ldr r1, _0203091C ; =0x021C59F4 - ldr r0, _02030928 ; =0x00000628 - ldr r2, [r1, #0x4] - mov r3, #0x40 - ldrh r2, [r2, r0] - tst r3, r2 - beq _020308C0 - ldrb r3, [r4, #0x0] - mov r2, #0x10 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308C0: - mov r3, #0x80 - tst r3, r2 - beq _020308D8 - ldrb r3, [r4, #0x0] - mov r2, #0x14 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308D8: - mov r3, #0x20 - tst r3, r2 - beq _020308F0 - ldrb r3, [r4, #0x0] - mov r2, #0x18 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308F0: - mov r3, #0x10 - tst r2, r3 - beq _02030906 - ldrb r3, [r4, #0x0] - mov r2, #0x1c - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] -_02030906: - ldr r0, _0203091C ; =0x021C59F4 - ldrb r2, [r4, #0x0] - ldr r1, [r0, #0x4] - ldr r0, _0203092C ; =0x0000062B - ldrb r0, [r1, r0] - lsl r0, r0, #0x5 - orr r0, r2 - strb r0, [r4, #0x0] - mov r0, #0x0 - pop {r4, pc} - nop -_0203091C: .word 0x021C59F4 -_02030920: .word 0x0000062A -_02030924: .word 0x00000681 -_02030928: .word 0x00000628 -_0203092C: .word 0x0000062B - - thumb_func_start FUN_02030930 -FUN_02030930: ; 0x02030930 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r5, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - ldr r0, _020309F0 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020309F4 ; =0x00000684 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030960 - mov r0, #0x0 - b _02030962 -_02030960: - mov r0, #0x1 -_02030962: - strb r0, [r4, #0x0] - bl FUN_0202FA28 - cmp r0, #0x0 - bne _02030972 - add r0, r4, #0x0 - bl FUN_02030870 -_02030972: - ldr r1, _020309F0 ; =0x021C59F4 - ldr r0, _020309F4 ; =0x00000684 - ldr r2, [r1, #0x4] - mov r3, #0x0 - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - ldr r0, _020309F8 ; =0x0000054C - add r0, r1, r0 - bl FUN_0202D4E4 - cmp r0, #0x0 - beq _0203099E - ldrb r1, [r4, #0x0] - mov r0, #0x2 - orr r0, r1 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x0] - cmp r0, #0x2 - bne _020309E8 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_0203099E: - sub r0, r5, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x1 - str r0, [sp, #0x0] - ldr r0, _020309F0 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020309F8 ; =0x0000054C - add r0, r1, r0 - add r1, sp, #0x0 - bl FUN_0202D760 - cmp r0, #0x0 - bne _020309C4 - ldr r0, _020309F0 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020309F4 ; =0x00000684 - strb r2, [r1, r0] -_020309C4: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _020309E8 - ldr r2, _020309F0 ; =0x021C59F4 - ldr r1, _020309FC ; =0x0000065E - ldr r3, [r2, #0x4] - ldrb r0, [r3, r1] - add r0, r0, #0x1 - strb r0, [r3, r1] - ldr r2, [r2, #0x4] - ldrb r0, [r4, #0x0] - ldrb r1, [r2, r1] - lsl r2, r1, #0x4 - mov r1, #0xf0 - and r1, r2 - orr r0, r1 - strb r0, [r4, #0x0] -_020309E8: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - nop -_020309F0: .word 0x021C59F4 -_020309F4: .word 0x00000684 -_020309F8: .word 0x0000054C -_020309FC: .word 0x0000065E - - thumb_func_start FUN_02030A00 -FUN_02030A00: ; 0x02030A00 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0xb - strb r0, [r4, #0x0] - ldr r0, _02030A6C ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030A1A - mov r0, #0x0 - b _02030A1C -_02030A1A: - mov r0, #0x1 -_02030A1C: - strb r0, [r4, #0x1] - bl FUN_0202CB8C - asr r1, r0, #0x8 - strb r1, [r4, #0x2] - strb r0, [r4, #0x3] - mov r0, #0xbb - str r0, [sp, #0x4] - add r0, r4, #0x5 - str r0, [sp, #0x0] - ldr r0, _02030A6C ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030A74 ; =0x0000056C - add r0, r1, r0 - add r1, sp, #0x0 - bl FUN_0202D760 - cmp r0, #0x0 - beq _02030A5A - ldr r0, _02030A6C ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - strb r2, [r1, r0] - ldr r1, [sp, #0x4] - mov r0, #0xbb - sub r0, r0, r1 - add sp, #0x8 - strb r0, [r4, #0x4] - pop {r4, pc} -_02030A5A: - ldr r0, _02030A6C ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - strb r2, [r1, r0] - mov r0, #0xbb - strb r0, [r4, #0x4] - add sp, #0x8 - pop {r4, pc} - .balign 4 -_02030A6C: .word 0x021C59F4 -_02030A70: .word 0x00000685 -_02030A74: .word 0x0000056C - - thumb_func_start FUN_02030A78 -FUN_02030A78: ; 0x02030A78 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030A9C - bl FUN_02031280 - cmp r0, #0x0 - bne _02030A9C - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030A9C: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02030AD4 ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030AD8 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030AC0 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030AC0: - bl FUN_02033534 - cmp r0, #0xa - bne _02030ACC - bl FUN_02031454 -_02030ACC: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02030AD4: .word 0x021C59F4 -_02030AD8: .word 0x0000054C - - thumb_func_start FUN_02030ADC -FUN_02030ADC: ; 0x02030ADC - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030B00 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030B00 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B00: - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02030B34 ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030B38 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030B22 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030B22: - bl FUN_02033534 - cmp r0, #0xa - bne _02030B2E - bl FUN_02031454 -_02030B2E: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_02030B34: .word 0x021C59F4 -_02030B38: .word 0x0000054C - - thumb_func_start FUN_02030B3C -FUN_02030B3C: ; 0x02030B3C - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02030B58 - bl ErrorHandling - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B58: - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030B70 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030B70 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B70: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030B86 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02030A78 - add sp, #0x8 - pop {r4-r6, pc} -_02030B86: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02030BBC ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030BC0 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030BAA - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030BAA: - bl FUN_02033534 - cmp r0, #0xa - bne _02030BB6 - bl FUN_02031454 -_02030BB6: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_02030BBC: .word 0x021C59F4 -_02030BC0: .word 0x0000056C - - thumb_func_start FUN_02030BC4 -FUN_02030BC4: ; 0x02030BC4 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02030BE0 - bl FUN_02031454 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030BE0: - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030BF8 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030BF8 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030BF8: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030C0E - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02030ADC - add sp, #0x8 - pop {r4-r6, pc} -_02030C0E: - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02030C44 ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030C48 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030C30 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030C30: - bl FUN_02033534 - cmp r0, #0xa - bne _02030C3C - bl FUN_02031454 -_02030C3C: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02030C44: .word 0x021C59F4 -_02030C48: .word 0x0000056C - - thumb_func_start FUN_02030C4C -FUN_02030C4C: ; 0x02030C4C - ldr r3, _02030C54 ; =FUN_02030BC4 - mov r2, #0x0 - bx r3 - nop -_02030C54: .word FUN_02030BC4 - - thumb_func_start FUN_02030C58 -FUN_02030C58: ; 0x02030C58 - ldr r0, _02030C64 ; =0x021C59F4 - ldr r3, _02030C68 ; =FUN_0202D498 - ldr r1, [r0, #0x4] - ldr r0, _02030C6C ; =0x00000464 - add r0, r1, r0 - bx r3 - .balign 4 -_02030C64: .word 0x021C59F4 -_02030C68: .word FUN_0202D498 -_02030C6C: .word 0x00000464 - - thumb_func_start FUN_02030C70 -FUN_02030C70: ; 0x02030C70 - push {r4, lr} - ldr r4, [sp, #0x8] - bl FUN_0202D934 - mov r0, #0xee - strb r0, [r4, #0xa] - ldr r0, _02030C88 ; =0x0000FFFF - strh r0, [r4, #0x8] - mov r0, #0x0 - str r0, [r4, #0x4] - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_02030C88: .word 0x0000FFFF - - thumb_func_start FUN_02030C8C -FUN_02030C8C: ; 0x02030C8C - push {r4-r7, lr} - sub sp, #0x14 - add r6, r0, #0x0 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - ldr r5, [sp, #0x28] - bl FUN_0202D478 - cmp r0, #0x0 - beq _02030D94 -_02030CA0: - ldrb r7, [r5, #0xa] - cmp r7, #0xee - bne _02030CB2 - add r0, r6, #0x0 - bl FUN_0202D41C - add r7, r0, #0x0 - cmp r7, #0xee - beq _02030D8A -_02030CB2: - mov r0, #0x4 - ldrsh r0, [r6, r0] - strb r7, [r5, #0xa] - ldrh r4, [r5, #0x8] - str r0, [sp, #0x10] - ldr r0, _02030D98 ; =0x0000FFFF - cmp r4, r0 - bne _02030D06 - add r0, r7, #0x0 - bl FUN_0202D9A0 - add r4, r0, #0x0 - ldr r0, _02030D9C ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030DA0 ; =0x00000689 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030D94 - ldr r0, _02030D98 ; =0x0000FFFF - cmp r4, r0 - bne _02030D04 - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, #0x1 - bge _02030CEE - ldr r0, [sp, #0x10] - add sp, #0x14 - strh r0, [r6, #0x4] - pop {r4-r7, pc} -_02030CEE: - add r0, r6, #0x0 - bl FUN_0202D41C - lsl r4, r0, #0x8 - add r0, r6, #0x0 - bl FUN_0202D41C - add r4, r4, r0 - mov r0, #0x4 - ldrsh r0, [r6, r0] - str r0, [sp, #0x10] -_02030D04: - strh r4, [r5, #0x8] -_02030D06: - add r0, r7, #0x0 - bl FUN_0202DA04 - cmp r0, #0x0 - beq _02030D5E - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _02030D22 - ldrh r2, [r5, #0x8] - ldr r1, [sp, #0x4] - add r0, r7, #0x0 - bl FUN_0202DA40 - str r0, [r5, #0x4] -_02030D22: - ldr r2, [r5, #0x0] - ldr r1, [sp, #0x8] - add r0, r6, #0x0 - sub r2, r4, r2 - bl FUN_0202D400 - ldr r2, [r5, #0x4] - str r0, [sp, #0xc] - cmp r2, #0x0 - beq _02030D42 - ldr r1, [r5, #0x0] - ldr r0, [sp, #0x8] - add r1, r2, r1 - ldr r2, [sp, #0xc] - bl MI_CpuCopy8 -_02030D42: - ldr r1, [r5, #0x0] - ldr r0, [sp, #0xc] - add r0, r1, r0 - str r0, [r5, #0x0] - cmp r0, r4 - blt _02030D8A - str r5, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r3, [r5, #0x4] - add r1, r7, #0x0 - add r2, r4, #0x0 - bl FUN_02030C70 - b _02030D8A -_02030D5E: - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, r4 - blt _02030D82 - ldr r1, [sp, #0x8] - add r0, r6, #0x0 - add r2, r4, #0x0 - bl FUN_0202D400 - ldr r0, [sp, #0x4] - ldr r3, [sp, #0x8] - add r1, r7, #0x0 - add r2, r4, #0x0 - str r5, [sp, #0x0] - bl FUN_02030C70 - b _02030D8A -_02030D82: - ldr r0, [sp, #0x10] - add sp, #0x14 - strh r0, [r6, #0x4] - pop {r4-r7, pc} -_02030D8A: - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, #0x0 - bne _02030CA0 -_02030D94: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02030D98: .word 0x0000FFFF -_02030D9C: .word 0x021C59F4 -_02030DA0: .word 0x00000689 - - thumb_func_start FUN_02030DA4 -FUN_02030DA4: ; 0x02030DA4 - push {r3, lr} - ldr r0, _02030DF0 ; =0x021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030DEE - ldr r0, _02030DF4 ; =0x0000068B - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030DEE - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - bl FUN_0202D4BC - ldr r0, _02030DF0 ; =0x021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - bl FUN_0202D478 - cmp r0, #0x0 - ble _02030DEE - ldr r0, _02030DF0 ; =0x021C59F4 - mov r2, #0x47 - ldr r3, [r0, #0x4] - ldr r0, _02030DF8 ; =0x000005EC - lsl r2, r2, #0x4 - add r0, r3, r0 - str r0, [sp, #0x0] - add r0, r3, r2 - sub r2, #0x10 - ldr r2, [r3, r2] - mov r1, #0x0 - mov r3, #0x1 - bl FUN_02030C8C -_02030DEE: - pop {r3, pc} - .balign 4 -_02030DF0: .word 0x021C59F4 -_02030DF4: .word 0x0000068B -_02030DF8: .word 0x000005EC - - thumb_func_start FUN_02030DFC -FUN_02030DFC: ; 0x02030DFC - push {r3-r7, lr} - ldr r0, _02030E6C ; =0x021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030E68 - ldr r0, _02030E70 ; =0x0000068B - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030E68 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r7, r0, #0x1 - mov r4, #0x0 - cmp r7, #0x0 - ble _02030E68 - ldr r6, _02030E6C ; =0x021C59F4 - add r5, r4, #0x0 -_02030E26: - ldr r1, [r6, #0x4] - ldr r0, _02030E74 ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r5 - bl FUN_0202D4BC - ldr r1, [r6, #0x4] - ldr r0, _02030E74 ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r5 - bl FUN_0202D478 - cmp r0, #0x0 - ble _02030E60 - ldr r3, [r6, #0x4] - ldr r0, _02030E78 ; =0x0000058C - mov r2, #0x46 - add r0, r3, r0 - add r0, r0, r5 - str r0, [sp, #0x0] - ldr r0, _02030E74 ; =0x000004E8 - lsl r2, r2, #0x4 - add r0, r3, r0 - ldr r2, [r3, r2] - add r0, r0, r5 - add r1, r4, #0x0 - mov r3, #0x0 - bl FUN_02030C8C -_02030E60: - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r7 - blt _02030E26 -_02030E68: - pop {r3-r7, pc} - nop -_02030E6C: .word 0x021C59F4 -_02030E70: .word 0x0000068B -_02030E74: .word 0x000004E8 -_02030E78: .word 0x0000058C - - thumb_func_start FUN_02030E7C -FUN_02030E7C: ; 0x02030E7C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02030F14 ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - bne _02030E8C - mov r0, #0x0 - pop {r4, pc} -_02030E8C: - bl FUN_02033534 - cmp r0, #0x13 - blt _02030EC0 - ldr r0, _02030F14 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030F18 ; =0x00000687 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02030EBC - bl MOD04_021D8018 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02030EBC - cmp r4, #0x0 - bne _02030EB4 - mov r0, #0x1 - pop {r4, pc} -_02030EB4: - cmp r4, #0x1 - bne _02030EBC - mov r0, #0x1 - pop {r4, pc} -_02030EBC: - mov r0, #0x0 - pop {r4, pc} -_02030EC0: - bl FUN_02030F40 - cmp r0, #0x0 - bne _02030ECC - mov r0, #0x0 - pop {r4, pc} -_02030ECC: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _02030ED8 - mov r0, #0x0 - pop {r4, pc} -_02030ED8: - bl FUN_02031190 - cmp r4, r0 - bne _02030EE4 - mov r0, #0x1 - pop {r4, pc} -_02030EE4: - bl FUN_02031190 - cmp r0, #0x0 - bne _02030EFE - bl FUN_0202CB8C - mov r1, #0x1 - add r2, r1, #0x0 - lsl r2, r4 - tst r0, r2 - beq _02030F10 - add r0, r1, #0x0 - pop {r4, pc} -_02030EFE: - ldr r0, _02030F14 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030F1C ; =0x0000065C - ldrh r2, [r1, r0] - mov r0, #0x1 - add r1, r0, #0x0 - lsl r1, r4 - tst r1, r2 - bne _02030F12 -_02030F10: - mov r0, #0x0 -_02030F12: - pop {r4, pc} - .balign 4 -_02030F14: .word 0x021C59F4 -_02030F18: .word 0x00000687 -_02030F1C: .word 0x0000065C - - thumb_func_start FUN_02030F20 -FUN_02030F20: ; 0x02030F20 - push {r3-r5, lr} - mov r4, #0x0 - add r5, r4, #0x0 -_02030F26: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02030F34 - add r4, r4, #0x1 -_02030F34: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _02030F26 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02030F40 -FUN_02030F40: ; 0x02030F40 - push {r3, lr} - ldr r0, _02030F5C ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _02030F56 - bl FUN_02033534 - cmp r0, #0x13 - blt _02030F56 - mov r0, #0x1 - pop {r3, pc} -_02030F56: - bl FUN_0202EDF8 - pop {r3, pc} - .balign 4 -_02030F5C: .word 0x021C59F4 - - thumb_func_start FUN_02030F60 -FUN_02030F60: ; 0x02030F60 - ldr r1, _02030F6C ; =0x021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _02030F70 ; =0x0000062B - strb r0, [r2, r1] - bx lr - nop -_02030F6C: .word 0x021C59F4 -_02030F70: .word 0x0000062B - - thumb_func_start FUN_02030F74 -FUN_02030F74: ; 0x02030F74 - ldr r1, _02030F84 ; =0x021C59F4 - ldr r1, [r1, #0x4] - add r1, r1, r0 - mov r0, #0x62 - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - bx lr - nop -_02030F84: .word 0x021C59F4 - - thumb_func_start FUN_02030F88 -FUN_02030F88: ; 0x02030F88 - ldr r1, _02030FA4 ; =0x021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - bne _02030F94 - mov r0, #0x0 - bx lr -_02030F94: - mov r1, #0x61 - lsl r1, r1, #0x4 - add r3, r2, r1 - lsl r2, r0, #0x1 - ldrh r0, [r3, r2] - mov r1, #0x0 - strh r1, [r3, r2] - bx lr - .balign 4 -_02030FA4: .word 0x021C59F4 - - thumb_func_start FUN_02030FA8 -FUN_02030FA8: ; 0x02030FA8 - ldr r0, _02030FC0 ; =0x021C59F4 - ldr r3, [r0, #0x4] - cmp r3, #0x0 - beq _02030FBC - ldr r1, _02030FC4 ; =0x00000628 - mov r0, #0x2 - ldrh r2, [r3, r1] - lsl r0, r0, #0xe - orr r0, r2 - strh r0, [r3, r1] -_02030FBC: - bx lr - nop -_02030FC0: .word 0x021C59F4 -_02030FC4: .word 0x00000628 - - thumb_func_start FUN_02030FC8 -FUN_02030FC8: ; 0x02030FC8 - ldr r0, _02030FD8 ; =0x021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _02030FD6 - ldr r0, _02030FDC ; =0x00000628 - mov r1, #0x0 - strh r1, [r2, r0] -_02030FD6: - bx lr - .balign 4 -_02030FD8: .word 0x021C59F4 -_02030FDC: .word 0x00000628 - - thumb_func_start FUN_02030FE0 -FUN_02030FE0: ; 0x02030FE0 - ldr r0, _02030FF8 ; =0x021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030FF4 - ldr r0, _02030FFC ; =0x00000628 - ldrh r1, [r1, r0] - mov r0, #0x2 - lsl r0, r0, #0xe - and r0, r1 - bx lr -_02030FF4: - mov r0, #0x1 - bx lr - .balign 4 -_02030FF8: .word 0x021C59F4 -_02030FFC: .word 0x00000628 - - thumb_func_start FUN_02031000 -FUN_02031000: ; 0x02031000 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02031030 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02031050 ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031054 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r4-r6, pc} -_02031030: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02031050 ; =0x021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031058 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02031050: .word 0x021C59F4 -_02031054: .word 0x0000054C -_02031058: .word 0x0000056C - - thumb_func_start FUN_0203105C -FUN_0203105C: ; 0x0203105C - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02031080 ; =0x021C59F4 - add r4, r1, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031084 ; =0x0000054C - add r3, r2, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02031080: .word 0x021C59F4 -_02031084: .word 0x0000054C - - thumb_func_start FUN_02031088 -FUN_02031088: ; 0x02031088 - push {r3, lr} - ldr r0, _02031100 ; =0x021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _020310FC - ldr r1, _02031104 ; =0x0000067B - ldrb r0, [r2, r1] - cmp r0, #0x1 - beq _020310A0 - cmp r0, #0x3 - beq _020310D8 - pop {r3, pc} -_020310A0: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _020310B8 - ldr r1, _02031100 ; =0x021C59F4 - mov r0, #0xb - ldr r2, [r1, #0x4] - ldr r1, _02031108 ; =0x0000067C - add r1, r2, r1 - bl FUN_020311D0 - b _020310C8 -_020310B8: - ldr r1, _02031100 ; =0x021C59F4 - mov r0, #0xb - ldr r2, [r1, #0x4] - ldr r1, _02031108 ; =0x0000067C - add r1, r2, r1 - mov r2, #0x1 - bl FUN_02030BC4 -_020310C8: - cmp r0, #0x0 - beq _020310FC - ldr r0, _02031100 ; =0x021C59F4 - mov r2, #0x2 - ldr r1, [r0, #0x4] - ldr r0, _02031104 ; =0x0000067B - strb r2, [r1, r0] - pop {r3, pc} -_020310D8: - add r1, r1, #0x1 - mov r0, #0xc - add r1, r2, r1 - bl FUN_020311D0 - cmp r0, #0x0 - beq _020310FC - ldr r0, _02031100 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02031108 ; =0x0000067C - ldrb r0, [r1, r0] - bl FUN_0202F9E0 - ldr r0, _02031100 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031104 ; =0x0000067B - strb r2, [r1, r0] -_020310FC: - pop {r3, pc} - nop -_02031100: .word 0x021C59F4 -_02031104: .word 0x0000067B -_02031108: .word 0x0000067C - - thumb_func_start FUN_0203110C -FUN_0203110C: ; 0x0203110C - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0203112A - ldr r1, _0203112C ; =0x021C59F4 - ldr r0, _02031130 ; =0x0000067B - ldr r2, [r1, #0x4] - mov r3, #0x1 - strb r3, [r2, r0] - ldrb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - add r0, r0, #0x1 - strb r2, [r1, r0] -_0203112A: - pop {r4, pc} - .balign 4 -_0203112C: .word 0x021C59F4 -_02031130: .word 0x0000067B - - thumb_func_start FUN_02031134 -FUN_02031134: ; 0x02031134 - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02031152 - ldr r1, _02031154 ; =0x021C59F4 - ldrb r3, [r4, #0x0] - ldr r2, [r1, #0x4] - ldr r0, _02031158 ; =0x0000067C - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - mov r2, #0x3 - sub r0, r0, #0x1 - strb r2, [r1, r0] -_02031152: - pop {r4, pc} - .balign 4 -_02031154: .word 0x021C59F4 -_02031158: .word 0x0000067C - - thumb_func_start FUN_0203115C -FUN_0203115C: ; 0x0203115C - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02031184 - ldr r0, _02031188 ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0203118C ; =0x0000067B - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _02031184 - ldrb r0, [r4, #0x0] - bl FUN_0202F9E0 - ldr r0, _02031188 ; =0x021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203118C ; =0x0000067B - strb r2, [r1, r0] -_02031184: - pop {r4, pc} - nop -_02031188: .word 0x021C59F4 -_0203118C: .word 0x0000067B - - thumb_func_start FUN_02031190 -FUN_02031190: ; 0x02031190 - push {r3, lr} - ldr r0, _020311CC ; =0x021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _020311C6 - bl FUN_02033534 - cmp r0, #0x13 - blt _020311B4 - bl MOD04_021D8018 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020311C6 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r3, pc} -_020311B4: - bl FUN_02031280 - cmp r0, #0x0 - beq _020311C0 - mov r0, #0x0 - pop {r3, pc} -_020311C0: - bl FUN_0202D19C - pop {r3, pc} -_020311C6: - mov r0, #0x0 - pop {r3, pc} - nop -_020311CC: .word 0x021C59F4 - - thumb_func_start FUN_020311D0 -FUN_020311D0: ; 0x020311D0 - ldr r3, _020311D8 ; =FUN_02030ADC - mov r2, #0x0 - bx r3 - nop -_020311D8: .word FUN_02030ADC - - thumb_func_start FUN_020311DC -FUN_020311DC: ; 0x020311DC - ldr r3, _020311E4 ; =FUN_02030ADC - mov r1, #0x0 - add r2, r1, #0x0 - bx r3 - .balign 4 -_020311E4: .word FUN_02030ADC - - thumb_func_start FUN_020311E8 -FUN_020311E8: ; 0x020311E8 - ldr r3, _020311EC ; =FUN_0202EE24 - bx r3 - .balign 4 -_020311EC: .word FUN_0202EE24 - - thumb_func_start FUN_020311F0 -FUN_020311F0: ; 0x020311F0 - push {r3, lr} - bl FUN_02031280 - cmp r0, #0x0 - beq _020311FE - mov r0, #0x0 - pop {r3, pc} -_020311FE: - ldr r0, _02031220 ; =0x021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0203121A - ldr r0, _02031224 ; =0x00000689 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0203121A - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - pop {r3, pc} -_0203121A: - bl FUN_0202EE60 - pop {r3, pc} - .balign 4 -_02031220: .word 0x021C59F4 -_02031224: .word 0x00000689 - - thumb_func_start FUN_02031228 -FUN_02031228: ; 0x02031228 - push {r3, lr} - bl FUN_0202D858 - cmp r0, #0x5 - blo _02031236 - mov r0, #0xc - pop {r3, pc} -_02031236: - bl FUN_0202FA28 - cmp r0, #0x0 - bne _02031242 - mov r0, #0xc - pop {r3, pc} -_02031242: - mov r0, #0x26 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031248 -FUN_02031248: ; 0x02031248 - push {r3, lr} - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031258 -FUN_02031258: ; 0x02031258 - push {r3, lr} - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D884 - add r0, r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031268 -FUN_02031268: ; 0x02031268 - ldr r1, _02031278 ; =0x021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _02031274 - ldr r1, _0203127C ; =0x00000686 - strb r0, [r2, r1] -_02031274: - bx lr - nop -_02031278: .word 0x021C59F4 -_0203127C: .word 0x00000686 - - thumb_func_start FUN_02031280 -FUN_02031280: ; 0x02031280 - ldr r0, _02031294 ; =0x021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0203128E - ldr r0, _02031298 ; =0x00000686 - ldrb r0, [r1, r0] - bx lr -_0203128E: - mov r0, #0x0 - bx lr - nop -_02031294: .word 0x021C59F4 -_02031298: .word 0x00000686 - - thumb_func_start FUN_0203129C -FUN_0203129C: ; 0x0203129C - push {r3, lr} - bl FUN_0202F03C - cmp r0, #0x0 - bne _020312B6 - bl FUN_02031190 - cmp r0, #0x0 - bne _020312B6 - mov r0, #0x2 - add r1, sp, #0x0 - bl FUN_02030C4C -_020312B6: - bl FUN_0202F05C - pop {r3, pc} - - thumb_func_start FUN_020312BC -FUN_020312BC: ; 0x020312BC - push {r3-r7, lr} - sub sp, #0x20 - add r4, r0, #0x0 - add r0, sp, #0x10 - add r1, sp, #0x4 - bl FUN_0201265C - ldr r0, _02031340 ; =0x021C48B8 - ldr r6, [sp, #0x10] - mov r5, #0x0 - lsr r7, r6, #0x1c - lsl r5, r5, #0x4 - ldr r1, [sp, #0xc] - ldr r0, [r0, #0x2c] - lsl r6, r6, #0x4 - add r3, r1, r0 - ldr r0, [sp, #0x18] - orr r5, r7 - str r0, [sp, #0x0] - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x4] - add r6, r0, r6 - ldr r0, _02031344 ; =0x00000000 - ldr r2, [sp, #0x8] - adc r0, r5 - lsr r5, r6, #0x1b - lsl r0, r0, #0x5 - orr r0, r5 - ldr r5, [sp, #0x0] - lsl r6, r6, #0x5 - add r6, r5, r6 - ldr r5, _02031344 ; =0x00000000 - adc r5, r0 - lsr r0, r6, #0x1b - lsl r5, r5, #0x5 - orr r5, r0 - lsl r0, r6, #0x5 - add r6, r1, r0 - ldr r1, _02031344 ; =0x00000000 - adc r1, r5 - lsr r0, r6, #0x1a - lsl r1, r1, #0x6 - orr r1, r0 - lsl r0, r6, #0x6 - add r5, r2, r0 - ldr r2, _02031344 ; =0x00000000 - adc r2, r1 - lsr r0, r5, #0x1a - lsl r1, r2, #0x6 - orr r1, r0 - lsl r0, r5, #0x6 - add r2, r3, r0 - ldr r0, _02031344 ; =0x00000000 - str r2, [r4, #0x0] - adc r0, r1 - str r0, [r4, #0x4] - ldr r1, _02031348 ; =0x6C078965 - ldr r0, _0203134C ; =0x5D588B65 - str r1, [r4, #0x8] - str r0, [r4, #0xc] - ldr r0, _02031350 ; =0x00269EC3 - str r0, [r4, #0x10] - mov r0, #0x0 - str r0, [r4, #0x14] - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 -_02031340: .word 0x021C48B8 -_02031344: .word 0x00000000 -_02031348: .word 0x6C078965 -_0203134C: .word 0x5D588B65 -_02031350: .word 0x00269EC3 - - thumb_func_start FUN_02031354 -FUN_02031354: ; 0x02031354 - add r1, r0, #0x0 - ldr r0, _02031364 ; =0x021C59F4 - ldr r3, _02031368 ; =FUN_0202D830 - ldr r2, [r0, #0x4] - ldr r0, _0203136C ; =0x0000056C - add r0, r2, r0 - bx r3 - nop -_02031364: .word 0x021C59F4 -_02031368: .word FUN_0202D830 -_0203136C: .word 0x0000056C - - thumb_func_start FUN_02031370 -FUN_02031370: ; 0x02031370 - ldr r0, _0203137C ; =0x021C59F4 - ldr r3, _02031380 ; =FUN_0202D4E4 - ldr r1, [r0, #0x4] - ldr r0, _02031384 ; =0x0000056C - add r0, r1, r0 - bx r3 - .balign 4 -_0203137C: .word 0x021C59F4 -_02031380: .word FUN_0202D4E4 -_02031384: .word 0x0000056C - - thumb_func_start FUN_02031388 -FUN_02031388: ; 0x02031388 - ldr r0, _02031394 ; =0x021C59F4 - ldr r3, _02031398 ; =FUN_0202D4E4 - ldr r1, [r0, #0x4] - ldr r0, _0203139C ; =0x0000054C - add r0, r1, r0 - bx r3 - .balign 4 -_02031394: .word 0x021C59F4 -_02031398: .word FUN_0202D4E4 -_0203139C: .word 0x0000054C - - thumb_func_start FUN_020313A0 -FUN_020313A0: ; 0x020313A0 - ldr r1, _020313AC ; =0x021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _020313B0 ; =0x00000687 - strb r0, [r2, r1] - bx lr - nop -_020313AC: .word 0x021C59F4 -_020313B0: .word 0x00000687 - - thumb_func_start FUN_020313B4 -FUN_020313B4: ; 0x020313B4 - ldr r2, _020313C4 ; =0x021C59F4 - ldr r2, [r2, #0x4] - cmp r2, #0x0 - beq _020313C2 - add r2, r2, r1 - ldr r1, _020313C8 ; =0x00000677 - strb r0, [r2, r1] -_020313C2: - bx lr - .balign 4 -_020313C4: .word 0x021C59F4 -_020313C8: .word 0x00000677 - - thumb_func_start FUN_020313CC -FUN_020313CC: ; 0x020313CC - ldr r1, _020313E4 ; =0x021C59F4 - ldr r1, [r1, #0x4] - cmp r1, #0x0 - beq _020313E0 - add r2, r1, r0 - ldr r1, _020313E8 ; =0x00000677 - ldrb r1, [r2, r1] - cmp r1, #0xff - beq _020313E0 - add r0, r1, #0x0 -_020313E0: - bx lr - nop -_020313E4: .word 0x021C59F4 -_020313E8: .word 0x00000677 - - thumb_func_start FUN_020313EC -FUN_020313EC: ; 0x020313EC - push {r3, lr} - bl FUN_02033534 - cmp r0, #0x13 - bge _020313FA - mov r0, #0x0 - pop {r3, pc} -_020313FA: - bl MOD04_021D8624 - pop {r3, pc} - - thumb_func_start FUN_02031400 -FUN_02031400: ; 0x02031400 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02033534 - cmp r0, #0x13 - blt _02031430 - ldr r2, _02031434 ; =0x021C59F4 - mov r1, #0x63 - ldr r0, [r2, #0x4] - lsl r1, r1, #0x4 - str r4, [r0, r1] - cmp r4, #0x0 - beq _02031430 - ldr r3, [r2, #0x4] - mov r4, #0x0 - add r0, r1, #0x4 - str r4, [r3, r0] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - add r0, #0x8 - str r4, [r3, r0] - ldr r0, [r2, #0x4] - add r1, #0xc - str r4, [r0, r1] -_02031430: - pop {r4, pc} - nop -_02031434: .word 0x021C59F4 - - thumb_func_start FUN_02031438 -FUN_02031438: ; 0x02031438 - ldr r0, _0203144C ; =0x021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02031450 ; =0x00000681 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02031448 - mov r0, #0x1 - bx lr -_02031448: - mov r0, #0x0 - bx lr - .balign 4 -_0203144C: .word 0x021C59F4 -_02031450: .word 0x00000681 - - thumb_func_start FUN_02031454 -FUN_02031454: ; 0x02031454 - ldr r0, _02031460 ; =0x021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _02031464 ; =0x00000689 - strb r2, [r1, r0] - bx lr - .balign 4 -_02031460: .word 0x021C59F4 -_02031464: .word 0x00000689 - - thumb_func_start FUN_02031468 -FUN_02031468: ; 0x02031468 - ldr r0, _02031478 ; =0x021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _02031476 - ldr r0, _0203147C ; =0x0000068A - mov r1, #0x1 - strb r1, [r2, r0] -_02031476: - bx lr - .balign 4 -_02031478: .word 0x021C59F4 -_0203147C: .word 0x0000068A - - thumb_func_start FUN_02031480 -FUN_02031480: ; 0x02031480 - push {r4, lr} - ldr r1, _020314C8 ; =0x021C59FC - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _0203149C - ldr r1, _020314CC ; =0x00000253 - bl FUN_02016998 - ldr r1, _020314C8 ; =0x021C59FC - ldr r2, _020314CC ; =0x00000253 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 -_0203149C: - ldr r1, _020314C8 ; =0x021C59FC - mov r3, #0x0 - mov r0, #0xff -_020314A2: - ldr r2, [r1, #0x0] - add r2, r2, r3 - add r3, r3, #0x1 - strb r0, [r2, #0x10] - cmp r3, #0x8 - blt _020314A2 - ldr r3, _020314C8 ; =0x021C59FC - mov r1, #0x25 - ldr r2, [r3, #0x0] - lsl r1, r1, #0x4 - strb r0, [r2, r1] - ldr r4, [r3, #0x0] - add r2, r1, #0x1 - strb r0, [r4, r2] - ldr r2, [r3, #0x0] - mov r4, #0x0 - add r0, r1, #0x2 - strb r4, [r2, r0] - pop {r4, pc} - .balign 4 -_020314C8: .word 0x021C59FC -_020314CC: .word 0x00000253 - - thumb_func_start FUN_020314D0 -FUN_020314D0: ; 0x020314D0 - push {r3, lr} - ldr r0, _020314E4 ; =0x021C59FC - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _020314E4 ; =0x021C59FC - mov r1, #0x0 - str r1, [r0, #0x0] - pop {r3, pc} - nop -_020314E4: .word 0x021C59FC - - thumb_func_start FUN_020314E8 -FUN_020314E8: ; 0x020314E8 - ldr r0, _020314F8 ; =0x021C59FC - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020314F4 - mov r0, #0x1 - bx lr -_020314F4: - mov r0, #0x0 - bx lr - .balign 4 -_020314F8: .word 0x021C59FC - - thumb_func_start FUN_020314FC -FUN_020314FC: ; 0x020314FC - push {r3-r6, lr} - sub sp, #0x4 - ldrb r1, [r2, #0x0] - add r5, r0, #0x0 - add r0, sp, #0x0 - strb r1, [r0, #0x0] - bl FUN_02031190 - cmp r0, #0x0 - bne _02031556 - add r0, sp, #0x0 - strb r5, [r0, #0x1] - ldrb r1, [r0, #0x0] - strb r1, [r0, #0x2] - add r1, sp, #0x0 - mov r0, #0x12 - add r1, #0x1 - bl FUN_02030C4C - ldr r6, _0203155C ; =0x021C59FC - add r4, sp, #0x0 - ldr r0, [r6, #0x0] - ldrb r1, [r4, #0x0] - add r0, r0, r5 - mov r5, #0x0 - strb r1, [r0, #0x10] -_02031530: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02031548 - ldr r0, [r6, #0x0] - ldrb r1, [r4, #0x0] - add r0, r0, r5 - ldrb r0, [r0, #0x10] - cmp r1, r0 - bne _02031556 -_02031548: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _02031530 - mov r0, #0x11 - add r1, sp, #0x0 - bl FUN_02030C4C -_02031556: - add sp, #0x4 - pop {r3-r6, pc} - nop -_0203155C: .word 0x021C59FC - - thumb_func_start FUN_02031560 -FUN_02031560: ; 0x02031560 - ldr r0, _02031570 ; =0x021C59FC - ldrb r3, [r2, #0x1] - ldr r1, [r0, #0x0] - ldrb r0, [r2, #0x0] - add r0, r1, r0 - strb r3, [r0, #0x10] - bx lr - nop -_02031570: .word 0x021C59FC - - thumb_func_start FUN_02031574 -FUN_02031574: ; 0x02031574 - ldr r0, _02031584 ; =0x021C59FC - ldrb r2, [r2, #0x0] - ldr r1, [r0, #0x0] - mov r0, #0x25 - lsl r0, r0, #0x4 - strb r2, [r1, r0] - bx lr - nop -_02031584: .word 0x021C59FC - - thumb_func_start FUN_02031588 -FUN_02031588: ; 0x02031588 - ldr r2, _0203159C ; =0x021C59FC - ldr r1, _020315A0 ; =0x00000251 - ldr r3, [r2, #0x0] - strb r0, [r3, r1] - ldr r2, [r2, #0x0] - mov r3, #0x1 - add r0, r1, #0x1 - strb r3, [r2, r0] - bx lr - nop -_0203159C: .word 0x021C59FC -_020315A0: .word 0x00000251 - - thumb_func_start FUN_020315A4 -FUN_020315A4: ; 0x020315A4 - push {r3, lr} - ldr r0, _020315D0 ; =0x021C59FC - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _020315CE - ldr r1, _020315D4 ; =0x00000252 - ldrb r0, [r2, r1] - cmp r0, #0x0 - beq _020315CE - sub r1, r1, #0x1 - mov r0, #0x10 - add r1, r2, r1 - bl FUN_020311D0 - cmp r0, #0x0 - beq _020315CE - ldr r0, _020315D0 ; =0x021C59FC - mov r2, #0x0 - ldr r1, [r0, #0x0] - ldr r0, _020315D4 ; =0x00000252 - strb r2, [r1, r0] -_020315CE: - pop {r3, pc} - .balign 4 -_020315D0: .word 0x021C59FC -_020315D4: .word 0x00000252 - - thumb_func_start FUN_020315D8 -FUN_020315D8: ; 0x020315D8 - ldr r1, _020315F8 ; =0x021C59FC - ldr r2, [r1, #0x0] - cmp r2, #0x0 - bne _020315E4 - mov r0, #0x1 - bx lr -_020315E4: - mov r1, #0x25 - lsl r1, r1, #0x4 - ldrb r1, [r2, r1] - cmp r1, r0 - bne _020315F2 - mov r0, #0x1 - bx lr -_020315F2: - mov r0, #0x0 - bx lr - nop -_020315F8: .word 0x021C59FC - - thumb_func_start FUN_020315FC -FUN_020315FC: ; 0x020315FC - ldr r1, _02031608 ; =0x021C59FC - ldr r1, [r1, #0x0] - add r0, r1, r0 - ldrb r0, [r0, #0x10] - bx lr - nop -_02031608: .word 0x021C59FC - - thumb_func_start FUN_0203160C -FUN_0203160C: ; 0x0203160C - push {r3-r4} - lsl r4, r0, #0x1 - ldr r0, _02031624 ; =0x021C59FC - ldrb r3, [r2, #0x0] - ldr r1, [r0, #0x0] - strb r3, [r1, r4] - ldr r0, [r0, #0x0] - ldrb r1, [r2, #0x1] - add r0, r0, r4 - strb r1, [r0, #0x1] - pop {r3-r4} - bx lr - .balign 4 -_02031624: .word 0x021C59FC - - thumb_func_start FUN_02031628 -FUN_02031628: ; 0x02031628 - mov r0, #0x2 - bx lr - - thumb_func_start FUN_0203162C -FUN_0203162C: ; 0x0203162C - push {r3, lr} - add r2, sp, #0x0 - strb r0, [r2, #0x0] - strb r1, [r2, #0x1] - mov r0, #0x13 - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031640 -FUN_02031640: ; 0x02031640 - ldr r2, _02031664 ; =0x021C59FC - ldr r3, [r2, #0x0] - cmp r3, #0x0 - bne _0203164E - mov r0, #0x0 - mvn r0, r0 - bx lr -_0203164E: - lsl r2, r0, #0x1 - ldrb r0, [r3, r2] - cmp r1, r0 - bne _0203165C - add r0, r3, r2 - ldrb r0, [r0, #0x1] - bx lr -_0203165C: - mov r0, #0x0 - mvn r0, r0 - bx lr - nop -_02031664: .word 0x021C59FC - - thumb_func_start FUN_02031668 -FUN_02031668: ; 0x02031668 - push {r3-r7, lr} - mov r4, #0x0 - ldr r6, _02031688 ; =0x021C59FC - add r5, r4, #0x0 - add r7, r4, #0x0 -_02031672: - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r0, r0, r5 - mov r2, #0x2 - bl MI_CpuFill8 - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, #0x8 - blt _02031672 - pop {r3-r7, pc} - .balign 4 -_02031688: .word 0x021C59FC - - thumb_func_start FUN_0203168C -FUN_0203168C: ; 0x0203168C - push {r3-r4} - mov r4, #0x0 - mov r0, #0x92 - ldr r1, _020316A8 ; =0x021C59FC - add r3, r4, #0x0 - lsl r0, r0, #0x2 -_02031698: - ldr r2, [r1, #0x0] - add r2, r2, r4 - add r4, r4, #0x1 - strb r3, [r2, r0] - cmp r4, #0x8 - blt _02031698 - pop {r3-r4} - bx lr - .balign 4 -_020316A8: .word 0x021C59FC - - thumb_func_start FUN_020316AC -FUN_020316AC: ; 0x020316AC - push {r4, lr} - ldr r2, _020316DC ; =0x021C59FC - ldr r3, [r2, #0x0] - cmp r3, #0x0 - beq _020316D8 - add r4, r0, #0x0 - mov r2, #0x46 - mul r4, r2 - add r3, #0x18 - add r0, r1, #0x0 - add r1, r3, r4 - bl MI_CpuCopy8 - ldr r1, _020316DC ; =0x021C59FC - mov r0, #0x14 - ldr r1, [r1, #0x0] - add r1, #0x18 - add r1, r1, r4 - bl FUN_020311D0 - mov r0, #0x1 - pop {r4, pc} -_020316D8: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_020316DC: .word 0x021C59FC - - thumb_func_start FUN_020316E0 -FUN_020316E0: ; 0x020316E0 - ldr r1, _02031700 ; =0x021C59FC - ldr r3, [r1, #0x0] - mov r1, #0x92 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _020316FA - mov r1, #0x46 - add r3, #0x18 - mul r1, r0 - add r0, r3, r1 - bx lr -_020316FA: - mov r0, #0x0 - bx lr - nop -_02031700: .word 0x021C59FC - - thumb_func_start FUN_02031704 -FUN_02031704: ; 0x02031704 - push {r3-r5, lr} - ldr r3, _0203172C ; =0x021C59FC - add r1, r0, #0x0 - ldr r0, [r3, #0x0] - mov r5, #0x1 - add r4, r0, r1 - mov r0, #0x92 - lsl r0, r0, #0x2 - strb r5, [r4, r0] - ldr r4, [r3, #0x0] - add r0, r2, #0x0 - mov r2, #0x46 - add r3, r1, #0x0 - add r4, #0x18 - mul r3, r2 - add r1, r4, r3 - bl MI_CpuCopy8 - pop {r3-r5, pc} - nop -_0203172C: .word 0x021C59FC - - thumb_func_start FUN_02031730 -FUN_02031730: ; 0x02031730 - mov r0, #0x46 - bx lr - - thumb_func_start FUN_02031734 -FUN_02031734: ; 0x02031734 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _020317BC ; =0x021C5A00 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020317B8 - bl FUN_0202E49C - mov r0, #0xf - mov r1, #0x50 - bl FUN_02016998 - ldr r1, _020317BC ; =0x021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _020317BC ; =0x021C5A00 - mov r2, #0x32 - ldr r1, [r0, #0x0] - strh r2, [r1, #0x3a] - ldr r1, [r0, #0x0] - mov r2, #0x1 - add r1, #0x43 - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - str r5, [r0, #0x28] - add r0, r5, #0x0 - bl FUN_020238F4 - ldr r1, _020317BC ; =0x021C5A00 - ldr r2, [r1, #0x0] - str r0, [r2, #0x2c] - ldr r0, [r1, #0x0] - mov r2, #0x2 - add r0, #0x3c - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x0 - add r0, #0x3d - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0x48 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0x3f - strb r4, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0xc - bl FUN_020312BC - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - bl FUN_0202D8D0 - cmp r4, #0x9 - beq _020317B8 - cmp r4, #0x11 - beq _020317B8 - cmp r4, #0xf - beq _020317B8 - bl FUN_02033E74 -_020317B8: - pop {r3-r5, pc} - nop -_020317BC: .word 0x021C5A00 - - thumb_func_start FUN_020317C0 -FUN_020317C0: ; 0x020317C0 - push {r3, lr} - ldr r0, _0203180C ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203180A - bl FUN_0202D918 - ldr r0, _0203180C ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020317DC - bl FUN_02016A18 -_020317DC: - ldr r0, _0203180C ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x13 - blo _020317EE - mov r0, #0x31 - bl FUN_020168D0 -_020317EE: - bl FUN_02033ED0 - bl FUN_0202E4F0 - ldr r0, _0203180C ; =0x021C5A00 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - mov r0, #0xf - bl FUN_020168D0 - ldr r0, _0203180C ; =0x021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] -_0203180A: - pop {r3, pc} - .balign 4 -_0203180C: .word 0x021C5A00 - - thumb_func_start FUN_02031810 -FUN_02031810: ; 0x02031810 - ldr r0, _02031820 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203181C - mov r0, #0x1 - bx lr -_0203181C: - mov r0, #0x0 - bx lr - .balign 4 -_02031820: .word 0x021C5A00 - - thumb_func_start FUN_02031824 -FUN_02031824: ; 0x02031824 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02031858 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031856 - mov r2, #0xe - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0xa - bl FUN_02031734 - ldr r0, _02031858 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _0203185C ; =FUN_02031D30 - mov r1, #0x32 - bl FUN_02031D20 -_02031856: - pop {r4, pc} - .balign 4 -_02031858: .word 0x021C5A00 -_0203185C: .word FUN_02031D30 - - thumb_func_start FUN_02031860 -FUN_02031860: ; 0x02031860 - push {r3, lr} - ldr r0, _02031878 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031876 - bl FUN_02031468 - ldr r0, _0203187C ; =FUN_020323CC - mov r1, #0x0 - bl FUN_02031D20 -_02031876: - pop {r3, pc} - .balign 4 -_02031878: .word 0x021C5A00 -_0203187C: .word FUN_020323CC - - thumb_func_start FUN_02031880 -FUN_02031880: ; 0x02031880 - push {r3, lr} - bl FUN_0202FC60 - bl FUN_02031190 - ldr r1, _0203189C ; =0x021C5A00 - ldr r1, [r1, #0x0] - strh r0, [r1, #0x38] - ldr r0, _020318A0 ; =FUN_020321B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203189C: .word 0x021C5A00 -_020318A0: .word FUN_020321B8 - - thumb_func_start FUN_020318A4 -FUN_020318A4: ; 0x020318A4 - ldr r1, _020318B0 ; =0x021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x4f - strb r0, [r1, #0x0] - bx lr - nop -_020318B0: .word 0x021C5A00 - - thumb_func_start FUN_020318B4 -FUN_020318B4: ; 0x020318B4 - ldr r3, _020318BC ; =FUN_02031D20 - ldr r0, _020318C0 ; =FUN_02032028 - mov r1, #0x0 - bx r3 - .balign 4 -_020318BC: .word FUN_02031D20 -_020318C0: .word FUN_02032028 - - thumb_func_start FUN_020318C4 -FUN_020318C4: ; 0x020318C4 - push {r4} - sub sp, #0xc - ldr r4, _0203190C ; =0x020EEC50 - add r3, sp, #0x0 - ldmia r4!, {r0-r1} - add r2, r3, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - ldr r0, _02031910 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - cmp r0, #0x0 - bne _020318E8 - add sp, #0xc - mov r0, #0x0 - pop {r4} - bx lr -_020318E8: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02031904 -_020318EE: - ldr r0, [r2, #0x0] - cmp r1, r0 - bne _020318FC - add sp, #0xc - mov r0, #0x1 - pop {r4} - bx lr -_020318FC: - add r2, r2, #0x4 - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _020318EE -_02031904: - mov r0, #0x0 - add sp, #0xc - pop {r4} - bx lr - .balign 4 -_0203190C: .word 0x020EEC50 -_02031910: .word 0x021C5A00 - - thumb_func_start FUN_02031914 -FUN_02031914: ; 0x02031914 - ldr r3, _0203191C ; =FUN_02031D20 - ldr r0, _02031920 ; =FUN_02032178 - mov r1, #0x0 - bx r3 - .balign 4 -_0203191C: .word FUN_02031D20 -_02031920: .word FUN_02032178 - - thumb_func_start FUN_02031924 -FUN_02031924: ; 0x02031924 - ldr r0, _02031930 ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x4c - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031930: .word 0x021C5A00 - - thumb_func_start FUN_02031934 -FUN_02031934: ; 0x02031934 - push {r3, lr} - bl FUN_0202E49C - ldr r0, _02031944 ; =FUN_02032194 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031944: .word FUN_02032194 - - thumb_func_start FUN_02031948 -FUN_02031948: ; 0x02031948 - push {r3-r7, lr} - add r6, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031980 - ldr r2, _02031984 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_02031734 - ldr r0, _02031988 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r1, #0x40 - strb r5, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - str r4, [r0, #0x30] - ldr r0, _0203198C ; =FUN_020321D0 - bl FUN_02031D20 -_02031980: - pop {r3-r7, pc} - nop -_02031984: .word 0x00007080 -_02031988: .word 0x021C5A00 -_0203198C: .word FUN_020321D0 - - thumb_func_start FUN_02031990 -FUN_02031990: ; 0x02031990 - push {r3-r7, lr} - add r6, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _020319C8 - ldr r2, _020319CC ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_02031734 - ldr r0, _020319D0 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r1, #0x40 - strb r5, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - str r4, [r0, #0x30] - ldr r0, _020319D4 ; =FUN_0203224C - bl FUN_02031D20 -_020319C8: - pop {r3-r7, pc} - nop -_020319CC: .word 0x00007080 -_020319D0: .word 0x021C5A00 -_020319D4: .word FUN_0203224C - - thumb_func_start FUN_020319D8 -FUN_020319D8: ; 0x020319D8 - ldr r1, _020319E8 ; =0x021C5A00 - ldr r3, _020319EC ; =FUN_02031D20 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _020319F0 ; =FUN_02032298 - mov r1, #0x0 - bx r3 - .balign 4 -_020319E8: .word 0x021C5A00 -_020319EC: .word FUN_02031D20 -_020319F0: .word FUN_02032298 - - thumb_func_start FUN_020319F4 -FUN_020319F4: ; 0x020319F4 - push {r3, lr} - bl FUN_0202FCA8 - ldr r0, _02031A04 ; =FUN_02032364 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031A04: .word FUN_02032364 - - thumb_func_start FUN_02031A08 -FUN_02031A08: ; 0x02031A08 - push {r3, lr} - ldr r0, _02031A1C ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031A1A - ldr r0, _02031A20 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02031A1A: - pop {r3, pc} - .balign 4 -_02031A1C: .word 0x021C5A00 -_02031A20: .word FUN_02032440 - - thumb_func_start FUN_02031A24 -FUN_02031A24: ; 0x02031A24 - ldr r3, _02031A28 ; =FUN_0202D298 - bx r3 - .balign 4 -_02031A28: .word FUN_0202D298 - - thumb_func_start FUN_02031A2C -FUN_02031A2C: ; 0x02031A2C - push {r4} - sub sp, #0xc - ldr r4, _02031A74 ; =0x020EEC5C - add r3, sp, #0x0 - ldmia r4!, {r0-r1} - add r2, r3, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - ldr r0, _02031A78 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - cmp r0, #0x0 - bne _02031A50 - add sp, #0xc - mov r0, #0x0 - pop {r4} - bx lr -_02031A50: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02031A6C -_02031A56: - ldr r0, [r2, #0x0] - cmp r1, r0 - bne _02031A64 - add sp, #0xc - mov r0, #0x1 - pop {r4} - bx lr -_02031A64: - add r2, r2, #0x4 - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _02031A56 -_02031A6C: - mov r0, #0x0 - add sp, #0xc - pop {r4} - bx lr - .balign 4 -_02031A74: .word 0x020EEC5C -_02031A78: .word 0x021C5A00 - - thumb_func_start FUN_02031A7C -FUN_02031A7C: ; 0x02031A7C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02031ABC ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031ABA - ldr r2, _02031AC0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - cmp r0, #0x0 - bne _02031A9A - bl FUN_020335E0 -_02031A9A: - add r0, r4, #0x0 - mov r1, #0x9 - bl FUN_02031734 - ldr r0, _02031ABC ; =0x021C5A00 - mov r2, #0x9 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02031AC4 ; =FUN_02032478 - bl FUN_02031D20 -_02031ABA: - pop {r4, pc} - .balign 4 -_02031ABC: .word 0x021C5A00 -_02031AC0: .word 0x00007080 -_02031AC4: .word FUN_02032478 - - thumb_func_start FUN_02031AC8 -FUN_02031AC8: ; 0x02031AC8 - push {r3, lr} - ldr r1, _02031AEC ; =0x021C5A00 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - mov r0, #0x1 - bl FUN_0202D344 - bl FUN_02033E74 - ldr r0, _02031AF0 ; =FUN_02032628 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031AEC: .word 0x021C5A00 -_02031AF0: .word FUN_02032628 - - thumb_func_start FUN_02031AF4 -FUN_02031AF4: ; 0x02031AF4 - ldr r0, _02031B20 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031B02 - mov r0, #0x0 - mvn r0, r0 - bx lr -_02031B02: - ldr r1, [r0, #0x24] - ldr r0, _02031B24 ; =FUN_0203279C - cmp r1, r0 - bne _02031B0E - mov r0, #0x1 - bx lr -_02031B0E: - ldr r0, _02031B28 ; =FUN_020327B4 - cmp r1, r0 - bne _02031B18 - mov r0, #0x1 - b _02031B1A -_02031B18: - mov r0, #0x0 -_02031B1A: - neg r0, r0 - bx lr - nop -_02031B20: .word 0x021C5A00 -_02031B24: .word FUN_0203279C -_02031B28: .word FUN_020327B4 - - thumb_func_start FUN_02031B2C -FUN_02031B2C: ; 0x02031B2C - ldr r0, _02031B48 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031B38 - mov r0, #0x0 - bx lr -_02031B38: - ldr r1, [r0, #0x24] - ldr r0, _02031B4C ; =FUN_020327FC - cmp r1, r0 - bne _02031B44 - mov r0, #0x1 - bx lr -_02031B44: - mov r0, #0x0 - bx lr - .balign 4 -_02031B48: .word 0x021C5A00 -_02031B4C: .word FUN_020327FC - - thumb_func_start FUN_02031B50 -FUN_02031B50: ; 0x02031B50 - push {r3, lr} - mov r0, #0x0 - bl FUN_0202D344 - ldr r0, _02031BC4 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x44 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02031B78 - add r0, r1, #0x0 - add r0, #0x45 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02031B78 - add r1, #0x3f - ldrb r0, [r1, #0x0] - cmp r0, #0x9 - bne _02031B80 -_02031B78: - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 -_02031B80: - bl FUN_02033ED0 - ldr r0, _02031BC4 ; =0x021C5A00 - mov r2, #0x9 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r1, #0x48 - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - add r0, #0x3c - ldrb r0, [r0, #0x0] - bl FUN_0202D1B0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02031BB8 - mov r0, #0x1 - bl FUN_0202D36C - ldr r0, _02031BC8 ; =FUN_020323DC - mov r1, #0xf - bl FUN_02031D20 - pop {r3, pc} -_02031BB8: - ldr r0, _02031BCC ; =FUN_02032424 - mov r1, #0x5 - bl FUN_02031D20 - pop {r3, pc} - nop -_02031BC4: .word 0x021C5A00 -_02031BC8: .word FUN_020323DC -_02031BCC: .word FUN_02032424 - - thumb_func_start FUN_02031BD0 -FUN_02031BD0: ; 0x02031BD0 - ldr r0, _02031BEC ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031BDC - mov r0, #0x1 - bx lr -_02031BDC: - ldr r1, [r0, #0x24] - ldr r0, _02031BF0 ; =FUN_020324F8 - cmp r1, r0 - beq _02031BE8 - mov r0, #0x1 - bx lr -_02031BE8: - mov r0, #0x0 - bx lr - .balign 4 -_02031BEC: .word 0x021C5A00 -_02031BF0: .word FUN_020324F8 - - thumb_func_start FUN_02031BF4 -FUN_02031BF4: ; 0x02031BF4 - push {r3, lr} - ldr r0, _02031C08 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031C06 - ldr r0, _02031C0C ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02031C06: - pop {r3, pc} - .balign 4 -_02031C08: .word 0x021C5A00 -_02031C0C: .word FUN_02032440 - - thumb_func_start FUN_02031C10 -FUN_02031C10: ; 0x02031C10 - push {r3, lr} - ldr r0, _02031C28 ; =0x021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02031C24 - mov r0, #0x1 - add r1, #0x48 - strb r0, [r1, #0x0] - bl FUN_0202D344 -_02031C24: - pop {r3, pc} - nop -_02031C28: .word 0x021C5A00 - - thumb_func_start FUN_02031C2C -FUN_02031C2C: ; 0x02031C2C - push {r3, lr} - ldr r0, _02031C4C ; =0x021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02031C48 - mov r0, #0x1 - add r1, #0x48 - strb r0, [r1, #0x0] - bl FUN_0202D344 - ldr r0, _02031C50 ; =FUN_02032850 - mov r1, #0x0 - bl FUN_02031D20 -_02031C48: - pop {r3, pc} - nop -_02031C4C: .word 0x021C5A00 -_02031C50: .word FUN_02032850 - - thumb_func_start FUN_02031C54 -FUN_02031C54: ; 0x02031C54 - ldr r0, _02031C60 ; =0x021C5A00 - mov r1, #0x12 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031C60: .word 0x021C5A00 - - thumb_func_start FUN_02031C64 -FUN_02031C64: ; 0x02031C64 - ldr r0, _02031C70 ; =0x021C5A00 - mov r1, #0x9 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031C70: .word 0x021C5A00 - - thumb_func_start FUN_02031C74 -FUN_02031C74: ; 0x02031C74 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031C9C - ldr r2, _02031CA0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02031734 - ldr r0, _02031CA4 ; =FUN_02032E00 - mov r1, #0x0 - bl FUN_02031D20 -_02031C9C: - pop {r3-r5, pc} - nop -_02031CA0: .word 0x00007080 -_02031CA4: .word FUN_02032E00 - - thumb_func_start FUN_02031CA8 -FUN_02031CA8: ; 0x02031CA8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031CD0 - ldr r2, _02031CD4 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02031734 - ldr r0, _02031CD8 ; =FUN_02032E48 - mov r1, #0x0 - bl FUN_02031D20 -_02031CD0: - pop {r3-r5, pc} - nop -_02031CD4: .word 0x00007080 -_02031CD8: .word FUN_02032E48 - - thumb_func_start FUN_02031CDC -FUN_02031CDC: ; 0x02031CDC - push {r3, lr} - ldr r0, _02031D1C ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031CEE - ldr r0, [r0, #0x24] - cmp r0, #0x0 - beq _02031CEE - blx r0 -_02031CEE: - bl FUN_02033590 - cmp r0, #0x0 - beq _02031D04 - bl MOD04_021DDB08 - mov r1, #0x3 - sub r0, r1, r0 - bl FUN_02033EEC - pop {r3, pc} -_02031D04: - bl FUN_0202EDF8 - cmp r0, #0x0 - beq _02031D18 - bl WM_GetLinkLevel - mov r1, #0x3 - sub r0, r1, r0 - bl FUN_02033EEC -_02031D18: - pop {r3, pc} - nop -_02031D1C: .word 0x021C5A00 - - thumb_func_start FUN_02031D20 -FUN_02031D20: ; 0x02031D20 - ldr r2, _02031D2C ; =0x021C5A00 - ldr r3, [r2, #0x0] - str r0, [r3, #0x24] - ldr r0, [r2, #0x0] - strh r1, [r0, #0x3a] - bx lr - .balign 4 -_02031D2C: .word 0x021C5A00 - - thumb_func_start FUN_02031D30 -FUN_02031D30: ; 0x02031D30 - push {r3-r5, lr} - ldr r0, _02031DF8 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031D42 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3-r5, pc} -_02031D42: - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02031DF8 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _02031DF8 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x4a - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031DC8 - add r1, #0x43 - ldrb r1, [r1, #0x0] - mov r0, #0x1 - mov r2, #0x7d - lsl r2, r2, #0x2 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =0x021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, _02031DFC ; =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031DC8: - mov r0, #0x1 - mov r2, #0x7d - add r1, r0, #0x0 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031DEE - ldr r0, _02031E00 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031DEE: - ldr r0, _02031E04 ; =FUN_02031EE0 - mov r1, #0x40 - bl FUN_02031D20 -_02031DF6: - pop {r3-r5, pc} - .balign 4 -_02031DF8: .word 0x021C5A00 -_02031DFC: .word FUN_020320C4 -_02031E00: .word FUN_020323B8 -_02031E04: .word FUN_02031EE0 - - thumb_func_start FUN_02031E08 -FUN_02031E08: ; 0x02031E08 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02031E7C - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _02031E80 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4a - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031E32 - ldr r0, _02031E84 ; =FUN_02032058 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031E32: - mov r2, #0x7d - mov r0, #0x0 - mov r1, #0x1 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031E7C - ldr r0, _02031E80 ; =0x021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - mov r1, #0x0 - str r3, [r4, #0x4] - lsr r0, r3, #0x1a - lsl r1, r1, #0x6 - orr r1, r0 - ldrh r0, [r5, #0x38] - cmp r0, #0x0 - beq _02031E76 - lsl r1, r0, #0x6 - mov r0, #0x0 - strh r0, [r5, #0x38] -_02031E76: - ldr r0, _02031E88 ; =FUN_02031EE0 - bl FUN_02031D20 -_02031E7C: - pop {r3-r5, pc} - nop -_02031E80: .word 0x021C5A00 -_02031E84: .word FUN_02032058 -_02031E88: .word FUN_02031EE0 - - thumb_func_start FUN_02031E8C -FUN_02031E8C: ; 0x02031E8C - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02031ED6 - mov r0, #0x0 - mov r2, #0x7d - add r1, r0, #0x0 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031ED6 - ldr r0, _02031ED8 ; =0x021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - ldr r0, _02031EDC ; =FUN_02031EE0 - add r1, #0x10 - str r3, [r5, #0x4] - bl FUN_02031D20 -_02031ED6: - pop {r3-r5, pc} - .balign 4 -_02031ED8: .word 0x021C5A00 -_02031EDC: .word FUN_02031EE0 - - thumb_func_start FUN_02031EE0 -FUN_02031EE0: ; 0x02031EE0 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _02031F54 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x4f - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031F50 - add r1, #0x4b - ldrb r0, [r1, #0x0] - cmp r0, #0x0 - bne _02031F50 - bl FUN_0202E8F4 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02031F1A - ldr r1, _02031F54 ; =0x021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _02031F58 ; =FUN_02031F60 - mov r1, #0x20 - bl FUN_02031D20 - pop {r3, pc} -_02031F1A: - ldr r0, _02031F54 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031F2A - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02031F2A: - bl FUN_0202E950 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02031F48 - ldr r1, _02031F54 ; =0x021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _02031F58 ; =FUN_02031F60 - mov r1, #0x20 - bl FUN_02031D20 - pop {r3, pc} -_02031F48: - ldr r0, _02031F5C ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 -_02031F50: - pop {r3, pc} - nop -_02031F54: .word 0x021C5A00 -_02031F58: .word FUN_02031F60 -_02031F5C: .word FUN_02032028 - - thumb_func_start FUN_02031F60 -FUN_02031F60: ; 0x02031F60 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _02031FBC ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _02031F90 - ldr r0, _02031FBC ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _02031F90 - ldr r0, _02031FC0 ; =FUN_02031FC8 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_02031F90: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02031FA2 - ldr r0, _02031FC4 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02031FA2: - ldr r0, _02031FBC ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031FB2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02031FB2: - ldr r0, _02031FC4 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031FBC: .word 0x021C5A00 -_02031FC0: .word FUN_02031FC8 -_02031FC4: .word FUN_02032028 - - thumb_func_start FUN_02031FC8 -FUN_02031FC8: ; 0x02031FC8 - push {r3, lr} - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02031FEE - bl FUN_0202FC60 - mov r0, #0x0 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _0203201C ; =FUN_0203213C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02031FEE: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032000 - ldr r0, _02032020 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032000: - ldr r0, _02032024 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032010 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032010: - ldr r0, _02032020 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203201C: .word FUN_0203213C -_02032020: .word FUN_02032028 -_02032024: .word 0x021C5A00 - - thumb_func_start FUN_02032028 -FUN_02032028: ; 0x02032028 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203203A - ldr r0, _0203203C ; =FUN_02032058 - mov r1, #0x0 - bl FUN_02031D20 -_0203203A: - pop {r3, pc} - .balign 4 -_0203203C: .word FUN_02032058 - - thumb_func_start FUN_02032040 -FUN_02032040: ; 0x02032040 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _02032052 - ldr r0, _02032054 ; =FUN_02031E8C - mov r1, #0x0 - bl FUN_02031D20 -_02032052: - pop {r3, pc} - .balign 4 -_02032054: .word FUN_02031E8C - - thumb_func_start FUN_02032058 -FUN_02032058: ; 0x02032058 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _020320BA - mov r0, #0x1 - bl FUN_02031268 - ldr r1, _020320BC ; =0x021C5A00 - mov r2, #0x7d - ldr r1, [r1, #0x0] - mov r0, #0x0 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x2 - mov r3, #0x1 - bl FUN_0202F918 - cmp r0, #0x0 - beq _020320BA - ldr r0, _020320BC ; =0x021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, _020320C0 ; =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 -_020320BA: - pop {r3-r5, pc} - .balign 4 -_020320BC: .word 0x021C5A00 -_020320C0: .word FUN_020320C4 - - thumb_func_start FUN_020320C4 -FUN_020320C4: ; 0x020320C4 - push {r3, lr} - bl FUN_020311E8 - cmp r0, #0x0 - beq _020320E2 - ldr r0, _0203210C ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - ldr r0, _02032110 ; =FUN_02032118 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020320E2: - ldr r0, _0203210C ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020320F2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020320F2: - add r1, #0x4a - ldrb r0, [r1, #0x0] - cmp r0, #0x0 - bne _0203210A - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203210A - ldr r0, _02032114 ; =FUN_02032040 - mov r1, #0x2 - bl FUN_02031D20 -_0203210A: - pop {r3, pc} - .balign 4 -_0203210C: .word 0x021C5A00 -_02032110: .word FUN_02032118 -_02032114: .word FUN_02032040 - - thumb_func_start FUN_02032118 -FUN_02032118: ; 0x02032118 - push {r3, lr} - mov r0, #0x0 - bl FUN_02031268 - mov r0, #0x1 - bl FUN_0202EE84 - bl FUN_02030FA8 - ldr r0, _02032134 ; =FUN_02032138 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032134: .word FUN_02032138 - - thumb_func_start FUN_02032138 -FUN_02032138: ; 0x02032138 - bx lr - .balign 4 - - thumb_func_start FUN_0203213C -FUN_0203213C: ; 0x0203213C - bx lr - .balign 4 - - thumb_func_start FUN_02032140 -FUN_02032140: ; 0x02032140 - push {r3, lr} - ldr r0, _02032170 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x13 - bhs _02032166 - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203216E - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - mov r0, #0x1 - bl FUN_0202E7B0 -_02032166: - ldr r0, _02032174 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 -_0203216E: - pop {r3, pc} - .balign 4 -_02032170: .word 0x021C5A00 -_02032174: .word FUN_020323B8 - - thumb_func_start FUN_02032178 -FUN_02032178: ; 0x02032178 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203218E - bl FUN_0202FC60 - ldr r0, _02032190 ; =FUN_02032140 - mov r1, #0x0 - bl FUN_02031D20 -_0203218E: - pop {r3, pc} - .balign 4 -_02032190: .word FUN_02032140 - - thumb_func_start FUN_02032194 -FUN_02032194: ; 0x02032194 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _020321B0 - mov r0, #0x0 - bl FUN_0202E7B0 - bl FUN_0202FC60 - ldr r0, _020321B4 ; =FUN_02031E08 - mov r1, #0x0 - bl FUN_02031D20 -_020321B0: - pop {r3, pc} - nop -_020321B4: .word FUN_02031E08 - - thumb_func_start FUN_020321B8 -FUN_020321B8: ; 0x020321B8 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020321CA - ldr r0, _020321CC ; =FUN_02031E08 - mov r1, #0x0 - bl FUN_02031D20 -_020321CA: - pop {r3, pc} - .balign 4 -_020321CC: .word FUN_02031E08 - - thumb_func_start FUN_020321D0 -FUN_020321D0: ; 0x020321D0 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _0203220C - ldr r0, _02032210 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032210 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x28] - ldr r1, [r1, #0x30] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203220C - bl FUN_0202FA10 - ldr r0, _02032214 ; =FUN_02032218 - mov r1, #0x0 - bl FUN_02031D20 -_0203220C: - pop {r3, pc} - nop -_02032210: .word 0x021C5A00 -_02032214: .word FUN_02032218 - - thumb_func_start FUN_02032218 -FUN_02032218: ; 0x02032218 - push {r3, lr} - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0203222E - ldr r0, _02032230 ; =FUN_02032234 - mov r1, #0x0 - bl FUN_02031D20 -_0203222E: - pop {r3, pc} - .balign 4 -_02032230: .word FUN_02032234 - - thumb_func_start FUN_02032234 -FUN_02032234: ; 0x02032234 - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032246 - ldr r0, _02032248 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_02032246: - pop {r3, pc} - .balign 4 -_02032248: .word FUN_020323BC - - thumb_func_start FUN_0203224C -FUN_0203224C: ; 0x0203224C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032286 - ldr r0, _02032288 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032288 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x28] - ldr r1, [r1, #0x30] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032286 - bl FUN_0202FA10 - ldr r0, _0203228C ; =FUN_02032290 - mov r1, #0x0 - bl FUN_02031D20 -_02032286: - pop {r3, pc} - .balign 4 -_02032288: .word 0x021C5A00 -_0203228C: .word FUN_02032290 - - thumb_func_start FUN_02032290 -FUN_02032290: ; 0x02032290 - ldr r3, _02032294 ; =FUN_0202EA54 - bx r3 - .balign 4 -_02032294: .word FUN_0202EA54 - - thumb_func_start FUN_02032298 -FUN_02032298: ; 0x02032298 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _020322B8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _020322B6 - ldr r0, _020322BC ; =FUN_020322C0 - mov r1, #0xa - bl FUN_02031D20 -_020322B6: - pop {r3, pc} - .balign 4 -_020322B8: .word 0x021C5A00 -_020322BC: .word FUN_020322C0 - - thumb_func_start FUN_020322C0 -FUN_020322C0: ; 0x020322C0 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020322D2 - ldr r0, _020322F0 ; =FUN_020322F8 - mov r1, #0x0 - bl FUN_02031D20 -_020322D2: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020322EE - bl FUN_02031190 - cmp r0, #0x0 - beq _020322EE - ldr r0, _020322F4 ; =FUN_0203234C - mov r1, #0x0 - bl FUN_02031D20 -_020322EE: - pop {r3, pc} - .balign 4 -_020322F0: .word FUN_020322F8 -_020322F4: .word FUN_0203234C - - thumb_func_start FUN_020322F8 -FUN_020322F8: ; 0x020322F8 - push {r3, lr} - bl FUN_0202E6F0 - ldr r0, _02032308 ; =FUN_0203230C - mov r1, #0x2 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032308: .word FUN_0203230C - - thumb_func_start FUN_0203230C -FUN_0203230C: ; 0x0203230C - push {r3, lr} - ldr r0, _02032344 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203231E - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203231E: - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032340 - mov r1, #0x1 - mov r0, #0x0 - lsl r2, r1, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032340 - bl FUN_0202FA10 - ldr r0, _02032348 ; =FUN_02032298 - mov r1, #0xa - bl FUN_02031D20 -_02032340: - pop {r3, pc} - nop -_02032344: .word 0x021C5A00 -_02032348: .word FUN_02032298 - - thumb_func_start FUN_0203234C -FUN_0203234C: ; 0x0203234C - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _0203235E - ldr r0, _02032360 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_0203235E: - pop {r3, pc} - .balign 4 -_02032360: .word FUN_020323BC - - thumb_func_start FUN_02032364 -FUN_02032364: ; 0x02032364 - push {r3, lr} - bl FUN_0202E6F0 - ldr r0, _02032374 ; =FUN_02032378 - mov r1, #0x2 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032374: .word FUN_02032378 - - thumb_func_start FUN_02032378 -FUN_02032378: ; 0x02032378 - push {r3, lr} - ldr r0, _020323B0 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203238A - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203238A: - bl FUN_0202EE0C - cmp r0, #0x0 - beq _020323AC - mov r1, #0x1 - mov r0, #0x0 - lsl r2, r1, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _020323AC - bl FUN_0202FA10 - ldr r0, _020323B4 ; =FUN_02032290 - mov r1, #0xa - bl FUN_02031D20 -_020323AC: - pop {r3, pc} - nop -_020323B0: .word 0x021C5A00 -_020323B4: .word FUN_02032290 - - thumb_func_start FUN_020323B8 -FUN_020323B8: ; 0x020323B8 - bx lr - .balign 4 - - thumb_func_start FUN_020323BC -FUN_020323BC: ; 0x020323BC - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _020323CA - bl FUN_020317C0 -_020323CA: - pop {r3, pc} - - thumb_func_start FUN_020323CC -FUN_020323CC: ; 0x020323CC - ldr r3, _020323D4 ; =FUN_02031D20 - ldr r0, _020323D8 ; =FUN_02032440 - mov r1, #0x5 - bx r3 - .balign 4 -_020323D4: .word FUN_02031D20 -_020323D8: .word FUN_02032440 - - thumb_func_start FUN_020323DC -FUN_020323DC: ; 0x020323DC - push {r3, lr} - bl FUN_02030F20 - cmp r0, #0x1 - bgt _020323F8 - mov r0, #0x0 - bl FUN_0202D36C - bl FUN_0202FC80 - ldr r0, _0203241C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 -_020323F8: - ldr r0, _02032420 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032408 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032408: - mov r0, #0x0 - bl FUN_0202D36C - bl FUN_0202FC80 - ldr r0, _0203241C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_0203241C: .word FUN_020324F8 -_02032420: .word 0x021C5A00 - - thumb_func_start FUN_02032424 -FUN_02032424: ; 0x02032424 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203243A - bl FUN_0202FC60 - ldr r0, _0203243C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 -_0203243A: - pop {r3, pc} - .balign 4 -_0203243C: .word FUN_020324F8 - - thumb_func_start FUN_02032440 -FUN_02032440: ; 0x02032440 - push {r3, lr} - ldr r0, _02032470 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032450 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] -_02032450: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203246E - ldr r0, _02032470 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x3a] - cmp r0, #0x0 - bne _0203246E - bl FUN_0202FA5C - ldr r0, _02032474 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_0203246E: - pop {r3, pc} - .balign 4 -_02032470: .word 0x021C5A00 -_02032474: .word FUN_020323BC - - thumb_func_start FUN_02032478 -FUN_02032478: ; 0x02032478 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _020324BE - ldr r0, _020324C0 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _020324C0 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3c - ldrb r0, [r0, #0x0] - bl FUN_0202D1B0 - ldr r0, _020324C0 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _020324BE - bl FUN_0202FA10 - ldr r0, _020324C4 ; =FUN_020324C8 - mov r1, #0x40 - bl FUN_02031D20 -_020324BE: - pop {r3, pc} - .balign 4 -_020324C0: .word 0x021C5A00 -_020324C4: .word FUN_020324C8 - - thumb_func_start FUN_020324C8 -FUN_020324C8: ; 0x020324C8 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _020324F0 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020324DE - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020324DE: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020324EE - ldr r0, _020324F4 ; =FUN_02032510 - mov r1, #0x0 - bl FUN_02031D20 -_020324EE: - pop {r3, pc} - .balign 4 -_020324F0: .word 0x021C5A00 -_020324F4: .word FUN_02032510 - - thumb_func_start FUN_020324F8 -FUN_020324F8: ; 0x020324F8 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203250A - ldr r0, _0203250C ; =FUN_02032510 - mov r1, #0x0 - bl FUN_02031D20 -_0203250A: - pop {r3, pc} - .balign 4 -_0203250C: .word FUN_02032510 - - thumb_func_start FUN_02032510 -FUN_02032510: ; 0x02032510 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032568 - ldr r1, _0203256C ; =0x021C5A00 - mov r2, #0x2 - ldr r1, [r1, #0x0] - mov r0, #0x0 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x8 - mov r3, #0x1 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02032568 - ldr r0, _0203256C ; =0x021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - str r3, [r5, #0x4] - bl FUN_0202FA10 - ldr r0, _0203256C ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - ldr r0, _02032570 ; =FUN_02032578 - ldr r1, _02032574 ; =0x00002710 - bl FUN_02031D20 -_02032568: - pop {r3-r5, pc} - nop -_0203256C: .word 0x021C5A00 -_02032570: .word FUN_02032578 -_02032574: .word 0x00002710 - - thumb_func_start FUN_02032578 -FUN_02032578: ; 0x02032578 - push {r3, lr} - bl FUN_0202F104 - cmp r0, #0x0 - bne _020325B2 - bl FUN_020311E8 - cmp r0, #0x0 - beq _020325A2 - ldr r0, _020325C4 ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - bl FUN_02033E74 - ldr r0, _020325C8 ; =FUN_020327FC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020325A2: - ldr r0, _020325C4 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020325B2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020325B2: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020325C2 - ldr r0, _020325CC ; =FUN_020325D0 - mov r1, #0x0 - bl FUN_02031D20 -_020325C2: - pop {r3, pc} - .balign 4 -_020325C4: .word 0x021C5A00 -_020325C8: .word FUN_020327FC -_020325CC: .word FUN_020325D0 - - thumb_func_start FUN_020325D0 -FUN_020325D0: ; 0x020325D0 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203261C - mov r0, #0x0 - mov r2, #0x2 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _0203261C - bl FUN_0202FA10 - ldr r0, _02032620 ; =0x021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - ldr r0, _02032624 ; =FUN_020324C8 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - str r3, [r5, #0x4] - bl FUN_02031D20 -_0203261C: - pop {r3-r5, pc} - nop -_02032620: .word 0x021C5A00 -_02032624: .word FUN_020324C8 - - thumb_func_start FUN_02032628 -FUN_02032628: ; 0x02032628 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203263A - ldr r0, _0203263C ; =FUN_02032640 - mov r1, #0x0 - bl FUN_02031D20 -_0203263A: - pop {r3, pc} - .balign 4 -_0203263C: .word FUN_02032640 - - thumb_func_start FUN_02032640 -FUN_02032640: ; 0x02032640 - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032666 - mov r0, #0x0 - mov r2, #0x2 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032666 - bl FUN_0202FA10 - ldr r0, _02032668 ; =FUN_0203266C - mov r1, #0x64 - bl FUN_02031D20 -_02032666: - pop {r3, pc} - .balign 4 -_02032668: .word FUN_0203266C - - thumb_func_start FUN_0203266C -FUN_0203266C: ; 0x0203266C - push {r3, lr} - ldr r0, _020326C4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _02032698 - ldr r0, _020326C4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _02032698 - ldr r0, _020326C8 ; =FUN_020326D0 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_02032698: - bl FUN_020311F0 - cmp r0, #0x0 - beq _020326AA - ldr r0, _020326CC ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020326AA: - ldr r0, _020326C4 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020326BA - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020326BA: - ldr r0, _020326CC ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_020326C4: .word 0x021C5A00 -_020326C8: .word FUN_020326D0 -_020326CC: .word FUN_020327B8 - - thumb_func_start FUN_020326D0 -FUN_020326D0: ; 0x020326D0 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020326E4 - ldr r0, _02032728 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020326E4: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0203270C - ldr r0, _0203272C ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - ldr r1, _02032730 ; =0x02105D5C - mov r0, #0x6 - bl FUN_020311D0 - ldr r0, _02032734 ; =FUN_02032738 - mov r1, #0x78 - bl FUN_02031D20 - pop {r3, pc} -_0203270C: - ldr r0, _0203272C ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203271C - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203271C: - ldr r0, _02032728 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_02032728: .word FUN_020327B8 -_0203272C: .word 0x021C5A00 -_02032730: .word 0x02105D5C -_02032734: .word FUN_02032738 - - thumb_func_start FUN_02032738 -FUN_02032738: ; 0x02032738 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _0203274C - ldr r0, _0203278C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_0203274C: - ldr r0, _02032790 ; =0x021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x3d - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _02032764 - ldr r0, _02032794 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032764: - cmp r0, #0x1 - bne _02032776 - bl FUN_0202DBE0 - ldr r0, _02032798 ; =FUN_0203279C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032776: - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032782 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032782: - ldr r0, _0203278C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_0203278C: .word FUN_020327B8 -_02032790: .word 0x021C5A00 -_02032794: .word FUN_020327B4 -_02032798: .word FUN_0203279C - - thumb_func_start FUN_0203279C -FUN_0203279C: ; 0x0203279C - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020327AE - ldr r0, _020327B0 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 -_020327AE: - pop {r3, pc} - .balign 4 -_020327B0: .word FUN_020327B8 - - thumb_func_start FUN_020327B4 -FUN_020327B4: ; 0x020327B4 - bx lr - .balign 4 - - thumb_func_start FUN_020327B8 -FUN_020327B8: ; 0x020327B8 - push {r3, lr} - ldr r0, _020327F0 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020327EC - ldr r0, _020327F0 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x38] - cmp r0, #0x0 - beq _020327E4 - sub r0, r0, #0x1 - strh r0, [r1, #0x38] - ldr r0, _020327F4 ; =FUN_02032640 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020327E4: - ldr r0, _020327F8 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 -_020327EC: - pop {r3, pc} - nop -_020327F0: .word 0x021C5A00 -_020327F4: .word FUN_02032640 -_020327F8: .word FUN_020327B4 - - thumb_func_start FUN_020327FC -FUN_020327FC: ; 0x020327FC - push {r3, lr} - bl FUN_020311E8 - cmp r0, #0x0 - bne _02032820 - bl FUN_02033510 - cmp r0, #0x0 - bne _0203282C - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203282C - ldr r0, _02032848 ; =FUN_020325D0 - mov r1, #0x0 - bl FUN_02031D20 - b _0203282C -_02032820: - bl FUN_02031190 - cmp r0, #0x0 - bne _0203282C - bl FUN_0202DDE8 -_0203282C: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032844 - bl FUN_02033510 - cmp r0, #0x0 - bne _02032844 - ldr r0, _0203284C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 -_02032844: - pop {r3, pc} - nop -_02032848: .word FUN_020325D0 -_0203284C: .word FUN_020327B8 - - thumb_func_start FUN_02032850 -FUN_02032850: ; 0x02032850 - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203287E - ldr r1, _02032880 ; =0x021C5A00 - mov r0, #0x0 - ldr r1, [r1, #0x0] - mov r2, #0x2 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x8 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203287E - bl FUN_0202FA10 - ldr r0, _02032884 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 -_0203287E: - pop {r3, pc} - .balign 4 -_02032880: .word 0x021C5A00 -_02032884: .word FUN_020323B8 - - thumb_func_start FUN_02032888 -FUN_02032888: ; 0x02032888 - push {r3, lr} - ldr r0, _020328BC ; =0x021C5A00 - mov r1, #0xd - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bl FUN_02031190 - cmp r0, #0x0 - add r0, sp, #0x0 - bne _020328AE - mov r1, #0x0 - strb r1, [r0, #0x1] - add r1, sp, #0x0 - mov r0, #0xa - add r1, #0x1 - bl FUN_020311D0 - pop {r3, pc} -_020328AE: - mov r1, #0x0 - strb r1, [r0, #0x0] - mov r0, #0xa - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - .balign 4 -_020328BC: .word 0x021C5A00 - - thumb_func_start FUN_020328C0 -FUN_020328C0: ; 0x020328C0 - ldr r1, _020328D8 ; =0x021C5A00 - ldr r3, _020328DC ; =FUN_02031D20 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - ldr r0, _020328E0 ; =FUN_02032924 - mov r1, #0x0 - bx r3 - nop -_020328D8: .word 0x021C5A00 -_020328DC: .word FUN_02031D20 -_020328E0: .word FUN_02032924 - - thumb_func_start FUN_020328E4 -FUN_020328E4: ; 0x020328E4 - ldr r0, _020328F0 ; =0x021C5A00 - mov r1, #0x7 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_020328F0: .word 0x021C5A00 - - thumb_func_start FUN_020328F4 -FUN_020328F4: ; 0x020328F4 - push {r3, lr} - ldr r1, _0203291C ; =0x021C5A00 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x7 - add r0, #0x3f - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - bl FUN_02033E74 - ldr r0, _02032920 ; =FUN_02032628 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203291C: .word 0x021C5A00 -_02032920: .word FUN_02032628 - - thumb_func_start FUN_02032924 -FUN_02032924: ; 0x02032924 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _02032936 - ldr r0, _02032938 ; =FUN_0203293C - mov r1, #0x0 - bl FUN_02031D20 -_02032936: - pop {r3, pc} - .balign 4 -_02032938: .word FUN_0203293C - - thumb_func_start FUN_0203293C -FUN_0203293C: ; 0x0203293C - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203296C - ldr r0, _02032970 ; =0x021C5A00 - mov r2, #0x2 - ldr r0, [r0, #0x0] - mov r1, #0xd - add r0, #0x3f - strb r1, [r0, #0x0] - mov r0, #0x0 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _0203296C - bl FUN_0202FA1C - ldr r0, _02032974 ; =FUN_02032978 - mov r1, #0x64 - bl FUN_02031D20 -_0203296C: - pop {r3, pc} - nop -_02032970: .word 0x021C5A00 -_02032974: .word FUN_02032978 - - thumb_func_start FUN_02032978 -FUN_02032978: ; 0x02032978 - push {r3, lr} - ldr r0, _020329E4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _020329A4 - ldr r0, _020329E4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _020329A4 - ldr r0, _020329E8 ; =FUN_020329F4 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_020329A4: - bl FUN_020311F0 - cmp r0, #0x0 - bne _020329B6 - ldr r0, _020329E4 ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - bne _020329DC -_020329B6: - ldr r0, _020329E4 ; =0x021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _020329D2 - ldr r0, _020329EC ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020329D2: - ldr r0, _020329F0 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020329DC: - beq _020329E2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] -_020329E2: - pop {r3, pc} - .balign 4 -_020329E4: .word 0x021C5A00 -_020329E8: .word FUN_020329F4 -_020329EC: .word FUN_020327B4 -_020329F0: .word FUN_02032924 - - thumb_func_start FUN_020329F4 -FUN_020329F4: ; 0x020329F4 - push {r3, lr} - ldr r0, _02032A7C ; =0x021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x5a - bls _02032A06 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032A06: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032A34 - ldr r0, _02032A7C ; =0x021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _02032A2A - ldr r0, _02032A80 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A2A: - ldr r0, _02032A84 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A34: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02032A4A - ldr r0, _02032A88 ; =FUN_0203279C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A4A: - ldr r0, _02032A7C ; =0x021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x3a] - cmp r1, #0x0 - beq _02032A5A - sub r0, r1, #0x1 - strh r0, [r2, #0x3a] - pop {r3, pc} -_02032A5A: - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _02032A72 - ldr r0, _02032A80 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A72: - ldr r0, _02032A84 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032A7C: .word 0x021C5A00 -_02032A80: .word FUN_020327B4 -_02032A84: .word FUN_02032924 -_02032A88: .word FUN_0203279C - - thumb_func_start FUN_02032A8C -FUN_02032A8C: ; 0x02032A8C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02032ADA - ldr r6, _02032ADC ; =0x02105D5C - mov r3, #0x1 - mov r2, #0x0 -_02032AA0: - ldrb r1, [r6, #0x0] - ldrb r0, [r4, r2] - cmp r1, r0 - beq _02032AAC - mov r3, #0x0 - b _02032AB4 -_02032AAC: - add r2, r2, #0x1 - add r6, r6, #0x1 - cmp r2, #0x6 - blo _02032AA0 -_02032AB4: - cmp r3, #0x0 - beq _02032AD0 - ldr r0, _02032AE0 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x48 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02032AD0 - ldr r1, _02032AE4 ; =0x02105D6C - mov r0, #0x7 - strb r5, [r1, #0x0] - bl FUN_02030C4C - pop {r4-r6, pc} -_02032AD0: - ldr r1, _02032AE8 ; =0x02105D64 - mov r0, #0x7 - strb r5, [r1, #0x0] - bl FUN_02030C4C -_02032ADA: - pop {r4-r6, pc} - .balign 4 -_02032ADC: .word 0x02105D5C -_02032AE0: .word 0x021C5A00 -_02032AE4: .word 0x02105D6C -_02032AE8: .word 0x02105D64 - - thumb_func_start FUN_02032AEC -FUN_02032AEC: ; 0x02032AEC - push {r3-r5, lr} - mov r4, #0x1 - ldr r5, _02032B5C ; =0x02105D6D - add r3, r4, #0x0 -_02032AF4: - ldrb r1, [r5, #0x0] - ldrb r0, [r2, r3] - cmp r1, r0 - beq _02032B00 - mov r4, #0x0 - b _02032B08 -_02032B00: - add r3, r3, #0x1 - add r5, r5, #0x1 - cmp r3, #0x6 - blo _02032AF4 -_02032B08: - cmp r4, #0x0 - beq _02032B22 - ldrb r4, [r2, #0x0] - bl FUN_02031190 - cmp r4, r0 - bne _02032B58 - ldr r0, _02032B60 ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - pop {r3-r5, pc} -_02032B22: - mov r4, #0x1 - ldr r3, _02032B64 ; =0x02105D65 - add r5, r4, #0x0 -_02032B28: - ldrb r1, [r3, #0x0] - ldrb r0, [r2, r5] - cmp r1, r0 - beq _02032B34 - mov r4, #0x0 - b _02032B3C -_02032B34: - add r5, r5, #0x1 - add r3, r3, #0x1 - cmp r5, #0x6 - blo _02032B28 -_02032B3C: - cmp r4, #0x0 - beq _02032B58 - ldrb r4, [r2, #0x0] - bl FUN_02031190 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r4, r0 - bne _02032B58 - ldr r0, _02032B60 ; =0x021C5A00 - mov r1, #0x2 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] -_02032B58: - pop {r3-r5, pc} - nop -_02032B5C: .word 0x02105D6D -_02032B60: .word 0x021C5A00 -_02032B64: .word 0x02105D65 - - thumb_func_start FUN_02032B68 -FUN_02032B68: ; 0x02032B68 - mov r0, #0x6 - bx lr - - thumb_func_start FUN_02032B6C -FUN_02032B6C: ; 0x02032B6C - push {r3, lr} - ldr r1, _02032B80 ; =0x021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _02032B7E - add r1, #0x3c - strb r0, [r1, #0x0] - bl FUN_0202D1B0 -_02032B7E: - pop {r3, pc} - .balign 4 -_02032B80: .word 0x021C5A00 - - thumb_func_start FUN_02032B84 -FUN_02032B84: ; 0x02032B84 - ldr r3, _02032B88 ; =FUN_0202EA54 - bx r3 - .balign 4 -_02032B88: .word FUN_0202EA54 - - thumb_func_start FUN_02032B8C -FUN_02032B8C: ; 0x02032B8C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032BC6 - ldr r0, _02032BC8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032BC8 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - mov r2, #0x20 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032BC6 - bl FUN_0202FA10 - ldr r0, _02032BCC ; =FUN_02032B84 - mov r1, #0x0 - bl FUN_02031D20 -_02032BC6: - pop {r3, pc} - .balign 4 -_02032BC8: .word 0x021C5A00 -_02032BCC: .word FUN_02032B84 - - thumb_func_start FUN_02032BD0 -FUN_02032BD0: ; 0x02032BD0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032C00 - mov r2, #0x7 - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0xe - bl FUN_02031734 - ldr r0, _02032C04 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02032C08 ; =FUN_02032B8C - bl FUN_02031D20 -_02032C00: - pop {r4, pc} - nop -_02032C04: .word 0x021C5A00 -_02032C08: .word FUN_02032B8C - - thumb_func_start FUN_02032C0C -FUN_02032C0C: ; 0x02032C0C - push {r3, lr} - ldr r0, _02032C20 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032C1E - ldr r0, _02032C24 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02032C1E: - pop {r3, pc} - .balign 4 -_02032C20: .word 0x021C5A00 -_02032C24: .word FUN_02032440 - - thumb_func_start FUN_02032C28 -FUN_02032C28: ; 0x02032C28 - sub sp, #0x8 - ldr r1, _02032C64 ; =0x020EEC48 - add r0, sp, #0x0 - ldr r2, [r1, #0x0] - ldr r1, [r1, #0x4] - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, _02032C68 ; =0x021C5A00 - ldr r1, [r1, #0x0] - ldr r3, [r1, #0x24] - cmp r1, #0x0 - bne _02032C46 - mov r0, #0x0 - add sp, #0x8 - bx lr -_02032C46: - cmp r2, #0x0 - beq _02032C5E -_02032C4A: - ldr r1, [r0, #0x0] - cmp r3, r1 - bne _02032C56 - mov r0, #0x1 - add sp, #0x8 - bx lr -_02032C56: - add r0, r0, #0x4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _02032C4A -_02032C5E: - mov r0, #0x0 - add sp, #0x8 - bx lr - .balign 4 -_02032C64: .word 0x020EEC48 -_02032C68: .word 0x021C5A00 - - thumb_func_start FUN_02032C6C -FUN_02032C6C: ; 0x02032C6C - ldr r2, _02032CE4 ; =0x00400131 - cmp r0, r2 - bhi _02032C7C - bhs _02032CBA - ldr r2, _02032CE8 ; =0x00000333 - cmp r0, r2 - beq _02032C8E - bx lr -_02032C7C: - ldr r1, _02032CEC ; =0x00400286 - cmp r0, r1 - bhi _02032C86 - beq _02032CCE - bx lr -_02032C86: - add r1, #0x92 - cmp r0, r1 - beq _02032CA6 - bx lr -_02032C8E: - cmp r1, #0xf - bne _02032CE0 - ldr r0, _02032CF0 ; =0x021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CA6: - ldr r0, _02032CF0 ; =0x021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CBA: - ldr r0, _02032CF0 ; =0x021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x2 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CCE: - ldr r0, _02032CF0 ; =0x021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x4 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] -_02032CE0: - bx lr - nop -_02032CE4: .word 0x00400131 -_02032CE8: .word 0x00000333 -_02032CEC: .word 0x00400286 -_02032CF0: .word 0x021C5A00 - - thumb_func_start FUN_02032CF4 -FUN_02032CF4: ; 0x02032CF4 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032D34 - ldr r0, _02032D38 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032D38 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - ldr r0, _02032D3C ; =FUN_02032C6C - bl FUN_0202D308 - mov r0, #0x1 - add r1, r0, #0x0 - mov r2, #0x20 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032D34 - bl FUN_0202FA10 - ldr r0, _02032D40 ; =FUN_02032B84 - mov r1, #0x0 - bl FUN_02031D20 -_02032D34: - pop {r3, pc} - nop -_02032D38: .word 0x021C5A00 -_02032D3C: .word FUN_02032C6C -_02032D40: .word FUN_02032B84 - - thumb_func_start FUN_02032D44 -FUN_02032D44: ; 0x02032D44 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032D74 - mov r2, #0x7 - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0x11 - bl FUN_02031734 - ldr r0, _02032D78 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02032D7C ; =FUN_02032CF4 - bl FUN_02031D20 -_02032D74: - pop {r4, pc} - nop -_02032D78: .word 0x021C5A00 -_02032D7C: .word FUN_02032CF4 - - thumb_func_start FUN_02032D80 -FUN_02032D80: ; 0x02032D80 - push {r3, lr} - ldr r0, _02032D94 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032D92 - ldr r0, _02032D98 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02032D92: - pop {r3, pc} - .balign 4 -_02032D94: .word 0x021C5A00 -_02032D98: .word FUN_02032440 - - thumb_func_start FUN_02032D9C -FUN_02032D9C: ; 0x02032D9C - ldr r0, _02032DA8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x49 - ldrb r0, [r0, #0x0] - bx lr - nop -_02032DA8: .word 0x021C5A00 - - thumb_func_start FUN_02032DAC -FUN_02032DAC: ; 0x02032DAC - push {r3, lr} - bl FUN_02031468 - ldr r0, _02032DF4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02032DBE - mov r0, #0x1 - pop {r3, pc} -_02032DBE: - add r0, #0x3f - ldrb r0, [r0, #0x0] - add r0, #0xe8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bhi _02032DD4 - bl MOD04_021D83C0 - mov r0, #0x1 - pop {r3, pc} -_02032DD4: - bl FUN_02033590 - cmp r0, #0x0 - beq _02032DE6 - ldr r0, _02032DF8 ; =FUN_0203318C - mov r1, #0x0 - bl FUN_02031D20 - b _02032DEE -_02032DE6: - ldr r0, _02032DFC ; =FUN_02032178 - mov r1, #0x0 - bl FUN_02031D20 -_02032DEE: - mov r0, #0x0 - pop {r3, pc} - nop -_02032DF4: .word 0x021C5A00 -_02032DF8: .word FUN_0203318C -_02032DFC: .word FUN_02032178 - - thumb_func_start FUN_02032E00 -FUN_02032E00: ; 0x02032E00 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032E3C - ldr r0, _02032E40 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032E40 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02032E3C - bl FUN_0202FA10 - ldr r0, _02032E44 ; =FUN_02032218 - mov r1, #0x0 - bl FUN_02031D20 -_02032E3C: - pop {r3, pc} - nop -_02032E40: .word 0x021C5A00 -_02032E44: .word FUN_02032218 - - thumb_func_start FUN_02032E48 -FUN_02032E48: ; 0x02032E48 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032E82 - ldr r0, _02032E84 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032E84 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032E82 - bl FUN_0202FA10 - ldr r0, _02032E88 ; =FUN_02032290 - mov r1, #0x0 - bl FUN_02031D20 -_02032E82: - pop {r3, pc} - .balign 4 -_02032E84: .word 0x021C5A00 -_02032E88: .word FUN_02032290 - - thumb_func_start FUN_02032E8C -FUN_02032E8C: ; 0x02032E8C - bx lr - .balign 4 - - thumb_func_start FUN_02032E90 -FUN_02032E90: ; 0x02032E90 - push {r3, lr} - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _02032EA2 - ldr r0, _02032EA4 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_02032EA2: - pop {r3, pc} - .balign 4 -_02032EA4: .word FUN_02032E8C - - thumb_func_start FUN_02032EA8 -FUN_02032EA8: ; 0x02032EA8 - bx lr - .balign 4 - - thumb_func_start FUN_02032EAC -FUN_02032EAC: ; 0x02032EAC - bx lr - .balign 4 - - thumb_func_start FUN_02032EB0 -FUN_02032EB0: ; 0x02032EB0 - push {r3, lr} - mov r0, #0x1 - bl FUN_020313A0 - bl MOD04_021D7F8C - cmp r0, #0xa - blt _02032ECA - ldr r0, _02032F0C ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032ECA: - cmp r0, #0x0 - bge _02032ED8 - ldr r0, _02032F10 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032ED8: - cmp r0, #0x1 - bne _02032EE6 - ldr r0, _02032F14 ; =FUN_02032E90 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032EE6: - cmp r0, #0x2 - bne _02032F08 - ldr r0, _02032F18 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x44 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032F00 - ldr r0, _02032F10 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F00: - ldr r0, _02032F1C ; =FUN_02032EA8 - mov r1, #0x0 - bl FUN_02031D20 -_02032F08: - pop {r3, pc} - nop -_02032F0C: .word FUN_02032EAC -_02032F10: .word FUN_02032E8C -_02032F14: .word FUN_02032E90 -_02032F18: .word 0x021C5A00 -_02032F1C: .word FUN_02032EA8 - - thumb_func_start FUN_02032F20 -FUN_02032F20: ; 0x02032F20 - add r1, r0, #0x2 - cmp r1, #0x1 - bls _02032F28 - neg r0, r0 -_02032F28: - ldr r1, _02032F30 ; =0x021C5A00 - ldr r1, [r1, #0x0] - str r0, [r1, #0x34] - bx lr - .balign 4 -_02032F30: .word 0x021C5A00 - - thumb_func_start FUN_02032F34 -FUN_02032F34: ; 0x02032F34 - push {r3, lr} - mov r0, #0x0 - bl MOD04_021D7800 - cmp r0, #0xa - blt _02032F4A - ldr r0, _02032F88 ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F4A: - cmp r0, #0x0 - bge _02032F5C - bl FUN_02032F20 - ldr r0, _02032F8C ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F5C: - cmp r0, #0x1 - bne _02032F6A - ldr r0, _02032F90 ; =FUN_02032EB0 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F6A: - cmp r0, #0x2 - bne _02032F78 - ldr r0, _02032F94 ; =FUN_02032EA8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F78: - cmp r0, #0x3 - bne _02032F84 - ldr r0, _02032F88 ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 -_02032F84: - pop {r3, pc} - nop -_02032F88: .word FUN_02032EAC -_02032F8C: .word FUN_02032E8C -_02032F90: .word FUN_02032EB0 -_02032F94: .word FUN_02032EA8 - - thumb_func_start FUN_02032F98 -FUN_02032F98: ; 0x02032F98 - push {r3, lr} - mov r0, #0x1 - bl MOD04_021D7800 - cmp r0, #0x0 - bge _02032FB2 - bl FUN_02032F20 - ldr r0, _02032FD0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032FB2: - ldr r0, _02032FD4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x42 - ldrb r0, [r0, #0x0] - bl MOD04_021D8494 - cmp r0, #0x0 - beq _02032FCE - bl FUN_0202FC60 - ldr r0, _02032FD8 ; =FUN_02032F34 - mov r1, #0x0 - bl FUN_02031D20 -_02032FCE: - pop {r3, pc} - .balign 4 -_02032FD0: .word FUN_02032E8C -_02032FD4: .word 0x021C5A00 -_02032FD8: .word FUN_02032F34 - - thumb_func_start FUN_02032FDC -FUN_02032FDC: ; 0x02032FDC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02032FFC ; =FUN_020303BC - ldr r1, _02033000 ; =FUN_02030238 - bl MOD04_021D77C4 - ldr r0, _02033004 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x42 - strb r4, [r0, #0x0] - ldr r0, _02033008 ; =FUN_02032F98 - bl FUN_02031D20 - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_02032FFC: .word FUN_020303BC -_02033000: .word FUN_02030238 -_02033004: .word 0x021C5A00 -_02033008: .word FUN_02032F98 - - thumb_func_start FUN_0203300C -FUN_0203300C: ; 0x0203300C - ldr r0, _02033048 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _0203304C ; =FUN_02032F34 - cmp r1, r0 - bne _0203301C - mov r0, #0x0 - bx lr -_0203301C: - ldr r0, _02033050 ; =FUN_02032EB0 - cmp r1, r0 - bne _02033026 - mov r0, #0x1 - bx lr -_02033026: - ldr r0, _02033054 ; =FUN_02032E90 - cmp r1, r0 - bne _02033030 - mov r0, #0x3 - bx lr -_02033030: - ldr r0, _02033058 ; =FUN_02032EA8 - cmp r1, r0 - bne _0203303A - mov r0, #0x4 - bx lr -_0203303A: - ldr r0, _0203305C ; =FUN_02032EAC - cmp r1, r0 - bne _02033044 - mov r0, #0x5 - bx lr -_02033044: - mov r0, #0x2 - bx lr - .balign 4 -_02033048: .word 0x021C5A00 -_0203304C: .word FUN_02032F34 -_02033050: .word FUN_02032EB0 -_02033054: .word FUN_02032E90 -_02033058: .word FUN_02032EA8 -_0203305C: .word FUN_02032EAC - - thumb_func_start FUN_02033060 -FUN_02033060: ; 0x02033060 - push {r3, lr} - ldr r0, _02033090 ; =FUN_020303BC - ldr r1, _02033094 ; =FUN_02030238 - bl MOD04_021D77C4 - mov r0, #0x0 - mvn r0, r0 - bl MOD04_021D8494 - cmp r0, #0x0 - beq _0203308C - ldr r0, _02033098 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x4d - strb r1, [r0, #0x0] - bl FUN_0202FC60 - ldr r0, _0203309C ; =FUN_02032F34 - mov r1, #0x0 - bl FUN_02031D20 -_0203308C: - pop {r3, pc} - nop -_02033090: .word FUN_020303BC -_02033094: .word FUN_02030238 -_02033098: .word 0x021C5A00 -_0203309C: .word FUN_02032F34 - - thumb_func_start FUN_020330A0 -FUN_020330A0: ; 0x020330A0 - push {r3, lr} - mov r0, #0x0 - bl FUN_020313A0 - ldr r0, _020330D8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x41 - ldrb r0, [r0, #0x0] - bl MOD04_021D82BC - cmp r0, #0x0 - beq _020330C6 - bl MOD04_021D836C - ldr r0, _020330DC ; =FUN_02033060 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020330C6: - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _020330D6 - ldr r0, _020330E0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_020330D6: - pop {r3, pc} - .balign 4 -_020330D8: .word 0x021C5A00 -_020330DC: .word FUN_02033060 -_020330E0: .word FUN_02032E8C - - thumb_func_start FUN_020330E4 -FUN_020330E4: ; 0x020330E4 - push {r3, lr} - bl FUN_02031190 - cmp r0, #0x0 - bne _02033100 - ldr r0, _02033120 ; =0x021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033124 ; =FUN_020330A0 - bl FUN_02031D20 - b _02033112 -_02033100: - ldr r0, _02033120 ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033124 ; =FUN_020330A0 - mov r1, #0x0 - bl FUN_02031D20 -_02033112: - ldr r0, _02033120 ; =0x021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x4d - strb r1, [r0, #0x0] - pop {r3, pc} - nop -_02033120: .word 0x021C5A00 -_02033124: .word FUN_020330A0 - - thumb_func_start FUN_02033128 -FUN_02033128: ; 0x02033128 - ldr r0, _02033134 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4d - ldrb r0, [r0, #0x0] - bx lr - nop -_02033134: .word 0x021C5A00 - - thumb_func_start FUN_02033138 -FUN_02033138: ; 0x02033138 - ldr r0, _0203314C ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _02033150 ; =FUN_02033060 - cmp r1, r0 - bne _02033148 - mov r0, #0x1 - bx lr -_02033148: - mov r0, #0x0 - bx lr - .balign 4 -_0203314C: .word 0x021C5A00 -_02033150: .word FUN_02033060 - - thumb_func_start FUN_02033154 -FUN_02033154: ; 0x02033154 - ldr r0, _02033174 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _02033178 ; =FUN_02032F34 - cmp r1, r0 - bne _02033164 - mov r0, #0x1 - bx lr -_02033164: - ldr r0, _0203317C ; =FUN_02033060 - cmp r1, r0 - bne _0203316E - mov r0, #0x1 - bx lr -_0203316E: - mov r0, #0x0 - bx lr - nop -_02033174: .word 0x021C5A00 -_02033178: .word FUN_02032F34 -_0203317C: .word FUN_02033060 - - thumb_func_start FUN_02033180 -FUN_02033180: ; 0x02033180 - ldr r0, _02033188 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x34] - bx lr - .balign 4 -_02033188: .word 0x021C5A00 - - thumb_func_start FUN_0203318C -FUN_0203318C: ; 0x0203318C - push {r3, lr} - mov r0, #0x0 - bl FUN_020313A0 - mov r0, #0x0 - bl MOD04_021D82BC - cmp r0, #0x0 - beq _020331AA - bl MOD04_021D836C - ldr r0, _020331BC ; =FUN_02032440 - mov r1, #0x0 - bl FUN_02031D20 -_020331AA: - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _020331BA - ldr r0, _020331C0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_020331BA: - pop {r3, pc} - .balign 4 -_020331BC: .word FUN_02032440 -_020331C0: .word FUN_02032E8C - - thumb_func_start FUN_020331C4 -FUN_020331C4: ; 0x020331C4 - push {r3, lr} - ldr r0, _020331E0 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020331DC - mov r0, #0x1 - bl FUN_020166B8 - ldr r0, _020331E4 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_020331DC: - pop {r3, pc} - nop -_020331E0: .word 0x021C5A00 -_020331E4: .word FUN_02032440 - - thumb_func_start FUN_020331E8 -FUN_020331E8: ; 0x020331E8 - push {r3, lr} - ldr r0, _02033200 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020331FE - mov r1, #0x0 - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033204 ; =FUN_020330A0 - bl FUN_02031D20 -_020331FE: - pop {r3, pc} - .balign 4 -_02033200: .word 0x021C5A00 -_02033204: .word FUN_020330A0 - - thumb_func_start FUN_02033208 -FUN_02033208: ; 0x02033208 - push {r3, lr} - ldr r0, _02033234 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033232 - bl FUN_02031190 - cmp r0, #0x0 - bne _02033220 - mov r1, #0x0 - ldr r0, _02033234 ; =0x021C5A00 - b _02033224 -_02033220: - ldr r0, _02033234 ; =0x021C5A00 - mov r1, #0x1 -_02033224: - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033238 ; =FUN_020330A0 - mov r1, #0x0 - bl FUN_02031D20 -_02033232: - pop {r3, pc} - .balign 4 -_02033234: .word 0x021C5A00 -_02033238: .word FUN_020330A0 - - thumb_func_start FUN_0203323C -FUN_0203323C: ; 0x0203323C - push {r3, lr} - bl FUN_02031190 - add r1, sp, #0x0 - strb r0, [r1, #0x0] - mov r0, #0x15 - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - - thumb_func_start FUN_02033250 -FUN_02033250: ; 0x02033250 - ldr r0, _0203327C ; =0x021C5A00 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _02033276 - ldr r1, [r2, #0x24] - ldr r0, _02033280 ; =FUN_02032E8C - cmp r1, r0 - bne _02033264 - mov r0, #0x1 - bx lr -_02033264: - ldr r0, _02033284 ; =FUN_02032E90 - cmp r1, r0 - bne _02033276 - add r2, #0x44 - ldrb r0, [r2, #0x0] - cmp r0, #0x0 - beq _02033276 - mov r0, #0x1 - bx lr -_02033276: - mov r0, #0x0 - bx lr - nop -_0203327C: .word 0x021C5A00 -_02033280: .word FUN_02032E8C -_02033284: .word FUN_02032E90 - - thumb_func_start FUN_02033288 -FUN_02033288: ; 0x02033288 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020332D8 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020332D6 - mov r1, #0xf - add r2, r1, #0x0 - mov r0, #0x3 - add r2, #0xf1 - bl FUN_02016828 - mov r0, #0xf - mov r1, #0x50 - bl FUN_02016998 - ldr r1, _020332D8 ; =0x021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _020332D8 ; =0x021C5A00 - mov r2, #0x18 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r2, [r0, #0x0] - mov r1, #0x1 - add r2, #0x46 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r4, [r0, #0x28] - mov r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - bl FUN_020166A8 -_020332D6: - pop {r4, pc} - .balign 4 -_020332D8: .word 0x021C5A00 - - thumb_func_start FUN_020332DC -FUN_020332DC: ; 0x020332DC - push {r3, lr} - ldr r0, _0203330C ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033308 - mov r0, #0x1 - bl FUN_020166B8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 - ldr r0, _0203330C ; =0x021C5A00 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _0203330C ; =0x021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, #0xf - bl FUN_020168D0 -_02033308: - pop {r3, pc} - nop -_0203330C: .word 0x021C5A00 - - thumb_func_start FUN_02033310 -FUN_02033310: ; 0x02033310 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02033360 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203335E - mov r1, #0xf - add r2, r1, #0x0 - mov r0, #0x3 - add r2, #0xf1 - bl FUN_02016828 - mov r0, #0xf - mov r1, #0x50 - bl FUN_02016998 - ldr r1, _02033360 ; =0x021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _02033360 ; =0x021C5A00 - mov r2, #0x19 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r2, [r0, #0x0] - mov r1, #0x1 - add r2, #0x46 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r4, [r0, #0x28] - mov r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - bl FUN_020166A8 -_0203335E: - pop {r4, pc} - .balign 4 -_02033360: .word 0x021C5A00 - - thumb_func_start FUN_02033364 -FUN_02033364: ; 0x02033364 - push {r3, lr} - ldr r0, _02033394 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033390 - mov r0, #0x1 - bl FUN_020166B8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 - ldr r0, _02033394 ; =0x021C5A00 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _02033394 ; =0x021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, #0xf - bl FUN_020168D0 -_02033390: - pop {r3, pc} - nop -_02033394: .word 0x021C5A00 - - thumb_func_start FUN_02033398 -FUN_02033398: ; 0x02033398 - push {r3, lr} - sub sp, #0x8 - ldr r0, _020333EC ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020333AA - add sp, #0x8 - mov r0, #0x0 - pop {r3, pc} -_020333AA: - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x18 - bne _020333C8 - add r0, sp, #0x4 - add r1, sp, #0x0 - bl MOD04_021DD718 - cmp r0, #0x0 - beq _020333E4 - bl MOD04_021DD6F0 - add sp, #0x8 - mov r0, #0x1 - pop {r3, pc} -_020333C8: - cmp r0, #0x19 - bne _020333E4 - add r0, sp, #0x4 - add r1, sp, #0x0 - bl MOD04_021DD718 - cmp r0, #0x0 - beq _020333E4 - ldr r0, [sp, #0x0] - cmp r0, #0x7 - bne _020333E4 - add sp, #0x8 - mov r0, #0x1 - pop {r3, pc} -_020333E4: - mov r0, #0x0 - add sp, #0x8 - pop {r3, pc} - nop -_020333EC: .word 0x021C5A00 - - thumb_func_start FUN_020333F0 -FUN_020333F0: ; 0x020333F0 - push {r3, lr} - bl MOD04_021D76AC - cmp r0, #0x0 - bge _02033408 - bl FUN_02032F20 - ldr r0, _02033414 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02033408: - ble _02033412 - ldr r0, _02033418 ; =FUN_02033060 - mov r1, #0x0 - bl FUN_02031D20 -_02033412: - pop {r3, pc} - .balign 4 -_02033414: .word FUN_02032E8C -_02033418: .word FUN_02033060 - - thumb_func_start FUN_0203341C -FUN_0203341C: ; 0x0203341C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _0203345E - mov r1, #0x31 - mov r0, #0x3 - lsl r2, r1, #0xc - bl FUN_02016828 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203345E - ldr r0, _02033460 ; =0x021C5A00 - mov r1, #0x31 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl MOD05_021D74E0 - ldr r0, _02033464 ; =FUN_020335D0 - bl MOD04_021D83A8 - bl FUN_0202FA10 - ldr r0, _02033468 ; =FUN_020333F0 - mov r1, #0x0 - bl FUN_02031D20 -_0203345E: - pop {r3, pc} - .balign 4 -_02033460: .word 0x021C5A00 -_02033464: .word FUN_020335D0 -_02033468: .word FUN_020333F0 - - thumb_func_start FUN_0203346C -FUN_0203346C: ; 0x0203346C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020238F4 - bl FUN_02030F40 - cmp r0, #0x0 - beq _02033482 - mov r0, #0x0 - pop {r3-r5, pc} -_02033482: - mov r0, #0x1 - bl FUN_020166A8 - ldr r2, _020334D0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - mov r1, #0x17 - bl FUN_02031734 - mov r0, #0xf - add r1, r4, #0x0 - bl FUN_02016998 - ldr r1, _020334D4 ; =0x021C5A00 - ldr r2, [r1, #0x0] - str r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r2, r4, #0x0 - bl MI_CpuFill8 - ldr r0, _020334D4 ; =0x021C5A00 - mov r1, #0x0 - ldr r2, [r0, #0x0] - add r2, #0x40 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r5, [r0, #0x28] - ldr r0, _020334D8 ; =FUN_0203341C - bl FUN_02031D20 - ldr r0, _020334D4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 -_020334D0: .word 0x00007080 -_020334D4: .word 0x021C5A00 -_020334D8: .word FUN_0203341C - - thumb_func_start FUN_020334DC -FUN_020334DC: ; 0x020334DC - ldr r0, _020334E4 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020334E4: .word 0x021C5A00 - - thumb_func_start FUN_020334E8 -FUN_020334E8: ; 0x020334E8 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0203350C ; =0x021C5A00 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _020334FE - add r2, #0x44 - strb r4, [r2, #0x0] - ldr r0, [r0, #0x0] - add r0, #0x45 - strb r1, [r0, #0x0] -_020334FE: - add r0, r4, #0x0 - bl FUN_0202EE84 - add r0, r4, #0x0 - bl FUN_0202EEB0 - pop {r4, pc} - .balign 4 -_0203350C: .word 0x021C5A00 - - thumb_func_start FUN_02033510 -FUN_02033510: ; 0x02033510 - ldr r0, _02033530 ; =0x021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0203352C - add r0, r1, #0x0 - add r0, #0x4e - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033526 - mov r0, #0x1 - bx lr -_02033526: - add r1, #0x45 - ldrb r0, [r1, #0x0] - bx lr -_0203352C: - mov r0, #0x0 - bx lr - .balign 4 -_02033530: .word 0x021C5A00 - - thumb_func_start FUN_02033534 -FUN_02033534: ; 0x02033534 - ldr r0, _02033548 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033542 - add r0, #0x3f - ldrb r0, [r0, #0x0] - bx lr -_02033542: - mov r0, #0x1 - bx lr - nop -_02033548: .word 0x021C5A00 - - thumb_func_start FUN_0203354C -FUN_0203354C: ; 0x0203354C - ldr r0, _02033560 ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203355A - add r0, #0x40 - ldrb r0, [r0, #0x0] - bx lr -_0203355A: - mov r0, #0x0 - bx lr - nop -_02033560: .word 0x021C5A00 - - thumb_func_start FUN_02033564 -FUN_02033564: ; 0x02033564 - ldr r1, _02033570 ; =0x021C5A00 - ldr r3, _02033574 ; =MI_CpuCopy8 - ldr r1, [r1, #0x0] - mov r2, #0x6 - add r1, r1, #0x4 - bx r3 - .balign 4 -_02033570: .word 0x021C5A00 -_02033574: .word MI_CpuCopy8 - - thumb_func_start FUN_02033578 -FUN_02033578: ; 0x02033578 - add r1, r0, #0x0 - ldr r0, _02033588 ; =0x021C5A00 - ldr r3, _0203358C ; =MI_CpuCopy8 - ldr r0, [r0, #0x0] - mov r2, #0x6 - add r0, r0, #0x4 - bx r3 - nop -_02033588: .word 0x021C5A00 -_0203358C: .word MI_CpuCopy8 - - thumb_func_start FUN_02033590 -FUN_02033590: ; 0x02033590 - push {r3, lr} - bl FUN_02033534 - cmp r0, #0x13 - blt _0203359E - mov r0, #0x1 - pop {r3, pc} -_0203359E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020335A4 -FUN_020335A4: ; 0x020335A4 - ldr r1, _020335B4 ; =0x021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020335B0 - add r1, #0x47 - strb r0, [r1, #0x0] -_020335B0: - bx lr - nop -_020335B4: .word 0x021C5A00 - - thumb_func_start FUN_020335B8 -FUN_020335B8: ; 0x020335B8 - ldr r0, _020335CC ; =0x021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020335C6 - add r0, #0x47 - ldrb r0, [r0, #0x0] - bx lr -_020335C6: - mov r0, #0x0 - bx lr - nop -_020335CC: .word 0x021C5A00 - - thumb_func_start FUN_020335D0 -FUN_020335D0: ; 0x020335D0 - push {r3, lr} - add r2, r0, #0x0 - mov r0, #0x0 - mov r1, #0x1 - bl FUN_02033F70 -_020335DC: - b _020335DC - .balign 4 - - thumb_func_start FUN_020335E0 -FUN_020335E0: ; 0x020335E0 - push {r3, lr} - mov r0, #0x0 - mov r1, #0x4 - add r2, r0, #0x0 - bl FUN_02033F70 -_020335EC: - b _020335EC - .balign 4 - - thumb_func_start FUN_020335F0 -FUN_020335F0: ; 0x020335F0 - bx lr - .balign 4 - - thumb_func_start FUN_020335F4 -FUN_020335F4: ; 0x020335F4 - push {r3, lr} - bl FUN_02033510 - cmp r0, #0x0 - beq _0203366C - bl FUN_020311F0 - cmp r0, #0x0 - bne _02033622 - bl FUN_02033250 - cmp r0, #0x0 - bne _02033622 - bl FUN_02033398 - cmp r0, #0x0 - bne _02033622 - ldr r0, _02033670 ; =0x021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4e - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203366C -_02033622: - bl FUN_020335B8 - cmp r0, #0x0 - bne _0203366C - bl FUN_0200541C - ldr r0, _02033670 ; =0x021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202287C - ldr r1, _02033674 ; =0x021C4918 - mov r0, #0x1 - strb r0, [r1, #0x4] - ldr r1, _02033670 ; =0x021C5A00 - ldr r2, [r1, #0x0] - add r1, r2, #0x0 - add r1, #0x4e - ldrb r1, [r1, #0x0] - cmp r1, #0x3 - bne _02033654 - mov r0, #0x3 - bl FUN_020335A4 - pop {r3, pc} -_02033654: - add r2, #0x3f - ldrb r1, [r2, #0x0] - cmp r1, #0x19 - beq _02033660 - cmp r1, #0xf - bne _02033668 -_02033660: - mov r0, #0x2 - bl FUN_020335A4 - pop {r3, pc} -_02033668: - bl FUN_020335A4 -_0203366C: - pop {r3, pc} - nop -_02033670: .word 0x021C5A00 -_02033674: .word 0x021C4918 - - thumb_func_start FUN_02033678 -FUN_02033678: ; 0x02033678 - push {r3, lr} - bl FUN_0202EDD8 - cmp r0, #0x0 - bne _0203368A - bl FUN_02031810 - cmp r0, #0x0 - bne _0203368E -_0203368A: - mov r0, #0x1 - pop {r3, pc} -_0203368E: - bl FUN_0202E344 - cmp r0, #0x0 - bne _0203369A - mov r0, #0x1 - pop {r3, pc} -_0203369A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020336A0 -FUN_020336A0: ; 0x020336A0 - push {r3, lr} - ldr r1, _020336BC ; =0x021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020336B6 - add r1, #0x4e - strb r0, [r1, #0x0] - bl FUN_02031468 - mov r0, #0x1 - pop {r3, pc} -_020336B6: - mov r0, #0x0 - pop {r3, pc} - nop -_020336BC: .word 0x021C5A00 - - thumb_func_start FUN_020336C0 -FUN_020336C0: ; 0x020336C0 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_020336C8 -FUN_020336C8: ; 0x020336C8 - push {r4-r6, lr} - add r4, r2, #0x0 - add r6, r1, #0x0 - ldr r1, [r4, #0x0] - add r5, r0, #0x0 - cmp r1, #0x6 - bhi _02033774 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_020336E2: ; jump table (using 16-bit offset) - .short _020336F0 - _020336E2 - 2; case 0 - .short _020336FC - _020336E2 - 2; case 1 - .short _02033714 - _020336E2 - 2; case 2 - .short _0203373A - _020336E2 - 2; case 3 - .short _0203374A - _020336E2 - 2; case 4 - .short _0203376A - _020336E2 - 2; case 5 - .short _02033770 - _020336E2 - 2; case 6 -_020336F0: - mov r0, #0x6f - bl FUN_02031588 - mov r0, #0x1 - str r0, [r4, #0x0] - b _02033774 -_020336FC: - mov r0, #0x6f - bl FUN_020315D8 - cmp r0, #0x0 - beq _02033774 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02022840 - mov r0, #0x2 - str r0, [r4, #0x0] - b _02033774 -_02033714: - bl FUN_02022854 - add r5, r0, #0x0 - cmp r5, #0x2 - bne _02033722 - bl ErrorHandling -_02033722: - cmp r5, #0x3 - bne _0203372A - bl ErrorHandling -_0203372A: - cmp r5, #0x1 - bne _02033774 - mov r0, #0x3 - str r0, [r4, #0x0] - mov r0, #0x70 - bl FUN_02031588 - b _02033774 -_0203373A: - mov r0, #0x70 - bl FUN_020315D8 - cmp r0, #0x0 - beq _02033774 - mov r0, #0x4 - str r0, [r4, #0x0] - b _02033774 -_0203374A: - bl FUN_02022854 - add r5, r0, #0x0 - cmp r5, #0x3 - bne _02033758 - bl ErrorHandling -_02033758: - cmp r5, #0x1 - bne _02033760 - bl ErrorHandling -_02033760: - cmp r5, #0x2 - bne _02033774 - mov r0, #0x5 - str r0, [r4, #0x0] - b _02033774 -_0203376A: - mov r0, #0x6 - str r0, [r4, #0x0] - b _02033774 -_02033770: - mov r0, #0x1 - pop {r4-r6, pc} -_02033774: - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02033778 -FUN_02033778: ; 0x02033778 - push {r3-r7, lr} - str r0, [sp, #0x0] - bl FUN_02030F20 - add r7, r0, #0x0 - mov r0, #0x0 - bl FUN_0202DFA4 - cmp r0, #0x0 - beq _020337C6 - mov r5, #0x0 - cmp r7, #0x0 - ble _020337C6 -_02033792: - bl FUN_02031190 - cmp r5, r0 - beq _020337C0 - add r0, r5, #0x0 - bl FUN_0202E020 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0202E044 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0202DFA4 - bl FUN_02023A70 - add r3, r0, #0x0 - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020337C8 -_020337C0: - add r5, r5, #0x1 - cmp r5, r7 - blt _02033792 -_020337C6: - pop {r3-r7, pc} - - thumb_func_start FUN_020337C8 -FUN_020337C8: ; 0x020337C8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02029B40 - cmp r0, #0x0 - bne _020337E4 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - mov r3, #0x1 - bl FUN_02029B90 -_020337E4: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020337E8 -FUN_020337E8: ; 0x020337E8 - push {r3-r5, lr} - mov r1, #0x72 - lsl r1, r1, #0x4 - bl FUN_02016998 - add r4, r0, #0x0 - add r0, #0x1f - mov r1, #0x1f - bic r0, r1 - bl FUN_02096B14 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02016A18 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203380C -FUN_0203380C: ; 0x0203380C - push {r4, lr} - bl FUN_02028228 - add r4, r0, #0x0 - bl FUN_02096FB0 - cmp r0, #0x0 - bne _0203382A - ldr r1, _0203382C ; =0x4144414A - add r0, r4, #0x0 - bl thunk_FUN_02097190 - add r0, r4, #0x0 - bl thunk_FUN_02096e4c -_0203382A: - pop {r4, pc} - .balign 4 -_0203382C: .word 0x4144414A - - thumb_func_start FUN_02033830 -FUN_02033830: ; 0x02033830 - push {r3-r4, lr} - sub sp, #0xc - bl FUN_02028228 - add r4, r0, #0x0 - add r1, sp, #0x0 - bl FUN_02096CCC - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02096DA0 - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0203384C -FUN_0203384C: ; 0x0203384C - push {r4, lr} - bl FUN_020286EC - bl FUN_02028228 - add r4, r0, #0x0 - bl FUN_02096F80 - cmp r0, #0x0 - beq _0203386E - add r0, r4, #0x0 - bl FUN_02096F18 - cmp r0, #0x0 - beq _0203386E - mov r0, #0x1 - pop {r4, pc} -_0203386E: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02033874 -FUN_02033874: ; 0x02033874 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r5, r1, #0x0 - str r2, [sp, #0x0] - bl FUN_020286EC - bl FUN_02028228 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_020286EC - mov r1, #0x0 - bl FUN_0202838C - add r4, r0, #0x0 - mov r1, #0x0 - ldr r0, [sp, #0x0] - mvn r1, r1 - str r1, [r0, #0x0] - add r0, r5, #0x0 - bl FUN_0209700C - cmp r0, #0x0 - bne _020338AE - add sp, #0x8 - mov r0, #0x3 - pop {r3-r7, pc} -_020338AE: - mov r7, #0x0 -_020338B0: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02096B78 - cmp r0, #0x0 - beq _020338C6 - ldr r0, [sp, #0x0] - add sp, #0x8 - str r7, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} -_020338C6: - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02096DA0 - cmp r0, #0x0 - ble _020338F4 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02096DA0 - str r0, [sp, #0x4] - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02096DA0 - ldr r1, [sp, #0x4] - cmp r1, r0 - bne _020338F4 - ldr r0, [sp, #0x0] - add sp, #0x8 - str r7, [r0, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} -_020338F4: - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bge _0203390A - add r0, r4, #0x0 - bl FUN_0209700C - cmp r0, #0x0 - bne _0203390A - ldr r0, [sp, #0x0] - str r7, [r0, #0x0] -_0203390A: - add r7, r7, #0x1 - add r4, #0xc - cmp r7, #0x20 - blt _020338B0 - mov r0, #0x2 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02033918 -FUN_02033918: ; 0x02033918 - push {r3-r7, lr} - sub sp, #0x18 - add r4, r0, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r6, r3, #0x0 - bl FUN_020286EC - bl FUN_02028228 - add r7, r0, #0x0 - add r0, r4, #0x0 - bl FUN_020286EC - mov r1, #0x0 - bl FUN_0202838C - add r5, r0, #0x0 - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r7, #0x0 - bl FUN_020973B4 - cmp r0, #0x0 - bne _02033950 - add sp, #0x18 - mov r0, #0x3 - pop {r3-r7, pc} -_02033950: - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, sp, #0xc - bl FUN_02096D2C - add r0, r7, #0x0 - add r1, sp, #0xc - bl FUN_02096DA0 - cmp r0, #0x0 - bgt _0203396C - add sp, #0x18 - mov r0, #0x3 - pop {r3-r7, pc} -_0203396C: - mov r0, #0x0 - mvn r0, r0 - str r0, [r6, #0x0] - mov r4, #0x0 -_02033974: - add r0, r7, #0x0 - add r1, sp, #0xc - bl FUN_02096DA0 - str r0, [sp, #0x8] - add r0, r7, #0x0 - add r1, r5, #0x0 - bl FUN_02096DA0 - ldr r1, [sp, #0x8] - cmp r1, r0 - bne _02033994 - add sp, #0x18 - str r4, [r6, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} -_02033994: - ldr r0, [r6, #0x0] - cmp r0, #0x0 - bge _020339A6 - add r0, r5, #0x0 - bl FUN_0209700C - cmp r0, #0x0 - bne _020339A6 - str r4, [r6, #0x0] -_020339A6: - add r4, r4, #0x1 - add r5, #0xc - cmp r4, #0x20 - blt _02033974 - mov r0, #0x2 - add sp, #0x18 - pop {r3-r7, pc} - - thumb_func_start FUN_020339B4 -FUN_020339B4: ; 0x020339B4 - push {r4-r7, lr} - sub sp, #0x14 - add r6, r1, #0x0 - mov r1, #0x0 - add r5, r0, #0x0 - str r2, [sp, #0x4] - str r1, [sp, #0xc] - bl FUN_020286EC - mov r1, #0x0 - bl FUN_0202838C - str r0, [sp, #0x8] - mov r4, #0x0 - bl FUN_02030F20 - cmp r0, #0x0 - ble _02033A68 -_020339D8: - bl FUN_02031190 - cmp r4, r0 - beq _02033A5C - add r0, r4, #0x0 - bl FUN_0202DFD8 - add r7, r0, #0x0 - beq _02033A5C - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, sp, #0x10 - bl FUN_02033874 - str r0, [r6, #0x0] - cmp r0, #0x3 - bne _020339FE - bl ErrorHandling -_020339FE: - ldr r0, [r6, #0x0] - cmp r0, #0x0 - bne _02033A1C - mov r0, #0x2 - str r0, [sp, #0x0] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02033A70 - add r0, r5, #0x0 - bl FUN_0202E1BC - b _02033A5C -_02033A1C: - cmp r0, #0x1 - bne _02033A54 - bl FUN_02033590 - cmp r0, #0x0 - bne _02033A5C - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02033A70 - ldr r2, [sp, #0x10] - mov r1, #0xc - add r3, r2, #0x0 - mul r3, r1 - ldr r1, [sp, #0x8] - add r0, r7, #0x0 - add r1, r1, r3 - mov r2, #0xc - bl MI_CpuCopy8 - add r0, r5, #0x0 - bl FUN_0202E1BC - b _02033A5C -_02033A54: - cmp r0, #0x2 - bne _02033A5C - mov r0, #0x1 - str r0, [sp, #0xc] -_02033A5C: - add r6, r6, #0x4 - add r4, r4, #0x1 - bl FUN_02030F20 - cmp r4, r0 - blt _020339D8 -_02033A68: - ldr r0, [sp, #0xc] - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02033A70 -FUN_02033A70: ; 0x02033A70 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r2, #0x0 - str r0, [sp, #0x0] - add r7, r1, #0x0 - str r3, [sp, #0x4] - bl FUN_020286EC - add r1, r5, #0x0 - add r4, r0, #0x0 - bl FUN_0202838C - str r0, [sp, #0x8] - add r0, r7, #0x0 - bl FUN_0202DFA4 - add r6, r0, #0x0 - ldr r0, [sp, #0x28] - cmp r0, #0x2 - beq _02033AA6 - add r0, r7, #0x0 - bl FUN_0202DFD8 - ldr r1, [sp, #0x8] - mov r2, #0xc - bl MI_CpuCopy8 -_02033AA6: - ldr r0, [sp, #0x28] - cmp r0, #0x0 - bne _02033AEC - ldr r1, [sp, #0x4] - add r0, r6, #0x0 - bl FUN_020239A0 - str r0, [sp, #0xc] - ldr r2, [sp, #0xc] - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020283C0 - ldr r0, [sp, #0xc] - bl FUN_02021A20 - add r0, r6, #0x0 - bl FUN_020239CC - add r3, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x8 - bl FUN_020282E8 - add r0, r6, #0x0 - bl FUN_020239BC - add r3, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x0 - bl FUN_020282E8 - b _02033B22 -_02033AEC: - cmp r0, #0x1 - bne _02033B22 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x8 - bl FUN_0202822C - cmp r0, #0x2 - bne _02033B22 - add r0, r6, #0x0 - bl FUN_020239CC - add r3, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x8 - bl FUN_020282E8 - add r0, r6, #0x0 - bl FUN_020239BC - add r3, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x0 - bl FUN_020282E8 -_02033B22: - ldr r1, [sp, #0x4] - mov r0, #0x78 - bl FUN_020219F4 - str r0, [sp, #0x10] - add r0, r7, #0x0 - bl FUN_0202DFFC - add r1, r0, #0x0 - ldr r0, [sp, #0x10] - bl FUN_02021E28 - ldr r2, [sp, #0x10] - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02028404 - ldr r0, [sp, #0x10] - bl FUN_02021A20 - add r0, r6, #0x0 - bl FUN_02023A28 - add r3, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - mov r2, #0x7 - bl FUN_020282E8 - ldr r0, [sp, #0x0] - bl FUN_0202E1BC - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02033B68 -FUN_02033B68: ; 0x02033B68 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r2, #0x0 - mov r2, #0x7 - add r6, r3, #0x0 - ldr r1, [sp, #0x10] - mov r0, #0x1 - lsl r2, r2, #0x6 - add r3, r4, #0x0 - bl FUN_02033D3C - ldr r1, [sp, #0x10] - mov r0, #0x1 - add r2, r4, #0x0 - bl FUN_02033D9C - add r0, r4, #0x0 - mov r1, #0x20 - bl FUN_020169D8 - add r4, r0, #0x0 - ldr r0, _02033BC4 ; =FUN_02033BC8 - add r1, r4, #0x0 - mov r2, #0x5 - bl FUN_0200CA98 - str r0, [r4, #0x18] - strh r5, [r4, #0xc] - strh r6, [r4, #0xe] - mov r1, #0x0 - str r1, [r4, #0x0] - mov r0, #0x3 - str r0, [r4, #0x4] - ldr r0, [sp, #0x14] - str r0, [r4, #0x14] - ldr r0, [sp, #0x10] - str r1, [r4, #0x8] - strb r0, [r4, #0x10] - strb r1, [r4, #0x12] - mov r0, #0x7 - strb r1, [r4, #0x11] - lsl r0, r0, #0x18 - str r0, [r4, #0x1c] - add r0, r4, #0x0 - pop {r4-r6, pc} - nop -_02033BC4: .word FUN_02033BC8 - - thumb_func_start FUN_02033BC8 -FUN_02033BC8: ; 0x02033BC8 - push {r3-r7, lr} - add r5, r1, #0x0 - ldrb r0, [r5, #0x11] - cmp r0, #0x1 - beq _02033BD8 - cmp r0, #0x2 - beq _02033BEE - b _02033C04 -_02033BD8: - ldr r0, _02033CB0 ; =0x04000304 - ldrh r1, [r0, #0x0] - lsr r0, r0, #0xb - and r0, r1 - asr r0, r0, #0xf - cmp r0, #0x1 - bne _02033BEA - mov r6, #0x1 - b _02033C06 -_02033BEA: - mov r6, #0x2 - b _02033C06 -_02033BEE: - ldr r0, _02033CB0 ; =0x04000304 - ldrh r1, [r0, #0x0] - lsr r0, r0, #0xb - and r0, r1 - asr r0, r0, #0xf - cmp r0, #0x1 - bne _02033C00 - mov r6, #0x2 - b _02033C06 -_02033C00: - mov r6, #0x1 - b _02033C06 -_02033C04: - mov r6, #0x1 -_02033C06: - ldr r4, [r5, #0x4] - cmp r6, #0x1 - bne _02033C1E - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r1, [r0, #0x0] - ldr r0, _02033CB4 ; =0x00300010 - add r7, r1, #0x0 - and r7, r0 - bl GX_GetBankForOBJ - b _02033C2C -_02033C1E: - ldr r0, _02033CB8 ; =0x04001000 - ldr r1, [r0, #0x0] - ldr r0, _02033CB4 ; =0x00300010 - add r7, r1, #0x0 - and r7, r0 - bl GX_GetBankForSubOBJ -_02033C2C: - cmp r7, #0x10 - beq _02033C38 - ldr r1, _02033CBC ; =0x00200010 - cmp r7, r1 - beq _02033C54 - b _02033C6C -_02033C38: - cmp r0, #0x40 - beq _02033C40 - cmp r0, #0x20 - bne _02033C4A -_02033C40: - mov r0, #0x1f - lsl r1, r4, #0x2 - lsl r0, r0, #0x4 - add r1, r1, r0 - b _02033C74 -_02033C4A: - mov r0, #0x3f - lsl r1, r4, #0x2 - lsl r0, r0, #0x4 - add r1, r1, r0 - b _02033C74 -_02033C54: - cmp r0, #0x30 - beq _02033C5C - cmp r0, #0x50 - bne _02033C64 -_02033C5C: - mov r0, #0x9f - lsl r0, r0, #0x2 - add r1, r4, r0 - b _02033C74 -_02033C64: - mov r0, #0xff - lsl r0, r0, #0x2 - add r1, r4, r0 - b _02033C74 -_02033C6C: - mov r0, #0xfe - lsl r1, r4, #0x1 - lsl r0, r0, #0x2 - add r1, r1, r0 -_02033C74: - cmp r6, #0x1 - bne _02033C7E - mov r2, #0x7 - lsl r2, r2, #0x18 - b _02033C80 -_02033C7E: - ldr r2, _02033CC0 ; =0x07000400 -_02033C80: - ldrh r3, [r5, #0xe] - ldrh r0, [r5, #0xc] - lsl r3, r3, #0x18 - lsr r4, r3, #0x18 - mov r3, #0x1 - lsl r0, r0, #0x17 - lsl r3, r3, #0x1e - lsr r0, r0, #0x7 - orr r3, r4 - orr r0, r3 - str r0, [r2, #0x0] - mov r0, #0xe - lsl r0, r0, #0xc - orr r0, r1 - strh r0, [r2, #0x4] - ldr r1, [r5, #0x1c] - cmp r2, r1 - beq _02033CAE - ldr r0, _02033CC4 ; =0x40000200 - str r0, [r1, #0x0] - mov r0, #0x0 - strh r0, [r1, #0x4] - str r2, [r5, #0x1c] -_02033CAE: - pop {r3-r7, pc} - .balign 4 -_02033CB0: .word 0x04000304 -_02033CB4: .word 0x00300010 -_02033CB8: .word 0x04001000 -_02033CBC: .word 0x00200010 -_02033CC0: .word 0x07000400 -_02033CC4: .word 0x40000200 - - thumb_func_start FUN_02033CC8 -FUN_02033CC8: ; 0x02033CC8 - cmp r1, #0x4 - bge _02033CD2 - str r1, [r0, #0x4] - mov r1, #0x0 - str r1, [r0, #0x8] -_02033CD2: - bx lr - - thumb_func_start FUN_02033CD4 -FUN_02033CD4: ; 0x02033CD4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x18] - bl FUN_0200CAB4 - mov r0, #0x7 - ldr r2, _02033D00 ; =0x40000200 - lsl r0, r0, #0x18 - str r2, [r0, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x4] - ldrb r0, [r4, #0x12] - cmp r0, #0x0 - beq _02033CF6 - ldr r0, _02033D04 ; =0x07000400 - str r2, [r0, #0x0] - strh r1, [r0, #0x4] -_02033CF6: - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - nop -_02033D00: .word 0x40000200 -_02033D04: .word 0x07000400 - - thumb_func_start FUN_02033D08 -FUN_02033D08: ; 0x02033D08 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - mov r2, #0x7 - ldrb r1, [r5, #0x10] - mov r0, #0x2 - lsl r2, r2, #0x6 - add r3, r6, #0x0 - bl FUN_02033D3C - ldrb r1, [r5, #0x10] - mov r0, #0x2 - add r2, r6, #0x0 - bl FUN_02033D9C - cmp r4, #0x0 - beq _02033D30 - mov r0, #0x1 - b _02033D32 -_02033D30: - mov r0, #0x2 -_02033D32: - strb r0, [r5, #0x11] - mov r0, #0x1 - strb r0, [r5, #0x12] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02033D3C -FUN_02033D3C: ; 0x02033D3C - push {r3-r5, lr} - sub sp, #0x8 - mov r1, #0x96 - add r5, r0, #0x0 - add r0, r3, #0x0 - lsl r1, r1, #0x2 - add r4, r2, #0x0 - bl FUN_020169D8 - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02033D92 - ldr r0, _02033D98 ; =0x02105D88 - add r1, sp, #0x4 - bl FUN_020161F8 - mov r1, #0x96 - ldr r0, [sp, #0x4] - lsl r1, r1, #0x2 - bl DC_FlushRange - ldr r0, [sp, #0x4] - add r1, sp, #0x0 - bl FUN_020B0138 - cmp r5, #0x1 - bne _02033D80 - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0xc] - mov r2, #0x20 - bl GX_LoadOBJPltt - b _02033D8C -_02033D80: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0xc] - mov r2, #0x20 - bl GXS_LoadOBJPltt -_02033D8C: - ldr r0, [sp, #0x4] - bl FUN_02016A18 -_02033D92: - add sp, #0x8 - pop {r3-r5, pc} - nop -_02033D98: .word 0x02105D88 - - thumb_func_start FUN_02033D9C -FUN_02033D9C: ; 0x02033D9C - push {r3-r5, lr} - sub sp, #0x8 - add r4, r1, #0x0 - mov r1, #0x96 - add r5, r0, #0x0 - add r0, r2, #0x0 - lsl r1, r1, #0x2 - bl FUN_020169D8 - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02033E58 - cmp r4, #0x0 - add r1, sp, #0x4 - beq _02033DC2 - ldr r0, _02033E5C ; =0x02105D98 - bl FUN_020161F8 - b _02033DC8 -_02033DC2: - ldr r0, _02033E60 ; =0x02105DA8 - bl FUN_020161F8 -_02033DC8: - mov r1, #0x96 - ldr r0, [sp, #0x4] - lsl r1, r1, #0x2 - bl DC_FlushRange - ldr r0, [sp, #0x4] - add r1, sp, #0x0 - bl FUN_020B0088 - cmp r5, #0x1 - bne _02033DF0 - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r1, [r0, #0x0] - ldr r0, _02033E64 ; =0x00300010 - add r4, r1, #0x0 - and r4, r0 - bl GX_GetBankForOBJ - b _02033E00 -_02033DF0: - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r1, [r0, #0x0] - ldr r0, _02033E64 ; =0x00300010 - add r4, r1, #0x0 - and r4, r0 - bl GX_GetBankForOBJ -_02033E00: - cmp r4, #0x10 - beq _02033E0C - ldr r1, _02033E68 ; =0x00200010 - cmp r4, r1 - beq _02033E20 - b _02033E30 -_02033E0C: - cmp r0, #0x40 - beq _02033E14 - cmp r0, #0x20 - bne _02033E1A -_02033E14: - mov r1, #0x3e - lsl r1, r1, #0x8 - b _02033E34 -_02033E1A: - mov r1, #0x7e - lsl r1, r1, #0x8 - b _02033E34 -_02033E20: - cmp r0, #0x30 - beq _02033E28 - cmp r0, #0x50 - bne _02033E2C -_02033E28: - ldr r1, _02033E6C ; =0x00013E00 - b _02033E34 -_02033E2C: - ldr r1, _02033E70 ; =0x0001FE00 - b _02033E34 -_02033E30: - mov r1, #0xfe - lsl r1, r1, #0x8 -_02033E34: - cmp r5, #0x1 - bne _02033E46 - ldr r0, [sp, #0x0] - mov r2, #0x2 - ldr r0, [r0, #0x14] - lsl r2, r2, #0x8 - bl GX_LoadOBJ - b _02033E52 -_02033E46: - ldr r0, [sp, #0x0] - mov r2, #0x2 - ldr r0, [r0, #0x14] - lsl r2, r2, #0x8 - bl GXS_LoadOBJ -_02033E52: - ldr r0, [sp, #0x4] - bl FUN_02016A18 -_02033E58: - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02033E5C: .word 0x02105D98 -_02033E60: .word 0x02105DA8 -_02033E64: .word 0x00300010 -_02033E68: .word 0x00200010 -_02033E6C: .word 0x00013E00 -_02033E70: .word 0x0001FE00 - - thumb_func_start FUN_02033E74 -FUN_02033E74: ; 0x02033E74 - push {r4, lr} - mov r4, #0x0 - bl FUN_02033590 - cmp r0, #0x0 - beq _02033E82 - mov r4, #0x1 -_02033E82: - mov r0, #0xf0 - mov r1, #0x0 - add r2, r4, #0x0 - bl FUN_02033E90 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02033E90 -FUN_02033E90: ; 0x02033E90 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - bl FUN_0202E4DC - cmp r0, #0x0 - beq _02033EC4 - ldr r0, _02033EC8 ; =0x021C5A04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033EAE - bl FUN_02033ED0 -_02033EAE: - ldr r0, _02033ECC ; =0x02105D74 - str r4, [sp, #0x0] - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x5b - add r2, r5, #0x0 - add r3, r6, #0x0 - bl FUN_02033B68 - ldr r1, _02033EC8 ; =0x021C5A04 - str r0, [r1, #0x0] -_02033EC4: - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_02033EC8: .word 0x021C5A04 -_02033ECC: .word 0x02105D74 - - thumb_func_start FUN_02033ED0 -FUN_02033ED0: ; 0x02033ED0 - push {r3, lr} - ldr r0, _02033EE8 ; =0x021C5A04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033EE4 - bl FUN_02033CD4 - ldr r0, _02033EE8 ; =0x021C5A04 - mov r1, #0x0 - str r1, [r0, #0x0] -_02033EE4: - pop {r3, pc} - nop -_02033EE8: .word 0x021C5A04 - - thumb_func_start FUN_02033EEC -FUN_02033EEC: ; 0x02033EEC - push {r3, lr} - add r1, r0, #0x0 - ldr r0, _02033F00 ; =0x021C5A04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033EFC - bl FUN_02033CC8 -_02033EFC: - pop {r3, pc} - nop -_02033F00: .word 0x021C5A04 - - thumb_func_start FUN_02033F04 -FUN_02033F04: ; 0x02033F04 - push {r3, lr} - add r3, r0, #0x0 - ldr r0, _02033F1C ; =0x021C5A04 - add r2, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033F18 - add r1, r3, #0x0 - bl FUN_02033D08 -_02033F18: - pop {r3, pc} - nop -_02033F1C: .word 0x021C5A04 - - thumb_func_start FUN_02033F20 -FUN_02033F20: ; 0x02033F20 - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - beq _02033F40 - bl FUN_02030F20 - cmp r0, #0x1 - bgt _02033F3A - bl FUN_02033590 - cmp r0, #0x0 - beq _02033F4C -_02033F3A: - bl FUN_02033E74 - pop {r3, pc} -_02033F40: - bl FUN_02033590 - cmp r0, #0x0 - beq _02033F4C - bl FUN_02033E74 -_02033F4C: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02033F50 -FUN_02033F50: ; 0x02033F50 - ldr r3, _02033F64 ; =0x027E0000 - ldr r1, _02033F68 ; =0x00003FF8 - mov r0, #0x1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - ldr r3, _02033F6C ; =MI_WaitDma - mov r0, #0x3 - bx r3 - nop -_02033F64: .word 0x027E0000 -_02033F68: .word 0x00003FF8 -_02033F6C: .word MI_WaitDma - - thumb_func_start FUN_02033F70 -FUN_02033F70: ; 0x02033F70 - push {r3-r7, lr} - sub sp, #0x28 - add r4, r0, #0x0 - str r2, [sp, #0xc] - cmp r1, #0x4 - bhi _02033F92 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02033F88: ; jump table (using 16-bit offset) - .short _02033F92 - _02033F88 - 2; case 0 - .short _02033F96 - _02033F88 - 2; case 1 - .short _02033F9A - _02033F88 - 2; case 2 - .short _02033F9E - _02033F88 - 2; case 3 - .short _02033FA2 - _02033F88 - 2; case 4 -_02033F92: - mov r5, #0x1 - b _02033FA4 -_02033F96: - mov r5, #0x2 - b _02033FA4 -_02033F9A: - mov r5, #0x3 - b _02033FA4 -_02033F9E: - mov r5, #0x4 - b _02033FA4 -_02033FA2: - mov r5, #0x5 -_02033FA4: - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - bl OS_DisableIrqMask - ldr r1, _02034154 ; =FUN_02033F50 - mov r0, #0x1 - bl OS_SetIrqFunction - mov r0, #0x1 - bl OS_EnableIrqMask - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F10 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02034158 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2, #0x0] - ldr r2, _0203415C ; =0x04001000 - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - mov r0, #0x4 - mov r1, #0x8 - bl FUN_0201669C - ldr r0, _02034160 ; =0x021C4918 - mov r1, #0x0 - strb r1, [r0, #0x5] - bl FUN_0201E7A0 - ldr r3, _02034164 ; =0x04000050 - mov r1, #0x0 - strh r1, [r3, #0x0] - ldr r0, _02034168 ; =0x04001050 - sub r3, #0x50 - strh r1, [r0, #0x0] - ldr r2, [r3, #0x0] - ldr r1, _0203416C ; =0xFFFF1FFF - sub r0, #0x50 - and r2, r1 - str r2, [r3, #0x0] - ldr r2, [r0, #0x0] - and r1, r2 - str r1, [r0, #0x0] - ldr r0, _02034170 ; =0x020EECD0 - bl FUN_0201E66C - add r0, r4, #0x0 - bl FUN_02016B94 - add r6, r0, #0x0 - ldr r0, _02034174 ; =0x020EECA4 - bl FUN_02016BBC - mov r1, #0x0 - ldr r2, _02034178 ; =0x020EECB4 - add r0, r6, #0x0 - add r3, r1, #0x0 - bl FUN_02016C18 - add r0, r6, #0x0 - mov r1, #0x0 - bl FUN_02018744 - mov r1, #0x0 - str r1, [sp, #0x0] - ldr r2, _0203417C ; =0x000001F7 - add r0, r6, #0x0 - mov r3, #0x2 - str r4, [sp, #0x4] - bl FUN_0200CB00 - mov r0, #0x0 - mov r1, #0x20 - add r2, r4, #0x0 - bl FUN_02002ED0 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - add r3, r4, #0x0 - bl FUN_02017F18 - ldr r1, _02034180 ; =0x00006C21 - mov r0, #0x0 - bl FUN_02017FE4 - ldr r1, _02034180 ; =0x00006C21 - mov r0, #0x4 - bl FUN_02017FE4 - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0xc8 - add r3, r4, #0x0 - bl FUN_0200A86C - str r0, [sp, #0x10] - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl FUN_020219F4 - add r7, r0, #0x0 - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl FUN_020219F4 - str r0, [sp, #0x14] - bl FUN_0201BD5C - add r0, r4, #0x0 - bl FUN_0200AA80 - add r4, r0, #0x0 - ldr r2, _02034184 ; =0x020EEC9C - add r0, r6, #0x0 - add r1, sp, #0x18 - bl FUN_02019150 - mov r0, #0xd0 - str r0, [sp, #0x0] - mov r0, #0x90 - mov r2, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x18 - mov r1, #0xf - add r3, r2, #0x0 - bl FUN_020196F4 - ldr r2, _0203417C ; =0x000001F7 - add r0, sp, #0x18 - mov r1, #0x0 - mov r3, #0x2 - bl FUN_0200CCA4 - mov r0, #0x2 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r2, [sp, #0xc] - add r0, r4, #0x0 - mov r1, #0x0 - mov r3, #0x5 - bl FUN_0200AD38 - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x14] - add r1, r5, #0x0 - bl FUN_0200A8E0 - ldr r2, [sp, #0x14] - add r0, r4, #0x0 - add r1, r7, #0x0 - bl FUN_0200B7B8 - mov r1, #0x0 - str r1, [sp, #0x0] - str r1, [sp, #0x4] - add r0, sp, #0x18 - add r2, r7, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl FUN_0201BD84 - add r0, r7, #0x0 - bl FUN_02021A20 - bl FUN_0201E788 - mov r0, #0x0 - bl FUN_0200E394 - mov r0, #0x1 - bl FUN_0200E394 - mov r0, #0x0 - mov r1, #0x3f - mov r2, #0x3 - bl FUN_0200A274 - add r0, sp, #0x18 - bl FUN_02019178 - ldr r0, [sp, #0x10] - bl FUN_0200A8B8 - add r0, r4, #0x0 - bl FUN_0200AB18 - add r0, r6, #0x0 - bl FUN_02016A18 - add sp, #0x28 - pop {r3-r7, pc} - nop -_02034154: .word FUN_02033F50 -_02034158: .word 0xFFFFE0FF -_0203415C: .word 0x04001000 -_02034160: .word 0x021C4918 -_02034164: .word 0x04000050 -_02034168: .word 0x04001050 -_0203416C: .word 0xFFFF1FFF -_02034170: .word 0x020EECD0 -_02034174: .word 0x020EECA4 -_02034178: .word 0x020EECB4 -_0203417C: .word 0x000001F7 -_02034180: .word 0x00006C21 -_02034184: .word 0x020EEC9C - - thumb_func_start FUN_02034188 -FUN_02034188: ; 0x02034188 - push {r4-r7, lr} - sub sp, #0x24 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0200E3A0 - bl FUN_02015EF4 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F10 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02034368 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2, #0x0] - ldr r2, _0203436C ; =0x04001000 - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - mov r0, #0x4 - mov r1, #0x8 - bl FUN_0201669C - ldr r0, _02034370 ; =0x021C4918 - mov r1, #0x0 - strb r1, [r0, #0x5] - bl FUN_0201E7A0 - ldr r3, _02034374 ; =0x04000050 - mov r0, #0x0 - strh r0, [r3, #0x0] - ldr r2, _02034378 ; =0x04001050 - sub r3, #0x50 - strh r0, [r2, #0x0] - ldr r1, [r3, #0x0] - ldr r0, _0203437C ; =0xFFFF1FFF - sub r2, #0x50 - and r1, r0 - str r1, [r3, #0x0] - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - ldr r0, _02034380 ; =0x020EED2C - bl FUN_0201E66C - add r0, r4, #0x0 - bl FUN_02016B94 - str r0, [sp, #0x10] - ldr r0, _02034384 ; =0x020EED00 - bl FUN_02016BBC - mov r1, #0x0 - ldr r0, [sp, #0x10] - ldr r2, _02034388 ; =0x020EED10 - add r3, r1, #0x0 - bl FUN_02016C18 - ldr r0, [sp, #0x10] - mov r1, #0x0 - bl FUN_02018744 - mov r1, #0x0 - str r1, [sp, #0x0] - ldr r0, [sp, #0x10] - ldr r2, _0203438C ; =0x000001F7 - mov r3, #0x2 - str r4, [sp, #0x4] - bl FUN_0200CB00 - mov r0, #0x0 - mov r1, #0x20 - add r2, r4, #0x0 - bl FUN_02002ED0 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - add r3, r4, #0x0 - bl FUN_02017F18 - ldr r1, _02034390 ; =0x00006C21 - mov r0, #0x0 - bl FUN_02017FE4 - ldr r1, _02034390 ; =0x00006C21 - mov r0, #0x4 - bl FUN_02017FE4 - ldr r2, _02034394 ; =0x00000265 - mov r0, #0x1 - mov r1, #0x1a - add r3, r4, #0x0 - bl FUN_0200A86C - str r0, [sp, #0xc] - mov r0, #0x6 - lsl r0, r0, #0x6 - add r1, r4, #0x0 - bl FUN_020219F4 - add r4, r0, #0x0 - bl FUN_0201BD5C - ldr r0, [sp, #0x10] - ldr r2, _02034398 ; =0x020EECF8 - add r1, sp, #0x14 - bl FUN_02019150 - mov r0, #0xd0 - str r0, [sp, #0x0] - mov r0, #0x90 - mov r2, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x14 - mov r1, #0xf - add r3, r2, #0x0 - bl FUN_020196F4 - ldr r2, _0203438C ; =0x000001F7 - add r0, sp, #0x14 - mov r1, #0x0 - mov r3, #0x2 - bl FUN_0200CCA4 - ldr r0, [sp, #0xc] - mov r1, #0xf - add r2, r4, #0x0 - bl FUN_0200A8E0 - mov r1, #0x0 - str r1, [sp, #0x0] - str r1, [sp, #0x4] - add r0, sp, #0x14 - add r2, r4, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl FUN_0201BD84 - add r0, r4, #0x0 - bl FUN_02021A20 - bl FUN_0201E788 - mov r0, #0x0 - bl FUN_0200E394 - mov r0, #0x1 - bl FUN_0200E394 - mov r0, #0x0 - mov r1, #0x3f - mov r2, #0x3 - bl FUN_0200A274 - ldr r4, _0203439C ; =0x04000130 - ldr r6, _020343A0 ; =0x027FFFA8 - mov r7, #0x1 -_020342E4: - ldrh r1, [r4, #0x0] - ldrh r0, [r6, #0x0] - orr r1, r0 - ldr r0, _020343A4 ; =0x00002FFF - eor r1, r0 - and r0, r1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - bl FUN_02000FE8 - add r0, r5, #0x0 - tst r0, r7 - bne _02034308 - mov r0, #0x1 - add r1, r0, #0x0 - bl OS_WaitIrq - b _020342E4 -_02034308: - add r0, sp, #0x14 - bl FUN_02019178 - ldr r0, [sp, #0xc] - bl FUN_0200A8B8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0201797C - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x2 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x3 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x4 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x5 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x6 - mov r1, #0x0 - bl FUN_0201797C - mov r0, #0x7 - mov r1, #0x0 - bl FUN_0201797C - ldr r0, [sp, #0x10] - mov r1, #0x0 - bl FUN_020178A0 - ldr r0, [sp, #0x10] - bl FUN_02016A18 - add sp, #0x24 - pop {r4-r7, pc} - nop -_02034368: .word 0xFFFFE0FF -_0203436C: .word 0x04001000 -_02034370: .word 0x021C4918 -_02034374: .word 0x04000050 -_02034378: .word 0x04001050 -_0203437C: .word 0xFFFF1FFF -_02034380: .word 0x020EED2C -_02034384: .word 0x020EED00 -_02034388: .word 0x020EED10 -_0203438C: .word 0x000001F7 -_02034390: .word 0x00006C21 -_02034394: .word 0x00000265 -_02034398: .word 0x020EECF8 -_0203439C: .word 0x04000130 -_020343A0: .word 0x027FFFA8 -_020343A4: .word 0x00002FFF - - thumb_func_start FUN_020343A8 -FUN_020343A8: ; 0x020343A8 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - str r2, [sp, #0x0] - mov r2, #0x0 - strb r2, [r4, #0x1] - mov r0, #0xe1 - ldr r7, _02034488 ; =0x0000070A - ldr r6, _0203448C ; =0x00000A8E - mov r12, r1 - strb r2, [r4, #0x0] - add r3, r4, #0x0 - add r5, r2, #0x0 - lsl r0, r0, #0x2 -_020343C4: - add r1, r4, r2 - strh r5, [r3, #0x2] - strb r5, [r1, r7] - strh r5, [r3, r6] - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, r0 - blt _020343C4 - ldr r0, _02034490 ; =0x00001196 - mov r2, #0x0 -_020343D8: - add r1, r4, r5 - add r5, r5, #0x1 - strb r2, [r1, r0] - cmp r5, #0x10 - blt _020343D8 - mov r0, #0x29 - mov r1, r12 - mov r2, #0xb - bl FUN_02006528 - add r6, r0, #0x0 - ldrb r0, [r6, #0x0] - add r5, r6, #0x5 - strb r0, [r4, #0x1] - ldrb r0, [r6, #0x1] - strb r0, [r4, #0x0] - ldrb r0, [r6, #0x2] - str r0, [sp, #0x8] - ldrb r0, [r6, #0x3] - str r0, [sp, #0x4] - ldrb r7, [r6, #0x4] - cmp r7, #0x10 - bls _0203440A - bl ErrorHandling -_0203440A: - ldr r1, _02034490 ; =0x00001196 - add r0, r5, #0x0 - add r1, r4, r1 - add r2, r7, #0x0 - bl MI_CpuCopy8 - ldr r0, [sp, #0x8] - add r5, r5, r7 - cmp r0, #0x0 - beq _0203443A - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x2 - mul r2, r3 - lsl r2, r2, #0x1 - bl MI_CpuCopy8 - ldrb r1, [r4, #0x1] - ldrb r0, [r4, #0x0] - mul r0, r1 - lsl r0, r0, #0x1 - add r5, r5, r0 - b _0203444E -_0203443A: - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r0, [sp, #0x0] - add r1, r4, #0x2 - lsl r0, r0, #0x10 - mul r2, r3 - lsr r0, r0, #0x10 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_0203444E: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _0203446C - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r1, _02034488 ; =0x0000070A - add r0, r5, #0x0 - add r1, r4, r1 - mul r2, r3 - bl MI_CpuCopy8 - ldrb r1, [r4, #0x1] - ldrb r0, [r4, #0x0] - mul r0, r1 - add r5, r5, r0 -_0203446C: - ldrb r3, [r4, #0x1] - ldrb r2, [r4, #0x0] - ldr r1, _0203448C ; =0x00000A8E - add r0, r5, #0x0 - mul r2, r3 - add r1, r4, r1 - lsl r2, r2, #0x1 - bl MI_CpuCopy8 - add r0, r6, #0x0 - bl FUN_02016A18 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02034488: .word 0x0000070A -_0203448C: .word 0x00000A8E -_02034490: .word 0x00001196 - - thumb_func_start FUN_02034494 -FUN_02034494: ; 0x02034494 - push {r3, lr} - ldr r1, _020344A8 ; =0x000011AA - mov r0, #0xb - bl FUN_02016998 - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - pop {r3, pc} - .balign 4 -_020344A8: .word 0x000011AA - - thumb_func_start FUN_020344AC -FUN_020344AC: ; 0x020344AC - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0203474C - add r6, r0, #0x0 - add r0, r4, #0x4 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_020343A8 - strb r6, [r4, #0x2] - ldrb r0, [r4, #0x4] - strb r0, [r4, #0x1] - ldrb r0, [r4, #0x5] - strb r0, [r4, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020344D0 -FUN_020344D0: ; 0x020344D0 - ldr r3, _020344D4 ; =FUN_02016A18 - bx r3 - .balign 4 -_020344D4: .word FUN_02016A18 - - thumb_func_start FUN_020344D8 -FUN_020344D8: ; 0x020344D8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldrb r1, [r4, #0x0] - ldrb r0, [r4, #0x1] - mul r0, r1 - cmp r5, r0 - blt _020344EC - bl ErrorHandling -_020344EC: - lsl r0, r5, #0x1 - add r1, r4, r0 - ldr r0, _020344F8 ; =0x00000A92 - ldrh r0, [r1, r0] - pop {r3-r5, pc} - nop -_020344F8: .word 0x00000A92 - - thumb_func_start FUN_020344FC -FUN_020344FC: ; 0x020344FC - push {r4, lr} - add r4, r0, #0x0 - bne _02034506 - bl ErrorHandling -_02034506: - ldrb r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0203450C -FUN_0203450C: ; 0x0203450C - push {r4, lr} - add r4, r0, #0x0 - bne _02034516 - bl ErrorHandling -_02034516: - ldrb r0, [r4, #0x1] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0203451C -FUN_0203451C: ; 0x0203451C - push {r3-r7, lr} - add r7, r0, #0x0 - ldrb r0, [r7, #0x1] - add r5, r1, #0x0 - add r4, r2, #0x0 - ldrb r6, [r7, #0x0] - str r0, [sp, #0x0] - cmp r5, #0x0 - blt _02034532 - cmp r5, r6 - blt _02034536 -_02034532: - bl ErrorHandling -_02034536: - cmp r4, #0x0 - blt _02034540 - ldr r0, [sp, #0x0] - cmp r4, r0 - blt _02034544 -_02034540: - bl ErrorHandling -_02034544: - add r0, r4, #0x0 - mul r0, r6 - add r0, r5, r0 - lsl r0, r0, #0x1 - add r0, r7, r0 - ldrh r0, [r0, #0x6] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02034554 -FUN_02034554: ; 0x02034554 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - ldrb r1, [r5, #0x0] - ldrb r0, [r5, #0x1] - mul r0, r1 - cmp r4, #0x0 - blt _02034568 - cmp r4, r0 - blt _0203456C -_02034568: - bl ErrorHandling -_0203456C: - lsl r0, r4, #0x1 - add r0, r5, r0 - ldrh r0, [r0, #0x6] - pop {r3-r5, pc} - - thumb_func_start FUN_02034574 -FUN_02034574: ; 0x02034574 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_02034578 -FUN_02034578: ; 0x02034578 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [sp, #0x10] - add r4, r2, #0x0 - add r6, r3, #0x0 - cmp r4, r0 - blt _0203458A - bl ErrorHandling -_0203458A: - ldr r0, [sp, #0x10] - mul r0, r6 - add r4, r4, r0 - mov r0, #0xe1 - lsl r0, r0, #0x2 - cmp r4, r0 - blt _0203459C - bl ErrorHandling -_0203459C: - ldr r0, _020345A4 ; =0x0000070E - add r1, r5, r4 - ldrb r0, [r1, r0] - pop {r4-r6, pc} - .balign 4 -_020345A4: .word 0x0000070E - - thumb_func_start FUN_020345A8 -FUN_020345A8: ; 0x020345A8 - push {r3-r5, lr} - ldr r1, _020345D8 ; =0x00000708 - add r4, r0, #0x0 - bl FUN_02016998 - add r5, r0, #0x0 - mov r0, #0x29 - mov r1, #0x0 - add r2, r4, #0x0 - bl FUN_02006528 - add r4, r0, #0x0 - ldrb r1, [r4, #0x4] - add r0, r4, #0x5 - ldr r2, _020345D8 ; =0x00000708 - add r0, r0, r1 - add r1, r5, #0x0 - bl MI_CpuCopy8 - add r0, r4, #0x0 - bl FUN_02016A18 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 -_020345D8: .word 0x00000708 - - thumb_func_start FUN_020345DC -FUN_020345DC: ; 0x020345DC - push {r4, lr} - add r4, r0, #0x0 - bne _020345E6 - bl ErrorHandling -_020345E6: - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020345F0 -FUN_020345F0: ; 0x020345F0 - mov r3, #0x1e - mul r3, r2 - add r1, r1, r3 - lsl r1, r1, #0x1 - ldrh r0, [r0, r1] - bx lr - - thumb_func_start FUN_020345FC -FUN_020345FC: ; 0x020345FC - push {r3-r5, lr} - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1fc - sub sp, #0x1c8 - add r3, r0, #0x0 - add r5, r1, #0x0 - lsl r1, r3, #0x10 - add r4, r2, #0x0 - add r0, sp, #0x0 - lsr r1, r1, #0x10 - mov r2, #0x0 - bl FUN_020343A8 - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - cmp r5, r0 - blt _0203462E - bl ErrorHandling -_0203462E: - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - cmp r4, r0 - blt _0203463A - bl ErrorHandling -_0203463A: - add r0, sp, #0x0 - ldrb r0, [r0, #0x1] - mul r0, r4 - add r0, r5, r0 - lsl r1, r0, #0x1 - add r0, sp, #0x0 - add r0, #0x2 - ldrh r0, [r0, r1] - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1fc - add sp, #0x1c8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034660 -FUN_02034660: ; 0x02034660 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bne _0203466C - bl ErrorHandling -_0203466C: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020344D8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034678 -FUN_02034678: ; 0x02034678 - push {r4-r7} - ldr r1, _020346C4 ; =0x00000A92 - ldrb r7, [r0, #0x0] - add r2, r0, r1 - ldr r1, _020346C8 ; =0x0000070E - add r1, r0, r1 - ldrb r0, [r0, #0x2] - cmp r0, #0x0 - bne _020346BE - mov r0, #0x15 - add r6, r7, #0x0 - mul r6, r0 - add r5, r6, #0x0 - add r5, #0x17 - mov r4, #0xb0 - lsl r0, r5, #0x1 - add r6, #0x18 - strh r4, [r2, r0] - lsl r0, r6, #0x1 - strh r4, [r2, r0] - mov r0, #0x16 - add r3, r7, #0x0 - mul r3, r0 - add r0, r3, #0x0 - add r0, #0x17 - lsl r7, r0, #0x1 - add r3, #0x18 - strh r4, [r2, r7] - lsl r7, r3, #0x1 - strh r4, [r2, r7] - mov r2, #0x2 - strb r2, [r1, r5] - strb r2, [r1, r6] - strb r2, [r1, r0] - strb r2, [r1, r3] -_020346BE: - pop {r4-r7} - bx lr - nop -_020346C4: .word 0x00000A92 -_020346C8: .word 0x0000070E - - thumb_func_start FUN_020346CC -FUN_020346CC: ; 0x020346CC - push {r3-r4} - ldr r1, _0203470C ; =0x00000A92 - add r2, r0, r1 - ldrb r1, [r0, #0x0] - ldrb r0, [r0, #0x2] - cmp r0, #0x0 - bne _02034706 - mov r0, #0xf - mul r0, r1 - add r0, #0x1c - mov r3, #0x77 - lsl r0, r0, #0x1 - strh r3, [r2, r0] - lsl r0, r1, #0x4 - add r3, r0, #0x0 - add r3, #0x1b - mov r4, #0x78 - lsl r3, r3, #0x1 - strh r4, [r2, r3] - add r3, r0, #0x0 - add r3, #0x1c - add r0, r1, r0 - add r0, #0x1b - mov r4, #0x79 - lsl r3, r3, #0x1 - strh r4, [r2, r3] - mov r3, #0x7a - lsl r0, r0, #0x1 - strh r3, [r2, r0] -_02034706: - pop {r3-r4} - bx lr - nop -_0203470C: .word 0x00000A92 - - thumb_func_start FUN_02034710 -FUN_02034710: ; 0x02034710 - push {r3, lr} - ldr r1, _02034720 ; =0x0000022F - cmp r0, r1 - blo _0203471E - bl ErrorHandling - mov r0, #0x3 -_0203471E: - pop {r3, pc} - .balign 4 -_02034720: .word 0x0000022F - - thumb_func_start FUN_02034724 -FUN_02034724: ; 0x02034724 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034734 ; =0x020EEDBC - ldrb r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034734: .word 0x020EEDBC - - thumb_func_start FUN_02034738 -FUN_02034738: ; 0x02034738 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034748 ; =0x020EEDBD - ldrb r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034748: .word 0x020EEDBD - - thumb_func_start FUN_0203474C -FUN_0203474C: ; 0x0203474C - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _0203476C ; =0x020EEDBE - ldrh r0, [r0, r1] - cmp r0, #0x16 - bne _02034768 - ldr r1, _02034770 ; =0x020ECAC0 - ldrb r1, [r1, #0x0] - cmp r1, #0xb - bne _02034768 - mov r0, #0x17 -_02034768: - pop {r3, pc} - nop -_0203476C: .word 0x020EEDBE -_02034770: .word 0x020ECAC0 - - thumb_func_start FUN_02034774 -FUN_02034774: ; 0x02034774 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034784 ; =0x020EEDC4 - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034784: .word 0x020EEDC4 - - thumb_func_start FUN_02034788 -FUN_02034788: ; 0x02034788 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034798 ; =0x020EEDC0 - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034798: .word 0x020EEDC0 - - thumb_func_start FUN_0203479C -FUN_0203479C: ; 0x0203479C - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020347AC ; =0x020EEDC2 - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_020347AC: .word 0x020EEDC2 - - thumb_func_start FUN_020347B0 -FUN_020347B0: ; 0x020347B0 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020347C0 ; =0x020EEDC6 - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_020347C0: .word 0x020EEDC6 - - thumb_func_start FUN_020347C4 -FUN_020347C4: ; 0x020347C4 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020347D4 ; =0x020EEDC8 - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_020347D4: .word 0x020EEDC8 - - thumb_func_start FUN_020347D8 -FUN_020347D8: ; 0x020347D8 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020347F4 ; =0x020EEDCA - ldrh r1, [r0, r1] - ldr r0, _020347F8 ; =0x0000FFFF - cmp r1, r0 - beq _020347F0 - mov r0, #0x1 - pop {r3, pc} -_020347F0: - mov r0, #0x0 - pop {r3, pc} - .balign 4 -_020347F4: .word 0x020EEDCA -_020347F8: .word 0x0000FFFF - - thumb_func_start FUN_020347FC -FUN_020347FC: ; 0x020347FC - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _0203480C ; =0x020EEDCA - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_0203480C: .word 0x020EEDCA - - thumb_func_start FUN_02034810 -FUN_02034810: ; 0x02034810 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034820 ; =0x020EEDCC - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034820: .word 0x020EEDCC - - thumb_func_start FUN_02034824 -FUN_02034824: ; 0x02034824 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034834 ; =0x020EEDCE - ldrh r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034834: .word 0x020EEDCE - - thumb_func_start FUN_02034838 -FUN_02034838: ; 0x02034838 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034848 ; =0x020EEDD0 - ldrb r0, [r0, r1] - pop {r3, pc} - .balign 4 -_02034848: .word 0x020EEDD0 - - thumb_func_start FUN_0203484C -FUN_0203484C: ; 0x0203484C - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _0203485C ; =0x020EEDD1 - ldrb r0, [r0, r1] - pop {r3, pc} - .balign 4 -_0203485C: .word 0x020EEDD1 - - thumb_func_start FUN_02034860 -FUN_02034860: ; 0x02034860 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034878 ; =0x020EEDBC - add r0, r0, r1 - ldrb r0, [r0, #0x17] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - pop {r3, pc} - nop -_02034878: .word 0x020EEDBC - - thumb_func_start FUN_0203487C -FUN_0203487C: ; 0x0203487C - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _02034894 ; =0x020EEDBC - add r0, r0, r1 - ldrb r0, [r0, #0x17] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1f - pop {r3, pc} - nop -_02034894: .word 0x020EEDBC - - thumb_func_start FUN_02034898 -FUN_02034898: ; 0x02034898 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020348B0 ; =0x020EEDBC - add r0, r0, r1 - ldrb r0, [r0, #0x17] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - pop {r3, pc} - nop -_020348B0: .word 0x020EEDBC - - thumb_func_start FUN_020348B4 -FUN_020348B4: ; 0x020348B4 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020348CC ; =0x020EEDBC - add r0, r0, r1 - ldrb r0, [r0, #0x17] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - pop {r3, pc} - nop -_020348CC: .word 0x020EEDBC - - thumb_func_start FUN_020348D0 -FUN_020348D0: ; 0x020348D0 - push {r3, lr} - bl FUN_02034710 - mov r1, #0x18 - mul r1, r0 - ldr r0, _020348E0 ; =0x020EEDD2 - ldrb r0, [r0, r1] - pop {r3, pc} - .balign 4 -_020348E0: .word 0x020EEDD2 - - thumb_func_start FUN_020348E4 -FUN_020348E4: ; 0x020348E4 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02034898 - cmp r0, #0x0 - bne _020348F4 - mov r0, #0x0 - pop {r4, pc} -_020348F4: - add r0, r4, #0x0 - bl FUN_020348D0 - cmp r0, #0x1 - beq _02034902 - mov r0, #0x1 - pop {r4, pc} -_02034902: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034908 -FUN_02034908: ; 0x02034908 - push {r3, lr} - bl FUN_0203474C - cmp r0, #0x0 - bne _02034916 - mov r0, #0x1 - pop {r3, pc} -_02034916: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0203491C -FUN_0203491C: ; 0x0203491C - push {r3, lr} - bl FUN_020348D0 - cmp r0, #0x5 - bne _0203492A - mov r0, #0x1 - pop {r3, pc} -_0203492A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02034930 -FUN_02034930: ; 0x02034930 - push {r3, lr} - bl FUN_020348D0 - cmp r0, #0x3 - bne _0203493E - mov r0, #0x1 - pop {r3, pc} -_0203493E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02034944 -FUN_02034944: ; 0x02034944 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020348D0 - cmp r0, #0x4 - beq _0203495A - add r0, r4, #0x0 - bl FUN_020348D0 - cmp r0, #0x5 - bne _0203495E -_0203495A: - mov r0, #0x1 - pop {r4, pc} -_0203495E: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034964 -FUN_02034964: ; 0x02034964 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020348D0 - cmp r0, #0x1 - beq _0203497A - add r0, r4, #0x0 - bl FUN_020348D0 - cmp r0, #0x2 - bne _0203497E -_0203497A: - mov r0, #0x1 - pop {r4, pc} -_0203497E: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034984 -FUN_02034984: ; 0x02034984 - push {r3, lr} - bl FUN_0203491C - cmp r0, #0x0 - beq _02034992 - mov r0, #0x1 - pop {r3, pc} -_02034992: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02034998 -FUN_02034998: ; 0x02034998 - ldr r1, _020349A8 ; =0x000001D2 - cmp r0, r1 - bne _020349A2 - mov r0, #0x1 - bx lr -_020349A2: - mov r0, #0x0 - bx lr - nop -_020349A8: .word 0x000001D2 - - thumb_func_start FUN_020349AC -FUN_020349AC: ; 0x020349AC - cmp r0, #0xdb - bne _020349B4 - mov r0, #0x1 - bx lr -_020349B4: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_020349B8 -FUN_020349B8: ; 0x020349B8 - ldr r1, _020349C8 ; =0x0000011F - cmp r0, r1 - bne _020349C2 - mov r0, #0x1 - bx lr -_020349C2: - mov r0, #0x0 - bx lr - nop -_020349C8: .word 0x0000011F - - thumb_func_start FUN_020349CC -FUN_020349CC: ; 0x020349CC - cmp r0, #0xfd - bne _020349D4 - mov r0, #0x1 - bx lr -_020349D4: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_020349D8 -FUN_020349D8: ; 0x020349D8 - cmp r0, #0xdc - bne _020349E0 - mov r0, #0x1 - bx lr -_020349E0: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_020349E4 -FUN_020349E4: ; 0x020349E4 - ldr r3, _02034A00 ; =0x020EED54 - mov r2, #0x0 -_020349E8: - ldrh r1, [r3, #0x0] - cmp r0, r1 - bne _020349F2 - mov r0, #0x1 - bx lr -_020349F2: - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, #0x12 - blo _020349E8 - mov r0, #0x0 - bx lr - nop -_02034A00: .word 0x020EED54 - - thumb_func_start FUN_02034A04 -FUN_02034A04: ; 0x02034A04 - ldr r3, _02034A24 ; =0x020EED78 - mov r2, #0x0 -_02034A08: - ldrh r1, [r3, #0x0] - cmp r0, r1 - bne _02034A18 - add r0, r2, #0x1 - lsl r1, r0, #0x1 - ldr r0, _02034A24 ; =0x020EED78 - ldrh r0, [r0, r1] - bx lr -_02034A18: - add r2, r2, #0x2 - add r3, r3, #0x4 - cmp r2, #0x22 - blo _02034A08 - mov r0, #0x0 - bx lr - .balign 4 -_02034A24: .word 0x020EED78 - - thumb_func_start FUN_02034A28 -FUN_02034A28: ; 0x02034A28 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x14] - add r4, r1, #0x0 - cmp r0, #0x0 - beq _02034A38 - bl ErrorHandling -_02034A38: - ldr r1, _02034A44 ; =0x00000AC8 - add r0, r4, #0x0 - bl FUN_02016998 - str r0, [r5, #0x14] - pop {r3-r5, pc} - .balign 4 -_02034A44: .word 0x00000AC8 - - thumb_func_start FUN_02034A48 -FUN_02034A48: ; 0x02034A48 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x14] - cmp r0, #0x0 - bne _02034A56 - bl ErrorHandling -_02034A56: - ldr r0, [r4, #0x14] - bl FUN_02016A18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034A60 -FUN_02034A60: ; 0x02034A60 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x14] - add r4, r1, #0x0 - cmp r0, #0x0 - bne _02034A70 - bl ErrorHandling -_02034A70: - ldr r0, [r5, #0x14] - add r1, r4, #0x0 - bl FUN_02034A98 - ldr r0, [r5, #0x14] - bl FUN_02034C50 - mov r0, #0x92 - ldr r1, [r5, #0x14] - lsl r0, r0, #0x4 - add r0, r1, r0 - add r1, r4, #0x0 - bl FUN_02034CB4 - ldr r0, [r5, #0x14] - add r1, r4, #0x0 - bl FUN_02034CEC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034A98 -FUN_02034A98: ; 0x02034A98 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02034810 - add r4, r0, #0x0 - mov r0, #0x20 - add r1, r4, #0x0 - bl LoadFromNARC_7 - mov r1, #0x2 - lsl r1, r1, #0xa - cmp r0, r1 - blo _02034AB8 - bl ErrorHandling -_02034AB8: - add r5, #0x20 - add r0, r5, #0x0 - mov r1, #0x20 - add r2, r4, #0x0 - bl LoadFromNARC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034AC8 -FUN_02034AC8: ; 0x02034AC8 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x14] - ldr r4, [r0, #0x4] - cmp r0, #0x0 - bne _02034AD8 - bl ErrorHandling -_02034AD8: - cmp r4, #0x0 - beq _02034AEC - ldr r1, [r5, #0x1c] - ldr r3, [r5, #0x14] - ldr r0, [r5, #0x34] - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x14] - add r2, r4, #0x0 - bl FUN_02057BAC -_02034AEC: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02034AF0 -FUN_02034AF0: ; 0x02034AF0 - ldr r0, [r0, #0x14] - ldr r0, [r0, #0x10] - bx lr - .balign 4 - - thumb_func_start FUN_02034AF8 -FUN_02034AF8: ; 0x02034AF8 - ldr r0, [r0, #0x14] - ldr r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034B00 -FUN_02034B00: ; 0x02034B00 - ldr r2, [r0, #0x14] - ldr r0, [r2, #0x8] - cmp r1, r0 - blo _02034B0C - mov r0, #0x0 - bx lr -_02034B0C: - mov r0, #0xc - ldr r2, [r2, #0x18] - mul r0, r1 - add r0, r2, r0 - bx lr - .balign 4 - - thumb_func_start FUN_02034B18 -FUN_02034B18: ; 0x02034B18 - push {r4-r7} - ldr r5, [r0, #0x14] - mov r3, #0x0 - ldr r0, [r5, #0x8] - cmp r0, #0x0 - bls _02034B4A - ldr r6, [r5, #0x18] - add r4, r3, #0x0 - add r0, r6, #0x0 -_02034B2A: - ldrh r7, [r0, #0x0] - cmp r1, r7 - bne _02034B3E - add r7, r6, r4 - ldrh r7, [r7, #0x2] - cmp r2, r7 - bne _02034B3E - add r0, r3, #0x0 - pop {r4-r7} - bx lr -_02034B3E: - ldr r7, [r5, #0x8] - add r3, r3, #0x1 - add r0, #0xc - add r4, #0xc - cmp r3, r7 - blo _02034B2A -_02034B4A: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02034B54 -FUN_02034B54: ; 0x02034B54 - ldr r0, [r0, #0x14] - ldr r0, [r0, #0xc] - bx lr - .balign 4 - - thumb_func_start FUN_02034B5C -FUN_02034B5C: ; 0x02034B5C - ldr r0, [r0, #0x14] - ldr r0, [r0, #0x1c] - bx lr - .balign 4 - - thumb_func_start FUN_02034B64 -FUN_02034B64: ; 0x02034B64 - ldr r0, [r0, #0x14] - ldr r0, [r0, #0x4] - bx lr - .balign 4 - - thumb_func_start FUN_02034B6C -FUN_02034B6C: ; 0x02034B6C - ldr r0, [r0, #0x14] - ldr r0, [r0, #0x14] - bx lr - .balign 4 - - thumb_func_start FUN_02034B74 -FUN_02034B74: ; 0x02034B74 - push {r3-r7, lr} - ldr r0, [r0, #0x14] - add r4, r1, #0x0 - ldr r5, [r0, #0x4] - add r7, r2, #0x0 - add r1, r3, #0x0 - mov r2, #0x0 - ldr r3, [r0, #0x14] - cmp r5, #0x0 - bls _02034BA4 - add r6, r3, #0x0 -_02034B8A: - ldrh r0, [r6, #0x0] - cmp r4, r0 - bne _02034B9C - lsl r0, r2, #0x5 - add r0, r3, r0 - strh r7, [r0, #0x18] - strh r1, [r0, #0x1a] - mov r0, #0x1 - pop {r3-r7, pc} -_02034B9C: - add r2, r2, #0x1 - add r6, #0x20 - cmp r2, r5 - blo _02034B8A -_02034BA4: - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02034BAC -FUN_02034BAC: ; 0x02034BAC - push {r4-r6, lr} - ldr r0, [r0, #0x14] - mov r3, #0x0 - ldr r5, [r0, #0x4] - ldr r4, [r0, #0x14] - cmp r5, #0x0 - bls _02034BD4 - add r6, r4, #0x0 -_02034BBC: - ldrh r0, [r6, #0x0] - cmp r1, r0 - bne _02034BCC - lsl r0, r3, #0x5 - add r0, r4, r0 - strh r2, [r0, #0xc] - mov r0, #0x1 - pop {r4-r6, pc} -_02034BCC: - add r3, r3, #0x1 - add r6, #0x20 - cmp r3, r5 - blo _02034BBC -_02034BD4: - bl ErrorHandling - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02034BDC -FUN_02034BDC: ; 0x02034BDC - push {r4-r6, lr} - ldr r0, [r0, #0x14] - mov r3, #0x0 - ldr r5, [r0, #0x4] - ldr r4, [r0, #0x14] - cmp r5, #0x0 - bls _02034C04 - add r6, r4, #0x0 -_02034BEC: - ldrh r0, [r6, #0x0] - cmp r1, r0 - bne _02034BFC - lsl r0, r3, #0x5 - add r0, r4, r0 - strh r2, [r0, #0x4] - mov r0, #0x1 - pop {r4-r6, pc} -_02034BFC: - add r3, r3, #0x1 - add r6, #0x20 - cmp r3, r5 - blo _02034BEC -_02034C04: - bl ErrorHandling - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02034C0C -FUN_02034C0C: ; 0x02034C0C - push {r3-r4} - ldr r0, [r0, #0x14] - ldr r4, [r0, #0x18] - mov r0, #0xc - mul r0, r1 - strh r2, [r4, r0] - add r0, r4, r0 - strh r3, [r0, #0x2] - mov r0, #0x1 - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_02034C24 -FUN_02034C24: ; 0x02034C24 - ldr r0, [r0, #0x14] - ldr r3, [r0, #0x18] - mov r0, #0xc - mul r0, r1 - add r0, r3, r0 - strh r2, [r0, #0x4] - mov r0, #0x1 - bx lr - - thumb_func_start FUN_02034C34 -FUN_02034C34: ; 0x02034C34 - push {r4-r6, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02034AF0 - mov r1, #0x14 - mul r1, r5 - add r0, r0, r1 - str r4, [r0, #0x4] - str r6, [r0, #0x8] - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02034C50 -FUN_02034C50: ; 0x02034C50 - add r1, r0, #0x0 - ldr r2, [r0, #0x20] - add r1, #0x20 - add r1, r1, #0x4 - str r2, [r0, #0x0] - cmp r2, #0x0 - beq _02034C62 - str r1, [r0, #0x10] - b _02034C66 -_02034C62: - mov r2, #0x0 - str r2, [r0, #0x10] -_02034C66: - ldr r3, [r0, #0x0] - mov r2, #0x14 - mul r2, r3 - add r3, r1, r2 - ldr r2, [r1, r2] - add r1, r3, #0x4 - str r2, [r0, #0x4] - cmp r2, #0x0 - beq _02034C7C - str r1, [r0, #0x14] - b _02034C80 -_02034C7C: - mov r2, #0x0 - str r2, [r0, #0x14] -_02034C80: - ldr r2, [r0, #0x4] - lsl r2, r2, #0x5 - add r3, r1, r2 - ldr r2, [r1, r2] - add r1, r3, #0x4 - str r2, [r0, #0x8] - cmp r2, #0x0 - beq _02034C94 - str r1, [r0, #0x18] - b _02034C98 -_02034C94: - mov r2, #0x0 - str r2, [r0, #0x18] -_02034C98: - ldr r3, [r0, #0x8] - mov r2, #0xc - mul r2, r3 - add r3, r1, r2 - ldr r1, [r1, r2] - str r1, [r0, #0xc] - cmp r1, #0x0 - beq _02034CAE - add r1, r3, #0x4 - str r1, [r0, #0x1c] - bx lr -_02034CAE: - mov r1, #0x0 - str r1, [r0, #0x1c] - bx lr - - thumb_func_start FUN_02034CB4 -FUN_02034CB4: ; 0x02034CB4 - push {r3-r5, lr} - mov r2, #0x6a - add r4, r1, #0x0 - mov r1, #0x0 - lsl r2, r2, #0x2 - add r5, r0, #0x0 - bl Call_FillMemWithValue - add r0, r4, #0x0 - bl FUN_020347D8 - cmp r0, #0x0 - beq _02034CDE - add r0, r4, #0x0 - bl FUN_020347FC - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x25 - bl LoadFromNARC -_02034CDE: - pop {r3-r5, pc} - - thumb_func_start FUN_02034CE0 -FUN_02034CE0: ; 0x02034CE0 - ldr r1, [r0, #0x14] - mov r0, #0x92 - lsl r0, r0, #0x4 - add r0, r1, r0 - bx lr - .balign 4 - - thumb_func_start FUN_02034CEC -FUN_02034CEC: ; 0x02034CEC - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - bl FUN_0203479C - mov r1, #0x82 - lsl r1, r1, #0x4 - mov r2, #0x1 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r5, r1 - lsl r2, r2, #0x8 - bl MIi_CpuClearFast - mov r0, #0xa - add r1, r4, #0x0 - bl LoadFromNARC_7 - mov r1, #0x1 - lsl r1, r1, #0x8 - cmp r0, r1 - blo _02034D1C - bl ErrorHandling -_02034D1C: - mov r0, #0x82 - lsl r0, r0, #0x4 - add r0, r5, r0 - mov r1, #0xa - add r2, r4, #0x0 - bl LoadFromNARC - pop {r3-r5, pc} - - thumb_func_start FUN_02034D2C -FUN_02034D2C: ; 0x02034D2C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x14] - cmp r0, #0x0 - bne _02034D3A - bl ErrorHandling -_02034D3A: - mov r0, #0x82 - ldr r1, [r4, #0x14] - lsl r0, r0, #0x4 - add r0, r1, r0 - pop {r4, pc} - - thumb_func_start FUN_02034D44 -FUN_02034D44: ; 0x02034D44 - push {r4-r7} - ldr r0, [r0, #0x14] - mov r3, #0x0 - ldr r4, [r0, #0x4] - cmp r4, #0x0 - bls _02034D76 - ldr r6, [r0, #0x14] - add r5, r3, #0x0 - add r4, r6, #0x0 -_02034D56: - ldrh r7, [r4, #0x18] - cmp r1, r7 - bne _02034D6A - add r7, r6, r5 - ldrh r7, [r7, #0x1a] - cmp r2, r7 - bne _02034D6A - mov r0, #0x0 - pop {r4-r7} - bx lr -_02034D6A: - ldr r7, [r0, #0x4] - add r3, r3, #0x1 - add r4, #0x20 - add r5, #0x20 - cmp r3, r7 - blo _02034D56 -_02034D76: - mov r0, #0x1 - pop {r4-r7} - bx lr - - thumb_func_start FUN_02034D7C -FUN_02034D7C: ; 0x02034D7C - mov r0, #0xa0 - bx lr - - thumb_func_start FUN_02034D80 -FUN_02034D80: ; 0x02034D80 - mov r0, #0x5 - lsl r0, r0, #0xa - bx lr - .balign 4 - - thumb_func_start FUN_02034D88 -FUN_02034D88: ; 0x02034D88 - ldr r3, _02034D94 ; =MIi_CpuClear32 - mov r2, #0x5 - add r1, r0, #0x0 - mov r0, #0x0 - lsl r2, r2, #0xa - bx r3 - .balign 4 -_02034D94: .word MIi_CpuClear32 - - thumb_func_start FUN_02034D98 -FUN_02034D98: ; 0x02034D98 - push {r4, lr} - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0xa0 - bl Call_FillMemWithValue - add r0, r4, #0x0 - add r0, #0x6c - bl FUN_0204ADE0 - add r0, r4, #0x0 - add r0, #0x8c - bl FUN_02055468 - bl FUN_02034E8C - add r4, #0x68 - strh r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034DC0 -FUN_02034DC0: ; 0x02034DC0 - bx lr - .balign 4 - - thumb_func_start FUN_02034DC4 -FUN_02034DC4: ; 0x02034DC4 - add r0, #0x14 - bx lr - - thumb_func_start FUN_02034DC8 -FUN_02034DC8: ; 0x02034DC8 - add r0, #0x28 - bx lr - - thumb_func_start FUN_02034DCC -FUN_02034DCC: ; 0x02034DCC - add r0, #0x50 - bx lr - - thumb_func_start FUN_02034DD0 -FUN_02034DD0: ; 0x02034DD0 - add r0, #0x3c - bx lr - - thumb_func_start FUN_02034DD4 -FUN_02034DD4: ; 0x02034DD4 - add r3, r1, #0x0 - add r2, r0, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x3c - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - bx lr - - thumb_func_start FUN_02034DE8 -FUN_02034DE8: ; 0x02034DE8 - add r0, #0x64 - bx lr - - thumb_func_start FUN_02034DEC -FUN_02034DEC: ; 0x02034DEC - add r0, #0x66 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034DF4 -FUN_02034DF4: ; 0x02034DF4 - add r0, #0x66 - strh r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034DFC -FUN_02034DFC: ; 0x02034DFC - add r0, #0x68 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034E04 -FUN_02034E04: ; 0x02034E04 - add r0, #0x68 - strh r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034E0C -FUN_02034E0C: ; 0x02034E0C - add r0, #0x6c - bx lr - - thumb_func_start FUN_02034E10 -FUN_02034E10: ; 0x02034E10 - add r0, #0x6a - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034E18 -FUN_02034E18: ; 0x02034E18 - add r0, #0x6a - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02034E20 -FUN_02034E20: ; 0x02034E20 - add r0, #0x8c - bx lr - - thumb_func_start FUN_02034E24 -FUN_02034E24: ; 0x02034E24 - add r0, #0x98 - bx lr - - thumb_func_start FUN_02034E28 -FUN_02034E28: ; 0x02034E28 - add r0, #0x96 - bx lr - - thumb_func_start FUN_02034E2C -FUN_02034E2C: ; 0x02034E2C - add r0, #0x94 - bx lr - - thumb_func_start FUN_02034E30 -FUN_02034E30: ; 0x02034E30 - ldr r3, _02034E38 ; =FUN_02022610 - mov r1, #0x6 - bx r3 - nop -_02034E38: .word FUN_02022610 - - thumb_func_start FUN_02034E3C -FUN_02034E3C: ; 0x02034E3C - ldr r3, _02034E44 ; =FUN_02022610 - mov r1, #0xb - bx r3 - nop -_02034E44: .word FUN_02022610 - - thumb_func_start FUN_02034E48 -FUN_02034E48: ; 0x02034E48 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02034E3C - add r2, r0, #0x0 - ldr r1, [r4, #0x34] - add r0, r4, #0x0 - mov r3, #0x40 - bl FUN_02057800 - pop {r4, pc} - - thumb_func_start FUN_02034E60 -FUN_02034E60: ; 0x02034E60 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02034E3C - add r1, r0, #0x0 - ldr r0, [r4, #0x34] - mov r2, #0x40 - bl FUN_0205785C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02034E78 -FUN_02034E78: ; 0x02034E78 - push {r3, lr} - cmp r0, #0x0 - ble _02034E82 - cmp r0, #0x14 - bls _02034E88 -_02034E82: - bl ErrorHandling - mov r0, #0x1 -_02034E88: - sub r0, r0, #0x1 - pop {r3, pc} - - thumb_func_start FUN_02034E8C -FUN_02034E8C: ; 0x02034E8C - mov r0, #0x1 - bx lr - - thumb_func_start FUN_02034E90 -FUN_02034E90: ; 0x02034E90 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02034E78 - lsl r1, r0, #0x4 - ldr r0, _02034EB8 ; =0x020F222A - ldrh r0, [r0, r1] - str r0, [r4, #0x0] - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0x4] - ldr r0, _02034EBC ; =0x020F222C - ldrh r0, [r0, r1] - str r0, [r4, #0x8] - ldr r0, _02034EC0 ; =0x020F222E - ldrh r0, [r0, r1] - str r0, [r4, #0xc] - mov r0, #0x1 - str r0, [r4, #0x10] - pop {r4, pc} - .balign 4 -_02034EB8: .word 0x020F222A -_02034EBC: .word 0x020F222C -_02034EC0: .word 0x020F222E - - thumb_func_start FUN_02034EC4 -FUN_02034EC4: ; 0x02034EC4 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02034E78 - lsl r1, r0, #0x4 - ldr r0, _02034EEC ; =0x020F2224 - ldrh r0, [r0, r1] - str r0, [r4, #0x0] - mov r0, #0x0 - mvn r0, r0 - str r0, [r4, #0x4] - ldr r0, _02034EF0 ; =0x020F2226 - ldrh r0, [r0, r1] - str r0, [r4, #0x8] - ldr r0, _02034EF4 ; =0x020F2228 - ldrh r0, [r0, r1] - str r0, [r4, #0xc] - mov r0, #0x0 - str r0, [r4, #0x10] - pop {r4, pc} - .balign 4 -_02034EEC: .word 0x020F2224 -_02034EF0: .word 0x020F2226 -_02034EF4: .word 0x020F2228 - - thumb_func_start FUN_02034EF8 -FUN_02034EF8: ; 0x02034EF8 - ldr r3, _02034F18 ; =0x020F2224 - mov r2, #0x0 -_02034EFC: - ldrh r1, [r3, #0x0] - cmp r0, r1 - bne _02034F0C - ldrb r1, [r3, #0xc] - cmp r1, #0x0 - beq _02034F0C - add r0, r2, #0x1 - bx lr -_02034F0C: - add r2, r2, #0x1 - add r3, #0x10 - cmp r2, #0x14 - blo _02034EFC - mov r0, #0x0 - bx lr - .balign 4 -_02034F18: .word 0x020F2224 - - thumb_func_start FUN_02034F1C -FUN_02034F1C: ; 0x02034F1C - ldr r3, _02034F3C ; =0x020F2224 - mov r2, #0x0 -_02034F20: - ldrh r1, [r3, #0x6] - cmp r0, r1 - bne _02034F30 - ldrb r1, [r3, #0xc] - cmp r1, #0x0 - beq _02034F30 - add r0, r2, #0x1 - bx lr -_02034F30: - add r2, r2, #0x1 - add r3, #0x10 - cmp r2, #0x14 - blo _02034F20 - mov r0, #0x0 - bx lr - .balign 4 -_02034F3C: .word 0x020F2224 - - thumb_func_start FUN_02034F40 -FUN_02034F40: ; 0x02034F40 - push {r3-r6} - asr r3, r1, #0x4 - lsr r3, r3, #0x1b - add r3, r1, r3 - asr r1, r2, #0x4 - lsr r1, r1, #0x1b - add r1, r2, r1 - mov r4, #0x0 - asr r2, r1, #0x5 - ldr r5, _02034F84 ; =0x020F2224 - asr r3, r3, #0x5 - add r1, r4, #0x0 -_02034F58: - ldrh r6, [r5, #0x6] - cmp r0, r6 - bne _02034F76 - ldrh r6, [r5, #0x8] - add r4, r1, #0x1 - lsr r6, r6, #0x5 - cmp r3, r6 - bne _02034F76 - ldrh r6, [r5, #0xa] - lsr r6, r6, #0x5 - cmp r2, r6 - bne _02034F76 - add r0, r4, #0x0 - pop {r3-r6} - bx lr -_02034F76: - add r1, r1, #0x1 - add r5, #0x10 - cmp r1, #0x14 - blo _02034F58 - add r0, r4, #0x0 - pop {r3-r6} - bx lr - .balign 4 -_02034F84: .word 0x020F2224 - - thumb_func_start FUN_02034F88 -FUN_02034F88: ; 0x02034F88 - push {r4, lr} - ldr r3, _02034FB8 ; =0x020F2224 - mov r4, #0x0 -_02034F8E: - ldrh r2, [r3, #0x6] - cmp r1, r2 - bne _02034FAE - ldrb r2, [r3, #0xd] - cmp r2, #0x0 - beq _02034FAE - ldr r0, [r0, #0xc] - bl FUN_020462AC - ldr r2, _02034FBC ; =0x020F2232 - lsl r3, r4, #0x4 - ldrh r2, [r2, r3] - mov r1, #0x1 - bl FUN_0205F2E4 - pop {r4, pc} -_02034FAE: - add r4, r4, #0x1 - add r3, #0x10 - cmp r4, #0x14 - blo _02034F8E - pop {r4, pc} - .balign 4 -_02034FB8: .word 0x020F2224 -_02034FBC: .word 0x020F2232 - - thumb_func_start FUN_02034FC0 -FUN_02034FC0: ; 0x02034FC0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02034E78 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_020462AC - ldr r2, _02034FE0 ; =0x020F2232 - lsl r3, r4, #0x4 - ldrh r2, [r2, r3] - mov r1, #0x2 - bl FUN_0205F2E4 - pop {r3-r5, pc} - .balign 4 -_02034FE0: .word 0x020F2232 - - thumb_func_start FUN_02034FE4 -FUN_02034FE4: ; 0x02034FE4 - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, r1, #0x0 - bl FUN_02034838 - add r4, r0, #0x0 - cmp r4, #0x18 - blt _0203505C - ldr r0, [r7, #0xc] - bl FUN_02023794 - add r6, r0, #0x0 - add r0, r6, #0x4 - bl FUN_02012710 - sub r5, r0, #0x1 - bmi _0203500C - ldr r0, _02035060 ; =0x0000016E - cmp r5, r0 - blt _02035010 -_0203500C: - bl ErrorHandling -_02035010: - ldr r0, [r6, #0x8] - cmp r0, #0x2 - bls _02035044 - ldr r6, [r6, #0x4] - mov r0, #0x3 - tst r0, r6 - bne _0203502A - add r0, r6, #0x0 - mov r1, #0x64 - bl _u32_div_f - cmp r1, #0x0 - bne _02035038 -_0203502A: - mov r1, #0x19 - add r0, r6, #0x0 - lsl r1, r1, #0x4 - bl _u32_div_f - cmp r1, #0x0 - bne _0203503C -_02035038: - mov r0, #0x1 - b _0203503E -_0203503C: - mov r0, #0x0 -_0203503E: - cmp r0, #0x0 - bne _02035044 - add r5, r5, #0x1 -_02035044: - add r0, r7, #0x0 - bl FUN_0204B33C - cmp r0, #0x0 - beq _02035050 - mov r5, #0x1 -_02035050: - lsl r0, r5, #0x2 - sub r4, #0x18 - add r0, r5, r0 - add r1, r4, r0 - ldr r0, _02035064 ; =0x020F2364 - ldrb r0, [r0, r1] -_0203505C: - pop {r3-r7, pc} - nop -_02035060: .word 0x0000016E -_02035064: .word 0x020F2364 - - thumb_func_start FUN_02035068 -FUN_02035068: ; 0x02035068 - push {r3, lr} - ldr r0, [r0, #0x1c] - ldr r0, [r0, #0x0] - bl FUN_02034824 - cmp r0, #0x0 - beq _0203507A - mov r0, #0x1 - pop {r3, pc} -_0203507A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02035080 -FUN_02035080: ; 0x02035080 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02035254 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205F214 - cmp r0, #0x1 - bne _020350A6 - add r0, r5, #0x0 - bl FUN_020352C4 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _020350E6 -_020350A6: - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205F244 - cmp r0, #0x1 - bne _020350C2 - add r0, r5, #0x0 - bl FUN_020352C8 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _020350E6 -_020350C2: - add r0, r5, #0x0 - bl FUN_02060144 - cmp r0, #0x1 - bne _020350DA - add r0, r5, #0x0 - bl FUN_020352CC - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _020350E6 -_020350DA: - add r0, r5, #0x0 - bl FUN_02035270 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] -_020350E6: - mov r0, #0x71 - mov r1, #0x0 - lsl r0, r0, #0x2 - str r1, [r4, r0] - ldr r0, [r5, #0x38] - bl FUN_02055B30 - cmp r0, #0x1 - bne _02035106 - ldr r0, [r5, #0x38] - bl FUN_020552F8 - add r1, r0, #0x0 - ldr r0, [r5, #0x38] - bl FUN_02055B8C -_02035106: - ldr r1, _02035114 ; =FUN_020352E4 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020463CC - pop {r3-r5, pc} - nop -_02035114: .word FUN_020352E4 - - thumb_func_start FUN_02035118 -FUN_02035118: ; 0x02035118 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02035254 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020352D4 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - mov r2, #0x1 - add r0, r1, #0x4 - str r2, [r4, r0] - ldr r0, [r5, #0x38] - bl FUN_02055B30 - cmp r0, #0x1 - bne _0203514C - ldr r0, [r5, #0x38] - bl FUN_020552F8 - add r1, r0, #0x0 - ldr r0, [r5, #0x38] - bl FUN_02055B8C -_0203514C: - ldr r1, _02035158 ; =FUN_020352E4 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020463CC - pop {r3-r5, pc} - .balign 4 -_02035158: .word FUN_020352E4 - - thumb_func_start FUN_0203515C -FUN_0203515C: ; 0x0203515C - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02035254 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020352DC - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - mov r2, #0x0 - add r0, r1, #0x4 - str r2, [r4, r0] - ldr r0, [r5, #0x38] - bl FUN_02055B30 - cmp r0, #0x1 - bne _02035190 - ldr r0, [r5, #0x38] - bl FUN_020552F8 - add r1, r0, #0x0 - ldr r0, [r5, #0x38] - bl FUN_02055B8C -_02035190: - ldr r1, _0203519C ; =FUN_020352E4 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020463CC - pop {r3-r5, pc} - .balign 4 -_0203519C: .word FUN_020352E4 - - thumb_func_start FUN_020351A0 -FUN_020351A0: ; 0x020351A0 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0203524C ; =0x000005FD - bl FUN_020054C8 - bl FUN_02035254 - add r4, r0, #0x0 - mov r0, #0x71 - mov r1, #0x0 - lsl r0, r0, #0x2 - str r1, [r4, r0] - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205F214 - cmp r0, #0x1 - bne _020351D4 - add r0, r5, #0x0 - bl FUN_020352C4 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _02035240 -_020351D4: - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205F244 - cmp r0, #0x1 - bne _020351F0 - add r0, r5, #0x0 - bl FUN_020352C8 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _02035240 -_020351F0: - add r0, r5, #0x0 - bl FUN_02060144 - cmp r0, #0x1 - bne _02035208 - add r0, r5, #0x0 - bl FUN_020352CC - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _02035240 -_02035208: - ldr r0, [r5, #0x6c] - cmp r0, #0x3 - bne _0203521C - add r0, r5, #0x0 - bl FUN_020352DC - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - b _02035240 -_0203521C: - cmp r0, #0x2 - bne _02035234 - add r0, r5, #0x0 - bl FUN_020352D4 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] - mov r2, #0x1 - add r0, r1, #0x4 - str r2, [r4, r0] - b _02035240 -_02035234: - add r0, r5, #0x0 - bl FUN_02035270 - mov r1, #0x7 - lsl r1, r1, #0x6 - str r0, [r4, r1] -_02035240: - ldr r0, [r5, #0x10] - ldr r1, _02035250 ; =FUN_020352E4 - add r2, r4, #0x0 - bl FUN_020463EC - pop {r3-r5, pc} - .balign 4 -_0203524C: .word 0x000005FD -_02035250: .word FUN_020352E4 - - thumb_func_start FUN_02035254 -FUN_02035254: ; 0x02035254 - push {r3, lr} - mov r1, #0x2 - mov r0, #0xb - lsl r1, r1, #0x8 - bl FUN_02016998 - mov r2, #0x0 - strh r2, [r0, #0x2a] - mov r1, #0x7e - strh r2, [r0, #0x28] - lsl r1, r1, #0x2 - str r2, [r0, r1] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02035270 -FUN_02035270: ; 0x02035270 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - mov r4, #0x0 - bl FUN_02024DA0 - bl FUN_02024D64 - cmp r0, #0x0 - bne _02035288 - mov r0, #0x1 - orr r4, r0 -_02035288: - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205F388 - cmp r0, #0x0 - bne _0203529A - mov r0, #0x2 - orr r4, r0 -_0203529A: - ldr r0, [r5, #0xc] - bl FUN_020462AC - bl FUN_0205ECE0 - cmp r0, #0x0 - bne _020352AC - mov r0, #0x4 - orr r4, r0 -_020352AC: - ldr r0, [r5, #0x1c] - ldr r0, [r0, #0x0] - bl FUN_020349CC - cmp r0, #0x1 - bne _020352BC - mov r0, #0x6 - orr r4, r0 -_020352BC: - mov r0, #0x6 - lsl r0, r0, #0x6 - orr r0, r4 - pop {r3-r5, pc} - - thumb_func_start FUN_020352C4 -FUN_020352C4: ; 0x020352C4 - mov r0, #0x90 - bx lr - - thumb_func_start FUN_020352C8 -FUN_020352C8: ; 0x020352C8 - mov r0, #0x94 - bx lr - - thumb_func_start FUN_020352CC -FUN_020352CC: ; 0x020352CC - ldr r0, _020352D0 ; =0x00000195 - bx lr - .balign 4 -_020352D0: .word 0x00000195 - - thumb_func_start FUN_020352D4 -FUN_020352D4: ; 0x020352D4 - mov r0, #0x11 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_020352DC -FUN_020352DC: ; 0x020352DC - ldr r0, _020352E0 ; =0x00000191 - bx lr - .balign 4 -_020352E0: .word 0x00000191 - - thumb_func_start FUN_020352E4 -FUN_020352E4: ; 0x020352E4 - push {r4-r6, lr} - add r6, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldrh r1, [r4, #0x2a] - cmp r1, #0xf - bhi _02035362 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02035308: ; jump table (using 16-bit offset) - .short _02035328 - _02035308 - 2; case 0 - .short _02035358 - _02035308 - 2; case 1 - .short _02035368 - _02035308 - 2; case 2 - .short _02035370 - _02035308 - 2; case 3 - .short _02035378 - _02035308 - 2; case 4 - .short _02035380 - _02035308 - 2; case 5 - .short _02035388 - _02035308 - 2; case 6 - .short _02035390 - _02035308 - 2; case 7 - .short _020353C0 - _02035308 - 2; case 8 - .short _020353D6 - _02035308 - 2; case 9 - .short _020353F6 - _02035308 - 2; case 10 - .short _02035412 - _02035308 - 2; case 11 - .short _02035398 - _02035308 - 2; case 12 - .short _02035440 - _02035308 - 2; case 13 - .short _02035478 - _02035308 - 2; case 14 - .short _02035432 - _02035308 - 2; case 15 -_02035328: - ldr r0, [r5, #0x34] - bl FUN_02058780 - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_0205CE80 - mov r1, #0x7a - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02063964 - add r0, r6, #0x0 - bl FUN_0203549C - add r0, r6, #0x0 - bl FUN_02035734 - mov r0, #0x1 - strh r0, [r4, #0x2a] - b _02035484 -_02035358: - add r0, r6, #0x0 - bl FUN_020358E4 - cmp r0, #0x0 - beq _02035364 -_02035362: - b _02035484 -_02035364: - mov r0, #0x0 - pop {r4-r6, pc} -_02035368: - add r0, r6, #0x0 - bl FUN_02035CA0 - b _02035484 -_02035370: - add r0, r6, #0x0 - bl FUN_02035CDC - b _02035484 -_02035378: - add r0, r6, #0x0 - bl FUN_020365F0 - b _02035484 -_02035380: - add r0, r6, #0x0 - bl FUN_02036644 - b _02035484 -_02035388: - add r0, r6, #0x0 - bl FUN_02036E08 - b _02035484 -_02035390: - add r0, r6, #0x0 - bl FUN_02036F1C - b _02035484 -_02035398: - add r0, r5, #0x0 - bl FUN_020464A4 - cmp r0, #0x0 - beq _02035484 - ldr r0, [r5, #0x34] - bl FUN_02058780 - add r0, r6, #0x0 - bl FUN_0203549C - add r0, r6, #0x0 - bl FUN_02035734 - mov r0, #0x1 - bl MOD05_021D7CA4 - mov r0, #0xe - strh r0, [r4, #0x2a] - b _02035484 -_020353C0: - add r0, r5, #0x0 - bl FUN_020464A4 - cmp r0, #0x0 - beq _02035484 - mov r0, #0x1 - bl MOD05_021D7CA4 - mov r0, #0x9 - strh r0, [r4, #0x2a] - b _02035484 -_020353D6: - bl FUN_0200E308 - cmp r0, #0x0 - beq _02035484 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0203598C - add r0, r4, #0x0 - bl FUN_02016A18 - ldr r0, [r5, #0x34] - bl FUN_020587B0 - mov r0, #0x1 - pop {r4-r6, pc} -_020353F6: - add r0, r5, #0x0 - bl FUN_020464A4 - cmp r0, #0x0 - beq _02035484 - ldr r0, [r5, #0x34] - bl FUN_02058780 - mov r0, #0x1 - bl MOD05_021D7CA4 - mov r0, #0xb - strh r0, [r4, #0x2a] - b _02035484 -_02035412: - bl FUN_0200E308 - cmp r0, #0x0 - beq _02035484 - mov r2, #0x72 - lsl r2, r2, #0x2 - ldr r1, [r4, r2] - add r2, #0x30 - ldr r2, [r4, r2] - add r0, r6, #0x0 - bl FUN_020463EC - add r0, r4, #0x0 - bl FUN_02016A18 - b _02035484 -_02035432: - bl FUN_02016A18 - ldr r0, [r5, #0x34] - bl FUN_020587B0 - mov r0, #0x1 - pop {r4-r6, pc} -_02035440: - add r1, r5, #0x0 - bl FUN_0203598C - add r0, r4, #0x0 - bl FUN_02035718 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_0200CCF8 - add r0, r4, #0x0 - bl FUN_02019178 - add r0, r6, #0x0 - bl FUN_020358A0 - ldr r0, [r5, #0x8] - mov r1, #0x3 - bl FUN_0201AC68 - add r0, r4, #0x0 - bl FUN_02016A18 - ldr r0, [r5, #0x34] - bl FUN_020587B0 - mov r0, #0x1 - pop {r4-r6, pc} -_02035478: - bl FUN_0200E308 - cmp r0, #0x0 - beq _02035484 - mov r0, #0x1 - strh r0, [r4, #0x2a] -_02035484: - ldr r0, [r4, #0x20] - cmp r0, #0x0 - beq _02035496 - add r0, r4, #0x0 - bl FUN_02035BB0 - ldr r0, [r4, #0x38] - bl FUN_0201FDEC -_02035496: - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0203549C -FUN_0203549C: ; 0x0203549C - push {r3-r7, lr} - sub sp, #0x30 - add r4, r0, #0x0 - bl FUN_02046528 - str r0, [sp, #0x1c] - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x30 - bl FUN_0203566C - str r0, [sp, #0x14] - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0xb - str r0, [sp, #0x4] - ldr r0, [sp, #0x14] - mov r2, #0x3 - lsl r1, r0, #0x1 - add r0, r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x8] - mov r0, #0xc - str r0, [sp, #0xc] - ldr r0, _02035658 ; =0x0000023B - add r1, r4, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x1c] - mov r3, #0x14 - ldr r0, [r0, #0x8] - bl FUN_02019064 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r3, #0xb - ldr r0, [sp, #0x1c] - str r3, [sp, #0x4] - ldr r0, [r0, #0x8] - ldr r2, _0203565C ; =0x000003D9 - mov r1, #0x3 - bl FUN_0200CB00 - ldr r2, _0203565C ; =0x000003D9 - add r0, r4, #0x0 - mov r1, #0x1 - mov r3, #0xb - bl FUN_0200CCA4 - ldr r2, _02035660 ; =0x00000143 - mov r0, #0x0 - mov r1, #0x1a - mov r3, #0xb - bl FUN_0200A86C - str r0, [sp, #0x18] - ldr r0, [sp, #0x14] - mov r1, #0xb - bl FUN_02012838 - str r0, [r4, #0x24] - mov r5, #0x0 - ldr r0, [sp, #0x14] - strh r5, [r4, #0x28] - cmp r0, #0x0 - bls _020355BC -_02035526: - add r0, r4, r5 - add r0, #0x30 - ldrb r3, [r0, #0x0] - cmp r3, #0x3 - bne _02035594 - mov r0, #0xb - bl FUN_0200AA80 - add r6, r0, #0x0 - mov r0, #0x8 - mov r1, #0xb - bl FUN_020219F4 - add r1, r4, r5 - add r1, #0x30 - ldrb r1, [r1, #0x0] - add r7, r0, #0x0 - ldr r0, [sp, #0x18] - lsl r2, r1, #0x3 - ldr r1, _02035664 ; =0x020F2ACC - ldr r1, [r1, r2] - bl FUN_0200A914 - str r0, [sp, #0x20] - ldr r0, [sp, #0x1c] - ldr r0, [r0, #0xc] - bl FUN_020238F4 - add r2, r0, #0x0 - add r0, r6, #0x0 - mov r1, #0x0 - bl FUN_0200ABC0 - ldr r2, [sp, #0x20] - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_0200B7B8 - add r2, r4, r5 - add r2, #0x30 - ldrb r2, [r2, #0x0] - ldr r0, [r4, #0x24] - add r1, r7, #0x0 - bl FUN_020128A0 - ldr r0, [sp, #0x20] - bl FUN_02021A20 - add r0, r7, #0x0 - bl FUN_02021A20 - add r0, r6, #0x0 - bl FUN_0200AB18 - b _020355A2 -_02035594: - ldr r2, _02035664 ; =0x020F2ACC - lsl r6, r3, #0x3 - ldr r0, [r4, #0x24] - ldr r1, [sp, #0x18] - ldr r2, [r2, r6] - bl FUN_02012880 -_020355A2: - ldr r0, [sp, #0x1c] - add r0, #0x8c - ldr r1, [r0, #0x0] - add r0, r4, r5 - add r0, #0x30 - ldrb r0, [r0, #0x0] - cmp r1, r0 - bne _020355B4 - strh r5, [r4, #0x28] -_020355B4: - ldr r0, [sp, #0x14] - add r5, r5, #0x1 - cmp r5, r0 - blo _02035526 -_020355BC: - ldrh r0, [r4, #0x28] - add r0, r4, r0 - add r0, #0x30 - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x1c] - add r0, #0x8c - str r1, [r0, #0x0] - ldr r0, [sp, #0x18] - bl FUN_0200A8B8 - ldr r0, [r4, #0x24] - mov r1, #0x1 - str r0, [sp, #0x24] - str r4, [sp, #0x28] - add r0, sp, #0x24 - strb r1, [r0, #0x8] - strb r1, [r0, #0x9] - ldr r1, [sp, #0x14] - strb r1, [r0, #0xa] - ldrb r2, [r0, #0xb] - mov r1, #0xf - bic r2, r1 - mov r1, #0x8 - orr r1, r2 - strb r1, [r0, #0xb] - ldrb r2, [r0, #0xb] - mov r1, #0x30 - bic r2, r1 - mov r1, #0x10 - orr r1, r2 - strb r1, [r0, #0xb] - ldr r1, [sp, #0x14] - ldrb r2, [r0, #0xb] - cmp r1, #0x4 - blo _0203560E - mov r1, #0xc0 - bic r2, r1 - mov r1, #0x40 - orr r1, r2 - strb r1, [r0, #0xb] - b _02035614 -_0203560E: - mov r1, #0xc0 - bic r2, r1 - strb r2, [r0, #0xb] -_02035614: - mov r0, #0xb - str r0, [sp, #0x0] - ldr r0, _02035668 ; =0x00000402 - mov r1, #0x1c - str r0, [sp, #0x4] - ldrh r3, [r4, #0x28] - add r0, sp, #0x24 - mov r2, #0x4 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - bl FUN_02001B8C - str r0, [r4, #0x20] - add r0, r4, #0x0 - bl FUN_02019220 - ldr r0, [sp, #0x1c] - ldr r0, [r0, #0xc] - bl FUN_020238F4 - bl FUN_020239CC - add r3, r0, #0x0 - add r0, r4, #0x0 - add r4, #0x30 - lsl r3, r3, #0x18 - ldr r2, [sp, #0x14] - add r1, r4, #0x0 - lsr r3, r3, #0x18 - bl FUN_020359B8 - add sp, #0x30 - pop {r3-r7, pc} - nop -_02035658: .word 0x0000023B -_0203565C: .word 0x000003D9 -_02035660: .word 0x00000143 -_02035664: .word 0x020F2ACC -_02035668: .word 0x00000402 - - thumb_func_start FUN_0203566C -FUN_0203566C: ; 0x0203566C - push {r3-r4} - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - sub r3, #0xc0 - mov r2, #0x0 - tst r3, r4 - bne _02035682 - mov r3, #0x8 - strb r3, [r1, #0x0] - add r2, r2, #0x1 -_02035682: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x80 - tst r3, r4 - bne _02035694 - mov r3, #0x7 - strb r3, [r1, r2] - add r2, r2, #0x1 -_02035694: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x1 - tst r3, r4 - bne _020356A6 - mov r3, #0x0 - strb r3, [r1, r2] - add r2, r2, #0x1 -_020356A6: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x2 - tst r3, r4 - bne _020356B8 - mov r3, #0x1 - strb r3, [r1, r2] - add r2, r2, #0x1 -_020356B8: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x4 - tst r3, r4 - bne _020356CA - mov r3, #0x2 - strb r3, [r1, r2] - add r2, r2, #0x1 -_020356CA: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x8 - tst r3, r4 - bne _020356DC - mov r3, #0x3 - strb r3, [r1, r2] - add r2, r2, #0x1 -_020356DC: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x10 - tst r3, r4 - bne _020356EE - mov r3, #0x4 - strb r3, [r1, r2] - add r2, r2, #0x1 -_020356EE: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r4, [r0, r3] - mov r3, #0x20 - tst r3, r4 - bne _02035700 - mov r3, #0x5 - strb r3, [r1, r2] - add r2, r2, #0x1 -_02035700: - mov r3, #0x7 - lsl r3, r3, #0x6 - ldr r3, [r0, r3] - mov r0, #0x40 - tst r0, r3 - bne _02035712 - mov r0, #0x6 - strb r0, [r1, r2] - add r2, r2, #0x1 -_02035712: - add r0, r2, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02035718 -FUN_02035718: ; 0x02035718 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02035B78 - ldr r0, [r4, #0x20] - mov r1, #0x0 - bl FUN_02001C5C - ldr r0, [r4, #0x24] - bl FUN_02012870 - mov r0, #0x0 - str r0, [r4, #0x20] - pop {r4, pc} - - thumb_func_start FUN_02035734 -FUN_02035734: ; 0x02035734 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_020462AC - bl FUN_0205F214 - cmp r0, #0x1 - bne _0203575A - mov r6, #0x0 - b _0203576C -_0203575A: - ldr r0, [r4, #0xc] - bl FUN_020462AC - bl FUN_0205F244 - cmp r0, #0x1 - beq _0203576A - b _0203588E -_0203576A: - mov r6, #0x1 -_0203576C: - mov r3, #0x1 - str r3, [sp, #0x0] - mov r0, #0xc - str r0, [sp, #0x4] - mov r0, #0x4 - str r0, [sp, #0x8] - mov r0, #0xd - str r0, [sp, #0xc] - ldr r0, _02035894 ; =0x0000032D - add r1, r5, #0x0 - str r0, [sp, #0x10] - ldr r0, [r4, #0x8] - add r1, #0x10 - mov r2, #0x3 - bl FUN_02019064 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r3, #0xb - str r3, [sp, #0x4] - ldr r0, [r4, #0x8] - ldr r2, _02035898 ; =0x000003D9 - mov r1, #0x3 - bl FUN_0200CB00 - add r0, r5, #0x0 - ldr r2, _02035898 ; =0x000003D9 - add r0, #0x10 - mov r1, #0x1 - mov r3, #0xb - bl FUN_0200CCA4 - add r0, r5, #0x0 - add r0, #0x10 - mov r1, #0xf - bl FUN_02019620 - ldr r2, _0203589C ; =0x00000143 - mov r0, #0x0 - mov r1, #0x1a - mov r3, #0xb - bl FUN_0200A86C - str r0, [sp, #0x1c] - cmp r6, #0x0 - bne _020357D0 - mov r1, #0x9 - bl FUN_0200A914 - b _020357D6 -_020357D0: - mov r1, #0xa - bl FUN_0200A914 -_020357D6: - mov r1, #0x0 - add r7, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0xff - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r0, #0x10 - add r2, r7, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl FUN_0201BD84 - add r0, r7, #0x0 - bl FUN_02021A20 - mov r0, #0xb - bl FUN_0200AA80 - add r7, r0, #0x0 - mov r0, #0x20 - mov r1, #0xb - bl FUN_020219F4 - str r0, [sp, #0x18] - ldr r0, [sp, #0x1c] - mov r1, #0xb - bl FUN_0200A914 - str r0, [sp, #0x14] - cmp r6, #0x0 - bne _02035834 - ldr r0, [r4, #0xc] - bl FUN_02034E30 - bl FUN_02034E24 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldrh r2, [r2, #0x0] - add r0, r7, #0x0 - mov r3, #0x2 - bl FUN_0200AD38 - b _0203584C -_02035834: - add r0, r4, #0x0 - bl FUN_0204BAB0 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r7, #0x0 - mov r3, #0x2 - bl FUN_0200AD38 -_0203584C: - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - add r0, r7, #0x0 - bl FUN_0200B7B8 - mov r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0xff - str r0, [sp, #0x4] - mov r1, #0x0 - add r0, r5, #0x0 - ldr r2, [sp, #0x18] - add r0, #0x10 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl FUN_0201BD84 - ldr r0, [sp, #0x18] - bl FUN_02021A20 - ldr r0, [sp, #0x14] - bl FUN_02021A20 - add r0, r7, #0x0 - bl FUN_0200AB18 - ldr r0, [sp, #0x1c] - bl FUN_0200A8B8 - add r5, #0x10 - add r0, r5, #0x0 - bl FUN_02019220 -_0203588E: - add sp, #0x20 - pop {r3-r7, pc} - nop -_02035894: .word 0x0000032D -_02035898: .word 0x000003D9 -_0203589C: .word 0x00000143 - - thumb_func_start FUN_020358A0 -FUN_020358A0: ; 0x020358A0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_020462AC - bl FUN_0205F214 - cmp r0, #0x0 - bne _020358CE - ldr r0, [r4, #0xc] - bl FUN_020462AC - bl FUN_0205F244 - cmp r0, #0x0 - beq _020358E0 -_020358CE: - add r0, r5, #0x0 - add r0, #0x10 - mov r1, #0x1 - bl FUN_0200CCF8 - add r5, #0x10 - add r0, r5, #0x0 - bl FUN_02019178 -_020358E0: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020358E4 -FUN_020358E4: ; 0x020358E4 - push {r3-r7, lr} - add r7, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - ldr r0, [r5, #0x20] - bl FUN_02001E5C - add r6, r0, #0x0 - mov r1, #0x5e - ldr r0, [r5, #0x20] - lsl r1, r1, #0x4 - bl FUN_02001D2C - str r0, [r5, #0x2c] - ldr r0, [r5, #0x20] - bl FUN_02001E5C - strh r0, [r5, #0x28] - ldrh r1, [r5, #0x28] - cmp r6, r1 - beq _0203593A - mov r0, #0x67 - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - ldr r0, [r0, #0x0] - bl FUN_02035BE8 - ldrh r2, [r5, #0x28] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02035C44 - ldrh r0, [r5, #0x28] - add r4, #0x8c - add r0, r5, r0 - add r0, #0x30 - ldrb r0, [r0, #0x0] - str r0, [r4, #0x0] -_0203593A: - ldrh r0, [r5, #0x28] - add r0, r0, #0x1 - lsl r0, r0, #0x2 - add r1, r5, r0 - mov r0, #0x67 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - ldr r0, [r0, #0x0] - bl FUN_02035C78 - mov r1, #0x1 - ldr r2, [r5, #0x2c] - mvn r1, r1 - cmp r2, r1 - beq _02035960 - add r0, r1, #0x1 - cmp r2, r0 - beq _02035982 - b _02035966 -_02035960: - mov r0, #0xd - strh r0, [r5, #0x2a] - b _02035982 -_02035966: - ldr r0, _02035988 ; =0x020F2AD0 - lsl r2, r2, #0x3 - ldr r2, [r0, r2] - cmp r2, r1 - bne _02035976 - mov r0, #0xd - strh r0, [r5, #0x2a] - b _02035982 -_02035976: - add r0, r1, #0x1 - cmp r2, r0 - beq _02035982 - add r0, r7, #0x0 - blx r2 - pop {r3-r7, pc} -_02035982: - mov r0, #0x1 - pop {r3-r7, pc} - nop -_02035988: .word 0x020F2AD0 - - thumb_func_start FUN_0203598C -FUN_0203598C: ; 0x0203598C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0202EDF8 - cmp r0, #0x0 - beq _020359B4 - mov r0, #0x71 - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - cmp r0, #0x0 - beq _020359B4 - ldr r0, [r4, #0x7c] - bl FUN_02052F74 - bl FUN_02031B50 - mov r0, #0x0 - bl FUN_02052B74 -_020359B4: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020359B8 -FUN_020359B8: ; 0x020359B8 - push {r4-r7, lr} - sub sp, #0xb4 - ldr r4, _02035B60 ; =0x020F2AB4 - str r3, [sp, #0x18] - add r3, sp, #0x9c - str r2, [sp, #0x14] - str r0, [sp, #0xc] - str r1, [sp, #0x10] - add r2, r3, #0x0 - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [sp, #0xc] - add r1, r2, #0x0 - add r0, #0x38 - mov r2, #0x8 - mov r3, #0xb - bl MOD05_021D959C - mov r0, #0x2 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r0, _02035B64 ; =0x000034D8 - mov r1, #0x42 - str r0, [sp, #0x8] - ldr r0, [sp, #0xc] - mov r2, #0x5 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D967C - ldr r0, _02035B64 ; =0x000034D8 - mov r1, #0x42 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - mov r2, #0x1 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D96F4 - ldr r0, _02035B64 ; =0x000034D8 - mov r2, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - mov r1, #0x42 - add r0, #0x38 - add r3, r2, #0x0 - bl MOD05_021D9708 - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r0, _02035B64 ; =0x000034D8 - mov r1, #0x42 - str r0, [sp, #0x4] - ldr r0, [sp, #0xc] - mov r2, #0x2 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D971C - ldr r0, [sp, #0xc] - ldr r1, _02035B68 ; =0x020F2B14 - add r0, #0x38 - bl MOD05_021D9820 - mov r2, #0x67 - ldr r1, [sp, #0xc] - lsl r2, r2, #0x2 - str r0, [r1, r2] - add r0, r1, #0x0 - ldr r0, [r0, r2] - ldrh r1, [r1, #0x28] - ldr r0, [r0, #0x0] - bl FUN_02035BE8 - ldr r0, _02035B6C ; =0x000034D9 - mov r1, #0x42 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - mov r2, #0x4 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D96F4 - ldr r0, _02035B6C ; =0x000034D9 - mov r1, #0x42 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - mov r2, #0x3 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D9708 - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r0, _02035B6C ; =0x000034D9 - mov r1, #0x42 - str r0, [sp, #0x4] - ldr r0, [sp, #0xc] - mov r2, #0x6 - add r0, #0x38 - mov r3, #0x0 - bl MOD05_021D971C - ldr r0, [sp, #0x14] - mov r4, #0x0 - cmp r0, #0x0 - bls _02035B2C - ldr r5, [sp, #0xc] - ldr r3, _02035B70 ; =0x020F2B48 - add r7, r4, #0x0 - add r2, sp, #0x28 - mov r6, #0x6 -_02035AA2: - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - sub r6, r6, #0x1 - bne _02035AA2 - ldr r0, [r3, #0x0] - ldr r3, _02035B74 ; =0x020F2AA8 - str r0, [r2, #0x0] - ldmia r3!, {r0-r1} - add r2, sp, #0x1c - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] -_02035ABA: - add r6, sp, #0x28 - add r3, sp, #0x68 - mov r2, #0x6 -_02035AC0: - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02035AC0 - ldr r0, [r6, #0x0] - add r1, sp, #0x68 - str r0, [r3, #0x0] - mov r0, #0x2 - ldrsh r0, [r1, r0] - add r0, r0, r7 - strh r0, [r1, #0x2] - ldr r0, [sp, #0x10] - ldrb r2, [r0, r4] - cmp r2, #0x2 - bne _02035AEA - ldr r0, [sp, #0x18] - cmp r0, #0x1 - bne _02035AEA - mov r0, #0x1b - strh r0, [r1, #0x6] - b _02035AF2 -_02035AEA: - lsl r0, r2, #0x1 - add r1, r2, r0 - add r0, sp, #0x68 - strh r1, [r0, #0x6] -_02035AF2: - ldr r0, [sp, #0xc] - add r1, sp, #0x68 - add r0, #0x38 - bl MOD05_021D9820 - mov r1, #0x1a - lsl r1, r1, #0x4 - add r2, sp, #0x5c - add r3, sp, #0x1c - str r0, [r5, r1] - ldmia r3!, {r0-r1} - add r6, r2, #0x0 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - add r1, r6, #0x0 - str r0, [r2, #0x0] - mov r0, #0x1a - lsl r0, r0, #0x4 - ldr r0, [r5, r0] - mov r2, #0x1 - ldr r0, [r0, #0x0] - bl FUN_02020074 - ldr r0, [sp, #0x14] - add r4, r4, #0x1 - add r7, #0x18 - add r5, r5, #0x4 - cmp r4, r0 - blo _02035ABA -_02035B2C: - ldr r0, [sp, #0xc] - mov r2, #0x1 - ldrh r0, [r0, #0x28] - add r0, r0, #0x1 - lsl r1, r0, #0x2 - ldr r0, [sp, #0xc] - add r1, r0, r1 - mov r0, #0x67 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - mov r1, #0x2 - ldr r0, [r0, #0x0] - bl FUN_02035C18 - ldr r0, [sp, #0x14] - mov r1, #0x6f - add r2, r0, #0x1 - ldr r0, [sp, #0xc] - lsl r1, r1, #0x2 - str r2, [r0, r1] - mov r0, #0x10 - mov r1, #0x1 - bl FUN_0201E6E4 - add sp, #0xb4 - pop {r4-r7, pc} - .balign 4 -_02035B60: .word 0x020F2AB4 -_02035B64: .word 0x000034D8 -_02035B68: .word 0x020F2B14 -_02035B6C: .word 0x000034D9 -_02035B70: .word 0x020F2B48 -_02035B74: .word 0x020F2AA8 - - thumb_func_start FUN_02035B78 -FUN_02035B78: ; 0x02035B78 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x6f - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - mov r4, #0x0 - cmp r0, #0x0 - bls _02035BA6 - mov r7, #0x67 - lsl r7, r7, #0x2 - add r6, r7, #0x0 - add r6, #0x20 -_02035B90: - lsl r0, r4, #0x2 - add r0, r5, r0 - ldr r0, [r0, r7] - bl FUN_0200C3DC - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, [r5, r6] - cmp r4, r0 - blo _02035B90 -_02035BA6: - add r5, #0x38 - add r0, r5, #0x0 - bl MOD05_021D99F8 - pop {r3-r7, pc} - - thumb_func_start FUN_02035BB0 -FUN_02035BB0: ; 0x02035BB0 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x6f - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - mov r4, #0x0 - cmp r0, #0x0 - bls _02035BE4 - mov r7, #0x67 - lsl r7, r7, #0x2 - add r6, r7, #0x0 - add r6, #0x20 -_02035BC8: - lsl r0, r4, #0x2 - add r0, r5, r0 - ldr r0, [r0, r7] - mov r1, #0x1 - ldr r0, [r0, #0x0] - lsl r1, r1, #0xc - bl FUN_020201E4 - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, [r5, r6] - cmp r4, r0 - blo _02035BC8 -_02035BE4: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02035BE8 -FUN_02035BE8: ; 0x02035BE8 - push {r3-r6, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_0202011C - add r6, r0, #0x0 - add r3, sp, #0x0 - ldmia r6!, {r0-r1} - add r2, r3, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r6, #0x0] - add r1, r2, #0x0 - str r0, [r3, #0x0] - mov r0, #0x18 - mul r0, r4 - add r0, #0x14 - lsl r0, r0, #0xc - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02020044 - add sp, #0xc - pop {r3-r6, pc} - - thumb_func_start FUN_02035C18 -FUN_02035C18: ; 0x02035C18 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_020201DC - mov r1, #0x3 - bl _u32_div_f - add r2, r0, #0x0 - lsl r1, r2, #0x1 - add r1, r2, r1 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02020130 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202027C - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02035C44 -FUN_02035C44: ; 0x02035C44 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x1 - lsl r0, r0, #0x2 - add r1, r5, r0 - mov r0, #0x67 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - mov r1, #0x0 - add r4, r2, #0x0 - ldr r0, [r0, #0x0] - add r2, r1, #0x0 - bl FUN_02035C18 - add r0, r4, #0x1 - lsl r0, r0, #0x2 - add r1, r5, r0 - mov r0, #0x67 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r2, r1, #0x0 - bl FUN_02035C18 - pop {r3-r5, pc} - - thumb_func_start FUN_02035C78 -FUN_02035C78: ; 0x02035C78 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020201DC - mov r1, #0x3 - bl _u32_div_f - cmp r1, #0x1 - bne _02035C9E - add r0, r4, #0x0 - bl FUN_02020388 - cmp r0, #0x0 - bne _02035C9E - add r0, r4, #0x0 - mov r1, #0x2 - mov r2, #0x1 - bl FUN_02035C18 -_02035C9E: - pop {r4, pc} - - thumb_func_start FUN_02035CA0 -FUN_02035CA0: ; 0x02035CA0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0200E308 - cmp r0, #0x0 - beq _02035CD8 - add r0, r5, #0x0 - bl FUN_02046528 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - bl FUN_02035718 - add r0, r4, #0x0 - bl FUN_02019178 - add r0, r5, #0x0 - bl FUN_020358A0 - mov r1, #0x72 - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - blx r1 - mov r0, #0x3 - strh r0, [r4, #0x2a] -_02035CD8: - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02035CDC -FUN_02035CDC: ; 0x02035CDC - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - bne _02035D02 - mov r1, #0x72 - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - blx r1 -_02035D02: - pop {r4-r6, pc} - - thumb_func_start FUN_02035D04 -FUN_02035D04: ; 0x02035D04 - mov r2, #0x72 - lsl r2, r2, #0x2 - str r1, [r0, r2] - mov r1, #0x3 - strh r1, [r0, #0x2a] - bx lr - - thumb_func_start FUN_02035D10 -FUN_02035D10: ; 0x02035D10 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _02035D30 ; =FUN_02035D34 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_02035D30: .word FUN_02035D34 - - thumb_func_start FUN_02035D34 -FUN_02035D34: ; 0x02035D34 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r6, r0, #0x0 - mov r0, #0xb - mov r1, #0x20 - bl FUN_02016998 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_02024DA0 - str r0, [sp, #0x0] - ldr r0, [r5, #0xc] - bl FUN_020238F4 - str r0, [sp, #0x4] - ldr r0, [r5, #0xc] - bl FUN_020462AC - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - str r0, [r4, #0x0] - ldr r0, [sp, #0x4] - str r0, [r4, #0x4] - add r0, r5, #0x0 - bl FUN_0204B2A4 - str r0, [r4, #0x8] - add r0, r7, #0x0 - mov r1, #0x0 - bl FUN_0205F524 - str r0, [r4, #0xc] - add r0, r7, #0x0 - mov r1, #0x1 - bl FUN_0205F524 - str r0, [r4, #0x10] - add r0, r7, #0x0 - mov r1, #0x2 - bl FUN_0205F524 - str r0, [r4, #0x14] - add r0, r7, #0x0 - mov r1, #0x3 - bl FUN_0205F524 - str r0, [r4, #0x18] - add r0, r5, #0x0 - add r0, #0xb0 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - str r0, [r4, #0x1c] - add r0, r5, #0x0 - bl FUN_02038690 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r4, [r6, r0] - ldr r1, _02035DC4 ; =FUN_02035DC8 - sub r0, #0x30 - str r1, [r6, r0] - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02035DC4: .word FUN_02035DC8 - - thumb_func_start FUN_02035DC8 -FUN_02035DC8: ; 0x02035DC8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204649C - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r1, [r4, r0] - cmp r1, #0x0 - beq _02035DF0 - mov r0, #0xb - bl FUN_02016A8C -_02035DF0: - mov r0, #0xc - strh r0, [r4, #0x2a] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02035DF8 -FUN_02035DF8: ; 0x02035DF8 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _02035E18 ; =FUN_02035E1C - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_02035E18: .word FUN_02035E1C - - thumb_func_start FUN_02035E1C -FUN_02035E1C: ; 0x02035E1C - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x7a - add r4, r0, #0x0 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - mov r2, #0x0 - bl FUN_020379C8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, _02035E4C ; =FUN_02035E50 - sub r1, #0x30 - str r0, [r4, r1] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02035E4C: .word FUN_02035E50 - - thumb_func_start FUN_02035E50 -FUN_02035E50: ; 0x02035E50 - push {r4-r7, lr} - sub sp, #0xc - add r7, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0xb - mov r1, #0x40 - bl FUN_02016998 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r2, #0x40 - add r6, r0, #0x0 - bl memcpy - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - add r0, r6, #0x0 - add r0, #0x23 - ldrb r0, [r0, #0x0] - cmp r0, #0x17 - bls _02035E90 - b _020361E6 -_02035E90: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02035E9C: ; jump table (using 16-bit offset) - .short _020361E6 - _02035E9C - 2; case 0 - .short _02035ECC - _02035E9C - 2; case 1 - .short _020361E6 - _02035E9C - 2; case 2 - .short _020360EA - _02035E9C - 2; case 3 - .short _02035F4A - _02035E9C - 2; case 4 - .short _02035FD0 - _02035E9C - 2; case 5 - .short _02036056 - _02035E9C - 2; case 6 - .short _020360AC - _02035E9C - 2; case 7 - .short _02036144 - _02035E9C - 2; case 8 - .short _02036170 - _02035E9C - 2; case 9 - .short _020361CA - _02035E9C - 2; case 10 - .short _020361A4 - _02035E9C - 2; case 11 - .short _020361A4 - _02035E9C - 2; case 12 - .short _020361A4 - _02035E9C - 2; case 13 - .short _020361A4 - _02035E9C - 2; case 14 - .short _020361A4 - _02035E9C - 2; case 15 - .short _020361A4 - _02035E9C - 2; case 16 - .short _020361A4 - _02035E9C - 2; case 17 - .short _020361A4 - _02035E9C - 2; case 18 - .short _020361A4 - _02035E9C - 2; case 19 - .short _020361A4 - _02035E9C - 2; case 20 - .short _020361A4 - _02035E9C - 2; case 21 - .short _020361A4 - _02035E9C - 2; case 22 - .short _020361A4 - _02035E9C - 2; case 23 -_02035ECC: - mov r0, #0xb - mov r1, #0x30 - bl FUN_02016998 - add r7, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r7, #0x0] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r7, #0x4] - mov r0, #0x1 - strb r0, [r7, #0x11] - add r0, r6, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - strb r0, [r7, #0x14] - ldr r0, [r7, #0x0] - bl FUN_0206B9AC - strb r0, [r7, #0x13] - mov r0, #0x0 - strh r0, [r7, #0x18] - strb r0, [r7, #0x12] - ldr r0, [r5, #0xc] - bl FUN_0202A918 - str r0, [r7, #0x20] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r7, #0x1c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r7, #0x2c] - mov r0, #0x0 - str r0, [r7, #0x28] - ldr r1, _0203626C ; =0x020F2A9C - add r0, r7, #0x0 - bl FUN_0207B000 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0207C2A4 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0203796C - mov r0, #0x7e - lsl r0, r0, #0x2 - str r7, [r4, r0] - ldr r1, _02036270 ; =FUN_0203684C - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02035F4A: - mov r0, #0xb - mov r1, #0x30 - bl FUN_02016998 - add r7, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r7, #0x0] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r7, #0x4] - mov r1, #0x1 - add r0, r6, #0x0 - strb r1, [r7, #0x11] - add r0, #0x22 - ldrb r0, [r0, #0x0] - strb r0, [r7, #0x14] - strb r1, [r7, #0x13] - ldrh r0, [r6, #0x26] - strh r0, [r7, #0x18] - mov r0, #0x2 - strb r0, [r7, #0x12] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r7, #0x1c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r7, #0x2c] - mov r0, #0x0 - str r0, [r7, #0x28] - ldr r1, _02036274 ; =0x020F2A8C - add r0, r7, #0x0 - bl FUN_0207B000 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0207C2A4 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0203796C - mov r0, #0xb - mov r1, #0x4 - bl FUN_02016998 - ldrh r1, [r6, #0x24] - strh r1, [r0, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x2] - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - sub r0, r1, #0x4 - str r7, [r4, r0] - ldr r1, _02036270 ; =FUN_0203684C - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02035FD0: - mov r0, #0xb - mov r1, #0x30 - bl FUN_02016998 - add r7, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r7, #0x0] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r7, #0x4] - mov r1, #0x1 - add r0, r6, #0x0 - strb r1, [r7, #0x11] - add r0, #0x22 - ldrb r0, [r0, #0x0] - strb r0, [r7, #0x14] - strb r1, [r7, #0x13] - ldrh r0, [r6, #0x26] - strh r0, [r7, #0x18] - mov r0, #0x2 - strb r0, [r7, #0x12] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r7, #0x1c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r7, #0x2c] - mov r0, #0x0 - str r0, [r7, #0x28] - ldr r1, _02036274 ; =0x020F2A8C - add r0, r7, #0x0 - bl FUN_0207B000 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0207C2A4 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0203796C - mov r0, #0xb - mov r1, #0x4 - bl FUN_02016998 - mov r1, #0x0 - strh r1, [r0, #0x0] - ldr r1, [r6, #0x34] - strh r1, [r0, #0x2] - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - sub r0, r1, #0x4 - str r7, [r4, r0] - ldr r1, _02036270 ; =FUN_0203684C - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02036056: - ldrh r0, [r6, #0x24] - bl FUN_0206EAB8 - add r3, r0, #0x0 - mov r0, #0xb - add r2, r6, #0x0 - str r0, [sp, #0x0] - add r2, #0x22 - ldrb r2, [r2, #0x0] - add r0, r5, #0x0 - mov r1, #0x2 - bl FUN_02037F2C - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - add r0, r6, #0x0 - add r0, #0x20 - ldrb r0, [r0, #0x0] - cmp r0, #0xa - ldrh r0, [r6, #0x24] - bne _02036090 - add r2, r6, #0x0 - add r2, #0x22 - ldrb r2, [r2, #0x0] - mov r1, #0x0 - bl FUN_02036BC4 - b _0203609C -_02036090: - add r2, r6, #0x0 - add r2, #0x22 - ldrb r2, [r2, #0x0] - mov r1, #0x1 - bl FUN_02036BC4 -_0203609C: - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036278 ; =FUN_02036BDC - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_020360AC: - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - add r1, r6, #0x0 - add r1, #0x22 - ldrb r1, [r1, #0x0] - bl FUN_0206B9B0 - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0xb - bl FUN_02037F90 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - add r2, r6, #0x0 - add r2, #0x22 - ldrh r0, [r6, #0x24] - ldrb r2, [r2, #0x0] - mov r1, #0x2 - bl FUN_02036BC4 - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036278 ; =FUN_02036BDC - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_020360EA: - mov r0, #0xb - mov r1, #0x4 - bl FUN_02016998 - add r1, r6, #0x0 - add r1, #0x22 - ldrb r1, [r1, #0x0] - str r1, [r0, #0x0] - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, [r5, #0xc] - bl FUN_0206F158 - add r7, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - ldr r1, _0203627C ; =0x020F2A90 - add r0, r7, #0x0 - mov r2, #0xb - bl FUN_0206EFEC - mov r1, #0x7e - lsl r1, r1, #0x2 - add r3, r5, #0x0 - str r0, [r4, r1] - add r3, #0x94 - ldr r0, [r4, r1] - ldr r1, [r5, #0xc] - ldr r3, [r3, #0x0] - mov r2, #0x1 - bl FUN_0206E314 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - bl FUN_0203781C - ldr r1, _02036280 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02036144: - mov r0, #0xb - mov r1, #0xc - bl FUN_02016998 - ldrh r1, [r6, #0x24] - strh r1, [r0, #0x2] - mov r1, #0x3 - strb r1, [r0, #0x1] - add r1, r6, #0x0 - add r1, #0x22 - ldrb r1, [r1, #0x0] - strb r1, [r0, #0x0] - ldrh r1, [r6, #0x38] - strh r1, [r0, #0x4] - ldr r1, [r6, #0x3c] - str r1, [r0, #0x8] - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - mov r0, #0x6 - strh r0, [r4, #0x2a] - b _0203625E -_02036170: - mov r0, #0xb - mov r1, #0xc - bl FUN_02016998 - add r7, r0, #0x0 - ldr r0, [r5, #0x1c] - ldr r0, [r0, #0x0] - bl FUN_02034A04 - strh r0, [r7, #0x2] - mov r0, #0x0 - strb r0, [r7, #0x1] - add r0, r6, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - strb r0, [r7, #0x0] - ldrh r0, [r6, #0x38] - strh r0, [r7, #0x4] - ldr r0, [r6, #0x3c] - str r0, [r7, #0x8] - mov r0, #0x7e - lsl r0, r0, #0x2 - str r7, [r4, r0] - mov r0, #0x6 - strh r0, [r4, #0x2a] - b _0203625E -_020361A4: - sub r0, #0xb - add r1, sp, #0x4 - strh r0, [r1, #0x6] - add r0, r6, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - strh r0, [r1, #0x4] - str r7, [sp, #0x4] - ldrh r1, [r1, #0x6] - mov r0, #0x0 - bl FUN_02063948 - mov r1, #0x7a - lsl r1, r1, #0x2 - add r2, r0, #0x0 - add r0, sp, #0x4 - add r1, r4, r1 - blx r2 - b _0203625E -_020361CA: - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036280 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_020361E6: - add r0, r6, #0x0 - add r0, #0x20 - ldrb r0, [r0, #0x0] - cmp r0, #0x5 - beq _02036200 - cmp r0, #0x6 - beq _02036200 - cmp r0, #0x7 - beq _02036200 - cmp r0, #0x10 - beq _02036200 - cmp r0, #0x8 - bne _02036234 -_02036200: - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r2, #0x7e - lsl r2, r2, #0x2 - str r0, [r4, r2] - add r0, r6, #0x0 - add r0, #0x22 - ldrb r1, [r0, #0x0] - ldr r0, [r4, r2] - cmp r1, #0x6 - blo _02036226 - mov r1, #0x0 - bl FUN_0206E358 - b _0203622A -_02036226: - bl FUN_0206E358 -_0203622A: - ldr r1, _02036280 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02036234: - cmp r0, #0x9 - bne _02036254 - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036280 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203625E -_02036254: - add r0, r5, #0x0 - bl FUN_0204649C - mov r0, #0xc - strh r0, [r4, #0x2a] -_0203625E: - add r0, r6, #0x0 - bl FUN_02016A18 - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - nop -_0203626C: .word 0x020F2A9C -_02036270: .word FUN_0203684C -_02036274: .word 0x020F2A8C -_02036278: .word FUN_02036BDC -_0203627C: .word 0x020F2A90 -_02036280: .word FUN_020362E4 - - thumb_func_start FUN_02036284 -FUN_02036284: ; 0x02036284 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _020362A4 ; =FUN_020362A8 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_020362A4: .word FUN_020362A8 - - thumb_func_start FUN_020362A8 -FUN_020362A8: ; 0x020362A8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x73 - add r4, r0, #0x0 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, [r4, r1] - mov r1, #0x0 - bl FUN_0206E358 - mov r0, #0x72 - ldr r1, _020362E0 ; =FUN_020362E4 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_020362E0: .word FUN_020362E4 - - thumb_func_start FUN_020362E4 -FUN_020362E4: ; 0x020362E4 - push {r3-r7, lr} - sub sp, #0x18 - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0xb - bl FUN_0206E2F0 - str r0, [sp, #0x8] - bl FUN_0206E308 - mov r1, #0x7e - lsl r1, r1, #0x2 - add r2, r0, #0x0 - ldr r0, [sp, #0x8] - ldr r1, [r4, r1] - bl memcpy - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - ldr r0, [sp, #0x8] - bl FUN_0206E384 - cmp r0, #0x5 - bls _02036328 - b _020364EE -_02036328: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02036334: ; jump table (using 16-bit offset) - .short _02036340 - _02036334 - 2; case 0 - .short _0203637A - _02036334 - 2; case 1 - .short _0203638A - _02036334 - 2; case 2 - .short _020364EE - _02036334 - 2; case 3 - .short _020363F6 - _02036334 - 2; case 4 - .short _020364EE - _02036334 - 2; case 5 -_02036340: - ldr r0, [sp, #0x8] - bl FUN_0206E37C - add r1, sp, #0x10 - strh r0, [r1, #0x4] - ldr r0, [sp, #0x8] - bl FUN_0206E38C - add r1, sp, #0x10 - strb r0, [r1, #0x6] - str r5, [sp, #0x10] - ldrh r0, [r1, #0x4] - mov r1, #0x6 - mov r2, #0xb - bl FUN_0206E7B8 - add r1, r0, #0x0 - lsl r1, r1, #0x10 - mov r0, #0x0 - lsr r1, r1, #0x10 - bl FUN_0205CE48 - mov r1, #0x73 - lsl r1, r1, #0x2 - add r2, r0, #0x0 - add r0, sp, #0x10 - add r1, r4, r1 - blx r2 - b _020364F8 -_0203637A: - ldr r0, [sp, #0x8] - bl FUN_0206E37C - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0203695C - b _020364F8 -_0203638A: - mov r0, #0xb - mov r1, #0x40 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x40 - add r5, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, [r6, #0xc] - bl FUN_0206BB1C - str r0, [r5, #0x0] - ldr r0, [r6, #0xc] - bl FUN_0206F158 - str r0, [r5, #0x4] - ldr r0, [r6, #0xc] - bl FUN_02025838 - str r0, [r5, #0x8] - ldr r0, [r6, #0xc] - bl LoadPlayerDataAddress - str r0, [r5, #0xc] - mov r0, #0x7a - lsl r0, r0, #0x2 - add r0, r4, r0 - str r0, [r5, #0x18] - add r0, r5, #0x0 - mov r1, #0x0 - add r0, #0x21 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - mov r1, #0x9 - add r0, #0x20 - strb r1, [r0, #0x0] - ldr r0, [sp, #0x8] - bl FUN_0206E37C - strh r0, [r5, #0x24] - ldr r1, _02036504 ; =0x020F96DC - add r0, r6, #0x0 - add r2, r5, #0x0 - bl FUN_020373D4 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r5, [r4, r0] - ldr r1, _02036508 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _020364F8 -_020363F6: - ldr r0, [r6, #0xc] - bl FUN_0206BB1C - str r0, [sp, #0x4] - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - ldr r7, [r0, #0x0] - ldr r0, [sp, #0x8] - bl FUN_0206E37C - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - add r1, r7, #0x0 - bl FUN_0206B9B0 - str r0, [sp, #0xc] - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - add r0, r5, #0x0 - bl FUN_0206EA98 - cmp r0, #0x1 - bne _02036474 - ldr r0, [sp, #0xc] - mov r1, #0x6 - mov r2, #0x0 - bl FUN_020671BC - cmp r0, #0x0 - bne _02036474 - add r0, r5, #0x0 - bl FUN_0206EAB8 - add r3, r0, #0x0 - mov r0, #0xb - lsl r2, r7, #0x18 - str r0, [sp, #0x0] - add r0, r6, #0x0 - mov r1, #0x2 - lsr r2, r2, #0x18 - bl FUN_02037F2C - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - lsl r2, r7, #0x18 - add r0, r5, #0x0 - mov r1, #0x0 - lsr r2, r2, #0x18 - bl FUN_02036BC4 - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _0203650C ; =FUN_02036BDC - add r0, r4, #0x0 - bl FUN_02035D04 - b _020364F8 -_02036474: - mov r0, #0xb - mov r1, #0x40 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x40 - add r5, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, [sp, #0x4] - str r0, [r5, #0x0] - ldr r0, [r6, #0xc] - bl FUN_0206F158 - str r0, [r5, #0x4] - ldr r0, [r6, #0xc] - bl FUN_02025838 - str r0, [r5, #0x8] - ldr r0, [r6, #0xc] - bl LoadPlayerDataAddress - str r0, [r5, #0xc] - mov r0, #0x7a - lsl r0, r0, #0x2 - add r0, r4, r0 - str r0, [r5, #0x18] - add r0, r5, #0x0 - mov r1, #0x0 - add r0, #0x21 - strb r1, [r0, #0x0] - ldr r0, [sp, #0x8] - bl FUN_0206E37C - strh r0, [r5, #0x24] - add r0, r5, #0x0 - add r0, #0x22 - strb r7, [r0, #0x0] - str r6, [r5, #0x1c] - ldrh r0, [r5, #0x24] - cmp r0, #0x0 - bne _020364CC - mov r1, #0x0 - b _020364CE -_020364CC: - mov r1, #0xa -_020364CE: - add r0, r5, #0x0 - add r0, #0x20 - strb r1, [r0, #0x0] - ldr r1, _02036504 ; =0x020F96DC - add r0, r6, #0x0 - add r2, r5, #0x0 - bl FUN_020373D4 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r5, [r4, r0] - ldr r1, _02036508 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _020364F8 -_020364EE: - add r0, r6, #0x0 - bl FUN_0204649C - mov r0, #0xc - strh r0, [r4, #0x2a] -_020364F8: - ldr r0, [sp, #0x8] - bl FUN_02016A18 - mov r0, #0x0 - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 -_02036504: .word 0x020F96DC -_02036508: .word FUN_02035E50 -_0203650C: .word FUN_02036BDC - - thumb_func_start FUN_02036510 -FUN_02036510: ; 0x02036510 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _02036530 ; =FUN_02036534 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_02036530: .word FUN_02036534 - - thumb_func_start FUN_02036534 -FUN_02036534: ; 0x02036534 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0xb - bl FUN_02065054 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - str r5, [sp, #0x0] - ldr r0, [r4, r1] - mov r2, #0x0 - str r0, [sp, #0x4] - mov r0, #0x1 - add r1, r0, #0x0 - mov r3, #0xff - bl FUN_02064E90 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - bl FUN_02038680 - mov r0, #0x72 - ldr r1, _02036580 ; =FUN_02036584 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02036580: .word FUN_02036584 - - thumb_func_start FUN_02036584 -FUN_02036584: ; 0x02036584 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x7e - add r4, r0, #0x0 - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - bl FUN_02065314 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02065070 - add r0, r5, #0x0 - bl FUN_0204649C - mov r0, #0xc - strh r0, [r4, #0x2a] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020365BC -FUN_020365BC: ; 0x020365BC - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - bl FUN_02035718 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_0200CCF8 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - add r0, r4, #0x0 - bl FUN_02019178 - add r0, r5, #0x0 - bl FUN_020358A0 - mov r0, #0x4 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020365F0 -FUN_020365F0: ; 0x020365F0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02046528 - ldr r0, [r0, #0xc] - bl FUN_0202280C - cmp r0, #0x0 - beq _02036618 - mov r2, #0x0 - ldr r1, _0203663C ; =0x000007F2 - add r0, r5, #0x0 - add r3, r2, #0x0 - bl FUN_02038CD8 - b _02036636 -_02036618: - mov r0, #0x20 - mov r1, #0x8 - bl FUN_02016998 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r3, [r4, r1] - mov r2, #0x0 - strh r2, [r3, #0x4] - ldr r1, _02036640 ; =0x000007D5 - add r0, r5, #0x0 - add r3, r3, #0x4 - bl FUN_02038CD8 -_02036636: - mov r0, #0x5 - strh r0, [r4, #0x2a] - pop {r3-r5, pc} - .balign 4 -_0203663C: .word 0x000007F2 -_02036640: .word 0x000007D5 - - thumb_func_start FUN_02036644 -FUN_02036644: ; 0x02036644 - push {r4-r6, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r5, [r4, r0] - ldr r0, [r6, #0xc] - bl FUN_0202280C - cmp r0, #0x0 - beq _0203666C - mov r0, #0x0 - strh r0, [r4, #0x2a] - pop {r4-r6, pc} -_0203666C: - ldrh r0, [r5, #0x4] - cmp r0, #0x0 - bne _02036676 - mov r0, #0x0 - b _02036678 -_02036676: - mov r0, #0xf -_02036678: - strh r0, [r4, #0x2a] - add r0, r5, #0x0 - bl FUN_02016A18 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02036684 -FUN_02036684: ; 0x02036684 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _020366A4 ; =FUN_020366A8 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_020366A4: .word FUN_020366A8 - - thumb_func_start FUN_020366A8 -FUN_020366A8: ; 0x020366A8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02037EF8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, _020366D0 ; =FUN_020366D4 - sub r1, #0x30 - str r0, [r4, r1] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_020366D0: .word FUN_020366D4 - - thumb_func_start FUN_020366D4 -FUN_020366D4: ; 0x020366D4 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - add r0, r5, #0x0 - bl FUN_0204649C - mov r0, #0xc - strh r0, [r4, #0x2a] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02036700 -FUN_02036700: ; 0x02036700 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x0 - bl MOD05_021D7CA4 - mov r0, #0x72 - ldr r1, _02036720 ; =FUN_02036724 - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x2 - strh r0, [r4, #0x2a] - mov r0, #0x1 - pop {r4, pc} - nop -_02036720: .word FUN_02036724 - - thumb_func_start FUN_02036724 -FUN_02036724: ; 0x02036724 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r2, [r5, #0xc] - mov r0, #0x2 - mov r1, #0x0 - mov r3, #0xb - bl FUN_02085338 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - add r0, sp, #0x0 - mov r1, #0x4 - bl FUN_0201373C - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - add r1, sp, #0x0 - bl FUN_020853BC - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - add r0, r5, #0x0 - bl FUN_02037E80 - mov r0, #0x72 - ldr r1, _02036778 ; =FUN_0203677C - lsl r0, r0, #0x2 - str r1, [r4, r0] - mov r0, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02036778: .word FUN_0203677C - - thumb_func_start FUN_0203677C -FUN_0203677C: ; 0x0203677C - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - bl FUN_020853E4 - cmp r0, #0x0 - bne _020367C6 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - add r1, sp, #0x0 - bl FUN_020853FC - bl FUN_0202EDF8 - cmp r0, #0x0 - beq _020367C0 - add r0, sp, #0x0 - bl FUN_02052DE8 - ldr r0, [r4, #0x78] - add r1, sp, #0x0 - bl FUN_02052CD8 -_020367C0: - mov r0, #0x8 - strh r0, [r5, #0x2a] - b _020367CA -_020367C6: - mov r0, #0xc - strh r0, [r5, #0x2a] -_020367CA: - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r5, r0] - bl FUN_020853A8 - add r0, r4, #0x0 - bl FUN_0204649C - ldr r0, [r4, #0x7c] - bl FUN_02052F74 - mov r0, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020367E8 -FUN_020367E8: ; 0x020367E8 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - bl FUN_02035718 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_0200CCF8 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - add r0, r4, #0x0 - bl FUN_02019178 - add r0, r5, #0x0 - bl FUN_020358A0 - ldr r0, [r6, #0xc] - bl FUN_020462AC - bl FUN_0205F214 - cmp r0, #0x1 - bne _02036834 - ldr r1, _02036848 ; =0x00002275 - add r0, r5, #0x0 - mov r2, #0x0 - bl FUN_02038D10 - b _0203683E -_02036834: - add r0, r5, #0x0 - mov r1, #0x4 - mov r2, #0x0 - bl FUN_02038D10 -_0203683E: - add r0, r4, #0x0 - bl FUN_02016A18 - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_02036848: .word 0x00002275 - - thumb_func_start FUN_0203684C -FUN_0203684C: ; 0x0203684C - push {r3-r7, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0xb - mov r1, #0x30 - bl FUN_02016998 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r2, #0x30 - add r7, r0, #0x0 - bl memcpy - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - ldrb r0, [r7, #0x12] - cmp r0, #0x2 - bne _0203692E - mov r0, #0xb - mov r1, #0x40 - bl FUN_02016998 - mov r1, #0x7f - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r2, #0x40 - str r1, [sp, #0x0] - mov r1, #0x0 - add r5, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, [r6, #0xc] - bl FUN_0206BB1C - str r0, [r5, #0x0] - ldr r0, [r6, #0xc] - bl FUN_0206F158 - str r0, [r5, #0x4] - ldr r0, [r6, #0xc] - bl FUN_02025838 - str r0, [r5, #0x8] - ldr r0, [r6, #0xc] - bl LoadPlayerDataAddress - str r0, [r5, #0xc] - mov r0, #0x7a - lsl r0, r0, #0x2 - add r0, r4, r0 - add r1, r5, #0x0 - str r0, [r5, #0x18] - mov r0, #0x0 - add r1, #0x21 - strb r0, [r1, #0x0] - ldr r1, [sp, #0x0] - str r6, [r5, #0x1c] - ldrh r1, [r1, #0x0] - cmp r1, #0x0 - beq _020368E2 - add r1, r5, #0x0 - mov r2, #0x7 - add r1, #0x20 - strb r2, [r1, #0x0] - b _020368EE -_020368E2: - add r0, r5, #0x0 - mov r1, #0x8 - add r0, #0x20 - strb r1, [r0, #0x0] - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x2] -_020368EE: - str r0, [r5, #0x34] - ldr r0, [sp, #0x0] - add r2, r5, #0x0 - ldrh r0, [r0, #0x0] - strh r0, [r5, #0x24] - add r0, r5, #0x0 - ldrb r1, [r7, #0x14] - add r0, #0x22 - strb r1, [r0, #0x0] - ldrh r0, [r7, #0x18] - strh r0, [r5, #0x26] - add r0, r5, #0x0 - ldrb r1, [r7, #0x16] - add r0, #0x28 - strb r1, [r0, #0x0] - ldr r1, _02036954 ; =0x020F96DC - add r0, r6, #0x0 - bl FUN_020373D4 - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r5, [r4, r0] - ldr r1, _02036958 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _0203694A -_0203692E: - mov r1, #0x7a - lsl r1, r1, #0x2 - ldrb r2, [r7, #0x14] - add r0, r6, #0x0 - add r1, r4, r1 - bl FUN_020379C8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036958 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 -_0203694A: - add r0, r7, #0x0 - bl FUN_02016A18 - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_02036954: .word 0x020F96DC -_02036958: .word FUN_02035E50 - - thumb_func_start FUN_0203695C -FUN_0203695C: ; 0x0203695C - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02046528 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_0204652C - add r6, r0, #0x0 - mov r0, #0xb - bl FUN_020851B8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r6, r1] - ldr r0, [sp, #0x4] - ldr r0, [r0, #0xc] - bl FUN_0206F158 - str r0, [sp, #0x0] - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r6, r0] - add r1, r4, #0x0 - mov r2, #0x1 - bl FUN_020851DC - mov r5, #0x0 - add r4, r5, #0x0 -_0203699A: - add r0, r4, #0x0 - bl FUN_0206EB1C - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - add r1, r7, #0x0 - mov r2, #0x1 - mov r3, #0xb - bl FUN_0206EE50 - cmp r0, #0x1 - bne _020369C6 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r6, r0] - add r1, r7, #0x0 - mov r2, #0x0 - bl FUN_020851DC - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 -_020369C6: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x40 - blo _0203699A - ldr r0, [sp, #0x4] - add r3, sp, #0x8 - add r0, #0x94 - ldr r0, [r0, #0x0] - mov r1, #0x4 - add r2, sp, #0x8 - add r3, #0x1 - bl FUN_0206F17C - mov r0, #0x7e - add r2, sp, #0x8 - lsl r0, r0, #0x2 - ldrb r1, [r2, #0x1] - add r3, r5, #0x3 - lsl r3, r3, #0x18 - ldrb r2, [r2, #0x0] - ldr r0, [r6, r0] - lsr r3, r3, #0x18 - bl FUN_020851F8 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r0, [sp, #0x4] - ldr r1, [r6, r1] - bl FUN_0203791C - ldr r1, _02036A10 ; =FUN_02036A14 - add r0, r6, #0x0 - bl FUN_02035D04 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02036A10: .word FUN_02036A14 - - thumb_func_start FUN_02036A14 -FUN_02036A14: ; 0x02036A14 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - add r1, sp, #0x0 - ldr r0, [r4, r0] - add r1, #0x1 - add r2, sp, #0x0 - bl FUN_0208524C - add r0, r5, #0x0 - add r3, sp, #0x0 - add r0, #0x94 - ldrb r2, [r3, #0x0] - ldrb r3, [r3, #0x1] - ldr r0, [r0, #0x0] - mov r1, #0x4 - bl FUN_0206F190 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r0, #0xb - bl FUN_02016A8C - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036A74 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02036A74: .word FUN_020362E4 - - thumb_func_start FUN_02036A78 -FUN_02036A78: ; 0x02036A78 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x7e - add r4, r0, #0x0 - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r0, #0xb - bl FUN_02016A8C - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036AB4 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02036AB4: .word FUN_020362E4 - - thumb_func_start FUN_02036AB8 -FUN_02036AB8: ; 0x02036AB8 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r1, [r4, r0] - mov r0, #0xb - ldr r7, [r1, #0x0] - bl FUN_02016A8C - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r5, [r4, r0] - ldr r0, [r5, #0x10] - cmp r0, #0x0 - bne _02036B0E - mov r0, #0xb - add r1, r5, #0x0 - bl FUN_02016A8C - mov r1, #0x7a - lsl r1, r1, #0x2 - lsl r2, r7, #0x18 - add r0, r6, #0x0 - add r1, r4, r1 - lsr r2, r2, #0x18 - bl FUN_020379C8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036B88 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _02036B82 -_02036B0E: - ldr r0, [r6, #0xc] - bl FUN_0206BB1C - add r1, r7, #0x0 - bl FUN_0206B9B0 - add r2, r0, #0x0 - ldr r0, [r5, #0x14] - add r1, r6, #0x0 - lsl r0, r0, #0x5 - add r0, #0x10 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x0] - ldr r0, [r5, #0x18] - lsl r0, r0, #0x5 - add r0, #0x10 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x4] - ldr r3, [r5, #0x1c] - mov r0, #0xb - lsl r3, r3, #0x10 - lsr r3, r3, #0x10 - bl FUN_02063888 - ldr r1, [r5, #0x1c] - add r7, r0, #0x0 - lsl r1, r1, #0x10 - mov r0, #0x1 - lsr r1, r1, #0x10 - mov r2, #0xb - bl FUN_0202914C - add r1, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - mov r2, #0x1 - bl FUN_02028AD4 - mov r1, #0x7e - lsl r1, r1, #0x2 - ldr r1, [r4, r1] - mov r0, #0xb - bl FUN_02016A8C - add r0, r6, #0x0 - bl FUN_0204649C - mov r0, #0x72 - ldr r1, _02036B8C ; =FUN_020638BC - lsl r0, r0, #0x2 - str r1, [r4, r0] - add r0, #0x30 - str r7, [r4, r0] - mov r0, #0xa - strh r0, [r4, #0x2a] -_02036B82: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02036B88: .word FUN_02035E50 -_02036B8C: .word FUN_020638BC - - thumb_func_start FUN_02036B90 -FUN_02036B90: ; 0x02036B90 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x73 - add r4, r0, #0x0 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036BC0 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02036BC0: .word FUN_020362E4 - - thumb_func_start FUN_02036BC4 -FUN_02036BC4: ; 0x02036BC4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0xb - mov r1, #0x4 - add r6, r2, #0x0 - bl FUN_02016998 - strh r5, [r0, #0x0] - strb r6, [r0, #0x2] - strb r4, [r0, #0x3] - pop {r4-r6, pc} - - thumb_func_start FUN_02036BDC -FUN_02036BDC: ; 0x02036BDC - push {r4-r6, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r6, [r4, r0] - ldrb r1, [r6, #0x3] - cmp r1, #0x3 - bhi _02036CD4 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02036C06: ; jump table (using 16-bit offset) - .short _02036C58 - _02036C06 - 2; case 0 - .short _02036C98 - _02036C06 - 2; case 1 - .short _02036C32 - _02036C06 - 2; case 2 - .short _02036C0E - _02036C06 - 2; case 3 -_02036C0E: - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_0208562C - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036CE4 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - b _02036CD4 -_02036C32: - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_0208562C - mov r1, #0x7a - lsl r1, r1, #0x2 - ldrb r2, [r6, #0x2] - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_020379C8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036CE8 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _02036CD4 -_02036C58: - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_020855E4 - cmp r0, #0x1 - bne _02036C70 - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0xc - bl FUN_02036CEC - b _02036CD4 -_02036C70: - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_0208562C - mov r1, #0x7a - lsl r1, r1, #0x2 - ldrb r2, [r6, #0x2] - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_020379C8 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036CE8 ; =FUN_02035E50 - add r0, r4, #0x0 - bl FUN_02035D04 - b _02036CD4 -_02036C98: - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_020855E4 - cmp r0, #0x1 - bne _02036CB0 - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0xb - bl FUN_02036CEC - b _02036CD4 -_02036CB0: - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_0208562C - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036CE4 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 -_02036CD4: - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - mov r0, #0x0 - pop {r4-r6, pc} - nop -_02036CE4: .word FUN_020362E4 -_02036CE8: .word FUN_02035E50 - - thumb_func_start FUN_02036CEC -FUN_02036CEC: ; 0x02036CEC - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x7f - add r6, r1, #0x0 - str r2, [sp, #0x0] - lsl r0, r0, #0x2 - ldr r7, [r6, r0] - mov r0, #0xb - mov r1, #0x40 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x40 - add r4, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_0206F158 - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - bl FUN_02025838 - str r0, [r4, #0x8] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0xc] - mov r0, #0x7a - lsl r0, r0, #0x2 - add r0, r6, r0 - str r0, [r4, #0x18] - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x21 - strb r1, [r0, #0x0] - ldrh r0, [r7, #0x0] - strh r0, [r4, #0x24] - add r0, r4, #0x0 - ldrb r1, [r7, #0x2] - add r0, #0x22 - strb r1, [r0, #0x0] - add r1, r4, #0x0 - ldr r0, [sp, #0x0] - add r1, #0x20 - strb r0, [r1, #0x0] - str r5, [r4, #0x1c] - ldrb r1, [r7, #0x2] - ldr r0, [r4, #0x0] - bl FUN_0206B9B0 - add r1, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r6, r0] - bl FUN_0208560C - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r6, r0] - bl FUN_0208562C - ldr r1, _02036D8C ; =0x020F96DC - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r4, [r6, r0] - ldr r1, _02036D90 ; =FUN_02035E50 - add r0, r6, #0x0 - bl FUN_02035D04 - pop {r3-r7, pc} - nop -_02036D8C: .word 0x020F96DC -_02036D90: .word FUN_02035E50 - - thumb_func_start FUN_02036D94 -FUN_02036D94: ; 0x02036D94 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02087E14 - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036DD0 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02036DD0: .word FUN_020362E4 - - thumb_func_start FUN_02036DD4 -FUN_02036DD4: ; 0x02036DD4 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - mov r1, #0x73 - add r4, r0, #0x0 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r1, _02036E04 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02036E04: .word FUN_020362E4 - - thumb_func_start FUN_02036E08 -FUN_02036E08: ; 0x02036E08 - push {r3-r7, lr} - sub sp, #0x48 - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r6, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r5, [r6, r0] - bl FUN_0200541C - mov r0, #0x3 - mov r1, #0x49 - lsl r2, r0, #0x10 - bl FUN_0201681C - ldr r0, [r4, #0xc] - bl FUN_0206BB1C - ldrb r1, [r5, #0x0] - str r0, [sp, #0x20] - bl FUN_0206B9B0 - str r0, [sp, #0x24] - ldrb r0, [r5, #0x1] - cmp r0, #0x0 - ldr r0, [r4, #0xc] - bne _02036E9E - bl LoadPlayerDataAddress - str r0, [sp, #0x28] - ldr r0, [r4, #0xc] - bl FUN_02079C70 - add r7, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02024DA0 - str r0, [sp, #0x2c] - ldr r0, [r4, #0xc] - bl FUN_0206F158 - str r0, [sp, #0x30] - ldr r0, [r4, #0xc] - bl FUN_02029FC8 - str r0, [sp, #0x34] - ldr r0, [r4, #0xc] - bl FUN_0204C1A8 - ldr r1, [sp, #0x2c] - str r7, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x30] - ldr r3, [sp, #0x28] - str r1, [sp, #0x8] - ldr r1, [sp, #0x34] - str r1, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [r5, #0x8] - ldr r1, [sp, #0x24] - str r0, [sp, #0x14] - mov r0, #0x1 - str r0, [sp, #0x18] - mov r0, #0x49 - str r0, [sp, #0x1c] - ldrh r2, [r5, #0x4] - ldr r0, [sp, #0x20] - bl FUN_0206C700 - b _02036EF2 -_02036E9E: - bl LoadPlayerDataAddress - str r0, [sp, #0x38] - ldr r0, [r4, #0xc] - bl FUN_02079C70 - add r7, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02024DA0 - str r0, [sp, #0x3c] - ldr r0, [r4, #0xc] - bl FUN_0206F158 - str r0, [sp, #0x40] - ldr r0, [r4, #0xc] - bl FUN_02029FC8 - str r0, [sp, #0x44] - ldr r0, [r4, #0xc] - bl FUN_0204C1A8 - ldr r1, [sp, #0x3c] - str r7, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x40] - ldr r3, [sp, #0x38] - str r1, [sp, #0x8] - ldr r1, [sp, #0x44] - str r1, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [r5, #0x8] - ldr r1, [sp, #0x24] - str r0, [sp, #0x14] - mov r0, #0x0 - str r0, [sp, #0x18] - mov r0, #0x49 - str r0, [sp, #0x1c] - ldrh r2, [r5, #0x4] - ldr r0, [sp, #0x20] - bl FUN_0206C700 -_02036EF2: - add r4, r0, #0x0 - mov r0, #0xb - mov r1, #0x4 - bl FUN_02016998 - ldrb r1, [r5, #0x0] - str r1, [r0, #0x0] - mov r1, #0x7f - lsl r1, r1, #0x2 - str r0, [r6, r1] - sub r0, r1, #0x4 - ldr r0, [r6, r0] - bl FUN_02016A18 - mov r0, #0x7e - lsl r0, r0, #0x2 - str r4, [r6, r0] - mov r0, #0x7 - strh r0, [r6, #0x2a] - add sp, #0x48 - pop {r3-r7, pc} - - thumb_func_start FUN_02036F1C -FUN_02036F1C: ; 0x02036F1C - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_0206C91C - cmp r0, #0x1 - bne _02036F98 - mov r0, #0x7e - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_0206C92C - mov r0, #0x49 - bl FUN_020168D0 - ldr r0, _02036F9C ; =0x00000475 - mov r1, #0x0 - bl FUN_02005350 - mov r0, #0x0 - bl FUN_0200415C - ldr r1, [r5, #0x1c] - add r0, r5, #0x0 - ldr r1, [r1, #0x0] - bl FUN_0204ADBC - mov r1, #0x73 - lsl r1, r1, #0x2 - add r0, r5, #0x0 - add r1, r4, r1 - bl FUN_02037844 - mov r1, #0x7e - lsl r1, r1, #0x2 - str r0, [r4, r1] - ldr r0, [r4, r1] - add r1, r1, #0x4 - ldr r1, [r4, r1] - ldr r1, [r1, #0x0] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_0206E358 - mov r0, #0x7f - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - bl FUN_02016A18 - ldr r1, _02036FA0 ; =FUN_020362E4 - add r0, r4, #0x0 - bl FUN_02035D04 -_02036F98: - pop {r3-r5, pc} - nop -_02036F9C: .word 0x00000475 -_02036FA0: .word FUN_020362E4 - - thumb_func_start FUN_02036FA4 -FUN_02036FA4: ; 0x02036FA4 - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, [r6, #0x38] - add r4, r1, #0x0 - add r5, r2, #0x0 - bl FUN_020552F8 - add r7, r0, #0x0 - ldr r0, [r6, #0x38] - bl FUN_02055320 - str r0, [r4, #0x0] - ldr r0, [r6, #0x38] - bl FUN_0205532C - str r0, [r5, #0x0] - cmp r7, #0x3 - bhi _02036FFA - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02036FD4: ; jump table (using 16-bit offset) - .short _02036FDC - _02036FD4 - 2; case 0 - .short _02036FE4 - _02036FD4 - 2; case 1 - .short _02036FEC - _02036FD4 - 2; case 2 - .short _02036FF4 - _02036FD4 - 2; case 3 -_02036FDC: - ldr r0, [r5, #0x0] - sub r0, r0, #0x1 - str r0, [r5, #0x0] - b _02036FFA -_02036FE4: - ldr r0, [r5, #0x0] - add r0, r0, #0x1 - str r0, [r5, #0x0] - b _02036FFA -_02036FEC: - ldr r0, [r4, #0x0] - sub r0, r0, #0x1 - str r0, [r4, #0x0] - b _02036FFA -_02036FF4: - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] -_02036FFA: - add r0, r7, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02037000 -FUN_02037000: ; 0x02037000 - push {r3-r5, lr} - add r5, r1, #0x0 - bl FUN_020553A0 - bl FUN_02058BE4 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02058BE4 - cmp r4, r0 - bne _0203701C - mov r0, #0x1 - b _0203701E -_0203701C: - mov r0, #0x0 -_0203701E: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3-r5, pc} - - thumb_func_start FUN_02037024 -FUN_02037024: ; 0x02037024 - push {r4-r6, lr} - sub sp, #0x8 - add r6, r1, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - add r5, r0, #0x0 - bl FUN_02036FA4 - add r4, r0, #0x0 - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_0204A6E0 - bl FUN_020547A4 - cmp r0, #0x1 - bne _0203707E - cmp r4, #0x3 - bhi _0203707E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02037058: ; jump table (using 16-bit offset) - .short _02037060 - _02037058 - 2; case 0 - .short _02037068 - _02037058 - 2; case 1 - .short _02037070 - _02037058 - 2; case 2 - .short _02037078 - _02037058 - 2; case 3 -_02037060: - ldr r0, [sp, #0x0] - sub r0, r0, #0x1 - str r0, [sp, #0x0] - b _0203707E -_02037068: - ldr r0, [sp, #0x0] - add r0, r0, #0x1 - str r0, [sp, #0x0] - b _0203707E -_02037070: - ldr r0, [sp, #0x4] - sub r0, r0, #0x1 - str r0, [sp, #0x4] - b _0203707E -_02037078: - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - str r0, [sp, #0x4] -_0203707E: - ldr r0, [r5, #0x34] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - bl FUN_02058D74 - str r0, [r6, #0x0] - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02037090 -FUN_02037090: ; 0x02037090 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - bl FUN_02037024 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _020370B8 - bl FUN_020588D4 - cmp r0, #0x1 - bne _020370B8 - ldr r0, [r5, #0x38] - ldr r1, [r4, #0x0] - bl FUN_02037000 - cmp r0, #0x1 - bne _020370B8 - mov r0, #0x1 - pop {r3-r5, pc} -_020370B8: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020370BC -FUN_020370BC: ; 0x020370BC - push {r3-r7, lr} - sub sp, #0x10 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r1, sp, #0xc - add r2, sp, #0x8 - add r6, r0, #0x0 - bl FUN_02036FA4 - ldr r0, [sp, #0x4] - mov r7, #0x0 - cmp r0, #0x0 - ble _02037130 - ldr r4, [sp, #0x0] - add r5, r4, #0x0 -_020370DA: - ldr r1, [sp, #0xc] - ldr r0, [r4, #0x4] - cmp r1, r0 - bne _02037124 - ldr r1, [sp, #0x8] - ldr r0, [r4, #0x8] - cmp r1, r0 - bne _02037124 - ldrh r0, [r4, #0x2] - cmp r0, #0x2 - bne _0203710A - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_0203713C - cmp r0, #0x1 - bne _02037124 - mov r0, #0x14 - add r1, r7, #0x0 - mul r1, r0 - ldr r0, [sp, #0x0] - add sp, #0x10 - ldrh r0, [r0, r1] - pop {r3-r7, pc} -_0203710A: - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02037168 - cmp r0, #0x1 - bne _02037124 - mov r0, #0x14 - add r1, r7, #0x0 - mul r1, r0 - ldr r0, [sp, #0x0] - add sp, #0x10 - ldrh r0, [r0, r1] - pop {r3-r7, pc} -_02037124: - ldr r0, [sp, #0x4] - add r7, r7, #0x1 - add r4, #0x14 - add r5, #0x14 - cmp r7, r0 - blt _020370DA -_02037130: - ldr r0, _02037138 ; =0x0000FFFF - add sp, #0x10 - pop {r3-r7, pc} - nop -_02037138: .word 0x0000FFFF - - thumb_func_start FUN_0203713C -FUN_0203713C: ; 0x0203713C - push {r4, lr} - add r4, r0, #0x0 - ldrh r0, [r1, #0x2] - cmp r0, #0x2 - beq _0203714A - mov r0, #0x0 - pop {r4, pc} -_0203714A: - ldrh r0, [r1, #0x0] - bl FUN_02039694 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02039528 - cmp r0, #0x1 - beq _02037160 - mov r0, #0x1 - b _02037162 -_02037160: - mov r0, #0x0 -_02037162: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r4, pc} - - thumb_func_start FUN_02037168 -FUN_02037168: ; 0x02037168 - push {r4, lr} - add r4, r1, #0x0 - ldrh r1, [r4, #0x10] - cmp r1, #0x4 - bne _02037176 - mov r0, #0x1 - pop {r4, pc} -_02037176: - ldr r0, [r0, #0x38] - bl FUN_020552F8 - cmp r0, #0x3 - bhi _020371CC - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0203718C: ; jump table (using 16-bit offset) - .short _02037194 - _0203718C - 2; case 0 - .short _020371A2 - _0203718C - 2; case 1 - .short _020371B0 - _0203718C - 2; case 2 - .short _020371BE - _0203718C - 2; case 3 -_02037194: - ldrh r0, [r4, #0x10] - cmp r0, #0x0 - beq _0203719E - cmp r0, #0x6 - bne _020371CC -_0203719E: - mov r0, #0x1 - pop {r4, pc} -_020371A2: - ldrh r0, [r4, #0x10] - cmp r0, #0x3 - beq _020371AC - cmp r0, #0x6 - bne _020371CC -_020371AC: - mov r0, #0x1 - pop {r4, pc} -_020371B0: - ldrh r0, [r4, #0x10] - cmp r0, #0x2 - beq _020371BA - cmp r0, #0x5 - bne _020371CC -_020371BA: - mov r0, #0x1 - pop {r4, pc} -_020371BE: - ldrh r0, [r4, #0x10] - cmp r0, #0x1 - beq _020371C8 - cmp r0, #0x5 - bne _020371CC -_020371C8: - mov r0, #0x1 - pop {r4, pc} -_020371CC: - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_020371D0 -FUN_020371D0: ; 0x020371D0 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, [r5, #0x38] - add r6, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020552F8 - cmp r0, #0x0 - beq _020371EA - add sp, #0x8 - ldr r0, _0203722C ; =0x0000FFFF - pop {r4-r6, pc} -_020371EA: - add r0, r5, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x0 - bl FUN_02036FA4 - mov r0, #0x0 - cmp r4, #0x0 - ble _02037224 - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x0] - add r1, r6, #0x0 -_02037200: - ldr r5, [r1, #0x4] - cmp r2, r5 - bne _0203721C - ldr r5, [r1, #0x8] - cmp r3, r5 - bne _0203721C - ldrh r5, [r1, #0x2] - cmp r5, #0x1 - bne _0203721C - mov r1, #0x14 - mul r1, r0 - add sp, #0x8 - ldrh r0, [r6, r1] - pop {r4-r6, pc} -_0203721C: - add r0, r0, #0x1 - add r1, #0x14 - cmp r0, r4 - blt _02037200 -_02037224: - ldr r0, _0203722C ; =0x0000FFFF - add sp, #0x8 - pop {r4-r6, pc} - nop -_0203722C: .word 0x0000FFFF - - thumb_func_start FUN_02037230 -FUN_02037230: ; 0x02037230 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x38] - add r4, r1, #0x0 - bl FUN_020552F8 - cmp r0, #0x0 - beq _02037244 - mov r0, #0x0 - pop {r3-r5, pc} -_02037244: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02037090 - cmp r0, #0x1 - bne _02037260 - ldr r0, [r4, #0x0] - bl FUN_02058458 - sub r0, #0x5b - cmp r0, #0x5 - bhi _02037260 - mov r0, #0x1 - pop {r3-r5, pc} -_02037260: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02037264 -FUN_02037264: ; 0x02037264 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - ldr r0, [r0, #0x38] - str r1, [sp, #0x4] - str r2, [sp, #0x8] - bl FUN_02055320 - add r6, r0, #0x0 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0205532C - add r4, r0, #0x0 - ldr r0, [sp, #0x8] - mov r7, #0x0 - cmp r0, #0x0 - ble _020372C8 - ldr r5, [sp, #0x4] -_0203728A: - ldrh r1, [r5, #0x2] - cmp r6, r1 - blt _020372BE - ldrh r0, [r5, #0x6] - add r0, r1, r0 - cmp r6, r0 - bge _020372BE - ldrh r1, [r5, #0x4] - cmp r4, r1 - blt _020372BE - ldrh r0, [r5, #0x8] - add r0, r1, r0 - cmp r4, r0 - bge _020372BE - ldrh r1, [r5, #0xe] - ldr r0, [sp, #0x0] - bl FUN_020394F0 - ldrh r1, [r5, #0xc] - cmp r1, r0 - bne _020372BE - ldr r0, [sp, #0x4] - lsl r1, r7, #0x4 - add sp, #0xc - ldrh r0, [r0, r1] - pop {r4-r7, pc} -_020372BE: - ldr r0, [sp, #0x8] - add r7, r7, #0x1 - add r5, #0x10 - cmp r7, r0 - blt _0203728A -_020372C8: - ldr r0, _020372D0 ; =0x0000FFFF - add sp, #0xc - pop {r4-r7, pc} - nop -_020372D0: .word 0x0000FFFF - - thumb_func_start FUN_020372D4 -FUN_020372D4: ; 0x020372D4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0200628C - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02037400 - ldr r1, _02037300 ; =0x021C5A08 - str r0, [r1, #0x0] - ldr r1, [r4, #0x4] - cmp r1, #0x0 - beq _020372F4 - bl FUN_02048FC8 - b _020372F8 -_020372F4: - bl FUN_02048EC8 -_020372F8: - mov r0, #0x0 - str r0, [r4, #0x4] - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 -_02037300: .word 0x021C5A08 - - thumb_func_start FUN_02037304 -FUN_02037304: ; 0x02037304 - push {r3, lr} - bl FUN_02037400 - ldr r1, _02037318 ; =0x021C5A08 - str r0, [r1, #0x0] - bl FUN_02048D90 - mov r0, #0x1 - pop {r3, pc} - nop -_02037318: .word 0x021C5A08 - - thumb_func_start FUN_0203731C -FUN_0203731C: ; 0x0203731C - push {r3, lr} - bl FUN_02006278 - bl FUN_02037524 - cmp r0, #0x0 - beq _0203732E - mov r0, #0x1 - pop {r3, pc} -_0203732E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02037334 -FUN_02037334: ; 0x02037334 - push {r3, lr} - bl FUN_020374B0 - ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID - ldr r1, _0203734C ; =0x021DBAB8 - bl FUN_02000E7C - mov r0, #0x1 - pop {r3, pc} - nop -_02037348: .word SDK_OVERLAY_MODULE_63_ID -_0203734C: .word 0x021DBAB8 - - thumb_func_start LoadOverlay_MODULE_05 -LoadOverlay_MODULE_05: ; 0x02037350 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _02037360 - bl ErrorHandling -_02037360: - ldr r0, [r4, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203736C - bl ErrorHandling -_0203736C: - ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID - mov r1, #0x2 - bl HandleLoadOverlay - mov r1, #0x0 - str r1, [r4, #0x64] - ldr r0, [r4, #0x0] - mov r2, #0xb - str r1, [r0, #0x8] - ldr r0, _02037390 ; =0x021F64C8 - add r1, r4, #0x0 - bl FUN_02006234 - ldr r1, [r4, #0x0] - str r0, [r1, #0x0] - pop {r4, pc} - .balign 4 -_0203738C: .word SDK_OVERLAY_MODULE_05_ID -_02037390: .word 0x021F64C8 - - thumb_func_start FUN_02037394 -FUN_02037394: ; 0x02037394 - mov r1, #0x0 - str r1, [r0, #0x64] - bx lr - .balign 4 - - thumb_func_start FUN_0203739C -FUN_0203739C: ; 0x0203739C - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020373A8 - mov r0, #0x1 - bx lr -_020373A8: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_020373AC -FUN_020373AC: ; 0x020373AC - ldr r1, [r0, #0x0] - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020373BE - ldr r0, [r0, #0x64] - cmp r0, #0x0 - beq _020373BE - mov r0, #0x1 - bx lr -_020373BE: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start FUN_020373C4 -FUN_020373C4: ; 0x020373C4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _020373D0 - mov r0, #0x1 - bx lr -_020373D0: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_020373D4 -FUN_020373D4: ; 0x020373D4 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - add r4, r1, #0x0 - ldr r0, [r0, #0x4] - add r6, r2, #0x0 - cmp r0, #0x0 - beq _020373E8 - bl ErrorHandling -_020373E8: - add r0, r5, #0x0 - bl FUN_02037394 - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r2, #0xb - bl FUN_02006234 - ldr r1, [r5, #0x0] - str r0, [r1, #0x4] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02037400 -FUN_02037400: ; 0x02037400 - push {r3-r5, lr} - mov r2, #0x7 - add r5, r0, #0x0 - mov r0, #0x3 - mov r1, #0xb - lsl r2, r2, #0xe - bl FUN_0201681C - mov r1, #0x20 - mov r0, #0x3 - lsl r2, r1, #0x9 - bl FUN_0201681C - mov r2, #0x3 - mov r0, #0x0 - mov r1, #0x5b - lsl r2, r2, #0x8 - bl FUN_0201681C - add r0, r5, #0x0 - mov r1, #0xb8 - mov r2, #0xb - bl FUN_02006268 - mov r1, #0x0 - mov r2, #0xb8 - add r4, r0, #0x0 - bl MI_CpuFill8 - mov r0, #0xb - mov r1, #0x10 - bl FUN_02016998 - str r0, [r4, #0x0] - mov r1, #0x0 - str r1, [r0, #0x0] - ldr r0, [r4, #0x0] - str r1, [r0, #0x4] - ldr r0, [r4, #0x0] - str r1, [r0, #0x8] - ldr r0, [r4, #0x0] - str r1, [r0, #0xc] - add r0, r5, #0x0 - bl FUN_0200628C - ldr r0, [r0, #0x8] - str r0, [r4, #0xc] - mov r0, #0x0 - str r0, [r4, #0x10] - ldr r0, [r4, #0xc] - bl FUN_02034E30 - bl FUN_02034DC0 - str r0, [r4, #0x1c] - bl FUN_02034494 - str r0, [r4, #0x28] - add r0, r4, #0x0 - mov r1, #0xb - bl FUN_02034A28 - mov r0, #0xb - bl FUN_0206F164 - add r1, r4, #0x0 - add r1, #0x94 - str r0, [r1, #0x0] - mov r0, #0xb - bl FUN_0205DD18 - add r1, r4, #0x0 - add r1, #0x90 - str r0, [r1, #0x0] - add r0, r4, #0x0 - add r0, #0x90 - ldr r0, [r0, #0x0] - bl FUN_0205DD40 - mov r0, #0xb - bl FUN_0208A300 - add r1, r4, #0x0 - add r1, #0xb0 - str r0, [r1, #0x0] - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020374B0 -FUN_020374B0: ; 0x020374B0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02006278 - add r4, r0, #0x0 - ldr r0, [r4, #0x28] - bl FUN_020344D0 - add r0, r4, #0x0 - bl FUN_02034A48 - add r0, r4, #0x0 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - add r0, r4, #0x0 - add r0, #0x90 - ldr r0, [r0, #0x0] - bl FUN_0205DD38 - add r0, r4, #0x0 - add r0, #0xb0 - ldr r0, [r0, #0x0] - bl FUN_0208A320 - ldr r0, [r4, #0x0] - bl FUN_02016A18 - add r0, r5, #0x0 - bl FUN_0200627C - mov r0, #0x5b - bl FUN_020168D0 - mov r0, #0xb - bl FUN_020168D0 - mov r0, #0x20 - bl FUN_020168D0 - pop {r3-r5, pc} - - thumb_func_start FUN_02037504 -FUN_02037504: ; 0x02037504 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02037520 - bl FUN_02006290 - cmp r0, #0x0 - beq _02037520 - ldr r0, [r4, #0x0] - bl FUN_02006260 - mov r0, #0x0 - str r0, [r4, #0x0] -_02037520: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02037524 -FUN_02037524: ; 0x02037524 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02037594 - add r0, r4, #0x0 - bl FUN_02046420 - cmp r0, #0x1 - bne _02037546 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _02037546 - mov r1, #0x0 - add r0, r4, #0x0 - add r2, r1, #0x0 - bl MOD05_021EFA9C -_02037546: - ldr r0, [r4, #0x0] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02037562 - bl FUN_02037504 - ldr r0, [r4, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203756E - ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID - bl UnloadOverlayByID - b _0203756E -_02037562: - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0203756E - add r0, r0, #0x4 - bl FUN_02037504 -_0203756E: - ldr r1, [r4, #0x0] - ldr r0, [r1, #0xc] - cmp r0, #0x0 - beq _0203758C - ldr r0, [r4, #0x10] - cmp r0, #0x0 - bne _0203758C - ldr r0, [r1, #0x0] - cmp r0, #0x0 - bne _0203758C - ldr r0, [r1, #0x4] - cmp r0, #0x0 - bne _0203758C - mov r0, #0x1 - pop {r4, pc} -_0203758C: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_02037590: .word SDK_OVERLAY_MODULE_05_ID - - thumb_func_start FUN_02037594 -FUN_02037594: ; 0x02037594 - push {r3-r5, lr} - sub sp, #0x10 - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - mov r5, #0x0 - ldr r1, [r1, #0x8] - cmp r1, #0x0 - bne _020375B4 - ldr r1, [r4, #0x64] - cmp r1, #0x0 - beq _020375B4 - bl FUN_0204646C - cmp r0, #0x0 - bne _020375B4 - mov r5, #0x1 -_020375B4: - cmp r5, #0x0 - beq _020375D4 - ldr r0, [r4, #0x38] - bl FUN_02055A38 - ldr r3, _02037758 ; =0x021C48B8 - add r0, sp, #0x8 - ldr r2, [r3, #0x48] - ldr r3, [r3, #0x44] - lsl r2, r2, #0x10 - lsl r3, r3, #0x10 - add r1, r4, #0x0 - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl MOD05_021D8164 -_020375D4: - ldr r0, [r4, #0x1c] - ldr r2, [r4, #0x6c] - ldr r1, [r0, #0x0] - ldr r0, _0203775C ; =0x00000146 - cmp r1, r0 - bne _020375E2 - mov r2, #0x0 -_020375E2: - cmp r2, #0x4 - bhi _020376E2 - add r0, r2, r2 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020375F2: ; jump table (using 16-bit offset) - .short _020376E2 - _020375F2 - 2; case 0 - .short _020375FC - _020375F2 - 2; case 1 - .short _02037646 - _020375F2 - 2; case 2 - .short _0203761C - _020375F2 - 2; case 3 - .short _02037672 - _020375F2 - 2; case 4 -_020375FC: - cmp r5, #0x0 - beq _02037610 - bl FUN_0204E2FC - cmp r0, #0x0 - beq _02037610 - add r0, sp, #0x8 - add r1, r4, #0x0 - bl MOD05_021D85FC -_02037610: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0204D6C0 - add sp, #0x10 - pop {r3-r5, pc} -_0203761C: - cmp r5, #0x0 - beq _0203763A - bl FUN_0204E2FC - cmp r0, #0x0 - beq _02037638 - add r0, sp, #0x8 - add r1, r4, #0x0 - bl MOD04_021D865C - cmp r0, #0x1 - bne _0203763A - mov r5, #0x0 - b _0203763A -_02037638: - mov r5, #0x0 -_0203763A: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_0204D6C0 - add sp, #0x10 - pop {r3-r5, pc} -_02037646: - cmp r5, #0x0 - bne _0203764C - b _02037754 -_0203764C: - add r0, sp, #0x8 - add r1, r4, #0x0 - bl MOD05_021D8758 - cmp r0, #0x1 - beq _02037754 - add r3, sp, #0x8 - ldrh r0, [r3, #0x6] - mov r2, #0x0 - str r0, [sp, #0x0] - str r2, [sp, #0x4] - ldrh r3, [r3, #0x4] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x24] - sub r2, r2, #0x1 - bl FUN_020557F4 - add sp, #0x10 - pop {r3-r5, pc} -_02037672: - cmp r5, #0x0 - beq _02037754 - add r0, sp, #0x8 - add r1, r4, #0x0 - bl MOD05_021D8820 - cmp r0, #0x1 - bne _020376A6 - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x8] - bl MOD05_021E32F0 - add r0, r4, #0x0 - mov r1, #0x4 - bl MOD05_021E81BC - ldr r0, [r4, #0x38] - bl MOD05_021E7138 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x1 - bl MOD05_021EFA9C - add sp, #0x10 - pop {r3-r5, pc} -_020376A6: - ldr r0, _02037758 ; =0x021C48B8 - ldr r1, [r0, #0x48] - mov r0, #0x1 - tst r0, r1 - beq _020376B8 - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x8] - bl MOD05_021E32F0 -_020376B8: - mov r5, #0x0 - bl FUN_02037790 - cmp r0, #0x0 - beq _020376C8 - bl MOD20_02252534 - add r5, r0, #0x0 -_020376C8: - add r3, sp, #0x8 - ldrh r0, [r3, #0x6] - mov r2, #0x0 - mvn r2, r2 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x4] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x24] - bl FUN_020557F4 - add sp, #0x10 - pop {r3-r5, pc} -_020376E2: - cmp r5, #0x0 - beq _02037754 - add r0, sp, #0x8 - add r1, r4, #0x0 - bl MOD05_021D8320 - cmp r0, #0x1 - bne _0203771C - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x8] - bl MOD05_021E32F0 - add r0, r4, #0x0 - mov r1, #0x4 - bl MOD05_021E81BC - ldr r0, [r4, #0x38] - bl FUN_02055B14 - ldr r0, [r4, #0x38] - bl MOD05_021E7138 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x1 - bl MOD05_021EFA9C - add sp, #0x10 - pop {r3-r5, pc} -_0203771C: - ldr r0, _02037758 ; =0x021C48B8 - ldr r1, [r0, #0x48] - mov r0, #0x1 - tst r0, r1 - beq _0203772E - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x8] - bl MOD05_021E32F0 -_0203772E: - mov r5, #0x0 - bl FUN_02037790 - cmp r0, #0x0 - beq _0203773E - bl MOD20_02252534 - add r5, r0, #0x0 -_0203773E: - add r3, sp, #0x8 - ldrh r0, [r3, #0x6] - mov r2, #0x0 - mvn r2, r2 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x4] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x24] - bl FUN_020557F4 -_02037754: - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 -_02037758: .word 0x021C48B8 -_0203775C: .word 0x00000146 - - thumb_func_start FUN_02037760 -FUN_02037760: ; 0x02037760 - ldr r0, _02037770 ; =0x021C5A08 - ldr r3, _02037774 ; =FUN_02030FC8 - ldr r0, [r0, #0x0] - mov r1, #0x1 - ldr r0, [r0, #0x0] - str r1, [r0, #0x8] - bx r3 - nop -_02037770: .word 0x021C5A08 -_02037774: .word FUN_02030FC8 - - thumb_func_start FUN_02037778 -FUN_02037778: ; 0x02037778 - ldr r0, _02037788 ; =0x021C5A08 - ldr r3, _0203778C ; =FUN_02030FA8 - ldr r0, [r0, #0x0] - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x8] - bx r3 - nop -_02037788: .word 0x021C5A08 -_0203778C: .word FUN_02030FA8 - - thumb_func_start FUN_02037790 -FUN_02037790: ; 0x02037790 - ldr r0, _020377A4 ; =0x021C5A08 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - bne _0203779E - mov r0, #0x0 - bx lr -_0203779E: - ldr r0, [r0, #0x14] - bx lr - nop -_020377A4: .word 0x021C5A08 - - thumb_func_start FUN_020377A8 -FUN_020377A8: ; 0x020377A8 - ldr r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_020377AC -FUN_020377AC: ; 0x020377AC - ldr r0, [r0, #0xc] - bx lr - - thumb_func_start FUN_020377B0 -FUN_020377B0: ; 0x020377B0 - ldr r2, _020377C4 ; =0x020F2B9C - add r3, r0, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - bx lr - nop -_020377C4: .word 0x020F2B9C - - thumb_func_start FUN_020377C8 -FUN_020377C8: ; 0x020377C8 - ldr r2, _020377DC ; =0x020F2BB0 - add r3, r0, #0x0 - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r3, #0x0] - bx lr - nop -_020377DC: .word 0x020F2BB0 - - thumb_func_start FUN_020377E0 -FUN_020377E0: ; 0x020377E0 - push {r3, lr} - bl FUN_02034E30 - bl FUN_02034DC0 - bl FUN_020377B0 - pop {r3, pc} - - thumb_func_start FUN_020377F0 -FUN_020377F0: ; 0x020377F0 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_020377F4 -FUN_020377F4: ; 0x020377F4 - push {r3, lr} - bl MOD11_0222D5C0 - cmp r0, #0x0 - beq _02037802 - mov r0, #0x1 - pop {r3, pc} -_02037802: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02037808 -FUN_02037808: ; 0x02037808 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0203780C -FUN_0203780C: ; 0x0203780C - ldr r3, _02037814 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037818 ; =0x020F2D94 - bx r3 - .balign 4 -_02037814: .word FUN_020373D4 -_02037818: .word 0x020F2D94 - - thumb_func_start FUN_0203781C -FUN_0203781C: ; 0x0203781C - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _02037840 ; =0x020F2D74 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_02037840: .word 0x020F2D74 - - thumb_func_start FUN_02037844 -FUN_02037844: ; 0x02037844 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - add r6, r1, #0x0 - bl FUN_0206F158 - ldr r1, _02037898 ; =0x020F2BDC - mov r2, #0xb - bl FUN_0206EFEC - add r3, r5, #0x0 - add r3, #0x94 - ldr r1, [r5, #0xc] - ldr r3, [r3, #0x0] - mov r2, #0x0 - add r4, r0, #0x0 - bl FUN_0206E314 - ldr r1, [r5, #0x6c] - add r0, r4, #0x0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0206E360 - ldr r0, [r5, #0x38] - bl FUN_020553C4 - cmp r0, #0x1 - bne _02037884 - add r0, r4, #0x0 - bl FUN_0206E340 -_02037884: - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_0206E354 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0203781C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_02037898: .word 0x020F2BDC - - thumb_func_start FUN_0203789C -FUN_0203789C: ; 0x0203789C - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - add r4, r1, #0x0 - bl FUN_0206F158 - add r6, r0, #0x0 - cmp r4, #0x0 - beq _020378B4 - cmp r4, #0x1 - beq _020378BC - b _020378C4 -_020378B4: - ldr r1, _020378F0 ; =0x020F2BC8 - ldr r0, _020378F4 ; =0x02105DB8 - str r1, [r0, #0x0] - b _020378C8 -_020378BC: - ldr r1, _020378F8 ; =0x020F2BC4 - ldr r0, _020378F4 ; =0x02105DB8 - str r1, [r0, #0x0] - b _020378C8 -_020378C4: - bl ErrorHandling -_020378C8: - ldr r1, _020378F4 ; =0x02105DB8 - add r0, r6, #0x0 - ldr r1, [r1, #0x0] - mov r2, #0x20 - bl FUN_0206EFEC - add r3, r5, #0x0 - add r3, #0x94 - ldr r1, [r5, #0xc] - ldr r3, [r3, #0x0] - add r4, r0, #0x0 - mov r2, #0x3 - bl FUN_0206E314 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0203781C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_020378F0: .word 0x020F2BC8 -_020378F4: .word 0x02105DB8 -_020378F8: .word 0x020F2BC4 - - thumb_func_start FUN_020378FC -FUN_020378FC: ; 0x020378FC - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0206E37C - add r4, r0, #0x0 - beq _02037916 - add r0, r5, #0x0 - bl FUN_0206E384 - cmp r0, #0x5 - bne _02037916 - bl ErrorHandling -_02037916: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203791C -FUN_0203791C: ; 0x0203791C - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _02037940 ; =0x020F2D44 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_02037940: .word 0x020F2D44 - - thumb_func_start FUN_02037944 -FUN_02037944: ; 0x02037944 - push {r3-r5, lr} - sub sp, #0x10 - ldr r4, _02037968 ; =0x020F2D24 - add r3, sp, #0x0 - add r5, r0, #0x0 - add r2, r3, #0x0 - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - add r1, r2, #0x0 - ldr r2, [r5, #0xc] - add r0, r5, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r3-r5, pc} - nop -_02037968: .word 0x020F2D24 - - thumb_func_start FUN_0203796C -FUN_0203796C: ; 0x0203796C - ldr r3, _02037974 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037978 ; =0x020FA6E8 - bx r3 - .balign 4 -_02037974: .word FUN_020373D4 -_02037978: .word 0x020FA6E8 - - thumb_func_start FUN_0203797C -FUN_0203797C: ; 0x0203797C - push {r3-r7, lr} - add r5, r1, #0x0 - mov r1, #0x40 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0x40 - bl MIi_CpuClearFast - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_0206F158 - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - bl FUN_02025838 - str r0, [r4, #0x8] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0xc] - add r0, r4, #0x0 - add r0, #0x21 - strb r6, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x20 - strb r7, [r0, #0x0] - str r5, [r4, #0x1c] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_020379C8 -FUN_020379C8: ; 0x020379C8 - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r2, #0x0 - mov r2, #0x0 - add r6, r1, #0x0 - mov r0, #0xb - add r1, r5, #0x0 - add r3, r2, #0x0 - bl FUN_0203797C - add r4, r0, #0x0 - str r6, [r4, #0x18] - add r0, #0x22 - strb r7, [r0, #0x0] - ldr r1, _020379F4 ; =0x020F96DC - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - nop -_020379F4: .word 0x020F96DC - - thumb_func_start FUN_020379F8 -FUN_020379F8: ; 0x020379F8 - push {r3-r5, lr} - mov r0, #0xb - mov r2, #0x0 - mov r3, #0x3 - add r5, r1, #0x0 - bl FUN_0203797C - add r4, r0, #0x0 - ldr r1, _02037A18 ; =0x020F96DC - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r5, pc} - nop -_02037A18: .word 0x020F96DC - - thumb_func_start FUN_02037A1C -FUN_02037A1C: ; 0x02037A1C - push {r3-r5, lr} - mov r0, #0xb - mov r2, #0x0 - mov r3, #0x13 - add r5, r1, #0x0 - bl FUN_0203797C - add r4, r0, #0x0 - ldr r1, _02037A3C ; =0x020F96DC - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r5, pc} - nop -_02037A3C: .word 0x020F96DC - - thumb_func_start FUN_02037A40 -FUN_02037A40: ; 0x02037A40 - add r0, #0x22 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02037A48 -FUN_02037A48: ; 0x02037A48 - push {r4-r6, lr} - add r4, r2, #0x0 - mov r0, #0xb - mov r2, #0x0 - mov r3, #0x12 - add r5, r1, #0x0 - bl FUN_0203797C - add r6, r0, #0x0 - add r0, #0x22 - strb r4, [r0, #0x0] - ldr r1, _02037A6C ; =0x020F96DC - add r0, r5, #0x0 - add r2, r6, #0x0 - bl FUN_020373D4 - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 -_02037A6C: .word 0x020F96DC - - thumb_func_start FUN_02037A70 -FUN_02037A70: ; 0x02037A70 - add r0, #0x23 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02037A78 -FUN_02037A78: ; 0x02037A78 - ldrb r0, [r0, #0x14] - bx lr - - thumb_func_start FUN_02037A7C -FUN_02037A7C: ; 0x02037A7C - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02046530 - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - cmp r0, #0x4 - bhi _02037B3A - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02037AA8: ; jump table (using 16-bit offset) - .short _02037AB2 - _02037AA8 - 2; case 0 - .short _02037AC2 - _02037AA8 - 2; case 1 - .short _02037AF8 - _02037AA8 - 2; case 2 - .short _02037B1A - _02037AA8 - 2; case 3 - .short _02037B30 - _02037AA8 - 2; case 4 -_02037AB2: - ldr r1, _02037B40 ; =0x020F96DC - ldr r2, [r4, #0x4] - add r0, r6, #0x0 - bl FUN_020373D4 - mov r0, #0x1 - str r0, [r5, #0x0] - b _02037B3A -_02037AC2: - add r0, r6, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - bne _02037B3A - ldr r0, [r4, #0x4] - add r0, #0x22 - ldrb r0, [r0, #0x0] - cmp r0, #0x6 - beq _02037AE6 - cmp r0, #0x7 - bne _02037AF2 - mov r0, #0x2 - bl FUN_020527D8 - mov r0, #0x4 - str r0, [r5, #0x0] - b _02037B3A -_02037AE6: - mov r0, #0x1 - bl FUN_020527D8 - mov r0, #0x4 - str r0, [r5, #0x0] - b _02037B3A -_02037AF2: - mov r0, #0x2 - str r0, [r5, #0x0] - b _02037B3A -_02037AF8: - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - mov r2, #0x0 - bl FUN_02037C7C - str r0, [r4, #0x8] - ldr r1, [r4, #0x4] - add r1, #0x22 - ldrb r1, [r1, #0x0] - strb r1, [r0, #0x14] - ldr r1, [r4, #0x8] - add r0, r6, #0x0 - bl FUN_0203796C - mov r0, #0x3 - str r0, [r5, #0x0] - b _02037B3A -_02037B1A: - add r0, r6, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - bne _02037B3A - ldr r0, [r4, #0x8] - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r5, #0x0] - b _02037B3A -_02037B30: - add r0, r4, #0x0 - bl FUN_02016A18 - mov r0, #0x1 - pop {r4-r6, pc} -_02037B3A: - mov r0, #0x0 - pop {r4-r6, pc} - nop -_02037B40: .word 0x020F96DC - - thumb_func_start FUN_02037B44 -FUN_02037B44: ; 0x02037B44 - push {r3-r7, lr} - add r5, r1, #0x0 - add r7, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xc - bl FUN_02016998 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - mov r2, #0x0 - mov r3, #0x2 - str r5, [r4, #0x0] - bl FUN_0203797C - add r5, r0, #0x0 - add r0, #0x32 - ldrb r1, [r0, #0x0] - mov r0, #0xf - add r2, r4, #0x0 - bic r1, r0 - mov r0, #0x2 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x32 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x32 - ldrb r1, [r0, #0x0] - mov r0, #0xf0 - bic r1, r0 - mov r0, #0x20 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x32 - strb r1, [r0, #0x0] - add r0, r5, #0x0 - mov r1, #0x1e - add r0, #0x33 - strb r1, [r0, #0x0] - mov r0, #0x0 - str r0, [r5, #0x14] - ldr r1, _02037BAC ; =FUN_02037A7C - add r0, r7, #0x0 - str r5, [r4, #0x4] - bl FUN_0204640C - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 -_02037BAC: .word FUN_02037A7C - - thumb_func_start FUN_02037BB0 -FUN_02037BB0: ; 0x02037BB0 - push {r3-r7, lr} - add r5, r2, #0x0 - add r6, r3, #0x0 - mov r0, #0xb - mov r2, #0x0 - mov r3, #0xd - add r7, r1, #0x0 - bl FUN_0203797C - add r4, r0, #0x0 - ldr r1, [sp, #0x1c] - add r0, #0x22 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - mov r1, #0x2 - add r0, #0x29 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x2a - strb r5, [r0, #0x0] - ldr r0, [sp, #0x18] - cmp r0, #0x0 - bne _02037BE6 - add r0, r4, #0x0 - add r0, #0x2b - strb r6, [r0, #0x0] - b _02037BEE -_02037BE6: - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x2b - strb r1, [r0, #0x0] -_02037BEE: - ldr r1, _02037BFC ; =0x020F96DC - add r0, r7, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 -_02037BFC: .word 0x020F96DC - - thumb_func_start FUN_02037C00 -FUN_02037C00: ; 0x02037C00 - push {r4-r6, lr} - add r5, r1, #0x0 - mov r0, #0xb - mov r1, #0x30 - add r6, r2, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x4] - mov r0, #0x1 - strb r0, [r4, #0x11] - strb r6, [r4, #0x14] - ldr r0, [r4, #0x0] - bl FUN_0206B9AC - strb r0, [r4, #0x13] - mov r0, #0x0 - strh r0, [r4, #0x18] - strb r0, [r4, #0x12] - ldr r0, [r5, #0xc] - bl FUN_0202A918 - str r0, [r4, #0x20] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r4, #0x1c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r4, #0x2c] - mov r0, #0x0 - str r0, [r4, #0x28] - ldr r1, _02037C74 ; =0x020F2A9C - add r0, r4, #0x0 - bl FUN_0207B000 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0207C2A4 - ldr r1, _02037C78 ; =0x020FA6E8 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_02037C74: .word 0x020F2A9C -_02037C78: .word 0x020FA6E8 - - thumb_func_start FUN_02037C7C -FUN_02037C7C: ; 0x02037C7C - push {r4-r6, lr} - ldr r5, [r0, #0xc] - add r0, r1, #0x0 - mov r1, #0x30 - add r6, r2, #0x0 - bl FUN_020169D8 - mov r1, #0x0 - mov r2, #0x30 - add r4, r0, #0x0 - bl MI_CpuFill8 - add r0, r5, #0x0 - bl LoadPlayerDataAddress - str r0, [r4, #0x4] - add r0, r5, #0x0 - bl FUN_0206BB1C - str r0, [r4, #0x0] - mov r0, #0x1 - strb r0, [r4, #0x11] - mov r0, #0x0 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x0] - bl FUN_0206B9AC - strb r0, [r4, #0x13] - mov r0, #0x0 - strh r0, [r4, #0x18] - strb r6, [r4, #0x12] - add r0, r5, #0x0 - bl FUN_0206BB28 - str r0, [r4, #0x1c] - add r0, r5, #0x0 - bl FUN_02079C70 - str r0, [r4, #0x2c] - add r0, r5, #0x0 - bl FUN_0202A918 - str r0, [r4, #0x20] - ldr r1, _02037CEC ; =0x020F2BD0 - add r0, r4, #0x0 - bl FUN_0207B000 - add r0, r5, #0x0 - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0207C2A4 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_02037CEC: .word 0x020F2BD0 - - thumb_func_start FUN_02037CF0 -FUN_02037CF0: ; 0x02037CF0 - push {r4-r6, lr} - add r5, r1, #0x0 - mov r1, #0x30 - add r6, r2, #0x0 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x30 - add r4, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x4] - mov r0, #0x1 - strb r0, [r4, #0x11] - strb r6, [r4, #0x14] - strb r0, [r4, #0x13] - mov r0, #0x0 - strh r0, [r4, #0x18] - mov r0, #0x2 - strb r0, [r4, #0x12] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r4, #0x1c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r4, #0x2c] - ldr r1, _02037D58 ; =0x020F2BCC - add r0, r4, #0x0 - bl FUN_0207B000 - ldr r0, [r5, #0xc] - bl FUN_020238F4 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0207C2A4 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0203796C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_02037D58: .word 0x020F2BCC - - thumb_func_start FUN_02037D5C -FUN_02037D5C: ; 0x02037D5C - ldrb r0, [r0, #0x16] - bx lr - - thumb_func_start FUN_02037D60 -FUN_02037D60: ; 0x02037D60 - ldr r3, _02037D68 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037D6C ; =0x020F2CF4 - bx r3 - .balign 4 -_02037D68: .word FUN_020373D4 -_02037D6C: .word 0x020F2CF4 - - thumb_func_start FUN_02037D70 -FUN_02037D70: ; 0x02037D70 - push {r3-r6, lr} - sub sp, #0x4 - add r6, r0, #0x0 - bl FUN_02046530 - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_02046528 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02037D9A - cmp r1, #0x1 - beq _02037DA8 - cmp r1, #0x2 - beq _02037DB8 - b _02037E12 -_02037D9A: - ldr r1, [r5, #0xc] - bl FUN_02037E80 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _02037E12 -_02037DA8: - bl FUN_0204647C - cmp r0, #0x0 - bne _02037E12 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _02037E12 -_02037DB8: - ldr r0, [r5, #0xc] - bl FUN_020853E4 - cmp r0, #0x0 - bne _02037DCC - ldr r0, [r5, #0xc] - bl FUN_020853E8 - cmp r0, #0x0 - bne _02037DD4 -_02037DCC: - ldr r0, [r5, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x0] - b _02037E00 -_02037DD4: - ldr r0, [r5, #0x0] - mov r1, #0x1 - strh r1, [r0, #0x0] - ldr r0, [r5, #0x8] - cmp r0, #0x0 - ldr r0, [r5, #0xc] - bne _02037DEC - bl FUN_020853EC - ldr r1, [r5, #0x4] - strh r0, [r1, #0x0] - b _02037E00 -_02037DEC: - add r1, sp, #0x0 - bl FUN_020853F0 - add r0, sp, #0x0 - ldrh r2, [r0, #0x0] - ldr r1, [r5, #0x4] - strh r2, [r1, #0x0] - ldrh r1, [r0, #0x2] - ldr r0, [r5, #0x8] - strh r1, [r0, #0x0] -_02037E00: - ldr r0, [r5, #0xc] - bl FUN_020853A8 - add r0, r5, #0x0 - bl FUN_02016A18 - add sp, #0x4 - mov r0, #0x1 - pop {r3-r6, pc} -_02037E12: - mov r0, #0x0 - add sp, #0x4 - pop {r3-r6, pc} - - thumb_func_start FUN_02037E18 -FUN_02037E18: ; 0x02037E18 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - str r1, [sp, #0x4] - add r5, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02046528 - add r7, r0, #0x0 - mov r0, #0x20 - mov r1, #0x10 - bl FUN_02016998 - add r4, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r6, #0x0 - str r0, [r4, #0x0] - str r5, [r4, #0x4] - str r6, [r4, #0x8] - bne _02037E56 - mov r0, #0x0 - ldr r2, [r7, #0xc] - add r1, r0, #0x0 - mov r3, #0x20 - bl FUN_02085338 - str r0, [r4, #0xc] - ldrh r1, [r5, #0x0] - bl FUN_020853B0 - b _02037E6C -_02037E56: - ldr r2, [r7, #0xc] - mov r0, #0x1 - mov r1, #0x0 - mov r3, #0x20 - bl FUN_02085338 - str r0, [r4, #0xc] - ldrh r1, [r5, #0x0] - ldrh r2, [r6, #0x0] - bl FUN_020853B4 -_02037E6C: - ldr r0, [sp, #0x0] - ldr r1, _02037E7C ; =FUN_02037D70 - add r2, r4, #0x0 - bl FUN_0204640C - add sp, #0x8 - pop {r3-r7, pc} - nop -_02037E7C: .word FUN_02037D70 - - thumb_func_start FUN_02037E80 -FUN_02037E80: ; 0x02037E80 - ldr r3, _02037E88 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037E8C ; =0x020F2CE4 - bx r3 - .balign 4 -_02037E88: .word FUN_020373D4 -_02037E8C: .word 0x020F2CE4 - - thumb_func_start FUN_02037E90 -FUN_02037E90: ; 0x02037E90 - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _02037EB4 ; =0x020F2CD4 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_02037EB4: .word 0x020F2CD4 - - thumb_func_start FUN_02037EB8 -FUN_02037EB8: ; 0x02037EB8 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_02034E30 - bl FUN_02034E0C - mov r1, #0x5 - mov r0, #0xb - lsl r1, r1, #0x6 - bl FUN_020169D8 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x0 - bl FUN_0205F7A0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02037E90 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02037EE8 -FUN_02037EE8: ; 0x02037EE8 - ldr r3, _02037EF0 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037EF4 ; =0x020F2CC4 - bx r3 - .balign 4 -_02037EF0: .word FUN_020373D4 -_02037EF4: .word 0x020F2CC4 - - thumb_func_start FUN_02037EF8 -FUN_02037EF8: ; 0x02037EF8 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0xb - mov r1, #0x2 - bl FUN_020169D8 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020377AC - bl LoadPlayerDataAddress - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02037EE8 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02037F1C -FUN_02037F1C: ; 0x02037F1C - ldr r3, _02037F24 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037F28 ; =0x020FCAC8 - bx r3 - .balign 4 -_02037F24: .word FUN_020373D4 -_02037F28: .word 0x020FCAC8 - - thumb_func_start FUN_02037F2C -FUN_02037F2C: ; 0x02037F2C - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_020377AC - mov r1, #0xb - str r1, [sp, #0x0] - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl FUN_020854E0 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02037F1C - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02037F58 -FUN_02037F58: ; 0x02037F58 - push {r3-r7, lr} - add r5, r1, #0x0 - add r7, r0, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - cmp r5, #0x3 - bne _02037F74 - bl FUN_020377AC - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020855B0 - b _02037F82 -_02037F74: - bl FUN_020377AC - add r1, r5, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl FUN_02085538 -_02037F82: - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r4, #0x0 - bl FUN_02037F1C - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02037F90 -FUN_02037F90: ; 0x02037F90 - push {r4-r6, lr} - add r4, r1, #0x0 - add r6, r2, #0x0 - add r5, r0, #0x0 - bl FUN_020377AC - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02085578 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02037F1C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02037FB4 -FUN_02037FB4: ; 0x02037FB4 - ldr r3, _02037FBC ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02037FC0 ; =0x020FD1B0 - bx r3 - .balign 4 -_02037FBC: .word FUN_020373D4 -_02037FC0: .word 0x020FD1B0 - - thumb_func_start FUN_02037FC4 -FUN_02037FC4: ; 0x02037FC4 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - bl FUN_020377AC - add r1, r5, #0x0 - bl FUN_02087D00 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02037FB4 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02037FE4 -FUN_02037FE4: ; 0x02037FE4 - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _02038008 ; =0x020F2CB4 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_02038008: .word 0x020F2CB4 - - thumb_func_start FUN_0203800C -FUN_0203800C: ; 0x0203800C - push {r3-r7, lr} - add r5, r1, #0x0 - mov r1, #0x20 - add r7, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02016998 - mov r1, #0x0 - mov r2, #0x20 - add r4, r0, #0x0 - bl Call_FillMemWithValue - add r0, r5, #0x0 - bl FUN_0206BB1C - add r1, r7, #0x0 - bl FUN_0206B9B0 - str r0, [r4, #0x0] - add r0, r5, #0x0 - bl FUN_02027E24 - str r0, [sp, #0x0] - mov r1, #0x0 - bl FUN_02027008 - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - bl FUN_0202708C - str r7, [r4, #0x4] - str r0, [r4, #0x8] - add r0, r5, #0x0 - bl LoadPlayerDataAddress - str r0, [r4, #0xc] - add r0, r5, #0x0 - bl FUN_02029FC8 - str r0, [r4, #0x10] - add r0, r5, #0x0 - bl FUN_020238F4 - str r0, [r4, #0x14] - ldr r0, [sp, #0x18] - str r6, [r4, #0x18] - str r0, [r4, #0x1c] - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02038070 -FUN_02038070: ; 0x02038070 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _0203808E - cmp r0, #0x1 - beq _0203809E - b _020380C8 -_0203808E: - ldr r1, [r5, #0xc] - add r0, r4, #0x0 - bl FUN_0203811C - ldr r0, [r5, #0x0] - add r0, r0, #0x1 - str r0, [r5, #0x0] - b _020380C8 -_0203809E: - add r0, r4, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - bne _020380C8 - ldr r0, [r5, #0x8] - cmp r0, #0x1 - bne _020380B2 - mov r1, #0x1 - b _020380B4 -_020380B2: - mov r1, #0x0 -_020380B4: - ldr r0, [r5, #0x4] - strh r1, [r0, #0x0] - ldr r0, [r5, #0xc] - bl FUN_02016A18 - add r0, r5, #0x0 - bl FUN_02016A18 - mov r0, #0x1 - pop {r3-r5, pc} -_020380C8: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020380CC -FUN_020380CC: ; 0x020380CC - push {r3-r7, lr} - sub sp, #0x8 - add r6, r0, #0x0 - add r5, r1, #0x0 - mov r0, #0x20 - mov r1, #0x10 - add r7, r2, #0x0 - str r3, [sp, #0x4] - bl FUN_02016998 - add r4, r0, #0x0 - add r2, r4, #0x0 - mov r1, #0x10 - mov r0, #0x0 -_020380E8: - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _020380E8 - add r0, sp, #0x10 - ldrh r0, [r0, #0x10] - add r3, r4, #0x0 - add r1, r7, #0x0 - str r0, [sp, #0x0] - ldr r2, [sp, #0x4] - mov r0, #0x20 - add r3, #0x8 - bl FUN_0203800C - str r0, [r4, #0xc] - ldr r1, _02038118 ; =FUN_02038070 - add r0, r6, #0x0 - add r2, r4, #0x0 - str r5, [r4, #0x4] - bl FUN_0204640C - add sp, #0x8 - pop {r3-r7, pc} - nop -_02038118: .word FUN_02038070 - - thumb_func_start FUN_0203811C -FUN_0203811C: ; 0x0203811C - push {r3, lr} - add r2, r1, #0x0 - ldr r1, _0203812C ; =0x02105DDC - bl FUN_020373D4 - mov r0, #0x1 - pop {r3, pc} - nop -_0203812C: .word 0x02105DDC - - thumb_func_start FUN_02038130 -FUN_02038130: ; 0x02038130 - push {r3, lr} - add r2, r1, #0x0 - ldr r1, _02038140 ; =0x02105DCC - bl FUN_020373D4 - mov r0, #0x1 - pop {r3, pc} - nop -_02038140: .word 0x02105DCC - - thumb_func_start FUN_02038144 -FUN_02038144: ; 0x02038144 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_020238F4 - str r0, [r5, #0x4] - ldr r0, [r4, #0xc] - bl FUN_0206BB1C - str r0, [r5, #0x8] - ldr r0, [r4, #0xc] - mov r1, #0x9 - bl FUN_02022610 - str r0, [r5, #0xc] - ldr r0, [r4, #0xc] - bl FUN_02029AFC - str r0, [r5, #0x14] - ldr r0, [r4, #0xc] - bl LoadPlayerDataAddress - str r0, [r5, #0x18] - ldr r0, [r4, #0xc] - bl FUN_02024DA0 - str r0, [r5, #0x24] - ldr r0, [r4, #0xc] - bl FUN_0206BB28 - str r0, [r5, #0x30] - ldr r0, [r4, #0xc] - str r0, [r5, #0x10] - add r0, r4, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - str r0, [r5, #0x1c] - ldr r0, [r4, #0xc] - bl FUN_02029FC8 - str r0, [r5, #0x20] - bl FUN_02023924 - add r1, r0, #0x0 - mov r0, #0x20 - bl FUN_02016998 - str r0, [r5, #0x38] - bl FUN_020690C4 - add r1, r0, #0x0 - mov r0, #0x20 - bl FUN_02016998 - str r0, [r5, #0x3c] - bl FUN_020690C4 - add r1, r0, #0x0 - mov r0, #0x20 - bl FUN_02016998 - str r0, [r5, #0x40] - str r4, [r5, #0x0] - mov r0, #0x0 - str r0, [r5, #0x34] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020381CC -FUN_020381CC: ; 0x020381CC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x38] - cmp r0, #0x0 - beq _020381DE - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x38] -_020381DE: - ldr r0, [r4, #0x3c] - cmp r0, #0x0 - beq _020381EC - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x3c] -_020381EC: - ldr r0, [r4, #0x40] - cmp r0, #0x0 - beq _020381FA - bl FUN_02016A18 - mov r0, #0x0 - str r0, [r4, #0x40] -_020381FA: - pop {r4, pc} - - thumb_func_start FUN_020381FC -FUN_020381FC: ; 0x020381FC - push {r4-r7, lr} - sub sp, #0x34 - add r6, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x7 - bls _02038218 - b _020383C8 -_02038218: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02038224: ; jump table (using 16-bit offset) - .short _02038234 - _02038224 - 2; case 0 - .short _0203824A - _02038224 - 2; case 1 - .short _02038258 - _02038224 - 2; case 2 - .short _0203826A - _02038224 - 2; case 3 - .short _02038288 - _02038224 - 2; case 4 - .short _020382F6 - _02038224 - 2; case 5 - .short _02038386 - _02038224 - 2; case 6 - .short _020383B2 - _02038224 - 2; case 7 -_02038234: - bl FUN_02033590 - cmp r0, #0x0 - bne _02038242 - add r0, r6, #0x0 - bl FUN_0204AF3C -_02038242: - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _020383C8 -_0203824A: - add r0, r4, #0x4 - add r1, r5, #0x0 - bl FUN_02038144 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] -_02038258: - ldr r1, _020383D0 ; =0x02105DBC - add r0, r6, #0x0 - add r2, r4, #0x4 - bl FUN_02046500 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _020383C8 -_0203826A: - ldr r1, [r4, #0x2c] - cmp r1, #0x0 - bne _02038282 - add r0, r4, #0x4 - bl FUN_020381CC - add r0, r4, #0x0 - bl FUN_02016A18 - add sp, #0x34 - mov r0, #0x1 - pop {r4-r7, pc} -_02038282: - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _020383C8 -_02038288: - ldr r0, [r4, #0x3c] - str r0, [r4, #0x50] - ldr r0, [r4, #0x40] - bl FUN_020690E4 - str r0, [r4, #0x48] - ldr r0, [r4, #0x44] - bl FUN_020690E4 - str r0, [r4, #0x4c] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x5c] - mov r0, #0x1 - str r0, [r4, #0x58] - add r0, r5, #0x0 - bl FUN_0204B2A4 - cmp r0, #0x4 - bhi _020382C8 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020382BE: ; jump table (using 16-bit offset) - .short _020382C8 - _020382BE - 2; case 0 - .short _020382C8 - _020382BE - 2; case 1 - .short _020382CE - _020382BE - 2; case 2 - .short _020382D4 - _020382BE - 2; case 3 - .short _020382D4 - _020382BE - 2; case 4 -_020382C8: - mov r0, #0x0 - str r0, [r4, #0x54] - b _020382D8 -_020382CE: - mov r0, #0x1 - str r0, [r4, #0x54] - b _020382D8 -_020382D4: - mov r0, #0x2 - str r0, [r4, #0x54] -_020382D8: - bl FUN_02033590 - cmp r0, #0x0 - beq _020382E4 - mov r0, #0x3 - str r0, [r4, #0x54] -_020382E4: - add r2, r4, #0x0 - ldr r1, _020383D4 ; =0x020F2CA4 - add r0, r6, #0x0 - add r2, #0x48 - bl FUN_02046500 - mov r0, #0x5 - str r0, [r4, #0x0] - b _020383C8 -_020382F6: - ldr r0, [r4, #0x44] - mov r1, #0x6 - mov r2, #0x0 - bl FUN_020671BC - add r3, r0, #0x0 - add r0, sp, #0x30 - str r0, [sp, #0x0] - lsl r3, r3, #0x10 - ldr r1, [r4, #0x44] - mov r0, #0x0 - mov r2, #0x1 - lsr r3, r3, #0x10 - bl FUN_02069168 - str r0, [sp, #0x20] - cmp r0, #0x0 - beq _02038380 - mov r0, #0x3 - mov r1, #0x1a - lsl r2, r0, #0x10 - bl FUN_0201681C - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [sp, #0x24] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_02024DA0 - add r7, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0206F158 - str r0, [sp, #0x28] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - str r0, [sp, #0x2c] - ldr r0, [r5, #0xc] - bl FUN_0204C1A8 - str r6, [sp, #0x0] - ldr r1, [sp, #0x28] - str r7, [sp, #0x4] - str r1, [sp, #0x8] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x20] - str r1, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x30] - ldr r3, [sp, #0x24] - str r0, [sp, #0x14] - mov r0, #0x4 - str r0, [sp, #0x18] - mov r0, #0x1a - str r0, [sp, #0x1c] - ldr r1, [r4, #0x44] - mov r0, #0x0 - bl FUN_0206C700 - str r0, [r4, #0x60] - mov r0, #0x6 - str r0, [r4, #0x0] - b _020383C8 -_02038380: - mov r0, #0x7 - str r0, [r4, #0x0] - b _020383C8 -_02038386: - ldr r0, [r4, #0x60] - bl FUN_0206C91C - cmp r0, #0x0 - beq _020383C8 - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x30] - bl FUN_0206B9B0 - add r1, r0, #0x0 - ldr r0, [r4, #0x44] - bl FUN_02069B88 - ldr r0, [r4, #0x60] - bl FUN_0206C92C - mov r0, #0x1a - bl FUN_020168D0 - mov r0, #0x7 - str r0, [r4, #0x0] - b _020383C8 -_020383B2: - ldr r0, [r4, #0x38] - add r0, r0, #0x1 - str r0, [r4, #0x38] - mov r0, #0x2 - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - mov r1, #0x10 - bl FUN_0202A170 -_020383C8: - mov r0, #0x0 - add sp, #0x34 - pop {r4-r7, pc} - nop -_020383D0: .word 0x02105DBC -_020383D4: .word 0x020F2CA4 - - thumb_func_start FUN_020383D8 -FUN_020383D8: ; 0x020383D8 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x20 - mov r1, #0x68 - bl FUN_02016998 - add r2, r0, #0x0 - mov r0, #0x0 - str r0, [r2, #0x0] - ldr r1, _020383F4 ; =FUN_020381FC - add r0, r4, #0x0 - bl FUN_0204640C - pop {r4, pc} - .balign 4 -_020383F4: .word FUN_020381FC - - thumb_func_start FUN_020383F8 -FUN_020383F8: ; 0x020383F8 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x20 - mov r1, #0xc - bl FUN_02016998 - add r4, r0, #0x0 - ldr r0, [r5, #0x7c] - str r0, [r4, #0x0] - add r0, r5, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x8] - ldr r1, _02038428 ; =0x020F2C94 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - pop {r3-r5, pc} - nop -_02038428: .word 0x020F2C94 - - thumb_func_start FUN_0203842C -FUN_0203842C: ; 0x0203842C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0xb - mov r1, #0x14 - bl FUN_02016998 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - str r0, [r4, #0x0] - ldr r0, [r5, #0x7c] - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x8] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - str r0, [r4, #0xc] - add r0, r5, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - ldr r1, _02038468 ; =0x020F2D04 - str r0, [r4, #0x10] - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02038468: .word 0x020F2D04 - - thumb_func_start FUN_0203846C -FUN_0203846C: ; 0x0203846C - ldr r3, _02038474 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02038478 ; =0x020F2D54 - bx r3 - .balign 4 -_02038474: .word FUN_020373D4 -_02038478: .word 0x020F2D54 - - thumb_func_start FUN_0203847C -FUN_0203847C: ; 0x0203847C - push {r3-r7, lr} - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x3 - bhi _02038544 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020384A0: ; jump table (using 16-bit offset) - .short _020384A8 - _020384A0 - 2; case 0 - .short _020384B6 - _020384A0 - 2; case 1 - .short _020384C8 - _020384A0 - 2; case 2 - .short _020384D6 - _020384A0 - 2; case 3 -_020384A8: - add r0, r5, #0x0 - bl FUN_0204AF3C - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _02038544 -_020384B6: - ldr r1, _02038548 ; =0x020FA5FC - ldr r2, [r4, #0xc] - add r0, r5, #0x0 - bl FUN_02046500 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _02038544 -_020384C8: - add r0, r5, #0x0 - bl FUN_0204AF84 - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _02038544 -_020384D6: - ldr r1, [r4, #0xc] - ldr r0, [r1, #0x0] - cmp r0, #0x1 - bne _020384F2 - ldr r0, [r1, #0x18] - ldr r1, [r4, #0x10] - bl FUN_02021CE0 - cmp r0, #0x0 - bne _02038514 - ldr r0, [r4, #0xc] - mov r1, #0x1 - str r1, [r0, #0x14] - b _02038514 -_020384F2: - cmp r0, #0x5 - bne _02038514 - ldr r0, [r1, #0x18] - bl FUN_02021F2C - add r7, r0, #0x0 - ldr r0, [r6, #0xc] - bl FUN_0202881C - add r1, r7, #0x0 - bl FUN_02028854 - cmp r0, #0x0 - beq _02038514 - ldr r0, [r4, #0xc] - mov r1, #0x2 - str r1, [r0, #0x14] -_02038514: - ldr r0, [r4, #0xc] - ldr r0, [r0, #0x14] - cmp r0, #0x0 - bne _02038522 - add r0, r5, #0x0 - bl FUN_0203854C -_02038522: - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _0203852E - ldr r0, [r4, #0xc] - ldr r0, [r0, #0x14] - strh r0, [r1, #0x0] -_0203852E: - ldr r0, [r4, #0xc] - bl FUN_02077AC4 - ldr r0, [r4, #0x10] - bl FUN_02021A20 - add r0, r4, #0x0 - bl FUN_02016A18 - mov r0, #0x1 - pop {r3-r7, pc} -_02038544: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_02038548: .word 0x020FA5FC - - thumb_func_start FUN_0203854C -FUN_0203854C: ; 0x0203854C - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - ldr r0, [r0, #0x0] - cmp r0, #0x6 - bhi _020385CA - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02038572: ; jump table (using 16-bit offset) - .short _02038580 - _02038572 - 2; case 0 - .short _02038590 - _02038572 - 2; case 1 - .short _020385CA - _02038572 - 2; case 2 - .short _020385CA - _02038572 - 2; case 3 - .short _020385CA - _02038572 - 2; case 4 - .short _020385A8 - _02038572 - 2; case 5 - .short _020385BC - _02038572 - 2; case 6 -_02038580: - ldr r0, [r5, #0xc] - bl FUN_020238F4 - ldr r1, [r4, #0xc] - add r1, #0x1c - bl FUN_0202395C - pop {r3-r5, pc} -_02038590: - ldr r0, [r5, #0xc] - bl FUN_0206BB1C - ldr r1, [r4, #0x4] - bl FUN_0206B9B0 - ldr r2, [r4, #0xc] - mov r1, #0x75 - add r2, #0x1c - bl FUN_02067830 - pop {r3-r5, pc} -_020385A8: - ldr r0, [r5, #0xc] - bl FUN_0202881C - ldr r3, [r4, #0xc] - mov r1, #0x0 - ldr r3, [r3, #0x18] - add r2, r1, #0x0 - bl FUN_020287C0 - pop {r3-r5, pc} -_020385BC: - ldr r0, [r5, #0xc] - bl FUN_02024EB4 - ldr r1, [r4, #0xc] - ldr r1, [r1, #0x18] - bl FUN_02024F18 -_020385CA: - pop {r3-r5, pc} - - thumb_func_start FUN_020385CC -FUN_020385CC: ; 0x020385CC - push {r3-r7, lr} - sub sp, #0x10 - str r0, [sp, #0x4] - add r6, r1, #0x0 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - ldr r5, [sp, #0x2c] - bl FUN_02046528 - add r7, r0, #0x0 - mov r0, #0xb - mov r1, #0x14 - bl FUN_020169D8 - add r4, r0, #0x0 - mov r0, #0x0 - str r0, [r4, #0x0] - ldr r0, [sp, #0x28] - str r0, [r4, #0x4] - ldr r0, [sp, #0x30] - str r0, [r4, #0x8] - ldr r0, [r7, #0xc] - bl LoadPlayerDataAddress - str r0, [sp, #0x0] - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - mov r0, #0xb - add r1, r6, #0x0 - bl FUN_02077A84 - str r0, [r4, #0xc] - mov r0, #0xc - mov r1, #0xb - bl FUN_020219F4 - str r0, [r4, #0x10] - cmp r6, #0x1 - beq _02038620 - cmp r6, #0x5 - beq _02038656 - b _02038660 -_02038620: - ldr r0, [r7, #0xc] - bl FUN_0206BB1C - ldr r1, [r4, #0x4] - bl FUN_0206B9B0 - mov r1, #0x6f - mov r2, #0x0 - add r6, r0, #0x0 - bl FUN_020671BC - ldr r1, [r4, #0xc] - mov r2, #0x0 - str r0, [r1, #0x10] - add r0, r6, #0x0 - mov r1, #0x70 - bl FUN_020671BC - ldr r1, [r4, #0xc] - cmp r5, #0x0 - str r0, [r1, #0x8] - beq _0203866E - ldr r0, [r4, #0x10] - add r1, r5, #0x0 - bl FUN_02021E28 - b _0203866E -_02038656: - ldr r0, [r4, #0x10] - add r1, r5, #0x0 - bl FUN_02021E28 - b _0203866E -_02038660: - cmp r5, #0x0 - beq _0203866E - ldr r0, [r4, #0xc] - add r1, r5, #0x0 - ldr r0, [r0, #0x18] - bl FUN_02021E28 -_0203866E: - ldr r0, [sp, #0x4] - ldr r1, _0203867C ; =FUN_0203847C - add r2, r4, #0x0 - bl FUN_0204640C - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0203867C: .word FUN_0203847C - - thumb_func_start FUN_02038680 -FUN_02038680: ; 0x02038680 - ldr r3, _02038688 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _0203868C ; =0x020F2C54 - bx r3 - .balign 4 -_02038688: .word FUN_020373D4 -_0203868C: .word 0x020F2C54 - - thumb_func_start FUN_02038690 -FUN_02038690: ; 0x02038690 - push {r3, lr} - add r2, r1, #0x0 - ldr r1, _020386A0 ; =0x020F2C44 - bl FUN_020373D4 - mov r0, #0x1 - pop {r3, pc} - nop -_020386A0: .word 0x020F2C44 - - thumb_func_start FUN_020386A4 -FUN_020386A4: ; 0x020386A4 - ldr r3, _020386AC ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _020386B0 ; =0x020F2C34 - bx r3 - .balign 4 -_020386AC: .word FUN_020373D4 -_020386B0: .word 0x020F2C34 - - thumb_func_start FUN_020386B4 -FUN_020386B4: ; 0x020386B4 - push {r3-r5, lr} - sub sp, #0x10 - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_02029ABC - ldr r5, _020386DC ; =0x020F2C24 - add r3, sp, #0x0 - add r2, r3, #0x0 - ldmia r5!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r3!, {r0-r1} - add r1, r2, #0x0 - ldr r2, [r4, #0xc] - add r0, r4, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 -_020386DC: .word 0x020F2C24 - - thumb_func_start FUN_020386E0 -FUN_020386E0: ; 0x020386E0 - push {r4-r6, lr} - sub sp, #0x10 - ldr r3, _0203878C ; =0x020F2C64 - add r2, sp, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - mov r0, #0xb - mov r1, #0x44 - bl FUN_020169D8 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0202ABBC - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_02023788 - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - mov r1, #0x2 - bl FUN_02022610 - str r0, [r4, #0x8] - ldr r0, [r5, #0xc] - bl FUN_02022510 - str r0, [r4, #0xc] - ldr r0, [r5, #0xc] - bl FUN_02024DA0 - str r0, [r4, #0x10] - ldr r0, [r5, #0xc] - bl FUN_020286EC - str r0, [r4, #0x14] - ldr r0, [r5, #0xc] - bl FUN_02029AFC - str r0, [r4, #0x18] - ldr r0, [r5, #0xc] - bl FUN_020238F4 - str r0, [r4, #0x1c] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x24] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - str r0, [r4, #0x28] - add r0, r5, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - str r0, [r4, #0x2c] - ldr r0, [r5, #0xc] - bl FUN_02079C70 - str r0, [r4, #0x3c] - ldr r0, [r5, #0xc] - str r0, [r4, #0x20] - ldr r0, [r5, #0xc] - bl FUN_0206BB28 - str r0, [r4, #0x34] - ldr r0, [r4, #0x14] - bl FUN_02033830 - str r0, [r4, #0x38] - ldr r0, [r5, #0xc] - bl FUN_0206F158 - str r0, [r4, #0x30] - add r0, r5, #0x0 - add r1, sp, #0x0 - add r2, r4, #0x0 - str r6, [r4, #0x40] - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - .balign 4 -_0203878C: .word 0x020F2C64 - - thumb_func_start FUN_02038790 -FUN_02038790: ; 0x02038790 - push {r3-r7, lr} - sub sp, #0x10 - ldr r3, _02038800 ; =0x020F2C74 - add r7, r2, #0x0 - add r2, sp, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - mov r0, #0xb - mov r1, #0x28 - bl FUN_020169D8 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0202A8D8 - str r0, [r4, #0x0] - ldr r0, [r5, #0xc] - bl FUN_0202A8E4 - str r0, [r4, #0x4] - ldr r0, [r5, #0xc] - bl FUN_02023788 - str r0, [r4, #0x8] - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [r4, #0x10] - ldr r0, [r5, #0xc] - bl FUN_020286EC - bl FUN_02028228 - str r0, [r4, #0x14] - ldr r0, [r5, #0xc] - str r0, [r4, #0xc] - ldr r0, [r5, #0xc] - bl FUN_020286EC - bl FUN_02033830 - str r0, [r4, #0x1c] - str r6, [r4, #0x18] - add r0, r5, #0x0 - add r1, sp, #0x0 - add r2, r4, #0x0 - str r7, [r4, #0x24] - bl FUN_020373D4 - add r0, r4, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_02038800: .word 0x020F2C74 - - thumb_func_start FUN_02038804 -FUN_02038804: ; 0x02038804 - ldr r3, _0203880C ; =FUN_020373D4 - ldr r1, _02038810 ; =0x020F2D14 - ldr r2, [r0, #0xc] - bx r3 - .balign 4 -_0203880C: .word FUN_020373D4 -_02038810: .word 0x020F2D14 - - thumb_func_start FUN_02038814 -FUN_02038814: ; 0x02038814 - ldr r3, _0203881C ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02038820 ; =0x020F2D64 - bx r3 - .balign 4 -_0203881C: .word FUN_020373D4 -_02038820: .word 0x020F2D64 - - thumb_func_start FUN_02038824 -FUN_02038824: ; 0x02038824 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - mov r1, #0xb - add r2, sp, #0x0 - bl FUN_02022534 - ldr r1, [sp, #0x0] - add r4, r0, #0x0 - cmp r1, #0x2 - bne _02038842 - bl FUN_02016A18 - mov r0, #0x0 - pop {r3-r5, pc} -_02038842: - ldr r1, _02038850 ; =0x020F2BF4 - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02038850: .word 0x020F2BF4 - - thumb_func_start FUN_02038854 -FUN_02038854: ; 0x02038854 - ldr r3, _0203885C ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _02038860 ; =0x020F2C04 - bx r3 - .balign 4 -_0203885C: .word FUN_020373D4 -_02038860: .word 0x020F2C04 - - thumb_func_start FUN_02038864 -FUN_02038864: ; 0x02038864 - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _02038888 ; =0x020F2C84 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_02038888: .word 0x020F2C84 - - thumb_func_start FUN_0203888C -FUN_0203888C: ; 0x0203888C - push {r4-r6, lr} - sub sp, #0x10 - ldr r5, _020388B0 ; =0x020F2D84 - add r4, sp, #0x0 - add r6, r0, #0x0 - add r2, r1, #0x0 - add r3, r4, #0x0 - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r4!, {r0-r1} - add r0, r6, #0x0 - add r1, r3, #0x0 - bl FUN_020373D4 - add sp, #0x10 - pop {r4-r6, pc} - nop -_020388B0: .word 0x020F2D84 - - thumb_func_start FUN_020388B4 -FUN_020388B4: ; 0x020388B4 - push {r3-r5, lr} - sub sp, #0x10 - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_0206BB1C - bl MOD05_021ED49C - add r5, r0, #0x0 - bne _020388CC - bl ErrorHandling -_020388CC: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020613CC - str r5, [sp, #0x0] - ldr r0, [r4, #0xc] - bl LoadPlayerDataAddress - str r0, [sp, #0x4] - ldr r0, [r4, #0xc] - bl FUN_020238F4 - str r0, [sp, #0x8] - ldr r1, [r4, #0x1c] - add r0, r4, #0x0 - ldr r1, [r1, #0x0] - bl FUN_0204AB58 - add r1, sp, #0x0 - strh r0, [r1, #0xc] - ldr r0, [r4, #0x10] - add r1, sp, #0x0 - bl FUN_020863DC - add sp, #0x10 - pop {r3-r5, pc} - - thumb_func_start FUN_02038900 -FUN_02038900: ; 0x02038900 - push {r3, lr} - add r2, r1, #0x0 - ldr r1, _02038910 ; =0x020F2C14 - bl FUN_020373D4 - mov r0, #0x1 - pop {r3, pc} - nop -_02038910: .word 0x020F2C14 - - thumb_func_start FUN_02038914 -FUN_02038914: ; 0x02038914 - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - bl FUN_02046528 - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_020462AC - add r7, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_02046530 - add r6, r0, #0x0 - ldr r0, [r6, #0x0] - cmp r0, #0x0 - beq _02038944 - cmp r0, #0x1 - beq _02038956 - b _020389C6 -_02038944: - add r5, #0xc - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02038900 - ldr r0, [r6, #0x0] - add r0, r0, #0x1 - str r0, [r6, #0x0] - b _020389C6 -_02038956: - add r0, r4, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - bne _020389C6 - ldr r0, [r4, #0xc] - bl FUN_0202390C - str r0, [sp, #0x0] - bl FUN_020126FC - str r0, [sp, #0x4] - ldr r0, [sp, #0x0] - add r6, r1, #0x0 - bl FUN_02028930 - str r0, [sp, #0x8] - ldr r0, [r5, #0x4] - ldr r1, [r5, #0x8] - ldr r2, [sp, #0x4] - add r3, r6, #0x0 - bl FUN_020127C0 - mov r2, #0x3c - mov r3, #0x0 - bl _ll_sdiv - add r3, r0, #0x0 - ldr r1, [sp, #0x8] - ldr r2, [r5, #0x0] - add r0, r4, #0x0 - bl FUN_02061A8C - ldr r0, [r4, #0xc] - bl FUN_0202390C - ldr r1, [r5, #0x0] - bl FUN_02028918 - add r0, r7, #0x0 - bl FUN_0205F6C8 - ldr r1, [r5, #0x18] - cmp r1, r0 - ble _020389BA - lsl r1, r1, #0x10 - add r0, r7, #0x0 - lsr r1, r1, #0x10 - bl FUN_0205F6D8 -_020389BA: - add r0, r5, #0x0 - bl FUN_02016A18 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_020389C6: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_020389CC -FUN_020389CC: ; 0x020389CC - push {r3-r7, lr} - add r7, r0, #0x0 - add r6, r1, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - bl LoadPlayerDataAddress - str r0, [sp, #0x0] - mov r0, #0x20 - add r1, r0, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - str r4, [r4, #0xc] - ldr r0, [r5, #0xc] - bl FUN_0202390C - bl FUN_02028930 - str r0, [r4, #0x0] - bl FUN_020126FC - str r0, [r4, #0x4] - str r1, [r4, #0x8] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - str r0, [r4, #0x14] - mov r0, #0x0 - str r0, [r4, #0x18] - ldr r0, [sp, #0x0] - bl FUN_02025084 - str r0, [r4, #0x1c] - lsl r1, r6, #0x18 - ldr r0, [r5, #0xc] - lsr r1, r1, #0x18 - bl FUN_02038A3C - str r0, [r4, #0x10] - ldr r0, [r5, #0xc] - bl FUN_02029FC8 - mov r1, #0x5 - bl FUN_0202A170 - ldr r1, _02038A38 ; =FUN_02038914 - add r0, r7, #0x0 - add r2, r4, #0x0 - bl FUN_0204640C - pop {r3-r7, pc} - .balign 4 -_02038A38: .word FUN_02038914 - - thumb_func_start FUN_02038A3C -FUN_02038A3C: ; 0x02038A3C - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x0] - bl FUN_0202881C - add r4, r0, #0x0 - bl FUN_0201B9D4 - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_020287A4 - bl FUN_0201B9E0 - ldr r0, _02038AAC ; =0x020F2BE8 - add r1, sp, #0x8 - mov r2, #0xc - bl MI_CpuCopy8 - mov r4, #0x0 - mov r7, #0xc - add r6, sp, #0x8 -_02038A68: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0xc - bhs _02038A92 -_02038A72: - bl FUN_0201B9EC - add r1, r7, #0x0 - bl _s32_div_f - lsl r0, r1, #0x18 - lsr r2, r0, #0x18 - ldrb r1, [r6, r4] - ldrb r0, [r6, r2] - strb r0, [r6, r4] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - strb r1, [r6, r2] - cmp r5, #0xc - blo _02038A72 -_02038A92: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0xc - blo _02038A68 - ldr r0, [sp, #0x4] - bl FUN_0201B9E0 - ldr r0, [sp, #0x0] - add r1, sp, #0x8 - ldrb r0, [r1, r0] - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02038AAC: .word 0x020F2BE8 - - thumb_func_start FUN_02038AB0 -FUN_02038AB0: ; 0x02038AB0 - push {r4, lr} - bl FUN_0204652C - add r4, r0, #0x0 - bl MOD06_0224D79C - cmp r0, #0x1 - bne _02038ACA - add r0, r4, #0x0 - bl MOD06_0224D76C - mov r0, #0x1 - pop {r4, pc} -_02038ACA: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02038AD0 -FUN_02038AD0: ; 0x02038AD0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r2, r0, #0x0 - ldr r1, [r2, #0xc] - ldr r2, [r2, #0x8] - mov r0, #0x4 - bl MOD06_0224D70C - add r2, r0, #0x0 - ldr r1, _02038AF0 ; =FUN_02038AB0 - add r0, r4, #0x0 - bl FUN_0204640C - pop {r4, pc} - .balign 4 -_02038AF0: .word FUN_02038AB0 - - thumb_func_start FUN_02038AF4 -FUN_02038AF4: ; 0x02038AF4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x8 - add r6, r2, #0x0 - bl FUN_02016998 - add r4, r0, #0x0 - str r6, [r4, #0x4] - ldr r0, [r5, #0xc] - ldr r1, _02038B18 ; =0x020F2DA4 - str r0, [r4, #0x0] - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 -_02038B18: .word 0x020F2DA4 diff --git a/arm9/asm/unk_02013724.s b/arm9/asm/unk_02013724.s new file mode 100644 index 00000000..38b194ec --- /dev/null +++ b/arm9/asm/unk_02013724.s @@ -0,0 +1,395 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02013724 +FUN_02013724: ; 0x02013724 + ldr r1, _02013738 ; =0x0000FFFF + mov r2, #0x0 + strh r1, [r0, #0x0] +_0201372A: + add r2, r2, #0x1 + strh r1, [r0, #0x4] + add r0, r0, #0x2 + cmp r2, #0x2 + blt _0201372A + bx lr + nop +_02013738: .word 0x0000FFFF + + thumb_func_start FUN_0201373C +FUN_0201373C: ; 0x0201373C + strh r1, [r0, #0x0] + mov r2, #0x0 + ldr r1, _02013750 ; =0x0000FFFF + strh r2, [r0, #0x2] +_02013744: + add r2, r2, #0x1 + strh r1, [r0, #0x4] + add r0, r0, #0x2 + cmp r2, #0x2 + blt _02013744 + bx lr + .balign 4 +_02013750: .word 0x0000FFFF + + thumb_func_start FUN_02013754 +FUN_02013754: ; 0x02013754 + push {r4, lr} + mov r1, #0x4 + add r4, r0, #0x0 + bl FUN_0201373C + mov r0, #0x5 + strh r0, [r4, #0x2] + pop {r4, pc} + + thumb_func_start FUN_02013764 +FUN_02013764: ; 0x02013764 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0x4 + blo _02013772 + bl ErrorHandling +_02013772: + cmp r6, #0x4 + bhs _020137B8 + mov r0, #0xa + add r4, r6, #0x0 + mul r4, r0 + ldr r1, _020137BC ; =0x020ED556 + add r0, r5, #0x0 + ldrb r1, [r1, r4] + bl FUN_0201373C + ldr r0, _020137C0 ; =0x020ED557 + mov r1, #0x0 + ldrb r0, [r0, r4] + mvn r1, r1 + strh r0, [r5, #0x2] + ldr r0, _020137C4 ; =0x020ED558 + ldrsh r0, [r0, r4] + cmp r0, r1 + beq _020137A2 + ldr r1, _020137C8 ; =0x020ED55A + ldrh r1, [r1, r4] + bl FUN_02013A9C + strh r0, [r5, #0x4] +_020137A2: + ldr r0, _020137CC ; =0x020ED55C + mov r1, #0x0 + ldrsh r0, [r0, r4] + mvn r1, r1 + cmp r0, r1 + beq _020137B8 + ldr r1, _020137D0 ; =0x020ED55E + ldrh r1, [r1, r4] + bl FUN_02013A9C + strh r0, [r5, #0x6] +_020137B8: + pop {r4-r6, pc} + nop +_020137BC: .word 0x020ED556 +_020137C0: .word 0x020ED557 +_020137C4: .word 0x020ED558 +_020137C8: .word 0x020ED55A +_020137CC: .word 0x020ED55C +_020137D0: .word 0x020ED55E + + thumb_func_start FUN_020137D4 +FUN_020137D4: ; 0x020137D4 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r0, r1, #0x0 + str r1, [sp, #0x4] + bl FUN_0200AA80 + ldr r5, [sp, #0x0] + ldr r7, _02013838 ; =0x0000FFFF + add r6, r0, #0x0 + mov r4, #0x0 +_020137EA: + ldrh r2, [r5, #0x4] + cmp r2, r7 + beq _02013800 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_0200B518 + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x2 + blt _020137EA +_02013800: + ldr r2, [sp, #0x0] + mov r0, #0x1 + ldrh r2, [r2, #0x0] + mov r1, #0x1a + lsl r3, r2, #0x1 + ldr r2, _0201383C ; =0x020ED54C + ldrh r2, [r2, r3] + ldr r3, [sp, #0x4] + bl FUN_0200A86C + add r5, r0, #0x0 + ldr r2, [sp, #0x0] + ldr r3, [sp, #0x4] + ldrh r2, [r2, #0x2] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0200A9C4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0200A8B8 + add r0, r6, #0x0 + bl FUN_0200AB18 + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02013838: .word 0x0000FFFF +_0201383C: .word 0x020ED54C + + thumb_func_start FUN_02013840 +FUN_02013840: ; 0x02013840 + push {r4, lr} + add r4, r0, #0x0 + add r3, r1, #0x0 + ldrh r1, [r4, #0x0] + mov r0, #0x1a + lsl r2, r1, #0x1 + ldr r1, _02013858 ; =0x020ED54C + ldrh r1, [r1, r2] + ldrh r2, [r4, #0x2] + bl FUN_0200A738 + pop {r4, pc} + .balign 4 +_02013858: .word 0x020ED54C + + thumb_func_start FUN_0201385C +FUN_0201385C: ; 0x0201385C + ldrh r1, [r0, #0x0] + ldr r0, _0201386C ; =0x0000FFFF + cmp r1, r0 + beq _02013868 + mov r0, #0x1 + bx lr +_02013868: + mov r0, #0x0 + bx lr + .balign 4 +_0201386C: .word 0x0000FFFF + + thumb_func_start FUN_02013870 +FUN_02013870: ; 0x02013870 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + ldrh r1, [r4, #0x2] + bl FUN_020138A0 + mov r3, #0x0 + cmp r0, #0x0 + bls _02013896 + ldr r1, _0201389C ; =0x0000FFFF +_02013884: + ldrh r2, [r4, #0x4] + cmp r2, r1 + bne _0201388E + mov r0, #0x0 + pop {r4, pc} +_0201388E: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, r0 + blo _02013884 +_02013896: + mov r0, #0x1 + pop {r4, pc} + nop +_0201389C: .word 0x0000FFFF + + thumb_func_start FUN_020138A0 +FUN_020138A0: ; 0x020138A0 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x5 + blo _020138AE + bl ErrorHandling +_020138AE: + add r0, r5, #0x0 + bl FUN_02013974 + cmp r4, r0 + blo _020138BC + bl ErrorHandling +_020138BC: + ldr r1, _02013910 ; =0x020ED54C + lsl r2, r5, #0x1 + ldrh r1, [r1, r2] + mov r0, #0x1a + add r2, r4, #0x0 + mov r3, #0x0 + bl FUN_0200A738 + str r0, [sp, #0x0] + bl FUN_02021F2C + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _02013914 ; =0x0000FFFF + mov r5, #0x0 + cmp r1, r0 + beq _02013904 + add r7, r0, #0x0 + sub r6, r0, #0x1 +_020138E2: + cmp r1, r6 + bne _020138FC + add r0, r4, #0x0 + bl FUN_0201B8F8 + cmp r0, #0x0 + beq _020138F2 + add r5, r5, #0x1 +_020138F2: + add r0, r4, #0x0 + bl FUN_0201B8B8 + add r4, r0, #0x0 + b _020138FE +_020138FC: + add r4, r4, #0x2 +_020138FE: + ldrh r1, [r4, #0x0] + cmp r1, r7 + bne _020138E2 +_02013904: + ldr r0, [sp, #0x0] + bl FUN_02021A20 + add r0, r5, #0x0 + pop {r3-r7, pc} + nop +_02013910: .word 0x020ED54C +_02013914: .word 0x0000FFFF + + thumb_func_start FUN_02013918 +FUN_02013918: ; 0x02013918 + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_02013920 +FUN_02013920: ; 0x02013920 + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02013924 +FUN_02013924: ; 0x02013924 + ldrh r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_02013928 +FUN_02013928: ; 0x02013928 + push {r3-r4} + ldrh r3, [r0, #0x0] + ldrh r2, [r1, #0x0] + cmp r3, r2 + bne _0201393A + ldrh r3, [r0, #0x2] + ldrh r2, [r1, #0x2] + cmp r3, r2 + beq _02013940 +_0201393A: + mov r0, #0x0 + pop {r3-r4} + bx lr +_02013940: + mov r4, #0x0 +_02013942: + ldrh r3, [r0, #0x4] + ldrh r2, [r1, #0x4] + cmp r3, r2 + beq _02013950 + mov r0, #0x0 + pop {r3-r4} + bx lr +_02013950: + add r4, r4, #0x1 + add r1, r1, #0x2 + add r0, r0, #0x2 + cmp r4, #0x2 + blt _02013942 + mov r0, #0x1 + pop {r3-r4} + bx lr + + thumb_func_start FUN_02013960 +FUN_02013960: ; 0x02013960 + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x0] + ldrh r2, [r1, #0x2] + strh r2, [r0, #0x2] + ldrh r2, [r1, #0x4] + strh r2, [r0, #0x4] + ldrh r1, [r1, #0x6] + strh r1, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start FUN_02013974 +FUN_02013974: ; 0x02013974 + cmp r0, #0x5 + bhs _0201397C + mov r0, #0x14 + bx lr +_0201397C: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_02013980 +FUN_02013980: ; 0x02013980 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x5 + blo _02013990 + bl ErrorHandling +_02013990: + strh r4, [r5, #0x0] + strh r6, [r5, #0x2] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02013998 +FUN_02013998: ; 0x02013998 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x2 + blo _020139A8 + bl ErrorHandling +_020139A8: + lsl r0, r4, #0x1 + add r0, r5, r0 + strh r6, [r0, #0x4] + pop {r4-r6, pc} + + thumb_func_start FUN_020139B0 +FUN_020139B0: ; 0x020139B0 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + ldrh r1, [r4, #0x2] + bl FUN_020138A0 + cmp r0, #0x2 + bhs _020139D0 + lsl r1, r0, #0x1 + add r2, r4, r1 + ldr r1, _020139D4 ; =0x0000FFFF +_020139C6: + add r0, r0, #0x1 + strh r1, [r2, #0x4] + add r2, r2, #0x2 + cmp r0, #0x2 + blo _020139C6 +_020139D0: + pop {r4, pc} + nop +_020139D4: .word 0x0000FFFF diff --git a/arm9/asm/unk_020139D8.s b/arm9/asm/unk_020139D8.s new file mode 100644 index 00000000..5cab9916 --- /dev/null +++ b/arm9/asm/unk_020139D8.s @@ -0,0 +1,81286 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_020139D8 +FUN_020139D8: ; 0x020139D8 + push {r3-r7, lr} + mov r1, #0x30 + add r6, r0, #0x0 + bl FUN_02016998 + ldr r4, _02013A0C ; =0x020ED5C0 + str r0, [sp, #0x0] + mov r7, #0x0 + add r5, r0, #0x0 +_020139EA: + ldr r0, [sp, #0x0] + mov r1, #0x1a + str r6, [r0, #0x0] + ldrh r2, [r4, #0x0] + mov r0, #0x1 + add r3, r6, #0x0 + bl FUN_0200A86C + str r0, [r5, #0x4] + add r7, r7, #0x1 + add r4, r4, #0x2 + add r5, r5, #0x4 + cmp r7, #0xb + blt _020139EA + ldr r0, [sp, #0x0] + pop {r3-r7, pc} + nop +_02013A0C: .word 0x020ED5C0 + + thumb_func_start FUN_02013A10 +FUN_02013A10: ; 0x02013A10 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_02013A18: + ldr r0, [r5, #0x4] + bl FUN_0200A8B8 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0xb + blt _02013A18 + add r0, r6, #0x0 + bl FUN_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02013A30 +FUN_02013A30: ; 0x02013A30 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r0, r1, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl FUN_02013AEC + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x4] + add r2, r4, #0x0 + bl FUN_0200A8E0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02013A58 +FUN_02013A58: ; 0x02013A58 + push {r3-r4, lr} + sub sp, #0xc + add r4, r1, #0x0 + ldr r1, _02013A94 ; =0x0000FFFF + cmp r0, r1 + beq _02013A88 + add r1, sp, #0x8 + add r2, sp, #0x4 + bl FUN_02013AEC + ldr r0, [sp, #0x8] + mov r3, #0x0 + lsl r1, r0, #0x1 + ldr r0, _02013A98 ; =0x020ED5C0 + ldrh r0, [r0, r1] + str r0, [sp, #0x8] + str r4, [sp, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + mov r0, #0x1a + bl FUN_0200A648 + add sp, #0xc + pop {r3-r4, pc} +_02013A88: + add r0, r4, #0x0 + bl FUN_02021A4C + add sp, #0xc + pop {r3-r4, pc} + nop +_02013A94: .word 0x0000FFFF +_02013A98: .word 0x020ED5C0 + + thumb_func_start FUN_02013A9C +FUN_02013A9C: ; 0x02013A9C + push {r4-r5} + ldr r4, _02013AE0 ; =0x020ED5C0 + mov r2, #0x0 +_02013AA2: + ldrh r3, [r4, #0x0] + cmp r0, r3 + bne _02013AD0 + mov r4, #0x0 + add r3, r4, #0x0 + cmp r2, #0x0 + bls _02013AC6 + ldr r0, _02013AE4 ; =0x020ED5D6 +_02013AB2: + lsl r5, r4, #0x1 + ldrh r5, [r0, r5] + add r4, r4, #0x1 + lsl r4, r4, #0x10 + add r3, r3, r5 + lsl r3, r3, #0x10 + lsr r4, r4, #0x10 + lsr r3, r3, #0x10 + cmp r4, r2 + blo _02013AB2 +_02013AC6: + add r0, r3, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4-r5} + bx lr +_02013AD0: + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r2, #0xb + blo _02013AA2 + ldr r0, _02013AE8 ; =0x0000FFFF + pop {r4-r5} + bx lr + nop +_02013AE0: .word 0x020ED5C0 +_02013AE4: .word 0x020ED5D6 +_02013AE8: .word 0x0000FFFF + + thumb_func_start FUN_02013AEC +FUN_02013AEC: ; 0x02013AEC + push {r3-r6} + ldr r3, _02013B20 ; =0x00000FFF + ldr r6, _02013B24 ; =0x020ED5D6 + and r3, r0 + mov r0, #0x0 + add r5, r0, #0x0 +_02013AF8: + ldrh r4, [r6, #0x0] + add r0, r0, r4 + cmp r3, r0 + bhs _02013B12 + str r5, [r1, #0x0] + ldr r1, _02013B24 ; =0x020ED5D6 + lsl r4, r5, #0x1 + ldrh r1, [r1, r4] + sub r0, r0, r1 + sub r0, r3, r0 + str r0, [r2, #0x0] + pop {r3-r6} + bx lr +_02013B12: + add r5, r5, #0x1 + add r6, r6, #0x2 + cmp r5, #0xb + blo _02013AF8 + pop {r3-r6} + bx lr + nop +_02013B20: .word 0x00000FFF +_02013B24: .word 0x020ED5D6 + + thumb_func_start FUN_02013B28 +FUN_02013B28: ; 0x02013B28 + mov r0, #0x8 + bx lr + + thumb_func_start FUN_02013B2C +FUN_02013B2C: ; 0x02013B2C + push {r3, lr} + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r3, _02013B54 ; =0x020ED5B4 + str r2, [r0, #0x4] +_02013B36: + ldrb r1, [r3, #0x0] + cmp r1, #0x2 + bne _02013B48 + ldr r1, _02013B58 ; =0x020ED5B5 + lsl r2, r2, #0x1 + ldrb r1, [r1, r2] + bl FUN_02013C18 + pop {r3, pc} +_02013B48: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x6 + blo _02013B36 + pop {r3, pc} + nop +_02013B54: .word 0x020ED5B4 +_02013B58: .word 0x020ED5B5 + + thumb_func_start FUN_02013B5C +FUN_02013B5C: ; 0x02013B5C + ldr r3, _02013B64 ; =FUN_02022610 + mov r1, #0x22 + bx r3 + nop +_02013B64: .word FUN_02022610 + + thumb_func_start FUN_02013B68 +FUN_02013B68: ; 0x02013B68 + ldr r0, [r0, #0x4] + add r2, r0, #0x0 + lsr r2, r1 + mov r0, #0x1 + and r0, r2 + bx lr + + thumb_func_start FUN_02013B74 +FUN_02013B74: ; 0x02013B74 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r2, #0x0 + ldr r3, [r5, #0x4] + add r4, r2, #0x0 + mov r0, #0x1 +_02013B80: + add r1, r3, #0x0 + lsr r1, r2 + tst r1, r0 + bne _02013B8A + add r4, r4, #0x1 +_02013B8A: + add r2, r2, #0x1 + cmp r2, #0x20 + blo _02013B80 + cmp r4, #0x0 + beq _02013BC4 + bl rand_LC + add r1, r4, #0x0 + bl _u32_div_f + ldr r4, [r5, #0x4] + mov r0, #0x0 + mov r2, #0x1 +_02013BA4: + add r3, r4, #0x0 + lsr r3, r0 + tst r3, r2 + bne _02013BBE + cmp r1, #0x0 + bne _02013BBC + mov r1, #0x1 + ldr r2, [r5, #0x4] + lsl r1, r0 + orr r1, r2 + str r1, [r5, #0x4] + pop {r3-r5, pc} +_02013BBC: + sub r1, r1, #0x1 +_02013BBE: + add r0, r0, #0x1 + cmp r0, #0x20 + blo _02013BA4 +_02013BC4: + mov r0, #0x20 + pop {r3-r5, pc} + + thumb_func_start FUN_02013BC8 +FUN_02013BC8: ; 0x02013BC8 + ldr r3, [r0, #0x4] + mov r2, #0x0 + mov r0, #0x1 +_02013BCE: + add r1, r3, #0x0 + lsr r1, r2 + tst r1, r0 + bne _02013BDA + mov r0, #0x0 + bx lr +_02013BDA: + add r2, r2, #0x1 + cmp r2, #0x20 + blo _02013BCE + mov r0, #0x1 + bx lr + + thumb_func_start FUN_02013BE4 +FUN_02013BE4: ; 0x02013BE4 + push {r3-r4} + mov r3, #0x0 + ldr r4, _02013C08 ; =0x020ED5D6 + add r2, r3, #0x0 +_02013BEC: + ldrh r1, [r4, #0x0] + add r2, r2, #0x1 + add r4, r4, #0x2 + add r1, r3, r1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + cmp r2, #0x9 + blt _02013BEC + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3-r4} + bx lr + nop +_02013C08: .word 0x020ED5D6 + + thumb_func_start FUN_02013C0C +FUN_02013C0C: ; 0x02013C0C + ldr r0, [r0, #0x0] + add r2, r0, #0x0 + lsr r2, r1 + mov r0, #0x1 + and r0, r2 + bx lr + + thumb_func_start FUN_02013C18 +FUN_02013C18: ; 0x02013C18 + mov r2, #0x1 + ldr r3, [r0, #0x0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02013C28 +FUN_02013C28: ; 0x02013C28 + push {r4-r7} + mov r3, #0x0 + ldr r5, _02013C64 ; =0x020ED5EC + add r2, r3, #0x0 +_02013C30: + ldr r7, [r5, #0x4] + add r4, r2, #0x0 + cmp r7, #0x0 + ble _02013C54 + ldr r6, [r5, #0x0] +_02013C3A: + ldrh r1, [r6, #0x0] + cmp r0, r1 + bne _02013C4C + ldr r0, _02013C68 ; =0x020ED5F0 + lsl r1, r3, #0x3 + ldr r0, [r0, r1] + sub r0, r0, #0x1 + pop {r4-r7} + bx lr +_02013C4C: + add r4, r4, #0x1 + add r6, r6, #0x2 + cmp r4, r7 + blt _02013C3A +_02013C54: + add r3, r3, #0x1 + add r5, #0x8 + cmp r3, #0xc + blo _02013C30 + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_02013C64: .word 0x020ED5EC +_02013C68: .word 0x020ED5F0 + + thumb_func_start FUN_02013C6C +FUN_02013C6C: ; 0x02013C6C + push {r3-r7, lr} + ldr r3, _02013CC8 ; =0x020ED5EC + add r6, r1, #0x0 + mov r7, #0x0 +_02013C74: + ldr r5, [r3, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + ble _02013CBC + ldr r4, [r3, #0x0] +_02013C7E: + ldrh r1, [r4, #0x0] + cmp r0, r1 + bne _02013CB4 + ldr r2, _02013CCC ; =0x020ED5F0 + lsl r1, r7, #0x3 + ldr r2, [r2, r1] + mov r0, #0x0 + cmp r2, #0x0 + beq _02013CAC + ldr r2, _02013CC8 ; =0x020ED5EC + add r2, r2, r1 + ldr r2, [r2, #0x4] +_02013C96: + cmp r6, #0x0 + bne _02013CA4 + ldr r2, _02013CC8 ; =0x020ED5EC + lsl r0, r0, #0x1 + ldr r1, [r2, r1] + ldrh r0, [r1, r0] + pop {r3-r7, pc} +_02013CA4: + sub r6, r6, #0x1 + add r0, r0, #0x1 + cmp r2, #0x0 + bne _02013C96 +_02013CAC: + bl ErrorHandling + ldr r0, _02013CD0 ; =0x0000FFFF + pop {r3-r7, pc} +_02013CB4: + add r2, r2, #0x1 + add r4, r4, #0x2 + cmp r2, r5 + blt _02013C7E +_02013CBC: + add r7, r7, #0x1 + add r3, #0x8 + cmp r7, #0xc + blo _02013C74 + pop {r3-r7, pc} + nop +_02013CC8: .word 0x020ED5EC +_02013CCC: .word 0x020ED5F0 +_02013CD0: .word 0x0000FFFF + + thumb_func_start FUN_02013CD4 +FUN_02013CD4: ; 0x02013CD4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0x18 + bl FUN_02016998 + add r4, r0, #0x0 + bne _02013CE8 + bl ErrorHandling +_02013CE8: + ldr r0, [r5, #0x0] + ldr r1, [r5, #0xc] + bl FUN_02013F68 + str r0, [r4, #0x0] + ldr r0, [r5, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0x4] + ldr r1, [r5, #0xc] + bl FUN_02013F98 + str r0, [r4, #0x8] + ldr r0, [r5, #0x4] + str r0, [r4, #0xc] + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + bl FUN_02013FC8 + str r0, [r4, #0x10] + ldr r0, [r5, #0x8] + str r0, [r4, #0x14] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02013D18 +FUN_02013D18: ; 0x02013D18 + push {r4, lr} + add r4, r0, #0x0 + bne _02013D22 + bl ErrorHandling +_02013D22: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013D2C + bl ErrorHandling +_02013D2C: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02013D36 + bl ErrorHandling +_02013D36: + ldr r0, [r4, #0x10] + cmp r0, #0x0 + bne _02013D40 + bl ErrorHandling +_02013D40: + ldr r0, [r4, #0x0] + bl FUN_02016A18 + ldr r0, [r4, #0x8] + bl FUN_02016A18 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02013D5C +FUN_02013D5C: ; 0x02013D5C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02013D90 ; =0x04000444 + mov r6, #0x0 + str r6, [r0, #0x0] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + ble _02013D86 + add r4, r6, #0x0 +_02013D6E: + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r1, [r0, #0x20] + cmp r1, #0x0 + beq _02013D7C + bl FUN_020140D8 +_02013D7C: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x40 + cmp r6, r0 + blt _02013D6E +_02013D86: + ldr r0, _02013D94 ; =0x04000448 + mov r1, #0x1 + str r1, [r0, #0x0] + pop {r4-r6, pc} + nop +_02013D90: .word 0x04000444 +_02013D94: .word 0x04000448 + + thumb_func_start FUN_02013D98 +FUN_02013D98: ; 0x02013D98 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl FUN_02014024 + add r4, r0, #0x0 + bne _02013DAA + bl ErrorHandling +_02013DAA: + ldr r0, [r5, #0x4] + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _02013DB6 + bl ErrorHandling +_02013DB6: + ldr r0, [r5, #0x4] + bl FUN_0201407C + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013DC6 + bl ErrorHandling +_02013DC6: + ldr r0, [r5, #0x4] + ldr r1, [r4, #0x0] + add r2, r4, #0x4 + bl FUN_020140A4 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02013DD4 +FUN_02013DD4: ; 0x02013DD4 + push {r4, lr} + ldr r1, _02013DE8 ; =0x021064BC + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + blx r1 + add r0, r4, #0x0 + bl FUN_02013F50 + pop {r4, pc} + .balign 4 +_02013DE8: .word 0x021064BC + + thumb_func_start FUN_02013DEC +FUN_02013DEC: ; 0x02013DEC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r6, #0x0 + cmp r0, #0x0 + ble _02013E12 + add r4, r6, #0x0 +_02013DFA: + ldr r1, [r5, #0x8] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02013E08 + add r0, r1, r4 + bl FUN_02013DD4 +_02013E08: + ldr r0, [r5, #0xc] + add r6, r6, #0x1 + add r4, #0x28 + cmp r6, r0 + blt _02013DFA +_02013E12: + pop {r4-r6, pc} + + thumb_func_start FUN_02013E14 +FUN_02013E14: ; 0x02013E14 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl FUN_02014050 + add r4, r0, #0x0 + bne _02013E26 + bl ErrorHandling +_02013E26: + ldr r0, [r5, #0x8] + bl FUN_02014090 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02013E36 + bl ErrorHandling +_02013E36: + ldr r0, [r5, #0x4] + ldr r1, [r4, #0x0] + add r2, r4, #0x4 + bl FUN_020140B4 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02013E44 +FUN_02013E44: ; 0x02013E44 + push {r4, lr} + ldr r1, _02013E58 ; =0x021064C4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + blx r1 + add r0, r4, #0x0 + bl FUN_02013F5C + pop {r4, pc} + .balign 4 +_02013E58: .word 0x021064C4 + + thumb_func_start FUN_02013E5C +FUN_02013E5C: ; 0x02013E5C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + mov r6, #0x0 + cmp r0, #0x0 + ble _02013E82 + add r4, r6, #0x0 +_02013E6A: + ldr r1, [r5, #0x10] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02013E78 + add r0, r1, r4 + bl FUN_02013E44 +_02013E78: + ldr r0, [r5, #0x14] + add r6, r6, #0x1 + add r4, #0x18 + cmp r6, r0 + blt _02013E6A +_02013E82: + pop {r4-r6, pc} + + thumb_func_start FUN_02013E84 +FUN_02013E84: ; 0x02013E84 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl FUN_02013FF8 + add r4, r0, #0x0 + bne _02013E96 + bl ErrorHandling +_02013E96: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02014218 + mov r0, #0x1 + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02013EA8 +FUN_02013EA8: ; 0x02013EA8 + ldr r3, _02013EAC ; =FUN_02013F30 + bx r3 + .balign 4 +_02013EAC: .word FUN_02013F30 + + thumb_func_start FUN_02013EB0 +FUN_02013EB0: ; 0x02013EB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02013EBE + bl ErrorHandling +_02013EBE: + str r4, [r5, #0x20] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02013EC4 +FUN_02013EC4: ; 0x02013EC4 + strh r1, [r0, #0x0] + strh r2, [r0, #0x2] + bx lr + .balign 4 + + thumb_func_start FUN_02013ECC +FUN_02013ECC: ; 0x02013ECC + ldrh r1, [r0, #0x2] + ldrh r0, [r0, #0x0] + lsl r1, r1, #0x10 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start FUN_02013ED8 +FUN_02013ED8: ; 0x02013ED8 + strh r1, [r0, #0x4] + strh r2, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start FUN_02013EE0 +FUN_02013EE0: ; 0x02013EE0 + str r1, [r0, #0xc] + str r2, [r0, #0x10] + bx lr + .balign 4 + + thumb_func_start FUN_02013EE8 +FUN_02013EE8: ; 0x02013EE8 + strh r1, [r0, #0x8] + strh r2, [r0, #0xa] + bx lr + .balign 4 + + thumb_func_start FUN_02013EF0 +FUN_02013EF0: ; 0x02013EF0 + ldrh r1, [r0, #0xa] + ldrh r0, [r0, #0x8] + lsl r1, r1, #0x10 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start FUN_02013EFC +FUN_02013EFC: ; 0x02013EFC + str r1, [r0, #0x14] + bx lr + + thumb_func_start FUN_02013F00 +FUN_02013F00: ; 0x02013F00 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start FUN_02013F04 +FUN_02013F04: ; 0x02013F04 + add r0, #0x3e + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02013F0C +FUN_02013F0C: ; 0x02013F0C + strh r1, [r0, #0x3c] + bx lr + + thumb_func_start FUN_02013F10 +FUN_02013F10: ; 0x02013F10 + str r1, [r0, #0x24] + bx lr + + thumb_func_start FUN_02013F14 +FUN_02013F14: ; 0x02013F14 + str r1, [r0, #0x28] + bx lr + + thumb_func_start FUN_02013F18 +FUN_02013F18: ; 0x02013F18 + str r1, [r0, #0x2c] + bx lr + + thumb_func_start FUN_02013F1C +FUN_02013F1C: ; 0x02013F1C + str r1, [r0, #0x30] + bx lr + + thumb_func_start FUN_02013F20 +FUN_02013F20: ; 0x02013F20 + cmp r1, #0x0 + bne _02013F28 + str r2, [r0, #0x34] + bx lr +_02013F28: + str r2, [r0, #0x38] + bx lr + + thumb_func_start FUN_02013F2C +FUN_02013F2C: ; 0x02013F2C + str r1, [r0, #0x18] + bx lr + + thumb_func_start FUN_02013F30 +FUN_02013F30: ; 0x02013F30 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x40 + bl memset + add r0, r4, #0x0 + mov r1, #0x1f + add r0, #0x3e + strb r1, [r0, #0x0] + ldr r0, _02013F4C ; =0x00007FFF + strh r0, [r4, #0x3c] + pop {r4, pc} + nop +_02013F4C: .word 0x00007FFF + + thumb_func_start FUN_02013F50 +FUN_02013F50: ; 0x02013F50 + ldr r3, _02013F58 ; =FUN_020B1A24 + mov r1, #0x0 + stmia r0!, {r1} + bx r3 + .balign 4 +_02013F58: .word FUN_020B1A24 + + thumb_func_start FUN_02013F5C +FUN_02013F5C: ; 0x02013F5C + ldr r3, _02013F64 ; =FUN_020B19DC + mov r1, #0x0 + stmia r0!, {r1} + bx r3 + .balign 4 +_02013F64: .word FUN_020B19DC + + thumb_func_start FUN_02013F68 +FUN_02013F68: ; 0x02013F68 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + lsl r1, r6, #0x6 + bl FUN_02016998 + add r7, r0, #0x0 + bne _02013F7C + bl ErrorHandling +_02013F7C: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013F92 + add r5, r7, #0x0 +_02013F84: + add r0, r5, #0x0 + bl FUN_02013F30 + add r4, r4, #0x1 + add r5, #0x40 + cmp r4, r6 + blt _02013F84 +_02013F92: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02013F98 +FUN_02013F98: ; 0x02013F98 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x28 + mul r1, r6 + bl FUN_02016998 + add r7, r0, #0x0 + bne _02013FAE + bl ErrorHandling +_02013FAE: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013FC4 + add r5, r7, #0x0 +_02013FB6: + add r0, r5, #0x0 + bl FUN_02013F50 + add r4, r4, #0x1 + add r5, #0x28 + cmp r4, r6 + blt _02013FB6 +_02013FC4: + add r0, r7, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02013FC8 +FUN_02013FC8: ; 0x02013FC8 + push {r3-r7, lr} + add r6, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x18 + mul r1, r6 + bl FUN_02016998 + add r7, r0, #0x0 + bne _02013FDE + bl ErrorHandling +_02013FDE: + mov r4, #0x0 + cmp r6, #0x0 + ble _02013FF4 + add r5, r7, #0x0 +_02013FE6: + add r0, r5, #0x0 + bl FUN_02013F5C + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, r6 + blt _02013FE6 +_02013FF4: + add r0, r7, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02013FF8 +FUN_02013FF8: ; 0x02013FF8 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _0201401C + ldr r3, [r0, #0x0] + add r2, r3, #0x0 +_02014006: + ldr r0, [r2, #0x1c] + cmp r0, #0x0 + bne _02014014 + lsl r0, r1, #0x6 + add r0, r3, r0 + pop {r3-r4} + bx lr +_02014014: + add r1, r1, #0x1 + add r2, #0x40 + cmp r1, r4 + blt _02014006 +_0201401C: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_02014024 +FUN_02014024: ; 0x02014024 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _0201404A + ldr r3, [r0, #0x8] + add r2, r3, #0x0 +_02014032: + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _02014042 + mov r0, #0x28 + mul r0, r1 + add r0, r3, r0 + pop {r3-r4} + bx lr +_02014042: + add r1, r1, #0x1 + add r2, #0x28 + cmp r1, r4 + blt _02014032 +_0201404A: + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_02014050 +FUN_02014050: ; 0x02014050 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r1, #0x0 + cmp r4, #0x0 + ble _02014076 + ldr r3, [r0, #0x10] + add r2, r3, #0x0 +_0201405E: + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _0201406E + mov r0, #0x18 + mul r0, r1 + add r0, r3, r0 + pop {r3-r4} + bx lr +_0201406E: + add r1, r1, #0x1 + add r2, #0x18 + cmp r1, r4 + blt _0201405E +_02014076: + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201407C +FUN_0201407C: ; 0x0201407C + push {r3, lr} + ldr r3, _0201408C ; =0x021064B8 + mov r1, #0x0 + ldr r0, [r0, #0x10] + ldr r3, [r3, #0x0] + add r2, r1, #0x0 + blx r3 + pop {r3, pc} + .balign 4 +_0201408C: .word 0x021064B8 + + thumb_func_start FUN_02014090 +FUN_02014090: ; 0x02014090 + push {r3, lr} + ldr r3, _020140A0 ; =0x021064C0 + mov r1, #0x0 + ldr r3, [r3, #0x0] + lsl r0, r0, #0x5 + add r2, r1, #0x0 + blx r3 + pop {r3, pc} + .balign 4 +_020140A0: .word 0x021064C0 + + thumb_func_start FUN_020140A4 +FUN_020140A4: ; 0x020140A4 + push {r3, lr} + lsl r1, r1, #0x10 + add r3, r2, #0x0 + lsr r1, r1, #0xd + mov r2, #0x0 + bl FUN_020B1528 + pop {r3, pc} + + thumb_func_start FUN_020140B4 +FUN_020140B4: ; 0x020140B4 + push {r3-r5, lr} + add r3, r2, #0x0 + ldr r2, _020140D4 ; =0xFFFF0000 + add r5, r0, #0x0 + and r2, r1 + lsr r2, r2, #0x10 + lsl r1, r1, #0x10 + ldr r4, [r5, #0x8] + lsl r2, r2, #0x3 + str r2, [r5, #0x8] + lsr r1, r1, #0xd + mov r2, #0x0 + bl FUN_020B1240 + str r4, [r5, #0x8] + pop {r3-r5, pc} + .balign 4 +_020140D4: .word 0xFFFF0000 + + thumb_func_start FUN_020140D8 +FUN_020140D8: ; 0x020140D8 + push {r3-r7, lr} + sub sp, #0x18 + ldr r7, _020141F8 ; =0x04000444 + mov r6, #0x0 + add r5, r0, #0x0 + str r6, [r7, #0x0] + ldrh r1, [r5, #0x3c] + ldr r0, _020141FC ; =0x7FFF8000 + orr r0, r1 + str r0, [r7, #0x7c] + add r0, r7, #0x0 + ldr r1, _02014200 ; =0x00004210 + add r0, #0x80 + str r1, [r0, #0x0] + ldr r3, [r5, #0x24] + ldr r4, [r3, #0x8] + ldr r2, [r3, #0x10] + ldr r1, [r3, #0x4] + ldr r0, [r3, #0x0] + lsl r3, r2, #0x1d + lsl r2, r1, #0x17 + lsl r1, r0, #0x14 + ldr r0, [r5, #0x28] + lsl r4, r4, #0x1a + lsr r0, r0, #0x3 + orr r4, r0 + mov r0, #0x1 + lsl r0, r0, #0x1e + orr r0, r4 + orr r0, r1 + orr r0, r2 + orr r0, r3 + str r0, [r7, #0x64] + ldr r0, [r5, #0x24] + ldr r0, [r0, #0x8] + cmp r0, #0x2 + bne _02014124 + mov r6, #0x1 +_02014124: + ldr r0, [r5, #0x30] + ldr r1, [r5, #0x2c] + lsl r0, r0, #0x5 + add r1, r1, r0 + mov r0, #0x4 + sub r0, r0, r6 + lsr r1, r0 + ldr r2, _02014204 ; =0x040004AC + add r0, r5, #0x0 + str r1, [r2, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + sub r2, #0x8 + lsl r1, r0, #0x10 + mov r0, #0xc0 + orr r0, r1 + str r0, [r2, #0x0] + ldr r0, [r5, #0x34] + cmp r0, #0x0 + beq _02014156 + mov r0, #0x8 + ldrsh r0, [r5, r0] + mov r7, #0x0 + str r0, [sp, #0x14] + b _0201415E +_02014156: + mov r0, #0x8 + ldrsh r7, [r5, r0] + mov r0, #0x0 + str r0, [sp, #0x14] +_0201415E: + ldr r0, [r5, #0x38] + cmp r0, #0x0 + beq _0201416C + mov r0, #0xa + ldrsh r6, [r5, r0] + mov r4, #0x0 + b _02014172 +_0201416C: + mov r0, #0xa + ldrsh r4, [r5, r0] + mov r6, #0x0 +_02014172: + ldr r0, [r5, #0x14] + mov r1, #0x6 + lsl r2, r0, #0xc + mov r0, #0x2 + ldrsh r0, [r5, r0] + ldrsh r1, [r5, r1] + mov r3, #0x4 + ldrsh r3, [r5, r3] + add r0, r0, r1 + lsl r1, r0, #0xc + mov r0, #0x0 + ldrsh r0, [r5, r0] + add r0, r0, r3 + ldr r3, _02014208 ; =0x04000470 + lsl r0, r0, #0xc + str r0, [r3, #0x0] + str r1, [r3, #0x0] + str r2, [r3, #0x0] + ldr r0, [r5, #0x18] + ldr r1, _0201420C ; =0x020FFA38 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r0, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r1, r0] + ldrsh r1, [r1, r2] + bl G3_RotZ + ldr r2, [r5, #0x10] + ldr r0, [r5, #0xc] + ldr r1, _02014210 ; =0x0400046C + mov r3, #0x8 + str r0, [r1, #0x0] + str r2, [r1, #0x0] + lsr r0, r1, #0xe + str r0, [r1, #0x0] + mov r2, #0x4 + mov r0, #0x6 + ldrsh r2, [r5, r2] + ldrsh r0, [r5, r0] + neg r2, r2 + neg r0, r0 + lsl r2, r2, #0xc + lsl r0, r0, #0xc + str r2, [r1, #0x4] + str r0, [r1, #0x4] + mov r0, #0x0 + str r0, [r1, #0x4] + mov r1, #0xa + ldrsh r1, [r5, r1] + add r2, r0, #0x0 + str r1, [sp, #0x0] + ldr r1, [sp, #0x14] + str r1, [sp, #0x4] + str r6, [sp, #0x8] + str r7, [sp, #0xc] + str r4, [sp, #0x10] + ldrsh r3, [r5, r3] + add r1, r0, #0x0 + bl FUN_020B0250 + ldr r0, _02014214 ; =0x04000448 + mov r1, #0x1 + str r1, [r0, #0x0] + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_020141F8: .word 0x04000444 +_020141FC: .word 0x7FFF8000 +_02014200: .word 0x00004210 +_02014204: .word 0x040004AC +_02014208: .word 0x04000470 +_0201420C: .word 0x020FFA38 +_02014210: .word 0x0400046C +_02014214: .word 0x04000448 + + thumb_func_start FUN_02014218 +FUN_02014218: ; 0x02014218 + push {r3-r7, lr} + add r5, r1, #0x0 + ldr r1, [r5, #0x4] + add r7, r0, #0x0 + ldr r2, [r1, #0x10] + mov r6, #0x8 + mov r0, #0x0 + cmp r2, #0x0 + ble _02014236 +_0201422A: + ldr r2, [r5, #0x4] + add r0, r0, #0x1 + ldr r2, [r2, #0x10] + lsl r6, r6, #0x1 + cmp r0, r2 + blt _0201422A +_02014236: + ldr r1, [r1, #0x14] + mov r4, #0x8 + mov r0, #0x0 + cmp r1, #0x0 + ble _0201424C +_02014240: + ldr r1, [r5, #0x4] + add r0, r0, #0x1 + ldr r1, [r1, #0x14] + lsl r4, r4, #0x1 + cmp r0, r1 + blt _02014240 +_0201424C: + mov r1, #0xc + mov r2, #0xe + ldrsh r1, [r5, r1] + ldrsh r2, [r5, r2] + add r0, r7, #0x0 + bl FUN_02013EC4 + lsr r1, r6, #0x1f + lsr r2, r4, #0x1f + add r1, r6, r1 + add r2, r4, r2 + lsl r1, r1, #0xf + lsl r2, r2, #0xf + add r0, r7, #0x0 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_02013ED8 + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [r7, #0xc] + str r0, [r7, #0x10] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl FUN_02013EE8 + ldr r1, [r5, #0x18] + add r0, r7, #0x0 + bl FUN_02013EFC + ldr r1, [r5, #0x14] + add r0, r7, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02013F04 + ldr r1, [r5, #0x4] + add r0, r7, #0x0 + add r1, #0x10 + bl FUN_02013F10 + ldr r0, [r5, #0x4] + mov r1, #0x0 + add r0, r0, #0x4 + bl FUN_020B1A14 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl FUN_02013F14 + ldr r0, [r5, #0x8] + mov r1, #0x0 + add r0, r0, #0x4 + bl FUN_020B19C4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl FUN_02013F18 + ldrh r1, [r5, #0x1c] + add r0, r7, #0x0 + bl FUN_02013F1C + mov r1, #0x0 + add r0, r7, #0x0 + add r2, r1, #0x0 + bl FUN_02013F20 + add r0, r7, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl FUN_02013F20 + ldrh r1, [r5, #0x10] + add r0, r7, #0x0 + bl FUN_02013F2C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020142EC +FUN_020142EC: ; 0x020142EC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + ldr r0, _02014394 ; =FUN_020143DC + mov r1, #0x50 + mov r2, #0x0 + bl FUN_020061E8 + str r0, [sp, #0x4] + bl FUN_0201B6C8 + add r4, r0, #0x0 + cmp r5, #0x0 + beq _02014330 + cmp r6, #0x0 + bne _02014320 + add r0, r5, #0x0 + mov r1, #0x0 + bl FUN_020031FC + str r0, [sp, #0x0] + ldr r0, _02014398 ; =FUN_020144E0 + str r0, [r4, #0x4] + b _0201434A +_02014320: + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_020031FC + str r0, [sp, #0x0] + ldr r0, _0201439C ; =FUN_020144FC + str r0, [r4, #0x4] + b _0201434A +_02014330: + cmp r6, #0x0 + bne _02014340 + bl FUN_020222E8 + str r0, [sp, #0x0] + ldr r0, _020143A0 ; =FUN_020144B0 + str r0, [r4, #0x4] + b _0201434A +_02014340: + bl FUN_020222F8 + str r0, [sp, #0x0] + ldr r0, _020143A4 ; =FUN_020144C8 + str r0, [r4, #0x4] +_0201434A: + ldr r1, [sp, #0x0] + lsl r0, r7, #0x5 + str r0, [sp, #0x8] + add r0, r1, r0 + add r1, r4, #0x0 + add r1, #0xc + mov r2, #0x20 + bl MIi_CpuCopy16 + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + mov r2, #0x20 + add r0, r1, r0 + add r1, r4, #0x0 + add r1, #0x2c + bl MIi_CpuCopy16 + ldr r0, [sp, #0x4] + mov r1, #0x1 + str r0, [r4, #0x0] + add r0, r4, #0x0 + str r5, [r4, #0x8] + add r0, #0x4c + strb r6, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4d + strb r7, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4e + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x4f + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02014394: .word FUN_020143DC +_02014398: .word FUN_020144E0 +_0201439C: .word FUN_020144FC +_020143A0: .word FUN_020144B0 +_020143A4: .word FUN_020144C8 + + thumb_func_start FUN_020143A8 +FUN_020143A8: ; 0x020143A8 + cmp r1, #0x0 + beq _020143B6 + cmp r1, #0x1 + beq _020143BE + cmp r1, #0x2 + beq _020143C6 + bx lr +_020143B6: + mov r1, #0x0 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr +_020143BE: + mov r1, #0x2 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr +_020143C6: + mov r1, #0x3 + add r0, #0x4e + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_020143D0 +FUN_020143D0: ; 0x020143D0 + ldr r3, _020143D8 ; =FUN_0200621C + ldr r0, [r0, #0x0] + bx r3 + nop +_020143D8: .word FUN_0200621C + + thumb_func_start FUN_020143DC +FUN_020143DC: ; 0x020143DC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bhi _02014452 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020143F8: ; jump table (using 16-bit offset) + .short _02014400 - _020143F8 - 2; case 0 + .short _02014410 - _020143F8 - 2; case 1 + .short _02014452 - _020143F8 - 2; case 2 + .short _02014444 - _020143F8 - 2; case 3 +_02014400: + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x4f + strb r1, [r0, #0x0] + mov r0, #0x1 + add r4, #0x4e + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_02014410: + add r0, r4, #0x0 + bl FUN_02014454 + cmp r0, #0x1 + bne _02014424 + add r1, r4, #0x0 + ldr r2, [r4, #0x4] + add r0, r4, #0x0 + add r1, #0x2c + blx r2 +_02014424: + add r0, r4, #0x0 + add r0, #0x4f + ldrb r0, [r0, #0x0] + add r1, r0, #0x1 + add r0, r4, #0x0 + add r0, #0x4f + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x4f + ldrb r0, [r0, #0x0] + cmp r0, #0x20 + bne _02014452 + mov r0, #0x0 + add r4, #0x4f + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_02014444: + ldr r2, [r4, #0x4] + add r0, r4, #0x0 + add r1, #0xc + blx r2 + add r0, r5, #0x0 + bl FUN_0200621C +_02014452: + pop {r3-r5, pc} + + thumb_func_start FUN_02014454 +FUN_02014454: ; 0x02014454 + push {r4-r5} + add r1, r0, #0x0 + add r1, #0x4f + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02014482 + mov r1, #0x1e + mov r4, #0x0 + mov r3, #0x1 + lsl r1, r1, #0xa +_02014468: + add r2, r3, #0x0 + lsl r2, r4 + tst r2, r1 + beq _02014474 + ldrh r2, [r0, #0xc] + strh r2, [r0, #0x2c] +_02014474: + add r4, r4, #0x1 + add r0, r0, #0x2 + cmp r4, #0x10 + blo _02014468 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02014482: + cmp r1, #0x18 + bne _020144AA + mov r1, #0x1e + mov r5, #0x0 + add r4, r0, #0x0 + mov r3, #0x1 + lsl r1, r1, #0xa +_02014490: + add r2, r3, #0x0 + lsl r2, r5 + tst r2, r1 + beq _0201449C + ldrh r2, [r0, #0x2a] + strh r2, [r4, #0x2c] +_0201449C: + add r5, r5, #0x1 + add r4, r4, #0x2 + cmp r5, #0x10 + blo _02014490 + mov r0, #0x1 + pop {r4-r5} + bx lr +_020144AA: + mov r0, #0x0 + pop {r4-r5} + bx lr + + thumb_func_start FUN_020144B0 +FUN_020144B0: ; 0x020144B0 + push {r3, lr} + add r3, r0, #0x0 + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r0, #0x0 + mov r2, #0x20 + lsl r3, r3, #0x15 + lsr r3, r3, #0x10 + bl FUN_02017FB4 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020144C8 +FUN_020144C8: ; 0x020144C8 + push {r3, lr} + add r3, r0, #0x0 + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r0, #0x4 + mov r2, #0x20 + lsl r3, r3, #0x15 + lsr r3, r3, #0x10 + bl FUN_02017FB4 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020144E0 +FUN_020144E0: ; 0x020144E0 + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [r3, #0x8] + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r2, #0x0 + lsl r3, r3, #0x14 + lsr r3, r3, #0x10 + bl FUN_02003054 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020144FC +FUN_020144FC: ; 0x020144FC + push {r3, lr} + add r3, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [r3, #0x8] + add r3, #0x4d + ldrb r3, [r3, #0x0] + mov r2, #0x1 + lsl r3, r3, #0x14 + lsr r3, r3, #0x10 + bl FUN_02003054 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02014518 +FUN_02014518: ; 0x02014518 + push {r3-r7, lr} + mov r1, #0x78 + add r7, r0, #0x0 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x78 + add r6, r0, #0x0 + bl MI_CpuFill8 + ldr r2, _02014560 ; =0x0000019E + mov r0, #0x0 + mov r1, #0x1a + add r3, r7, #0x0 + bl FUN_0200A86C + str r0, [r6, #0x0] + mov r4, #0x0 + add r5, r6, #0x0 +_0201453E: + mov r0, #0x16 + add r1, r7, #0x0 + bl FUN_020219F4 + str r0, [r5, #0x4] + ldr r0, [r6, #0x0] + ldr r2, [r5, #0x4] + add r1, r4, #0x0 + bl FUN_0200A8E0 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x1d + blt _0201453E + add r0, r6, #0x0 + pop {r3-r7, pc} + nop +_02014560: .word 0x0000019E + + thumb_func_start FUN_02014564 +FUN_02014564: ; 0x02014564 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r6, #0x0 + mov r4, #0x1c + add r5, #0x70 +_0201456E: + ldr r0, [r5, #0x4] + bl FUN_02021A20 + sub r5, r5, #0x4 + sub r4, r4, #0x1 + bpl _0201456E + ldr r0, [r6, #0x0] + bl FUN_0200A8B8 + add r0, r6, #0x0 + bl FUN_02016A18 + pop {r4-r6, pc} + + thumb_func_start FUN_02014588 +FUN_02014588: ; 0x02014588 + lsl r1, r1, #0x2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_02014590 +FUN_02014590: ; 0x02014590 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0x9c + bl FUN_02016998 + add r1, r5, #0x0 + add r4, r0, #0x0 + bl FUN_020146F0 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020145A8 +FUN_020145A8: ; 0x020145A8 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x9b + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + cmp r1, #0x1 + bne _020145BE + bl FUN_020146C4 +_020145BE: + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020145C8 +FUN_020145C8: ; 0x020145C8 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r2, [r4, #0x0] + add r5, r0, #0x0 + str r2, [r5, #0x7c] + add r2, r5, #0x0 + ldr r3, [r4, #0x4] + add r2, #0x80 + str r3, [r2, #0x0] + add r2, r5, #0x0 + ldrb r3, [r4, #0x10] + add r2, #0x98 + strb r3, [r2, #0x0] + add r2, r5, #0x0 + ldrb r3, [r4, #0x11] + add r2, #0x99 + strb r3, [r2, #0x0] + bl FUN_02014730 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02014754 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02014784 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02014814 + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf + bic r1, r0 + mov r0, #0x1 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x9b + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + add r5, #0x9b + bic r1, r0 + mov r0, #0x80 + orr r0, r1 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02014630 +FUN_02014630: ; 0x02014630 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x9b + ldrb r2, [r1, #0x0] + mov r1, #0xf0 + bic r2, r1 + mov r1, #0x80 + orr r2, r1 + add r1, r4, #0x0 + add r1, #0x9b + strb r2, [r1, #0x0] + bl FUN_0201466C + cmp r0, #0x0 + bne _0201466A + add r1, r4, #0x0 + add r1, #0x9b + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + bne _0201466A + add r4, #0x9a + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02014668 + mov r0, #0x3 + pop {r4, pc} +_02014668: + mov r0, #0x4 +_0201466A: + pop {r4, pc} + + thumb_func_start FUN_0201466C +FUN_0201466C: ; 0x0201466C + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x9b + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #0x1 + beq _02014680 + bl ErrorHandling +_02014680: + add r0, r4, #0x0 + add r0, #0x9a + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _02014690 + ldr r0, [r4, #0x0] + bl FUN_02022144 +_02014690: + add r1, r4, #0x0 + add r1, #0x9a + ldrb r2, [r1, #0x0] + mov r0, #0x0 + cmp r2, #0x3 + beq _020146AA + add r1, r4, #0x0 + mov r0, #0x38 + add r1, #0xc + mul r0, r2 + add r0, r1, r0 + bl FUN_02014930 +_020146AA: + cmp r0, #0x1 + bne _020146BE + add r4, #0x9a + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020146BA + mov r0, #0x1 + pop {r4, pc} +_020146BA: + mov r0, #0x2 + pop {r4, pc} +_020146BE: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020146C4 +FUN_020146C4: ; 0x020146C4 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + bl FUN_0202212C + add r5, r6, #0x0 + mov r4, #0x0 + add r5, #0xc +_020146D4: + add r0, r5, #0x0 + bl FUN_02014970 + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, #0x2 + blt _020146D4 + add r0, r6, #0x0 + add r6, #0x84 + ldr r1, [r6, #0x0] + bl FUN_020146F0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020146F0 +FUN_020146F0: ; 0x020146F0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r1, #0x0 + mov r2, #0x9c + bl memset + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf + bic r1, r0 + add r0, r5, #0x0 + add r0, #0x9b + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x84 + str r4, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x3 + add r0, #0x9a + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x9b + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + add r5, #0x9b + bic r1, r0 + mov r0, #0x80 + orr r0, r1 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02014730 +FUN_02014730: ; 0x02014730 + push {r3, lr} + sub sp, #0x8 + add r3, r0, #0x0 + ldr r0, [r1, #0x8] + mov r1, #0x1 + str r0, [sp, #0x0] + add r0, r3, #0x0 + add r0, #0x84 + ldr r0, [r0, #0x0] + str r0, [sp, #0x4] + ldr r2, [r3, #0x7c] + add r3, #0x80 + ldr r3, [r3, #0x0] + mov r0, #0x54 + bl FUN_02014A3C + add sp, #0x8 + pop {r3, pc} + + thumb_func_start FUN_02014754 +FUN_02014754: ; 0x02014754 + push {r3, lr} + sub sp, #0x8 + add r3, r1, #0x0 + add r1, r0, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + cmp r1, #0x4 + bhs _02014768 + mov r2, #0x0 + b _0201476A +_02014768: + mov r2, #0x4 +_0201476A: + mov r1, #0x40 + str r1, [sp, #0x0] + add r0, #0x84 + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r0, [sp, #0x4] + ldr r3, [r3, #0xc] + mov r0, #0x54 + lsl r3, r3, #0x5 + bl FUN_02014A8C + add sp, #0x8 + pop {r3, pc} + + thumb_func_start FUN_02014784 +FUN_02014784: ; 0x02014784 + push {r3-r7, lr} + sub sp, #0x30 + add r7, r0, #0x0 + mov r3, #0x0 + add r4, r7, #0x0 +_0201478E: + add r0, r4, #0x0 + add r3, r3, #0x1 + lsl r2, r3, #0xc + add r0, #0x88 + add r4, r4, #0x4 + str r2, [r0, #0x0] + cmp r3, #0x4 + blt _0201478E + ldr r0, [r7, #0x7c] + mov r5, #0x0 + str r0, [sp, #0x0] + add r0, r7, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + add r4, r7, #0x0 + str r0, [sp, #0x4] + mov r0, #0x54 + str r0, [sp, #0x8] + ldr r0, [r1, #0x8] + add r6, r5, #0x0 + str r0, [sp, #0x1c] + ldr r0, [r1, #0xc] + add r4, #0xc + str r0, [sp, #0x20] + add r0, r7, #0x0 + add r0, #0x88 + str r0, [sp, #0x24] + mov r0, #0x4 + str r0, [sp, #0x28] + add r0, r7, #0x0 + add r0, #0x98 + ldrb r1, [r0, #0x0] + add r0, sp, #0x20 + strb r1, [r0, #0xc] +_020147D2: + mov r1, #0x0 + mov r2, #0x2 + add r3, sp, #0x0 +_020147D8: + add r0, r5, r2 + str r0, [r3, #0xc] + add r1, r1, #0x1 + add r2, r2, #0x2 + add r3, r3, #0x4 + cmp r1, #0x4 + blt _020147D8 + add r0, r7, #0x0 + add r0, #0x99 + ldrb r0, [r0, #0x0] + add r2, r7, #0x0 + add r2, #0x84 + add r1, r0, r6 + add r0, sp, #0x20 + strb r1, [r0, #0xd] + ldr r0, [sp, #0x20] + add r1, sp, #0x0 + add r0, r0, r5 + str r0, [sp, #0x20] + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + bl FUN_020148A8 + add r5, r5, #0x1 + add r6, r6, #0x4 + add r4, #0x38 + cmp r5, #0x2 + blt _020147D2 + add sp, #0x30 + pop {r3-r7, pc} + + thumb_func_start FUN_02014814 +FUN_02014814: ; 0x02014814 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r4, #0x0 +_02014820: + add r3, r4, #0x0 + add r3, #0x99 + ldrb r3, [r3, #0x0] + add r0, r0, #0x1 + lsl r3, r3, #0x3 + add r3, r3, r1 + strb r3, [r2, #0x4] + add r3, r4, #0x0 + add r3, #0x99 + ldrb r3, [r3, #0x0] + lsl r3, r3, #0x3 + add r3, r3, r1 + add r3, #0x20 + strb r3, [r2, #0x5] + add r3, r4, #0x0 + add r3, #0x98 + ldrb r3, [r3, #0x0] + add r1, #0x20 + lsl r3, r3, #0x3 + strb r3, [r2, #0x6] + add r3, r4, #0x0 + add r3, #0x98 + ldrb r3, [r3, #0x0] + lsl r3, r3, #0x3 + add r3, #0x30 + strb r3, [r2, #0x7] + add r2, r2, #0x4 + cmp r0, #0x2 + blt _02014820 + add r0, r4, #0x0 + add r0, #0x84 + ldr r0, [r0, #0x0] + ldr r2, _02014874 ; =FUN_02014878 + str r0, [sp, #0x0] + add r0, r4, #0x4 + mov r1, #0x2 + add r3, r4, #0x0 + bl FUN_020220C4 + str r0, [r4, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 +_02014874: .word FUN_02014878 + + thumb_func_start FUN_02014878 +FUN_02014878: ; 0x02014878 + push {r4, lr} + add r3, r2, #0x0 + add r3, #0x9b + ldrb r3, [r3, #0x0] + mov r4, #0xf0 + bic r3, r4 + lsl r4, r1, #0x18 + lsr r4, r4, #0x18 + lsl r4, r4, #0x1c + lsr r4, r4, #0x18 + orr r4, r3 + add r3, r2, #0x0 + add r3, #0x9b + strb r4, [r3, #0x0] + cmp r1, #0x0 + bne _020148A2 + add r2, #0x9a + strb r0, [r2, #0x0] + ldr r0, _020148A4 ; =0x000005E4 + bl FUN_020054C8 +_020148A2: + pop {r4, pc} + .balign 4 +_020148A4: .word 0x000005E4 + + thumb_func_start FUN_020148A8 +FUN_020148A8: ; 0x020148A8 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r1, #0x0 + str r2, [sp, #0x8] + str r0, [sp, #0x4] + ldr r1, [r5, #0x24] + ldr r2, [r5, #0x28] + add r0, #0x28 + bl FUN_020149FC + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x4] + ldr r6, [sp, #0x4] + str r1, [r0, #0x0] + ldr r1, [r5, #0x4] + ldr r4, [sp, #0x4] + str r1, [r0, #0x4] + add r0, r5, #0x0 + add r0, #0x2c + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x4] + add r6, #0x18 + add r0, #0x34 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x2d + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x4] + add r7, r5, #0x0 + add r0, #0x35 + strb r1, [r0, #0x0] + mov r0, #0x0 + str r0, [sp, #0xc] +_020148EA: + ldr r0, [sp, #0x8] + mov r2, #0x1 + str r0, [sp, #0x0] + ldr r0, [r5, #0x8] + ldr r1, [r7, #0xc] + add r3, r6, #0x0 + bl FUN_02006BDC + str r0, [r4, #0x8] + ldr r0, [r4, #0x18] + ldr r1, [r5, #0x1c] + bl FUN_02014BA4 + ldr r0, [r4, #0x18] + ldr r1, [r5, #0x20] + bl FUN_02014BC4 + ldr r0, [sp, #0xc] + add r6, r6, #0x4 + add r0, r0, #0x1 + add r7, r7, #0x4 + add r4, r4, #0x4 + str r0, [sp, #0xc] + cmp r0, #0x4 + blt _020148EA + ldr r0, [sp, #0x4] + bl FUN_020149D0 + ldr r0, [sp, #0x4] + mov r1, #0x0 + add r0, #0x36 + str r0, [sp, #0x4] + strb r1, [r0, #0x0] + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start FUN_02014930 +FUN_02014930: ; 0x02014930 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x28 + bl FUN_02014A10 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x36 + ldrb r0, [r0, #0x0] + cmp r0, r4 + beq _02014952 + add r0, r5, #0x0 + bl FUN_020149D0 + add r0, r5, #0x0 + add r0, #0x36 + strb r4, [r0, #0x0] +_02014952: + ldr r0, [r5, #0x2c] + sub r0, r0, #0x1 + cmp r4, r0 + bne _0201495E + mov r0, #0x1 + pop {r3-r5, pc} +_0201495E: + add r5, #0x28 + mov r1, #0x1 + add r0, r5, #0x0 + lsl r1, r1, #0xc + bl FUN_02014A08 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02014970 +FUN_02014970: ; 0x02014970 + push {r4-r6, lr} + sub sp, #0x10 + add r6, r0, #0x0 + add r0, #0x35 + ldrb r0, [r0, #0x0] + ldr r1, [r6, #0x18] + add r3, r6, #0x0 + str r0, [sp, #0x0] + ldrh r0, [r1, #0x0] + mov r2, #0x0 + add r3, #0x34 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x4] + ldrh r0, [r1, #0x2] + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + ldr r1, [r6, #0x4] + ldrb r3, [r3, #0x0] + lsl r1, r1, #0x18 + ldr r0, [r6, #0x0] + lsr r1, r1, #0x18 + bl FUN_02018540 + ldr r1, [r6, #0x4] + ldr r0, [r6, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0201AC68 + mov r4, #0x0 + add r5, r6, #0x0 +_020149B4: + ldr r0, [r5, #0x8] + bl FUN_02016A18 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x4 + blt _020149B4 + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x38 + bl memset + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start FUN_020149D0 +FUN_020149D0: ; 0x020149D0 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, #0x28 + bl FUN_02014A10 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x35 + ldrb r0, [r0, #0x0] + lsl r2, r2, #0x2 + add r2, r4, r2 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + add r4, #0x34 + ldrb r3, [r4, #0x0] + ldr r2, [r2, #0x18] + bl FUN_02014B58 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_020149FC +FUN_020149FC: ; 0x020149FC + str r1, [r0, #0x0] + str r2, [r0, #0x4] + mov r1, #0x0 + str r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start FUN_02014A08 +FUN_02014A08: ; 0x02014A08 + ldr r2, [r0, #0x8] + add r1, r2, r1 + str r1, [r0, #0x8] + bx lr + + thumb_func_start FUN_02014A10 +FUN_02014A10: ; 0x02014A10 + push {r4-r5} + ldr r5, [r0, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + bls _02014A34 + ldr r3, [r0, #0x0] + ldr r4, [r0, #0x8] +_02014A1E: + ldr r1, [r3, #0x0] + cmp r1, r4 + blt _02014A2A + add r0, r2, #0x0 + pop {r4-r5} + bx lr +_02014A2A: + ldr r1, [r0, #0x4] + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, r1 + blo _02014A1E +_02014A34: + sub r0, r5, #0x1 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_02014A3C +FUN_02014A3C: ; 0x02014A3C + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + str r1, [sp, #0x4] + ldr r0, [sp, #0x24] + mov r1, #0x14 + add r5, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_02014A58: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _02014A58 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x4] + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r2, #0x1 + add r3, r4, #0x4 + bl FUN_02006BB0 + str r0, [r4, #0x8] + str r5, [r4, #0x0] + ldr r0, [sp, #0x20] + str r6, [r4, #0xc] + str r0, [r4, #0x10] + ldr r0, _02014A88 ; =FUN_02014AD4 + add r1, r4, #0x0 + mov r2, #0x80 + bl FUN_0200CA98 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02014A88: .word FUN_02014AD4 + + thumb_func_start FUN_02014A8C +FUN_02014A8C: ; 0x02014A8C + push {r3-r7, lr} + add r7, r0, #0x0 + str r1, [sp, #0x0] + ldr r0, [sp, #0x1c] + mov r1, #0x14 + add r5, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x14 + mov r0, #0x0 +_02014AA6: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _02014AA6 + ldr r1, [sp, #0x0] + ldr r3, [sp, #0x1c] + add r0, r7, #0x0 + add r2, r4, #0x0 + bl FUN_02006C08 + str r0, [r4, #0x4] + str r5, [r4, #0x8] + ldr r0, [sp, #0x18] + str r6, [r4, #0xc] + str r0, [r4, #0x10] + ldr r0, _02014AD0 ; =FUN_02014B10 + add r1, r4, #0x0 + mov r2, #0x80 + bl FUN_0200CA98 + pop {r3-r7, pc} + .balign 4 +_02014AD0: .word FUN_02014B10 + + thumb_func_start FUN_02014AD4 +FUN_02014AD4: ; 0x02014AD4 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x4] + add r5, r0, #0x0 + ldr r0, [r1, #0x14] + ldr r1, [r1, #0x10] + bl DC_FlushRange + ldr r3, [r4, #0x4] + ldr r0, [r4, #0x10] + str r0, [sp, #0x0] + ldr r1, [r4, #0xc] + ldr r2, [r3, #0x14] + lsl r1, r1, #0x18 + ldr r0, [r4, #0x0] + ldr r3, [r3, #0x10] + lsr r1, r1, #0x18 + bl FUN_02017E14 + add r0, r5, #0x0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x8] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02014B10 +FUN_02014B10: ; 0x02014B10 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x10] + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _02014B34 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0xc] + ldr r0, [r0, #0xc] + ldr r2, [r4, #0x10] + bl GX_LoadBGPltt + b _02014B44 +_02014B34: + cmp r0, #0x4 + bne _02014B44 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0xc] + ldr r0, [r0, #0xc] + ldr r2, [r4, #0x10] + bl GXS_LoadBGPltt +_02014B44: + add r0, r5, #0x0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x4] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r3-r5, pc} + + thumb_func_start FUN_02014B58 +FUN_02014B58: ; 0x02014B58 + push {r3-r6, lr} + sub sp, #0x1c + add r4, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldrh r6, [r1, #0x0] + ldrh r3, [r1, #0x2] + lsl r2, r2, #0x18 + lsl r6, r6, #0x15 + lsr r6, r6, #0x18 + lsl r3, r3, #0x15 + str r6, [sp, #0x0] + lsr r3, r3, #0x18 + str r3, [sp, #0x4] + add r1, #0xc + str r1, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r6, [sp, #0x14] + str r3, [sp, #0x18] + ldr r3, [sp, #0x30] + lsl r1, r4, #0x18 + lsl r3, r3, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + add r5, r0, #0x0 + bl FUN_02018170 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl FUN_0201AC68 + add sp, #0x1c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_02014BA4 +FUN_02014BA4: ; 0x02014BA4 + push {r3-r4} + ldr r2, [r0, #0x8] + add r0, #0xc + lsr r4, r2, #0x1 + mov r3, #0x0 + cmp r4, #0x0 + ble _02014BC0 +_02014BB2: + ldrh r2, [r0, #0x0] + add r3, r3, #0x1 + add r2, r2, r1 + strh r2, [r0, #0x0] + add r0, r0, #0x2 + cmp r3, r4 + blt _02014BB2 +_02014BC0: + pop {r3-r4} + bx lr + + thumb_func_start FUN_02014BC4 +FUN_02014BC4: ; 0x02014BC4 + push {r4-r5} + ldr r2, [r0, #0x8] + add r0, #0xc + lsr r3, r2, #0x1 + mov r2, #0x0 + cmp r3, #0x0 + ble _02014BEA + ldr r4, _02014BF0 ; =0x00000FFF + lsl r1, r1, #0xc +_02014BD6: + ldrh r5, [r0, #0x0] + add r2, r2, #0x1 + and r5, r4 + strh r5, [r0, #0x0] + ldrh r5, [r0, #0x0] + orr r5, r1 + strh r5, [r0, #0x0] + add r0, r0, #0x2 + cmp r2, r3 + blt _02014BD6 +_02014BEA: + pop {r4-r5} + bx lr + nop +_02014BF0: .word 0x00000FFF + + thumb_func_start FUN_02014BF4 +FUN_02014BF4: ; 0x02014BF4 + push {r3-r7, lr} + add r7, r1, #0x0 + mov r1, #0xc + add r5, r0, #0x0 + add r6, r2, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + strb r6, [r4, #0x8] + mov r0, #0x1d + strb r7, [r4, #0x9] + lsl r0, r0, #0x4 + add r6, r7, #0x0 + mul r6, r0 + add r0, r5, #0x0 + add r1, r6, #0x0 + str r5, [r4, #0x4] + bl FUN_02016998 + mov r1, #0x0 + add r2, r6, #0x0 + str r0, [r4, #0x0] + bl MI_CpuFill8 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02014C28 +FUN_02014C28: ; 0x02014C28 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02014C3C +FUN_02014C3C: ; 0x02014C3C + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x19 + blo _02014C48 + bl ErrorHandling +_02014C48: + ldr r0, _02014C50 ; =0x020ED64C + ldrb r0, [r0, r4] + pop {r4, pc} + nop +_02014C50: .word 0x020ED64C + + thumb_func_start FUN_02014C54 +FUN_02014C54: ; 0x02014C54 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + str r3, [sp, #0x4] + add r0, r2, #0x0 + ldrh r6, [r0, #0x0] + ldrh r0, [r0, #0x2] + add r7, r1, #0x0 + ldrb r1, [r5, #0x9] + str r0, [sp, #0x8] + ldr r0, [sp, #0x4] + str r2, [sp, #0x0] + cmp r0, r1 + blo _02014C74 + bl ErrorHandling +_02014C74: + ldr r0, [sp, #0x4] + mov r1, #0x1d + add r4, r0, #0x0 + lsl r1, r1, #0x4 + ldr r0, [r5, #0x0] + mul r4, r1 + add r0, r0, r4 + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _02014C8C + bl ErrorHandling +_02014C8C: + ldr r0, [r5, #0x0] + mov r2, #0x1d + add r0, r0, r4 + mov r1, #0x0 + lsl r2, r2, #0x4 + bl MI_CpuFill8 + ldr r0, [r5, #0x0] + mov r1, #0x1 + add r0, r0, r4 + str r1, [r0, #0x10] + ldr r0, [r5, #0x0] + cmp r6, #0x86 + str r7, [r0, r4] + blt _02014CAE + mov r6, #0x0 + str r6, [sp, #0x8] +_02014CAE: + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r6, [r0, #0x14] + ldrb r0, [r5, #0x8] + cmp r0, #0x0 + beq _02014CC0 + ldr r0, [sp, #0x0] + ldrb r2, [r0, #0x4] + b _02014CC2 +_02014CC0: + mov r2, #0x0 +_02014CC2: + ldr r0, [r5, #0x0] + add r1, r0, r4 + mov r0, #0x73 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + ldr r2, [r5, #0x4] + add r1, r1, r4 + ldr r1, [r1, #0x14] + mov r0, #0x5e + bl FUN_02006528 + ldr r1, [r5, #0x0] + mov r2, #0x0 + add r1, r1, r4 + str r0, [r1, #0x8] + ldr r0, [r5, #0x0] + mov r6, #0x1c + add r1, r0, r4 + ldr r0, [r1, #0x8] + str r0, [r1, #0xc] + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r2, [r0, #0x1c] + ldr r0, [r5, #0x0] + add r0, r0, r4 + str r2, [r0, #0x20] + ldr r0, [r5, #0x0] + add r1, r0, r4 + ldr r0, _02014D74 ; =0x000001CD + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + add r3, r1, r4 + add r1, r0, #0x1 + strb r6, [r3, r1] + ldr r1, [r5, #0x0] + add r0, r0, #0x2 + add r1, r1, r4 + strb r2, [r1, r0] + ldr r1, [r5, #0x0] + ldr r0, _02014D78 ; =FUN_02014DD8 + add r1, r1, r4 + bl FUN_0200CA44 + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x4] + ldr r0, [r5, #0x0] + add r1, r0, r4 + ldr r0, [sp, #0x8] + str r0, [r1, #0x54] + add r0, r7, #0x0 + mov r1, #0x0 + bl FUN_0200782C + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x58] + add r0, r7, #0x0 + mov r1, #0x1 + bl FUN_0200782C + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x5c] + ldr r1, [r5, #0x0] + mov r0, #0x0 + add r1, r1, r4 + str r0, [r1, #0x60] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x64] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x68] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x6c] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x70] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x74] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x78] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02014D74: .word 0x000001CD +_02014D78: .word FUN_02014DD8 + + thumb_func_start FUN_02014D7C +FUN_02014D7C: ; 0x02014D7C + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x9] + add r4, r1, #0x0 + cmp r4, r0 + blo _02014D8C + bl ErrorHandling +_02014D8C: + mov r0, #0x1d + lsl r0, r0, #0x4 + ldr r1, [r5, #0x0] + mul r0, r4 + add r0, r1, r0 + ldr r0, [r0, #0x20] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02014D9C +FUN_02014D9C: ; 0x02014D9C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x4 + add r4, r1, #0x0 + mul r4, r0 + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02014DD6 + bl FUN_0200CAB4 + ldr r1, [r5, #0x0] + mov r0, #0x0 + add r1, r1, r4 + str r0, [r1, #0x4] + ldr r1, [r5, #0x0] + mov r2, #0x1 + add r1, r1, r4 + str r2, [r1, #0x20] + ldr r1, [r5, #0x0] + add r1, r1, r4 + str r0, [r1, #0x10] + ldr r0, [r5, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x8] + bl FUN_02016A18 +_02014DD6: + pop {r3-r5, pc} + + thumb_func_start FUN_02014DD8 +FUN_02014DD8: ; 0x02014DD8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x54] + cmp r0, #0x0 + bne _02014DEC + add r0, r4, #0x0 + bl FUN_02014E10 + b _02014DF0 +_02014DEC: + sub r0, r0, #0x1 + str r0, [r4, #0x54] +_02014DF0: + ldr r0, [r4, #0x1c] + cmp r0, #0x0 + beq _02014E0E + mov r0, #0x1 + str r0, [r4, #0x20] + mov r0, #0x0 + str r0, [r4, #0x10] + add r0, r5, #0x0 + bl FUN_0200CAB4 + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r0, [r4, #0x8] + bl FUN_02016A18 +_02014E0E: + pop {r3-r5, pc} + + thumb_func_start FUN_02014E10 +FUN_02014E10: ; 0x02014E10 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r6, #0x0 + str r6, [r5, #0x18] + add r7, r5, #0x0 + str r6, [r5, #0x44] + add r4, r6, #0x0 + add r7, #0x7c +_02014E20: + mov r0, #0x54 + add r1, r4, #0x0 + mul r1, r0 + add r0, r7, r1 + ldr r1, [r7, r1] + cmp r1, #0x0 + beq _02014E4E + add r1, r0, #0x0 + add r1, #0x2d + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02014E40 + ldr r2, [r0, #0x50] + add r1, r5, #0x0 + blx r2 + b _02014E54 +_02014E40: + add r1, r0, #0x0 + add r1, #0x2d + ldrb r1, [r1, #0x0] + add r0, #0x2d + sub r1, r1, #0x1 + strb r1, [r0, #0x0] + b _02014E54 +_02014E4E: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02014E54: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02014E20 + cmp r6, #0x4 + bne _02014E68 + ldr r0, _02014EFC ; =0x000001CD + mov r1, #0x0 + strb r1, [r5, r0] +_02014E68: + ldr r0, _02014EFC ; =0x000001CD + ldrb r1, [r5, r0] + cmp r1, #0x0 + beq _02014E7E + add r0, r5, #0x0 + bl FUN_020156E8 + add r0, r5, #0x0 + bl FUN_02015730 + pop {r3-r7, pc} +_02014E7E: + add r0, r0, #0x2 + ldrb r0, [r5, r0] + cmp r0, #0x0 + beq _02014E96 + ldr r0, [r5, #0x0] + bl FUN_02007F20 + cmp r0, #0x0 + bne _02014EF8 + ldr r0, _02014F00 ; =0x000001CF + mov r1, #0x0 + strb r1, [r5, r0] +_02014E96: + add r6, r5, #0x0 + add r4, r5, #0x0 + ldr r7, _02014F04 ; =0x020ED6A4 + add r6, #0xc + add r4, #0x44 +_02014EA0: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x0] + cmp r0, #0x22 + blo _02014EB2 + bl ErrorHandling +_02014EB2: + ldr r1, [r5, #0xc] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + lsl r1, r1, #0x2 + ldr r1, [r7, r1] + blx r1 + ldr r0, [r5, #0x1c] + cmp r0, #0x0 + bne _02014EF8 + ldr r0, [r6, #0x0] + add r0, r0, #0x4 + str r0, [r6, #0x0] + ldr r0, [r5, #0x18] + cmp r0, #0x0 + bne _02014EF8 + ldr r0, _02014EFC ; =0x000001CD + ldrb r0, [r5, r0] + cmp r0, #0x0 + beq _02014EE6 + add r0, r5, #0x0 + bl FUN_020156E8 + add r0, r5, #0x0 + bl FUN_02015730 + pop {r3-r7, pc} +_02014EE6: + mov r0, #0x1 + ldr r1, [r5, #0x44] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02014EA0 + bl ErrorHandling + mov r0, #0x1 + str r0, [r5, #0x1c] +_02014EF8: + pop {r3-r7, pc} + nop +_02014EFC: .word 0x000001CD +_02014F00: .word 0x000001CF +_02014F04: .word 0x020ED6A4 + + thumb_func_start FUN_02014F08 +FUN_02014F08: ; 0x02014F08 + push {r4, lr} + lsl r1, r1, #0x2 + ldr r4, [r0, r1] + cmp r2, #0x1 + beq _02014F16 + bl ErrorHandling +_02014F16: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02014F1C +FUN_02014F1C: ; 0x02014F1C + ldr r3, _02014F24 ; =FUN_02014F08 + add r2, r1, #0x0 + mov r1, #0x0 + bx r3 + .balign 4 +_02014F24: .word FUN_02014F08 + + thumb_func_start FUN_02014F28 +FUN_02014F28: ; 0x02014F28 + ldr r3, _02014F30 ; =FUN_02014F1C + mov r1, #0x1 + bx r3 + nop +_02014F30: .word FUN_02014F1C + + thumb_func_start FUN_02014F34 +FUN_02014F34: ; 0x02014F34 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r3, #0x0 + add r0, #0x7c + mov r2, #0x54 +_02014F3E: + add r1, r3, #0x0 + mul r1, r2 + add r4, r0, r1 + ldr r1, [r0, r1] + cmp r1, #0x0 + bne _02014F68 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x54 + bl MI_CpuFill8 + mov r0, #0x1 + str r0, [r4, #0x0] + mov r0, #0xc + add r1, r5, #0x0 + mul r1, r0 + ldr r0, _02014F7C ; =0x020ED668 + ldr r0, [r0, r1] + str r0, [r4, #0x50] + add r0, r4, #0x0 + pop {r3-r5, pc} +_02014F68: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x4 + blo _02014F3E + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02014F7C: .word 0x020ED668 + + thumb_func_start FUN_02014F80 +FUN_02014F80: ; 0x02014F80 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl FUN_02014F28 + str r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02014F94 +FUN_02014F94: ; 0x02014F94 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl FUN_02014F28 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02014FA8 +FUN_02014FA8: ; 0x02014FA8 + push {r4, lr} + add r4, r1, #0x0 + ldr r1, [r0, #0xc] + add r1, r1, #0x4 + str r1, [r0, #0xc] + add r0, r1, #0x0 + bl FUN_02014F28 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + cmp r0, #0x8 + blo _02014FC4 + bl ErrorHandling +_02014FC4: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02014FC8 +FUN_02014FC8: ; 0x02014FC8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02014FA8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02014FA8 + pop {r3-r5, pc} + + thumb_func_start FUN_02014FDC +FUN_02014FDC: ; 0x02014FDC + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02014FA8 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x12 + bne _0201501C + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + add r1, r6, #0x0 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl FUN_02014F80 + add sp, #0x4 + pop {r3-r6, pc} +_0201501C: + cmp r0, #0x13 + bne _02015048 + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + add r2, #0x1 + bl FUN_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x2] + add sp, #0x4 + lsl r1, r1, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x24] + str r1, [r4, #0x0] + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + pop {r3-r6, pc} +_02015048: + bl ErrorHandling + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start FUN_02015050 +FUN_02015050: ; 0x02015050 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02014FA8 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl FUN_02014F94 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x12 + bne _02015082 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02014F80 + b _020150A2 +_02015082: + cmp r0, #0x13 + bne _0201509E + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x0] + b _020150A2 +_0201509E: + bl ErrorHandling +_020150A2: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x12 + bne _020150B6 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02014F80 + add sp, #0x4 + pop {r3-r6, pc} +_020150B6: + cmp r0, #0x13 + bne _020150D4 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + pop {r3-r6, pc} +_020150D4: + bl ErrorHandling + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start FUN_020150DC +FUN_020150DC: ; 0x020150DC + push {r3-r7, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r2, sp, #0x0 + add r2, #0x3 + add r5, r0, #0x0 + add r6, r3, #0x0 + bl FUN_02014FC8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + add r1, sp, #0x0 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r7, [r0, #0x24] + add r0, r5, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _02015112 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02014F80 + b _02015132 +_02015112: + cmp r0, #0x15 + bne _0201512E + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [r6, #0x0] + b _02015132 +_0201512E: + bl ErrorHandling +_02015132: + add r0, r5, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _0201514C + add r0, r5, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + b _0201516C +_0201514C: + cmp r0, #0x15 + bne _02015168 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _0201516C +_02015168: + bl ErrorHandling +_0201516C: + ldr r0, [sp, #0x4] + add r0, r7, r0 + lsr r2, r0, #0x1f + lsl r1, r0, #0x10 + sub r1, r1, r2 + mov r0, #0x10 + ror r1, r0 + add r0, r2, r1 + str r0, [r4, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02015184 +FUN_02015184: ; 0x02015184 + ldr r2, [r0, #0x0] + ldr r0, [r1, #0x0] + sub r0, r2, r0 + bpl _02015190 + mov r0, #0xf + bx lr +_02015190: + cmp r0, #0x0 + ble _02015198 + mov r0, #0x10 + bx lr +_02015198: + mov r0, #0x11 + bx lr + + thumb_func_start FUN_0201519C +FUN_0201519C: ; 0x0201519C + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + ldr r2, [r2, #0x74] + mov r1, #0x1 + neg r3, r2 + asr r2, r3, #0x2 + lsr r2, r2, #0x1d + add r2, r3, r2 + ldr r3, _020151B4 ; =FUN_020079E0 + asr r2, r2, #0x3 + bx r3 + nop +_020151B4: .word FUN_020079E0 + + thumb_func_start FUN_020151B8 +FUN_020151B8: ; 0x020151B8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020151D0 + mov r0, #0x1 + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + pop {r4, pc} + + thumb_func_start FUN_020151C8 +FUN_020151C8: ; 0x020151C8 + mov r1, #0x1 + str r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start FUN_020151D0 +FUN_020151D0: ; 0x020151D0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r2, [r4, #0x58] + mov r1, #0x0 + bl FUN_02007558 + ldr r0, [r4, #0x0] + ldr r2, [r4, #0x5c] + mov r1, #0x1 + bl FUN_02007558 + ldr r0, [r4, #0x0] + mov r1, #0x9 + mov r2, #0x0 + bl FUN_02007558 + ldr r0, [r4, #0x0] + mov r1, #0xa + mov r2, #0x0 + bl FUN_02007558 + mov r1, #0xc + add r2, r1, #0x0 + ldr r0, [r4, #0x0] + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0x0 + ldr r0, [r4, #0x0] + add r2, #0xf3 + bl FUN_02007558 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02015218 +FUN_02015218: ; 0x02015218 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r1, #0x1 + add r2, sp, #0x0 + add r4, r0, #0x0 + bl FUN_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + ldrb r0, [r0, #0x1] + lsl r1, r1, #0x2 + add r1, r4, r1 + lsl r0, r0, #0x2 + ldr r1, [r1, #0x24] + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_02015240 +FUN_02015240: ; 0x02015240 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_02014FDC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + add r1, r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start FUN_02015264 +FUN_02015264: ; 0x02015264 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_02014FDC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + add r2, r1, #0x0 + mul r2, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r2, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_0201528C +FUN_0201528C: ; 0x0201528C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_02015050 + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + sub r1, r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start FUN_020152B0 +FUN_020152B0: ; 0x020152B0 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_02015050 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl _s32_div_f + add r1, sp, #0x0 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + str r0, [r1, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_020152D8 +FUN_020152D8: ; 0x020152D8 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_02015050 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl _s32_div_f + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_02015300 +FUN_02015300: ; 0x02015300 + push {r3-r5, lr} + sub sp, #0x10 + add r1, sp, #0x0 + add r5, r0, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _02015334 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + add r1, sp, #0x8 + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0xc] + add r0, r5, #0x0 + bl FUN_02014F80 + b _02015362 +_02015334: + cmp r0, #0x15 + bne _0201535E + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + add r2, #0x2 + bl FUN_02014FC8 + add r0, sp, #0x0 + ldrb r1, [r0, #0x3] + lsl r1, r1, #0x2 + add r1, r5, r1 + ldr r1, [r1, #0x24] + str r1, [sp, #0xc] + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x8] + b _02015362 +_0201535E: + bl ErrorHandling +_02015362: + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x11 + bls _02015378 + bl ErrorHandling +_02015378: + add r0, sp, #0xc + add r1, sp, #0x8 + bl FUN_02015184 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x14 + bne _020153A6 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + bl FUN_02014FA8 + add r0, r5, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + b _020153CA +_020153A6: + cmp r0, #0x15 + bne _020153C6 + add r1, sp, #0x0 + add r2, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x3 + add r2, #0x2 + bl FUN_02014FC8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020153CA +_020153C6: + bl ErrorHandling +_020153CA: + add r0, sp, #0x0 + ldrb r1, [r0, #0x1] + cmp r1, r4 + bne _020153DC + ldrb r0, [r0, #0x3] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x2 + add r0, r5, r0 + str r1, [r0, #0x24] +_020153DC: + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start FUN_020153E0 +FUN_020153E0: ; 0x020153E0 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl FUN_02014FA8 + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + bl FUN_02014F28 + add r1, sp, #0x0 + ldrb r1, [r1, #0x0] + lsl r1, r1, #0x2 + add r1, r4, r1 + str r0, [r1, #0x24] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_02015404 +FUN_02015404: ; 0x02015404 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x50] + cmp r0, #0x0 + beq _02015412 + bl ErrorHandling +_02015412: + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + str r0, [r4, #0x50] + ldr r0, [r4, #0xc] + bl FUN_02014F28 + str r0, [r4, #0x48] + mov r0, #0x0 + str r0, [r4, #0x4c] + pop {r4, pc} + + thumb_func_start FUN_02015428 +FUN_02015428: ; 0x02015428 + ldr r1, [r0, #0x4c] + add r2, r1, #0x1 + str r2, [r0, #0x4c] + ldr r1, [r0, #0x48] + cmp r2, r1 + blt _0201543E + mov r1, #0x0 + str r1, [r0, #0x50] + str r1, [r0, #0x4c] + str r1, [r0, #0x48] + bx lr +_0201543E: + ldr r1, [r0, #0x50] + str r1, [r0, #0xc] + bx lr + + thumb_func_start FUN_02015444 +FUN_02015444: ; 0x02015444 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02014FA8 + add r2, sp, #0x0 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x4] + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0x24] + bl FUN_02007558 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02015470 +FUN_02015470: ; 0x02015470 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02014FA8 + add r2, sp, #0x0 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x4] + lsl r2, r2, #0x2 + add r2, r4, r2 + ldr r2, [r2, #0x24] + bl FUN_020079E0 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201549C +FUN_0201549C: ; 0x0201549C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x8 + add r4, r0, #0x0 + bl FUN_02014F80 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x1 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x14 + bne _020154C4 + add r0, r4, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + b _020154E4 +_020154C4: + cmp r0, #0x15 + bne _020154E0 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020154E4 +_020154E0: + bl ErrorHandling +_020154E4: + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x16 + bne _02015502 + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + bl FUN_02007558 + add sp, #0xc + pop {r3-r4, pc} +_02015502: + cmp r0, #0x17 + bne _02015514 + ldr r0, [r4, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x4] + bl FUN_020079E0 + add sp, #0xc + pop {r3-r4, pc} +_02015514: + bl ErrorHandling + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start FUN_0201551C +FUN_0201551C: ; 0x0201551C + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_020150DC + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x4] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201554C ; =0x020FFA38 + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + nop +_0201554C: .word 0x020FFA38 + + thumb_func_start FUN_02015550 +FUN_02015550: ; 0x02015550 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x0 + add r2, sp, #0x8 + add r3, sp, #0x4 + add r4, r0, #0x0 + bl FUN_020150DC + ldr r1, [sp, #0x8] + ldr r0, [sp, #0x4] + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015584 ; =0x020FFA38 + ldrsh r1, [r1, r2] + mul r1, r0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + asr r1, r1, #0xc + lsl r0, r0, #0x2 + add r0, r4, r0 + str r1, [r0, #0x24] + add sp, #0xc + pop {r3-r4, pc} + nop +_02015584: .word 0x020FFA38 + + thumb_func_start FUN_02015588 +FUN_02015588: ; 0x02015588 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r4, r0, #0x0 + add r1, #0x1 + bl FUN_02014FA8 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + cmp r1, #0x8 + bne _020155B4 + ldrb r0, [r0, #0x1] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x60] + pop {r3-r4, pc} +_020155B4: + cmp r1, #0x9 + bne _020155C6 + ldrb r0, [r0, #0x1] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x64] + pop {r3-r4, pc} +_020155C6: + bl ErrorHandling + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_020155D0 +FUN_020155D0: ; 0x020155D0 + push {r3-r4, lr} + sub sp, #0x4 + add r1, sp, #0x0 + add r4, r0, #0x0 + add r1, #0x1 + bl FUN_02014FA8 + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + cmp r1, #0x8 + bne _02015600 + ldrb r0, [r0, #0x1] + ldr r1, [r4, #0x60] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + add r0, r1, r0 + str r0, [r4, #0x60] + pop {r3-r4, pc} +_02015600: + cmp r1, #0x9 + bne _02015616 + ldrb r0, [r0, #0x1] + ldr r1, [r4, #0x64] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + add r0, r1, r0 + str r0, [r4, #0x64] + pop {r3-r4, pc} +_02015616: + bl ErrorHandling + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_02015620 +FUN_02015620: ; 0x02015620 + push {r3-r5, lr} + sub sp, #0x8 + add r1, sp, #0x0 + add r1, #0x3 + add r5, r0, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x3] + cmp r0, #0x8 + bne _0201563C + add r4, r5, #0x0 + add r4, #0x60 + b _0201567C +_0201563C: + cmp r0, #0x9 + bne _02015646 + add r4, r5, #0x0 + add r4, #0x64 + b _0201567C +_02015646: + cmp r0, #0xa + bne _02015650 + add r4, r5, #0x0 + add r4, #0x68 + b _0201567C +_02015650: + cmp r0, #0xb + bne _0201565A + add r4, r5, #0x0 + add r4, #0x6c + b _0201567C +_0201565A: + cmp r0, #0xc + bne _02015664 + add r4, r5, #0x0 + add r4, #0x70 + b _0201567C +_02015664: + cmp r0, #0xd + bne _0201566E + add r4, r5, #0x0 + add r4, #0x74 + b _0201567C +_0201566E: + cmp r0, #0xe + bne _02015678 + add r4, r5, #0x0 + add r4, #0x78 + b _0201567C +_02015678: + bl ErrorHandling +_0201567C: + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x1 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r0, #0x14 + bne _02015698 + add r0, r5, #0x0 + add r1, sp, #0x4 + bl FUN_02014F80 + b _020156B8 +_02015698: + cmp r0, #0x15 + bne _020156B4 + add r1, sp, #0x0 + add r0, r5, #0x0 + add r1, #0x2 + bl FUN_02014FA8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x2 + add r0, r5, r0 + ldr r0, [r0, #0x24] + str r0, [sp, #0x4] + b _020156B8 +_020156B4: + bl ErrorHandling +_020156B8: + add r0, r5, #0x0 + add r1, sp, #0x0 + bl FUN_02014F94 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x16 + bne _020156D0 + ldr r0, [sp, #0x4] + add sp, #0x8 + str r0, [r4, #0x0] + pop {r3-r5, pc} +_020156D0: + cmp r0, #0x17 + bne _020156E0 + ldr r0, [sp, #0x4] + ldr r1, [r4, #0x0] + add sp, #0x8 + add r0, r1, r0 + str r0, [r4, #0x0] + pop {r3-r5, pc} +_020156E0: + bl ErrorHandling + add sp, #0x8 + pop {r3-r5, pc} + + thumb_func_start FUN_020156E8 +FUN_020156E8: ; 0x020156E8 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x73 + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + cmp r0, #0x0 + ldr r0, [r4, #0x0] + beq _0201570A + ldr r3, [r4, #0x60] + ldr r2, [r4, #0x68] + ldr r5, [r4, #0x58] + add r2, r3, r2 + mov r1, #0x0 + sub r2, r5, r2 + bl FUN_02007558 + b _0201571A +_0201570A: + ldr r3, [r4, #0x58] + ldr r2, [r4, #0x60] + ldr r5, [r4, #0x68] + add r2, r3, r2 + mov r1, #0x0 + add r2, r5, r2 + bl FUN_02007558 +_0201571A: + ldr r3, [r4, #0x5c] + ldr r2, [r4, #0x64] + ldr r5, [r4, #0x6c] + add r2, r3, r2 + ldr r0, [r4, #0x0] + mov r1, #0x1 + add r2, r5, r2 + bl FUN_02007558 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02015730 +FUN_02015730: ; 0x02015730 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0xc + add r2, r1, #0x0 + ldr r3, [r4, #0x70] + add r2, #0xf4 + ldr r0, [r4, #0x0] + add r2, r3, r2 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0x0 + ldr r3, [r4, #0x74] + add r2, #0xf3 + ldr r0, [r4, #0x0] + add r2, r3, r2 + bl FUN_02007558 + ldr r2, [r4, #0x78] + ldr r0, [r4, #0x0] + lsl r2, r2, #0x10 + mov r1, #0x9 + lsr r2, r2, #0x10 + bl FUN_02007558 + ldr r0, _02015794 ; =0x000001CE + ldrb r0, [r4, r0] + cmp r0, #0x1b + bne _02015778 + ldr r0, [r4, #0x74] + cmp r0, #0x0 + bge _02015792 + add r0, r4, #0x0 + bl FUN_0201519C + pop {r4, pc} +_02015778: + cmp r0, #0x1d + bne _0201578A + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _02015792 + add r0, r4, #0x0 + bl FUN_0201519C + pop {r4, pc} +_0201578A: + cmp r0, #0x1c + beq _02015792 + bl ErrorHandling +_02015792: + pop {r4, pc} + .balign 4 +_02015794: .word 0x000001CE + + thumb_func_start FUN_02015798 +FUN_02015798: ; 0x02015798 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl FUN_02014FA8 + ldr r0, [r4, #0xc] + add r0, r0, #0x4 + str r0, [r4, #0xc] + bl FUN_02014F28 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + beq _020157BA + cmp r0, #0xa + bne _020157CA +_020157BA: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x68] + pop {r3-r4, pc} +_020157CA: + cmp r0, #0x9 + beq _020157D2 + cmp r0, #0xb + bne _020157E2 +_020157D2: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + add sp, #0x4 + lsl r0, r0, #0x2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + str r0, [r4, #0x6c] + pop {r3-r4, pc} +_020157E2: + bl ErrorHandling + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_020157EC +FUN_020157EC: ; 0x020157EC + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x54 + bl FUN_02014F80 + mov r0, #0x1 + str r0, [r4, #0x18] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02015800 +FUN_02015800: ; 0x02015800 + push {r3-r4, lr} + sub sp, #0xc + add r1, sp, #0x4 + add r1, #0x2 + add r4, r0, #0x0 + bl FUN_02014F94 + add r1, sp, #0x4 + add r0, r4, #0x0 + add r1, #0x1 + bl FUN_02014F94 + add r0, r4, #0x0 + add r1, sp, #0x4 + bl FUN_02014F94 + add r0, r4, #0x0 + add r1, sp, #0x8 + bl FUN_02014F80 + ldr r0, [sp, #0x8] + add r3, sp, #0x4 + str r0, [sp, #0x0] + ldrb r1, [r3, #0x2] + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + ldr r0, [r4, #0x0] + bl FUN_02007E68 + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_02015840 +FUN_02015840: ; 0x02015840 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl FUN_02007F20 + cmp r0, #0x0 + beq _02015856 + ldr r0, _02015858 ; =0x000001CF + mov r1, #0x1 + strb r1, [r4, r0] + str r1, [r4, #0x18] +_02015856: + pop {r4, pc} + .balign 4 +_02015858: .word 0x000001CF + + thumb_func_start FUN_0201585C +FUN_0201585C: ; 0x0201585C + ldr r1, _02015864 ; =0x000001CD + mov r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_02015864: .word 0x000001CD + + thumb_func_start FUN_02015868 +FUN_02015868: ; 0x02015868 + push {r4, lr} + ldr r1, _0201589C ; =0x000001CE + add r4, r0, #0x0 + add r1, r4, r1 + bl FUN_02014F94 + ldr r0, _0201589C ; =0x000001CE + mov r1, #0x1 + ldrb r0, [r4, r0] + add r2, r1, #0x0 + cmp r0, #0x1b + beq _02015886 + cmp r0, #0x1d + beq _02015886 + mov r2, #0x0 +_02015886: + cmp r2, #0x0 + bne _02015890 + cmp r0, #0x1c + beq _02015890 + mov r1, #0x0 +_02015890: + cmp r1, #0x0 + bne _02015898 + bl ErrorHandling +_02015898: + pop {r4, pc} + nop +_0201589C: .word 0x000001CE + + thumb_func_start FUN_020158A0 +FUN_020158A0: ; 0x020158A0 + ldr r3, _020158A8 ; =FUN_0201598C + mov r1, #0x0 + bx r3 + nop +_020158A8: .word FUN_0201598C + + thumb_func_start FUN_020158AC +FUN_020158AC: ; 0x020158AC + ldr r3, _020158B4 ; =FUN_0201598C + mov r1, #0x1 + bx r3 + nop +_020158B4: .word FUN_0201598C + + thumb_func_start FUN_020158B8 +FUN_020158B8: ; 0x020158B8 + ldr r3, _020158C0 ; =FUN_0201598C + mov r1, #0x2 + bx r3 + nop +_020158C0: .word FUN_0201598C + + thumb_func_start FUN_020158C4 +FUN_020158C4: ; 0x020158C4 + ldr r3, _020158CC ; =FUN_0201598C + mov r1, #0x3 + bx r3 + nop +_020158CC: .word FUN_0201598C + + thumb_func_start FUN_020158D0 +FUN_020158D0: ; 0x020158D0 + ldr r3, _020158D8 ; =FUN_0201598C + mov r1, #0x4 + bx r3 + nop +_020158D8: .word FUN_0201598C + + thumb_func_start FUN_020158DC +FUN_020158DC: ; 0x020158DC + push {r3, lr} + cmp r0, #0x18 + bne _020158E8 + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + pop {r3, pc} +_020158E8: + cmp r0, #0x19 + bne _020158F6 + ldr r1, [r1, #0x0] + ldr r0, [r2, #0x0] + add r0, r1, r0 + str r0, [r3, #0x0] + pop {r3, pc} +_020158F6: + cmp r0, #0x1a + bne _02015904 + ldr r1, [r3, #0x0] + ldr r0, [r2, #0x0] + add r0, r1, r0 + str r0, [r3, #0x0] + pop {r3, pc} +_02015904: + bl ErrorHandling + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201590C +FUN_0201590C: ; 0x0201590C + push {r3, lr} + sub r0, #0x23 + cmp r0, #0x4 + bhi _02015984 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02015920: ; jump table (using 16-bit offset) + .short _0201592A - _02015920 - 2; case 0 + .short _0201593C - _02015920 - 2; case 1 + .short _0201594E - _02015920 - 2; case 2 + .short _02015960 - _02015920 - 2; case 3 + .short _02015972 - _02015920 - 2; case 4 +_0201592A: + add r0, r1, #0x0 + add r0, #0x3c + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x68 + str r0, [r1, #0x28] + ldr r0, [r2, #0x68] + str r0, [r1, #0x30] + pop {r3, pc} +_0201593C: + add r0, r1, #0x0 + add r0, #0x40 + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x6c + str r0, [r1, #0x28] + ldr r0, [r2, #0x6c] + str r0, [r1, #0x30] + pop {r3, pc} +_0201594E: + add r0, r1, #0x0 + add r0, #0x44 + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x70 + str r0, [r1, #0x28] + ldr r0, [r2, #0x70] + str r0, [r1, #0x30] + pop {r3, pc} +_02015960: + add r0, r1, #0x0 + add r0, #0x48 + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x74 + str r0, [r1, #0x28] + ldr r0, [r2, #0x74] + str r0, [r1, #0x30] + pop {r3, pc} +_02015972: + add r0, r1, #0x0 + add r0, #0x4c + str r0, [r1, #0x24] + add r0, r2, #0x0 + add r0, #0x78 + str r0, [r1, #0x28] + ldr r0, [r2, #0x78] + str r0, [r1, #0x30] + pop {r3, pc} +_02015984: + bl ErrorHandling + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201598C +FUN_0201598C: ; 0x0201598C + push {r3-r7, lr} + sub sp, #0x8 + add r6, r1, #0x0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + add r5, r0, #0x0 + bl FUN_02014F34 + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + add r1, #0x2c + bl FUN_02014F94 + ldr r1, [sp, #0x4] + add r0, r5, #0x0 + add r1, #0x2d + bl FUN_02014F94 + mov r0, #0xc + mul r0, r6 + ldr r1, _02015A28 ; =0x020ED66C + str r0, [sp, #0x0] + ldr r0, [r1, r0] + mov r4, #0x0 + cmp r0, #0x0 + ble _020159E2 + ldr r1, _02015A2C ; =0x020ED668 + ldr r0, [sp, #0x0] + add r6, r1, r0 + ldr r0, [sp, #0x4] + add r7, r0, #0x4 +_020159CC: + lsl r1, r4, #0x2 + add r0, r5, #0x0 + add r1, r7, r1 + bl FUN_02014F80 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [r6, #0x4] + cmp r4, r0 + blt _020159CC +_020159E2: + ldr r1, _02015A30 ; =0x020ED670 + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldr r0, [r1, r0] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x4] + add r0, r0, r1 + ldr r0, [r0, #0x4] + ldr r1, [sp, #0x4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201590C + ldr r0, [sp, #0x4] + add r0, #0x2d + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02015A14 + ldr r0, [sp, #0x4] + add r1, r5, #0x0 + add r2, r0, #0x0 + ldr r2, [r2, #0x50] + blx r2 + add sp, #0x8 + pop {r3-r7, pc} +_02015A14: + ldr r0, [sp, #0x4] + add r0, #0x2d + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r0, #0x2d + str r0, [sp, #0x4] + strb r1, [r0, #0x0] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02015A28: .word 0x020ED66C +_02015A2C: .word 0x020ED668 +_02015A30: .word 0x020ED670 + + thumb_func_start FUN_02015A34 +FUN_02015A34: ; 0x02015A34 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x10] + add r0, r0, #0x1 + ldr r2, [r4, #0x14] + mul r0, r1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r4, #0x4] + sub r0, #0x1e + cmp r0, #0x3 + bhi _02015AC0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02015A5C: ; jump table (using 16-bit offset) + .short _02015A64 - _02015A5C - 2; case 0 + .short _02015A78 - _02015A5C - 2; case 1 + .short _02015A90 - _02015A5C - 2; case 2 + .short _02015AA6 - _02015A5C - 2; case 3 +_02015A64: + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015AE8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015AC4 +_02015A78: + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015AE8 ; =0x020FFA38 + ldr r0, [r4, #0xc] + ldrsh r1, [r1, r2] + mul r1, r0 + ldr r0, [r4, #0x24] + asr r1, r1, #0xc + str r1, [r0, #0x0] + b _02015AC4 +_02015A90: + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015AE8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r0, r0, #0xc + neg r1, r0 + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015AC4 +_02015AA6: + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015AE8 ; =0x020FFA38 + ldr r0, [r4, #0xc] + ldrsh r1, [r1, r2] + mul r1, r0 + asr r0, r1, #0xc + neg r1, r0 + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015AC4 +_02015AC0: + bl ErrorHandling +_02015AC4: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl FUN_020158DC + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + str r1, [r4, #0x1c] + ldr r0, [r4, #0x18] + cmp r1, r0 + blt _02015AE6 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015AE6: + pop {r4, pc} + .balign 4 +_02015AE8: .word 0x020FFA38 + + thumb_func_start FUN_02015AEC +FUN_02015AEC: ; 0x02015AEC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x10] + add r0, r0, #0x1 + mul r0, r1 + ldr r1, [r4, #0x18] + bl _s32_div_f + ldr r1, [r4, #0x14] + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r4, #0x4] + sub r0, #0x1e + cmp r0, #0x3 + bhi _02015B7E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02015B1A: ; jump table (using 16-bit offset) + .short _02015B22 - _02015B1A - 2; case 0 + .short _02015B36 - _02015B1A - 2; case 1 + .short _02015B4E - _02015B1A - 2; case 2 + .short _02015B64 - _02015B1A - 2; case 3 +_02015B22: + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015BA8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r1, r0, #0xc + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015B82 +_02015B36: + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015BA8 ; =0x020FFA38 + ldr r0, [r4, #0xc] + ldrsh r1, [r1, r2] + mul r1, r0 + ldr r0, [r4, #0x24] + asr r1, r1, #0xc + str r1, [r0, #0x0] + b _02015B82 +_02015B4E: + asr r0, r1, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02015BA8 ; =0x020FFA38 + ldr r2, [r4, #0xc] + ldrsh r0, [r0, r1] + mul r0, r2 + asr r0, r0, #0xc + neg r1, r0 + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015B82 +_02015B64: + asr r1, r1, #0x4 + lsl r1, r1, #0x1 + add r1, r1, #0x1 + lsl r2, r1, #0x1 + ldr r1, _02015BA8 ; =0x020FFA38 + ldr r0, [r4, #0xc] + ldrsh r1, [r1, r2] + mul r1, r0 + asr r0, r1, #0xc + neg r1, r0 + ldr r0, [r4, #0x24] + str r1, [r0, #0x0] + b _02015B82 +_02015B7E: + bl ErrorHandling +_02015B82: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl FUN_020158DC + ldr r0, [r4, #0x1c] + add r1, r0, #0x1 + str r1, [r4, #0x1c] + ldr r0, [r4, #0x18] + cmp r1, r0 + blt _02015BA4 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015BA4: + pop {r4, pc} + nop +_02015BA8: .word 0x020FFA38 + + thumb_func_start FUN_02015BAC +FUN_02015BAC: ; 0x02015BAC + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x24] + ldr r3, [r4, #0xc] + ldr r2, [r4, #0x14] + ldr r5, [r4, #0x8] + mul r2, r3 + ldr r0, [r1, #0x0] + add r2, r5, r2 + add r0, r0, r2 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + add r1, r4, #0x0 + ldrb r0, [r0, #0x0] + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl FUN_020158DC + ldr r0, [r4, #0x14] + add r1, r0, #0x1 + str r1, [r4, #0x14] + ldr r0, [r4, #0x10] + cmp r1, r0 + blt _02015BE4 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015BE4: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02015BE8 +FUN_02015BE8: ; 0x02015BE8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + add r1, r0, #0x1 + ldr r0, [r4, #0x8] + mul r0, r1 + ldr r1, [r4, #0xc] + bl _s32_div_f + ldr r1, [r4, #0x24] + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + add r1, r4, #0x0 + ldrb r0, [r0, #0x0] + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl FUN_020158DC + ldr r0, [r4, #0x10] + add r1, r0, #0x1 + str r1, [r4, #0x10] + ldr r0, [r4, #0xc] + cmp r1, r0 + blt _02015C20 + mov r0, #0x0 + str r0, [r4, #0x0] +_02015C20: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02015C24 +FUN_02015C24: ; 0x02015C24 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x14] + ldr r2, [r4, #0x8] + mul r0, r1 + ldr r1, [r4, #0x24] + add r2, r2, r0 + ldr r0, [r1, #0x0] + add r0, r0, r2 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x18 + beq _02015C48 + cmp r0, #0x1a + bne _02015C6E +_02015C48: + cmp r2, #0x0 + ldr r2, [r4, #0x10] + bge _02015C5E + ldr r1, [r4, #0x24] + ldr r0, [r1, #0x0] + cmp r0, r2 + bgt _02015CA4 + str r2, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C5E: + ldr r1, [r4, #0x24] + ldr r0, [r1, #0x0] + cmp r0, r2 + blt _02015CA4 + str r2, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C6E: + cmp r0, #0x19 + bne _02015CA0 + ldr r1, [r4, #0x24] + ldr r3, [r4, #0x30] + ldr r0, [r1, #0x0] + add r3, r3, r0 + cmp r2, #0x0 + ldr r2, [r4, #0x10] + bge _02015C90 + cmp r3, r2 + bgt _02015CA4 + sub r2, r2, r3 + add r0, r0, r2 + str r0, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015C90: + cmp r3, r2 + blt _02015CA4 + sub r2, r3, r2 + sub r0, r0, r2 + str r0, [r1, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02015CA4 +_02015CA0: + bl ErrorHandling +_02015CA4: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r2, [r4, #0x24] + ldr r3, [r4, #0x28] + add r1, #0x30 + bl FUN_020158DC + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02015CC0 +FUN_02015CC0: ; 0x02015CC0 + ldr r3, _02015CDC ; =0x020ED72C + mov r2, #0x0 +_02015CC4: + ldrh r1, [r3, #0x2] + cmp r0, r1 + bhs _02015CCE + add r0, r2, #0x0 + bx lr +_02015CCE: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x2 + blt _02015CC4 + add r0, r2, #0x0 + bx lr + nop +_02015CDC: .word 0x020ED72C + + thumb_func_start FUN_02015CE0 +FUN_02015CE0: ; 0x02015CE0 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02015CC0 + lsl r1, r0, #0x1 + ldr r0, _02015CF4 ; =0x020ED72C + ldrh r0, [r0, r1] + sub r0, r4, r0 + pop {r4, pc} + nop +_02015CF4: .word 0x020ED72C + + thumb_func_start FUN_02015CF8 +FUN_02015CF8: ; 0x02015CF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x3 + blt _02015D06 + bl ErrorHandling +_02015D06: + ldr r0, _02015D10 ; =0x020ED72C + lsl r1, r5, #0x1 + ldrh r0, [r0, r1] + add r0, r4, r0 + pop {r3-r5, pc} + .balign 4 +_02015D10: .word 0x020ED72C + + thumb_func_start FUN_02015D14 +FUN_02015D14: ; 0x02015D14 + cmp r0, #0x7 + bhi _02015D34 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02015D24: ; jump table (using 16-bit offset) + .short _02015D34 - _02015D24 - 2; case 0 + .short _02015D34 - _02015D24 - 2; case 1 + .short _02015D38 - _02015D24 - 2; case 2 + .short _02015D3E - _02015D24 - 2; case 3 + .short _02015D38 - _02015D24 - 2; case 4 + .short _02015D42 - _02015D24 - 2; case 5 + .short _02015D34 - _02015D24 - 2; case 6 + .short _02015D38 - _02015D24 - 2; case 7 +_02015D34: + mov r0, #0xea + bx lr +_02015D38: + mov r0, #0x6d + lsl r0, r0, #0x2 + bx lr +_02015D3E: + ldr r0, _02015D48 ; =0x000001B7 + bx lr +_02015D42: + ldr r0, _02015D4C ; =0x000001B6 + bx lr + nop +_02015D48: .word 0x000001B7 +_02015D4C: .word 0x000001B6 + + thumb_func_start FUN_02015D50 +FUN_02015D50: ; 0x02015D50 + cmp r0, #0x7 + bhi _02015D70 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02015D60: ; jump table (using 16-bit offset) + .short _02015D70 - _02015D60 - 2; case 0 + .short _02015D70 - _02015D60 - 2; case 1 + .short _02015D74 - _02015D60 - 2; case 2 + .short _02015D78 - _02015D60 - 2; case 3 + .short _02015D74 - _02015D60 - 2; case 4 + .short _02015D7E - _02015D60 - 2; case 5 + .short _02015D70 - _02015D60 - 2; case 6 + .short _02015D74 - _02015D60 - 2; case 7 +_02015D70: + mov r0, #0xeb + bx lr +_02015D74: + ldr r0, _02015D84 ; =0x000001B5 + bx lr +_02015D78: + mov r0, #0x6e + lsl r0, r0, #0x2 + bx lr +_02015D7E: + mov r0, #0x6d + lsl r0, r0, #0x2 + bx lr + .balign 4 +_02015D84: .word 0x000001B5 + + thumb_func_start FUN_02015D88 +FUN_02015D88: ; 0x02015D88 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r3, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + cmp r6, #0x1 + beq _02015D9C + mov r2, #0x1 + b _02015D9E +_02015D9C: + mov r2, #0x0 +_02015D9E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + sub r0, r0, #0x1 + str r0, [sp, #0xc] + beq _02015E18 + ldr r1, _02015E28 ; =0x020ED734 + lsl r0, r2, #0x1 + ldr r5, [sp, #0x4] + add r7, r1, r0 +_02015DB0: + ldr r0, [sp, #0x0] + ldrb r0, [r0, r4] + cmp r0, #0xff + beq _02015E18 + cmp r0, #0xf7 + blo _02015DEA + ldr r0, [sp, #0x8] + sub r3, r0, #0x1 + cmp r3, #0xa + blo _02015DC6 + mov r3, #0xa +_02015DC6: + mov r1, #0x0 + cmp r3, #0x0 + ble _02015DDC + mov r0, #0x6b + ldr r2, [sp, #0x4] + lsl r0, r0, #0x2 +_02015DD2: + add r1, r1, #0x1 + strh r0, [r2, #0x0] + add r2, r2, #0x2 + cmp r1, r3 + blt _02015DD2 +_02015DDC: + ldr r0, [sp, #0x4] + ldr r2, _02015E2C ; =0x0000FFFF + lsl r1, r1, #0x1 + strh r2, [r0, r1] + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_02015DEA: + lsl r0, r0, #0x2 + ldrh r0, [r7, r0] + cmp r0, #0xea + beq _02015DF8 + cmp r0, #0xeb + beq _02015E02 + b _02015E0C +_02015DF8: + add r0, r6, #0x0 + bl FUN_02015D14 + strh r0, [r5, #0x0] + b _02015E0E +_02015E02: + add r0, r6, #0x0 + bl FUN_02015D50 + strh r0, [r5, #0x0] + b _02015E0E +_02015E0C: + strh r0, [r5, #0x0] +_02015E0E: + ldr r0, [sp, #0xc] + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, r0 + blo _02015DB0 +_02015E18: + ldr r2, _02015E2C ; =0x0000FFFF + ldr r0, [sp, #0x4] + lsl r1, r4, #0x1 + strh r2, [r0, r1] + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + nop +_02015E28: .word 0x020ED734 +_02015E2C: .word 0x0000FFFF + + thumb_func_start FUN_02015E30 +FUN_02015E30: ; 0x02015E30 + ldr r0, _02015E38 ; =0x021C4898 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_02015E38: .word 0x021C4898 + + thumb_func_start FUN_02015E3C +FUN_02015E3C: ; 0x02015E3C + push {r3, lr} + ldr r1, _02015E5C ; =0x021C4898 + mov r2, #0x1 + str r2, [r1, #0x0] + mov r2, #0x0 + str r2, [r1, #0x10] + str r2, [r1, #0x14] + str r2, [r1, #0x8] + str r2, [r1, #0xc] + str r0, [r1, #0x4] + bl FUN_02020BF4 + ldr r2, _02015E5C ; =0x021C4898 + str r0, [r2, #0x18] + str r1, [r2, #0x1c] + pop {r3, pc} + .balign 4 +_02015E5C: .word 0x021C4898 + + thumb_func_start FUN_02015E60 +FUN_02015E60: ; 0x02015E60 + push {r3-r5, lr} + ldr r0, _02015E9C ; =0x021C4898 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02015E9A + bl FUN_02020BF4 + ldr r2, _02015E9C ; =0x021C4898 + ldr r3, [r2, #0x18] + ldr r2, [r2, #0x1c] + sub r0, r0, r3 + sbc r1, r2 + bl FUN_02020C14 + add r5, r1, #0x0 + ldr r1, _02015E9C ; =0x021C4898 + add r4, r0, #0x0 + ldr r3, [r1, #0x8] + ldr r2, [r1, #0xc] + sub r0, r3, r4 + sbc r2, r5 + bhs _02015E9A + ldr r0, [r1, #0x4] + sub r1, r4, r3 + bl FUN_02029E54 + ldr r0, _02015E9C ; =0x021C4898 + str r4, [r0, #0x8] + str r5, [r0, #0xc] +_02015E9A: + pop {r3-r5, pc} + .balign 4 +_02015E9C: .word 0x021C4898 + + thumb_func_start FUN_02015EA0 +FUN_02015EA0: ; 0x02015EA0 + push {r3, lr} + ldr r3, _02015EC8 ; =0x027E0000 + ldr r1, _02015ECC ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + mov r0, #0x3 + bl MI_WaitDma + ldr r0, _02015ED0 ; =0x021C48B8 + ldr r0, [r0, #0x1c] + bl FUN_0201B5CC + ldr r0, _02015ED0 ; =0x021C48B8 + ldr r1, [r0, #0x30] + add r1, r1, #0x1 + str r1, [r0, #0x30] + pop {r3, pc} + nop +_02015EC8: .word 0x027E0000 +_02015ECC: .word 0x00003FF8 +_02015ED0: .word 0x021C48B8 + + thumb_func_start FUN_02015ED4 +FUN_02015ED4: ; 0x02015ED4 + ldr r3, _02015EE8 ; =0x027E0000 + ldr r1, _02015EEC ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + ldr r3, _02015EF0 ; =MI_WaitDma + mov r0, #0x3 + bx r3 + nop +_02015EE8: .word 0x027E0000 +_02015EEC: .word 0x00003FF8 +_02015EF0: .word MI_WaitDma + + thumb_func_start FUN_02015EF4 +FUN_02015EF4: ; 0x02015EF4 + push {r3, lr} + mov r0, #0x1 + bl OS_DisableIrqMask + ldr r1, _02015F0C ; =FUN_02015ED4 + mov r0, #0x1 + bl OS_SetIrqFunction + mov r0, #0x1 + bl OS_EnableIrqMask + pop {r3, pc} + .balign 4 +_02015F0C: .word FUN_02015ED4 + + thumb_func_start FUN_02015F10 +FUN_02015F10: ; 0x02015F10 + ldr r2, _02015F18 ; =0x021C48B8 + str r0, [r2, #0x0] + str r1, [r2, #0x4] + bx lr + .balign 4 +_02015F18: .word 0x021C48B8 + + thumb_func_start FUN_02015F1C +FUN_02015F1C: ; 0x02015F1C + push {r3, lr} + mov r0, #0x0 + bl FUN_02015F80 + ldr r0, _02015F30 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x8] + str r1, [r0, #0xc] + pop {r3, pc} + nop +_02015F30: .word 0x021C48B8 + + thumb_func_start FUN_02015F34 +FUN_02015F34: ; 0x02015F34 + push {r3, lr} + cmp r0, #0x0 + bne _02015F4C + mov r0, #0x0 + bl FUN_02015F80 + ldr r0, _02015F68 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x8] + str r1, [r0, #0xc] + mov r0, #0x1 + pop {r3, pc} +_02015F4C: + ldr r2, _02015F68 ; =0x021C48B8 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + bne _02015F62 + str r1, [r2, #0xc] + str r0, [r2, #0x8] + mov r0, #0x1 + bl FUN_02015F80 + mov r0, #0x1 + pop {r3, pc} +_02015F62: + mov r0, #0x0 + pop {r3, pc} + nop +_02015F68: .word 0x021C48B8 + + thumb_func_start FUN_02015F6C +FUN_02015F6C: ; 0x02015F6C + push {r3, lr} + ldr r0, _02015F7C ; =0x021C48B8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _02015F7A + ldr r0, [r0, #0xc] + blx r1 +_02015F7A: + pop {r3, pc} + .balign 4 +_02015F7C: .word 0x021C48B8 + + thumb_func_start FUN_02015F80 +FUN_02015F80: ; 0x02015F80 + push {r3, lr} + ldr r2, _02015FC0 ; =0x04000208 + ldrh r1, [r2, #0x0] + mov r1, #0x0 + strh r1, [r2, #0x0] + cmp r0, #0x0 + bne _02015F9E + ldr r0, [r2, #0x8] + mov r0, #0x2 + bl OS_DisableIrqMask + mov r0, #0x0 + bl GX_HBlankIntr + b _02015FB4 +_02015F9E: + ldr r0, [r2, #0x8] + ldr r1, _02015FC4 ; =FUN_02015F6C + mov r0, #0x2 + bl OS_SetIrqFunction + mov r0, #0x2 + bl OS_EnableIrqMask + mov r0, #0x1 + bl GX_HBlankIntr +_02015FB4: + ldr r1, _02015FC0 ; =0x04000208 + ldrh r0, [r1, #0x0] + mov r0, #0x1 + strh r0, [r1, #0x0] + pop {r3, pc} + nop +_02015FC0: .word 0x04000208 +_02015FC4: .word FUN_02015F6C + + thumb_func_start FUN_02015FC8 +FUN_02015FC8: ; 0x02015FC8 + push {r3, lr} + sub sp, #0x30 + add r0, sp, #0x10 + bl OS_GetLowEntropyData + add r0, sp, #0x0 + add r1, sp, #0x10 + mov r2, #0x20 + bl MATH_CalcMD5 + mov r3, #0x0 + add r1, r3, #0x0 + add r2, sp, #0x0 +_02015FE2: + ldrb r0, [r2, #0x0] + add r1, r1, #0x1 + add r2, r2, #0x1 + add r3, r3, r0 + cmp r1, #0x10 + blo _02015FE2 + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + mov r0, #0x3 + tst r0, r3 + beq _02016002 + mov r0, #0x3 +_02015FFA: + add r3, r3, #0x1 + add r1, r3, #0x0 + tst r1, r0 + bne _02015FFA +_02016002: + ldr r0, _02016010 ; =0x020EDB10 + mov r1, #0x4 + mov r2, #0x5c + bl FUN_020166C8 + add sp, #0x30 + pop {r3, pc} + .balign 4 +_02016010: .word 0x020EDB10 + + thumb_func_start InitSystemForTheGame +InitSystemForTheGame: ; 0x02016014 + push {r3-r5, lr} + bl OS_Init + bl FX_Init + ldr r2, _02016124 ; =0x04000304 + ldr r0, _02016128 ; =0xFFFFFDF1 + ldrh r1, [r2, #0x0] + and r1, r0 + ldr r0, _0201612C ; =0x0000020E + orr r0, r1 + strh r0, [r2, #0x0] + bl GX_Init + bl OS_InitTick + bl FUN_02015FC8 + mov r0, #0xa0 + bl FUN_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + add r1, r0, #0x0 + mov r0, #0xa0 + bl FUN_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x18] + mov r0, #0x10 + bl FUN_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + add r1, r0, #0x0 + mov r0, #0x10 + bl FUN_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x1c] + mov r0, #0x20 + bl FUN_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + add r1, r0, #0x0 + mov r0, #0x20 + bl FUN_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x20] + mov r0, #0x4 + bl FUN_0201B578 + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + add r1, r0, #0x0 + mov r0, #0x4 + bl FUN_0201B580 + ldr r1, _02016130 ; =0x021C48B8 + str r0, [r1, #0x24] + bl GX_DispOff + ldr r2, _02016134 ; =0x04001000 + ldr r0, _02016138 ; =0xFFFEFFFF + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r2, _02016124 ; =0x04000304 + ldrh r1, [r2, #0x0] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2, #0x0] + ldr r1, _0201613C ; =FUN_02015EA0 + mov r0, #0x1 + bl OS_SetIrqFunction + mov r0, #0x1 + bl OS_EnableIrqMask + mov r0, #0x1 + lsl r0, r0, #0x12 + bl OS_EnableIrqMask + ldr r1, _02016140 ; =0x04000208 + ldrh r0, [r1, #0x0] + mov r0, #0x1 + strh r0, [r1, #0x0] + bl GX_VBlankIntr + mov r0, #0x1 + bl FS_Init + bl FUN_02022450 + mov r0, #0x0 + add r1, r0, #0x0 + bl FS_TryLoadTable + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + add r5, r0, #0x0 + bne _02016108 + bl ErrorHandling +_02016108: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FS_TryLoadTable + ldr r0, _02016130 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x8] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #0x2c] + ldr r0, _02016144 ; =0x021C4918 + strb r1, [r0, #0x5] + pop {r3-r5, pc} + .balign 4 +_02016124: .word 0x04000304 +_02016128: .word 0xFFFFFDF1 +_0201612C: .word 0x0000020E +_02016130: .word 0x021C48B8 +_02016134: .word 0x04001000 +_02016138: .word 0xFFFEFFFF +_0201613C: .word FUN_02015EA0 +_02016140: .word 0x04000208 +_02016144: .word 0x021C4918 + + thumb_func_start InitGraphicMemory +InitGraphicMemory: ; 0x02016148 + push {r3, lr} + ldr r0, _02016198 ; =0x000001FF + bl GX_SetBankForLCDC + mov r1, #0x1a + mov r2, #0x29 + mov r0, #0x0 + lsl r1, r1, #0x16 + lsl r2, r2, #0xe + bl MIi_CpuClearFast + bl GX_DisableBankForLCDC + mov r1, #0x7 + mov r2, #0x1 + mov r0, #0xc0 + lsl r1, r1, #0x18 + lsl r2, r2, #0xa + bl MIi_CpuClearFast + mov r2, #0x1 + ldr r1, _0201619C ; =0x07000400 + mov r0, #0xc0 + lsl r2, r2, #0xa + bl MIi_CpuClearFast + mov r1, #0x5 + mov r2, #0x1 + mov r0, #0x0 + lsl r1, r1, #0x18 + lsl r2, r2, #0xa + bl MIi_CpuClearFast + mov r2, #0x1 + ldr r1, _020161A0 ; =0x05000400 + mov r0, #0x0 + lsl r2, r2, #0xa + bl MIi_CpuClearFast + pop {r3, pc} + .balign 4 +_02016198: .word 0x000001FF +_0201619C: .word 0x07000400 +_020161A0: .word 0x05000400 + + thumb_func_start FUN_020161A4 +FUN_020161A4: ; 0x020161A4 + push {r4-r6, lr} + sub sp, #0x48 + add r6, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x0 + bl FS_InitFile + add r0, sp, #0x0 + add r1, r4, #0x0 + bl FS_OpenFile + cmp r0, #0x0 + beq _020161F0 + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r5, r1, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + beq _020161E8 + add r0, sp, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl FS_ReadFile + cmp r5, r0 + beq _020161E8 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02016A8C + mov r4, #0x0 +_020161E8: + add r0, sp, #0x0 + bl FS_CloseFile + b _020161F2 +_020161F0: + mov r4, #0x0 +_020161F2: + add r0, r4, #0x0 + add sp, #0x48 + pop {r4-r6, pc} + + thumb_func_start FUN_020161F8 +FUN_020161F8: ; 0x020161F8 + push {r3-r5, lr} + sub sp, #0x48 + add r5, r0, #0x0 + add r0, sp, #0x0 + add r4, r1, #0x0 + bl FS_InitFile + add r0, sp, #0x0 + add r1, r5, #0x0 + bl FS_OpenFile + cmp r0, #0x0 + beq _0201622A + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r2, r1, r0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02016224 + add r0, sp, #0x0 + bl FS_ReadFile +_02016224: + add r0, sp, #0x0 + bl FS_CloseFile +_0201622A: + add sp, #0x48 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02016230 +FUN_02016230: ; 0x02016230 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + bl strlen + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + lsr r2, r3, #0x1f + lsl r1, r3, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + beq _02016258 + lsr r0, r3, #0x2 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + b _0201625E +_02016258: + lsl r0, r3, #0xe + lsr r0, r0, #0x10 + str r0, [sp, #0x4] +_0201625E: + ldr r0, [sp, #0x4] + mov r7, #0x0 + mov r12, r7 + cmp r0, #0x0 + ble _0201629A + add r6, r7, #0x0 + add r4, r7, #0x0 +_0201626C: + ldr r2, [sp, #0x0] + mov r1, #0x0 + add r0, r1, #0x0 + add r2, r2, r6 + add r3, r1, #0x0 +_02016276: + ldrsb r5, [r2, r4] + cmp r5, #0x0 + beq _0201628A + lsl r5, r3 + add r0, r0, #0x1 + orr r1, r5 + add r2, r2, #0x1 + add r3, #0x8 + cmp r0, #0x4 + blt _02016276 +_0201628A: + mov r0, r12 + eor r7, r1 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r6, r6, #0x4 + mov r12, r1 + cmp r1, r0 + blt _0201626C +_0201629A: + add r0, r7, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_020162A0 +FUN_020162A0: ; 0x020162A0 + ldr r3, _020162C4 ; =0x021C4928 + mov r2, #0x0 +_020162A4: + ldr r1, [r3, #0x4] + cmp r0, r1 + bne _020162B4 + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _020162B4 + add r0, r2, #0x0 + bx lr +_020162B4: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x80 + blt _020162A4 + mov r0, #0x0 + mvn r0, r0 + bx lr + nop +_020162C4: .word 0x021C4928 + + thumb_func_start FUN_020162C8 +FUN_020162C8: ; 0x020162C8 + push {r3-r4} + ldr r3, _020162F4 ; =0x021C4928 + mov r4, #0x0 +_020162CE: + ldr r2, [r3, #0x0] + cmp r2, #0x0 + bne _020162E4 + ldr r2, _020162F4 ; =0x021C4928 + lsl r3, r4, #0x3 + str r0, [r2, r3] + ldr r0, _020162F8 ; =0x021C492C + str r1, [r0, r3] + add r0, r4, #0x0 + pop {r3-r4} + bx lr +_020162E4: + add r4, r4, #0x1 + add r3, #0x8 + cmp r4, #0x80 + blt _020162CE + mov r0, #0x0 + mvn r0, r0 + pop {r3-r4} + bx lr + .balign 4 +_020162F4: .word 0x021C4928 +_020162F8: .word 0x021C492C + + thumb_func_start FUN_020162FC +FUN_020162FC: ; 0x020162FC + push {r3-r7, lr} + mov r6, #0x0 + ldr r5, _02016320 ; =0x021C4D20 + mov r4, #0x7f + sub r7, r6, #0x1 +_02016306: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02016314 + bl FUN_02016A18 + str r6, [r5, #0x0] + str r6, [r5, #0x4] +_02016314: + sub r4, r4, #0x1 + sub r5, #0x8 + cmp r4, r7 + bgt _02016306 + pop {r3-r7, pc} + nop +_02016320: .word 0x021C4D20 + + thumb_func_start FUN_02016324 +FUN_02016324: ; 0x02016324 + push {r3-r7, lr} + sub sp, #0x68 + add r2, r0, #0x0 + mov r5, #0x0 + ldrsb r0, [r2, r5] + add r4, r1, #0x0 + cmp r0, #0x21 + add r0, sp, #0x0 + bne _02016340 + add r1, r2, #0x1 + bl strcpy + mov r5, #0x1 + b _02016346 +_02016340: + add r1, r2, #0x0 + bl strcpy +_02016346: + add r0, sp, #0x0 + bl FUN_02016230 + add r7, r0, #0x0 + bl FUN_020162A0 + cmp r0, #0x0 + blt _02016362 + cmp r5, #0x0 + bne _02016362 + lsl r1, r0, #0x3 + ldr r0, _020163B8 ; =0x021C4928 + ldr r4, [r0, r1] + b _020163B2 +_02016362: + add r0, sp, #0x20 + bl FS_InitFile + add r0, sp, #0x20 + add r1, sp, #0x0 + bl FS_OpenFile + cmp r0, #0x0 + beq _020163B0 + ldr r1, [sp, #0x48] + ldr r0, [sp, #0x44] + sub r6, r1, r0 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + beq _0201639C + add r0, sp, #0x20 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FS_ReadFile + cmp r6, r0 + beq _0201639C + add r0, r4, #0x0 + bl FUN_02016A18 + mov r4, #0x0 +_0201639C: + add r0, sp, #0x20 + bl FS_CloseFile + cmp r5, #0x0 + bne _020163B2 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl FUN_020162C8 + b _020163B2 +_020163B0: + mov r4, #0x0 +_020163B2: + add r0, r4, #0x0 + add sp, #0x68 + pop {r3-r7, pc} + .balign 4 +_020163B8: .word 0x021C4928 + + thumb_func_start FUN_020163BC +FUN_020163BC: ; 0x020163BC + push {r3, lr} + sub sp, #0x8 + ldr r0, _0201641C ; =0x021C48B8 + mov r2, #0x0 + str r2, [r0, #0x34] + str r2, [r0, #0x38] + str r2, [r0, #0x3c] + str r2, [r0, #0x40] + str r2, [r0, #0x44] + str r2, [r0, #0x48] + str r2, [r0, #0x4c] + str r2, [r0, #0x50] + mov r1, #0x8 + str r1, [r0, #0x54] + mov r1, #0xf + str r1, [r0, #0x58] + ldr r0, _02016420 ; =0x021C48F8 + strh r2, [r0, #0x1c] + strh r2, [r0, #0x1e] + strh r2, [r0, #0x20] + strh r2, [r0, #0x22] + ldr r0, _02016424 ; =0x021C4918 + strb r2, [r0, #0x4] + bl TP_Init + add r0, sp, #0x0 + bl TP_GetUserInfo + cmp r0, #0x1 + add r0, sp, #0x0 + bne _02016402 + bl TP_SetCalibrateParam + add sp, #0x8 + pop {r3, pc} +_02016402: + ldr r1, _02016428 ; =0x000002AE + strh r1, [r0, #0x0] + ldr r1, _0201642C ; =0x0000058C + strh r1, [r0, #0x2] + ldr r1, _02016430 ; =0x00000E25 + strh r1, [r0, #0x4] + ldr r1, _02016434 ; =0x00001208 + strh r1, [r0, #0x6] + add r0, sp, #0x0 + bl TP_SetCalibrateParam + add sp, #0x8 + pop {r3, pc} + .balign 4 +_0201641C: .word 0x021C48B8 +_02016420: .word 0x021C48F8 +_02016424: .word 0x021C4918 +_02016428: .word 0x000002AE +_0201642C: .word 0x0000058C +_02016430: .word 0x00000E25 +_02016434: .word 0x00001208 + + thumb_func_start FUN_02016438 +FUN_02016438: ; 0x02016438 + ldr r1, _02016440 ; =0x021C4918 + strb r0, [r1, #0x6] + bx lr + nop +_02016440: .word 0x021C4918 + + thumb_func_start FUN_02016444 +FUN_02016444: ; 0x02016444 + ldr r1, _02016450 ; =0x021C4918 + ldrb r2, [r1, #0x7] + orr r0, r2 + strb r0, [r1, #0x7] + bx lr + nop +_02016450: .word 0x021C4918 + + thumb_func_start FUN_02016454 +FUN_02016454: ; 0x02016454 + ldr r1, _02016460 ; =0x021C4918 + mvn r0, r0 + ldrb r2, [r1, #0x7] + and r0, r2 + strb r0, [r1, #0x7] + bx lr + .balign 4 +_02016460: .word 0x021C4918 + + thumb_func_start FUN_02016464 +FUN_02016464: ; 0x02016464 + push {r4, lr} + sub sp, #0x10 + ldr r2, _02016550 ; =0x027FFFA8 + mov r0, #0x2 + ldrh r1, [r2, #0x0] + lsl r0, r0, #0xe + and r0, r1 + asr r0, r0, #0xf + beq _0201648A + ldr r0, _02016554 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x48] + str r1, [r0, #0x44] + str r1, [r0, #0x4c] + ldr r0, _02016558 ; =0x021C48F8 + add sp, #0x10 + strh r1, [r0, #0x20] + strh r1, [r0, #0x22] + pop {r4, pc} +_0201648A: + ldr r0, _0201655C ; =0x04000130 + ldrh r1, [r0, #0x0] + ldrh r0, [r2, #0x0] + orr r1, r0 + ldr r0, _02016560 ; =0x00002FFF + eor r1, r0 + and r0, r1 + ldr r1, _02016554 ; =0x021C48B8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + ldr r2, [r1, #0x38] + add r3, r0, #0x0 + eor r3, r2 + and r3, r0 + str r3, [r1, #0x3c] + str r3, [r1, #0x40] + cmp r0, #0x0 + beq _020164C2 + cmp r2, r0 + bne _020164C2 + ldr r2, [r1, #0x50] + sub r2, r2, #0x1 + str r2, [r1, #0x50] + bne _020164C8 + str r0, [r1, #0x40] + ldr r2, [r1, #0x54] + str r2, [r1, #0x50] + b _020164C8 +_020164C2: + ldr r1, _02016554 ; =0x021C48B8 + ldr r2, [r1, #0x58] + str r2, [r1, #0x50] +_020164C8: + ldr r1, _02016554 ; =0x021C48B8 + str r0, [r1, #0x38] + ldr r2, [r1, #0x3c] + str r2, [r1, #0x48] + str r0, [r1, #0x44] + ldr r0, [r1, #0x40] + str r0, [r1, #0x4c] + bl FUN_02016568 + ldr r0, _02016564 ; =0x021C4918 + ldrb r0, [r0, #0x4] + cmp r0, #0x0 + bne _020164F4 + add r4, sp, #0x8 +_020164E4: + bl TP_RequestSamplingAsync + add r0, r4, #0x0 + bl TP_WaitRawResult + cmp r0, #0x0 + bne _020164E4 + b _020164FA +_020164F4: + add r0, sp, #0x8 + bl TP_GetLatestRawPointInAuto +_020164FA: + add r0, sp, #0x0 + add r1, sp, #0x8 + bl TP_GetCalibratedPoint + add r1, sp, #0x0 + ldrh r3, [r1, #0x6] + cmp r3, #0x0 + bne _02016516 + ldrh r2, [r1, #0x0] + ldr r0, _02016558 ; =0x021C48F8 + strh r2, [r0, #0x1c] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1e] + b _0201653A +_02016516: + ldr r0, _02016558 ; =0x021C48F8 + ldrh r2, [r0, #0x22] + cmp r2, #0x0 + beq _02016536 + cmp r3, #0x1 + beq _0201652A + cmp r3, #0x2 + beq _02016530 + cmp r3, #0x3 + b _0201653A +_0201652A: + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1e] + b _0201653A +_02016530: + ldrh r1, [r1, #0x0] + strh r1, [r0, #0x1c] + b _0201653A +_02016536: + mov r0, #0x0 + strh r0, [r1, #0x4] +_0201653A: + add r0, sp, #0x0 + ldrh r2, [r0, #0x4] + ldr r0, _02016558 ; =0x021C48F8 + ldrh r1, [r0, #0x22] + eor r1, r2 + and r1, r2 + strh r1, [r0, #0x20] + strh r2, [r0, #0x22] + add sp, #0x10 + pop {r4, pc} + nop +_02016550: .word 0x027FFFA8 +_02016554: .word 0x021C48B8 +_02016558: .word 0x021C48F8 +_0201655C: .word 0x04000130 +_02016560: .word 0x00002FFF +_02016564: .word 0x021C4918 + + thumb_func_start FUN_02016568 +FUN_02016568: ; 0x02016568 + ldr r0, _02016690 ; =0x021C48B8 + ldr r1, [r0, #0x34] + cmp r1, #0x3 + bls _02016572 + b _0201668C +_02016572: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0201657E: ; jump table (using 16-bit offset) + .short _0201668C - _0201657E - 2; case 0 + .short _02016586 - _0201657E - 2; case 1 + .short _020165BC - _0201657E - 2; case 2 + .short _02016642 - _0201657E - 2; case 3 +_02016586: + ldr r2, [r0, #0x48] + mov r1, #0x8 + add r3, r2, #0x0 + tst r3, r1 + beq _02016596 + lsl r1, r1, #0x7 + orr r1, r2 + str r1, [r0, #0x48] +_02016596: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x8 + ldr r2, [r1, #0x44] + add r3, r2, #0x0 + tst r3, r0 + beq _020165A8 + lsl r0, r0, #0x7 + orr r0, r2 + str r0, [r1, #0x44] +_020165A8: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x8 + ldr r2, [r1, #0x4c] + add r3, r2, #0x0 + tst r3, r0 + beq _0201668C + lsl r0, r0, #0x7 + orr r0, r2 + str r0, [r1, #0x4c] + bx lr +_020165BC: + ldr r3, [r0, #0x48] + mov r0, #0x1 + lsl r0, r0, #0xa + add r2, r3, #0x0 + mov r1, #0x0 + tst r2, r0 + beq _020165CE + lsl r0, r0, #0x1 + orr r1, r0 +_020165CE: + mov r0, #0x2 + lsl r0, r0, #0xa + add r2, r3, #0x0 + tst r2, r0 + beq _020165DC + lsr r0, r0, #0x1 + orr r1, r0 +_020165DC: + ldr r2, _02016690 ; =0x021C48B8 + ldr r0, _02016694 ; =0x0000F3FF + ldr r3, [r2, #0x48] + and r0, r3 + orr r0, r1 + str r0, [r2, #0x48] + ldr r3, [r2, #0x44] + mov r1, #0x1 + lsl r1, r1, #0xa + add r2, r3, #0x0 + mov r0, #0x0 + tst r2, r1 + beq _020165FA + lsl r1, r1, #0x1 + orr r0, r1 +_020165FA: + mov r1, #0x2 + lsl r1, r1, #0xa + add r2, r3, #0x0 + tst r2, r1 + beq _02016608 + lsr r1, r1, #0x1 + orr r0, r1 +_02016608: + ldr r2, _02016690 ; =0x021C48B8 + ldr r1, _02016694 ; =0x0000F3FF + ldr r3, [r2, #0x44] + and r1, r3 + orr r0, r1 + str r0, [r2, #0x44] + ldr r3, [r2, #0x4c] + mov r1, #0x1 + lsl r1, r1, #0xa + add r2, r3, #0x0 + mov r0, #0x0 + tst r2, r1 + beq _02016626 + lsl r1, r1, #0x1 + orr r0, r1 +_02016626: + mov r1, #0x2 + lsl r1, r1, #0xa + add r2, r3, #0x0 + tst r2, r1 + beq _02016634 + lsr r1, r1, #0x1 + orr r0, r1 +_02016634: + ldr r2, _02016690 ; =0x021C48B8 + ldr r1, _02016694 ; =0x0000F3FF + ldr r3, [r2, #0x4c] + and r1, r3 + orr r0, r1 + str r0, [r2, #0x4c] + bx lr +_02016642: + mov r1, #0x2 + ldr r2, [r0, #0x48] + lsl r1, r1, #0x8 + tst r1, r2 + beq _02016652 + mov r1, #0x1 + orr r1, r2 + str r1, [r0, #0x48] +_02016652: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x2 + ldr r2, [r1, #0x44] + lsl r0, r0, #0x8 + tst r0, r2 + beq _02016664 + mov r0, #0x1 + orr r0, r2 + str r0, [r1, #0x44] +_02016664: + ldr r1, _02016690 ; =0x021C48B8 + mov r0, #0x2 + ldr r2, [r1, #0x4c] + lsl r0, r0, #0x8 + tst r0, r2 + beq _02016676 + mov r0, #0x1 + orr r0, r2 + str r0, [r1, #0x4c] +_02016676: + ldr r1, _02016690 ; =0x021C48B8 + ldr r0, _02016698 ; =0x0000FCFF + ldr r2, [r1, #0x48] + and r2, r0 + str r2, [r1, #0x48] + ldr r2, [r1, #0x44] + and r2, r0 + str r2, [r1, #0x44] + ldr r2, [r1, #0x4c] + and r0, r2 + str r0, [r1, #0x4c] +_0201668C: + bx lr + nop +_02016690: .word 0x021C48B8 +_02016694: .word 0x0000F3FF +_02016698: .word 0x0000FCFF + + thumb_func_start FUN_0201669C +FUN_0201669C: ; 0x0201669C + ldr r2, _020166A4 ; =0x021C48B8 + str r0, [r2, #0x54] + str r1, [r2, #0x58] + bx lr + .balign 4 +_020166A4: .word 0x021C48B8 + + thumb_func_start FUN_020166A8 +FUN_020166A8: ; 0x020166A8 + ldr r1, _020166B4 ; =0x021C4918 + ldrb r2, [r1, #0x8] + orr r0, r2 + strb r0, [r1, #0x8] + bx lr + nop +_020166B4: .word 0x021C4918 + + thumb_func_start FUN_020166B8 +FUN_020166B8: ; 0x020166B8 + ldr r1, _020166C4 ; =0x021C4918 + mvn r0, r0 + ldrb r2, [r1, #0x8] + and r0, r2 + strb r0, [r1, #0x8] + bx lr + .balign 4 +_020166C4: .word 0x021C4918 + + thumb_func_start FUN_020166C8 +FUN_020166C8: ; 0x020166C8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + str r0, [sp, #0x4] + add r0, #0x18 + add r6, r2, #0x0 + str r0, [sp, #0x4] + cmp r6, r0 + bhs _020166E0 + add r6, r0, #0x0 +_020166E0: + cmp r3, #0x0 + beq _020166FE + mov r0, #0x3 + tst r0, r3 + beq _020166F4 + mov r0, #0x3 +_020166EC: + add r3, r3, #0x1 + add r1, r3, #0x0 + tst r1, r0 + bne _020166EC +_020166F4: + mov r0, #0x0 + add r1, r3, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo +_020166FE: + ldr r1, [sp, #0x4] + lsl r7, r6, #0x1 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r1, #0x1 + lsl r1, r1, #0x2 + add r1, r7, r1 + mov r0, #0x0 + add r1, r6, r1 + mov r2, #0x4 + bl OS_AllocFromArenaLo + ldr r1, _020167F0 ; =0x021C4D28 + str r0, [r1, #0x0] + ldr r1, [sp, #0x4] + add r1, r1, #0x1 + lsl r1, r1, #0x2 + add r1, r0, r1 + ldr r0, _020167F0 ; =0x021C4D28 + str r1, [r0, #0x4] + ldr r0, [sp, #0x4] + lsl r0, r0, #0x2 + add r2, r1, r0 + ldr r1, _020167F0 ; =0x021C4D28 + str r2, [r1, #0x8] + add r1, r2, r0 + ldr r0, _020167F0 ; =0x021C4D28 + str r1, [r0, #0xc] + add r1, r1, r7 + str r1, [r0, #0x10] + strh r6, [r0, #0x14] + strh r4, [r0, #0x16] + ldr r0, [sp, #0x4] + mov r7, #0x0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _020167F0 ; =0x021C4D28 + cmp r4, #0x0 + strh r1, [r0, #0x1a] + strh r1, [r0, #0x18] + bls _020167A0 + str r7, [sp, #0x0] +_02016752: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _0201675C + cmp r0, #0x2 + beq _02016768 +_0201675C: + ldr r1, [r5, #0x0] + mov r0, #0x0 + mov r2, #0x4 + bl OS_AllocFromArenaLo + b _02016772 +_02016768: + ldr r1, [r5, #0x0] + mov r0, #0x2 + mov r2, #0x4 + bl OS_AllocFromArenaHi +_02016772: + cmp r0, #0x0 + beq _0201678E + ldr r1, [r5, #0x0] + mov r2, #0x0 + bl tempName_NNS_FndCreateExpHeapEx + ldr r1, _020167F0 ; =0x021C4D28 + ldr r2, [r1, #0x0] + ldr r1, [sp, #0x0] + str r0, [r2, r1] + ldr r0, _020167F0 ; =0x021C4D28 + ldr r0, [r0, #0x10] + strb r7, [r0, r7] + b _02016792 +_0201678E: + bl ErrorHandling +_02016792: + ldr r0, [sp, #0x0] + add r7, r7, #0x1 + add r0, r0, #0x4 + add r5, #0x8 + str r0, [sp, #0x0] + cmp r7, r4 + blo _02016752 +_020167A0: + ldr r0, [sp, #0x4] + add r1, r0, #0x1 + cmp r4, r1 + bhs _020167C0 + ldr r3, _020167F0 ; =0x021C4D28 + lsl r2, r4, #0x2 + mov r0, #0x0 +_020167AE: + ldr r5, [r3, #0x0] + str r0, [r5, r2] + ldrh r7, [r3, #0x1a] + ldr r5, [r3, #0x10] + add r2, r2, #0x4 + strb r7, [r5, r4] + add r4, r4, #0x1 + cmp r4, r1 + blo _020167AE +_020167C0: + cmp r4, r6 + bhs _020167D2 + ldr r0, _020167F0 ; =0x021C4D28 +_020167C6: + ldrh r2, [r0, #0x1a] + ldr r1, [r0, #0x10] + strb r2, [r1, r4] + add r4, r4, #0x1 + cmp r4, r6 + blo _020167C6 +_020167D2: + mov r4, #0x0 + cmp r6, #0x0 + bls _020167EA + ldr r0, _020167F0 ; =0x021C4D28 + add r3, r4, #0x0 + add r2, r4, #0x0 +_020167DE: + ldr r1, [r0, #0xc] + add r4, r4, #0x1 + strh r2, [r1, r3] + add r3, r3, #0x2 + cmp r4, r6 + blo _020167DE +_020167EA: + add sp, #0x8 + pop {r3-r7, pc} + nop +_020167F0: .word 0x021C4D28 + + thumb_func_start FUN_020167F4 +FUN_020167F4: ; 0x020167F4 + ldr r1, _02016818 ; =0x021C4D28 + ldrh r0, [r1, #0x16] + ldrh r3, [r1, #0x18] + cmp r0, r3 + bge _02016812 + ldr r2, [r1, #0x0] + lsl r1, r0, #0x2 + add r2, r2, r1 +_02016804: + ldr r1, [r2, #0x0] + cmp r1, #0x0 + beq _02016816 + add r0, r0, #0x1 + add r2, r2, #0x4 + cmp r0, r3 + blt _02016804 +_02016812: + mov r0, #0x0 + mvn r0, r0 +_02016816: + bx lr + .balign 4 +_02016818: .word 0x021C4D28 + + thumb_func_start FUN_0201681C +FUN_0201681C: ; 0x0201681C + push {r3, lr} + mov r3, #0x4 + bl FUN_02016834 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02016828 +FUN_02016828: ; 0x02016828 + push {r3, lr} + mov r3, #0x3 + mvn r3, r3 + bl FUN_02016834 + pop {r3, pc} + + thumb_func_start FUN_02016834 +FUN_02016834: ; 0x02016834 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r7, r3, #0x0 + bl OS_GetProcMode + cmp r0, #0x12 + bne _0201684C + bl ErrorHandling +_0201684C: + ldr r1, _020168CC ; =0x021C4D28 + ldr r0, [r1, #0x10] + ldrh r3, [r1, #0x1a] + ldrb r2, [r0, r5] + cmp r3, r2 + bne _020168C2 + ldrb r0, [r0, r4] + ldr r1, [r1, #0x0] + lsl r0, r0, #0x2 + ldr r6, [r1, r0] + cmp r6, #0x0 + beq _020168BC + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + add r2, r7, #0x0 + bl tempName_NNS_FndAllocFromExpHeapEx + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _020168B6 + bl FUN_020167F4 + add r7, r0, #0x0 + bmi _020168B0 + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x0] + mov r2, #0x0 + lsl r4, r7, #0x2 + bl tempName_NNS_FndCreateExpHeapEx + ldr r1, _020168CC ; =0x021C4D28 + ldr r2, [r1, #0x0] + str r0, [r2, r4] + ldr r0, [r1, #0x0] + ldr r0, [r0, r4] + cmp r0, #0x0 + beq _020168AA + ldr r0, [r1, #0x4] + str r6, [r0, r4] + ldr r0, [sp, #0x4] + ldr r2, [r1, #0x8] + add sp, #0x8 + str r0, [r2, r4] + ldr r0, [r1, #0x10] + strb r7, [r0, r5] + mov r0, #0x1 + pop {r3-r7, pc} +_020168AA: + bl ErrorHandling + b _020168C6 +_020168B0: + bl ErrorHandling + b _020168C6 +_020168B6: + bl ErrorHandling + b _020168C6 +_020168BC: + bl ErrorHandling + b _020168C6 +_020168C2: + bl ErrorHandling +_020168C6: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020168CC: .word 0x021C4D28 + + thumb_func_start FUN_020168D0 +FUN_020168D0: ; 0x020168D0 + push {r4, lr} + add r4, r0, #0x0 + bl OS_GetProcMode + cmp r0, #0x12 + bne _020168E0 + bl ErrorHandling +_020168E0: + ldr r0, _02016940 ; =0x021C4D28 + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r4] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0201693E + bl thunk_FUN_020adc8c + ldr r1, _02016940 ; =0x021C4D28 + ldr r0, [r1, #0x10] + ldrb r0, [r0, r4] + lsl r2, r0, #0x2 + ldr r0, [r1, #0x4] + ldr r1, [r1, #0x8] + ldr r0, [r0, r2] + ldr r1, [r1, r2] + cmp r0, #0x0 + beq _02016912 + cmp r1, #0x0 + beq _02016912 + bl FUN_020ADDF0 + b _02016916 +_02016912: + bl ErrorHandling +_02016916: + ldr r1, _02016940 ; =0x021C4D28 + mov r0, #0x0 + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x0] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x4] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldr r2, [r1, #0x10] + ldr r3, [r1, #0x8] + ldrb r2, [r2, r4] + lsl r2, r2, #0x2 + str r0, [r3, r2] + ldrh r2, [r1, #0x1a] + ldr r0, [r1, #0x10] + strb r2, [r0, r4] +_0201693E: + pop {r4, pc} + .balign 4 +_02016940: .word 0x021C4D28 + + thumb_func_start FUN_02016944 +FUN_02016944: ; 0x02016944 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r5, #0x0 + bne _02016956 + bl ErrorHandling +_02016956: + bl OS_DisableInterrupts + add r4, #0x10 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl tempName_NNS_FndAllocFromExpHeapEx + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + bl OS_RestoreInterrupts + cmp r4, #0x0 + beq _02016984 + ldr r1, [r4, #0xc] + mov r0, #0xff + bic r1, r0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + str r0, [r4, #0xc] + add r4, #0x10 +_02016984: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02016988 +FUN_02016988: ; 0x02016988 + push {r3, lr} + bl FUN_02031810 + cmp r0, #0x0 + beq _02016996 + bl FUN_0208A9B8 +_02016996: + pop {r3, pc} + + thumb_func_start FUN_02016998 +FUN_02016998: ; 0x02016998 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020169D4 ; =0x021C4D28 + mov r4, #0x0 + ldrh r2, [r0, #0x14] + cmp r5, r2 + bhs _020169BA + ldr r2, [r0, #0x0] + ldr r0, [r0, #0x10] + add r3, r5, #0x0 + ldrb r0, [r0, r5] + lsl r0, r0, #0x2 + ldr r0, [r2, r0] + mov r2, #0x4 + bl FUN_02016944 + add r4, r0, #0x0 +_020169BA: + cmp r4, #0x0 + beq _020169CC + ldr r0, _020169D4 ; =0x021C4D28 + lsl r1, r5, #0x1 + ldr r2, [r0, #0xc] + ldrh r0, [r2, r1] + add r0, r0, #0x1 + strh r0, [r2, r1] + b _020169D0 +_020169CC: + bl FUN_02016988 +_020169D0: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_020169D4: .word 0x021C4D28 + + thumb_func_start FUN_020169D8 +FUN_020169D8: ; 0x020169D8 + push {r3-r5, lr} + ldr r2, _02016A14 ; =0x021C4D28 + add r5, r0, #0x0 + ldrh r0, [r2, #0x14] + mov r4, #0x0 + cmp r5, r0 + bhs _020169FA + ldr r0, [r2, #0x0] + ldr r2, [r2, #0x10] + add r3, r5, #0x0 + ldrb r2, [r2, r5] + lsl r2, r2, #0x2 + ldr r0, [r0, r2] + sub r2, r4, #0x4 + bl FUN_02016944 + add r4, r0, #0x0 +_020169FA: + cmp r4, #0x0 + beq _02016A0C + ldr r0, _02016A14 ; =0x021C4D28 + lsl r1, r5, #0x1 + ldr r2, [r0, #0xc] + ldrh r0, [r2, r1] + add r0, r0, #0x1 + strh r0, [r2, r1] + b _02016A10 +_02016A0C: + bl FUN_02016988 +_02016A10: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02016A14: .word 0x021C4D28 + + thumb_func_start FUN_02016A18 +FUN_02016A18: ; 0x02016A18 + push {r3-r7, lr} + add r6, r0, #0x0 + sub r0, r6, #0x4 + ldr r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _02016A88 ; =0x021C4D28 + ldrh r1, [r0, #0x14] + cmp r4, r1 + bhs _02016A80 + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r4] + lsl r0, r0, #0x2 + ldr r7, [r1, r0] + cmp r7, #0x0 + bne _02016A3E + bl ErrorHandling +_02016A3E: + ldr r0, _02016A88 ; =0x021C4D28 + lsl r5, r4, #0x1 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r5] + cmp r0, #0x0 + bne _02016A50 + add r0, r4, #0x0 + bl FUN_02016B90 +_02016A50: + ldr r0, _02016A88 ; =0x021C4D28 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r5] + cmp r0, #0x0 + bne _02016A5E + bl ErrorHandling +_02016A5E: + ldr r0, _02016A88 ; =0x021C4D28 + ldr r1, [r0, #0xc] + ldrh r0, [r1, r5] + sub r0, r0, #0x1 + strh r0, [r1, r5] + bl OS_DisableInterrupts + sub r6, #0x10 + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + bl FUN_020ADDF0 + add r0, r4, #0x0 + bl OS_RestoreInterrupts + pop {r3-r7, pc} +_02016A80: + bl ErrorHandling + pop {r3-r7, pc} + nop +_02016A88: .word 0x021C4D28 + + thumb_func_start FUN_02016A8C +FUN_02016A8C: ; 0x02016A8C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl OS_GetProcMode + cmp r0, #0x12 + bne _02016A9E + bl ErrorHandling +_02016A9E: + ldr r0, _02016AF4 ; =0x021C4D28 + ldrh r1, [r0, #0x14] + cmp r5, r1 + bhs _02016AEE + ldr r1, [r0, #0x0] + ldr r0, [r0, #0x10] + ldrb r0, [r0, r5] + lsl r0, r0, #0x2 + ldr r6, [r1, r0] + cmp r6, #0x0 + bne _02016AB8 + bl ErrorHandling +_02016AB8: + sub r0, r4, #0x4 + ldr r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r5 + beq _02016AC8 + bl ErrorHandling +_02016AC8: + sub r4, #0x10 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_020ADDF0 + ldr r0, _02016AF4 ; =0x021C4D28 + lsl r4, r5, #0x1 + ldr r0, [r0, #0xc] + ldrh r0, [r0, r4] + cmp r0, #0x0 + bne _02016AE2 + bl ErrorHandling +_02016AE2: + ldr r0, _02016AF4 ; =0x021C4D28 + ldr r1, [r0, #0xc] + ldrh r0, [r1, r4] + sub r0, r0, #0x1 + strh r0, [r1, r4] + pop {r4-r6, pc} +_02016AEE: + bl ErrorHandling + pop {r4-r6, pc} + .balign 4 +_02016AF4: .word 0x021C4D28 + + thumb_func_start FUN_02016AF8 +FUN_02016AF8: ; 0x02016AF8 + push {r3, lr} + ldr r1, _02016B1C ; =0x021C4D28 + ldrh r2, [r1, #0x14] + cmp r0, r2 + bhs _02016B12 + ldr r2, [r1, #0x0] + ldr r1, [r1, #0x10] + ldrb r0, [r1, r0] + lsl r0, r0, #0x2 + ldr r0, [r2, r0] + bl FUN_020ADDC8 + pop {r3, pc} +_02016B12: + bl ErrorHandling + mov r0, #0x0 + pop {r3, pc} + nop +_02016B1C: .word 0x021C4D28 + + thumb_func_start FUN_02016B20 +FUN_02016B20: ; 0x02016B20 + push {r4, lr} + ldr r4, _02016B40 ; =0x021C4D28 + ldrh r3, [r4, #0x14] + cmp r1, r3 + bhs _02016B3A + ldr r3, [r4, #0x0] + ldr r4, [r4, #0x10] + ldrb r1, [r4, r1] + lsl r1, r1, #0x2 + ldr r1, [r3, r1] + bl FUN_020AE82C + pop {r4, pc} +_02016B3A: + bl ErrorHandling + pop {r4, pc} + .balign 4 +_02016B40: .word 0x021C4D28 + + thumb_func_start FUN_02016B44 +FUN_02016B44: ; 0x02016B44 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl OS_GetProcMode + cmp r0, #0x12 + bne _02016B56 + bl ErrorHandling +_02016B56: + add r0, r5, #0x0 + sub r0, #0x10 + bl FUN_020ADDC0 + add r4, #0x10 + cmp r0, r4 + blo _02016B84 + sub r2, r5, #0x4 + ldr r0, _02016B8C ; =0x021C4D28 + ldr r2, [r2, #0x0] + ldr r1, [r0, #0x0] + lsl r2, r2, #0x18 + ldr r0, [r0, #0x10] + lsr r2, r2, #0x18 + ldrb r0, [r0, r2] + sub r5, #0x10 + add r2, r4, #0x0 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r5, #0x0 + bl FUN_020ADE2C + pop {r3-r5, pc} +_02016B84: + bl ErrorHandling + pop {r3-r5, pc} + nop +_02016B8C: .word 0x021C4D28 + + thumb_func_start FUN_02016B90 +FUN_02016B90: ; 0x02016B90 + mov r0, #0x1 + bx lr + + thumb_func_start FUN_02016B94 +FUN_02016B94: ; 0x02016B94 + push {r3-r5, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + add r5, r0, #0x0 + bl FUN_02016998 + mov r2, #0x5a + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + bl memset + str r5, [r4, #0x0] + mov r0, #0x0 + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02016BB8 +FUN_02016BB8: ; 0x02016BB8 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02016BBC +FUN_02016BBC: ; 0x02016BBC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0xc] + bl GX_SetGraphicsMode + ldr r0, [r4, #0x8] + bl GXS_SetGraphicsMode + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02016BF0 ; =0xC7FFFFFF + and r1, r0 + str r1, [r2, #0x0] + ldr r1, [r2, #0x0] + asr r0, r0, #0x3 + and r0, r1 + str r0, [r2, #0x0] + bl FUN_0201E6D8 + bl FUN_0201E740 + pop {r4, pc} + nop +_02016BF0: .word 0xC7FFFFFF + + thumb_func_start FUN_02016BF4 +FUN_02016BF4: ; 0x02016BF4 + push {r3, lr} + add r2, r0, #0x0 + cmp r1, #0x0 + bne _02016C0C + ldr r0, [r2, #0x0] + ldr r1, [r2, #0x4] + ldr r2, [r2, #0xc] + bl GX_SetGraphicsMode + bl FUN_0201E6D8 + pop {r3, pc} +_02016C0C: + ldr r0, [r2, #0x8] + bl GXS_SetGraphicsMode + bl FUN_0201E740 + pop {r3, pc} + + thumb_func_start FUN_02016C18 +FUN_02016C18: ; 0x02016C18 + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x10] + ldr r1, [sp, #0x8] + bl FUN_020177DC + add r5, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0x7 + bls _02016C36 + b _0201705A +_02016C36: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02016C42: ; jump table (using 16-bit offset) + .short _02016C52 - _02016C42 - 2; case 0 + .short _02016CAA - _02016C42 - 2; case 1 + .short _02016D02 - _02016C42 - 2; case 2 + .short _02016DA4 - _02016C42 - 2; case 3 + .short _02016E46 - _02016C42 - 2; case 4 + .short _02016E9E - _02016C42 - 2; case 5 + .short _02016EF6 - _02016C42 - 2; case 6 + .short _02016F98 - _02016C42 - 2; case 7 +_02016C52: + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_0201E6E4 + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0xc] + ldr r2, _02016FB4 ; =0x04000008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0xc] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CA0 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CA0: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016CAA: + mov r0, #0x2 + mov r1, #0x1 + bl FUN_0201E6E4 + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x10] + ldr r2, _02016FB8 ; =0x0400000A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x10] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CF8 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CF8: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016D02: + mov r0, #0x4 + mov r1, #0x1 + bl FUN_0201E6E4 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016D18 + cmp r0, #0x1 + beq _02016D3A + cmp r0, #0x2 + beq _02016D5C +_02016D18: + ldrb r1, [r4, #0x12] + ldr r7, _02016FBC ; =0x0400000C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D3A: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FBC ; =0x0400000C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D5C: + ldrb r1, [r4, #0x12] + ldr r7, _02016FBC ; =0x0400000C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016D7C: + ldr r0, _02016FBC ; =0x0400000C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016D9A + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016D9A: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016DA4: + mov r0, #0x8 + mov r1, #0x1 + bl FUN_0201E6E4 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016DBA + cmp r0, #0x1 + beq _02016DDC + cmp r0, #0x2 + beq _02016DFE +_02016DBA: + ldrb r1, [r4, #0x12] + ldr r7, _02016FC0 ; =0x0400000E + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DDC: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FC0 ; =0x0400000E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DFE: + ldrb r1, [r4, #0x12] + ldr r7, _02016FC0 ; =0x0400000E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016E1E: + ldr r0, _02016FC0 ; =0x0400000E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016E3C + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016E3C: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016E46: + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_0201E74C + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x14] + ldr r2, _02016FC4 ; =0x04001008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x14] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016E94 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016E94: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016E9E: + mov r0, #0x2 + mov r1, #0x1 + bl FUN_0201E74C + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrb r3, [r4, #0x14] + lsl r0, r0, #0x7 + mov r12, r0 + ldr r2, _02016FC8 ; =0x0400100A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + lsl r3, r3, #0xd + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + mov r1, r12 + orr r0, r1 + orr r0, r7 + orr r0, r6 + orr r0, r3 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016EEC + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016EEC: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016EF6: + mov r0, #0x4 + mov r1, #0x1 + bl FUN_0201E74C + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016F0C + cmp r0, #0x1 + beq _02016F2E + cmp r0, #0x2 + beq _02016F50 +_02016F0C: + ldrb r1, [r4, #0x12] + ldr r7, _02016FCC ; =0x0400100C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F2E: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FCC ; =0x0400100C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F50: + ldrb r1, [r4, #0x12] + ldr r7, _02016FCC ; =0x0400100C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016F70: + ldr r0, _02016FCC ; =0x0400100C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016F8E + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016F8E: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016F98: + mov r0, #0x8 + mov r1, #0x1 + bl FUN_0201E74C + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016FAE + cmp r0, #0x1 + beq _02016FF2 + cmp r0, #0x2 + beq _02017014 +_02016FAE: + ldrb r1, [r4, #0x12] + ldr r7, _02016FD0 ; =0x0400100E + b _02016FD4 + .balign 4 +_02016FB4: .word 0x04000008 +_02016FB8: .word 0x0400000A +_02016FBC: .word 0x0400000C +_02016FC0: .word 0x0400000E +_02016FC4: .word 0x04001008 +_02016FC8: .word 0x0400100A +_02016FCC: .word 0x0400100C +_02016FD0: .word 0x0400100E +_02016FD4: + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02016FF2: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _020170F0 ; =0x0400100E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02017014: + ldrb r1, [r4, #0x12] + ldr r7, _020170F0 ; =0x0400100E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02017034: + ldr r0, _020170F0 ; =0x0400100E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02017052 + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02017052: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] +_0201705A: + ldr r0, [sp, #0x4] + mov r1, #0x2c + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mul r5, r1 + add r2, r0, r5 + mov r3, #0x0 + mov r0, #0x1 + strh r3, [r2, #0x20] + lsl r0, r0, #0xc + str r0, [r2, #0x24] + str r0, [r2, #0x28] + str r3, [r2, #0x2c] + str r3, [r2, #0x30] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020170A2 + ldr r0, [sp, #0x0] + ldr r6, [sp, #0x0] + ldr r0, [r0, #0x0] + add r6, #0x8 + bl FUN_02016998 + str r0, [r6, r5] + ldr r1, [r6, r5] + ldr r2, [r4, #0x8] + mov r0, #0x0 + bl MIi_CpuClear16 + ldr r0, [sp, #0x0] + ldr r2, [r4, #0x8] + add r1, r0, r5 + str r2, [r1, #0xc] + ldr r0, [r4, #0xc] + str r0, [r1, #0x10] + b _020170A8 +_020170A2: + str r3, [r2, #0x8] + str r3, [r2, #0xc] + str r3, [r2, #0x10] +_020170A8: + ldr r0, [sp, #0x0] + ldrb r1, [r4, #0x10] + add r0, r0, r5 + strb r1, [r0, #0x1d] + ldr r1, [sp, #0x8] + strb r1, [r0, #0x1c] + ldrb r1, [r4, #0x11] + strb r1, [r0, #0x1e] + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _020170CA + ldrb r1, [r4, #0x11] + cmp r1, #0x0 + bne _020170CA + mov r1, #0x20 + strb r1, [r0, #0x1f] + b _020170D2 +_020170CA: + ldr r0, [sp, #0x0] + mov r1, #0x40 + add r0, r0, r5 + strb r1, [r0, #0x1f] +_020170D2: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x0] + mov r2, #0x0 + bl FUN_020179E0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x4] + mov r2, #0x3 + bl FUN_020179E0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_020170F0: .word 0x0400100E + + thumb_func_start FUN_020170F4 +FUN_020170F4: ; 0x020170F4 + push {r3-r7, lr} + sub sp, #0x20 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 + add r0, r3, #0x0 + cmp r1, #0x0 + bne _0201710C + mov r2, #0x2c + mul r2, r4 + add r2, r5, r2 + strb r0, [r2, #0x1e] +_0201710C: + cmp r4, #0x7 + bls _02017112 + b _020177C4 +_02017112: + add r2, r4, r4 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0201711E: ; jump table (using 16-bit offset) + .short _0201712E - _0201711E - 2; case 0 + .short _0201719A - _0201711E - 2; case 1 + .short _02017206 - _0201711E - 2; case 2 + .short _0201733A - _0201711E - 2; case 3 + .short _0201746E - _0201711E - 2; case 4 + .short _020174F4 - _0201711E - 2; case 5 + .short _02017560 - _0201711E - 2; case 6 + .short _02017694 - _0201711E - 2; case 7 +_0201712E: + ldr r2, _02017480 ; =0x04000008 + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x1e] + bne _0201714A + ldrh r3, [r2, #0x1e] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x1e] + b _0201715C +_0201714A: + cmp r1, #0x2 + bne _0201715C + ldrh r3, [r2, #0x1e] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x1e] +_0201715C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1e] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, _02017480 ; =0x04000008 + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_0201719A: + ldr r2, _02017488 ; =0x0400000A + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x1c] + bne _020171B6 + ldrh r3, [r2, #0x1c] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x1c] + b _020171C8 +_020171B6: + cmp r1, #0x2 + bne _020171C8 + ldrh r3, [r2, #0x1c] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x1c] +_020171C8: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1c] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, _02017488 ; =0x0400000A + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_02017206: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _0201721A + cmp r3, #0x1 + beq _0201727A + cmp r3, #0x2 + beq _020172DA +_0201721A: + ldr r3, _0201748C ; =0x0400000C + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x1a] + bne _02017236 + ldrh r4, [r3, #0x1a] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x1a] + b _02017248 +_02017236: + cmp r1, #0x2 + bne _02017248 + ldrh r4, [r3, #0x1a] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x1a] +_02017248: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1a] + add r2, r5, r2 + ldr r6, _0201748C ; =0x0400000C + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201727A: + ldr r2, _0201748C ; =0x0400000C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x18] + bne _02017296 + ldrh r3, [r2, #0x18] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x18] + b _020172A8 +_02017296: + cmp r1, #0x2 + bne _020172A8 + ldrh r3, [r2, #0x18] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x18] +_020172A8: + add r0, sp, #0x0 + ldrh r3, [r0, #0x18] + ldr r6, _0201748C ; =0x0400000C + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020172DA: + ldr r2, _0201748C ; =0x0400000C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x16] + bne _020172F6 + ldrh r3, [r2, #0x16] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x16] + b _02017308 +_020172F6: + cmp r1, #0x2 + bne _02017308 + ldrh r3, [r2, #0x16] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x16] +_02017308: + add r0, sp, #0x0 + ldrh r3, [r0, #0x16] + ldr r6, _0201748C ; =0x0400000C + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201733A: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _0201734E + cmp r3, #0x1 + beq _020173AE + cmp r3, #0x2 + beq _0201740E +_0201734E: + ldr r3, _02017490 ; =0x0400000E + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x14] + bne _0201736A + ldrh r4, [r3, #0x14] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x14] + b _0201737C +_0201736A: + cmp r1, #0x2 + bne _0201737C + ldrh r4, [r3, #0x14] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x14] +_0201737C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x14] + add r2, r5, r2 + ldr r6, _02017490 ; =0x0400000E + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020173AE: + ldr r2, _02017490 ; =0x0400000E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x12] + bne _020173CA + ldrh r3, [r2, #0x12] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x12] + b _020173DC +_020173CA: + cmp r1, #0x2 + bne _020173DC + ldrh r3, [r2, #0x12] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x12] +_020173DC: + add r0, sp, #0x0 + ldrh r3, [r0, #0x12] + ldr r6, _02017490 ; =0x0400000E + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201740E: + ldr r2, _02017490 ; =0x0400000E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x10] + bne _0201742A + ldrh r3, [r2, #0x10] + ldr r1, _02017484 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x10] + b _0201743C +_0201742A: + cmp r1, #0x2 + bne _0201743C + ldrh r3, [r2, #0x10] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x10] +_0201743C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x10] + ldr r6, _02017490 ; =0x0400000E + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201746E: + ldr r2, _02017494 ; =0x04001008 + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0xe] + bne _020174A4 + ldrh r3, [r2, #0xe] + ldr r1, _02017484 ; =0xFFFFE0FF + b _02017498 + .balign 4 +_02017480: .word 0x04000008 +_02017484: .word 0xFFFFE0FF +_02017488: .word 0x0400000A +_0201748C: .word 0x0400000C +_02017490: .word 0x0400000E +_02017494: .word 0x04001008 +_02017498: + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0xe] + b _020174B6 +_020174A4: + cmp r1, #0x2 + bne _020174B6 + ldrh r3, [r2, #0xe] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0xe] +_020174B6: + add r0, sp, #0x0 + ldrh r3, [r0, #0xe] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, _020177C8 ; =0x04001008 + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_020174F4: + ldr r2, _020177CC ; =0x0400100A + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0xc] + bne _02017510 + ldrh r3, [r2, #0xc] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0xc] + b _02017522 +_02017510: + cmp r1, #0x2 + bne _02017522 + ldrh r3, [r2, #0xc] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0xc] +_02017522: + add r0, sp, #0x0 + ldrh r3, [r0, #0xc] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, _020177CC ; =0x0400100A + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_02017560: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _02017574 + cmp r3, #0x1 + beq _020175D4 + cmp r3, #0x2 + beq _02017634 +_02017574: + ldr r3, _020177D4 ; =0x0400100C + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0xa] + bne _02017590 + ldrh r4, [r3, #0xa] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0xa] + b _020175A2 +_02017590: + cmp r1, #0x2 + bne _020175A2 + ldrh r4, [r3, #0xa] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0xa] +_020175A2: + add r0, sp, #0x0 + ldrh r3, [r0, #0xa] + add r2, r5, r2 + ldr r6, _020177D4 ; =0x0400100C + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020175D4: + ldr r2, _020177D4 ; =0x0400100C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x8] + bne _020175F0 + ldrh r3, [r2, #0x8] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x8] + b _02017602 +_020175F0: + cmp r1, #0x2 + bne _02017602 + ldrh r3, [r2, #0x8] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x8] +_02017602: + add r0, sp, #0x0 + ldrh r3, [r0, #0x8] + ldr r6, _020177D4 ; =0x0400100C + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017634: + ldr r2, _020177D4 ; =0x0400100C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x6] + bne _02017650 + ldrh r3, [r2, #0x6] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x6] + b _02017662 +_02017650: + cmp r1, #0x2 + bne _02017662 + ldrh r3, [r2, #0x6] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x6] +_02017662: + add r0, sp, #0x0 + ldrh r3, [r0, #0x6] + ldr r6, _020177D4 ; =0x0400100C + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017694: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _020176A8 + cmp r3, #0x1 + beq _02017708 + cmp r3, #0x2 + beq _02017768 +_020176A8: + ldr r3, _020177D8 ; =0x0400100E + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x4] + bne _020176C4 + ldrh r4, [r3, #0x4] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x4] + b _020176D6 +_020176C4: + cmp r1, #0x2 + bne _020176D6 + ldrh r4, [r3, #0x4] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x4] +_020176D6: + add r0, sp, #0x0 + ldrh r3, [r0, #0x4] + add r2, r5, r2 + ldr r6, _020177D8 ; =0x0400100E + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017708: + ldr r2, _020177D8 ; =0x0400100E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x2] + bne _02017724 + ldrh r3, [r2, #0x2] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x2] + b _02017736 +_02017724: + cmp r1, #0x2 + bne _02017736 + ldrh r3, [r2, #0x2] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x2] +_02017736: + add r0, sp, #0x0 + ldrh r3, [r0, #0x2] + ldr r6, _020177D8 ; =0x0400100E + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017768: + ldr r2, _020177D8 ; =0x0400100E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x0] + bne _02017784 + ldrh r3, [r2, #0x0] + ldr r1, _020177D0 ; =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x0] + b _02017796 +_02017784: + cmp r1, #0x2 + bne _02017796 + ldrh r3, [r2, #0x0] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x0] +_02017796: + add r0, sp, #0x0 + ldrh r3, [r0, #0x0] + ldr r6, _020177D8 ; =0x0400100E + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] +_020177C4: + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_020177C8: .word 0x04001008 +_020177CC: .word 0x0400100A +_020177D0: .word 0xFFFFE0FF +_020177D4: .word 0x0400100C +_020177D8: .word 0x0400100E + + thumb_func_start FUN_020177DC +FUN_020177DC: ; 0x020177DC + cmp r1, #0x0 + beq _020177EA + cmp r1, #0x1 + beq _0201780A + cmp r1, #0x2 + beq _0201782A + b _0201784A +_020177EA: + cmp r0, #0x1 + bne _020177F2 + mov r0, #0x0 + bx lr +_020177F2: + cmp r0, #0x2 + bne _020177FA + mov r0, #0x2 + bx lr +_020177FA: + cmp r0, #0x3 + bne _02017802 + mov r0, #0x1 + bx lr +_02017802: + cmp r0, #0x4 + bne _0201784A + mov r0, #0x3 + bx lr +_0201780A: + cmp r0, #0x0 + bne _02017812 + mov r0, #0x0 + bx lr +_02017812: + cmp r0, #0x1 + bne _0201781A + mov r0, #0x1 + bx lr +_0201781A: + cmp r0, #0x4 + bne _02017822 + mov r0, #0x2 + bx lr +_02017822: + cmp r0, #0x5 + bne _0201784A + mov r0, #0x3 + bx lr +_0201782A: + cmp r0, #0x0 + bne _02017832 + mov r0, #0x0 + bx lr +_02017832: + cmp r0, #0x1 + bne _0201783A + mov r0, #0x1 + bx lr +_0201783A: + cmp r0, #0x4 + bne _02017842 + mov r0, #0x2 + bx lr +_02017842: + cmp r0, #0x5 + bne _0201784A + mov r0, #0x3 + bx lr +_0201784A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02017850 +FUN_02017850: ; 0x02017850 + cmp r0, #0x5 + bhi _0201789E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02017860: ; jump table (using 16-bit offset) + .short _0201786C - _02017860 - 2; case 0 + .short _02017874 - _02017860 - 2; case 1 + .short _0201787C - _02017860 - 2; case 2 + .short _02017886 - _02017860 - 2; case 3 + .short _02017890 - _02017860 - 2; case 4 + .short _02017898 - _02017860 - 2; case 5 +_0201786C: + mov r0, #0x10 + strb r0, [r1, #0x0] + strb r0, [r2, #0x0] + bx lr +_02017874: + mov r0, #0x20 + strb r0, [r1, #0x0] + strb r0, [r2, #0x0] + bx lr +_0201787C: + mov r0, #0x20 + strb r0, [r1, #0x0] + mov r0, #0x40 + strb r0, [r2, #0x0] + bx lr +_02017886: + mov r0, #0x40 + strb r0, [r1, #0x0] + mov r0, #0x20 + strb r0, [r2, #0x0] + bx lr +_02017890: + mov r0, #0x40 + strb r0, [r1, #0x0] + strb r0, [r2, #0x0] + bx lr +_02017898: + mov r0, #0x80 + strb r0, [r1, #0x0] + strb r0, [r2, #0x0] +_0201789E: + bx lr + + thumb_func_start FUN_020178A0 +FUN_020178A0: ; 0x020178A0 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r2, #0x2c + add r5, r1, #0x0 + mul r5, r2 + add r4, #0x8 + ldr r0, [r4, r5] + cmp r0, #0x0 + beq _020178BA + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, r5] +_020178BA: + pop {r3-r5, pc} + + thumb_func_start FUN_020178BC +FUN_020178BC: ; 0x020178BC + cmp r0, #0x7 + bhi _0201795A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020178CC: ; jump table (using 16-bit offset) + .short _020178DC - _020178CC - 2; case 0 + .short _020178EC - _020178CC - 2; case 1 + .short _020178FC - _020178CC - 2; case 2 + .short _0201790C - _020178CC - 2; case 3 + .short _0201791C - _020178CC - 2; case 4 + .short _0201792C - _020178CC - 2; case 5 + .short _0201793C - _020178CC - 2; case 6 + .short _0201794C - _020178CC - 2; case 7 +_020178DC: + ldr r2, _0201795C ; =0x04000008 + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_020178EC: + ldr r2, _02017960 ; =0x0400000A + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_020178FC: + ldr r2, _02017964 ; =0x0400000C + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201790C: + ldr r2, _02017968 ; =0x0400000E + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201791C: + ldr r2, _0201796C ; =0x04001008 + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201792C: + ldr r2, _02017970 ; =0x0400100A + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201793C: + ldr r2, _02017974 ; =0x0400100C + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201794C: + ldr r2, _02017978 ; =0x0400100E + mov r0, #0x3 + ldrh r3, [r2, #0x0] + bic r3, r0 + add r0, r3, #0x0 + orr r0, r1 + strh r0, [r2, #0x0] +_0201795A: + bx lr + .balign 4 +_0201795C: .word 0x04000008 +_02017960: .word 0x0400000A +_02017964: .word 0x0400000C +_02017968: .word 0x0400000E +_0201796C: .word 0x04001008 +_02017970: .word 0x0400100A +_02017974: .word 0x0400100C +_02017978: .word 0x0400100E + + thumb_func_start FUN_0201797C +FUN_0201797C: ; 0x0201797C + push {r3, lr} + cmp r0, #0x7 + bhi _020179DC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0201798E: ; jump table (using 16-bit offset) + .short _0201799E - _0201798E - 2; case 0 + .short _020179A6 - _0201798E - 2; case 1 + .short _020179AE - _0201798E - 2; case 2 + .short _020179B6 - _0201798E - 2; case 3 + .short _020179BE - _0201798E - 2; case 4 + .short _020179C6 - _0201798E - 2; case 5 + .short _020179CE - _0201798E - 2; case 6 + .short _020179D6 - _0201798E - 2; case 7 +_0201799E: + mov r0, #0x1 + bl FUN_0201E6E4 + pop {r3, pc} +_020179A6: + mov r0, #0x2 + bl FUN_0201E6E4 + pop {r3, pc} +_020179AE: + mov r0, #0x4 + bl FUN_0201E6E4 + pop {r3, pc} +_020179B6: + mov r0, #0x8 + bl FUN_0201E6E4 + pop {r3, pc} +_020179BE: + mov r0, #0x1 + bl FUN_0201E74C + pop {r3, pc} +_020179C6: + mov r0, #0x2 + bl FUN_0201E74C + pop {r3, pc} +_020179CE: + mov r0, #0x4 + bl FUN_0201E74C + pop {r3, pc} +_020179D6: + mov r0, #0x8 + bl FUN_0201E74C +_020179DC: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020179E0 +FUN_020179E0: ; 0x020179E0 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + mov r0, #0x2c + add r6, r5, #0x0 + mul r6, r0 + add r0, r4, #0x0 + add r0, #0x8 + add r1, r2, #0x0 + add r2, r3, #0x0 + add r0, r0, r6 + bl FUN_02017B8C + add r0, r4, r6 + ldr r1, [r0, #0x14] + ldr r0, [r0, #0x18] + cmp r5, #0x7 + bls _02017A06 + b _02017B1C +_02017A06: + add r2, r5, r5 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02017A12: ; jump table (using 16-bit offset) + .short _02017A22 - _02017A12 - 2; case 0 + .short _02017A38 - _02017A12 - 2; case 1 + .short _02017A4E - _02017A12 - 2; case 2 + .short _02017A78 - _02017A12 - 2; case 3 + .short _02017AA2 - _02017A12 - 2; case 4 + .short _02017AB8 - _02017A12 - 2; case 5 + .short _02017ACE - _02017A12 - 2; case 6 + .short _02017AF6 - _02017A12 - 2; case 7 +_02017A22: + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B24 ; =0x04000010 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017A38: + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B28 ; =0x04000014 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017A4E: + add r2, r4, #0x0 + add r2, #0x74 + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _02017A6E + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B2C ; =0x04000018 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017A6E: + add r0, r4, #0x0 + mov r1, #0x2 + bl FUN_02017C6C + pop {r4-r6, pc} +_02017A78: + add r2, r4, #0x0 + add r2, #0xa0 + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _02017A98 + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B30 ; =0x0400001C + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017A98: + add r0, r4, #0x0 + mov r1, #0x3 + bl FUN_02017C6C + pop {r4-r6, pc} +_02017AA2: + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B34 ; =0x04001010 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017AB8: + ldr r2, _02017B20 ; =0x000001FF + add r3, r1, #0x0 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + and r3, r2 + and r0, r1 + add r1, r3, #0x0 + orr r1, r0 + ldr r0, _02017B38 ; =0x04001014 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017ACE: + mov r2, #0x49 + lsl r2, r2, #0x2 + ldrb r3, [r4, r2] + cmp r3, #0x0 + bne _02017AEC + add r2, #0xdb + and r2, r1 + lsl r1, r0, #0x10 + ldr r0, _02017B3C ; =0x01FF0000 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _02017B40 ; =0x04001018 + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017AEC: + add r0, r4, #0x0 + mov r1, #0x6 + bl FUN_02017C6C + pop {r4-r6, pc} +_02017AF6: + mov r2, #0x15 + lsl r2, r2, #0x4 + ldrb r3, [r4, r2] + cmp r3, #0x0 + bne _02017B14 + add r2, #0xaf + and r2, r1 + lsl r1, r0, #0x10 + ldr r0, _02017B3C ; =0x01FF0000 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _02017B44 ; =0x0400101C + str r1, [r0, #0x0] + pop {r4-r6, pc} +_02017B14: + add r0, r4, #0x0 + mov r1, #0x7 + bl FUN_02017C6C +_02017B1C: + pop {r4-r6, pc} + nop +_02017B20: .word 0x000001FF +_02017B24: .word 0x04000010 +_02017B28: .word 0x04000014 +_02017B2C: .word 0x04000018 +_02017B30: .word 0x0400001C +_02017B34: .word 0x04001010 +_02017B38: .word 0x04001014 +_02017B3C: .word 0x01FF0000 +_02017B40: .word 0x04001018 +_02017B44: .word 0x0400101C + + thumb_func_start FUN_02017B48 +FUN_02017B48: ; 0x02017B48 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start FUN_02017B54 +FUN_02017B54: ; 0x02017B54 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start FUN_02017B60 +FUN_02017B60: ; 0x02017B60 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl FUN_02017B8C + ldr r0, [sp, #0x18] + ldr r2, [sp, #0x10] + str r0, [sp, #0x0] + ldr r3, [sp, #0x14] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02017BD0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02017B8C +FUN_02017B8C: ; 0x02017B8C + cmp r1, #0x5 + bhi _02017BCE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02017B9C: ; jump table (using 16-bit offset) + .short _02017BA8 - _02017B9C - 2; case 0 + .short _02017BAC - _02017B9C - 2; case 1 + .short _02017BB4 - _02017B9C - 2; case 2 + .short _02017BBC - _02017B9C - 2; case 3 + .short _02017BC0 - _02017B9C - 2; case 4 + .short _02017BC8 - _02017B9C - 2; case 5 +_02017BA8: + str r2, [r0, #0xc] + bx lr +_02017BAC: + ldr r1, [r0, #0xc] + add r1, r1, r2 + str r1, [r0, #0xc] + bx lr +_02017BB4: + ldr r1, [r0, #0xc] + sub r1, r1, r2 + str r1, [r0, #0xc] + bx lr +_02017BBC: + str r2, [r0, #0x10] + bx lr +_02017BC0: + ldr r1, [r0, #0x10] + add r1, r1, r2 + str r1, [r0, #0x10] + bx lr +_02017BC8: + ldr r1, [r0, #0x10] + sub r1, r1, r2 + str r1, [r0, #0x10] +_02017BCE: + bx lr + + thumb_func_start FUN_02017BD0 +FUN_02017BD0: ; 0x02017BD0 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r1, #0x0 + add r1, r2, #0x0 + add r2, r3, #0x0 + ldr r3, [sp, #0x18] + cmp r4, #0x7 + bhi _02017C58 + add r5, r4, r4 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 +_02017BEC: ; jump table (using 16-bit offset) + .short _02017C58 - _02017BEC - 2; case 0 + .short _02017C58 - _02017BEC - 2; case 1 + .short _02017BFC - _02017BEC - 2; case 2 + .short _02017C14 - _02017BEC - 2; case 3 + .short _02017C58 - _02017BEC - 2; case 4 + .short _02017C58 - _02017BEC - 2; case 5 + .short _02017C2C - _02017BEC - 2; case 6 + .short _02017C44 - _02017BEC - 2; case 7 +_02017BFC: + mov r5, #0x2c + mul r5, r4 + add r4, r0, r5 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, _02017C5C ; =0x04000020 + bl G2x_SetBGyAffine_ + add sp, #0x8 + pop {r3-r5, pc} +_02017C14: + mov r5, #0x2c + mul r5, r4 + add r4, r0, r5 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, _02017C60 ; =0x04000030 + bl G2x_SetBGyAffine_ + add sp, #0x8 + pop {r3-r5, pc} +_02017C2C: + mov r5, #0x2c + mul r5, r4 + add r4, r0, r5 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, _02017C64 ; =0x04001020 + bl G2x_SetBGyAffine_ + add sp, #0x8 + pop {r3-r5, pc} +_02017C44: + mov r5, #0x2c + mul r5, r4 + add r4, r0, r5 + ldr r0, [r4, #0x14] + str r0, [sp, #0x0] + ldr r0, [r4, #0x18] + str r0, [sp, #0x4] + ldr r0, _02017C68 ; =0x04001030 + bl G2x_SetBGyAffine_ +_02017C58: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02017C5C: .word 0x04000020 +_02017C60: .word 0x04000030 +_02017C64: .word 0x04001020 +_02017C68: .word 0x04001030 + + thumb_func_start FUN_02017C6C +FUN_02017C6C: ; 0x02017C6C + push {r4-r5, lr} + sub sp, #0x14 + mov r2, #0x1 + lsl r2, r2, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r1, #0x0 + add r0, sp, #0x4 + add r3, r2, #0x0 + str r1, [sp, #0x0] + bl FUN_0201BB74 + mov r3, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, sp, #0x4 + str r3, [sp, #0x0] + bl FUN_02017BD0 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start FUN_02017C98 +FUN_02017C98: ; 0x02017C98 + push {r3-r5, lr} + cmp r2, #0x0 + bne _02017CA4 + bl MI_UncompressLZ8 + pop {r3-r5, pc} +_02017CA4: + mov r4, #0x3 + add r3, r0, #0x0 + tst r3, r4 + bne _02017CCA + add r3, r1, #0x0 + tst r3, r4 + bne _02017CCA + lsl r3, r2, #0x10 + lsr r3, r3, #0x10 + lsr r4, r3, #0x1f + lsl r5, r3, #0x1e + sub r5, r5, r4 + mov r3, #0x1e + ror r5, r3 + add r3, r4, r5 + bne _02017CCA + bl MIi_CpuCopy32 + pop {r3-r5, pc} +_02017CCA: + bl MIi_CpuCopy16 + pop {r3-r5, pc} + + thumb_func_start FUN_02017CD0 +FUN_02017CD0: ; 0x02017CD0 + push {r3, lr} + mov r2, #0x2c + mul r2, r1 + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl FUN_02017CE8 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02017CE8 +FUN_02017CE8: ; 0x02017CE8 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x0 + bne _02017D56 + mov r0, #0x2c + add r7, r4, #0x0 + mul r7, r0 + add r0, r5, r7 + ldr r0, [r0, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02017D26 + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + add r2, r3, #0x0 + bl FUN_02017C98 + add r3, r5, r7 + ldr r2, [r3, #0x10] + ldr r1, [sp, #0x4] + ldr r3, [r3, #0xc] + add r0, r4, #0x0 + lsl r2, r2, #0x1 + bl FUN_02017D68 + add sp, #0x8 + pop {r3-r7, pc} +_02017D26: + ldr r0, [r6, #0x0] + lsr r7, r0, #0x8 + ldr r0, [r5, #0x0] + add r1, r7, #0x0 + bl FUN_020169D8 + add r5, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02017C98 + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r5, #0x0 + lsl r2, r2, #0x1 + add r3, r7, #0x0 + bl FUN_02017D68 + add r0, r5, #0x0 + bl FUN_02016A18 + add sp, #0x8 + pop {r3-r7, pc} +_02017D56: + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x1 + bl FUN_02017D68 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02017D68 +FUN_02017D68: ; 0x02017D68 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r3, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r5, r2, #0x0 + bl DC_FlushRange + cmp r7, #0x7 + bhi _02017DF8 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02017D8A: ; jump table (using 16-bit offset) + .short _02017D9A - _02017D8A - 2; case 0 + .short _02017DA6 - _02017D8A - 2; case 1 + .short _02017DB2 - _02017D8A - 2; case 2 + .short _02017DBE - _02017D8A - 2; case 3 + .short _02017DCA - _02017D8A - 2; case 4 + .short _02017DD6 - _02017D8A - 2; case 5 + .short _02017DE2 - _02017D8A - 2; case 6 + .short _02017DEE - _02017D8A - 2; case 7 +_02017D9A: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG0Scr + pop {r3-r7, pc} +_02017DA6: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG1Scr + pop {r3-r7, pc} +_02017DB2: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG2Scr + pop {r3-r7, pc} +_02017DBE: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG3Scr + pop {r3-r7, pc} +_02017DCA: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG0Scr + pop {r3-r7, pc} +_02017DD6: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG1Scr + pop {r3-r7, pc} +_02017DE2: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG2Scr + pop {r3-r7, pc} +_02017DEE: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG3Scr +_02017DF8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02017DFC +FUN_02017DFC: ; 0x02017DFC + push {r4, lr} + add r4, r0, #0x0 + add r0, r2, #0x0 + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + ldr r1, [r1, #0x8] + add r2, r3, #0x0 + bl FUN_02017C98 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02017E14 +FUN_02017E14: ; 0x02017E14 + push {r3-r4, lr} + sub sp, #0x4 + mov r4, #0x2c + mul r4, r1 + add r4, r0, r4 + ldrb r4, [r4, #0x1e] + cmp r4, #0x0 + bne _02017E32 + ldr r4, [sp, #0x10] + lsl r4, r4, #0x5 + str r4, [sp, #0x0] + bl FUN_02017E40 + add sp, #0x4 + pop {r3-r4, pc} +_02017E32: + ldr r4, [sp, #0x10] + lsl r4, r4, #0x6 + str r4, [sp, #0x0] + bl FUN_02017E40 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_02017E40 +FUN_02017E40: ; 0x02017E40 + push {r3-r7, lr} + add r7, r1, #0x0 + add r5, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x0 + bne _02017E78 + ldr r1, [r5, #0x0] + ldr r0, [r0, #0x0] + lsr r4, r1, #0x8 + add r1, r4, #0x0 + bl FUN_020169D8 + add r6, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02017C98 + ldr r2, [sp, #0x18] + add r0, r7, #0x0 + add r1, r6, #0x0 + add r3, r4, #0x0 + bl FUN_02017E84 + add r0, r6, #0x0 + bl FUN_02016A18 + pop {r3-r7, pc} +_02017E78: + ldr r2, [sp, #0x18] + add r0, r7, #0x0 + add r1, r5, #0x0 + bl FUN_02017E84 + pop {r3-r7, pc} + + thumb_func_start FUN_02017E84 +FUN_02017E84: ; 0x02017E84 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r3, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + add r1, r6, #0x0 + add r5, r2, #0x0 + bl DC_FlushRange + cmp r7, #0x7 + bhi _02017F14 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02017EA6: ; jump table (using 16-bit offset) + .short _02017EB6 - _02017EA6 - 2; case 0 + .short _02017EC2 - _02017EA6 - 2; case 1 + .short _02017ECE - _02017EA6 - 2; case 2 + .short _02017EDA - _02017EA6 - 2; case 3 + .short _02017EE6 - _02017EA6 - 2; case 4 + .short _02017EF2 - _02017EA6 - 2; case 5 + .short _02017EFE - _02017EA6 - 2; case 6 + .short _02017F0A - _02017EA6 - 2; case 7 +_02017EB6: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG0Char + pop {r3-r7, pc} +_02017EC2: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG1Char + pop {r3-r7, pc} +_02017ECE: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG2Char + pop {r3-r7, pc} +_02017EDA: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GX_LoadBG3Char + pop {r3-r7, pc} +_02017EE6: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG0Char + pop {r3-r7, pc} +_02017EF2: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG1Char + pop {r3-r7, pc} +_02017EFE: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG2Char + pop {r3-r7, pc} +_02017F0A: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl GXS_LoadBG3Char +_02017F14: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02017F18 +FUN_02017F18: ; 0x02017F18 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r3, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + bl FUN_020169D8 + add r4, r0, #0x0 + mov r1, #0x0 + add r2, r5, #0x0 + bl memset + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + add r3, r5, #0x0 + bl FUN_02017E84 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl FUN_02016A8C + pop {r3-r7, pc} + + thumb_func_start FUN_02017F48 +FUN_02017F48: ; 0x02017F48 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + add r4, r0, #0x0 + mov r1, #0x2c + add r6, r7, #0x0 + add r4, #0x1f + mul r6, r1 + ldrb r1, [r4, r6] + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + mul r1, r3 + str r1, [sp, #0x0] + bl FUN_020169D8 + str r0, [sp, #0x4] + ldrb r0, [r4, r6] + cmp r0, #0x20 + bne _02017F82 + lsl r2, r5, #0xc + lsl r1, r5, #0x8 + lsl r0, r5, #0x4 + orr r1, r2 + orr r0, r1 + add r1, r5, #0x0 + orr r1, r0 + lsl r0, r1, #0x10 + add r5, r1, #0x0 + b _02017F8C +_02017F82: + lsl r2, r5, #0x18 + lsl r1, r5, #0x10 + lsl r0, r5, #0x8 + orr r1, r2 + orr r0, r1 +_02017F8C: + orr r5, r0 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl MIi_CpuClearFast + lsl r0, r7, #0x18 + ldrb r2, [r4, r6] + ldr r3, [sp, #0x20] + ldr r1, [sp, #0x4] + mul r2, r3 + ldr r3, [sp, #0x0] + lsr r0, r0, #0x18 + bl FUN_02017E84 + ldr r0, [sp, #0x4] + bl FUN_02016A18 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02017FB4 +FUN_02017FB4: ; 0x02017FB4 + push {r3-r7, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r7, r3, #0x0 + bl DC_FlushRange + cmp r6, #0x4 + bhs _02017FD6 + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + bl GX_LoadBGPltt + pop {r3-r7, pc} +_02017FD6: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + bl GXS_LoadBGPltt + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02017FE4 +FUN_02017FE4: ; 0x02017FE4 + push {r0-r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #0x2 + mov r3, #0x0 + bl FUN_02017FB4 + pop {r3} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 + + thumb_func_start FUN_02017FFC +FUN_02017FFC: ; 0x02017FFC + cmp r2, #0x5 + bhi _02018066 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0201800C: ; jump table (using 16-bit offset) + .short _02018018 - _0201800C - 2; case 0 + .short _02018022 - _0201800C - 2; case 1 + .short _02018022 - _0201800C - 2; case 2 + .short _0201802C - _0201800C - 2; case 3 + .short _02018042 - _0201800C - 2; case 4 + .short _02018064 - _0201800C - 2; case 5 +_02018018: + lsl r1, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02018022: + lsl r1, r1, #0x5 + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_0201802C: + mov r2, #0x1f + add r3, r0, #0x0 + and r3, r2 + mov r2, #0x1f + bic r0, r2 + add r0, r1, r0 + lsl r0, r0, #0x5 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02018042: + asr r2, r1, #0x5 + asr r3, r0, #0x5 + lsl r2, r2, #0x1 + add r2, r3, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + lsl r2, r2, #0x1a + lsr r3, r2, #0x10 + mov r2, #0x1f + and r2, r0 + lsl r0, r1, #0x1b + lsr r0, r0, #0x16 + add r0, r2, r0 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02018064: + mov r0, #0x0 +_02018066: + bx lr + + thumb_func_start FUN_02018068 +FUN_02018068: ; 0x02018068 + push {r3-r7} + sub sp, #0x4 + str r3, [sp, #0x0] + add r6, r2, #0x0 + ldr r5, [sp, #0x0] + add r4, r6, #0x0 + sub r4, #0x20 + sub r5, #0x20 + mov r2, #0x0 + lsl r4, r4, #0x10 + lsl r5, r5, #0x10 + add r3, r2, #0x0 + asr r4, r4, #0x10 + asr r7, r5, #0x10 + lsr r5, r0, #0x5 + beq _0201808E + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_0201808E: + lsr r5, r1, #0x5 + beq _02018098 + add r2, r2, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_02018098: + cmp r2, #0x3 + bhi _02018140 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_020180A8: ; jump table (using 16-bit offset) + .short _020180B0 - _020180A8 - 2; case 0 + .short _020180CE - _020180A8 - 2; case 1 + .short _020180F4 - _020180A8 - 2; case 2 + .short _02018120 - _020180A8 - 2; case 3 +_020180B0: + cmp r4, #0x0 + blt _020180C0 + lsl r1, r1, #0x5 + add r0, r0, r1 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_020180C0: + add r2, r1, #0x0 + mul r2, r6 + add r0, r0, r2 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_020180CE: + cmp r7, #0x0 + blt _020180D8 + mov r2, #0x1 + lsl r2, r2, #0xa + b _020180DC +_020180D8: + ldr r2, [sp, #0x0] + lsl r2, r2, #0x5 +_020180DC: + add r2, r3, r2 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + mov r2, #0x1f + and r2, r0 + add r0, r1, #0x0 + mul r0, r4 + add r0, r2, r0 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_020180F4: + lsl r2, r6, #0x5 + add r2, r3, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + cmp r4, #0x0 + blt _0201810E + lsl r1, r1, #0x1b + lsr r1, r1, #0x16 + add r0, r0, r1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_0201810E: + mov r3, #0x1f + and r1, r3 + add r3, r1, #0x0 + mul r3, r6 + add r0, r0, r3 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + b _02018140 +_02018120: + add r2, r6, r7 + lsl r2, r2, #0x5 + add r2, r3, r2 + add r5, r0, #0x0 + mov r3, #0x1f + add r0, r1, #0x0 + and r0, r3 + add r1, r0, #0x0 + lsl r2, r2, #0x10 + and r5, r3 + mul r1, r4 + lsr r2, r2, #0x10 + add r0, r5, r1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 +_02018140: + add r0, r3, #0x0 + add sp, #0x4 + pop {r3-r7} + bx lr + + thumb_func_start FUN_02018148 +FUN_02018148: ; 0x02018148 + push {r3-r6, lr} + sub sp, #0x1c + add r6, sp, #0x20 + ldrb r5, [r6, #0x14] + str r5, [sp, #0x0] + ldrb r4, [r6, #0x18] + str r4, [sp, #0x4] + str r2, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r5, [sp, #0x14] + str r4, [sp, #0x18] + add r2, r3, #0x0 + ldrb r3, [r6, #0x10] + bl FUN_02018170 + add sp, #0x1c + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_02018170 +FUN_02018170: ; 0x02018170 + push {r4-r5, lr} + sub sp, #0x1c + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x18 + cmp r1, #0x1 + beq _020181BA + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x0 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl FUN_02018268 + add sp, #0x1c + pop {r4-r5, pc} +_020181BA: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x0 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl FUN_020183DC + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start FUN_020181EC +FUN_020181EC: ; 0x020181EC + push {r4-r5, lr} + sub sp, #0x1c + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x18 + cmp r1, #0x1 + beq _02018236 + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x1 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl FUN_02018268 + add sp, #0x1c + pop {r4-r5, pc} +_02018236: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldr r1, [sp, #0x30] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + add r1, sp, #0x38 + ldrb r1, [r1, #0x0] + str r1, [sp, #0xc] + add r1, sp, #0x3c + ldrb r1, [r1, #0x0] + str r1, [sp, #0x10] + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + str r1, [sp, #0x14] + mov r1, #0x1 + str r1, [sp, #0x18] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl FUN_020183DC + add sp, #0x1c + pop {r4-r5, pc} + + thumb_func_start FUN_02018268 +FUN_02018268: ; 0x02018268 + push {r4-r7, lr} + sub sp, #0x44 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x58] + add r6, r3, #0x0 + str r0, [sp, #0x58] + ldr r0, [sp, #0x5c] + ldr r4, [sp, #0x68] + str r0, [sp, #0x5c] + ldr r0, [sp, #0x6c] + str r0, [sp, #0x6c] + ldr r0, [r7, #0x0] + str r0, [sp, #0x2c] + cmp r0, #0x0 + bne _0201828C + b _020183D6 +_0201828C: + ldrb r0, [r7, #0x15] + add r1, sp, #0x40 + add r1, #0x1 + add r2, sp, #0x40 + bl FUN_02017850 + add r0, sp, #0x70 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201833A + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _020182CA + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x1c] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x18] + lsl r1, r0, #0x1 + ldr r0, [sp, #0x5c] + add r0, r0, r1 + str r0, [sp, #0x14] +_020182BC: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x28] + add r0, r1, r0 + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + cmp r0, r1 + blt _020182CC +_020182CA: + b _020183D6 +_020182CC: + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x28] + add r2, r2, r1 + ldr r1, [sp, #0x6c] + cmp r2, r1 + bge _020183D6 + mov r5, #0x0 + cmp r6, #0x0 + bls _02018326 + add r1, r4, #0x0 + mul r1, r2 + lsl r2, r1, #0x1 + ldr r1, [sp, #0x14] + lsl r0, r0, #0x18 + add r1, r1, r2 + lsr r0, r0, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x30] +_020182F0: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _02018326 + ldr r1, [sp, #0x18] + add r1, r1, r5 + cmp r1, r4 + bge _02018326 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x30] + lsr r0, r0, #0x18 + bl FUN_02017FFC + ldr r1, [sp, #0x10] + lsl r2, r5, #0x1 + ldrh r1, [r1, r2] + lsl r2, r0, #0x1 + ldr r0, [sp, #0x2c] + strh r1, [r0, r2] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _020182F0 +_02018326: + ldr r0, [sp, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _020182BC + add sp, #0x44 + pop {r4-r7, pc} +_0201833A: + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _020183D6 + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x24] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x20] +_0201834E: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + add r1, r1, r0 + add r0, sp, #0x40 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bge _020183D6 + ldr r2, [sp, #0x24] + ldr r0, [sp, #0x8] + add r0, r2, r0 + ldr r2, [sp, #0x6c] + cmp r0, r2 + bge _020183D6 + mov r5, #0x0 + cmp r6, #0x0 + bls _020183C6 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] +_0201837A: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _020183C6 + ldr r1, [sp, #0x20] + add r1, r1, r5 + str r1, [sp, #0xc] + cmp r1, r4 + bge _020183C6 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x34] + lsr r0, r0, #0x18 + bl FUN_02017FFC + str r0, [sp, #0x38] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x3c] + lsl r0, r0, #0x18 + ldr r3, [sp, #0x6c] + lsr r0, r0, #0x18 + add r2, r4, #0x0 + bl FUN_02018068 + lsl r1, r0, #0x1 + ldr r0, [sp, #0x5c] + ldrh r0, [r0, r1] + ldr r1, [sp, #0x38] + lsl r2, r1, #0x1 + ldr r1, [sp, #0x2c] + strh r0, [r1, r2] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _0201837A +_020183C6: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _0201834E +_020183D6: + add sp, #0x44 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_020183DC +FUN_020183DC: ; 0x020183DC + push {r4-r7, lr} + sub sp, #0x44 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x58] + add r6, r3, #0x0 + str r0, [sp, #0x58] + ldr r0, [sp, #0x5c] + ldr r4, [sp, #0x68] + str r0, [sp, #0x5c] + ldr r0, [sp, #0x6c] + str r0, [sp, #0x6c] + ldr r0, [r7, #0x0] + str r0, [sp, #0x2c] + cmp r0, #0x0 + bne _02018400 + b _0201853C +_02018400: + ldrb r0, [r7, #0x15] + add r1, sp, #0x40 + add r1, #0x1 + add r2, sp, #0x40 + bl FUN_02017850 + add r0, sp, #0x70 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _020184A4 + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bhi _02018420 + b _0201853C +_02018420: + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x1c] + ldrb r0, [r1, #0x18] + ldr r1, [sp, #0x5c] + str r0, [sp, #0x18] + add r0, r1, r0 + str r0, [sp, #0x14] +_02018430: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x28] + add r0, r1, r0 + add r1, sp, #0x40 + ldrb r1, [r1, #0x0] + cmp r0, r1 + bge _0201853C + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x28] + add r2, r2, r1 + ldr r1, [sp, #0x6c] + cmp r2, r1 + bge _0201853C + mov r5, #0x0 + cmp r6, #0x0 + bls _02018490 + ldr r1, [sp, #0x14] + mul r2, r4 + lsl r0, r0, #0x18 + add r1, r1, r2 + lsr r0, r0, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x30] +_0201845E: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _02018490 + ldr r1, [sp, #0x18] + add r1, r1, r5 + cmp r1, r4 + bge _02018490 + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x30] + lsr r0, r0, #0x18 + bl FUN_02017FFC + ldr r1, [sp, #0x10] + ldrb r2, [r1, r5] + ldr r1, [sp, #0x2c] + strb r2, [r1, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _0201845E +_02018490: + ldr r0, [sp, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x28] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _02018430 + add sp, #0x44 + pop {r4-r7, pc} +_020184A4: + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r0, #0x0 + bls _0201853C + add r1, sp, #0x48 + ldrb r0, [r1, #0x1c] + str r0, [sp, #0x24] + ldrb r0, [r1, #0x18] + str r0, [sp, #0x20] +_020184B8: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + add r1, r1, r0 + add r0, sp, #0x40 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bge _0201853C + ldr r2, [sp, #0x24] + ldr r0, [sp, #0x8] + add r0, r2, r0 + ldr r2, [sp, #0x6c] + cmp r0, r2 + bge _0201853C + mov r5, #0x0 + cmp r6, #0x0 + bls _0201852C + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] +_020184E4: + add r1, sp, #0x40 + ldr r0, [sp, #0x0] + ldrb r1, [r1, #0x1] + add r0, r0, r5 + cmp r0, r1 + bge _0201852C + ldr r1, [sp, #0x20] + add r1, r1, r5 + str r1, [sp, #0xc] + cmp r1, r4 + bge _0201852C + ldrb r2, [r7, #0x15] + lsl r0, r0, #0x18 + ldr r1, [sp, #0x34] + lsr r0, r0, #0x18 + bl FUN_02017FFC + str r0, [sp, #0x38] + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x3c] + lsl r0, r0, #0x18 + ldr r3, [sp, #0x6c] + lsr r0, r0, #0x18 + add r2, r4, #0x0 + bl FUN_02018068 + ldr r1, [sp, #0x5c] + ldrb r2, [r1, r0] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x38] + strb r2, [r1, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _020184E4 +_0201852C: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + str r1, [sp, #0x8] + ldr r0, [sp, #0x58] + cmp r1, r0 + blo _020184B8 +_0201853C: + add sp, #0x44 + pop {r4-r7, pc} + + thumb_func_start FUN_02018540 +FUN_02018540: ; 0x02018540 + push {r4-r5, lr} + sub sp, #0xc + add r4, r2, #0x0 + add r2, r3, #0x0 + mov r3, #0x2c + add r5, r1, #0x0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #0x1c] + add r3, sp, #0x8 + cmp r1, #0x1 + beq _02018574 + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldrb r1, [r3, #0x18] + str r1, [sp, #0x4] + ldrb r1, [r3, #0x1c] + str r1, [sp, #0x8] + ldrb r3, [r3, #0x10] + add r1, r4, #0x0 + bl FUN_02018590 + add sp, #0xc + pop {r4-r5, pc} +_02018574: + ldrb r1, [r3, #0x14] + add r0, #0x8 + add r0, r0, r5 + str r1, [sp, #0x0] + ldrb r1, [r3, #0x18] + str r1, [sp, #0x4] + lsl r1, r4, #0x18 + ldrb r3, [r3, #0x10] + lsr r1, r1, #0x18 + bl FUN_02018640 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 + + thumb_func_start FUN_02018590 +FUN_02018590: ; 0x02018590 + push {r4-r7, lr} + sub sp, #0x1c + str r2, [sp, #0x4] + str r3, [sp, #0x8] + ldr r4, [r0, #0x0] + add r7, r1, #0x0 + str r0, [sp, #0x0] + ldr r6, [sp, #0x38] + cmp r4, #0x0 + beq _0201863A + ldrb r0, [r0, #0x15] + add r1, sp, #0x18 + add r1, #0x1 + add r2, sp, #0x18 + bl FUN_02017850 + add r0, sp, #0x20 + ldrb r2, [r0, #0x14] + ldr r1, [sp, #0x8] + add r1, r1, r2 + ldr r2, [sp, #0x8] + str r1, [sp, #0xc] + cmp r2, r1 + bge _0201863A + ldrb r2, [r0, #0x10] + ldr r0, [sp, #0x4] + lsl r1, r6, #0xc + add r0, r0, r2 + add r1, r1, r7 + str r0, [sp, #0x10] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] +_020185D2: + add r0, sp, #0x18 + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x8] + cmp r0, r1 + bhs _0201863A + ldr r5, [sp, #0x4] + ldr r0, [sp, #0x10] + add r1, r5, #0x0 + cmp r1, r0 + bge _0201862A +_020185E6: + add r0, sp, #0x18 + ldrb r0, [r0, #0x1] + cmp r5, r0 + bhs _0201862A + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x8] + ldrb r2, [r2, #0x15] + add r0, r5, #0x0 + bl FUN_02017FFC + cmp r6, #0x11 + bne _02018604 + lsl r0, r0, #0x1 + strh r7, [r4, r0] + b _0201861E +_02018604: + cmp r6, #0x10 + bne _02018618 + lsl r0, r0, #0x1 + ldrh r2, [r4, r0] + mov r1, #0xf + lsl r1, r1, #0xc + and r1, r2 + add r1, r7, r1 + strh r1, [r4, r0] + b _0201861E +_02018618: + lsl r1, r0, #0x1 + ldr r0, [sp, #0x14] + strh r0, [r4, r1] +_0201861E: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x10] + cmp r5, r0 + blt _020185E6 +_0201862A: + ldr r0, [sp, #0x8] + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, [sp, #0xc] + str r1, [sp, #0x8] + cmp r1, r0 + blt _020185D2 +_0201863A: + add sp, #0x1c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02018640 +FUN_02018640: ; 0x02018640 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + add r7, r0, #0x0 + str r2, [sp, #0x4] + ldr r0, [r7, #0x0] + add r5, r3, #0x0 + str r0, [sp, #0xc] + cmp r0, #0x0 + beq _020186B0 + ldrb r0, [r7, #0x15] + add r1, sp, #0x10 + add r1, #0x1 + add r2, sp, #0x10 + bl FUN_02017850 + add r1, sp, #0x18 + ldrb r0, [r1, #0x14] + add r0, r5, r0 + str r0, [sp, #0x8] + cmp r5, r0 + bge _020186B0 + ldrb r1, [r1, #0x10] + ldr r0, [sp, #0x4] + add r6, r0, r1 +_02018672: + add r0, sp, #0x10 + ldrb r0, [r0, #0x0] + cmp r5, r0 + bhs _020186B0 + ldr r4, [sp, #0x4] + add r0, r4, #0x0 + cmp r0, r6 + bge _020186A4 +_02018682: + add r0, sp, #0x10 + ldrb r0, [r0, #0x1] + cmp r4, r0 + bhs _020186A4 + ldrb r2, [r7, #0x15] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02017FFC + ldr r2, [sp, #0x0] + ldr r1, [sp, #0xc] + strb r2, [r1, r0] + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + blt _02018682 +_020186A4: + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, [sp, #0x8] + cmp r5, r0 + blt _02018672 +_020186B0: + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start FUN_020186B4 +FUN_020186B4: ; 0x020186B4 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + mov r0, #0x2c + add r7, r1, #0x0 + mul r7, r0 + str r2, [sp, #0x0] + add r0, r5, r7 + ldr r4, [r0, #0x8] + add r6, r3, #0x0 + cmp r4, #0x0 + beq _0201873C + ldrb r0, [r0, #0x1d] + add r1, sp, #0x10 + add r1, #0x1 + add r2, sp, #0x10 + bl FUN_02017850 + add r0, sp, #0x18 + ldrb r1, [r0, #0x14] + add r1, r6, r1 + str r1, [sp, #0x4] + cmp r6, r1 + bge _0201873C + add r1, r5, r7 + str r1, [sp, #0xc] + ldrb r1, [r0, #0x18] + lsl r1, r1, #0xc + str r1, [sp, #0x8] + ldrb r1, [r0, #0x10] + ldr r0, [sp, #0x0] + add r7, r0, r1 +_020186F4: + add r0, sp, #0x10 + ldrb r0, [r0, #0x0] + cmp r6, r0 + bhs _0201873C + ldr r5, [sp, #0x0] + add r0, r5, #0x0 + cmp r0, r7 + bge _02018730 +_02018704: + add r0, sp, #0x10 + ldrb r0, [r0, #0x1] + cmp r5, r0 + bhs _02018730 + ldr r2, [sp, #0xc] + add r0, r5, #0x0 + ldrb r2, [r2, #0x1d] + add r1, r6, #0x0 + bl FUN_02017FFC + lsl r0, r0, #0x1 + ldrh r2, [r4, r0] + ldr r1, _02018740 ; =0x00000FFF + and r2, r1 + ldr r1, [sp, #0x8] + orr r1, r2 + strh r1, [r4, r0] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r7 + blt _02018704 +_02018730: + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r0, [sp, #0x4] + cmp r6, r0 + blt _020186F4 +_0201873C: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02018740: .word 0x00000FFF + + thumb_func_start FUN_02018744 +FUN_02018744: ; 0x02018744 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r2, r5, r0 + ldr r1, [r2, #0x8] + cmp r1, #0x0 + beq _02018766 + ldr r2, [r2, #0xc] + mov r0, #0x0 + bl MIi_CpuClear16 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02017CD0 +_02018766: + pop {r3-r5, pc} + + thumb_func_start FUN_02018768 +FUN_02018768: ; 0x02018768 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r3, r5, r0 + ldr r1, [r3, #0x8] + cmp r1, #0x0 + beq _0201878A + add r0, r2, #0x0 + ldr r2, [r3, #0xc] + bl MIi_CpuClear16 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02017CD0 +_0201878A: + pop {r3-r5, pc} + + thumb_func_start FUN_0201878C +FUN_0201878C: ; 0x0201878C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2c + mul r0, r4 + add r3, r5, r0 + ldr r1, [r3, #0x8] + cmp r1, #0x0 + beq _020187AE + add r0, r2, #0x0 + ldr r2, [r3, #0xc] + bl MIi_CpuClear16 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201AC68 +_020187AE: + pop {r3-r5, pc} + + thumb_func_start FUN_020187B0 +FUN_020187B0: ; 0x020187B0 + push {r3, lr} + cmp r0, #0x7 + bhi _02018802 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020187C2: ; jump table (using 16-bit offset) + .short _020187D2 - _020187C2 - 2; case 0 + .short _020187D8 - _020187C2 - 2; case 1 + .short _020187DE - _020187C2 - 2; case 2 + .short _020187E4 - _020187C2 - 2; case 3 + .short _020187EA - _020187C2 - 2; case 4 + .short _020187F0 - _020187C2 - 2; case 5 + .short _020187F6 - _020187C2 - 2; case 6 + .short _020187FC - _020187C2 - 2; case 7 +_020187D2: + bl G2_GetBG0CharPtr + pop {r3, pc} +_020187D8: + bl G2_GetBG1CharPtr + pop {r3, pc} +_020187DE: + bl G2_GetBG2CharPtr + pop {r3, pc} +_020187E4: + bl G2_GetBG3CharPtr + pop {r3, pc} +_020187EA: + bl G2S_GetBG0CharPtr + pop {r3, pc} +_020187F0: + bl G2S_GetBG1CharPtr + pop {r3, pc} +_020187F6: + bl G2S_GetBG2CharPtr + pop {r3, pc} +_020187FC: + bl G2S_GetBG3CharPtr + pop {r3, pc} +_02018802: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02018808 +FUN_02018808: ; 0x02018808 + push {r4-r7} + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + mov r4, #0x0 + cmp r1, #0x0 + bls _02018842 + mov r5, #0xf + add r6, r5, #0x0 +_02018818: + ldrb r7, [r0, r4] + and r7, r6 + strb r7, [r2, #0x0] + ldrb r7, [r2, #0x0] + cmp r7, #0x0 + beq _02018828 + add r7, r7, r3 + strb r7, [r2, #0x0] +_02018828: + ldrb r7, [r0, r4] + asr r7, r7, #0x4 + and r7, r5 + strb r7, [r2, #0x1] + ldrb r7, [r2, #0x1] + cmp r7, #0x0 + beq _0201883A + add r7, r7, r3 + strb r7, [r2, #0x1] +_0201883A: + add r4, r4, #0x1 + add r2, r2, #0x2 + cmp r4, r1 + blo _02018818 +_02018842: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_02018848 +FUN_02018848: ; 0x02018848 + push {r3-r7, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r0, r3, #0x0 + lsl r1, r5, #0x1 + add r7, r2, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r7, #0x0 + bl FUN_02018808 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201886C +FUN_0201886C: ; 0x0201886C + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start FUN_02018878 +FUN_02018878: ; 0x02018878 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrh r0, [r0, #0x20] + bx lr + .balign 4 + + thumb_func_start FUN_02018884 +FUN_02018884: ; 0x02018884 + sub sp, #0x20 + cmp r1, #0x7 + bls _0201888C + b _02018A38 +_0201888C: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02018898: ; jump table (using 16-bit offset) + .short _020188A8 - _02018898 - 2; case 0 + .short _020188BC - _02018898 - 2; case 1 + .short _020188D0 - _02018898 - 2; case 2 + .short _02018920 - _02018898 - 2; case 3 + .short _02018970 - _02018898 - 2; case 4 + .short _02018984 - _02018898 - 2; case 5 + .short _02018998 - _02018898 - 2; case 6 + .short _020189E8 - _02018898 - 2; case 7 +_020188A8: + ldr r0, _02018A40 ; =0x04000008 + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1e] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188BC: + ldr r0, _02018A44 ; =0x0400000A + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1c] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188D0: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020188E4 + cmp r0, #0x1 + beq _020188F8 + cmp r0, #0x2 + beq _0201890C +_020188E4: + ldr r0, _02018A48 ; =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1a] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188F8: + ldr r0, _02018A48 ; =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x18] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_0201890C: + ldr r0, _02018A48 ; =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x16] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018920: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _02018934 + cmp r0, #0x1 + beq _02018948 + cmp r0, #0x2 + beq _0201895C +_02018934: + ldr r0, _02018A4C ; =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x14] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018948: + ldr r0, _02018A4C ; =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x12] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_0201895C: + ldr r0, _02018A4C ; =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x10] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018970: + ldr r0, _02018A50 ; =0x04001008 + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xe] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018984: + ldr r0, _02018A54 ; =0x0400100A + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xc] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018998: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020189AC + cmp r0, #0x1 + beq _020189C0 + cmp r0, #0x2 + beq _020189D4 +_020189AC: + ldr r0, _02018A58 ; =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xa] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189C0: + ldr r0, _02018A58 ; =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x8] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189D4: + ldr r0, _02018A58 ; =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x6] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189E8: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020189FC + cmp r0, #0x1 + beq _02018A10 + cmp r0, #0x2 + beq _02018A24 +_020189FC: + ldr r0, _02018A5C ; =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x4] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A10: + ldr r0, _02018A5C ; =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x2] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A24: + ldr r0, _02018A5C ; =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x0] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A38: + mov r0, #0x0 + add sp, #0x20 + bx lr + nop +_02018A40: .word 0x04000008 +_02018A44: .word 0x0400000A +_02018A48: .word 0x0400000C +_02018A4C: .word 0x0400000E +_02018A50: .word 0x04001008 +_02018A54: .word 0x0400100A +_02018A58: .word 0x0400100C +_02018A5C: .word 0x0400100E + + thumb_func_start FUN_02018A60 +FUN_02018A60: ; 0x02018A60 + push {r3-r7, lr} + sub sp, #0x68 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x70 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018A88 + ldr r0, [sp, #0x8] + add r0, r0, r3 + str r0, [sp, #0x50] + b _02018A8E +_02018A88: + ldr r0, [sp, #0x8] + add r0, r2, r0 + str r0, [sp, #0x50] +_02018A8E: + ldr r2, [sp, #0x4] + add r3, sp, #0x70 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018AA6 + ldr r2, [sp, #0xc] + add r2, r2, r4 + str r2, [sp, #0x4c] + b _02018AAC +_02018AA6: + ldr r2, [sp, #0xc] + add r2, r3, r2 + str r2, [sp, #0x4c] +_02018AAC: + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x48] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x44] + add r1, sp, #0x70 + ldrh r1, [r1, #0x20] + ldr r2, _02018C98 ; =0x0000FFFF + str r1, [sp, #0x38] + cmp r1, r2 + bne _02018BB4 + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018ADE + cmp r2, r1 + blt _02018AE0 +_02018ADE: + b _02018C92 +_02018AE0: + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018AEA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018B96 + cmp r1, r0 + bge _02018B96 + add r0, r3, #0x0 + lsl r5, r0, #0x2 + add r0, r4, #0x0 + lsl r6, r0, #0x2 + ldr r0, _02018C9C ; =0x00003FE0 + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x48] + and r1, r0 + mul r2, r1 + str r2, [sp, #0x20] + ldr r2, [sp, #0x28] + mov r1, #0x1c + and r2, r1 + str r2, [sp, #0x1c] + ldr r2, [sp, #0x24] + and r0, r2 + ldr r2, [sp, #0x44] + mul r2, r0 + ldr r0, [sp, #0x24] + str r2, [sp, #0x18] + and r0, r1 + str r0, [sp, #0x14] +_02018B26: + ldr r0, [sp, #0x4] + asr r2, r4, #0x1 + mov r1, #0x3 + ldr r0, [r0, #0x0] + and r1, r2 + add r1, r0, r1 + ldr r0, _02018C9C ; =0x00003FE0 + and r0, r6 + add r1, r1, r0 + ldr r0, [sp, #0x18] + add r6, r6, #0x4 + add r0, r1, r0 + str r0, [sp, #0x64] + lsl r0, r4, #0x1f + lsr r2, r0, #0x1d + ldr r0, [sp, #0x0] + asr r1, r3, #0x1 + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r1 + ldr r1, _02018C9C ; =0x00003FE0 + add r4, r4, #0x1 + and r1, r5 + str r1, [sp, #0x54] + add r1, r7, r0 + ldr r0, [sp, #0x54] + add r5, r5, #0x4 + add r1, r0, r1 + ldr r0, [sp, #0x20] + add r1, r0, r1 + ldr r0, [sp, #0x1c] + ldrb r1, [r0, r1] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0xf + and r0, r1 + add r7, r0, #0x0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + lsl r7, r2 + ldrb r0, [r0, r1] + add r3, r3, #0x1 + str r0, [sp, #0x58] + mov r0, #0xf0 + asr r0, r2 + ldr r1, [sp, #0x58] + add r2, r7, #0x0 + and r0, r1 + orr r2, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + strb r2, [r0, r1] + ldr r0, [sp, #0x50] + cmp r3, r0 + blt _02018B26 +_02018B96: + ldr r0, [sp, #0x28] + add r0, r0, #0x4 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x24] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018AEA + add sp, #0x68 + pop {r3-r7, pc} +_02018BB4: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018C92 + cmp r2, r1 + bge _02018C92 + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x40] + str r0, [sp, #0x3c] +_02018BCA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018C78 + cmp r1, r0 + bge _02018C78 + add r0, r3, #0x0 + lsl r1, r0, #0x2 + add r0, r4, #0x0 + lsl r2, r0, #0x2 + ldr r0, _02018C9C ; =0x00003FE0 + ldr r5, [sp, #0x40] + ldr r6, [sp, #0x48] + and r5, r0 + mul r6, r5 + str r6, [sp, #0x34] + ldr r6, [sp, #0x40] + mov r5, #0x1c + and r6, r5 + str r6, [sp, #0x30] + ldr r6, [sp, #0x3c] + and r0, r6 + ldr r6, [sp, #0x44] + mul r6, r0 + ldr r0, [sp, #0x3c] + str r6, [sp, #0x2c] + and r0, r5 + str r0, [sp, #0x60] +_02018C06: + ldr r0, [sp, #0x4] + asr r6, r4, #0x1 + mov r5, #0x3 + and r5, r6 + ldr r0, [r0, #0x0] + asr r6, r3, #0x1 + add r5, r0, r5 + ldr r0, _02018C9C ; =0x00003FE0 + and r0, r2 + add r5, r5, r0 + ldr r0, [sp, #0x2c] + add r5, r5, r0 + ldr r0, [sp, #0x0] + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r6 + ldr r6, _02018C9C ; =0x00003FE0 + and r6, r1 + str r6, [sp, #0x5c] + add r6, r7, r0 + ldr r0, [sp, #0x5c] + add r6, r0, r6 + ldr r0, [sp, #0x34] + add r6, r0, r6 + ldr r0, [sp, #0x30] + ldrb r6, [r0, r6] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r6, r0 + mov r0, #0xf + and r0, r6 + ldr r6, [sp, #0x38] + cmp r0, r6 + beq _02018C6A + lsl r6, r4, #0x1f + lsr r7, r6, #0x1d + lsl r0, r7 + mov lr, r0 + ldr r0, [sp, #0x60] + ldrb r0, [r5, r0] + mov r12, r0 + mov r0, #0xf0 + add r6, r0, #0x0 + asr r6, r7 + mov r0, r12 + and r0, r6 + mov r6, lr + orr r6, r0 + ldr r0, [sp, #0x60] + strb r6, [r5, r0] +_02018C6A: + ldr r0, [sp, #0x50] + add r3, r3, #0x1 + add r1, r1, #0x4 + add r2, r2, #0x4 + add r4, r4, #0x1 + cmp r3, r0 + blt _02018C06 +_02018C78: + ldr r0, [sp, #0x40] + add r0, r0, #0x4 + str r0, [sp, #0x40] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018BCA +_02018C92: + add sp, #0x68 + pop {r3-r7, pc} + nop +_02018C98: .word 0x0000FFFF +_02018C9C: .word 0x00003FE0 + + thumb_func_start FUN_02018CA0 +FUN_02018CA0: ; 0x02018CA0 + push {r3-r7, lr} + sub sp, #0x50 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x58 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018CC6 + ldr r0, [sp, #0x8] + add r0, r0, r3 + b _02018CCA +_02018CC6: + ldr r0, [sp, #0x8] + add r0, r2, r0 +_02018CCA: + ldr r2, [sp, #0x4] + add r3, sp, #0x58 + mov r12, r0 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018CE2 + ldr r2, [sp, #0xc] + add r2, r2, r4 + b _02018CE6 +_02018CE2: + ldr r2, [sp, #0xc] + add r2, r3, r2 +_02018CE6: + mov lr, r2 + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x4c] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x48] + add r1, sp, #0x58 + ldrh r1, [r1, #0x20] + ldr r2, _02018E80 ; =0x0000FFFF + str r1, [sp, #0x3c] + cmp r1, r2 + bne _02018DC6 + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018D1C + mov r1, lr + cmp r2, r1 + blt _02018D1E +_02018D1C: + b _02018E7C +_02018D1E: + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018D28: + ldr r1, [sp, #0x8] + mov r0, r12 + add r2, r1, #0x0 + ldr r7, [sp, #0x10] + cmp r2, r0 + bge _02018DA8 + mov r0, r12 + cmp r2, r0 + bge _02018DA8 + add r0, r1, #0x0 + lsl r2, r0, #0x3 + add r0, r7, #0x0 + lsl r3, r0, #0x3 + ldr r6, _02018E84 ; =0x00007FC0 + ldr r0, [sp, #0x28] + ldr r4, [sp, #0x4c] + and r0, r6 + mul r4, r0 + str r4, [sp, #0x20] + ldr r0, [sp, #0x28] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x48] + and r0, r6 + mul r4, r0 + ldr r0, [sp, #0x24] + str r4, [sp, #0x18] + and r0, r5 + str r0, [sp, #0x14] +_02018D66: + ldr r0, [sp, #0x0] + add r5, r1, #0x0 + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r2 + add r4, r4, r0 + ldr r0, [sp, #0x20] + add r5, r7, #0x0 + add r4, r0, r4 + ldr r0, [sp, #0x1c] + add r1, r1, #0x1 + ldrb r6, [r0, r4] + ldr r0, [sp, #0x4] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r3 + add r4, r4, r0 + ldr r0, [sp, #0x18] + add r2, #0x8 + add r4, r0, r4 + ldr r0, [sp, #0x14] + add r3, #0x8 + strb r6, [r0, r4] + mov r0, r12 + add r7, r7, #0x1 + cmp r1, r0 + blt _02018D66 +_02018DA8: + ldr r0, [sp, #0x28] + add r0, #0x8 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x24] + mov r0, lr + cmp r1, r0 + blt _02018D28 + add sp, #0x50 + pop {r3-r7, pc} +_02018DC6: + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018E7C + mov r1, lr + cmp r2, r1 + bge _02018E7C + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x44] + str r0, [sp, #0x40] +_02018DDE: + ldr r2, [sp, #0x8] + mov r0, r12 + add r1, r2, #0x0 + ldr r3, [sp, #0x10] + cmp r1, r0 + bge _02018E62 + mov r0, r12 + cmp r1, r0 + bge _02018E62 + add r0, r2, #0x0 + lsl r6, r0, #0x3 + add r0, r3, #0x0 + lsl r1, r0, #0x3 + ldr r7, _02018E84 ; =0x00007FC0 + ldr r0, [sp, #0x44] + ldr r4, [sp, #0x4c] + and r0, r7 + mul r4, r0 + str r4, [sp, #0x38] + ldr r0, [sp, #0x44] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x34] + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x48] + and r0, r7 + mul r4, r0 + ldr r0, [sp, #0x40] + str r4, [sp, #0x30] + and r0, r5 + str r0, [sp, #0x2c] +_02018E1C: + ldr r0, [sp, #0x4] + mov r4, #0x7 + ldr r0, [r0, #0x0] + and r4, r3 + add r0, r0, r4 + ldr r4, _02018E84 ; =0x00007FC0 + add r5, r2, #0x0 + and r4, r1 + add r4, r0, r4 + ldr r0, [sp, #0x30] + add r7, r4, r0 + ldr r0, [sp, #0x0] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, _02018E84 ; =0x00007FC0 + add r0, r0, r5 + and r4, r6 + add r4, r4, r0 + ldr r0, [sp, #0x38] + add r4, r0, r4 + ldr r0, [sp, #0x34] + ldrb r0, [r0, r4] + ldr r4, [sp, #0x3c] + cmp r0, r4 + beq _02018E54 + ldr r4, [sp, #0x2c] + strb r0, [r7, r4] +_02018E54: + add r2, r2, #0x1 + mov r0, r12 + add r6, #0x8 + add r1, #0x8 + add r3, r3, #0x1 + cmp r2, r0 + blt _02018E1C +_02018E62: + ldr r0, [sp, #0x44] + add r0, #0x8 + str r0, [sp, #0x44] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x40] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x40] + mov r0, lr + cmp r1, r0 + blt _02018DDE +_02018E7C: + add sp, #0x50 + pop {r3-r7, pc} + .balign 4 +_02018E80: .word 0x0000FFFF +_02018E84: .word 0x00007FC0 + + thumb_func_start FUN_02018E88 +FUN_02018E88: ; 0x02018E88 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x2c] + ldr r0, [sp, #0x4] + add r6, r0, r3 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x4] + cmp r6, r0 + ble _02018EA4 + add r6, r0, #0x0 +_02018EA4: + add r1, sp, #0x18 + ldrh r2, [r1, #0x10] + ldr r1, [sp, #0x8] + add r1, r1, r2 + mov r12, r1 + ldr r1, [sp, #0x0] + ldrh r2, [r1, #0x6] + mov r1, r12 + cmp r1, r2 + ble _02018EBA + mov r12, r2 +_02018EBA: + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + mov lr, r0 + ldr r1, [sp, #0x8] + mov r0, r12 + cmp r1, r0 + bge _02018F44 + add r0, r1, #0x0 + lsl r0, r0, #0x2 + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + lsl r0, r0, #0x4 + str r0, [sp, #0x10] +_02018ED8: + ldr r1, [sp, #0x4] + add r0, r1, #0x0 + cmp r0, r6 + bge _02018F32 + lsl r5, r0, #0x2 + ldr r2, _02018F48 ; =0x00003FE0 + ldr r0, [sp, #0xc] + and r0, r2 + add r7, r0, #0x0 + mov r2, lr + mul r7, r2 + ldr r0, [sp, #0xc] + mov r2, #0x1c + and r2, r0 +_02018EF4: + ldr r0, [sp, #0x0] + asr r3, r1, #0x1 + ldr r4, [r0, #0x0] + mov r0, #0x3 + and r0, r3 + ldr r3, _02018F48 ; =0x00003FE0 + add r0, r4, r0 + and r3, r5 + add r0, r0, r3 + add r0, r0, r7 + mov r3, #0x1 + tst r3, r1 + ldrb r4, [r0, r2] + beq _02018F1C + mov r3, #0xf + and r3, r4 + strb r3, [r0, r2] + ldrb r4, [r0, r2] + ldr r3, [sp, #0x10] + b _02018F26 +_02018F1C: + mov r3, #0xf0 + and r3, r4 + strb r3, [r0, r2] + ldrb r4, [r0, r2] + ldr r3, [sp, #0x2c] +_02018F26: + orr r3, r4 + add r1, r1, #0x1 + strb r3, [r0, r2] + add r5, r5, #0x4 + cmp r1, r6 + blt _02018EF4 +_02018F32: + ldr r0, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + mov r0, r12 + str r1, [sp, #0x8] + cmp r1, r0 + blt _02018ED8 +_02018F44: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02018F48: .word 0x00003FE0 + + thumb_func_start FUN_02018F4C +FUN_02018F4C: ; 0x02018F4C + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x2c] + ldr r0, [sp, #0x4] + add r5, r0, r3 + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x4] + cmp r5, r0 + ble _02018F68 + add r5, r0, #0x0 +_02018F68: + add r1, sp, #0x18 + ldrh r2, [r1, #0x10] + ldr r1, [sp, #0x8] + add r1, r1, r2 + mov lr, r1 + ldr r1, [sp, #0x0] + ldrh r2, [r1, #0x6] + mov r1, lr + cmp r1, r2 + ble _02018F7E + mov lr, r2 +_02018F7E: + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x10] + ldr r1, [sp, #0x8] + mov r0, lr + cmp r1, r0 + bge _02018FEA + add r0, r1, #0x0 + lsl r0, r0, #0x3 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + lsl r0, r0, #0x3 + mov r12, r0 +_02018F9C: + ldr r2, [sp, #0x4] + add r0, r2, #0x0 + cmp r0, r5 + bge _02018FD8 + ldr r1, [sp, #0xc] + ldr r0, _02018FF0 ; =0x00007FC0 + mov r3, r12 + and r0, r1 + add r7, r0, #0x0 + ldr r1, [sp, #0x10] + mov r0, #0x38 + mul r7, r1 + ldr r1, [sp, #0xc] + add r6, r1, #0x0 + and r6, r0 +_02018FBA: + ldr r0, [sp, #0x0] + ldr r4, _02018FF0 ; =0x00007FC0 + ldr r1, [r0, #0x0] + mov r0, #0x7 + and r0, r2 + and r4, r3 + add r0, r1, r0 + add r0, r4, r0 + add r1, r7, r0 + ldr r0, [sp, #0x2c] + add r2, r2, #0x1 + strb r0, [r6, r1] + add r3, #0x8 + cmp r2, r5 + blt _02018FBA +_02018FD8: + ldr r0, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + mov r0, lr + str r1, [sp, #0x8] + cmp r1, r0 + blt _02018F9C +_02018FEA: + add sp, #0x14 + pop {r4-r7, pc} + nop +_02018FF0: .word 0x00007FC0 + + thumb_func_start FUN_02018FF4 +FUN_02018FF4: ; 0x02018FF4 + push {r4-r6, lr} + add r5, r1, #0x0 + lsl r1, r5, #0x4 + bl FUN_02016998 + add r6, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x0 + ble _02019018 +_02019006: + lsl r0, r4, #0x4 + add r0, r6, r0 + bl FUN_0201901C + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blt _02019006 +_02019018: + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_0201901C +FUN_0201901C: ; 0x0201901C + mov r3, #0x0 + str r3, [r0, #0x0] + mov r1, #0xff + strb r1, [r0, #0x4] + strb r3, [r0, #0x5] + strb r3, [r0, #0x6] + strb r3, [r0, #0x7] + strb r3, [r0, #0x8] + strb r3, [r0, #0x9] + ldrh r2, [r0, #0xa] + ldr r1, _02019044 ; =0xFFFF8000 + and r2, r1 + strh r2, [r0, #0xa] + str r3, [r0, #0xc] + ldrh r2, [r0, #0xa] + sub r1, r1, #0x1 + and r1, r2 + strh r1, [r0, #0xa] + bx lr + nop +_02019044: .word 0xFFFF8000 + + thumb_func_start FUN_02019048 +FUN_02019048: ; 0x02019048 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201905A + ldrb r1, [r0, #0x4] + cmp r1, #0xff + beq _0201905A + ldr r0, [r0, #0xc] + cmp r0, #0x0 + bne _0201905E +_0201905A: + mov r0, #0x0 + bx lr +_0201905E: + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start FUN_02019064 +FUN_02019064: ; 0x02019064 + push {r3-r7, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + mov r0, #0x2c + add r7, r6, #0x0 + mul r7, r0 + add r4, r1, #0x0 + str r3, [sp, #0x0] + add r1, r5, r7 + ldr r0, [r1, #0x8] + cmp r0, #0x0 + beq _020190E0 + add r3, sp, #0x8 + ldrb r2, [r1, #0x1f] + ldrb r1, [r3, #0x14] + ldrb r3, [r3, #0x18] + ldr r0, [r5, #0x0] + mul r3, r1 + add r1, r2, #0x0 + mul r1, r3 + bl FUN_02016998 + add r1, r0, #0x0 + beq _020190E0 + str r5, [r4, #0x0] + strb r6, [r4, #0x4] + ldr r0, [sp, #0x0] + add r3, sp, #0x8 + strb r0, [r4, #0x5] + ldrb r0, [r3, #0x10] + ldr r2, _020190E4 ; =0xFFFF8000 + strb r0, [r4, #0x6] + ldrb r0, [r3, #0x14] + strb r0, [r4, #0x7] + ldrb r0, [r3, #0x18] + strb r0, [r4, #0x8] + ldrb r0, [r3, #0x1c] + strb r0, [r4, #0x9] + ldrh r0, [r4, #0xa] + ldrh r3, [r3, #0x20] + and r0, r2 + lsr r2, r2, #0x11 + and r2, r3 + orr r0, r2 + strh r0, [r4, #0xa] + str r1, [r4, #0xc] + add r0, r5, r7 + ldrb r0, [r0, #0x1e] + cmp r0, #0x0 + bne _020190CC + mov r2, #0x0 + b _020190CE +_020190CC: + mov r2, #0x1 +_020190CE: + ldrh r1, [r4, #0xa] + ldr r0, _020190E8 ; =0xFFFF7FFF + and r1, r0 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1f + lsr r0, r0, #0x10 + orr r0, r1 + strh r0, [r4, #0xa] +_020190E0: + pop {r3-r7, pc} + nop +_020190E4: .word 0xFFFF8000 +_020190E8: .word 0xFFFF7FFF + + thumb_func_start FUN_020190EC +FUN_020190EC: ; 0x020190EC + push {r3-r7, lr} + sub sp, #0x8 + str r3, [sp, #0x0] + add r5, r0, #0x0 + ldr r0, [sp, #0x24] + add r6, r2, #0x0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x0] + add r4, r1, #0x0 + mul r0, r6 + lsl r0, r0, #0x5 + str r0, [sp, #0x4] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x4] + bl FUN_02016998 + ldr r1, [sp, #0x24] + add r7, r0, #0x0 + lsl r2, r1, #0x4 + orr r1, r2 + lsl r1, r1, #0x18 + ldr r2, [sp, #0x4] + lsr r1, r1, #0x18 + bl memset + cmp r7, #0x0 + beq _02019148 + str r5, [r4, #0x0] + strb r6, [r4, #0x7] + ldr r0, [sp, #0x0] + strb r0, [r4, #0x8] + ldrh r1, [r4, #0xa] + ldr r0, _0201914C ; =0xFFFF8000 + add r3, r1, #0x0 + add r1, sp, #0x10 + ldrh r2, [r1, #0x10] + lsr r1, r0, #0x11 + and r3, r0 + and r1, r2 + orr r1, r3 + strh r1, [r4, #0xa] + str r7, [r4, #0xc] + ldrh r1, [r4, #0xa] + sub r0, r0, #0x1 + and r0, r1 + strh r0, [r4, #0xa] +_02019148: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0201914C: .word 0xFFFF8000 + + thumb_func_start FUN_02019150 +FUN_02019150: ; 0x02019150 + push {lr} + sub sp, #0x14 + add r3, r2, #0x0 + ldrb r2, [r3, #0x2] + str r2, [sp, #0x0] + ldrb r2, [r3, #0x3] + str r2, [sp, #0x4] + ldrb r2, [r3, #0x4] + str r2, [sp, #0x8] + ldrb r2, [r3, #0x5] + str r2, [sp, #0xc] + ldrh r2, [r3, #0x6] + str r2, [sp, #0x10] + ldrb r2, [r3, #0x0] + ldrb r3, [r3, #0x1] + bl FUN_02019064 + add sp, #0x14 + pop {pc} + .balign 4 + + thumb_func_start FUN_02019178 +FUN_02019178: ; 0x02019178 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02016A18 + mov r2, #0x0 + str r2, [r4, #0x0] + mov r0, #0xff + strb r0, [r4, #0x4] + strb r2, [r4, #0x5] + strb r2, [r4, #0x6] + strb r2, [r4, #0x7] + strb r2, [r4, #0x8] + strb r2, [r4, #0x9] + ldrh r1, [r4, #0xa] + ldr r0, _020191A0 ; =0xFFFF8000 + and r0, r1 + strh r0, [r4, #0xa] + str r2, [r4, #0xc] + pop {r4, pc} + .balign 4 +_020191A0: .word 0xFFFF8000 + + thumb_func_start FUN_020191A4 +FUN_020191A4: ; 0x020191A4 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + mov r4, #0x0 + cmp r6, #0x0 + ble _020191C8 +_020191B0: + lsl r0, r4, #0x4 + add r0, r5, r0 + ldr r0, [r0, #0xc] + cmp r0, #0x0 + beq _020191BE + bl FUN_02016A18 +_020191BE: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r6 + blt _020191B0 +_020191C8: + add r0, r5, #0x0 + bl FUN_02016A18 + pop {r4-r6, pc} + + thumb_func_start FUN_020191D0 +FUN_020191D0: ; 0x020191D0 + push {r4, lr} + add r4, r0, #0x0 + bne _020191DA + bl ErrorHandling +_020191DA: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _020191E4 + bl ErrorHandling +_020191E4: + ldrb r0, [r4, #0x4] + cmp r0, #0x8 + blo _020191EE + bl ErrorHandling +_020191EE: + ldrb r1, [r4, #0x4] + mov r0, #0x2c + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0x1c] + cmp r0, #0x3 + blo _02019202 + bl ErrorHandling +_02019202: + ldrb r2, [r4, #0x4] + mov r1, #0x2c + ldr r3, [r4, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201921C ; =0x020EDB68 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0201921C: .word 0x020EDB68 + + thumb_func_start FUN_02019220 +FUN_02019220: ; 0x02019220 + push {r4, lr} + add r4, r0, #0x0 + bne _0201922A + bl ErrorHandling +_0201922A: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02019234 + bl ErrorHandling +_02019234: + ldrb r0, [r4, #0x4] + cmp r0, #0x8 + blo _0201923E + bl ErrorHandling +_0201923E: + ldrb r1, [r4, #0x4] + mov r0, #0x2c + ldr r2, [r4, #0x0] + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0x1c] + cmp r0, #0x3 + blo _02019252 + bl ErrorHandling +_02019252: + ldrb r2, [r4, #0x4] + mov r1, #0x2c + ldr r3, [r4, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201926C ; =0x020EDB5C + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0201926C: .word 0x020EDB5C + + thumb_func_start FUN_02019270 +FUN_02019270: ; 0x02019270 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _02019288 ; =0x020EDB38 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_02019288: .word 0x020EDB38 + + thumb_func_start FUN_0201928C +FUN_0201928C: ; 0x0201928C + push {r4-r6, lr} + add r5, r0, #0x0 + ldrb r6, [r5, #0x7] + ldrb r4, [r5, #0x8] + strb r1, [r5, #0x7] + strb r2, [r5, #0x8] + ldrb r3, [r5, #0x4] + mov r2, #0x2c + ldr r1, [r5, #0x0] + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020192B4 ; =0x020EDB38 + ldr r1, [r1, r2] + blx r1 + strb r6, [r5, #0x7] + strb r4, [r5, #0x8] + pop {r4-r6, pc} + nop +_020192B4: .word 0x020EDB38 + + thumb_func_start FUN_020192B8 +FUN_020192B8: ; 0x020192B8 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020192D0 ; =0x020EDB74 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_020192D0: .word 0x020EDB74 + + thumb_func_start FUN_020192D4 +FUN_020192D4: ; 0x020192D4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldrb r1, [r5, #0x4] + mov r0, #0x2c + ldr r2, [r5, #0x0] + mul r0, r1 + add r0, r2, r0 + ldr r0, [r0, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02019354 + ldrh r0, [r5, #0xa] + ldrb r1, [r5, #0x5] + lsl r0, r0, #0x11 + lsr r3, r0, #0x11 + ldrb r0, [r5, #0x7] + add r7, r1, r0 + ldrb r0, [r5, #0x6] + ldrb r1, [r5, #0x8] + mov r12, r0 + add r0, r0, r1 + mov r1, r12 + mov lr, r0 + cmp r1, r0 + bhs _02019354 +_02019308: + ldrb r2, [r5, #0x5] + cmp r2, r7 + bhs _02019348 + mov r0, r12 + lsl r0, r0, #0x1b + lsr r0, r0, #0x16 + lsl r1, r0, #0x1 + ldr r0, [sp, #0x4] + add r0, r0, r1 + mov r1, r12 + str r0, [sp, #0x0] + mov r0, #0x20 + add r6, r1, #0x0 + and r6, r0 +_02019324: + ldrb r0, [r5, #0x9] + mov r4, #0x20 + add r1, r3, #0x0 + lsl r0, r0, #0xc + and r4, r2 + orr r1, r0 + mov r0, #0x1f + add r4, r6, r4 + and r0, r2 + lsl r4, r4, #0x5 + add r0, r0, r4 + lsl r4, r0, #0x1 + ldr r0, [sp, #0x0] + add r2, r2, #0x1 + strh r1, [r0, r4] + add r3, r3, #0x1 + cmp r2, r7 + blo _02019324 +_02019348: + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _02019308 +_02019354: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02019358 +FUN_02019358: ; 0x02019358 + push {r4-r7} + ldrb r3, [r0, #0x4] + mov r1, #0x2c + add r2, r3, #0x0 + mul r2, r1 + ldr r1, [r0, #0x0] + add r1, r1, r2 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _020193AC + ldrb r2, [r1, #0x1d] + ldr r1, _020193B0 ; =0x020EDB30 + ldrb r6, [r1, r2] + ldrb r1, [r0, #0x6] + add r2, r1, #0x0 + mul r2, r6 + add r2, r3, r2 + ldrb r1, [r0, #0x5] + mov r3, #0x0 + add r4, r2, r1 + ldrh r1, [r0, #0xa] + lsl r1, r1, #0x11 + lsr r5, r1, #0x11 + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + ble _020193AC + add r1, r3, #0x0 +_0201938E: + ldrb r7, [r0, #0x7] + add r2, r1, #0x0 + cmp r7, #0x0 + ble _020193A2 +_02019396: + strb r5, [r4, r2] + ldrb r7, [r0, #0x7] + add r2, r2, #0x1 + add r5, r5, #0x1 + cmp r2, r7 + blt _02019396 +_020193A2: + ldrb r2, [r0, #0x8] + add r3, r3, #0x1 + add r4, r4, r6 + cmp r3, r2 + blt _0201938E +_020193AC: + pop {r4-r7} + bx lr + .balign 4 +_020193B0: .word 0x020EDB30 + + thumb_func_start FUN_020193B4 +FUN_020193B4: ; 0x020193B4 + push {r4-r7, lr} + sub sp, #0xc + ldrb r2, [r0, #0x4] + str r0, [sp, #0x0] + mov r0, #0x2c + add r1, r2, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldr r0, [r1, #0x8] + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _0201943C + ldrb r1, [r1, #0x1d] + ldr r0, _02019440 ; =0x020EDB30 + ldrb r0, [r0, r1] + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x5] + ldrb r0, [r0, #0x7] + add r2, r1, r0 + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x6] + mov r12, r0 + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x8] + mov r0, r12 + add r0, r0, r1 + mov r1, r12 + mov lr, r0 + cmp r1, r0 + bhs _0201943C + mov r6, #0x0 + mov r7, #0x20 +_020193FA: + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0x5] + cmp r1, r2 + bhs _02019430 + mov r3, r12 + mov r0, #0x1f + and r3, r0 + ldr r0, [sp, #0x8] + mul r0, r3 + lsl r3, r0, #0x1 + ldr r0, [sp, #0x4] + add r5, r0, r3 + mov r3, r12 + mov r0, #0x20 + and r3, r0 +_02019418: + add r4, r1, #0x0 + and r4, r7 + mov r0, #0x1f + add r4, r3, r4 + and r0, r1 + lsl r4, r4, #0x5 + add r0, r0, r4 + lsl r0, r0, #0x1 + add r1, r1, #0x1 + strh r6, [r5, r0] + cmp r1, r2 + blo _02019418 +_02019430: + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _020193FA +_0201943C: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02019440: .word 0x020EDB30 + + thumb_func_start FUN_02019444 +FUN_02019444: ; 0x02019444 + push {r4-r7} + ldrb r3, [r0, #0x4] + mov r1, #0x2c + add r2, r3, #0x0 + mul r2, r1 + ldr r1, [r0, #0x0] + add r1, r1, r2 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _02019492 + ldrb r2, [r1, #0x1d] + ldr r1, _02019498 ; =0x020EDB30 + mov r4, #0x0 + ldrb r6, [r1, r2] + ldrb r1, [r0, #0x6] + add r2, r1, #0x0 + mul r2, r6 + ldrb r1, [r0, #0x5] + add r2, r3, r2 + add r5, r2, r1 + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + ble _02019492 + add r1, r4, #0x0 + add r2, r4, #0x0 +_02019476: + ldrb r7, [r0, #0x7] + add r3, r2, #0x0 + cmp r7, #0x0 + ble _02019488 +_0201947E: + strb r1, [r5, r3] + ldrb r7, [r0, #0x7] + add r3, r3, #0x1 + cmp r3, r7 + blt _0201947E +_02019488: + ldrb r3, [r0, #0x8] + add r4, r4, #0x1 + add r5, r5, r6 + cmp r4, r3 + blt _02019476 +_02019492: + pop {r4-r7} + bx lr + nop +_02019498: .word 0x020EDB30 + + thumb_func_start FUN_0201949C +FUN_0201949C: ; 0x0201949C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl FUN_020192D4 + add r0, r4, #0x0 + bl FUN_02019548 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl FUN_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_020194C8 +FUN_020194C8: ; 0x020194C8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020192D4 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + add r0, r4, #0x0 + bl FUN_02019548 + pop {r4, pc} + + thumb_func_start FUN_020194E0 +FUN_020194E0: ; 0x020194E0 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02019358 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl FUN_02017CE8 + ldrh r0, [r4, #0xa] + lsl r0, r0, #0x11 + lsr r0, r0, #0x11 + str r0, [sp, #0x0] + ldrb r5, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + mul r3, r5 + ldr r2, [r4, #0xc] + lsl r3, r3, #0x6 + bl FUN_02017E14 + pop {r3-r5, pc} + + thumb_func_start FUN_0201951C +FUN_0201951C: ; 0x0201951C + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02019358 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + ldrh r0, [r4, #0xa] + lsl r0, r0, #0x11 + lsr r0, r0, #0x11 + str r0, [sp, #0x0] + ldrb r5, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + mul r3, r5 + ldr r2, [r4, #0xc] + lsl r3, r3, #0x6 + bl FUN_02017E14 + pop {r3-r5, pc} + + thumb_func_start FUN_02019548 +FUN_02019548: ; 0x02019548 + push {r3-r5, lr} + add r3, r0, #0x0 + ldrh r2, [r3, #0xa] + ldrb r1, [r3, #0x4] + mov r4, #0x2c + lsl r2, r2, #0x11 + ldr r0, [r3, #0x0] + lsr r2, r2, #0x11 + str r2, [sp, #0x0] + mul r4, r1 + add r4, r0, r4 + ldr r2, [r3, #0xc] + ldrb r5, [r3, #0x7] + ldrb r3, [r3, #0x8] + ldrb r4, [r4, #0x1f] + mul r3, r5 + mul r3, r4 + bl FUN_02017E14 + pop {r3-r5, pc} + + thumb_func_start FUN_02019570 +FUN_02019570: ; 0x02019570 + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _02019588 ; =0x020EDB50 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_02019588: .word 0x020EDB50 + + thumb_func_start FUN_0201958C +FUN_0201958C: ; 0x0201958C + push {r3, lr} + ldrb r2, [r0, #0x4] + mov r1, #0x2c + ldr r3, [r0, #0x0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0x1c] + lsl r2, r1, #0x2 + ldr r1, _020195A4 ; =0x020EDB44 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + .balign 4 +_020195A4: .word 0x020EDB44 + + thumb_func_start FUN_020195A8 +FUN_020195A8: ; 0x020195A8 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl FUN_020193B4 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl FUN_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_020195D0 +FUN_020195D0: ; 0x020195D0 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020193B4 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020195E4 +FUN_020195E4: ; 0x020195E4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl FUN_02019444 + ldrb r1, [r4, #0x4] + mov r0, #0x2c + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [r4, #0x0] + add r3, r0, r2 + ldr r2, [r3, #0x10] + str r2, [sp, #0x0] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + bl FUN_02017CE8 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_0201960C +FUN_0201960C: ; 0x0201960C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02019444 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02019620 +FUN_02019620: ; 0x02019620 + push {r3-r5, lr} + add r4, r0, #0x0 + ldrb r2, [r4, #0x4] + mov r0, #0x2c + ldr r3, [r4, #0x0] + mul r0, r2 + add r0, r3, r0 + ldrb r2, [r0, #0x1f] + cmp r2, #0x20 + bne _0201963C + lsl r0, r1, #0x4 + orr r0, r1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +_0201963C: + lsl r3, r1, #0x18 + lsl r0, r1, #0x10 + orr r0, r3 + lsl r5, r1, #0x8 + orr r0, r5 + orr r0, r1 + ldr r1, [r4, #0xc] + ldrb r3, [r4, #0x8] + ldrb r4, [r4, #0x7] + mul r2, r4 + mul r2, r3 + bl MIi_CpuClearFast + pop {r3-r5, pc} + + thumb_func_start FUN_02019658 +FUN_02019658: ; 0x02019658 + push {r4-r5, lr} + sub sp, #0x1c + add r4, sp, #0x18 + ldrh r5, [r4, #0x10] + str r5, [sp, #0x0] + ldrh r5, [r4, #0x14] + str r5, [sp, #0x4] + ldrh r5, [r4, #0x18] + str r5, [sp, #0x8] + ldrh r5, [r4, #0x1c] + str r5, [sp, #0xc] + ldrh r5, [r4, #0x20] + str r5, [sp, #0x10] + ldrh r4, [r4, #0x24] + str r4, [sp, #0x14] + mov r4, #0x0 + str r4, [sp, #0x18] + bl FUN_02019684 + add sp, #0x1c + pop {r4-r5, pc} + .balign 4 + + thumb_func_start FUN_02019684 +FUN_02019684: ; 0x02019684 + push {r4-r5, lr} + sub sp, #0x24 + str r1, [sp, #0x1c] + add r4, sp, #0x20 + ldrh r5, [r4, #0x10] + add r1, sp, #0x14 + strh r5, [r1, #0xc] + ldrh r5, [r4, #0x14] + strh r5, [r1, #0xe] + ldr r5, [r0, #0xc] + str r5, [sp, #0x14] + ldrb r5, [r0, #0x7] + lsl r5, r5, #0x3 + strh r5, [r1, #0x4] + ldrb r5, [r0, #0x8] + lsl r5, r5, #0x3 + strh r5, [r1, #0x6] + ldrb r5, [r0, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x2c + mul r0, r5 + add r0, r1, r0 + ldrb r0, [r0, #0x1e] + add r1, sp, #0x14 + cmp r0, #0x0 + ldrh r0, [r4, #0x18] + bne _020196D6 + str r0, [sp, #0x0] + ldrh r0, [r4, #0x1c] + str r0, [sp, #0x4] + ldrh r0, [r4, #0x20] + str r0, [sp, #0x8] + ldrh r0, [r4, #0x24] + str r0, [sp, #0xc] + ldrh r0, [r4, #0x28] + str r0, [sp, #0x10] + add r0, sp, #0x1c + bl FUN_02018A60 + add sp, #0x24 + pop {r4-r5, pc} +_020196D6: + str r0, [sp, #0x0] + ldrh r0, [r4, #0x1c] + str r0, [sp, #0x4] + ldrh r0, [r4, #0x20] + str r0, [sp, #0x8] + ldrh r0, [r4, #0x24] + str r0, [sp, #0xc] + ldrh r0, [r4, #0x28] + str r0, [sp, #0x10] + add r0, sp, #0x1c + bl FUN_02018CA0 + add sp, #0x24 + pop {r4-r5, pc} + .balign 4 + + thumb_func_start FUN_020196F4 +FUN_020196F4: ; 0x020196F4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r1, #0x0 + ldr r1, [r0, #0xc] + add r4, r2, #0x0 + str r1, [sp, #0x8] + ldrb r1, [r0, #0x7] + add r2, r3, #0x0 + lsl r3, r1, #0x3 + add r1, sp, #0x8 + strh r3, [r1, #0x4] + ldrb r3, [r0, #0x8] + lsl r3, r3, #0x3 + strh r3, [r1, #0x6] + ldrb r3, [r0, #0x4] + ldr r1, [r0, #0x0] + mov r0, #0x2c + mul r0, r3 + add r0, r1, r0 + ldrb r0, [r0, #0x1e] + add r3, sp, #0x10 + cmp r0, #0x0 + bne _02019736 + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x10] + add r0, sp, #0x8 + bl FUN_02018E88 + add sp, #0x10 + pop {r3-r5, pc} +_02019736: + ldrh r0, [r3, #0x14] + add r1, r4, #0x0 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x10] + add r0, sp, #0x8 + bl FUN_02018F4C + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201974C +FUN_0201974C: ; 0x0201974C + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x118 + add r5, r0, #0x0 + ldr r0, [sp, #0x330] + str r1, [sp, #0x0] + str r0, [sp, #0x330] + add r1, sp, #0x318 + ldrh r1, [r1, #0x10] + ldr r0, [r5, #0xc] + str r1, [sp, #0x5c] + ldrb r1, [r5, #0x7] + str r0, [sp, #0x278] + ldrb r0, [r5, #0x8] + lsl r1, r1, #0x13 + lsr r4, r1, #0x10 + ldr r1, [sp, #0x5c] + lsl r0, r0, #0x13 + sub r1, r4, r1 + lsr r0, r0, #0x10 + str r4, [sp, #0x58] + str r1, [sp, #0x8] + cmp r1, r2 + blt _0201977E + str r2, [sp, #0x8] +_0201977E: + add r1, sp, #0x318 + ldrh r1, [r1, #0x14] + sub r0, r0, r1 + str r1, [sp, #0x48] + str r0, [sp, #0x4] + cmp r0, r3 + blt _0201978E + str r3, [sp, #0x4] +_0201978E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + cmp r0, #0x8 + ble _0201979E + mov r0, #0x1 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0201979E: + ldr r0, [sp, #0x4] + cmp r0, #0x8 + ble _020197AC + mov r0, #0x2 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020197AC: + ldrh r0, [r5, #0xa] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + beq _020197B8 + bl FUN_0201A12C +_020197B8: + cmp r4, #0x3 + bls _020197C0 + bl FUN_0201A8BC +_020197C0: + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020197CC: ; jump table (using 16-bit offset) + .short _020197D4 - _020197CC - 2; case 0 + .short _020198D6 - _020197CC - 2; case 1 + .short _02019AE6 - _020197CC - 2; case 2 + .short _02019D06 - _020197CC - 2; case 3 +_020197D4: + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x70] + mov r0, #0x0 + str r0, [sp, #0x274] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020197EA + bl FUN_0201A8BC +_020197EA: + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x6c] +_020197F6: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x70] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x26c] + ldr r0, [sp, #0x274] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x270] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _020198AA + ble _020198AA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x6c] + lsl r5, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x68] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + ldr r5, [sp, #0x6c] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x64] + str r0, [sp, #0x60] +_02019848: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019B68 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x68] + str r5, [sp, #0x27c] + add r0, r5, r0 + ldr r5, [sp, #0x26c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201989C + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x280] + ldrb r5, [r0, r7] + str r5, [sp, #0x284] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x284] + and r6, r5 + ldr r5, [sp, #0x280] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _0201989C + ldr r6, [sp, #0x27c] + ldr r0, [sp, #0x64] + add r6, r6, r0 + ldr r0, [sp, #0x60] + strb r5, [r0, r6] +_0201989C: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019848 +_020198AA: + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _020198B8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _020198BE +_020198B8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_020198BE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x274] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x274] + cmp r1, r0 + blt _020197F6 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_020198D6: + ldr r0, [sp, #0x0] + str r0, [sp, #0x25c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x264] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x84] + mov r0, #0x0 + str r0, [sp, #0x268] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _020199D2 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x80] +_02019902: + ldr r0, [sp, #0x25c] + ldr r1, [sp, #0x84] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x258] + ldr r0, [sp, #0x268] + ldr r6, [sp, #0x80] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x260] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x264] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x264] + str r6, [sp, #0x7c] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + ldr r5, [sp, #0x80] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x78] + str r0, [sp, #0x74] +_0201994C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019B68 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x7c] + str r5, [sp, #0x288] + add r0, r5, r0 + ldr r5, [sp, #0x258] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _020199A0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x28c] + ldrb r5, [r0, r7] + str r5, [sp, #0x290] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x290] + and r6, r5 + ldr r5, [sp, #0x28c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199A0 + ldr r6, [sp, #0x288] + ldr r0, [sp, #0x78] + add r6, r6, r0 + ldr r0, [sp, #0x74] + strb r5, [r0, r6] +_020199A0: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _0201994C + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199BA + ldr r0, [sp, #0x264] + add r0, r0, #0x2 + str r0, [sp, #0x264] + b _020199C0 +_020199BA: + ldr r0, [sp, #0x264] + add r0, r0, #0x1 + str r0, [sp, #0x264] +_020199C0: + ldr r0, [sp, #0x25c] + add r0, r0, #0x4 + str r0, [sp, #0x25c] + ldr r0, [sp, #0x268] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x268] + cmp r1, r0 + blt _02019902 +_020199D2: + ldr r0, [sp, #0x0] + add r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x98] + mov r0, #0x0 + str r0, [sp, #0x254] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020199EE + bl FUN_0201A8BC +_020199EE: + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x94] +_02019A00: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x98] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x24c] + ldr r0, [sp, #0x254] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x250] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x294] + sub r0, #0x8 + str r0, [sp, #0x294] + cmp r0, #0x0 + ble _02019ABA + ble _02019ABA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x94] + lsl r5, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x90] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + ldr r5, [sp, #0x94] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x8c] + str r0, [sp, #0x88] +_02019A58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019B68 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x90] + str r5, [sp, #0x298] + add r0, r5, r0 + ldr r5, [sp, #0x24c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019AAC + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x29c] + ldrb r5, [r0, r7] + str r5, [sp, #0x2a0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2a0] + and r6, r5 + ldr r5, [sp, #0x29c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AAC + ldr r6, [sp, #0x298] + ldr r0, [sp, #0x8c] + add r6, r6, r0 + ldr r0, [sp, #0x88] + strb r5, [r0, r6] +_02019AAC: + ldr r0, [sp, #0x294] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019A58 +_02019ABA: + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AC8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019ACE +_02019AC8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019ACE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x254] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x254] + cmp r1, r0 + blt _02019A00 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019AE6: + ldr r0, [sp, #0x0] + mov r1, #0x7 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x244] + mov r0, #0x0 + str r0, [sp, #0x248] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xa8] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x40] +_02019B06: + ldr r0, [sp, #0x23c] + ldr r1, [sp, #0xa8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x238] + ldr r0, [sp, #0x248] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x240] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019BC2 + ble _02019BC2 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x244] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x244] + str r6, [sp, #0xa4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019B68 ; =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xa0] + str r0, [sp, #0x9c] +_02019B58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019B68 ; =0x00003FE0 + b _02019B6C + nop +_02019B68: .word 0x00003FE0 +_02019B6C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xa4] + str r5, [sp, #0x2a4] + add r0, r5, r0 + ldr r5, [sp, #0x238] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019BB4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2a8] + ldrb r5, [r0, r7] + str r5, [sp, #0x2ac] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2ac] + and r6, r5 + ldr r5, [sp, #0x2a8] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BB4 + ldr r6, [sp, #0x2a4] + ldr r0, [sp, #0xa0] + add r6, r6, r0 + ldr r0, [sp, #0x9c] + strb r5, [r0, r6] +_02019BB4: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019B58 +_02019BC2: + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BD0 + ldr r0, [sp, #0x244] + add r0, r0, #0x2 + str r0, [sp, #0x244] + b _02019BD6 +_02019BD0: + ldr r0, [sp, #0x244] + add r0, r0, #0x1 + str r0, [sp, #0x244] +_02019BD6: + ldr r0, [sp, #0x23c] + add r0, r0, #0x4 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x248] + add r0, r0, #0x1 + str r0, [sp, #0x248] + cmp r0, #0x8 + blt _02019B06 + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x40 + str r0, [sp, #0x0] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] +_02019BF6: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019C04 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019C04: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019BF6 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xb8] + mov r0, #0x0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _02019C24 + bl FUN_0201A8BC +_02019C24: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xb8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x230] + ldr r0, [sp, #0x20] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x234] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019CD8 + ble _02019CD8 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xb4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xb0] + str r0, [sp, #0xac] +_02019C76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019F88 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xb4] + str r5, [sp, #0x2b0] + add r0, r5, r0 + ldr r5, [sp, #0x230] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019CCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2b4] + ldrb r5, [r0, r7] + str r5, [sp, #0x2b8] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2b8] + and r6, r5 + ldr r5, [sp, #0x2b4] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CCA + ldr r6, [sp, #0x2b0] + ldr r0, [sp, #0xb0] + add r6, r6, r0 + ldr r0, [sp, #0xac] + strb r5, [r0, r6] +_02019CCA: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019C76 +_02019CD8: + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CE6 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019CEC +_02019CE6: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019CEC: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x20] + cmp r0, r1 + blt _02019C24 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019D06: + ldr r0, [sp, #0x0] + str r0, [sp, #0x220] + ldr r0, [sp, #0x48] + str r0, [sp, #0x228] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x22c] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x38] +_02019D2A: + ldr r0, [sp, #0x220] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x21c] + ldr r0, [sp, #0x22c] + ldr r6, [sp, #0x38] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x224] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x228] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x228] + str r6, [sp, #0xc4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + str r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xc0] + str r0, [sp, #0xbc] +_02019D76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019F88 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xc4] + str r5, [sp, #0x2bc] + add r0, r5, r0 + ldr r5, [sp, #0x21c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019DCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2c0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2c4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2c4] + and r6, r5 + ldr r5, [sp, #0x2c0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DCA + ldr r6, [sp, #0x2bc] + ldr r0, [sp, #0xc0] + add r6, r6, r0 + ldr r0, [sp, #0xbc] + strb r5, [r0, r6] +_02019DCA: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019D76 + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DE4 + ldr r0, [sp, #0x228] + add r0, r0, #0x2 + str r0, [sp, #0x228] + b _02019DEA +_02019DE4: + ldr r0, [sp, #0x228] + add r0, r0, #0x1 + str r0, [sp, #0x228] +_02019DEA: + ldr r0, [sp, #0x220] + add r0, r0, #0x4 + str r0, [sp, #0x220] + ldr r0, [sp, #0x22c] + add r0, r0, #0x1 + str r0, [sp, #0x22c] + cmp r0, #0x8 + blt _02019D2A + ldr r0, [sp, #0x0] + str r0, [sp, #0x20c] + add r0, #0x20 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x214] + mov r0, #0x0 + str r0, [sp, #0x218] + ldr r0, [sp, #0x5c] + str r0, [sp, #0xd4] + add r0, #0x8 + str r0, [sp, #0xd4] +_02019E12: + ldr r0, [sp, #0x20c] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0xd4] + str r0, [sp, #0x208] + ldr r0, [sp, #0x218] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x210] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2c8] + sub r0, #0x8 + str r0, [sp, #0x2c8] + cmp r0, #0x0 + ble _02019ECC + ble _02019ECC + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x214] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x214] + str r6, [sp, #0xd0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xcc] + str r0, [sp, #0xc8] +_02019E6A: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019F88 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xd0] + str r5, [sp, #0x2cc] + add r0, r5, r0 + ldr r5, [sp, #0x208] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019EBE + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2d0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2d4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2d4] + and r6, r5 + ldr r5, [sp, #0x2d0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EBE + ldr r6, [sp, #0x2cc] + ldr r0, [sp, #0xcc] + add r6, r6, r0 + ldr r0, [sp, #0xc8] + strb r5, [r0, r6] +_02019EBE: + ldr r0, [sp, #0x2c8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019E6A +_02019ECC: + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EDA + ldr r0, [sp, #0x214] + add r0, r0, #0x2 + str r0, [sp, #0x214] + b _02019EE0 +_02019EDA: + ldr r0, [sp, #0x214] + add r0, r0, #0x1 + str r0, [sp, #0x214] +_02019EE0: + ldr r0, [sp, #0x20c] + add r0, r0, #0x4 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x218] + add r0, r0, #0x1 + str r0, [sp, #0x218] + cmp r0, #0x8 + blt _02019E12 + ldr r0, [sp, #0x0] + mov r2, #0x0 + str r0, [sp, #0x1fc] + add r0, #0x40 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] + str r0, [sp, #0x204] +_02019F04: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019F12 + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019F12: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019F04 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xe4] + mov r0, #0x0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A008 +_02019F30: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0xe4] + ldr r0, [r0, #0x0] + ldr r6, [sp, #0x38] + str r0, [sp, #0x1f8] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x200] + ldr r0, [sp, #0x204] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x204] + str r6, [sp, #0xe0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _02019F88 ; =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + ldr r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xdc] + str r0, [sp, #0xd8] +_02019F78: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _02019F88 ; =0x00003FE0 + b _02019F8C + nop +_02019F88: .word 0x00003FE0 +_02019F8C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xe0] + str r5, [sp, #0x2d8] + add r0, r5, r0 + ldr r5, [sp, #0x1f8] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019FD4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2dc] + ldrb r5, [r0, r7] + str r5, [sp, #0x2e0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2e0] + and r6, r5 + ldr r5, [sp, #0x2dc] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FD4 + ldr r6, [sp, #0x2d8] + ldr r0, [sp, #0xdc] + add r6, r6, r0 + ldr r0, [sp, #0xd8] + strb r5, [r0, r6] +_02019FD4: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019F78 + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FEE + ldr r0, [sp, #0x204] + add r0, r0, #0x2 + str r0, [sp, #0x204] + b _02019FF4 +_02019FEE: + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019FF4: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x1c] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1c] + cmp r0, r1 + blt _02019F30 +_0201A008: + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x60 + str r0, [sp, #0x0] + mov r1, #0x1 +_0201A012: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A020 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A020: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A012 + ldr r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xf4] + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _0201A03E + bl FUN_0201A8BC +_0201A03E: + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A044: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xf4] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x1f0] + ldr r0, [sp, #0x18] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1f4] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2e4] + sub r0, #0x8 + str r0, [sp, #0x2e4] + cmp r0, #0x0 + ble _0201A0FE + ble _0201A0FE + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, _0201A3A8 ; =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xf0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, _0201A3A8 ; =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xec] + str r0, [sp, #0xe8] +_0201A09C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, _0201A3A8 ; =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xf0] + str r5, [sp, #0x2e8] + add r0, r5, r0 + ldr r5, [sp, #0x1f0] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201A0F0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2ec] + ldrb r5, [r0, r7] + mov r12, r5 + mov r5, #0xf0 + asr r5, r6 + mov r6, r12 + and r6, r5 + ldr r5, [sp, #0x2ec] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A0F0 + ldr r6, [sp, #0x2e8] + ldr r0, [sp, #0xec] + add r6, r6, r0 + ldr r0, [sp, #0xe8] + strb r5, [r0, r6] +_0201A0F0: + ldr r0, [sp, #0x2e4] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _0201A09C +_0201A0FE: + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A10C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A112 +_0201A10C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A112: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x18] + cmp r0, r1 + blt _0201A044 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + + thumb_func_start FUN_0201A12C +FUN_0201A12C: ; 0x0201A12C + lsl r1, r2, #0x2 + mul r1, r3 + ldr r3, [r5, #0x0] + ldrb r2, [r5, #0x9] + ldr r0, [sp, #0x0] + ldr r3, [r3, #0x0] + lsl r1, r1, #0x3 + bl FUN_02018848 + str r0, [sp, #0x1ec] + cmp r4, #0x3 + bhi _0201A21E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0201A150: ; jump table (using 16-bit offset) + .short _0201A158 - _0201A150 - 2; case 0 + .short _0201A220 - _0201A150 - 2; case 1 + .short _0201A3CA - _0201A150 - 2; case 2 + .short _0201A56E - _0201A150 - 2; case 3 +_0201A158: + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10c] + mov r0, #0x0 + str r0, [sp, #0x1e8] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A21E + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x108] +_0201A178: + ldr r1, [sp, #0x10c] + ldr r0, [sp, #0x1e8] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x310] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A1FC + ble _0201A1FC + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x108] + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x100] + ldr r0, [sp, #0x48] + str r2, [sp, #0x104] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + ldr r2, [sp, #0x108] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0xfc] + str r0, [sp, #0xf8] +_0201A1C4: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A3AC ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x104] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0x100] + strb r1, [r2, r0] + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0xfc] + add r2, r3, r0 + ldr r0, [sp, #0xf8] + strb r1, [r0, r2] +_0201A1F0: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A1C4 +_0201A1FC: + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A20A + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A210 +_0201A20A: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A210: + ldr r0, [sp, #0x1e8] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e8] + cmp r1, r0 + blt _0201A178 +_0201A21E: + b _0201A8B6 +_0201A220: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1e0] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x124] + mov r0, #0x0 + str r0, [sp, #0x1e4] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A2E6 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x120] +_0201A24A: + ldr r1, [sp, #0x124] + ldr r0, [sp, #0x1e4] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x30c] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1e0] + ldr r2, [sp, #0x120] + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x118] + ldr r0, [sp, #0x1e0] + str r2, [sp, #0x11c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + ldr r2, [sp, #0x120] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r2, [sp, #0x114] + str r0, [sp, #0x110] +_0201A28E: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A3AC ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x11c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x118] + strb r1, [r2, r0] + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x114] + add r2, r3, r0 + ldr r0, [sp, #0x110] + strb r1, [r0, r2] +_0201A2BA: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A28E + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2D2 + ldr r0, [sp, #0x1e0] + add r0, r0, #0x2 + str r0, [sp, #0x1e0] + b _0201A2D8 +_0201A2D2: + ldr r0, [sp, #0x1e0] + add r0, r0, #0x1 + str r0, [sp, #0x1e0] +_0201A2D8: + ldr r0, [sp, #0x1e4] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e4] + cmp r1, r0 + blt _0201A24A +_0201A2E6: + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x308] + add r0, #0x40 + str r0, [sp, #0x308] + ldr r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x13c] + mov r0, #0x0 + str r0, [sp, #0x1dc] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A3C8 + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x138] +_0201A312: + ldr r1, [sp, #0x13c] + ldr r0, [sp, #0x1dc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1d8] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A398 + ble _0201A398 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x138] + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x130] + ldr r0, [sp, #0x48] + str r2, [sp, #0x134] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A3AC ; =0x00007FC0 + ldr r2, [sp, #0x138] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x12c] + str r0, [sp, #0x128] +_0201A360: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A3AC ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x134] + add r2, r3, r0 + ldr r0, [sp, #0x308] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A38E + ldr r0, [sp, #0x130] + strb r1, [r2, r0] + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A38E + ldr r0, [sp, #0x12c] + add r2, r3, r0 + ldr r0, [sp, #0x128] + strb r1, [r0, r2] +_0201A38E: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A360 +_0201A398: + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A3B0 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A3B6 + nop +_0201A3A8: .word 0x00003FE0 +_0201A3AC: .word 0x00007FC0 +_0201A3B0: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A3B6: + ldr r0, [sp, #0x308] + add r0, #0x8 + str r0, [sp, #0x308] + ldr r0, [sp, #0x1dc] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1dc] + cmp r1, r0 + blt _0201A312 +_0201A3C8: + b _0201A8B6 +_0201A3CA: + ldr r0, [sp, #0x48] + mov r1, #0x7 + str r0, [sp, #0x1d0] + mov r0, #0x0 + str r0, [sp, #0x1d4] + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x150] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x30] +_0201A3E8: + ldr r1, [sp, #0x150] + ldr r0, [sp, #0x1d4] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x304] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A46C + ble _0201A46C + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1d0] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x148] + ldr r0, [sp, #0x1d0] + str r2, [sp, #0x14c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x144] + str r0, [sp, #0x140] +_0201A434: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A748 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x14c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A460 + ldr r0, [sp, #0x148] + strb r1, [r2, r0] + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A460 + ldr r0, [sp, #0x144] + add r2, r3, r0 + ldr r0, [sp, #0x140] + strb r1, [r0, r2] +_0201A460: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A434 +_0201A46C: + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A47A + ldr r0, [sp, #0x1d0] + add r0, r0, #0x2 + str r0, [sp, #0x1d0] + b _0201A480 +_0201A47A: + ldr r0, [sp, #0x1d0] + add r0, r0, #0x1 + str r0, [sp, #0x1d0] +_0201A480: + ldr r0, [sp, #0x1d4] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1d4] + cmp r0, #0x8 + blt _0201A3E8 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + str r0, [sp, #0x48] + add r7, #0x80 + mov r0, #0x0 + mov r2, #0x1 +_0201A49A: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A4A8 + ldr r1, [sp, #0x48] + add r1, r1, #0x1 + str r1, [sp, #0x48] +_0201A4A8: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A49A + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x164] + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A56C +_0201A4C4: + ldr r1, [sp, #0x164] + ldr r0, [sp, #0x14] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x300] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A548 + ble _0201A548 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x15c] + ldr r0, [sp, #0x48] + str r2, [sp, #0x160] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x158] + str r0, [sp, #0x154] +_0201A510: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A748 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x160] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A53C + ldr r0, [sp, #0x15c] + strb r1, [r2, r0] + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A53C + ldr r0, [sp, #0x158] + add r2, r3, r0 + ldr r0, [sp, #0x154] + strb r1, [r0, r2] +_0201A53C: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A510 +_0201A548: + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A556 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A55C +_0201A556: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A55C: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x14] + cmp r0, r1 + blt _0201A4C4 +_0201A56C: + b _0201A8B6 +_0201A56E: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1c8] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x1cc] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x28] +_0201A590: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1cc] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2fc] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c8] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x170] + ldr r0, [sp, #0x1c8] + str r2, [sp, #0x174] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r6, [sp, #0x24] + str r2, [sp, #0x16c] + str r0, [sp, #0x168] +_0201A5D6: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A748 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x174] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A602 + ldr r0, [sp, #0x170] + strb r1, [r2, r0] + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A602 + ldr r0, [sp, #0x16c] + add r2, r3, r0 + ldr r0, [sp, #0x168] + strb r1, [r0, r2] +_0201A602: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A5D6 + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A61A + ldr r0, [sp, #0x1c8] + add r0, r0, #0x2 + str r0, [sp, #0x1c8] + b _0201A620 +_0201A61A: + ldr r0, [sp, #0x1c8] + add r0, r0, #0x1 + str r0, [sp, #0x1c8] +_0201A620: + ldr r0, [sp, #0x1cc] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1cc] + cmp r0, #0x8 + blt _0201A590 + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x2f8] + add r0, #0x40 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x48] + str r0, [sp, #0x1c0] + mov r0, #0x0 + str r0, [sp, #0x1c4] + ldr r0, [sp, #0x5c] + str r0, [sp, #0x188] + add r0, #0x8 + str r0, [sp, #0x188] +_0201A644: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1c4] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1bc] + ldr r5, [sp, #0x188] + cmp r7, #0x0 + ble _0201A6CA + ble _0201A6CA + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c0] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x180] + ldr r0, [sp, #0x1c0] + str r2, [sp, #0x184] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x17c] + str r0, [sp, #0x178] +_0201A692: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A748 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x184] + add r2, r3, r0 + ldr r0, [sp, #0x2f8] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x180] + strb r1, [r2, r0] + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x17c] + add r2, r3, r0 + ldr r0, [sp, #0x178] + strb r1, [r0, r2] +_0201A6C0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A692 +_0201A6CA: + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6D8 + ldr r0, [sp, #0x1c0] + add r0, r0, #0x2 + str r0, [sp, #0x1c0] + b _0201A6DE +_0201A6D8: + ldr r0, [sp, #0x1c0] + add r0, r0, #0x1 + str r0, [sp, #0x1c0] +_0201A6DE: + ldr r0, [sp, #0x2f8] + add r0, #0x8 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x1c4] + add r0, r0, #0x1 + str r0, [sp, #0x1c4] + cmp r0, #0x8 + blt _0201A644 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + add r7, #0x80 + str r0, [sp, #0x48] + str r0, [sp, #0x1b8] + mov r0, #0x0 + mov r2, #0x1 +_0201A6FE: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A70C + ldr r1, [sp, #0x1b8] + add r1, r1, #0x1 + str r1, [sp, #0x1b8] +_0201A70C: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A6FE + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x19c] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A7CE +_0201A72A: + ldr r1, [sp, #0x19c] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x28] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2f4] + ldr r0, [sp, #0x1b8] + mov r3, #0x38 + lsl r1, r0, #0x3 + ldr r0, _0201A748 ; =0x00007FC0 + b _0201A74C + nop +_0201A748: .word 0x00007FC0 +_0201A74C: + ldr r5, [sp, #0x5c] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x194] + ldr r0, [sp, #0x1b8] + str r2, [sp, #0x198] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A8C4 ; =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + ldr r6, [sp, #0x24] + mov r4, #0x0 + str r2, [sp, #0x190] + str r0, [sp, #0x18c] +_0201A774: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A8C4 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x198] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x194] + strb r1, [r2, r0] + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x190] + add r2, r3, r0 + ldr r0, [sp, #0x18c] + strb r1, [r0, r2] +_0201A7A0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A774 + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7B8 + ldr r0, [sp, #0x1b8] + add r0, r0, #0x2 + str r0, [sp, #0x1b8] + b _0201A7BE +_0201A7B8: + ldr r0, [sp, #0x1b8] + add r0, r0, #0x1 + str r0, [sp, #0x1b8] +_0201A7BE: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x10] + cmp r0, r1 + blt _0201A72A +_0201A7CE: + ldr r0, [sp, #0x1ec] + mov r2, #0x0 + str r0, [sp, #0x2f0] + add r0, #0xc0 + str r0, [sp, #0x2f0] + mov r1, #0x1 +_0201A7DA: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A7E8 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A7E8: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A7DA + ldr r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1b0] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A8B6 + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A808: + ldr r1, [sp, #0x1b0] + ldr r0, [sp, #0xc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1b4] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A88E + ble _0201A88E + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, _0201A8C4 ; =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x1a8] + ldr r0, [sp, #0x48] + str r2, [sp, #0x1ac] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, _0201A8C4 ; =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x1a4] + str r0, [sp, #0x1a0] +_0201A856: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, _0201A8C4 ; =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x1ac] + add r2, r3, r0 + ldr r0, [sp, #0x2f0] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a8] + strb r1, [r2, r0] + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a4] + add r2, r3, r0 + ldr r0, [sp, #0x1a0] + strb r1, [r0, r2] +_0201A884: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A856 +_0201A88E: + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A89C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A8A2 +_0201A89C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A8A2: + ldr r0, [sp, #0x2f0] + ldr r1, [sp, #0x4] + add r0, #0x8 + str r0, [sp, #0x2f0] + ldr r0, [sp, #0xc] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, r1 + blt _0201A808 +_0201A8B6: + ldr r0, [sp, #0x1ec] + bl FUN_02016A18 + + thumb_func_start FUN_0201A8BC +FUN_0201A8BC: ; 0x0201A8BC + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + nop +_0201A8C4: .word 0x00007FC0 + + thumb_func_start FUN_0201A8C8 +FUN_0201A8C8: ; 0x0201A8C8 + push {r4-r6, lr} + ldrb r6, [r0, #0x4] + mov r5, #0x2c + ldr r4, [r0, #0x0] + mul r5, r6 + add r4, r4, r5 + ldrb r4, [r4, #0x1e] + cmp r4, #0x0 + bne _0201A8E0 + bl FUN_0201A8E8 + pop {r4-r6, pc} +_0201A8E0: + bl FUN_0201A9D4 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201A8E8 +FUN_0201A8E8: ; 0x0201A8E8 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r3, #0x0 + add r4, r0, #0x0 + add r0, r1, #0x0 + lsl r3, r6, #0x18 + lsl r1, r6, #0x10 + str r2, [sp, #0x0] + orr r1, r3 + lsl r5, r6, #0x8 + orr r1, r5 + orr r1, r6 + str r1, [sp, #0x4] + ldrb r1, [r4, #0x7] + ldrb r3, [r4, #0x8] + ldr r2, [r4, #0xc] + str r1, [sp, #0x8] + mul r1, r3 + lsl r1, r1, #0x5 + str r1, [sp, #0xc] + cmp r0, #0x3 + bhi _0201A9CE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0201A920: ; jump table (using 16-bit offset) + .short _0201A928 - _0201A920 - 2; case 0 + .short _0201A976 - _0201A920 - 2; case 1 + .short _0201A9CE - _0201A920 - 2; case 2 + .short _0201A9CE - _0201A920 - 2; case 3 +_0201A928: + add r0, r1, #0x0 + mov r7, #0x0 + cmp r0, #0x0 + ble _0201A9CE + mov r0, #0x7 + mov lr, r0 +_0201A934: + ldr r3, [sp, #0x0] + mov r4, #0x0 + add r5, r7, #0x0 +_0201A93A: + mov r0, #0x7 + add r6, r3, #0x0 + and r6, r0 + add r1, r3, #0x0 + mov r0, lr + bic r1, r0 + ldr r0, [sp, #0x8] + mul r1, r0 + add r0, r6, #0x0 + orr r0, r1 + lsl r0, r0, #0x2 + add r1, r7, r0 + ldr r0, [sp, #0xc] + cmp r1, r0 + bge _0201A95C + ldr r0, [r2, r1] + b _0201A95E +_0201A95C: + ldr r0, [sp, #0x4] +_0201A95E: + add r4, r4, #0x1 + str r0, [r2, r5] + add r3, r3, #0x1 + add r5, r5, #0x4 + cmp r4, #0x8 + blt _0201A93A + ldr r0, [sp, #0xc] + add r7, #0x20 + cmp r7, r0 + blt _0201A934 + add sp, #0x10 + pop {r3-r7, pc} +_0201A976: + add r0, r1, #0x0 + sub r0, r0, #0x4 + add r2, r2, r0 + add r0, r1, #0x0 + mov r7, #0x0 + cmp r0, #0x0 + ble _0201A9CE + mov r0, #0x7 + mov r12, r0 +_0201A988: + ldr r4, [sp, #0x0] + mov r5, #0x0 + add r3, r7, #0x0 +_0201A98E: + mov r0, #0x7 + add r6, r4, #0x0 + and r6, r0 + add r1, r4, #0x0 + mov r0, r12 + bic r1, r0 + ldr r0, [sp, #0x8] + mul r1, r0 + add r0, r6, #0x0 + orr r0, r1 + lsl r0, r0, #0x2 + add r1, r7, r0 + ldr r0, [sp, #0xc] + cmp r1, r0 + bge _0201A9B6 + sub r0, r2, r1 + ldr r1, [r0, #0x0] + sub r0, r2, r3 + str r1, [r0, #0x0] + b _0201A9BC +_0201A9B6: + ldr r0, [sp, #0x4] + sub r1, r2, r3 + str r0, [r1, #0x0] +_0201A9BC: + add r5, r5, #0x1 + add r4, r4, #0x1 + add r3, r3, #0x4 + cmp r5, #0x8 + blt _0201A98E + ldr r0, [sp, #0xc] + add r7, #0x20 + cmp r7, r0 + blt _0201A988 +_0201A9CE: + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201A9D4 +FUN_0201A9D4: ; 0x0201A9D4 + push {r3-r7, lr} + sub sp, #0x20 + add r6, r3, #0x0 + add r4, r0, #0x0 + str r2, [sp, #0x0] + lsl r2, r6, #0x18 + lsl r0, r6, #0x10 + orr r0, r2 + ldrb r2, [r4, #0x7] + ldr r3, [r4, #0xc] + lsl r5, r6, #0x8 + orr r0, r5 + ldrb r4, [r4, #0x8] + str r2, [sp, #0x10] + orr r0, r6 + mul r2, r4 + lsl r2, r2, #0x6 + str r2, [sp, #0x1c] + cmp r1, #0x3 + bls _0201A9FE + b _0201AB04 +_0201A9FE: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0201AA0A: ; jump table (using 16-bit offset) + .short _0201AA12 - _0201AA0A - 2; case 0 + .short _0201AA80 - _0201AA0A - 2; case 1 + .short _0201AB04 - _0201AA0A - 2; case 2 + .short _0201AB04 - _0201AA0A - 2; case 3 +_0201AA12: + mov r1, #0x0 + str r1, [sp, #0xc] + add r1, r2, #0x0 + cmp r1, #0x0 + ble _0201AB04 + add r1, r1, #0x4 + str r1, [sp, #0x14] + mov r1, #0x7 + mov lr, r1 +_0201AA24: + ldr r4, [sp, #0x0] + ldr r5, [sp, #0xc] + mov r7, #0x0 +_0201AA2A: + mov r1, #0x7 + add r6, r4, #0x0 + and r6, r1 + add r2, r4, #0x0 + mov r1, lr + bic r2, r1 + ldr r1, [sp, #0x10] + mul r2, r1 + add r1, r6, #0x0 + orr r1, r2 + lsl r2, r1, #0x3 + ldr r1, [sp, #0xc] + add r1, r1, r2 + ldr r2, [sp, #0x1c] + cmp r1, r2 + bge _0201AA50 + ldr r2, [r3, r1] + str r2, [r3, r5] + b _0201AA52 +_0201AA50: + str r0, [r3, r5] +_0201AA52: + add r2, r1, #0x4 + ldr r1, [sp, #0x14] + cmp r2, r1 + bge _0201AA62 + ldr r2, [r3, r2] + add r1, r5, #0x4 + str r2, [r3, r1] + b _0201AA66 +_0201AA62: + add r1, r5, #0x4 + str r0, [r3, r1] +_0201AA66: + add r7, r7, #0x1 + add r4, r4, #0x1 + add r5, #0x8 + cmp r7, #0x8 + blt _0201AA2A + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x1c] + add r2, #0x40 + str r2, [sp, #0xc] + cmp r2, r1 + blt _0201AA24 + add sp, #0x20 + pop {r3-r7, pc} +_0201AA80: + add r1, r2, #0x0 + sub r1, #0x8 + add r3, r3, r1 + mov r1, #0x0 + str r1, [sp, #0x8] + add r1, r2, #0x0 + cmp r1, #0x0 + ble _0201AB04 +_0201AA90: + mov r1, #0x0 + str r1, [sp, #0x4] + ldr r1, [sp, #0x1c] + ldr r5, [sp, #0x0] + sub r1, r1, #0x4 + str r1, [sp, #0x18] + mov r1, #0x7 + ldr r4, [sp, #0x8] + mov r12, r1 +_0201AAA2: + mov r1, #0x7 + add r6, r5, #0x0 + and r6, r1 + add r2, r5, #0x0 + mov r1, r12 + bic r2, r1 + ldr r1, [sp, #0x10] + mul r2, r1 + add r1, r6, #0x0 + orr r1, r2 + lsl r2, r1, #0x3 + ldr r1, [sp, #0x8] + add r6, r1, r2 + ldr r1, [sp, #0x1c] + cmp r6, r1 + bge _0201AACC + sub r1, r3, r6 + ldr r2, [r1, #0x0] + sub r1, r3, r4 + str r2, [r1, #0x0] + b _0201AAD0 +_0201AACC: + sub r1, r3, r4 + str r0, [r1, #0x0] +_0201AAD0: + ldr r1, [sp, #0x18] + sub r2, r6, #0x4 + cmp r2, r1 + bge _0201AAE4 + sub r1, r3, r2 + sub r2, r4, #0x4 + ldr r1, [r1, #0x0] + sub r2, r3, r2 + str r1, [r2, #0x0] + b _0201AAEA +_0201AAE4: + sub r1, r4, #0x4 + sub r1, r3, r1 + str r0, [r1, #0x0] +_0201AAEA: + ldr r1, [sp, #0x4] + add r5, r5, #0x1 + add r1, r1, #0x1 + add r4, #0x8 + str r1, [sp, #0x4] + cmp r1, #0x8 + blt _0201AAA2 + ldr r2, [sp, #0x8] + ldr r1, [sp, #0x1c] + add r2, #0x40 + str r2, [sp, #0x8] + cmp r2, r1 + blt _0201AA90 +_0201AB04: + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start FUN_0201AB08 +FUN_0201AB08: ; 0x0201AB08 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_0201AB0C +FUN_0201AB0C: ; 0x0201AB0C + ldrb r0, [r0, #0x7] + bx lr + + thumb_func_start FUN_0201AB10 +FUN_0201AB10: ; 0x0201AB10 + ldrb r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_0201AB14 +FUN_0201AB14: ; 0x0201AB14 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start FUN_0201AB18 +FUN_0201AB18: ; 0x0201AB18 + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start FUN_0201AB1C +FUN_0201AB1C: ; 0x0201AB1C + strb r1, [r0, #0x5] + bx lr + + thumb_func_start FUN_0201AB20 +FUN_0201AB20: ; 0x0201AB20 + strb r1, [r0, #0x6] + bx lr + + thumb_func_start FUN_0201AB24 +FUN_0201AB24: ; 0x0201AB24 + strb r1, [r0, #0x9] + bx lr + + thumb_func_start FUN_0201AB28 +FUN_0201AB28: ; 0x0201AB28 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl FUN_020161A4 + add r1, sp, #0x0 + str r0, [r4, #0x0] + bl FUN_020B0030 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_0201AB44 +FUN_0201AB44: ; 0x0201AB44 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl FUN_020161A4 + add r1, sp, #0x0 + str r0, [r4, #0x0] + bl FUN_020B0138 + ldr r0, [sp, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_0201AB60 +FUN_0201AB60: ; 0x0201AB60 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_0201AC78 + add r0, r4, #0x0 + bl FUN_0201AB78 + mov r0, #0x0 + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201AB78 +FUN_0201AB78: ; 0x0201AB78 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x6] + mov r0, #0x1 + tst r0, r1 + beq _0201AB92 + ldr r2, [r4, #0x10] + ldr r1, [r4, #0x8] + ldr r3, [r4, #0xc] + mov r0, #0x0 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201AB92: + ldrh r1, [r4, #0x6] + mov r0, #0x2 + tst r0, r1 + beq _0201ABA8 + ldr r2, [r4, #0x3c] + ldr r1, [r4, #0x34] + ldr r3, [r4, #0x38] + mov r0, #0x1 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201ABA8: + ldrh r1, [r4, #0x6] + mov r0, #0x4 + tst r0, r1 + beq _0201ABBE + ldr r2, [r4, #0x68] + ldr r1, [r4, #0x60] + ldr r3, [r4, #0x64] + mov r0, #0x2 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201ABBE: + ldrh r1, [r4, #0x6] + mov r0, #0x8 + tst r0, r1 + beq _0201ABE0 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0x94 + add r3, r4, #0x0 + add r1, #0x8c + ldr r2, [r2, #0x0] + add r3, #0x90 + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x3 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201ABE0: + ldrh r1, [r4, #0x6] + mov r0, #0x10 + tst r0, r1 + beq _0201AC02 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0xc0 + add r3, r4, #0x0 + add r1, #0xb8 + ldr r2, [r2, #0x0] + add r3, #0xbc + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x4 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201AC02: + ldrh r1, [r4, #0x6] + mov r0, #0x20 + tst r0, r1 + beq _0201AC24 + add r2, r4, #0x0 + add r1, r4, #0x0 + add r2, #0xec + add r3, r4, #0x0 + add r1, #0xe4 + ldr r2, [r2, #0x0] + add r3, #0xe8 + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x0] + mov r0, #0x5 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201AC24: + ldrh r0, [r4, #0x6] + mov r3, #0x40 + tst r0, r3 + beq _0201AC44 + add r2, r3, #0x0 + add r1, r3, #0x0 + add r2, #0xd8 + add r1, #0xd0 + ldr r2, [r4, r2] + add r3, #0xd4 + ldr r1, [r4, r1] + ldr r3, [r4, r3] + mov r0, #0x6 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201AC44: + ldrh r0, [r4, #0x6] + mov r3, #0x80 + tst r0, r3 + beq _0201AC64 + add r2, r3, #0x0 + add r1, r3, #0x0 + add r2, #0xc4 + add r1, #0xbc + ldr r2, [r4, r2] + add r3, #0xc0 + ldr r1, [r4, r1] + ldr r3, [r4, r3] + mov r0, #0x7 + lsl r2, r2, #0x1 + bl FUN_02017D68 +_0201AC64: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201AC68 +FUN_0201AC68: ; 0x0201AC68 + ldrh r3, [r0, #0x6] + mov r2, #0x1 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strh r1, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start FUN_0201AC78 +FUN_0201AC78: ; 0x0201AC78 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0x0 + ldrh r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201AC9E + ldr r1, [r4, #0x14] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x18] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEB4 ; =0x04000010 + str r1, [r0, #0x0] +_0201AC9E: + ldrh r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201ACBE + ldr r1, [r4, #0x40] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x44] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEB8 ; =0x04000014 + str r1, [r0, #0x0] +_0201ACBE: + ldrh r1, [r4, #0x4] + mov r0, #0x4 + tst r0, r1 + beq _0201AD1E + add r0, r4, #0x0 + add r0, #0x74 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201ACEA + ldr r1, [r4, #0x6c] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + ldr r1, [r4, #0x70] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEBC ; =0x04000018 + str r1, [r0, #0x0] + b _0201AD1E +_0201ACEA: + mov r0, #0x2 + str r0, [sp, #0x0] + add r1, r4, #0x0 + add r1, #0x78 + add r3, r4, #0x0 + add r3, #0x80 + ldrh r1, [r1, #0x0] + ldr r2, [r4, #0x7c] + ldr r3, [r3, #0x0] + add r0, sp, #0x38 + bl FUN_0201BB74 + ldr r0, [r4, #0x6c] + add r2, r4, #0x0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x70] + add r3, r4, #0x0 + str r0, [sp, #0x4] + add r2, #0x84 + add r3, #0x88 + ldr r0, _0201AEC0 ; =0x04000020 + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r1, sp, #0x38 + bl G2x_SetBGyAffine_ +_0201AD1E: + ldrh r1, [r4, #0x4] + mov r0, #0x8 + tst r0, r1 + beq _0201AD8E + add r0, r4, #0x0 + add r0, #0xa0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201AD4E + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0x98 + add r2, #0x9c + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AEC4 ; =0x0400001C + str r1, [r0, #0x0] + b _0201AD8E +_0201AD4E: + mov r0, #0x2 + add r1, r4, #0x0 + str r0, [sp, #0x0] + add r1, #0xa4 + add r2, r4, #0x0 + add r3, r4, #0x0 + add r2, #0xa8 + add r3, #0xac + ldrh r1, [r1, #0x0] + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r0, sp, #0x28 + bl FUN_0201BB74 + add r0, r4, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + add r2, r4, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + add r0, #0x9c + ldr r0, [r0, #0x0] + add r3, r4, #0x0 + str r0, [sp, #0x4] + add r2, #0xb0 + add r3, #0xb4 + ldr r0, _0201AEC8 ; =0x04000030 + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + add r1, sp, #0x28 + bl G2x_SetBGyAffine_ +_0201AD8E: + ldrh r1, [r4, #0x4] + mov r0, #0x10 + tst r0, r1 + beq _0201ADB2 + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0xc4 + add r2, #0xc8 + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AECC ; =0x04001010 + str r1, [r0, #0x0] +_0201ADB2: + ldrh r1, [r4, #0x4] + mov r0, #0x20 + tst r0, r1 + beq _0201ADD6 + add r0, r4, #0x0 + add r2, r4, #0x0 + add r0, #0xf0 + add r2, #0xf4 + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + ldr r1, _0201AEB0 ; =0x000001FF + lsl r2, r2, #0x10 + and r0, r1 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AED0 ; =0x04001014 + str r1, [r0, #0x0] +_0201ADD6: + ldrh r0, [r4, #0x4] + mov r3, #0x40 + tst r0, r3 + beq _0201AE3E + add r0, r3, #0x0 + add r0, #0xe4 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0201AE04 + ldr r1, _0201AEB0 ; =0x000001FF + add r3, #0xdc + add r2, r1, #0x0 + sub r2, #0xdf + ldr r0, [r4, r3] + ldr r2, [r4, r2] + and r0, r1 + lsl r2, r2, #0x10 + lsl r1, r1, #0x10 + and r1, r2 + orr r1, r0 + ldr r0, _0201AED4 ; =0x04001018 + str r1, [r0, #0x0] + b _0201AE3E +_0201AE04: + mov r0, #0x2 + add r1, r3, #0x0 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r1, #0xe8 + add r2, #0xec + add r3, #0xf0 + ldrh r1, [r4, r1] + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r0, sp, #0x18 + bl FUN_0201BB74 + mov r3, #0x47 + lsl r3, r3, #0x2 + ldr r0, [r4, r3] + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r3, #0x4 + ldr r0, [r4, r0] + add r2, #0x18 + str r0, [sp, #0x4] + add r3, #0x1c + ldr r0, _0201AED8 ; =0x04001020 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r1, sp, #0x18 + bl G2x_SetBGyAffine_ +_0201AE3E: + ldrh r0, [r4, #0x4] + mov r3, #0x80 + tst r0, r3 + beq _0201AEAC + add r0, r3, #0x0 + add r0, #0xd0 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0201AE72 + add r3, #0xc8 + ldr r1, [r4, r3] + ldr r0, _0201AEB0 ; =0x000001FF + add r2, r1, #0x0 + add r1, r0, #0x0 + sub r1, #0xb3 + ldr r1, [r4, r1] + and r2, r0 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + ldr r0, _0201AEDC ; =0x0400101C + add sp, #0x48 + str r1, [r0, #0x0] + pop {r4, pc} +_0201AE72: + mov r0, #0x2 + add r1, r3, #0x0 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r1, #0xd4 + add r2, #0xd8 + add r3, #0xdc + ldrh r1, [r4, r1] + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r0, sp, #0x8 + bl FUN_0201BB74 + mov r3, #0x52 + lsl r3, r3, #0x2 + ldr r0, [r4, r3] + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r3, #0x4 + ldr r0, [r4, r0] + add r2, #0x18 + str r0, [sp, #0x4] + add r3, #0x1c + ldr r0, _0201AEE0 ; =0x04001030 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + add r1, sp, #0x8 + bl G2x_SetBGyAffine_ +_0201AEAC: + add sp, #0x48 + pop {r4, pc} + .balign 4 +_0201AEB0: .word 0x000001FF +_0201AEB4: .word 0x04000010 +_0201AEB8: .word 0x04000014 +_0201AEBC: .word 0x04000018 +_0201AEC0: .word 0x04000020 +_0201AEC4: .word 0x0400001C +_0201AEC8: .word 0x04000030 +_0201AECC: .word 0x04001010 +_0201AED0: .word 0x04001014 +_0201AED4: .word 0x04001018 +_0201AED8: .word 0x04001020 +_0201AEDC: .word 0x0400101C +_0201AEE0: .word 0x04001030 + + thumb_func_start FUN_0201AEE4 +FUN_0201AEE4: ; 0x0201AEE4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl FUN_02017B8C + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start FUN_0201AF08 +FUN_0201AF08: ; 0x0201AF08 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl FUN_0201AF2C + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start FUN_0201AF2C +FUN_0201AF2C: ; 0x0201AF2C + cmp r1, #0x0 + beq _0201AF3A + cmp r1, #0x1 + beq _0201AF3E + cmp r1, #0x2 + beq _0201AF46 + bx lr +_0201AF3A: + strh r2, [r0, #0x18] + bx lr +_0201AF3E: + ldrh r1, [r0, #0x18] + add r1, r1, r2 + strh r1, [r0, #0x18] + bx lr +_0201AF46: + ldrh r1, [r0, #0x18] + sub r1, r1, r2 + strh r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start FUN_0201AF50 +FUN_0201AF50: ; 0x0201AF50 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + mov r0, #0x2c + add r1, #0x8 + mul r0, r4 + add r0, r1, r0 + add r1, r2, #0x0 + add r2, r3, #0x0 + bl FUN_0201AF74 + mov r0, #0x1 + ldrh r1, [r5, #0x4] + lsl r0, r4 + orr r0, r1 + strh r0, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start FUN_0201AF74 +FUN_0201AF74: ; 0x0201AF74 + sub r1, #0x9 + cmp r1, #0x5 + bhi _0201AFB8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0201AF86: ; jump table (using 16-bit offset) + .short _0201AF92 - _0201AF86 - 2; case 0 + .short _0201AF96 - _0201AF86 - 2; case 1 + .short _0201AF9E - _0201AF86 - 2; case 2 + .short _0201AFA6 - _0201AF86 - 2; case 3 + .short _0201AFAA - _0201AF86 - 2; case 4 + .short _0201AFB2 - _0201AF86 - 2; case 5 +_0201AF92: + str r2, [r0, #0x24] + bx lr +_0201AF96: + ldr r1, [r0, #0x24] + add r1, r1, r2 + str r1, [r0, #0x24] + bx lr +_0201AF9E: + ldr r1, [r0, #0x24] + sub r1, r1, r2 + str r1, [r0, #0x24] + bx lr +_0201AFA6: + str r2, [r0, #0x28] + bx lr +_0201AFAA: + ldr r1, [r0, #0x28] + add r1, r1, r2 + str r1, [r0, #0x28] + bx lr +_0201AFB2: + ldr r1, [r0, #0x28] + sub r1, r1, r2 + str r1, [r0, #0x28] +_0201AFB8: + bx lr + .balign 4 + + thumb_func_start FUN_0201AFBC +FUN_0201AFBC: ; 0x0201AFBC + push {r4-r7, lr} + sub sp, #0x1c + str r1, [sp, #0x0] + add r7, r0, #0x0 + str r2, [sp, #0x4] + ldr r0, [sp, #0x30] + str r3, [sp, #0x8] + str r0, [sp, #0x30] + ldr r0, [sp, #0x0] + add r4, r7, #0x0 + mov r1, #0x2c + add r5, r0, #0x0 + mul r5, r1 + add r4, #0x8 + ldr r0, [r4, r5] + cmp r0, #0x0 + bne _0201AFE4 + add sp, #0x1c + mov r0, #0x0 + pop {r4-r7, pc} +_0201AFE4: + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + add r2, r7, r5 + lsl r0, r0, #0x15 + lsl r1, r1, #0x15 + ldrb r2, [r2, #0x1d] + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + bl FUN_02017FFC + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + bl FUN_020187B0 + str r0, [sp, #0x18] + ldr r1, [sp, #0x4] + mov r0, #0x7 + and r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldr r1, [sp, #0x8] + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r7, r5 + str r0, [sp, #0x10] + ldrb r0, [r1, #0x1e] + cmp r0, #0x0 + bne _0201B096 + ldr r0, [r4, r5] + mov r1, #0x40 + str r0, [sp, #0xc] + ldr r0, [r7, #0x0] + bl FUN_020169D8 + add r4, r0, #0x0 + lsl r0, r6, #0x1 + ldr r1, [sp, #0xc] + mov r12, r0 + ldrh r0, [r1, r0] + mov r3, #0x0 + mov r6, #0xf + lsl r0, r0, #0x16 + lsr r1, r0, #0x11 + ldr r0, [sp, #0x18] + add r2, r0, r1 +_0201B042: + ldrb r5, [r2, r3] + lsl r0, r3, #0x1 + add r1, r4, r0 + and r5, r6 + strb r5, [r4, r0] + ldrb r0, [r2, r3] + asr r0, r0, #0x4 + strb r0, [r1, #0x1] + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x20 + blo _0201B042 + ldr r2, [sp, #0xc] + mov r1, r12 + ldrh r1, [r2, r1] + add r0, r7, #0x0 + asr r2, r1, #0xa + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r4, #0x0 + bl FUN_0201B118 + ldr r0, [sp, #0x10] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x14] + add r0, r0, r1 + ldrb r5, [r4, r0] + add r0, r4, #0x0 + bl FUN_02016A18 + ldr r0, [sp, #0x30] + ldrh r2, [r0, #0x0] + mov r0, #0x1 + add r1, r0, #0x0 + lsl r1, r5 + tst r1, r2 + beq _0201B10C + add sp, #0x1c + pop {r4-r7, pc} +_0201B096: + ldrb r0, [r1, #0x1c] + cmp r0, #0x1 + beq _0201B0E0 + ldr r0, [r7, #0x0] + ldr r4, [r4, r5] + mov r1, #0x40 + bl FUN_020169D8 + lsl r6, r6, #0x1 + ldrh r1, [r4, r6] + add r5, r0, #0x0 + lsl r1, r1, #0x16 + lsr r2, r1, #0x10 + ldr r1, [sp, #0x18] + add r1, r1, r2 + mov r2, #0x40 + bl memcpy + ldrh r1, [r4, r6] + add r0, r7, #0x0 + asr r2, r1, #0xa + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r5, #0x0 + bl FUN_0201B118 + ldr r0, [sp, #0x10] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x14] + add r0, r0, r1 + ldrb r4, [r5, r0] + add r0, r5, #0x0 + bl FUN_02016A18 + b _0201B0F4 +_0201B0E0: + ldr r1, [r4, r5] + ldr r0, [sp, #0x10] + ldrb r1, [r1, r6] + lsl r0, r0, #0x3 + lsl r2, r1, #0x6 + ldr r1, [sp, #0x14] + add r1, r1, r2 + add r1, r0, r1 + ldr r0, [sp, #0x18] + ldrb r4, [r0, r1] +_0201B0F4: + ldr r0, [sp, #0x30] + ldrh r2, [r0, #0x0] + lsl r0, r2, #0x18 + lsr r1, r0, #0x18 + ldr r0, _0201B114 ; =0x0000FFFF +_0201B0FE: + cmp r2, r0 + beq _0201B10C + cmp r4, r1 + bne _0201B0FE + add sp, #0x1c + mov r0, #0x1 + pop {r4-r7, pc} +_0201B10C: + mov r0, #0x0 + add sp, #0x1c + pop {r4-r7, pc} + nop +_0201B114: .word 0x0000FFFF + + thumb_func_start FUN_0201B118 +FUN_0201B118: ; 0x0201B118 + push {r3-r7, lr} + str r1, [sp, #0x0] + ldr r1, [sp, #0x0] + add r7, r2, #0x0 + cmp r1, #0x0 + beq _0201B1A4 + ldr r0, [r0, #0x0] + mov r1, #0x40 + bl FUN_020169D8 + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x1 + tst r0, r1 + beq _0201B166 + mov r0, #0x0 + mov r5, #0x7 +_0201B13A: + lsl r3, r0, #0x3 + add r2, r7, r3 + mov r1, #0x0 + add r3, r4, r3 +_0201B142: + sub r6, r5, r1 + ldrb r6, [r2, r6] + strb r6, [r3, r1] + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #0x8 + blo _0201B142 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + blo _0201B13A + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + bl memcpy +_0201B166: + ldr r0, [sp, #0x0] + mov r1, #0x2 + tst r0, r1 + beq _0201B19E + mov r5, #0x0 + mov r6, #0x7 +_0201B172: + lsl r0, r5, #0x3 + add r3, r4, r0 + sub r0, r6, r5 + lsl r0, r0, #0x3 + add r2, r7, r0 + mov r1, #0x8 +_0201B17E: + ldrb r0, [r2, #0x0] + add r2, r2, #0x1 + strb r0, [r3, #0x0] + add r3, r3, #0x1 + sub r1, r1, #0x1 + bne _0201B17E + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x8 + blo _0201B172 + add r0, r7, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + bl memcpy +_0201B19E: + add r0, r4, #0x0 + bl FUN_02016A18 +_0201B1A4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201B1A8 +FUN_0201B1A8: ; 0x0201B1A8 + push {r3-r5, lr} + add r5, r3, #0x0 + add r4, r2, #0x0 + bl FUN_020161A4 + str r0, [r5, #0x0] + bl FUN_020BC0FC + cmp r0, #0x0 + beq _0201B1D2 + bl FUN_0201B254 + cmp r0, #0x0 + bne _0201B1D2 + ldr r0, [r5, #0x0] + ldr r1, [r0, #0x8] + bl DC_FlushRange + ldr r0, [r5, #0x0] + bl FUN_020BB59C +_0201B1D2: + ldr r0, [r5, #0x0] + bl FUN_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201B1E4 +FUN_0201B1E4: ; 0x0201B1E4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + ldr r0, [r5, #0x0] + bl FUN_020BC0FC + cmp r0, #0x0 + beq _0201B20A + bl FUN_0201B254 + cmp r0, #0x0 + bne _0201B20A + ldr r0, [r5, #0x0] + ldr r1, [r0, #0x8] + bl DC_FlushRange + ldr r0, [r5, #0x0] + bl FUN_020BB59C +_0201B20A: + ldr r0, [r5, #0x0] + bl FUN_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201B21C +FUN_0201B21C: ; 0x0201B21C + push {r3-r5, lr} + add r4, r3, #0x0 + add r5, r2, #0x0 + ldr r3, [sp, #0x10] + add r2, r4, #0x0 + bl FUN_0201B1A8 + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + bl FUN_020B80B4 + pop {r3-r5, pc} + + thumb_func_start FUN_0201B234 +FUN_0201B234: ; 0x0201B234 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r2, #0x0 + bl FUN_0201B1E4 + cmp r4, #0x0 + bne _0201B24A + bl ErrorHandling +_0201B24A: + ldr r1, [r4, #0x0] + add r0, r5, #0x0 + bl FUN_020B80B4 + pop {r3-r5, pc} + + thumb_func_start FUN_0201B254 +FUN_0201B254: ; 0x0201B254 + ldrh r2, [r0, #0x10] + mov r1, #0x1 + tst r2, r1 + bne _0201B262 + ldrh r0, [r0, #0x20] + tst r0, r1 + beq _0201B266 +_0201B262: + mov r0, #0x1 + bx lr +_0201B266: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0201B26C +FUN_0201B26C: ; 0x0201B26C + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_020B8474 + ldr r1, _0201B2A0 ; =0x021CEDD4 + add r0, r4, #0x0 + bl MI_Copy36B + ldr r1, _0201B2A4 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + add r0, r6, #0x0 + str r2, [r1, #0x7c] + bl FUN_020B844C + bl FUN_020B849C + add r0, r5, #0x0 + bl FUN_020BAC98 + pop {r4-r6, pc} + nop +_0201B2A0: .word 0x021CEDD4 +_0201B2A4: .word 0x021CED98 + + thumb_func_start FUN_0201B2A8 +FUN_0201B2A8: ; 0x0201B2A8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_020B8474 + ldr r1, _0201B2E4 ; =0x021CEDD4 + add r0, r4, #0x0 + bl MI_Copy36B + ldr r1, _0201B2E8 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + str r2, [r1, #0x7c] + add r0, r6, #0x0 + bl FUN_020B844C + bl FUN_020B849C + mov r1, #0x0 + ldr r0, [r5, #0x4] + add r2, r1, #0x0 + mov r3, #0x1 + bl FUN_020BAFB8 + bl FUN_020BB394 + pop {r4-r6, pc} + .balign 4 +_0201B2E4: .word 0x021CEDD4 +_0201B2E8: .word 0x021CED98 + + thumb_func_start FUN_0201B2EC +FUN_0201B2EC: ; 0x0201B2EC + push {r3, lr} + sub sp, #0x8 + mov r1, #0x4 + str r1, [sp, #0x0] + ldr r1, _0201B30C ; =FUN_0201B314 + mov r2, #0x2 + str r1, [sp, #0x4] + mov r1, #0x0 + add r3, r1, #0x0 + bl FUN_02022318 + ldr r1, _0201B310 ; =0x021C4D44 + str r0, [r1, #0x0] + add sp, #0x8 + pop {r3, pc} + nop +_0201B30C: .word FUN_0201B314 +_0201B310: .word 0x021C4D44 + + thumb_func_start FUN_0201B314 +FUN_0201B314: ; 0x0201B314 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_0201E6E4 + ldr r0, _0201B380 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _0201B384 ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0, #0x0] + add r2, r1, #0x2 + ldrh r3, [r0, #0x0] + add r1, r1, #0x2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0, #0x0] + ldrh r3, [r0, #0x0] + ldr r2, _0201B388 ; =0x0000CFFB + and r3, r2 + strh r3, [r0, #0x0] + ldrh r3, [r0, #0x0] + sub r2, #0x1c + and r3, r1 + mov r1, #0x8 + orr r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl G3X_SetFog + mov r0, #0x0 + ldr r2, _0201B38C ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + bl G3X_SetClearColor + ldr r1, _0201B390 ; =0xBFFF0000 + ldr r0, _0201B394 ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0201B380: .word 0x04000008 +_0201B384: .word 0xFFFFCFFD +_0201B388: .word 0x0000CFFB +_0201B38C: .word 0x00007FFF +_0201B390: .word 0xBFFF0000 +_0201B394: .word 0x04000580 + + thumb_func_start FUN_0201B398 +FUN_0201B398: ; 0x0201B398 + ldr r0, _0201B3A0 ; =0x021C4D44 + ldr r3, _0201B3A4 ; =FUN_020223BC + ldr r0, [r0, #0x0] + bx r3 + .balign 4 +_0201B3A0: .word 0x021C4D44 +_0201B3A4: .word FUN_020223BC + + thumb_func_start FUN_0201B3A8 +FUN_0201B3A8: ; 0x0201B3A8 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_020BC13C + cmp r4, #0x0 + beq _0201B3BE + add r1, r4, #0x0 + bl FUN_020B7790 + mov r0, #0x1 + pop {r4, pc} +_0201B3BE: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201B3C4 +FUN_0201B3C4: ; 0x0201B3C4 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + bne _0201B3D2 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B3D2: + mov r1, #0x0 + str r1, [r5, #0x8] + mov r1, #0x1 + str r1, [sp, #0x8] + str r1, [sp, #0x4] + str r1, [sp, #0x0] + cmp r5, #0x0 + beq _0201B4D0 + bl FUN_020B7E1C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7E10 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7CE4 + str r0, [sp, #0xc] + cmp r6, #0x0 + beq _0201B412 + ldr r3, _0201B4D8 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r0, r6, #0x0 + add r2, r1, #0x0 + blx r3 + add r7, r0, #0x0 + bne _0201B414 + mov r0, #0x0 + str r0, [sp, #0x8] + b _0201B414 +_0201B412: + mov r7, #0x0 +_0201B414: + cmp r4, #0x0 + beq _0201B42E + ldr r3, _0201B4D8 ; =0x021064B8 + add r0, r4, #0x0 + ldr r3, [r3, #0x0] + mov r1, #0x1 + mov r2, #0x0 + blx r3 + add r6, r0, #0x0 + bne _0201B430 + mov r0, #0x0 + str r0, [sp, #0x4] + b _0201B430 +_0201B42E: + mov r6, #0x0 +_0201B430: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + beq _0201B450 + ldr r3, _0201B4DC ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + mov r2, #0x0 + blx r3 + add r4, r0, #0x0 + bne _0201B452 + mov r0, #0x0 + str r0, [sp, #0x0] + b _0201B452 +_0201B450: + mov r4, #0x0 +_0201B452: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _0201B46E + ldr r1, _0201B4E0 ; =0x021064BC + add r0, r7, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B468 + bl ErrorHandling +_0201B468: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B46E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _0201B48A + ldr r1, _0201B4E0 ; =0x021064BC + add r0, r6, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B484 + bl ErrorHandling +_0201B484: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B48A: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _0201B4A6 + ldr r1, _0201B4E4 ; =0x021064C4 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _0201B4A0 + bl ErrorHandling +_0201B4A0: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B4A6: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl FUN_020B7DFC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020B7CDC + ldr r1, [r5, #0x4] + add r0, r5, #0x0 + bl DC_FlushRange + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_020B7D28 + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_020B7C78 +_0201B4D0: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + nop +_0201B4D8: .word 0x021064B8 +_0201B4DC: .word 0x021064C0 +_0201B4E0: .word 0x021064BC +_0201B4E4: .word 0x021064C4 + + thumb_func_start FUN_0201B4E8 +FUN_0201B4E8: ; 0x0201B4E8 + str r0, [r1, #0x0] + add r0, r0, #0x4 + str r0, [r1, #0x8] + str r0, [r1, #0x4] + mov r0, #0x0 + str r0, [r1, #0xc] + str r0, [r1, #0x10] + str r0, [r1, #0x14] + bx lr + .balign 4 + + thumb_func_start FUN_0201B4FC +FUN_0201B4FC: ; 0x0201B4FC + push {r3-r7, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x0] + mov r7, #0x0 + cmp r0, #0x0 + ble _0201B52A + add r4, r7, #0x0 + add r6, r7, #0x0 +_0201B50C: + ldr r1, [r5, #0x24] + add r0, r5, #0x0 + add r1, r1, r4 + bl FUN_0201B4E8 + ldr r0, [r5, #0x24] + add r7, r7, #0x1 + add r1, r0, r4 + ldr r0, [r5, #0x20] + add r4, #0x1c + str r1, [r0, r6] + ldrh r0, [r5, #0x0] + add r6, r6, #0x4 + cmp r7, r0 + blt _0201B50C +_0201B52A: + mov r0, #0x0 + strh r0, [r5, #0x2] + pop {r3-r7, pc} + + thumb_func_start FUN_0201B530 +FUN_0201B530: ; 0x0201B530 + ldrh r3, [r0, #0x2] + ldrh r1, [r0, #0x0] + cmp r3, r1 + bne _0201B53C + mov r0, #0x0 + bx lr +_0201B53C: + ldr r2, [r0, #0x20] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r3, #0x1 + strh r1, [r0, #0x2] + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0201B54C +FUN_0201B54C: ; 0x0201B54C + ldrh r2, [r0, #0x2] + cmp r2, #0x0 + bne _0201B556 + mov r0, #0x0 + bx lr +_0201B556: + str r0, [r1, #0x0] + add r2, r0, #0x4 + str r2, [r1, #0x8] + str r2, [r1, #0x4] + mov r2, #0x0 + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + ldrh r2, [r0, #0x2] + sub r2, r2, #0x1 + strh r2, [r0, #0x2] + ldr r2, [r0, #0x20] + ldrh r0, [r0, #0x2] + lsl r0, r0, #0x2 + str r1, [r2, r0] + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0201B578 +FUN_0201B578: ; 0x0201B578 + lsl r0, r0, #0x5 + add r0, #0x34 + bx lr + .balign 4 + + thumb_func_start FUN_0201B580 +FUN_0201B580: ; 0x0201B580 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bne _0201B58C + bl ErrorHandling +_0201B58C: + add r1, r4, #0x0 + add r1, #0x34 + lsl r0, r5, #0x2 + str r1, [r4, #0x20] + add r0, r1, r0 + str r0, [r4, #0x24] + strh r5, [r4, #0x0] + mov r0, #0x0 + strh r0, [r4, #0x2] + str r0, [r4, #0x28] + add r0, r4, #0x0 + bl FUN_0201B5AC + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201B5AC +FUN_0201B5AC: ; 0x0201B5AC + push {r4, lr} + add r4, r0, #0x0 + bl FUN_0201B4FC + str r4, [r4, #0x4] + add r0, r4, #0x4 + str r0, [r4, #0xc] + str r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + ldr r0, [r4, #0xc] + str r0, [r4, #0x2c] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201B5CC +FUN_0201B5CC: ; 0x0201B5CC + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x28] + cmp r0, #0x0 + bne _0201B608 + ldr r1, [r5, #0xc] + add r4, r5, #0x4 + str r1, [r5, #0x2c] + cmp r1, r4 + beq _0201B604 + mov r6, #0x0 +_0201B5E2: + ldr r0, [r1, #0x8] + str r0, [r5, #0x30] + ldr r0, [r5, #0x2c] + ldr r1, [r0, #0x18] + cmp r1, #0x0 + bne _0201B5FA + ldr r2, [r0, #0x14] + cmp r2, #0x0 + beq _0201B5FC + ldr r1, [r0, #0x10] + blx r2 + b _0201B5FC +_0201B5FA: + str r6, [r0, #0x18] +_0201B5FC: + ldr r1, [r5, #0x30] + str r1, [r5, #0x2c] + cmp r1, r4 + bne _0201B5E2 +_0201B604: + mov r0, #0x0 + str r0, [r1, #0x14] +_0201B608: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201B60C +FUN_0201B60C: ; 0x0201B60C + push {r3-r5, lr} + add r4, r0, #0x0 + mov r5, #0x1 + str r5, [r4, #0x28] + bl FUN_0201B620 + mov r1, #0x0 + str r1, [r4, #0x28] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201B620 +FUN_0201B620: ; 0x0201B620 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl FUN_0201B530 + cmp r0, #0x0 + bne _0201B636 + mov r0, #0x0 + pop {r3-r7, pc} +_0201B636: + str r4, [r0, #0xc] + str r7, [r0, #0x10] + str r6, [r0, #0x14] + ldr r2, [r5, #0x2c] + ldr r1, [r2, #0x14] + cmp r1, #0x0 + beq _0201B656 + ldr r1, [r2, #0xc] + cmp r1, r4 + bhi _0201B650 + mov r1, #0x1 + str r1, [r0, #0x18] + b _0201B65A +_0201B650: + mov r1, #0x0 + str r1, [r0, #0x18] + b _0201B65A +_0201B656: + mov r1, #0x0 + str r1, [r0, #0x18] +_0201B65A: + ldr r3, [r5, #0xc] + add r2, r5, #0x4 + cmp r3, r2 + beq _0201B686 + ldr r4, [r0, #0xc] +_0201B664: + ldr r1, [r3, #0xc] + cmp r1, r4 + bls _0201B680 + ldr r1, [r3, #0x4] + str r1, [r0, #0x4] + str r3, [r0, #0x8] + ldr r1, [r3, #0x4] + str r0, [r1, #0x8] + str r0, [r3, #0x4] + ldr r1, [r5, #0x30] + cmp r3, r1 + bne _0201B69E + str r0, [r5, #0x30] + pop {r3-r7, pc} +_0201B680: + ldr r3, [r3, #0x8] + cmp r3, r2 + bne _0201B664 +_0201B686: + ldr r2, [r5, #0x30] + add r1, r5, #0x4 + cmp r2, r1 + bne _0201B690 + str r0, [r5, #0x30] +_0201B690: + ldr r1, [r5, #0x8] + str r1, [r0, #0x4] + add r1, r5, #0x4 + str r1, [r0, #0x8] + ldr r1, [r5, #0x8] + str r0, [r1, #0x8] + str r0, [r5, #0x8] +_0201B69E: + pop {r3-r7, pc} + + thumb_func_start FUN_0201B6A0 +FUN_0201B6A0: ; 0x0201B6A0 + add r1, r0, #0x0 + ldr r2, [r1, #0x0] + ldr r0, [r2, #0x30] + cmp r0, r1 + bne _0201B6AE + ldr r0, [r1, #0x8] + str r0, [r2, #0x30] +_0201B6AE: + ldr r2, [r1, #0x8] + ldr r0, [r1, #0x4] + ldr r3, _0201B6C0 ; =0x0201B54D + str r2, [r0, #0x8] + ldr r2, [r1, #0x4] + ldr r0, [r1, #0x8] + str r2, [r0, #0x4] + ldr r0, [r1, #0x0] + bx r3 + .balign 4 +_0201B6C0: .word 0x0201B54D + + thumb_func_start FUN_0201B6C4 +FUN_0201B6C4: ; 0x0201B6C4 + str r1, [r0, #0x14] + bx lr + + thumb_func_start FUN_0201B6C8 +FUN_0201B6C8: ; 0x0201B6C8 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start FUN_0201B6CC +FUN_0201B6CC: ; 0x0201B6CC + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start FUN_0201B6D0 +FUN_0201B6D0: ; 0x0201B6D0 + push {r4-r7, lr} + sub sp, #0x34 + add r6, r1, #0x0 + add r4, r0, #0x0 + add r5, r2, #0x0 + ldmia r6!, {r0-r1} + add r2, sp, #0x1c + stmia r2!, {r0-r1} + ldr r0, [r6, #0x0] + add r4, #0x14 + str r0, [r2, #0x0] + mov r0, #0x20 + ldrsh r0, [r4, r0] + add r7, r3, #0x0 + mov r1, #0x1a + str r0, [sp, #0x0] + mov r0, #0x22 + ldrsh r0, [r4, r0] + mov r2, #0x1c + mov r3, #0x1e + str r0, [sp, #0x4] + add r0, sp, #0x28 + str r0, [sp, #0x8] + mov r0, #0x18 + ldrsh r0, [r4, r0] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + bl FUN_0201B808 + add r0, sp, #0x1c + bl FUN_020B8474 + ldr r1, _0201B764 ; =0x021CEDD4 + add r0, r5, #0x0 + bl MI_Copy36B + ldr r1, _0201B768 ; =0x021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + add r0, r7, #0x0 + str r2, [r1, #0x7c] + bl FUN_020B844C + bl FUN_020B849C + mov r1, #0x0 + mov r0, #0x11 + add r2, r1, #0x0 + bl FUN_020BB1C0 + ldr r0, [r4, #0x24] + add r1, sp, #0x10 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 + add r0, sp, #0x28 + bl FUN_0201B82C + add r4, r0, #0x0 + mov r2, #0x1 + mov r0, #0x12 + add r1, sp, #0xc + str r2, [sp, #0xc] + bl FUN_020BB1C0 + add r0, r4, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + .balign 4 +_0201B764: .word 0x021CEDD4 +_0201B768: .word 0x021CED98 + + thumb_func_start FUN_0201B76C +FUN_0201B76C: ; 0x0201B76C + push {r3-r5, lr} + sub sp, #0x28 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x2 + ldrsh r0, [r4, r0] + str r0, [sp, #0x0] + mov r0, #0x4 + ldrsh r0, [r4, r0] + str r0, [sp, #0x4] + add r0, sp, #0x1c + str r0, [sp, #0x8] + mov r0, #0x0 + ldrsh r3, [r4, r0] + add r1, r0, #0x0 + add r2, r0, #0x0 + bl FUN_0201B808 + add r0, r5, #0x0 + bl FUN_020B8474 + bl FUN_020B849C + mov r1, #0x0 + mov r0, #0x11 + add r2, r1, #0x0 + bl FUN_020BB1C0 + ldr r0, [r4, #0x10] + lsl r2, r0, #0xc + ldr r0, [r4, #0xc] + lsl r1, r0, #0xc + ldr r0, [r4, #0x8] + lsl r0, r0, #0xc + str r0, [sp, #0x10] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + mov r0, #0x1b + add r1, sp, #0x10 + mov r2, #0x3 + bl FUN_020BB1C0 + add r0, sp, #0x1c + bl FUN_0201B82C + add r4, r0, #0x0 + mov r2, #0x1 + mov r0, #0x12 + add r1, sp, #0xc + str r2, [sp, #0xc] + bl FUN_020BB1C0 + add r0, r4, #0x0 + add sp, #0x28 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201B7DC +FUN_0201B7DC: ; 0x0201B7DC + push {r4-r6, lr} + add r6, r3, #0x0 + add r4, r2, #0x0 + add r2, r6, #0x0 + add r5, r1, #0x0 + add r1, r6, #0x0 + add r2, #0x8 + bl FUN_0201B880 + add r2, r6, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x2 + add r2, #0xc + bl FUN_0201B880 + add r1, r6, #0x4 + add r6, #0x10 + add r0, r4, #0x0 + add r2, r6, #0x0 + bl FUN_0201B880 + pop {r4-r6, pc} + + thumb_func_start FUN_0201B808 +FUN_0201B808: ; 0x0201B808 + push {r3-r4} + ldr r4, [sp, #0x10] + strh r0, [r4, #0x0] + strh r1, [r4, #0x2] + ldr r1, _0201B828 ; =0xFFFFFFF8 + strh r2, [r4, #0x4] + strh r3, [r4, #0x6] + add r1, sp + mov r0, #0x10 + ldrsh r0, [r1, r0] + strh r0, [r4, #0x8] + mov r0, #0x14 + ldrsh r0, [r1, r0] + strh r0, [r4, #0xa] + pop {r3-r4} + bx lr + .balign 4 +_0201B828: .word 0xFFFFFFF8 + + thumb_func_start FUN_0201B82C +FUN_0201B82C: ; 0x0201B82C + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, _0201B87C ; =0x000030C1 + mov r2, #0x1 + str r0, [sp, #0x4] + mov r0, #0x29 + add r1, sp, #0x4 + str r2, [sp, #0x8] + bl FUN_020BB1C0 + mov r0, #0x0 + str r0, [sp, #0x0] + mov r0, #0x40 + add r1, sp, #0x0 + mov r2, #0x1 + bl FUN_020BB1C0 + mov r1, #0x0 + mov r0, #0x41 + add r2, r1, #0x0 + bl FUN_020BB1C0 + mov r0, #0x70 + add r1, r4, #0x0 + mov r2, #0x3 + bl FUN_020BB1C0 + bl FUN_020BB394 + add r4, sp, #0x8 +_0201B86A: + add r0, r4, #0x0 + bl G3X_GetBoxTestResult + cmp r0, #0x0 + bne _0201B86A + ldr r0, [sp, #0x8] + add sp, #0xc + pop {r3-r4, pc} + nop +_0201B87C: .word 0x000030C1 + + thumb_func_start FUN_0201B880 +FUN_0201B880: ; 0x0201B880 + push {r3-r4} + ldr r4, _0201B8B4 ; =0x00007FFF + mov r3, #0x0 + cmp r0, r4 + blo _0201B896 +_0201B88A: + add r3, r3, #0x1 + lsl r3, r3, #0x18 + lsr r0, r0, #0x1 + lsr r3, r3, #0x18 + cmp r0, r4 + bhs _0201B88A +_0201B896: + strh r0, [r1, #0x0] + mov r0, #0x1 + mov r1, #0x0 + str r0, [r2, #0x0] + cmp r3, #0x0 + ble _0201B8AE +_0201B8A2: + ldr r0, [r2, #0x0] + add r1, r1, #0x1 + lsl r0, r0, #0x1 + str r0, [r2, #0x0] + cmp r1, r3 + blt _0201B8A2 +_0201B8AE: + pop {r3-r4} + bx lr + nop +_0201B8B4: .word 0x00007FFF + + thumb_func_start FUN_0201B8B8 +FUN_0201B8B8: ; 0x0201B8B8 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0201B8DC ; =0x0000FFFE + cmp r1, r0 + beq _0201B8C8 + bl ErrorHandling +_0201B8C8: + ldrh r1, [r4, #0x0] + ldr r0, _0201B8DC ; =0x0000FFFE + cmp r1, r0 + bne _0201B8D8 + ldrh r0, [r4, #0x4] + add r1, r4, #0x6 + lsl r0, r0, #0x1 + add r4, r1, r0 +_0201B8D8: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_0201B8DC: .word 0x0000FFFE + + thumb_func_start FUN_0201B8E0 +FUN_0201B8E0: ; 0x0201B8E0 + push {r4, lr} + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0201B8F4 ; =0x0000FFFE + cmp r1, r0 + beq _0201B8F0 + bl ErrorHandling +_0201B8F0: + ldrh r0, [r4, #0x2] + pop {r4, pc} + .balign 4 +_0201B8F4: .word 0x0000FFFE + + thumb_func_start FUN_0201B8F8 +FUN_0201B8F8: ; 0x0201B8F8 + push {r3, lr} + bl FUN_0201B8E0 + mov r1, #0xff + lsl r1, r1, #0x8 + and r1, r0 + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r1, r0 + bne _0201B910 + mov r0, #0x1 + pop {r3, pc} +_0201B910: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_0201B914 +FUN_0201B914: ; 0x0201B914 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldrh r1, [r5, #0x0] + ldr r0, _0201B938 ; =0x0000FFFE + cmp r1, r0 + beq _0201B926 + bl ErrorHandling +_0201B926: + ldrh r0, [r5, #0x4] + cmp r4, r0 + blo _0201B930 + bl ErrorHandling +_0201B930: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, #0x6] + pop {r3-r5, pc} + .balign 4 +_0201B938: .word 0x0000FFFE + +; trig.c + + thumb_func_start FUN_0201B93C +FUN_0201B93C: ; 0x0201B93C + mov r1, #0x5a + lsl r1, r1, #0x2 + cmp r0, r1 + blo _0201B948 + mov r0, #0x0 + bx lr +_0201B948: + lsl r1, r0, #0x2 + ldr r0, _0201B950 ; =0x020EDF50 + ldr r0, [r0, r1] + bx lr + .balign 4 +_0201B950: .word 0x020EDF50 + + thumb_func_start FUN_0201B954 +FUN_0201B954: ; 0x0201B954 + mov r1, #0x5a + lsl r1, r1, #0x2 + cmp r0, r1 + blo _0201B960 + mov r0, #0x0 + bx lr +_0201B960: + add r0, #0x5a + lsl r1, r0, #0x2 + ldr r0, _0201B96C ; =0x020EDF50 + ldr r0, [r0, r1] + bx lr + nop +_0201B96C: .word 0x020EDF50 + + thumb_func_start FUN_0201B970 +FUN_0201B970: ; 0x0201B970 + ; gSineTable[x % 360] + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + bl _s32_div_f + ldr r0, _0201B984 ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + nop +_0201B984: .word 0x020EDF50 + + thumb_func_start FUN_0201B988 +FUN_0201B988: ; 0x0201B988 + ; gSineTable[(x % 360) + 90] + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + bl _s32_div_f + add r1, #0x5a + ldr r0, _0201B99C ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0201B99C: .word 0x020EDF50 + + thumb_func_start FUN_0201B9A0 +FUN_0201B9A0: ; 0x0201B9A0 + ; UNK_020EDC7E[x % 360] + push {r3, lr} + mov r1, #0x5a + lsl r1, r1, #0x2 + bl _s32_div_f + ldr r0, _0201B9B4 ; =0x020EDC7E + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + pop {r3, pc} + nop +_0201B9B4: .word 0x020EDC7E + + thumb_func_start FUN_0201B9B8 +FUN_0201B9B8: ; 0x0201B9B8 + ; gSineTable[((x << 4) >> 16) % 360] + push {r3, lr} + lsl r0, r0, #0x4 + mov r1, #0x5a + lsr r0, r0, #0x10 + lsl r1, r1, #0x2 + bl _s32_div_f + ldr r0, _0201B9D0 ; =0x020EDF50 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} + nop +_0201B9D0: .word 0x020EDF50 + +; random.c + + thumb_func_start getseed_LC +getseed_LC: ; 0x0201B9D4 + ldr r0, _0201B9DC ; =0x021C4D48 + ldr r0, [r0, #0x0] + bx lr + nop +_0201B9DC: .word 0x021C4D48 + + thumb_func_start seedr_LC +seedr_LC: ; 0x0201B9E0 + ldr r1, _0201B9E8 ; =0x021C4D48 + str r0, [r1, #0x0] + bx lr + nop +_0201B9E8: .word 0x021C4D48 + + thumb_func_start rand_LC +rand_LC: ; 0x0201B9EC + ldr r1, _0201BA04 ; =0x021C4D48 + ldr r0, _0201BA08 ; =0x41C64E6D + ldr r2, [r1, #0x0] + add r3, r2, #0x0 + mul r3, r0 + ldr r0, _0201BA0C ; =0x00006073 + add r0, r3, r0 + str r0, [r1, #0x0] + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + .balign 4 +_0201BA04: .word 0x021C4D48 +_0201BA08: .word 0x41C64E6D +_0201BA0C: .word 0x00006073 + + thumb_func_start rand_ALT +rand_ALT: ; 0x0201BA10 + ldr r1, _0201BA18 ; =0x6C078965 + mul r1, r0 + add r0, r1, #0x1 + bx lr + .balign 4 +_0201BA18: .word 0x6C078965 + + thumb_func_start seedr_MT +seedr_MT: ; 0x0201BA1C + push {r4-r5} + ldr r1, _0201BA50 ; =0x021C4D48 + mov r4, #0x27 + str r0, [r1, #0x4] + ldr r1, _0201BA54 ; =0x02105BA8 + mov r0, #0x1 + str r0, [r1, #0x0] + ldr r1, _0201BA58 ; =0x021C4D50 + ldr r3, _0201BA5C ; =0x6C078965 + lsl r4, r4, #0x4 +_0201BA30: + sub r2, r1, #0x4 + ldr r5, [r2, #0x0] + lsr r2, r5, #0x1e + eor r2, r5 + add r5, r2, #0x0 + mul r5, r3 + add r2, r0, r5 + add r0, r0, #0x1 + stmia r1!, {r2} + cmp r0, r4 + blt _0201BA30 + ldr r1, _0201BA54 ; =0x02105BA8 + str r0, [r1, #0x0] + pop {r4-r5} + bx lr + nop +_0201BA50: .word 0x021C4D48 +_0201BA54: .word 0x02105BA8 +_0201BA58: .word 0x021C4D50 +_0201BA5C: .word 0x6C078965 + + thumb_func_start rand_MT +rand_MT: ; 0x0201BA60 + push {r3-r7, lr} + ldr r0, _0201BB44 ; =0x02105BA8 + ldr r1, [r0, #0x0] + mov r0, #0x27 + lsl r0, r0, #0x4 + cmp r1, r0 + blt _0201BB18 + add r0, r0, #0x1 + cmp r1, r0 + bne _0201BA7A + ldr r0, _0201BB48 ; =0x00001571 + bl seedr_MT +_0201BA7A: + ldr r4, _0201BB4C ; =0x021C4D4C + ldr r1, _0201BB50 ; =0x02105BAC + ldr r5, _0201BB54 ; =0x7FFFFFFF + ldr r6, _0201BB58 ; =0x00000634 + mov r0, #0x0 +_0201BA84: + mov r2, #0x2 + ldr r3, [r4, #0x0] + lsl r2, r2, #0x1e + and r3, r2 + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + and r2, r5 + orr r3, r2 + lsr r7, r3, #0x1 + lsl r3, r3, #0x1f + ldr r2, [r4, r6] + lsr r3, r3, #0x1d + ldr r3, [r1, r3] + eor r2, r7 + eor r2, r3 + stmia r4!, {r2} + cmp r0, #0xe3 + blt _0201BA84 + ldr r1, _0201BB5C ; =0x0000026F + cmp r0, r1 + bge _0201BAE4 + ldr r2, _0201BB4C ; =0x021C4D4C + lsl r1, r0, #0x2 + add r1, r2, r1 + mov r2, #0xe3 + ldr r4, _0201BB50 ; =0x02105BAC + ldr r3, _0201BB5C ; =0x0000026F + lsl r2, r2, #0x2 +_0201BABC: + mov r5, #0x2 + ldr r6, [r1, #0x0] + lsl r5, r5, #0x1e + and r5, r6 + ldr r7, [r1, #0x4] + ldr r6, _0201BB54 ; =0x7FFFFFFF + add r0, r0, #0x1 + and r6, r7 + orr r6, r5 + lsr r5, r6, #0x1 + sub r7, r1, r2 + lsl r6, r6, #0x1f + ldr r7, [r7, #0x0] + lsr r6, r6, #0x1d + ldr r6, [r4, r6] + eor r5, r7 + eor r5, r6 + stmia r1!, {r5} + cmp r0, r3 + blt _0201BABC +_0201BAE4: + ldr r2, _0201BB60 ; =0x021C56C8 + mov r0, #0x2 + ldr r1, [r2, #0x40] + lsl r0, r0, #0x1e + add r3, r1, #0x0 + ldr r1, _0201BB64 ; =0x021C4D48 + and r3, r0 + ldr r1, [r1, #0x4] + sub r0, r0, #0x1 + and r0, r1 + add r4, r3, #0x0 + orr r4, r0 + ldr r0, _0201BB68 ; =0x021C5348 + ldr r1, [r0, #0x34] + lsr r0, r4, #0x1 + add r3, r1, #0x0 + eor r3, r0 + lsl r0, r4, #0x1f + lsr r1, r0, #0x1d + ldr r0, _0201BB50 ; =0x02105BAC + ldr r0, [r0, r1] + mov r1, #0x0 + eor r0, r3 + str r0, [r2, #0x40] + ldr r0, _0201BB44 ; =0x02105BA8 + str r1, [r0, #0x0] +_0201BB18: + ldr r0, _0201BB44 ; =0x02105BA8 + ldr r2, [r0, #0x0] + add r1, r2, #0x1 + str r1, [r0, #0x0] + ldr r0, _0201BB4C ; =0x021C4D4C + lsl r1, r2, #0x2 + ldr r1, [r0, r1] + lsr r0, r1, #0xb + add r2, r1, #0x0 + eor r2, r0 + ldr r0, _0201BB6C ; =0x9D2C5680 + lsl r1, r2, #0x7 + and r0, r1 + eor r2, r0 + ldr r0, _0201BB70 ; =0xEFC60000 + lsl r1, r2, #0xf + and r0, r1 + add r1, r2, #0x0 + eor r1, r0 + lsr r0, r1, #0x12 + eor r0, r1 + pop {r3-r7, pc} + .balign 4 +_0201BB44: .word 0x02105BA8 +_0201BB48: .word 0x00001571 +_0201BB4C: .word 0x021C4D4C +_0201BB50: .word 0x02105BAC +_0201BB54: .word 0x7FFFFFFF +_0201BB58: .word 0x00000634 +_0201BB5C: .word 0x0000026F +_0201BB60: .word 0x021C56C8 +_0201BB64: .word 0x021C4D48 +_0201BB68: .word 0x021C5348 +_0201BB6C: .word 0x9D2C5680 +_0201BB70: .word 0xEFC60000 + + thumb_func_start FUN_0201BB74 +FUN_0201BB74: ; 0x0201BB74 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, sp, #0x0 + ldrb r0, [r0, #0x10] + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r0, #0x1 + bne _0201BB8E + ldr r0, _0201BBC8 ; =0x0000FFFF + mul r0, r1 + lsl r0, r0, #0x8 + lsr r1, r0, #0x10 + b _0201BBA2 +_0201BB8E: + cmp r0, #0x2 + bne _0201BBA2 + ldr r0, _0201BBC8 ; =0x0000FFFF + mul r0, r1 + mov r1, #0x5a + lsl r1, r1, #0x2 + bl _u32_div_f + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_0201BBA2: + asr r0, r1, #0x4 + lsl r3, r0, #0x1 + lsl r1, r3, #0x1 + ldr r2, _0201BBCC ; =0x020FFA38 + add r3, r3, #0x1 + lsl r3, r3, #0x1 + ldrsh r1, [r2, r1] + ldrsh r2, [r2, r3] + add r0, r5, #0x0 + bl MTX_Rot22_ + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl MTX_ScaleApply22 + pop {r4-r6, pc} + nop +_0201BBC8: .word 0x0000FFFF +_0201BBCC: .word 0x020FFA38 + + thumb_func_start FUN_0201BBD0 +FUN_0201BBD0: ; 0x0201BBD0 + push {r3-r7, lr} + sub sp, #0x38 + lsl r5, r0, #0xc + lsl r4, r1, #0xc + mov r1, #0x0 + lsl r0, r2, #0xc + lsl r6, r3, #0xc + str r1, [sp, #0x34] + str r0, [sp, #0x0] + str r0, [sp, #0x20] + str r1, [sp, #0x28] + str r1, [sp, #0x8] + str r1, [sp, #0xc] + asr r1, r5, #0x1f + add r0, r5, #0x0 + asr r3, r6, #0x1f + add r2, r6, #0x0 + str r5, [sp, #0x2c] + str r4, [sp, #0x30] + str r6, [sp, #0x24] + bl _ll_mul + str r0, [sp, #0x4] + add r2, r4, #0x0 + ldr r0, [sp, #0x20] + add r7, r1, #0x0 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #0x2 + ldr r3, [sp, #0x4] + lsl r2, r2, #0xa + add r3, r3, r2 + ldr r2, _0201BC80 ; =0x00000000 + str r4, [sp, #0x2c] + adc r7, r2 + lsl r2, r7, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _0201BC80 ; =0x00000000 + str r5, [sp, #0x30] + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + sub r2, r3, r0 + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + str r2, [sp, #0x10] + add r0, r1, r0 + add r7, r2, r0 + mov r0, #0x0 + str r0, [sp, #0x34] + add r0, sp, #0x2c + add r1, sp, #0x14 + bl VEC_Normalize + mov r1, #0x0 + ldr r0, [sp, #0x0] + str r1, [sp, #0x34] + str r0, [sp, #0x20] + str r1, [sp, #0x28] + add r0, sp, #0x20 + add r1, sp, #0x2c + add r2, sp, #0x8 + str r5, [sp, #0x2c] + str r4, [sp, #0x30] + str r6, [sp, #0x24] + bl VEC_Subtract + add r0, sp, #0x14 + add r1, sp, #0x8 + bl VEC_DotProduct + asr r0, r0, #0xc + bpl _0201BC72 + neg r0, r0 +_0201BC72: + cmp r7, #0x0 + bgt _0201BC7C + mov r1, #0x0 + mvn r1, r1 + mul r0, r1 +_0201BC7C: + add sp, #0x38 + pop {r3-r7, pc} + .balign 4 +_0201BC80: .word 0x00000000 + + thumb_func_start FUN_0201BC84 +FUN_0201BC84: ; 0x0201BC84 + push {r3-r5, lr} + lsl r0, r0, #0xd + add r4, r1, #0x0 + ldr r2, _0201BCB4 ; =0x0000323D + asr r1, r0, #0x1f + mov r3, #0x0 + bl _ll_mul + add r5, r0, #0x0 + ldr r0, _0201BCB8 ; =0x0000FFFF + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + mul r0, r4 + add r2, r5, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + asr r1, r2, #0xc + bl _s32_div_f + pop {r3-r5, pc} + nop +_0201BCB4: .word 0x0000323D +_0201BCB8: .word 0x0000FFFF + + thumb_func_start FUN_0201BCBC +FUN_0201BCBC: ; 0x0201BCBC + ldr r1, _0201BCC4 ; =0x02105BB4 + str r0, [r1, #0x0] + bx lr + nop +_0201BCC4: .word 0x02105BB4 + + thumb_func_start FUN_0201BCC8 +FUN_0201BCC8: ; 0x0201BCC8 + push {r4-r6, lr} + ldr r4, _0201BCF8 ; =0x021C5714 + mov r5, #0x0 +_0201BCCE: + ldr r3, [r4, #0x0] + cmp r3, #0x0 + bne _0201BCE8 + ldr r6, _0201BCF8 ; =0x021C5714 + lsl r4, r5, #0x2 + bl FUN_0200CA7C + str r0, [r6, r4] + ldr r0, [r6, r4] + cmp r0, #0x0 + bne _0201BCF0 + mov r5, #0x8 + b _0201BCF0 +_0201BCE8: + add r5, r5, #0x1 + add r4, r4, #0x4 + cmp r5, #0x8 + blt _0201BCCE +_0201BCF0: + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + pop {r4-r6, pc} + nop +_0201BCF8: .word 0x021C5714 + + thumb_func_start FUN_0201BCFC +FUN_0201BCFC: ; 0x0201BCFC + push {r4-r6, lr} + add r5, r0, #0x0 + cmp r5, #0x8 + blo _0201BD08 + bl ErrorHandling +_0201BD08: + ldr r6, _0201BD40 ; =0x021C5714 + lsl r4, r5, #0x2 + ldr r0, [r6, r4] + cmp r0, #0x0 + bne _0201BD16 + bl ErrorHandling +_0201BD16: + cmp r5, #0x8 + bhs _0201BD3C + ldr r0, [r6, r4] + cmp r0, #0x0 + beq _0201BD3C + bl FUN_0201B6C8 + add r5, r0, #0x0 + beq _0201BD32 + bl FUN_0201C238 + add r0, r5, #0x0 + bl FUN_02016A18 +_0201BD32: + ldr r0, [r6, r4] + bl FUN_0200CAB4 + mov r0, #0x0 + str r0, [r6, r4] +_0201BD3C: + pop {r4-r6, pc} + nop +_0201BD40: .word 0x021C5714 + + thumb_func_start FUN_0201BD44 +FUN_0201BD44: ; 0x0201BD44 + lsl r1, r0, #0x2 + ldr r0, _0201BD58 ; =0x021C5714 + ldr r0, [r0, r1] + cmp r0, #0x0 + beq _0201BD52 + mov r0, #0x1 + bx lr +_0201BD52: + mov r0, #0x0 + bx lr + nop +_0201BD58: .word 0x021C5714 + + thumb_func_start FUN_0201BD5C +FUN_0201BD5C: ; 0x0201BD5C + mov r1, #0x0 + ldr r2, _0201BD6C ; =0x021C5714 + add r0, r1, #0x0 +_0201BD62: + add r1, r1, #0x1 + stmia r2!, {r0} + cmp r1, #0x8 + blt _0201BD62 + bx lr + .balign 4 +_0201BD6C: .word 0x021C5714 + + thumb_func_start FUN_0201BD70 +FUN_0201BD70: ; 0x0201BD70 + push {r3, lr} + bl FUN_0201BD44 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + + thumb_func_start FUN_0201BD7C +FUN_0201BD7C: ; 0x0201BD7C + ldr r3, _0201BD80 ; =FUN_0201BCFC + bx r3 + .balign 4 +_0201BD80: .word FUN_0201BCFC + + thumb_func_start FUN_0201BD84 +FUN_0201BD84: ; 0x0201BD84 + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _0201BDDC ; =0x02105BB4 + lsl r1, r1, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldrb r0, [r1, #0x2] + strb r0, [r2, #0xe] + ldrb r0, [r1, #0x3] + strb r0, [r2, #0xf] + ldrb r0, [r1, #0x4] + strb r0, [r2, #0x10] + ldrb r0, [r1, #0x5] + strb r0, [r2, #0x11] + ldrb r0, [r1, #0x6] + strb r0, [r2, #0x12] + ldrb r0, [r1, #0x7] + ldr r1, [sp, #0x24] + strb r0, [r2, #0x13] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r2, [sp, #0x28] + add r0, sp, #0x0 + bl FUN_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BDDC: .word 0x02105BB4 + + thumb_func_start FUN_0201BDE0 +FUN_0201BDE0: ; 0x0201BDE0 + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _0201BE38 ; =0x02105BB4 + lsl r1, r1, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r1 + ldrb r0, [r1, #0x2] + strb r0, [r2, #0xe] + ldrb r0, [r1, #0x3] + strb r0, [r2, #0xf] + ldrb r0, [r1, #0x4] + ldr r1, [sp, #0x28] + strb r0, [r2, #0x10] + lsr r0, r1, #0x10 + strb r0, [r2, #0x11] + lsr r0, r1, #0x8 + strb r0, [r2, #0x13] + strb r1, [r2, #0x12] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x2c] + add r0, sp, #0x0 + bl FUN_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BE38: .word 0x02105BB4 + + thumb_func_start FUN_0201BE3C +FUN_0201BE3C: ; 0x0201BE3C + push {r3, lr} + sub sp, #0x18 + str r0, [sp, #0x4] + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + ldr r0, [sp, #0x20] + str r2, [sp, #0x0] + add r2, sp, #0x0 + strb r1, [r2, #0x9] + lsl r0, r0, #0x18 + strb r3, [r2, #0xa] + lsr r0, r0, #0x18 + strb r0, [r2, #0xb] + strb r3, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, [sp, #0x2c] + strb r0, [r2, #0xe] + ldr r0, [sp, #0x30] + strb r0, [r2, #0xf] + ldr r0, _0201BE94 ; =0x02105BB4 + ldr r3, [r0, #0x0] + lsl r0, r1, #0x3 + add r0, r3, r0 + ldrb r0, [r0, #0x4] + ldr r1, [sp, #0x28] + strb r0, [r2, #0x10] + lsr r0, r1, #0x10 + strb r0, [r2, #0x11] + lsr r0, r1, #0x8 + strb r0, [r2, #0x13] + strb r1, [r2, #0x12] + mov r0, #0x0 + strh r0, [r2, #0x14] + strb r0, [r2, #0x16] + mov r0, #0xff + strb r0, [r2, #0x17] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x34] + add r0, sp, #0x0 + bl FUN_0201BE98 + add sp, #0x18 + pop {r3, pc} + nop +_0201BE94: .word 0x02105BB4 + + thumb_func_start FUN_0201BE98 +FUN_0201BE98: ; 0x0201BE98 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0201BFD0 ; =0x02105BB4 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + add r5, r2, #0x0 + cmp r0, #0x0 + bne _0201BEAC + mov r0, #0xff + pop {r3-r7, pc} +_0201BEAC: + mov r0, #0x0 + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0x0 + mov r1, #0x1 + add r0, #0x23 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + add r0, #0x24 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r2, [r0, #0x0] + mov r0, #0x7f + bic r2, r0 + lsl r0, r6, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x7f + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x26 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x27 + strb r3, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x29 + strb r3, [r0, #0x0] + add r1, r3, #0x0 +_0201BEF4: + add r0, r4, r3 + add r3, r3, #0x1 + strb r1, [r0, #0x1c] + cmp r3, #0x7 + blt _0201BEF4 + add r3, r7, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + bl FUN_02021F2C + str r0, [r4, #0x0] + ldr r0, _0201BFD4 ; =0x021C570C + str r5, [r4, #0x18] + mov r1, #0x0 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + bl FUN_0201C1A8 + cmp r6, #0xff + beq _0201BF74 + cmp r6, #0x0 + beq _0201BF74 + add r0, r4, #0x0 + add r0, #0x25 + ldrb r2, [r0, #0x0] + mov r1, #0x7f + add r0, r2, #0x0 + bic r0, r1 + lsl r1, r2, #0x19 + lsr r1, r1, #0x19 + add r1, #0xff + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0x7f + and r1, r2 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x80 + mov r2, #0x1 + orr r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + ldr r0, _0201BFD8 ; =FUN_0201BFDC + add r1, r4, #0x0 + bl FUN_0201BCC8 + add r1, r4, #0x0 + add r1, #0x28 + strb r0, [r1, #0x0] + add r4, #0x28 + ldrb r0, [r4, #0x0] + pop {r3-r7, pc} +_0201BF74: + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x7f + mov r5, #0x0 + bic r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x25 + ldrb r1, [r0, #0x0] + mov r0, #0x80 + bic r1, r0 + add r0, r4, #0x0 + add r0, #0x25 + strb r1, [r0, #0x0] + ldrb r0, [r7, #0x11] + ldrb r1, [r7, #0x12] + ldrb r2, [r7, #0x13] + bl FUN_0201C05C + mov r7, #0x1 + lsl r7, r7, #0xa +_0201BFA4: + add r0, r4, #0x0 + bl FUN_0201C048 + cmp r0, #0x1 + beq _0201BFB4 + add r5, r5, #0x1 + cmp r5, r7 + blo _0201BFA4 +_0201BFB4: + cmp r6, #0xff + beq _0201BFBE + ldr r0, [r4, #0x4] + bl FUN_020191D0 +_0201BFBE: + add r0, r4, #0x0 + bl FUN_0201C238 + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x8 + pop {r3-r7, pc} + nop +_0201BFD0: .word 0x02105BB4 +_0201BFD4: .word 0x021C570C +_0201BFD8: .word FUN_0201BFDC + + thumb_func_start FUN_0201BFDC +FUN_0201BFDC: ; 0x0201BFDC + push {r4, lr} + ldr r0, _0201C044 ; =0x021C570C + add r4, r1, #0x0 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C042 + add r0, r4, #0x0 + add r0, #0x29 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C036 + mov r0, #0x0 + strh r0, [r4, #0x2a] + ldrb r0, [r4, #0x11] + ldrb r1, [r4, #0x12] + ldrb r2, [r4, #0x13] + bl FUN_0201C05C + add r0, r4, #0x0 + bl FUN_0201C048 + cmp r0, #0x0 + beq _0201C014 + cmp r0, #0x1 + beq _0201C02C + cmp r0, #0x3 + beq _0201C01A + pop {r4, pc} +_0201C014: + ldr r0, [r4, #0x4] + bl FUN_020191D0 +_0201C01A: + ldr r2, [r4, #0x18] + cmp r2, #0x0 + beq _0201C042 + ldrh r1, [r4, #0x2a] + add r0, r4, #0x0 + blx r2 + add r4, #0x29 + strb r0, [r4, #0x0] + pop {r4, pc} +_0201C02C: + add r4, #0x28 + ldrb r0, [r4, #0x0] + bl FUN_0201BCFC + pop {r4, pc} +_0201C036: + ldrh r1, [r4, #0x2a] + ldr r2, [r4, #0x18] + add r0, r4, #0x0 + blx r2 + add r4, #0x29 + strb r0, [r4, #0x0] +_0201C042: + pop {r4, pc} + .balign 4 +_0201C044: .word 0x021C570C + + thumb_func_start FUN_0201C048 +FUN_0201C048: ; 0x0201C048 + push {r4, lr} + add r4, r0, #0x0 +_0201C04C: + ldrb r0, [r4, #0x9] + add r1, r4, #0x0 + bl FUN_02002DB0 + cmp r0, #0x2 + beq _0201C04C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201C05C +FUN_0201C05C: ; 0x0201C05C + push {r3-r7, lr} + sub sp, #0x30 + ldr r3, _0201C0F8 ; =0x021C570C + mov r5, #0x0 + str r5, [sp, #0x20] + str r0, [sp, #0x24] + str r2, [sp, #0x28] + str r1, [sp, #0x2c] + strh r1, [r3, #0x6] + strh r0, [r3, #0x2] + add r0, sp, #0x20 + strh r2, [r3, #0x4] + str r5, [sp, #0x14] + str r0, [sp, #0x8] + mov r12, r0 + mov lr, r0 + str r0, [sp, #0x18] +_0201C07E: + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x0] + str r0, [sp, #0x1c] +_0201C08C: + mov r0, #0x0 + str r0, [sp, #0xc] + mov r0, lr + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x0] + lsl r7, r0, #0x4 +_0201C09A: + ldr r0, [sp, #0x0] + mov r3, #0x0 + ldr r0, [r0, #0x0] + mov r4, r12 + lsl r6, r0, #0x8 +_0201C0A4: + ldr r0, [r4, #0x0] + add r1, r7, #0x0 + lsl r0, r0, #0xc + orr r0, r6 + orr r1, r0 + ldr r0, [sp, #0x1c] + add r3, r3, #0x1 + add r2, r0, #0x0 + orr r2, r1 + lsl r1, r5, #0x1 + ldr r0, _0201C0FC ; =0x021C5734 + add r5, r5, #0x1 + add r4, r4, #0x4 + strh r2, [r0, r1] + cmp r3, #0x4 + blt _0201C0A4 + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, #0x4 + blt _0201C09A + ldr r0, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x10] + add r0, r0, #0x1 + str r0, [sp, #0x10] + cmp r0, #0x4 + blt _0201C08C + ldr r0, [sp, #0x8] + add r0, r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [sp, #0x14] + add r0, r0, #0x1 + str r0, [sp, #0x14] + cmp r0, #0x4 + blt _0201C07E + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0201C0F8: .word 0x021C570C +_0201C0FC: .word 0x021C5734 + + thumb_func_start FUN_0201C100 +FUN_0201C100: ; 0x0201C100 + ldrh r2, [r0, #0x0] + lsr r2, r2, #0x8 + lsl r3, r2, #0x1 + ldr r2, _0201C1A4 ; =0x021C5734 + ldrh r3, [r2, r3] + strh r3, [r1, #0x0] + ldrh r3, [r0, #0x0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x2] + ldrh r3, [r0, #0x2] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x4] + ldrh r3, [r0, #0x2] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x6] + ldrh r3, [r0, #0x4] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x8] + ldrh r3, [r0, #0x4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0xa] + ldrh r3, [r0, #0x6] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0xc] + ldrh r3, [r0, #0x6] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0xe] + ldrh r3, [r0, #0x8] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x10] + ldrh r3, [r0, #0x8] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x12] + ldrh r3, [r0, #0xa] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x14] + ldrh r3, [r0, #0xa] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x16] + ldrh r3, [r0, #0xc] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x18] + ldrh r3, [r0, #0xc] + lsl r3, r3, #0x18 + lsr r3, r3, #0x17 + ldrh r3, [r2, r3] + strh r3, [r1, #0x1a] + ldrh r3, [r0, #0xe] + lsr r3, r3, #0x8 + lsl r3, r3, #0x1 + ldrh r3, [r2, r3] + strh r3, [r1, #0x1c] + ldrh r0, [r0, #0xe] + lsl r0, r0, #0x18 + lsr r0, r0, #0x17 + ldrh r0, [r2, r0] + strh r0, [r1, #0x1e] + bx lr + .balign 4 +_0201C1A4: .word 0x021C5734 + + thumb_func_start FUN_0201C1A8 +FUN_0201C1A8: ; 0x0201C1A8 + mov r1, #0x0 + str r1, [r0, #0x2c] + bx lr + .balign 4 + + thumb_func_start FUN_0201C1B0 +FUN_0201C1B0: ; 0x0201C1B0 + push {r3-r5, lr} + sub sp, #0x8 + mov r1, #0x6 + mov r0, #0x0 + lsl r1, r1, #0x8 + bl FUN_02016998 + mov r2, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x0] + mov r0, #0xe + mov r1, #0x5 + add r3, sp, #0x4 + bl FUN_02006BB0 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + mov r2, #0x6 + ldr r0, [r0, #0x14] + add r1, r5, #0x0 + lsl r2, r2, #0x8 + bl MIi_CpuCopy32 + add r0, r4, #0x0 + bl FUN_02016A18 + add r0, r5, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201C1EC +FUN_0201C1EC: ; 0x0201C1EC + push {r3-r7, lr} + sub sp, #0x18 + add r4, r0, #0x0 + ldr r0, [r4, #0x2c] + add r7, r3, #0x0 + ldr r5, [r4, #0x4] + cmp r0, #0x0 + bne _0201C202 + bl FUN_0201C1B0 + str r0, [r4, #0x2c] +_0201C202: + mov r0, #0x6 + lsl r0, r0, #0x6 + add r6, r7, #0x0 + mul r6, r0 + add r0, r5, #0x0 + ldr r4, [r4, #0x2c] + bl FUN_0201AB0C + sub r0, r0, #0x3 + lsl r0, r0, #0x13 + mov r1, #0x18 + lsr r2, r0, #0x10 + str r1, [sp, #0x0] + mov r0, #0x20 + str r0, [sp, #0x4] + str r2, [sp, #0x8] + mov r2, #0x0 + str r2, [sp, #0xc] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + add r0, r5, #0x0 + add r1, r4, r6 + add r3, r2, #0x0 + bl FUN_02019658 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start FUN_0201C238 +FUN_0201C238: ; 0x0201C238 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x2c] + cmp r0, #0x0 + beq _0201C24A + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x2c] +_0201C24A: + pop {r4, pc} + + thumb_func_start FUN_0201C24C +FUN_0201C24C: ; 0x0201C24C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0201C298 ; =0x021C5934 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201C25E + bl ErrorHandling +_0201C25E: + add r0, r4, #0x0 + mov r1, #0xc + bl FUN_02016998 + ldr r1, _0201C298 ; =0x021C5934 + cmp r0, #0x0 + str r0, [r1, #0x0] + bne _0201C272 + bl ErrorHandling +_0201C272: + add r0, r4, #0x0 + lsl r1, r5, #0x4 + bl FUN_02016998 + ldr r1, _0201C298 ; =0x021C5934 + ldr r2, [r1, #0x0] + str r0, [r2, #0x8] + ldr r0, [r1, #0x0] + mov r2, #0x0 + str r5, [r0, #0x0] + ldr r0, [r1, #0x0] + str r2, [r0, #0x4] + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x8] + ldr r1, [r1, #0x0] + bl FUN_020AEF1C + pop {r3-r5, pc} + nop +_0201C298: .word 0x021C5934 + + thumb_func_start FUN_0201C29C +FUN_0201C29C: ; 0x0201C29C + push {r3, lr} + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201C2AA + bl ErrorHandling +_0201C2AA: + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x8] + bl FUN_02016A18 + ldr r0, _0201C2C4 ; =0x021C5934 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201C2C4 ; =0x021C5934 + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0201C2C4: .word 0x021C5934 + + thumb_func_start FUN_0201C2C8 +FUN_0201C2C8: ; 0x0201C2C8 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _0201C308 ; =0x021C5934 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r0, #0x0 + bne _0201C2DE + bl ErrorHandling +_0201C2DE: + ldr r1, _0201C308 ; =0x021C5934 + ldr r0, [r1, #0x0] + ldr r2, [r0, #0x4] + add r2, r2, #0x1 + str r2, [r0, #0x4] + ldr r0, [r1, #0x0] + ldr r1, [r0, #0x4] + ldr r0, [r0, #0x0] + cmp r1, r0 + blo _0201C2FA + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} +_0201C2FA: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl FUN_020AEE40 + pop {r3-r7, pc} + .balign 4 +_0201C308: .word 0x021C5934 + + thumb_func_start FUN_0201C30C +FUN_0201C30C: ; 0x0201C30C + push {r3, lr} + ldr r0, _0201C324 ; =0x021C5934 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201C322 + bl FUN_020AEEB8 + ldr r0, _0201C324 ; =0x021C5934 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x4] +_0201C322: + pop {r3, pc} + .balign 4 +_0201C324: .word 0x021C5934 + + thumb_func_start FUN_0201C328 +FUN_0201C328: ; 0x0201C328 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x30 + mul r1, r4 + bl FUN_02016998 + ldr r2, _0201C344 ; =FUN_0201C358 + add r1, r4, #0x0 + add r5, r0, #0x0 + bl FUN_020B4568 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_0201C344: .word FUN_0201C358 + + thumb_func_start FUN_0201C348 +FUN_0201C348: ; 0x0201C348 + ldr r3, _0201C34C ; =FUN_020B442C + bx r3 + .balign 4 +_0201C34C: .word FUN_020B442C + + thumb_func_start FUN_0201C350 +FUN_0201C350: ; 0x0201C350 + ldr r3, _0201C354 ; =FUN_02016A18 + bx r3 + .balign 4 +_0201C354: .word FUN_02016A18 + + thumb_func_start FUN_0201C358 +FUN_0201C358: ; 0x0201C358 + push {r3, lr} + bl FUN_0201C2C8 + pop {r3, pc} + + thumb_func_start FUN_0201C360 +FUN_0201C360: ; 0x0201C360 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x8 + bl FUN_02016998 + mov r1, #0x14 + add r4, r0, #0x0 + add r0, r6, #0x0 + mul r1, r5 + bl FUN_02016998 + str r0, [r4, #0x0] + mov r6, #0x0 + str r5, [r4, #0x4] + cmp r5, #0x0 + ble _0201C398 + add r5, r6, #0x0 +_0201C386: + ldr r0, [r4, #0x0] + add r0, r0, r5 + bl FUN_0201C444 + ldr r0, [r4, #0x4] + add r6, r6, #0x1 + add r5, #0x14 + cmp r6, r0 + blt _0201C386 +_0201C398: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_0201C39C +FUN_0201C39C: ; 0x0201C39C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_0201C414 + ldr r0, [r4, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201C3B4 +FUN_0201C3B4: ; 0x0201C3B4 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r4, #0x0 + add r7, r2, #0x0 + mov r12, r1 + add r6, r3, #0x0 + add r2, r4, #0x0 + cmp r0, #0x0 + ble _0201C3E2 + ldr r5, [r5, #0x0] + add r3, r5, #0x0 +_0201C3CC: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + bne _0201C3DA + mov r0, #0x14 + mul r0, r2 + add r4, r5, r0 + b _0201C3E2 +_0201C3DA: + add r2, r2, #0x1 + add r3, #0x14 + cmp r2, r0 + blt _0201C3CC +_0201C3E2: + cmp r4, #0x0 + bne _0201C3EA + mov r0, #0x0 + pop {r3-r7, pc} +_0201C3EA: + mov r0, r12 + str r0, [r4, #0x0] + str r7, [r4, #0x4] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x18] + str r6, [r4, #0x8] + str r0, [r4, #0xc] + mov r0, #0xff + strb r0, [r4, #0x10] + lsl r1, r1, #0x4 + strb r0, [r4, #0x11] + add r0, r4, #0x0 + lsr r1, r1, #0x10 + bl FUN_0201C454 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_0201C40C +FUN_0201C40C: ; 0x0201C40C + ldr r3, _0201C410 ; =FUN_0201C444 + bx r3 + .balign 4 +_0201C410: .word FUN_0201C444 + + thumb_func_start FUN_0201C414 +FUN_0201C414: ; 0x0201C414 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _0201C434 + add r4, r6, #0x0 +_0201C422: + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl FUN_0201C444 + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x14 + cmp r6, r0 + blt _0201C422 +_0201C434: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201C438 +FUN_0201C438: ; 0x0201C438 + ldr r3, _0201C440 ; =FUN_0201C454 + lsl r1, r1, #0x4 + lsr r1, r1, #0x10 + bx r3 + .balign 4 +_0201C440: .word FUN_0201C454 + + thumb_func_start FUN_0201C444 +FUN_0201C444: ; 0x0201C444 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + strb r1, [r0, #0x10] + strb r1, [r0, #0x11] + bx lr + + thumb_func_start FUN_0201C454 +FUN_0201C454: ; 0x0201C454 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + bl FUN_02022244 + add r2, sp, #0x0 + strb r0, [r2, #0x0] + lsr r0, r0, #0x8 + strb r0, [r2, #0x1] + ldrb r0, [r2, #0x0] + add r1, sp, #0x0 + add r1, #0x2 + strb r0, [r2, #0x2] + ldrb r0, [r2, #0x1] + strb r0, [r2, #0x3] + ldrb r3, [r4, #0x10] + ldrb r0, [r2, #0x2] + cmp r3, r0 + beq _0201C482 + add r0, r4, #0x0 + bl FUN_0201C49C +_0201C482: + add r0, sp, #0x0 + ldrb r1, [r4, #0x11] + ldrb r0, [r0, #0x3] + cmp r1, r0 + beq _0201C496 + add r1, sp, #0x0 + add r0, r4, #0x0 + add r1, #0x2 + bl FUN_0201C4C8 +_0201C496: + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_0201C49C +FUN_0201C49C: ; 0x0201C49C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0201C4F4 + ldr r3, [r5, #0x8] + add r2, r0, #0x0 + lsl r1, r3, #0x10 + ldr r6, _0201C4C4 ; =0x7FFF0000 + mov r0, #0x0 + and r3, r6 + lsr r3, r3, #0x10 + lsr r1, r1, #0xd + lsl r3, r3, #0x4 + bl FUN_0201C2C8 + ldrb r0, [r4, #0x0] + strb r0, [r5, #0x10] + pop {r4-r6, pc} + nop +_0201C4C4: .word 0x7FFF0000 + + thumb_func_start FUN_0201C4C8 +FUN_0201C4C8: ; 0x0201C4C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0201C500 + ldr r3, [r5, #0xc] + add r2, r0, #0x0 + lsl r1, r3, #0x10 + ldr r6, _0201C4F0 ; =0xFFFF0000 + mov r0, #0x1 + and r3, r6 + lsr r3, r3, #0x10 + lsr r1, r1, #0xd + lsl r3, r3, #0x3 + bl FUN_0201C2C8 + ldrb r0, [r4, #0x1] + strb r0, [r5, #0x11] + pop {r4-r6, pc} + nop +_0201C4F0: .word 0xFFFF0000 + + thumb_func_start FUN_0201C4F4 +FUN_0201C4F4: ; 0x0201C4F4 + ldr r3, _0201C4FC ; =FUN_0201C50C + ldr r0, [r0, #0x4] + ldrb r1, [r1, #0x0] + bx r3 + .balign 4 +_0201C4FC: .word FUN_0201C50C + + thumb_func_start FUN_0201C500 +FUN_0201C500: ; 0x0201C500 + ldr r3, _0201C508 ; =FUN_0201C540 + ldr r0, [r0, #0x4] + ldrb r1, [r1, #0x1] + bx r3 + .balign 4 +_0201C508: .word FUN_0201C540 + + thumb_func_start FUN_0201C50C +FUN_0201C50C: ; 0x0201C50C + push {r3-r4} + add r2, r0, #0x0 + add r2, #0x42 + ldrh r2, [r2, #0x0] + add r4, r0, #0x0 + add r4, #0x3c + add r3, r4, r2 + ldrh r2, [r4, r2] + add r3, r3, #0x4 + mul r1, r2 + add r3, r3, r1 + bne _0201C52A + mov r0, #0x0 + pop {r3-r4} + bx lr +_0201C52A: + ldr r1, [r0, #0x14] + add r2, r0, r1 + ldr r1, [r3, #0x0] + ldr r0, [r0, #0x8] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r1, r0 + lsl r0, r0, #0x3 + add r0, r2, r0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201C540 +FUN_0201C540: ; 0x0201C540 + push {r3-r4} + ldrh r2, [r0, #0x34] + add r4, r0, r2 + ldrh r2, [r4, #0x6] + add r3, r4, r2 + ldrh r2, [r4, r2] + add r3, r3, #0x4 + mul r1, r2 + add r2, r3, r1 + bne _0201C55A + mov r0, #0x0 + pop {r3-r4} + bx lr +_0201C55A: + ldr r1, [r0, #0x38] + add r1, r0, r1 + ldrh r0, [r2, #0x0] + lsl r0, r0, #0x3 + add r0, r1, r0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201C568 +FUN_0201C568: ; 0x0201C568 + ldr r1, [r1, #0x0] + ldr r0, [r0, #0x8] + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + lsr r1, r1, #0xd + lsr r0, r0, #0xd + add r0, r1, r0 + bx lr + + thumb_func_start FUN_0201C578 +FUN_0201C578: ; 0x0201C578 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl FUN_0201C750 + add r0, r4, #0x0 + add r0, #0x3c + add r1, sp, #0x0 + bl FUN_020BC2A0 + add r1, r0, #0x0 + bne _0201C598 + add sp, #0x10 + mov r0, #0x0 + pop {r4, pc} +_0201C598: + add r0, r4, #0x0 + bl FUN_0201C568 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201C5A4 +FUN_0201C5A4: ; 0x0201C5A4 + push {r3, lr} + ldr r0, [r1, #0x0] + mov r1, #0x7 + lsl r1, r1, #0x1a + and r1, r0 + lsr r1, r1, #0x1a + cmp r1, #0x4 + bhi _0201C5DA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0201C5C0: ; jump table (using 16-bit offset) + .short _0201C5DA - _0201C5C0 - 2; case 0 + .short _0201C5D6 - _0201C5C0 - 2; case 1 + .short _0201C5CA - _0201C5C0 - 2; case 2 + .short _0201C5CE - _0201C5C0 - 2; case 3 + .short _0201C5D2 - _0201C5C0 - 2; case 4 +_0201C5CA: + mov r1, #0x4 + b _0201C5DE +_0201C5CE: + mov r1, #0x2 + b _0201C5DE +_0201C5D2: + mov r1, #0x1 + b _0201C5DE +_0201C5D6: + mov r1, #0x1 + b _0201C5DE +_0201C5DA: + mov r0, #0x0 + pop {r3, pc} +_0201C5DE: + mov r3, #0x7 + lsl r3, r3, #0x14 + add r2, r0, #0x0 + and r2, r3 + lsl r3, r3, #0x3 + and r0, r3 + lsr r2, r2, #0x14 + lsr r0, r0, #0x17 + lsl r2, r2, #0x4 + lsl r0, r0, #0x4 + mul r0, r2 + bl _u32_div_f + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201C5FC +FUN_0201C5FC: ; 0x0201C5FC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl FUN_0201C750 + add r0, r4, #0x0 + add r0, #0x3c + add r1, sp, #0x0 + bl FUN_020BC2A0 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0201C5A4 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201C620 +FUN_0201C620: ; 0x0201C620 + ldrb r3, [r0, #0x0] + strb r3, [r1, #0x0] + ldrb r0, [r0, #0x1] + strb r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0201C62C +FUN_0201C62C: ; 0x0201C62C + ldrb r3, [r0, #0x2] + strb r3, [r1, #0x0] + ldrb r0, [r0, #0x3] + strb r0, [r2, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0201C638 +FUN_0201C638: ; 0x0201C638 + push {r4-r5} + ldr r5, _0201C6B0 ; =0xFFFFFFF8 + ldr r4, [sp, #0xc] + add r5, sp + ldrb r5, [r5, #0x18] + cmp r5, #0x3 + bhi _0201C678 + add r5, r5, r5 + add r5, pc + ldrh r5, [r5, #0x6] + lsl r5, r5, #0x10 + asr r5, r5, #0x10 + add pc, r5 +_0201C652: ; jump table (using 16-bit offset) + .short _0201C65A - _0201C652 - 2; case 0 + .short _0201C662 - _0201C652 - 2; case 1 + .short _0201C66A - _0201C652 - 2; case 2 + .short _0201C672 - _0201C652 - 2; case 3 +_0201C65A: + lsl r4, r4, #0x3 + add r4, r0, r4 + ldrb r4, [r4, #0x4] + b _0201C678 +_0201C662: + lsl r4, r4, #0x3 + add r4, r0, r4 + ldrb r4, [r4, #0x5] + b _0201C678 +_0201C66A: + lsl r4, r4, #0x3 + add r4, r0, r4 + ldrb r4, [r4, #0x6] + b _0201C678 +_0201C672: + lsl r4, r4, #0x3 + add r4, r0, r4 + ldrb r4, [r4, #0x7] +_0201C678: + cmp r1, #0x0 + beq _0201C682 + lsl r5, r4, #0x3 + ldrb r5, [r0, r5] + strb r5, [r1, #0x0] +_0201C682: + cmp r2, #0x0 + beq _0201C68E + lsl r1, r4, #0x3 + add r1, r0, r1 + ldrb r1, [r1, #0x1] + strb r1, [r2, #0x0] +_0201C68E: + cmp r3, #0x0 + beq _0201C69A + lsl r1, r4, #0x3 + add r1, r0, r1 + ldrb r1, [r1, #0x2] + strb r1, [r3, #0x0] +_0201C69A: + ldr r2, [sp, #0x8] + cmp r2, #0x0 + beq _0201C6A8 + lsl r1, r4, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x3] + strb r0, [r2, #0x0] +_0201C6A8: + add r0, r4, #0x0 + pop {r4-r5} + bx lr + nop +_0201C6B0: .word 0xFFFFFFF8 + + thumb_func_start FUN_0201C6B4 +FUN_0201C6B4: ; 0x0201C6B4 + mov r2, #0x0 + ldrsb r1, [r0, r2] + cmp r1, #0x0 + beq _0201C6C4 +_0201C6BC: + add r2, r2, #0x1 + ldrsb r1, [r0, r2] + cmp r1, #0x0 + bne _0201C6BC +_0201C6C4: + add r0, r2, #0x0 + bx lr + + thumb_func_start FUN_0201C6C8 +FUN_0201C6C8: ; 0x0201C6C8 + push {r4-r5} + mov r4, #0x1 + mov r3, #0x0 + lsl r4, r4, #0x8 +_0201C6D0: + ldrsb r5, [r0, r3] + strb r5, [r1, r3] + ldrsb r5, [r0, r3] + cmp r2, r5 + beq _0201C6DE + cmp r5, #0x0 + bne _0201C6FE +_0201C6DE: + mov r4, #0x0 + strb r4, [r1, r3] + cmp r2, #0xd + bne _0201C6F6 + add r1, r3, #0x1 + ldrsb r1, [r0, r1] + cmp r1, #0xa + bne _0201C6F6 + add r1, r3, #0x2 + add r0, r0, r1 + pop {r4-r5} + bx lr +_0201C6F6: + add r1, r3, #0x1 + add r0, r0, r1 + pop {r4-r5} + bx lr +_0201C6FE: + add r3, r3, #0x1 + cmp r3, r4 + blt _0201C6D0 + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_0201C70C +FUN_0201C70C: ; 0x0201C70C + push {r4-r6, lr} + add r4, r0, #0x0 + bl FUN_0201C6B4 + mov r5, #0x1 + mov r6, #0x0 + sub r3, r0, #0x1 + bmi _0201C74A + sub r1, r6, #0x1 + mov r0, #0xa +_0201C720: + ldrsb r2, [r4, r3] + cmp r2, #0x30 + blt _0201C732 + cmp r2, #0x39 + bgt _0201C732 + sub r2, #0x30 + mul r2, r5 + add r6, r6, r2 + b _0201C744 +_0201C732: + cmp r3, #0x0 + bne _0201C73E + cmp r2, #0x2d + bne _0201C744 + mul r6, r1 + b _0201C744 +_0201C73E: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_0201C744: + mul r5, r0 + sub r3, r3, #0x1 + bpl _0201C720 +_0201C74A: + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201C750 +FUN_0201C750: ; 0x0201C750 + push {r3-r5, lr} + mov r2, #0x0 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 +_0201C75A: + lsl r0, r2, #0x2 + str r1, [r5, r0] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4 + blo _0201C75A + add r0, r4, #0x0 + bl FUN_0201C6B4 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r2, _0201C788 ; =0x00000000 + beq _0201C784 +_0201C776: + ldrsb r0, [r4, r2] + strb r0, [r5, r2] + add r0, r2, #0x1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, r1 + blo _0201C776 +_0201C784: + pop {r3-r5, pc} + nop +_0201C788: .word 0x00000000 + + thumb_func_start FUN_0201C78C +FUN_0201C78C: ; 0x0201C78C + ldr r1, _0201C79C ; =0x00000121 + cmp r0, r1 + bhs _0201C796 + mov r0, #0x1 + bx lr +_0201C796: + mov r0, #0x0 + bx lr + nop +_0201C79C: .word 0x00000121 + + thumb_func_start FUN_0201C7A0 +FUN_0201C7A0: ; 0x0201C7A0 + cmp r0, r1 + blt _0201C7A6 + add r0, r1, #0x0 +_0201C7A6: + bx lr + + thumb_func_start FUN_0201C7A8 +FUN_0201C7A8: ; 0x0201C7A8 + cmp r0, r1 + bgt _0201C7AE + add r0, r1, #0x0 +_0201C7AE: + bx lr + + thumb_func_start FUN_0201C7B0 +FUN_0201C7B0: ; 0x0201C7B0 + push {r3-r7, lr} + sub sp, #0x30 + add r4, r1, #0x0 + add r1, sp, #0x24 + bl VEC_Normalize + add r0, r4, #0x0 + add r1, sp, #0x18 + bl VEC_Normalize + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x18] + str r0, [sp, #0x0] + asr r0, r0, #0x1f + str r0, [sp, #0x4] + ldr r0, [sp, #0x20] + asr r6, r4, #0x1f + str r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0xc] + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x8] + asr r7, r0, #0x1f + ldr r3, [sp, #0xc] + add r1, r7, #0x0 + str r0, [sp, #0x10] + bl _ll_mul + str r0, [sp, #0x14] + add r5, r1, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r2, r4, #0x0 + add r3, r6, #0x0 + bl _ll_mul + mov r2, #0x2 + ldr r3, [sp, #0x14] + lsl r2, r2, #0xa + add r3, r3, r2 + ldr r2, _0201C874 ; =0x00000000 + adc r5, r2 + lsl r2, r5, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _0201C874 ; =0x00000000 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + add r5, r3, r0 + ldr r0, [sp, #0x10] + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl _ll_mul + add r6, r0, #0x0 + add r4, r1, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0xc] + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r6, r6, r2 + adc r4, r3 + lsl r4, r4, #0x14 + lsr r6, r6, #0xc + orr r6, r4 + add r4, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + orr r1, r0 + sub r0, r6, r1 + cmp r5, #0x0 + bne _0201C86A + cmp r0, #0x0 + ble _0201C862 + add sp, #0x30 + lsl r0, r2, #0x3 + pop {r3-r7, pc} +_0201C862: + mov r0, #0x3 + add sp, #0x30 + lsl r0, r0, #0xe + pop {r3-r7, pc} +_0201C86A: + add r1, r5, #0x0 + bl FX_Atan2 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_0201C874: .word 0x00000000 + + thumb_func_start FUN_0201C878 +FUN_0201C878: ; 0x0201C878 + push {r0-r3} + push {r4-r7, lr} + sub sp, #0x54 + ldr r0, [sp, #0x7c] + ldr r2, [sp, #0x80] + str r0, [sp, #0x8] + ldr r0, [sp, #0x94] + ldr r1, [sp, #0x8c] + str r0, [sp, #0xc] + ldr r0, [sp, #0x88] + ldr r4, [sp, #0x70] + str r0, [sp, #0x10] + sub r0, r2, r1 + str r0, [sp, #0x14] + asr r0, r0, #0x1f + str r0, [sp, #0x18] + ldr r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0x1c] + ldr r0, [sp, #0x74] + sub r3, r0, r2 + sub r0, r1, r0 + str r3, [sp, #0x20] + asr r3, r3, #0x1f + str r3, [sp, #0x24] + ldr r3, [sp, #0xc] + str r0, [sp, #0x2c] + asr r0, r0, #0x1f + str r0, [sp, #0x30] + ldr r0, [sp, #0x10] + asr r3, r3, #0x1f + str r3, [sp, #0x28] + asr r0, r0, #0x1f + ldr r3, [sp, #0x68] + str r0, [sp, #0x34] + asr r0, r4, #0x1f + str r0, [sp, #0x38] + sub r2, r2, r3 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x1c] + asr r3, r2, #0x1f + bl _ll_mul + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x74] + ldr r0, [sp, #0x10] + sub r2, r3, r2 + ldr r1, [sp, #0x34] + asr r3, r2, #0x1f + bl _ll_mul + add r5, r1, #0x0 + str r0, [sp, #0x3c] + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + add r0, r4, #0x0 + bl _ll_mul + mov r2, #0x2 + str r0, [sp, #0x4c] + add r0, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + add r3, r7, r2 + adc r6, r1 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + ldr r6, [sp, #0x3c] + lsl r2, r2, #0xa + add r2, r6, r2 + adc r5, r1 + mov r6, #0x2 + lsl r5, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r5 + ldr r5, [sp, #0x4c] + lsl r6, r6, #0xa + add r5, r5, r6 + adc r0, r1 + lsl r0, r0, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r2, r1 + add r0, r3, r0 + str r0, [sp, #0x4] + ldr r3, [sp, #0x8c] + ldr r2, [sp, #0x68] + ldr r0, [sp, #0x10] + sub r2, r3, r2 + ldr r1, [sp, #0x34] + asr r3, r2, #0x1f + bl _ll_mul + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x80] + ldr r0, [sp, #0xc] + sub r2, r3, r2 + ldr r1, [sp, #0x28] + asr r3, r2, #0x1f + bl _ll_mul + str r0, [sp, #0x40] + add r5, r1, #0x0 + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x18] + add r0, r4, #0x0 + bl _ll_mul + mov r2, #0x2 + str r0, [sp, #0x50] + add r0, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + add r3, r7, r2 + adc r6, r1 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + mov r2, #0x2 + ldr r6, [sp, #0x40] + lsl r2, r2, #0xa + add r2, r6, r2 + adc r5, r1 + mov r6, #0x2 + lsl r5, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r5 + ldr r5, [sp, #0x50] + lsl r6, r6, #0xa + add r5, r5, r6 + adc r0, r1 + lsl r0, r0, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r2, r1 + add r0, r3, r0 + str r0, [sp, #0x0] + ldr r3, [sp, #0x74] + ldr r2, [sp, #0x68] + ldr r0, [sp, #0xc] + sub r2, r3, r2 + ldr r1, [sp, #0x28] + asr r3, r2, #0x1f + bl _ll_mul + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r3, [sp, #0x68] + ldr r2, [sp, #0x8c] + ldr r0, [sp, #0x8] + sub r2, r3, r2 + ldr r1, [sp, #0x1c] + asr r3, r2, #0x1f + bl _ll_mul + add r5, r1, #0x0 + str r0, [sp, #0x44] + ldr r1, [sp, #0x38] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + add r0, r4, #0x0 + bl _ll_mul + mov r3, #0x2 + mov r2, #0x0 + lsl r3, r3, #0xa + add r4, r7, r3 + adc r6, r2 + lsl r3, r6, #0x14 + lsr r4, r4, #0xc + orr r4, r3 + mov r3, #0x2 + ldr r6, [sp, #0x44] + lsl r3, r3, #0xa + add r3, r6, r3 + adc r5, r2 + lsl r5, r5, #0x14 + lsr r3, r3, #0xc + orr r3, r5 + mov r5, #0x2 + lsl r5, r5, #0xa + add r5, r0, r5 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r1, r5, #0xc + orr r1, r0 + add r0, r3, r1 + add r6, r4, r0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + bl _ll_mul + add r7, r0, #0x0 + add r5, r1, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + bl _ll_mul + str r0, [sp, #0x48] + add r4, r1, #0x0 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x18] + bl _ll_mul + mov r12, r0 + mov r0, #0x2 + add r2, r1, #0x0 + mov r1, #0x0 + lsl r0, r0, #0xa + add r0, r7, r0 + adc r5, r1 + lsl r3, r5, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + mov r3, #0x2 + ldr r5, [sp, #0x48] + lsl r3, r3, #0xa + add r3, r5, r3 + adc r4, r1 + lsl r4, r4, #0x14 + lsr r3, r3, #0xc + orr r3, r4 + mov r4, #0x2 + lsl r4, r4, #0xa + mov r5, r12 + add r4, r5, r4 + adc r2, r1 + lsl r2, r2, #0x14 + lsr r4, r4, #0xc + orr r4, r2 + add r2, r3, r4 + add r0, r0, r2 + bpl _0201CA72 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA72: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bge _0201CA84 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA84: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bge _0201CA96 + add sp, #0x54 + add r0, r1, #0x0 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 +_0201CA96: + cmp r6, #0x0 + blt _0201CA9C + mov r1, #0x1 +_0201CA9C: + add r0, r1, #0x0 + add sp, #0x54 + pop {r4-r7} + pop {r3} + add sp, #0x10 + bx r3 + + thumb_func_start FUN_0201CAA8 +FUN_0201CAA8: ; 0x0201CAA8 + push {r4-r5, lr} + sub sp, #0x24 + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #0x4 + lsl r2, r1, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0x0 + bl MTX_RotX33_ + ldr r0, [r4, #0x4] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0x0 + bl MTX_RotY33_ + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r5, #0x0 + bl MTX_Concat33 + ldr r0, [r4, #0x8] + ldr r3, _0201CB1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r2, r0, #0x1 + lsl r1, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0x0 + bl MTX_RotZ33_ + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r5, #0x0 + bl MTX_Concat33 + add sp, #0x24 + pop {r4-r5, pc} + nop +_0201CB1C: .word 0x020FFA38 + + thumb_func_start FUN_0201CB20 +FUN_0201CB20: ; 0x0201CB20 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r1, #0x0 + add r5, r2, #0x0 + lsl r1, r6, #0x2 + ldr r2, _0201CB78 ; =0x020EDF50 + add r6, #0x5a + add r4, r3, #0x0 + lsl r3, r6, #0x2 + ldr r1, [r2, r1] + ldr r2, [r2, r3] + add r7, r0, #0x0 + bl MTX_RotX33_ + lsl r1, r5, #0x2 + ldr r3, _0201CB78 ; =0x020EDF50 + add r5, #0x5a + lsl r2, r5, #0x2 + ldr r1, [r3, r1] + ldr r2, [r3, r2] + add r0, sp, #0x0 + bl MTX_RotY33_ + add r0, r7, #0x0 + add r1, sp, #0x0 + add r2, r7, #0x0 + bl MTX_Concat33 + lsl r1, r4, #0x2 + ldr r3, _0201CB78 ; =0x020EDF50 + add r4, #0x5a + lsl r2, r4, #0x2 + ldr r1, [r3, r1] + ldr r2, [r3, r2] + add r0, sp, #0x0 + bl MTX_RotZ33_ + add r0, r7, #0x0 + add r1, sp, #0x0 + add r2, r7, #0x0 + bl MTX_Concat33 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_0201CB78: .word 0x020EDF50 + + thumb_func_start FUN_0201CB7C +FUN_0201CB7C: ; 0x0201CB7C + push {r3-r7, lr} + asr r0, r0, #0x4 + add r7, r2, #0x0 + lsl r2, r0, #0x1 + add r6, r1, #0x0 + lsl r0, r2, #0x1 + ldr r1, _0201CBE8 ; =0x020FFA38 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r1, r0] + ldrsh r1, [r1, r2] + add r5, r3, #0x0 + ldr r4, [sp, #0x18] + bl FX_Div + add r2, r0, #0x0 + asr r1, r6, #0x1f + add r0, r6, #0x0 + asr r3, r2, #0x1f + bl _ll_mul + mov r6, #0x2 + mov r2, #0x0 + lsl r6, r6, #0xa + add r0, r0, r6 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r3, r0, #0x1f + lsr r1, r0, #0x13 + lsl r3, r3, #0xd + orr r3, r1 + lsl r0, r0, #0xd + add r0, r0, r6 + adc r3, r2 + lsl r1, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r7, #0x1f + add r2, r7, #0x0 + str r0, [r4, #0x0] + bl _ll_mul + mov r3, #0x0 + add r2, r6, #0x0 + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x0] + pop {r3-r7, pc} + .balign 4 +_0201CBE8: .word 0x020FFA38 + + thumb_func_start FUN_0201CBEC +FUN_0201CBEC: ; 0x0201CBEC + push {r3, lr} + sub r0, r0, r2 + sub r2, r1, r3 + add r1, r0, #0x0 + mul r1, r0 + add r0, r2, #0x0 + mul r0, r2 + add r0, r1, r0 + lsl r0, r0, #0xc + bl FX_Sqrt + asr r0, r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201CC08 +FUN_0201CC08: ; 0x0201CC08 + push {r3, lr} + ldr r0, _0201CC20 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CC16 + bl ErrorHandling +_0201CC16: + ldr r0, _0201CC20 ; =0x021C5978 + mov r1, #0x0 + strh r1, [r0, #0x18] + strh r1, [r0, #0x1a] + pop {r3, pc} + .balign 4 +_0201CC20: .word 0x021C5978 + + thumb_func_start FUN_0201CC24 +FUN_0201CC24: ; 0x0201CC24 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + ldr r0, _0201CC74 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CC36 + bl ErrorHandling +_0201CC36: + cmp r4, #0x5 + bhs _0201CC3E + cmp r4, #0x0 + bne _0201CC44 +_0201CC3E: + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0201CC44: + ldr r0, _0201CC74 ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CC52 + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0201CC52: + add r0, r4, #0x0 + bl FUN_0201CE2C + cmp r0, #0x1 + bne _0201CC70 + mov r2, #0x0 + str r2, [sp, #0x0] + lsl r0, r4, #0x1 + str r0, [sp, #0x4] + mov r0, #0x2 + mov r1, #0x1 + add r3, r2, #0x0 + bl FUN_0201CC78 + mov r0, #0x1 +_0201CC70: + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0201CC74: .word 0x021C5978 + + thumb_func_start FUN_0201CC78 +FUN_0201CC78: ; 0x0201CC78 + push {r4, lr} + ldr r4, _0201CC9C ; =0x021C5978 + strh r0, [r4, #0x18] + ldr r0, _0201CCA0 ; =0x021C4918 + strb r1, [r0, #0x4] + ldr r0, _0201CCA4 ; =0x021C5938 + ldr r1, [sp, #0xc] + str r2, [r0, #0x0] + str r3, [r0, #0x4] + str r1, [r0, #0x8] + ldr r1, [sp, #0x8] + str r1, [r0, #0x54] + ldr r0, _0201CCA8 ; =0x021C5944 + mov r1, #0x9 + bl FUN_0201CCAC + pop {r4, pc} + nop +_0201CC9C: .word 0x021C5978 +_0201CCA0: .word 0x021C4918 +_0201CCA4: .word 0x021C5938 +_0201CCA8: .word 0x021C5944 + + thumb_func_start FUN_0201CCAC +FUN_0201CCAC: ; 0x0201CCAC + mov r3, #0x0 + cmp r1, #0x0 + ble _0201CCBE + add r2, r3, #0x0 +_0201CCB4: + add r3, r3, #0x1 + strh r2, [r0, #0x4] + add r0, #0x8 + cmp r3, r1 + blt _0201CCB4 +_0201CCBE: + bx lr + + thumb_func_start FUN_0201CCC0 +FUN_0201CCC0: ; 0x0201CCC0 + push {r4-r6, lr} + ldr r0, _0201CD00 ; =0x021C5978 + mov r5, #0x0 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + bne _0201CCD0 + mov r0, #0x1 + pop {r4-r6, pc} +_0201CCD0: + mov r4, #0x4 + add r6, r4, #0x0 +_0201CCD4: + bl TP_RequestAutoSamplingStopAsync + add r0, r4, #0x0 + bl TP_WaitBusy + add r0, r6, #0x0 + bl TP_CheckError + cmp r0, #0x0 + beq _0201CCEA + add r5, r5, #0x1 +_0201CCEA: + cmp r0, #0x0 + beq _0201CCF2 + cmp r5, #0x5 + bls _0201CCD4 +_0201CCF2: + cmp r5, #0x5 + bls _0201CCFA + mov r0, #0x2 + pop {r4-r6, pc} +_0201CCFA: + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0201CD00: .word 0x021C5978 + + thumb_func_start FUN_0201CD04 +FUN_0201CD04: ; 0x0201CD04 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0201CD34 ; =0x021C5978 + ldrh r0, [r0, #0x1a] + cmp r0, #0x0 + beq _0201CD14 + bl ErrorHandling +_0201CD14: + bl FUN_0201CCC0 + add r4, r0, #0x0 + cmp r4, #0x1 + bne _0201CD2E + mov r0, #0x0 + str r0, [sp, #0x0] + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + str r0, [sp, #0x4] + bl FUN_0201CC78 +_0201CD2E: + add r0, r4, #0x0 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0201CD34: .word 0x021C5978 + + thumb_func_start FUN_0201CD38 +FUN_0201CD38: ; 0x0201CD38 + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r0, _0201CD8C ; =0x021C5978 + add r6, r1, #0x0 + ldrh r0, [r0, #0x1a] + add r7, r2, #0x0 + mov r5, #0x3 + cmp r0, #0x0 + beq _0201CD4E + bl ErrorHandling +_0201CD4E: + ldr r0, _0201CD8C ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CD88 + bl TP_GetLatestIndexInAuto + add r5, r0, #0x0 + ldr r0, _0201CD90 ; =0x021C5944 + mov r1, #0x9 + bl FUN_0201CD94 + cmp r4, #0x0 + beq _0201CD70 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0201CFD0 +_0201CD70: + ldr r0, _0201CD8C ; =0x021C5978 + ldrh r0, [r0, #0x18] + cmp r0, #0x1 + bne _0201CD86 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl FUN_0201CE70 + add r5, r0, #0x0 + b _0201CD88 +_0201CD86: + mov r5, #0x1 +_0201CD88: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_0201CD8C: .word 0x021C5978 +_0201CD90: .word 0x021C5944 + + thumb_func_start FUN_0201CD94 +FUN_0201CD94: ; 0x0201CD94 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r7, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + beq _0201CDCA + add r4, r5, #0x0 + add r6, sp, #0x4 +_0201CDA6: + add r0, sp, #0x4 + add r1, r5, #0x0 + bl TP_GetCalibratedPoint + ldrh r0, [r6, #0x0] + add r7, r7, #0x1 + add r5, #0x8 + strh r0, [r4, #0x0] + ldrh r0, [r6, #0x2] + strh r0, [r4, #0x2] + ldrh r0, [r6, #0x4] + strh r0, [r4, #0x4] + ldrh r0, [r6, #0x6] + strh r0, [r4, #0x6] + ldr r0, [sp, #0x0] + add r4, #0x8 + cmp r7, r0 + blo _0201CDA6 +_0201CDCA: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_0201CDD0 +FUN_0201CDD0: ; 0x0201CDD0 + push {r3, lr} + ldr r0, _0201CDFC ; =0x021C5978 + ldrh r1, [r0, #0x1a] + cmp r1, #0x0 + beq _0201CDF8 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CDF8 + ldr r0, _0201CE00 ; =0x021C5938 + ldr r0, [r0, #0x8] + lsr r0, r0, #0x1 + bl FUN_0201CE2C + cmp r0, #0x1 + beq _0201CDF2 + bl ErrorHandling +_0201CDF2: + ldr r0, _0201CDFC ; =0x021C5978 + mov r1, #0x0 + strh r1, [r0, #0x1a] +_0201CDF8: + pop {r3, pc} + nop +_0201CDFC: .word 0x021C5978 +_0201CE00: .word 0x021C5938 + + thumb_func_start FUN_0201CE04 +FUN_0201CE04: ; 0x0201CE04 + push {r3, lr} + ldr r0, _0201CE28 ; =0x021C5978 + ldrh r1, [r0, #0x1a] + cmp r1, #0x1 + beq _0201CE26 + ldrh r0, [r0, #0x18] + cmp r0, #0x0 + beq _0201CE26 + bl FUN_0201CCC0 + cmp r0, #0x1 + beq _0201CE20 + bl ErrorHandling +_0201CE20: + ldr r0, _0201CE28 ; =0x021C5978 + mov r1, #0x1 + strh r1, [r0, #0x1a] +_0201CE26: + pop {r3, pc} + .balign 4 +_0201CE28: .word 0x021C5978 + + thumb_func_start FUN_0201CE2C +FUN_0201CE2C: ; 0x0201CE2C + push {r3-r7, lr} + mov r5, #0x0 + lsl r0, r0, #0x10 + ldr r7, _0201CE6C ; =0x021C5944 + add r6, r5, #0x0 + lsr r4, r0, #0x10 +_0201CE38: + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + mov r3, #0x9 + bl TP_RequestAutoSamplingStartAsync + mov r0, #0x2 + bl TP_WaitBusy + mov r0, #0x2 + bl TP_CheckError + cmp r0, #0x0 + beq _0201CE56 + add r5, r5, #0x1 +_0201CE56: + cmp r0, #0x0 + beq _0201CE5E + cmp r5, #0x5 + ble _0201CE38 +_0201CE5E: + cmp r5, #0x5 + ble _0201CE66 + mov r0, #0x2 + pop {r3-r7, pc} +_0201CE66: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0201CE6C: .word 0x021C5944 + + thumb_func_start FUN_0201CE70 +FUN_0201CE70: ; 0x0201CE70 + push {r3, lr} + cmp r0, #0x5 + bhi _0201CE9A + add r3, r0, r0 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0201CE82: ; jump table (using 16-bit offset) + .short _0201CE9A - _0201CE82 - 2; case 0 + .short _0201CE8E - _0201CE82 - 2; case 1 + .short _0201CE9A - _0201CE82 - 2; case 2 + .short _0201CE8E - _0201CE82 - 2; case 3 + .short _0201CE94 - _0201CE82 - 2; case 4 + .short _0201CE94 - _0201CE82 - 2; case 5 +_0201CE8E: + bl FUN_0201CEA0 + pop {r3, pc} +_0201CE94: + bl FUN_0201CF58 + pop {r3, pc} +_0201CE9A: + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201CEA0 +FUN_0201CEA0: ; 0x0201CEA0 + push {r3-r7, lr} + sub sp, #0x8 + ldr r5, _0201CF50 ; =0x021C5938 + str r1, [sp, #0x4] + ldr r1, [r5, #0x8] + str r0, [sp, #0x0] + add r7, r2, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + bls _0201CF46 +_0201CEB4: + ldr r0, [sp, #0x4] + sub r0, r0, r1 + add r0, r4, r0 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bpl _0201CEC8 + add r0, #0x9 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 +_0201CEC8: + lsl r1, r0, #0x3 + ldr r0, _0201CF54 ; =0x021C5938 + add r1, r0, r1 + ldrh r0, [r1, #0x10] + cmp r0, #0x1 + bne _0201CF3E + ldrh r0, [r1, #0x12] + cmp r0, #0x0 + bne _0201CF3E + ldr r2, [r5, #0x54] + ldr r0, [r5, #0x0] + lsl r2, r2, #0x3 + add r2, r0, r2 + add r0, r2, #0x0 + sub r0, #0x8 + ldrh r3, [r1, #0xc] + ldrh r0, [r0, #0x0] + cmp r0, r3 + blt _0201CEF2 + sub r3, r0, r3 + b _0201CEF4 +_0201CEF2: + sub r3, r3, r0 +_0201CEF4: + sub r6, r2, #0x6 + ldrh r0, [r1, #0xe] + ldrh r6, [r6, #0x0] + cmp r6, r0 + blt _0201CF02 + sub r0, r6, r0 + b _0201CF04 +_0201CF02: + sub r0, r0, r6 +_0201CF04: + cmp r3, r7 + bhs _0201CF0C + cmp r0, r7 + blo _0201CF3E +_0201CF0C: + ldrh r0, [r1, #0xc] + strh r0, [r2, #0x0] + ldrh r0, [r1, #0xe] + strh r0, [r2, #0x2] + ldrh r0, [r1, #0x10] + strh r0, [r2, #0x4] + ldrh r0, [r1, #0x12] + strh r0, [r2, #0x6] + ldr r0, [r5, #0x54] + add r0, r0, #0x1 + str r0, [r5, #0x54] + ldr r1, [r5, #0x4] + cmp r0, r1 + blo _0201CF3E + ldr r2, [sp, #0x0] + cmp r2, #0x1 + bne _0201CF36 + bl _u32_div_f + str r1, [r5, #0x54] + b _0201CF3E +_0201CF36: + mov r0, #0x0 + add sp, #0x8 + mvn r0, r0 + pop {r3-r7, pc} +_0201CF3E: + ldr r1, [r5, #0x8] + add r4, r4, #0x1 + cmp r4, r1 + blo _0201CEB4 +_0201CF46: + ldr r0, _0201CF50 ; =0x021C5938 + ldr r0, [r0, #0x54] + add sp, #0x8 + pop {r3-r7, pc} + nop +_0201CF50: .word 0x021C5938 +_0201CF54: .word 0x021C5938 + + thumb_func_start FUN_0201CF58 +FUN_0201CF58: ; 0x0201CF58 + push {r3-r7, lr} + ldr r5, _0201CFC8 ; =0x021C5938 + str r1, [sp, #0x0] + ldr r1, [r5, #0x8] + add r7, r0, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + bls _0201CFC0 +_0201CF68: + ldr r0, [sp, #0x0] + sub r0, r0, r1 + add r0, r4, r0 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + bpl _0201CF7C + add r1, #0x9 + lsl r0, r1, #0x10 + asr r1, r0, #0x10 +_0201CF7C: + ldr r0, [r5, #0x54] + lsl r1, r1, #0x3 + lsl r3, r0, #0x3 + ldr r0, _0201CFCC ; =0x021C5938 + ldr r6, [r5, #0x0] + add r2, r0, r1 + ldrh r0, [r2, #0xc] + add r1, r6, r3 + strh r0, [r6, r3] + ldrh r0, [r2, #0xe] + strh r0, [r1, #0x2] + ldrh r0, [r2, #0x10] + strh r0, [r1, #0x4] + ldrh r0, [r2, #0x12] + strh r0, [r1, #0x6] + ldr r0, [r5, #0x54] + add r0, r0, #0x1 + str r0, [r5, #0x54] + ldr r1, [r5, #0x4] + cmp r0, r1 + blo _0201CFB8 + cmp r7, #0x4 + bne _0201CFB2 + bl _u32_div_f + str r1, [r5, #0x54] + b _0201CFB8 +_0201CFB2: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0201CFB8: + ldr r1, [r5, #0x8] + add r4, r4, #0x1 + cmp r4, r1 + blo _0201CF68 +_0201CFC0: + ldr r0, _0201CFC8 ; =0x021C5938 + ldr r0, [r0, #0x54] + pop {r3-r7, pc} + nop +_0201CFC8: .word 0x021C5938 +_0201CFCC: .word 0x021C5938 + + thumb_func_start FUN_0201CFD0 +FUN_0201CFD0: ; 0x0201CFD0 + push {r4-r7} + mov r2, #0x0 + strh r2, [r0, #0x0] + add r3, r0, #0x0 + add r6, r2, #0x0 +_0201CFDA: + strh r6, [r3, #0x8] + strh r6, [r3, #0x6] + strh r6, [r3, #0x2] + strh r6, [r3, #0x4] + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x8 + blt _0201CFDA + ldr r2, _0201D038 ; =0x021C5938 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + bls _0201D034 + ldr r4, _0201D03C ; =0x021C5938 +_0201CFF4: + sub r3, r1, r3 + add r3, r6, r3 + add r3, r3, #0x1 + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + bpl _0201D006 + add r3, #0x9 + lsl r3, r3, #0x10 + asr r3, r3, #0x10 +_0201D006: + lsl r3, r3, #0x3 + add r5, r4, r3 + ldrh r3, [r5, #0x12] + cmp r3, #0x0 + bne _0201D02C + ldrh r3, [r0, #0x0] + ldrh r7, [r5, #0xc] + lsl r3, r3, #0x3 + add r3, r0, r3 + strh r7, [r3, #0x2] + ldrh r7, [r5, #0xe] + strh r7, [r3, #0x4] + ldrh r7, [r5, #0x10] + strh r7, [r3, #0x6] + ldrh r5, [r5, #0x12] + strh r5, [r3, #0x8] + ldrh r3, [r0, #0x0] + add r3, r3, #0x1 + strh r3, [r0, #0x0] +_0201D02C: + ldr r3, [r2, #0x8] + add r6, r6, #0x1 + cmp r6, r3 + blo _0201CFF4 +_0201D034: + pop {r4-r7} + bx lr + .balign 4 +_0201D038: .word 0x021C5938 +_0201D03C: .word 0x021C5938 + + thumb_func_start FUN_0201D040 +FUN_0201D040: ; 0x0201D040 + ldr r1, _0201D054 ; =0x04001000 + ldr r2, [r1, #0x0] + ldr r1, _0201D058 ; =0x00300010 + lsl r3, r1, #0x16 + ldr r3, [r3, #0x0] + and r2, r1 + and r1, r3 + ldr r3, _0201D05C ; =FUN_0201D060 + bx r3 + nop +_0201D054: .word 0x04001000 +_0201D058: .word 0x00300010 +_0201D05C: .word FUN_0201D060 + + thumb_func_start FUN_0201D060 +FUN_0201D060: ; 0x0201D060 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _0201D120 ; =0x021C5994 + str r1, [sp, #0x0] + ldr r0, [r0, #0x0] + str r2, [sp, #0x4] + cmp r0, #0x0 + bne _0201D11A + ldr r0, [r5, #0xc] + mov r1, #0x3c + bl FUN_02016998 + add r1, r0, #0x0 + ldr r0, _0201D120 ; =0x021C5994 + mov r2, #0x3c + str r1, [r0, #0x0] + mov r0, #0x0 + bl MIi_CpuClear32 + ldr r1, _0201D120 ; =0x021C5994 + ldr r2, [r5, #0x0] + ldr r0, [r1, #0x0] + str r2, [r0, #0x4] + ldr r1, [r1, #0x0] + ldr r0, [r5, #0xc] + ldr r2, [r1, #0x4] + mov r1, #0x54 + mul r1, r2 + bl FUN_02016998 + ldr r7, _0201D120 ; =0x021C5994 + mov r6, #0x0 + ldr r1, [r7, #0x0] + str r0, [r1, #0x0] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + ble _0201D0C2 + add r4, r6, #0x0 +_0201D0AE: + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r4 + bl FUN_0201D690 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r4, #0x54 + cmp r6, r0 + blt _0201D0AE +_0201D0C2: + ldr r0, [sp, #0x0] + bl FUN_0201DED0 + ldr r1, _0201D120 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x2c] + ldr r0, [sp, #0x4] + bl FUN_0201DED0 + ldr r2, _0201D120 ; =0x021C5994 + mov r3, #0x1 + ldr r1, [r2, #0x0] + lsl r3, r3, #0x1a + str r0, [r1, #0x30] + ldr r0, [r3, #0x0] + ldr r1, _0201D124 ; =0xFFCFFFEF + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + and r4, r1 + orr r0, r4 + str r0, [r3, #0x0] + ldr r3, _0201D128 ; =0x04001000 + ldr r0, [r3, #0x0] + and r1, r0 + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r3, #0x0] + ldr r1, [r2, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + ldr r1, _0201D120 ; =0x021C5994 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r5, #0x8] + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + add r1, r0, #0x0 + ldr r2, [r5, #0xc] + add r0, r4, #0x0 + bl FUN_0201DC58 +_0201D11A: + add sp, #0x8 + pop {r3-r7, pc} + nop +_0201D120: .word 0x021C5994 +_0201D124: .word 0xFFCFFFEF +_0201D128: .word 0x04001000 + + thumb_func_start FUN_0201D12C +FUN_0201D12C: ; 0x0201D12C + push {r3, lr} + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D162 + ldr r0, [r0, #0x34] + bl FUN_0201DCC0 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl FUN_0201DCC0 + bl FUN_0201D374 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201D164 ; =0x021C5994 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201D164 ; =0x021C5994 + mov r1, #0x0 + str r1, [r0, #0x0] +_0201D162: + pop {r3, pc} + .balign 4 +_0201D164: .word 0x021C5994 + + thumb_func_start FUN_0201D168 +FUN_0201D168: ; 0x0201D168 + push {r3, lr} + ldr r0, _0201D190 ; =0x021C5994 + mov r2, #0x0 + ldr r1, [r0, #0x0] + str r2, [r1, #0xc] + ldr r1, [r0, #0x0] + str r2, [r1, #0x10] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl FUN_0201DD00 + ldr r0, _0201D190 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl FUN_0201DD00 + bl FUN_0201DAE8 + pop {r3, pc} + nop +_0201D190: .word 0x021C5994 + + thumb_func_start FUN_0201D194 +FUN_0201D194: ; 0x0201D194 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r3, r1, #0x0 + cmp r2, #0x1 + add r0, sp, #0x4 + bne _0201D1CA + str r0, [sp, #0x0] + ldr r0, _0201D1F4 ; =0x021C5994 + add r2, r3, #0x0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x1c] + add r3, sp, #0x8 + bl FUN_0201DFF0 + ldr r3, [sp, #0x4] + cmp r3, #0x0 + ble _0201D1F0 + mov r2, #0x0 + str r2, [sp, #0x0] + ldr r1, [sp, #0x8] + mov r0, #0x1 + bl FUN_0201D948 + add sp, #0xc + pop {r3-r4, pc} +_0201D1CA: + str r0, [sp, #0x0] + ldr r0, _0201D1F4 ; =0x021C5994 + add r2, r3, #0x0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0x20] + add r3, sp, #0x8 + bl FUN_0201DFF0 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201D1F0 + str r0, [sp, #0x0] + mov r1, #0x0 + ldr r2, [sp, #0x8] + mov r0, #0x2 + add r3, r1, #0x0 + bl FUN_0201D948 +_0201D1F0: + add sp, #0xc + pop {r3-r4, pc} + .balign 4 +_0201D1F4: .word 0x021C5994 + + thumb_func_start FUN_0201D1F8 +FUN_0201D1F8: ; 0x0201D1F8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + bl FUN_0201D2AC + cmp r0, #0x1 + bne _0201D20A + bl ErrorHandling +_0201D20A: + bl FUN_0201DAAC + add r4, r0, #0x0 + bne _0201D21A + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201D21A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201D6B4 + cmp r0, #0x0 + bne _0201D22A + mov r0, #0x0 + pop {r3-r5, pc} +_0201D22A: + add r0, r4, #0x0 + bl FUN_0201D724 + cmp r0, #0x0 + bne _0201D23E + ldr r0, [r4, #0xc] + bl FUN_0201D324 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D23E: + ldr r0, _0201D24C ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + add r0, r0, #0x1 + str r0, [r1, #0x8] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0201D24C: .word 0x021C5994 + + thumb_func_start FUN_0201D250 +FUN_0201D250: ; 0x0201D250 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + bl FUN_0201D2AC + cmp r0, #0x1 + bne _0201D262 + bl ErrorHandling +_0201D262: + bl FUN_0201DAAC + add r4, r0, #0x0 + bne _0201D272 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201D272: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201D6B4 + cmp r0, #0x0 + bne _0201D282 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D282: + mov r0, #0x1 + str r0, [r4, #0x40] + add r0, r4, #0x0 + bl FUN_0201D724 + cmp r0, #0x0 + bne _0201D29A + ldr r0, [r4, #0xc] + bl FUN_0201D324 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D29A: + ldr r0, _0201D2A8 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + add r0, r0, #0x1 + str r0, [r1, #0x8] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0201D2A8: .word 0x021C5994 + + thumb_func_start FUN_0201D2AC +FUN_0201D2AC: ; 0x0201D2AC + push {r3-r4} + ldr r1, _0201D2D8 ; =0x021C5994 + mov r2, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201D2D2 + ldr r3, [r4, #0x0] +_0201D2BC: + ldr r1, [r3, #0xc] + cmp r0, r1 + bne _0201D2C8 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0201D2C8: + ldr r1, [r4, #0x4] + add r2, r2, #0x1 + add r3, #0x54 + cmp r2, r1 + blt _0201D2BC +_0201D2D2: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 +_0201D2D8: .word 0x021C5994 + + thumb_func_start FUN_0201D2DC +FUN_0201D2DC: ; 0x0201D2DC + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bne _0201D2E8 + bl ErrorHandling +_0201D2E8: + add r0, r4, #0x0 + bl FUN_0201D7F8 + add r4, r0, #0x0 + bne _0201D2F6 + bl ErrorHandling +_0201D2F6: + str r5, [r4, #0x0] + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201D30C + ldr r1, [r4, #0x34] + ldr r2, [r5, #0x14] + ldr r3, [r5, #0x10] + mov r0, #0x13 + bl FUN_0201C2C8 +_0201D30C: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201D320 + ldr r1, [r4, #0x38] + ldr r2, [r5, #0x14] + ldr r3, [r5, #0x10] + mov r0, #0x23 + bl FUN_0201C2C8 +_0201D320: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201D324 +FUN_0201D324: ; 0x0201D324 + push {r3-r7, lr} + add r6, r0, #0x0 + mov r5, #0x1 + mov r7, #0x0 +_0201D32C: + add r0, r6, #0x0 + bl FUN_0201D7F8 + add r4, r0, #0x0 + bne _0201D33A + bl ErrorHandling +_0201D33A: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0201D34E + add r0, r4, #0x0 + add r0, #0x10 + bl FUN_0201D4F0 + b _0201D350 +_0201D34E: + add r5, r7, #0x0 +_0201D350: + cmp r5, #0x0 + bne _0201D32C + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D36E + add r0, r4, #0x0 + bl FUN_0201D7E0 + ldr r0, _0201D370 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x8] + sub r0, r0, #0x1 + str r0, [r1, #0x8] +_0201D36E: + pop {r3-r7, pc} + .balign 4 +_0201D370: .word 0x021C5994 + + thumb_func_start FUN_0201D374 +FUN_0201D374: ; 0x0201D374 + push {r4-r6, lr} + ldr r6, _0201D3AC ; =0x021C5994 + mov r4, #0x0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x4] + cmp r0, #0x0 + ble _0201D3AA + add r5, r4, #0x0 +_0201D384: + ldr r1, [r1, #0x0] + add r0, r1, r5 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D39E + add r0, r1, r5 + bl FUN_0201D7E0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x8] + sub r0, r0, #0x1 + str r0, [r1, #0x8] +_0201D39E: + ldr r1, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r1, #0x4] + add r5, #0x54 + cmp r4, r0 + blt _0201D384 +_0201D3AA: + pop {r4-r6, pc} + .balign 4 +_0201D3AC: .word 0x021C5994 + + thumb_func_start FUN_0201D3B0 +FUN_0201D3B0: ; 0x0201D3B0 + push {r4, lr} + bl FUN_0201D7F8 + add r4, r0, #0x0 + bne _0201D3BE + bl ErrorHandling +_0201D3BE: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D3CC + mov r0, #0x0 + pop {r4, pc} +_0201D3CC: + add r4, #0x10 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201D3D4 +FUN_0201D3D4: ; 0x0201D3D4 + push {r3-r5, lr} + sub sp, #0x18 + add r5, r1, #0x0 + bl FUN_0201D7F8 + add r4, r0, #0x0 + bne _0201D3E6 + bl ErrorHandling +_0201D3E6: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D3F6 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D3F6: + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r0, [r4, #0x4] + add r1, sp, #0x14 + add r2, sp, #0x10 + add r3, r5, #0x0 + bl FUN_0201D86C + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _0201D41A + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D41A: + add r0, r4, #0x0 + mov r1, #0x3 + add r0, #0x3c + strb r1, [r0, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + bl FUN_0201D918 + mov r0, #0x1 + str r0, [r4, #0x48] + ldr r0, [sp, #0xc] + str r0, [r4, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r4, #0x50] + add r0, r4, #0x0 + bl FUN_0201DA38 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r4, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl FUN_0201D948 + add r4, #0x10 + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201D458 +FUN_0201D458: ; 0x0201D458 + push {r3-r5, lr} + sub sp, #0x18 + bl FUN_0201D6D8 + add r4, r0, #0x0 + bne _0201D468 + bl ErrorHandling +_0201D468: + bl FUN_0201DAAC + add r5, r0, #0x0 + bne _0201D474 + bl ErrorHandling +_0201D474: + add r0, r4, #0x0 + add r0, #0x3c + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0201D484 + add sp, #0x18 + mov r0, #0x0 + pop {r3-r5, pc} +_0201D484: + add r3, r5, #0x0 + mov r2, #0xa +_0201D488: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0201D488 + ldr r0, [r4, #0x0] + mov r1, #0x4 + str r0, [r3, #0x0] + add r0, r5, #0x0 + add r0, #0x3c + strb r1, [r0, #0x0] + ldr r0, [r5, #0x4] + mov r1, #0x1 + tst r1, r0 + beq _0201D4A8 + ldr r3, [r5, #0x4c] + b _0201D4AA +_0201D4A8: + ldr r3, [r5, #0x50] +_0201D4AA: + add r1, sp, #0xc + str r1, [sp, #0x0] + add r1, sp, #0x8 + str r1, [sp, #0x4] + add r1, sp, #0x14 + add r2, sp, #0x10 + bl FUN_0201D86C + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r5, #0x0 + bl FUN_0201D918 + mov r0, #0x1 + str r0, [r5, #0x48] + ldr r0, [sp, #0xc] + str r0, [r5, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r5, #0x50] + add r0, r5, #0x0 + bl FUN_0201DA38 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl FUN_0201D948 + add r5, #0x10 + add r0, r5, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201D4F0 +FUN_0201D4F0: ; 0x0201D4F0 + push {r4-r6, lr} + ldr r2, _0201D564 ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r4, [r5, #0x4] + cmp r4, #0x0 + ble _0201D52E + ldr r2, [r5, #0x0] + add r3, r1, #0x0 +_0201D502: + add r6, r2, #0x0 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x3 + beq _0201D518 + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x4 + bne _0201D522 +_0201D518: + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x10 + cmp r6, r0 + beq _0201D52E +_0201D522: + ldr r6, [r5, #0x4] + add r1, r1, #0x1 + add r2, #0x54 + add r3, #0x54 + cmp r1, r6 + blt _0201D502 +_0201D52E: + cmp r1, r4 + bge _0201D562 + mov r0, #0x54 + add r4, r1, #0x0 + mul r4, r0 + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl FUN_0201DE4C + ldr r0, _0201D564 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r2, [r1, #0x0] + add r2, #0x3c + ldrb r1, [r2, r4] + cmp r1, #0x3 + bne _0201D554 + mov r0, #0x2 + strb r0, [r2, r4] + pop {r4-r6, pc} +_0201D554: + mov r1, #0x0 + strb r1, [r2, r4] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r4 + bl FUN_0201D690 +_0201D562: + pop {r4-r6, pc} + .balign 4 +_0201D564: .word 0x021C5994 + + thumb_func_start FUN_0201D568 +FUN_0201D568: ; 0x0201D568 + push {r3-r7, lr} + sub sp, #0x18 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + cmp r1, #0x0 + bne _0201D5A0 + add r1, r5, #0x0 + add r2, sp, #0x14 + add r3, sp, #0x10 + bl FUN_0201DF44 + add r7, r0, #0x0 + beq _0201D5E0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0201DF94 + str r5, [r4, #0x8] + str r6, [r4, #0x0] + cmp r5, #0x1 + bne _0201D59A + ldr r0, [sp, #0x14] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D59A: + ldr r0, [sp, #0x10] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D5A0: + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r1, sp, #0x14 + add r2, sp, #0x10 + add r3, r6, #0x0 + bl FUN_0201D86C + add r7, r0, #0x0 + beq _0201D5E0 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + add r0, r5, #0x0 + bl FUN_0201D948 + str r5, [r4, #0x8] + cmp r5, #0x1 + bne _0201D5D8 + ldr r0, [sp, #0xc] + str r0, [r4, #0x0] + ldr r0, [sp, #0x14] + str r0, [r4, #0x4] + b _0201D5E0 +_0201D5D8: + ldr r0, [sp, #0x8] + str r0, [r4, #0x0] + ldr r0, [sp, #0x10] + str r0, [r4, #0x4] +_0201D5E0: + add r0, r7, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201D5E8 +FUN_0201D5E8: ; 0x0201D5E8 + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x8] + mov r0, #0x1 + tst r0, r1 + beq _0201D61E + ldr r1, _0201D654 ; =0x021C5994 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + add r5, r0, #0x0 + ldr r0, _0201D654 ; =0x021C5994 + ldr r1, [r4, #0x4] + ldr r2, [r0, #0x0] + ldr r0, [r2, #0x1c] + sub r0, r1, r0 + ldr r1, [r2, #0x2c] + bl FUN_0201DF2C + ldr r2, _0201D654 ; =0x021C5994 + add r1, r5, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x34] + bl FUN_0201DDFC +_0201D61E: + ldr r1, [r4, #0x8] + mov r0, #0x2 + tst r0, r1 + beq _0201D650 + ldr r1, _0201D654 ; =0x021C5994 + ldr r0, [r4, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + add r5, r0, #0x0 + ldr r0, _0201D654 ; =0x021C5994 + ldr r1, [r4, #0x4] + ldr r2, [r0, #0x0] + ldr r0, [r2, #0x20] + sub r0, r1, r0 + ldr r1, [r2, #0x30] + bl FUN_0201DF2C + ldr r2, _0201D654 ; =0x021C5994 + add r1, r5, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x38] + bl FUN_0201DDFC +_0201D650: + pop {r3-r5, pc} + nop +_0201D654: .word 0x021C5994 + + thumb_func_start FUN_0201D658 +FUN_0201D658: ; 0x0201D658 + push {r3, lr} + ldr r0, _0201D670 ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201D666 + bl ErrorHandling +_0201D666: + ldr r1, _0201D670 ; =0x021C5994 + mov r2, #0x0 + ldr r0, [r1, #0x0] + str r2, [r1, #0x0] + pop {r3, pc} + .balign 4 +_0201D670: .word 0x021C5994 + + thumb_func_start FUN_0201D674 +FUN_0201D674: ; 0x0201D674 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0201D68C ; =0x021C5994 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201D684 + bl ErrorHandling +_0201D684: + ldr r0, _0201D68C ; =0x021C5994 + str r4, [r0, #0x0] + pop {r4, pc} + nop +_0201D68C: .word 0x021C5994 + + thumb_func_start FUN_0201D690 +FUN_0201D690: ; 0x0201D690 + mov r2, #0x0 + str r2, [r0, #0x0] + str r2, [r0, #0x4] + strb r2, [r0, #0x8] + sub r1, r2, #0x1 + str r1, [r0, #0xc] + str r2, [r0, #0x34] + add r1, r0, #0x0 + str r2, [r0, #0x38] + add r1, #0x3c + strb r2, [r1, #0x0] + str r2, [r0, #0x40] + ldr r3, _0201D6B0 ; =FUN_020B1A24 + add r0, #0x10 + bx r3 + nop +_0201D6B0: .word FUN_020B1A24 + + thumb_func_start FUN_0201D6B4 +FUN_0201D6B4: ; 0x0201D6B4 + ldr r2, [r0, #0x0] + str r2, [r1, #0x0] + ldr r2, [r0, #0x8] + str r2, [r1, #0xc] + ldr r2, [r0, #0x4] + str r2, [r1, #0x4] + ldr r2, [r1, #0x0] + ldr r2, [r2, #0xc] + lsr r2, r2, #0x8 + strb r2, [r1, #0x8] + ldr r0, [r0, #0xc] + str r0, [r1, #0x44] + mov r0, #0x0 + str r0, [r1, #0x48] + str r0, [r1, #0x4c] + str r0, [r1, #0x50] + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0201D6D8 +FUN_0201D6D8: ; 0x0201D6D8 + push {r3-r6} + ldr r2, _0201D720 ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r4, [r5, #0x4] + cmp r4, #0x0 + ble _0201D70A + ldr r2, [r5, #0x0] + add r3, r1, #0x0 +_0201D6EA: + add r6, r2, #0x0 + add r6, #0x3c + ldrb r6, [r6, #0x0] + cmp r6, #0x0 + beq _0201D6FE + ldr r6, [r5, #0x0] + add r6, r6, r3 + add r6, #0x10 + cmp r6, r0 + beq _0201D70A +_0201D6FE: + ldr r6, [r5, #0x4] + add r1, r1, #0x1 + add r2, #0x54 + add r3, #0x54 + cmp r1, r6 + blt _0201D6EA +_0201D70A: + cmp r1, r4 + blt _0201D714 + mov r0, #0x0 + pop {r3-r6} + bx lr +_0201D714: + mov r0, #0x54 + ldr r2, [r5, #0x0] + mul r0, r1 + add r0, r2, r0 + pop {r3-r6} + bx lr + .balign 4 +_0201D720: .word 0x021C5994 + + thumb_func_start FUN_0201D724 +FUN_0201D724: ; 0x0201D724 + push {r3, lr} + ldrb r1, [r0, #0x8] + mov r2, #0x1 + cmp r1, #0x0 + beq _0201D736 + mov r1, #0x2 + add r0, #0x3c + strb r1, [r0, #0x0] + b _0201D750 +_0201D736: + add r1, r0, #0x0 + add r1, #0x3c + strb r2, [r1, #0x0] + ldr r1, [r0, #0x44] + cmp r1, #0x0 + bne _0201D74A + bl FUN_0201D754 + add r2, r0, #0x0 + b _0201D750 +_0201D74A: + bl FUN_0201D788 + add r2, r0, #0x0 +_0201D750: + add r0, r2, #0x0 + pop {r3, pc} + + thumb_func_start FUN_0201D754 +FUN_0201D754: ; 0x0201D754 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r0, [r0, #0x10] + add r2, sp, #0x4 + add r3, sp, #0x0 + bl FUN_0201DF44 + add r4, r0, #0x0 + beq _0201D780 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl FUN_0201D858 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r0, [r0, #0x10] + bl FUN_0201DF94 +_0201D780: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201D788 +FUN_0201D788: ; 0x0201D788 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0x0 + add r0, sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + ldr r3, [r4, #0x0] + ldr r0, [r4, #0x4] + ldr r3, [r3, #0x10] + add r1, sp, #0x14 + add r2, sp, #0x10 + bl FUN_0201D86C + cmp r0, #0x0 + bne _0201D7AE + add sp, #0x18 + mov r0, #0x0 + pop {r4, pc} +_0201D7AE: + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + bl FUN_0201D918 + mov r0, #0x1 + str r0, [r4, #0x48] + ldr r0, [sp, #0xc] + str r0, [r4, #0x4c] + ldr r0, [sp, #0x8] + str r0, [r4, #0x50] + add r0, r4, #0x0 + bl FUN_0201D9B0 + ldr r0, [sp, #0x8] + str r0, [sp, #0x0] + ldr r0, [r4, #0x4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0xc] + bl FUN_0201D948 + mov r0, #0x1 + add sp, #0x18 + pop {r4, pc} + + thumb_func_start FUN_0201D7E0 +FUN_0201D7E0: ; 0x0201D7E0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x48] + cmp r1, #0x0 + beq _0201D7EE + bl FUN_0201DE4C +_0201D7EE: + add r0, r4, #0x0 + bl FUN_0201D690 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201D7F8 +FUN_0201D7F8: ; 0x0201D7F8 + push {r4-r5} + ldr r2, _0201D82C ; =0x021C5994 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r2, [r5, #0x4] + cmp r2, #0x0 + ble _0201D824 + ldr r2, [r5, #0x0] + add r4, r2, #0x0 +_0201D80A: + ldr r3, [r4, #0xc] + cmp r0, r3 + bne _0201D81A + mov r0, #0x54 + mul r0, r1 + add r0, r2, r0 + pop {r4-r5} + bx lr +_0201D81A: + ldr r3, [r5, #0x4] + add r1, r1, #0x1 + add r4, #0x54 + cmp r1, r3 + blt _0201D80A +_0201D824: + mov r0, #0x0 + pop {r4-r5} + bx lr + nop +_0201D82C: .word 0x021C5994 + + thumb_func_start FUN_0201D830 +FUN_0201D830: ; 0x0201D830 + cmp r1, #0x1 + bne _0201D83C + mov r1, #0x1 + lsl r1, r1, #0x1a + ldr r2, [r1, #0x0] + b _0201D840 +_0201D83C: + ldr r1, _0201D850 ; =0x04001000 + ldr r2, [r1, #0x0] +_0201D840: + ldr r1, _0201D854 ; =0x00300010 + and r2, r1 + ldr r1, [r0, #0x0] + str r2, [r1, #0x8] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x8] + bx lr + nop +_0201D850: .word 0x04001000 +_0201D854: .word 0x00300010 + + thumb_func_start FUN_0201D858 +FUN_0201D858: ; 0x0201D858 + push {r3, lr} + str r1, [r0, #0x34] + str r2, [r0, #0x38] + ldrb r1, [r0, #0x8] + cmp r1, #0x0 + bne _0201D868 + bl FUN_0201D9B0 +_0201D868: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201D86C +FUN_0201D86C: ; 0x0201D86C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x1c] + add r6, r2, #0x0 + str r0, [sp, #0x1c] + mov r2, #0x1 + add r0, r5, #0x0 + add r4, r1, #0x0 + str r3, [sp, #0x0] + ldr r7, [sp, #0x18] + tst r0, r2 + beq _0201D8C4 + ldr r1, _0201D914 ; =0x021C5994 + add r0, r3, #0x0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl FUN_0201DF10 + ldr r1, _0201D914 ; =0x021C5994 + str r0, [r7, #0x0] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x34] + bl FUN_0201DD74 + mov r1, #0x0 + mvn r1, r1 + str r0, [r4, #0x0] + cmp r0, r1 + bne _0201D8B8 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} +_0201D8B8: + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl FUN_0201DF3C + str r0, [r4, #0x0] +_0201D8C4: + mov r0, #0x2 + tst r0, r5 + beq _0201D90E + ldr r1, _0201D914 ; =0x021C5994 + ldr r0, [sp, #0x0] + ldr r1, [r1, #0x0] + mov r2, #0x1 + ldr r1, [r1, #0x30] + bl FUN_0201DF10 + ldr r1, [sp, #0x1c] + str r0, [r1, #0x0] + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x38] + bl FUN_0201DD74 + mov r1, #0x0 + mvn r1, r1 + str r0, [r6, #0x0] + cmp r0, r1 + bne _0201D902 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} +_0201D902: + ldr r1, _0201D914 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl FUN_0201DF3C + str r0, [r6, #0x0] +_0201D90E: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0201D914: .word 0x021C5994 + + thumb_func_start FUN_0201D918 +FUN_0201D918: ; 0x0201D918 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r3, #0x1 + tst r3, r4 + beq _0201D92C + ldr r3, _0201D944 ; =0x021C5994 + ldr r3, [r3, #0x0] + ldr r3, [r3, #0x1c] + add r1, r1, r3 + str r1, [r0, #0x34] +_0201D92C: + ldr r3, [r0, #0x4] + mov r1, #0x2 + tst r1, r3 + beq _0201D93E + ldr r1, _0201D944 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x20] + add r1, r2, r1 + str r1, [r0, #0x38] +_0201D93E: + pop {r3-r4} + bx lr + nop +_0201D944: .word 0x021C5994 + + thumb_func_start FUN_0201D948 +FUN_0201D948: ; 0x0201D948 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x1 + add r4, r1, #0x0 + add r6, r2, #0x0 + tst r0, r5 + beq _0201D97C + ldr r1, _0201D9AC ; =0x021C5994 + add r0, r3, #0x0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + ldr r1, _0201D9AC ; =0x021C5994 + add r7, r0, #0x0 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + ldr r2, _0201D9AC ; =0x021C5994 + add r1, r7, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x34] + bl FUN_0201DD18 +_0201D97C: + mov r0, #0x2 + tst r0, r5 + beq _0201D9A8 + ldr r1, _0201D9AC ; =0x021C5994 + ldr r0, [sp, #0x18] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + ldr r1, _0201D9AC ; =0x021C5994 + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + add r0, r6, #0x0 + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + ldr r2, _0201D9AC ; =0x021C5994 + add r1, r4, #0x0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x38] + bl FUN_0201DD18 +_0201D9A8: + pop {r3-r7, pc} + nop +_0201D9AC: .word 0x021C5994 + + thumb_func_start FUN_0201D9B0 +FUN_0201D9B0: ; 0x0201D9B0 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + bl FUN_020B1A24 + ldr r1, [r4, #0x4] + cmp r1, #0x3 + beq _0201D9C8 + add r0, r4, #0x0 + bl FUN_0201D9DC + pop {r4, pc} +_0201D9C8: + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_0201D9DC + add r0, r4, #0x0 + mov r1, #0x2 + bl FUN_0201D9DC + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201D9DC +FUN_0201D9DC: ; 0x0201D9DC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x40] + add r4, r1, #0x0 + cmp r2, #0x0 + beq _0201D9EE + bl FUN_0201D830 + b _0201D9F0 +_0201D9EE: + add r0, r4, #0x0 +_0201D9F0: + cmp r4, #0x1 + bne _0201D9FE + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r5, #0x34] + ldr r2, [r2, #0x0] + b _0201DA04 +_0201D9FE: + ldr r2, _0201DA34 ; =0x04001000 + ldr r1, [r5, #0x38] + ldr r2, [r2, #0x0] +_0201DA04: + cmp r0, #0x0 + ldr r0, [r5, #0x0] + bne _0201DA16 + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl FUN_020B1528 + b _0201DA20 +_0201DA16: + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl FUN_020B1768 +_0201DA20: + cmp r4, #0x1 + bne _0201DA2C + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_0201DA2C: + ldr r0, _0201DA34 ; =0x04001000 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} + nop +_0201DA34: .word 0x04001000 + + thumb_func_start FUN_0201DA38 +FUN_0201DA38: ; 0x0201DA38 + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + bl FUN_020B1A24 + ldr r1, [r4, #0x4] + cmp r1, #0x3 + beq _0201DA50 + add r0, r4, #0x0 + bl FUN_0201DA64 + pop {r4, pc} +_0201DA50: + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_0201DA64 + add r0, r4, #0x0 + mov r1, #0x2 + bl FUN_0201DA64 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201DA64 +FUN_0201DA64: ; 0x0201DA64 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0x40] + add r4, r1, #0x0 + cmp r2, #0x0 + beq _0201DA74 + bl FUN_0201D830 +_0201DA74: + cmp r4, #0x1 + bne _0201DA82 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r5, #0x34] + ldr r0, [r0, #0x0] + b _0201DA88 +_0201DA82: + ldr r0, _0201DAA8 ; =0x04001000 + ldr r1, [r5, #0x38] + ldr r0, [r0, #0x0] +_0201DA88: + ldr r0, [r5, #0x0] + add r5, #0x10 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl FUN_020B1340 + cmp r4, #0x1 + bne _0201DAA0 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_0201DAA0: + ldr r0, _0201DAA8 ; =0x04001000 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} + nop +_0201DAA8: .word 0x04001000 + + thumb_func_start FUN_0201DAAC +FUN_0201DAAC: ; 0x0201DAAC + push {r3-r4} + ldr r1, _0201DAE4 ; =0x021C5994 + mov r0, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201DADC + ldr r1, [r4, #0x0] + add r3, r1, #0x0 +_0201DABE: + add r2, r3, #0x0 + add r2, #0x3c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0201DAD2 + mov r2, #0x54 + mul r2, r0 + add r0, r1, r2 + pop {r3-r4} + bx lr +_0201DAD2: + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + add r3, #0x54 + cmp r0, r2 + blt _0201DABE +_0201DADC: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201DAE4: .word 0x021C5994 + + thumb_func_start FUN_0201DAE8 +FUN_0201DAE8: ; 0x0201DAE8 + push {r3, lr} + bl GX_GetBankForOBJ + cmp r0, #0x30 + bgt _0201DB18 + bge _0201DB60 + cmp r0, #0x10 + bgt _0201DB12 + bge _0201DB54 + cmp r0, #0x3 + bhi _0201DB90 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0201DB0A: ; jump table (using 16-bit offset) + .short _0201DB32 - _0201DB0A - 2; case 0 + .short _0201DB78 - _0201DB0A - 2; case 1 + .short _0201DB78 - _0201DB0A - 2; case 2 + .short _0201DB84 - _0201DB0A - 2; case 3 +_0201DB12: + cmp r0, #0x20 + beq _0201DB3C + b _0201DB90 +_0201DB18: + cmp r0, #0x50 + bgt _0201DB24 + bge _0201DB60 + cmp r0, #0x40 + beq _0201DB3C + b _0201DB90 +_0201DB24: + cmp r0, #0x60 + bgt _0201DB2C + beq _0201DB48 + b _0201DB90 +_0201DB2C: + cmp r0, #0x70 + beq _0201DB6C + b _0201DB90 +_0201DB32: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x14] + b _0201DB98 +_0201DB3C: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB48: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB54: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + str r1, [r0, #0x14] + b _0201DB98 +_0201DB60: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x5 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB6C: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x6 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xe + str r1, [r0, #0x14] + b _0201DB98 +_0201DB78: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + str r1, [r0, #0x14] + b _0201DB98 +_0201DB84: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x12 + str r1, [r0, #0x14] + b _0201DB98 +_0201DB90: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x14] +_0201DB98: + bl GX_GetBankForSubOBJ + cmp r0, #0x0 + beq _0201DBAE + cmp r0, #0x8 + beq _0201DBC2 + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + beq _0201DBB8 + b _0201DBCE +_0201DBAE: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBB8: + ldr r0, _0201DC38 ; =0x021C5994 + lsl r1, r1, #0x6 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBC2: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x10 + str r1, [r0, #0x18] + b _0201DBD6 +_0201DBCE: + ldr r0, _0201DC38 ; =0x021C5994 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x18] +_0201DBD6: + ldr r0, _0201DC38 ; =0x021C5994 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x24] + ldr r1, [r1, #0x2c] + bl FUN_0201DF3C + ldr r1, _0201DC38 ; =0x021C5994 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x14] + sub r0, r2, r0 + str r0, [r3, #0x1c] + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl FUN_0201DF3C + ldr r1, _0201DC38 ; =0x021C5994 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x18] + sub r0, r2, r0 + str r0, [r3, #0x20] + ldr r1, [r1, #0x0] + mov r2, #0x0 + ldr r0, [r1, #0x1c] + cmp r0, #0x0 + blt _0201DC12 + ldr r0, [r1, #0x20] + cmp r0, #0x0 + blt _0201DC12 + mov r2, #0x1 +_0201DC12: + cmp r2, #0x0 + bne _0201DC1A + bl ErrorHandling +_0201DC1A: + ldr r0, _0201DC38 ; =0x021C5994 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x1c] + cmp r0, #0x0 + blt _0201DC2E + ldr r0, [r1, #0x20] + cmp r0, #0x0 + blt _0201DC2E + mov r2, #0x1 +_0201DC2E: + cmp r2, #0x0 + bne _0201DC36 + bl ErrorHandling +_0201DC36: + pop {r3, pc} + .balign 4 +_0201DC38: .word 0x021C5994 + + thumb_func_start FUN_0201DC3C +FUN_0201DC3C: ; 0x0201DC3C + push {r3, lr} + ldr r0, _0201DC54 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bl FUN_0201DD00 + ldr r0, _0201DC54 ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + bl FUN_0201DD00 + pop {r3, pc} + .balign 4 +_0201DC54: .word 0x021C5994 + + thumb_func_start FUN_0201DC58 +FUN_0201DC58: ; 0x0201DC58 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0201DCBC ; =0x021C5994 + add r4, r1, #0x0 + ldr r1, [r0, #0x0] + add r6, r2, #0x0 + str r5, [r1, #0x24] + ldr r1, [r0, #0x0] + str r4, [r1, #0x28] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + cmp r0, #0x0 + beq _0201DC76 + bl FUN_02016A18 +_0201DC76: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x38] + cmp r0, #0x0 + beq _0201DC84 + bl FUN_02016A18 +_0201DC84: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x24] + cmp r0, #0x0 + beq _0201DC9C + add r0, r6, #0x0 + lsr r1, r5, #0x3 + bl FUN_02016998 + ldr r1, _0201DCBC ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x34] +_0201DC9C: + ldr r0, _0201DCBC ; =0x021C5994 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + cmp r0, #0x0 + beq _0201DCB4 + add r0, r6, #0x0 + lsr r1, r4, #0x3 + bl FUN_02016998 + ldr r1, _0201DCBC ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x38] +_0201DCB4: + bl FUN_0201DC3C + pop {r4-r6, pc} + nop +_0201DCBC: .word 0x021C5994 + + thumb_func_start FUN_0201DCC0 +FUN_0201DCC0: ; 0x0201DCC0 + push {r3, lr} + cmp r0, #0x0 + beq _0201DCE2 + ldr r1, _0201DCE4 ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x34] + cmp r0, r1 + bne _0201DCDA + mov r1, #0x0 + str r1, [r2, #0x24] + bl FUN_02016A18 + pop {r3, pc} +_0201DCDA: + mov r1, #0x0 + str r1, [r2, #0x28] + bl FUN_02016A18 +_0201DCE2: + pop {r3, pc} + .balign 4 +_0201DCE4: .word 0x021C5994 + + thumb_func_start FUN_0201DCE8 +FUN_0201DCE8: ; 0x0201DCE8 + ldr r1, _0201DCFC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x34] + cmp r0, r1 + bne _0201DCF6 + ldr r0, [r2, #0x24] + bx lr +_0201DCF6: + ldr r0, [r2, #0x28] + bx lr + nop +_0201DCFC: .word 0x021C5994 + + thumb_func_start FUN_0201DD00 +FUN_0201DD00: ; 0x0201DD00 + push {r4, lr} + add r4, r0, #0x0 + beq _0201DD16 + bl FUN_0201DCE8 + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + lsr r2, r2, #0x3 + bl memset +_0201DD16: + pop {r4, pc} + + thumb_func_start FUN_0201DD18 +FUN_0201DD18: ; 0x0201DD18 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + beq _0201DD6E + add r0, r4, #0x0 + bl FUN_0201DCE8 + add r6, r5, r6 + add r7, r0, #0x0 + cmp r5, r6 + bhs _0201DD6E +_0201DD32: + cmp r5, r7 + bhs _0201DD6E + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl FUN_0201DFE4 + add r0, sp, #0x0 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + lsl r0, r1 + ldr r1, [sp, #0x4] + ldrb r1, [r4, r1] + tst r0, r1 + beq _0201DD54 + bl ErrorHandling +_0201DD54: + add r2, sp, #0x0 + ldrb r3, [r2, #0x0] + ldr r1, [sp, #0x4] + mov r2, #0x1 + lsl r2, r3 + lsl r2, r2, #0x18 + ldrb r0, [r4, r1] + lsr r2, r2, #0x18 + add r5, r5, #0x1 + orr r0, r2 + strb r0, [r4, r1] + cmp r5, r6 + blo _0201DD32 +_0201DD6E: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201DD74 +FUN_0201DD74: ; 0x0201DD74 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + str r1, [sp, #0x0] + cmp r1, #0x0 + beq _0201DDF2 + add r0, r1, #0x0 + bl FUN_0201DCE8 + mov r6, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + bls _0201DDF2 +_0201DD8E: + add r0, r6, #0x0 + add r1, sp, #0xc + add r2, sp, #0x8 + bl FUN_0201DFE4 + add r0, sp, #0x8 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + mov r4, #0x0 + lsl r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b _0201DDD0 +_0201DDA8: + add r5, r6, r4 + add r0, r5, #0x0 + add r1, sp, #0xc + add r2, sp, #0x8 + bl FUN_0201DFE4 + add r0, sp, #0x8 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + lsl r0, r1 + lsl r0, r0, #0x18 + ldr r1, [sp, #0x4] + lsr r0, r0, #0x18 + cmp r5, r1 + blo _0201DDCE + mov r0, #0x0 + add sp, #0x10 + mvn r0, r0 + pop {r3-r7, pc} +_0201DDCE: + add r4, r4, #0x1 +_0201DDD0: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x0] + ldrb r1, [r1, r2] + tst r0, r1 + bne _0201DDDE + cmp r4, r7 + bls _0201DDA8 +_0201DDDE: + cmp r4, r7 + bls _0201DDE8 + add sp, #0x10 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0201DDE8: + add r0, r6, r4 + add r6, r0, #0x1 + ldr r0, [sp, #0x4] + cmp r6, r0 + blo _0201DD8E +_0201DDF2: + mov r0, #0x0 + mvn r0, r0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201DDFC +FUN_0201DDFC: ; 0x0201DDFC + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r2, #0x0 + beq _0201DE46 + add r6, r5, r1 + cmp r5, r6 + bhs _0201DE46 + add r7, sp, #0x0 +_0201DE0E: + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl FUN_0201DFE4 + ldrb r1, [r7, #0x0] + mov r0, #0x1 + lsl r0, r1 + ldr r1, [sp, #0x4] + ldrb r1, [r4, r1] + tst r0, r1 + bne _0201DE2A + bl ErrorHandling +_0201DE2A: + ldrb r0, [r7, #0x0] + mov r1, #0x1 + ldr r3, [sp, #0x4] + lsl r1, r0 + mov r0, #0xff + eor r0, r1 + lsl r0, r0, #0x18 + ldrb r2, [r4, r3] + lsr r0, r0, #0x18 + add r5, r5, #0x1 + and r0, r2 + strb r0, [r4, r3] + cmp r5, r6 + blo _0201DE0E +_0201DE46: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201DE4C +FUN_0201DE4C: ; 0x0201DE4C + push {r3-r5, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + mov r1, #0x1 + tst r0, r1 + beq _0201DE8A + add r0, r4, #0x0 + add r0, #0x10 + bl FUN_020B1A14 + ldr r1, _0201DECC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x1c] + sub r0, r0, r1 + ldr r1, [r2, #0x2c] + bl FUN_0201DF2C + ldr r1, _0201DECC ; =0x021C5994 + add r5, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r4, #0x4c] + ldr r1, [r1, #0x2c] + bl FUN_0201DF2C + ldr r2, _0201DECC ; =0x021C5994 + add r1, r0, #0x0 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + ldr r2, [r2, #0x34] + bl FUN_0201DDFC +_0201DE8A: + ldr r0, [r4, #0x4] + mov r1, #0x2 + tst r0, r1 + beq _0201DEC4 + add r0, r4, #0x0 + add r0, #0x10 + bl FUN_020B1A14 + ldr r1, _0201DECC ; =0x021C5994 + ldr r2, [r1, #0x0] + ldr r1, [r2, #0x20] + sub r0, r0, r1 + ldr r1, [r2, #0x30] + bl FUN_0201DF2C + ldr r1, _0201DECC ; =0x021C5994 + add r5, r0, #0x0 + ldr r1, [r1, #0x0] + ldr r0, [r4, #0x50] + ldr r1, [r1, #0x30] + bl FUN_0201DF2C + ldr r2, _0201DECC ; =0x021C5994 + add r1, r0, #0x0 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + ldr r2, [r2, #0x38] + bl FUN_0201DDFC +_0201DEC4: + mov r0, #0x0 + str r0, [r4, #0x48] + pop {r3-r5, pc} + nop +_0201DECC: .word 0x021C5994 + + thumb_func_start FUN_0201DED0 +FUN_0201DED0: ; 0x0201DED0 + ldr r1, _0201DF04 ; =0x00100010 + cmp r0, r1 + bgt _0201DEDE + bge _0201DEF4 + cmp r0, #0x10 + beq _0201DEF0 + b _0201DF00 +_0201DEDE: + ldr r1, _0201DF08 ; =0x00200010 + cmp r0, r1 + bgt _0201DEE8 + beq _0201DEF8 + b _0201DF00 +_0201DEE8: + ldr r1, _0201DF0C ; =0x00300010 + cmp r0, r1 + beq _0201DEFC + b _0201DF00 +_0201DEF0: + mov r0, #0x1 + bx lr +_0201DEF4: + mov r0, #0x2 + bx lr +_0201DEF8: + mov r0, #0x4 + bx lr +_0201DEFC: + mov r0, #0x8 + bx lr +_0201DF00: + mov r0, #0x1 + bx lr + .balign 4 +_0201DF04: .word 0x00100010 +_0201DF08: .word 0x00200010 +_0201DF0C: .word 0x00300010 + + thumb_func_start FUN_0201DF10 +FUN_0201DF10: ; 0x0201DF10 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl _s32_div_f + cmp r1, #0x0 + beq _0201DF28 + sub r5, r5, r1 + cmp r6, #0x1 + bne _0201DF28 + add r5, r5, r4 +_0201DF28: + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_0201DF2C +FUN_0201DF2C: ; 0x0201DF2C + asr r2, r0, #0x4 + lsr r2, r2, #0x1b + add r2, r0, r2 + ldr r3, _0201DF38 ; =_s32_div_f + asr r0, r2, #0x5 + bx r3 + .balign 4 +_0201DF38: .word _s32_div_f + + thumb_func_start FUN_0201DF3C +FUN_0201DF3C: ; 0x0201DF3C + mul r1, r0 + lsl r0, r1, #0x5 + bx lr + .balign 4 + + thumb_func_start FUN_0201DF44 +FUN_0201DF44: ; 0x0201DF44 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 + mov r0, #0x1 + add r2, r4, #0x0 + add r7, r3, #0x0 + tst r2, r0 + beq _0201DF6E + ldr r2, _0201DF90 ; =0x021C5994 + ldr r2, [r2, #0x0] + ldr r6, [r2, #0xc] + ldr r2, [r2, #0x1c] + add r3, r6, r5 + cmp r3, r2 + bls _0201DF6C + bl ErrorHandling + mov r0, #0x0 + b _0201DF6E +_0201DF6C: + str r6, [r1, #0x0] +_0201DF6E: + mov r1, #0x2 + tst r1, r4 + beq _0201DF8C + ldr r1, _0201DF90 ; =0x021C5994 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x10] + ldr r1, [r1, #0x20] + add r2, r3, r5 + cmp r2, r1 + bls _0201DF8A + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} +_0201DF8A: + str r3, [r7, #0x0] +_0201DF8C: + pop {r3-r7, pc} + nop +_0201DF90: .word 0x021C5994 + + thumb_func_start FUN_0201DF94 +FUN_0201DF94: ; 0x0201DF94 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + mov r2, #0x1 + add r0, r4, #0x0 + tst r0, r2 + beq _0201DFBC + ldr r0, _0201DFE0 ; =0x021C5994 + ldr r3, [r0, #0x0] + ldr r1, [r3, #0xc] + add r1, r1, r5 + str r1, [r3, #0xc] + ldr r1, [r0, #0x0] + ldr r0, [r1, #0xc] + ldr r1, [r1, #0x2c] + bl FUN_0201DF10 + ldr r1, _0201DFE0 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0xc] +_0201DFBC: + mov r0, #0x2 + tst r0, r4 + beq _0201DFDE + ldr r0, _0201DFE0 ; =0x021C5994 + ldr r2, [r0, #0x0] + ldr r1, [r2, #0x10] + add r1, r1, r5 + str r1, [r2, #0x10] + ldr r1, [r0, #0x0] + mov r2, #0x1 + ldr r0, [r1, #0x10] + ldr r1, [r1, #0x30] + bl FUN_0201DF10 + ldr r1, _0201DFE0 ; =0x021C5994 + ldr r1, [r1, #0x0] + str r0, [r1, #0x10] +_0201DFDE: + pop {r3-r5, pc} + .balign 4 +_0201DFE0: .word 0x021C5994 + + thumb_func_start FUN_0201DFE4 +FUN_0201DFE4: ; 0x0201DFE4 + asr r3, r0, #0x3 + str r3, [r1, #0x0] + mov r1, #0x7 + and r0, r1 + strb r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_0201DFF0 +FUN_0201DFF0: ; 0x0201DFF0 + push {r3-r4} + sub r0, r1, r0 + ldr r4, [sp, #0x8] + str r0, [r3, #0x0] + bpl _0201E006 + add r0, r2, r0 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r3, #0x0] + pop {r3-r4} + bx lr +_0201E006: + str r2, [r4, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201E00C +FUN_0201E00C: ; 0x0201E00C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _0201E064 ; =0x021C5998 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0201E060 + add r0, r4, #0x0 + mov r1, #0x28 + bl FUN_02016998 + add r1, r0, #0x0 + ldr r0, _0201E064 ; =0x021C5998 + mov r2, #0x28 + str r1, [r0, #0x0] + mov r0, #0x0 + bl MIi_CpuClear32 + ldr r0, _0201E064 ; =0x021C5998 + mov r1, #0x30 + ldr r0, [r0, #0x0] + mul r1, r6 + str r6, [r0, #0x4] + add r0, r4, #0x0 + bl FUN_02016998 + ldr r7, _0201E064 ; =0x021C5998 + mov r4, #0x0 + ldr r1, [r7, #0x0] + cmp r6, #0x0 + str r0, [r1, #0x0] + ble _0201E060 + add r5, r4, #0x0 +_0201E04E: + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r5 + bl FUN_0201E2F8 + add r4, r4, #0x1 + add r5, #0x30 + cmp r4, r6 + blt _0201E04E +_0201E060: + pop {r3-r7, pc} + nop +_0201E064: .word 0x021C5998 + + thumb_func_start FUN_0201E068 +FUN_0201E068: ; 0x0201E068 + cmp r1, #0x1 + bne _0201E078 + ldr r1, _0201E088 ; =0x021C5998 + ldr r2, [r1, #0x0] + ldrh r1, [r2, #0x24] + orr r0, r1 + strh r0, [r2, #0x24] + bx lr +_0201E078: + cmp r1, #0x2 + bne _0201E086 + ldr r1, _0201E088 ; =0x021C5998 + ldr r2, [r1, #0x0] + ldrh r1, [r2, #0x26] + orr r0, r1 + strh r0, [r2, #0x26] +_0201E086: + bx lr + .balign 4 +_0201E088: .word 0x021C5998 + + thumb_func_start FUN_0201E08C +FUN_0201E08C: ; 0x0201E08C + push {r3, lr} + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201E0B2 + bl FUN_0201E1F0 + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201E0B4 ; =0x021C5998 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201E0B4 ; =0x021C5998 + mov r1, #0x0 + str r1, [r0, #0x0] +_0201E0B2: + pop {r3, pc} + .balign 4 +_0201E0B4: .word 0x021C5998 + + thumb_func_start FUN_0201E0B8 +FUN_0201E0B8: ; 0x0201E0B8 + bx lr + .balign 4 + + thumb_func_start FUN_0201E0BC +FUN_0201E0BC: ; 0x0201E0BC + push {r3, lr} + ldr r0, _0201E0E0 ; =0x021C5998 + mov r2, #0x0 + ldr r1, [r0, #0x0] + str r2, [r1, #0xc] + ldr r1, [r0, #0x0] + str r2, [r1, #0x10] + ldr r1, [r0, #0x0] + str r2, [r1, #0x14] + ldr r0, [r0, #0x0] + str r2, [r0, #0x18] + bl FUN_0201E464 + ldr r0, _0201E0E0 ; =0x021C5998 + ldr r0, [r0, #0x0] + bl FUN_0201E574 + pop {r3, pc} + .balign 4 +_0201E0E0: .word 0x021C5998 + + thumb_func_start FUN_0201E0E4 +FUN_0201E0E4: ; 0x0201E0E4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0201E428 + add r4, r0, #0x0 + bne _0201E0F8 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201E0F8: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201E2C4 + cmp r0, #0x0 + bne _0201E108 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E108: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201E314 + cmp r0, #0x0 + bne _0201E11E + ldr r0, [r5, #0xc] + bl FUN_0201E1C8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E11E: + add r0, r4, #0x0 + bl FUN_0201E57C + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_0201E128 +FUN_0201E128: ; 0x0201E128 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0201E428 + add r4, r0, #0x0 + bne _0201E13C + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201E13C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201E2C4 + cmp r0, #0x0 + bne _0201E14C + mov r0, #0x0 + pop {r3-r5, pc} +_0201E14C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201E36C + cmp r0, #0x0 + bne _0201E162 + ldr r0, [r5, #0xc] + bl FUN_0201E1C8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E162: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201E168 +FUN_0201E168: ; 0x0201E168 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bne _0201E174 + bl ErrorHandling +_0201E174: + add r0, r4, #0x0 + bl FUN_0201E3F0 + add r4, r0, #0x0 + bne _0201E182 + bl ErrorHandling +_0201E182: + str r5, [r4, #0x0] + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E19A + ldr r3, [r4, #0x8] + ldr r1, [r4, #0x24] + ldr r2, [r5, #0xc] + mov r0, #0xe + lsl r3, r3, #0x5 + bl FUN_0201C2C8 +_0201E19A: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E1B0 + ldr r3, [r4, #0x8] + ldr r1, [r4, #0x28] + ldr r2, [r5, #0xc] + mov r0, #0x1e + lsl r3, r3, #0x5 + bl FUN_0201C2C8 +_0201E1B0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201E1B4 +FUN_0201E1B4: ; 0x0201E1B4 + push {r3, lr} + bl FUN_0201E3F0 + cmp r0, #0x0 + beq _0201E1C2 + mov r0, #0x1 + pop {r3, pc} +_0201E1C2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201E1C8 +FUN_0201E1C8: ; 0x0201E1C8 + push {r4, lr} + bl FUN_0201E3F0 + add r4, r0, #0x0 + bne _0201E1D6 + bl ErrorHandling +_0201E1D6: + add r0, r4, #0x0 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201E1EC + add r0, r4, #0x0 + bl FUN_0201E5B8 + add r0, r4, #0x0 + bl FUN_0201E2BC +_0201E1EC: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201E1F0 +FUN_0201E1F0: ; 0x0201E1F0 + push {r4-r6, lr} + ldr r6, _0201E22C ; =0x021C5998 + mov r4, #0x0 + ldr r1, [r6, #0x0] + ldr r0, [r1, #0x4] + cmp r0, #0x0 + ble _0201E228 + add r5, r4, #0x0 +_0201E200: + ldr r1, [r1, #0x0] + add r0, r1, r5 + add r0, #0x2c + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201E21C + add r0, r1, r5 + bl FUN_0201E5B8 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x0] + add r0, r0, r5 + bl FUN_0201E2BC +_0201E21C: + ldr r1, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r1, #0x4] + add r5, #0x30 + cmp r4, r0 + blt _0201E200 +_0201E228: + pop {r4-r6, pc} + nop +_0201E22C: .word 0x021C5998 + + thumb_func_start FUN_0201E230 +FUN_0201E230: ; 0x0201E230 + push {r3, lr} + bl FUN_0201E3F0 + cmp r0, #0x0 + bne _0201E244 + bne _0201E240 + bl ErrorHandling +_0201E240: + mov r0, #0x0 + pop {r3, pc} +_0201E244: + add r1, r0, #0x0 + add r1, #0x2c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _0201E252 + add r0, #0x10 + pop {r3, pc} +_0201E252: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201E258 +FUN_0201E258: ; 0x0201E258 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_0201E3F0 + cmp r0, #0x0 + bne _0201E26E + bne _0201E26A + bl ErrorHandling +_0201E26A: + mov r0, #0x0 + pop {r4, pc} +_0201E26E: + add r1, r0, #0x0 + add r1, #0x2c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + beq _0201E27C + mov r0, #0x0 + pop {r4, pc} +_0201E27C: + ldr r1, [r0, #0x0] + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _0201E288 + mov r1, #0x1 + str r1, [r4, #0x18] +_0201E288: + add r0, #0x10 + pop {r4, pc} + + thumb_func_start FUN_0201E28C +FUN_0201E28C: ; 0x0201E28C + push {r4, lr} + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _0201E29A + mov r4, #0x2 + lsl r4, r4, #0x8 + b _0201E2A6 +_0201E29A: + ldr r2, [r0, #0x0] + cmp r2, #0x4 + bne _0201E2A4 + mov r4, #0x0 + b _0201E2A6 +_0201E2A4: + mov r4, #0x20 +_0201E2A6: + cmp r4, #0x0 + beq _0201E2B6 + bl FUN_020B19C4 + add r1, r4, #0x0 + bl _u32_div_f + pop {r4, pc} +_0201E2B6: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201E2BC +FUN_0201E2BC: ; 0x0201E2BC + ldr r3, _0201E2C0 ; =FUN_0201E2F8 + bx r3 + .balign 4 +_0201E2C0: .word FUN_0201E2F8 + + thumb_func_start FUN_0201E2C4 +FUN_0201E2C4: ; 0x0201E2C4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_0201E1B4 + cmp r0, #0x1 + bne _0201E2E0 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201E2E0: + ldr r0, [r5, #0xc] + add r1, r4, #0x0 + str r0, [r4, #0xc] + ldr r0, [r5, #0x4] + add r1, #0x2c + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r1, #0x0] + ldr r1, [r5, #0x8] + str r1, [r4, #0x8] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201E2F8 +FUN_0201E2F8: ; 0x0201E2F8 + push {r4, lr} + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + bl memset + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0xc] + add r4, #0x10 + add r0, r4, #0x0 + bl FUN_020B19DC + pop {r4, pc} + + thumb_func_start FUN_0201E314 +FUN_0201E314: ; 0x0201E314 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r1, #0x0 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0201E334 + ldr r0, _0201E368 ; =0x021C5998 + ldr r0, [r0, #0x0] + add r4, r0, #0x0 + add r5, r0, #0x0 + ldr r3, [r0, #0x1c] + add r4, #0x14 + add r5, #0x18 + ldr r0, [r0, #0x20] + b _0201E344 +_0201E334: + ldr r0, _0201E368 ; =0x021C5998 + mov r3, #0x2 + ldr r5, [r0, #0x0] + lsl r3, r3, #0x8 + add r4, r5, #0x0 + add r4, #0xc + add r5, #0x10 + add r0, r3, #0x0 +_0201E344: + str r0, [sp, #0x0] + ldr r1, [r4, #0x0] + ldr r2, [r5, #0x0] + add r0, r6, #0x0 + bl FUN_0201E5F4 + add r0, r6, #0x0 + bl FUN_0201E4AC + add r0, r6, #0x0 + add r1, r4, #0x0 + add r2, r5, #0x0 + bl FUN_0201E640 + mov r0, #0x1 + add sp, #0x4 + pop {r3-r6, pc} + nop +_0201E368: .word 0x021C5998 + + thumb_func_start FUN_0201E36C +FUN_0201E36C: ; 0x0201E36C + push {r4-r6, lr} + add r5, r1, #0x0 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0201E37C + bl ErrorHandling +_0201E37C: + ldr r1, [r5, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E39E + ldr r0, _0201E3EC ; =0x021C5998 + ldr r1, [r5, #0x8] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x24] + bl FUN_0201E534 + add r6, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r6, r0 + bne _0201E39E + mov r0, #0x0 + pop {r4-r6, pc} +_0201E39E: + ldr r1, [r5, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E3C0 + ldr r0, _0201E3EC ; =0x021C5998 + ldr r1, [r5, #0x8] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x26] + bl FUN_0201E534 + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _0201E3C0 + mov r0, #0x0 + pop {r4-r6, pc} +_0201E3C0: + ldr r1, [r5, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E3CA + str r6, [r5, #0x24] +_0201E3CA: + ldr r1, [r5, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E3D4 + str r4, [r5, #0x28] +_0201E3D4: + ldr r0, [r5, #0x8] + lsl r1, r0, #0x5 + ldr r0, [r5, #0x0] + str r1, [r0, #0x8] + add r0, r5, #0x0 + bl FUN_0201E4BC + add r0, r5, #0x0 + bl FUN_0201E57C + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0201E3EC: .word 0x021C5998 + + thumb_func_start FUN_0201E3F0 +FUN_0201E3F0: ; 0x0201E3F0 + push {r4-r5} + ldr r2, _0201E424 ; =0x021C5998 + mov r1, #0x0 + ldr r5, [r2, #0x0] + ldr r2, [r5, #0x4] + cmp r2, #0x0 + ble _0201E41C + ldr r2, [r5, #0x0] + add r4, r2, #0x0 +_0201E402: + ldr r3, [r4, #0xc] + cmp r0, r3 + bne _0201E412 + mov r0, #0x30 + mul r0, r1 + add r0, r2, r0 + pop {r4-r5} + bx lr +_0201E412: + ldr r3, [r5, #0x4] + add r1, r1, #0x1 + add r4, #0x30 + cmp r1, r3 + blt _0201E402 +_0201E41C: + mov r0, #0x0 + pop {r4-r5} + bx lr + nop +_0201E424: .word 0x021C5998 + + thumb_func_start FUN_0201E428 +FUN_0201E428: ; 0x0201E428 + push {r3-r4} + ldr r1, _0201E460 ; =0x021C5998 + mov r0, #0x0 + ldr r4, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + ble _0201E458 + ldr r1, [r4, #0x0] + add r3, r1, #0x0 +_0201E43A: + add r2, r3, #0x0 + add r2, #0x2c + ldrb r2, [r2, #0x0] + cmp r2, #0x0 + bne _0201E44E + mov r2, #0x30 + mul r2, r0 + add r0, r1, r2 + pop {r3-r4} + bx lr +_0201E44E: + ldr r2, [r4, #0x4] + add r0, r0, #0x1 + add r3, #0x30 + cmp r0, r2 + blt _0201E43A +_0201E458: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201E460: .word 0x021C5998 + + thumb_func_start FUN_0201E464 +FUN_0201E464: ; 0x0201E464 + push {r3, lr} + bl GX_GetBankForOBJExtPltt + cmp r0, #0x20 + beq _0201E472 + cmp r0, #0x40 + bne _0201E47E +_0201E472: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x2 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + str r1, [r0, #0x1c] + b _0201E486 +_0201E47E: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x1c] +_0201E486: + bl GX_GetBankForSubOBJExtPltt + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + bne _0201E49C + ldr r0, _0201E4A8 ; =0x021C5998 + lsl r1, r1, #0x5 + ldr r0, [r0, #0x0] + str r1, [r0, #0x20] + pop {r3, pc} +_0201E49C: + ldr r0, _0201E4A8 ; =0x021C5998 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x20] + pop {r3, pc} + nop +_0201E4A8: .word 0x021C5998 + + thumb_func_start FUN_0201E4AC +FUN_0201E4AC: ; 0x0201E4AC + ldr r1, [r0, #0x8] + ldr r3, _0201E4B8 ; =FUN_0201E4BC + lsl r2, r1, #0x5 + ldr r1, [r0, #0x0] + str r2, [r1, #0x8] + bx r3 + .balign 4 +_0201E4B8: .word FUN_0201E4BC + + thumb_func_start FUN_0201E4BC +FUN_0201E4BC: ; 0x0201E4BC + push {r4, lr} + add r4, r0, #0x0 + add r0, #0x10 + bl FUN_020B19DC + ldr r0, [r4, #0x4] + mov r2, #0x1 + tst r0, r2 + beq _0201E4DA + add r3, r4, #0x0 + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x24] + add r3, #0x10 + bl FUN_020B1240 +_0201E4DA: + ldr r0, [r4, #0x4] + mov r2, #0x2 + tst r0, r2 + beq _0201E4EE + ldr r0, [r4, #0x0] + ldr r1, [r4, #0x28] + add r4, #0x10 + add r3, r4, #0x0 + bl FUN_020B1240 +_0201E4EE: + pop {r4, pc} + + thumb_func_start FUN_0201E4F0 +FUN_0201E4F0: ; 0x0201E4F0 + push {r4-r7} + mov r3, #0x0 + cmp r1, #0x0 + ble _0201E50E + mov r5, #0x1 +_0201E4FA: + ldrh r7, [r0, #0x0] + add r4, r2, r3 + add r6, r5, #0x0 + lsl r6, r4 + add r4, r7, #0x0 + orr r4, r6 + add r3, r3, #0x1 + strh r4, [r0, #0x0] + cmp r3, r1 + blt _0201E4FA +_0201E50E: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_0201E514 +FUN_0201E514: ; 0x0201E514 + push {r4-r7} + mov r4, #0x0 + cmp r1, #0x0 + ble _0201E530 + mov r6, #0x1 +_0201E51E: + add r5, r2, r4 + add r7, r6, #0x0 + ldrh r3, [r0, #0x0] + lsl r7, r5 + bic r3, r7 + add r4, r4, #0x1 + strh r3, [r0, #0x0] + cmp r4, r1 + blt _0201E51E +_0201E530: + pop {r4-r7} + bx lr + + thumb_func_start FUN_0201E534 +FUN_0201E534: ; 0x0201E534 + push {r4-r7} + mov r3, #0x0 + mov r6, #0x1 + add r2, r3, #0x0 +_0201E53C: + add r4, r2, #0x0 + b _0201E546 +_0201E540: + cmp r5, #0x10 + bge _0201E554 + add r4, r4, #0x1 +_0201E546: + add r5, r3, r4 + add r7, r6, #0x0 + lsl r7, r5 + tst r7, r0 + bne _0201E554 + cmp r4, r1 + blt _0201E540 +_0201E554: + cmp r4, r1 + bge _0201E560 + add r3, r3, r4 + add r3, r3, #0x1 + cmp r3, #0x10 + blt _0201E53C +_0201E560: + cmp r3, #0x10 + blt _0201E56C + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr +_0201E56C: + lsl r0, r3, #0x5 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_0201E574 +FUN_0201E574: ; 0x0201E574 + mov r1, #0x0 + strh r1, [r0, #0x24] + strh r1, [r0, #0x26] + bx lr + + thumb_func_start FUN_0201E57C +FUN_0201E57C: ; 0x0201E57C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E598 + ldr r0, _0201E5B4 ; =0x021C5998 + ldr r2, [r4, #0x24] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x24 + lsr r2, r2, #0x5 + bl FUN_0201E4F0 +_0201E598: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E5B0 + ldr r0, _0201E5B4 ; =0x021C5998 + ldr r2, [r4, #0x28] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x26 + lsr r2, r2, #0x5 + bl FUN_0201E4F0 +_0201E5B0: + pop {r4, pc} + nop +_0201E5B4: .word 0x021C5998 + + thumb_func_start FUN_0201E5B8 +FUN_0201E5B8: ; 0x0201E5B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x4] + mov r0, #0x1 + tst r0, r1 + beq _0201E5D4 + ldr r0, _0201E5F0 ; =0x021C5998 + ldr r2, [r4, #0x24] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x24 + lsr r2, r2, #0x5 + bl FUN_0201E514 +_0201E5D4: + ldr r1, [r4, #0x4] + mov r0, #0x2 + tst r0, r1 + beq _0201E5EC + ldr r0, _0201E5F0 ; =0x021C5998 + ldr r2, [r4, #0x28] + ldr r0, [r0, #0x0] + ldr r1, [r4, #0x8] + add r0, #0x26 + lsr r2, r2, #0x5 + bl FUN_0201E514 +_0201E5EC: + pop {r4, pc} + nop +_0201E5F0: .word 0x021C5998 + + thumb_func_start FUN_0201E5F4 +FUN_0201E5F4: ; 0x0201E5F4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + ldr r2, [r5, #0x4] + mov r0, #0x1 + tst r2, r0 + beq _0201E61A + ldr r2, [r5, #0x8] + lsl r2, r2, #0x5 + add r2, r1, r2 + cmp r2, r3 + bls _0201E618 + bl ErrorHandling + bl FUN_0201E0B8 + mov r0, #0x0 + b _0201E61A +_0201E618: + str r1, [r5, #0x24] +_0201E61A: + ldr r2, [r5, #0x4] + mov r1, #0x2 + tst r1, r2 + beq _0201E63C + ldr r1, [r5, #0x8] + lsl r1, r1, #0x5 + add r2, r4, r1 + ldr r1, [sp, #0x10] + cmp r2, r1 + bls _0201E63A + bl ErrorHandling + bl FUN_0201E0B8 + mov r0, #0x0 + pop {r3-r5, pc} +_0201E63A: + str r4, [r5, #0x28] +_0201E63C: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201E640 +FUN_0201E640: ; 0x0201E640 + push {r3-r4} + ldr r4, [r0, #0x4] + mov r3, #0x1 + tst r3, r4 + beq _0201E654 + ldr r3, [r0, #0x8] + ldr r4, [r1, #0x0] + lsl r3, r3, #0x5 + add r3, r4, r3 + str r3, [r1, #0x0] +_0201E654: + ldr r3, [r0, #0x4] + mov r1, #0x2 + tst r1, r3 + beq _0201E666 + ldr r0, [r0, #0x8] + ldr r1, [r2, #0x0] + lsl r0, r0, #0x5 + add r0, r1, r0 + str r0, [r2, #0x0] +_0201E666: + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0201E66C +FUN_0201E66C: ; 0x0201E66C + push {r4, lr} + add r4, r0, #0x0 + bl GX_ResetBankForBG + bl GX_ResetBankForBGExtPltt + bl GX_ResetBankForSubBG + bl FUN_020C6034 + bl GX_ResetBankForOBJ + bl GX_ResetBankForOBJExtPltt + bl FUN_020C605C + bl GX_ResetBankForSubOBJ + bl GX_ResetBankForTex + bl GX_ResetBankForTexPltt + ldr r0, [r4, #0x0] + bl GX_SetBankForBG + ldr r0, [r4, #0x4] + bl GX_SetBankForBGExtPltt + ldr r0, [r4, #0x8] + bl GX_SetBankForSubBG + ldr r0, [r4, #0xc] + bl GX_SetBankForSubBGExtPltt + ldr r0, [r4, #0x10] + bl GX_SetBankForOBJ + ldr r0, [r4, #0x14] + bl GX_SetBankForOBJExtPltt + ldr r0, [r4, #0x18] + bl GX_SetBankForSubOBJ + ldr r0, [r4, #0x1c] + bl GX_SetBankForSubOBJExtPltt + ldr r0, [r4, #0x20] + bl GX_SetBankForTex + ldr r0, [r4, #0x24] + bl GX_SetBankForTexPltt + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201E6D8 +FUN_0201E6D8: ; 0x0201E6D8 + ldr r0, _0201E6E0 ; =0x021C599C + mov r1, #0x0 + str r1, [r0, #0x4] + bx lr + .balign 4 +_0201E6E0: .word 0x021C599C + + thumb_func_start FUN_0201E6E4 +FUN_0201E6E4: ; 0x0201E6E4 + cmp r1, #0x1 + bne _0201E6F2 + ldr r1, _0201E718 ; =0x021C599C + ldr r1, [r1, #0x4] + tst r1, r0 + beq _0201E6FA + bx lr +_0201E6F2: + ldr r1, _0201E718 ; =0x021C599C + ldr r1, [r1, #0x4] + tst r1, r0 + beq _0201E714 +_0201E6FA: + ldr r1, _0201E718 ; =0x021C599C + ldr r2, [r1, #0x4] + add r3, r2, #0x0 + eor r3, r0 + mov r2, #0x1 + lsl r2, r2, #0x1a + str r3, [r1, #0x4] + ldr r1, [r2, #0x0] + ldr r0, _0201E71C ; =0xFFFFE0FF + and r1, r0 + lsl r0, r3, #0x8 + orr r0, r1 + str r0, [r2, #0x0] +_0201E714: + bx lr + nop +_0201E718: .word 0x021C599C +_0201E71C: .word 0xFFFFE0FF + + thumb_func_start FUN_0201E720 +FUN_0201E720: ; 0x0201E720 + ldr r1, _0201E738 ; =0x021C599C + mov r3, #0x1 + str r0, [r1, #0x4] + lsl r3, r3, #0x1a + ldr r2, [r3, #0x0] + ldr r1, _0201E73C ; =0xFFFFE0FF + lsl r0, r0, #0x8 + and r1, r2 + orr r0, r1 + str r0, [r3, #0x0] + bx lr + nop +_0201E738: .word 0x021C599C +_0201E73C: .word 0xFFFFE0FF + + thumb_func_start FUN_0201E740 +FUN_0201E740: ; 0x0201E740 + ldr r0, _0201E748 ; =0x021C599C + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_0201E748: .word 0x021C599C + + thumb_func_start FUN_0201E74C +FUN_0201E74C: ; 0x0201E74C + cmp r1, #0x1 + bne _0201E75A + ldr r1, _0201E77C ; =0x021C599C + ldr r1, [r1, #0x0] + tst r1, r0 + beq _0201E762 + bx lr +_0201E75A: + ldr r1, _0201E77C ; =0x021C599C + ldr r1, [r1, #0x0] + tst r1, r0 + beq _0201E77A +_0201E762: + ldr r1, _0201E77C ; =0x021C599C + ldr r2, [r1, #0x0] + add r3, r2, #0x0 + eor r3, r0 + ldr r2, _0201E780 ; =0x04001000 + str r3, [r1, #0x0] + ldr r1, [r2, #0x0] + ldr r0, _0201E784 ; =0xFFFFE0FF + and r1, r0 + lsl r0, r3, #0x8 + orr r0, r1 + str r0, [r2, #0x0] +_0201E77A: + bx lr + .balign 4 +_0201E77C: .word 0x021C599C +_0201E780: .word 0x04001000 +_0201E784: .word 0xFFFFE0FF + + thumb_func_start FUN_0201E788 +FUN_0201E788: ; 0x0201E788 + push {r3, lr} + bl GX_DispOn + ldr r2, _0201E79C ; =0x04001000 + mov r0, #0x1 + ldr r1, [r2, #0x0] + lsl r0, r0, #0x10 + orr r0, r1 + str r0, [r2, #0x0] + pop {r3, pc} + .balign 4 +_0201E79C: .word 0x04001000 + + thumb_func_start FUN_0201E7A0 +FUN_0201E7A0: ; 0x0201E7A0 + ldr r0, _0201E7C0 ; =0x021C4918 + ldr r2, _0201E7C4 ; =0x04000304 + ldrb r0, [r0, #0x5] + cmp r0, #0x0 + bne _0201E7B4 + ldrh r1, [r2, #0x0] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2, #0x0] + bx lr +_0201E7B4: + ldrh r1, [r2, #0x0] + ldr r0, _0201E7C8 ; =0xFFFF7FFF + and r0, r1 + strh r0, [r2, #0x0] + bx lr + nop +_0201E7C0: .word 0x021C4918 +_0201E7C4: .word 0x04000304 +_0201E7C8: .word 0xFFFF7FFF + + thumb_func_start FUN_0201E7CC +FUN_0201E7CC: ; 0x0201E7CC + ldr r0, _0201E7D4 ; =0x021C599C + ldr r0, [r0, #0x4] + bx lr + nop +_0201E7D4: .word 0x021C599C + + thumb_func_start FUN_0201E7D8 +FUN_0201E7D8: ; 0x0201E7D8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + ldrh r4, [r5, #0x3c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E8B4 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + asr r2, r4, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E8B4 ; =0x020FFA38 + lsl r1, r1, #0x14 + ldrsh r2, [r2, r3] + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x14] + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + asr r0, r0, #0x4 + lsl r0, r0, #0x1 + add r0, r0, #0x1 + lsl r1, r0, #0x1 + ldr r0, _0201E8B4 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + lsl r2, r2, #0xa + mov r3, #0x0 + add r0, r0, r2 + adc r1, r3 + ldrh r2, [r5, #0x3c] + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E8B4 ; =0x020FFA38 + orr r0, r1 + ldrsh r2, [r2, r3] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r1, [r5, #0x1c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E8B4 ; =0x020FFA38 + ldr r2, [r5, #0x38] + ldrsh r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + add r0, r5, #0x0 + str r1, [r5, #0x18] + add r0, #0x14 + add r5, #0x20 + add r1, r5, #0x0 + add r2, r0, #0x0 + bl VEC_Add + pop {r3-r5, pc} + nop +_0201E8B4: .word 0x020FFA38 + + thumb_func_start FUN_0201E8B8 +FUN_0201E8B8: ; 0x0201E8B8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + ldrh r4, [r5, #0x3c] + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E998 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + asr r2, r4, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E998 ; =0x020FFA38 + lsl r1, r1, #0x14 + ldrsh r2, [r2, r3] + lsr r0, r0, #0xc + orr r0, r1 + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x20] + ldrh r0, [r5, #0x3e] + ldr r2, [r5, #0x38] + asr r0, r0, #0x4 + lsl r0, r0, #0x1 + add r0, r0, #0x1 + lsl r1, r0, #0x1 + ldr r0, _0201E998 ; =0x020FFA38 + asr r3, r2, #0x1f + ldrsh r0, [r0, r1] + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + lsl r2, r2, #0xa + mov r3, #0x0 + add r0, r0, r2 + adc r1, r3 + ldrh r2, [r5, #0x3c] + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r3, r2, #0x1 + ldr r2, _0201E998 ; =0x020FFA38 + orr r0, r1 + ldrsh r2, [r2, r3] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x28] + neg r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #0x4 + lsl r1, r0, #0x2 + ldr r0, _0201E998 ; =0x020FFA38 + ldr r2, [r5, #0x38] + ldrsh r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + neg r0, r1 + str r0, [r5, #0x24] + add r0, r5, #0x0 + add r0, #0x20 + add r5, #0x14 + add r1, r5, #0x0 + add r2, r0, #0x0 + bl VEC_Add + pop {r3-r5, pc} + .balign 4 +_0201E998: .word 0x020FFA38 + + thumb_func_start FUN_0201E99C +FUN_0201E99C: ; 0x0201E99C + add r2, r1, #0x0 + add r2, #0x46 + strh r0, [r2, #0x0] + asr r0, r0, #0x4 + lsl r3, r0, #0x1 + ldr r2, _0201E9E0 ; =0x020FFA38 + lsl r0, r3, #0x1 + ldrsh r0, [r2, r0] + str r0, [r1, #0x0] + add r0, r3, #0x1 + lsl r0, r0, #0x1 + ldrsh r0, [r2, r0] + mov r2, #0x0 + str r0, [r1, #0x4] + ldr r0, _0201E9E4 ; =0x00001555 + str r0, [r1, #0x8] + mov r0, #0x96 + lsl r0, r0, #0xc + str r0, [r1, #0xc] + mov r0, #0xe1 + lsl r0, r0, #0xe + str r0, [r1, #0x10] + mov r0, #0x1 + str r2, [r1, #0x2c] + lsl r0, r0, #0xc + str r0, [r1, #0x30] + str r2, [r1, #0x34] + str r2, [r1, #0x54] + str r2, [r1, #0x58] + str r2, [r1, #0x5c] + str r2, [r1, #0x60] + str r2, [r1, #0x64] + bx lr + nop +_0201E9E0: .word 0x020FFA38 +_0201E9E4: .word 0x00001555 + + thumb_func_start FUN_0201E9E8 +FUN_0201E9E8: ; 0x0201E9E8 + ldr r2, [r0, #0x58] + cmp r2, #0x0 + bne _0201E9F2 + mov r2, #0x0 + str r2, [r1, #0x0] +_0201E9F2: + ldr r2, [r0, #0x5c] + cmp r2, #0x0 + bne _0201E9FC + mov r2, #0x0 + str r2, [r1, #0x4] +_0201E9FC: + ldr r0, [r0, #0x60] + cmp r0, #0x0 + bne _0201EA06 + mov r0, #0x0 + str r0, [r1, #0x8] +_0201EA06: + bx lr + + thumb_func_start FUN_0201EA08 +FUN_0201EA08: ; 0x0201EA08 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r7, [r5, #0x64] + add r4, r1, #0x0 + add r6, r2, #0x0 + cmp r7, #0x0 + bne _0201EA20 + ldmia r4!, {r0-r1} + stmia r6!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r6, #0x0] + pop {r3-r7, pc} +_0201EA20: + add r0, r7, #0x0 + str r0, [sp, #0x0] + add r0, #0x8 + str r0, [sp, #0x0] + ldr r0, [r7, #0x10] + cmp r0, #0x0 + bne _0201EA48 + add r3, r4, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [r5, #0x64] + ldr r2, [r7, #0x4] + ldr r1, [r0, #0xc] + cmp r2, r1 + bne _0201EA5C + mov r1, #0x1 + str r1, [r0, #0x10] + b _0201EA5C +_0201EA48: + ldr r2, [r7, #0x4] + mov r1, #0xc + mul r1, r2 + ldr r0, [r7, #0x20] + add r2, r6, #0x0 + add r3, r0, r1 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] +_0201EA5C: + ldr r1, [r5, #0x64] + ldr r0, [r7, #0x4] + ldr r1, [r1, #0x0] + add r0, r0, #0x1 + bl _s32_div_f + str r1, [r7, #0x4] + ldr r1, [sp, #0x0] + ldr r0, [r5, #0x64] + ldr r2, [r1, #0x0] + mov r1, #0xc + ldr r0, [r0, #0x20] + mul r1, r2 + add r3, r4, #0x0 + add r2, r0, r1 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + ldr r0, [sp, #0x0] + ldr r1, [r5, #0x64] + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r0, r0, #0x1 + bl _s32_div_f + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x14] + cmp r0, #0x0 + bne _0201EAA0 + ldr r0, [r4, #0x0] + str r0, [r6, #0x0] +_0201EAA0: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x18] + cmp r0, #0x0 + bne _0201EAAC + ldr r0, [r4, #0x4] + str r0, [r6, #0x4] +_0201EAAC: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x1c] + cmp r0, #0x0 + bne _0201EAB8 + ldr r0, [r4, #0x8] + str r0, [r6, #0x8] +_0201EAB8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201EABC +FUN_0201EABC: ; 0x0201EABC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x18] + add r7, r1, #0x0 + str r0, [sp, #0x18] + ldr r0, [r0, #0x54] + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r0, #0x0 + beq _0201EB46 + add r0, r7, #0x1 + cmp r0, r5 + ble _0201EADA + bl ErrorHandling +_0201EADA: + ldr r0, [sp, #0x0] + mov r1, #0x24 + bl FUN_02016998 + add r4, r0, #0x0 + mov r1, #0xc + ldr r0, [sp, #0x0] + mul r1, r5 + bl FUN_02016998 + mov r1, #0x0 + str r0, [r4, #0x20] + cmp r5, #0x0 + ble _0201EB12 + add r2, r1, #0x0 + add r0, r1, #0x0 +_0201EAFA: + ldr r3, [r4, #0x20] + add r1, r1, #0x1 + str r0, [r3, r2] + ldr r3, [r4, #0x20] + add r3, r3, r2 + str r0, [r3, #0x4] + ldr r3, [r4, #0x20] + add r3, r3, r2 + str r0, [r3, #0x8] + add r2, #0xc + cmp r1, r5 + blt _0201EAFA +_0201EB12: + str r5, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + str r7, [r4, #0x8] + str r7, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + mov r0, #0x1 + add r1, r6, #0x0 + tst r1, r0 + beq _0201EB2E + str r0, [r4, #0x14] +_0201EB2E: + mov r0, #0x2 + tst r0, r6 + beq _0201EB38 + mov r0, #0x1 + str r0, [r4, #0x18] +_0201EB38: + mov r0, #0x4 + tst r0, r6 + beq _0201EB42 + mov r0, #0x1 + str r0, [r4, #0x1c] +_0201EB42: + ldr r0, [sp, #0x18] + str r4, [r0, #0x64] +_0201EB46: + pop {r3-r7, pc} + + thumb_func_start FUN_0201EB48 +FUN_0201EB48: ; 0x0201EB48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x64] + cmp r0, #0x0 + beq _0201EB62 + ldr r0, [r0, #0x20] + bl FUN_02016A18 + ldr r0, [r4, #0x64] + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x64] +_0201EB62: + pop {r4, pc} + + thumb_func_start FUN_0201EB64 +FUN_0201EB64: ; 0x0201EB64 + ldr r3, _0201EB6C ; =FUN_02016998 + mov r1, #0x68 + bx r3 + nop +_0201EB6C: .word FUN_02016998 + + thumb_func_start FUN_0201EB70 +FUN_0201EB70: ; 0x0201EB70 + ldr r3, _0201EB74 ; =FUN_02016A18 + bx r3 + .balign 4 +_0201EB74: .word FUN_02016A18 + + thumb_func_start FUN_0201EB78 +FUN_0201EB78: ; 0x0201EB78 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0xd +_0201EB80: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0201EB80 + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201EB8C +FUN_0201EB8C: ; 0x0201EB8C + ldr r1, _0201EB94 ; =0x021C59A4 + str r0, [r1, #0x0] + bx lr + nop +_0201EB94: .word 0x021C59A4 + + thumb_func_start FUN_0201EB98 +FUN_0201EB98: ; 0x0201EB98 + ldr r0, _0201EBA0 ; =0x021C59A4 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_0201EBA0: .word 0x021C59A4 + + thumb_func_start FUN_0201EBA4 +FUN_0201EBA4: ; 0x0201EBA4 + push {r3-r6, lr} + sub sp, #0x1c + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201EC3A + ldr r0, [r1, #0x54] + cmp r0, #0x0 + beq _0201EBEE + add r1, #0x48 + add r2, sp, #0x10 + bl VEC_Subtract + ldr r0, _0201EC40 ; =0x021C59A4 + add r1, sp, #0x10 + ldr r0, [r0, #0x0] + bl FUN_0201E9E8 + ldr r0, _0201EC40 ; =0x021C59A4 + add r1, sp, #0x10 + ldr r0, [r0, #0x0] + add r2, sp, #0x4 + bl FUN_0201EA08 + ldr r1, _0201EC40 ; =0x021C59A4 + add r0, sp, #0x4 + ldr r1, [r1, #0x0] + bl FUN_0201EF70 + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r3, [r0, #0x0] + ldr r2, [r3, #0x54] + add r3, #0x48 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] +_0201EBEE: + ldr r0, _0201EC40 ; =0x021C59A4 + ldr r5, _0201EC44 ; =0x021CEF58 + ldr r4, [r0, #0x0] + add r3, r4, #0x0 + add r2, r4, #0x0 + add r4, #0x14 + add r6, r4, #0x0 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r2, #0x2c + str r0, [r5, #0x0] + add r6, r2, #0x0 + ldr r5, _0201EC48 ; =0x021CEF64 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r3, #0x20 + str r0, [r5, #0x0] + add r6, r3, #0x0 + ldr r5, _0201EC4C ; =0x021CEF70 + ldmia r6!, {r0-r1} + stmia r5!, {r0-r1} + ldr r0, [r6, #0x0] + add r1, r2, #0x0 + str r0, [r5, #0x0] + ldr r0, _0201EC50 ; =0x021CED64 + add r2, r3, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl G3i_LookAt_ + ldr r1, _0201EC54 ; =0x021CED98 + mov r0, #0xe8 + ldr r2, [r1, #0x7c] + bic r2, r0 + str r2, [r1, #0x7c] +_0201EC3A: + add sp, #0x1c + pop {r3-r6, pc} + nop +_0201EC40: .word 0x021C59A4 +_0201EC44: .word 0x021CEF58 +_0201EC48: .word 0x021CEF64 +_0201EC4C: .word 0x021CEF70 +_0201EC50: .word 0x021CED64 +_0201EC54: .word 0x021CED98 + + thumb_func_start FUN_0201EC58 +FUN_0201EC58: ; 0x0201EC58 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x2c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_0201EC68 +FUN_0201EC68: ; 0x0201EC68 + push {r3-r4} + add r3, r1, #0x0 + add r4, r0, #0x0 + str r4, [r3, #0x54] + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r3, #0x58] + str r0, [r3, #0x5c] + str r0, [r3, #0x60] + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201EC88 +FUN_0201EC88: ; 0x0201EC88 + mov r1, #0x0 + str r1, [r0, #0x54] + str r1, [r0, #0x58] + str r1, [r0, #0x5c] + str r1, [r0, #0x60] + bx lr + + thumb_func_start FUN_0201EC94 +FUN_0201EC94: ; 0x0201EC94 + str r0, [r2, #0xc] + add r0, r2, #0x0 + str r1, [r2, #0x10] + add r0, #0x44 + ldr r3, _0201ECA4 ; =FUN_0201EE2C + ldrb r0, [r0, #0x0] + add r1, r2, #0x0 + bx r3 + .balign 4 +_0201ECA4: .word FUN_0201EE2C + + thumb_func_start FUN_0201ECA8 +FUN_0201ECA8: ; 0x0201ECA8 + push {r3-r7, lr} + ldr r4, [sp, #0x20] + add r5, r0, #0x0 + add r7, r1, #0x0 + add r0, r3, #0x0 + add r1, r4, #0x0 + add r6, r2, #0x0 + bl FUN_0201E99C + add r3, r5, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + str r7, [r4, #0x38] + ldrh r0, [r6, #0x0] + strh r0, [r4, #0x3c] + ldrh r0, [r6, #0x2] + strh r0, [r4, #0x3e] + add r0, r4, #0x0 + ldrh r1, [r6, #0x4] + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + ldrh r1, [r6, #0x6] + add r0, #0x42 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl FUN_0201E7D8 + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + add r1, r4, #0x0 + bl FUN_0201EE2C + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _0201ED0E + str r5, [r4, #0x54] + add r2, r4, #0x0 + ldmia r5!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r4, #0x58] + str r0, [r4, #0x5c] + str r0, [r4, #0x60] +_0201ED0E: + pop {r3-r7, pc} + + thumb_func_start FUN_0201ED10 +FUN_0201ED10: ; 0x0201ED10 + push {r3-r7, lr} + ldr r4, [sp, #0x1c] + add r6, r0, #0x0 + add r7, r1, #0x0 + add r0, r3, #0x0 + add r1, r4, #0x0 + add r5, r2, #0x0 + bl FUN_0201E99C + add r2, r4, #0x0 + ldmia r6!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r6, #0x0] + str r0, [r2, #0x0] + str r7, [r4, #0x38] + ldrh r0, [r5, #0x0] + strh r0, [r4, #0x3c] + ldrh r0, [r5, #0x2] + strh r0, [r4, #0x3e] + add r0, r4, #0x0 + ldrh r1, [r5, #0x4] + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + ldrh r1, [r5, #0x6] + add r0, #0x42 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + bl FUN_0201E8B8 + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + add r1, r4, #0x0 + bl FUN_0201EE2C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201ED5C +FUN_0201ED5C: ; 0x0201ED5C + push {r4-r7, lr} + sub sp, #0x3c + ldr r4, [sp, #0x54] + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + add r1, r4, #0x0 + add r7, r3, #0x0 + bl FUN_0201E99C + add r3, r5, #0x0 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r3, r6, #0x0 + str r0, [r2, #0x0] + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r5, #0x0 + str r0, [r2, #0x0] + add r0, r6, #0x0 + add r2, sp, #0x30 + bl VEC_Subtract + add r0, sp, #0x30 + bl VEC_Mag + str r0, [r4, #0x38] + mov r6, #0x0 + add r0, sp, #0x24 + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + add r0, sp, #0x18 + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + add r0, sp, #0xc + str r6, [r0, #0x0] + str r6, [r0, #0x4] + str r6, [r0, #0x8] + mov r0, #0x1 + lsl r0, r0, #0xc + add r3, sp, #0x30 + str r0, [sp, #0x8] + ldmia r3!, {r0-r1} + add r2, sp, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r6, [sp, #0x0] + str r0, [r2, #0x0] + str r6, [sp, #0x4] + str r6, [sp, #0x10] + add r0, sp, #0x0 + add r1, sp, #0xc + bl FUN_0201C7B0 + strh r0, [r4, #0x3e] + add r1, r6, #0x0 + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x0] + ldr r0, [sp, #0x38] + str r1, [sp, #0x4] + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + str r1, [sp, #0x8] + str r0, [sp, #0x14] + str r1, [sp, #0x10] + add r0, sp, #0x0 + add r1, sp, #0xc + bl FUN_0201C7B0 + strh r0, [r4, #0x3c] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r0, #0x40 + strh r1, [r0, #0x0] + add r0, r7, #0x0 + add r1, r4, #0x0 + bl FUN_0201EE2C + ldr r0, [sp, #0x50] + cmp r0, #0x0 + beq _0201EE26 + str r5, [r4, #0x54] + add r2, r4, #0x0 + ldmia r5!, {r0-r1} + add r2, #0x48 + stmia r2!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r2, #0x0] + mov r0, #0x1 + str r0, [r4, #0x58] + str r0, [r4, #0x5c] + str r0, [r4, #0x60] +_0201EE26: + add sp, #0x3c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_0201EE2C +FUN_0201EE2C: ; 0x0201EE2C + push {r3-r6, lr} + sub sp, #0x14 + add r5, r1, #0x0 + cmp r0, #0x0 + bne _0201EE6C + ldr r0, [r5, #0x10] + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + ldr r0, _0201EEE4 ; =0x021CED20 + str r0, [sp, #0xc] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + ldr r3, [r5, #0xc] + bl G3i_PerspectiveW_ + ldr r1, _0201EEE8 ; =0x021CED98 + mov r0, #0x50 + ldr r2, [r1, #0x7c] + add r5, #0x44 + bic r2, r0 + str r2, [r1, #0x7c] + mov r1, #0x0 + ldr r0, _0201EEEC ; =0x02105BB8 + strb r1, [r5, #0x0] + str r1, [r0, #0x0] + add sp, #0x14 + pop {r3-r6, pc} +_0201EE6C: + ldr r4, [r5, #0x38] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + bl FX_Div + asr r1, r0, #0x1f + asr r3, r4, #0x1f + add r2, r4, #0x0 + bl _ll_mul + mov r2, #0x2 + mov r3, #0x0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsr r4, r2, #0xc + lsl r0, r1, #0x14 + orr r4, r0 + ldr r2, [r5, #0x8] + asr r1, r4, #0x1f + add r0, r4, #0x0 + asr r3, r2, #0x1f + bl _ll_mul + mov r6, #0x2 + mov r2, #0x0 + lsl r6, r6, #0xa + add r3, r0, r6 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r3, r3, #0xc + orr r3, r0 + ldr r0, [r5, #0xc] + neg r1, r4 + str r0, [sp, #0x0] + ldr r0, [r5, #0x10] + str r0, [sp, #0x4] + lsl r0, r6, #0x1 + str r0, [sp, #0x8] + str r2, [sp, #0xc] + ldr r0, _0201EEE4 ; =0x021CED20 + neg r2, r3 + str r0, [sp, #0x10] + add r0, r4, #0x0 + bl G3i_OrthoW_ + ldr r1, _0201EEE8 ; =0x021CED98 + mov r0, #0x50 + ldr r2, [r1, #0x7c] + add r5, #0x44 + bic r2, r0 + str r2, [r1, #0x7c] + mov r0, #0x1 + strb r0, [r5, #0x0] + ldr r0, _0201EEEC ; =0x02105BB8 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, #0x14 + pop {r3-r6, pc} + nop +_0201EEE4: .word 0x021CED20 +_0201EEE8: .word 0x021CED98 +_0201EEEC: .word 0x02105BB8 + + thumb_func_start FUN_0201EEF0 +FUN_0201EEF0: ; 0x0201EEF0 + add r2, r1, #0x0 + add r2, #0x46 + strh r0, [r2, #0x0] + add r0, r1, #0x0 + add r0, #0x46 + ldrh r0, [r0, #0x0] + ldr r3, _0201EF24 ; =FUN_0201EE2C + asr r0, r0, #0x4 + lsl r2, r0, #0x2 + ldr r0, _0201EF28 ; =0x020FFA38 + ldrsh r2, [r0, r2] + str r2, [r1, #0x0] + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r0, r2] + str r0, [r1, #0x4] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + bx r3 + nop +_0201EF24: .word FUN_0201EE2C +_0201EF28: .word 0x020FFA38 + + thumb_func_start FUN_0201EF2C +FUN_0201EF2C: ; 0x0201EF2C + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + ldr r3, _0201EF68 ; =FUN_0201EE2C + add r2, r2, r0 + add r0, r1, #0x0 + add r0, #0x46 + strh r2, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x46 + ldrh r0, [r0, #0x0] + asr r0, r0, #0x4 + lsl r2, r0, #0x2 + ldr r0, _0201EF6C ; =0x020FFA38 + ldrsh r2, [r0, r2] + str r2, [r1, #0x0] + add r2, r1, #0x0 + add r2, #0x46 + ldrh r2, [r2, #0x0] + asr r2, r2, #0x4 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x1 + ldrsh r0, [r0, r2] + str r0, [r1, #0x4] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + bx r3 + nop +_0201EF68: .word FUN_0201EE2C +_0201EF6C: .word 0x020FFA38 + + thumb_func_start FUN_0201EF70 +FUN_0201EF70: ; 0x0201EF70 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + add r2, r0, #0x0 + bl VEC_Add + add r4, #0x20 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl VEC_Add + pop {r3-r5, pc} + + thumb_func_start FUN_0201EF90 +FUN_0201EF90: ; 0x0201EF90 + ldrh r2, [r0, #0x0] + strh r2, [r1, #0x3c] + ldrh r2, [r0, #0x2] + strh r2, [r1, #0x3e] + add r2, r1, #0x0 + ldrh r3, [r0, #0x4] + add r2, #0x40 + strh r3, [r2, #0x0] + ldrh r2, [r0, #0x6] + add r0, r1, #0x0 + add r0, #0x42 + strh r2, [r0, #0x0] + ldr r3, _0201EFB0 ; =FUN_0201E7D8 + add r0, r1, #0x0 + bx r3 + nop +_0201EFB0: .word FUN_0201E7D8 + + thumb_func_start FUN_0201EFB4 +FUN_0201EFB4: ; 0x0201EFB4 + ldrh r3, [r1, #0x3c] + ldrh r2, [r0, #0x0] + add r2, r3, r2 + strh r2, [r1, #0x3c] + ldrh r3, [r1, #0x3e] + ldrh r2, [r0, #0x2] + add r2, r3, r2 + strh r2, [r1, #0x3e] + add r2, r1, #0x0 + add r2, #0x40 + ldrh r2, [r2, #0x0] + ldrh r0, [r0, #0x4] + ldr r3, _0201EFDC ; =FUN_0201E8B8 + add r2, r2, r0 + add r0, r1, #0x0 + add r0, #0x40 + strh r2, [r0, #0x0] + add r0, r1, #0x0 + bx r3 + nop +_0201EFDC: .word FUN_0201E8B8 + + thumb_func_start FUN_0201EFE0 +FUN_0201EFE0: ; 0x0201EFE0 + ldr r3, _0201EFE8 ; =FUN_0201E7D8 + str r0, [r1, #0x38] + add r0, r1, #0x0 + bx r3 + .balign 4 +_0201EFE8: .word FUN_0201E7D8 + + thumb_func_start FUN_0201EFEC +FUN_0201EFEC: ; 0x0201EFEC + push {r4, lr} + add r3, r1, #0x0 + add r4, r0, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r2, #0x0] + add r0, r3, #0x0 + bl FUN_0201E7D8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F008 +FUN_0201F008: ; 0x0201F008 + add r0, #0x46 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0201F010 +FUN_0201F010: ; 0x0201F010 + ldr r0, [r0, #0x38] + bx lr + + thumb_func_start FUN_0201F014 +FUN_0201F014: ; 0x0201F014 + ldrh r2, [r1, #0x3c] + strh r2, [r0, #0x0] + ldrh r2, [r1, #0x3e] + strh r2, [r0, #0x2] + add r2, r1, #0x0 + add r2, #0x40 + ldrh r2, [r2, #0x0] + add r1, #0x42 + strh r2, [r0, #0x4] + ldrh r1, [r1, #0x0] + strh r1, [r0, #0x6] + bx lr + + thumb_func_start FUN_0201F02C +FUN_0201F02C: ; 0x0201F02C + add r2, r1, #0x0 + add r2, #0x20 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start FUN_0201F03C +FUN_0201F03C: ; 0x0201F03C + add r2, r1, #0x0 + add r2, #0x14 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + + thumb_func_start FUN_0201F04C +FUN_0201F04C: ; 0x0201F04C + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_0201F05C +FUN_0201F05C: ; 0x0201F05C + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x14 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_0201F06C +FUN_0201F06C: ; 0x0201F06C + mov r2, #0x0 + strb r2, [r0, #0x0] + strb r2, [r0, #0x1] + str r2, [r0, #0x4] + add r1, r0, #0x0 + str r2, [r0, #0x8] + add r1, #0xc4 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xc8 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xcc + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xd0 + str r2, [r1, #0x0] + strb r2, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start FUN_0201F094 +FUN_0201F094: ; 0x0201F094 + mov r3, #0x0 + str r3, [r0, #0x1c] + str r3, [r0, #0x20] + str r3, [r0, #0x78] + add r1, r0, #0x0 + str r3, [r0, #0x7c] + add r1, #0x80 + str r3, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x84 + add r2, r0, #0x0 + str r3, [r1, #0x0] + add r2, #0x94 + mov r1, #0x10 +_0201F0B0: + strb r3, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0201F0B0 + add r2, r0, #0x0 + mov r1, #0x0 + add r2, #0x88 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0x8c + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0x90 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xa4 + str r1, [r2, #0x0] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + mov r2, #0x1 + str r1, [r0, #0x8] + lsl r2, r2, #0xc + str r2, [r0, #0xc] + str r2, [r0, #0x10] + str r2, [r0, #0x14] + add r2, r0, #0x0 + add r2, #0xaa + strh r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xa8 + strb r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb0 + str r1, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb4 + str r1, [r2, #0x0] + strb r1, [r0, #0x18] + bx lr + .balign 4 + + thumb_func_start FUN_0201F100 +FUN_0201F100: ; 0x0201F100 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _0201F13C ; =0x021C59A8 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201F112 + bl ErrorHandling +_0201F112: + mov r1, #0xd4 + add r0, r4, #0x0 + mul r1, r6 + bl FUN_02016998 + ldr r7, _0201F13C ; =0x021C59A8 + mov r4, #0x0 + str r0, [r7, #0x0] + str r6, [r7, #0x4] + cmp r6, #0x0 + ble _0201F13A + add r5, r4, #0x0 +_0201F12A: + ldr r0, [r7, #0x0] + add r0, r0, r5 + bl FUN_0201F06C + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r6 + blt _0201F12A +_0201F13A: + pop {r3-r7, pc} + .balign 4 +_0201F13C: .word 0x021C59A8 + + thumb_func_start FUN_0201F140 +FUN_0201F140: ; 0x0201F140 + push {r4-r6, lr} + ldr r6, _0201F174 ; =0x021C59A8 + mov r4, #0x0 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + ble _0201F160 + add r5, r4, #0x0 +_0201F14E: + ldr r0, [r6, #0x0] + add r0, r0, r5 + bl FUN_0201F23C + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r0 + blt _0201F14E +_0201F160: + ldr r0, _0201F174 ; =0x021C59A8 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0201F174 ; =0x021C59A8 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + pop {r4-r6, pc} + nop +_0201F174: .word 0x021C59A8 + + thumb_func_start FUN_0201F178 +FUN_0201F178: ; 0x0201F178 + push {r3-r7, lr} + ldr r6, _0201F1B0 ; =0x021C59A8 + mov r4, #0x0 + ldr r0, [r6, #0x4] + cmp r0, #0x0 + ble _0201F1AC + add r5, r4, #0x0 + mov r7, #0x2 +_0201F188: + ldr r0, [r6, #0x0] + add r0, r0, r5 + ldrb r1, [r0, #0x1] + cmp r1, #0x1 + bne _0201F196 + bl FUN_0201F318 +_0201F196: + ldr r0, [r6, #0x0] + add r1, r0, r5 + ldrb r0, [r1, #0x3] + cmp r0, #0x1 + bne _0201F1A2 + strb r7, [r1, #0x3] +_0201F1A2: + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, #0xd4 + cmp r4, r0 + blt _0201F188 +_0201F1AC: + pop {r3-r7, pc} + nop +_0201F1B0: .word 0x021C59A8 + + thumb_func_start FUN_0201F1B4 +FUN_0201F1B4: ; 0x0201F1B4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0201F2E4 + add r4, r0, #0x0 + bne _0201F1C8 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0201F1C8: + mov r0, #0x1 + strb r0, [r4, #0x0] + strb r0, [r4, #0x1] + ldr r2, [r5, #0x0] + mov r1, #0xb8 + ldr r0, [r5, #0x4] + mul r1, r2 + bl FUN_02016998 + str r0, [r4, #0x4] + ldr r0, [r5, #0x0] + str r0, [r4, #0x8] + add r0, r4, #0x0 + add r0, #0xc + bl FUN_0201F094 + add r1, r4, #0x0 + add r0, r4, #0x0 + add r1, #0xc + add r0, #0xbc + str r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0xc0 + str r1, [r0, #0x0] + ldr r1, [r5, #0x0] + ldr r0, [r5, #0x4] + lsl r1, r1, #0x2 + bl FUN_02016998 + add r1, r4, #0x0 + add r1, #0xc4 + str r0, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_0201FABC + ldr r0, [r5, #0x4] + mov r1, #0x10 + bl FUN_02016998 + add r1, r4, #0x0 + add r1, #0xcc + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0xcc + ldr r0, [r0, #0x0] + ldr r1, [r5, #0x4] + mov r2, #0x4 + bl FUN_02016B20 + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + bl FUN_0201C360 + add r1, r4, #0x0 + add r1, #0xd0 + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_0201F23C +FUN_0201F23C: ; 0x0201F23C + push {r4, lr} + add r4, r0, #0x0 + bne _0201F24A + bl ErrorHandling + mov r0, #0x0 + pop {r4, pc} +_0201F24A: + ldrb r1, [r4, #0x0] + cmp r1, #0x0 + beq _0201F27E + bl FUN_0201F284 + ldr r0, [r4, #0x4] + bl FUN_02016A18 + add r0, r4, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + add r0, #0xcc + ldr r0, [r0, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + add r0, #0xd0 + ldr r0, [r0, #0x0] + bl FUN_0201C39C + add r0, r4, #0x0 + bl FUN_0201F06C +_0201F27E: + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F284 +FUN_0201F284: ; 0x0201F284 + push {r3-r5, lr} + cmp r0, #0x0 + bne _0201F294 + bne _0201F290 + bl ErrorHandling +_0201F290: + mov r0, #0x0 + pop {r3-r5, pc} +_0201F294: + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _0201F2BA + add r1, r0, #0x0 + add r1, #0xbc + add r4, r0, #0x0 + ldr r1, [r1, #0x0] + add r4, #0xc + cmp r1, r4 + beq _0201F2BA +_0201F2A8: + add r0, r1, #0x0 + add r0, #0xb0 + ldr r5, [r0, #0x0] + add r0, r1, #0x0 + bl FUN_0201F744 + add r1, r5, #0x0 + cmp r5, r4 + bne _0201F2A8 +_0201F2BA: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F2C0 +FUN_0201F2C0: ; 0x0201F2C0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F2CA + bl ErrorHandling +_0201F2CA: + ldrb r0, [r4, #0x3] + cmp r0, #0x0 + bne _0201F2D4 + mov r0, #0x0 + pop {r4, pc} +_0201F2D4: + mov r0, #0x1 + pop {r4, pc} + + thumb_func_start FUN_0201F2D8 +FUN_0201F2D8: ; 0x0201F2D8 + ldrb r1, [r0, #0x3] + cmp r1, #0x2 + bne _0201F2E2 + mov r1, #0x0 + strb r1, [r0, #0x3] +_0201F2E2: + bx lr + + thumb_func_start FUN_0201F2E4 +FUN_0201F2E4: ; 0x0201F2E4 + push {r3-r4} + ldr r0, _0201F314 ; =0x021C59A8 + mov r1, #0x0 + ldr r3, [r0, #0x4] + cmp r3, #0x0 + ble _0201F30C + ldr r4, [r0, #0x0] + add r2, r4, #0x0 +_0201F2F4: + ldrb r0, [r2, #0x0] + cmp r0, #0x0 + bne _0201F304 + mov r0, #0xd4 + mul r0, r1 + add r0, r4, r0 + pop {r3-r4} + bx lr +_0201F304: + add r1, r1, #0x1 + add r2, #0xd4 + cmp r1, r3 + blt _0201F2F4 +_0201F30C: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0201F314: .word 0x021C59A8 + + thumb_func_start FUN_0201F318 +FUN_0201F318: ; 0x0201F318 + push {r3-r6, lr} + sub sp, #0x24 + add r5, r0, #0x0 + bne _0201F324 + bl ErrorHandling +_0201F324: + add r0, sp, #0x0 + bl MTX_Identity33_ + add r0, r5, #0x0 + add r0, #0xbc + ldr r4, [r0, #0x0] + add r5, #0xc + cmp r4, r5 + beq _0201F37E + add r6, sp, #0x0 +_0201F338: + ldrb r0, [r4, #0x18] + cmp r0, #0x1 + bne _0201F376 + add r0, r4, #0x0 + bl FUN_0201FC54 + add r0, r4, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + bne _0201F356 + add r0, r4, #0x0 + bl FUN_0201F90C + b _0201F360 +_0201F356: + cmp r0, #0x2 + bne _0201F360 + add r0, r4, #0x0 + bl FUN_0201F8F0 +_0201F360: + add r0, r4, #0x0 + add r3, r4, #0x0 + add r0, #0x24 + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, #0xc + bl FUN_0201B26C + add r0, r4, #0x0 + bl FUN_0201FC70 +_0201F376: + add r4, #0xb0 + ldr r4, [r4, #0x0] + cmp r4, r5 + bne _0201F338 +_0201F37E: + add sp, #0x24 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_0201F384 +FUN_0201F384: ; 0x0201F384 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x1c] + add r4, r1, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0201F5B8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201F5D4 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0201F648 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F3BA + add r6, #0xc + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0201FB58 +_0201F3BA: + add r0, r5, #0x0 + mov r1, #0x2 + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x8] + mov r1, #0x0 + str r0, [r5, #0x20] + add r0, r5, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + add r5, #0xac + str r1, [r5, #0x0] + pop {r4-r6, pc} + + thumb_func_start FUN_0201F3D4 +FUN_0201F3D4: ; 0x0201F3D4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x1c] + add r4, r1, #0x0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0201F5B8 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F3FE + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl FUN_0201F524 +_0201F3FE: + add r0, r5, #0x0 + ldr r1, [r4, #0x1c] + add r0, #0x88 + str r1, [r0, #0x0] + add r0, r5, #0x0 + ldr r1, [r4, #0x20] + add r0, #0x8c + str r1, [r0, #0x0] + add r0, r5, #0x0 + ldr r1, [r4, #0x24] + add r0, #0x90 + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201F69C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201F6C8 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F43A + add r6, #0xc + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0201FB58 +_0201F43A: + add r0, r5, #0x0 + mov r1, #0x3 + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x8] + mov r1, #0x0 + str r0, [r5, #0x20] + add r0, r5, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + add r5, #0xac + str r1, [r5, #0x0] + pop {r4-r6, pc} + + thumb_func_start FUN_0201F454 +FUN_0201F454: ; 0x0201F454 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_020B7E1C + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl FUN_020B7E10 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl FUN_020B7CE4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _0201F492 + ldr r3, _0201F4E4 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r2, r1, #0x0 + blx r3 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0201F496 + bl ErrorHandling + b _0201F496 +_0201F492: + mov r0, #0x0 + str r0, [r4, #0x0] +_0201F496: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0201F4B2 + ldr r3, _0201F4E4 ; =0x021064B8 + mov r1, #0x1 + ldr r3, [r3, #0x0] + mov r2, #0x0 + blx r3 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _0201F4B6 + bl ErrorHandling + b _0201F4B6 +_0201F4B2: + mov r0, #0x0 + str r0, [r6, #0x0] +_0201F4B6: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _0201F4DA + ldr r3, _0201F4E8 ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + mov r2, #0x0 + blx r3 + str r0, [r7, #0x0] + cmp r0, #0x0 + bne _0201F4DE + bl ErrorHandling + add sp, #0xc + pop {r4-r7, pc} +_0201F4DA: + mov r0, #0x0 + str r0, [r7, #0x0] +_0201F4DE: + add sp, #0xc + pop {r4-r7, pc} + nop +_0201F4E4: .word 0x021064B8 +_0201F4E8: .word 0x021064C0 + + thumb_func_start FUN_0201F4EC +FUN_0201F4EC: ; 0x0201F4EC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r3, #0x0 + bl FUN_020B7CF0 + add r0, r5, #0x0 + bl FUN_020B7C58 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201F500 +FUN_0201F500: ; 0x0201F500 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [r2, #0x0] + ldr r2, [r3, #0x0] + add r5, r0, #0x0 + bl FUN_020B7DFC + ldr r1, [sp, #0x10] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl FUN_020B7CDC + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020B7790 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F524 +FUN_0201F524: ; 0x0201F524 + push {r3-r5, lr} + ldr r0, [r0, #0x0] + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r0, #0x0 + beq _0201F536 + ldr r1, _0201F550 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 +_0201F536: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0201F542 + ldr r1, _0201F550 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 +_0201F542: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0201F54E + ldr r1, _0201F554 ; =0x021064C4 + ldr r1, [r1, #0x0] + blx r1 +_0201F54E: + pop {r3-r5, pc} + .balign 4 +_0201F550: .word 0x021064BC +_0201F554: .word 0x021064C4 + + thumb_func_start FUN_0201F558 +FUN_0201F558: ; 0x0201F558 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + beq _0201F568 + cmp r5, #0x0 + bne _0201F56E +_0201F568: + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0201F56E: + bl FUN_020B7E1C + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl FUN_020B7E10 + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl FUN_020B7CE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7E1C + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7E10 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7CE4 + ldr r1, [sp, #0x0] + cmp r1, r6 + bne _0201F5AA + ldr r1, [sp, #0x4] + cmp r1, r7 + bne _0201F5AA + cmp r4, r0 + beq _0201F5B0 +_0201F5AA: + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0201F5B0: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201F5B8 +FUN_0201F5B8: ; 0x0201F5B8 + push {r4, lr} + add r4, r1, #0x0 + add r0, r4, #0x0 + add r0, #0xa4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0201F5D0 + bl FUN_0201C40C + mov r0, #0x0 + add r4, #0xa4 + str r0, [r4, #0x0] +_0201F5D0: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F5D4 +FUN_0201F5D4: ; 0x0201F5D4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0x80 + ldr r4, [r0, #0x0] + add r0, r1, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r1, #0x7c + add r2, #0x80 + bl FUN_0201FB9C + str r0, [r5, #0x78] + add r0, r5, #0x0 + ldr r1, [r5, #0x7c] + add r0, #0x24 + bl FUN_020B80B4 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x3 + beq _0201F60E + add r1, r5, #0x0 + add r1, #0x80 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_0201F558 + b _0201F610 +_0201F60E: + mov r0, #0x0 +_0201F610: + cmp r0, #0x0 + bne _0201F644 + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F62E + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl FUN_0201F524 +_0201F62E: + add r0, r5, #0x0 + add r0, #0x80 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r5, #0x90 + ldr r0, [r0, #0x0] + add r1, #0x88 + add r2, #0x8c + add r3, r5, #0x0 + bl FUN_0201F454 +_0201F644: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F648 +FUN_0201F648: ; 0x0201F648 + push {r4-r6, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r6, r0, #0x0 + add r5, r1, #0x0 + add r0, r4, #0x0 + bl FUN_0201FBCC + add r1, r5, #0x0 + add r1, #0x84 + add r3, r5, #0x0 + add r3, #0x94 + str r0, [r1, #0x0] + add r4, #0xc + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r5, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + add r1, r2, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r0, #0xac + ldr r0, [r0, #0x0] + add r2, r5, #0x0 + add r3, r5, #0x0 + str r0, [sp, #0x4] + add r6, #0xd0 + add r2, #0x84 + add r3, #0x88 + ldr r0, [r6, #0x0] + ldr r2, [r2, #0x0] + ldr r3, [r3, #0x0] + bl FUN_0201C3B4 + add r5, #0xa4 + str r0, [r5, #0x0] + add sp, #0x8 + pop {r4-r6, pc} + + thumb_func_start FUN_0201F69C +FUN_0201F69C: ; 0x0201F69C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, r4, #0x0 + add r1, #0x7c + add r2, #0x80 + bl FUN_0201FB9C + str r0, [r5, #0x78] + add r0, r5, #0x0 + ldr r1, [r5, #0x7c] + add r0, #0x24 + bl FUN_020B80B4 + add r0, r4, #0x0 + bl FUN_0201FBCC + add r5, #0x84 + str r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201F6C8 +FUN_0201F6C8: ; 0x0201F6C8 + push {r3-r4} + add r4, r0, #0x0 + add r2, r4, #0x0 + add r3, r1, #0x0 + add r3, #0xc + add r2, #0x94 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + add r4, #0xa4 + str r0, [r4, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0201F6E8 +FUN_0201F6E8: ; 0x0201F6E8 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r6, [r5, #0x0] + cmp r6, #0x0 + bne _0201F6F6 + mov r0, #0x0 + pop {r4-r6, pc} +_0201F6F6: + add r0, r6, #0x0 + bl FUN_0201FAF4 + add r4, r0, #0x0 + bne _0201F704 + mov r0, #0x0 + pop {r4-r6, pc} +_0201F704: + add r3, r5, #0x0 + str r6, [r4, #0x1c] + add r3, #0x8 + ldmia r3!, {r0-r1} + add r2, r4, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r3, r5, #0x0 + str r0, [r2, #0x0] + add r3, #0x14 + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + mov r1, #0x0 + str r0, [r2, #0x0] + add r0, r4, #0x0 + add r0, #0xaa + strh r1, [r0, #0x0] + mov r1, #0x1 + add r0, r4, #0x0 + strb r1, [r4, #0x18] + add r0, #0xa8 + strb r1, [r0, #0x0] + ldr r1, [r5, #0x4] + add r0, r4, #0x0 + bl FUN_0201FBD8 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201F744 +FUN_0201F744: ; 0x0201F744 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _0201F74E + bl ErrorHandling +_0201F74E: + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _0201F75C + bl ErrorHandling +_0201F75C: + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + ldr r4, [r5, #0x1c] + cmp r0, #0x0 + bne _0201F76C + mov r0, #0x0 + pop {r3-r5, pc} +_0201F76C: + add r0, r5, #0x0 + bl FUN_0201FB7C + add r0, r5, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F78C + add r0, r5, #0x0 + add r1, r5, #0x0 + add r2, r5, #0x0 + add r0, #0x88 + add r1, #0x8c + add r2, #0x90 + bl FUN_0201F524 +_0201F78C: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0201F5B8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0201FB20 + mov r0, #0x1 + strb r0, [r4, #0x3] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F7A4 +FUN_0201F7A4: ; 0x0201F7A4 + push {r3-r4} + add r4, r0, #0x0 + str r1, [r4, #0x0] + str r2, [r4, #0x4] + str r3, [r4, #0x8] + ldr r3, [sp, #0x8] + add r2, r4, #0x0 + add r2, #0xc + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0x0 + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + str r0, [r4, #0x24] + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201F7C8 +FUN_0201F7C8: ; 0x0201F7C8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _0201F7D6 + bl ErrorHandling +_0201F7D6: + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201F7E0 +FUN_0201F7E0: ; 0x0201F7E0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F7EA + bl ErrorHandling +_0201F7EA: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F7F0 +FUN_0201F7F0: ; 0x0201F7F0 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _0201F7FE + bl ErrorHandling +_0201F7FE: + ldmia r5!, {r0-r1} + add r4, #0xc + stmia r4!, {r0-r1} + ldr r0, [r5, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F80C +FUN_0201F80C: ; 0x0201F80C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F81A + bl ErrorHandling +_0201F81A: + strb r4, [r5, #0x18] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F820 +FUN_0201F820: ; 0x0201F820 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F82A + bl ErrorHandling +_0201F82A: + ldrb r0, [r4, #0x18] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F830 +FUN_0201F830: ; 0x0201F830 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F83E + bl ErrorHandling +_0201F83E: + add r5, #0xaa + strh r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201F844 +FUN_0201F844: ; 0x0201F844 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F84E + bl ErrorHandling +_0201F84E: + add r4, #0xaa + ldrh r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_0201F854 +FUN_0201F854: ; 0x0201F854 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F862 + bl ErrorHandling +_0201F862: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0201FBFC + pop {r3-r5, pc} + + thumb_func_start FUN_0201F86C +FUN_0201F86C: ; 0x0201F86C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F87A + bl ErrorHandling +_0201F87A: + add r5, #0xac + str r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0201F880 +FUN_0201F880: ; 0x0201F880 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F88A + bl ErrorHandling +_0201F88A: + add r4, #0xac + ldr r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_0201F890 +FUN_0201F890: ; 0x0201F890 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0201F89E + bl ErrorHandling +_0201F89E: + add r1, r5, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + add r0, r5, #0x0 + bl FUN_0201FBEC + add r1, r5, #0x0 + add r1, #0xac + str r0, [r1, #0x0] + add r0, r5, #0x0 + add r0, #0xac + ldr r0, [r0, #0x0] + add r5, #0xac + add r0, r0, r4 + str r0, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201F8C0 +FUN_0201F8C0: ; 0x0201F8C0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F8CA + bl ErrorHandling +_0201F8CA: + add r1, r4, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_0201FBEC + add r4, #0xac + ldr r1, [r4, #0x0] + sub r0, r1, r0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F8E0 +FUN_0201F8E0: ; 0x0201F8E0 + push {r4, lr} + add r4, r0, #0x0 + bne _0201F8EA + bl ErrorHandling +_0201F8EA: + ldr r0, [r4, #0x7c] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201F8F0 +FUN_0201F8F0: ; 0x0201F8F0 + push {r3, lr} + add r1, r0, #0x0 + add r0, #0xa8 + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _0201F90A + add r0, r1, #0x0 + add r0, #0xa4 + add r1, #0xac + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + bl FUN_0201C438 +_0201F90A: + pop {r3, pc} + + thumb_func_start FUN_0201F90C +FUN_0201F90C: ; 0x0201F90C + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0xac + ldr r1, [r1, #0x0] + add r0, #0x94 + lsl r1, r1, #0x4 + lsr r1, r1, #0x10 + bl FUN_02022244 + add r2, sp, #0x0 + strb r0, [r2, #0x0] + lsr r0, r0, #0x8 + strb r0, [r2, #0x1] + ldrb r0, [r2, #0x0] + add r1, r4, #0x0 + add r1, #0x84 + strb r0, [r2, #0x2] + ldrb r0, [r2, #0x1] + strb r0, [r2, #0x3] + ldrb r2, [r2, #0x2] + ldr r0, [r4, #0x7c] + ldr r1, [r1, #0x0] + bl FUN_0201F954 + add r2, sp, #0x0 + ldr r0, [r4, #0x7c] + add r4, #0x84 + ldrb r2, [r2, #0x3] + ldr r1, [r4, #0x0] + bl FUN_0201FA04 + add sp, #0x4 + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_0201F954 +FUN_0201F954: ; 0x0201F954 + push {r3-r7, lr} + ldr r3, [r0, #0x8] + mov r5, #0x0 + add r6, r0, r3 + ldrh r0, [r0, r3] + add r3, r1, #0x0 + add r1, #0x42 + ldrh r1, [r1, #0x0] + add r3, #0x3c + add r4, r6, r0 + add r0, r3, r1 + ldrh r1, [r3, r1] + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x4] + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + ldrb r0, [r4, #0x1] + cmp r0, #0x0 + ble _0201F9A2 +_0201F97C: + ldrh r0, [r4, #0x6] + add r1, r4, r0 + ldrh r0, [r4, r0] + add r2, r1, #0x4 + add r1, r0, #0x0 + mul r1, r5 + add r1, r2, r1 + ldrb r2, [r1, #0x3] + mov r0, #0x1 + tst r0, r2 + beq _0201F99A + add r0, r6, #0x0 + add r2, r7, #0x0 + bl FUN_0201F9A4 +_0201F99A: + ldrb r0, [r4, #0x1] + add r5, r5, #0x1 + cmp r5, r0 + blt _0201F97C +_0201F9A2: + pop {r3-r7, pc} + + thumb_func_start FUN_0201F9A4 +FUN_0201F9A4: ; 0x0201F9A4 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r0, r1, #0x0 + ldrh r0, [r0, #0x0] + str r1, [sp, #0x0] + add r7, r2, #0x0 + add r0, r6, r0 + str r0, [sp, #0x4] + add r0, r1, #0x0 + ldrb r0, [r0, #0x2] + mov r4, #0x0 + cmp r0, #0x0 + ble _0201F9FC + add r0, r6, #0x4 + str r0, [sp, #0x8] +_0201F9C4: + ldrh r2, [r6, #0xa] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x8] + add r0, r0, r2 + ldrh r2, [r1, r2] + ldr r1, [sp, #0x4] + ldrb r1, [r1, r4] + mul r1, r2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + add r5, r6, r0 + ldr r0, [r5, #0x14] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r0, r7 + ldr r0, _0201FA00 ; =0x0000FFFF + cmp r1, r0 + bls _0201F9EC + bl ErrorHandling +_0201F9EC: + ldr r0, [r5, #0x14] + add r4, r4, #0x1 + add r0, r0, r7 + str r0, [r5, #0x14] + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x2] + cmp r4, r0 + blt _0201F9C4 +_0201F9FC: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0201FA00: .word 0x0000FFFF + + thumb_func_start FUN_0201FA04 +FUN_0201FA04: ; 0x0201FA04 + push {r3-r7, lr} + ldr r3, [r0, #0x8] + add r7, r0, r3 + ldrh r0, [r7, #0x2] + add r4, r7, r0 + ldrh r0, [r1, #0x34] + add r5, r1, r0 + ldrh r0, [r5, #0x6] + add r1, r5, r0 + ldrh r0, [r5, r0] + add r3, r1, #0x4 + add r1, r0, #0x0 + mul r1, r2 + add r0, r3, r1 + ldrh r6, [r3, r1] + ldrh r1, [r0, #0x2] + mov r0, #0x1 + tst r0, r1 + bne _0201FA2C + lsr r6, r6, #0x1 +_0201FA2C: + ldrb r0, [r4, #0x1] + mov r5, #0x0 + cmp r0, #0x0 + bls _0201FA5A +_0201FA34: + ldrh r0, [r4, #0x6] + add r1, r4, r0 + ldrh r0, [r4, r0] + add r2, r1, #0x4 + add r1, r0, #0x0 + mul r1, r5 + add r1, r2, r1 + ldrb r2, [r1, #0x3] + mov r0, #0x1 + tst r0, r2 + beq _0201FA52 + add r0, r7, #0x0 + add r2, r6, #0x0 + bl FUN_0201FA5C +_0201FA52: + ldrb r0, [r4, #0x1] + add r5, r5, #0x1 + cmp r5, r0 + blo _0201FA34 +_0201FA5A: + pop {r3-r7, pc} + + thumb_func_start FUN_0201FA5C +FUN_0201FA5C: ; 0x0201FA5C + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + add r0, r1, #0x0 + ldrh r0, [r0, #0x0] + str r1, [sp, #0x0] + add r7, r2, #0x0 + add r0, r6, r0 + str r0, [sp, #0x4] + add r0, r1, #0x0 + ldrb r0, [r0, #0x2] + mov r4, #0x0 + cmp r0, #0x0 + bls _0201FAB4 + add r0, r6, #0x4 + str r0, [sp, #0x8] +_0201FA7C: + ldrh r2, [r6, #0xa] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x8] + add r0, r0, r2 + ldrh r2, [r1, r2] + ldr r1, [sp, #0x4] + ldrb r1, [r1, r4] + mul r1, r2 + add r0, r0, r1 + ldr r0, [r0, #0x4] + add r5, r6, r0 + ldrh r1, [r5, #0x1c] + ldr r0, _0201FAB8 ; =0x00001FFF + and r0, r1 + add r1, r0, r7 + ldr r0, _0201FAB8 ; =0x00001FFF + cmp r1, r0 + bls _0201FAA4 + bl ErrorHandling +_0201FAA4: + ldrh r0, [r5, #0x1c] + add r4, r4, #0x1 + add r0, r0, r7 + strh r0, [r5, #0x1c] + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x2] + cmp r4, r0 + blo _0201FA7C +_0201FAB4: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0201FAB8: .word 0x00001FFF + + thumb_func_start FUN_0201FABC +FUN_0201FABC: ; 0x0201FABC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x8] + mov r7, #0x0 + cmp r0, #0x0 + ble _0201FAEC + add r4, r7, #0x0 + add r6, r7, #0x0 +_0201FACC: + ldr r0, [r5, #0x4] + add r0, r0, r4 + bl FUN_0201F094 + ldr r0, [r5, #0x4] + add r7, r7, #0x1 + add r1, r0, r4 + add r0, r5, #0x0 + add r0, #0xc4 + ldr r0, [r0, #0x0] + add r4, #0xb8 + str r1, [r0, r6] + ldr r0, [r5, #0x8] + add r6, r6, #0x4 + cmp r7, r0 + blt _0201FACC +_0201FAEC: + mov r0, #0x0 + add r5, #0xc8 + str r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start FUN_0201FAF4 +FUN_0201FAF4: ; 0x0201FAF4 + add r1, r0, #0x0 + add r1, #0xc8 + ldr r3, [r1, #0x0] + ldr r1, [r0, #0x8] + cmp r3, r1 + blt _0201FB04 + mov r0, #0x0 + bx lr +_0201FB04: + add r1, r0, #0x0 + add r1, #0xc4 + ldr r2, [r1, #0x0] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r0, #0x0 + add r1, #0xc8 + ldr r1, [r1, #0x0] + add r0, #0xc8 + add r1, r1, #0x1 + str r1, [r0, #0x0] + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0201FB20 +FUN_0201FB20: ; 0x0201FB20 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, #0xc8 + ldr r0, [r0, #0x0] + add r4, r1, #0x0 + cmp r0, #0x0 + bgt _0201FB32 + mov r0, #0x0 + pop {r3-r5, pc} +_0201FB32: + add r0, r4, #0x0 + bl FUN_0201F094 + add r0, r5, #0x0 + add r0, #0xc8 + ldr r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r5, #0x0 + add r0, #0xc8 + str r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xc4 + add r5, #0xc8 + ldr r1, [r0, #0x0] + ldr r0, [r5, #0x0] + lsl r0, r0, #0x2 + str r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_0201FB58 +FUN_0201FB58: ; 0x0201FB58 + add r2, r0, #0x0 + add r2, #0xb4 + ldr r3, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb4 + str r3, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xb4 + ldr r2, [r2, #0x0] + add r2, #0xb0 + str r1, [r2, #0x0] + add r2, r1, #0x0 + add r2, #0xb0 + str r0, [r2, #0x0] + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0201FB7C +FUN_0201FB7C: ; 0x0201FB7C + add r1, r0, #0x0 + add r1, #0xb0 + ldr r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0xb4 + ldr r1, [r1, #0x0] + add r1, #0xb0 + str r2, [r1, #0x0] + add r1, r0, #0x0 + add r0, #0xb0 + add r1, #0xb4 + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + add r0, #0xb4 + str r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_0201FB9C +FUN_0201FB9C: ; 0x0201FB9C + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x0 + add r5, r2, #0x0 + bl FUN_0201FC90 + add r7, r0, #0x0 + bl FUN_020BC13C + add r4, r0, #0x0 + ldrh r0, [r4, #0xe] + add r0, r4, r0 + ldr r0, [r0, #0xc] + add r0, r4, r0 + str r0, [r6, #0x0] + cmp r5, #0x0 + beq _0201FBC6 + add r0, r7, #0x0 + bl FUN_020BC0FC + str r0, [r5, #0x0] +_0201FBC6: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0201FBCC +FUN_0201FBCC: ; 0x0201FBCC + ldr r3, _0201FBD4 ; =FUN_0201FC90 + mov r1, #0x1 + bx r3 + nop +_0201FBD4: .word FUN_0201FC90 + + thumb_func_start FUN_0201FBD8 +FUN_0201FBD8: ; 0x0201FBD8 + push {r3, lr} + ldr r2, [r1, #0x1c] + cmp r2, #0x0 + bne _0201FBE6 + bl FUN_0201F384 + pop {r3, pc} +_0201FBE6: + bl FUN_0201F3D4 + pop {r3, pc} + + thumb_func_start FUN_0201FBEC +FUN_0201FBEC: ; 0x0201FBEC + push {r3, lr} + ldr r0, [r0, #0x20] + bl FUN_0201FCA8 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0201FBFC +FUN_0201FBFC: ; 0x0201FBFC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x0 + add r1, #0xaa + ldrh r1, [r1, #0x0] + ldr r0, [r5, #0x20] + bl FUN_0201FCA8 + add r5, #0xac + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0201FC1C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0201FC1C +FUN_0201FC1C: ; 0x0201FC1C + push {r3-r6} + ldr r4, [r0, #0x0] + ldr r6, [r1, #0x0] + lsl r4, r4, #0xc + mov r3, #0x0 + cmp r4, r6 + bgt _0201FC32 + ldr r5, [r0, #0x4] + lsl r5, r5, #0xc + cmp r5, r6 + bge _0201FC36 +_0201FC32: + str r4, [r1, #0x0] + b _0201FC4E +_0201FC36: + add r2, r6, r2 + cmp r5, r2 + bge _0201FC4C + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0201FC46 + str r4, [r1, #0x0] + b _0201FC4E +_0201FC46: + mov r3, #0x1 + str r5, [r1, #0x0] + b _0201FC4E +_0201FC4C: + str r2, [r1, #0x0] +_0201FC4E: + add r0, r3, #0x0 + pop {r3-r6} + bx lr + + thumb_func_start FUN_0201FC54 +FUN_0201FC54: ; 0x0201FC54 + push {r3, lr} + add r3, r0, #0x0 + add r0, #0x90 + str r0, [sp, #0x0] + add r0, r3, #0x0 + add r0, #0x80 + add r2, r3, #0x0 + ldr r1, [r3, #0x78] + ldr r0, [r0, #0x0] + add r2, #0x88 + add r3, #0x8c + bl FUN_0201F500 + pop {r3, pc} + + thumb_func_start FUN_0201FC70 +FUN_0201FC70: ; 0x0201FC70 + push {r3-r4, lr} + sub sp, #0xc + add r4, r0, #0x0 + ldr r0, [r4, #0x78] + bl FUN_020B772C + add r4, #0x80 + ldr r0, [r4, #0x0] + add r1, sp, #0x4 + add r2, sp, #0x8 + add r3, sp, #0x0 + bl FUN_0201F4EC + add sp, #0xc + pop {r3-r4, pc} + .balign 4 + + thumb_func_start FUN_0201FC90 +FUN_0201FC90: ; 0x0201FC90 + cmp r1, #0x0 + beq _0201FC9A + cmp r1, #0x1 + beq _0201FC9E + b _0201FCA2 +_0201FC9A: + ldr r0, [r0, #0x0] + bx lr +_0201FC9E: + ldr r0, [r0, #0x4] + bx lr +_0201FCA2: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0201FCA8 +FUN_0201FCA8: ; 0x0201FCA8 + mov r2, #0xc + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start FUN_0201FCB0 +FUN_0201FCB0: ; 0x0201FCB0 + push {r3-r5, lr} + add r5, r0, #0x0 + bne _0201FCBA + bl ErrorHandling +_0201FCBA: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0201FCC4 + bl ErrorHandling +_0201FCC4: + mov r1, #0x49 + ldr r0, [r5, #0x8] + lsl r1, r1, #0x2 + bl FUN_02016998 + add r4, r0, #0x0 + bne _0201FCD6 + bl ErrorHandling +_0201FCD6: + add r0, r4, #0x0 + bl FUN_0201FE44 + ldr r2, [r5, #0x0] + ldr r0, [r5, #0x8] + lsl r1, r2, #0x6 + add r1, r2, r1 + lsl r1, r1, #0x2 + bl FUN_02016998 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _0201FCF4 + bl ErrorHandling +_0201FCF4: + ldr r0, [r5, #0x0] + str r0, [r4, #0x4] + ldr r1, [r5, #0x0] + ldr r0, [r5, #0x8] + lsl r1, r1, #0x2 + bl FUN_02016998 + str r0, [r4, #0x8] + cmp r0, #0x0 + bne _0201FD0C + bl ErrorHandling +_0201FD0C: + add r0, r4, #0x0 + bl FUN_0202083C + add r0, r4, #0x0 + add r0, #0x10 + bl FUN_0201FE6C + add r2, r4, #0x0 + mov r1, #0x43 + lsl r1, r1, #0x2 + add r2, #0x10 + str r2, [r4, r1] + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x4] + add r1, #0x8 + str r0, [r4, r1] + ldr r0, [r5, #0x8] + ldr r1, _0201FD54 ; =0x02105BBC + bl FUN_020161A4 + mov r1, #0x46 + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #0x4 + add r1, r4, r1 + bl thunk_FUN_020afda0_2 + mov r0, #0x12 + mov r1, #0x1 + lsl r0, r0, #0x4 + str r1, [r4, r0] + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_0201FD54: .word 0x02105BBC + + thumb_func_start FUN_0201FD58 +FUN_0201FD58: ; 0x0201FD58 + push {r4, lr} + add r4, r0, #0x0 + bne _0201FD62 + mov r0, #0x0 + pop {r4, pc} +_0201FD62: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bne _0201FD6C + mov r0, #0x1 + pop {r4, pc} +_0201FD6C: + bl FUN_0201FDB4 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, [r4, #0x8] + bl FUN_02016A18 + ldr r0, [r4, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_0201FE44 + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x1 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201FD98 +FUN_0201FD98: ; 0x0201FD98 + cmp r0, #0x0 + bne _0201FDA0 + mov r0, #0x0 + bx lr +_0201FDA0: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _0201FDAA + mov r0, #0x0 + bx lr +_0201FDAA: + mov r2, #0x12 + lsl r2, r2, #0x4 + str r1, [r0, r2] + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0201FDB4 +FUN_0201FDB4: ; 0x0201FDB4 + push {r4-r6, lr} + cmp r0, #0x0 + bne _0201FDBE + mov r0, #0x0 + pop {r4-r6, pc} +_0201FDBE: + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0201FDC8 + mov r0, #0x1 + pop {r4-r6, pc} +_0201FDC8: + mov r1, #0x11 + lsl r1, r1, #0x4 + add r4, r0, #0x0 + ldr r1, [r0, r1] + add r4, #0x10 + cmp r1, r4 + beq _0201FDE8 + mov r6, #0x1 + lsl r6, r6, #0x8 +_0201FDDA: + ldr r5, [r1, r6] + add r0, r1, #0x0 + bl FUN_0201FFC8 + add r1, r5, #0x0 + cmp r5, r4 + bne _0201FDDA +_0201FDE8: + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start FUN_0201FDEC +FUN_0201FDEC: ; 0x0201FDEC + push {r3-r7, lr} + add r5, r0, #0x0 + bne _0201FDF6 + bl ErrorHandling +_0201FDF6: + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r1, [r5, r0] + cmp r1, #0x0 + beq _0201FE38 + sub r0, #0x10 + add r6, r5, #0x0 + ldr r4, [r5, r0] + add r6, #0x10 + cmp r4, r6 + beq _0201FE38 + ldr r7, _0201FE3C ; =0x020EE658 +_0201FE0E: + add r2, r4, #0x0 + add r2, #0x34 + ldrb r2, [r2, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + ldr r2, [r7, r2] + blx r2 + add r1, r4, #0x0 + add r1, #0x35 + ldrb r1, [r1, #0x0] + add r0, r4, #0x0 + lsl r2, r1, #0x2 + ldr r1, _0201FE40 ; =0x020EE660 + ldr r1, [r1, r2] + blx r1 + mov r0, #0x1 + lsl r0, r0, #0x8 + ldr r4, [r4, r0] + cmp r4, r6 + bne _0201FE0E +_0201FE38: + pop {r3-r7, pc} + nop +_0201FE3C: .word 0x020EE658 +_0201FE40: .word 0x020EE660 + + thumb_func_start FUN_0201FE44 +FUN_0201FE44: ; 0x0201FE44 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + str r1, [r4, #0x0] + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x45 + str r1, [r4, #0xc] + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r4, #0x0 + add r0, #0x10 + bl FUN_0201FE6C + mov r0, #0x12 + mov r1, #0x0 + lsl r0, r0, #0x4 + str r1, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201FE6C +FUN_0201FE6C: ; 0x0201FE6C + push {r4, lr} + mov r2, #0x41 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + str r1, [r4, #0x3c] + bl memset + add r0, r4, #0x0 + add r0, #0xb4 + bl FUN_020B1A24 + add r0, r4, #0x0 + add r0, #0xd8 + bl FUN_020B19DC + mov r0, #0x0 + str r0, [r4, #0x30] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201FE94 +FUN_0201FE94: ; 0x0201FE94 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + bl FUN_02020874 + add r4, r0, #0x0 + bne _0201FEA6 + mov r0, #0x0 + pop {r4-r6, pc} +_0201FEA6: + ldr r0, [r5, #0x0] + add r6, r5, #0x0 + str r0, [r4, #0x3c] + add r0, r4, #0x0 + mov r2, #0x0 + add r0, #0xf0 + add r6, #0x8 + strh r2, [r0, #0x0] + ldmia r6!, {r0-r1} + add r3, r4, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + add r6, r5, #0x0 + str r0, [r3, #0x0] + add r6, #0x14 + add r3, r4, #0x0 + ldmia r6!, {r0-r1} + add r3, #0x18 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + str r0, [r3, #0x0] + ldrh r0, [r5, #0x20] + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldr r1, [r5, #0x28] + add r0, #0xf8 + str r1, [r0, #0x0] + add r0, r4, #0x0 + ldr r1, [r5, #0x24] + add r0, #0xf4 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x26 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x27 + strb r2, [r0, #0x0] + str r2, [r4, #0x2c] + add r0, r4, #0x0 + str r2, [r4, #0x30] + mov r1, #0x11 + add r0, #0x28 + strb r1, [r0, #0x0] + mov r0, #0x45 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r1, r4, #0x0 + add r1, #0x26 + ldrb r1, [r1, #0x0] + bl FUN_020B502C + add r0, r4, #0x0 + add r0, #0x27 + ldrb r2, [r0, #0x0] + mov r0, #0x45 + ldr r1, [r5, #0x0] + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x1 + mov r3, #0x2 + and r1, r2 + and r2, r3 + bl FUN_020B4F38 + add r0, r4, #0x0 + mov r2, #0x1 + add r0, #0x34 + strb r2, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x35 + strb r1, [r0, #0x0] + lsl r0, r2, #0xd + str r0, [r4, #0x38] + ldr r0, [r5, #0x0] + ldr r1, [r5, #0x4] + ldr r3, [r5, #0x2c] + add r2, r4, #0x0 + bl FUN_02020434 + cmp r0, #0x0 + bne _0201FF56 + add r0, r4, #0x0 + bl FUN_0201FFC8 + mov r0, #0x0 + pop {r4-r6, pc} +_0201FF56: + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl FUN_020205E8 + add r1, r4, #0x0 + add r1, #0x2a + strb r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x2a + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x29 + strb r1, [r0, #0x0] + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl FUN_02020788 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0201FF84 +FUN_0201FF84: ; 0x0201FF84 + push {r4, lr} + sub sp, #0x30 + add r2, r0, #0x0 + ldr r0, [r2, #0x0] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldr r0, [r2, #0x4] + add r4, #0x8 + str r0, [sp, #0x4] + ldmia r4!, {r0-r1} + add r3, sp, #0x8 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + mov r1, #0x0 + str r0, [r3, #0x0] + mov r0, #0x1 + lsl r0, r0, #0xc + str r0, [sp, #0x14] + str r0, [sp, #0x18] + str r0, [sp, #0x1c] + add r0, sp, #0x0 + strh r1, [r0, #0x20] + ldr r0, [r2, #0x14] + str r0, [sp, #0x24] + ldr r0, [r2, #0x18] + str r0, [sp, #0x28] + ldr r0, [r2, #0x1c] + str r0, [sp, #0x2c] + add r0, sp, #0x0 + bl FUN_0201FE94 + add sp, #0x30 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201FFC8 +FUN_0201FFC8: ; 0x0201FFC8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r1, r5, #0x0 + add r1, #0xec + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _02020040 + add r1, r5, #0x0 + add r1, #0xfc + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0201FFE4 + bl FUN_02020820 +_0201FFE4: + add r0, r5, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x3 + bne _0202000E + add r1, r5, #0x0 + add r1, #0xf8 + add r0, r5, #0x0 + add r4, r5, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xb4 + add r4, #0x40 + bl FUN_020B1A14 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _0202000E + ldr r0, [r4, #0x5c] + bl FUN_020B4358 +_0202000E: + add r0, r5, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x2 + bne _02020030 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x70] + cmp r0, #0x0 + beq _02020026 + bl FUN_02016A18 +_02020026: + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _02020030 + bl FUN_02016A18 +_02020030: + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0xec + str r1, [r0, #0x0] + ldr r0, [r5, #0x3c] + add r1, r5, #0x0 + bl FUN_02020890 +_02020040: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02020044 +FUN_02020044: ; 0x02020044 + add r2, r1, #0x0 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020054 +FUN_02020054: ; 0x02020054 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0xc + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_02020064 +FUN_02020064: ; 0x02020064 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x18 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_02020074 +FUN_02020074: ; 0x02020074 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02020064 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020200EC + pop {r3-r5, pc} + + thumb_func_start FUN_02020088 +FUN_02020088: ; 0x02020088 + strh r1, [r0, #0x24] + bx lr + + thumb_func_start FUN_0202008C +FUN_0202008C: ; 0x0202008C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02020088 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020200EC + pop {r3-r5, pc} + + thumb_func_start FUN_020200A0 +FUN_020200A0: ; 0x020200A0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200AE + bl ErrorHandling +_020200AE: + cmp r4, #0x2 + blt _020200B6 + bl ErrorHandling +_020200B6: + add r5, #0x34 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_020200BC +FUN_020200BC: ; 0x020200BC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200CA + bl ErrorHandling +_020200CA: + cmp r4, #0x2 + blt _020200D2 + bl ErrorHandling +_020200D2: + add r5, #0x35 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_020200D8 +FUN_020200D8: ; 0x020200D8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200E6 + bl ErrorHandling +_020200E6: + str r4, [r5, #0x38] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020200EC +FUN_020200EC: ; 0x020200EC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020200FA + bl ErrorHandling +_020200FA: + add r5, #0x26 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02020100 +FUN_02020100: ; 0x02020100 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202010E + bl ErrorHandling +_0202010E: + add r0, r5, #0x0 + add r0, #0x27 + strb r4, [r0, #0x0] + mov r0, #0x0 + add r5, #0x26 + strb r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202011C +FUN_0202011C: ; 0x0202011C + bx lr + .balign 4 + + thumb_func_start FUN_02020120 +FUN_02020120: ; 0x02020120 + add r0, #0x18 + bx lr + + thumb_func_start FUN_02020124 +FUN_02020124: ; 0x02020124 + ldrh r0, [r0, #0x24] + bx lr + + thumb_func_start FUN_02020128 +FUN_02020128: ; 0x02020128 + add r0, #0x34 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020130 +FUN_02020130: ; 0x02020130 + push {r4, lr} + lsl r2, r1, #0x10 + lsr r3, r2, #0x10 + add r2, r0, #0x0 + add r2, #0xf0 + strh r3, [r2, #0x0] + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _0202014A + cmp r2, #0x3 + bne _02020168 +_0202014A: + add r4, r0, #0x0 + add r4, #0x40 + lsl r1, r1, #0x10 + ldr r0, [r4, #0x4] + lsr r1, r1, #0x10 + bl FUN_020AFC04 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x8 + bl FUN_020B1EE4 + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} +_02020168: + add r4, r0, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x6c] + add r1, r3, #0x0 + bl FUN_020AFC04 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x8 + bl FUN_020B242C + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} + + thumb_func_start FUN_02020184 +FUN_02020184: ; 0x02020184 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xf0 + ldrh r2, [r2, #0x0] + cmp r2, r1 + beq _02020194 + bl FUN_02020130 +_02020194: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02020198 +FUN_02020198: ; 0x02020198 + push {r3-r5, lr} + add r4, r0, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020201A8 + cmp r0, #0x3 + bne _020201C2 +_020201A8: + add r5, r4, #0x0 + add r5, #0x40 + add r0, r5, #0x0 + add r0, #0x8 + bl FUN_020B0448 + mov r0, #0x1 + str r0, [r5, #0x10] + add r0, r4, #0x0 + mov r1, #0x0 + bl FUN_02020208 + pop {r3-r5, pc} +_020201C2: + add r5, r4, #0x0 + add r5, #0x40 + add r0, r5, #0x0 + add r0, #0x8 + bl FUN_020B0448 + mov r0, #0x1 + str r0, [r5, #0x10] + add r0, r4, #0x0 + mov r1, #0x0 + bl FUN_02020208 + pop {r3-r5, pc} + + thumb_func_start FUN_020201DC +FUN_020201DC: ; 0x020201DC + add r0, #0xf0 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_020201E4 +FUN_020201E4: ; 0x020201E4 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _020201F4 + cmp r2, #0x3 + bne _020201FE +_020201F4: + add r0, #0x40 + add r0, #0x8 + bl FUN_020B1EC4 + pop {r3, pc} +_020201FE: + add r0, #0x40 + add r0, #0x8 + bl FUN_020B224C + pop {r3, pc} + + thumb_func_start FUN_02020208 +FUN_02020208: ; 0x02020208 + push {r3, lr} + add r2, r0, #0x0 + add r2, #0xec + ldr r2, [r2, #0x0] + cmp r2, #0x1 + beq _02020218 + cmp r2, #0x3 + bne _02020222 +_02020218: + add r0, #0x40 + add r0, #0x8 + bl FUN_020B1EA4 + pop {r3, pc} +_02020222: + add r0, #0x40 + add r0, #0x8 + bl FUN_020B2194 + pop {r3, pc} + + thumb_func_start FUN_0202022C +FUN_0202022C: ; 0x0202022C + ldr r3, _02020234 ; =0x020B04FC + add r0, #0x40 + add r0, #0x8 + bx r3 + .balign 4 +_02020234: .word 0x020B04FC + + thumb_func_start FUN_02020238 +FUN_02020238: ; 0x02020238 + add r0, #0xf2 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020240 +FUN_02020240: ; 0x02020240 + add r0, #0xf2 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020248 +FUN_02020248: ; 0x02020248 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020256 + bl ErrorHandling +_02020256: + add r0, r5, #0x0 + add r0, #0x29 + strb r4, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x28 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x10 + add r5, #0x28 + bic r1, r0 + strb r1, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202027C +FUN_0202027C: ; 0x0202027C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02020248 + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl FUN_020205E8 + add r1, r4, #0x0 + add r1, #0x29 + ldrb r1, [r1, #0x0] + add r4, #0x29 + add r0, r1, r0 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_020202A0 +FUN_020202A0: ; 0x020202A0 + add r0, #0x29 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_020202A8 +FUN_020202A8: ; 0x020202A8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020202B6 + bl ErrorHandling +_020202B6: + add r0, r5, #0x0 + add r0, #0x2a + strb r4, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x10 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x28 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + add r5, #0x28 + bic r1, r0 + strb r1, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_020202DC +FUN_020202DC: ; 0x020202DC + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020202A8 + add r1, r4, #0x0 + add r1, #0xf8 + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + add r0, #0xd8 + bl FUN_020205E8 + add r1, r4, #0x0 + add r1, #0x2a + ldrb r1, [r1, #0x0] + add r4, #0x2a + add r0, r1, r0 + strb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02020300 +FUN_02020300: ; 0x02020300 + push {r4, lr} + add r4, r0, #0x0 + bne _0202030A + bl ErrorHandling +_0202030A: + add r4, #0x2a + ldrb r0, [r4, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02020310 +FUN_02020310: ; 0x02020310 + push {r3-r5, lr} + add r5, r0, #0x0 + add r2, r5, #0x0 + ldr r4, [r5, #0x3c] + add r2, #0xf4 + strh r1, [r2, #0x0] + bl FUN_02020820 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02020788 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202032C +FUN_0202032C: ; 0x0202032C + add r0, #0xf4 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020334 +FUN_02020334: ; 0x02020334 + push {r3-r4} + add r3, r0, #0x0 + add r4, r1, #0x0 + add r3, #0xb4 + mov r2, #0x4 +_0202033E: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _0202033E + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_02020350 +FUN_02020350: ; 0x02020350 + add r0, #0xb4 + bx lr + + thumb_func_start FUN_02020354 +FUN_02020354: ; 0x02020354 + add r0, #0xd8 + bx lr + + thumb_func_start FUN_02020358 +FUN_02020358: ; 0x02020358 + str r1, [r0, #0x2c] + cmp r1, #0x1 + bne _0202036E + add r1, r0, #0x0 + add r1, #0x28 + ldrb r2, [r1, #0x0] + mov r1, #0x4 + add r0, #0x28 + orr r1, r2 + strb r1, [r0, #0x0] + bx lr +_0202036E: + add r1, r0, #0x0 + add r1, #0x28 + ldrb r2, [r1, #0x0] + mov r1, #0x4 + eor r1, r2 + add r0, #0x28 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020380 +FUN_02020380: ; 0x02020380 + add r0, #0xf8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020388 +FUN_02020388: ; 0x02020388 + push {r4, lr} + add r4, r0, #0x0 + bne _02020392 + bl ErrorHandling +_02020392: + ldr r0, [r4, #0x50] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020398 +FUN_02020398: ; 0x02020398 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x0 + bne _020203A6 + bl ErrorHandling +_020203A6: + str r5, [r4, #0x30] + cmp r5, #0x0 + bne _020203BC + add r0, r4, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x8 + add r4, #0x28 + eor r0, r1 + strb r0, [r4, #0x0] + pop {r3-r5, pc} +_020203BC: + add r0, r4, #0x0 + add r0, #0x28 + ldrb r1, [r0, #0x0] + mov r0, #0x8 + orr r0, r1 + add r4, #0x28 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_020203CC +FUN_020203CC: ; 0x020203CC + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xa + bl FUN_02016998 + add r4, r0, #0x0 + mov r0, #0xb + mov r2, #0x1 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + lsl r2, r2, #0xa + bl MIi_CpuClear16 + mov r1, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0xa + bl DC_FlushRange + mov r2, #0x1 + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + bl GX_LoadOAM + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + + thumb_func_start FUN_02020404 +FUN_02020404: ; 0x02020404 + push {r4, lr} + mov r1, #0x1 + lsl r1, r1, #0xa + bl FUN_02016998 + add r4, r0, #0x0 + mov r0, #0xb + mov r2, #0x1 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + lsl r2, r2, #0xa + bl MIi_CpuClear16 + mov r2, #0x1 + add r0, r4, #0x0 + mov r1, #0x0 + lsl r2, r2, #0xa + bl GXS_LoadOAM + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020434 +FUN_02020434: ; 0x02020434 + push {r3-r7, lr} + add r5, r1, #0x0 + str r0, [sp, #0x0] + add r4, r2, #0x0 + add r0, r5, #0x0 + add r7, r3, #0x0 + bl FUN_020204DC + add r1, r4, #0x0 + add r1, #0xec + str r0, [r1, #0x0] + add r3, r4, #0x0 + ldr r6, [r5, #0x0] + add r3, #0xb4 + mov r2, #0x4 +_02020452: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02020452 + ldr r0, [r6, #0x0] + add r2, r4, #0x0 + str r0, [r3, #0x0] + ldr r3, [r5, #0x8] + add r2, #0xd8 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r4, #0x0 + str r0, [r2, #0x0] + ldr r0, [r5, #0xc] + bl FUN_020204F4 + ldr r0, [r5, #0x10] + cmp r0, #0x0 + beq _02020486 + add r1, r4, #0x0 + bl FUN_020204F8 + b _02020494 +_02020486: + mov r1, #0x47 + ldr r0, [sp, #0x0] + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + add r1, r4, #0x0 + bl FUN_020204F8 +_02020494: + add r0, r4, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x2 + bne _020204B8 + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl FUN_020204FC + ldr r0, [r5, #0x18] + add r1, r4, #0x0 + bl FUN_02020504 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl FUN_02020588 + b _020204D0 +_020204B8: + cmp r0, #0x3 + bne _020204C8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r7, #0x0 + bl FUN_0202052C + b _020204D0 +_020204C8: + add r0, r4, #0x0 + add r1, r7, #0x0 + bl FUN_0202050C +_020204D0: + add r5, #0x20 + ldrb r0, [r5, #0x0] + add r4, #0xf2 + strb r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} + + thumb_func_start FUN_020204DC +FUN_020204DC: ; 0x020204DC + ldr r1, [r0, #0x14] + cmp r1, #0x0 + beq _020204E6 + mov r0, #0x2 + bx lr +_020204E6: + ldr r0, [r0, #0x1c] + cmp r0, #0x1 + bne _020204F0 + mov r0, #0x3 + bx lr +_020204F0: + mov r0, #0x1 + bx lr + + thumb_func_start FUN_020204F4 +FUN_020204F4: ; 0x020204F4 + str r0, [r1, #0x40] + bx lr + + thumb_func_start FUN_020204F8 +FUN_020204F8: ; 0x020204F8 + str r0, [r1, #0x44] + bx lr + + thumb_func_start FUN_020204FC +FUN_020204FC: ; 0x020204FC + add r1, #0xa8 + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02020504 +FUN_02020504: ; 0x02020504 + add r1, #0xac + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202050C +FUN_0202050C: ; 0x0202050C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x4] + mov r1, #0x0 + bl FUN_020AFC04 + add r4, #0x8 + add r1, r0, #0x0 + ldr r2, [r5, #0x40] + add r0, r4, #0x0 + bl FUN_020B1F80 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202052C +FUN_0202052C: ; 0x0202052C + push {r4-r7, lr} + sub sp, #0x1c + add r6, r1, #0x0 + add r4, r6, #0x0 + add r4, #0x40 + add r5, r0, #0x0 + bl FUN_020B43A4 + str r0, [r4, #0x5c] + ldr r0, [r4, #0x4] + mov r1, #0x0 + ldr r5, [r5, #0x4] + bl FUN_020AFC04 + str r0, [sp, #0x18] + add r0, r6, #0x0 + add r0, #0xb4 + mov r1, #0x1 + bl FUN_020B1A14 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r0, #0xb4 + mov r1, #0x2 + bl FUN_020B1A14 + mov r1, #0x0 + mvn r1, r1 + str r1, [sp, #0x0] + str r7, [sp, #0x4] + str r0, [sp, #0x8] + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + str r0, [sp, #0x14] + add r0, r4, #0x0 + ldr r2, [r6, #0x40] + ldr r3, [r4, #0x5c] + add r0, #0x8 + bl FUN_020B1EFC + add sp, #0x1c + pop {r4-r7, pc} + + thumb_func_start FUN_02020588 +FUN_02020588: ; 0x02020588 + push {r3-r7, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r5, #0x0 + add r4, #0x40 + ldr r0, [r4, #0x6c] + add r7, r1, #0x0 + mov r1, #0x0 + bl FUN_020AFC04 + str r0, [sp, #0xc] + ldr r0, [r4, #0x68] + bl FUN_020B23D8 + add r6, r0, #0x0 + mov r1, #0x28 + add r0, r7, #0x0 + mul r1, r6 + bl FUN_02016998 + mov r1, #0x54 + str r0, [r4, #0x70] + add r0, r7, #0x0 + mul r1, r6 + bl FUN_02016998 + str r0, [r4, #0x74] + ldr r0, [r4, #0x4] + add r3, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [r5, #0x40] + str r0, [sp, #0x4] + ldr r0, [r4, #0x68] + str r0, [sp, #0x8] + add r0, r4, #0x0 + ldr r1, [r4, #0x70] + ldr r2, [r4, #0x74] + add r0, #0x8 + bl FUN_020B20C8 + add r4, #0x8 + ldr r1, [sp, #0xc] + add r0, r4, #0x0 + bl FUN_020B242C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020205E8 +FUN_020205E8: ; 0x020205E8 + push {r4, lr} + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _020205F6 + mov r4, #0x2 + lsl r4, r4, #0x8 + b _02020602 +_020205F6: + ldr r2, [r0, #0x0] + cmp r2, #0x4 + bne _02020600 + mov r4, #0x0 + b _02020602 +_02020600: + mov r4, #0x20 +_02020602: + cmp r4, #0x0 + beq _02020612 + bl FUN_020B19C4 + add r1, r4, #0x0 + bl _u32_div_f + pop {r4, pc} +_02020612: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020618 +FUN_02020618: ; 0x02020618 + push {r3-r6, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r3, r4, #0x0 + add r5, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, sp, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r4, #0x0 + str r0, [r2, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + add r2, r4, #0x0 + ldr r0, [r5, r0] + add r1, #0xb4 + add r2, #0xd8 + bl thunk_FUN_020b5040 + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl FUN_020B326C + bl FUN_020B2B58 + add r1, r4, #0x0 + mov r0, #0x45 + add r1, #0x26 + lsl r0, r0, #0x2 + ldrb r1, [r1, #0x0] + ldr r0, [r5, r0] + bl FUN_020B502C + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02020680 + add r0, r4, #0x0 + add r0, #0x27 + ldrb r2, [r0, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + mov r1, #0x1 + ldr r0, [r5, r0] + mov r3, #0x2 + and r1, r2 + and r2, r3 + bl FUN_020B4F38 + b _0202068E +_02020680: + mov r0, #0x45 + lsl r0, r0, #0x2 + mov r1, #0x0 + ldr r0, [r5, r0] + add r2, r1, #0x0 + bl FUN_020B4F38 +_0202068E: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x8] + bl FUN_020B2A08 + add r0, r4, #0x0 + add r0, #0x26 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _020206DC + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + bl FUN_020B2A08 + ldr r0, [r4, #0x18] + ldr r1, [r4, #0x1c] + ldr r2, [r4, #0x20] + bl FUN_020B28B4 + ldrh r0, [r4, #0x24] + ldr r2, _02020770 ; =0x020FFA38 + asr r0, r0, #0x4 + lsl r1, r0, #0x1 + lsl r0, r1, #0x1 + add r1, r1, #0x1 + lsl r1, r1, #0x1 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + bl FUN_020B2794 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + neg r0, r0 + neg r1, r1 + neg r2, r2 + bl FUN_020B2A08 +_020206DC: + add r0, r4, #0x0 + add r0, #0x28 + ldrb r3, [r0, #0x0] + mov r0, #0x45 + lsl r0, r0, #0x2 + ldr r2, [r5, r0] + add r1, r2, #0x0 + add r1, #0x84 + ldr r1, [r1, #0x0] + add r2, #0x84 + orr r1, r3 + str r1, [r2, #0x0] + add r1, r4, #0x0 + add r1, #0x28 + ldrb r1, [r1, #0x0] + mvn r6, r1 + ldr r1, [r5, r0] + add r2, r1, #0x0 + add r2, #0x84 + ldr r3, [r2, #0x0] + mvn r2, r6 + and r2, r3 + add r1, #0x84 + str r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x29 + ldrb r2, [r1, #0x0] + ldr r1, [r5, r0] + add r1, #0x8a + strh r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x2a + ldrb r2, [r1, #0x0] + ldr r1, [r5, r0] + add r1, #0x94 + strh r2, [r1, #0x0] + ldr r1, [r5, r0] + ldr r2, [r4, #0x2c] + add r1, #0x90 + str r2, [r1, #0x0] + ldr r1, [r5, r0] + ldr r2, [r4, #0x30] + add r1, #0x8c + str r2, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0xf2 + ldr r0, [r5, r0] + ldrb r1, [r1, #0x0] + add r0, #0x88 + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0xec + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _0202074E + cmp r0, #0x3 + bne _0202075A +_0202074E: + add r4, #0x40 + add r4, #0x8 + add r0, r4, #0x0 + bl FUN_020B317C + b _02020764 +_0202075A: + add r4, #0x40 + add r4, #0x8 + add r0, r4, #0x0 + bl FUN_020B2D9C +_02020764: + bl FUN_020B2B08 + bl FUN_020B31F0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 +_02020770: .word 0x020FFA38 + + thumb_func_start FUN_02020774 +FUN_02020774: ; 0x02020774 + bx lr + .balign 4 + + thumb_func_start FUN_02020778 +FUN_02020778: ; 0x02020778 + ldr r3, _02020780 ; =FUN_020201E4 + ldr r1, [r0, #0x38] + bx r3 + nop +_02020780: .word FUN_020201E4 + + thumb_func_start FUN_02020784 +FUN_02020784: ; 0x02020784 + bx lr + .balign 4 + + thumb_func_start FUN_02020788 +FUN_02020788: ; 0x02020788 + push {r4-r7} + mov r2, #0x11 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + ldr r5, [r0, r2] + add r4, #0x10 + cmp r5, r4 + bne _020207AC + str r1, [r0, r2] + sub r3, r2, #0x4 + str r1, [r0, r3] + add r0, r1, #0x0 + add r0, #0xfc + str r4, [r0, #0x0] + sub r2, #0x10 + str r4, [r1, r2] + pop {r4-r7} + bx lr +_020207AC: + add r3, r1, #0x0 + add r3, #0xf4 + ldrh r6, [r3, #0x0] + sub r3, r2, #0x4 + ldr r3, [r0, r3] + add r7, r3, #0x0 + add r7, #0xf4 + ldrh r7, [r7, #0x0] + cmp r7, r6 + bhi _020207DE + add r5, r1, #0x0 + add r5, #0xfc + str r3, [r5, #0x0] + sub r3, r2, #0x4 + ldr r5, [r0, r3] + add r3, r2, #0x0 + sub r3, #0x10 + str r1, [r5, r3] + add r3, r2, #0x0 + sub r3, #0x10 + str r4, [r1, r3] + sub r2, r2, #0x4 + str r1, [r0, r2] + pop {r4-r7} + bx lr +_020207DE: + cmp r5, r4 + beq _0202081A + add r0, r2, #0x0 + sub r0, #0x10 +_020207E6: + add r2, r5, #0x0 + add r2, #0xf4 + ldrh r2, [r2, #0x0] + cmp r2, r6 + bls _02020814 + add r0, r5, #0x0 + add r0, #0xfc + mov r2, #0x1 + ldr r0, [r0, #0x0] + lsl r2, r2, #0x8 + str r1, [r0, r2] + add r0, r5, #0x0 + add r0, #0xfc + ldr r3, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0xfc + str r3, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0xfc + str r1, [r0, #0x0] + str r5, [r1, r2] + pop {r4-r7} + bx lr +_02020814: + ldr r5, [r5, r0] + cmp r5, r4 + bne _020207E6 +_0202081A: + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_02020820 +FUN_02020820: ; 0x02020820 + mov r2, #0x1 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + add r1, #0xfc + ldr r3, [r0, r2] + ldr r1, [r1, #0x0] + str r3, [r1, r2] + add r1, r0, #0x0 + add r1, #0xfc + ldr r0, [r0, r2] + ldr r1, [r1, #0x0] + add r0, #0xfc + str r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202083C +FUN_0202083C: ; 0x0202083C + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x4] + mov r7, #0x0 + cmp r0, #0x0 + ble _0202086C + add r4, r7, #0x0 + add r6, r7, #0x0 +_0202084C: + ldr r0, [r5, #0x0] + add r0, r0, r4 + bl FUN_0201FE6C + ldr r0, [r5, #0x0] + add r7, r7, #0x1 + add r1, r0, r4 + ldr r0, [r5, #0x8] + str r1, [r0, r6] + mov r0, #0x41 + lsl r0, r0, #0x2 + add r4, r4, r0 + ldr r0, [r5, #0x4] + add r6, r6, #0x4 + cmp r7, r0 + blt _0202084C +_0202086C: + mov r0, #0x0 + str r0, [r5, #0xc] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02020874 +FUN_02020874: ; 0x02020874 + ldr r3, [r0, #0xc] + ldr r1, [r0, #0x4] + cmp r3, r1 + blt _02020880 + mov r0, #0x0 + bx lr +_02020880: + ldr r2, [r0, #0x8] + lsl r1, r3, #0x2 + ldr r2, [r2, r1] + add r1, r3, #0x1 + str r1, [r0, #0xc] + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02020890 +FUN_02020890: ; 0x02020890 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + cmp r0, #0x0 + bgt _020208A0 + mov r0, #0x0 + pop {r3-r5, pc} +_020208A0: + add r0, r4, #0x0 + bl FUN_0201FE6C + ldr r0, [r5, #0xc] + sub r0, r0, #0x1 + str r0, [r5, #0xc] + ldr r1, [r5, #0x8] + lsl r0, r0, #0x2 + str r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020208B8 +FUN_020208B8: ; 0x020208B8 + push {r4-r7} + ldrb r3, [r0, #0x0] + mov r4, #0x0 + cmp r3, #0xff + beq _020208FA +_020208C2: + ldrb r7, [r0, #0x2] + ldrb r3, [r0, #0x3] + ldrb r5, [r0, #0x0] + sub r6, r1, r7 + sub r3, r3, r7 + cmp r6, r3 + bhs _020208D4 + mov r6, #0x1 + b _020208D6 +_020208D4: + mov r6, #0x0 +_020208D6: + ldrb r7, [r0, #0x1] + sub r3, r2, r5 + sub r5, r7, r5 + cmp r3, r5 + bhs _020208E4 + mov r3, #0x1 + b _020208E6 +_020208E4: + mov r3, #0x0 +_020208E6: + tst r3, r6 + beq _020208F0 + add r0, r4, #0x0 + pop {r4-r7} + bx lr +_020208F0: + add r0, r0, #0x4 + ldrb r3, [r0, #0x0] + add r4, r4, #0x1 + cmp r3, #0xff + bne _020208C2 +_020208FA: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_02020904 +FUN_02020904: ; 0x02020904 + push {r3-r4} + ldrb r3, [r0, #0x1] + sub r4, r3, r1 + ldrb r1, [r0, #0x2] + sub r3, r1, r2 + ldrb r2, [r0, #0x3] + add r1, r4, #0x0 + add r0, r3, #0x0 + mul r1, r4 + mul r0, r3 + add r1, r1, r0 + add r0, r2, #0x0 + mul r0, r2 + cmp r1, r0 + bhs _02020928 + mov r0, #0x1 + pop {r3-r4} + bx lr +_02020928: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_02020930 +FUN_02020930: ; 0x02020930 + push {r4-r5} + ldrb r5, [r0, #0x2] + ldrb r3, [r0, #0x0] + sub r4, r1, r5 + ldrb r1, [r0, #0x3] + sub r1, r1, r5 + cmp r4, r1 + bhs _02020944 + mov r4, #0x1 + b _02020946 +_02020944: + mov r4, #0x0 +_02020946: + ldrb r0, [r0, #0x1] + sub r1, r2, r3 + sub r0, r0, r3 + cmp r1, r0 + bhs _02020954 + mov r0, #0x1 + b _02020956 +_02020954: + mov r0, #0x0 +_02020956: + tst r0, r4 + beq _02020960 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02020960: + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_02020968 +FUN_02020968: ; 0x02020968 + push {r3, lr} + ldr r2, _02020984 ; =0x021C48F8 + ldrh r1, [r2, #0x22] + cmp r1, #0x0 + beq _0202097C + ldrh r1, [r2, #0x1c] + ldrh r2, [r2, #0x1e] + bl FUN_020208B8 + pop {r3, pc} +_0202097C: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + nop +_02020984: .word 0x021C48F8 + + thumb_func_start FUN_02020988 +FUN_02020988: ; 0x02020988 + push {r3, lr} + ldr r2, _020209A4 ; =0x021C48F8 + ldrh r1, [r2, #0x20] + cmp r1, #0x0 + beq _0202099C + ldrh r1, [r2, #0x1c] + ldrh r2, [r2, #0x1e] + bl FUN_020208B8 + pop {r3, pc} +_0202099C: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + nop +_020209A4: .word 0x021C48F8 + + thumb_func_start FUN_020209A8 +FUN_020209A8: ; 0x020209A8 + push {r3-r7, lr} + ldr r7, _020209F0 ; =0x021C48F8 + add r5, r0, #0x0 + ldrh r0, [r7, #0x22] + cmp r0, #0x0 + beq _020209EA + mov r6, #0x0 + add r4, r5, #0x0 +_020209B8: + ldrb r0, [r5, #0x0] + cmp r0, #0xfe + bne _020209D0 + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl FUN_02020904 + cmp r0, #0x0 + beq _020209E2 + add r0, r6, #0x0 + pop {r3-r7, pc} +_020209D0: + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl FUN_02020930 + cmp r0, #0x0 + beq _020209E2 + add r0, r6, #0x0 + pop {r3-r7, pc} +_020209E2: + add r5, r5, #0x4 + add r4, r4, #0x4 + add r6, r6, #0x1 + b _020209B8 +_020209EA: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + .balign 4 +_020209F0: .word 0x021C48F8 + + thumb_func_start FUN_020209F4 +FUN_020209F4: ; 0x020209F4 + push {r3-r7, lr} + ldr r7, _02020A3C ; =0x021C48F8 + add r5, r0, #0x0 + ldrh r0, [r7, #0x20] + cmp r0, #0x0 + beq _02020A36 + mov r6, #0x0 + add r4, r5, #0x0 +_02020A04: + ldrb r0, [r5, #0x0] + cmp r0, #0xfe + bne _02020A1C + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl FUN_02020904 + cmp r0, #0x0 + beq _02020A2E + add r0, r6, #0x0 + pop {r3-r7, pc} +_02020A1C: + ldrh r1, [r7, #0x1c] + ldrh r2, [r7, #0x1e] + add r0, r4, #0x0 + bl FUN_02020930 + cmp r0, #0x0 + beq _02020A2E + add r0, r6, #0x0 + pop {r3-r7, pc} +_02020A2E: + add r5, r5, #0x4 + add r4, r4, #0x4 + add r6, r6, #0x1 + b _02020A04 +_02020A36: + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + .balign 4 +_02020A3C: .word 0x021C48F8 + + thumb_func_start FUN_02020A40 +FUN_02020A40: ; 0x02020A40 + push {r3, lr} + ldr r2, _02020A68 ; =0x021C48F8 + ldrh r1, [r2, #0x22] + cmp r1, #0x0 + beq _02020A62 + ldrb r1, [r0, #0x0] + cmp r1, #0xfe + ldrh r1, [r2, #0x1c] + bne _02020A5A + ldrh r2, [r2, #0x1e] + bl FUN_02020904 + pop {r3, pc} +_02020A5A: + ldrh r2, [r2, #0x1e] + bl FUN_02020930 + pop {r3, pc} +_02020A62: + mov r0, #0x0 + pop {r3, pc} + nop +_02020A68: .word 0x021C48F8 + + thumb_func_start FUN_02020A6C +FUN_02020A6C: ; 0x02020A6C + push {r3, lr} + ldr r2, _02020A94 ; =0x021C48F8 + ldrh r1, [r2, #0x20] + cmp r1, #0x0 + beq _02020A8E + ldrb r1, [r0, #0x0] + cmp r1, #0xfe + ldrh r1, [r2, #0x1c] + bne _02020A86 + ldrh r2, [r2, #0x1e] + bl FUN_02020904 + pop {r3, pc} +_02020A86: + ldrh r2, [r2, #0x1e] + bl FUN_02020930 + pop {r3, pc} +_02020A8E: + mov r0, #0x0 + pop {r3, pc} + nop +_02020A94: .word 0x021C48F8 + + thumb_func_start FUN_02020A98 +FUN_02020A98: ; 0x02020A98 + ldr r0, _02020AA0 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + bx lr + nop +_02020AA0: .word 0x021C48F8 + + thumb_func_start FUN_02020AA4 +FUN_02020AA4: ; 0x02020AA4 + ldr r0, _02020AAC ; =0x021C48F8 + ldrh r0, [r0, #0x20] + bx lr + nop +_02020AAC: .word 0x021C48F8 + + thumb_func_start FUN_02020AB0 +FUN_02020AB0: ; 0x02020AB0 + ldr r2, _02020AC8 ; =0x021C48F8 + ldrh r3, [r2, #0x22] + cmp r3, #0x0 + beq _02020AC4 + ldrh r3, [r2, #0x1c] + str r3, [r0, #0x0] + ldrh r0, [r2, #0x1e] + str r0, [r1, #0x0] + mov r0, #0x1 + bx lr +_02020AC4: + mov r0, #0x0 + bx lr + .balign 4 +_02020AC8: .word 0x021C48F8 + + thumb_func_start FUN_02020ACC +FUN_02020ACC: ; 0x02020ACC + ldr r2, _02020AE4 ; =0x021C48F8 + ldrh r3, [r2, #0x20] + cmp r3, #0x0 + beq _02020AE0 + ldrh r3, [r2, #0x1c] + str r3, [r0, #0x0] + ldrh r0, [r2, #0x1e] + str r0, [r1, #0x0] + mov r0, #0x1 + bx lr +_02020AE0: + mov r0, #0x0 + bx lr + .balign 4 +_02020AE4: .word 0x021C48F8 + + thumb_func_start FUN_02020AE8 +FUN_02020AE8: ; 0x02020AE8 + push {r3, lr} + ldrb r3, [r0, #0x0] + cmp r3, #0xfe + bne _02020AF6 + bl FUN_02020904 + pop {r3, pc} +_02020AF6: + bl FUN_02020930 + pop {r3, pc} + + thumb_func_start FUN_02020AFC +FUN_02020AFC: ; 0x02020AFC + push {r3, lr} + ldr r0, _02020B24 ; =0x021C59B0 + mov r2, #0x0 + str r2, [r0, #0x4] + str r2, [r0, #0x8] + ldr r1, _02020B28 ; =0x0400010E + str r2, [r0, #0x0] + strh r2, [r1, #0x0] + sub r0, r1, #0x2 + strh r2, [r0, #0x0] + mov r0, #0xc1 + strh r0, [r1, #0x0] + ldr r1, _02020B2C ; =FUN_02020B30 + mov r0, #0x40 + bl OS_SetIrqFunction + mov r0, #0x40 + bl OS_EnableIrqMask + pop {r3, pc} + .balign 4 +_02020B24: .word 0x021C59B0 +_02020B28: .word 0x0400010E +_02020B2C: .word FUN_02020B30 + + thumb_func_start FUN_02020B30 +FUN_02020B30: ; 0x02020B30 + ldr r0, _02020B68 ; =0x021C59B0 + mov r3, #0x0 + ldr r1, [r0, #0x4] + ldr r2, [r0, #0x8] + add r1, r1, #0x1 + adc r2, r3 + str r1, [r0, #0x4] + str r2, [r0, #0x8] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02020B54 + ldr r2, _02020B6C ; =0x0400010E + strh r3, [r2, #0x0] + sub r1, r2, #0x2 + strh r3, [r1, #0x0] + mov r1, #0xc1 + strh r1, [r2, #0x0] + str r3, [r0, #0x0] +_02020B54: + ldr r3, _02020B70 ; =0x027E0000 + ldr r1, _02020B74 ; =0x00003FF8 + mov r0, #0x40 + ldr r2, [r3, r1] + orr r2, r0 + str r2, [r3, r1] + ldr r3, _02020B78 ; =OS_SetIrqFunction + ldr r1, _02020B7C ; =FUN_02020B30 + bx r3 + nop +_02020B68: .word 0x021C59B0 +_02020B6C: .word 0x0400010E +_02020B70: .word 0x027E0000 +_02020B74: .word 0x00003FF8 +_02020B78: .word OS_SetIrqFunction +_02020B7C: .word FUN_02020B30 + + thumb_func_start FUN_02020B80 +FUN_02020B80: ; 0x02020B80 + push {r4-r5, lr} + sub sp, #0xc + bl OS_DisableInterrupts + ldr r1, _02020BE4 ; =0x0400010C + add r3, sp, #0x0 + ldrh r1, [r1, #0x0] + ldr r2, _02020BE8 ; =0x0000FFFF + strh r1, [r3, #0x0] + ldr r1, _02020BEC ; =0x021C59B0 + ldr r5, [r1, #0x4] + ldr r4, [r1, #0x8] + mov r1, #0x0 + mvn r1, r1 + and r1, r5 + str r1, [sp, #0x4] + and r2, r4 + ldr r1, _02020BF0 ; =0x04000214 + str r2, [sp, #0x8] + ldr r2, [r1, #0x0] + mov r1, #0x40 + tst r2, r1 + beq _02020BC4 + ldrh r2, [r3, #0x0] + lsl r1, r1, #0x9 + tst r1, r2 + bne _02020BC4 + ldr r2, [sp, #0x4] + mov r1, #0x0 + ldr r3, [sp, #0x8] + add r2, r2, #0x1 + adc r3, r1 + str r2, [sp, #0x4] + str r3, [sp, #0x8] +_02020BC4: + bl OS_RestoreInterrupts + ldr r2, [sp, #0x4] + ldr r1, [sp, #0x8] + lsr r0, r2, #0x10 + lsl r1, r1, #0x10 + orr r1, r0 + add r0, sp, #0x0 + lsl r3, r2, #0x10 + ldrh r2, [r0, #0x0] + asr r0, r2, #0x1f + orr r1, r0 + add r0, r3, #0x0 + orr r0, r2 + add sp, #0xc + pop {r4-r5, pc} + .balign 4 +_02020BE4: .word 0x0400010C +_02020BE8: .word 0x0000FFFF +_02020BEC: .word 0x021C59B0 +_02020BF0: .word 0x04000214 + + thumb_func_start FUN_02020BF4 +FUN_02020BF4: ; 0x02020BF4 + ldr r3, _02020BF8 ; =FUN_02020B80 + bx r3 + .balign 4 +_02020BF8: .word FUN_02020B80 + + thumb_func_start FUN_02020BFC +FUN_02020BFC: ; 0x02020BFC + push {r3, lr} + lsr r2, r0, #0x1a + lsl r1, r1, #0x6 + orr r1, r2 + ldr r2, _02020C10 ; =0x000082EA + lsl r0, r0, #0x6 + mov r3, #0x0 + bl _ll_udiv + pop {r3, pc} + .balign 4 +_02020C10: .word 0x000082EA + + thumb_func_start FUN_02020C14 +FUN_02020C14: ; 0x02020C14 + push {r3, lr} + lsr r2, r0, #0x1a + lsl r1, r1, #0x6 + orr r1, r2 + ldr r2, _02020C28 ; =0x01FF6210 + lsl r0, r0, #0x6 + mov r3, #0x0 + bl _ll_udiv + pop {r3, pc} + .balign 4 +_02020C28: .word 0x01FF6210 + + thumb_func_start ErrorHandling +ErrorHandling: ; 0x02020C2C + push {r3, lr} + bl FUN_02031810 + cmp r0, #0x0 + beq _02020C42 + bl OS_GetProcMode + cmp r0, #0x12 + beq _02020C42 + bl FUN_0208A9B8 +_02020C42: + pop {r3, pc} + + thumb_func_start FUN_02020C44 +FUN_02020C44: ; 0x02020C44 + push {r3-r7, lr} + add r4, r1, #0x0 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0xc + bl FUN_02016998 + add r6, r0, #0x0 + bne _02020C5A + bl ErrorHandling +_02020C5A: + add r0, r4, #0x0 + lsl r1, r7, #0x3 + bl FUN_02016998 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _02020C6C + bl ErrorHandling +_02020C6C: + mov r4, #0x0 + cmp r7, #0x0 + ble _02020C84 + add r5, r4, #0x0 +_02020C74: + ldr r0, [r6, #0x0] + add r0, r0, r5 + bl FUN_02020E78 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, r7 + blt _02020C74 +_02020C84: + str r7, [r6, #0x4] + mov r0, #0x0 + str r0, [r6, #0x8] + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02020C90 +FUN_02020C90: ; 0x02020C90 + push {r4, lr} + add r4, r0, #0x0 + bne _02020C9A + bl ErrorHandling +_02020C9A: + add r0, r4, #0x0 + bl FUN_02020D9C + ldr r0, [r4, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020CB0 +FUN_02020CB0: ; 0x02020CB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020CBE + bl ErrorHandling +_02020CBE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02020DD8 + cmp r0, #0x0 + bne _02020CCE + mov r0, #0x1 + pop {r3-r5, pc} +_02020CCE: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02020CD4 +FUN_02020CD4: ; 0x02020CD4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bne _02020CE4 + bl ErrorHandling +_02020CE4: + add r0, r5, #0x0 + bl FUN_02020E48 + add r4, r0, #0x0 + bne _02020CF2 + bl ErrorHandling +_02020CF2: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02020CB0 + cmp r0, #0x1 + beq _02020D02 + bl ErrorHandling +_02020D02: + str r7, [r4, #0x4] + str r6, [r4, #0x0] + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02020D10 +FUN_02020D10: ; 0x02020D10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + cmp r5, #0x0 + bne _02020D22 + bl ErrorHandling +_02020D22: + cmp r6, #0x0 + bne _02020D2A + bl ErrorHandling +_02020D2A: + add r0, r5, #0x0 + bl FUN_02020E48 + add r4, r0, #0x0 + bne _02020D38 + bl ErrorHandling +_02020D38: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_02020CB0 + cmp r0, #0x1 + beq _02020D48 + bl ErrorHandling +_02020D48: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl FUN_020161A4 + str r0, [r4, #0x4] + cmp r0, #0x0 + bne _02020D5A + bl ErrorHandling +_02020D5A: + str r7, [r4, #0x0] + ldr r0, [r5, #0x8] + add r0, r0, #0x1 + str r0, [r5, #0x8] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02020D68 +FUN_02020D68: ; 0x02020D68 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020D76 + bl ErrorHandling +_02020D76: + cmp r4, #0x0 + bne _02020D7E + bl ErrorHandling +_02020D7E: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02020D8C + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x4] +_02020D8C: + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x0] + ldr r0, [r5, #0x8] + sub r0, r0, #0x1 + str r0, [r5, #0x8] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02020D9C +FUN_02020D9C: ; 0x02020D9C + push {r3-r7, lr} + add r5, r0, #0x0 + bne _02020DA6 + bl ErrorHandling +_02020DA6: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _02020DB0 + bl ErrorHandling +_02020DB0: + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + ble _02020DD6 + add r4, r6, #0x0 + sub r7, r6, #0x1 +_02020DBC: + ldr r1, [r5, #0x0] + ldr r0, [r1, r4] + cmp r0, r7 + beq _02020DCC + add r0, r5, #0x0 + add r1, r1, r4 + bl FUN_02020D68 +_02020DCC: + ldr r0, [r5, #0x4] + add r6, r6, #0x1 + add r4, #0x8 + cmp r6, r0 + blt _02020DBC +_02020DD6: + pop {r3-r7, pc} + + thumb_func_start FUN_02020DD8 +FUN_02020DD8: ; 0x02020DD8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020DE6 + bl ErrorHandling +_02020DE6: + ldr r6, [r5, #0x4] + mov r1, #0x0 + cmp r6, #0x0 + ble _02020E06 + ldr r3, [r5, #0x0] + add r2, r3, #0x0 +_02020DF2: + ldr r0, [r2, #0x0] + cmp r4, r0 + bne _02020DFE + lsl r0, r1, #0x3 + add r0, r3, r0 + pop {r4-r6, pc} +_02020DFE: + add r1, r1, #0x1 + add r2, #0x8 + cmp r1, r6 + blt _02020DF2 +_02020E06: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02020E0C +FUN_02020E0C: ; 0x02020E0C + push {r4, lr} + add r4, r0, #0x0 + bne _02020E16 + bl ErrorHandling +_02020E16: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020E1C +FUN_02020E1C: ; 0x02020E1C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020E2A + bl ErrorHandling +_02020E2A: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + beq _02020E34 + bl FUN_02016A18 +_02020E34: + str r4, [r5, #0x4] + pop {r3-r5, pc} + + thumb_func_start FUN_02020E38 +FUN_02020E38: ; 0x02020E38 + push {r4, lr} + add r4, r0, #0x0 + bne _02020E42 + bl ErrorHandling +_02020E42: + ldr r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020E48 +FUN_02020E48: ; 0x02020E48 + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02020E52 + bl ErrorHandling +_02020E52: + ldr r5, [r4, #0x4] + mov r2, #0x0 + cmp r5, #0x0 + ble _02020E74 + ldr r4, [r4, #0x0] + sub r0, r2, #0x1 + add r3, r4, #0x0 +_02020E60: + ldr r1, [r3, #0x0] + cmp r1, r0 + bne _02020E6C + lsl r0, r2, #0x3 + add r0, r4, r0 + pop {r3-r5, pc} +_02020E6C: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, r5 + blt _02020E60 +_02020E74: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02020E78 +FUN_02020E78: ; 0x02020E78 + push {r4, lr} + add r4, r0, #0x0 + bne _02020E82 + bl ErrorHandling +_02020E82: + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02020E90 +FUN_02020E90: ; 0x02020E90 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x8 + bl FUN_02016998 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02020C44 + mov r1, #0x18 + str r0, [r7, #0x0] + add r0, r4, #0x0 + mul r1, r6 + bl FUN_02016998 + mov r4, #0x0 + str r0, [r7, #0x4] + cmp r6, #0x0 + ble _02020ECE + add r5, r4, #0x0 +_02020EBE: + ldr r0, [r7, #0x4] + add r0, r0, r5 + bl FUN_0202120C + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, r6 + blt _02020EBE +_02020ECE: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02020ED4 +FUN_02020ED4: ; 0x02020ED4 + push {r4, lr} + add r4, r0, #0x0 + bne _02020EDE + bl ErrorHandling +_02020EDE: + add r0, r4, #0x0 + bl FUN_02021010 + ldr r0, [r4, #0x0] + bl FUN_02020C90 + ldr r0, [r4, #0x4] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + + thumb_func_start FUN_02020EF8 +FUN_02020EF8: ; 0x02020EF8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020F06 + bl ErrorHandling +_02020F06: + ldr r0, [r5, #0x0] + add r1, r4, #0x0 + bl FUN_02020CB0 + pop {r3-r5, pc} + + thumb_func_start FUN_02020F10 +FUN_02020F10: ; 0x02020F10 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r3, #0x0 + str r2, [sp, #0x0] + cmp r5, #0x0 + bne _02020F22 + bl ErrorHandling +_02020F22: + add r0, r5, #0x0 + bl FUN_020211DC + add r4, r0, #0x0 + strh r7, [r4, #0x16] + ldrh r0, [r4, #0x16] + cmp r0, #0x1 + bne _02020F40 + ldr r1, [sp, #0x18] + add r0, r6, #0x0 + bl FUN_02021310 + add r1, r0, #0x0 + str r6, [r4, #0x10] + b _02020F46 +_02020F40: + mov r0, #0x0 + add r1, r6, #0x0 + str r0, [r4, #0x10] +_02020F46: + ldr r0, [r5, #0x0] + ldr r2, [sp, #0x0] + bl FUN_02020CD4 + str r0, [r4, #0x0] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02020F54 +FUN_02020F54: ; 0x02020F54 + push {r3-r4, lr} + sub sp, #0x4 + ldr r4, [sp, #0x10] + str r4, [sp, #0x0] + bl FUN_02020F10 + add r4, r0, #0x0 + bl FUN_02021174 + add r0, r4, #0x0 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_02020F6C +FUN_02020F6C: ; 0x02020F6C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020F7A + bl ErrorHandling +_02020F7A: + cmp r4, #0x0 + bne _02020F82 + bl ErrorHandling +_02020F82: + ldrh r0, [r4, #0x16] + cmp r0, #0x1 + bne _02020F98 + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + bne _02020F98 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + mov r0, #0x0 + strh r0, [r4, #0x16] +_02020F98: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02020FA4 + ldr r0, [r5, #0x0] + bl FUN_02020D68 +_02020FA4: + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02020FB8 + ldr r1, _02020FE8 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FB8 + bl ErrorHandling +_02020FB8: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _02020FCC + ldr r1, _02020FE8 ; =0x021064BC + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FCC + bl ErrorHandling +_02020FCC: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _02020FE0 + ldr r1, _02020FEC ; =0x021064C4 + ldr r1, [r1, #0x0] + blx r1 + cmp r0, #0x0 + beq _02020FE0 + bl ErrorHandling +_02020FE0: + add r0, r4, #0x0 + bl FUN_0202120C + pop {r3-r5, pc} + .balign 4 +_02020FE8: .word 0x021064BC +_02020FEC: .word 0x021064C4 + + thumb_func_start FUN_02020FF0 +FUN_02020FF0: ; 0x02020FF0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02020FFE + bl ErrorHandling +_02020FFE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02021050 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02020F6C + pop {r3-r5, pc} + + thumb_func_start FUN_02021010 +FUN_02021010: ; 0x02021010 + push {r4-r6, lr} + add r5, r0, #0x0 + bne _0202101A + bl ErrorHandling +_0202101A: + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02021024 + bl ErrorHandling +_02021024: + ldr r0, [r5, #0x0] + mov r6, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + ble _0202104C + add r4, r6, #0x0 +_02021030: + ldr r1, [r5, #0x4] + ldr r0, [r1, r4] + cmp r0, #0x0 + beq _02021040 + add r0, r5, #0x0 + add r1, r1, r4 + bl FUN_02020F6C +_02021040: + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + ldr r0, [r0, #0x4] + add r4, #0x18 + cmp r6, r0 + blt _02021030 +_0202104C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02021050 +FUN_02021050: ; 0x02021050 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + cmp r6, #0x0 + bne _0202105E + bl ErrorHandling +_0202105E: + ldr r0, [r6, #0x0] + mov r4, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + ble _02021092 + add r5, r4, #0x0 +_0202106A: + ldr r1, [r6, #0x4] + ldr r0, [r1, r5] + cmp r0, #0x0 + beq _02021086 + add r0, r1, r5 + bl FUN_02021098 + cmp r0, r7 + bne _02021086 + mov r0, #0x18 + ldr r1, [r6, #0x4] + mul r0, r4 + add r0, r1, r0 + pop {r3-r7, pc} +_02021086: + ldr r0, [r6, #0x0] + add r4, r4, #0x1 + ldr r0, [r0, #0x4] + add r5, #0x18 + cmp r4, r0 + blt _0202106A +_02021092: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02021098 +FUN_02021098: ; 0x02021098 + push {r4, lr} + add r4, r0, #0x0 + bne _020210A2 + bl ErrorHandling +_020210A2: + ldr r0, [r4, #0x0] + bl FUN_02020E38 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020210AC +FUN_020210AC: ; 0x020210AC + push {r4, lr} + add r4, r0, #0x0 + bne _020210B6 + bl ErrorHandling +_020210B6: + add r0, r4, #0x0 + bl FUN_02021220 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020210C0 +FUN_020210C0: ; 0x020210C0 + push {r4, lr} + add r4, r0, #0x0 + bne _020210CA + bl ErrorHandling +_020210CA: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _020210D4 + bl ErrorHandling +_020210D4: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + bne _020210E0 + bl ErrorHandling + pop {r4, pc} +_020210E0: + add r0, r4, #0x0 + bl FUN_02021230 + add r1, r4, #0x0 + bl FUN_020212B8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020210F0 +FUN_020210F0: ; 0x020210F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _020210FE + bl ErrorHandling +_020210FE: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02021050 + bl FUN_020210C0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202110C +FUN_0202110C: ; 0x0202110C + push {r4, lr} + add r4, r0, #0x0 + bne _02021116 + bl ErrorHandling +_02021116: + ldrh r0, [r4, #0x16] + cmp r0, #0x0 + bne _02021122 + bl ErrorHandling + pop {r4, pc} +_02021122: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _0202112E + bl ErrorHandling + pop {r4, pc} +_0202112E: + add r0, r4, #0x0 + bl FUN_02021230 + bl FUN_020212F8 + add r0, r4, #0x0 + bl FUN_02021220 + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + ldr r3, [r4, #0xc] + bl FUN_020212E4 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x10] + mov r0, #0x1 + strh r0, [r4, #0x14] + pop {r4, pc} + + thumb_func_start FUN_02021158 +FUN_02021158: ; 0x02021158 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021166 + bl ErrorHandling +_02021166: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02021050 + bl FUN_0202110C + pop {r3-r5, pc} + + thumb_func_start FUN_02021174 +FUN_02021174: ; 0x02021174 + push {r4, lr} + add r4, r0, #0x0 + bne _0202117E + bl ErrorHandling +_0202117E: + ldrh r0, [r4, #0x14] + cmp r0, #0x0 + beq _02021188 + bl ErrorHandling +_02021188: + ldr r0, [r4, #0xc] + cmp r0, #0x0 + beq _02021194 + bl ErrorHandling + pop {r4, pc} +_02021194: + add r0, r4, #0x0 + bl FUN_02021230 + add r2, r4, #0x0 + add r1, r4, #0x4 + add r4, #0xc + add r2, #0x8 + add r3, r4, #0x0 + bl FUN_02021248 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020211AC +FUN_020211AC: ; 0x020211AC + push {r4, lr} + add r4, r0, #0x0 + bne _020211B6 + bl ErrorHandling +_020211B6: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020211BC +FUN_020211BC: ; 0x020211BC + push {r4, lr} + add r4, r0, #0x0 + bne _020211C6 + bl ErrorHandling +_020211C6: + ldr r0, [r4, #0x8] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020211CC +FUN_020211CC: ; 0x020211CC + push {r4, lr} + add r4, r0, #0x0 + bne _020211D6 + bl ErrorHandling +_020211D6: + ldr r0, [r4, #0xc] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020211DC +FUN_020211DC: ; 0x020211DC + push {r3-r4} + ldr r1, [r0, #0x0] + mov r2, #0x0 + ldr r4, [r1, #0x4] + cmp r4, #0x0 + ble _02021204 + ldr r3, [r0, #0x4] +_020211EA: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + bne _020211FC + ldr r1, [r0, #0x4] + mov r0, #0x18 + mul r0, r2 + add r0, r1, r0 + pop {r3-r4} + bx lr +_020211FC: + add r2, r2, #0x1 + add r3, #0x18 + cmp r2, r4 + blt _020211EA +_02021204: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0202120C +FUN_0202120C: ; 0x0202120C + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + strh r1, [r0, #0x14] + str r1, [r0, #0x10] + strh r1, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start FUN_02021220 +FUN_02021220: ; 0x02021220 + push {r3, lr} + ldr r0, [r0, #0x0] + bl FUN_02020E0C + bl FUN_020BC0FC + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02021230 +FUN_02021230: ; 0x02021230 + push {r3, lr} + ldrh r1, [r0, #0x16] + cmp r1, #0x0 + bne _02021240 + ldr r0, [r0, #0x0] + bl FUN_02020E0C + b _02021242 +_02021240: + ldr r0, [r0, #0x10] +_02021242: + bl FUN_020BC0FC + pop {r3, pc} + + thumb_func_start FUN_02021248 +FUN_02021248: ; 0x02021248 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl FUN_020B7E1C + add r7, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7E10 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020B7CE4 + add r4, r0, #0x0 + cmp r7, #0x0 + beq _0202127E + ldr r3, _020212B0 ; =0x021064B8 + mov r1, #0x0 + ldr r3, [r3, #0x0] + add r0, r7, #0x0 + add r2, r1, #0x0 + blx r3 + ldr r1, [sp, #0x0] + str r0, [r1, #0x0] +_0202127E: + cmp r6, #0x0 + beq _02021292 + ldr r3, _020212B0 ; =0x021064B8 + add r0, r6, #0x0 + ldr r3, [r3, #0x0] + mov r1, #0x1 + mov r2, #0x0 + blx r3 + ldr r1, [sp, #0x4] + str r0, [r1, #0x0] +_02021292: + cmp r4, #0x0 + beq _020212AC + ldr r3, _020212B4 ; =0x021064C0 + mov r1, #0x2 + ldrh r2, [r5, #0x20] + lsl r1, r1, #0xe + ldr r3, [r3, #0x0] + and r1, r2 + add r0, r4, #0x0 + mov r2, #0x0 + blx r3 + ldr r1, [sp, #0x8] + str r0, [r1, #0x0] +_020212AC: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_020212B0: .word 0x021064B8 +_020212B4: .word 0x021064C0 + + thumb_func_start FUN_020212B8 +FUN_020212B8: ; 0x020212B8 + push {r4, lr} + add r3, r1, #0x0 + ldr r1, [r3, #0x4] + ldr r2, [r3, #0x8] + ldr r3, [r3, #0xc] + add r4, r0, #0x0 + bl FUN_020212E4 + ldr r1, [r4, #0x4] + add r0, r4, #0x0 + bl DC_FlushRange + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_020B7D28 + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_020B7C78 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020212E4 +FUN_020212E4: ; 0x020212E4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r3, #0x0 + bl FUN_020B7DFC + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020B7CDC + pop {r3-r5, pc} + + thumb_func_start FUN_020212F8 +FUN_020212F8: ; 0x020212F8 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl FUN_020B7CF0 + add r0, r4, #0x0 + bl FUN_020B7C58 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start FUN_02021310 +FUN_02021310: ; 0x02021310 + push {r4-r6, lr} + add r6, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02021334 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02016998 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r4, r0, #0x0 + bl memcpy + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02021334 +FUN_02021334: ; 0x02021334 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_020BC0FC + add r4, r0, #0x0 + bne _02021344 + bl ErrorHandling +_02021344: + ldr r0, [r4, #0x14] + add r0, r4, r0 + sub r0, r0, r5 + pop {r3-r5, pc} + + thumb_func_start FUN_0202134C +FUN_0202134C: ; 0x0202134C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020B33A0 + add r5, #0x80 + str r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202135C +FUN_0202135C: ; 0x0202135C + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_020B3334 + add r2, r5, #0x0 + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r2!, {r0-r1} + str r6, [r5, #0x28] + ldr r0, [sp, #0x18] + str r7, [r5, #0x2c] + str r0, [r5, #0x34] + ldr r0, [sp, #0x1c] + str r0, [r5, #0x14] + ldr r0, [sp, #0x20] + cmp r0, #0x0 + beq _0202138C + add r1, r5, #0x0 + bl FUN_020B3390 +_0202138C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02021390 +FUN_02021390: ; 0x02021390 + add r3, r0, #0x0 + add r2, r1, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + bx lr + .balign 4 + + thumb_func_start FUN_020213A0 +FUN_020213A0: ; 0x020213A0 + push {r3-r7, lr} + sub sp, #0x60 + add r5, r1, #0x0 + add r6, r2, #0x0 + ldr r4, [r5, #0x10] + ldr r3, [r6, #0x0] + add r2, r0, #0x0 + sub r3, r4, r3 + ldrh r1, [r0, #0x2] + mov r0, #0x3f + str r3, [sp, #0x18] + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1a + ldr r4, [r5, #0x14] + ldr r3, [r6, #0x4] + add r2, #0x8 + sub r3, r4, r3 + str r3, [sp, #0x14] + asr r3, r1, #0xb + mov r1, #0x1 + and r1, r3 + lsr r0, r0, #0x18 + cmp r1, #0x1 + bne _020213F4 + mov r0, #0x6 + ldrsh r0, [r2, r0] + lsl r4, r0, #0xc + mov r0, #0x2 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x10] + mov r0, #0x4 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x0 + ldrsh r0, [r2, r0] + lsl r0, r0, #0xc + str r0, [sp, #0x8] + b _02021400 +_020213F4: + neg r1, r0 + lsl r0, r0, #0xc + lsl r4, r1, #0xc + str r0, [sp, #0x10] + str r4, [sp, #0xc] + str r0, [sp, #0x8] +_02021400: + ldr r0, [r5, #0xc] + str r0, [sp, #0x1c] + asr r0, r0, #0x1f + str r0, [sp, #0x20] + asr r0, r4, #0x1f + str r0, [sp, #0x24] + ldr r0, [r5, #0x4] + ldr r1, [sp, #0x24] + str r0, [sp, #0x28] + asr r0, r0, #0x1f + str r0, [sp, #0x2c] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, r4, #0x0 + bl _ll_mul + add r7, r1, #0x0 + str r0, [sp, #0x30] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + add r0, r4, #0x0 + bl _ll_mul + add r2, r0, #0x0 + add r3, r1, #0x0 + mov r0, #0x2 + ldr r1, [sp, #0x30] + mov r4, #0x0 + lsl r0, r0, #0xa + add r0, r1, r0 + adc r7, r4 + lsl r1, r7, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + mov r1, #0x2 + lsl r1, r1, #0xa + add r2, r2, r1 + adc r3, r4 + lsl r1, r3, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + add r1, r0, r2 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x28] + add r0, r0, r1 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x10] + ldr r3, [sp, #0x2c] + asr r0, r0, #0x1f + str r0, [sp, #0x34] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + bl _ll_mul + str r0, [sp, #0x38] + add r4, r1, #0x0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + bl _ll_mul + mov r2, #0x2 + ldr r3, [sp, #0x38] + lsl r2, r2, #0xa + add r2, r3, r2 + ldr r3, _0202158C ; =0x00000000 + adc r4, r3 + lsl r3, r4, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + mov r3, #0x2 + lsl r3, r3, #0xa + add r3, r0, r3 + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + ldr r0, [sp, #0x14] + add r1, r2, r1 + add r4, r0, r1 + ldr r0, [r5, #0x8] + str r0, [sp, #0x3c] + asr r0, r0, #0x1f + str r0, [sp, #0x40] + ldr r0, [sp, #0xc] + asr r0, r0, #0x1f + str r0, [sp, #0x44] + ldr r0, [r5, #0x0] + ldr r1, [sp, #0x44] + str r0, [sp, #0x48] + asr r0, r0, #0x1f + str r0, [sp, #0x4c] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x4c] + bl _ll_mul + str r0, [sp, #0x50] + add r5, r1, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x44] + ldr r2, [sp, #0x3c] + ldr r3, [sp, #0x40] + bl _ll_mul + mov r2, #0x2 + ldr r3, [sp, #0x50] + lsl r2, r2, #0xa + add r2, r3, r2 + ldr r3, _0202158C ; =0x00000000 + adc r5, r3 + lsl r3, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + mov r3, #0x2 + lsl r3, r3, #0xa + add r3, r0, r3 + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + ldr r0, [sp, #0x18] + add r1, r2, r1 + add r5, r0, r1 + ldr r0, [sp, #0x8] + asr r0, r0, #0x1f + str r0, [sp, #0x54] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x48] + ldr r3, [sp, #0x4c] + bl _ll_mul + str r0, [sp, #0x58] + str r1, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x54] + ldr r2, [sp, #0x3c] + ldr r3, [sp, #0x40] + bl _ll_mul + mov r12, r0 + add r2, r1, #0x0 + mov r0, #0x2 + ldr r1, [sp, #0x58] + lsl r0, r0, #0xa + add r3, r1, r0 + ldr r1, [sp, #0x4] + ldr r0, _0202158C ; =0x00000000 + adc r1, r0 + str r1, [sp, #0x4] + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + mov r0, #0x2 + lsl r0, r0, #0xa + mov r3, r12 + add r0, r3, r0 + ldr r3, _0202158C ; =0x00000000 + adc r2, r3 + lsl r2, r2, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + add r1, r1, r0 + ldr r0, [sp, #0x18] + add r0, r0, r1 + ldr r1, [sp, #0x5c] + cmp r4, r1 + bge _02021560 + add r1, r4, #0x0 + ldr r4, [sp, #0x5c] + str r1, [sp, #0x5c] +_02021560: + cmp r0, r5 + bge _0202156A + add r1, r0, #0x0 + add r0, r5, #0x0 + add r5, r1, #0x0 +_0202156A: + cmp r4, #0x0 + ble _02021586 + ldr r2, [r6, #0xc] + ldr r1, [sp, #0x5c] + cmp r1, r2 + bge _02021586 + cmp r0, #0x0 + ble _02021586 + ldr r0, [r6, #0x8] + cmp r5, r0 + bge _02021586 + add sp, #0x60 + mov r0, #0x1 + pop {r3-r7, pc} +_02021586: + mov r0, #0x0 + add sp, #0x60 + pop {r3-r7, pc} + .balign 4 +_0202158C: .word 0x00000000 + + thumb_func_start FUN_02021590 +FUN_02021590: ; 0x02021590 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldr r0, [sp, #0x20] + mov r1, #0x78 + add r7, r2, #0x0 + str r3, [sp, #0x4] + bl FUN_02016998 + add r4, r0, #0x0 + beq _020215C0 + ldr r1, [sp, #0x20] + ldr r3, [sp, #0x4] + str r1, [sp, #0x0] + add r1, r5, #0x0 + add r2, r6, #0x0 + bl FUN_02021600 + ldr r2, [sp, #0x20] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl FUN_020216D4 +_020215C0: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020215C8 +FUN_020215C8: ; 0x020215C8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02021728 + add r0, r4, #0x0 + bl FUN_020216B8 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020215E0 +FUN_020215E0: ; 0x020215E0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + add r6, r2, #0x0 + cmp r1, r4 + beq _020215FC + bl FUN_02021728 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020216D4 +_020215FC: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02021600 +FUN_02021600: ; 0x02021600 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldr r1, [sp, #0x18] + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02006670 + str r0, [r5, #0x54] + cmp r0, #0x0 + beq _020216A6 + add r1, r5, #0x0 + add r1, #0x5c + str r1, [sp, #0x0] + add r1, r4, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl FUN_02006814 + str r6, [r5, #0x6c] + cmp r6, #0x0 + beq _02021638 + mov r0, #0x0 + str r0, [r5, #0x74] + ldr r0, _020216AC ; =FUN_0202192C + str r0, [r5, #0x70] + b _02021660 +_02021638: + ldr r0, [r5, #0x60] + cmp r0, #0x0 + bne _02021642 + bl ErrorHandling +_02021642: + ldr r0, [sp, #0x18] + ldr r1, [r5, #0x64] + bl FUN_02016998 + str r0, [r5, #0x74] + ldr r0, _020216B0 ; =FUN_02021924 + add r1, r4, #0x0 + str r0, [r5, #0x70] + ldr r0, [r5, #0x74] + str r0, [sp, #0x0] + ldr r0, [r5, #0x54] + ldr r2, [r5, #0x60] + ldr r3, [r5, #0x64] + bl FUN_02006814 +_02021660: + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bhi _02021674 + add r0, r5, #0x0 + add r0, #0x6b + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bls _02021678 +_02021674: + bl ErrorHandling +_02021678: + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + ldr r2, _020216B4 ; =0x020EE668 + sub r0, r0, #0x1 + lsl r3, r0, #0x1 + add r0, r5, #0x0 + add r0, #0x6b + ldrb r0, [r0, #0x0] + sub r1, r0, #0x1 + add r0, r2, r3 + ldrb r0, [r1, r0] + str r0, [r5, #0x8] + add r0, r5, #0x0 + add r0, #0x6b + ldrb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x6a + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x4 + mul r0, r1 + str r0, [r5, #0xc] + str r4, [r5, #0x58] +_020216A6: + add sp, #0x4 + pop {r3-r6, pc} + nop +_020216AC: .word FUN_0202192C +_020216B0: .word FUN_02021924 +_020216B4: .word 0x020EE668 + + thumb_func_start FUN_020216B8 +FUN_020216B8: ; 0x020216B8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x74] + cmp r0, #0x0 + beq _020216C6 + bl FUN_02016A18 +_020216C6: + ldr r0, [r4, #0x54] + cmp r0, #0x0 + beq _020216D0 + bl FUN_020066F4 +_020216D0: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020216D4 +FUN_020216D4: ; 0x020216D4 + push {r3, lr} + add r3, r1, #0x0 + add r1, r2, #0x0 + str r3, [r0, #0x0] + ldr r2, _020216E8 ; =0x020EE66C + lsl r3, r3, #0x2 + ldr r2, [r2, r3] + blx r2 + pop {r3, pc} + nop +_020216E8: .word 0x020EE66C + + thumb_func_start FUN_020216EC +FUN_020216EC: ; 0x020216EC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r2, [r5, #0xc] + ldr r0, [r5, #0x64] + add r4, r2, #0x0 + mul r4, r0 + add r0, r1, #0x0 + add r1, r4, #0x0 + bl FUN_02016998 + str r0, [r5, #0x10] + ldr r0, _02021718 ; =FUN_02021774 + add r3, r4, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x10] + str r0, [sp, #0x0] + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + ldr r2, [r5, #0x5c] + bl FUN_02006814 + pop {r3-r5, pc} + .balign 4 +_02021718: .word FUN_02021774 + + thumb_func_start FUN_0202171C +FUN_0202171C: ; 0x0202171C + ldr r1, _02021724 ; =FUN_0202181C + str r1, [r0, #0x4] + bx lr + nop +_02021724: .word FUN_0202181C + + thumb_func_start FUN_02021728 +FUN_02021728: ; 0x02021728 + push {r3, lr} + ldr r1, [r0, #0x0] + lsl r2, r1, #0x2 + ldr r1, _02021738 ; =0x020EE674 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_02021738: .word 0x020EE674 + + thumb_func_start FUN_0202173C +FUN_0202173C: ; 0x0202173C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} + + thumb_func_start FUN_0202174C +FUN_0202174C: ; 0x0202174C + bx lr + .balign 4 + + thumb_func_start FUN_02021750 +FUN_02021750: ; 0x02021750 + push {r3, lr} + ldr r3, [r0, #0x64] + cmp r1, r3 + bhi _02021764 + sub r1, r1, #0x1 + lsl r1, r1, #0x10 + ldr r3, [r0, #0x4] + lsr r1, r1, #0x10 + blx r3 + pop {r3, pc} +_02021764: + add r0, r2, #0x0 + mov r1, #0x0 + add r0, #0x80 + strb r1, [r0, #0x0] + add r2, #0x81 + strb r1, [r2, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02021774 +FUN_02021774: ; 0x02021774 + push {r3-r7, lr} + str r1, [sp, #0x0] + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r1, [r7, #0xc] + add r5, r0, #0x0 + ldr r0, [r7, #0x8] + add r6, r2, #0x0 + mul r5, r1 + ldr r4, [r7, #0x10] + cmp r0, #0x3 + bhi _02021802 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02021798: ; jump table (using 16-bit offset) + .short _020217A0 - _02021798 - 2; case 0 + .short _020217AA - _02021798 - 2; case 1 + .short _020217C0 - _02021798 - 2; case 2 + .short _020217D6 - _02021798 - 2; case 3 +_020217A0: + add r0, r4, r5 + add r1, r6, #0x0 + bl FUN_0201C100 + b _02021802 +_020217AA: + add r0, r4, r5 + add r1, r6, #0x0 + bl FUN_0201C100 + add r0, r4, r5 + add r1, r6, #0x0 + add r0, #0x10 + add r1, #0x40 + bl FUN_0201C100 + b _02021802 +_020217C0: + add r0, r4, r5 + add r1, r6, #0x0 + bl FUN_0201C100 + add r0, r4, r5 + add r1, r6, #0x0 + add r0, #0x10 + add r1, #0x20 + bl FUN_0201C100 + b _02021802 +_020217D6: + add r0, r4, r5 + add r1, r6, #0x0 + bl FUN_0201C100 + add r0, r4, r5 + add r1, r6, #0x0 + add r0, #0x10 + add r1, #0x20 + bl FUN_0201C100 + add r0, r4, r5 + add r1, r6, #0x0 + add r0, #0x20 + add r1, #0x40 + bl FUN_0201C100 + add r0, r4, r5 + add r1, r6, #0x0 + add r0, #0x30 + add r1, #0x60 + bl FUN_0201C100 +_02021802: + ldr r1, [sp, #0x0] + ldr r2, [r7, #0x70] + add r0, r7, #0x0 + blx r2 + add r1, r6, #0x0 + add r1, #0x80 + add r7, #0x69 + strb r0, [r1, #0x0] + ldrb r0, [r7, #0x0] + add r6, #0x81 + strb r0, [r6, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202181C +FUN_0202181C: ; 0x0202181C + push {r3-r7, lr} + add r4, r0, #0x0 + ldr r6, [r4, #0xc] + add r0, #0x14 + str r0, [sp, #0x0] + add r7, r1, #0x0 + add r5, r2, #0x0 + add r2, r7, #0x0 + ldr r3, [r4, #0x5c] + mul r2, r6 + add r2, r3, r2 + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x58] + add r3, r6, #0x0 + bl FUN_02006814 + ldr r0, [r4, #0x8] + cmp r0, #0x3 + bhi _020218C0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202184E: ; jump table (using 16-bit offset) + .short _02021856 - _0202184E - 2; case 0 + .short _02021862 - _0202184E - 2; case 1 + .short _0202187A - _0202184E - 2; case 2 + .short _02021892 - _0202184E - 2; case 3 +_02021856: + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + bl FUN_0201C100 + b _020218C0 +_02021862: + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + bl FUN_0201C100 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x24 + add r1, #0x40 + bl FUN_0201C100 + b _020218C0 +_0202187A: + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + bl FUN_0201C100 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x24 + add r1, #0x20 + bl FUN_0201C100 + b _020218C0 +_02021892: + add r0, r4, #0x0 + add r0, #0x14 + add r1, r5, #0x0 + bl FUN_0201C100 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x24 + add r1, #0x20 + bl FUN_0201C100 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x34 + add r1, #0x40 + bl FUN_0201C100 + add r0, r4, #0x0 + add r1, r5, #0x0 + add r0, #0x44 + add r1, #0x60 + bl FUN_0201C100 +_020218C0: + ldr r2, [r4, #0x70] + add r0, r4, #0x0 + add r1, r7, #0x0 + blx r2 + add r1, r5, #0x0 + add r1, #0x80 + add r4, #0x69 + strb r0, [r1, #0x0] + ldrb r0, [r4, #0x0] + add r5, #0x81 + strb r0, [r5, #0x0] + pop {r3-r7, pc} + + thumb_func_start FUN_020218D8 +FUN_020218D8: ; 0x020218D8 + push {r3-r7, lr} + add r4, r1, #0x0 + ldrh r1, [r4, #0x0] + add r5, r0, #0x0 + ldr r0, _0202191C ; =0x0000FFFF + add r7, r2, #0x0 + mov r6, #0x0 + cmp r1, r0 + beq _02021916 +_020218EA: + ldr r0, _02021920 ; =0x0000FFFE + cmp r1, r0 + bne _02021900 + add r0, r4, #0x0 + bl FUN_0201B8B8 + add r4, r0, #0x0 + ldrh r1, [r4, #0x0] + ldr r0, _0202191C ; =0x0000FFFF + cmp r1, r0 + beq _02021916 +_02021900: + ldr r2, [r5, #0x70] + add r0, r5, #0x0 + sub r1, r1, #0x1 + blx r2 + add r4, r4, #0x2 + add r0, r7, r0 + add r6, r6, r0 + ldrh r1, [r4, #0x0] + ldr r0, _0202191C ; =0x0000FFFF + cmp r1, r0 + bne _020218EA +_02021916: + sub r0, r6, r7 + pop {r3-r7, pc} + nop +_0202191C: .word 0x0000FFFF +_02021920: .word 0x0000FFFE + + thumb_func_start FUN_02021924 +FUN_02021924: ; 0x02021924 + ldr r0, [r0, #0x74] + ldrb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start FUN_0202192C +FUN_0202192C: ; 0x0202192C + add r0, #0x68 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02021934 +FUN_02021934: ; 0x02021934 + push {r3-r7, lr} + add r5, r1, #0x0 + ldrh r1, [r5, #0x0] + add r7, r0, #0x0 + mov r4, #0x0 + ldr r0, _02021994 ; =0x0000FFFF + add r6, r2, #0x0 + str r4, [sp, #0x0] + cmp r1, r0 + beq _02021986 +_02021948: + ldr r0, _02021998 ; =0x0000FFFE + cmp r1, r0 + bne _02021958 + add r0, r5, #0x0 + bl FUN_0201B8B8 + add r5, r0, #0x0 + b _0202197E +_02021958: + mov r0, #0xe + lsl r0, r0, #0xc + cmp r1, r0 + bne _02021970 + ldr r0, [sp, #0x0] + sub r1, r4, r6 + cmp r0, r1 + bhs _0202196A + str r1, [sp, #0x0] +_0202196A: + mov r4, #0x0 + add r5, r5, #0x2 + b _0202197E +_02021970: + ldr r2, [r7, #0x70] + add r0, r7, #0x0 + sub r1, r1, #0x1 + blx r2 + add r0, r6, r0 + add r4, r4, r0 + add r5, r5, #0x2 +_0202197E: + ldrh r1, [r5, #0x0] + ldr r0, _02021994 ; =0x0000FFFF + cmp r1, r0 + bne _02021948 +_02021986: + ldr r0, [sp, #0x0] + sub r1, r4, r6 + cmp r0, r1 + bhs _02021990 + str r1, [sp, #0x0] +_02021990: + ldr r0, [sp, #0x0] + pop {r3-r7, pc} + .balign 4 +_02021994: .word 0x0000FFFF +_02021998: .word 0x0000FFFE + + thumb_func_start FUN_0202199C +FUN_0202199C: ; 0x0202199C + push {r3-r7, lr} + add r5, r1, #0x0 + ldrh r1, [r5, #0x0] + add r6, r0, #0x0 + ldr r0, _020219EC ; =0x0000FFFF + mov r4, #0x0 + cmp r1, r0 + beq _020219E8 + sub r7, r0, #0x1 +_020219AE: + cmp r1, r7 + bne _020219D4 + add r0, r5, #0x0 + bl FUN_0201B8E0 + ldr r1, _020219F0 ; =0x00000203 + cmp r0, r1 + bne _020219CA + add r0, r5, #0x0 + mov r1, #0x0 + bl FUN_0201B914 + add r4, r0, #0x0 + sub r4, #0xc +_020219CA: + add r0, r5, #0x0 + bl FUN_0201B8B8 + add r5, r0, #0x0 + b _020219E0 +_020219D4: + ldr r2, [r6, #0x70] + add r0, r6, #0x0 + sub r1, r1, #0x1 + blx r2 + add r4, r4, r0 + add r5, r5, #0x2 +_020219E0: + ldrh r1, [r5, #0x0] + ldr r0, _020219EC ; =0x0000FFFF + cmp r1, r0 + bne _020219AE +_020219E8: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_020219EC: .word 0x0000FFFF +_020219F0: .word 0x00000203 + + thumb_func_start FUN_020219F4 +FUN_020219F4: ; 0x020219F4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + lsl r1, r4, #0x1 + add r1, #0xa + bl FUN_02016998 + cmp r0, #0x0 + beq _02021A14 + ldr r1, _02021A18 ; =0xB6F8D2EC + str r1, [r0, #0x4] + strh r4, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2] + ldr r1, _02021A1C ; =0x0000FFFF + strh r1, [r0, #0x8] +_02021A14: + pop {r4, pc} + nop +_02021A18: .word 0xB6F8D2EC +_02021A1C: .word 0x0000FFFF + + thumb_func_start FUN_02021A20 +FUN_02021A20: ; 0x02021A20 + push {r4, lr} + add r4, r0, #0x0 + bne _02021A2A + bl ErrorHandling +_02021A2A: + ldr r1, [r4, #0x4] + ldr r0, _02021A44 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A36 + bl ErrorHandling +_02021A36: + ldr r0, _02021A48 ; =0xB6F8D2ED + str r0, [r4, #0x4] + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + nop +_02021A44: .word 0xB6F8D2EC +_02021A48: .word 0xB6F8D2ED + + thumb_func_start FUN_02021A4C +FUN_02021A4C: ; 0x02021A4C + push {r4, lr} + add r4, r0, #0x0 + bne _02021A56 + bl ErrorHandling +_02021A56: + ldr r1, [r4, #0x4] + ldr r0, _02021A6C ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A62 + bl ErrorHandling +_02021A62: + mov r0, #0x0 + strh r0, [r4, #0x2] + ldr r0, _02021A70 ; =0x0000FFFF + strh r0, [r4, #0x8] + pop {r4, pc} + .balign 4 +_02021A6C: .word 0xB6F8D2EC +_02021A70: .word 0x0000FFFF + + thumb_func_start FUN_02021A74 +FUN_02021A74: ; 0x02021A74 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021A82 + bl ErrorHandling +_02021A82: + ldr r1, [r5, #0x4] + ldr r0, _02021AC8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021A8E + bl ErrorHandling +_02021A8E: + cmp r4, #0x0 + bne _02021A96 + bl ErrorHandling +_02021A96: + ldr r1, [r4, #0x4] + ldr r0, _02021AC8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021AA2 + bl ErrorHandling +_02021AA2: + ldrh r2, [r4, #0x2] + ldrh r0, [r5, #0x0] + cmp r0, r2 + bls _02021AC0 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r2, #0x1 + add r0, #0x8 + add r1, #0x8 + lsl r2, r2, #0x1 + bl memcpy + ldrh r0, [r4, #0x2] + strh r0, [r5, #0x2] + pop {r3-r5, pc} +_02021AC0: + bl ErrorHandling + pop {r3-r5, pc} + nop +_02021AC8: .word 0xB6F8D2EC + + thumb_func_start FUN_02021ACC +FUN_02021ACC: ; 0x02021ACC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021ADA + bl ErrorHandling +_02021ADA: + ldr r1, [r5, #0x4] + ldr r0, _02021B00 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021AE6 + bl ErrorHandling +_02021AE6: + ldrh r0, [r5, #0x2] + add r1, r4, #0x0 + add r0, r0, #0x1 + bl FUN_020219F4 + add r4, r0, #0x0 + beq _02021AFA + add r1, r5, #0x0 + bl FUN_02021A74 +_02021AFA: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02021B00: .word 0xB6F8D2EC + + thumb_func_start FUN_02021B04 +FUN_02021B04: ; 0x02021B04 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [sp, #0x20] + add r6, r1, #0x0 + add r7, r3, #0x0 + str r2, [sp, #0x0] + str r0, [sp, #0x20] + cmp r5, #0x0 + bne _02021B1C + bl ErrorHandling +_02021B1C: + ldr r1, [r5, #0x4] + ldr r0, _02021C1C ; =0xB6F8D2EC + cmp r1, r0 + beq _02021B28 + bl ErrorHandling +_02021B28: + cmp r6, #0x0 + bge _02021B30 + mov r4, #0x1 + b _02021B32 +_02021B30: + mov r4, #0x0 +_02021B32: + ldr r0, [sp, #0x0] + ldrh r1, [r5, #0x0] + add r0, r0, r4 + cmp r1, r0 + bls _02021C14 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021B48 + ldr r0, _02021C20 ; =0x020EE67C + str r0, [sp, #0x4] + b _02021B4C +_02021B48: + ldr r0, _02021C24 ; =0x020EE690 + str r0, [sp, #0x4] +_02021B4C: + add r0, r5, #0x0 + bl FUN_02021A4C + cmp r4, #0x0 + beq _02021B74 + mov r0, #0x0 + mvn r0, r0 + mul r6, r0 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021B66 + mov r0, #0xf1 + b _02021B68 +_02021B66: + ldr r0, _02021C28 ; =0x000001BE +_02021B68: + ldrh r2, [r5, #0x2] + add r1, r2, #0x1 + strh r1, [r5, #0x2] + lsl r1, r2, #0x1 + add r1, r5, r1 + strh r0, [r1, #0x8] +_02021B74: + ldr r0, [sp, #0x0] + lsl r1, r0, #0x2 + ldr r0, _02021C2C ; =0x020EE6A0 + ldr r4, [r0, r1] + cmp r4, #0x0 + beq _02021C06 +_02021B80: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl _u32_div_f + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, r4, #0x0 + mul r0, r1 + sub r6, r6, r0 + cmp r7, #0x2 + bne _02021BB4 + cmp r1, #0xa + bhs _02021BA2 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x1 + ldrh r1, [r0, r1] + b _02021BA4 +_02021BA2: + mov r1, #0xe2 +_02021BA4: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] + b _02021BFA +_02021BB4: + cmp r1, #0x0 + bne _02021BBC + cmp r4, #0x1 + bne _02021BDC +_02021BBC: + mov r7, #0x2 + cmp r1, #0xa + bhs _02021BCA + ldr r0, [sp, #0x4] + lsl r1, r1, #0x1 + ldrh r1, [r0, r1] + b _02021BCC +_02021BCA: + mov r1, #0xe2 +_02021BCC: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] + b _02021BFA +_02021BDC: + cmp r7, #0x1 + bne _02021BFA + ldr r0, [sp, #0x20] + cmp r0, #0x0 + bne _02021BEA + mov r1, #0x1 + b _02021BEC +_02021BEA: + ldr r1, _02021C30 ; =0x000001E2 +_02021BEC: + ldrh r0, [r5, #0x2] + add r2, r0, #0x0 + add r2, r2, #0x1 + lsl r0, r0, #0x1 + strh r2, [r5, #0x2] + add r0, r5, r0 + strh r1, [r0, #0x8] +_02021BFA: + add r0, r4, #0x0 + mov r1, #0xa + bl _u32_div_f + add r4, r0, #0x0 + bne _02021B80 +_02021C06: + ldrh r0, [r5, #0x2] + ldr r1, _02021C34 ; =0x0000FFFF + add sp, #0x8 + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r7, pc} +_02021C14: + bl ErrorHandling + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02021C1C: .word 0xB6F8D2EC +_02021C20: .word 0x020EE67C +_02021C24: .word 0x020EE690 +_02021C28: .word 0x000001BE +_02021C2C: .word 0x020EE6A0 +_02021C30: .word 0x000001E2 +_02021C34: .word 0x0000FFFF + + thumb_func_start FUN_02021C38 +FUN_02021C38: ; 0x02021C38 + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + mov r1, #0x0 + str r1, [sp, #0x8] + str r1, [sp, #0xc] + add r5, r1, #0x0 + ldrh r1, [r0, #0x2] + mov r7, #0x1 + cmp r1, #0x12 + bls _02021C56 + ldr r0, [sp, #0x8] + add sp, #0x10 + add r1, r0, #0x0 + pop {r3-r7, pc} +_02021C56: + sub r1, r1, #0x1 + str r1, [sp, #0x4] + bmi _02021CCC + lsl r1, r1, #0x1 + add r4, r0, r1 +_02021C60: + ldrh r6, [r4, #0x8] + mov r3, #0xa + mov r0, #0x0 + add r1, r6, #0x0 + sub r1, #0xa2 + asr r2, r1, #0x1f + sub r3, r1, r3 + mov r12, r2 + mov r3, r12 + sbc r3, r0 + blo _02021C98 + ldr r0, _02021CDC ; =0x00000121 + mov r3, #0xa + sub r1, r6, r0 + asr r2, r1, #0x1f + mov r0, #0x0 + sub r3, r1, r3 + mov r12, r2 + mov r3, r12 + sbc r3, r0 + blo _02021C98 + ldr r0, [sp, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} +_02021C98: + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, r7, #0x0 + add r3, r5, #0x0 + bl _ll_mul + add r2, r1, #0x0 + ldr r1, [sp, #0x8] + add r0, r1, r0 + str r0, [sp, #0x8] + ldr r0, [sp, #0xc] + adc r0, r2 + str r0, [sp, #0xc] + add r0, r7, #0x0 + add r1, r5, #0x0 + mov r2, #0xa + mov r3, #0x0 + bl _ll_mul + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + add r5, r1, #0x0 + sub r4, r4, #0x2 + sub r0, r0, #0x1 + str r0, [sp, #0x4] + bpl _02021C60 +_02021CCC: + ldr r0, [sp, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add sp, #0x10 + pop {r3-r7, pc} + nop +_02021CDC: .word 0x00000121 + + thumb_func_start FUN_02021CE0 +FUN_02021CE0: ; 0x02021CE0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021CEE + bl ErrorHandling +_02021CEE: + ldr r1, [r5, #0x4] + ldr r0, _02021D34 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021CFA + bl ErrorHandling +_02021CFA: + cmp r4, #0x0 + bne _02021D02 + bl ErrorHandling +_02021D02: + ldr r1, [r4, #0x4] + ldr r0, _02021D34 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D0E + bl ErrorHandling +_02021D0E: + ldrh r1, [r5, #0x8] + ldrh r0, [r4, #0x8] + cmp r1, r0 + bne _02021D2E + ldr r0, _02021D38 ; =0x0000FFFF +_02021D18: + ldrh r1, [r5, #0x8] + cmp r1, r0 + bne _02021D22 + mov r0, #0x0 + pop {r3-r5, pc} +_02021D22: + add r5, r5, #0x2 + add r4, r4, #0x2 + ldrh r2, [r5, #0x8] + ldrh r1, [r4, #0x8] + cmp r2, r1 + beq _02021D18 +_02021D2E: + mov r0, #0x1 + pop {r3-r5, pc} + nop +_02021D34: .word 0xB6F8D2EC +_02021D38: .word 0x0000FFFF + + thumb_func_start FUN_02021D3C +FUN_02021D3C: ; 0x02021D3C + push {r4, lr} + add r4, r0, #0x0 + bne _02021D46 + bl ErrorHandling +_02021D46: + ldr r1, [r4, #0x4] + ldr r0, _02021D58 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D52 + bl ErrorHandling +_02021D52: + ldrh r0, [r4, #0x2] + pop {r4, pc} + nop +_02021D58: .word 0xB6F8D2EC + + thumb_func_start FUN_02021D5C +FUN_02021D5C: ; 0x02021D5C + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02021D66 + bl ErrorHandling +_02021D66: + ldr r1, [r4, #0x4] + ldr r0, _02021D98 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021D72 + bl ErrorHandling +_02021D72: + ldrh r1, [r4, #0x2] + mov r3, #0x0 + mov r0, #0x1 + cmp r1, #0x0 + ble _02021D94 + mov r1, #0xe + add r5, r4, #0x0 + lsl r1, r1, #0xc +_02021D82: + ldrh r2, [r5, #0x8] + cmp r2, r1 + bne _02021D8A + add r0, r0, #0x1 +_02021D8A: + ldrh r2, [r4, #0x2] + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, r2 + blt _02021D82 +_02021D94: + pop {r3-r5, pc} + nop +_02021D98: .word 0xB6F8D2EC + + thumb_func_start FUN_02021D9C +FUN_02021D9C: ; 0x02021D9C + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + add r6, r2, #0x0 + cmp r5, #0x0 + bne _02021DAC + bl ErrorHandling +_02021DAC: + ldr r1, [r5, #0x4] + ldr r0, _02021E24 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021DB8 + bl ErrorHandling +_02021DB8: + cmp r7, #0x0 + bne _02021DC0 + bl ErrorHandling +_02021DC0: + ldr r1, [r7, #0x4] + ldr r0, _02021E24 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021DCC + bl ErrorHandling +_02021DCC: + mov r4, #0x0 + cmp r6, #0x0 + beq _02021DF6 + ldrh r0, [r5, #0x2] + cmp r0, #0x0 + ble _02021DF6 + mov r1, #0xe + add r0, r5, #0x0 + lsl r1, r1, #0xc +_02021DDE: + ldrh r2, [r0, #0x8] + cmp r2, r1 + bne _02021DEC + sub r6, r6, #0x1 + bne _02021DEC + add r4, r4, #0x1 + b _02021DF6 +_02021DEC: + ldrh r2, [r5, #0x2] + add r4, r4, #0x1 + add r0, r0, #0x2 + cmp r4, r2 + blt _02021DDE +_02021DF6: + add r0, r7, #0x0 + bl FUN_02021A4C + ldrh r0, [r5, #0x2] + cmp r4, r0 + bge _02021E20 + lsl r0, r4, #0x1 + add r6, r5, r0 +_02021E06: + ldrh r1, [r6, #0x8] + mov r0, #0xe + lsl r0, r0, #0xc + cmp r1, r0 + beq _02021E20 + add r0, r7, #0x0 + bl FUN_02021FB0 + ldrh r0, [r5, #0x2] + add r4, r4, #0x1 + add r6, r6, #0x2 + cmp r4, r0 + blt _02021E06 +_02021E20: + pop {r3-r7, pc} + nop +_02021E24: .word 0xB6F8D2EC + + thumb_func_start FUN_02021E28 +FUN_02021E28: ; 0x02021E28 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021E36 + bl ErrorHandling +_02021E36: + ldr r1, [r5, #0x4] + ldr r0, _02021E84 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021E42 + bl ErrorHandling +_02021E42: + mov r0, #0x0 + strh r0, [r5, #0x2] + ldrh r1, [r4, #0x0] + ldr r0, _02021E88 ; =0x0000FFFF + cmp r1, r0 + beq _02021E76 + add r1, r0, #0x0 +_02021E50: + ldrh r2, [r5, #0x0] + ldrh r0, [r5, #0x2] + sub r2, r2, #0x1 + cmp r0, r2 + blt _02021E60 + bl ErrorHandling + b _02021E76 +_02021E60: + add r2, r0, #0x0 + add r2, r2, #0x1 + strh r2, [r5, #0x2] + ldrh r2, [r4, #0x0] + lsl r0, r0, #0x1 + add r0, r5, r0 + add r4, r4, #0x2 + strh r2, [r0, #0x8] + ldrh r0, [r4, #0x0] + cmp r0, r1 + bne _02021E50 +_02021E76: + ldrh r0, [r5, #0x2] + ldr r1, _02021E88 ; =0x0000FFFF + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r5, pc} + nop +_02021E84: .word 0xB6F8D2EC +_02021E88: .word 0x0000FFFF + + thumb_func_start FUN_02021E8C +FUN_02021E8C: ; 0x02021E8C + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _02021E9C + bl ErrorHandling +_02021E9C: + ldr r1, [r5, #0x4] + ldr r0, _02021EE8 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021EA8 + bl ErrorHandling +_02021EA8: + ldrh r0, [r5, #0x0] + cmp r4, r0 + bhi _02021EE2 + lsl r6, r4, #0x1 + add r0, r5, #0x0 + add r0, #0x8 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl memcpy + mov r2, #0x0 + cmp r4, #0x0 + bls _02021ED4 + ldr r0, _02021EEC ; =0x0000FFFF + add r3, r5, #0x0 +_02021EC6: + ldrh r1, [r3, #0x8] + cmp r1, r0 + beq _02021ED4 + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, r4 + blo _02021EC6 +_02021ED4: + strh r2, [r5, #0x2] + cmp r2, r4 + bne _02021EE6 + ldr r1, _02021EEC ; =0x0000FFFF + add r0, r5, r6 + strh r1, [r0, #0x6] + pop {r3-r7, pc} +_02021EE2: + bl ErrorHandling +_02021EE6: + pop {r3-r7, pc} + .balign 4 +_02021EE8: .word 0xB6F8D2EC +_02021EEC: .word 0x0000FFFF + + thumb_func_start FUN_02021EF0 +FUN_02021EF0: ; 0x02021EF0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _02021F00 + bl ErrorHandling +_02021F00: + ldr r1, [r5, #0x4] + ldr r0, _02021F28 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F0C + bl ErrorHandling +_02021F0C: + ldrh r0, [r5, #0x2] + add r2, r0, #0x1 + cmp r2, r4 + bhi _02021F22 + add r5, #0x8 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsl r2, r2, #0x1 + bl memcpy + pop {r4-r6, pc} +_02021F22: + bl ErrorHandling + pop {r4-r6, pc} + .balign 4 +_02021F28: .word 0xB6F8D2EC + + thumb_func_start FUN_02021F2C +FUN_02021F2C: ; 0x02021F2C + push {r4, lr} + add r4, r0, #0x0 + bne _02021F36 + bl ErrorHandling +_02021F36: + ldr r1, [r4, #0x4] + ldr r0, _02021F48 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F42 + bl ErrorHandling +_02021F42: + add r4, #0x8 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 +_02021F48: .word 0xB6F8D2EC + + thumb_func_start FUN_02021F4C +FUN_02021F4C: ; 0x02021F4C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021F5A + bl ErrorHandling +_02021F5A: + ldr r1, [r5, #0x4] + ldr r0, _02021FAC ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F66 + bl ErrorHandling +_02021F66: + cmp r4, #0x0 + bne _02021F6E + bl ErrorHandling +_02021F6E: + ldr r1, [r4, #0x4] + ldr r0, _02021FAC ; =0xB6F8D2EC + cmp r1, r0 + beq _02021F7A + bl ErrorHandling +_02021F7A: + ldrh r2, [r4, #0x2] + ldrh r0, [r5, #0x2] + add r1, r0, r2 + add r3, r1, #0x1 + ldrh r1, [r5, #0x0] + cmp r3, r1 + bgt _02021FA6 + add r1, r5, #0x0 + add r1, #0x8 + lsl r0, r0, #0x1 + add r0, r1, r0 + add r1, r4, #0x0 + add r2, r2, #0x1 + add r1, #0x8 + lsl r2, r2, #0x1 + bl memcpy + ldrh r1, [r5, #0x2] + ldrh r0, [r4, #0x2] + add r0, r1, r0 + strh r0, [r5, #0x2] + pop {r3-r5, pc} +_02021FA6: + bl ErrorHandling + pop {r3-r5, pc} + .balign 4 +_02021FAC: .word 0xB6F8D2EC + + thumb_func_start FUN_02021FB0 +FUN_02021FB0: ; 0x02021FB0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _02021FBE + bl ErrorHandling +_02021FBE: + ldr r1, [r5, #0x4] + ldr r0, _02021FF0 ; =0xB6F8D2EC + cmp r1, r0 + beq _02021FCA + bl ErrorHandling +_02021FCA: + ldrh r2, [r5, #0x2] + ldrh r0, [r5, #0x0] + add r1, r2, #0x1 + cmp r1, r0 + bge _02021FE8 + lsl r0, r2, #0x1 + strh r1, [r5, #0x2] + add r0, r5, r0 + strh r4, [r0, #0x8] + ldrh r0, [r5, #0x2] + ldr r1, _02021FF4 ; =0x0000FFFF + lsl r0, r0, #0x1 + add r0, r5, r0 + strh r1, [r0, #0x8] + pop {r3-r5, pc} +_02021FE8: + bl ErrorHandling + pop {r3-r5, pc} + nop +_02021FF0: .word 0xB6F8D2EC +_02021FF4: .word 0x0000FFFF + + thumb_func_start FUN_02021FF8 +FUN_02021FF8: ; 0x02021FF8 + push {r4, lr} + add r4, r0, #0x0 + bne _02022002 + bl ErrorHandling +_02022002: + ldr r1, [r4, #0x4] + ldr r0, _02022028 ; =0xB6F8D2EC + cmp r1, r0 + beq _0202200E + bl ErrorHandling +_0202200E: + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _02022026 + ldrh r1, [r4, #0x8] + ldr r0, _0202202C ; =0x00000145 + cmp r1, r0 + blo _02022026 + add r0, #0x19 + cmp r1, r0 + bhi _02022026 + sub r1, #0x1a + strh r1, [r4, #0x8] +_02022026: + pop {r4, pc} + .balign 4 +_02022028: .word 0xB6F8D2EC +_0202202C: .word 0x00000145 + + thumb_func_start FUN_02022030 +FUN_02022030: ; 0x02022030 + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _02022044 + ldrh r1, [r0, #0x8] + mov r0, #0xf1 + lsl r0, r0, #0x8 + cmp r1, r0 + bne _02022044 + mov r0, #0x1 + bx lr +_02022044: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_02022048 +FUN_02022048: ; 0x02022048 + push {r3-r7, lr} + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl FUN_02022030 + cmp r0, #0x0 + beq _020220B2 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x0] + ldrh r0, [r0, #0x2] + add r1, #0x8 + ldr r7, _020220BC ; =0x000001FF + lsl r0, r0, #0x1 + add r3, r1, r0 + mov r0, #0x0 + add r4, #0xa + add r1, r0, #0x0 +_0202206C: + ldrh r2, [r4, #0x0] + asr r2, r0 + and r2, r7 + lsl r2, r2, #0x10 + add r0, #0x9 + lsr r2, r2, #0x10 + cmp r0, #0xf + blt _02022094 + add r4, r4, #0x2 + sub r0, #0xf + beq _02022094 + ldrh r6, [r4, #0x0] + mov r5, #0x9 + sub r5, r5, r0 + lsl r6, r5 + ldr r5, _020220BC ; =0x000001FF + and r5, r6 + orr r2, r5 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 +_02022094: + ldr r5, _020220BC ; =0x000001FF + cmp r2, r5 + beq _020220A2 + strh r2, [r3, #0x0] + add r3, r3, #0x2 + add r1, r1, #0x1 + b _0202206C +_020220A2: + ldr r0, _020220C0 ; =0x0000FFFF + strh r0, [r3, #0x0] + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x2] + add r1, r0, r1 + ldr r0, [sp, #0x0] + strh r1, [r0, #0x2] + pop {r3-r7, pc} +_020220B2: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl FUN_02021F4C + pop {r3-r7, pc} + .balign 4 +_020220BC: .word 0x000001FF +_020220C0: .word 0x0000FFFF + + thumb_func_start FUN_020220C4 +FUN_020220C4: ; 0x020220C4 + push {r3-r7, lr} + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + str r3, [sp, #0x0] + cmp r7, #0x0 + bne _020220D6 + bl ErrorHandling +_020220D6: + ldr r0, [sp, #0x18] + mov r1, #0x14 + bl FUN_02016998 + add r4, r0, #0x0 + beq _0202211C + str r5, [r4, #0x0] + str r7, [r4, #0x4] + ldr r0, [sp, #0x0] + str r6, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, [sp, #0x18] + lsl r1, r7, #0x2 + bl FUN_02016998 + str r0, [r4, #0x10] + cmp r0, #0x0 + beq _02022114 + mov r6, #0x0 + cmp r7, #0x0 + bls _0202211C + add r5, r6, #0x0 +_02022102: + ldr r0, [r4, #0x10] + add r0, r0, r5 + bl FUN_02022120 + add r6, r6, #0x1 + add r5, r5, #0x4 + cmp r6, r7 + blo _02022102 + b _0202211C +_02022114: + add r0, r4, #0x0 + bl FUN_02016A18 + mov r4, #0x0 +_0202211C: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02022120 +FUN_02022120: ; 0x02022120 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strh r1, [r0, #0x2] + bx lr + .balign 4 + + thumb_func_start FUN_0202212C +FUN_0202212C: ; 0x0202212C + push {r4, lr} + add r4, r0, #0x0 + bne _02022136 + bl ErrorHandling +_02022136: + ldr r0, [r4, #0x10] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + + thumb_func_start FUN_02022144 +FUN_02022144: ; 0x02022144 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl FUN_02020A98 + str r0, [sp, #0x0] + cmp r0, #0x0 + beq _02022190 + bl FUN_02020AA4 + str r0, [sp, #0x4] + ldr r0, [r5, #0x4] + mov r6, #0x0 + cmp r0, #0x0 + bls _020221AE + add r4, r6, #0x0 +_02022164: + ldr r0, [r5, #0x10] + add r0, r0, r4 + ldrb r0, [r0, #0x1] + cmp r0, #0x0 + ldr r0, [r5, #0x0] + beq _02022178 + add r0, r0, r4 + bl FUN_02020A40 + b _0202217E +_02022178: + add r0, r0, r4 + bl FUN_02020A6C +_0202217E: + ldr r1, [r5, #0x10] + add r6, r6, #0x1 + add r1, r1, r4 + strb r0, [r1, #0x1] + ldr r0, [r5, #0x4] + add r4, r4, #0x4 + cmp r6, r0 + blo _02022164 + b _020221AE +_02022190: + ldr r0, [r5, #0x4] + mov r3, #0x0 + str r3, [sp, #0x4] + cmp r0, #0x0 + bls _020221AE + add r2, r3, #0x0 + add r1, r3, #0x0 +_0202219E: + ldr r0, [r5, #0x10] + add r3, r3, #0x1 + add r0, r0, r2 + strb r1, [r0, #0x1] + ldr r0, [r5, #0x4] + add r2, r2, #0x4 + cmp r3, r0 + blo _0202219E +_020221AE: + mov r4, #0x0 + cmp r0, #0x0 + bls _020221E4 + add r7, r4, #0x0 +_020221B6: + ldr r3, [r5, #0x10] + ldr r1, [sp, #0x0] + add r0, r3, r7 + ldrb r3, [r3, r7] + ldr r2, [sp, #0x4] + lsl r6, r3, #0x2 + ldr r3, _020221E8 ; =0x020EE6CC + ldr r3, [r3, r6] + blx r3 + add r1, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + beq _020221DA + ldr r2, [r5, #0xc] + ldr r3, [r5, #0x8] + add r0, r4, #0x0 + blx r3 +_020221DA: + ldr r0, [r5, #0x4] + add r4, r4, #0x1 + add r7, r7, #0x4 + cmp r4, r0 + blo _020221B6 +_020221E4: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020221E8: .word 0x020EE6CC + + thumb_func_start FUN_020221EC +FUN_020221EC: ; 0x020221EC + push {r3, lr} + ldrb r1, [r0, #0x1] + cmp r1, #0x0 + beq _02022202 + cmp r2, #0x0 + beq _02022202 + mov r1, #0x1 + bl FUN_0202223C + mov r0, #0x0 + pop {r3, pc} +_02022202: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + + thumb_func_start FUN_02022208 +FUN_02022208: ; 0x02022208 + push {r3, lr} + ldrb r2, [r0, #0x1] + cmp r2, #0x0 + beq _02022220 + ldrh r2, [r0, #0x2] + ldr r1, _02022238 ; =0x0000FFFF + cmp r2, r1 + bhs _0202221C + add r1, r2, #0x1 + strh r1, [r0, #0x2] +_0202221C: + mov r0, #0x2 + pop {r3, pc} +_02022220: + cmp r1, #0x0 + beq _0202222E + mov r1, #0x0 + bl FUN_0202223C + mov r0, #0x3 + pop {r3, pc} +_0202222E: + mov r1, #0x0 + bl FUN_0202223C + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_02022238: .word 0x0000FFFF + + thumb_func_start FUN_0202223C +FUN_0202223C: ; 0x0202223C + strb r1, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2] + bx lr + + thumb_func_start FUN_02022244 +FUN_02022244: ; 0x02022244 + push {r3-r4} + ldr r3, [r0, #0xc] + mov r2, #0x0 + sub r3, r3, #0x1 + beq _02022262 + ldr r4, [r0, #0x0] +_02022250: + ldrh r3, [r4, #0x2] + cmp r3, r1 + bhi _02022262 + ldr r3, [r0, #0xc] + add r2, r2, #0x1 + sub r3, r3, #0x1 + add r4, r4, #0x2 + cmp r2, r3 + blo _02022250 +_02022262: + ldr r1, [r0, #0x4] + ldrb r3, [r1, r2] + add r1, sp, #0x0 + strb r3, [r1, #0x0] + ldr r0, [r0, #0x8] + ldrb r2, [r0, r2] + strb r2, [r1, #0x1] + ldrb r0, [r1, #0x0] + lsl r1, r2, #0x8 + orr r0, r1 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0202227C +FUN_0202227C: ; 0x0202227C + ldr r2, [r0, #0x0] + str r2, [r1, #0xc] + add r2, r0, #0x4 + str r2, [r1, #0x0] + ldr r0, [r1, #0xc] + lsl r0, r0, #0x1 + add r2, r2, r0 + str r2, [r1, #0x4] + ldr r0, [r1, #0xc] + add r0, r2, r0 + str r0, [r1, #0x8] + bx lr + + thumb_func_start FUN_02022294 +FUN_02022294: ; 0x02022294 + ldr r0, _020222A4 ; =0x021C59BC + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + ldr r0, _020222A8 ; =0x021C59BC + str r1, [r0, #0x0] + bx lr + .balign 4 +_020222A4: .word 0x021C59BC +_020222A8: .word 0x021C59BC + + thumb_func_start FUN_020222AC +FUN_020222AC: ; 0x020222AC + ldr r3, _020222B0 ; =G3X_ResetMtxStack + bx r3 + .balign 4 +_020222B0: .word G3X_ResetMtxStack + + thumb_func_start FUN_020222B4 +FUN_020222B4: ; 0x020222B4 + ldr r2, _020222C0 ; =0x021C59BC + str r0, [r2, #0x4] + str r1, [r2, #0x8] + mov r0, #0x1 + str r0, [r2, #0x0] + bx lr + .balign 4 +_020222C0: .word 0x021C59BC + + thumb_func_start FUN_020222C4 +FUN_020222C4: ; 0x020222C4 + ldr r0, _020222E0 ; =0x021C59BC + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _020222DC + ldr r1, [r0, #0x8] + ldr r2, [r0, #0x4] + lsl r1, r1, #0x1 + orr r2, r1 + ldr r1, _020222E4 ; =0x04000540 + str r2, [r1, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] +_020222DC: + bx lr + nop +_020222E0: .word 0x021C59BC +_020222E4: .word 0x04000540 + + thumb_func_start FUN_020222E8 +FUN_020222E8: ; 0x020222E8 + mov r0, #0x5 + lsl r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start FUN_020222F0 +FUN_020222F0: ; 0x020222F0 + mov r0, #0x2 + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start FUN_020222F8 +FUN_020222F8: ; 0x020222F8 + ldr r0, _020222FC ; =0x05000400 + bx lr + .balign 4 +_020222FC: .word 0x05000400 + + thumb_func_start FUN_02022300 +FUN_02022300: ; 0x02022300 + mov r0, #0x2 + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start FUN_02022308 +FUN_02022308: ; 0x02022308 + ldr r0, _0202230C ; =0x05000200 + bx lr + .balign 4 +_0202230C: .word 0x05000200 + + thumb_func_start FUN_02022310 +FUN_02022310: ; 0x02022310 + ldr r0, _02022314 ; =0x05000600 + bx lr + .balign 4 +_02022314: .word 0x05000600 + + thumb_func_start FUN_02022318 +FUN_02022318: ; 0x02022318 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r1, #0x0 + mov r1, #0xc + add r6, r0, #0x0 + add r5, r2, #0x0 + str r3, [sp, #0x4] + bl FUN_02016998 + add r4, r0, #0x0 + str r6, [r4, #0x0] + bl FUN_020BB7F4 + bl G3X_InitMtxStack + mov r1, #0x2 + ldr r0, _020223B8 ; =0x04000540 + cmp r7, #0x0 + str r1, [r0, #0x0] + bne _02022364 + lsl r0, r5, #0x7 + bl FUN_020AFA28 + add r6, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl FUN_02016998 + str r0, [r4, #0x8] + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [r4, #0x8] + lsl r0, r5, #0x11 + mov r1, #0x0 + add r3, r6, #0x0 + bl FUN_020AF9C4 + b _0202236E +_02022364: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + bl FUN_020AEB70 +_0202236E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _02022398 + ldr r0, [sp, #0x20] + lsl r0, r0, #0x8 + bl FUN_020AFBFC + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl FUN_02016998 + str r0, [r4, #0x4] + ldr r0, [sp, #0x20] + ldr r1, [r4, #0x4] + lsl r0, r0, #0xd + add r2, r5, #0x0 + mov r3, #0x1 + bl FUN_020AFBA8 + b _020223A4 +_02022398: + ldr r0, [sp, #0x20] + mov r1, #0x1 + lsl r0, r0, #0x1d + lsr r0, r0, #0x10 + bl FUN_020AEB70 +_020223A4: + ldr r0, [sp, #0x24] + cmp r0, #0x0 + beq _020223AE + blx r0 + b _020223B2 +_020223AE: + bl FUN_020223D4 +_020223B2: + add r0, r4, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020223B8: .word 0x04000540 + + thumb_func_start FUN_020223BC +FUN_020223BC: ; 0x020223BC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + bl FUN_02016A18 + ldr r0, [r4, #0x8] + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + + thumb_func_start FUN_020223D4 +FUN_020223D4: ; 0x020223D4 + push {r3, lr} + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_0201E6E4 + ldr r0, _02022438 ; =0x04000008 + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + strh r2, [r0, #0x0] + add r0, #0x58 + ldrh r2, [r0, #0x0] + ldr r1, _0202243C ; =0xFFFFCFFD + and r1, r2 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + ldr r2, _02022440 ; =0x0000CFEF + and r1, r2 + strh r1, [r0, #0x0] + add r1, r2, #0x0 + ldrh r3, [r0, #0x0] + add r1, #0xc + and r1, r3 + strh r1, [r0, #0x0] + add r1, r2, #0x0 + ldrh r3, [r0, #0x0] + add r1, #0x8 + sub r2, #0x10 + and r1, r3 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + and r1, r2 + strh r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + add r3, r0, #0x0 + bl G3X_SetFog + mov r0, #0x0 + ldr r2, _02022444 ; =0x00007FFF + add r1, r0, #0x0 + mov r3, #0x3f + str r0, [sp, #0x0] + bl G3X_SetClearColor + ldr r1, _02022448 ; =0xBFFF0000 + ldr r0, _0202244C ; =0x04000580 + str r1, [r0, #0x0] + pop {r3, pc} + .balign 4 +_02022438: .word 0x04000008 +_0202243C: .word 0xFFFFCFFD +_02022440: .word 0x0000CFEF +_02022444: .word 0x00007FFF +_02022448: .word 0xBFFF0000 +_0202244C: .word 0x04000580 + + thumb_func_start FUN_02022450 +FUN_02022450: ; 0x02022450 + push {r3, lr} + bl FS_IsAvailable + cmp r0, #0x0 + bne _02022460 + bl OS_Terminate + pop {r3, pc} +_02022460: + ldr r0, _020224BC ; =0x027FF00C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202248A + bl CARD_Init + mov r2, #0x16 + ldr r0, _020224C0 ; =0x027FFE00 + ldr r1, _020224C4 ; =0x027FF000 + lsl r2, r2, #0x4 + bl MI_CpuCopy8 + mov r2, #0x16 + ldr r0, _020224C0 ; =0x027FFE00 + ldr r1, _020224C8 ; =0x027FFA80 + lsl r2, r2, #0x4 + bl MI_CpuCopy8 + ldr r1, _020224CC ; =0x4A414441 + ldr r0, _020224BC ; =0x027FF00C + str r1, [r0, #0x0] +_0202248A: + ldr r0, _020224D0 ; =0x020EE6D4 + mov r1, #0x3 + bl FS_FindArchive + ldr r1, _020224C4 ; =0x027FF000 + ldr r2, [r1, #0x48] + str r2, [r0, #0x2c] + ldr r2, [r1, #0x4c] + str r2, [r0, #0x30] + ldr r2, [r1, #0x40] + str r2, [r0, #0x34] + ldr r2, [r1, #0x44] + str r2, [r0, #0x38] + ldr r2, [r1, #0xc] + ldr r0, _020224CC ; =0x4A414441 + cmp r2, r0 + bne _020224B4 + ldrh r1, [r1, #0x10] + ldr r0, _020224D4 ; =0x00003130 + cmp r1, r0 + beq _020224B8 +_020224B4: + bl OS_Terminate +_020224B8: + pop {r3, pc} + nop +_020224BC: .word 0x027FF00C +_020224C0: .word 0x027FFE00 +_020224C4: .word 0x027FF000 +_020224C8: .word 0x027FFA80 +_020224CC: .word 0x4A414441 +_020224D0: .word 0x020EE6D4 +_020224D4: .word 0x00003130 + + thumb_func_start FUN_020224D8 +FUN_020224D8: ; 0x020224D8 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl FS_InitFile + add r0, sp, #0x0 + add r1, r4, #0x0 + bl FS_OpenFile + cmp r0, #0x0 + beq _020224FC + ldr r1, [sp, #0x24] + ldr r0, _02022500 ; =0x027FFC2C + str r1, [r0, #0x0] + mov r0, #0x0 + bl OS_ResetSystem +_020224FC: + add sp, #0x48 + pop {r4, pc} + .balign 4 +_02022500: .word 0x027FFC2C + + thumb_func_start FUN_02022504 +FUN_02022504: ; 0x02022504 + ldr r3, _0202250C ; =FUN_02022610 + mov r1, #0x1b + bx r3 + nop +_0202250C: .word FUN_02022610 + + thumb_func_start FUN_02022510 +FUN_02022510: ; 0x02022510 + ldr r3, _02022518 ; =FUN_02022610 + mov r1, #0x23 + bx r3 + nop +_02022518: .word FUN_02022610 + + thumb_func_start FUN_0202251C +FUN_0202251C: ; 0x0202251C + ldr r3, _02022524 ; =FUN_02022610 + mov r1, #0x1f + bx r3 + nop +_02022524: .word FUN_02022610 + + thumb_func_start FUN_02022528 +FUN_02022528: ; 0x02022528 + ldr r3, _02022530 ; =FUN_02022610 + mov r1, #0x20 + bx r3 + nop +_02022530: .word FUN_02022610 + + thumb_func_start FUN_02022534 +FUN_02022534: ; 0x02022534 + push {r3, lr} + add r3, r2, #0x0 + mov r2, #0x0 + bl FUN_02023408 + pop {r3, pc} + + thumb_func_start FUN_02022540 +FUN_02022540: ; 0x02022540 + ldr r3, _02022548 ; =FUN_020232BC + add r2, r1, #0x0 + mov r1, #0x0 + bx r3 + .balign 4 +_02022548: .word FUN_020232BC + + thumb_func_start FUN_0202254C +FUN_0202254C: ; 0x0202254C + push {r4, lr} + ldr r1, _020225E0 ; =0x000204A8 + mov r0, #0x1 + bl FUN_02016998 + add r4, r0, #0x0 + ldr r2, _020225E0 ; =0x000204A8 + mov r0, #0x0 + add r1, r4, #0x0 + bl MIi_CpuClearFast + ldr r0, _020225E4 ; =0x021C59C8 + str r4, [r0, #0x0] + bl FUN_02023570 + str r0, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x1 + str r0, [r4, #0x8] + str r0, [r4, #0xc] + add r0, r4, #0x0 + ldr r1, _020225E8 ; =0x00001021 + add r0, #0x14 + bl MATHi_CRC16InitTable + ldr r0, _020225EC ; =0x00020224 + add r0, r4, r0 + bl FUN_020230E4 + ldr r0, _020225F0 ; =0x00020464 + ldr r1, _020225EC ; =0x00020224 + add r0, r4, r0 + add r1, r4, r1 + bl FUN_02023160 + ldr r1, _020225F4 ; =0x00020218 + mov r0, #0x0 + add r1, r4, r1 + mov r2, #0x8 + bl MIi_CpuClearFast + add r0, r4, #0x0 + bl FUN_02022AD8 + str r0, [r4, #0x10] + cmp r0, #0x3 + bhi _020225DA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020225B8: ; jump table (using 16-bit offset) + .short _020225D4 - _020225B8 - 2; case 0 + .short _020225C0 - _020225B8 - 2; case 1 + .short _020225C4 - _020225B8 - 2; case 2 + .short _020225D4 - _020225B8 - 2; case 3 +_020225C0: + mov r0, #0x0 + str r0, [r4, #0xc] +_020225C4: + add r0, r4, #0x0 + bl FUN_02022D08 + mov r0, #0x1 + str r0, [r4, #0x4] + mov r0, #0x0 + str r0, [r4, #0x8] + b _020225DA +_020225D4: + add r0, r4, #0x0 + bl FUN_020227DC +_020225DA: + add r0, r4, #0x0 + pop {r4, pc} + nop +_020225E0: .word 0x000204A8 +_020225E4: .word 0x021C59C8 +_020225E8: .word 0x00001021 +_020225EC: .word 0x00020224 +_020225F0: .word 0x00020464 +_020225F4: .word 0x00020218 + + thumb_func_start FUN_020225F8 +FUN_020225F8: ; 0x020225F8 + push {r3, lr} + ldr r0, _0202260C ; =0x021C59C8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02022606 + bl ErrorHandling +_02022606: + ldr r0, _0202260C ; =0x021C59C8 + ldr r0, [r0, #0x0] + pop {r3, pc} + .balign 4 +_0202260C: .word 0x021C59C8 + + thumb_func_start FUN_02022610 +FUN_02022610: ; 0x02022610 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x24 + blt _0202261E + bl ErrorHandling +_0202261E: + mov r0, #0x85 + lsl r0, r0, #0x2 + add r2, r5, r0 + lsl r0, r4, #0x4 + add r1, r5, r0 + ldr r0, _02022630 ; =0x0002022C + ldr r0, [r1, r0] + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_02022630: .word 0x0002022C + + thumb_func_start FUN_02022634 +FUN_02022634: ; 0x02022634 + ldr r3, _02022638 ; =FUN_02022610 + bx r3 + .balign 4 +_02022638: .word FUN_02022610 + + thumb_func_start FUN_0202263C +FUN_0202263C: ; 0x0202263C + push {r3-r7, lr} + mov r1, #0x1 + str r0, [sp, #0x0] + mov r0, #0x3 + lsl r1, r1, #0xc + bl FUN_020169D8 + add r6, r0, #0x0 + mov r0, #0x1 + bl FUN_02016444 + ldr r1, _020226F4 ; =0x00020220 + ldr r0, [sp, #0x0] + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _02022660 + mov r2, #0x1 + b _02022662 +_02022660: + mov r2, #0x0 +_02022662: + ldr r0, [sp, #0x0] + mov r1, #0x0 + bl FUN_02023074 + ldr r1, _020226F8 ; =0x00020221 + ldr r0, [sp, #0x0] + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _02022678 + mov r2, #0x1 + b _0202267A +_02022678: + mov r2, #0x0 +_0202267A: + ldr r0, [sp, #0x0] + mov r1, #0x1 + bl FUN_02023074 + ldr r0, [sp, #0x0] + ldr r3, _020226F4 ; =0x00020220 + add r2, r0, #0x0 + ldrb r2, [r2, r3] + mov r1, #0x0 + bl FUN_02023074 + ldr r0, [sp, #0x0] + ldr r3, _020226F8 ; =0x00020221 + add r2, r0, #0x0 + ldrb r2, [r2, r3] + mov r1, #0x1 + bl FUN_02023074 + mov r0, #0x0 + mov r2, #0x1 + mvn r0, r0 + add r1, r6, #0x0 + lsl r2, r2, #0xc + bl MIi_CpuClearFast + mov r4, #0x0 + mov r7, #0x1 + add r5, r4, #0x0 + lsl r7, r7, #0xc +_020226B4: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_020235D0 + add r0, r4, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_020235D0 + mov r0, #0x1 + lsl r0, r0, #0xc + add r4, r4, #0x1 + add r5, r5, r0 + cmp r4, #0x40 + blt _020226B4 + add r0, r6, #0x0 + bl FUN_02016A18 + ldr r0, [sp, #0x0] + bl FUN_020227DC + ldr r0, [sp, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + mov r0, #0x1 + bl FUN_02016454 + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_020226F4: .word 0x00020220 +_020226F8: .word 0x00020221 + + thumb_func_start FUN_020226FC +FUN_020226FC: ; 0x020226FC + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + bne _0202270A + mov r0, #0x0 + pop {r4, pc} +_0202270A: + bl FUN_02022D08 + cmp r0, #0x0 + beq _0202271C + mov r0, #0x1 + str r0, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] + pop {r4, pc} +_0202271C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02022720 +FUN_02022720: ; 0x02022720 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _0202272E + mov r0, #0x3 + pop {r4, pc} +_0202272E: + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _02022784 + mov r0, #0x1 + bl FUN_02016444 + ldr r0, _02022798 ; =0x00020220 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _02022746 + mov r2, #0x1 + b _02022748 +_02022746: + mov r2, #0x0 +_02022748: + add r0, r4, #0x0 + mov r1, #0x0 + bl FUN_02023074 + ldr r0, _0202279C ; =0x00020221 + ldrb r0, [r4, r0] + cmp r0, #0x0 + bne _0202275C + mov r2, #0x1 + b _0202275E +_0202275C: + mov r2, #0x0 +_0202275E: + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_02023074 + ldr r2, _02022798 ; =0x00020220 + add r0, r4, #0x0 + ldrb r2, [r4, r2] + mov r1, #0x0 + bl FUN_02023074 + ldr r2, _0202279C ; =0x00020221 + add r0, r4, #0x0 + ldrb r2, [r4, r2] + mov r1, #0x1 + bl FUN_02023074 + mov r0, #0x1 + bl FUN_02016454 +_02022784: + add r0, r4, #0x0 + bl FUN_02023044 + cmp r0, #0x2 + bne _02022796 + mov r1, #0x1 + str r1, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] +_02022796: + pop {r4, pc} + .balign 4 +_02022798: .word 0x00020220 +_0202279C: .word 0x00020221 + + thumb_func_start FUN_020227A0 +FUN_020227A0: ; 0x020227A0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2 + blt _020227AE + bl ErrorHandling +_020227AE: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + beq _020227B8 + bl ErrorHandling +_020227B8: + ldr r0, [r5, #0x4] + cmp r0, #0x1 + beq _020227C2 + bl ErrorHandling +_020227C2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02022840 +_020227CA: + add r0, r5, #0x0 + bl FUN_02022854 + cmp r0, #0x0 + beq _020227CA + cmp r0, #0x1 + beq _020227CA + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020227DC +FUN_020227DC: ; 0x020227DC + add r2, r0, #0x0 + mov r0, #0x1 + str r0, [r2, #0x8] + str r0, [r2, #0xc] + mov r0, #0x85 + ldr r1, _020227F4 ; =0x00020224 + lsl r0, r0, #0x2 + ldr r3, _020227F8 ; =FUN_020231F4 + add r0, r2, r0 + add r1, r2, r1 + bx r3 + nop +_020227F4: .word 0x00020224 +_020227F8: .word FUN_020231F4 + + thumb_func_start FUN_020227FC +FUN_020227FC: ; 0x020227FC + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02022800 +FUN_02022800: ; 0x02022800 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start FUN_02022804 +FUN_02022804: ; 0x02022804 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_02022808 +FUN_02022808: ; 0x02022808 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_0202280C +FUN_0202280C: ; 0x0202280C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02022808 + cmp r0, #0x0 + beq _02022826 + add r0, r4, #0x0 + bl FUN_02022804 + cmp r0, #0x0 + beq _02022826 + mov r0, #0x1 + pop {r4, pc} +_02022826: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202282C +FUN_0202282C: ; 0x0202282C + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start FUN_02022830 +FUN_02022830: ; 0x02022830 + ldr r0, _0202283C ; =0x021C59C8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + str r1, [r0, #0xc] + bx lr + nop +_0202283C: .word 0x021C59C8 + + thumb_func_start FUN_02022840 +FUN_02022840: ; 0x02022840 + add r2, r1, #0x0 + ldr r1, _0202284C ; =0x0002047C + ldr r3, _02022850 ; =FUN_02022DFC + add r1, r0, r1 + bx r3 + nop +_0202284C: .word 0x0002047C +_02022850: .word FUN_02022DFC + + thumb_func_start FUN_02022854 +FUN_02022854: ; 0x02022854 + push {r3-r5, lr} + ldr r1, _02022878 ; =0x0002047C + add r5, r0, #0x0 + add r1, r5, r1 + bl FUN_02022E78 + add r4, r0, #0x0 + beq _02022874 + cmp r4, #0x1 + beq _02022874 + ldr r1, _02022878 ; =0x0002047C + add r0, r5, #0x0 + add r1, r5, r1 + add r2, r4, #0x0 + bl FUN_02022F80 +_02022874: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02022878: .word 0x0002047C + + thumb_func_start FUN_0202287C +FUN_0202287C: ; 0x0202287C + ldr r1, _02022884 ; =0x0002047C + ldr r3, _02022888 ; =FUN_02022FF0 + add r1, r0, r1 + bx r3 + .balign 4 +_02022884: .word 0x0002047C +_02022888: .word FUN_02022FF0 + + thumb_func_start FUN_0202288C +FUN_0202288C: ; 0x0202288C + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start FUN_02022898 +FUN_02022898: ; 0x02022898 + ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT + add r0, #0x14 + sub r2, #0x14 + bx r3 + .balign 4 +_020228A0: .word MATH_CalcCRC16CCITT + + thumb_func_start FUN_020228A4 +FUN_020228A4: ; 0x020228A4 + cmp r0, #0x0 + bne _020228AC + mov r2, #0x0 + b _020228B0 +_020228AC: + mov r2, #0x1 + lsl r2, r2, #0x12 +_020228B0: + ldr r0, [r1, #0x4] + add r0, r2, r0 + bx lr + .balign 4 + + thumb_func_start FUN_020228B8 +FUN_020228B8: ; 0x020228B8 + push {r3-r5, lr} + ldr r3, _020228DC ; =0x00020464 + add r3, r0, r3 + mov r0, #0xc + mul r0, r2 + add r5, r3, r0 + ldr r0, [r5, #0x4] + add r4, r1, r0 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _020228D2 + bl ErrorHandling +_020228D2: + ldr r0, [r5, #0x8] + add r0, r4, r0 + sub r0, #0x14 + pop {r3-r5, pc} + nop +_020228DC: .word 0x00020464 + + thumb_func_start FUN_020228E0 +FUN_020228E0: ; 0x020228E0 + push {r3-r7, lr} + ldr r4, _02022934 ; =0x00020464 + add r3, r0, #0x0 + add r3, r3, r4 + add r5, r2, #0x0 + mov r4, #0xc + mul r4, r5 + str r0, [sp, #0x0] + add r7, r1, #0x0 + add r6, r3, r4 + bl FUN_020228B8 + add r4, r0, #0x0 + ldr r2, [r6, #0x8] + ldr r0, [r4, #0x8] + ldr r1, [r6, #0x4] + cmp r0, r2 + beq _02022908 + mov r0, #0x0 + pop {r3-r7, pc} +_02022908: + ldr r3, [r4, #0xc] + ldr r0, _02022938 ; =0x20060623 + cmp r3, r0 + beq _02022914 + mov r0, #0x0 + pop {r3-r7, pc} +_02022914: + ldrb r0, [r4, #0x10] + cmp r0, r5 + beq _0202291E + mov r0, #0x0 + pop {r3-r7, pc} +_0202291E: + ldr r0, [sp, #0x0] + add r1, r7, r1 + bl FUN_02022898 + ldrh r1, [r4, #0x12] + cmp r1, r0 + bne _02022930 + mov r0, #0x1 + pop {r3-r7, pc} +_02022930: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02022934: .word 0x00020464 +_02022938: .word 0x20060623 + + thumb_func_start FUN_0202293C +FUN_0202293C: ; 0x0202293C + push {r3-r7, lr} + add r7, r2, #0x0 + add r6, r1, #0x0 + add r5, r0, #0x0 + str r3, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + add r2, r3, #0x0 + bl FUN_020228B8 + add r4, r0, #0x0 + ldr r2, [sp, #0x0] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl FUN_020228E0 + str r0, [r5, #0x0] + ldr r0, [r4, #0x0] + str r0, [r5, #0x4] + ldr r0, [r4, #0x4] + str r0, [r5, #0x8] + pop {r3-r7, pc} + + thumb_func_start FUN_02022968 +FUN_02022968: ; 0x02022968 + push {r3-r7, lr} + ldr r3, _020229AC ; =0x00020464 + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r4, #0xc + add r3, r5, r3 + mul r4, r7 + str r1, [sp, #0x0] + add r6, r3, r4 + bl FUN_020228B8 + ldr r2, _020229B0 ; =0x00020214 + add r4, r0, #0x0 + ldr r0, [r5, r2] + ldr r1, [r6, #0x4] + add r2, r2, #0x4 + str r0, [r4, #0x0] + lsl r0, r7, #0x2 + add r0, r5, r0 + ldr r0, [r0, r2] + ldr r2, [sp, #0x0] + str r0, [r4, #0x4] + ldr r0, [r6, #0x8] + add r1, r2, r1 + str r0, [r4, #0x8] + ldr r0, _020229B4 ; =0x20060623 + str r0, [r4, #0xc] + strb r7, [r4, #0x10] + ldr r2, [r6, #0x8] + add r0, r5, #0x0 + bl FUN_02022898 + strh r0, [r4, #0x12] + pop {r3-r7, pc} + .balign 4 +_020229AC: .word 0x00020464 +_020229B0: .word 0x00020214 +_020229B4: .word 0x20060623 + + thumb_func_start FUN_020229B8 +FUN_020229B8: ; 0x020229B8 + mov r2, #0x0 + mvn r2, r2 + cmp r0, r2 + bne _020229C8 + cmp r1, #0x0 + bne _020229C8 + add r0, r2, #0x0 + bx lr +_020229C8: + cmp r0, #0x0 + bne _020229D8 + mov r2, #0x0 + mvn r2, r2 + cmp r1, r2 + bne _020229D8 + mov r0, #0x1 + bx lr +_020229D8: + cmp r0, r1 + bls _020229E0 + mov r0, #0x1 + bx lr +_020229E0: + cmp r0, r1 + bhs _020229E8 + mov r0, #0x1 + b _020229EA +_020229E8: + mov r0, #0x0 +_020229EA: + neg r0, r0 + bx lr + .balign 4 + + thumb_func_start FUN_020229F0 +FUN_020229F0: ; 0x020229F0 + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + ldr r0, [r7, #0x4] + ldr r1, [r6, #0x4] + add r5, r2, #0x0 + add r4, r3, #0x0 + bl FUN_020229B8 + str r0, [sp, #0x0] + ldr r0, [r7, #0x8] + ldr r1, [r6, #0x8] + bl FUN_020229B8 + ldr r2, [r7, #0x0] + cmp r2, #0x0 + beq _02022A6A + ldr r1, [r6, #0x0] + cmp r1, #0x0 + beq _02022A6A + ldr r1, [sp, #0x0] + cmp r1, #0x0 + ble _02022A30 + cmp r0, #0x0 + bgt _02022A26 + bl ErrorHandling +_02022A26: + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] + b _02022A66 +_02022A30: + bge _02022A44 + cmp r0, #0x0 + blt _02022A3A + bl ErrorHandling +_02022A3A: + mov r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02022A66 +_02022A44: + cmp r0, #0x0 + ble _02022A52 + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] + b _02022A66 +_02022A52: + bge _02022A5E + mov r0, #0x1 + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + b _02022A66 +_02022A5E: + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x1 + str r0, [r4, #0x0] +_02022A66: + mov r0, #0x2 + pop {r3-r7, pc} +_02022A6A: + cmp r2, #0x0 + beq _02022A80 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bne _02022A80 + mov r0, #0x0 + str r0, [r5, #0x0] + mov r0, #0x2 + str r0, [r4, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_02022A80: + cmp r2, #0x0 + bne _02022A94 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _02022A94 + mov r0, #0x1 + str r0, [r5, #0x0] + mov r1, #0x2 + str r1, [r4, #0x0] + pop {r3-r7, pc} +_02022A94: + mov r0, #0x2 + str r0, [r5, #0x0] + str r0, [r4, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02022AA0 +FUN_02022AA0: ; 0x02022AA0 + push {r3-r6} + mov r4, #0xc + add r5, r3, #0x0 + mul r5, r4 + add r6, r1, r5 + ldr r5, [r6, #0x4] + ldr r1, _02022AD4 ; =0x00020214 + str r5, [r0, r1] + ldr r6, [r6, #0x8] + add r5, r1, #0x4 + str r6, [r0, r5] + ldr r5, [sp, #0x10] + mul r4, r5 + add r2, r2, r4 + ldr r4, [r2, #0x8] + add r2, r1, #0x0 + add r2, #0x8 + str r4, [r0, r2] + add r2, r1, #0x0 + add r2, #0xc + strb r3, [r0, r2] + add r1, #0xd + strb r5, [r0, r1] + pop {r3-r6} + bx lr + nop +_02022AD4: .word 0x00020214 + + thumb_func_start FUN_02022AD8 +FUN_02022AD8: ; 0x02022AD8 + push {r3-r6, lr} + sub sp, #0x44 + mov r1, #0x2 + add r5, r0, #0x0 + mov r0, #0x3 + lsl r1, r1, #0x10 + bl FUN_020169D8 + mov r1, #0x2 + add r6, r0, #0x0 + mov r0, #0x3 + lsl r1, r1, #0x10 + bl FUN_020169D8 + mov r2, #0x2 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x10 + bl FUN_020235EC + cmp r0, #0x0 + add r0, sp, #0x2c + beq _02022B20 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x0 + bl FUN_0202293C + add r0, sp, #0x14 + add r1, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0x1 + bl FUN_0202293C + b _02022B2A +_02022B20: + bl FUN_0202288C + add r0, sp, #0x14 + bl FUN_0202288C +_02022B2A: + mov r0, #0x1 + lsl r0, r0, #0x12 + add r1, r4, #0x0 + lsr r2, r0, #0x1 + bl FUN_020235EC + cmp r0, #0x0 + add r0, sp, #0x38 + beq _02022B54 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x0 + bl FUN_0202293C + add r0, sp, #0x20 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x1 + bl FUN_0202293C + b _02022B5E +_02022B54: + bl FUN_0202288C + add r0, sp, #0x20 + bl FUN_0202288C +_02022B5E: + add r0, r6, #0x0 + bl FUN_02016A18 + add r0, r4, #0x0 + bl FUN_02016A18 + add r0, sp, #0x2c + add r1, sp, #0x38 + add r2, sp, #0x10 + add r3, sp, #0x8 + bl FUN_020229F0 + add r4, r0, #0x0 + add r0, sp, #0x14 + add r1, sp, #0x20 + add r2, sp, #0xc + add r3, sp, #0x4 + bl FUN_020229F0 + cmp r4, #0x0 + bne _02022B92 + cmp r0, #0x0 + bne _02022B92 + add sp, #0x44 + mov r0, #0x0 + pop {r3-r6, pc} +_02022B92: + cmp r4, #0x0 + beq _02022B9A + cmp r0, #0x0 + bne _02022BA0 +_02022B9A: + add sp, #0x44 + mov r0, #0x3 + pop {r3-r6, pc} +_02022BA0: + cmp r4, #0x2 + bne _02022BE4 + cmp r0, #0x2 + bne _02022BE4 + ldr r3, [sp, #0x10] + ldr r1, [sp, #0xc] + mov r2, #0xc + add r4, r3, #0x0 + mul r4, r2 + add r0, sp, #0x30 + ldr r0, [r0, r4] + add r4, r1, #0x0 + mul r4, r2 + add r2, sp, #0x18 + ldr r2, [r2, r4] + cmp r0, r2 + str r1, [sp, #0x0] + add r1, sp, #0x2c + bne _02022BD4 + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022BD4: + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022BE4: + cmp r4, #0x1 + bne _02022C3A + cmp r0, #0x2 + bne _02022C3A + ldr r3, [sp, #0x10] + ldr r0, [sp, #0xc] + mov r4, #0xc + add r2, r3, #0x0 + add r6, r0, #0x0 + mul r2, r4 + add r1, sp, #0x30 + ldr r2, [r1, r2] + mul r6, r4 + add r1, sp, #0x18 + ldr r6, [r1, r6] + cmp r2, r6 + bne _02022C18 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, sp, #0x2c + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C18: + ldr r0, [sp, #0x4] + mul r4, r0 + ldr r1, [r1, r4] + cmp r2, r1 + bne _02022C34 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r1, sp, #0x2c + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C34: + add sp, #0x44 + mov r0, #0x3 + pop {r3-r6, pc} +_02022C3A: + cmp r4, #0x2 + bne _02022C7E + cmp r0, #0x1 + bne _02022C7E + ldr r3, [sp, #0x10] + ldr r1, [sp, #0xc] + mov r2, #0xc + add r4, r3, #0x0 + mul r4, r2 + add r0, sp, #0x30 + ldr r0, [r0, r4] + add r4, r1, #0x0 + mul r4, r2 + add r2, sp, #0x18 + ldr r2, [r2, r4] + cmp r0, r2 + str r1, [sp, #0x0] + add r1, sp, #0x2c + bne _02022C6E + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022C6E: + ldr r3, [sp, #0x8] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x2 + pop {r3-r6, pc} +_02022C7E: + cmp r4, #0x1 + bne _02022CBC + cmp r0, #0x1 + bne _02022CBC + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x10] + cmp r2, r0 + bne _02022CBC + add r3, r2, #0x0 + mov r1, #0xc + mul r3, r1 + add r2, sp, #0x30 + mul r1, r0 + add r0, sp, #0x18 + ldr r2, [r2, r3] + ldr r0, [r0, r1] + cmp r2, r0 + beq _02022CA6 + bl ErrorHandling +_02022CA6: + ldr r0, [sp, #0xc] + add r1, sp, #0x2c + str r0, [sp, #0x0] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + add sp, #0x44 + mov r0, #0x1 + pop {r3-r6, pc} +_02022CBC: + ldr r1, [sp, #0x10] + mov r0, #0xc + add r2, r1, #0x0 + mul r2, r0 + add r1, sp, #0x30 + ldr r3, [r1, r2] + ldr r1, [sp, #0xc] + add r2, r1, #0x0 + mul r2, r0 + add r0, sp, #0x18 + ldr r0, [r0, r2] + cmp r3, r0 + beq _02022CDA + bl ErrorHandling +_02022CDA: + ldr r0, [sp, #0xc] + add r1, sp, #0x2c + str r0, [sp, #0x0] + ldr r3, [sp, #0x10] + add r0, r5, #0x0 + add r2, sp, #0x14 + bl FUN_02022AA0 + mov r0, #0x2 + add sp, #0x44 + pop {r3-r6, pc} + + thumb_func_start FUN_02022CF0 +FUN_02022CF0: ; 0x02022CF0 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_020228A4 + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r1, r4, r1 + bl FUN_020235EC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02022D08 +FUN_02022D08: ; 0x02022D08 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02022D4C ; =0x00020464 + mov r7, #0x85 + mov r4, #0x0 + add r6, r5, r0 + lsl r7, r7, #0x2 +_02022D16: + ldr r0, _02022D50 ; =0x00020220 + add r1, r5, r4 + ldrb r0, [r1, r0] + add r1, r6, #0x0 + add r2, r5, r7 + bl FUN_02022CF0 + cmp r0, #0x0 + bne _02022D2C + mov r0, #0x0 + pop {r3-r7, pc} +_02022D2C: + add r0, r5, #0x0 + add r1, r5, r7 + add r2, r4, #0x0 + bl FUN_020228E0 + cmp r0, #0x0 + bne _02022D3E + mov r0, #0x0 + pop {r3-r7, pc} +_02022D3E: + add r4, r4, #0x1 + add r6, #0xc + cmp r4, #0x2 + blt _02022D16 + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02022D4C: .word 0x00020464 +_02022D50: .word 0x00020220 + + thumb_func_start FUN_02022D54 +FUN_02022D54: ; 0x02022D54 + push {r4-r6, lr} + add r3, r1, #0x0 + ldr r1, _02022D90 ; =0x00020464 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r2, r5, r1 + mov r1, #0xc + mul r1, r3 + add r4, r2, r1 + mov r1, #0x85 + lsl r1, r1, #0x2 + add r1, r5, r1 + add r2, r3, #0x0 + bl FUN_02022968 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_020228A4 + mov r1, #0x85 + lsl r1, r1, #0x2 + add r2, r5, r1 + ldr r1, [r4, #0x4] + add r1, r2, r1 + ldr r2, [r4, #0x8] + sub r2, #0x14 + bl FUN_02023668 + pop {r4-r6, pc} + nop +_02022D90: .word 0x00020464 + + thumb_func_start FUN_02022D94 +FUN_02022D94: ; 0x02022D94 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, _02022DC4 ; =0x00020464 + add r3, r6, r0 + mov r0, #0xc + mul r0, r1 + add r4, r3, r0 + add r0, r2, #0x0 + add r1, r4, #0x0 + ldr r5, [r4, #0x8] + bl FUN_020228A4 + mov r1, #0x2 + lsl r1, r1, #0x8 + add r2, r6, r1 + ldr r1, [r4, #0x4] + add r0, r5, r0 + add r1, r2, r1 + sub r0, #0x14 + add r1, r1, r5 + mov r2, #0x14 + bl FUN_02023668 + pop {r4-r6, pc} + .balign 4 +_02022DC4: .word 0x00020464 + + thumb_func_start FUN_02022DC8 +FUN_02022DC8: ; 0x02022DC8 + push {r4-r6, lr} + add r6, r0, #0x0 + ldr r0, _02022DF8 ; =0x00020464 + add r3, r6, r0 + mov r0, #0xc + mul r0, r1 + add r4, r3, r0 + add r0, r2, #0x0 + add r1, r4, #0x0 + ldr r5, [r4, #0x8] + bl FUN_020228A4 + mov r1, #0x82 + lsl r1, r1, #0x2 + add r2, r6, r1 + ldr r1, [r4, #0x4] + add r0, r5, r0 + add r1, r2, r1 + sub r0, #0xc + add r1, r1, r5 + mov r2, #0x8 + bl FUN_02023668 + pop {r4-r6, pc} + .balign 4 +_02022DF8: .word 0x00020464 + + thumb_func_start FUN_02022DFC +FUN_02022DFC: ; 0x02022DFC + push {r3-r7, lr} + ldr r7, _02022E70 ; =0x00020218 + add r4, r1, #0x0 + mov r12, r2 + mov r1, #0x0 + add r2, r0, #0x0 + add r3, r4, #0x0 + add r6, r7, #0x0 +_02022E0C: + ldr r5, _02022E70 ; =0x00020218 + add r1, r1, #0x1 + ldr r5, [r2, r5] + str r5, [r3, #0x1c] + ldr r5, [r2, r7] + add r3, r3, #0x4 + add r5, r5, #0x1 + str r5, [r2, r6] + add r2, r2, #0x4 + cmp r1, #0x2 + blt _02022E0C + mov r1, #0x0 + str r1, [r4, #0x14] + mov r2, r12 + str r1, [r4, #0x0] + cmp r2, #0x2 + bne _02022E58 + ldr r2, [r0, #0xc] + cmp r2, #0x0 + beq _02022E4E + mov r2, #0x1 + str r2, [r4, #0x0] + ldr r2, _02022E74 ; =0x00020214 + ldr r3, [r0, r2] + str r3, [r4, #0x18] + ldr r3, [r0, r2] + add r3, r3, #0x1 + str r3, [r0, r2] + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x2 + str r0, [r4, #0xc] + b _02022E66 +_02022E4E: + str r1, [r4, #0x4] + str r1, [r4, #0x8] + mov r0, #0x1 + str r0, [r4, #0xc] + b _02022E66 +_02022E58: + mov r0, r12 + str r0, [r4, #0x4] + mov r0, r12 + str r0, [r4, #0x8] + mov r0, r12 + add r0, r0, #0x1 + str r0, [r4, #0xc] +_02022E66: + mov r0, #0x1 + bl FUN_02016444 + pop {r3-r7, pc} + nop +_02022E70: .word 0x00020218 +_02022E74: .word 0x00020214 + + thumb_func_start FUN_02022E78 +FUN_02022E78: ; 0x02022E78 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x5 + bhi _02022F78 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02022E90: ; jump table (using 16-bit offset) + .short _02022E9C - _02022E90 - 2; case 0 + .short _02022EC0 - _02022E90 - 2; case 1 + .short _02022EDC - _02022E90 - 2; case 2 + .short _02022F00 - _02022E90 - 2; case 3 + .short _02022F2A - _02022E90 - 2; case 4 + .short _02022F4E - _02022E90 - 2; case 5 +_02022E9C: + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022EAC + mov r2, #0x1 + b _02022EAE +_02022EAC: + mov r2, #0x0 +_02022EAE: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02022D54 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] +_02022EC0: + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl FUN_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022ED6 + mov r0, #0x3 + pop {r3-r5, pc} +_02022ED6: + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] +_02022EDC: + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022EEC + mov r2, #0x1 + b _02022EEE +_02022EEC: + mov r2, #0x0 +_02022EEE: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02022DC8 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] +_02022F00: + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl FUN_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022F16 + mov r0, #0x3 + pop {r3-r5, pc} +_02022F16: + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + ldr r0, [r4, #0xc] + cmp r1, r0 + bne _02022F2A + mov r0, #0x1 + pop {r3-r5, pc} +_02022F2A: + ldr r1, [r4, #0x8] + ldr r0, _02022F7C ; =0x00020220 + add r2, r5, r1 + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _02022F3A + mov r2, #0x1 + b _02022F3C +_02022F3A: + mov r2, #0x0 +_02022F3C: + lsl r2, r2, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02022D94 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r0, #0x1 + str r0, [r4, #0x14] +_02022F4E: + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl FUN_020236E4 + cmp r0, #0x0 + beq _02022F78 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + bne _02022F64 + mov r0, #0x3 + pop {r3-r5, pc} +_02022F64: + ldr r0, [r4, #0x8] + add r1, r0, #0x1 + str r1, [r4, #0x8] + ldr r0, [r4, #0xc] + cmp r1, r0 + bne _02022F74 + mov r0, #0x2 + pop {r3-r5, pc} +_02022F74: + mov r0, #0x0 + str r0, [r4, #0x14] +_02022F78: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02022F7C: .word 0x00020220 + + thumb_func_start FUN_02022F80 +FUN_02022F80: ; 0x02022F80 + push {r3-r7, lr} + add r3, r0, #0x0 + add r0, r1, #0x0 + cmp r2, #0x3 + bne _02022FAA + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02022F96 + ldr r2, [r0, #0x18] + ldr r1, _02022FE4 ; =0x00020214 + str r2, [r3, r1] +_02022F96: + ldr r1, _02022FE8 ; =0x00020218 + mov r4, #0x0 +_02022F9A: + ldr r2, [r0, #0x1c] + add r4, r4, #0x1 + str r2, [r3, r1] + add r0, r0, #0x4 + add r3, r3, #0x4 + cmp r4, #0x2 + blt _02022F9A + b _02022FDA +_02022FAA: + ldr r6, [r0, #0x4] + ldr r1, [r0, #0xc] + cmp r6, r1 + bge _02022FD0 + ldr r1, _02022FEC ; =0x00020220 + mov r7, #0x1 + add r2, r1, #0x0 +_02022FB8: + add r5, r3, r6 + ldrb r4, [r5, r2] + cmp r4, #0x0 + bne _02022FC4 + add r4, r7, #0x0 + b _02022FC6 +_02022FC4: + mov r4, #0x0 +_02022FC6: + strb r4, [r5, r1] + ldr r4, [r0, #0xc] + add r6, r6, #0x1 + cmp r6, r4 + blt _02022FB8 +_02022FD0: + mov r0, #0x1 + str r0, [r3, #0x4] + mov r0, #0x0 + str r0, [r3, #0x8] + str r0, [r3, #0xc] +_02022FDA: + mov r0, #0x1 + bl FUN_02016454 + pop {r3-r7, pc} + nop +_02022FE4: .word 0x00020214 +_02022FE8: .word 0x00020218 +_02022FEC: .word 0x00020220 + + thumb_func_start FUN_02022FF0 +FUN_02022FF0: ; 0x02022FF0 + push {r3-r5, lr} + add r4, r1, #0x0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02023000 + ldr r2, [r4, #0x18] + ldr r1, _0202303C ; =0x00020214 + str r2, [r0, r1] +_02023000: + ldr r1, _02023040 ; =0x00020218 + mov r3, #0x0 + add r5, r4, #0x0 +_02023006: + ldr r2, [r5, #0x1c] + add r3, r3, #0x1 + str r2, [r0, r1] + add r5, r5, #0x4 + add r0, r0, #0x4 + cmp r3, #0x2 + blt _02023006 + bl CARD_TryWaitBackupAsync + cmp r0, #0x0 + bne _02023034 + bl CARD_CancelBackupAsync + ldr r0, [r4, #0x10] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl CARD_UnlockBackup + ldr r0, [r4, #0x10] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl OS_ReleaseLockID +_02023034: + mov r0, #0x1 + bl FUN_02016454 + pop {r3-r5, pc} + .balign 4 +_0202303C: .word 0x00020214 +_02023040: .word 0x00020218 + + thumb_func_start FUN_02023044 +FUN_02023044: ; 0x02023044 + push {r3-r6, lr} + sub sp, #0x24 + add r1, sp, #0x0 + mov r2, #0x2 + add r5, r0, #0x0 + bl FUN_02022DFC + add r6, sp, #0x0 +_02023054: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02022E78 + add r4, r0, #0x0 + beq _02023054 + cmp r4, #0x1 + beq _02023054 + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + bl FUN_02022F80 + add r0, r4, #0x0 + add sp, #0x24 + pop {r3-r6, pc} + + thumb_func_start FUN_02023074 +FUN_02023074: ; 0x02023074 + push {r4-r5, lr} + sub sp, #0x14 + add r4, r2, #0x0 + ldr r2, _020230A8 ; =0x00020464 + add r2, r0, r2 + mov r0, #0xc + mul r0, r1 + add r5, r2, r0 + add r0, sp, #0x0 + mov r1, #0xff + mov r2, #0x14 + bl MI_CpuFill8 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020228A4 + ldr r1, [r5, #0x8] + mov r2, #0x14 + add r0, r1, r0 + sub r0, #0x14 + add r1, sp, #0x0 + bl FUN_020235D0 + add sp, #0x14 + pop {r4-r5, pc} + .balign 4 +_020230A8: .word 0x00020464 + + thumb_func_start FUN_020230AC +FUN_020230AC: ; 0x020230AC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020230DC ; =0x020EE6DC + ldr r4, _020230E0 ; =0x020EE700 + ldr r0, [r0, #0x0] + cmp r5, r0 + blt _020230BE + bl ErrorHandling +_020230BE: + lsl r0, r5, #0x4 + add r0, r4, r0 + ldr r0, [r0, #0x8] + blx r0 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1e + sub r2, r2, r3 + mov r1, #0x1e + ror r2, r1 + add r2, r3, r2 + mov r1, #0x4 + sub r1, r1, r2 + add r0, r0, r1 + pop {r3-r5, pc} + nop +_020230DC: .word 0x020EE6DC +_020230E0: .word 0x020EE700 + + thumb_func_start FUN_020230E4 +FUN_020230E4: ; 0x020230E4 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, _02023158 ; =0x020EE6DC + ldr r4, _0202315C ; =0x020EE700 + ldr r0, [r0, #0x0] + mov r7, #0x0 + str r0, [sp, #0x0] + cmp r0, #0x24 + beq _020230FC + bl ErrorHandling +_020230FC: + ldr r0, [sp, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + ble _02023148 + sub r0, r0, #0x1 + str r0, [sp, #0x4] +_02023108: + ldr r0, [r4, #0x0] + cmp r6, r0 + beq _02023112 + bl ErrorHandling +_02023112: + ldr r0, [r4, #0x0] + str r0, [r5, #0x0] + add r0, r6, #0x0 + bl FUN_020230AC + str r0, [r5, #0x4] + str r7, [r5, #0x8] + mov r0, #0x0 + strh r0, [r5, #0xc] + ldr r0, [r4, #0x4] + strh r0, [r5, #0xe] + ldr r0, [r5, #0x4] + add r7, r7, r0 + ldr r0, [sp, #0x4] + cmp r6, r0 + beq _0202313A + ldr r1, [r4, #0x4] + ldr r0, [r4, #0x14] + cmp r1, r0 + beq _0202313C +_0202313A: + add r7, #0x14 +_0202313C: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r4, #0x10 + add r5, #0x10 + cmp r6, r0 + blt _02023108 +_02023148: + mov r0, #0x2 + lsl r0, r0, #0x10 + cmp r7, r0 + ble _02023154 + bl ErrorHandling +_02023154: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02023158: .word 0x020EE6DC +_0202315C: .word 0x020EE700 + + thumb_func_start FUN_02023160 +FUN_02023160: ; 0x02023160 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + mov r12, r0 + add r3, r0, #0x0 + add r6, r0, #0x0 + ldr r0, _020231EC ; =0x020EE6DC + ldr r4, [sp, #0x0] + ldr r7, [r0, #0x0] + add r5, r1, #0x0 +_02023178: + add r2, r4, #0x0 + strb r6, [r4, #0x0] + mov r0, #0x0 + str r0, [r4, #0x8] + add r2, #0x8 + b _02023190 +_02023184: + ldr r0, [r5, #0x4] + ldr r1, [r2, #0x0] + add r5, #0x10 + add r0, r1, r0 + str r0, [r2, #0x0] + add r3, r3, #0x1 +_02023190: + ldrh r0, [r5, #0xe] + cmp r6, r0 + bne _0202319A + cmp r3, r7 + blt _02023184 +_0202319A: + ldr r0, [r4, #0x8] + add r6, r6, #0x1 + add r0, #0x14 + str r0, [r4, #0x8] + ldr r0, [sp, #0x4] + strb r0, [r4, #0x1] + mov r0, r12 + str r0, [r4, #0x4] + ldr r1, [r4, #0x8] + ldr r0, _020231F0 ; =0x00000FFF + add r0, r1, r0 + lsr r0, r0, #0xc + strb r0, [r4, #0x2] + ldrb r1, [r4, #0x2] + ldr r0, [sp, #0x4] + add r0, r0, r1 + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + mov r1, r12 + add r0, r1, r0 + add r4, #0xc + mov r12, r0 + cmp r6, #0x2 + blt _02023178 + ldr r0, [sp, #0x0] + ldrb r1, [r0, #0xd] + ldrb r0, [r0, #0xe] + add r1, r1, r0 + ldr r0, [sp, #0x4] + cmp r0, r1 + beq _020231DC + bl ErrorHandling +_020231DC: + ldr r0, [sp, #0x4] + cmp r0, #0x20 + ble _020231E6 + bl ErrorHandling +_020231E6: + add sp, #0x8 + pop {r3-r7, pc} + nop +_020231EC: .word 0x020EE6DC +_020231F0: .word 0x00000FFF + + thumb_func_start FUN_020231F4 +FUN_020231F4: ; 0x020231F4 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + mov r2, #0x2 + add r5, r1, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + lsl r2, r2, #0x10 + ldr r4, _02023240 ; =0x020EE700 + bl MIi_CpuClearFast + ldr r0, _02023244 ; =0x020EE6DC + mov r7, #0x0 + ldr r0, [r0, #0x0] + str r0, [sp, #0x0] + cmp r0, #0x0 + ble _0202323A +_02023216: + ldr r0, [r5, #0x8] + ldr r2, [r5, #0x4] + str r0, [sp, #0x4] + ldr r1, [sp, #0x4] + mov r0, #0x0 + add r1, r6, r1 + bl MIi_CpuClearFast + ldr r0, [sp, #0x4] + ldr r1, [r4, #0xc] + add r0, r6, r0 + blx r1 + ldr r0, [sp, #0x0] + add r7, r7, #0x1 + add r5, #0x10 + add r4, #0x10 + cmp r7, r0 + blt _02023216 +_0202323A: + add sp, #0x8 + pop {r3-r7, pc} + nop +_02023240: .word 0x020EE700 +_02023244: .word 0x020EE6DC + + thumb_func_start FUN_02023248 +FUN_02023248: ; 0x02023248 + push {r3-r5, lr} + ldr r5, _0202326C ; =0x20060623 + add r4, r1, r3 + str r5, [r1, r3] + ldr r5, _02023270 ; =0x000204A4 + ldr r5, [r0, r5] + add r0, #0x14 + add r5, r5, #0x1 + str r5, [r4, #0x4] + str r3, [r4, #0x8] + add r3, #0xe + strh r2, [r4, #0xc] + add r2, r3, #0x0 + bl MATH_CalcCRC16CCITT + strh r0, [r4, #0xe] + pop {r3-r5, pc} + nop +_0202326C: .word 0x20060623 +_02023270: .word 0x000204A4 + + thumb_func_start FUN_02023274 +FUN_02023274: ; 0x02023274 + push {r4-r6, lr} + ldr r6, [r1, r3] + ldr r5, _020232B0 ; =0x20060623 + add r4, r1, r3 + cmp r6, r5 + beq _02023284 + mov r0, #0x0 + pop {r4-r6, pc} +_02023284: + ldr r5, [r4, #0x8] + cmp r5, r3 + beq _0202328E + mov r0, #0x0 + pop {r4-r6, pc} +_0202328E: + ldrh r5, [r4, #0xc] + cmp r5, r2 + beq _02023298 + mov r0, #0x0 + pop {r4-r6, pc} +_02023298: + add r3, #0xe + add r0, #0x14 + add r2, r3, #0x0 + bl MATH_CalcCRC16CCITT + ldrh r1, [r4, #0xe] + cmp r1, r0 + bne _020232AC + mov r0, #0x1 + pop {r4-r6, pc} +_020232AC: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_020232B0: .word 0x20060623 + + thumb_func_start FUN_020232B4 +FUN_020232B4: ; 0x020232B4 + add r0, r0, r1 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start FUN_020232BC +FUN_020232BC: ; 0x020232BC + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02016444 + ldr r0, _020233FC ; =0x020EE6D8 + ldr r0, [r0, #0x0] + cmp r5, r0 + blt _020232D8 + bl ErrorHandling +_020232D8: + ldr r1, _02023400 ; =0x020EE6E0 + lsl r0, r5, #0x4 + add r4, r1, r0 + ldr r0, [r1, r0] + cmp r0, r5 + beq _020232E8 + bl ErrorHandling +_020232E8: + ldr r0, [r4, #0x8] + blx r0 + str r0, [sp, #0x4] + add r0, #0x10 + str r0, [sp, #0x4] + ldr r0, _02023404 ; =0x000204A0 + ldr r0, [r7, r0] + cmp r0, #0x1 + ldr r0, [r4, #0x8] + bne _0202336E + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235D0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023274 + cmp r0, #0x1 + beq _02023330 + bl ErrorHandling +_02023330: + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235D0 + ldr r1, [sp, #0x0] + orr r0, r1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023274 + cmp r0, #0x1 + beq _020233DE + bl ErrorHandling + b _020233DE +_0202336E: + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235D0 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023274 + cmp r0, #0x1 + beq _020233A4 + bl ErrorHandling +_020233A4: + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023248 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x4] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235D0 + ldr r1, [sp, #0x0] + orr r0, r1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02023274 + cmp r0, #0x1 + beq _020233DE + bl ErrorHandling +_020233DE: + ldr r0, [sp, #0x0] + cmp r0, #0x1 + bne _020233F0 + mov r0, #0x1 + bl FUN_02016454 + add sp, #0x8 + mov r0, #0x2 + pop {r3-r7, pc} +_020233F0: + mov r0, #0x1 + bl FUN_02016454 + mov r0, #0x3 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020233FC: .word 0x020EE6D8 +_02023400: .word 0x020EE6E0 +_02023404: .word 0x000204A0 + + thumb_func_start FUN_02023408 +FUN_02023408: ; 0x02023408 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + ldr r0, _02023564 ; =0x020EE6D8 + add r7, r2, #0x0 + ldr r0, [r0, #0x0] + add r6, r1, #0x0 + str r3, [sp, #0x0] + cmp r7, r0 + blt _02023420 + bl ErrorHandling +_02023420: + ldr r1, _02023568 ; =0x020EE6E0 + lsl r0, r7, #0x4 + add r4, r1, r0 + ldr r0, [r1, r0] + cmp r0, r7 + beq _02023430 + bl ErrorHandling +_02023430: + ldr r0, [r4, #0x8] + blx r0 + str r0, [sp, #0x10] + add r0, #0x10 + str r0, [sp, #0x10] + ldr r1, [sp, #0x10] + add r0, r6, #0x0 + bl FUN_02016998 + add r6, r0, #0x0 + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x10] + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235EC + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_02023274 + str r0, [sp, #0xc] + ldr r0, [r4, #0x8] + blx r0 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl FUN_020232B4 + str r0, [sp, #0x8] + ldr r0, [r4, #0x4] + ldr r2, [sp, #0x10] + add r0, #0x40 + lsl r0, r0, #0xc + add r1, r6, #0x0 + bl FUN_020235EC + ldr r0, [r4, #0x8] + blx r0 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_02023274 + add r7, r0, #0x0 + ldr r0, [r4, #0x8] + blx r0 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl FUN_020232B4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _020234CC + cmp r7, #0x0 + bne _020234CC + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x0 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + lsl r0, r0, #0xc + bl FUN_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_020234CC: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _020234F6 + cmp r7, #0x1 + bne _020234F6 + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x1 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x4] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + bl FUN_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_020234F6: + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _0202354C + cmp r7, #0x1 + bne _0202354C + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x4] + bl FUN_020229B8 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + ldr r0, _0202356C ; =0x000204A0 + beq _0202352E + mov r1, #0x0 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + lsl r0, r0, #0xc + bl FUN_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0202352E: + mov r1, #0x1 + str r1, [r5, r0] + add r1, r0, #0x4 + ldr r0, [sp, #0x4] + ldr r2, [sp, #0x10] + str r0, [r5, r1] + ldr r0, [r4, #0x4] + add r1, r6, #0x0 + add r0, #0x40 + lsl r0, r0, #0xc + bl FUN_020235EC + add sp, #0x14 + add r0, r6, #0x0 + pop {r4-r7, pc} +_0202354C: + ldr r0, [sp, #0x0] + mov r1, #0x2 + str r1, [r0, #0x0] + ldr r0, _0202356C ; =0x000204A0 + mov r1, #0x0 + str r1, [r5, r0] + add r0, r0, #0x4 + str r1, [r5, r0] + add r0, r6, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + nop +_02023564: .word 0x020EE6D8 +_02023568: .word 0x020EE6E0 +_0202356C: .word 0x000204A0 + + thumb_func_start FUN_02023570 +FUN_02023570: ; 0x02023570 + push {r3-r5, lr} + bl OS_GetLockID + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023584 + bl ErrorHandling +_02023584: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl CARD_LockBackup + ldr r0, _020235C8 ; =0x00001302 + bl CARD_IdentifyBackup + cmp r0, #0x0 + beq _0202359A + ldr r5, _020235C8 ; =0x00001302 + b _020235AA +_0202359A: + ldr r0, _020235CC ; =0x00001202 + bl CARD_IdentifyBackup + cmp r0, #0x0 + beq _020235A8 + ldr r5, _020235CC ; =0x00001202 + b _020235AA +_020235A8: + mov r5, #0x0 +_020235AA: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl CARD_UnlockBackup + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl OS_ReleaseLockID + cmp r5, #0x0 + beq _020235C2 + mov r0, #0x1 + pop {r3-r5, pc} +_020235C2: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_020235C8: .word 0x00001302 +_020235CC: .word 0x00001202 + + thumb_func_start FUN_020235D0 +FUN_020235D0: ; 0x020235D0 + push {r3-r5, lr} + bl FUN_02023668 + add r5, r0, #0x0 + add r4, sp, #0x0 +_020235DA: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020236E4 + cmp r0, #0x0 + beq _020235DA + ldr r0, [sp, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020235EC +FUN_020235EC: ; 0x020235EC + push {r4-r7, lr} + sub sp, #0x14 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl OS_GetLockID + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023608 + bl ErrorHandling +_02023608: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl CARD_LockBackup + mov r3, #0x0 + str r3, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r0, #0x6 + str r0, [sp, #0x8] + str r1, [sp, #0xc] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + str r3, [sp, #0x10] + bl CARDi_RequestStreamCommand + bl CARD_WaitBackupAsync + add r5, r0, #0x0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl CARD_UnlockBackup + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl OS_ReleaseLockID + cmp r5, #0x0 + bne _02023652 + ldr r0, _02023658 ; =0x021C59C8 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + mov r0, #0x1 + bl FUN_02089D90 +_02023652: + add r0, r5, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02023658: .word 0x021C59C8 + + thumb_func_start FUN_0202365C +FUN_0202365C: ; 0x0202365C + ldr r0, _02023664 ; =0x021C59C8 + mov r1, #0x1 + str r1, [r0, #0x4] + bx lr + .balign 4 +_02023664: .word 0x021C59C8 + + thumb_func_start FUN_02023668 +FUN_02023668: ; 0x02023668 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + bl OS_GetLockID + add r4, r0, #0x0 + mov r0, #0x2 + mvn r0, r0 + cmp r4, r0 + bne _02023684 + bl ErrorHandling +_02023684: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl CARD_LockBackup + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x6 + str r1, [sp, #0x8] + mov r1, #0x1 + str r1, [sp, #0xc] + add r1, sp, #0x14 + mov r2, #0x4 + add r3, r0, #0x0 + str r0, [sp, #0x10] + bl CARDi_RequestStreamCommand + cmp r0, #0x0 + bne _020236B2 + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_02023740 +_020236B2: + ldr r0, _020236DC ; =0x021C59C8 + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + mov r0, #0x7 + str r0, [sp, #0x8] + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #0x2 + str r0, [sp, #0x10] + ldr r3, _020236E0 ; =FUN_0202365C + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl CARDi_RequestStreamCommand + add r0, r4, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_020236DC: .word 0x021C59C8 +_020236E0: .word FUN_0202365C + + thumb_func_start FUN_020236E4 +FUN_020236E4: ; 0x020236E4 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202373C ; =0x021C59C8 + add r4, r1, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x1 + bne _02023738 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl CARD_UnlockBackup + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl OS_ReleaseLockID + bl CARD_GetResultCode + cmp r0, #0x0 + beq _02023714 + cmp r0, #0x4 + beq _0202371E + cmp r0, #0x6 + beq _02023728 + b _0202371A +_02023714: + mov r0, #0x1 + str r0, [r4, #0x0] + b _02023734 +_0202371A: + bl ErrorHandling +_0202371E: + mov r1, #0x0 + add r0, r5, #0x0 + str r1, [r4, #0x0] + bl FUN_02023740 +_02023728: + mov r0, #0x0 + str r0, [r4, #0x0] + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_02023740 +_02023734: + mov r0, #0x1 + pop {r3-r5, pc} +_02023738: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202373C: .word 0x021C59C8 + + thumb_func_start FUN_02023740 +FUN_02023740: ; 0x02023740 + push {r3-r5, lr} + add r5, r0, #0x0 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + add r4, r1, #0x0 + bl CARD_UnlockBackup + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl OS_ReleaseLockID + ldr r0, _02023768 ; =0x021C59C8 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + mov r0, #0x1 + add r1, r4, #0x0 + bl FUN_0208A0B8 + pop {r3-r5, pc} + .balign 4 +_02023768: .word 0x021C59C8 + + thumb_func_start FUN_0202376C +FUN_0202376C: ; 0x0202376C + mov r0, #0x5c + bx lr + + thumb_func_start FUN_02023770 +FUN_02023770: ; 0x02023770 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x5c + bl MIi_CpuClearFast + add r4, #0x10 + add r0, r4, #0x0 + bl FUN_02023840 + pop {r4, pc} + + thumb_func_start FUN_02023788 +FUN_02023788: ; 0x02023788 + ldr r3, _02023790 ; =FUN_02022610 + mov r1, #0x0 + bx r3 + nop +_02023790: .word FUN_02022610 + + thumb_func_start FUN_02023794 +FUN_02023794: ; 0x02023794 + push {r3, lr} + bl FUN_02023788 + add r0, #0x10 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020237A0 +FUN_020237A0: ; 0x020237A0 + push {r4, lr} + sub sp, #0x50 + add r4, r0, #0x0 + bl OS_GetOwnerRtcOffset + str r0, [r4, #0x0] + add r0, r4, #0x0 + add r0, #0x8 + str r1, [r4, #0x4] + bl OS_GetMacAddress + add r0, sp, #0x0 + bl OS_GetOwnerInfo + add r0, sp, #0x0 + ldrb r1, [r0, #0x2] + strb r1, [r4, #0xe] + ldrb r0, [r0, #0x3] + strb r0, [r4, #0xf] + add sp, #0x50 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020237CC +FUN_020237CC: ; 0x020237CC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl OS_GetMacAddress + mov r2, #0x0 + add r3, sp, #0x0 +_020237DC: + add r0, r4, r2 + ldrb r1, [r3, #0x0] + ldrb r0, [r0, #0x8] + cmp r1, r0 + beq _020237EC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_020237EC: + add r2, r2, #0x1 + add r3, r3, #0x1 + cmp r2, #0x6 + blt _020237DC + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020237FC +FUN_020237FC: ; 0x020237FC + push {r4, lr} + add r4, r0, #0x0 + bl OS_GetOwnerRtcOffset + ldr r3, [r4, #0x0] + ldr r2, [r4, #0x4] + eor r0, r3 + eor r1, r2 + orr r0, r1 + bne _02023814 + mov r0, #0x1 + pop {r4, pc} +_02023814: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02023818 +FUN_02023818: ; 0x02023818 + ldrb r0, [r0, #0xe] + bx lr + + thumb_func_start FUN_0202381C +FUN_0202381C: ; 0x0202381C + ldrb r0, [r0, #0xf] + bx lr + + thumb_func_start FUN_02023820 +FUN_02023820: ; 0x02023820 + add r0, #0x48 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02023828 +FUN_02023828: ; 0x02023828 + add r0, #0x48 + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02023830 +FUN_02023830: ; 0x02023830 + ldr r0, [r0, #0x4c] + bx lr + + thumb_func_start FUN_02023834 +FUN_02023834: ; 0x02023834 + ldr r2, [r0, #0x4c] + cmp r2, #0x0 + bne _0202383C + str r1, [r0, #0x4c] +_0202383C: + bx lr + .balign 4 + + thumb_func_start FUN_02023840 +FUN_02023840: ; 0x02023840 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + add r1, r4, #0x0 + str r0, [r4, #0x0] + add r0, r4, #0x4 + add r1, #0x14 + bl FUN_0201265C + add r0, r4, #0x4 + bl RTC_ConvertDateToDay + add r1, r4, #0x0 + str r0, [r4, #0x20] + add r0, r4, #0x4 + add r1, #0x14 + bl RTC_ConvertDateTimeToSecond + str r0, [r4, #0x24] + str r1, [r4, #0x28] + mov r0, #0x0 + str r0, [r4, #0x2c] + str r0, [r4, #0x30] + str r0, [r4, #0x34] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02023874 +FUN_02023874: ; 0x02023874 + ldr r0, [r0, #0x34] + cmp r0, #0x0 + beq _0202387E + mov r0, #0x1 + bx lr +_0202387E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02023884 +FUN_02023884: ; 0x02023884 + mov r2, #0x5a + ldr r3, [r0, #0x34] + lsl r2, r2, #0x4 + cmp r3, r2 + bls _02023890 + str r2, [r0, #0x34] +_02023890: + ldr r2, [r0, #0x34] + cmp r2, r1 + bhs _0202389C + mov r1, #0x0 + str r1, [r0, #0x34] + bx lr +_0202389C: + sub r1, r2, r1 + str r1, [r0, #0x34] + bx lr + .balign 4 + + thumb_func_start FUN_020238A4 +FUN_020238A4: ; 0x020238A4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x5a + lsl r0, r0, #0x4 + add r1, r4, #0x0 + str r0, [r4, #0x34] + add r0, r4, #0x4 + add r1, #0x14 + bl FUN_0201265C + add r0, r4, #0x4 + bl RTC_ConvertDateToDay + str r0, [r4, #0x20] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020238C4 +FUN_020238C4: ; 0x020238C4 + mov r0, #0x2c + bx lr + + thumb_func_start FUN_020238C8 +FUN_020238C8: ; 0x020238C8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x2c + bl MIi_CpuClearFast + add r0, r4, #0x0 + bl FUN_02024F50 + add r0, r4, #0x4 + bl FUN_02023948 + add r0, r4, #0x0 + add r0, #0x24 + bl FUN_02028910 + add r4, #0x26 + add r0, r4, #0x0 + bl FUN_02029E48 + pop {r4, pc} + + thumb_func_start FUN_020238F4 +FUN_020238F4: ; 0x020238F4 + push {r3, lr} + mov r1, #0x1 + bl FUN_02022610 + add r0, r0, #0x4 + pop {r3, pc} + + thumb_func_start LoadPlayerDataAddress +LoadPlayerDataAddress: ; 0x02023900 + ldr r3, _02023908 ; =FUN_02022610 + mov r1, #0x1 + bx r3 + nop +_02023908: .word FUN_02022610 + + thumb_func_start FUN_0202390C +FUN_0202390C: ; 0x0202390C + push {r3, lr} + mov r1, #0x1 + bl FUN_02022610 + add r0, #0x24 + pop {r3, pc} + + thumb_func_start FUN_02023918 +FUN_02023918: ; 0x02023918 + push {r3, lr} + mov r1, #0x1 + bl FUN_02022610 + add r0, #0x26 + pop {r3, pc} + + thumb_func_start FUN_02023924 +FUN_02023924: ; 0x02023924 + mov r0, #0x20 + bx lr + + thumb_func_start FUN_02023928 +FUN_02023928: ; 0x02023928 + push {r4, lr} + mov r1, #0x20 + bl FUN_02016998 + add r4, r0, #0x0 + bl FUN_02023948 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202393C +FUN_0202393C: ; 0x0202393C + ldr r3, _02023944 ; =MI_CpuCopy8 + mov r2, #0x20 + bx r3 + nop +_02023944: .word MI_CpuCopy8 + + thumb_func_start FUN_02023948 +FUN_02023948: ; 0x02023948 + push {r4, lr} + mov r1, #0x0 + mov r2, #0x20 + add r4, r0, #0x0 + bl memset + mov r0, #0x2 + strb r0, [r4, #0x19] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202395C +FUN_0202395C: ; 0x0202395C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl StringLength + cmp r0, #0x8 + blt _02023970 + bl ErrorHandling +_02023970: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl StringCopy + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202397C +FUN_0202397C: ; 0x0202397C + ldr r3, _02023988 ; =FUN_02021EF0 + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0x8 + bx r3 + .balign 4 +_02023988: .word FUN_02021EF0 + + thumb_func_start FUN_0202398C +FUN_0202398C: ; 0x0202398C + bx lr + .balign 4 + + thumb_func_start FUN_02023990 +FUN_02023990: ; 0x02023990 + ldr r3, _0202399C ; =FUN_02021E28 + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bx r3 + nop +_0202399C: .word FUN_02021E28 + + thumb_func_start FUN_020239A0 +FUN_020239A0: ; 0x020239A0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x8 + bl FUN_020219F4 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02023990 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_020239B8 +FUN_020239B8: ; 0x020239B8 + str r1, [r0, #0x10] + bx lr + + thumb_func_start FUN_020239BC +FUN_020239BC: ; 0x020239BC + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start FUN_020239C0 +FUN_020239C0: ; 0x020239C0 + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + + thumb_func_start FUN_020239C8 +FUN_020239C8: ; 0x020239C8 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start FUN_020239CC +FUN_020239CC: ; 0x020239CC + ldrb r0, [r0, #0x18] + bx lr + + thumb_func_start FUN_020239D0 +FUN_020239D0: ; 0x020239D0 + ldrb r3, [r0, #0x1a] + mov r0, #0x1 + add r2, r0, #0x0 + lsl r2, r1 + add r1, r3, #0x0 + tst r1, r2 + bne _020239E0 + mov r0, #0x0 +_020239E0: + bx lr + .balign 4 + + thumb_func_start FUN_020239E4 +FUN_020239E4: ; 0x020239E4 + ldrb r3, [r0, #0x1a] + mov r2, #0x1 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r0, #0x1a] + bx lr + .balign 4 + + thumb_func_start FUN_020239F4 +FUN_020239F4: ; 0x020239F4 + ldrb r3, [r0, #0x1a] + mov r2, #0x0 + cmp r3, #0x0 + beq _02023A0A + mov r0, #0x1 +_020239FE: + add r1, r3, #0x0 + tst r1, r0 + beq _02023A06 + add r2, r2, #0x1 +_02023A06: + lsr r3, r3, #0x1 + bne _020239FE +_02023A0A: + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02023A10 +FUN_02023A10: ; 0x02023A10 + ldr r0, [r0, #0x14] + bx lr + + thumb_func_start FUN_02023A14 +FUN_02023A14: ; 0x02023A14 + ldr r2, _02023A24 ; =0x000F423F + cmp r1, r2 + bls _02023A1C + add r1, r2, #0x0 +_02023A1C: + str r1, [r0, #0x14] + add r0, r1, #0x0 + bx lr + nop +_02023A24: .word 0x000F423F + + thumb_func_start FUN_02023A28 +FUN_02023A28: ; 0x02023A28 + ldrb r0, [r0, #0x1b] + bx lr + + thumb_func_start FUN_02023A2C +FUN_02023A2C: ; 0x02023A2C + strb r1, [r0, #0x1b] + bx lr + + thumb_func_start FUN_02023A30 +FUN_02023A30: ; 0x02023A30 + ldr r2, _02023A50 ; =0x000F423F + cmp r1, r2 + bls _02023A3A + str r2, [r0, #0x14] + b _02023A40 +_02023A3A: + ldr r2, [r0, #0x14] + add r1, r2, r1 + str r1, [r0, #0x14] +_02023A40: + ldr r2, [r0, #0x14] + ldr r1, _02023A50 ; =0x000F423F + cmp r2, r1 + bls _02023A4A + str r1, [r0, #0x14] +_02023A4A: + ldr r0, [r0, #0x14] + bx lr + nop +_02023A50: .word 0x000F423F + + thumb_func_start FUN_02023A54 +FUN_02023A54: ; 0x02023A54 + ldr r2, [r0, #0x14] + cmp r2, r1 + bhs _02023A5E + mov r1, #0x0 + b _02023A60 +_02023A5E: + sub r1, r2, r1 +_02023A60: + str r1, [r0, #0x14] + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start FUN_02023A68 +FUN_02023A68: ; 0x02023A68 + ldrb r0, [r0, #0x1c] + bx lr + + thumb_func_start FUN_02023A6C +FUN_02023A6C: ; 0x02023A6C + strb r1, [r0, #0x1c] + bx lr + + thumb_func_start FUN_02023A70 +FUN_02023A70: ; 0x02023A70 + ldrb r0, [r0, #0x19] + bx lr + + thumb_func_start FUN_02023A74 +FUN_02023A74: ; 0x02023A74 + strb r1, [r0, #0x19] + bx lr + + thumb_func_start FUN_02023A78 +FUN_02023A78: ; 0x02023A78 + ldrb r2, [r0, #0x1d] + mov r1, #0x1 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strb r1, [r0, #0x1d] + bx lr + .balign 4 + + thumb_func_start FUN_02023A88 +FUN_02023A88: ; 0x02023A88 + ldrb r0, [r0, #0x1d] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + bx lr + + thumb_func_start FUN_02023A90 +FUN_02023A90: ; 0x02023A90 + ldrb r2, [r0, #0x1d] + mov r1, #0x2 + orr r1, r2 + strb r1, [r0, #0x1d] + bx lr + .balign 4 + + thumb_func_start FUN_02023A9C +FUN_02023A9C: ; 0x02023A9C + ldrb r0, [r0, #0x1d] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bx lr + + thumb_func_start FUN_02023AA4 +FUN_02023AA4: ; 0x02023AA4 + push {r3-r5, lr} + mov r2, #0x7 + add r5, r0, #0x0 + add r4, r1, #0x0 + bl StringNotEqualN + cmp r0, #0x0 + bne _02023AC0 + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _02023AC0 + mov r0, #0x1 + pop {r3-r5, pc} +_02023AC0: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02023AC4 +FUN_02023AC4: ; 0x02023AC4 + mov r0, #0x20 + bx lr + + thumb_func_start FUN_02023AC8 +FUN_02023AC8: ; 0x02023AC8 + mov r0, #0x20 + bx lr + + thumb_func_start FUN_02023ACC +FUN_02023ACC: ; 0x02023ACC + ldr r3, _02023AD4 ; =MI_CpuCopy8 + mov r2, #0x20 + bx r3 + nop +_02023AD4: .word MI_CpuCopy8 + + thumb_func_start FUN_02023AD8 +FUN_02023AD8: ; 0x02023AD8 + ldr r3, _02023AE0 ; =memset + mov r1, #0x0 + mov r2, #0x20 + bx r3 + .balign 4 +_02023AE0: .word memset + + thumb_func_start FUN_02023AE4 +FUN_02023AE4: ; 0x02023AE4 + ldr r3, _02023AF0 ; =FUN_02021E8C + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xc + bx r3 + .balign 4 +_02023AF0: .word FUN_02021E8C + + thumb_func_start FUN_02023AF4 +FUN_02023AF4: ; 0x02023AF4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x18 + bl FUN_020219F4 + add r1, r5, #0x0 + add r4, r0, #0x0 + bl FUN_02021E28 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02023B0C +FUN_02023B0C: ; 0x02023B0C + mov r2, #0x0 + cmp r1, #0xc + bhi _02023B9E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02023B1E: ; jump table (using 16-bit offset) + .short _02023B9E - _02023B1E - 2; case 0 + .short _02023B38 - _02023B1E - 2; case 1 + .short _02023B3C - _02023B1E - 2; case 2 + .short _02023B40 - _02023B1E - 2; case 3 + .short _02023B44 - _02023B1E - 2; case 4 + .short _02023B4C - _02023B1E - 2; case 5 + .short _02023B52 - _02023B1E - 2; case 6 + .short _02023B66 - _02023B1E - 2; case 7 + .short _02023B6C - _02023B1E - 2; case 8 + .short _02023B80 - _02023B1E - 2; case 9 + .short _02023B88 - _02023B1E - 2; case 10 + .short _02023B90 - _02023B1E - 2; case 11 + .short _02023B98 - _02023B1E - 2; case 12 +_02023B38: + ldrb r2, [r0, #0x1a] + b _02023B9E +_02023B3C: + ldrb r2, [r0, #0x1b] + b _02023B9E +_02023B40: + ldrh r2, [r0, #0x18] + b _02023B9E +_02023B44: + ldrb r0, [r0, #0x1e] + lsl r0, r0, #0x1f + lsr r2, r0, #0x1f + b _02023B9E +_02023B4C: + mov r1, #0x1c + ldrsb r2, [r0, r1] + b _02023B9E +_02023B52: + mov r1, #0x1c + ldrsb r0, [r0, r1] + cmp r0, #0x0 + ble _02023B5E + mov r2, #0x1 + b _02023B9E +_02023B5E: + bge _02023B9E + add r2, r1, #0x0 + sub r2, #0x1d + b _02023B9E +_02023B66: + mov r1, #0x1d + ldrsb r2, [r0, r1] + b _02023B9E +_02023B6C: + mov r1, #0x1d + ldrsb r0, [r0, r1] + cmp r0, #0x0 + ble _02023B78 + mov r2, #0x1 + b _02023B9E +_02023B78: + bge _02023B9E + add r2, r1, #0x0 + sub r2, #0x1e + b _02023B9E +_02023B80: + ldrb r0, [r0, #0x1e] + lsl r0, r0, #0x1c + lsr r2, r0, #0x1f + b _02023B9E +_02023B88: + ldrb r0, [r0, #0x1e] + lsl r0, r0, #0x1d + lsr r2, r0, #0x1f + b _02023B9E +_02023B90: + ldrb r0, [r0, #0x1e] + lsl r0, r0, #0x1e + lsr r2, r0, #0x1f + b _02023B9E +_02023B98: + ldrb r0, [r0, #0x1e] + lsl r0, r0, #0x1b + lsr r2, r0, #0x1f +_02023B9E: + add r0, r2, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02023BA4 +FUN_02023BA4: ; 0x02023BA4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x1 + blt _02023BB2 + bl ErrorHandling +_02023BB2: + add r0, r4, #0x0 + mov r1, #0xd + bl FUN_02022610 + add r4, r0, #0x0 + lsl r5, r5, #0x5 + add r0, r4, r5 + mov r1, #0x1 + bl FUN_02023B0C + cmp r0, #0x0 + beq _02023BCE + add r0, r4, r5 + pop {r3-r5, pc} +_02023BCE: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02023BD4 +FUN_02023BD4: ; 0x02023BD4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0xd + bl FUN_02022610 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_02023ACC + pop {r4, pc} + + thumb_func_start FUN_02023BE8 +FUN_02023BE8: ; 0x02023BE8 + push {r3, lr} + cmp r1, #0x5 + bhs _02023BF6 + ldr r2, _02023C00 ; =0x02105BD4 + lsl r0, r1, #0x5 + add r0, r2, r0 + pop {r3, pc} +_02023BF6: + mov r1, #0xd + bl FUN_02022610 + pop {r3, pc} + nop +_02023C00: .word 0x02105BD4 + + thumb_func_start FUN_02023C04 +FUN_02023C04: ; 0x02023C04 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x5 + bhs _02023C2C + ldr r2, _02023C3C ; =0x0000013A + mov r0, #0x0 + mov r1, #0x1a + bl FUN_0200A86C + add r5, #0x38 + add r6, r0, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0200A8E0 + add r0, r6, #0x0 + bl FUN_0200A8B8 + pop {r4-r6, pc} +_02023C2C: + mov r1, #0x0 + bl FUN_02023BA4 + add r1, r4, #0x0 + bl FUN_02023AE4 + pop {r4-r6, pc} + nop +_02023C3C: .word 0x0000013A + + thumb_func_start FUN_02023C40 +FUN_02023C40: ; 0x02023C40 + mov r0, #0x1e + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_02023C48 +FUN_02023C48: ; 0x02023C48 + push {r4, lr} + mov r2, #0x1e + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + bl memset + add r0, r4, #0x0 + bl FUN_020669A0 + add r0, r4, #0x0 + add r0, #0xec + bl FUN_020669A0 + mov r0, #0x76 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r0, #0x4 + strb r1, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02023C74 +FUN_02023C74: ; 0x02023C74 + mov r2, #0xec + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start FUN_02023C7C +FUN_02023C7C: ; 0x02023C7C + bx lr + .balign 4 + + thumb_func_start FUN_02023C80 +FUN_02023C80: ; 0x02023C80 + add r0, #0x88 + bx lr + + thumb_func_start FUN_02023C84 +FUN_02023C84: ; 0x02023C84 + add r0, #0xe8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02023C8C +FUN_02023C8C: ; 0x02023C8C + bx lr + .balign 4 + + thumb_func_start FUN_02023C90 +FUN_02023C90: ; 0x02023C90 + mov r1, #0x76 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + bx lr + + thumb_func_start FUN_02023C98 +FUN_02023C98: ; 0x02023C98 + mov r1, #0x77 + lsl r1, r1, #0x2 + ldrb r0, [r0, r1] + bx lr + + thumb_func_start FUN_02023CA0 +FUN_02023CA0: ; 0x02023CA0 + add r0, #0xe8 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02023CA8 +FUN_02023CA8: ; 0x02023CA8 + add r2, r0, #0x0 + add r2, #0xe8 + ldr r2, [r2, #0x0] + add r0, #0xe8 + add r1, r2, r1 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02023CB8 +FUN_02023CB8: ; 0x02023CB8 + mov r2, #0x76 + lsl r2, r2, #0x2 + str r1, [r0, r2] + bx lr + + thumb_func_start FUN_02023CC0 +FUN_02023CC0: ; 0x02023CC0 + mov r2, #0x77 + lsl r2, r2, #0x2 + strb r1, [r0, r2] + bx lr + + thumb_func_start FUN_02023CC8 +FUN_02023CC8: ; 0x02023CC8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r1, #0xc + mov r2, #0x0 + bl FUN_020672BC + add r5, #0xec + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xc + mov r2, #0x0 + bl FUN_020672BC + cmp r4, r0 + beq _02023CEA + mov r0, #0x1 + pop {r3-r5, pc} +_02023CEA: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02023CF0 +FUN_02023CF0: ; 0x02023CF0 + push {r3-r4} + add r4, r0, #0x0 + add r3, r1, #0x0 + mov r2, #0x1d +_02023CF8: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _02023CF8 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + pop {r3-r4} + bx lr + + thumb_func_start FUN_02023D08 +FUN_02023D08: ; 0x02023D08 + push {r3-r4} + mov r1, #0x0 + add r2, r0, #0x0 + add r4, r1, #0x0 +_02023D10: + add r1, r1, #0x1 + strh r4, [r2, #0x38] + add r2, r2, #0x2 + cmp r1, #0x8 + blt _02023D10 + add r3, r0, #0x0 + mov r2, #0x0 +_02023D1E: + add r1, r3, #0x0 + add r1, #0x48 + add r4, r4, #0x1 + add r3, r3, #0x2 + strh r2, [r1, #0x0] + cmp r4, #0xb + blt _02023D1E + ldr r1, _02023D38 ; =0x0000FFFF + strh r1, [r0, #0x38] + add r0, #0x48 + strh r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 +_02023D38: .word 0x0000FFFF + + thumb_func_start FUN_02023D3C +FUN_02023D3C: ; 0x02023D3C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020669A0 + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0xe8 + add r4, #0x88 + str r1, [r0, #0x0] + add r0, r4, #0x0 + bl FUN_02023D08 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02023D58 +FUN_02023D58: ; 0x02023D58 + ldr r3, _02023D60 ; =FUN_02022610 + mov r1, #0x8 + bx r3 + nop +_02023D60: .word FUN_02022610 + + thumb_func_start FUN_02023D64 +FUN_02023D64: ; 0x02023D64 + mov r0, #0x4f + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_02023D6C +FUN_02023D6C: ; 0x02023D6C + push {r4, lr} + mov r1, #0x4f + lsl r1, r1, #0x2 + bl FUN_02016998 + add r4, r0, #0x0 + bl FUN_02024378 + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02023D80 +FUN_02023D80: ; 0x02023D80 + ldr r3, _02023D88 ; =MI_CpuCopy8 + mov r2, #0x4f + lsl r2, r2, #0x2 + bx r3 + .balign 4 +_02023D88: .word MI_CpuCopy8 + + thumb_func_start FUN_02023D8C +FUN_02023D8C: ; 0x02023D8C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02023DE8 ; =0x000001A6 + add r4, r1, #0x0 + cmp r4, r0 + beq _02023DA2 + add r0, r0, #0x1 + cmp r4, r0 + beq _02023DA2 + bl ErrorHandling +_02023DA2: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x0 + bne _02023DB4 + mov r0, #0x0 + pop {r3-r5, pc} +_02023DB4: + ldr r0, _02023DE8 ; =0x000001A6 + cmp r4, r0 + bne _02023DBE + sub r0, #0x9e + b _02023DC0 +_02023DBE: + sub r0, #0x9d +_02023DC0: + add r0, r5, r0 + ldrb r1, [r0, #0x0] + mov r2, #0x1 + add r0, r1, #0x0 + tst r0, r2 + bne _02023DCE + mov r2, #0x0 +_02023DCE: + mov r0, #0x2 + tst r0, r1 + beq _02023DD8 + mov r0, #0x1 + b _02023DDA +_02023DD8: + mov r0, #0x0 +_02023DDA: + cmp r2, r0 + bne _02023DE2 + mov r0, #0x1 + pop {r3-r5, pc} +_02023DE2: + mov r0, #0x2 + pop {r3-r5, pc} + nop +_02023DE8: .word 0x000001A6 + + thumb_func_start FUN_02023DEC +FUN_02023DEC: ; 0x02023DEC + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _02023E6C ; =0x000001A6 + add r6, r1, #0x0 + add r5, r2, #0x0 + cmp r6, r0 + beq _02023E04 + add r0, r0, #0x1 + cmp r6, r0 + beq _02023E04 + bl ErrorHandling +_02023E04: + lsl r1, r6, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x0 + bne _02023E16 + mov r0, #0x0 + pop {r3-r7, pc} +_02023E16: + ldr r0, _02023E6C ; =0x000001A6 + cmp r6, r0 + bne _02023E20 + sub r0, #0x9e + b _02023E22 +_02023E20: + sub r0, #0x9d +_02023E22: + add r4, r7, r0 + add r0, r7, #0x0 + add r1, r6, #0x0 + bl FUN_02023D8C + mov r6, #0x0 + cmp r0, #0x0 + bls _02023E66 + mov r1, #0x1 +_02023E34: + add r2, r6, #0x1 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + sub r2, r2, #0x1 + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + add r7, r3, #0x0 + mov r2, #0x7 + asr r3, r3, #0x3 + and r7, r2 + add r2, r1, #0x0 + ldrb r3, [r4, r3] + lsl r2, r7 + tst r2, r3 + beq _02023E56 + add r2, r1, #0x0 + b _02023E58 +_02023E56: + mov r2, #0x0 +_02023E58: + cmp r2, r5 + bne _02023E60 + mov r0, #0x1 + pop {r3-r7, pc} +_02023E60: + add r6, r6, #0x1 + cmp r6, r0 + blo _02023E34 +_02023E66: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02023E6C: .word 0x000001A6 + + thumb_func_start FUN_02023E70 +FUN_02023E70: ; 0x02023E70 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _02023F28 ; =0x000001A6 + add r5, r1, #0x0 + add r7, r2, #0x0 + cmp r5, r0 + beq _02023E88 + add r0, r0, #0x1 + cmp r5, r0 + beq _02023E88 + bl ErrorHandling +_02023E88: + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02023DEC + cmp r0, #0x0 + bne _02023F26 + ldr r0, _02023F28 ; =0x000001A6 + cmp r5, r0 + bne _02023EA2 + sub r0, #0x9e + b _02023EA4 +_02023EA2: + sub r0, #0x9d +_02023EA4: + add r4, r6, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02023D8C + add r5, r0, #0x0 + cmp r5, #0x2 + bge _02023F26 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + blo _02023EC6 + bl ErrorHandling +_02023EC6: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r2, r1, #0x0 + mov r0, #0x7 + and r2, r0 + asr r1, r1, #0x3 + mov r3, #0x1 + lsl r3, r2 + ldrb r0, [r4, r1] + mvn r3, r3 + and r0, r3 + strb r0, [r4, r1] + lsl r0, r7, #0x18 + lsr r6, r0, #0x18 + add r0, r6, #0x0 + ldrb r3, [r4, r1] + lsl r0, r2 + orr r0, r3 + strb r0, [r4, r1] + cmp r5, #0x0 + bne _02023F26 + add r0, r5, #0x2 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r6, #0x2 + blo _02023F00 + bl ErrorHandling +_02023F00: + sub r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x7 + add r1, r2, #0x0 + and r1, r0 + asr r0, r2, #0x3 + mov r2, #0x1 + lsl r2, r1 + ldrb r3, [r4, r0] + mvn r2, r2 + and r2, r3 + strb r2, [r4, r0] + add r2, r6, #0x0 + ldrb r3, [r4, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r4, r0] +_02023F26: + pop {r3-r7, pc} + .balign 4 +_02023F28: .word 0x000001A6 + + thumb_func_start FUN_02023F2C +FUN_02023F2C: ; 0x02023F2C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x67 + add r4, r1, #0x0 + lsl r0, r0, #0x2 + cmp r4, r0 + beq _02023F44 + add r0, r0, #0x1 + cmp r4, r0 + beq _02023F44 + bl ErrorHandling +_02023F44: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x0 + bne _02023F56 + mov r0, #0x0 + pop {r3-r5, pc} +_02023F56: + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r4, r0 + bne _02023F62 + sub r0, #0x92 + b _02023F64 +_02023F62: + sub r0, #0x91 +_02023F64: + add r1, r5, r0 + mov r0, #0x0 + mov r3, #0x3 +_02023F6A: + lsl r2, r0, #0x10 + lsr r5, r2, #0x10 + asr r2, r5, #0x2 + ldrb r4, [r1, r2] + lsl r2, r5, #0x1e + lsr r2, r2, #0x1d + asr r4, r2 + add r2, r4, #0x0 + and r2, r3 + cmp r2, #0x3 + beq _02023F86 + add r0, r0, #0x1 + cmp r0, #0x3 + blt _02023F6A +_02023F86: + pop {r3-r5, pc} + + thumb_func_start FUN_02023F88 +FUN_02023F88: ; 0x02023F88 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x67 + add r5, r1, #0x0 + lsl r0, r0, #0x2 + add r4, r2, #0x0 + cmp r5, r0 + beq _02023FA2 + add r0, r0, #0x1 + cmp r5, r0 + beq _02023FA2 + bl ErrorHandling +_02023FA2: + lsl r1, r5, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x0 + bne _02023FB4 + mov r0, #0x0 + pop {r4-r6, pc} +_02023FB4: + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r5, r0 + bne _02023FC0 + sub r0, #0x92 + b _02023FC2 +_02023FC0: + sub r0, #0x91 +_02023FC2: + add r1, r6, r0 + mov r0, #0x0 + mov r3, #0x3 +_02023FC8: + lsl r2, r0, #0x10 + lsr r6, r2, #0x10 + asr r2, r6, #0x2 + ldrb r5, [r1, r2] + lsl r2, r6, #0x1e + lsr r2, r2, #0x1d + asr r5, r2 + add r2, r5, #0x0 + and r2, r3 + cmp r2, r4 + bne _02023FE2 + mov r0, #0x1 + pop {r4-r6, pc} +_02023FE2: + add r0, r0, #0x1 + cmp r0, #0x3 + blt _02023FC8 + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02023FEC +FUN_02023FEC: ; 0x02023FEC + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x67 + add r5, r1, #0x0 + lsl r0, r0, #0x2 + add r7, r2, #0x0 + cmp r5, r0 + beq _02024006 + add r0, r0, #0x1 + cmp r5, r0 + beq _02024006 + bl ErrorHandling +_02024006: + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02023F88 + cmp r0, #0x0 + bne _02024064 + mov r0, #0x67 + lsl r0, r0, #0x2 + cmp r5, r0 + bne _02024022 + sub r0, #0x92 + b _02024024 +_02024022: + sub r0, #0x91 +_02024024: + add r4, r6, r0 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02023F2C + add r5, r0, #0x0 + cmp r5, #0x3 + bge _02024064 + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x4 + blo _02024040 + bl ErrorHandling +_02024040: + lsl r0, r5, #0x10 + lsr r2, r0, #0x10 + lsl r0, r2, #0x1e + lsr r1, r0, #0x1d + asr r0, r2, #0x2 + mov r2, #0x3 + lsl r2, r1 + ldrb r3, [r4, r0] + mvn r2, r2 + and r2, r3 + strb r2, [r4, r0] + lsl r2, r7, #0x18 + lsr r2, r2, #0x18 + ldrb r3, [r4, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r4, r0] +_02024064: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02024068 +FUN_02024068: ; 0x02024068 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0x4 + blo _02024078 + bl ErrorHandling +_02024078: + cmp r4, #0xf + bls _02024080 + bl ErrorHandling +_02024080: + cmp r6, #0x2 + bhs _0202409E + lsl r0, r6, #0x2 + add r0, #0x18 + mov r1, #0xf + lsl r1, r0 + ldr r2, [r5, #0x40] + mvn r1, r1 + and r2, r1 + add r1, r4, #0x0 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + str r0, [r5, #0x40] + pop {r4-r6, pc} +_0202409E: + sub r0, r6, #0x2 + lsl r0, r0, #0x18 + add r1, r5, #0x0 + lsr r0, r0, #0x16 + add r1, #0x80 + ldr r2, [r1, #0x0] + add r0, #0x18 + mov r1, #0xf + lsl r1, r0 + mvn r1, r1 + and r2, r1 + add r1, r5, #0x0 + add r1, #0x80 + str r2, [r1, #0x0] + add r1, r5, #0x0 + add r1, #0x80 + ldr r2, [r1, #0x0] + add r1, r4, #0x0 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + add r5, #0x80 + str r0, [r5, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020240D0 +FUN_020240D0: ; 0x020240D0 + push {r3-r6} + mov r3, #0xf + mov r1, #0x0 + add r4, r3, #0x0 +_020240D8: + lsl r2, r1, #0x18 + lsr r6, r2, #0x18 + cmp r6, #0x2 + bhs _020240EE + lsl r2, r6, #0x2 + ldr r5, [r0, #0x40] + add r2, #0x18 + lsr r5, r2 + add r2, r5, #0x0 + and r2, r4 + b _02024102 +_020240EE: + add r2, r0, #0x0 + add r2, #0x80 + ldr r5, [r2, #0x0] + sub r2, r6, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + add r2, #0x18 + lsr r5, r2 + add r2, r5, #0x0 + and r2, r3 +_02024102: + cmp r2, #0xf + beq _0202410C + add r1, r1, #0x1 + cmp r1, #0x4 + blt _020240D8 +_0202410C: + add r0, r1, #0x0 + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start FUN_02024114 +FUN_02024114: ; 0x02024114 + push {r4-r7} + mov r2, #0xf + mov r6, #0x0 + add r3, r2, #0x0 +_0202411C: + lsl r4, r6, #0x18 + lsr r5, r4, #0x18 + cmp r5, #0x2 + bhs _02024134 + ldr r7, [r0, #0x40] + lsl r4, r5, #0x2 + add r4, #0x18 + add r5, r7, #0x0 + lsr r5, r4 + add r4, r5, #0x0 + and r4, r3 + b _02024146 +_02024134: + add r4, r0, #0x0 + sub r5, r5, #0x2 + add r4, #0x80 + lsl r5, r5, #0x18 + lsr r5, r5, #0x16 + ldr r4, [r4, #0x0] + add r5, #0x18 + lsr r4, r5 + and r4, r2 +_02024146: + cmp r1, r4 + bne _02024150 + mov r0, #0x1 + pop {r4-r7} + bx lr +_02024150: + add r6, r6, #0x1 + cmp r6, #0x4 + blt _0202411C + mov r0, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start FUN_0202415C +FUN_0202415C: ; 0x0202415C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _02024198 ; =0x00000182 + cmp r6, r0 + bne _02024196 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02024114 + cmp r0, #0x0 + bne _02024196 + add r0, r5, #0x0 + bl FUN_020240D0 + add r2, r0, #0x0 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + bl FUN_02024068 +_02024196: + pop {r4-r6, pc} + .balign 4 +_02024198: .word 0x00000182 + + thumb_func_start FUN_0202419C +FUN_0202419C: ; 0x0202419C + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0xf +_020241A4: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl FUN_02024068 + add r4, r4, #0x1 + cmp r4, #0x4 + blt _020241A4 + pop {r4-r6, pc} + + thumb_func_start FUN_020241B8 +FUN_020241B8: ; 0x020241B8 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xc9 + bne _02024210 + add r0, r2, #0x0 + bl FUN_020690CC + lsl r1, r0, #0x18 + lsr r3, r1, #0x18 + mov r1, #0x43 + mov r4, #0x0 + add r6, r5, #0x0 + lsl r1, r1, #0x2 +_020241D4: + ldrb r2, [r6, r1] + cmp r3, r2 + bne _020241DE + mov r1, #0x1 + b _020241E8 +_020241DE: + add r4, r4, #0x1 + add r6, r6, #0x1 + cmp r4, #0x1c + blt _020241D4 + mov r1, #0x0 +_020241E8: + cmp r1, #0x0 + bne _02024290 + mov r1, #0x43 + mov r3, #0x0 + add r4, r5, #0x0 + lsl r1, r1, #0x2 +_020241F4: + ldrb r2, [r4, r1] + cmp r2, #0xff + beq _02024202 + add r3, r3, #0x1 + add r4, r4, #0x1 + cmp r3, #0x1c + blt _020241F4 +_02024202: + cmp r3, #0x1c + bge _02024290 + mov r1, #0x43 + add r2, r5, r3 + lsl r1, r1, #0x2 + strb r0, [r2, r1] + pop {r4-r6, pc} +_02024210: + mov r6, #0x67 + lsl r6, r6, #0x2 + cmp r4, r6 + bne _0202422E + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02023FEC + pop {r4-r6, pc} +_0202422E: + add r3, r6, #0x1 + cmp r4, r3 + bne _0202424A + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02023FEC + pop {r4-r6, pc} +_0202424A: + add r3, r6, #0x0 + add r3, #0xa + cmp r4, r3 + bne _02024268 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02023E70 + pop {r4-r6, pc} +_02024268: + add r3, r6, #0x0 + add r3, #0xb + cmp r4, r3 + bne _02024286 + add r0, r2, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02023E70 + pop {r4-r6, pc} +_02024286: + sub r6, #0x1a + cmp r4, r6 + bne _02024290 + bl FUN_0202415C +_02024290: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02024294 +FUN_02024294: ; 0x02024294 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r2, #0x0 + add r0, r1, #0x0 + bl FUN_02087A50 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl FUN_02087A1C + cmp r4, #0xe + beq _020242C0 + cmp r0, #0x6 + beq _020242C0 + ldr r1, _020242C4 ; =0x00000129 + add r3, r5, r1 + ldrb r2, [r3, r4] + mov r1, #0x1 + lsl r1, r0 + add r0, r2, #0x0 + orr r0, r1 + strb r0, [r3, r4] +_020242C0: + pop {r4-r6, pc} + nop +_020242C4: .word 0x00000129 + + thumb_func_start FUN_020242C8 +FUN_020242C8: ; 0x020242C8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x12 + add r4, r2, #0x0 + bl FUN_02068678 + cmp r0, #0xff + bne _020242EA + cmp r4, #0x0 + bne _020242E4 + mov r0, #0x2 + pop {r4-r6, pc} +_020242E4: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020242EA: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, #0x1 + mov r0, #0x7 + add r3, r2, #0x0 + and r3, r0 + add r0, r1, #0x0 + lsl r0, r3 + asr r3, r2, #0x3 + add r3, r5, r3 + add r3, #0x84 + ldrb r3, [r3, #0x0] + tst r0, r3 + bne _0202430A + mov r1, #0x0 +_0202430A: + lsl r0, r1, #0x18 + lsr r1, r0, #0x18 + cmp r4, #0x1 + bne _0202433A + add r4, r2, #0x0 + asr r2, r2, #0x3 + add r2, r5, r2 + mov r0, #0x7 + add r2, #0xc4 + mov r3, #0x1 + and r4, r0 + add r0, r3, #0x0 + ldrb r2, [r2, #0x0] + lsl r0, r4 + tst r0, r2 + bne _0202432C + mov r3, #0x0 +_0202432C: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + cmp r0, r1 + bne _0202433C + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_0202433A: + add r0, r1, #0x0 +_0202433C: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02024340 +FUN_02024340: ; 0x02024340 + push {r4-r5} + mov r3, #0x0 + ldr r5, _02024360 ; =0x020EE942 + mov r4, #0x1 + add r1, r3, #0x0 +_0202434A: + ldrh r2, [r5, #0x0] + cmp r0, r2 + bne _02024352 + add r4, r1, #0x0 +_02024352: + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, #0xb + blt _0202434A + add r0, r4, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_02024360: .word 0x020EE942 + + thumb_func_start FUN_02024364 +FUN_02024364: ; 0x02024364 + ldr r1, _02024374 ; =0x000001EA + mov r2, #0x1 + cmp r0, r1 + bne _0202436E + mov r2, #0x0 +_0202436E: + add r0, r2, #0x0 + bx lr + nop +_02024374: .word 0x000001EA + + thumb_func_start FUN_02024378 +FUN_02024378: ; 0x02024378 + push {r4, lr} + mov r2, #0x4f + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + bl memset + ldr r0, _020243C0 ; =0xBEEFCAFE + mov r1, #0x0 + str r0, [r4, #0x0] + ldr r0, _020243C4 ; =0x00000139 + mov r2, #0x1c + strb r1, [r4, r0] + sub r0, #0x2d + add r0, r4, r0 + mov r1, #0xff + bl memset + mov r1, #0xff + add r0, r1, #0x0 + add r0, #0x9 + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xa + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xb + strb r1, [r4, r0] + add r0, r1, #0x0 + add r0, #0xc + strb r1, [r4, r0] + add r0, r4, #0x0 + bl FUN_0202419C + pop {r4, pc} + nop +_020243C0: .word 0xBEEFCAFE +_020243C4: .word 0x00000139 + + thumb_func_start FUN_020243C8 +FUN_020243C8: ; 0x020243C8 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _020243FC ; =0xBEEFCAFE + cmp r1, r0 + beq _020243D8 + bl ErrorHandling +_020243D8: + ldr r7, _02024400 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_020243DE: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_02024594 + cmp r0, #0x1 + bne _020243EE + add r5, r5, #0x1 +_020243EE: + add r4, r4, #0x1 + cmp r4, r7 + ble _020243DE + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_020243FC: .word 0xBEEFCAFE +_02024400: .word 0x000001ED + + thumb_func_start FUN_02024404 +FUN_02024404: ; 0x02024404 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _02024438 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024414 + bl ErrorHandling +_02024414: + ldr r7, _0202443C ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_0202441A: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x1 + bne _0202442A + add r5, r5, #0x1 +_0202442A: + add r4, r4, #0x1 + cmp r4, r7 + ble _0202441A + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_02024438: .word 0xBEEFCAFE +_0202443C: .word 0x000001ED + + thumb_func_start FUN_02024440 +FUN_02024440: ; 0x02024440 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02024CA4 + cmp r0, #0x0 + beq _02024454 + add r0, r4, #0x0 + bl FUN_02024404 + pop {r4, pc} +_02024454: + add r0, r4, #0x0 + bl FUN_020244A4 + pop {r4, pc} + + thumb_func_start FUN_0202445C +FUN_0202445C: ; 0x0202445C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _0202449C ; =0xBEEFCAFE + cmp r1, r0 + beq _0202446C + bl ErrorHandling +_0202446C: + ldr r7, _020244A0 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_02024472: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_02024594 + cmp r0, #0x1 + bne _0202448E + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02069B40 + cmp r0, #0x0 + beq _0202448E + add r5, r5, #0x1 +_0202448E: + add r4, r4, #0x1 + cmp r4, r7 + ble _02024472 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_0202449C: .word 0xBEEFCAFE +_020244A0: .word 0x000001ED + + thumb_func_start FUN_020244A4 +FUN_020244A4: ; 0x020244A4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r1, [r6, #0x0] + ldr r0, _020244E4 ; =0xBEEFCAFE + cmp r1, r0 + beq _020244B4 + bl ErrorHandling +_020244B4: + ldr r7, _020244E8 ; =0x000001ED + mov r5, #0x0 + mov r4, #0x1 +_020244BA: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x1 + bne _020244D6 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02069B40 + cmp r0, #0x0 + beq _020244D6 + add r5, r5, #0x1 +_020244D6: + add r4, r4, #0x1 + cmp r4, r7 + ble _020244BA + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + pop {r3-r7, pc} + nop +_020244E4: .word 0xBEEFCAFE +_020244E8: .word 0x000001ED + + thumb_func_start FUN_020244EC +FUN_020244EC: ; 0x020244EC + push {r3, lr} + bl FUN_02024518 + ldr r1, _02024500 ; =0x000001E2 + cmp r0, r1 + blo _020244FC + mov r0, #0x1 + pop {r3, pc} +_020244FC: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_02024500: .word 0x000001E2 + + thumb_func_start FUN_02024504 +FUN_02024504: ; 0x02024504 + push {r3, lr} + bl FUN_02024550 + cmp r0, #0x96 + blo _02024512 + mov r0, #0x1 + pop {r3, pc} +_02024512: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02024518 +FUN_02024518: ; 0x02024518 + push {r3-r7, lr} + ldr r7, _0202454C ; =0x000001ED + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_02024522: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_02024594 + cmp r0, #0x1 + bne _02024542 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02024340 + cmp r0, #0x1 + bne _02024542 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02024542: + add r4, r4, #0x1 + cmp r4, r7 + ble _02024522 + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202454C: .word 0x000001ED + + thumb_func_start FUN_02024550 +FUN_02024550: ; 0x02024550 + push {r3-r7, lr} + ldr r7, _02024590 ; =0x000001ED + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_0202455A: + lsl r1, r4, #0x10 + add r0, r6, #0x0 + lsr r1, r1, #0x10 + bl FUN_020245F0 + cmp r0, #0x1 + bne _02024586 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02069B40 + cmp r0, #0x0 + beq _02024586 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02024364 + cmp r0, #0x1 + bne _02024586 + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02024586: + add r4, r4, #0x1 + cmp r4, r7 + ble _0202455A + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02024590: .word 0x000001ED + + thumb_func_start FUN_02024594 +FUN_02024594: ; 0x02024594 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020245E8 ; =0xBEEFCAFE + cmp r1, r0 + beq _020245A6 + bl ErrorHandling +_020245A6: + cmp r4, #0x0 + beq _020245B0 + ldr r0, _020245EC ; =0x000001ED + cmp r4, r0 + bls _020245B8 +_020245B0: + bl ErrorHandling + mov r0, #0x1 + b _020245BA +_020245B8: + mov r0, #0x0 +_020245BA: + cmp r0, #0x0 + beq _020245C2 + mov r0, #0x0 + pop {r3-r5, pc} +_020245C2: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + ldrb r1, [r2, #0x4] + tst r1, r3 + beq _020245E4 + add r2, #0x44 + ldrb r1, [r2, #0x0] + tst r1, r3 + bne _020245E6 +_020245E4: + mov r0, #0x0 +_020245E6: + pop {r3-r5, pc} + .balign 4 +_020245E8: .word 0xBEEFCAFE +_020245EC: .word 0x000001ED + + thumb_func_start FUN_020245F0 +FUN_020245F0: ; 0x020245F0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024640 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024602 + bl ErrorHandling +_02024602: + cmp r4, #0x0 + beq _0202460C + ldr r0, _02024644 ; =0x000001ED + cmp r4, r0 + bls _02024614 +_0202460C: + bl ErrorHandling + mov r0, #0x1 + b _02024616 +_02024614: + mov r0, #0x0 +_02024616: + cmp r0, #0x0 + beq _0202461E + mov r0, #0x0 + pop {r3-r5, pc} +_0202461E: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r3 + add r2, r0, #0x0 + lsl r2, r1 + asr r1, r3, #0x3 + add r1, r5, r1 + add r1, #0x44 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _0202463C + mov r0, #0x0 +_0202463C: + pop {r3-r5, pc} + nop +_02024640: .word 0xBEEFCAFE +_02024644: .word 0x000001ED + + thumb_func_start FUN_02024648 +FUN_02024648: ; 0x02024648 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024670 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202465A + bl ErrorHandling +_0202465A: + cmp r4, #0x0 + bne _02024666 + mov r0, #0x41 + lsl r0, r0, #0x2 + ldr r6, [r5, r0] + b _0202466A +_02024666: + bl ErrorHandling +_0202466A: + add r0, r6, #0x0 + pop {r4-r6, pc} + nop +_02024670: .word 0xBEEFCAFE + + thumb_func_start FUN_02024674 +FUN_02024674: ; 0x02024674 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020246D4 ; =0xBEEFCAFE + add r6, r2, #0x0 + cmp r1, r0 + beq _02024688 + bl ErrorHandling +_02024688: + cmp r4, #0x0 + beq _02024692 + ldr r0, _020246D8 ; =0x000001ED + cmp r4, r0 + bls _0202469A +_02024692: + bl ErrorHandling + mov r0, #0x1 + b _0202469C +_0202469A: + mov r0, #0x0 +_0202469C: + cmp r0, #0x0 + beq _020246A6 + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} +_020246A6: + sub r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + add r3, r2, #0x0 + asr r2, r2, #0x3 + add r2, r5, r2 + mov r0, #0x7 + add r2, #0x44 + mov r1, #0x1 + and r3, r0 + ldrb r2, [r2, #0x0] + lsl r1, r3 + tst r1, r2 + beq _020246CE + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020242C8 + pop {r4-r6, pc} +_020246CE: + sub r0, #0x8 + pop {r4-r6, pc} + nop +_020246D4: .word 0xBEEFCAFE +_020246D8: .word 0x000001ED + + thumb_func_start FUN_020246DC +FUN_020246DC: ; 0x020246DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024718 ; =0xBEEFCAFE + cmp r1, r0 + beq _020246EE + bl ErrorHandling +_020246EE: + mov r0, #0x43 + mov r2, #0x0 + lsl r0, r0, #0x2 +_020246F4: + add r1, r5, r2 + ldrb r1, [r1, r0] + cmp r1, #0xff + beq _02024702 + add r2, r2, #0x1 + cmp r2, #0x1c + blt _020246F4 +_02024702: + cmp r2, r4 + bgt _0202470C + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0202470C: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + nop +_02024718: .word 0xBEEFCAFE + + thumb_func_start FUN_0202471C +FUN_0202471C: ; 0x0202471C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024744 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202472C + bl ErrorHandling +_0202472C: + mov r1, #0x43 + mov r0, #0x0 + lsl r1, r1, #0x2 +_02024732: + add r2, r4, r0 + ldrb r2, [r2, r1] + cmp r2, #0xff + beq _02024740 + add r0, r0, #0x1 + cmp r0, #0x1c + blt _02024732 +_02024740: + pop {r4, pc} + nop +_02024744: .word 0xBEEFCAFE + + thumb_func_start FUN_02024748 +FUN_02024748: ; 0x02024748 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202479C ; =0xBEEFCAFE + cmp r1, r0 + beq _0202475A + bl ErrorHandling +_0202475A: + ldr r1, _020247A0 ; =0x000001A6 + add r0, r5, #0x0 + bl FUN_02023D8C + cmp r0, r4 + bgt _0202476C + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_0202476C: + cmp r4, #0x2 + blt _02024774 + bl ErrorHandling +_02024774: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + mov r1, #0x42 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + tst r1, r3 + bne _0202479A + mov r0, #0x0 +_0202479A: + pop {r3-r5, pc} + .balign 4 +_0202479C: .word 0xBEEFCAFE +_020247A0: .word 0x000001A6 + + thumb_func_start FUN_020247A4 +FUN_020247A4: ; 0x020247A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020247C0 ; =0xBEEFCAFE + cmp r1, r0 + beq _020247B4 + bl ErrorHandling +_020247B4: + ldr r1, _020247C4 ; =0x000001A6 + add r0, r4, #0x0 + bl FUN_02023D8C + pop {r4, pc} + nop +_020247C0: .word 0xBEEFCAFE +_020247C4: .word 0x000001A6 + + thumb_func_start FUN_020247C8 +FUN_020247C8: ; 0x020247C8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202481C ; =0xBEEFCAFE + cmp r1, r0 + beq _020247DA + bl ErrorHandling +_020247DA: + ldr r1, _02024820 ; =0x000001A7 + add r0, r5, #0x0 + bl FUN_02023D8C + cmp r0, r4 + bgt _020247EC + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_020247EC: + cmp r4, #0x2 + blt _020247F4 + bl ErrorHandling +_020247F4: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r2 + add r3, r0, #0x0 + lsl r3, r1 + asr r1, r2, #0x3 + add r2, r5, r1 + ldr r1, _02024824 ; =0x00000109 + ldrb r1, [r2, r1] + tst r1, r3 + bne _02024818 + mov r0, #0x0 +_02024818: + pop {r3-r5, pc} + nop +_0202481C: .word 0xBEEFCAFE +_02024820: .word 0x000001A7 +_02024824: .word 0x00000109 + + thumb_func_start FUN_02024828 +FUN_02024828: ; 0x02024828 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024844 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024838 + bl ErrorHandling +_02024838: + ldr r1, _02024848 ; =0x000001A7 + add r0, r4, #0x0 + bl FUN_02023D8C + pop {r4, pc} + nop +_02024844: .word 0xBEEFCAFE +_02024848: .word 0x000001A7 + + thumb_func_start FUN_0202484C +FUN_0202484C: ; 0x0202484C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024894 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202485E + bl ErrorHandling +_0202485E: + mov r1, #0x67 + add r0, r5, #0x0 + lsl r1, r1, #0x2 + bl FUN_02023F2C + cmp r0, r4 + bgt _02024872 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_02024872: + cmp r4, #0x3 + blt _0202487A + bl ErrorHandling +_0202487A: + lsl r0, r4, #0x10 + lsr r2, r0, #0x10 + asr r0, r2, #0x2 + add r1, r5, r0 + ldr r0, _02024898 ; =0x0000010A + ldrb r1, [r1, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r3-r5, pc} + nop +_02024894: .word 0xBEEFCAFE +_02024898: .word 0x0000010A + + thumb_func_start FUN_0202489C +FUN_0202489C: ; 0x0202489C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020248B8 ; =0xBEEFCAFE + cmp r1, r0 + beq _020248AC + bl ErrorHandling +_020248AC: + mov r1, #0x67 + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl FUN_02023F2C + pop {r4, pc} + .balign 4 +_020248B8: .word 0xBEEFCAFE + + thumb_func_start FUN_020248BC +FUN_020248BC: ; 0x020248BC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024900 ; =0xBEEFCAFE + cmp r1, r0 + beq _020248CE + bl ErrorHandling +_020248CE: + ldr r1, _02024904 ; =0x0000019D + add r0, r5, #0x0 + bl FUN_02023F2C + cmp r0, r4 + bgt _020248E0 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} +_020248E0: + cmp r4, #0x3 + blt _020248E8 + bl ErrorHandling +_020248E8: + lsl r0, r4, #0x10 + lsr r2, r0, #0x10 + asr r0, r2, #0x2 + add r1, r5, r0 + ldr r0, _02024908 ; =0x0000010B + ldrb r1, [r1, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_02024900: .word 0xBEEFCAFE +_02024904: .word 0x0000019D +_02024908: .word 0x0000010B + + thumb_func_start FUN_0202490C +FUN_0202490C: ; 0x0202490C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024928 ; =0xBEEFCAFE + cmp r1, r0 + beq _0202491C + bl ErrorHandling +_0202491C: + ldr r1, _0202492C ; =0x0000019D + add r0, r4, #0x0 + bl FUN_02023F2C + pop {r4, pc} + nop +_02024928: .word 0xBEEFCAFE +_0202492C: .word 0x0000019D + + thumb_func_start FUN_02024930 +FUN_02024930: ; 0x02024930 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202496C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024942 + bl ErrorHandling +_02024942: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + bhs _02024958 + lsl r0, r0, #0x2 + ldr r1, [r5, #0x40] + add r0, #0x18 + lsr r1, r0 + mov r0, #0xf + and r0, r1 + pop {r3-r5, pc} +_02024958: + add r5, #0x80 + sub r0, r0, #0x2 + lsl r0, r0, #0x18 + ldr r1, [r5, #0x0] + lsr r0, r0, #0x16 + add r0, #0x18 + lsr r1, r0 + mov r0, #0xf + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_0202496C: .word 0xBEEFCAFE + + thumb_func_start FUN_02024970 +FUN_02024970: ; 0x02024970 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024988 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024980 + bl ErrorHandling +_02024980: + add r0, r4, #0x0 + bl FUN_020240D0 + pop {r4, pc} + .balign 4 +_02024988: .word 0xBEEFCAFE + + thumb_func_start FUN_0202498C +FUN_0202498C: ; 0x0202498C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + mov r1, #0x0 + ldr r0, [sp, #0x0] + add r2, r1, #0x0 + bl FUN_020671BC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl FUN_020689E0 + add r6, r0, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02024AE4 ; =0xBEEFCAFE + cmp r1, r0 + beq _020249C4 + bl ErrorHandling +_020249C4: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020249D0 + ldr r1, _02024AE8 ; =0x000001ED + cmp r0, r1 + bls _020249D8 +_020249D0: + bl ErrorHandling + mov r0, #0x1 + b _020249DA +_020249D8: + mov r0, #0x0 +_020249DA: + cmp r0, #0x0 + bne _02024ADE + ldr r0, [sp, #0x4] + mov r2, #0x1 + sub r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + mov r0, #0x7 + and r0, r4 + add r1, r2, #0x0 + lsl r1, r0 + asr r0, r4, #0x3 + add r3, r5, r0 + add r3, #0x44 + ldrb r3, [r3, #0x0] + tst r3, r1 + bne _02024A70 + ldr r1, _02024AEC ; =0x00000147 + ldr r0, [sp, #0x4] + cmp r0, r1 + bne _02024A08 + sub r1, #0x43 + str r7, [r5, r1] +_02024A08: + lsl r0, r6, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls _02024A14 + bl ErrorHandling +_02024A14: + cmp r6, #0x2 + bne _02024A1A + mov r6, #0x0 +_02024A1A: + cmp r6, #0x2 + blo _02024A22 + bl ErrorHandling +_02024A22: + add r2, r5, #0x0 + mov r0, #0x7 + add r3, r4, #0x0 + and r3, r0 + mov r0, #0x1 + lsl r0, r3 + add r2, #0xc4 + asr r1, r4, #0x3 + ldrb r7, [r2, r1] + mvn r0, r0 + and r0, r7 + strb r0, [r2, r1] + add r0, r6, #0x0 + ldrb r7, [r2, r1] + lsl r0, r3 + orr r0, r7 + strb r0, [r2, r1] + cmp r6, #0x2 + blo _02024A4C + bl ErrorHandling +_02024A4C: + add r1, r5, #0x0 + mov r0, #0x7 + add r2, r4, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0x84 + asr r0, r4, #0x3 + ldrb r7, [r1, r0] + mvn r3, r3 + lsl r6, r2 + and r3, r7 + strb r3, [r1, r0] + ldrb r3, [r1, r0] + add r2, r3, #0x0 + orr r2, r6 + strb r2, [r1, r0] + b _02024AC0 +_02024A70: + add r0, r5, r0 + add r0, #0x84 + ldrb r0, [r0, #0x0] + tst r0, r1 + bne _02024A7C + mov r2, #0x0 +_02024A7C: + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, r6 + beq _02024AC0 + lsl r0, r6, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls _02024A90 + bl ErrorHandling +_02024A90: + cmp r6, #0x2 + bne _02024A96 + mov r6, #0x0 +_02024A96: + cmp r6, #0x2 + blo _02024A9E + bl ErrorHandling +_02024A9E: + add r1, r5, #0x0 + mov r0, #0x7 + add r2, r4, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0xc4 + asr r0, r4, #0x3 + ldrb r7, [r1, r0] + mvn r3, r3 + lsl r6, r2 + and r3, r7 + strb r3, [r1, r0] + ldrb r3, [r1, r0] + add r2, r3, #0x0 + orr r2, r6 + strb r2, [r1, r0] +_02024AC0: + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl FUN_020241B8 + mov r1, #0x7 + add r5, #0x44 + asr r0, r4, #0x3 + ldrb r3, [r5, r0] + mov r2, #0x1 + and r1, r4 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r5, r0] +_02024ADE: + add sp, #0x8 + pop {r3-r7, pc} + nop +_02024AE4: .word 0xBEEFCAFE +_02024AE8: .word 0x000001ED +_02024AEC: .word 0x00000147 + + thumb_func_start FUN_02024AF0 +FUN_02024AF0: ; 0x02024AF0 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r0, #0x0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, [sp, #0x0] + mov r1, #0xc + mov r2, #0x0 + bl FUN_020671BC + str r0, [sp, #0x8] + mov r1, #0x0 + ldr r0, [sp, #0x0] + add r2, r1, #0x0 + bl FUN_020671BC + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + bl FUN_020689E0 + add r7, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024C78 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024B32 + bl ErrorHandling +_02024B32: + cmp r6, #0x0 + beq _02024B3C + ldr r0, _02024C7C ; =0x000001ED + cmp r6, r0 + bls _02024B44 +_02024B3C: + bl ErrorHandling + mov r0, #0x1 + b _02024B46 +_02024B44: + mov r0, #0x0 +_02024B46: + cmp r0, #0x0 + beq _02024B4C + b _02024C72 +_02024B4C: + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + mov r0, #0x1 + mov r1, #0x7 + and r1, r5 + add r2, r0, #0x0 + asr r3, r5, #0x3 + lsl r2, r1 + add r1, r4, r3 + add r1, #0x44 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _02024BEA + ldr r1, _02024C80 ; =0x00000147 + cmp r6, r1 + bne _02024B74 + ldr r0, [sp, #0x4] + sub r1, #0x43 + str r0, [r4, r1] +_02024B74: + lsl r0, r7, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x2 + bls _02024B80 + bl ErrorHandling +_02024B80: + cmp r7, #0x2 + bne _02024B86 + mov r7, #0x0 +_02024B86: + cmp r7, #0x2 + blo _02024B8E + bl ErrorHandling +_02024B8E: + mov r0, #0x7 + and r0, r5 + str r0, [sp, #0x10] + add r0, r4, #0x0 + add r0, #0xc4 + asr r3, r5, #0x3 + ldrb r1, [r0, r3] + mov r2, #0x1 + str r1, [sp, #0xc] + ldr r1, [sp, #0x10] + lsl r2, r1 + ldr r1, [sp, #0xc] + mvn r2, r2 + and r1, r2 + strb r1, [r0, r3] + ldrb r1, [r0, r3] + add r2, r7, #0x0 + mov r12, r1 + ldr r1, [sp, #0x10] + lsl r2, r1 + mov r1, r12 + orr r1, r2 + strb r1, [r0, r3] + cmp r7, #0x2 + blo _02024BC4 + bl ErrorHandling +_02024BC4: + add r1, r4, #0x0 + mov r0, #0x7 + add r2, r5, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0x84 + asr r0, r5, #0x3 + ldrb r5, [r1, r0] + mvn r3, r3 + and r3, r5 + strb r3, [r1, r0] + add r5, r7, #0x0 + ldrb r3, [r1, r0] + lsl r5, r2 + add r2, r3, #0x0 + orr r2, r5 + strb r2, [r1, r0] + b _02024C3C +_02024BEA: + add r1, r4, r3 + add r1, #0x84 + ldrb r1, [r1, #0x0] + tst r1, r2 + bne _02024BF6 + mov r0, #0x0 +_02024BF6: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r7 + beq _02024C3C + lsl r0, r7, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x2 + bls _02024C0A + bl ErrorHandling +_02024C0A: + cmp r7, #0x2 + bne _02024C10 + mov r7, #0x0 +_02024C10: + cmp r7, #0x2 + blo _02024C18 + bl ErrorHandling +_02024C18: + add r1, r4, #0x0 + mov r0, #0x7 + add r2, r5, #0x0 + and r2, r0 + mov r3, #0x1 + lsl r3, r2 + add r1, #0xc4 + asr r0, r5, #0x3 + ldrb r5, [r1, r0] + mvn r3, r3 + and r3, r5 + strb r3, [r1, r0] + add r5, r7, #0x0 + ldrb r3, [r1, r0] + lsl r5, r2 + add r2, r3, #0x0 + orr r2, r5 + strb r2, [r1, r0] +_02024C3C: + ldr r2, [sp, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_020241B8 + ldr r2, [sp, #0x8] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_02024294 + sub r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r1, r4, #0x4 + asr r0, r6, #0x3 + mov r2, #0x7 + ldrb r5, [r1, r0] + mov r3, #0x1 + and r2, r6 + lsl r3, r2 + add r2, r5, #0x0 + orr r2, r3 + add r4, #0x44 + strb r2, [r1, r0] + ldrb r1, [r4, r0] + orr r1, r3 + strb r1, [r4, r0] +_02024C72: + add sp, #0x14 + pop {r4-r7, pc} + nop +_02024C78: .word 0xBEEFCAFE +_02024C7C: .word 0x000001ED +_02024C80: .word 0x00000147 + + thumb_func_start FUN_02024C84 +FUN_02024C84: ; 0x02024C84 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024C9C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024C94 + bl ErrorHandling +_02024C94: + ldr r0, _02024CA0 ; =0x00000139 + mov r1, #0x1 + strb r1, [r4, r0] + pop {r4, pc} + .balign 4 +_02024C9C: .word 0xBEEFCAFE +_02024CA0: .word 0x00000139 + + thumb_func_start FUN_02024CA4 +FUN_02024CA4: ; 0x02024CA4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CBC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CB4 + bl ErrorHandling +_02024CB4: + ldr r0, _02024CC0 ; =0x00000139 + ldrb r0, [r4, r0] + pop {r4, pc} + nop +_02024CBC: .word 0xBEEFCAFE +_02024CC0: .word 0x00000139 + + thumb_func_start FUN_02024CC4 +FUN_02024CC4: ; 0x02024CC4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CDC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CD4 + bl ErrorHandling +_02024CD4: + mov r0, #0x4a + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + pop {r4, pc} + .balign 4 +_02024CDC: .word 0xBEEFCAFE + + thumb_func_start FUN_02024CE0 +FUN_02024CE0: ; 0x02024CE0 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024CFC ; =0xBEEFCAFE + cmp r1, r0 + beq _02024CF0 + bl ErrorHandling +_02024CF0: + mov r0, #0x4a + mov r1, #0x1 + lsl r0, r0, #0x2 + strb r1, [r4, r0] + pop {r4, pc} + nop +_02024CFC: .word 0xBEEFCAFE + + thumb_func_start FUN_02024D00 +FUN_02024D00: ; 0x02024D00 + push {r4-r6, lr} + add r6, r2, #0x0 + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r6, #0x8 + blo _02024D10 + bl ErrorHandling +_02024D10: + ldr r1, [r4, #0x0] + ldr r0, _02024D44 ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D1C + bl ErrorHandling +_02024D1C: + add r0, r5, #0x0 + bl FUN_02087A50 + add r5, r0, #0x0 + cmp r5, #0xe + bne _02024D2C + mov r0, #0x0 + pop {r4-r6, pc} +_02024D2C: + add r0, r6, #0x0 + bl FUN_02087A1C + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r0 + ldr r0, _02024D48 ; =0x00000129 + add r1, r4, r5 + ldrb r0, [r1, r0] + and r0, r2 + pop {r4-r6, pc} + nop +_02024D44: .word 0xBEEFCAFE +_02024D48: .word 0x00000129 + + thumb_func_start FUN_02024D4C +FUN_02024D4C: ; 0x02024D4C + ldr r1, _02024D54 ; =0x00000137 + mov r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_02024D54: .word 0x00000137 + + thumb_func_start FUN_02024D58 +FUN_02024D58: ; 0x02024D58 + ldr r1, _02024D60 ; =0x00000137 + ldrb r0, [r0, r1] + bx lr + nop +_02024D60: .word 0x00000137 + + thumb_func_start FUN_02024D64 +FUN_02024D64: ; 0x02024D64 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024D7C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D74 + bl ErrorHandling +_02024D74: + mov r0, #0x4e + lsl r0, r0, #0x2 + ldrb r0, [r4, r0] + pop {r4, pc} + .balign 4 +_02024D7C: .word 0xBEEFCAFE + + thumb_func_start FUN_02024D80 +FUN_02024D80: ; 0x02024D80 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02024D9C ; =0xBEEFCAFE + cmp r1, r0 + beq _02024D90 + bl ErrorHandling +_02024D90: + mov r0, #0x4e + mov r1, #0x1 + lsl r0, r0, #0x2 + strb r1, [r4, r0] + pop {r4, pc} + nop +_02024D9C: .word 0xBEEFCAFE + + thumb_func_start FUN_02024DA0 +FUN_02024DA0: ; 0x02024DA0 + ldr r3, _02024DA8 ; =FUN_02022610 + mov r1, #0x7 + bx r3 + nop +_02024DA8: .word FUN_02022610 + + thumb_func_start FUN_02024DAC +FUN_02024DAC: ; 0x02024DAC + push {r3-r5, lr} + add r4, r2, #0x0 + ldr r2, _02024E60 ; =0x0000019D + add r5, r0, #0x0 + cmp r1, r2 + bgt _02024DD6 + sub r3, r2, #0x1 + cmp r1, r3 + blt _02024DC6 + beq _02024E24 + cmp r1, r2 + beq _02024E36 + b _02024E5A +_02024DC6: + cmp r1, #0xc9 + bgt _02024DCE + beq _02024DEE + b _02024E5A +_02024DCE: + sub r2, #0x1b + cmp r1, r2 + beq _02024E48 + b _02024E5A +_02024DD6: + add r3, r2, #0x0 + add r3, #0x9 + cmp r1, r3 + bgt _02024DE6 + add r2, #0x9 + cmp r1, r2 + beq _02024E00 + b _02024E5A +_02024DE6: + add r2, #0xa + cmp r1, r2 + beq _02024E12 + b _02024E5A +_02024DEE: + bl FUN_0202471C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020246DC + pop {r3-r5, pc} +_02024E00: + bl FUN_020247A4 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02024748 + pop {r3-r5, pc} +_02024E12: + bl FUN_02024828 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020247C8 + pop {r3-r5, pc} +_02024E24: + bl FUN_0202489C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202484C + pop {r3-r5, pc} +_02024E36: + bl FUN_0202490C + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020248BC + pop {r3-r5, pc} +_02024E48: + bl FUN_02024970 + cmp r4, r0 + bhs _02024E5A + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02024930 + pop {r3-r5, pc} +_02024E5A: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02024E60: .word 0x0000019D + + thumb_func_start FUN_02024E64 +FUN_02024E64: ; 0x02024E64 + ldr r0, _02024E68 ; =0x0000074C + bx lr + .balign 4 +_02024E68: .word 0x0000074C + + thumb_func_start FUN_02024E6C +FUN_02024E6C: ; 0x02024E6C + push {r4, lr} + add r4, r0, #0x0 + ldr r2, _02024EA4 ; =0x0000074C + mov r0, #0x0 + add r1, r4, #0x0 + bl MIi_CpuClearFast + add r0, r4, #0x0 + bl FUN_020250A4 + mov r0, #0x7 + lsl r0, r0, #0x8 + add r0, r4, r0 + bl FUN_02025484 + ldr r1, _02024EA8 ; =0x00000724 + ldr r0, _02024EAC ; =0x0000FFFF + add r1, r4, r1 + mov r2, #0x8 + bl MIi_CpuClear16 + ldr r1, _02024EB0 ; =0x00000734 + ldr r0, _02024EAC ; =0x0000FFFF + add r1, r4, r1 + mov r2, #0xb + bl MIi_CpuClear16 + pop {r4, pc} + .balign 4 +_02024EA4: .word 0x0000074C +_02024EA8: .word 0x00000724 +_02024EAC: .word 0x0000FFFF +_02024EB0: .word 0x00000734 + + thumb_func_start FUN_02024EB4 +FUN_02024EB4: ; 0x02024EB4 + ldr r3, _02024EBC ; =FUN_02022610 + mov r1, #0xa + bx r3 + nop +_02024EBC: .word FUN_02022610 + + thumb_func_start FUN_02024EC0 +FUN_02024EC0: ; 0x02024EC0 + ldr r3, _02024EC8 ; =FUN_02022634 + mov r1, #0xa + bx r3 + nop +_02024EC8: .word FUN_02022634 + + thumb_func_start FUN_02024ECC +FUN_02024ECC: ; 0x02024ECC + ldr r3, _02024ED4 ; =FUN_02022610 + mov r1, #0xa + bx r3 + nop +_02024ED4: .word FUN_02022610 + + thumb_func_start FUN_02024ED8 +FUN_02024ED8: ; 0x02024ED8 + push {r3, lr} + mov r1, #0xa + bl FUN_02022610 + mov r1, #0x7 + lsl r1, r1, #0x8 + add r0, r0, r1 + pop {r3, pc} + + thumb_func_start FUN_02024EE8 +FUN_02024EE8: ; 0x02024EE8 + ldr r1, _02024EF0 ; =0x00000724 + add r0, r0, r1 + bx lr + nop +_02024EF0: .word 0x00000724 + + thumb_func_start FUN_02024EF4 +FUN_02024EF4: ; 0x02024EF4 + add r2, r0, #0x0 + add r0, r1, #0x0 + ldr r1, _02024F04 ; =0x00000724 + ldr r3, _02024F08 ; =FUN_02021EF0 + add r1, r2, r1 + mov r2, #0x8 + bx r3 + nop +_02024F04: .word 0x00000724 +_02024F08: .word FUN_02021EF0 + + thumb_func_start FUN_02024F0C +FUN_02024F0C: ; 0x02024F0C + ldr r1, _02024F14 ; =0x00000734 + add r0, r0, r1 + bx lr + nop +_02024F14: .word 0x00000734 + + thumb_func_start FUN_02024F18 +FUN_02024F18: ; 0x02024F18 + add r2, r0, #0x0 + add r0, r1, #0x0 + ldr r1, _02024F28 ; =0x00000734 + ldr r3, _02024F2C ; =FUN_02021EF0 + add r1, r2, r1 + mov r2, #0xb + bx r3 + nop +_02024F28: .word 0x00000734 +_02024F2C: .word FUN_02021EF0 + + thumb_func_start FUN_02024F30 +FUN_02024F30: ; 0x02024F30 + push {r4, lr} + mov r1, #0x2 + bl FUN_02016998 + add r4, r0, #0x0 + bl FUN_02024F50 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02024F44 +FUN_02024F44: ; 0x02024F44 + ldr r3, _02024F4C ; =MI_CpuCopy8 + mov r2, #0x2 + bx r3 + nop +_02024F4C: .word MI_CpuCopy8 + + thumb_func_start FUN_02024F50 +FUN_02024F50: ; 0x02024F50 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x2 + bl MI_CpuFill8 + ldrh r1, [r4, #0x0] + mov r0, #0xf + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strh r0, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x30 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + mov r0, #0x80 + bic r1, r0 + strh r1, [r4, #0x0] + ldrh r1, [r4, #0x0] + ldr r0, _02024F94 ; =0xFFFFFCFF + and r0, r1 + strh r0, [r4, #0x0] + ldrh r1, [r4, #0x0] + ldr r0, _02024F98 ; =0xFFFF83FF + and r0, r1 + strh r0, [r4, #0x0] + pop {r4, pc} + nop +_02024F94: .word 0xFFFFFCFF +_02024F98: .word 0xFFFF83FF + + thumb_func_start FUN_02024F9C +FUN_02024F9C: ; 0x02024F9C + push {r3, lr} + cmp r0, #0x0 + beq _02024FAC + bl LoadPlayerDataAddress + bl FUN_02025064 + add r1, r0, #0x0 +_02024FAC: + cmp r1, #0x0 + beq _02024FCA + cmp r1, #0x1 + beq _02024FBA + cmp r1, #0x2 + beq _02024FC2 + b _02024FCA +_02024FBA: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x1 + str r1, [r0, #0x34] + pop {r3, pc} +_02024FC2: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x3 + str r1, [r0, #0x34] + pop {r3, pc} +_02024FCA: + ldr r0, _02024FD4 ; =0x021C48B8 + mov r1, #0x0 + str r1, [r0, #0x34] + pop {r3, pc} + nop +_02024FD4: .word 0x021C48B8 + + thumb_func_start FUN_02024FD8 +FUN_02024FD8: ; 0x02024FD8 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bx lr + + thumb_func_start FUN_02024FE0 +FUN_02024FE0: ; 0x02024FE0 + ldrh r3, [r0, #0x0] + mov r2, #0xf + lsl r1, r1, #0x10 + bic r3, r2 + lsr r2, r1, #0x10 + mov r1, #0xf + and r1, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_02024FF4 +FUN_02024FF4: ; 0x02024FF4 + push {r3, lr} + bl FUN_02024FD8 + cmp r0, #0x0 + bne _02025002 + mov r0, #0x8 + pop {r3, pc} +_02025002: + cmp r0, #0x1 + bne _0202500A + mov r0, #0x4 + pop {r3, pc} +_0202500A: + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02025010 +FUN_02025010: ; 0x02025010 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + bx lr + + thumb_func_start FUN_02025018 +FUN_02025018: ; 0x02025018 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1e + ldrh r3, [r0, #0x0] + mov r2, #0x30 + lsr r1, r1, #0x1a + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202502C +FUN_0202502C: ; 0x0202502C + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + bx lr + + thumb_func_start FUN_02025034 +FUN_02025034: ; 0x02025034 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + ldrh r3, [r0, #0x0] + mov r2, #0x80 + lsr r1, r1, #0x18 + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_02025048 +FUN_02025048: ; 0x02025048 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + bx lr + + thumb_func_start FUN_02025050 +FUN_02025050: ; 0x02025050 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + ldrh r3, [r0, #0x0] + mov r2, #0x40 + lsr r1, r1, #0x19 + bic r3, r2 + orr r1, r3 + strh r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_02025064 +FUN_02025064: ; 0x02025064 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x16 + lsr r0, r0, #0x1e + bx lr + + thumb_func_start FUN_0202506C +FUN_0202506C: ; 0x0202506C + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1e + ldrh r3, [r0, #0x0] + ldr r2, _02025080 ; =0xFFFFFCFF + lsr r1, r1, #0x16 + and r2, r3 + orr r1, r2 + strh r1, [r0, #0x0] + bx lr + .balign 4 +_02025080: .word 0xFFFFFCFF + + thumb_func_start FUN_02025084 +FUN_02025084: ; 0x02025084 + ldrh r0, [r0, #0x0] + lsl r0, r0, #0x11 + lsr r0, r0, #0x1b + bx lr + + thumb_func_start FUN_0202508C +FUN_0202508C: ; 0x0202508C + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x1b + ldrh r3, [r0, #0x0] + ldr r2, _020250A0 ; =0xFFFF83FF + lsr r1, r1, #0x11 + and r2, r3 + orr r1, r2 + strh r1, [r0, #0x0] + bx lr + .balign 4 +_020250A0: .word 0xFFFF83FF + + thumb_func_start FUN_020250A4 +FUN_020250A4: ; 0x020250A4 + push {r4, lr} + mov r2, #0x7 + mov r1, #0x0 + lsl r2, r2, #0x8 + add r4, r0, #0x0 + bl MI_CpuFill8 + mov r1, #0x0 + add r0, r1, #0x0 +_020250B6: + strb r0, [r4, #0x1] + strb r0, [r4, #0x0] + add r1, r1, #0x1 + add r4, #0xe + cmp r1, #0x80 + blt _020250B6 + pop {r4, pc} + + thumb_func_start FUN_020250C4 +FUN_020250C4: ; 0x020250C4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r0, r1, #0x0 + str r2, [sp, #0x0] + str r3, [sp, #0x4] + bl FUN_02025128 + mov r4, #0x0 + str r0, [sp, #0x8] + add r6, r4, #0x0 + b _02025112 +_020250DC: + add r0, r5, #0x0 + bl FUN_02025184 + ldr r0, [sp, #0x0] + lsl r1, r6, #0x1 + add r7, r0, r1 + ldrh r0, [r0, r1] + sub r0, #0x94 + strb r0, [r5, #0x0] + mov r0, #0x5 + strb r0, [r5, #0x1] + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + ldr r0, [sp, #0x8] + bl FUN_020251B0 + lsl r0, r0, #0x2 + strh r0, [r5, #0x2] + ldrh r0, [r7, #0x2] + add r6, r6, #0x2 + add r4, r4, #0x1 + strh r0, [r5, #0x8] + mov r0, #0x64 + strb r0, [r5, #0xa] + mov r0, #0x3 + strb r0, [r5, #0xb] + add r5, #0xe +_02025112: + cmp r4, #0x80 + blt _020250DC + ldr r0, [sp, #0x4] + cmp r4, r0 + blt _020250DC + ldr r0, [sp, #0x8] + bl FUN_02016A18 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02025128 +FUN_02025128: ; 0x02025128 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r0, #0x0 + bl FUN_02085258 + str r0, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0xc0 + bl FUN_02016998 + str r0, [sp, #0x4] + mov r6, #0x0 + add r5, r0, #0x0 +_02025142: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_02085264 + add r4, r0, #0x0 + mov r1, #0x3 + bl FUN_02085290 + strb r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x4 + bl FUN_02085290 + strb r0, [r5, #0x1] + add r0, r4, #0x0 + mov r1, #0x2 + bl FUN_02085290 + strb r0, [r5, #0x2] + add r0, r4, #0x0 + bl FUN_02016A18 + add r6, r6, #0x1 + add r5, r5, #0x3 + cmp r6, #0x40 + blt _02025142 + ldr r0, [sp, #0x0] + bl FUN_0208526C + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02025184 +FUN_02025184: ; 0x02025184 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strh r1, [r0, #0x2] + strh r1, [r0, #0x4] + strb r1, [r0, #0x6] + strh r1, [r0, #0x8] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + bx lr + + thumb_func_start FUN_0202519C +FUN_0202519C: ; 0x0202519C + ldrb r2, [r0, #0xb] + ldrb r0, [r0, #0x0] + sub r3, r0, #0x1 + lsl r0, r3, #0x1 + add r0, r3, r0 + add r0, r1, r0 + ldrb r0, [r0, #0x2] + mul r0, r2 + bx lr + .balign 4 + + thumb_func_start FUN_020251B0 +FUN_020251B0: ; 0x020251B0 + sub r3, r1, #0x1 + lsl r1, r3, #0x1 + add r1, r3, r1 + ldrb r1, [r0, r1] + mov r0, #0x3c + mul r0, r1 + cmp r2, #0x1 + bne _020251CE + lsl r1, r0, #0x1 + add r1, r0, r1 + asr r0, r1, #0x1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #0x2 + bx lr +_020251CE: + cmp r2, #0x2 + bne _020251DA + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r1, r1, #0x1 + add r0, r0, r1 +_020251DA: + bx lr + + thumb_func_start FUN_020251DC +FUN_020251DC: ; 0x020251DC + sub r3, r1, #0x1 + lsl r1, r3, #0x1 + add r1, r3, r1 + add r0, r0, r1 + ldrb r0, [r0, #0x1] + cmp r2, #0x2 + bne _020251F2 + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r0, r1, #0x1 + bx lr +_020251F2: + cmp r2, #0x1 + bne _020251FE + lsr r1, r0, #0x1f + add r1, r0, r1 + asr r1, r1, #0x1 + add r0, r0, r1 +_020251FE: + bx lr + + thumb_func_start FUN_02025200 +FUN_02025200: ; 0x02025200 + ldrb r0, [r0, #0xc] + cmp r0, #0x3 + bne _0202520A + mov r0, #0x6 + bx lr +_0202520A: + mov r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_02025210 +FUN_02025210: ; 0x02025210 + ldrb r0, [r0, #0xc] + cmp r0, #0x4 + bne _0202521A + mov r0, #0xf + bx lr +_0202521A: + mov r0, #0xa + bx lr + .balign 4 + + thumb_func_start FUN_02025220 +FUN_02025220: ; 0x02025220 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02025200 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02025210 + add r1, r4, #0x3 + mul r0, r1 + add r0, r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_02025238 +FUN_02025238: ; 0x02025238 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1] + bx lr + .balign 4 + + thumb_func_start FUN_02025244 +FUN_02025244: ; 0x02025244 + mov r2, #0xe + mul r2, r1 + ldrb r0, [r0, r2] + bx lr + + thumb_func_start FUN_0202524C +FUN_0202524C: ; 0x0202524C + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xa] + cmp r0, #0x0 + bne _0202525C + mov r0, #0x0 + bx lr +_0202525C: + cmp r0, #0x32 + bgt _02025264 + mov r0, #0x1 + bx lr +_02025264: + mov r0, #0x2 + bx lr + + thumb_func_start FUN_02025268 +FUN_02025268: ; 0x02025268 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xb] + bx lr + .balign 4 + + thumb_func_start FUN_02025274 +FUN_02025274: ; 0x02025274 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xe + mul r4, r0 + strb r3, [r5, r4] + mov r0, #0x1 + add r6, r5, r4 + strb r0, [r6, #0x1] + add r0, r2, #0x0 + ldrb r2, [r6, #0xc] + add r1, r3, #0x0 + bl FUN_020251B0 + add r1, r6, #0x0 + strh r0, [r1, #0x2] + mov r0, #0x0 + strh r0, [r1, #0x4] + strb r0, [r1, #0x6] + strh r0, [r1, #0x8] + mov r0, #0x64 + strb r0, [r1, #0xa] + mov r0, #0x5 + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xd] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020252AC +FUN_020252AC: ; 0x020252AC + mov r2, #0xe + mul r2, r1 + mov r3, #0x64 + add r0, r0, r2 + strb r3, [r0, #0xa] + bx lr + + thumb_func_start FUN_020252B8 +FUN_020252B8: ; 0x020252B8 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xd] + bx lr + .balign 4 + + thumb_func_start FUN_020252C4 +FUN_020252C4: ; 0x020252C4 + mov r3, #0xe + mul r3, r1 + add r0, r0, r3 + strb r2, [r0, #0xd] + bx lr + .balign 4 + + thumb_func_start FUN_020252D0 +FUN_020252D0: ; 0x020252D0 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start FUN_020252DC +FUN_020252DC: ; 0x020252DC + mov r3, #0xe + mul r3, r1 + add r0, r0, r3 + strb r2, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start FUN_020252E8 +FUN_020252E8: ; 0x020252E8 + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrh r0, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start FUN_020252F4 +FUN_020252F4: ; 0x020252F4 + push {r4, lr} + mov r2, #0xe + mul r2, r1 + add r0, r0, r2 + ldrh r4, [r0, #0x8] + bl FUN_02025184 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02025308 +FUN_02025308: ; 0x02025308 + push {r4, lr} + add r4, r0, #0x0 + ldrb r2, [r4, #0x1] + cmp r2, #0x5 + bhi _02025370 + add r3, r2, r2 + add r3, pc + ldrh r3, [r3, #0x6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0202531E: ; jump table (using 16-bit offset) + .short _0202532A - _0202531E - 2; case 0 + .short _02025330 - _0202531E - 2; case 1 + .short _02025330 - _0202531E - 2; case 2 + .short _02025330 - _0202531E - 2; case 3 + .short _02025336 - _0202531E - 2; case 4 + .short _0202534E - _0202531E - 2; case 5 +_0202532A: + bl ErrorHandling + pop {r4, pc} +_02025330: + add r0, r2, #0x1 + strb r0, [r4, #0x1] + pop {r4, pc} +_02025336: + bl FUN_0202519C + strh r0, [r4, #0x8] + ldrh r0, [r4, #0x8] + cmp r0, #0x2 + bhs _02025346 + mov r0, #0x2 + strh r0, [r4, #0x8] +_02025346: + ldrb r0, [r4, #0x1] + add r0, r0, #0x1 + strb r0, [r4, #0x1] + pop {r4, pc} +_0202534E: + mov r1, #0x0 + strh r1, [r4, #0x8] + mov r1, #0x2 + strb r1, [r4, #0x1] + mov r1, #0x5 + strb r1, [r4, #0xb] + ldrb r1, [r4, #0x6] + add r1, r1, #0x1 + strb r1, [r4, #0x6] + bl FUN_02025210 + ldrb r1, [r4, #0x6] + cmp r1, r0 + bne _02025370 + add r0, r4, #0x0 + bl FUN_02025184 +_02025370: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02025374 +FUN_02025374: ; 0x02025374 + push {r3-r7, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x1] + add r7, r2, #0x0 + cmp r0, #0x5 + beq _020253DE + add r0, r1, #0x0 + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + bl FUN_020251DC + add r6, r0, #0x0 + ldrh r0, [r5, #0x4] + mov r1, #0x3c + str r0, [sp, #0x0] + add r0, r7, r0 + bl _s32_div_f + add r4, r0, #0x0 + ldr r0, [sp, #0x0] + mov r1, #0x3c + add r0, r7, r0 + bl _s32_div_f + strh r1, [r5, #0x4] + cmp r4, #0x0 + beq _020253DE + ldrb r1, [r5, #0xa] + add r0, r6, #0x0 + mul r0, r4 + cmp r1, r0 + blt _020253BA + sub r0, r1, r0 + strb r0, [r5, #0xa] + pop {r3-r7, pc} +_020253BA: + cmp r1, #0x0 + beq _020253CE + sub r0, r6, #0x1 + add r0, r1, r0 + add r1, r6, #0x0 + bl _s32_div_f + sub r4, r4, r0 + mov r0, #0x0 + strb r0, [r5, #0xa] +_020253CE: + ldrb r0, [r5, #0xb] + cmp r0, r4 + ble _020253DA + sub r0, r0, r4 + strb r0, [r5, #0xb] + pop {r3-r7, pc} +_020253DA: + mov r0, #0x0 + strb r0, [r5, #0xb] +_020253DE: + pop {r3-r7, pc} + + thumb_func_start FUN_020253E0 +FUN_020253E0: ; 0x020253E0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r0, [sp, #0x0] +_020253EC: + ldrb r1, [r5, #0x0] + cmp r1, #0x0 + beq _02025474 + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + beq _02025474 + ldrb r0, [r5, #0xd] + cmp r0, #0x0 + beq _02025474 + ldrb r2, [r5, #0xc] + add r0, r6, #0x0 + bl FUN_020251B0 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02025220 + mul r0, r4 + cmp r7, r0 + blt _0202541C + add r0, r5, #0x0 + bl FUN_02025184 + b _02025474 +_0202541C: + add r4, r7, #0x0 + b _0202546A +_02025420: + ldrh r2, [r5, #0x2] + cmp r2, r4 + ble _02025438 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl FUN_02025374 + ldrh r0, [r5, #0x2] + sub r0, r0, r4 + strh r0, [r5, #0x2] + b _02025474 +_02025438: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02025374 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02025308 + ldrh r0, [r5, #0x2] + ldrb r1, [r5, #0x0] + ldrb r2, [r5, #0xc] + sub r4, r4, r0 + add r0, r6, #0x0 + bl FUN_020251B0 + strh r0, [r5, #0x2] + ldrb r0, [r5, #0x1] + cmp r0, #0x5 + bne _0202546A + add r0, r5, #0x0 + bl FUN_02025200 + ldrh r1, [r5, #0x2] + mul r0, r1 + strh r0, [r5, #0x2] +_0202546A: + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + beq _02025474 + cmp r4, #0x0 + bne _02025420 +_02025474: + ldr r0, [sp, #0x0] + add r5, #0xe + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r0, #0x80 + blt _020253EC + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02025484 +FUN_02025484: ; 0x02025484 + ldr r3, _0202548C ; =MI_CpuFill8 + mov r1, #0x0 + mov r2, #0x24 + bx r3 + .balign 4 +_0202548C: .word MI_CpuFill8 + + thumb_func_start FUN_02025490 +FUN_02025490: ; 0x02025490 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02025484 + str r4, [r5, #0x0] + add r0, r5, #0x4 + pop {r3-r5, pc} + + thumb_func_start FUN_020254A0 +FUN_020254A0: ; 0x020254A0 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, r1 + beq _020254AE + bl ErrorHandling +_020254AE: + add r0, r4, #0x4 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020254B4 +FUN_020254B4: ; 0x020254B4 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_020254B8 +FUN_020254B8: ; 0x020254B8 + mov r0, #0x22 + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start FUN_020254C0 +FUN_020254C0: ; 0x020254C0 + ldr r3, _020254C8 ; =FUN_02022610 + mov r1, #0x9 + bx r3 + nop +_020254C8: .word FUN_02022610 + + thumb_func_start FUN_020254CC +FUN_020254CC: ; 0x020254CC + push {r3-r7, lr} + mov r4, #0x0 + ldr r6, _020254EC ; =0x0000FFFF + add r5, r0, #0x0 + add r7, r4, #0x0 +_020254D6: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x88 + bl memset + strh r6, [r5, #0x0] + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + blt _020254D6 + pop {r3-r7, pc} + .balign 4 +_020254EC: .word 0x0000FFFF + + thumb_func_start FUN_020254F0 +FUN_020254F0: ; 0x020254F0 + mov r2, #0x88 + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start FUN_020254F8 +FUN_020254F8: ; 0x020254F8 + add r0, r0, r1 + add r0, #0x68 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02025500 +FUN_02025500: ; 0x02025500 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl StringNotEqual + cmp r0, #0x0 + bne _0202551A + ldr r1, [r5, #0x10] + ldr r0, [r4, #0x10] + cmp r1, r0 + bne _0202551A + mov r0, #0x1 + pop {r3-r5, pc} +_0202551A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02025520 +FUN_02025520: ; 0x02025520 + push {r4-r7, lr} + sub sp, #0x2c + str r1, [sp, #0x4] + mov r1, #0x22 + str r0, [sp, #0x0] + add r0, r3, #0x0 + lsl r1, r1, #0x6 + str r2, [sp, #0x8] + bl FUN_02016998 + str r0, [sp, #0x10] + bl FUN_020254CC + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + ble _02025578 + ldr r7, [sp, #0x4] + add r6, sp, #0x18 +_02025548: + mov r0, #0x0 + mvn r0, r0 + ldr r5, [sp, #0x0] + str r0, [r6, #0x0] + mov r4, #0x0 +_02025552: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_02025500 + cmp r0, #0x0 + beq _02025560 + str r4, [r6, #0x0] +_02025560: + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + blt _02025552 + ldr r0, [sp, #0x14] + add r6, r6, #0x4 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + add r7, #0x88 + str r1, [sp, #0x14] + cmp r1, r0 + blt _02025548 +_02025578: + ldr r0, [sp, #0x8] + mov r4, #0x0 + str r4, [sp, #0xc] + cmp r0, #0x0 + ble _020255BE + ldr r5, [sp, #0x10] + add r6, sp, #0x18 +_02025586: + ldr r3, [sp, #0x4] + add r7, r5, #0x0 + mov r2, #0x11 +_0202558C: + ldmia r3!, {r0-r1} + stmia r7!, {r0-r1} + sub r2, r2, #0x1 + bne _0202558C + ldr r1, [r6, #0x0] + cmp r1, #0x0 + blt _020255A6 + add r2, r1, #0x0 + mov r0, #0x88 + mul r2, r0 + ldr r1, _02025610 ; =0x0000FFFF + ldr r0, [sp, #0x0] + strh r1, [r0, r2] +_020255A6: + ldr r0, [sp, #0x4] + add r5, #0x88 + add r0, #0x88 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + add r4, r4, #0x1 + add r1, r0, #0x1 + ldr r0, [sp, #0x8] + add r6, r6, #0x4 + str r1, [sp, #0xc] + cmp r1, r0 + blt _02025586 +_020255BE: + mov r0, #0x0 + mov r12, r0 + mov r0, #0x88 + add r1, r4, #0x0 + mul r1, r0 + ldr r0, [sp, #0x10] + ldr r3, [sp, #0x0] + add r5, r0, r1 +_020255CE: + ldrh r1, [r3, #0x0] + ldr r0, _02025610 ; =0x0000FFFF + cmp r1, r0 + beq _020255EC + add r6, r3, #0x0 + add r7, r5, #0x0 + mov r2, #0x11 +_020255DC: + ldmia r6!, {r0-r1} + stmia r7!, {r0-r1} + sub r2, r2, #0x1 + bne _020255DC + add r4, r4, #0x1 + add r5, #0x88 + cmp r4, #0x10 + bge _020255F8 +_020255EC: + mov r0, r12 + add r0, r0, #0x1 + add r3, #0x88 + mov r12, r0 + cmp r0, #0x10 + blt _020255CE +_020255F8: + mov r2, #0x22 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x10] + lsl r2, r2, #0x6 + bl memcpy + ldr r0, [sp, #0x10] + bl FUN_02016A18 + add sp, #0x2c + pop {r4-r7, pc} + nop +_02025610: .word 0x0000FFFF + + thumb_func_start FUN_02025614 +FUN_02025614: ; 0x02025614 + push {r3-r6} + mov r3, #0x0 + add r4, r0, #0x0 +_0202561A: + ldr r2, [r4, #0x10] + cmp r1, r2 + bne _02025626 + mov r0, #0x1 + pop {r3-r6} + bx lr +_02025626: + add r3, r3, #0x1 + add r4, #0x88 + cmp r3, #0x10 + blt _0202561A + mov r6, #0x0 + add r3, r6, #0x0 +_02025632: + add r4, r3, #0x0 + add r5, r0, #0x0 +_02025636: + ldr r2, [r5, #0x18] + cmp r1, r2 + bne _02025642 + add r0, r6, #0x2 + pop {r3-r6} + bx lr +_02025642: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x10 + blt _02025636 + add r6, r6, #0x1 + add r0, #0x88 + cmp r6, #0x10 + blt _02025632 + mov r0, #0x0 + pop {r3-r6} + bx lr + + thumb_func_start FUN_02025658 +FUN_02025658: ; 0x02025658 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + strb r0, [r4, #0x4] + ldr r0, _020256A0 ; =0x020ECAC4 + mov r1, #0x8 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x5] + ldr r0, _020256A4 ; =0x020ECAC0 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x6] + mov r0, #0xff + strb r0, [r4, #0x7] + add r0, r4, #0x0 + add r0, #0x8 + bl StringFillEOS + ldr r0, _020256A8 ; =0x0000FFFF + mov r1, #0x0 + add r2, r4, #0x0 +_02025682: + add r1, r1, #0x1 + strh r0, [r2, #0x18] + add r2, r2, #0x2 + cmp r1, #0x3 + blt _02025682 + mov r5, #0x0 + add r4, #0x20 +_02025690: + add r0, r4, #0x0 + bl FUN_02013724 + add r5, r5, #0x1 + add r4, #0x8 + cmp r5, #0x3 + blt _02025690 + pop {r3-r5, pc} + .balign 4 +_020256A0: .word 0x020ECAC4 +_020256A4: .word 0x020ECAC0 +_020256A8: .word 0x0000FFFF + + thumb_func_start FUN_020256AC +FUN_020256AC: ; 0x020256AC + ldrb r0, [r0, #0x7] + cmp r0, #0xb + bhi _020256B6 + mov r0, #0x1 + bx lr +_020256B6: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_020256BC +FUN_020256BC: ; 0x020256BC + push {r4, lr} + mov r1, #0x38 + bl FUN_020169D8 + add r4, r0, #0x0 + bl FUN_02025658 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020256D0 +FUN_020256D0: ; 0x020256D0 + ldr r3, _020256D8 ; =MI_CpuCopy8 + mov r2, #0x38 + bx r3 + nop +_020256D8: .word MI_CpuCopy8 + + thumb_func_start FUN_020256DC +FUN_020256DC: ; 0x020256DC + push {r4-r7, lr} + sub sp, #0x14 + add r7, r3, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02025658 + add r0, r7, #0x0 + strb r6, [r5, #0x7] + bl FUN_0206BB1C + str r0, [sp, #0x0] + add r0, r7, #0x0 + bl FUN_020238F4 + add r6, r0, #0x0 + bl FUN_0202398C + add r1, r0, #0x0 + add r0, r5, #0x0 + add r0, #0x8 + bl StringCopy + add r0, r6, #0x0 + bl FUN_020239CC + strb r0, [r5, #0x4] + add r0, r6, #0x0 + bl FUN_020239BC + str r0, [r5, #0x0] + ldr r0, [sp, #0x0] + mov r6, #0x0 + bl FUN_0206B9AC + cmp r4, r0 + bge _020257AE + add r5, #0x18 +_0202572A: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl FUN_0206B9B0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r0, #0x0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl FUN_020671BC + str r0, [sp, #0x8] + add r0, r7, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + str r0, [sp, #0xc] + add r0, r7, #0x0 + bl FUN_0206B6C8 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x8] + bl FUN_0206B7BC + lsl r3, r6, #0x1 + ldrh r1, [r5, r3] + add r7, r0, #0x0 + ldr r0, _020257B4 ; =0xFFFFF000 + add r2, r1, #0x0 + and r2, r0 + ldr r0, [sp, #0x10] + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, _020257B8 ; =0x00000FFF + and r0, r1 + orr r0, r2 + strh r0, [r5, r3] + add r0, r6, #0x1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldrh r1, [r5, r3] + ldr r0, _020257BC ; =0xFFFF0FFF + and r0, r1 + lsl r1, r7, #0x1c + lsr r1, r1, #0x10 + orr r0, r1 + strh r0, [r5, r3] + cmp r6, #0x3 + bhs _020257AE + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, [sp, #0x0] + bl FUN_0206B9AC + cmp r4, r0 + blt _0202572A +_020257AE: + add sp, #0x14 + pop {r4-r7, pc} + nop +_020257B4: .word 0xFFFFF000 +_020257B8: .word 0x00000FFF +_020257BC: .word 0xFFFF0FFF + + thumb_func_start FUN_020257C0 +FUN_020257C0: ; 0x020257C0 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_020257C4 +FUN_020257C4: ; 0x020257C4 + add r0, #0x8 + bx lr + + thumb_func_start FUN_020257C8 +FUN_020257C8: ; 0x020257C8 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_020257CC +FUN_020257CC: ; 0x020257CC + ldrb r0, [r0, #0x7] + bx lr + + thumb_func_start FUN_020257D0 +FUN_020257D0: ; 0x020257D0 + cmp r1, #0xc + bhs _020257D6 + strb r1, [r0, #0x7] +_020257D6: + bx lr + + thumb_func_start FUN_020257D8 +FUN_020257D8: ; 0x020257D8 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start FUN_020257DC +FUN_020257DC: ; 0x020257DC + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start FUN_020257E0 +FUN_020257E0: ; 0x020257E0 + cmp r1, #0x3 + bhs _02025810 + cmp r2, #0x0 + beq _020257F0 + cmp r2, #0x1 + beq _020257FC + cmp r2, #0x2 + b _02025808 +_020257F0: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + lsl r0, r0, #0x14 + lsr r0, r0, #0x14 + bx lr +_020257FC: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1c + bx lr +_02025808: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0x18] + bx lr +_02025810: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_02025814 +FUN_02025814: ; 0x02025814 + cmp r1, #0x3 + bhs _02025820 + add r0, #0x20 + lsl r1, r1, #0x3 + add r0, r0, r1 + bx lr +_02025820: + add r0, #0x20 + bx lr + + thumb_func_start FUN_02025824 +FUN_02025824: ; 0x02025824 + push {r3, lr} + cmp r2, #0x3 + bhs _02025834 + add r0, #0x20 + lsl r2, r2, #0x3 + add r0, r0, r2 + bl FUN_02013960 +_02025834: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02025838 +FUN_02025838: ; 0x02025838 + ldr r3, _02025840 ; =FUN_02022610 + mov r1, #0xf + bx r3 + nop +_02025840: .word FUN_02022610 + + thumb_func_start FUN_02025844 +FUN_02025844: ; 0x02025844 + mov r0, #0x46 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_0202584C +FUN_0202584C: ; 0x0202584C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02025852: + add r0, r5, #0x0 + bl FUN_02025658 + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, #0x14 + blt _02025852 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02025864 +FUN_02025864: ; 0x02025864 + push {r3, lr} + cmp r1, #0x0 + bne _02025872 + mov r1, #0x14 + bl FUN_020258F0 + pop {r3, pc} +_02025872: + mov r0, #0x0 + mvn r0, r0 + pop {r3, pc} + + thumb_func_start FUN_02025878 +FUN_02025878: ; 0x02025878 + push {r3, lr} + bl FUN_02025940 + cmp r0, #0x0 + beq _02025886 + bl FUN_02025658 +_02025886: + pop {r3, pc} + + thumb_func_start FUN_02025888 +FUN_02025888: ; 0x02025888 + push {r4, lr} + add r4, r3, #0x0 + bl FUN_02025940 + add r1, r0, #0x0 + beq _0202589A + add r0, r4, #0x0 + bl FUN_020256D0 +_0202589A: + pop {r4, pc} + + thumb_func_start FUN_0202589C +FUN_0202589C: ; 0x0202589C + push {r3, lr} + cmp r1, #0x0 + bne _020258AA + mov r1, #0x14 + bl FUN_02025918 + pop {r3, pc} +_020258AA: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020258B0 +FUN_020258B0: ; 0x020258B0 + push {r3-r5, lr} + add r5, r3, #0x0 + bl FUN_02025940 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020256BC + add r5, r0, #0x0 + cmp r4, #0x0 + beq _020258CE + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020256D0 +_020258CE: + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020258D4 +FUN_020258D4: ; 0x020258D4 + push {r4, lr} + add r4, r3, #0x0 + bl FUN_02025940 + cmp r0, #0x0 + bne _020258E8 + add r0, r4, #0x0 + bl FUN_02025658 + pop {r4, pc} +_020258E8: + add r1, r4, #0x0 + bl FUN_020256D0 + pop {r4, pc} + + thumb_func_start FUN_020258F0 +FUN_020258F0: ; 0x020258F0 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + mov r4, #0x0 + cmp r6, #0x0 + ble _02025912 +_020258FC: + add r0, r5, #0x0 + bl FUN_020256AC + cmp r0, #0x0 + bne _0202590A + add r0, r4, #0x0 + pop {r4-r6, pc} +_0202590A: + add r4, r4, #0x1 + add r5, #0x38 + cmp r4, r6 + blt _020258FC +_02025912: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r6, pc} + + thumb_func_start FUN_02025918 +FUN_02025918: ; 0x02025918 + push {r3-r7, lr} + mov r4, #0x0 + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + cmp r7, #0x0 + ble _0202593A +_02025926: + add r0, r5, #0x0 + bl FUN_020256AC + cmp r0, #0x0 + beq _02025932 + add r4, r4, #0x1 +_02025932: + add r6, r6, #0x1 + add r5, #0x38 + cmp r6, r7 + blt _02025926 +_0202593A: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02025940 +FUN_02025940: ; 0x02025940 + mov r3, #0x0 + cmp r1, #0x0 + bne _02025950 + cmp r2, #0x14 + bge _02025950 + mov r1, #0x38 + mul r1, r2 + add r3, r0, r1 +_02025950: + add r0, r3, #0x0 + bx lr + + thumb_func_start FUN_02025954 +FUN_02025954: ; 0x02025954 + ldr r0, _02025958 ; =0x000009B4 + bx lr + .balign 4 +_02025958: .word 0x000009B4 + + thumb_func_start FUN_0202595C +FUN_0202595C: ; 0x0202595C + mov r0, #0x94 + bx lr + + thumb_func_start FUN_02025960 +FUN_02025960: ; 0x02025960 + mov r0, #0x3c + bx lr + + thumb_func_start FUN_02025964 +FUN_02025964: ; 0x02025964 + push {r4, lr} + mov r1, #0x3c + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x3c + add r4, r0, #0x0 + bl MI_CpuFill8 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202597C +FUN_0202597C: ; 0x0202597C + push {r4-r7, lr} + sub sp, #0x1c + add r4, r0, #0x0 + add r0, sp, #0xc + add r1, sp, #0x0 + bl FUN_0201265C + ldr r0, _020259D8 ; =0x021C48B8 + ldr r6, [sp, #0xc] + ldr r1, [sp, #0x8] + ldr r0, [r0, #0x2c] + lsl r6, r6, #0x5 + add r5, r1, r0 + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + add r0, r0, r6 + lsl r0, r0, #0x5 + add r0, r1, r0 + mov r7, #0x0 + ldr r2, [sp, #0x0] + lsl r0, r0, #0x5 + add r0, r2, r0 + ldr r3, [sp, #0x4] + lsl r0, r0, #0x5 + add r0, r3, r0 + lsl r0, r0, #0x5 + add r5, r5, r0 + ldr r2, _020259DC ; =0x000009B4 + add r0, r4, #0x0 + add r1, r7, #0x0 + bl MI_CpuFill8 + add r0, r4, #0x0 + add r0, #0x94 + mov r1, #0x9b + str r5, [r0, #0x0] + lsl r1, r1, #0x4 + ldrb r2, [r4, r1] + mov r0, #0xf + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r4, r1] + add sp, #0x1c + pop {r4-r7, pc} + nop +_020259D8: .word 0x021C48B8 +_020259DC: .word 0x000009B4 + + thumb_func_start FUN_020259E0 +FUN_020259E0: ; 0x020259E0 + mov r1, #0x9 + mov r3, #0x0 + lsl r1, r1, #0x8 +_020259E6: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _020259F2 + add r0, r3, #0x0 + bx lr +_020259F2: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _020259E6 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 + + thumb_func_start FUN_02025A00 +FUN_02025A00: ; 0x02025A00 + mov r1, #0x95 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025A06: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A12 + add r0, r3, #0x0 + bx lr +_02025A12: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A06 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 + + thumb_func_start FUN_02025A20 +FUN_02025A20: ; 0x02025A20 + ldr r1, _02025A3C ; =0x00000928 + mov r3, #0x0 +_02025A24: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A30 + add r0, r3, #0x0 + bx lr +_02025A30: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A24 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 +_02025A3C: .word 0x00000928 + + thumb_func_start FUN_02025A40 +FUN_02025A40: ; 0x02025A40 + ldr r1, _02025A5C ; =0x000008D8 + mov r3, #0x0 +_02025A44: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025A50 + add r0, r3, #0x0 + bx lr +_02025A50: + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025A44 + mov r0, #0x0 + mvn r0, r0 + bx lr + .balign 4 +_02025A5C: .word 0x000008D8 + + thumb_func_start FUN_02025A60 +FUN_02025A60: ; 0x02025A60 + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + bl FUN_02026CC4 + ldr r1, _02025B50 ; =0x020EE958 + add r6, r0, #0x0 + ldrb r2, [r1, #0x0] + add r0, sp, #0x8 + strb r2, [r0, #0x6] + ldrb r2, [r1, #0x1] + strb r2, [r0, #0x7] + ldrb r2, [r1, #0x2] + strb r2, [r0, #0x8] + ldrb r2, [r1, #0x3] + strb r2, [r0, #0x9] + ldrb r2, [r1, #0x4] + strb r2, [r0, #0xa] + ldrb r2, [r1, #0x5] + strb r2, [r0, #0xb] + ldrb r2, [r1, #0x6] + strb r2, [r0, #0x0] + ldrb r2, [r1, #0x7] + strb r2, [r0, #0x1] + ldrb r2, [r1, #0x8] + strb r2, [r0, #0x2] + ldrb r2, [r1, #0x9] + strb r2, [r0, #0x3] + ldrb r2, [r1, #0xa] + strb r2, [r0, #0x4] + ldrb r1, [r1, #0xb] + strb r1, [r0, #0x5] + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ble _02025B4C + str r0, [sp, #0x4] + cmp r0, #0x63 + ble _02025AB0 + mov r0, #0x63 + str r0, [sp, #0x4] +_02025AB0: + add r0, r6, #0x0 + add r0, #0x94 + ldr r3, [r0, #0x0] + mov r0, #0x0 + mov r12, r0 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _02025B28 + add r7, sp, #0xc + add r7, #0x2 +_02025AC4: + mov r2, #0x0 +_02025AC6: + ldr r0, _02025B54 ; =0x0000055C + add r4, r6, r2 + ldrb r5, [r4, r0] + cmp r5, #0x0 + beq _02025B16 + ldr r0, _02025B58 ; =0x5D588B65 + ldrb r1, [r7, r5] + mul r0, r3 + ldr r3, _02025B5C ; =0x00269EC3 + add r3, r0, r3 + cmp r1, #0x0 + bne _02025AE2 + lsr r0, r3, #0x10 + b _02025AE8 +_02025AE2: + lsr r0, r3, #0x10 + mul r1, r0 + lsr r0, r1, #0x10 +_02025AE8: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + add r0, sp, #0x8 + ldrb r0, [r0, r5] + add r0, r0, r1 + mov r1, #0x17 + lsl r1, r1, #0x6 + ldrb r1, [r4, r1] + add r1, r0, r1 + cmp r1, #0x63 + bge _02025B0E + mov r1, #0x17 + lsl r1, r1, #0x6 + ldrb r1, [r4, r1] + add r1, r1, r0 + mov r0, #0x17 + lsl r0, r0, #0x6 + strb r1, [r4, r0] + b _02025B16 +_02025B0E: + mov r0, #0x17 + mov r1, #0x63 + lsl r0, r0, #0x6 + strb r1, [r4, r0] +_02025B16: + add r2, r2, #0x1 + cmp r2, #0x64 + blt _02025AC6 + mov r0, r12 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + mov r12, r1 + cmp r1, r0 + blt _02025AC4 +_02025B28: + add r0, r6, #0x0 + add r0, #0x94 + ldr r1, [r0, #0x0] + ldr r0, [sp, #0x0] + add r0, r1, r0 + bl rand_ALT + add r1, r6, #0x0 + add r1, #0x94 + str r0, [r1, #0x0] + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r2, [r6, r1] + mov r0, #0xf + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r6, r1] +_02025B4C: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02025B50: .word 0x020EE958 +_02025B54: .word 0x0000055C +_02025B58: .word 0x5D588B65 +_02025B5C: .word 0x00269EC3 + + thumb_func_start FUN_02025B60 +FUN_02025B60: ; 0x02025B60 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r2, #0x0 + bl FUN_02026CC4 + cmp r4, #0x0 + blt _02025B90 + cmp r5, #0x0 + bne _02025B90 + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, r4 + bge _02025B84 + mov r1, #0x0 + add r0, #0x98 + str r1, [r0, #0x0] + pop {r3-r5, pc} +_02025B84: + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + add r0, #0x98 + sub r1, r1, r4 + str r1, [r0, #0x0] +_02025B90: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02025B94 +FUN_02025B94: ; 0x02025B94 + push {r3, lr} + bl FUN_02026CC4 + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BB6 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x2 + bne _02025BB6 + add r1, r0, #0x0 + mov r2, #0x0 + add r1, #0x9c + strb r2, [r1, #0x0] +_02025BB6: + add r1, r0, #0x0 + add r1, #0x98 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BD4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025BD4 + mov r2, #0x5a + add r1, r0, #0x0 + lsl r2, r2, #0x4 + add r1, #0x98 + str r2, [r1, #0x0] +_02025BD4: + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025BE4 + mov r1, #0x2 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025BE4: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02025BE8 +FUN_02025BE8: ; 0x02025BE8 + push {r3, lr} + bl FUN_02026CC4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + bne _02025BFE + mov r1, #0x1 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025BFE: + pop {r3, pc} + + thumb_func_start FUN_02025C00 +FUN_02025C00: ; 0x02025C00 + push {r3, lr} + bl FUN_02026CC4 + add r1, r0, #0x0 + add r1, #0x9c + ldrb r1, [r1, #0x0] + cmp r1, #0x1 + bne _02025C16 + mov r1, #0x0 + add r0, #0x9c + strb r1, [r0, #0x0] +_02025C16: + pop {r3, pc} + + thumb_func_start FUN_02025C18 +FUN_02025C18: ; 0x02025C18 + push {r3, lr} + bl FUN_02026CC4 + add r0, #0x9c + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + beq _02025C2A + mov r0, #0x1 + pop {r3, pc} +_02025C2A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02025C30 +FUN_02025C30: ; 0x02025C30 + mov r1, #0x1 + add r0, #0x9d + strb r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_02025C38 +FUN_02025C38: ; 0x02025C38 + add r0, #0x9d + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02025C40 +FUN_02025C40: ; 0x02025C40 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _02025CD0 ; =0x0000010E + add r6, r1, #0x0 + ldrb r0, [r7, r0] + mov r4, #0x0 + add r5, r7, #0x0 + str r0, [sp, #0x0] +_02025C50: + add r0, r6, #0x0 + bl FUN_020239BC + add r1, r5, #0x0 + add r1, #0xa0 + ldr r1, [r1, #0x0] + cmp r1, r0 + beq _02025CCC + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x5 + blt _02025C50 + ldr r0, [sp, #0x0] + cmp r0, #0x5 + blt _02025C72 + bl ErrorHandling +_02025C72: + add r0, r6, #0x0 + bl FUN_0202398C + ldr r1, [sp, #0x0] + add r2, r7, #0x0 + add r2, #0xb4 + lsl r1, r1, #0x4 + add r1, r2, r1 + mov r2, #0x10 + bl MI_CpuCopy8 + add r0, r6, #0x0 + bl FUN_020239BC + ldr r1, [sp, #0x0] + lsl r1, r1, #0x2 + add r1, r7, r1 + add r1, #0xa0 + str r0, [r1, #0x0] + add r0, r6, #0x0 + bl FUN_02023A70 + ldr r1, [sp, #0x0] + add r2, r7, r1 + mov r1, #0x41 + lsl r1, r1, #0x2 + strb r0, [r2, r1] + add r0, r6, #0x0 + bl FUN_02023A68 + ldr r1, [sp, #0x0] + add r2, r7, r1 + ldr r1, _02025CD4 ; =0x00000109 + strb r0, [r2, r1] + add r0, r1, #0x5 + ldrb r0, [r7, r0] + add r2, r0, #0x1 + add r0, r1, #0x5 + strb r2, [r7, r0] + ldrb r0, [r7, r0] + cmp r0, #0x5 + blo _02025CCC + mov r2, #0x0 + add r0, r1, #0x5 + strb r2, [r7, r0] +_02025CCC: + pop {r3-r7, pc} + nop +_02025CD0: .word 0x0000010E +_02025CD4: .word 0x00000109 + + thumb_func_start FUN_02025CD8 +FUN_02025CD8: ; 0x02025CD8 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r0, _02025D38 ; =0x0000010E + ldrb r0, [r5, r0] + sub r0, r0, r2 + sub r4, r0, #0x1 + bpl _02025CE8 + add r4, r4, #0x5 +_02025CE8: + add r7, r5, #0x0 + lsl r0, r4, #0x4 + add r7, #0xb4 + str r0, [sp, #0x0] + ldrh r0, [r7, r0] + cmp r0, #0x0 + beq _02025D32 + add r0, r1, #0x0 + bl FUN_02023928 + ldr r1, [sp, #0x0] + add r6, r0, #0x0 + add r1, r7, r1 + bl FUN_0202395C + ldr r1, _02025D3C ; =0x00000109 + add r2, r5, r4 + ldrb r1, [r2, r1] + add r0, r6, #0x0 + bl FUN_02023A6C + mov r1, #0x41 + add r2, r5, r4 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + add r0, r6, #0x0 + bl FUN_02023A74 + lsl r1, r4, #0x2 + add r1, r5, r1 + add r1, #0xa0 + ldr r1, [r1, #0x0] + add r0, r6, #0x0 + bl FUN_020239B8 + add r0, r6, #0x0 + pop {r3-r7, pc} +_02025D32: + mov r0, #0x0 + pop {r3-r7, pc} + nop +_02025D38: .word 0x0000010E +_02025D3C: .word 0x00000109 + + thumb_func_start FUN_02025D40 +FUN_02025D40: ; 0x02025D40 + add r0, #0x94 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02025D48 +FUN_02025D48: ; 0x02025D48 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0xb + bge _02025D54 + bl ErrorHandling +_02025D54: + cmp r4, #0x3c + blt _02025D5C + bl ErrorHandling +_02025D5C: + sub r4, #0xb + ldr r0, _02025D68 ; =0x02105C74 + lsl r1, r4, #0x1 + ldrh r0, [r0, r1] + pop {r4, pc} + nop +_02025D68: .word 0x02105C74 + + thumb_func_start FUN_02025D6C +FUN_02025D6C: ; 0x02025D6C + push {r4-r5} + mov r2, #0x81 + mov r5, #0x0 + lsl r2, r2, #0x4 +_02025D74: + add r4, r0, r5 + ldrb r3, [r4, r2] + cmp r3, #0x0 + bne _02025D88 + mov r0, #0x81 + lsl r0, r0, #0x4 + strb r1, [r4, r0] + mov r0, #0x1 + pop {r4-r5} + bx lr +_02025D88: + add r5, r5, #0x1 + cmp r5, #0xc8 + blt _02025D74 + mov r0, #0x0 + pop {r4-r5} + bx lr + + thumb_func_start FUN_02025D94 +FUN_02025D94: ; 0x02025D94 + mov r1, #0x81 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025D9A: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + bne _02025DA6 + mov r0, #0x1 + bx lr +_02025DA6: + add r3, r3, #0x1 + cmp r3, #0xc8 + blt _02025D9A + mov r0, #0x0 + bx lr + + thumb_func_start FUN_02025DB0 +FUN_02025DB0: ; 0x02025DB0 + mov r1, #0x81 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02025DB6: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02025DC4 + add r3, r3, #0x1 + cmp r3, #0xc8 + blt _02025DB6 +_02025DC4: + add r0, r3, #0x0 + bx lr + + thumb_func_start FUN_02025DC8 +FUN_02025DC8: ; 0x02025DC8 + add r1, r0, r1 + mov r0, #0x81 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02025DD4 +FUN_02025DD4: ; 0x02025DD4 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02025F0C + cmp r0, #0x0 + beq _02025DE6 + bl ErrorHandling +_02025DE6: + mov r0, #0x81 + add r1, r5, r4 + lsl r0, r0, #0x4 + add r6, r4, #0x0 + ldrb r7, [r1, r0] + cmp r4, #0xc7 + bge _02025E06 + mov r1, #0x81 + add r0, r0, #0x1 + lsl r1, r1, #0x4 +_02025DFA: + add r3, r5, r6 + ldrb r2, [r3, r0] + add r6, r6, #0x1 + cmp r6, #0xc7 + strb r2, [r3, r1] + blt _02025DFA +_02025E06: + ldr r0, _02025E1C ; =0x000008D7 + mov r2, #0x0 + strb r2, [r5, r0] + add r0, r5, #0x0 + add r1, r4, #0x0 + sub r2, r2, #0x1 + bl FUN_02025F58 + add r0, r7, #0x0 + pop {r3-r7, pc} + nop +_02025E1C: .word 0x000008D7 + + thumb_func_start FUN_02025E20 +FUN_02025E20: ; 0x02025E20 + push {r4-r7, lr} + sub sp, #0xd4 + mov r4, #0x0 + add r5, r0, #0x0 + sub r0, r4, #0x1 + str r0, [sp, #0x4] + mov r0, #0x81 + lsl r0, r0, #0x4 + str r1, [sp, #0x8] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0xc + mov r2, #0xc8 + bl MI_CpuCopy8 + ldr r2, [sp, #0x8] + add r1, sp, #0xc + add r0, r4, #0x0 + add r7, r1, r2 +_02025E46: + ldr r2, [sp, #0x8] + cmp r0, r2 + beq _02025E58 + ldrb r6, [r1, #0x0] + mov r2, #0x81 + add r3, r5, r4 + lsl r2, r2, #0x4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02025E58: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _02025E6A + ldrb r6, [r7, #0x0] + mov r2, #0x81 + add r3, r5, r4 + lsl r2, r2, #0x4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02025E6A: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0xc8 + blt _02025E46 + ldr r0, [sp, #0x8] + mov r3, #0x0 + add r2, r0, #0x1 + mov r0, #0x9a + lsl r0, r0, #0x4 +_02025E7C: + add r1, r5, r3 + ldrb r1, [r1, r0] + cmp r2, r1 + bne _02025E88 + str r3, [sp, #0x4] + b _02025E8E +_02025E88: + add r3, r3, #0x1 + cmp r3, #0xf + blt _02025E7C +_02025E8E: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + mov r2, #0x1 + bl FUN_02025F58 + mov r2, #0x0 + ldr r1, [sp, #0x8] + add r0, r5, #0x0 + mvn r2, r2 + bl FUN_02025F58 + mov r1, #0x0 + ldr r0, [sp, #0x4] + mvn r1, r1 + cmp r0, r1 + beq _02025ED6 + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x8] + cmp r0, r1 + bge _02025EC8 + add r0, r1, #0x0 + add r2, r0, #0x1 + ldr r0, [sp, #0x4] + add sp, #0xd4 + add r1, r5, r0 + mov r0, #0x9a + lsl r0, r0, #0x4 + strb r2, [r1, r0] + pop {r4-r7, pc} +_02025EC8: + add r0, r1, #0x0 + add r2, r0, #0x2 + ldr r0, [sp, #0x4] + add r1, r5, r0 + mov r0, #0x9a + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02025ED6: + add sp, #0xd4 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02025EDC +FUN_02025EDC: ; 0x02025EDC + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0x1 + bge _02025EEC + bl ErrorHandling +_02025EEC: + cmp r6, #0xf + ble _02025EF4 + bl ErrorHandling +_02025EF4: + sub r0, r6, #0x1 + add r1, r5, r0 + mov r0, #0x9a + add r2, r4, #0x1 + lsl r0, r0, #0x4 + strb r2, [r1, r0] + mov r0, #0x81 + add r1, r5, r4 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02025F0C +FUN_02025F0C: ; 0x02025F0C + push {r3-r4} + add r3, r1, #0x1 + mov r1, #0x9a + mov r4, #0x0 + lsl r1, r1, #0x4 +_02025F16: + add r2, r0, r4 + ldrb r2, [r2, r1] + cmp r3, r2 + bne _02025F24 + mov r0, #0x1 + pop {r3-r4} + bx lr +_02025F24: + add r4, r4, #0x1 + cmp r4, #0xf + blt _02025F16 + mov r0, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_02025F30 +FUN_02025F30: ; 0x02025F30 + sub r1, r1, #0x1 + cmp r1, #0xf + bge _02025F40 + add r1, r0, r1 + mov r0, #0x9a + mov r2, #0x0 + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02025F40: + bx lr + .balign 4 + + thumb_func_start FUN_02025F44 +FUN_02025F44: ; 0x02025F44 + mov r1, #0x9a + lsl r1, r1, #0x4 + add r0, r0, r1 + ldr r3, _02025F54 ; =MI_CpuFill8 + mov r1, #0x0 + mov r2, #0xf + bx r3 + nop +_02025F54: .word MI_CpuFill8 + + thumb_func_start FUN_02025F58 +FUN_02025F58: ; 0x02025F58 + push {r4-r7} + mov r6, #0x9a + lsl r6, r6, #0x4 + mov r4, #0x0 + add r1, r1, #0x1 + add r7, r6, #0x0 +_02025F64: + add r3, r0, r4 + ldrb r5, [r3, r7] + cmp r5, r1 + ble _02025F76 + mov r5, #0x9a + lsl r5, r5, #0x4 + ldrb r5, [r3, r5] + add r5, r5, r2 + strb r5, [r3, r6] +_02025F76: + add r4, r4, #0x1 + cmp r4, #0xf + blt _02025F64 + pop {r4-r7} + bx lr + + thumb_func_start FUN_02025F80 +FUN_02025F80: ; 0x02025F80 + mov r1, #0x9 + mov r3, #0x0 + lsl r1, r1, #0x8 +_02025F86: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02025F94 + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02025F86 +_02025F94: + add r0, r3, #0x0 + bx lr + + thumb_func_start FUN_02025F98 +FUN_02025F98: ; 0x02025F98 + add r1, r0, r1 + mov r0, #0x9 + lsl r0, r0, #0x8 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02025FA4 +FUN_02025FA4: ; 0x02025FA4 + push {r3-r6} + mov r2, #0x9 + add r3, r0, r1 + lsl r2, r2, #0x8 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _02025FC2 + ldr r3, _02025FD0 ; =0x00000901 + sub r4, r3, #0x1 +_02025FB6: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _02025FB6 +_02025FC2: + ldr r1, _02025FD4 ; =0x00000927 + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + nop +_02025FD0: .word 0x00000901 +_02025FD4: .word 0x00000927 + + thumb_func_start FUN_02025FD8 +FUN_02025FD8: ; 0x02025FD8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020259E0 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02025FF6 + add r1, r5, r0 + mov r0, #0x9 + lsl r0, r0, #0x8 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_02025FF6: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02025FFC +FUN_02025FFC: ; 0x02025FFC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + mov r0, #0x9 + lsl r0, r0, #0x8 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + bl MI_CpuCopy8 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_0202601E: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _02026030 + ldrb r6, [r1, #0x0] + mov r2, #0x9 + add r3, r5, r4 + lsl r2, r2, #0x8 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02026030: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _02026042 + ldrb r6, [r7, #0x0] + mov r2, #0x9 + add r3, r5, r4 + lsl r2, r2, #0x8 + strb r6, [r3, r2] + add r4, r4, #0x1 +_02026042: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _0202601E + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02026050 +FUN_02026050: ; 0x02026050 + mov r1, #0x95 + mov r3, #0x0 + lsl r1, r1, #0x4 +_02026056: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _02026064 + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026056 +_02026064: + add r0, r3, #0x0 + bx lr + + thumb_func_start FUN_02026068 +FUN_02026068: ; 0x02026068 + add r1, r0, r1 + mov r0, #0x95 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02026074 +FUN_02026074: ; 0x02026074 + add r1, r0, r1 + ldr r0, _0202607C ; =0x00000978 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202607C: .word 0x00000978 + + thumb_func_start FUN_02026080 +FUN_02026080: ; 0x02026080 + push {r4-r7} + add r2, r0, #0x0 + mov r0, #0x95 + add r3, r2, r1 + lsl r0, r0, #0x4 + ldrb r0, [r3, r0] + cmp r1, #0x27 + mov r12, r0 + bge _020260AE + ldr r7, _020260BC ; =0x00000951 + add r4, r7, #0x0 + add r5, r7, #0x0 + sub r3, r7, #0x1 + add r4, #0x28 + add r5, #0x27 +_0202609E: + add r0, r2, r1 + ldrb r6, [r0, r7] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r6, [r0, r3] + ldrb r6, [r0, r4] + strb r6, [r0, r5] + blt _0202609E +_020260AE: + ldr r0, _020260C0 ; =0x00000977 + mov r1, #0x0 + strb r1, [r2, r0] + mov r0, r12 + pop {r4-r7} + bx lr + nop +_020260BC: .word 0x00000951 +_020260C0: .word 0x00000977 + + thumb_func_start FUN_020260C4 +FUN_020260C4: ; 0x020260C4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02025A00 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020260E8 + add r1, r5, r0 + mov r0, #0x95 + lsl r0, r0, #0x4 + strb r4, [r1, r0] + add r0, #0x28 + strb r6, [r1, r0] + mov r0, #0x1 + pop {r4-r6, pc} +_020260E8: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_020260EC +FUN_020260EC: ; 0x020260EC + push {r4-r7, lr} + sub sp, #0x5c + add r7, r0, #0x0 + mov r0, #0x95 + lsl r0, r0, #0x4 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r0, r7, r0 + add r1, sp, #0x34 + mov r2, #0x28 + mov r4, #0x0 + bl MI_CpuCopy8 + ldr r0, _02026168 ; =0x00000978 + add r1, sp, #0xc + add r0, r7, r0 + mov r2, #0x28 + bl MI_CpuCopy8 + ldr r3, [sp, #0x0] + add r1, sp, #0x34 + add r3, r1, r3 + mov r12, r3 + ldr r3, [sp, #0x0] + add r2, sp, #0xc + add r3, r2, r3 + add r0, r4, #0x0 + str r3, [sp, #0x8] +_02026124: + ldr r3, [sp, #0x0] + cmp r0, r3 + beq _0202613C + ldrb r5, [r1, #0x0] + mov r3, #0x95 + add r6, r7, r4 + lsl r3, r3, #0x4 + strb r5, [r6, r3] + ldrb r5, [r2, #0x0] + add r3, #0x28 + add r4, r4, #0x1 + strb r5, [r6, r3] +_0202613C: + ldr r3, [sp, #0x4] + cmp r0, r3 + bne _02026158 + mov r3, r12 + ldrb r5, [r3, #0x0] + mov r3, #0x95 + add r6, r7, r4 + lsl r3, r3, #0x4 + strb r5, [r6, r3] + ldr r3, [sp, #0x8] + add r4, r4, #0x1 + ldrb r5, [r3, #0x0] + ldr r3, _02026168 ; =0x00000978 + strb r5, [r6, r3] +_02026158: + add r0, r0, #0x1 + add r1, r1, #0x1 + add r2, r2, #0x1 + cmp r0, #0x28 + blt _02026124 + add sp, #0x5c + pop {r4-r7, pc} + nop +_02026168: .word 0x00000978 + + thumb_func_start FUN_0202616C +FUN_0202616C: ; 0x0202616C + ldr r1, _02026184 ; =0x00000928 + mov r3, #0x0 +_02026170: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _0202617E + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026170 +_0202617E: + add r0, r3, #0x0 + bx lr + nop +_02026184: .word 0x00000928 + + thumb_func_start FUN_02026188 +FUN_02026188: ; 0x02026188 + add r1, r0, r1 + ldr r0, _02026190 ; =0x00000928 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026190: .word 0x00000928 + + thumb_func_start FUN_02026194 +FUN_02026194: ; 0x02026194 + push {r3-r6} + ldr r2, _020261BC ; =0x00000928 + add r3, r0, r1 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _020261B0 + ldr r3, _020261C0 ; =0x00000929 + sub r4, r3, #0x1 +_020261A4: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _020261A4 +_020261B0: + ldr r1, _020261C4 ; =0x0000094F + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_020261BC: .word 0x00000928 +_020261C0: .word 0x00000929 +_020261C4: .word 0x0000094F + + thumb_func_start FUN_020261C8 +FUN_020261C8: ; 0x020261C8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02025A20 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020261E4 + add r1, r5, r0 + ldr r0, _020261E8 ; =0x00000928 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_020261E4: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020261E8: .word 0x00000928 + + thumb_func_start FUN_020261EC +FUN_020261EC: ; 0x020261EC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, _02026238 ; =0x00000928 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + bl MI_CpuCopy8 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_0202620C: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _0202621C + ldrb r6, [r1, #0x0] + ldr r2, _02026238 ; =0x00000928 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_0202621C: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _0202622C + ldrb r6, [r7, #0x0] + ldr r2, _02026238 ; =0x00000928 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_0202622C: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _0202620C + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02026238: .word 0x00000928 + + thumb_func_start FUN_0202623C +FUN_0202623C: ; 0x0202623C + ldr r1, _02026254 ; =0x000008D8 + mov r3, #0x0 +_02026240: + add r2, r0, r3 + ldrb r2, [r2, r1] + cmp r2, #0x0 + beq _0202624E + add r3, r3, #0x1 + cmp r3, #0x28 + blt _02026240 +_0202624E: + add r0, r3, #0x0 + bx lr + nop +_02026254: .word 0x000008D8 + + thumb_func_start FUN_02026258 +FUN_02026258: ; 0x02026258 + add r1, r0, r1 + ldr r0, _02026260 ; =0x000008D8 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026260: .word 0x000008D8 + + thumb_func_start FUN_02026264 +FUN_02026264: ; 0x02026264 + push {r3-r6} + ldr r2, _0202628C ; =0x000008D8 + add r3, r0, r1 + ldrb r2, [r3, r2] + cmp r1, #0x27 + bge _02026280 + ldr r3, _02026290 ; =0x000008D9 + sub r4, r3, #0x1 +_02026274: + add r6, r0, r1 + ldrb r5, [r6, r3] + add r1, r1, #0x1 + cmp r1, #0x27 + strb r5, [r6, r4] + blt _02026274 +_02026280: + ldr r1, _02026294 ; =0x000008FF + mov r3, #0x0 + strb r3, [r0, r1] + add r0, r2, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_0202628C: .word 0x000008D8 +_02026290: .word 0x000008D9 +_02026294: .word 0x000008FF + + thumb_func_start FUN_02026298 +FUN_02026298: ; 0x02026298 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02025A40 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020262B4 + add r1, r5, r0 + ldr r0, _020262B8 ; =0x000008D8 + strb r4, [r1, r0] + mov r0, #0x1 + pop {r3-r5, pc} +_020262B4: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020262B8: .word 0x000008D8 + + thumb_func_start FUN_020262BC +FUN_020262BC: ; 0x020262BC + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, _02026308 ; =0x000008D8 + str r1, [sp, #0x4] + str r2, [sp, #0x0] + add r0, r5, r0 + add r1, sp, #0x8 + mov r2, #0x28 + mov r4, #0x0 + bl MI_CpuCopy8 + ldr r2, [sp, #0x4] + add r1, sp, #0x8 + add r0, r4, #0x0 + add r7, r1, r2 +_020262DC: + ldr r2, [sp, #0x4] + cmp r0, r2 + beq _020262EC + ldrb r6, [r1, #0x0] + ldr r2, _02026308 ; =0x000008D8 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_020262EC: + ldr r2, [sp, #0x0] + cmp r0, r2 + bne _020262FC + ldrb r6, [r7, #0x0] + ldr r2, _02026308 ; =0x000008D8 + add r3, r5, r4 + strb r6, [r3, r2] + add r4, r4, #0x1 +_020262FC: + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r0, #0x28 + blt _020262DC + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02026308: .word 0x000008D8 + + thumb_func_start FUN_0202630C +FUN_0202630C: ; 0x0202630C + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + cmp r4, #0x40 + blt _0202631E + bl ErrorHandling +_0202631E: + ldr r0, _02026350 ; =0x0000010F + add r1, r5, r4 + strb r7, [r1, r0] + lsl r1, r4, #0x1 + add r1, r4, r1 + add r2, r0, #0x0 + add r1, r5, r1 + add r2, #0x40 + strb r6, [r1, r2] + mov r2, #0xf + lsl r2, r2, #0x8 + add r3, r6, #0x0 + and r3, r2 + asr r4, r3, #0x8 + ldr r3, [sp, #0x18] + and r2, r3 + asr r2, r2, #0x4 + add r4, r4, r2 + add r2, r0, #0x0 + add r2, #0x41 + strb r4, [r1, r2] + add r0, #0x42 + strb r3, [r1, r0] + pop {r3-r7, pc} + nop +_02026350: .word 0x0000010F + + thumb_func_start FUN_02026354 +FUN_02026354: ; 0x02026354 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _02026362 + bl ErrorHandling +_02026362: + ldr r0, _0202636C ; =0x0000010F + add r1, r5, r4 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + nop +_0202636C: .word 0x0000010F + + thumb_func_start FUN_02026370 +FUN_02026370: ; 0x02026370 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _0202637E + bl ErrorHandling +_0202637E: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r1, r5, r0 + ldr r0, _02026398 ; =0x0000014F + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_02026398: .word 0x0000014F + + thumb_func_start FUN_0202639C +FUN_0202639C: ; 0x0202639C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _020263AA + bl ErrorHandling +_020263AA: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r1, r5, r0 + ldr r0, _020263C4 ; =0x00000151 + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + pop {r3-r5, pc} + .balign 4 +_020263C4: .word 0x00000151 + + thumb_func_start FUN_020263C8 +FUN_020263C8: ; 0x020263C8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x40 + blt _020263D6 + bl ErrorHandling +_020263D6: + ldr r0, _020263F0 ; =0x0000010F + mov r1, #0x0 + add r2, r5, r4 + strb r1, [r2, r0] + add r0, #0x40 + add r2, r5, r0 + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r2, r0 + mov r2, #0x3 + bl MI_CpuFill8 + pop {r3-r5, pc} + .balign 4 +_020263F0: .word 0x0000010F + + thumb_func_start FUN_020263F4 +FUN_020263F4: ; 0x020263F4 + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + cmp r4, #0x10 + blt _02026406 + bl ErrorHandling +_02026406: + lsl r2, r4, #0x1 + ldr r1, _02026440 ; =0x0000050C + add r0, r5, r4 + add r2, r4, r2 + add r4, r5, r2 + add r2, r1, #0x0 + mov r5, #0xf + strb r7, [r0, r1] + add r2, #0x10 + strb r6, [r4, r2] + lsl r5, r5, #0x8 + add r2, r6, #0x0 + and r2, r5 + asr r3, r2, #0x8 + ldr r2, [sp, #0x18] + and r5, r2 + asr r5, r5, #0x4 + add r5, r3, r5 + add r3, r1, #0x0 + add r3, #0x11 + strb r5, [r4, r3] + add r3, r1, #0x0 + add r3, #0x12 + strb r2, [r4, r3] + ldr r2, [sp, #0x1c] + add r1, #0x40 + strb r2, [r0, r1] + pop {r3-r7, pc} + nop +_02026440: .word 0x0000050C + + thumb_func_start FUN_02026444 +FUN_02026444: ; 0x02026444 + add r1, r0, r1 + ldr r0, _0202644C ; =0x0000050C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202644C: .word 0x0000050C + + thumb_func_start FUN_02026450 +FUN_02026450: ; 0x02026450 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202646C ; =0x0000051C + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202646C: .word 0x0000051C + + thumb_func_start FUN_02026470 +FUN_02026470: ; 0x02026470 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202648C ; =0x0000051E + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202648C: .word 0x0000051E + + thumb_func_start FUN_02026490 +FUN_02026490: ; 0x02026490 + add r1, r0, r1 + ldr r0, _02026498 ; =0x0000054C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026498: .word 0x0000054C + + thumb_func_start FUN_0202649C +FUN_0202649C: ; 0x0202649C + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r3, #0x0 + cmp r4, #0x64 + blt _020264AE + bl ErrorHandling +_020264AE: + ldr r1, _020264E8 ; =0x0000055C + add r0, r5, r4 + strb r6, [r0, r1] + lsl r1, r4, #0x1 + add r1, r4, r1 + add r4, r5, r1 + mov r5, #0xf + lsl r5, r5, #0x8 + add r2, r7, #0x0 + and r2, r5 + asr r3, r2, #0x8 + ldr r2, [sp, #0x18] + ldr r1, _020264EC ; =0x00000688 + and r5, r2 + asr r5, r5, #0x4 + add r5, r3, r5 + strb r7, [r4, r1] + add r3, r1, #0x1 + strb r5, [r4, r3] + add r3, r1, #0x2 + strb r2, [r4, r3] + add r2, r1, #0x0 + ldr r3, [sp, #0x1c] + sub r2, #0x64 + strb r3, [r0, r2] + ldr r2, [sp, #0x20] + sub r1, #0xc8 + strb r2, [r0, r1] + pop {r3-r7, pc} + .balign 4 +_020264E8: .word 0x0000055C +_020264EC: .word 0x00000688 + + thumb_func_start FUN_020264F0 +FUN_020264F0: ; 0x020264F0 + add r1, r0, r1 + ldr r0, _020264F8 ; =0x0000055C + ldrb r0, [r1, r0] + bx lr + .balign 4 +_020264F8: .word 0x0000055C + + thumb_func_start FUN_020264FC +FUN_020264FC: ; 0x020264FC + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _02026518 ; =0x00000688 + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_02026518: .word 0x00000688 + + thumb_func_start FUN_0202651C +FUN_0202651C: ; 0x0202651C + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _02026538 ; =0x0000068A + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_02026538: .word 0x0000068A + + thumb_func_start FUN_0202653C +FUN_0202653C: ; 0x0202653C + add r1, r0, r1 + ldr r0, _02026544 ; =0x00000624 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_02026544: .word 0x00000624 + + thumb_func_start FUN_02026548 +FUN_02026548: ; 0x02026548 + add r1, r0, r1 + mov r0, #0x17 + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02026554 +FUN_02026554: ; 0x02026554 + push {r4-r7} + ldr r3, _020265B0 ; =0x00000211 + add r7, r0, #0x0 + mov r12, r1 + mov r0, #0x0 + add r1, r7, #0x0 + sub r4, r3, #0x1 + sub r5, r3, #0x2 +_02026564: + ldrb r6, [r1, r5] + cmp r6, #0x0 + bne _020265A0 + ldrb r6, [r1, r4] + cmp r6, #0x0 + bne _020265A0 + ldrb r6, [r1, r3] + cmp r6, #0x0 + bne _020265A0 + lsl r1, r0, #0x1 + add r1, r0, r1 + mov r5, #0xf + ldr r4, _020265B4 ; =0x0000020F + add r1, r7, r1 + mov r3, r12 + strb r3, [r1, r4] + lsl r5, r5, #0x8 + mov r3, r12 + and r3, r5 + asr r6, r3, #0x8 + add r3, r2, #0x0 + and r3, r5 + asr r3, r3, #0x4 + add r5, r6, r3 + add r3, r4, #0x1 + strb r5, [r1, r3] + add r3, r4, #0x2 + strb r2, [r1, r3] + pop {r4-r7} + bx lr +_020265A0: + add r0, r0, #0x1 + add r1, r1, #0x3 + cmp r0, #0xff + blt _02026564 + mov r0, #0x0 + pop {r4-r7} + bx lr + nop +_020265B0: .word 0x00000211 +_020265B4: .word 0x0000020F + + thumb_func_start FUN_020265B8 +FUN_020265B8: ; 0x020265B8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xff + blt _020265C6 + bl ErrorHandling +_020265C6: + ldr r0, _020265DC ; =0x0000020F + mov r2, #0x3 + add r1, r5, r0 + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r1, r0 + mov r1, #0x0 + bl MI_CpuFill8 + pop {r3-r5, pc} + nop +_020265DC: .word 0x0000020F + + thumb_func_start FUN_020265E0 +FUN_020265E0: ; 0x020265E0 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _020265FC ; =0x0000020F + ldrb r2, [r1, r0] + add r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x8 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_020265FC: .word 0x0000020F + + thumb_func_start FUN_02026600 +FUN_02026600: ; 0x02026600 + lsl r2, r1, #0x1 + add r1, r1, r2 + add r1, r0, r1 + ldr r0, _0202661C ; =0x00000211 + ldrb r2, [r1, r0] + sub r0, r0, #0x1 + ldrb r0, [r1, r0] + lsl r1, r0, #0x4 + mov r0, #0xf + lsl r0, r0, #0x8 + and r0, r1 + add r0, r2, r0 + bx lr + nop +_0202661C: .word 0x00000211 + + thumb_func_start FUN_02026620 +FUN_02026620: ; 0x02026620 + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + bne _02026630 + mov r0, #0x1 + bx lr +_02026630: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_02026634 +FUN_02026634: ; 0x02026634 + mov r2, #0x9b + lsl r2, r2, #0x4 + ldrb r3, [r0, r2] + mov r1, #0xf0 + bic r3, r1 + mov r1, #0x10 + orr r1, r3 + strb r1, [r0, r2] + bx lr + .balign 4 + + thumb_func_start FUN_02026648 +FUN_02026648: ; 0x02026648 + mov r1, #0x9b + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bx lr + + thumb_func_start FUN_02026654 +FUN_02026654: ; 0x02026654 + mov r2, #0x9b + lsl r2, r2, #0x4 + ldrb r3, [r0, r2] + mov r1, #0xf + bic r3, r1 + strb r3, [r0, r2] + bx lr + .balign 4 + + thumb_func_start FUN_02026664 +FUN_02026664: ; 0x02026664 + push {r3-r4} + cmp r1, #0x2c + blt _0202667E + cmp r1, #0x3b + bgt _0202667E + ldr r2, _02026684 ; =0x0000080C + mov r3, #0x1 + sub r1, #0x2c + ldr r4, [r0, r2] + lsl r3, r1 + add r1, r4, #0x0 + orr r1, r3 + str r1, [r0, r2] +_0202667E: + pop {r3-r4} + bx lr + nop +_02026684: .word 0x0000080C + + thumb_func_start FUN_02026688 +FUN_02026688: ; 0x02026688 + cmp r1, #0x2c + blt _02026690 + cmp r1, #0x3b + ble _02026694 +_02026690: + mov r0, #0x1 + bx lr +_02026694: + ldr r2, _020266AC ; =0x0000080C + sub r1, #0x2c + ldr r3, [r0, r2] + mov r0, #0x1 + add r2, r0, #0x0 + lsl r2, r1 + add r1, r3, #0x0 + tst r1, r2 + beq _020266A8 + mov r0, #0x0 +_020266A8: + bx lr + nop +_020266AC: .word 0x0000080C + + thumb_func_start FUN_020266B0 +FUN_020266B0: ; 0x020266B0 + ldr r1, _020266C4 ; =0x000009AF + ldrb r2, [r0, r1] + cmp r2, #0x63 + blo _020266BE + mov r2, #0x0 + strb r2, [r0, r1] + bx lr +_020266BE: + add r2, r2, #0x1 + strb r2, [r0, r1] + bx lr + .balign 4 +_020266C4: .word 0x000009AF + + thumb_func_start FUN_020266C8 +FUN_020266C8: ; 0x020266C8 + ldr r1, _020266D0 ; =0x000009AF + ldrb r0, [r0, r1] + bx lr + nop +_020266D0: .word 0x000009AF + + thumb_func_start FUN_020266D4 +FUN_020266D4: ; 0x020266D4 + ldr r3, _020266DC ; =MI_CpuFill8 + mov r1, #0x0 + mov r2, #0x94 + bx r3 + .balign 4 +_020266DC: .word MI_CpuFill8 + + thumb_func_start FUN_020266E0 +FUN_020266E0: ; 0x020266E0 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0x2d + bl MI_CpuFill8 + add r0, r4, #0x0 + add r0, #0x2d + mov r1, #0x0 + mov r2, #0x20 + bl MI_CpuFill8 + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x8c + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x8e + strh r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x90 + strb r1, [r0, #0x0] + add r4, #0x91 + strb r1, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02026714 +FUN_02026714: ; 0x02026714 + mov r1, #0x0 + add r0, #0x91 + strb r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202671C +FUN_0202671C: ; 0x0202671C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r4, #0x20 + blt _0202672E + bl ErrorHandling +_0202672E: + cmp r6, #0x20 + blt _02026736 + bl ErrorHandling +_02026736: + ldr r0, [sp, #0x18] + cmp r0, #0x20 + blt _02026740 + bl ErrorHandling +_02026740: + cmp r5, #0x0 + bne _02026748 + bl ErrorHandling +_02026748: + cmp r4, #0x0 + beq _02026774 + cmp r4, #0x10 + bge _02026762 + sub r1, r4, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + strb r6, [r5, r0] + ldr r1, [sp, #0x18] + add r0, r5, r0 + strb r1, [r0, #0x1] + strb r7, [r0, #0x2] + pop {r3-r7, pc} +_02026762: + sub r4, #0x10 + lsl r2, r4, #0x1 + add r0, r5, r2 + add r0, #0x2d + strb r6, [r0, #0x0] + add r0, r5, r2 + ldr r1, [sp, #0x18] + add r0, #0x2e + strb r1, [r0, #0x0] +_02026774: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02026778 +FUN_02026778: ; 0x02026778 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + bl FUN_020267C4 + add r2, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r3, r7, #0x0 + str r4, [sp, #0x0] + bl FUN_0202671C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02026798 +FUN_02026798: ; 0x02026798 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blt _020267A8 + mov r0, #0x5 + bx lr +_020267A8: + cmp r0, #0xa + blt _020267B0 + mov r0, #0x4 + bx lr +_020267B0: + cmp r0, #0x3 + blt _020267B8 + mov r0, #0x3 + bx lr +_020267B8: + cmp r0, #0x1 + blt _020267C0 + mov r0, #0x2 + bx lr +_020267C0: + mov r0, #0x1 + bx lr + + thumb_func_start FUN_020267C4 +FUN_020267C4: ; 0x020267C4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _020267D2 + bl ErrorHandling +_020267D2: + cmp r5, #0x0 + bne _020267DE + add r0, r4, #0x0 + bl FUN_02026798 + pop {r3-r5, pc} +_020267DE: + cmp r5, #0x10 + bge _020267EE + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + add r0, r4, r0 + ldrb r0, [r0, #0x2] + pop {r3-r5, pc} +_020267EE: + sub r5, #0x10 + lsl r1, r5, #0x1 + add r0, r4, r1 + add r0, #0x2d + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202680A + add r0, r4, r1 + add r0, #0x2e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202680A + mov r0, #0x6 + pop {r3-r5, pc} +_0202680A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02026810 +FUN_02026810: ; 0x02026810 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _0202681E + bl ErrorHandling +_0202681E: + cmp r5, #0x0 + bne _02026826 + mov r0, #0xf + pop {r3-r5, pc} +_02026826: + cmp r5, #0x10 + bge _02026834 + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + ldrb r0, [r4, r0] + pop {r3-r5, pc} +_02026834: + sub r5, #0x10 + lsl r0, r5, #0x1 + add r0, r4, r0 + add r0, #0x2d + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02026840 +FUN_02026840: ; 0x02026840 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x20 + blt _0202684E + bl ErrorHandling +_0202684E: + cmp r5, #0x0 + bne _02026856 + mov r0, #0xc + pop {r3-r5, pc} +_02026856: + cmp r5, #0x10 + bge _02026866 + sub r1, r5, #0x1 + lsl r0, r1, #0x1 + add r0, r1, r0 + add r0, r4, r0 + ldrb r0, [r0, #0x1] + pop {r3-r5, pc} +_02026866: + sub r5, #0x10 + lsl r0, r5, #0x1 + add r0, r4, r0 + add r0, #0x2e + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02026874 +FUN_02026874: ; 0x02026874 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blo _02026884 + mov r0, #0x0 + bx lr +_02026884: + cmp r0, #0xa + blo _0202688C + mov r0, #0x6 + bx lr +_0202688C: + cmp r0, #0x3 + blo _02026894 + mov r0, #0xb + bx lr +_02026894: + cmp r0, #0x1 + blo _0202689C + mov r0, #0xf + bx lr +_0202689C: + mov r0, #0x10 + bx lr + + thumb_func_start FUN_020268A0 +FUN_020268A0: ; 0x020268A0 + add r0, #0x88 + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blo _020268B0 + mov r0, #0xf + bx lr +_020268B0: + cmp r0, #0xa + blo _020268B8 + mov r0, #0xf + bx lr +_020268B8: + cmp r0, #0x3 + blo _020268C0 + mov r0, #0xf + bx lr +_020268C0: + cmp r0, #0x1 + blo _020268C8 + mov r0, #0xc + bx lr +_020268C8: + mov r0, #0xa + bx lr + + thumb_func_start FUN_020268CC +FUN_020268CC: ; 0x020268CC + ldr r0, [r0, #0x0] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_020268D4 +FUN_020268D4: ; 0x020268D4 + push {r3, lr} + bl FUN_020269A0 + cmp r0, #0x4 + bne _020268E2 + mov r0, #0x1 + pop {r3, pc} +_020268E2: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020268E8 +FUN_020268E8: ; 0x020268E8 + ldr r3, [r0, #0x0] + ldr r2, _020268F8 ; =0xFFF00000 + and r3, r2 + ldr r2, _020268FC ; =0x000FFFFF + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020268F8: .word 0xFFF00000 +_020268FC: .word 0x000FFFFF + + thumb_func_start FUN_02026900 +FUN_02026900: ; 0x02026900 + ldr r0, [r0, #0x4] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026908 +FUN_02026908: ; 0x02026908 + push {r3-r4} + ldr r2, [r0, #0x4] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _0202692C ; =0x000F423F + cmp r4, r1 + bhs _02026926 + ldr r1, _02026930 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026934 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x4] +_02026926: + pop {r3-r4} + bx lr + nop +_0202692C: .word 0x000F423F +_02026930: .word 0xFFF00000 +_02026934: .word 0x000FFFFF + + thumb_func_start FUN_02026938 +FUN_02026938: ; 0x02026938 + ldr r0, [r0, #0x8] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026940 +FUN_02026940: ; 0x02026940 + push {r3-r4} + ldr r2, [r0, #0x8] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026964 ; =0x000F423F + cmp r4, r1 + bhs _0202695E + ldr r1, _02026968 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _0202696C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x8] +_0202695E: + pop {r3-r4} + bx lr + nop +_02026964: .word 0x000F423F +_02026968: .word 0xFFF00000 +_0202696C: .word 0x000FFFFF + + thumb_func_start FUN_02026970 +FUN_02026970: ; 0x02026970 + push {r3-r4} + ldr r2, [r0, #0xc] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026994 ; =0x000F423F + cmp r4, r1 + bhs _0202698E + ldr r1, _02026998 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _0202699C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0xc] +_0202698E: + pop {r3-r4} + bx lr + nop +_02026994: .word 0x000F423F +_02026998: .word 0xFFF00000 +_0202699C: .word 0x000FFFFF + + thumb_func_start FUN_020269A0 +FUN_020269A0: ; 0x020269A0 + ldr r0, [r0, #0x38] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + cmp r0, #0x32 + blt _020269AE + mov r0, #0x4 + bx lr +_020269AE: + cmp r0, #0xa + blt _020269B6 + mov r0, #0x3 + bx lr +_020269B6: + cmp r0, #0x3 + blt _020269BE + mov r0, #0x2 + bx lr +_020269BE: + cmp r0, #0x1 + blt _020269C6 + mov r0, #0x1 + bx lr +_020269C6: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_020269CC +FUN_020269CC: ; 0x020269CC + ldr r0, [r0, #0x38] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_020269D4 +FUN_020269D4: ; 0x020269D4 + push {r3-r4} + ldr r2, [r0, #0x38] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _020269F8 ; =0x000F423F + cmp r4, r1 + bhs _020269F2 + ldr r1, _020269FC ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026A00 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x38] +_020269F2: + pop {r3-r4} + bx lr + nop +_020269F8: .word 0x000F423F +_020269FC: .word 0xFFF00000 +_02026A00: .word 0x000FFFFF + + thumb_func_start FUN_02026A04 +FUN_02026A04: ; 0x02026A04 + ldr r0, [r0, #0x10] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026A0C +FUN_02026A0C: ; 0x02026A0C + push {r4-r5} + cmp r1, #0x0 + ble _02026A2C + ldr r4, [r0, #0x10] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026A44 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026A2C + ldr r1, _02026A48 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x10] + pop {r4-r5} + bx lr +_02026A2C: + ldr r3, [r0, #0x10] + ldr r2, _02026A48 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026A4C ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x10] + pop {r4-r5} + bx lr + .balign 4 +_02026A44: .word 0x000F423F +_02026A48: .word 0xFFF00000 +_02026A4C: .word 0x000FFFFF + + thumb_func_start FUN_02026A50 +FUN_02026A50: ; 0x02026A50 + ldr r0, [r0, #0x14] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026A58 +FUN_02026A58: ; 0x02026A58 + push {r4-r5} + cmp r1, #0x0 + ble _02026A78 + ldr r4, [r0, #0x14] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026A90 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026A78 + ldr r1, _02026A94 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x14] + pop {r4-r5} + bx lr +_02026A78: + ldr r3, [r0, #0x14] + ldr r2, _02026A94 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026A98 ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x14] + pop {r4-r5} + bx lr + .balign 4 +_02026A90: .word 0x000F423F +_02026A94: .word 0xFFF00000 +_02026A98: .word 0x000FFFFF + + thumb_func_start FUN_02026A9C +FUN_02026A9C: ; 0x02026A9C + push {r4-r5} + cmp r1, #0x0 + ble _02026ABC + ldr r4, [r0, #0x18] + lsl r2, r4, #0xc + lsr r5, r2, #0xc + ldr r2, _02026AD4 ; =0x000F423F + sub r3, r2, r1 + cmp r5, r3 + bls _02026ABC + ldr r1, _02026AD8 ; =0xFFF00000 + and r1, r4 + orr r1, r2 + str r1, [r0, #0x18] + pop {r4-r5} + bx lr +_02026ABC: + ldr r3, [r0, #0x18] + ldr r2, _02026AD8 ; =0xFFF00000 + and r2, r3 + lsl r3, r3, #0xc + lsr r3, r3, #0xc + add r3, r3, r1 + ldr r1, _02026ADC ; =0x000FFFFF + and r1, r3 + orr r1, r2 + str r1, [r0, #0x18] + pop {r4-r5} + bx lr + .balign 4 +_02026AD4: .word 0x000F423F +_02026AD8: .word 0xFFF00000 +_02026ADC: .word 0x000FFFFF + + thumb_func_start FUN_02026AE0 +FUN_02026AE0: ; 0x02026AE0 + ldr r0, [r0, #0x1c] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026AE8 +FUN_02026AE8: ; 0x02026AE8 + push {r3-r4} + ldr r2, [r0, #0x1c] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B0C ; =0x000F423F + cmp r4, r1 + bhs _02026B06 + ldr r1, _02026B10 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B14 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x1c] +_02026B06: + pop {r3-r4} + bx lr + nop +_02026B0C: .word 0x000F423F +_02026B10: .word 0xFFF00000 +_02026B14: .word 0x000FFFFF + + thumb_func_start FUN_02026B18 +FUN_02026B18: ; 0x02026B18 + ldr r0, [r0, #0x20] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026B20 +FUN_02026B20: ; 0x02026B20 + push {r3-r4} + ldr r2, [r0, #0x20] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B44 ; =0x000F423F + cmp r4, r1 + bhs _02026B3E + ldr r1, _02026B48 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B4C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x20] +_02026B3E: + pop {r3-r4} + bx lr + nop +_02026B44: .word 0x000F423F +_02026B48: .word 0xFFF00000 +_02026B4C: .word 0x000FFFFF + + thumb_func_start FUN_02026B50 +FUN_02026B50: ; 0x02026B50 + ldr r0, [r0, #0x24] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026B58 +FUN_02026B58: ; 0x02026B58 + push {r3-r4} + ldr r2, [r0, #0x24] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026B7C ; =0x000F423F + cmp r4, r1 + bhs _02026B76 + ldr r1, _02026B80 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026B84 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x24] +_02026B76: + pop {r3-r4} + bx lr + nop +_02026B7C: .word 0x000F423F +_02026B80: .word 0xFFF00000 +_02026B84: .word 0x000FFFFF + + thumb_func_start FUN_02026B88 +FUN_02026B88: ; 0x02026B88 + ldr r0, [r0, #0x28] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026B90 +FUN_02026B90: ; 0x02026B90 + push {r3-r4} + ldr r2, [r0, #0x28] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026BB4 ; =0x000F423F + cmp r4, r1 + bhs _02026BAE + ldr r1, _02026BB8 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026BBC ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x28] +_02026BAE: + pop {r3-r4} + bx lr + nop +_02026BB4: .word 0x000F423F +_02026BB8: .word 0xFFF00000 +_02026BBC: .word 0x000FFFFF + + thumb_func_start FUN_02026BC0 +FUN_02026BC0: ; 0x02026BC0 + ldr r0, [r0, #0x2c] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026BC8 +FUN_02026BC8: ; 0x02026BC8 + push {r3-r4} + ldr r2, [r0, #0x2c] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026BEC ; =0x000F423F + cmp r4, r1 + bhs _02026BE6 + ldr r1, _02026BF0 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026BF4 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x2c] +_02026BE6: + pop {r3-r4} + bx lr + nop +_02026BEC: .word 0x000F423F +_02026BF0: .word 0xFFF00000 +_02026BF4: .word 0x000FFFFF + + thumb_func_start FUN_02026BF8 +FUN_02026BF8: ; 0x02026BF8 + ldr r0, [r0, #0x30] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026C00 +FUN_02026C00: ; 0x02026C00 + push {r3-r4} + ldr r2, [r0, #0x30] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026C24 ; =0x000F423F + cmp r4, r1 + bhs _02026C1E + ldr r1, _02026C28 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026C2C ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x30] +_02026C1E: + pop {r3-r4} + bx lr + nop +_02026C24: .word 0x000F423F +_02026C28: .word 0xFFF00000 +_02026C2C: .word 0x000FFFFF + + thumb_func_start FUN_02026C30 +FUN_02026C30: ; 0x02026C30 + ldr r0, [r0, #0x34] + lsl r0, r0, #0xc + lsr r0, r0, #0xc + bx lr + + thumb_func_start FUN_02026C38 +FUN_02026C38: ; 0x02026C38 + push {r3-r4} + ldr r2, [r0, #0x34] + lsl r1, r2, #0xc + lsr r4, r1, #0xc + ldr r1, _02026C5C ; =0x000F423F + cmp r4, r1 + bhs _02026C56 + ldr r1, _02026C60 ; =0xFFF00000 + add r3, r2, #0x0 + and r3, r1 + ldr r1, _02026C64 ; =0x000FFFFF + add r2, r4, #0x1 + and r1, r2 + orr r1, r3 + str r1, [r0, #0x34] +_02026C56: + pop {r3-r4} + bx lr + nop +_02026C5C: .word 0x000F423F +_02026C60: .word 0xFFF00000 +_02026C64: .word 0x000FFFFF + + thumb_func_start FUN_02026C68 +FUN_02026C68: ; 0x02026C68 + push {r3-r4} + add r4, r0, #0x0 + add r4, #0x8c + strh r1, [r4, #0x0] + add r1, r0, #0x0 + add r1, #0x8e + strh r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x90 + strb r3, [r1, #0x0] + mov r1, #0x1 + add r0, #0x91 + strb r1, [r0, #0x0] + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_02026C88 +FUN_02026C88: ; 0x02026C88 + add r0, #0x8c + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02026C90 +FUN_02026C90: ; 0x02026C90 + add r0, #0x8e + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02026C98 +FUN_02026C98: ; 0x02026C98 + add r0, #0x90 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02026CA0 +FUN_02026CA0: ; 0x02026CA0 + add r0, #0x91 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02026CA8 +FUN_02026CA8: ; 0x02026CA8 + ldr r3, _02026CB0 ; =FUN_02022610 + mov r1, #0xc + bx r3 + nop +_02026CB0: .word FUN_02022610 + + thumb_func_start FUN_02026CB4 +FUN_02026CB4: ; 0x02026CB4 + push {r3, lr} + mov r1, #0xc + bl FUN_02022610 + add r0, #0x50 + pop {r3, pc} + + thumb_func_start FUN_02026CC0 +FUN_02026CC0: ; 0x02026CC0 + add r0, #0x50 + bx lr + + thumb_func_start FUN_02026CC4 +FUN_02026CC4: ; 0x02026CC4 + ldr r3, _02026CCC ; =FUN_02022610 + mov r1, #0xc + bx r3 + nop +_02026CCC: .word FUN_02022610 + + thumb_func_start FUN_02026CD0 +FUN_02026CD0: ; 0x02026CD0 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + add r7, r3, #0x0 + bl FUN_020671BC + add r2, r5, #0x0 + strh r0, [r5, #0x8] + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0xa + bl FUN_020671BC + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl FUN_020671BC + str r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl FUN_020671BC + str r0, [r5, #0x4] + add r0, r4, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + add r1, r5, #0x0 + add r1, #0x33 + strb r0, [r1, #0x0] + add r0, r5, #0x0 + add r0, #0x31 + strb r6, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x32 + strb r7, [r0, #0x0] + add r1, sp, #0x8 + mov r0, #0x10 + ldrsb r0, [r1, r0] + add r5, #0x30 + strb r0, [r5, #0x0] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02026D34 +FUN_02026D34: ; 0x02026D34 + push {r3-r6, lr} + sub sp, #0xc + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r4, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + bl MOD17_021DB858 + add r0, r4, #0x0 + bl MOD17_021DB7E8 + add r4, r0, #0x0 + mov r0, #0x1 + ldr r1, [sp, #0x4] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02026D5E + bl ErrorHandling +_02026D5E: + mov r0, #0x1 + ldr r1, [sp, #0x8] + lsl r0, r0, #0x8 + cmp r1, r0 + blt _02026D6C + bl ErrorHandling +_02026D6C: + mov r0, #0x7f + mvn r0, r0 + cmp r4, r0 + bgt _02026D78 + bl ErrorHandling +_02026D78: + lsl r0, r4, #0x18 + asr r0, r0, #0x18 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x8] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02026CD0 + add sp, #0xc + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_02026D98 +FUN_02026D98: ; 0x02026D98 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r5, #0x0 + add r4, r2, #0x0 + add r1, #0x20 + mov r2, #0x8 + bl FUN_02021EF0 + add r5, #0x34 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02026DB0 +FUN_02026DB0: ; 0x02026DB0 + strb r1, [r0, #0x0] + ldr r1, _02026DC0 ; =0xFFFFFFF0 + strb r2, [r0, #0x1] + strb r3, [r0, #0x2] + add r1, sp + ldrb r1, [r1, #0x10] + strb r1, [r0, #0x3] + bx lr + .balign 4 +_02026DC0: .word 0xFFFFFFF0 + + thumb_func_start FUN_02026DC4 +FUN_02026DC4: ; 0x02026DC4 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + cmp r4, #0x3d + blo _02026DD4 + bl ErrorHandling +_02026DD4: + lsr r2, r4, #0x1f + lsl r1, r4, #0x1d + sub r1, r1, r2 + mov r0, #0x1d + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1a + lsr r1, r0, #0x18 + lsr r0, r4, #0x3 + lsl r0, r0, #0x18 + mov r2, #0xf + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r6, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start FUN_02026E08 +FUN_02026E08: ; 0x02026E08 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3d + blo _02026E16 + bl ErrorHandling +_02026E16: + lsr r3, r4, #0x1f + lsl r2, r4, #0x1d + lsr r0, r4, #0x3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x16 + sub r2, r2, r3 + mov r1, #0x1d + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + ldr r0, [r5, r0] + lsr r1, r1, #0x18 + lsl r1, r1, #0x1a + add r2, r0, #0x0 + lsr r1, r1, #0x18 + lsr r2, r1 + mov r0, #0xf + and r0, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x9 + bls _02026E44 + mov r0, #0x9 +_02026E44: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02026E48 +FUN_02026E48: ; 0x02026E48 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x2 + blo _02026E58 + bl ErrorHandling +_02026E58: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1b + sub r1, r1, r2 + mov r0, #0x1b + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsr r0, r6, #0x5 + lsl r0, r0, #0x18 + mov r2, #0x1 + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r4, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start FUN_02026E88 +FUN_02026E88: ; 0x02026E88 + lsr r2, r1, #0x5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r3, [r0, r2] + lsr r2, r1, #0x1f + lsl r1, r1, #0x1b + sub r1, r1, r2 + mov r0, #0x1b + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r3, #0x0 + lsr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start FUN_02026EB0 +FUN_02026EB0: ; 0x02026EB0 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x12 + bls _02026EC0 + bl ErrorHandling +_02026EC0: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x1b + lsr r1, r0, #0x18 + lsr r0, r6, #0x2 + lsl r0, r0, #0x18 + mov r2, #0xff + lsr r0, r0, #0x16 + lsl r2, r1 + ldr r3, [r5, r0] + mvn r2, r2 + and r2, r3 + str r2, [r5, r0] + add r2, r4, #0x0 + ldr r3, [r5, r0] + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + str r1, [r5, r0] + pop {r4-r6, pc} + + thumb_func_start FUN_02026EF4 +FUN_02026EF4: ; 0x02026EF4 + lsr r2, r1, #0x2 + lsl r2, r2, #0x18 + lsr r2, r2, #0x16 + ldr r0, [r0, r2] + lsr r3, r1, #0x1f + lsl r2, r1, #0x1e + sub r2, r2, r3 + mov r1, #0x1e + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1b + lsr r1, r1, #0x18 + lsr r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + + thumb_func_start FUN_02026F18 +FUN_02026F18: ; 0x02026F18 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02026F20: + lsl r1, r4, #0x18 + add r0, r6, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026EF4 + cmp r0, #0x12 + beq _02026F30 + add r5, r5, #0x1 +_02026F30: + add r4, r4, #0x1 + cmp r4, #0x12 + blt _02026F20 + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + pop {r4-r6, pc} + + thumb_func_start FUN_02026F3C +FUN_02026F3C: ; 0x02026F3C + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x2 + add r4, r2, #0x0 + bl FUN_02068E14 + mov r1, #0x80 + strb r1, [r5, #0x0] + mov r1, #0x28 + sub r1, r1, r0 + mov r0, #0x8d + sub r0, r0, r1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + add r0, #0x28 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02026F60 +FUN_02026F60: ; 0x02026F60 + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r6, _02026FC8 ; =0x00001234 + mov r4, #0x0 + add r5, r7, #0x0 +_02026F6A: + add r0, r5, #0x0 + mov r1, #0x0 + mov r2, #0x74 + bl memset + str r6, [r5, #0x0] + add r4, r4, #0x1 + add r5, #0x74 + cmp r4, #0xb + blt _02026F6A + ldr r0, _02026FCC ; =0x000004FC + mov r6, #0x0 + add r4, r7, r0 + add r5, r7, #0x0 +_02026F86: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x98 + bl memset + ldr r1, _02026FC8 ; =0x00001234 + ldr r0, _02026FCC ; =0x000004FC + add r6, r6, #0x1 + str r1, [r5, r0] + add r4, #0x98 + add r5, #0x98 + cmp r6, #0x5 + blt _02026F86 + ldr r0, _02026FD0 ; =0x000007F4 + mov r1, #0x0 + add r0, r7, r0 + mov r2, #0x40 + bl memset + ldr r5, _02026FD4 ; =0x0000081C + mov r4, #0x0 + mov r6, #0x12 +_02026FB2: + lsl r2, r4, #0x18 + add r0, r7, r5 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026EB0 + add r4, r4, #0x1 + cmp r4, #0x12 + blt _02026FB2 + pop {r3-r7, pc} + nop +_02026FC8: .word 0x00001234 +_02026FCC: .word 0x000004FC +_02026FD0: .word 0x000007F4 +_02026FD4: .word 0x0000081C + + thumb_func_start FUN_02026FD8 +FUN_02026FD8: ; 0x02026FD8 + ldr r0, _02026FDC ; =0x00000834 + bx lr + .balign 4 +_02026FDC: .word 0x00000834 + + thumb_func_start FUN_02026FE0 +FUN_02026FE0: ; 0x02026FE0 + mov r0, #0x74 + bx lr + + thumb_func_start FUN_02026FE4 +FUN_02026FE4: ; 0x02026FE4 + mov r0, #0x98 + bx lr + + thumb_func_start FUN_02026FE8 +FUN_02026FE8: ; 0x02026FE8 + push {r4, lr} + mov r1, #0x98 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x98 + add r4, r0, #0x0 + bl memset + ldr r0, _02027004 ; =0x00001234 + str r0, [r4, #0x0] + add r0, r4, #0x0 + pop {r4, pc} + nop +_02027004: .word 0x00001234 + + thumb_func_start FUN_02027008 +FUN_02027008: ; 0x02027008 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0xb + blt _02027016 + bl ErrorHandling +_02027016: + mov r0, #0x74 + add r4, r6, #0x0 + mul r4, r0 + ldr r1, [r5, r4] + ldr r0, _0202703C ; =0x00001234 + cmp r1, r0 + beq _0202702A + ldr r0, _02027040 ; =0x00002345 + cmp r1, r0 + bne _0202702E +_0202702A: + mov r0, #0x1 + b _02027030 +_0202702E: + mov r0, #0x0 +_02027030: + cmp r0, #0x0 + bne _02027038 + bl ErrorHandling +_02027038: + add r0, r5, r4 + pop {r4-r6, pc} + .balign 4 +_0202703C: .word 0x00001234 +_02027040: .word 0x00002345 + + thumb_func_start FUN_02027044 +FUN_02027044: ; 0x02027044 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + cmp r6, #0x5 + blt _02027052 + bl ErrorHandling +_02027052: + mov r0, #0x98 + add r4, r6, #0x0 + mul r4, r0 + ldr r0, _02027080 ; =0x000004FC + add r1, r5, r4 + ldr r1, [r1, r0] + ldr r0, _02027084 ; =0x00001234 + cmp r1, r0 + beq _0202706A + ldr r0, _02027088 ; =0x00002345 + cmp r1, r0 + bne _0202706E +_0202706A: + mov r0, #0x1 + b _02027070 +_0202706E: + mov r0, #0x0 +_02027070: + cmp r0, #0x0 + bne _02027078 + bl ErrorHandling +_02027078: + ldr r0, _02027080 ; =0x000004FC + add r0, r5, r0 + add r0, r0, r4 + pop {r4-r6, pc} + .balign 4 +_02027080: .word 0x000004FC +_02027084: .word 0x00001234 +_02027088: .word 0x00002345 + + thumb_func_start FUN_0202708C +FUN_0202708C: ; 0x0202708C + ldr r1, _02027094 ; =0x000007F4 + add r0, r0, r1 + bx lr + nop +_02027094: .word 0x000007F4 + + thumb_func_start FUN_02027098 +FUN_02027098: ; 0x02027098 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xb + blt _020270A6 + bl ErrorHandling +_020270A6: + mov r0, #0x74 + mul r0, r4 + add r0, r5, r0 + bl FUN_0202729C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020270B4 +FUN_020270B4: ; 0x020270B4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x5 + blt _020270C2 + bl ErrorHandling +_020270C2: + ldr r0, _020270D4 ; =0x000004FC + add r1, r5, r0 + mov r0, #0x98 + mul r0, r4 + add r0, r1, r0 + bl FUN_020276D8 + pop {r3-r5, pc} + nop +_020270D4: .word 0x000004FC + + thumb_func_start FUN_020270D8 +FUN_020270D8: ; 0x020270D8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r2, #0x0 + mov r4, #0x1 + bl FUN_02027114 + cmp r6, #0x3d + bhs _020270F2 + add r0, r0, r5 + cmp r0, #0x9 + bls _020270FA + mov r4, #0x0 + b _020270FA +_020270F2: + add r0, r0, r5 + cmp r0, #0x1 + bls _020270FA + mov r4, #0x0 +_020270FA: + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02027100 +FUN_02027100: ; 0x02027100 + push {r3, lr} + bl FUN_0202714C + cmp r0, #0x12 + beq _0202710E + mov r0, #0x1 + pop {r3, pc} +_0202710E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02027114 +FUN_02027114: ; 0x02027114 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x64 + blo _02027122 + bl ErrorHandling +_02027122: + cmp r5, #0x3d + bhs _02027132 + lsl r1, r5, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026E08 + pop {r3-r5, pc} +_02027132: + bhs _02027138 + bl ErrorHandling +_02027138: + sub r5, #0x3d + lsl r0, r5, #0x18 + lsr r1, r0, #0x18 + add r4, #0x20 + lsl r1, r1, #0x18 + add r0, r4, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026E88 + pop {r3-r5, pc} + + thumb_func_start FUN_0202714C +FUN_0202714C: ; 0x0202714C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x12 + blo _0202715A + bl ErrorHandling +_0202715A: + add r5, #0x28 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026EF4 + pop {r3-r5, pc} + + thumb_func_start FUN_02027168 +FUN_02027168: ; 0x02027168 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02027170: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02027114 + add r4, r4, #0x1 + add r5, r5, r0 + cmp r4, #0x64 + blt _02027170 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02027184 +FUN_02027184: ; 0x02027184 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0202718C: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_0202714C + cmp r0, #0x12 + beq _0202719A + add r5, r5, #0x1 +_0202719A: + add r4, r4, #0x1 + cmp r4, #0x12 + blt _0202718C + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_020271A4 +FUN_020271A4: ; 0x020271A4 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x64 + blo _020271B4 + bl ErrorHandling +_020271B4: + cmp r4, #0x3d + bhs _020271DA + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026E08 + add r0, r0, r6 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x9 + bls _020271CE + mov r1, #0x9 +_020271CE: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026DC4 + pop {r4-r6, pc} +_020271DA: + add r0, r5, #0x0 + lsl r1, r4, #0x18 + add r0, #0x20 + lsr r1, r1, #0x18 + bl FUN_02026E88 + add r0, r0, r6 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x1 + bls _020271F2 + mov r6, #0x1 +_020271F2: + cmp r4, #0x3d + bhs _020271FA + bl ErrorHandling +_020271FA: + sub r4, #0x3d + lsl r0, r4, #0x18 + lsr r2, r0, #0x18 + add r5, #0x20 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026E48 + pop {r4-r6, pc} + + thumb_func_start FUN_02027210 +FUN_02027210: ; 0x02027210 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x64 + blo _02027220 + bl ErrorHandling +_02027220: + cmp r4, #0x3d + bhs _02027248 + lsl r1, r4, #0x18 + add r0, r5, #0x0 + lsr r1, r1, #0x18 + bl FUN_02026E08 + cmp r0, r6 + bls _0202723A + sub r0, r0, r6 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + b _0202723C +_0202723A: + mov r1, #0x0 +_0202723C: + lsl r2, r4, #0x18 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026DC4 + pop {r4-r6, pc} +_02027248: + bhs _0202724E + bl ErrorHandling +_0202724E: + sub r4, #0x3d + lsl r0, r4, #0x18 + lsr r2, r0, #0x18 + add r5, #0x20 + lsl r2, r2, #0x18 + add r0, r5, #0x0 + mov r1, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026E48 + pop {r4-r6, pc} + + thumb_func_start FUN_02027264 +FUN_02027264: ; 0x02027264 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x12 + blo _02027272 + bl ErrorHandling +_02027272: + add r0, r5, #0x0 + lsl r1, r4, #0x18 + add r0, #0x28 + lsr r1, r1, #0x18 + bl FUN_02026EF4 + cmp r0, #0x12 + bne _02027298 + add r0, r5, #0x0 + add r0, #0x28 + bl FUN_02026F18 + lsl r2, r4, #0x18 + add r5, #0x28 + add r1, r0, #0x0 + add r0, r5, #0x0 + lsr r2, r2, #0x18 + bl FUN_02026EB0 +_02027298: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202729C +FUN_0202729C: ; 0x0202729C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020272CC ; =0x00001234 + cmp r1, r0 + beq _020272AE + ldr r0, _020272D0 ; =0x00002345 + cmp r1, r0 + bne _020272B2 +_020272AE: + mov r0, #0x1 + b _020272B4 +_020272B2: + mov r0, #0x0 +_020272B4: + cmp r0, #0x0 + bne _020272BC + bl ErrorHandling +_020272BC: + ldr r1, [r4, #0x0] + ldr r0, _020272D0 ; =0x00002345 + cmp r1, r0 + bne _020272C8 + mov r0, #0x1 + pop {r4, pc} +_020272C8: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_020272CC: .word 0x00001234 +_020272D0: .word 0x00002345 + + thumb_func_start FUN_020272D4 +FUN_020272D4: ; 0x020272D4 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027304 ; =0x00001234 + cmp r1, r0 + beq _020272E6 + ldr r0, _02027308 ; =0x00002345 + cmp r1, r0 + bne _020272EA +_020272E6: + mov r0, #0x1 + b _020272EC +_020272EA: + mov r0, #0x0 +_020272EC: + cmp r0, #0x0 + bne _020272F4 + bl ErrorHandling +_020272F4: + ldr r0, _02027308 ; =0x00002345 + str r0, [r4, #0x0] + ldr r0, _0202730C ; =0x020ECAC4 + add r4, #0x71 + ldrb r0, [r0, #0x0] + strb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027304: .word 0x00001234 +_02027308: .word 0x00002345 +_0202730C: .word 0x020ECAC4 + + thumb_func_start FUN_02027310 +FUN_02027310: ; 0x02027310 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027340 ; =0x00001234 + cmp r1, r0 + beq _02027322 + ldr r0, _02027344 ; =0x00002345 + cmp r1, r0 + bne _02027326 +_02027322: + mov r0, #0x1 + b _02027328 +_02027326: + mov r0, #0x0 +_02027328: + cmp r0, #0x0 + bne _02027330 + bl ErrorHandling +_02027330: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x74 + bl memset + ldr r0, _02027340 ; =0x00001234 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02027340: .word 0x00001234 +_02027344: .word 0x00002345 + + thumb_func_start FUN_02027348 +FUN_02027348: ; 0x02027348 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027378 ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202735E + ldr r0, _0202737C ; =0x00002345 + cmp r1, r0 + bne _02027362 +_0202735E: + mov r0, #0x1 + b _02027364 +_02027362: + mov r0, #0x0 +_02027364: + cmp r0, #0x0 + bne _0202736C + bl ErrorHandling +_0202736C: + add r0, r5, #0x4 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02026D34 + pop {r4-r6, pc} + .balign 4 +_02027378: .word 0x00001234 +_0202737C: .word 0x00002345 + + thumb_func_start FUN_02027380 +FUN_02027380: ; 0x02027380 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + add r6, r2, #0x0 + bl FUN_02013ECC + add r1, sp, #0xc + strh r0, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + ldrh r0, [r1, #0x0] + strh r0, [r1, #0x4] + ldrh r0, [r1, #0x2] + strh r0, [r1, #0x6] + ldr r0, [r4, #0x4] + bl FUN_02013F00 + str r0, [sp, #0x8] + cmp r6, #0xa + blt _020273B0 + bl ErrorHandling +_020273B0: + add r1, sp, #0xc + mov r0, #0x4 + ldrsh r1, [r1, r0] + add r0, #0xfc + cmp r1, r0 + blt _020273C0 + bl ErrorHandling +_020273C0: + add r1, sp, #0xc + mov r0, #0x6 + ldrsh r7, [r1, r0] + add r0, #0xfa + cmp r7, r0 + blt _020273D0 + bl ErrorHandling +_020273D0: + mov r1, #0x7f + ldr r0, [sp, #0x8] + mvn r1, r1 + cmp r0, r1 + bgt _020273DE + bl ErrorHandling +_020273DE: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x3c] + str r0, [sp, #0x4] + tst r0, r1 + beq _020273EE + bl ErrorHandling +_020273EE: + ldr r1, [r5, #0x0] + ldr r0, _02027440 ; =0x00001234 + cmp r1, r0 + beq _020273FC + ldr r0, _02027444 ; =0x00002345 + cmp r1, r0 + bne _02027400 +_020273FC: + mov r0, #0x1 + b _02027402 +_02027400: + mov r0, #0x0 +_02027402: + cmp r0, #0x0 + bne _0202740A + bl ErrorHandling +_0202740A: + ldr r0, [sp, #0x8] + add r1, r5, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0xc + mov r2, #0x4 + ldrsh r2, [r3, r2] + lsl r3, r7, #0x18 + add r1, #0x48 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r1, [r4, #0x0] + lsl r2, r2, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02026DB0 + ldr r1, [r5, #0x3c] + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r5, #0x3c] + add sp, #0x14 + pop {r4-r7, pc} + nop +_02027440: .word 0x00001234 +_02027444: .word 0x00002345 + + thumb_func_start FUN_02027448 +FUN_02027448: ; 0x02027448 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027470 ; =0x00001234 + cmp r1, r0 + beq _0202745C + ldr r0, _02027474 ; =0x00002345 + cmp r1, r0 + bne _02027460 +_0202745C: + mov r0, #0x1 + b _02027462 +_02027460: + mov r0, #0x0 +_02027462: + cmp r0, #0x0 + bne _0202746A + bl ErrorHandling +_0202746A: + add r5, #0x70 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_02027470: .word 0x00001234 +_02027474: .word 0x00002345 + + thumb_func_start FUN_02027478 +FUN_02027478: ; 0x02027478 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020274B0 ; =0x00001234 + cmp r1, r0 + beq _0202748C + ldr r0, _020274B4 ; =0x00002345 + cmp r1, r0 + bne _02027490 +_0202748C: + mov r0, #0x1 + b _02027492 +_02027490: + mov r0, #0x0 +_02027492: + cmp r0, #0x0 + bne _0202749A + bl ErrorHandling +_0202749A: + add r0, r5, #0x0 + add r0, #0x40 + bl FUN_02013724 + add r5, #0x40 + add r0, r5, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 + bl FUN_02013998 + pop {r3-r5, pc} + .balign 4 +_020274B0: .word 0x00001234 +_020274B4: .word 0x00002345 + + thumb_func_start FUN_020274B8 +FUN_020274B8: ; 0x020274B8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020274E8 ; =0x00001234 + cmp r1, r0 + beq _020274CC + ldr r0, _020274EC ; =0x00002345 + cmp r1, r0 + bne _020274D0 +_020274CC: + mov r0, #0x1 + b _020274D2 +_020274D0: + mov r0, #0x0 +_020274D2: + cmp r0, #0x0 + bne _020274DA + bl ErrorHandling +_020274DA: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x74 + bl memcpy + pop {r3-r5, pc} + nop +_020274E8: .word 0x00001234 +_020274EC: .word 0x00002345 + + thumb_func_start FUN_020274F0 +FUN_020274F0: ; 0x020274F0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027520 ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _02027506 + ldr r0, _02027524 ; =0x00002345 + cmp r1, r0 + bne _0202750A +_02027506: + mov r0, #0x1 + b _0202750C +_0202750A: + mov r0, #0x0 +_0202750C: + cmp r0, #0x0 + bne _02027514 + bl ErrorHandling +_02027514: + add r0, r5, #0x4 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02026D98 + pop {r4-r6, pc} + .balign 4 +_02027520: .word 0x00001234 +_02027524: .word 0x00002345 + + thumb_func_start FUN_02027528 +FUN_02027528: ; 0x02027528 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xa + blt _02027536 + bl ErrorHandling +_02027536: + ldr r1, [r5, #0x0] + ldr r0, _0202755C ; =0x00001234 + cmp r1, r0 + beq _02027544 + ldr r0, _02027560 ; =0x00002345 + cmp r1, r0 + bne _02027548 +_02027544: + mov r0, #0x1 + b _0202754A +_02027548: + mov r0, #0x0 +_0202754A: + cmp r0, #0x0 + bne _02027552 + bl ErrorHandling +_02027552: + mov r0, #0x1 + ldr r1, [r5, #0x3c] + lsl r0, r4 + and r0, r1 + pop {r3-r5, pc} + .balign 4 +_0202755C: .word 0x00001234 +_02027560: .word 0x00002345 + + thumb_func_start FUN_02027564 +FUN_02027564: ; 0x02027564 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027588 ; =0x00001234 + cmp r1, r0 + beq _02027576 + ldr r0, _0202758C ; =0x00002345 + cmp r1, r0 + bne _0202757A +_02027576: + mov r0, #0x1 + b _0202757C +_0202757A: + mov r0, #0x0 +_0202757C: + cmp r0, #0x0 + bne _02027584 + bl ErrorHandling +_02027584: + add r0, r4, #0x4 + pop {r4, pc} + .balign 4 +_02027588: .word 0x00001234 +_0202758C: .word 0x00002345 + + thumb_func_start FUN_02027590 +FUN_02027590: ; 0x02027590 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xa + blt _0202759E + bl ErrorHandling +_0202759E: + mov r0, #0x1 + ldr r1, [r5, #0x3c] + lsl r0, r4 + tst r0, r1 + bne _020275AC + bl ErrorHandling +_020275AC: + ldr r1, [r5, #0x0] + ldr r0, _020275D0 ; =0x00001234 + cmp r1, r0 + beq _020275BA + ldr r0, _020275D4 ; =0x00002345 + cmp r1, r0 + bne _020275BE +_020275BA: + mov r0, #0x1 + b _020275C0 +_020275BE: + mov r0, #0x0 +_020275C0: + cmp r0, #0x0 + bne _020275C8 + bl ErrorHandling +_020275C8: + add r5, #0x48 + lsl r0, r4, #0x2 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 +_020275D0: .word 0x00001234 +_020275D4: .word 0x00002345 + + thumb_func_start FUN_020275D8 +FUN_020275D8: ; 0x020275D8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027600 ; =0x00001234 + cmp r1, r0 + beq _020275EA + ldr r0, _02027604 ; =0x00002345 + cmp r1, r0 + bne _020275EE +_020275EA: + mov r0, #0x1 + b _020275F0 +_020275EE: + mov r0, #0x0 +_020275F0: + cmp r0, #0x0 + bne _020275F8 + bl ErrorHandling +_020275F8: + add r0, r4, #0x4 + bl FUN_02027C84 + pop {r4, pc} + .balign 4 +_02027600: .word 0x00001234 +_02027604: .word 0x00002345 + + thumb_func_start FUN_02027608 +FUN_02027608: ; 0x02027608 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027634 ; =0x00001234 + cmp r1, r0 + beq _0202761C + ldr r0, _02027638 ; =0x00002345 + cmp r1, r0 + bne _02027620 +_0202761C: + mov r0, #0x1 + b _02027622 +_02027620: + mov r0, #0x0 +_02027622: + cmp r0, #0x0 + bne _0202762A + bl ErrorHandling +_0202762A: + add r0, r5, #0x4 + add r1, r4, #0x0 + bl FUN_02027C88 + pop {r3-r5, pc} + .balign 4 +_02027634: .word 0x00001234 +_02027638: .word 0x00002345 + + thumb_func_start FUN_0202763C +FUN_0202763C: ; 0x0202763C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027664 ; =0x00001234 + cmp r1, r0 + beq _0202764E + ldr r0, _02027668 ; =0x00002345 + cmp r1, r0 + bne _02027652 +_0202764E: + mov r0, #0x1 + b _02027654 +_02027652: + mov r0, #0x0 +_02027654: + cmp r0, #0x0 + bne _0202765C + bl ErrorHandling +_0202765C: + add r0, r4, #0x4 + bl FUN_02027C98 + pop {r4, pc} + .balign 4 +_02027664: .word 0x00001234 +_02027668: .word 0x00002345 + + thumb_func_start FUN_0202766C +FUN_0202766C: ; 0x0202766C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027694 ; =0x00001234 + cmp r1, r0 + beq _0202767E + ldr r0, _02027698 ; =0x00002345 + cmp r1, r0 + bne _02027682 +_0202767E: + mov r0, #0x1 + b _02027684 +_02027682: + mov r0, #0x0 +_02027684: + cmp r0, #0x0 + bne _0202768C + bl ErrorHandling +_0202768C: + add r4, #0x70 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027694: .word 0x00001234 +_02027698: .word 0x00002345 + + thumb_func_start FUN_0202769C +FUN_0202769C: ; 0x0202769C + ldr r3, _020276A4 ; =FUN_02013918 + add r0, #0x40 + mov r1, #0x0 + bx r3 + .balign 4 +_020276A4: .word FUN_02013918 + + thumb_func_start FUN_020276A8 +FUN_020276A8: ; 0x020276A8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _020276D0 ; =0x00001234 + cmp r1, r0 + beq _020276BA + ldr r0, _020276D4 ; =0x00002345 + cmp r1, r0 + bne _020276BE +_020276BA: + mov r0, #0x1 + b _020276C0 +_020276BE: + mov r0, #0x0 +_020276C0: + cmp r0, #0x0 + bne _020276C8 + bl ErrorHandling +_020276C8: + add r4, #0x71 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_020276D0: .word 0x00001234 +_020276D4: .word 0x00002345 + + thumb_func_start FUN_020276D8 +FUN_020276D8: ; 0x020276D8 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027708 ; =0x00001234 + cmp r1, r0 + beq _020276EA + ldr r0, _0202770C ; =0x00002345 + cmp r1, r0 + bne _020276EE +_020276EA: + mov r0, #0x1 + b _020276F0 +_020276EE: + mov r0, #0x0 +_020276F0: + cmp r0, #0x0 + bne _020276F8 + bl ErrorHandling +_020276F8: + ldr r1, [r4, #0x0] + ldr r0, _0202770C ; =0x00002345 + cmp r1, r0 + bne _02027704 + mov r0, #0x1 + pop {r4, pc} +_02027704: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02027708: .word 0x00001234 +_0202770C: .word 0x00002345 + + thumb_func_start FUN_02027710 +FUN_02027710: ; 0x02027710 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027738 ; =0x00001234 + cmp r1, r0 + beq _02027722 + ldr r0, _0202773C ; =0x00002345 + cmp r1, r0 + bne _02027726 +_02027722: + mov r0, #0x1 + b _02027728 +_02027726: + mov r0, #0x0 +_02027728: + cmp r0, #0x0 + bne _02027730 + bl ErrorHandling +_02027730: + ldr r0, _0202773C ; =0x00002345 + str r0, [r4, #0x0] + pop {r4, pc} + nop +_02027738: .word 0x00001234 +_0202773C: .word 0x00002345 + + thumb_func_start FUN_02027740 +FUN_02027740: ; 0x02027740 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027770 ; =0x00001234 + cmp r1, r0 + beq _02027752 + ldr r0, _02027774 ; =0x00002345 + cmp r1, r0 + bne _02027756 +_02027752: + mov r0, #0x1 + b _02027758 +_02027756: + mov r0, #0x0 +_02027758: + cmp r0, #0x0 + bne _02027760 + bl ErrorHandling +_02027760: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x98 + bl memset + ldr r0, _02027770 ; =0x00001234 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02027770: .word 0x00001234 +_02027774: .word 0x00002345 + + thumb_func_start FUN_02027778 +FUN_02027778: ; 0x02027778 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020277AC ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202778E + ldr r0, _020277B0 ; =0x00002345 + cmp r1, r0 + bne _02027792 +_0202778E: + mov r0, #0x1 + b _02027794 +_02027792: + mov r0, #0x0 +_02027794: + cmp r0, #0x0 + bne _0202779C + bl ErrorHandling +_0202779C: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02026D34 + pop {r4-r6, pc} + nop +_020277AC: .word 0x00001234 +_020277B0: .word 0x00002345 + + thumb_func_start FUN_020277B4 +FUN_020277B4: ; 0x020277B4 + push {r4-r7, lr} + sub sp, #0x14 + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + add r6, r2, #0x0 + bl FUN_02013ECC + add r1, sp, #0xc + strh r0, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + ldrh r0, [r1, #0x0] + strh r0, [r1, #0x4] + ldrh r0, [r1, #0x2] + strh r0, [r1, #0x6] + ldr r0, [r4, #0x4] + bl FUN_02013F00 + str r0, [sp, #0x8] + cmp r6, #0x14 + blt _020277E4 + bl ErrorHandling +_020277E4: + add r1, sp, #0xc + mov r0, #0x4 + ldrsh r1, [r1, r0] + add r0, #0xfc + cmp r1, r0 + blt _020277F4 + bl ErrorHandling +_020277F4: + add r1, sp, #0xc + mov r0, #0x6 + ldrsh r7, [r1, r0] + add r0, #0xfa + cmp r7, r0 + blt _02027804 + bl ErrorHandling +_02027804: + mov r1, #0x7f + ldr r0, [sp, #0x8] + mvn r1, r1 + cmp r0, r1 + bgt _02027812 + bl ErrorHandling +_02027812: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x40] + str r0, [sp, #0x4] + tst r0, r1 + beq _02027822 + bl ErrorHandling +_02027822: + ldr r1, [r5, #0x0] + ldr r0, _02027874 ; =0x00001234 + cmp r1, r0 + beq _02027830 + ldr r0, _02027878 ; =0x00002345 + cmp r1, r0 + bne _02027834 +_02027830: + mov r0, #0x1 + b _02027836 +_02027834: + mov r0, #0x0 +_02027836: + cmp r0, #0x0 + bne _0202783E + bl ErrorHandling +_0202783E: + ldr r0, [sp, #0x8] + add r1, r5, #0x0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0xc + mov r2, #0x4 + ldrsh r2, [r3, r2] + lsl r3, r7, #0x18 + add r1, #0x44 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r1, [r4, #0x0] + lsl r2, r2, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02026DB0 + ldr r1, [r5, #0x40] + ldr r0, [sp, #0x4] + orr r0, r1 + str r0, [r5, #0x40] + add sp, #0x14 + pop {r4-r7, pc} + nop +_02027874: .word 0x00001234 +_02027878: .word 0x00002345 + + thumb_func_start FUN_0202787C +FUN_0202787C: ; 0x0202787C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020278A4 ; =0x00001234 + cmp r1, r0 + beq _02027890 + ldr r0, _020278A8 ; =0x00002345 + cmp r1, r0 + bne _02027894 +_02027890: + mov r0, #0x1 + b _02027896 +_02027894: + mov r0, #0x0 +_02027896: + cmp r0, #0x0 + bne _0202789E + bl ErrorHandling +_0202789E: + add r5, #0x94 + strb r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_020278A4: .word 0x00001234 +_020278A8: .word 0x00002345 + + thumb_func_start FUN_020278AC +FUN_020278AC: ; 0x020278AC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _020278D4 ; =0x00001234 + cmp r1, r0 + beq _020278C0 + ldr r0, _020278D8 ; =0x00002345 + cmp r1, r0 + bne _020278C4 +_020278C0: + mov r0, #0x1 + b _020278C6 +_020278C4: + mov r0, #0x0 +_020278C6: + cmp r0, #0x0 + bne _020278CE + bl ErrorHandling +_020278CE: + str r4, [r5, #0x4] + pop {r3-r5, pc} + nop +_020278D4: .word 0x00001234 +_020278D8: .word 0x00002345 + + thumb_func_start FUN_020278DC +FUN_020278DC: ; 0x020278DC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202790C ; =0x00001234 + cmp r1, r0 + beq _020278F0 + ldr r0, _02027910 ; =0x00002345 + cmp r1, r0 + bne _020278F4 +_020278F0: + mov r0, #0x1 + b _020278F6 +_020278F4: + mov r0, #0x0 +_020278F6: + cmp r0, #0x0 + bne _020278FE + bl ErrorHandling +_020278FE: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x98 + bl memcpy + pop {r3-r5, pc} + nop +_0202790C: .word 0x00001234 +_02027910: .word 0x00002345 + + thumb_func_start FUN_02027914 +FUN_02027914: ; 0x02027914 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _0202795C ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _0202792C + ldr r0, _02027960 ; =0x00002345 + cmp r1, r0 + bne _02027930 +_0202792C: + mov r0, #0x1 + b _02027932 +_02027930: + mov r0, #0x0 +_02027932: + cmp r0, #0x0 + bne _0202793A + bl ErrorHandling +_0202793A: + add r1, sp, #0x4 + add r0, r4, #0x0 + add r1, #0x1 + add r2, sp, #0x4 + bl FUN_02026F3C + add r5, #0x8 + str r6, [sp, #0x0] + add r3, sp, #0x4 + ldrb r2, [r3, #0x1] + ldrb r3, [r3, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02026CD0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_0202795C: .word 0x00001234 +_02027960: .word 0x00002345 + + thumb_func_start FUN_02027964 +FUN_02027964: ; 0x02027964 + push {r4-r7, lr} + sub sp, #0xc + str r3, [sp, #0x4] + add r6, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + ldr r4, [sp, #0x24] + cmp r6, #0x14 + blo _0202797A + bl ErrorHandling +_0202797A: + cmp r7, #0x64 + blo _02027982 + bl ErrorHandling +_02027982: + mov r1, #0x1 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x8 + cmp r0, r1 + blt _02027990 + bl ErrorHandling +_02027990: + add r0, sp, #0x10 + ldrb r1, [r0, #0x10] + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r1, r0 + blt _020279A0 + bl ErrorHandling +_020279A0: + mov r0, #0x7f + mvn r0, r0 + cmp r4, r0 + bgt _020279AC + bl ErrorHandling +_020279AC: + mov r0, #0x1 + lsl r0, r6 + ldr r1, [r5, #0x40] + str r0, [sp, #0x8] + tst r0, r1 + beq _020279BC + bl ErrorHandling +_020279BC: + ldr r1, [r5, #0x0] + ldr r0, _02027A0C ; =0x00001234 + cmp r1, r0 + beq _020279CA + ldr r0, _02027A10 ; =0x00002345 + cmp r1, r0 + bne _020279CE +_020279CA: + mov r0, #0x1 + b _020279D0 +_020279CE: + mov r0, #0x0 +_020279D0: + cmp r0, #0x0 + bne _020279D8 + bl ErrorHandling +_020279D8: + mov r0, #0x38 + ldrsb r0, [r5, r0] + cmp r0, r4 + blt _020279E6 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 +_020279E6: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x0] + add r3, sp, #0x10 + add r1, r5, #0x0 + ldrb r3, [r3, #0x10] + add r1, #0x44 + lsl r0, r6, #0x2 + add r0, r1, r0 + ldr r2, [sp, #0x4] + add r1, r7, #0x0 + bl FUN_02026DB0 + ldr r1, [r5, #0x40] + ldr r0, [sp, #0x8] + orr r0, r1 + str r0, [r5, #0x40] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02027A0C: .word 0x00001234 +_02027A10: .word 0x00002345 + + thumb_func_start FUN_02027A14 +FUN_02027A14: ; 0x02027A14 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027A22 + bl ErrorHandling +_02027A22: + ldr r1, [r5, #0x0] + ldr r0, _02027A50 ; =0x00001234 + cmp r1, r0 + beq _02027A30 + ldr r0, _02027A54 ; =0x00002345 + cmp r1, r0 + bne _02027A34 +_02027A30: + mov r0, #0x1 + b _02027A36 +_02027A34: + mov r0, #0x0 +_02027A36: + cmp r0, #0x0 + bne _02027A3E + bl ErrorHandling +_02027A3E: + mov r0, #0x1 + add r1, r0, #0x0 + ldr r2, [r5, #0x40] + lsl r1, r4 + tst r1, r2 + bne _02027A4C + mov r0, #0x0 +_02027A4C: + pop {r3-r5, pc} + nop +_02027A50: .word 0x00001234 +_02027A54: .word 0x00002345 + + thumb_func_start FUN_02027A58 +FUN_02027A58: ; 0x02027A58 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027A8C ; =0x00001234 + add r6, r2, #0x0 + cmp r1, r0 + beq _02027A6E + ldr r0, _02027A90 ; =0x00002345 + cmp r1, r0 + bne _02027A72 +_02027A6E: + mov r0, #0x1 + b _02027A74 +_02027A72: + mov r0, #0x0 +_02027A74: + cmp r0, #0x0 + bne _02027A7C + bl ErrorHandling +_02027A7C: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02026D98 + pop {r4-r6, pc} + nop +_02027A8C: .word 0x00001234 +_02027A90: .word 0x00002345 + + thumb_func_start FUN_02027A94 +FUN_02027A94: ; 0x02027A94 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027ABC ; =0x00001234 + cmp r1, r0 + beq _02027AA6 + ldr r0, _02027AC0 ; =0x00002345 + cmp r1, r0 + bne _02027AAA +_02027AA6: + mov r0, #0x1 + b _02027AAC +_02027AAA: + mov r0, #0x0 +_02027AAC: + cmp r0, #0x0 + bne _02027AB4 + bl ErrorHandling +_02027AB4: + add r4, #0x8 + add r0, r4, #0x0 + pop {r4, pc} + nop +_02027ABC: .word 0x00001234 +_02027AC0: .word 0x00002345 + + thumb_func_start FUN_02027AC4 +FUN_02027AC4: ; 0x02027AC4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027AD2 + bl ErrorHandling +_02027AD2: + mov r0, #0x1 + ldr r1, [r5, #0x40] + lsl r0, r4 + tst r0, r1 + bne _02027AE0 + bl ErrorHandling +_02027AE0: + ldr r1, [r5, #0x0] + ldr r0, _02027B04 ; =0x00001234 + cmp r1, r0 + beq _02027AEE + ldr r0, _02027B08 ; =0x00002345 + cmp r1, r0 + bne _02027AF2 +_02027AEE: + mov r0, #0x1 + b _02027AF4 +_02027AF2: + mov r0, #0x0 +_02027AF4: + cmp r0, #0x0 + bne _02027AFC + bl ErrorHandling +_02027AFC: + add r5, #0x44 + lsl r0, r4, #0x2 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 +_02027B04: .word 0x00001234 +_02027B08: .word 0x00002345 + + thumb_func_start FUN_02027B0C +FUN_02027B0C: ; 0x02027B0C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027B3C ; =0x00001234 + cmp r1, r0 + beq _02027B20 + ldr r0, _02027B40 ; =0x00002345 + cmp r1, r0 + bne _02027B24 +_02027B20: + mov r0, #0x1 + b _02027B26 +_02027B24: + mov r0, #0x0 +_02027B26: + cmp r0, #0x0 + bne _02027B2E + bl ErrorHandling +_02027B2E: + add r5, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02027C88 + pop {r3-r5, pc} + nop +_02027B3C: .word 0x00001234 +_02027B40: .word 0x00002345 + + thumb_func_start FUN_02027B44 +FUN_02027B44: ; 0x02027B44 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027B70 ; =0x00001234 + cmp r1, r0 + beq _02027B56 + ldr r0, _02027B74 ; =0x00002345 + cmp r1, r0 + bne _02027B5A +_02027B56: + mov r0, #0x1 + b _02027B5C +_02027B5A: + mov r0, #0x0 +_02027B5C: + cmp r0, #0x0 + bne _02027B64 + bl ErrorHandling +_02027B64: + add r4, #0x8 + add r0, r4, #0x0 + bl FUN_02027C98 + pop {r4, pc} + nop +_02027B70: .word 0x00001234 +_02027B74: .word 0x00002345 + + thumb_func_start FUN_02027B78 +FUN_02027B78: ; 0x02027B78 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + ldr r1, [r5, #0x0] + ldr r0, _02027BD4 ; =0x00001234 + cmp r1, r0 + beq _02027B8E + ldr r0, _02027BD8 ; =0x00002345 + cmp r1, r0 + bne _02027B92 +_02027B8E: + mov r0, #0x1 + b _02027B94 +_02027B92: + mov r0, #0x0 +_02027B94: + cmp r0, #0x0 + bne _02027B9C + bl ErrorHandling +_02027B9C: + mov r1, #0x1 + str r1, [sp, #0x0] + ldr r0, [r5, #0x8] + mov r2, #0x0 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r5, #0xc] + add r3, r2, #0x0 + str r0, [sp, #0xc] + ldrh r1, [r5, #0x10] + add r0, r4, #0x0 + bl FUN_02066ACC + add r2, r5, #0x0 + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0x12 + bl FUN_02067830 + add r5, #0x3b + add r0, r4, #0x0 + mov r1, #0x70 + add r2, r5, #0x0 + bl FUN_02067830 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02027BD4: .word 0x00001234 +_02027BD8: .word 0x00002345 + + thumb_func_start FUN_02027BDC +FUN_02027BDC: ; 0x02027BDC + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x14 + blt _02027BEA + bl ErrorHandling +_02027BEA: + mov r0, #0x1 + ldr r1, [r5, #0x40] + lsl r0, r4 + tst r0, r1 + bne _02027BF8 + bl ErrorHandling +_02027BF8: + ldr r1, [r5, #0x0] + ldr r0, _02027C20 ; =0x00001234 + cmp r1, r0 + beq _02027C06 + ldr r0, _02027C24 ; =0x00002345 + cmp r1, r0 + bne _02027C0A +_02027C06: + mov r0, #0x1 + b _02027C0C +_02027C0A: + mov r0, #0x0 +_02027C0C: + cmp r0, #0x0 + bne _02027C14 + bl ErrorHandling +_02027C14: + add r5, #0x44 + lsl r0, r4, #0x2 + add r0, r5, r0 + bl FUN_02027CF8 + pop {r3-r5, pc} + .balign 4 +_02027C20: .word 0x00001234 +_02027C24: .word 0x00002345 + + thumb_func_start FUN_02027C28 +FUN_02027C28: ; 0x02027C28 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027C50 ; =0x00001234 + cmp r1, r0 + beq _02027C3A + ldr r0, _02027C54 ; =0x00002345 + cmp r1, r0 + bne _02027C3E +_02027C3A: + mov r0, #0x1 + b _02027C40 +_02027C3E: + mov r0, #0x0 +_02027C40: + cmp r0, #0x0 + bne _02027C48 + bl ErrorHandling +_02027C48: + add r4, #0x94 + ldrb r0, [r4, #0x0] + pop {r4, pc} + nop +_02027C50: .word 0x00001234 +_02027C54: .word 0x00002345 + + thumb_func_start FUN_02027C58 +FUN_02027C58: ; 0x02027C58 + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + ldr r0, _02027C7C ; =0x00001234 + cmp r1, r0 + beq _02027C6A + ldr r0, _02027C80 ; =0x00002345 + cmp r1, r0 + bne _02027C6E +_02027C6A: + mov r0, #0x1 + b _02027C70 +_02027C6E: + mov r0, #0x0 +_02027C70: + cmp r0, #0x0 + bne _02027C78 + bl ErrorHandling +_02027C78: + ldr r0, [r4, #0x4] + pop {r4, pc} + .balign 4 +_02027C7C: .word 0x00001234 +_02027C80: .word 0x00002345 + + thumb_func_start FUN_02027C84 +FUN_02027C84: ; 0x02027C84 + ldrh r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_02027C88 +FUN_02027C88: ; 0x02027C88 + add r2, r0, #0x0 + ldr r3, _02027C94 ; =FUN_02021E28 + add r2, #0x20 + add r0, r1, #0x0 + add r1, r2, #0x0 + bx r3 + .balign 4 +_02027C94: .word FUN_02021E28 + + thumb_func_start FUN_02027C98 +FUN_02027C98: ; 0x02027C98 + add r0, #0x34 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02027CA0 +FUN_02027CA0: ; 0x02027CA0 + mov r1, #0x30 + ldrsb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start FUN_02027CA8 +FUN_02027CA8: ; 0x02027CA8 + add r0, #0x31 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02027CB0 +FUN_02027CB0: ; 0x02027CB0 + add r0, #0x32 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02027CB8 +FUN_02027CB8: ; 0x02027CB8 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r1, #0x0 + mov r1, #0x1 + add r5, r0, #0x0 + str r1, [sp, #0x0] + ldr r0, [r5, #0x0] + mov r2, #0x0 + str r0, [sp, #0x4] + str r1, [sp, #0x8] + ldr r0, [r5, #0x4] + add r3, r2, #0x0 + str r0, [sp, #0xc] + ldrh r1, [r5, #0x8] + add r0, r4, #0x0 + bl FUN_02066ACC + add r2, r5, #0x0 + add r0, r4, #0x0 + mov r1, #0x74 + add r2, #0xa + bl FUN_02067830 + add r5, #0x33 + add r0, r4, #0x0 + mov r1, #0x70 + add r2, r5, #0x0 + bl FUN_02067830 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02027CF8 +FUN_02027CF8: ; 0x02027CF8 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02027CFC +FUN_02027CFC: ; 0x02027CFC + ldrb r0, [r0, #0x1] + bx lr + + thumb_func_start FUN_02027D00 +FUN_02027D00: ; 0x02027D00 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_02027D04 +FUN_02027D04: ; 0x02027D04 + mov r1, #0x3 + ldrsb r0, [r0, r1] + bx lr + .balign 4 + + thumb_func_start FUN_02027D0C +FUN_02027D0C: ; 0x02027D0C + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0xc + add r7, r0, #0x0 + mov r0, #0x1 + add r4, r1, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + bl FUN_0202729C + cmp r0, #0x1 + bne _02027D6A + ldr r1, _02027D78 ; =0xEDB88320 + add r0, sp, #0x4 + bl MATHi_CRC32InitTableRev + add r0, sp, #0x4 + add r1, r4, #0x0 + mov r2, #0x74 + bl MATH_CalcCRC32 + add r6, r0, #0x0 + mov r5, #0x0 +_02027D3C: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl FUN_02027008 + add r4, r0, #0x0 + ldr r1, _02027D78 ; =0xEDB88320 + add r0, sp, #0x4 + bl MATHi_CRC32InitTableRev + add r0, sp, #0x4 + add r1, r4, #0x0 + mov r2, #0x74 + bl MATH_CalcCRC32 + cmp r0, r6 + bne _02027D62 + mov r0, #0x0 + str r0, [sp, #0x0] + b _02027D6E +_02027D62: + add r5, r5, #0x1 + cmp r5, #0xb + blt _02027D3C + b _02027D6E +_02027D6A: + mov r0, #0x0 + str r0, [sp, #0x0] +_02027D6E: + ldr r0, [sp, #0x0] + add sp, #0x1fc + add sp, #0x1fc + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02027D78: .word 0xEDB88320 + + thumb_func_start FUN_02027D7C +FUN_02027D7C: ; 0x02027D7C + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + mov r7, #0x0 + ldr r0, [sp, #0x0] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r6, r7, #0x0 + str r3, [sp, #0x8] + cmp r0, #0x0 + ble _02027DB6 + add r4, r3, #0x0 +_02027D94: + ldr r0, [sp, #0x4] + cmp r6, r0 + beq _02027DAC + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02027DAC + add r0, r5, #0x0 + bl FUN_02027D0C + cmp r0, #0x1 + bne _02027DAC + add r7, r7, #0x1 +_02027DAC: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r4, r4, #0x4 + cmp r6, r0 + blt _02027D94 +_02027DB6: + mov r4, #0xa +_02027DB8: + add r1, r4, r7 + cmp r1, #0xb + bge _02027DD6 + add r0, r5, #0x0 + bl FUN_02027008 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02027008 + add r1, r0, #0x0 + add r0, r6, #0x0 + bl FUN_020274B8 +_02027DD6: + sub r4, r4, #0x1 + cmp r4, #0x1 + bge _02027DB8 + ldr r0, [sp, #0x0] + mov r6, #0x1 + mov r4, #0x0 + cmp r0, #0x0 + ble _02027E1E +_02027DE6: + ldr r0, [sp, #0x4] + cmp r4, r0 + beq _02027E10 + ldr r0, [sp, #0x8] + ldr r7, [r0, #0x0] + cmp r7, #0x0 + beq _02027E10 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_02027D0C + cmp r0, #0x1 + bne _02027E10 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02027008 + add r1, r7, #0x0 + add r6, r6, #0x1 + bl FUN_020274B8 +_02027E10: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r0, r0, #0x4 + str r0, [sp, #0x8] + ldr r0, [sp, #0x0] + cmp r4, r0 + blt _02027DE6 +_02027E1E: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02027E24 +FUN_02027E24: ; 0x02027E24 + ldr r3, _02027E2C ; =FUN_02022610 + mov r1, #0xe + bx r3 + nop +_02027E2C: .word FUN_02022610 + + thumb_func_start FUN_02027E30 +FUN_02027E30: ; 0x02027E30 + mov r0, #0x8 + bx lr + + thumb_func_start FUN_02027E34 +FUN_02027E34: ; 0x02027E34 + ldrb r0, [r0, #0x0] + cmp r0, #0x1e + beq _02027E3E + mov r0, #0x1 + bx lr +_02027E3E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02027E44 +FUN_02027E44: ; 0x02027E44 + mov r1, #0x1e + strb r1, [r0, #0x0] + mov r1, #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] + bx lr + .balign 4 + + thumb_func_start FUN_02027E5C +FUN_02027E5C: ; 0x02027E5C + push {r4, lr} + mov r1, #0x8 + bl FUN_020169D8 + add r4, r0, #0x0 + bl FUN_02027E44 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02027E70 +FUN_02027E70: ; 0x02027E70 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r2, [r0, #0x1] + strb r2, [r1, #0x1] + ldrb r2, [r0, #0x2] + strb r2, [r1, #0x2] + ldrb r2, [r0, #0x3] + strb r2, [r1, #0x3] + ldrb r2, [r0, #0x4] + strb r2, [r1, #0x4] + ldrb r2, [r0, #0x5] + strb r2, [r1, #0x5] + ldrb r2, [r0, #0x6] + strb r2, [r1, #0x6] + ldrb r0, [r0, #0x7] + strb r0, [r1, #0x7] + bx lr + .balign 4 + + thumb_func_start FUN_02027E94 +FUN_02027E94: ; 0x02027E94 + cmp r1, #0x6 + bhi _02027ECA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02027EA4: ; jump table (using 16-bit offset) + .short _02027EB2 - _02027EA4 - 2; case 0 + .short _02027EB6 - _02027EA4 - 2; case 1 + .short _02027EBA - _02027EA4 - 2; case 2 + .short _02027EBE - _02027EA4 - 2; case 3 + .short _02027EC2 - _02027EA4 - 2; case 4 + .short _02027EC6 - _02027EA4 - 2; case 5 + .short _02027ECA - _02027EA4 - 2; case 6 +_02027EB2: + ldrb r0, [r0, #0x0] + bx lr +_02027EB6: + ldrb r0, [r0, #0x1] + bx lr +_02027EBA: + ldrb r0, [r0, #0x2] + bx lr +_02027EBE: + ldrb r0, [r0, #0x3] + bx lr +_02027EC2: + ldrb r0, [r0, #0x4] + bx lr +_02027EC6: + ldrb r0, [r0, #0x5] + bx lr +_02027ECA: + ldrb r0, [r0, #0x6] + bx lr + .balign 4 + + thumb_func_start FUN_02027ED0 +FUN_02027ED0: ; 0x02027ED0 + push {r3-r7, lr} + add r5, r0, #0x0 + str r1, [sp, #0x0] + mov r4, #0x0 + mov r6, #0x2 + mov r7, #0x5 +_02027EDC: + bl rand_LC + add r1, r7, #0x0 + bl _s32_div_f + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + add r1, r5, r0 + ldrb r0, [r1, #0x1] + cmp r0, #0x0 + bne _02027EF6 + strb r6, [r1, #0x1] + add r4, r4, #0x1 +_02027EF6: + cmp r4, #0x3 + blt _02027EDC + mov r0, #0x1b + strb r0, [r5, #0x0] + ldr r0, [sp, #0x0] + strb r0, [r5, #0x6] + pop {r3-r7, pc} + + thumb_func_start FUN_02027F04 +FUN_02027F04: ; 0x02027F04 + push {r3-r7, lr} + sub sp, #0x8 + mov r12, r2 + mov r2, #0x0 + add r6, r2, #0x0 + mov r5, #0x1b + cmp r3, #0x0 + beq _02027F20 + mov r1, r12 + bl FUN_02027ED0 + add sp, #0x8 + add r0, r5, #0x0 + pop {r3-r7, pc} +_02027F20: + add r4, r2, #0x0 + add r7, sp, #0x0 +_02027F24: + ldrb r3, [r1, r4] + cmp r3, #0x0 + beq _02027F34 + cmp r3, #0x32 + blo _02027F30 + mov r6, #0x1 +_02027F30: + strb r4, [r7, r2] + add r2, r2, #0x1 +_02027F34: + add r4, r4, #0x1 + cmp r4, #0x5 + blt _02027F24 + cmp r2, #0x5 + bhi _02027F9C + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02027F4A: ; jump table (using 16-bit offset) + .short _02027F56 - _02027F4A - 2; case 0 + .short _02027F62 - _02027F4A - 2; case 1 + .short _02027F70 - _02027F4A - 2; case 2 + .short _02027F96 - _02027F4A - 2; case 3 + .short _02027F9A - _02027F4A - 2; case 4 + .short _02027F9A - _02027F4A - 2; case 5 +_02027F56: + mov r1, r12 + bl FUN_02027ED0 + add sp, #0x8 + mov r0, #0x1b + pop {r3-r7, pc} +_02027F62: + add r2, sp, #0x0 + ldrb r3, [r2, #0x0] + mov r2, #0x6 + mul r2, r3 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + b _02027F9C +_02027F70: + add r2, sp, #0x0 + ldrb r3, [r2, #0x1] + ldrb r2, [r2, #0x0] + ldrb r4, [r1, r3] + ldrb r5, [r1, r2] + cmp r5, r4 + blo _02027F8A + lsl r4, r2, #0x2 + add r2, r2, r4 + add r2, r3, r2 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + b _02027F9C +_02027F8A: + lsl r4, r3, #0x2 + add r3, r3, r4 + add r2, r2, r3 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + b _02027F9C +_02027F96: + mov r5, #0x19 + b _02027F9C +_02027F9A: + mov r5, #0x1a +_02027F9C: + cmp r6, #0x0 + beq _02027FA2 + mov r5, #0x1c +_02027FA2: + mov r4, #0x0 +_02027FA4: + ldrb r3, [r1, r4] + add r2, r0, r4 + add r4, r4, #0x1 + strb r3, [r2, #0x1] + cmp r4, #0x5 + blt _02027FA4 + strb r5, [r0, #0x0] + mov r1, r12 + strb r1, [r0, #0x6] + add r0, r5, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02027FBC +FUN_02027FBC: ; 0x02027FBC + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r2, [r0, #0x1] + strb r2, [r1, #0x1] + ldrb r2, [r0, #0x2] + strb r2, [r1, #0x2] + ldrb r2, [r0, #0x3] + strb r2, [r1, #0x3] + ldrb r2, [r0, #0x4] + strb r2, [r1, #0x4] + ldrb r2, [r0, #0x5] + strb r2, [r1, #0x5] + ldrb r0, [r0, #0x6] + strb r0, [r1, #0x6] + bx lr + .balign 4 + + thumb_func_start FUN_02027FDC +FUN_02027FDC: ; 0x02027FDC + push {r4, lr} + add r4, r0, #0x0 + ldrb r0, [r4, #0x0] + mov r1, #0x5 + bl _s32_div_f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi _0202801C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02027FFC: ; jump table (using 16-bit offset) + .short _02028008 - _02027FFC - 2; case 0 + .short _0202800C - _02027FFC - 2; case 1 + .short _02028010 - _02027FFC - 2; case 2 + .short _02028014 - _02027FFC - 2; case 3 + .short _02028018 - _02027FFC - 2; case 4 + .short _0202801C - _02027FFC - 2; case 5 +_02028008: + ldrb r0, [r4, #0x1] + b _0202803E +_0202800C: + ldrb r0, [r4, #0x2] + b _0202803E +_02028010: + ldrb r0, [r4, #0x3] + b _0202803E +_02028014: + ldrb r0, [r4, #0x4] + b _0202803E +_02028018: + ldrb r0, [r4, #0x5] + b _0202803E +_0202801C: + ldrb r0, [r4, #0x1] + ldrb r1, [r4, #0x2] + cmp r0, r1 + bhs _02028026 + add r0, r1, #0x0 +_02028026: + ldrb r1, [r4, #0x3] + cmp r0, r1 + bhs _0202802E + add r0, r1, #0x0 +_0202802E: + ldrb r1, [r4, #0x4] + cmp r0, r1 + bhs _02028036 + add r0, r1, #0x0 +_02028036: + ldrb r1, [r4, #0x5] + cmp r0, r1 + bhs _0202803E + add r0, r1, #0x0 +_0202803E: + cmp r0, #0x63 + bls _02028044 + mov r0, #0x63 +_02028044: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02028048 +FUN_02028048: ; 0x02028048 + ldr r3, _02028050 ; =FUN_02022610 + mov r1, #0x10 + bx r3 + nop +_02028050: .word FUN_02022610 + + thumb_func_start FUN_02028054 +FUN_02028054: ; 0x02028054 + mov r0, #0x32 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_0202805C +FUN_0202805C: ; 0x0202805C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_02028062: + add r0, r5, #0x0 + bl FUN_02027E44 + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x64 + blt _02028062 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02028074 +FUN_02028074: ; 0x02028074 + mov r2, #0x0 +_02028076: + lsl r1, r2, #0x3 + ldrb r1, [r0, r1] + cmp r1, #0x1e + bne _02028082 + add r0, r2, #0x0 + bx lr +_02028082: + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x64 + blo _02028076 + ldr r0, _02028090 ; =0x0000FFFF + bx lr + .balign 4 +_02028090: .word 0x0000FFFF + + thumb_func_start FUN_02028094 +FUN_02028094: ; 0x02028094 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl FUN_02028074 + ldr r1, _020280B4 ; =0x0000FFFF + add r4, r0, #0x0 + cmp r4, r1 + beq _020280B2 + lsl r1, r4, #0x3 + add r0, r6, #0x0 + add r1, r5, r1 + bl FUN_02027E70 + add r0, r4, #0x0 +_020280B2: + pop {r4-r6, pc} + .balign 4 +_020280B4: .word 0x0000FFFF + + thumb_func_start FUN_020280B8 +FUN_020280B8: ; 0x020280B8 + push {r3, lr} + cmp r1, #0x64 + blo _020280C2 + mov r0, #0x0 + pop {r3, pc} +_020280C2: + lsl r1, r1, #0x3 + add r0, r0, r1 + bl FUN_02027E44 + mov r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020280D0 +FUN_020280D0: ; 0x020280D0 + cmp r1, #0x64 + bhs _020280EA +_020280D4: + lsl r2, r1, #0x3 + ldrb r2, [r0, r2] + cmp r2, #0x1e + beq _020280E0 + add r0, r1, #0x0 + bx lr +_020280E0: + add r1, r1, #0x1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #0x64 + blo _020280D4 +_020280EA: + ldr r0, _020280F0 ; =0x0000FFFF + bx lr + nop +_020280F0: .word 0x0000FFFF + + thumb_func_start FUN_020280F4 +FUN_020280F4: ; 0x020280F4 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x0 + mov r7, #0x64 + str r0, [sp, #0x4] +_02028100: + ldr r0, [sp, #0x4] + lsl r0, r0, #0x3 + ldrb r0, [r5, r0] + cmp r0, #0x1e + bne _0202815C + ldr r6, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_020280D0 + add r4, r0, #0x0 + ldr r0, _02028170 ; =0x0000FFFF + cmp r4, r0 + beq _0202816A + ldr r0, [sp, #0x4] + sub r0, r4, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + cmp r4, r7 + bhs _02028154 + cmp r4, r7 + bhs _02028154 +_0202812E: + lsl r0, r4, #0x3 + lsl r1, r6, #0x3 + str r0, [sp, #0x8] + add r0, r5, r0 + add r1, r5, r1 + bl FUN_02027E70 + ldr r0, [sp, #0x8] + add r0, r5, r0 + bl FUN_02027E44 + add r0, r6, #0x1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r7 + blo _0202812E +_02028154: + ldr r0, [sp, #0x0] + sub r0, r7, r0 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +_0202815C: + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + cmp r0, r7 + blo _02028100 +_0202816A: + add sp, #0xc + pop {r4-r7, pc} + nop +_02028170: .word 0x0000FFFF + + thumb_func_start FUN_02028174 +FUN_02028174: ; 0x02028174 + push {r3, lr} + cmp r1, #0x64 + blo _02028182 + add r0, r2, #0x0 + bl FUN_02027E44 + pop {r3, pc} +_02028182: + lsl r1, r1, #0x3 + add r0, r0, r1 + add r1, r2, #0x0 + bl FUN_02027E70 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02028190 +FUN_02028190: ; 0x02028190 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl FUN_02027E5C + add r6, r0, #0x0 + cmp r4, #0x64 + blo _020281AA + bl FUN_02027E44 + mov r0, #0x0 + pop {r4-r6, pc} +_020281AA: + lsl r0, r4, #0x3 + add r0, r5, r0 + add r1, r6, #0x0 + bl FUN_02027E70 + add r0, r6, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_020281B8 +FUN_020281B8: ; 0x020281B8 + push {r4-r6, lr} + mov r4, #0x0 + add r6, r0, #0x0 + add r5, r4, #0x0 +_020281C0: + lsl r0, r5, #0x3 + add r0, r6, r0 + bl FUN_02027E34 + cmp r0, #0x0 + beq _020281D2 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020281D2: + add r0, r5, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x64 + blo _020281C0 + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_020281E0 +FUN_020281E0: ; 0x020281E0 + mov r0, #0x1f + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start FUN_020281E8 +FUN_020281E8: ; 0x020281E8 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r2, #0x1f + mov r0, #0x0 + add r1, r7, #0x0 + lsl r2, r2, #0x6 + bl MIi_CpuClearFast + mov r0, #0x1d + lsl r0, r0, #0x4 + add r1, r0, #0x0 + add r2, r0, #0x0 + ldr r4, _02028224 ; =0x0000FFFF + mov r5, #0x0 + add r6, r7, #0x0 + mov r3, #0x2 + sub r1, #0x10 + add r2, #0x1e +_0202820C: + strh r4, [r6, r0] + strh r4, [r6, r1] + strb r3, [r6, r2] + add r5, r5, #0x1 + add r6, #0x30 + cmp r5, #0x20 + blt _0202820C + add r0, r7, #0x0 + bl FUN_0203380C + pop {r3-r7, pc} + nop +_02028224: .word 0x0000FFFF + + thumb_func_start FUN_02028228 +FUN_02028228: ; 0x02028228 + bx lr + .balign 4 + + thumb_func_start FUN_0202822C +FUN_0202822C: ; 0x0202822C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + cmp r4, #0x20 + blt _0202823C + bl ErrorHandling +_0202823C: + cmp r7, #0x8 + bhi _020282D0 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202824C: ; jump table (using 16-bit offset) + .short _0202825E - _0202824C - 2; case 0 + .short _0202826C - _0202824C - 2; case 1 + .short _0202827A - _0202824C - 2; case 2 + .short _02028286 - _0202824C - 2; case 3 + .short _02028294 - _0202824C - 2; case 4 + .short _020282A0 - _0202824C - 2; case 5 + .short _020282AE - _0202824C - 2; case 6 + .short _020282C6 - _0202824C - 2; case 7 + .short _020282BA - _0202824C - 2; case 8 +_0202825E: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x1e + lsl r0, r0, #0x4 + ldr r6, [r1, r0] + b _020282D0 +_0202826C: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x79 + lsl r0, r0, #0x2 + ldrh r6, [r1, r0] + b _020282D0 +_0202827A: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _020282D4 ; =0x000001E6 + ldrh r6, [r1, r0] + b _020282D0 +_02028286: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x7a + lsl r0, r0, #0x2 + ldrh r6, [r1, r0] + b _020282D0 +_02028294: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _020282D8 ; =0x000001EA + ldrh r6, [r1, r0] + b _020282D0 +_020282A0: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x7b + lsl r0, r0, #0x2 + ldrb r6, [r1, r0] + b _020282D0 +_020282AE: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _020282DC ; =0x000001ED + ldrb r6, [r1, r0] + b _020282D0 +_020282BA: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _020282E0 ; =0x000001EE + ldrb r6, [r1, r0] + b _020282D0 +_020282C6: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _020282E4 ; =0x000001EF + ldrb r6, [r1, r0] +_020282D0: + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 +_020282D4: .word 0x000001E6 +_020282D8: .word 0x000001EA +_020282DC: .word 0x000001ED +_020282E0: .word 0x000001EE +_020282E4: .word 0x000001EF + + thumb_func_start FUN_020282E8 +FUN_020282E8: ; 0x020282E8 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r7, r2, #0x0 + add r6, r3, #0x0 + cmp r4, #0x20 + blt _020282FA + bl ErrorHandling +_020282FA: + cmp r7, #0x8 + bhi _02028378 + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202830A: ; jump table (using 16-bit offset) + .short _0202831C - _0202830A - 2; case 0 + .short _0202832A - _0202830A - 2; case 1 + .short _02028330 - _0202830A - 2; case 2 + .short _02028336 - _0202830A - 2; case 3 + .short _0202833C - _0202830A - 2; case 4 + .short _02028348 - _0202830A - 2; case 5 + .short _02028356 - _0202830A - 2; case 6 + .short _0202836E - _0202830A - 2; case 7 + .short _02028362 - _0202830A - 2; case 8 +_0202831C: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x1e + lsl r0, r0, #0x4 + str r6, [r1, r0] + pop {r3-r7, pc} +_0202832A: + bl ErrorHandling + pop {r3-r7, pc} +_02028330: + bl ErrorHandling + pop {r3-r7, pc} +_02028336: + bl ErrorHandling + pop {r3-r7, pc} +_0202833C: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _0202837C ; =0x000001EA + strh r6, [r1, r0] + pop {r3-r7, pc} +_02028348: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + mov r0, #0x7b + lsl r0, r0, #0x2 + strb r6, [r1, r0] + pop {r3-r7, pc} +_02028356: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _02028380 ; =0x000001ED + strb r6, [r1, r0] + pop {r3-r7, pc} +_02028362: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _02028384 ; =0x000001EE + strb r6, [r1, r0] + pop {r3-r7, pc} +_0202836E: + mov r0, #0x30 + mul r0, r4 + add r1, r5, r0 + ldr r0, _02028388 ; =0x000001EF + strb r6, [r1, r0] +_02028378: + pop {r3-r7, pc} + nop +_0202837C: .word 0x000001EA +_02028380: .word 0x000001ED +_02028384: .word 0x000001EE +_02028388: .word 0x000001EF + + thumb_func_start FUN_0202838C +FUN_0202838C: ; 0x0202838C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _0202839A + bl ErrorHandling +_0202839A: + mov r0, #0xc + add r5, #0x40 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + + thumb_func_start FUN_020283A4 +FUN_020283A4: ; 0x020283A4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _020283B2 + bl ErrorHandling +_020283B2: + mov r0, #0x1d + lsl r0, r0, #0x4 + add r1, r5, r0 + mov r0, #0x30 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} + + thumb_func_start FUN_020283C0 +FUN_020283C0: ; 0x020283C0 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x20 + blt _020283D0 + bl ErrorHandling +_020283D0: + mov r1, #0x1d + lsl r1, r1, #0x4 + add r2, r5, r1 + mov r1, #0x30 + mul r1, r4 + add r1, r2, r1 + add r0, r6, #0x0 + mov r2, #0x10 + bl FUN_02021EF0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020283E8 +FUN_020283E8: ; 0x020283E8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _020283F6 + bl ErrorHandling +_020283F6: + mov r0, #0x7 + lsl r0, r0, #0x6 + add r1, r5, r0 + mov r0, #0x30 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} + + thumb_func_start FUN_02028404 +FUN_02028404: ; 0x02028404 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x20 + blt _02028414 + bl ErrorHandling +_02028414: + mov r1, #0x7 + lsl r1, r1, #0x6 + add r2, r5, r1 + mov r1, #0x30 + mul r1, r4 + add r1, r2, r1 + add r0, r6, #0x0 + mov r2, #0x10 + bl FUN_02021EF0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202842C +FUN_0202842C: ; 0x0202842C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x20 + blt _0202843A + bl ErrorHandling +_0202843A: + mov r0, #0xc + add r5, #0x40 + mul r0, r4 + add r0, r5, r0 + bl FUN_0209700C + pop {r3-r5, pc} + + thumb_func_start FUN_02028448 +FUN_02028448: ; 0x02028448 + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_02028450: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_0202842C + cmp r0, #0x0 + beq _0202845E + add r5, r5, #0x1 +_0202845E: + add r4, r4, #0x1 + cmp r4, #0x20 + blt _02028450 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02028468 +FUN_02028468: ; 0x02028468 + push {r4-r7, lr} + sub sp, #0xc + add r5, r1, #0x0 + str r0, [sp, #0x0] + cmp r5, #0x20 + blt _02028478 + bl ErrorHandling +_02028478: + cmp r5, #0x1f + bge _020284D2 + mov r1, #0x7 + ldr r0, [sp, #0x0] + lsl r1, r1, #0x6 + add r0, r0, r1 + str r0, [sp, #0x4] + mov r0, #0x30 + add r1, r5, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + add r6, r0, r1 + ldr r0, [sp, #0x0] + add r1, r5, #0x0 + str r0, [sp, #0x8] + add r0, #0x40 + str r0, [sp, #0x8] + mov r0, #0xc + mul r1, r0 + ldr r0, [sp, #0x8] + add r4, r0, r1 +_020284A2: + add r7, r5, #0x1 + mov r0, #0x30 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x4] + mov r2, #0x30 + add r0, r0, r1 + add r1, r6, #0x0 + bl MI_CpuCopy8 + mov r0, #0xc + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x8] + mov r2, #0xc + add r0, r0, r1 + add r1, r4, #0x0 + bl MI_CpuCopy8 + add r5, r5, #0x1 + add r6, #0x30 + add r4, #0xc + cmp r5, #0x1f + blt _020284A2 +_020284D2: + mov r2, #0x7 + ldr r1, [sp, #0x0] + lsl r2, r2, #0x6 + add r2, r1, r2 + mov r1, #0x5d + lsl r1, r1, #0x4 + add r1, r2, r1 + mov r0, #0x0 + mov r2, #0x30 + bl MIi_CpuClearFast + ldr r2, [sp, #0x0] + mov r1, #0x5d + add r2, #0x40 + lsl r1, r1, #0x2 + add r1, r2, r1 + mov r0, #0x0 + mov r2, #0xc + bl MIi_CpuClearFast + mov r2, #0x7a + lsl r2, r2, #0x4 + add r1, r2, #0x0 + ldr r3, _02028514 ; =0x0000FFFF + ldr r0, [sp, #0x0] + sub r1, #0x10 + strh r3, [r0, r2] + strh r3, [r0, r1] + mov r1, #0x2 + add r2, #0x1e + strb r1, [r0, r2] + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02028514: .word 0x0000FFFF + + thumb_func_start FUN_02028518 +FUN_02028518: ; 0x02028518 + push {r4-r7, lr} + sub sp, #0xc + str r2, [sp, #0x4] + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + mov r2, #0x30 + add r5, r0, #0x0 + mov r0, #0x7 + lsl r0, r0, #0x6 + add r3, r1, #0x0 + mul r5, r2 + add r4, r7, r0 + mul r3, r2 + str r1, [sp, #0x0] + add r0, r4, r5 + add r1, r4, r3 + bl MI_CpuCopy8 + ldr r0, [sp, #0x4] + add r6, r7, #0x0 + mov r3, #0xc + add r1, r0, #0x0 + mul r1, r3 + add r6, #0x40 + str r1, [sp, #0x8] + add r0, r6, r1 + ldr r1, [sp, #0x0] + add r2, r1, #0x0 + mul r2, r3 + add r1, r6, r2 + add r2, r3, #0x0 + bl MI_CpuCopy8 + mov r0, #0x0 + add r1, r4, r5 + mov r2, #0x30 + bl MIi_CpuClearFast + ldr r1, [sp, #0x8] + mov r0, #0x0 + add r1, r6, r1 + mov r2, #0xc + bl MIi_CpuClearFast + mov r0, #0x1d + ldr r1, _02028588 ; =0x0000FFFF + add r2, r7, r5 + lsl r0, r0, #0x4 + strh r1, [r2, r0] + strh r1, [r4, r5] + mov r1, #0x2 + add r0, #0x1e + strb r1, [r2, r0] + add sp, #0xc + pop {r4-r7, pc} + nop +_02028588: .word 0x0000FFFF + + thumb_func_start FUN_0202858C +FUN_0202858C: ; 0x0202858C + push {r3-r7, lr} + mov r5, #0x0 + mvn r5, r5 + add r6, r0, #0x0 + mov r4, #0x0 + add r7, r5, #0x0 +_02028598: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_0202842C + cmp r0, #0x0 + beq _020285BC + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + beq _020285C6 + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_02028518 + add r4, r7, #0x0 + add r5, r7, #0x0 + b _020285C6 +_020285BC: + mov r0, #0x0 + mvn r0, r0 + cmp r5, r0 + bne _020285C6 + add r5, r4, #0x0 +_020285C6: + add r4, r4, #0x1 + cmp r4, #0x20 + blt _02028598 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020285D0 +FUN_020285D0: ; 0x020285D0 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, sp, #0x0 + bl FUN_020126B4 + mov r0, #0x30 + add r2, r4, #0x0 + mul r2, r0 + mov r0, #0x7d + ldr r1, [sp, #0x0] + lsl r0, r0, #0x4 + add r1, r1, r0 + ldr r0, _02028604 ; =0x000001EA + add r3, r5, r2 + strh r1, [r3, r0] + add r1, r0, #0x2 + ldr r2, [sp, #0x4] + add r0, r0, #0x3 + strb r2, [r3, r1] + ldr r1, [sp, #0x8] + strb r1, [r3, r0] + add sp, #0x10 + pop {r3-r5, pc} + nop +_02028604: .word 0x000001EA + + thumb_func_start FUN_02028608 +FUN_02028608: ; 0x02028608 + push {r4-r6, lr} + mov r5, #0x79 + add r4, r0, #0x0 + mov r0, #0x30 + lsl r5, r5, #0x2 + mul r0, r1 + add r5, r4, r5 + ldrh r6, [r5, r0] + add r2, r6, r2 + strh r2, [r5, r0] + ldrh r6, [r5, r0] + ldr r2, _0202865C ; =0x0000270F + cmp r6, r2 + bls _02028626 + strh r2, [r5, r0] +_02028626: + ldr r2, _02028660 ; =0x000001E6 + add r2, r4, r2 + ldrh r5, [r2, r0] + add r3, r5, r3 + strh r3, [r2, r0] + ldrh r5, [r2, r0] + ldr r3, _0202865C ; =0x0000270F + cmp r5, r3 + bls _0202863A + strh r3, [r2, r0] +_0202863A: + mov r2, #0x7a + lsl r2, r2, #0x2 + add r2, r4, r2 + ldrh r5, [r2, r0] + ldr r3, [sp, #0x10] + add r3, r5, r3 + strh r3, [r2, r0] + ldrh r5, [r2, r0] + ldr r3, _0202865C ; =0x0000270F + cmp r5, r3 + bls _02028652 + strh r3, [r2, r0] +_02028652: + add r0, r4, #0x0 + bl FUN_020285D0 + pop {r4-r6, pc} + nop +_0202865C: .word 0x0000270F +_02028660: .word 0x000001E6 + + thumb_func_start FUN_02028664 +FUN_02028664: ; 0x02028664 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r3, #0x79 + mov r0, #0x30 + add r4, r1, #0x0 + mul r4, r0 + lsl r3, r3, #0x2 + mul r0, r2 + add r2, r5, r3 + add r6, r5, r4 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _0202868A + strh r1, [r2, r0] +_0202868A: + ldr r3, _020286E4 ; =0x000001E6 + add r6, r5, r4 + add r2, r5, r3 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _020286A2 + strh r1, [r2, r0] +_020286A2: + mov r3, #0x7a + lsl r3, r3, #0x2 + add r2, r5, r3 + add r6, r5, r4 + ldrh r1, [r2, r0] + ldrh r3, [r6, r3] + add r1, r1, r3 + strh r1, [r2, r0] + ldrh r3, [r2, r0] + ldr r1, _020286E0 ; =0x0000270F + cmp r3, r1 + bls _020286BC + strh r1, [r2, r0] +_020286BC: + mov r0, #0x7 + lsl r0, r0, #0x6 + add r6, r5, r0 + mov r0, #0x0 + add r1, r6, r4 + mov r2, #0x30 + bl MIi_CpuClearFast + mov r0, #0x1d + ldr r1, _020286E8 ; =0x0000FFFF + add r2, r5, r4 + lsl r0, r0, #0x4 + strh r1, [r2, r0] + strh r1, [r6, r4] + mov r1, #0x2 + add r0, #0x1e + strb r1, [r2, r0] + pop {r4-r6, pc} + .balign 4 +_020286E0: .word 0x0000270F +_020286E4: .word 0x000001E6 +_020286E8: .word 0x0000FFFF + + thumb_func_start FUN_020286EC +FUN_020286EC: ; 0x020286EC + ldr r3, _020286F4 ; =FUN_02022610 + mov r1, #0x1d + bx r3 + nop +_020286F4: .word FUN_02022610 + + thumb_func_start FUN_020286F8 +FUN_020286F8: ; 0x020286F8 + mov r0, #0x42 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_02028700 +FUN_02028700: ; 0x02028700 + push {r4-r5} + add r5, r2, #0x0 + mov r3, #0x2c + add r2, r1, #0x0 + mul r2, r3 + mul r5, r3 + add r4, r0, r2 + add r3, r0, r5 + mov r2, #0x5 +_02028712: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02028712 + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_02028724 +FUN_02028724: ; 0x02028724 + push {r4, lr} + add r4, r0, #0x0 + mov r2, #0x42 + mov r0, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + bl MIi_CpuClearFast + ldr r0, _0202874C ; =0x0000FFFF + mov r1, #0x0 + add r2, r4, #0x0 +_0202873A: + strh r0, [r2, #0x0] + strh r0, [r2, #0x10] + add r1, r1, #0x1 + add r2, #0x2c + cmp r1, #0x6 + blt _0202873A + ldr r0, _02028750 ; =0x021C59D0 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_0202874C: .word 0x0000FFFF +_02028750: .word 0x021C59D0 + + thumb_func_start FUN_02028754 +FUN_02028754: ; 0x02028754 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + mov r7, #0x0 +_0202875C: + mov r4, #0x0 + cmp r6, #0x0 + bls _02028770 +_02028762: + ldr r0, [r5, #0x28] + bl rand_ALT + add r4, r4, #0x1 + str r0, [r5, #0x28] + cmp r4, r6 + blo _02028762 +_02028770: + add r7, r7, #0x1 + add r5, #0x2c + cmp r7, #0x6 + blo _0202875C + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202877C +FUN_0202877C: ; 0x0202877C + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x24] + bx lr + .balign 4 + + thumb_func_start FUN_02028788 +FUN_02028788: ; 0x02028788 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2c + add r4, r1, #0x0 + mul r4, r0 + add r0, r5, r4 + str r2, [r0, #0x24] + add r0, r2, #0x0 + bl rand_ALT + add r1, r5, r4 + str r0, [r1, #0x28] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020287A4 +FUN_020287A4: ; 0x020287A4 + ldr r0, [r0, #0x54] + bx lr + + thumb_func_start FUN_020287A8 +FUN_020287A8: ; 0x020287A8 + cmp r2, #0x0 + bne _020287B4 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + bx lr +_020287B4: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x10 + bx lr + .balign 4 + + thumb_func_start FUN_020287C0 +FUN_020287C0: ; 0x020287C0 + push {r4, lr} + add r4, r0, #0x0 + cmp r2, #0x0 + bne _020287D8 + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + add r0, r3, #0x0 + mov r2, #0x8 + bl FUN_02021EF0 + pop {r4, pc} +_020287D8: + mov r2, #0x2c + mul r2, r1 + add r1, r4, r2 + add r0, r3, #0x0 + add r1, #0x10 + mov r2, #0x8 + bl FUN_02021EF0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020287EC +FUN_020287EC: ; 0x020287EC + mov r3, #0x2c + mul r3, r1 + add r0, r0, r3 + add r0, #0x20 + strb r2, [r0, #0x0] + bx lr + + thumb_func_start FUN_020287F8 +FUN_020287F8: ; 0x020287F8 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x20 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02028804 +FUN_02028804: ; 0x02028804 + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + add r0, #0x21 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02028810 +FUN_02028810: ; 0x02028810 + mov r3, #0x2c + mul r3, r1 + add r0, r0, r3 + add r0, #0x21 + strb r2, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202881C +FUN_0202881C: ; 0x0202881C + ldr r3, _02028824 ; =FUN_02022610 + mov r1, #0x11 + bx r3 + nop +_02028824: .word FUN_02022610 + + thumb_func_start FUN_02028828 +FUN_02028828: ; 0x02028828 + push {r3, lr} + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + bl FUN_0202888C + cmp r0, #0x0 + bne _0202883C + mov r0, #0x1 + pop {r3, pc} +_0202883C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_02028840 +FUN_02028840: ; 0x02028840 + mov r2, #0x2c + add r3, r0, #0x0 + mul r2, r1 + add r1, r3, r2 + ldr r3, _02028850 ; =FUN_020288AC + add r0, #0x2c + bx r3 + nop +_02028850: .word FUN_020288AC + + thumb_func_start FUN_02028854 +FUN_02028854: ; 0x02028854 + push {r3-r7, lr} + add r6, r1, #0x0 + ldrh r1, [r6, #0x0] + add r5, r0, #0x0 + ldr r0, _02028888 ; =0x0000FFFF + cmp r1, r0 + bne _02028866 + mov r0, #0x0 + pop {r3-r7, pc} +_02028866: + mov r4, #0x0 + mov r7, #0x8 +_0202886A: + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl StringNotEqualN + cmp r0, #0x0 + bne _0202887C + mov r0, #0x1 + pop {r3-r7, pc} +_0202887C: + add r4, r4, #0x1 + add r5, #0x2c + cmp r4, #0x6 + blt _0202886A + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02028888: .word 0x0000FFFF + + thumb_func_start FUN_0202888C +FUN_0202888C: ; 0x0202888C + ldrh r2, [r0, #0x0] + ldr r1, _020288A8 ; =0x0000FFFF + cmp r2, r1 + bne _02028898 + mov r0, #0x1 + bx lr +_02028898: + ldrh r0, [r0, #0x10] + cmp r0, r1 + bne _020288A2 + mov r0, #0x1 + bx lr +_020288A2: + mov r0, #0x0 + bx lr + nop +_020288A8: .word 0x0000FFFF + + thumb_func_start FUN_020288AC +FUN_020288AC: ; 0x020288AC + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, #0x10 + add r1, #0x10 + mov r2, #0x8 + bl StringNotEqualN + cmp r0, #0x0 + beq _020288C4 + mov r0, #0x0 + pop {r3-r5, pc} +_020288C4: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x8 + bl StringNotEqualN + cmp r0, #0x0 + beq _020288D6 + mov r0, #0x0 + pop {r3-r5, pc} +_020288D6: + add r0, r5, #0x0 + add r0, #0x20 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r1, r0 + beq _020288EA + mov r0, #0x0 + pop {r3-r5, pc} +_020288EA: + add r0, r5, #0x0 + add r0, #0x21 + ldrb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x21 + ldrb r0, [r0, #0x0] + cmp r1, r0 + beq _020288FE + mov r0, #0x0 + pop {r3-r5, pc} +_020288FE: + ldr r1, [r5, #0x24] + ldr r0, [r4, #0x24] + cmp r1, r0 + bne _0202890A + mov r0, #0x1 + pop {r3-r5, pc} +_0202890A: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02028910 +FUN_02028910: ; 0x02028910 + mov r1, #0x0 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02028918 +FUN_02028918: ; 0x02028918 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202892C ; =0x0000C350 + add r4, r1, #0x0 + cmp r4, r0 + bls _02028928 + bl ErrorHandling +_02028928: + strh r4, [r5, #0x0] + pop {r3-r5, pc} + .balign 4 +_0202892C: .word 0x0000C350 + + thumb_func_start FUN_02028930 +FUN_02028930: ; 0x02028930 + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02028934 +FUN_02028934: ; 0x02028934 + ldrh r3, [r0, #0x0] + ldr r2, _02028950 ; =0x0000C350 + cmp r3, r2 + blo _02028940 + mov r0, #0x0 + bx lr +_02028940: + add r1, r3, r1 + strh r1, [r0, #0x0] + ldrh r1, [r0, #0x0] + cmp r1, r2 + bls _0202894C + strh r2, [r0, #0x0] +_0202894C: + mov r0, #0x1 + bx lr + .balign 4 +_02028950: .word 0x0000C350 + + thumb_func_start FUN_02028954 +FUN_02028954: ; 0x02028954 + ldrh r0, [r0, #0x0] + add r1, r1, r0 + ldr r0, _02028968 ; =0x0000C350 + cmp r1, r0 + bhi _02028962 + mov r0, #0x1 + bx lr +_02028962: + mov r0, #0x0 + bx lr + nop +_02028968: .word 0x0000C350 + + thumb_func_start FUN_0202896C +FUN_0202896C: ; 0x0202896C + ldrh r2, [r0, #0x0] + cmp r2, r1 + bhs _02028976 + mov r0, #0x0 + bx lr +_02028976: + sub r1, r2, r1 + strh r1, [r0, #0x0] + mov r0, #0x1 + bx lr + .balign 4 + + thumb_func_start FUN_02028980 +FUN_02028980: ; 0x02028980 + mov r0, #0x46 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_02028988 +FUN_02028988: ; 0x02028988 + ldr r3, _02028990 ; =memset + mov r1, #0x0 + mov r2, #0x70 + bx r3 + .balign 4 +_02028990: .word memset + + thumb_func_start FUN_02028994 +FUN_02028994: ; 0x02028994 + ldr r3, _020289A0 ; =memset + mov r2, #0x46 + mov r1, #0x0 + lsl r2, r2, #0x4 + bx r3 + nop +_020289A0: .word memset + + thumb_func_start FUN_020289A4 +FUN_020289A4: ; 0x020289A4 + ldr r3, _020289AC ; =FUN_02022610 + mov r1, #0x12 + bx r3 + nop +_020289AC: .word FUN_02022610 + + thumb_func_start FUN_020289B0 +FUN_020289B0: ; 0x020289B0 + push {r3-r7, lr} + sub sp, #0x10 + add r7, r0, #0x0 + cmp r1, #0x1 + beq _020289C0 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_020289C0: + add r0, sp, #0x0 + bl FUN_020126B4 + ldr r0, [r7, #0x0] + lsl r1, r0, #0x15 + lsr r3, r1, #0x1c + beq _02028A18 + lsl r1, r0, #0x19 + lsr r2, r1, #0x19 + ldr r1, [sp, #0x0] + cmp r2, r1 + bne _020289F2 + ldr r1, [sp, #0x4] + cmp r3, r1 + bne _020289F2 + lsl r1, r0, #0xd + lsr r2, r1, #0x1b + ldr r1, [sp, #0x8] + cmp r2, r1 + bne _020289F2 + lsl r0, r0, #0x12 + lsr r1, r0, #0x1d + ldr r0, [sp, #0xc] + cmp r1, r0 + beq _02028A18 +_020289F2: + mov r0, #0x3f + lsl r0, r0, #0x4 + mov r5, #0x9 + add r6, r7, r0 +_020289FA: + add r4, r6, #0x0 + sub r4, #0x70 + add r3, r6, #0x0 + mov r2, #0xe +_02028A02: + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02028A02 + sub r5, r5, #0x1 + sub r6, #0x70 + cmp r5, #0x1 + bge _020289FA + add r0, r7, #0x0 + bl FUN_02028988 +_02028A18: + add r0, r7, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02028A20 +FUN_02028A20: ; 0x02028A20 + push {r4, lr} + sub sp, #0x20 + add r4, r0, #0x0 + cmp r1, #0x1 + beq _02028A30 + add sp, #0x20 + mov r0, #0x0 + pop {r4, pc} +_02028A30: + add r0, sp, #0x0 + bl FUN_020126B4 + ldr r0, [r4, #0x0] + lsl r0, r0, #0x19 + lsr r0, r0, #0x19 + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x15 + lsr r0, r0, #0x1c + str r0, [sp, #0x14] + ldr r0, [r4, #0x0] + lsl r0, r0, #0xd + lsr r0, r0, #0x1b + str r0, [sp, #0x18] + ldr r0, [r4, #0x0] + lsl r0, r0, #0x12 + lsr r0, r0, #0x1d + str r0, [sp, #0x1c] + add r0, sp, #0x0 + bl FUN_02012710 + add r4, r0, #0x0 + add r0, sp, #0x10 + bl FUN_02012710 + ldr r2, [sp, #0x4] + sub r0, r4, r0 + cmp r2, #0xc + bne _02028A7E + ldr r1, [sp, #0x8] + cmp r1, #0x1f + bne _02028A7E + ldr r1, [sp, #0x14] + cmp r1, #0x1 + bne _02028A7E + ldr r1, [sp, #0x18] + cmp r1, #0x1 + beq _02028A94 +_02028A7E: + cmp r2, #0x1 + bne _02028AAC + ldr r1, [sp, #0x8] + cmp r1, #0x1 + bne _02028AAC + ldr r1, [sp, #0x14] + cmp r1, #0xc + bne _02028AAC + ldr r1, [sp, #0x18] + cmp r1, #0x1f + bne _02028AAC +_02028A94: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x10] + sub r1, r1, r0 + cmp r1, #0x2 + bge _02028AA6 + mov r0, #0x1 + mvn r0, r0 + cmp r1, r0 + bgt _02028ACC +_02028AA6: + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028AAC: + mov r1, #0x1 + mvn r1, r1 + cmp r0, r1 + ble _02028AB8 + cmp r0, #0x2 + blt _02028ABE +_02028AB8: + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028ABE: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x10] + cmp r1, r0 + beq _02028ACC + add sp, #0x20 + mov r0, #0x1 + pop {r4, pc} +_02028ACC: + mov r0, #0x0 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02028AD4 +FUN_02028AD4: ; 0x02028AD4 + push {r4, lr} + add r4, r1, #0x0 + cmp r0, #0x0 + beq _02028B12 + cmp r2, #0x4 + bhi _02028B12 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02028AEC: ; jump table (using 16-bit offset) + .short _02028AF6 - _02028AEC - 2; case 0 + .short _02028AFC - _02028AEC - 2; case 1 + .short _02028B02 - _02028AEC - 2; case 2 + .short _02028B08 - _02028AEC - 2; case 3 + .short _02028B0E - _02028AEC - 2; case 4 +_02028AF6: + bl FUN_02028B1C + b _02028B12 +_02028AFC: + bl FUN_02028B5C + b _02028B12 +_02028B02: + bl FUN_02028BF0 + b _02028B12 +_02028B08: + bl FUN_02028BFC + b _02028B12 +_02028B0E: + bl FUN_02028C08 +_02028B12: + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02028B1C +FUN_02028B1C: ; 0x02028B1C + push {r4-r5} + ldr r3, [r0, #0x0] + lsl r2, r3, #0x19 + lsr r5, r2, #0x19 + ldr r2, [r1, #0x0] + lsl r4, r2, #0x19 + lsr r4, r4, #0x19 + cmp r5, r4 + bne _02028B52 + lsl r4, r3, #0x15 + lsr r5, r4, #0x1c + lsl r4, r2, #0x15 + lsr r4, r4, #0x1c + cmp r5, r4 + bne _02028B52 + lsl r4, r3, #0xd + lsr r5, r4, #0x1b + lsl r4, r2, #0xd + lsr r4, r4, #0x1b + cmp r5, r4 + bne _02028B52 + lsl r3, r3, #0x12 + lsl r2, r2, #0x12 + lsr r3, r3, #0x1d + lsr r2, r2, #0x1d + cmp r3, r2 + beq _02028B56 +_02028B52: + ldr r1, [r1, #0x0] + str r1, [r0, #0x0] +_02028B56: + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_02028B5C +FUN_02028B5C: ; 0x02028B5C + push {r3, lr} + ldrb r2, [r1, #0x0] + cmp r2, #0x23 + bhi _02028BEE + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02028B70: ; jump table (using 16-bit offset) + .short _02028BEE - _02028B70 - 2; case 0 + .short _02028BB8 - _02028B70 - 2; case 1 + .short _02028BB8 - _02028B70 - 2; case 2 + .short _02028BB8 - _02028B70 - 2; case 3 + .short _02028BB8 - _02028B70 - 2; case 4 + .short _02028BB8 - _02028B70 - 2; case 5 + .short _02028BB8 - _02028B70 - 2; case 6 + .short _02028BB8 - _02028B70 - 2; case 7 + .short _02028BB8 - _02028B70 - 2; case 8 + .short _02028BC0 - _02028B70 - 2; case 9 + .short _02028BC0 - _02028B70 - 2; case 10 + .short _02028BC8 - _02028B70 - 2; case 11 + .short _02028BD0 - _02028B70 - 2; case 12 + .short _02028BD8 - _02028B70 - 2; case 13 + .short _02028BD8 - _02028B70 - 2; case 14 + .short _02028BD8 - _02028B70 - 2; case 15 + .short _02028BB8 - _02028B70 - 2; case 16 + .short _02028BB8 - _02028B70 - 2; case 17 + .short _02028BE0 - _02028B70 - 2; case 18 + .short _02028BE8 - _02028B70 - 2; case 19 + .short _02028BE8 - _02028B70 - 2; case 20 + .short _02028BE8 - _02028B70 - 2; case 21 + .short _02028BE8 - _02028B70 - 2; case 22 + .short _02028BE8 - _02028B70 - 2; case 23 + .short _02028BE8 - _02028B70 - 2; case 24 + .short _02028BE8 - _02028B70 - 2; case 25 + .short _02028BE8 - _02028B70 - 2; case 26 + .short _02028BE8 - _02028B70 - 2; case 27 + .short _02028BE8 - _02028B70 - 2; case 28 + .short _02028BE8 - _02028B70 - 2; case 29 + .short _02028BE8 - _02028B70 - 2; case 30 + .short _02028BEE - _02028B70 - 2; case 31 + .short _02028BE8 - _02028B70 - 2; case 32 + .short _02028BE8 - _02028B70 - 2; case 33 + .short _02028BB8 - _02028B70 - 2; case 34 + .short _02028BB8 - _02028B70 - 2; case 35 +_02028BB8: + add r0, r0, #0x4 + bl FUN_02028CE8 + pop {r3, pc} +_02028BC0: + add r0, r0, #0x4 + bl FUN_02028D98 + pop {r3, pc} +_02028BC8: + add r0, r0, #0x4 + bl FUN_02028D44 + pop {r3, pc} +_02028BD0: + add r0, r0, #0x4 + bl FUN_02028D24 + pop {r3, pc} +_02028BD8: + add r0, r0, #0x4 + bl FUN_02028DFC + pop {r3, pc} +_02028BE0: + add r0, r0, #0x4 + bl FUN_02028E44 + pop {r3, pc} +_02028BE8: + add r0, r0, #0x4 + bl FUN_02028E8C +_02028BEE: + pop {r3, pc} + + thumb_func_start FUN_02028BF0 +FUN_02028BF0: ; 0x02028BF0 + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x14] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x16] + bx lr + .balign 4 + + thumb_func_start FUN_02028BFC +FUN_02028BFC: ; 0x02028BFC + ldrh r2, [r1, #0x0] + strh r2, [r0, #0x18] + ldrh r1, [r1, #0x2] + strh r1, [r0, #0x1a] + bx lr + .balign 4 + + thumb_func_start FUN_02028C08 +FUN_02028C08: ; 0x02028C08 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + bl FUN_02028CA8 + ldrb r1, [r4, #0x0] + cmp r1, #0x10 + bhi _02028C6E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02028C24: ; jump table (using 16-bit offset) + .short _02028C6E - _02028C24 - 2; case 0 + .short _02028C46 - _02028C24 - 2; case 1 + .short _02028C46 - _02028C24 - 2; case 2 + .short _02028C46 - _02028C24 - 2; case 3 + .short _02028C46 - _02028C24 - 2; case 4 + .short _02028C46 - _02028C24 - 2; case 5 + .short _02028C4E - _02028C24 - 2; case 6 + .short _02028C56 - _02028C24 - 2; case 7 + .short _02028C5E - _02028C24 - 2; case 8 + .short _02028C56 - _02028C24 - 2; case 9 + .short _02028C5E - _02028C24 - 2; case 10 + .short _02028C46 - _02028C24 - 2; case 11 + .short _02028C5E - _02028C24 - 2; case 12 + .short _02028C68 - _02028C24 - 2; case 13 + .short _02028C5E - _02028C24 - 2; case 14 + .short _02028C56 - _02028C24 - 2; case 15 + .short _02028C5E - _02028C24 - 2; case 16 +_02028C46: + add r1, r4, #0x0 + bl FUN_02028ED4 + pop {r3-r5, pc} +_02028C4E: + add r1, r4, #0x0 + bl FUN_02028F10 + pop {r3-r5, pc} +_02028C56: + add r1, r4, #0x0 + bl FUN_02028F2C + pop {r3-r5, pc} +_02028C5E: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02028F60 + pop {r3-r5, pc} +_02028C68: + add r1, r4, #0x0 + bl FUN_02028F94 +_02028C6E: + pop {r3-r5, pc} + + thumb_func_start FUN_02028C70 +FUN_02028C70: ; 0x02028C70 + push {r3-r4} + mov r3, #0x0 + add r4, r0, #0x0 + mov r1, #0x3f +_02028C78: + ldr r2, [r4, #0x0] + tst r2, r1 + bne _02028C86 + lsl r1, r3, #0x2 + add r0, r0, r1 + pop {r3-r4} + bx lr +_02028C86: + add r3, r3, #0x1 + add r4, r4, #0x4 + cmp r3, #0x4 + blo _02028C78 + mov r3, #0x0 + add r2, r0, #0x0 +_02028C92: + ldr r1, [r2, #0x4] + add r3, r3, #0x1 + stmia r2!, {r1} + cmp r3, #0x3 + blo _02028C92 + lsl r2, r3, #0x2 + mov r1, #0x0 + str r1, [r0, r2] + add r0, r0, r2 + pop {r3-r4} + bx lr + + thumb_func_start FUN_02028CA8 +FUN_02028CA8: ; 0x02028CA8 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + add r2, r4, #0x0 +_02028CB0: + ldrb r0, [r2, #0x1c] + cmp r0, #0x0 + bne _02028CC0 + mov r0, #0x2a + add r4, #0x1c + mul r0, r1 + add r0, r4, r0 + pop {r4, pc} +_02028CC0: + add r1, r1, #0x1 + add r2, #0x2a + cmp r1, #0x2 + blo _02028CB0 + add r0, r4, #0x0 + add r1, r4, #0x0 + add r0, #0x1c + add r1, #0x46 + mov r2, #0x2a + bl memcpy + add r4, #0x46 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x2a + bl memset + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02028CE8 +FUN_02028CE8: ; 0x02028CE8 + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028CF0: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028CFE + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028CF0 +_02028CFE: + cmp r2, #0x0 + beq _02028D14 + lsl r2, r2, #0x2 + add r2, r0, r2 + sub r2, r2, #0x4 + ldr r3, [r2, #0x0] + mov r2, #0x3f + ldrb r1, [r4, #0x0] + and r2, r3 + cmp r1, r2 + beq _02028D20 +_02028D14: + bl FUN_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + str r1, [r0, #0x0] +_02028D20: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02028D24 +FUN_02028D24: ; 0x02028D24 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02028D44 +FUN_02028D44: ; 0x02028D44 + push {r3-r5, lr} + add r4, r1, #0x0 + mov r2, #0x0 + mov r3, #0x3f +_02028D4C: + lsl r1, r2, #0x2 + ldr r5, [r0, r1] + and r5, r3 + cmp r5, #0xb + bne _02028D72 + mov r3, #0x0 + str r3, [r0, r1] + cmp r2, #0x3 + bhs _02028D7C +_02028D5E: + lsl r3, r2, #0x2 + add r1, r0, r3 + ldr r1, [r1, #0x4] + str r1, [r0, r3] + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x3 + blo _02028D5E + b _02028D7C +_02028D72: + add r1, r2, #0x1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + cmp r2, #0x4 + blo _02028D4C +_02028D7C: + bl FUN_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02028D98 +FUN_02028D98: ; 0x02028D98 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r6, #0x0 + mov r1, #0x3f +_02028DA0: + lsl r5, r6, #0x2 + ldr r3, [r0, r5] + add r2, r3, #0x0 + and r2, r1 + cmp r2, #0x9 + bne _02028DD4 + lsr r3, r3, #0x10 + lsl r3, r3, #0x10 + ldrh r2, [r4, #0x2] + lsr r3, r3, #0x10 + cmp r2, r3 + bne _02028DD4 + mov r1, #0x0 + str r1, [r0, r5] + cmp r6, #0x3 + bhs _02028DDE +_02028DC0: + lsl r2, r6, #0x2 + add r1, r0, r2 + ldr r1, [r1, #0x4] + str r1, [r0, r2] + add r1, r6, #0x1 + lsl r1, r1, #0x10 + lsr r6, r1, #0x10 + cmp r6, #0x3 + blo _02028DC0 + b _02028DDE +_02028DD4: + add r2, r6, #0x1 + lsl r2, r2, #0x10 + lsr r6, r2, #0x10 + cmp r6, #0x4 + blo _02028DA0 +_02028DDE: + bl FUN_02028C70 + ldrb r2, [r4, #0x0] + mov r1, #0x3f + and r1, r2 + ldrh r2, [r4, #0x2] + lsl r3, r2, #0x10 + ldrh r2, [r4, #0x4] + lsl r2, r2, #0x16 + lsr r2, r2, #0x10 + orr r2, r3 + orr r1, r2 + str r1, [r0, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02028DFC +FUN_02028DFC: ; 0x02028DFC + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E04: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028E12 + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E04 +_02028E12: + cmp r2, #0x0 + beq _02028E30 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028E30 + ldrh r2, [r4, #0x2] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028E42 +_02028E30: + bl FUN_02028C70 + ldrh r1, [r4, #0x2] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028E42: + pop {r4, pc} + + thumb_func_start FUN_02028E44 +FUN_02028E44: ; 0x02028E44 + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E4C: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028E5A + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E4C +_02028E5A: + cmp r2, #0x0 + beq _02028E78 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028E78 + ldrh r2, [r4, #0x6] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028E8A +_02028E78: + bl FUN_02028C70 + ldrh r1, [r4, #0x6] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028E8A: + pop {r4, pc} + + thumb_func_start FUN_02028E8C +FUN_02028E8C: ; 0x02028E8C + push {r4, lr} + add r4, r1, #0x0 + mov r2, #0x0 + add r3, r0, #0x0 +_02028E94: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _02028EA2 + add r2, r2, #0x1 + add r3, r3, #0x4 + cmp r2, #0x4 + blo _02028E94 +_02028EA2: + cmp r2, #0x0 + beq _02028EC0 + lsl r1, r2, #0x2 + add r1, r0, r1 + sub r1, r1, #0x4 + ldr r3, [r1, #0x0] + mov r1, #0x3f + ldrb r2, [r4, #0x0] + and r1, r3 + cmp r2, r1 + bne _02028EC0 + ldrh r2, [r4, #0x2] + lsr r1, r3, #0x10 + cmp r2, r1 + beq _02028ED2 +_02028EC0: + bl FUN_02028C70 + ldrh r1, [r4, #0x2] + ldrb r2, [r4, #0x0] + lsl r3, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r1, r3 + str r1, [r0, #0x0] +_02028ED2: + pop {r4, pc} + + thumb_func_start FUN_02028ED4 +FUN_02028ED4: ; 0x02028ED4 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r0, [r4, #0x0] + strb r0, [r5, #0x0] + ldrb r3, [r4, #0x1] + lsl r1, r3, #0x1c + lsr r2, r1, #0x1a + lsl r1, r3, #0x1b + lsr r1, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r1, #0x1 + orr r1, r2 + lsr r0, r0, #0x1f + orr r0, r1 + strb r0, [r5, #0x1] + add r0, r4, #0x2 + add r1, r5, #0x2 + mov r2, #0x8 + bl FUN_020292D4 + add r4, #0x12 + add r5, #0x12 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl FUN_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02028F10 +FUN_02028F10: ; 0x02028F10 + add r2, r0, #0x0 + ldrb r0, [r1, #0x0] + ldr r3, _02028F28 ; =FUN_020292D4 + strb r0, [r2, #0x0] + ldrb r0, [r1, #0x1] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + strb r0, [r2, #0x1] + add r0, r1, #0x2 + add r1, r2, #0x2 + mov r2, #0x8 + bx r3 + .balign 4 +_02028F28: .word FUN_020292D4 + + thumb_func_start FUN_02028F2C +FUN_02028F2C: ; 0x02028F2C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r0, [r4, #0x0] + mov r2, #0x8 + strb r0, [r5, #0x0] + ldrb r0, [r4, #0x1] + lsl r1, r0, #0x1b + lsr r1, r1, #0x1f + lsl r0, r0, #0x18 + lsl r1, r1, #0x2 + lsr r0, r0, #0x1e + orr r0, r1 + strb r0, [r5, #0x1] + add r0, r4, #0x2 + add r1, r5, #0x2 + bl FUN_020292D4 + add r4, #0x22 + add r5, #0x12 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0xc + bl FUN_020292D4 + pop {r3-r5, pc} + + thumb_func_start FUN_02028F60 +FUN_02028F60: ; 0x02028F60 + push {r4, lr} + add r4, r1, #0x0 + mov r3, #0x0 + add r2, r0, #0x0 +_02028F68: + ldrb r1, [r2, #0x1c] + cmp r1, #0x0 + beq _02028F76 + add r3, r3, #0x1 + add r2, #0x2a + cmp r3, #0x2 + blo _02028F68 +_02028F76: + cmp r3, #0x0 + beq _02028F8A + mov r1, #0x2a + mul r1, r3 + add r1, r0, r1 + sub r1, #0xe + ldrb r2, [r4, #0x0] + ldrb r1, [r1, #0x0] + cmp r2, r1 + beq _02028F92 +_02028F8A: + bl FUN_02028CA8 + ldrb r1, [r4, #0x0] + strb r1, [r0, #0x0] +_02028F92: + pop {r4, pc} + + thumb_func_start FUN_02028F94 +FUN_02028F94: ; 0x02028F94 + ldrb r2, [r1, #0x0] + strb r2, [r0, #0x0] + ldrb r1, [r1, #0x1] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + strb r1, [r0, #0x1] + bx lr + .balign 4 + + thumb_func_start FUN_02028FA4 +FUN_02028FA4: ; 0x02028FA4 + push {r3-r5, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x4 + bl FUN_02016998 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl FUN_020126B4 + ldr r2, [r4, #0x0] + mov r0, #0x7f + bic r2, r0 + ldr r1, [sp, #0x0] + mov r0, #0x7f + and r0, r1 + add r1, r2, #0x0 + orr r1, r0 + str r1, [r4, #0x0] + add r2, r1, #0x0 + ldr r1, [sp, #0x4] + ldr r0, _02029008 ; =0xFFFFF87F + lsl r1, r1, #0x1c + and r2, r0 + lsr r1, r1, #0x15 + orr r2, r1 + ldr r1, _0202900C ; =0xFFF83FFF + str r2, [r4, #0x0] + and r2, r1 + ldr r1, [sp, #0x8] + lsr r0, r0, #0xd + lsl r1, r1, #0x1b + lsr r1, r1, #0xd + orr r2, r1 + ldr r1, _02029010 ; =0xFFFFC7FF + str r2, [r4, #0x0] + and r2, r1 + ldr r1, [sp, #0xc] + lsl r1, r1, #0x1d + lsr r1, r1, #0x12 + orr r1, r2 + and r1, r0 + lsl r0, r5, #0x13 + orr r0, r1 + str r0, [r4, #0x0] + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02029008: .word 0xFFFFF87F +_0202900C: .word 0xFFF83FFF +_02029010: .word 0xFFFFC7FF + + thumb_func_start FUN_02029014 +FUN_02029014: ; 0x02029014 + push {r3, lr} + mov r1, #0x8 + bl FUN_02016998 + 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] + pop {r3, pc} + + thumb_func_start FUN_02029030 +FUN_02029030: ; 0x02029030 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x1 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202903C +FUN_0202903C: ; 0x0202903C + push {r3, lr} + bl FUN_02029014 + mov r1, #0x2 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029048 +FUN_02029048: ; 0x02029048 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x3 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029054 +FUN_02029054: ; 0x02029054 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x4 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029060 +FUN_02029060: ; 0x02029060 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x5 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202906C +FUN_0202906C: ; 0x0202906C + push {r3, lr} + bl FUN_02029014 + mov r1, #0x6 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029078 +FUN_02029078: ; 0x02029078 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x7 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029084 +FUN_02029084: ; 0x02029084 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x8 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029090 +FUN_02029090: ; 0x02029090 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0x9 + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020290A4 +FUN_020290A4: ; 0x020290A4 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl FUN_02029014 + mov r1, #0xa + strb r1, [r0, #0x0] + strh r5, [r0, #0x2] + strh r4, [r0, #0x4] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020290BC +FUN_020290BC: ; 0x020290BC + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0xb + strb r1, [r0, #0x0] + strh r4, [r0, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020290D0 +FUN_020290D0: ; 0x020290D0 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0xc + strb r1, [r0, #0x0] + strh r4, [r0, #0x4] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020290E4 +FUN_020290E4: ; 0x020290E4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0xd + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020290F8 +FUN_020290F8: ; 0x020290F8 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0xe + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202910C +FUN_0202910C: ; 0x0202910C + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0xf + strb r1, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02029120 +FUN_02029120: ; 0x02029120 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x10 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202912C +FUN_0202912C: ; 0x0202912C + push {r3, lr} + bl FUN_02029014 + mov r1, #0x11 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029138 +FUN_02029138: ; 0x02029138 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02029014 + mov r1, #0x12 + strb r1, [r0, #0x0] + strh r4, [r0, #0x6] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202914C +FUN_0202914C: ; 0x0202914C + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r2, #0x0 + add r4, r1, #0x0 + bl FUN_02029014 + add r5, #0x13 + strb r5, [r0, #0x0] + strh r4, [r0, #0x2] + pop {r3-r5, pc} + + thumb_func_start FUN_02029160 +FUN_02029160: ; 0x02029160 + push {r3, lr} + bl FUN_02029014 + mov r1, #0x22 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202916C +FUN_0202916C: ; 0x0202916C + push {r3, lr} + bl FUN_02029014 + mov r1, #0x23 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029178 +FUN_02029178: ; 0x02029178 + push {r3, lr} + mov r1, #0x4 + bl FUN_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + pop {r3, pc} + + thumb_func_start FUN_0202918C +FUN_0202918C: ; 0x0202918C + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_02029178 + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + strh r5, [r4, #0x2] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x3c + bic r1, r0 + lsl r0, r7, #0x1c + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + ldr r0, [sp, #0x0] + bl FUN_02029EC0 + mov r1, #0xa + bl _s32_div_f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _020291DA + cmp r0, #0x2 + beq _020291DA + cmp r0, #0x4 + bne _020291E4 +_020291DA: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + strb r1, [r4, #0x1] + b _02029206 +_020291E4: + cmp r0, #0x1 + beq _020291EC + cmp r0, #0x3 + bne _020291FA +_020291EC: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r4, #0x1] + b _02029206 +_020291FA: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x1] +_02029206: + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202920C +FUN_0202920C: ; 0x0202920C + push {r3-r7, lr} + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_02029178 + add r4, r0, #0x0 + mov r0, #0x2 + strb r0, [r4, #0x0] + strh r5, [r4, #0x2] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x3c + bic r1, r0 + lsl r0, r7, #0x1c + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + ldr r0, [sp, #0x0] + bl FUN_02029EC0 + mov r1, #0xa + bl _s32_div_f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + beq _0202925C + cmp r0, #0x3 + beq _0202925C + cmp r0, #0x5 + bne _02029266 +_0202925C: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + strb r1, [r4, #0x1] + b _02029288 +_02029266: + cmp r0, #0x2 + beq _0202926E + cmp r0, #0x4 + bne _0202927C +_0202926E: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r4, #0x1] + b _02029288 +_0202927C: + ldrb r1, [r4, #0x1] + mov r0, #0x3 + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x1] +_02029288: + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_0202928C +FUN_0202928C: ; 0x0202928C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r0, r2, #0x0 + mov r1, #0x4 + bl FUN_02016998 + ldrh r2, [r0, #0x0] + mov r1, #0x1 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r0, #0x0] + strh r5, [r0, #0x2] + ldrh r2, [r0, #0x0] + ldr r1, _020292B8 ; =0xFFFF0001 + and r2, r1 + lsl r1, r4, #0x11 + lsr r1, r1, #0x10 + orr r1, r2 + strh r1, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 +_020292B8: .word 0xFFFF0001 + + thumb_func_start FUN_020292BC +FUN_020292BC: ; 0x020292BC + push {r4, lr} + mov r1, #0x3a + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x3a + add r4, r0, #0x0 + bl memset + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020292D4 +FUN_020292D4: ; 0x020292D4 + push {r4-r5} + mov r4, #0x0 + cmp r2, #0x0 + bls _020292EA + ldr r3, _02029308 ; =0x0000FFFF + add r5, r1, #0x0 +_020292E0: + add r4, r4, #0x1 + strh r3, [r5, #0x0] + add r5, r5, #0x2 + cmp r4, r2 + blo _020292E0 +_020292EA: + mov r5, #0x0 + cmp r2, #0x0 + bls _02029304 + ldr r3, _02029308 ; =0x0000FFFF +_020292F2: + ldrh r4, [r0, #0x0] + cmp r4, r3 + beq _02029304 + add r5, r5, #0x1 + strh r4, [r1, #0x0] + add r0, r0, #0x2 + add r1, r1, #0x2 + cmp r5, r2 + blo _020292F2 +_02029304: + pop {r4-r5} + bx lr + .balign 4 +_02029308: .word 0x0000FFFF + + thumb_func_start FUN_0202930C +FUN_0202930C: ; 0x0202930C + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202934C +FUN_0202934C: ; 0x0202934C + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x2 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202938C +FUN_0202938C: ; 0x0202938C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x1c] + str r1, [sp, #0x0] + add r5, r2, #0x0 + add r6, r3, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x3 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + bic r0, r1 + add r1, sp, #0x8 + ldrb r2, [r1, #0x10] + mov r1, #0xf + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x20 + bic r1, r0 + lsl r0, r6, #0x1f + lsr r0, r0, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x12 + mov r2, #0x8 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020293EC +FUN_020293EC: ; 0x020293EC + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x4 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202942C +FUN_0202942C: ; 0x0202942C + push {r4-r6, lr} + add r6, r0, #0x0 + add r0, r2, #0x0 + add r5, r1, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x6 + strb r0, [r4, #0x0] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + mov r2, #0x8 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r6, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202945C +FUN_0202945C: ; 0x0202945C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r6, r3, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0x7 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x22 + mov r2, #0xc + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_020294A8 +FUN_020294A8: ; 0x020294A8 + push {r3, lr} + bl FUN_020292BC + mov r1, #0x8 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_020294B4 +FUN_020294B4: ; 0x020294B4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r3, #0x0 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0xb + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0xf + mov r2, #0x8 + bic r0, r1 + mov r1, #0xf + and r1, r6 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0x10 + bic r1, r0 + lsl r0, r5, #0x1f + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020294F4 +FUN_020294F4: ; 0x020294F4 + push {r3, lr} + bl FUN_020292BC + mov r1, #0xc + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029500 +FUN_02029500: ; 0x02029500 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_020292BC + mov r1, #0xd + strb r1, [r0, #0x0] + ldrb r2, [r0, #0x1] + mov r1, #0xf + bic r2, r1 + mov r1, #0xf + and r1, r4 + orr r1, r2 + strb r1, [r0, #0x1] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02029520 +FUN_02029520: ; 0x02029520 + push {r3, lr} + bl FUN_020292BC + mov r1, #0xe + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202952C +FUN_0202952C: ; 0x0202952C + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + add r5, r1, #0x0 + str r2, [sp, #0x0] + add r6, r3, #0x0 + bl FUN_020292BC + add r4, r0, #0x0 + mov r0, #0xf + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x8 + bic r0, r1 + lsl r1, r5, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x1] + mov r0, #0xc0 + bic r1, r0 + lsl r0, r6, #0x1e + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r7, #0x0 + add r1, r4, #0x2 + bl FUN_020292D4 + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x22 + mov r2, #0xc + bl FUN_020292D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02029578 +FUN_02029578: ; 0x02029578 + push {r3, lr} + bl FUN_020292BC + mov r1, #0x10 + strb r1, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02029584 +FUN_02029584: ; 0x02029584 + push {r3, lr} + cmp r2, #0x4 + bhi _020295DA + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02029596: ; jump table (using 16-bit offset) + .short _020295A0 - _02029596 - 2; case 0 + .short _020295AC - _02029596 - 2; case 1 + .short _020295B8 - _02029596 - 2; case 2 + .short _020295C4 - _02029596 - 2; case 3 + .short _020295D0 - _02029596 - 2; case 4 +_020295A0: + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl FUN_020295DC + pop {r3, pc} +_020295AC: + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl FUN_020295E4 + pop {r3, pc} +_020295B8: + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl FUN_02029690 + pop {r3, pc} +_020295C4: + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl FUN_0202969C + pop {r3, pc} +_020295D0: + mov r2, #0x70 + mul r2, r3 + add r0, r0, r2 + bl FUN_020296A8 +_020295DA: + pop {r3, pc} + + thumb_func_start FUN_020295DC +FUN_020295DC: ; 0x020295DC + ldr r0, [r0, #0x0] + str r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_020295E4 +FUN_020295E4: ; 0x020295E4 + push {r3-r7, lr} + mov r6, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r7, r6, #0x0 +_020295EE: + strb r7, [r4, #0x0] + strb r7, [r4, #0x1] + strb r7, [r4, #0x2] + strb r7, [r4, #0x3] + strb r7, [r4, #0x4] + strb r7, [r4, #0x5] + strb r7, [r4, #0x6] + strb r7, [r4, #0x7] + ldr r0, [r5, #0x4] + mov r1, #0x3f + and r1, r0 + cmp r1, #0x23 + bhi _02029682 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02029614: ; jump table (using 16-bit offset) + .short _02029682 - _02029614 - 2; case 0 + .short _0202965C - _02029614 - 2; case 1 + .short _0202965C - _02029614 - 2; case 2 + .short _0202965C - _02029614 - 2; case 3 + .short _0202965C - _02029614 - 2; case 4 + .short _0202965C - _02029614 - 2; case 5 + .short _0202965C - _02029614 - 2; case 6 + .short _0202965C - _02029614 - 2; case 7 + .short _0202965C - _02029614 - 2; case 8 + .short _02029664 - _02029614 - 2; case 9 + .short _02029664 - _02029614 - 2; case 10 + .short _02029664 - _02029614 - 2; case 11 + .short _02029664 - _02029614 - 2; case 12 + .short _0202966C - _02029614 - 2; case 13 + .short _0202966C - _02029614 - 2; case 14 + .short _0202966C - _02029614 - 2; case 15 + .short _0202965C - _02029614 - 2; case 16 + .short _0202965C - _02029614 - 2; case 17 + .short _02029674 - _02029614 - 2; case 18 + .short _0202967C - _02029614 - 2; case 19 + .short _0202967C - _02029614 - 2; case 20 + .short _0202967C - _02029614 - 2; case 21 + .short _0202967C - _02029614 - 2; case 22 + .short _0202967C - _02029614 - 2; case 23 + .short _0202967C - _02029614 - 2; case 24 + .short _0202967C - _02029614 - 2; case 25 + .short _0202967C - _02029614 - 2; case 26 + .short _0202967C - _02029614 - 2; case 27 + .short _0202967C - _02029614 - 2; case 28 + .short _0202967C - _02029614 - 2; case 29 + .short _0202967C - _02029614 - 2; case 30 + .short _02029682 - _02029614 - 2; case 31 + .short _0202967C - _02029614 - 2; case 32 + .short _0202967C - _02029614 - 2; case 33 + .short _0202965C - _02029614 - 2; case 34 + .short _0202965C - _02029614 - 2; case 35 +_0202965C: + add r1, r4, #0x0 + bl FUN_02029730 + b _02029682 +_02029664: + add r1, r4, #0x0 + bl FUN_02029738 + b _02029682 +_0202966C: + add r1, r4, #0x0 + bl FUN_02029750 + b _02029682 +_02029674: + add r1, r4, #0x0 + bl FUN_0202975C + b _02029682 +_0202967C: + add r1, r4, #0x0 + bl FUN_02029768 +_02029682: + add r6, r6, #0x1 + add r4, #0x8 + add r5, r5, #0x4 + cmp r6, #0x4 + blo _020295EE + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02029690 +FUN_02029690: ; 0x02029690 + ldrh r2, [r0, #0x14] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x16] + strh r0, [r1, #0x2] + bx lr + .balign 4 + + thumb_func_start FUN_0202969C +FUN_0202969C: ; 0x0202969C + ldrh r2, [r0, #0x18] + strh r2, [r1, #0x0] + ldrh r0, [r0, #0x1a] + strh r0, [r1, #0x2] + bx lr + .balign 4 + + thumb_func_start FUN_020296A8 +FUN_020296A8: ; 0x020296A8 + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r6, #0x0 + add r4, r1, #0x0 + mov r7, #0x0 + add r5, #0x1c +_020296B4: + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x3a + bl memset + ldrb r0, [r6, #0x1c] + cmp r0, #0x10 + bhi _02029722 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020296D0: ; jump table (using 16-bit offset) + .short _02029722 - _020296D0 - 2; case 0 + .short _020296F2 - _020296D0 - 2; case 1 + .short _020296F2 - _020296D0 - 2; case 2 + .short _020296F2 - _020296D0 - 2; case 3 + .short _020296F2 - _020296D0 - 2; case 4 + .short _020296F2 - _020296D0 - 2; case 5 + .short _020296FC - _020296D0 - 2; case 6 + .short _02029706 - _020296D0 - 2; case 7 + .short _02029710 - _020296D0 - 2; case 8 + .short _02029706 - _020296D0 - 2; case 9 + .short _02029710 - _020296D0 - 2; case 10 + .short _020296F2 - _020296D0 - 2; case 11 + .short _02029710 - _020296D0 - 2; case 12 + .short _0202971A - _020296D0 - 2; case 13 + .short _02029710 - _020296D0 - 2; case 14 + .short _02029706 - _020296D0 - 2; case 15 + .short _02029710 - _020296D0 - 2; case 16 +_020296F2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029774 + b _02029722 +_020296FC: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020297E4 + b _02029722 +_02029706: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029808 + b _02029722 +_02029710: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029860 + b _02029722 +_0202971A: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029868 +_02029722: + add r7, r7, #0x1 + add r4, #0x3a + add r6, #0x2a + add r5, #0x2a + cmp r7, #0x2 + blo _020296B4 + pop {r3-r7, pc} + + thumb_func_start FUN_02029730 +FUN_02029730: ; 0x02029730 + mov r2, #0x3f + and r0, r2 + strb r0, [r1, #0x0] + bx lr + + thumb_func_start FUN_02029738 +FUN_02029738: ; 0x02029738 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r3, r0, #0x6 + ldr r2, _0202974C ; =0x000003FF + lsr r0, r0, #0x10 + and r2, r3 + strh r2, [r1, #0x4] + strh r0, [r1, #0x2] + bx lr + .balign 4 +_0202974C: .word 0x000003FF + + thumb_func_start FUN_02029750 +FUN_02029750: ; 0x02029750 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + bx lr + + thumb_func_start FUN_0202975C +FUN_0202975C: ; 0x0202975C + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x6] + bx lr + + thumb_func_start FUN_02029768 +FUN_02029768: ; 0x02029768 + mov r2, #0x3f + and r2, r0 + strb r2, [r1, #0x0] + lsr r0, r0, #0x10 + strh r0, [r1, #0x2] + bx lr + + thumb_func_start FUN_02029774 +FUN_02029774: ; 0x02029774 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x0] + add r4, r1, #0x0 + mov r1, #0xf + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r2, r1, #0x2 + mov r1, #0x1f + and r1, r2 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + mov r1, #0xf + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x10 + mov r2, #0x1 + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r1, r1, #0x1 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0x20 + bic r0, r1 + ldrb r1, [r5, #0x1] + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1a + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r5, #0x2 + add r1, r4, #0x2 + mov r2, #0x8 + bl FUN_020292D4 + add r5, #0x12 + add r4, #0x12 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x8 + bl FUN_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020297E4 +FUN_020297E4: ; 0x020297E4 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r3, [r1, #0x1] + mov r2, #0x10 + bic r3, r2 + ldrb r2, [r0, #0x1] + add r0, r0, #0x2 + lsl r2, r2, #0x1f + lsr r2, r2, #0x1b + orr r2, r3 + strb r2, [r1, #0x1] + ldr r3, _02029804 ; =FUN_020292D4 + add r1, r1, #0x2 + mov r2, #0x8 + bx r3 + nop +_02029804: .word FUN_020292D4 + + thumb_func_start FUN_02029808 +FUN_02029808: ; 0x02029808 + push {r3-r5, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0x0] + add r4, r1, #0x0 + mov r1, #0x10 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x1] + bic r0, r1 + ldrb r1, [r5, #0x1] + asr r2, r1, #0x2 + mov r1, #0x1 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + lsr r1, r1, #0x1b + orr r0, r1 + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x1] + mov r1, #0xc0 + ldrb r2, [r5, #0x1] + bic r0, r1 + mov r1, #0x3 + and r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1e + lsr r1, r1, #0x18 + orr r0, r1 + strb r0, [r4, #0x1] + add r0, r5, #0x2 + add r1, r4, #0x2 + mov r2, #0x8 + bl FUN_020292D4 + add r5, #0x12 + add r4, #0x22 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0xc + bl FUN_020292D4 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02029860 +FUN_02029860: ; 0x02029860 + ldrb r0, [r0, #0x0] + strb r0, [r1, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02029868 +FUN_02029868: ; 0x02029868 + ldrb r2, [r0, #0x0] + strb r2, [r1, #0x0] + ldrb r3, [r1, #0x1] + mov r2, #0xf + bic r3, r2 + ldrb r2, [r0, #0x1] + mov r0, #0xf + and r0, r2 + orr r0, r3 + strb r0, [r1, #0x1] + bx lr + .balign 4 + + thumb_func_start FUN_02029880 +FUN_02029880: ; 0x02029880 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + mov r0, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0x4] + add r0, r4, #0x0 + str r1, [sp, #0x0] + add r5, r2, #0x0 + ldr r6, [sp, #0x20] + bl FUN_02034930 + cmp r0, #0x1 + bne _020298BA + add r0, r5, #0x0 + bl FUN_02034964 + cmp r0, #0x1 + bne _02029942 + add r0, r4, #0x0 + bl FUN_02034824 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r6, #0x0 + bl FUN_020290F8 + str r0, [sp, #0x4] + b _02029942 +_020298BA: + add r0, r4, #0x0 + bl FUN_02034944 + cmp r0, #0x1 + bne _0202991A + add r0, r5, #0x0 + bl FUN_02034964 + cmp r0, #0x1 + bne _02029942 + ldr r0, _02029958 ; =0x0000019E + cmp r4, r0 + bne _020298DE + add r0, r6, #0x0 + bl FUN_02029030 + str r0, [sp, #0x4] + b _02029942 +_020298DE: + add r0, #0x8 + cmp r4, r0 + bne _020298EE + add r0, r6, #0x0 + bl FUN_0202903C + str r0, [sp, #0x4] + b _02029942 +_020298EE: + add r0, r4, #0x0 + bl FUN_02034824 + add r7, r0, #0x0 + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + ldr r5, _0202995C ; =0x020EE9A4 + mov r4, #0x0 + str r0, [sp, #0x8] +_02029900: + ldr r0, [r5, #0x0] + cmp r7, r0 + bne _02029910 + ldr r0, [sp, #0x8] + add r1, r6, #0x0 + bl FUN_0202910C + str r0, [sp, #0x4] +_02029910: + add r4, r4, #0x1 + add r5, #0x8 + cmp r4, #0x1b + blo _02029900 + b _02029942 +_0202991A: + add r0, r4, #0x0 + bl FUN_02034964 + cmp r0, #0x1 + bne _02029942 + add r0, r5, #0x0 + bl FUN_02034944 + cmp r0, #0x1 + bne _02029942 + add r0, r7, #0x0 + add r1, r5, #0x0 + bl FUN_02029988 + cmp r0, #0xff + beq _02029942 + add r1, r6, #0x0 + bl FUN_02029090 + str r0, [sp, #0x4] +_02029942: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _02029952 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + mov r2, #0x1 + bl FUN_02028AD4 +_02029952: + add sp, #0xc + pop {r4-r7, pc} + nop +_02029958: .word 0x0000019E +_0202995C: .word 0x020EE9A4 + + thumb_func_start FUN_02029960 +FUN_02029960: ; 0x02029960 + ldr r3, _02029980 ; =0x020EE9A4 + mov r2, #0x0 +_02029964: + ldr r1, [r3, #0x0] + cmp r0, r1 + bne _02029972 + ldr r0, _02029984 ; =0x020EE9A8 + lsl r1, r2, #0x3 + ldr r0, [r0, r1] + bx lr +_02029972: + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, #0x1b + blo _02029964 + mov r0, #0x0 + bx lr + nop +_02029980: .word 0x020EE9A4 +_02029984: .word 0x020EE9A8 + + thumb_func_start FUN_02029988 +FUN_02029988: ; 0x02029988 + push {r3-r5, lr} + ldr r2, _020299B8 ; =0x020EE964 + mov r4, #0x0 +_0202998E: + lsl r3, r4, #0x3 + add r5, r2, r3 + ldrh r5, [r5, #0x4] + cmp r1, r5 + bne _020299A8 + ldr r1, _020299BC ; =0x020EE96A + ldrh r1, [r1, r3] + bl FUN_020239D0 + cmp r0, #0x0 + bne _020299B2 + add r0, r4, #0x0 + pop {r3-r5, pc} +_020299A8: + add r3, r4, #0x1 + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 + cmp r4, #0x8 + blo _0202998E +_020299B2: + mov r0, #0xff + pop {r3-r5, pc} + nop +_020299B8: .word 0x020EE964 +_020299BC: .word 0x020EE96A + + thumb_func_start FUN_020299C0 +FUN_020299C0: ; 0x020299C0 + push {r4, lr} + add r4, r0, #0x0 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + add r1, r2, #0x0 + bl FUN_020290E4 + add r1, r0, #0x0 + add r0, r4, #0x0 + mov r2, #0x1 + bl FUN_02028AD4 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020299DC +FUN_020299DC: ; 0x020299DC + push {r3-r7, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r7, r1, #0x0 + add r6, r3, #0x0 + bl FUN_02029A48 + cmp r0, #0x8 + bhs _02029A04 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020290A4 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl FUN_02028AD4 + pop {r3-r7, pc} +_02029A04: + bne _02029A1A + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_020290BC + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl FUN_02028AD4 + pop {r3-r7, pc} +_02029A1A: + cmp r0, #0x9 + bne _02029A32 + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_020290D0 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x1 + bl FUN_02028AD4 + pop {r3-r7, pc} +_02029A32: + add r0, r7, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_0202928C + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0x3 + bl FUN_02028AD4 + pop {r3-r7, pc} + + thumb_func_start FUN_02029A48 +FUN_02029A48: ; 0x02029A48 + ldr r2, _02029A7C ; =0x020EE964 + mov r3, #0x0 +_02029A4C: + lsl r1, r3, #0x3 + ldr r1, [r2, r1] + cmp r0, r1 + bne _02029A58 + add r0, r3, #0x0 + bx lr +_02029A58: + add r1, r3, #0x1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x8 + blo _02029A4C + ldr r1, _02029A80 ; =0x00000105 + sub r2, r0, r1 + cmp r2, #0x3 + bhi _02029A6E + mov r0, #0x8 + bx lr +_02029A6E: + add r1, r1, #0x6 + cmp r0, r1 + bne _02029A78 + mov r0, #0x9 + bx lr +_02029A78: + mov r0, #0xa + bx lr + .balign 4 +_02029A7C: .word 0x020EE964 +_02029A80: .word 0x00000105 + + thumb_func_start FUN_02029A84 +FUN_02029A84: ; 0x02029A84 + mov r0, #0x62 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_02029A8C +FUN_02029A8C: ; 0x02029A8C + push {r4-r6, lr} + mov r2, #0x62 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x4 + bl memset + add r0, r4, #0x0 + bl FUN_02029ACC + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x8c +_02029AA6: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02029AD8 + add r4, r4, #0x1 + cmp r4, #0x8 + blt _02029AA6 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02029ABC +FUN_02029ABC: ; 0x02029ABC + ldr r3, _02029AC4 ; =FUN_02022610 + mov r1, #0x13 + bx r3 + nop +_02029AC4: .word FUN_02022610 + + thumb_func_start FUN_02029AC8 +FUN_02029AC8: ; 0x02029AC8 + add r0, #0x20 + bx lr + + thumb_func_start FUN_02029ACC +FUN_02029ACC: ; 0x02029ACC + bx lr + .balign 4 + + thumb_func_start FUN_02029AD0 +FUN_02029AD0: ; 0x02029AD0 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02029AD8 +FUN_02029AD8: ; 0x02029AD8 + lsl r0, r0, #0x2 + str r1, [r2, r0] + bx lr + .balign 4 + + thumb_func_start FUN_02029AE0 +FUN_02029AE0: ; 0x02029AE0 + ldr r0, _02029AE4 ; =0x00000FF8 + bx lr + .balign 4 +_02029AE4: .word 0x00000FF8 + + thumb_func_start FUN_02029AE8 +FUN_02029AE8: ; 0x02029AE8 + ldr r3, _02029AF4 ; =MIi_CpuClear32 + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _02029AF8 ; =0x00000FF8 + bx r3 + nop +_02029AF4: .word MIi_CpuClear32 +_02029AF8: .word 0x00000FF8 + + thumb_func_start FUN_02029AFC +FUN_02029AFC: ; 0x02029AFC + ldr r3, _02029B04 ; =FUN_02022610 + mov r1, #0x1e + bx r3 + nop +_02029B04: .word FUN_02022610 + + thumb_func_start FUN_02029B08 +FUN_02029B08: ; 0x02029B08 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + lsl r0, r0, #0x8 + add r4, r2, #0x0 + cmp r5, r0 + blt _02029B1C + bl ErrorHandling +_02029B1C: + cmp r4, #0x40 + blt _02029B24 + bl ErrorHandling +_02029B24: + strb r5, [r6, #0x5] + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + mov r3, #0x3 + strb r4, [r6, #0x6] + bl FUN_02029B90 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02029B38 +FUN_02029B38: ; 0x02029B38 + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start FUN_02029B3C +FUN_02029B3C: ; 0x02029B3C + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start FUN_02029B40 +FUN_02029B40: ; 0x02029B40 + push {r4-r6, lr} + add r6, r0, #0x0 + mov r0, #0x1 + add r5, r1, #0x0 + lsl r0, r0, #0x8 + add r4, r2, #0x0 + cmp r5, r0 + blt _02029B54 + bl ErrorHandling +_02029B54: + cmp r4, #0x40 + blt _02029B5C + bl ErrorHandling +_02029B5C: + cmp r5, #0x0 + bne _02029B64 + mov r0, #0x0 + pop {r4-r6, pc} +_02029B64: + asr r0, r4, #0x1 + lsr r0, r0, #0x1e + add r0, r4, r0 + asr r1, r0, #0x2 + sub r0, r5, #0x1 + lsl r0, r0, #0x4 + add r0, r1, r0 + add r0, r6, r0 + ldrb r3, [r0, #0x7] + lsr r2, r4, #0x1f + lsl r1, r4, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x1 + add r1, r3, #0x0 + asr r1, r0 + mov r0, #0x3 + and r0, r1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02029B90 +FUN_02029B90: ; 0x02029B90 + push {r3-r7, lr} + add r7, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + str r3, [sp, #0x0] + cmp r3, #0x4 + blt _02029BA2 + bl ErrorHandling +_02029BA2: + mov r0, #0x1 + lsl r0, r0, #0x8 + cmp r5, r0 + blt _02029BAE + bl ErrorHandling +_02029BAE: + cmp r4, #0x40 + blt _02029BB6 + bl ErrorHandling +_02029BB6: + cmp r5, #0x0 + beq _02029BFE + asr r0, r4, #0x1 + lsr r0, r0, #0x1e + add r0, r4, r0 + asr r2, r0, #0x2 + sub r0, r5, #0x1 + lsl r0, r0, #0x4 + add r0, r2, r0 + lsr r2, r4, #0x1f + lsl r4, r4, #0x1e + sub r4, r4, r2 + mov r3, #0x1e + ror r4, r3 + add r2, r2, r4 + lsl r6, r2, #0x1 + mov r2, #0x3 + add r3, r2, #0x0 + add r1, r7, #0x7 + ldrb r4, [r1, r0] + lsl r3, r6 + mov r2, #0xff + eor r2, r3 + and r2, r4 + ldr r3, [sp, #0x0] + strb r2, [r1, r0] + ldrb r2, [r1, r0] + lsl r3, r6 + orr r2, r3 + strb r2, [r1, r0] + cmp r5, #0x67 + beq _02029BFE + add r0, r7, #0x0 + mov r1, #0x1 + bl FUN_02029C04 +_02029BFE: + pop {r3-r7, pc} + + thumb_func_start FUN_02029C00 +FUN_02029C00: ; 0x02029C00 + ldrb r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_02029C04 +FUN_02029C04: ; 0x02029C04 + strb r1, [r0, #0x4] + bx lr + + thumb_func_start FUN_02029C08 +FUN_02029C08: ; 0x02029C08 + push {r3-r7, lr} + mov lr, r0 + mov r0, #0x3 + mov r7, #0x0 + mov r4, #0x2 + mov r6, #0xff + add r3, r0, #0x0 +_02029C16: + mov r1, lr + add r1, r1, r7 + ldrb r2, [r1, #0x7] + mov r12, r1 + mov r1, #0x0 +_02029C20: + add r5, r2, #0x0 + asr r5, r1 + and r5, r3 + cmp r5, #0x1 + bne _02029C40 + add r5, r0, #0x0 + lsl r5, r1 + eor r5, r6 + and r2, r5 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + add r2, r4, #0x0 + lsl r2, r1 + orr r2, r5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 +_02029C40: + add r1, r1, #0x2 + cmp r1, #0x8 + blt _02029C20 + mov r1, r12 + strb r2, [r1, #0x7] + mov r1, #0xff + add r7, r7, #0x1 + lsl r1, r1, #0x4 + cmp r7, r1 + blt _02029C16 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02029C58 +FUN_02029C58: ; 0x02029C58 + mov r0, #0x17 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_02029C60 +FUN_02029C60: ; 0x02029C60 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02029C58 + add r2, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x0 + bl MI_CpuFill8 + pop {r4, pc} + + thumb_func_start FUN_02029C74 +FUN_02029C74: ; 0x02029C74 + ldr r3, _02029C7C ; =MI_CpuCopy8 + mov r2, #0x18 + bx r3 + nop +_02029C7C: .word MI_CpuCopy8 + + thumb_func_start FUN_02029C80 +FUN_02029C80: ; 0x02029C80 + ldr r3, _02029C88 ; =FUN_02022610 + mov r1, #0x15 + bx r3 + nop +_02029C88: .word FUN_02022610 + + thumb_func_start FUN_02029C8C +FUN_02029C8C: ; 0x02029C8C + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0xc + blt _02029C9A + bl ErrorHandling +_02029C9A: + mov r0, #0x18 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02029CA4 +FUN_02029CA4: ; 0x02029CA4 + push {r4-r6, lr} + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r6, #0xc + blt _02029CB4 + bl ErrorHandling +_02029CB4: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02029C8C + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_02029C74 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02029CC8 +FUN_02029CC8: ; 0x02029CC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blt _02029CD6 + bl ErrorHandling +_02029CD6: + lsl r0, r4, #0x1 + add r0, r4, r0 + add r0, r5, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02029CE0 +FUN_02029CE0: ; 0x02029CE0 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02029CE4 +FUN_02029CE4: ; 0x02029CE4 + ldrb r0, [r0, #0x1] + bx lr + + thumb_func_start FUN_02029CE8 +FUN_02029CE8: ; 0x02029CE8 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_02029CEC +FUN_02029CEC: ; 0x02029CEC + mov r1, #0x12 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + + thumb_func_start FUN_02029CF4 +FUN_02029CF4: ; 0x02029CF4 + ldrb r0, [r0, r1] + bx lr + + thumb_func_start FUN_02029CF8 +FUN_02029CF8: ; 0x02029CF8 + mov r3, #0x0 + add r2, r1, #0x1 +_02029CFC: + ldrb r1, [r0, #0x0] + cmp r2, r1 + bne _02029D06 + mov r0, #0x1 + bx lr +_02029D06: + add r3, r3, #0x1 + add r0, r0, #0x3 + cmp r3, #0x8 + blt _02029CFC + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_02029D14 +FUN_02029D14: ; 0x02029D14 + push {r4-r7} + mov r6, #0x0 + add r4, r6, #0x0 + add r2, r1, #0x1 + add r3, r6, #0x0 +_02029D1E: + add r5, r3, #0x0 + add r7, r0, #0x0 +_02029D22: + ldrb r1, [r7, #0x0] + cmp r2, r1 + bne _02029D2A + add r6, r6, #0x1 +_02029D2A: + add r5, r5, #0x1 + add r7, r7, #0x3 + cmp r5, #0x8 + blt _02029D22 + add r4, r4, #0x1 + add r0, #0x18 + cmp r4, #0xc + blt _02029D1E + add r0, r6, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start FUN_02029D40 +FUN_02029D40: ; 0x02029D40 + strb r2, [r0, r1] + bx lr + + thumb_func_start FUN_02029D44 +FUN_02029D44: ; 0x02029D44 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02029D14 + mov r1, #0x12 + lsl r1, r1, #0x4 + add r2, r6, r1 + sub r1, r5, #0x1 + ldrb r3, [r2, r1] + add r0, r0, r3 + cmp r4, #0x0 + bge _02029D6E + add r0, r4, r3 + bmi _02029D6A + strb r0, [r2, r1] + b _02029D7E +_02029D6A: + mov r0, #0x0 + pop {r4-r6, pc} +_02029D6E: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029D7A + add r0, r3, r4 + strb r0, [r2, r1] + b _02029D7E +_02029D7A: + mov r0, #0x0 + pop {r4-r6, pc} +_02029D7E: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02029D84 +FUN_02029D84: ; 0x02029D84 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02029D14 + cmp r4, #0x0 + bge _02029DAC + mov r0, #0x12 + lsl r0, r0, #0x4 + add r2, r6, r0 + sub r1, r5, #0x1 + ldrb r0, [r2, r1] + add r0, r4, r0 + bmi _02029DA8 + strb r0, [r2, r1] + b _02029DD0 +_02029DA8: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DAC: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029DCC + mov r0, #0x12 + lsl r0, r0, #0x4 + add r2, r6, r0 + sub r1, r5, #0x1 + ldrb r0, [r2, r1] + add r0, r0, r4 + strb r0, [r2, r1] + ldrb r0, [r2, r1] + cmp r0, #0x63 + blo _02029DD0 + mov r0, #0x63 + strb r0, [r2, r1] + b _02029DD0 +_02029DCC: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DD0: + mov r0, #0x1 + pop {r4-r6, pc} + + thumb_func_start FUN_02029DD4 +FUN_02029DD4: ; 0x02029DD4 + push {r4-r6, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r6, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02029D14 + sub r1, r5, #0x1 + add r2, r6, r1 + mov r1, #0x12 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + add r0, r0, r1 + cmp r4, #0x0 + bge _02029DFE + add r0, r4, r1 + bmi _02029DFA + mov r0, #0x1 + pop {r4-r6, pc} +_02029DFA: + mov r0, #0x0 + pop {r4-r6, pc} +_02029DFE: + add r0, r0, r4 + cmp r0, #0x63 + bgt _02029E08 + mov r0, #0x1 + pop {r4-r6, pc} +_02029E08: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02029E0C +FUN_02029E0C: ; 0x02029E0C + push {r4-r6, lr} + add r6, r0, #0x0 + mov r5, #0x0 + mov r4, #0x1 +_02029E14: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02029E2C + cmp r0, #0x0 + beq _02029E22 + add r5, r5, #0x1 +_02029E22: + add r4, r4, #0x1 + cmp r4, #0x51 + blt _02029E14 + add r0, r5, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02029E2C +FUN_02029E2C: ; 0x02029E2C + push {r3-r5, lr} + add r5, r1, #0x0 + sub r1, r5, #0x1 + add r4, r0, #0x0 + bl FUN_02029D14 + sub r1, r5, #0x1 + add r2, r4, r1 + mov r1, #0x12 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + add r0, r0, r1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02029E48 +FUN_02029E48: ; 0x02029E48 + mov r1, #0x0 + strh r1, [r0, #0x0] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start FUN_02029E54 +FUN_02029E54: ; 0x02029E54 + push {r3-r7, lr} + add r5, r0, #0x0 + ldrh r6, [r5, #0x0] + ldr r0, _02029EB8 ; =0x000003E7 + cmp r6, r0 + bne _02029E6C + ldrb r0, [r5, #0x2] + cmp r0, #0x3b + bne _02029E6C + ldrb r0, [r5, #0x3] + cmp r0, #0x3b + beq _02029EB4 +_02029E6C: + ldrb r0, [r5, #0x3] + ldrb r4, [r5, #0x2] + add r7, r0, r1 + cmp r7, #0x3b + bls _02029EAE + add r0, r7, #0x0 + mov r1, #0x3c + bl _u32_div_f + add r4, r4, r0 + add r0, r7, #0x0 + mov r1, #0x3c + bl _u32_div_f + add r7, r1, #0x0 + cmp r4, #0x3b + bls _02029EAE + add r0, r4, #0x0 + mov r1, #0x3c + bl _u32_div_f + add r6, r6, r0 + add r0, r4, #0x0 + mov r1, #0x3c + bl _u32_div_f + ldr r0, _02029EB8 ; =0x000003E7 + add r4, r1, #0x0 + cmp r6, r0 + blo _02029EAE + mov r4, #0x3b + add r6, r0, #0x0 + add r7, r4, #0x0 +_02029EAE: + strh r6, [r5, #0x0] + strb r4, [r5, #0x2] + strb r7, [r5, #0x3] +_02029EB4: + pop {r3-r7, pc} + nop +_02029EB8: .word 0x000003E7 + + thumb_func_start FUN_02029EBC +FUN_02029EBC: ; 0x02029EBC + ldrh r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02029EC0 +FUN_02029EC0: ; 0x02029EC0 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_02029EC4 +FUN_02029EC4: ; 0x02029EC4 + mov r0, #0xfb + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_02029ECC +FUN_02029ECC: ; 0x02029ECC + push {r4, lr} + add r4, r0, #0x0 + mov r2, #0xfb + mov r0, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + bl MIi_CpuClear32 + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02029EE4 +FUN_02029EE4: ; 0x02029EE4 + push {r4, lr} + mov r1, #0xfb + lsl r1, r1, #0x2 + bl FUN_02016998 + add r4, r0, #0x0 + bl FUN_02029ECC + add r0, r4, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02029EF8 +FUN_02029EF8: ; 0x02029EF8 + ldr r3, _02029F00 ; =FUN_02022610 + mov r1, #0x16 + bx r3 + nop +_02029F00: .word FUN_02022610 + + thumb_func_start FUN_02029F04 +FUN_02029F04: ; 0x02029F04 + ldr r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_02029F08 +FUN_02029F08: ; 0x02029F08 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02029F10 +FUN_02029F10: ; 0x02029F10 + add r0, r0, #0x4 + bx lr + + thumb_func_start FUN_02029F14 +FUN_02029F14: ; 0x02029F14 + push {r4-r7} + mov r5, #0x0 + mov r2, #0xfa + add r4, r5, #0x0 + mov r6, #0xf + lsl r2, r2, #0x2 +_02029F20: + ldrsb r7, [r1, r4] + add r3, r0, r5 + and r7, r6 + lsl r7, r7, #0x18 + lsr r7, r7, #0x18 + sub r7, #0x8 + lsl r7, r7, #0x18 + asr r7, r7, #0x14 + strb r7, [r0, r5] + ldrsb r7, [r1, r4] + add r4, r4, #0x1 + add r5, r5, #0x2 + lsl r7, r7, #0x14 + lsr r7, r7, #0x18 + sub r7, #0x8 + lsl r7, r7, #0x18 + asr r7, r7, #0x14 + strb r7, [r3, #0x1] + cmp r4, r2 + blt _02029F20 + pop {r4-r7} + bx lr + + thumb_func_start FUN_02029F4C +FUN_02029F4C: ; 0x02029F4C + push {r4-r7} + add r3, r0, #0x0 + add r2, r1, #0x0 + mov r0, #0x1 + mov r1, #0x0 + str r0, [r3, #0x0] + add r0, r1, #0x0 +_02029F5A: + ldrsb r4, [r2, r0] + add r6, r3, r1 + add r7, r2, r0 + asr r5, r4, #0x3 + lsr r5, r5, #0x1c + add r5, r4, r5 + lsl r4, r5, #0x14 + asr r4, r4, #0x18 + add r4, #0x8 + strb r4, [r6, #0x4] + mov r4, #0x4 + ldrsb r5, [r6, r4] + mov r4, #0x1 + ldrsb r4, [r7, r4] + add r0, r0, #0x2 + add r1, r1, #0x1 + asr r7, r4, #0x3 + lsr r7, r7, #0x1c + add r7, r4, r7 + lsl r4, r7, #0x14 + asr r4, r4, #0x18 + add r4, #0x8 + lsl r4, r4, #0x18 + lsr r4, r4, #0x14 + orr r4, r5 + strb r4, [r6, #0x4] + mov r4, #0x7d + lsl r4, r4, #0x4 + cmp r0, r4 + blt _02029F5A + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_02029F9C +FUN_02029F9C: ; 0x02029F9C + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xfb + ldr r3, _02029FAC ; =MIi_CpuCopyFast + lsl r2, r2, #0x2 + bx r3 + nop +_02029FAC: .word MIi_CpuCopyFast + + thumb_func_start FUN_02029FB0 +FUN_02029FB0: ; 0x02029FB0 + mov r0, #0x53 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_02029FB8 +FUN_02029FB8: ; 0x02029FB8 + ldr r3, _02029FC4 ; =MIi_CpuClear32 + mov r2, #0x53 + add r1, r0, #0x0 + mov r0, #0x0 + lsl r2, r2, #0x2 + bx r3 + .balign 4 +_02029FC4: .word MIi_CpuClear32 + + thumb_func_start FUN_02029FC8 +FUN_02029FC8: ; 0x02029FC8 + ldr r3, _02029FD0 ; =FUN_02022610 + mov r1, #0x14 + bx r3 + nop +_02029FD0: .word FUN_02022610 + + thumb_func_start FUN_02029FD4 +FUN_02029FD4: ; 0x02029FD4 + push {r3, lr} + cmp r1, #0x2c + bge _02029FE0 + lsl r1, r1, #0x2 + ldr r0, [r0, r1] + pop {r3, pc} +_02029FE0: + cmp r1, #0x79 + bge _02029FF0 + sub r1, #0x2c + lsl r1, r1, #0x1 + add r0, r0, r1 + add r0, #0xb0 + ldrh r0, [r0, #0x0] + pop {r3, pc} +_02029FF0: + bl ErrorHandling + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_02029FF8 +FUN_02029FF8: ; 0x02029FF8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2c + bge _0202A008 + lsl r0, r4, #0x2 + str r2, [r5, r0] + b _0202A01E +_0202A008: + cmp r4, #0x79 + bge _0202A01A + add r0, r4, #0x0 + sub r0, #0x2c + lsl r0, r0, #0x1 + add r0, r5, r0 + add r0, #0xb0 + strh r2, [r0, #0x0] + b _0202A01E +_0202A01A: + bl ErrorHandling +_0202A01E: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029FD4 + pop {r3-r5, pc} + + thumb_func_start FUN_0202A028 +FUN_0202A028: ; 0x0202A028 + push {r3, lr} + cmp r0, #0x2c + bge _0202A03E + ldr r1, _0202A05C ; =0x02105CD8 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202A03A + ldr r0, _0202A060 ; =0x3B9AC9FF + pop {r3, pc} +_0202A03A: + ldr r0, _0202A064 ; =0x000F423F + pop {r3, pc} +_0202A03E: + cmp r0, #0x79 + bge _0202A052 + ldr r1, _0202A05C ; =0x02105CD8 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202A04E + ldr r0, _0202A068 ; =0x0000FFFF + pop {r3, pc} +_0202A04E: + ldr r0, _0202A06C ; =0x0000270F + pop {r3, pc} +_0202A052: + bl ErrorHandling + mov r0, #0x0 + pop {r3, pc} + nop +_0202A05C: .word 0x02105CD8 +_0202A060: .word 0x3B9AC9FF +_0202A064: .word 0x000F423F +_0202A068: .word 0x0000FFFF +_0202A06C: .word 0x0000270F + + thumb_func_start FUN_0202A070 +FUN_0202A070: ; 0x0202A070 + lsl r1, r0, #0x1 + ldr r0, _0202A078 ; =0x020EEA7C + ldrh r0, [r0, r1] + bx lr + .balign 4 +_0202A078: .word 0x020EEA7C + + thumb_func_start FUN_0202A07C +FUN_0202A07C: ; 0x0202A07C + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r4, r2, #0x0 + bl FUN_0202A028 + add r2, r0, #0x0 + cmp r4, r2 + bhs _0202A09C + add r0, r6, #0x0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_02029FF8 + pop {r4-r6, pc} +_0202A09C: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02029FF8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202A0A8 +FUN_0202A0A8: ; 0x0202A0A8 + push {r3-r7, lr} + add r6, r1, #0x0 + add r7, r0, #0x0 + add r0, r6, #0x0 + add r5, r2, #0x0 + bl FUN_0202A028 + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r6, #0x0 + bl FUN_02029FD4 + cmp r5, r4 + bls _0202A0C6 + add r5, r4, #0x0 +_0202A0C6: + cmp r0, r5 + bhs _0202A0D6 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02029FF8 + pop {r3-r7, pc} +_0202A0D6: + cmp r0, r4 + bls _0202A0E4 + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl FUN_02029FF8 +_0202A0E4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202A0E8 +FUN_0202A0E8: ; 0x0202A0E8 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0202A028 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02029FD4 + add r2, r0, #0x1 + cmp r2, r4 + bhs _0202A10E + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02029FF8 + pop {r4-r6, pc} +_0202A10E: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x0 + bl FUN_02029FF8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202A11C +FUN_0202A11C: ; 0x0202A11C + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r7, r2, #0x0 + bl FUN_0202A028 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029FD4 + add r2, r0, r7 + cmp r2, r6 + bhs _0202A144 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02029FF8 + pop {r3-r7, pc} +_0202A144: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02029FF8 + pop {r3-r7, pc} + + thumb_func_start FUN_0202A150 +FUN_0202A150: ; 0x0202A150 + push {r4-r6, lr} + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0202A028 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02029FD4 + cmp r0, r4 + bhi _0202A16C + add r4, r0, #0x0 +_0202A16C: + add r0, r4, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_0202A170 +FUN_0202A170: ; 0x0202A170 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x26 + blt _0202A17E + bl ErrorHandling +_0202A17E: + add r0, r5, #0x0 + mov r1, #0x0 + bl FUN_0202A150 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0202A070 + ldr r2, _0202A1B4 ; =0x05F5E0FF + add r0, r6, r0 + cmp r0, r2 + bls _0202A1A0 + add r0, r5, #0x0 + mov r1, #0x0 + bl FUN_0202A07C + pop {r4-r6, pc} +_0202A1A0: + add r0, r4, #0x0 + bl FUN_0202A070 + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x0 + bl FUN_0202A11C + pop {r4-r6, pc} + nop +_0202A1B4: .word 0x05F5E0FF + + thumb_func_start FUN_0202A1B8 +FUN_0202A1B8: ; 0x0202A1B8 + ldr r3, _0202A1C0 ; =FUN_0202A150 + mov r1, #0x0 + bx r3 + nop +_0202A1C0: .word FUN_0202A150 + + thumb_func_start FUN_0202A1C4 +FUN_0202A1C4: ; 0x0202A1C4 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + bl FUN_02024594 + cmp r0, #0x0 + bne _0202A1DC + add r0, r4, #0x0 + mov r1, #0x16 + bl FUN_0202A170 +_0202A1DC: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202A1E0 +FUN_0202A1E0: ; 0x0202A1E0 + mov r0, #0xe4 + bx lr + + thumb_func_start FUN_0202A1E4 +FUN_0202A1E4: ; 0x0202A1E4 + ldr r3, _0202A1EC ; =MI_CpuFill8 + mov r1, #0x0 + mov r2, #0x3c + bx r3 + .balign 4 +_0202A1EC: .word MI_CpuFill8 + + thumb_func_start FUN_0202A1F0 +FUN_0202A1F0: ; 0x0202A1F0 + push {r4, lr} + mov r2, #0x5a + mov r1, #0x0 + lsl r2, r2, #0x2 + add r4, r0, #0x0 + bl MI_CpuFill8 + mov r0, #0x1 + strb r0, [r4, #0x3] + pop {r4, pc} + + thumb_func_start FUN_0202A204 +FUN_0202A204: ; 0x0202A204 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + bl FUN_02013764 + add r0, r4, #0x0 + add r0, #0x8 + mov r1, #0x1 + bl FUN_02013764 + add r0, r4, #0x0 + add r0, #0x10 + mov r1, #0x2 + bl FUN_02013764 + add r4, #0x18 + add r0, r4, #0x0 + mov r1, #0x3 + bl FUN_02013764 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202A230 +FUN_0202A230: ; 0x0202A230 + ldr r3, _0202A238 ; =MI_CpuFill8 + mov r1, #0x0 + ldr r2, _0202A23C ; =0x00000B3C + bx r3 + .balign 4 +_0202A238: .word MI_CpuFill8 +_0202A23C: .word 0x00000B3C + + thumb_func_start FUN_0202A240 +FUN_0202A240: ; 0x0202A240 + push {r3, lr} + cmp r1, #0xa + bhi _0202A2BE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202A252: ; jump table (using 16-bit offset) + .short _0202A268 - _0202A252 - 2; case 0 + .short _0202A270 - _0202A252 - 2; case 1 + .short _0202A274 - _0202A252 - 2; case 2 + .short _0202A278 - _0202A252 - 2; case 3 + .short _0202A27C - _0202A252 - 2; case 4 + .short _0202A280 - _0202A252 - 2; case 5 + .short _0202A28E - _0202A252 - 2; case 6 + .short _0202A29C - _0202A252 - 2; case 7 + .short _0202A2A4 - _0202A252 - 2; case 8 + .short _0202A2B2 - _0202A252 - 2; case 9 + .short _0202A2BA - _0202A252 - 2; case 10 +_0202A268: + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1d + pop {r3, pc} +_0202A270: + ldrb r0, [r0, #0x2] + pop {r3, pc} +_0202A274: + ldrb r0, [r0, #0x3] + pop {r3, pc} +_0202A278: + ldrh r0, [r0, #0x4] + pop {r3, pc} +_0202A27C: + ldrh r0, [r0, #0x6] + pop {r3, pc} +_0202A280: + add r1, r2, #0x0 + add r0, #0x8 + mov r2, #0x4 + bl MI_CpuCopy8 + mov r0, #0x0 + pop {r3, pc} +_0202A28E: + add r1, r2, #0x0 + add r0, #0x2c + mov r2, #0x10 + bl MI_CpuCopy8 + mov r0, #0x0 + pop {r3, pc} +_0202A29C: + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + pop {r3, pc} +_0202A2A4: + add r1, r2, #0x0 + add r0, #0xc + mov r2, #0x1c + bl MI_CpuCopy8 + mov r0, #0x0 + pop {r3, pc} +_0202A2B2: + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1d + pop {r3, pc} +_0202A2BA: + ldr r0, [r0, #0x28] + pop {r3, pc} +_0202A2BE: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202A2C4 +FUN_0202A2C4: ; 0x0202A2C4 + push {r4, lr} + add r3, r0, #0x0 + cmp r1, #0xa + bhi _0202A36A + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202A2D8: ; jump table (using 16-bit offset) + .short _0202A2EE - _0202A2D8 - 2; case 0 + .short _0202A300 - _0202A2D8 - 2; case 1 + .short _0202A306 - _0202A2D8 - 2; case 2 + .short _0202A30C - _0202A2D8 - 2; case 3 + .short _0202A312 - _0202A2D8 - 2; case 4 + .short _0202A318 - _0202A2D8 - 2; case 5 + .short _0202A326 - _0202A2D8 - 2; case 6 + .short _0202A334 - _0202A2D8 - 2; case 7 + .short _0202A346 - _0202A2D8 - 2; case 8 + .short _0202A35A - _0202A2D8 - 2; case 9 + .short _0202A354 - _0202A2D8 - 2; case 10 +_0202A2EE: + ldrb r1, [r3, #0x0] + mov r0, #0x1c + bic r1, r0 + ldrb r0, [r2, #0x0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1b + orr r0, r1 + strb r0, [r3, #0x0] + pop {r4, pc} +_0202A300: + ldrb r0, [r2, #0x0] + strb r0, [r3, #0x2] + pop {r4, pc} +_0202A306: + ldrb r0, [r2, #0x0] + strb r0, [r3, #0x3] + pop {r4, pc} +_0202A30C: + ldrh r0, [r2, #0x0] + strh r0, [r3, #0x4] + pop {r4, pc} +_0202A312: + ldrh r0, [r2, #0x0] + strh r0, [r3, #0x6] + pop {r4, pc} +_0202A318: + add r3, #0x8 + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0x4 + bl MI_CpuCopy8 + pop {r4, pc} +_0202A326: + add r3, #0x2c + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0x10 + bl MI_CpuCopy8 + pop {r4, pc} +_0202A334: + ldrb r4, [r3, #0x0] + ldrb r1, [r2, #0x0] + mov r0, #0x1 + bic r4, r0 + mov r0, #0x1 + and r0, r1 + orr r0, r4 + strb r0, [r3, #0x0] + pop {r4, pc} +_0202A346: + add r3, #0xc + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0x1c + bl MI_CpuCopy8 + pop {r4, pc} +_0202A354: + ldr r0, [r2, #0x0] + str r0, [r3, #0x28] + pop {r4, pc} +_0202A35A: + ldrb r1, [r3, #0x0] + mov r0, #0xe0 + bic r1, r0 + ldrb r0, [r2, #0x0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x18 + orr r0, r1 + strb r0, [r3, #0x0] +_0202A36A: + pop {r4, pc} + + thumb_func_start FUN_0202A36C +FUN_0202A36C: ; 0x0202A36C + push {r3-r4} + ldrb r4, [r0, #0x3] + add r1, r4, r1 + cmp r1, #0xff + bge _0202A378 + strb r1, [r0, #0x3] +_0202A378: + ldrh r1, [r0, #0x4] + add r2, r1, r2 + ldr r1, _0202A394 ; =0x0000FFFF + cmp r2, r1 + bge _0202A384 + strh r2, [r0, #0x4] +_0202A384: + ldrh r1, [r0, #0x6] + add r2, r1, r3 + ldr r1, _0202A394 ; =0x0000FFFF + cmp r2, r1 + bge _0202A390 + strh r2, [r0, #0x6] +_0202A390: + pop {r3-r4} + bx lr + .balign 4 +_0202A394: .word 0x0000FFFF + + thumb_func_start FUN_0202A398 +FUN_0202A398: ; 0x0202A398 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + bx lr + + thumb_func_start FUN_0202A3A0 +FUN_0202A3A0: ; 0x0202A3A0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1f + ldrb r3, [r0, #0x0] + mov r2, #0x2 + lsr r1, r1, #0x1e + bic r3, r2 + orr r1, r3 + strb r1, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202A3B4 +FUN_0202A3B4: ; 0x0202A3B4 + cmp r2, #0x6 + bhi _0202A402 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0202A3C4: ; jump table (using 16-bit offset) + .short _0202A402 - _0202A3C4 - 2; case 0 + .short _0202A3D2 - _0202A3C4 - 2; case 1 + .short _0202A402 - _0202A3C4 - 2; case 2 + .short _0202A402 - _0202A3C4 - 2; case 3 + .short _0202A402 - _0202A3C4 - 2; case 4 + .short _0202A3E0 - _0202A3C4 - 2; case 5 + .short _0202A3F2 - _0202A3C4 - 2; case 6 +_0202A3D2: + ldr r2, _0202A408 ; =0x0000270F + cmp r1, r2 + bls _0202A3DC + strh r2, [r0, #0x0] + b _0202A402 +_0202A3DC: + strh r1, [r0, #0x0] + b _0202A402 +_0202A3E0: + ldrh r2, [r0, #0x0] + add r2, r2, r1 + ldr r1, _0202A408 ; =0x0000270F + cmp r2, r1 + ble _0202A3EE + strh r1, [r0, #0x0] + b _0202A402 +_0202A3EE: + strh r2, [r0, #0x0] + b _0202A402 +_0202A3F2: + ldrh r2, [r0, #0x0] + cmp r2, r1 + bhs _0202A3FE + mov r1, #0x0 + strh r1, [r0, #0x0] + b _0202A402 +_0202A3FE: + sub r1, r2, r1 + strh r1, [r0, #0x0] +_0202A402: + ldrh r0, [r0, #0x0] + bx lr + nop +_0202A408: .word 0x0000270F + + thumb_func_start FUN_0202A40C +FUN_0202A40C: ; 0x0202A40C + cmp r1, #0x2 + beq _0202A416 + cmp r1, #0x3 + beq _0202A424 + b _0202A440 +_0202A416: + mov r1, #0x0 + strb r1, [r0, #0x2] + ldrh r2, [r0, #0x8] + mov r1, #0x10 + bic r2, r1 + strh r2, [r0, #0x8] + b _0202A440 +_0202A424: + ldrh r1, [r0, #0x8] + lsl r1, r1, #0x1b + lsr r1, r1, #0x1f + beq _0202A434 + ldrb r1, [r0, #0x2] + add r1, r1, #0x1 + strb r1, [r0, #0x2] + b _0202A440 +_0202A434: + mov r1, #0x1 + strb r1, [r0, #0x2] + ldrh r2, [r0, #0x8] + mov r1, #0x10 + orr r1, r2 + strh r1, [r0, #0x8] +_0202A440: + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_0202A444 +FUN_0202A444: ; 0x0202A444 + cmp r1, #0x2 + beq _0202A452 + cmp r1, #0x3 + beq _0202A458 + cmp r1, #0x4 + beq _0202A464 + b _0202A46E +_0202A452: + mov r1, #0x1 + strb r1, [r0, #0x3] + b _0202A46E +_0202A458: + ldrb r1, [r0, #0x3] + cmp r1, #0xa + bhs _0202A46E + add r1, r1, #0x1 + strb r1, [r0, #0x3] + b _0202A46E +_0202A464: + ldrb r1, [r0, #0x3] + cmp r1, #0x1 + bls _0202A46E + sub r1, r1, #0x1 + strb r1, [r0, #0x3] +_0202A46E: + ldrb r0, [r0, #0x3] + bx lr + .balign 4 + + thumb_func_start FUN_0202A474 +FUN_0202A474: ; 0x0202A474 + push {r3, lr} + add r3, r0, #0x0 + cmp r1, #0x0 + bne _0202A48A + add r3, #0xc0 + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0xa8 + bl MI_CpuCopy8 + pop {r3, pc} +_0202A48A: + add r3, #0x18 + add r0, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0xa8 + bl MI_CpuCopy8 + pop {r3, pc} + + thumb_func_start FUN_0202A498 +FUN_0202A498: ; 0x0202A498 + push {r3, lr} + cmp r1, #0x0 + bne _0202A4AA + add r1, r2, #0x0 + add r0, #0xc0 + mov r2, #0xa8 + bl MI_CpuCopy8 + pop {r3, pc} +_0202A4AA: + add r1, r2, #0x0 + add r0, #0x18 + mov r2, #0xa8 + bl MI_CpuCopy8 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202A4B8 +FUN_0202A4B8: ; 0x0202A4B8 + push {r4-r6, lr} + add r6, r0, #0x0 + ldrb r0, [r1, #0x2] + mov r2, #0xfa + lsl r2, r2, #0x2 + sub r0, r0, #0x1 + add r3, r0, #0x0 + mul r3, r2 + lsl r0, r3, #0x10 + lsr r4, r0, #0x10 + ldrh r3, [r1, #0x4] + mov r0, #0xa + ldrb r5, [r1, #0x3] + mul r0, r3 + mov r3, #0x14 + mul r3, r5 + lsl r0, r0, #0x10 + lsl r3, r3, #0x10 + lsr r0, r0, #0x10 + lsr r3, r3, #0x10 + add r3, r0, r3 + add r0, r2, #0x0 + sub r0, #0x32 + cmp r3, r0 + ble _0202A4EE + mov r5, #0x0 + b _0202A4F6 +_0202A4EE: + sub r2, #0x32 + sub r0, r2, r3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_0202A4F6: + ldrh r1, [r1, #0x6] + ldr r0, _0202A51C ; =0x000003CA + cmp r1, r0 + bls _0202A502 + mov r1, #0x0 + b _0202A510 +_0202A502: + add r0, #0x1e + sub r0, r0, r1 + mov r1, #0x1e + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 +_0202A510: + add r0, r4, r5 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + strh r0, [r6, #0x16] + pop {r4-r6, pc} + .balign 4 +_0202A51C: .word 0x000003CA + + thumb_func_start FUN_0202A520 +FUN_0202A520: ; 0x0202A520 + ldrh r0, [r0, #0x16] + bx lr + + thumb_func_start FUN_0202A524 +FUN_0202A524: ; 0x0202A524 + push {r3, lr} + ldrh r0, [r0, #0x16] + mov r1, #0xfa + lsl r1, r1, #0x2 + bl _s32_div_f + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202A538 +FUN_0202A538: ; 0x0202A538 + push {r4-r5} + cmp r1, #0x5 + bne _0202A544 + mov r0, #0x0 + pop {r4-r5} + bx lr +_0202A544: + cmp r2, #0x2 + beq _0202A54E + cmp r2, #0x3 + beq _0202A558 + b _0202A56A +_0202A54E: + lsl r2, r1, #0x1 + mov r3, #0x0 + add r2, r0, r2 + strh r3, [r2, #0xc] + b _0202A56A +_0202A558: + add r5, r0, #0x0 + add r5, #0xc + lsl r4, r1, #0x1 + ldrh r3, [r5, r4] + ldr r2, _0202A574 ; =0x0000FFFE + cmp r3, r2 + bhs _0202A56A + add r2, r3, #0x1 + strh r2, [r5, r4] +_0202A56A: + lsl r1, r1, #0x1 + add r0, r0, r1 + ldrh r0, [r0, #0xc] + pop {r4-r5} + bx lr + .balign 4 +_0202A574: .word 0x0000FFFE + + thumb_func_start FUN_0202A578 +FUN_0202A578: ; 0x0202A578 + push {r3-r4} + mov r3, #0x1 + mov r4, #0x0 + cmp r1, #0x0 + bls _0202A590 +_0202A582: + add r4, r4, #0x1 + lsl r4, r4, #0x10 + lsl r3, r3, #0x11 + lsr r4, r4, #0x10 + lsr r3, r3, #0x10 + cmp r4, r1 + blo _0202A582 +_0202A590: + cmp r2, #0x0 + beq _0202A5B4 + cmp r2, #0x1 + beq _0202A5AC + cmp r2, #0x2 + bne _0202A5C2 + ldr r1, _0202A5C8 ; =0x0000FFFF + eor r1, r3 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldrh r1, [r0, #0x8] + and r1, r2 + strh r1, [r0, #0x8] + b _0202A5C2 +_0202A5AC: + ldrh r1, [r0, #0x8] + orr r1, r3 + strh r1, [r0, #0x8] + b _0202A5C2 +_0202A5B4: + ldrh r0, [r0, #0x8] + add r2, r0, #0x0 + asr r2, r1 + mov r0, #0x1 + and r0, r2 + pop {r3-r4} + bx lr +_0202A5C2: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 +_0202A5C8: .word 0x0000FFFF + + thumb_func_start FUN_0202A5CC +FUN_0202A5CC: ; 0x0202A5CC + str r1, [r0, #0x4] + bx lr + + thumb_func_start FUN_0202A5D0 +FUN_0202A5D0: ; 0x0202A5D0 + ldr r0, [r0, #0x4] + bx lr + + thumb_func_start FUN_0202A5D4 +FUN_0202A5D4: ; 0x0202A5D4 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x17 + add r4, r2, #0x0 + bl FUN_02022610 + mov r1, #0x69 + lsl r1, r1, #0x2 + add r1, r0, r1 + lsl r0, r5, #0x3 + add r0, r1, r0 + add r1, r4, #0x0 + bl FUN_02013960 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202A5F4 +FUN_0202A5F4: ; 0x0202A5F4 + push {r4, lr} + add r4, r1, #0x0 + mov r1, #0x17 + bl FUN_02022610 + mov r1, #0x69 + lsl r1, r1, #0x2 + add r1, r0, r1 + lsl r0, r4, #0x3 + add r0, r1, r0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202A60C +FUN_0202A60C: ; 0x0202A60C + push {r3-r6} + add r4, r3, #0x0 + mov r3, #0x1 + cmp r2, #0x0 + beq _0202A66C + cmp r2, #0xc8 + bhi _0202A66C + cmp r1, #0x0 + beq _0202A66C + cmp r1, #0xa + bhi _0202A66C + sub r5, r2, #0x1 + sub r2, r1, #0x1 + mov r1, #0xc8 + mul r1, r2 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + lsr r6, r1, #0x1f + lsl r5, r1, #0x1d + sub r5, r5, r6 + mov r2, #0x1d + ror r5, r2 + add r2, r6, r5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r2 + lsl r2, r3, #0x18 + lsl r1, r1, #0x15 + lsr r5, r2, #0x18 + add r3, r0, #0x4 + lsr r2, r1, #0x18 + ldrb r1, [r3, r2] + orr r1, r5 + strb r1, [r3, r2] + ldr r3, [r4, #0x0] + ldr r1, [r4, #0x8] + lsl r5, r3, #0x18 + ldr r3, [r4, #0x4] + lsl r1, r1, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x8 + ldr r2, [r4, #0xc] + lsr r1, r1, #0x10 + orr r3, r5 + orr r1, r3 + orr r1, r2 + str r1, [r0, #0x0] +_0202A66C: + pop {r3-r6} + bx lr + + thumb_func_start FUN_0202A670 +FUN_0202A670: ; 0x0202A670 + push {r4, lr} + add r4, r0, #0x0 + add r0, r4, #0x4 + mov r1, #0x0 + mov r2, #0xfa + bl MI_CpuFill8 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x4 + bl MI_CpuFill8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202A68C +FUN_0202A68C: ; 0x0202A68C + ldr r3, [r0, #0x0] + ldr r2, [r1, #0x0] + cmp r3, r2 + bls _0202A698 + mov r0, #0x1 + bx lr +_0202A698: + ldr r3, [r0, #0x4] + ldr r2, [r1, #0x4] + cmp r3, r2 + bls _0202A6A4 + mov r0, #0x1 + bx lr +_0202A6A4: + ldr r2, [r0, #0x8] + ldr r0, [r1, #0x8] + cmp r2, r0 + bls _0202A6B0 + mov r0, #0x1 + bx lr +_0202A6B0: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202A6B4 +FUN_0202A6B4: ; 0x0202A6B4 + push {r3-r7, lr} + sub sp, #0x10 + add r6, r2, #0x0 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r7, #0x1 + cmp r6, #0xc8 + bhi _0202A6C8 + cmp r4, #0xa + bls _0202A6CE +_0202A6C8: + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202A6CE: + ldr r0, [r5, #0x0] + lsr r1, r0, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x0] + lsr r1, r0, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x4] + lsr r1, r0, #0x8 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r3, #0x0 + add r1, sp, #0x0 + bl FUN_0202A68C + cmp r0, #0x0 + beq _0202A706 + add r0, r5, #0x0 + bl FUN_0202A670 + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202A706: + sub r1, r4, #0x1 + mov r0, #0xc8 + mul r0, r1 + sub r2, r6, #0x1 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1d + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + add r0, r5, r0 + sub r2, r2, r3 + mov r1, #0x1d + ror r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r7, #0x0 + lsl r2, r1 + lsl r1, r2, #0x18 + ldrb r0, [r0, #0x4] + lsr r1, r1, #0x18 + tst r0, r1 + beq _0202A73E + add sp, #0x10 + add r0, r7, #0x0 + pop {r3-r7, pc} +_0202A73E: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + + thumb_func_start FUN_0202A744 +FUN_0202A744: ; 0x0202A744 + add r0, #0xfe + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202A74C +FUN_0202A74C: ; 0x0202A74C + add r0, #0xff + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202A754 +FUN_0202A754: ; 0x0202A754 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x41 + add r4, r2, #0x0 + lsl r1, r1, #0x2 + ldr r2, _0202A77C ; =0x0000063C + add r1, r5, r1 + add r6, r3, #0x0 + bl MI_CpuCopy8 + ldr r0, _0202A780 ; =0x00000101 + strb r4, [r5, r0] + sub r0, r0, #0x1 + strb r6, [r5, r0] + mov r0, #0x1 + add r5, #0xfe + strb r0, [r5, #0x0] + pop {r4-r6, pc} + nop +_0202A77C: .word 0x0000063C +_0202A780: .word 0x00000101 + + thumb_func_start FUN_0202A784 +FUN_0202A784: ; 0x0202A784 + ldr r2, _0202A794 ; =0x00000101 + ldrb r3, [r0, r2] + sub r2, r2, #0x1 + strb r3, [r1, #0x0] + ldrb r0, [r0, r2] + strb r0, [r1, #0x1] + bx lr + nop +_0202A794: .word 0x00000101 + + thumb_func_start FUN_0202A798 +FUN_0202A798: ; 0x0202A798 + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x41 + lsl r1, r1, #0x2 + add r5, r0, r1 + mov r0, #0xe4 + add r4, r2, #0x0 + mul r4, r0 + ldr r0, _0202A834 ; =0x00002710 + add r7, r6, #0x0 + str r0, [r6, #0x0] + add r0, r5, r4 + add r0, #0xc9 + ldrb r0, [r0, #0x0] + add r7, #0x30 + strh r0, [r6, #0x4] + add r0, r5, r4 + add r0, #0xc8 + ldrb r0, [r0, #0x0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _0202A7EE + mov r0, #0x0 + mov r1, #0x1a + mov r2, #0x11 + mov r3, #0xb + bl FUN_0200A86C + add r1, r5, r4 + add r1, #0xc8 + ldrb r1, [r1, #0x0] + add r2, r6, #0x0 + str r0, [sp, #0x0] + lsl r1, r1, #0x1e + lsr r1, r1, #0x1f + add r1, #0x16 + add r2, #0x8 + bl FUN_0200A968 + ldr r0, [sp, #0x0] + bl FUN_0200A8B8 + b _0202A7FC +_0202A7EE: + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xa8 + add r1, #0x8 + mov r2, #0x10 + bl MI_CpuCopy8 +_0202A7FC: + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xca + add r1, #0x18 + mov r2, #0x8 + bl MI_CpuCopy8 + add r0, r5, r4 + add r1, r6, #0x0 + add r0, #0xd2 + add r1, #0x20 + mov r2, #0x8 + bl MI_CpuCopy8 + add r0, r5, r4 + add r6, #0x28 + add r0, #0xda + add r1, r6, #0x0 + mov r2, #0x8 + bl MI_CpuCopy8 + add r0, r5, r4 + add r1, r7, #0x0 + mov r2, #0xa8 + bl MI_CpuCopy8 + pop {r3-r7, pc} + nop +_0202A834: .word 0x00002710 + + thumb_func_start FUN_0202A838 +FUN_0202A838: ; 0x0202A838 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x1d + add r4, r2, #0x0 + lsl r1, r1, #0x6 + mov r2, #0xff + add r1, r5, r1 + lsl r2, r2, #0x2 + add r6, r3, #0x0 + bl MI_CpuCopy8 + ldr r0, _0202A860 ; =0x00000103 + strb r4, [r5, r0] + sub r0, r0, #0x1 + strb r6, [r5, r0] + mov r0, #0x1 + add r5, #0xff + strb r0, [r5, #0x0] + pop {r4-r6, pc} + .balign 4 +_0202A860: .word 0x00000103 + + thumb_func_start FUN_0202A864 +FUN_0202A864: ; 0x0202A864 + ldr r2, _0202A874 ; =0x00000103 + ldrb r3, [r0, r2] + sub r2, r2, #0x1 + strb r3, [r1, #0x0] + ldrb r0, [r0, r2] + strb r0, [r1, #0x1] + bx lr + nop +_0202A874: .word 0x00000103 + + thumb_func_start FUN_0202A878 +FUN_0202A878: ; 0x0202A878 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xff + lsl r1, r1, #0x2 + bl FUN_02016998 + add r4, r0, #0x0 + mov r0, #0x1d + lsl r0, r0, #0x6 + mov r2, #0xff + add r0, r5, r0 + add r1, r4, #0x0 + lsl r2, r2, #0x2 + bl MI_CpuCopy8 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202A89C +FUN_0202A89C: ; 0x0202A89C + mov r0, #0xd + lsl r0, r0, #0x8 + bx lr + .balign 4 + + thumb_func_start FUN_0202A8A4 +FUN_0202A8A4: ; 0x0202A8A4 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_0202A1E4 + add r0, r4, #0x0 + add r0, #0x3c + bl FUN_0202A1F0 + mov r0, #0x69 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl FUN_0202A204 + mov r0, #0x71 + lsl r0, r0, #0x2 + add r0, r4, r0 + bl FUN_0202A230 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202A8CC +FUN_0202A8CC: ; 0x0202A8CC + ldr r3, _0202A8D4 ; =FUN_02022610 + mov r1, #0x17 + bx r3 + nop +_0202A8D4: .word FUN_02022610 + + thumb_func_start FUN_0202A8D8 +FUN_0202A8D8: ; 0x0202A8D8 + push {r3, lr} + mov r1, #0x17 + bl FUN_02022610 + add r0, #0x3c + pop {r3, pc} + + thumb_func_start FUN_0202A8E4 +FUN_0202A8E4: ; 0x0202A8E4 + push {r3, lr} + mov r1, #0x17 + bl FUN_02022610 + mov r1, #0x71 + lsl r1, r1, #0x2 + add r0, r0, r1 + pop {r3, pc} + + thumb_func_start FUN_0202A8F4 +FUN_0202A8F4: ; 0x0202A8F4 + mov r0, #0xe + bx lr + + thumb_func_start FUN_0202A8F8 +FUN_0202A8F8: ; 0x0202A8F8 + 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] + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + bx lr + + thumb_func_start FUN_0202A918 +FUN_0202A918: ; 0x0202A918 + ldr r3, _0202A920 ; =FUN_02022610 + mov r1, #0x18 + bx r3 + nop +_0202A920: .word FUN_02022610 + + thumb_func_start FUN_0202A924 +FUN_0202A924: ; 0x0202A924 + mov r0, #0x45 + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_0202A92C +FUN_0202A92C: ; 0x0202A92C + push {r4, lr} + mov r2, #0x45 + add r4, r0, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + bl memset + bl rand_MT + str r0, [r4, #0x0] + bl rand_MT + str r0, [r4, #0x4] + mov r1, #0x0 + add r3, r4, #0x0 + ldr r0, _0202A980 ; =0x0000FFFF + str r1, [r4, #0x8] + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + mov r0, #0x15 + add r3, #0x10 + strb r0, [r4, #0x10] + add r2, r1, #0x0 +_0202A95A: + str r2, [r3, #0x4] + strb r2, [r3, #0x8] + strb r2, [r3, #0x9] + strb r2, [r3, #0xa] + strb r2, [r3, #0xb] + add r1, r1, #0x1 + add r3, #0x8 + cmp r1, #0x15 + blt _0202A95A + ldr r0, _0202A984 ; =0x0000010F + strb r2, [r4, r0] + add r1, r0, #0x1 + strb r2, [r4, r1] + add r1, r0, #0x2 + strb r2, [r4, r1] + add r0, r0, #0x3 + strb r2, [r4, r0] + pop {r4, pc} + nop +_0202A980: .word 0x0000FFFF +_0202A984: .word 0x0000010F + + thumb_func_start FUN_0202A988 +FUN_0202A988: ; 0x0202A988 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start FUN_0202A990 +FUN_0202A990: ; 0x0202A990 + push {r3, lr} + cmp r1, #0x1 + beq _0202A99C + cmp r1, #0x2 + beq _0202A9A0 + b _0202A9A4 +_0202A99C: + ldr r0, [r0, #0x0] + pop {r3, pc} +_0202A9A0: + ldr r0, [r0, #0x4] + pop {r3, pc} +_0202A9A4: + bl ErrorHandling + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_0202A9AC +FUN_0202A9AC: ; 0x0202A9AC + add r0, #0xbc + bx lr + + thumb_func_start FUN_0202A9B0 +FUN_0202A9B0: ; 0x0202A9B0 + ldr r3, _0202A9B8 ; =FUN_02022610 + mov r1, #0x19 + bx r3 + nop +_0202A9B8: .word FUN_02022610 + + thumb_func_start FUN_0202A9BC +FUN_0202A9BC: ; 0x0202A9BC + add r0, #0x10 + bx lr + + thumb_func_start FUN_0202A9C0 +FUN_0202A9C0: ; 0x0202A9C0 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202A9C4 +FUN_0202A9C4: ; 0x0202A9C4 + strb r0, [r1, #0x0] + bx lr + + thumb_func_start FUN_0202A9C8 +FUN_0202A9C8: ; 0x0202A9C8 + add r1, r1, #0x4 + lsl r0, r0, #0x3 + add r0, r1, r0 + bx lr + + thumb_func_start FUN_0202A9D0 +FUN_0202A9D0: ; 0x0202A9D0 + push {r3-r7, lr} + add r5, r1, #0x0 + bl FUN_0202A9B0 + add r6, r0, #0x0 + mov r4, #0x0 + add r6, #0x10 + add r7, r4, #0x0 +_0202A9E0: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + add r1, r6, #0x0 + bl FUN_0202A9C8 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202A9F8 + sub r1, r1, r5 + str r1, [r0, #0x0] + bpl _0202A9F8 + str r7, [r0, #0x0] +_0202A9F8: + add r4, r4, #0x1 + cmp r4, #0x15 + blt _0202A9E0 + pop {r3-r7, pc} + + thumb_func_start FUN_0202AA00 +FUN_0202AA00: ; 0x0202AA00 + push {r3, lr} + bl FUN_0202A9B0 + ldr r1, _0202AA10 ; =0x0000010F + mov r2, #0x1 + strb r2, [r0, r1] + pop {r3, pc} + nop +_0202AA10: .word 0x0000010F + + thumb_func_start FUN_0202AA14 +FUN_0202AA14: ; 0x0202AA14 + ldr r1, _0202AA1C ; =0x0000010F + ldrb r0, [r0, r1] + bx lr + nop +_0202AA1C: .word 0x0000010F + + thumb_func_start FUN_0202AA20 +FUN_0202AA20: ; 0x0202AA20 + add r2, r0, #0x0 + add r2, #0xc8 + ldr r3, [r2, #0x0] + cmp r3, r1 + beq _0202AA34 + add r2, r0, #0x0 + add r2, #0xcc + str r3, [r2, #0x0] + add r0, #0xc8 + str r1, [r0, #0x0] +_0202AA34: + bx lr + .balign 4 + + thumb_func_start FUN_0202AA38 +FUN_0202AA38: ; 0x0202AA38 + add r0, #0xcc + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202AA40 +FUN_0202AA40: ; 0x0202AA40 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AA4E + bl ErrorHandling +_0202AA4E: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202AA58 +FUN_0202AA58: ; 0x0202AA58 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + cmp r4, #0x3 + blo _0202AA68 + bl ErrorHandling +_0202AA68: + mov r0, #0x43 + add r1, r5, r4 + lsl r0, r0, #0x2 + strb r6, [r1, r0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202AA74 +FUN_0202AA74: ; 0x0202AA74 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AA82 + bl ErrorHandling +_0202AA82: + mov r0, #0x14 + mul r0, r4 + add r0, r5, r0 + add r0, #0xe2 + ldrb r0, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202AA90 +FUN_0202AA90: ; 0x0202AA90 + ldr r2, [r0, #0x0] + mov r1, #0x14 + mov r0, #0x0 +_0202AA96: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202AA96 + bx lr + + thumb_func_start FUN_0202AAA0 +FUN_0202AAA0: ; 0x0202AAA0 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blo _0202AAAE + bl ErrorHandling +_0202AAAE: + mov r0, #0x14 + add r5, #0xd0 + mul r0, r4 + add r0, r5, r0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202AAB8 +FUN_0202AAB8: ; 0x0202AAB8 + cmp r1, #0x8 + bhi _0202AAF8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202AAC8: ; jump table (using 16-bit offset) + .short _0202AAF8 - _0202AAC8 - 2; case 0 + .short _0202AADA - _0202AAC8 - 2; case 1 + .short _0202AADE - _0202AAC8 - 2; case 2 + .short _0202AAE2 - _0202AAC8 - 2; case 3 + .short _0202AAE6 - _0202AAC8 - 2; case 4 + .short _0202AAEA - _0202AAC8 - 2; case 5 + .short _0202AAEE - _0202AAC8 - 2; case 6 + .short _0202AAF2 - _0202AAC8 - 2; case 7 + .short _0202AAF6 - _0202AAC8 - 2; case 8 +_0202AADA: + ldr r0, [r0, #0x0] + bx lr +_0202AADE: + ldr r0, [r0, #0x4] + bx lr +_0202AAE2: + ldr r0, [r0, #0x8] + bx lr +_0202AAE6: + ldrh r0, [r0, #0xc] + bx lr +_0202AAEA: + ldrh r0, [r0, #0xe] + bx lr +_0202AAEE: + ldrb r0, [r0, #0x10] + bx lr +_0202AAF2: + ldrb r0, [r0, #0x11] + bx lr +_0202AAF6: + ldrb r0, [r0, #0x12] +_0202AAF8: + bx lr + .balign 4 + + thumb_func_start FUN_0202AAFC +FUN_0202AAFC: ; 0x0202AAFC + cmp r1, #0x8 + bhi _0202AB3C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202AB0C: ; jump table (using 16-bit offset) + .short _0202AB3C - _0202AB0C - 2; case 0 + .short _0202AB1E - _0202AB0C - 2; case 1 + .short _0202AB22 - _0202AB0C - 2; case 2 + .short _0202AB26 - _0202AB0C - 2; case 3 + .short _0202AB2A - _0202AB0C - 2; case 4 + .short _0202AB2E - _0202AB0C - 2; case 5 + .short _0202AB32 - _0202AB0C - 2; case 6 + .short _0202AB36 - _0202AB0C - 2; case 7 + .short _0202AB3A - _0202AB0C - 2; case 8 +_0202AB1E: + str r2, [r0, #0x0] + bx lr +_0202AB22: + str r2, [r0, #0x4] + bx lr +_0202AB26: + str r2, [r0, #0x8] + bx lr +_0202AB2A: + strh r2, [r0, #0xc] + bx lr +_0202AB2E: + strh r2, [r0, #0xe] + bx lr +_0202AB32: + strb r2, [r0, #0x10] + bx lr +_0202AB36: + strb r2, [r0, #0x11] + bx lr +_0202AB3A: + strb r2, [r0, #0x12] +_0202AB3C: + bx lr + .balign 4 + + thumb_func_start FUN_0202AB40 +FUN_0202AB40: ; 0x0202AB40 + ldr r1, _0202AB48 ; =0x00000111 + add r0, r0, r1 + bx lr + nop +_0202AB48: .word 0x00000111 + + thumb_func_start FUN_0202AB4C +FUN_0202AB4C: ; 0x0202AB4C + mov r1, #0x11 + lsl r1, r1, #0x4 + add r0, r0, r1 + bx lr + + thumb_func_start FUN_0202AB54 +FUN_0202AB54: ; 0x0202AB54 + mov r1, #0x11 + lsl r1, r1, #0x4 + ldrb r0, [r0, r1] + cmp r0, #0x0 + bne _0202AB62 + mov r0, #0x1 + bx lr +_0202AB62: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202AB68 +FUN_0202AB68: ; 0x0202AB68 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x2 + bls _0202AB76 + bl ErrorHandling +_0202AB76: + ldr r0, _0202AB7C ; =0x00000112 + strb r4, [r5, r0] + pop {r3-r5, pc} + .balign 4 +_0202AB7C: .word 0x00000112 + + thumb_func_start FUN_0202AB80 +FUN_0202AB80: ; 0x0202AB80 + ldr r1, _0202AB88 ; =0x00000112 + ldrb r0, [r0, r1] + bx lr + nop +_0202AB88: .word 0x00000112 + + thumb_func_start FUN_0202AB8C +FUN_0202AB8C: ; 0x0202AB8C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_0202A9B0 + ldrh r1, [r0, #0xc] + strh r1, [r5, #0x0] + ldrh r0, [r0, #0xe] + strh r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202ABA0 +FUN_0202ABA0: ; 0x0202ABA0 + push {r3-r5, lr} + add r5, r1, #0x0 + bl FUN_0202A9B0 + add r4, r0, #0x0 + cmp r5, #0x10 + blo _0202ABB2 + bl ErrorHandling +_0202ABB2: + ldrh r0, [r4, #0xc] + strh r0, [r4, #0xe] + strh r5, [r4, #0xc] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202ABBC +FUN_0202ABBC: ; 0x0202ABBC + ldr r3, _0202ABC4 ; =FUN_02022610 + mov r1, #0x1a + bx r3 + nop +_0202ABC4: .word FUN_02022610 + + thumb_func_start FUN_0202ABC8 +FUN_0202ABC8: ; 0x0202ABC8 + mov r0, #0xf4 + bx lr + + thumb_func_start FUN_0202ABCC +FUN_0202ABCC: ; 0x0202ABCC + ldr r3, _0202ABD8 ; =MIi_CpuClearFast + add r1, r0, #0x0 + mov r0, #0x0 + mov r2, #0xf4 + bx r3 + nop +_0202ABD8: .word MIi_CpuClearFast + + thumb_func_start FUN_0202ABDC +FUN_0202ABDC: ; 0x0202ABDC + add r0, #0xec + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202ABE4 +FUN_0202ABE4: ; 0x0202ABE4 + add r0, #0xec + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202ABEC +FUN_0202ABEC: ; 0x0202ABEC + ldr r3, _0202ABF4 ; =MIi_CpuCopyFast + mov r2, #0xec + bx r3 + nop +_0202ABF4: .word MIi_CpuCopyFast + + thumb_func_start FUN_0202ABF8 +FUN_0202ABF8: ; 0x0202ABF8 + ldr r3, _0202AC04 ; =MIi_CpuCopyFast + add r2, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + mov r2, #0xec + bx r3 + .balign 4 +_0202AC04: .word MIi_CpuCopyFast + + thumb_func_start FUN_0202AC08 +FUN_0202AC08: ; 0x0202AC08 + add r0, #0xf0 + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202AC10 +FUN_0202AC10: ; 0x0202AC10 + add r0, #0xf0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202AC18 +FUN_0202AC18: ; 0x0202AC18 + add r0, #0xee + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_0202AC20 +FUN_0202AC20: ; 0x0202AC20 + ldr r0, _0202AC24 ; =0x00001354 + bx lr + .balign 4 +_0202AC24: .word 0x00001354 + + thumb_func_start FUN_0202AC28 +FUN_0202AC28: ; 0x0202AC28 + bx lr + .balign 4 + + thumb_func_start FUN_0202AC2C +FUN_0202AC2C: ; 0x0202AC2C + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x8 + blt _0202AC3A + bl ErrorHandling +_0202AC3A: + mov r0, #0x1 + lsl r0, r0, #0x8 + add r6, r5, r0 + lsl r3, r4, #0x2 + ldr r2, [r6, r3] + ldr r1, _0202AC60 ; =0xEDB88320 + cmp r2, r1 + bne _0202AC58 + add r0, #0x2c + add r1, r5, r0 + lsl r0, r4, #0x6 + add r0, r4, r0 + lsl r0, r0, #0x2 + add r0, r1, r0 + pop {r4-r6, pc} +_0202AC58: + mov r0, #0x0 + str r0, [r6, r3] + pop {r4-r6, pc} + nop +_0202AC60: .word 0xEDB88320 + + thumb_func_start FUN_0202AC64 +FUN_0202AC64: ; 0x0202AC64 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blt _0202AC72 + bl ErrorHandling +_0202AC72: + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + beq _0202AC8E + ldr r0, _0202AC94 ; =0x0000094C + add r1, r5, r0 + mov r0, #0xd6 + lsl r0, r0, #0x2 + mul r0, r4 + add r0, r1, r0 + pop {r3-r5, pc} +_0202AC8E: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202AC94: .word 0x0000094C + + thumb_func_start FUN_0202AC98 +FUN_0202AC98: ; 0x0202AC98 + push {r3-r7, lr} + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r7, r2, #0x0 + bl FUN_0202ADF0 + cmp r0, #0x0 + bne _0202ACAC + mov r0, #0x0 + pop {r3-r7, pc} +_0202ACAC: + mov r0, #0x1 + mov r4, #0x0 + add r2, r5, #0x0 + lsl r0, r0, #0x8 +_0202ACB4: + ldr r1, [r2, r0] + cmp r1, #0x0 + bne _0202ACF6 + lsl r0, r4, #0x6 + mov r2, #0x4b + add r0, r4, r0 + lsl r2, r2, #0x2 + lsl r6, r0, #0x2 + add r1, r5, r2 + ldr r0, [sp, #0x0] + add r1, r1, r6 + sub r2, #0x28 + bl MI_CpuCopy8 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x1 + ldr r2, _0202AD04 ; =0xEDB88320 + lsl r0, r0, #0x8 + str r2, [r1, r0] + add r0, #0x2e + add r1, r5, r0 + ldrh r0, [r1, r6] + mov r2, #0x3 + bic r0, r2 + lsl r2, r7, #0x10 + lsr r3, r2, #0x10 + mov r2, #0x3 + and r2, r3 + orr r0, r2 + strh r0, [r1, r6] + mov r0, #0x1 + pop {r3-r7, pc} +_0202ACF6: + add r4, r4, #0x1 + add r2, r2, #0x4 + cmp r4, #0x8 + blt _0202ACB4 + mov r0, #0x0 + pop {r3-r7, pc} + nop +_0202AD04: .word 0xEDB88320 + + thumb_func_start FUN_0202AD08 +FUN_0202AD08: ; 0x0202AD08 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl FUN_0202AE0C + cmp r0, #0x0 + bne _0202AD1A + mov r0, #0x0 + pop {r4-r6, pc} +_0202AD1A: + ldr r0, _0202AD88 ; =0x00000152 + ldrb r0, [r6, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _0202AD34 + add r0, r5, #0x0 + bl FUN_0202ADF0 + cmp r0, #0x0 + bne _0202AD34 + mov r0, #0x0 + pop {r4-r6, pc} +_0202AD34: + mov r0, #0x12 + mov r4, #0x0 + add r2, r5, #0x0 + lsl r0, r0, #0x4 +_0202AD3C: + ldr r1, [r2, r0] + cmp r1, #0x0 + bne _0202AD7C + ldr r1, _0202AD8C ; =0x0000094C + mov r2, #0xd6 + add r3, r5, r1 + lsl r2, r2, #0x2 + add r1, r4, #0x0 + mul r1, r2 + add r0, r6, #0x0 + add r1, r3, r1 + bl MI_CpuCopy8 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + ldr r2, _0202AD90 ; =0xEDB88320 + lsl r0, r0, #0x4 + str r2, [r1, r0] + add r0, #0x32 + ldrb r0, [r6, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + cmp r0, #0x1 + bne _0202AD78 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r4, #0x1 + bl FUN_0202AC98 +_0202AD78: + mov r0, #0x1 + pop {r4-r6, pc} +_0202AD7C: + add r4, r4, #0x1 + add r2, r2, #0x4 + cmp r4, #0x3 + blt _0202AD3C + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_0202AD88: .word 0x00000152 +_0202AD8C: .word 0x0000094C +_0202AD90: .word 0xEDB88320 + + thumb_func_start FUN_0202AD94 +FUN_0202AD94: ; 0x0202AD94 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + sub r0, r4, #0x1 + cmp r0, #0x8 + blt _0202ADA4 + bl ErrorHandling +_0202ADA4: + sub r4, r4, #0x1 + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x1 + mov r2, #0x0 + lsl r0, r0, #0x8 + str r2, [r1, r0] + add r0, #0x2e + add r3, r5, r0 + lsl r0, r4, #0x6 + add r0, r4, r0 + lsl r2, r0, #0x2 + ldrh r1, [r3, r2] + mov r0, #0x3 + bic r1, r0 + strh r1, [r3, r2] + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_0202ADC8 +FUN_0202ADC8: ; 0x0202ADC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + cmp r4, #0x3 + blt _0202ADD6 + bl ErrorHandling +_0202ADD6: + lsl r0, r4, #0x2 + add r1, r5, r0 + mov r0, #0x12 + mov r2, #0x0 + lsl r0, r0, #0x4 + str r2, [r1, r0] + add r0, r5, #0x0 + add r1, r4, #0x1 + bl FUN_0202AEC4 + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202ADF0 +FUN_0202ADF0: ; 0x0202ADF0 + mov r1, #0x1 + mov r3, #0x0 + lsl r1, r1, #0x8 +_0202ADF6: + ldr r2, [r0, r1] + cmp r2, #0x0 + bne _0202AE00 + mov r0, #0x1 + bx lr +_0202AE00: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, #0x8 + blt _0202ADF6 + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202AE0C +FUN_0202AE0C: ; 0x0202AE0C + mov r1, #0x12 + mov r3, #0x0 + lsl r1, r1, #0x4 +_0202AE12: + ldr r2, [r0, r1] + cmp r2, #0x0 + bne _0202AE1C + mov r0, #0x1 + bx lr +_0202AE1C: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, #0x3 + blt _0202AE12 + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202AE28 +FUN_0202AE28: ; 0x0202AE28 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x8 + blt _0202AE36 + bl ErrorHandling +_0202AE36: + lsl r0, r5, #0x2 + add r1, r4, r0 + mov r0, #0x1 + lsl r0, r0, #0x8 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0202AE48 + mov r0, #0x0 + pop {r3-r5, pc} +_0202AE48: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_0202AE4C +FUN_0202AE4C: ; 0x0202AE4C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + cmp r5, #0x3 + blt _0202AE5A + bl ErrorHandling +_0202AE5A: + lsl r0, r5, #0x2 + add r1, r4, r0 + mov r0, #0x12 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + cmp r0, #0x0 + bne _0202AE6C + mov r0, #0x0 + pop {r3-r5, pc} +_0202AE6C: + mov r0, #0x1 + pop {r3-r5, pc} + + thumb_func_start FUN_0202AE70 +FUN_0202AE70: ; 0x0202AE70 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_0202AE76: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202AE4C + cmp r0, #0x1 + bne _0202AE86 + mov r0, #0x1 + pop {r3-r5, pc} +_0202AE86: + add r4, r4, #0x1 + cmp r4, #0x3 + blt _0202AE76 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202AE90 +FUN_0202AE90: ; 0x0202AE90 + push {r3-r4} + cmp r1, #0x0 + beq _0202AEB8 + ldr r2, _0202AEC0 ; =0x0000012E + mov r3, #0x0 + add r4, r0, r2 + add r0, r2, #0x0 + sub r0, #0x2a +_0202AEA0: + ldrh r2, [r4, #0x0] + lsl r2, r2, #0x1e + lsr r2, r2, #0x1e + cmp r1, r2 + bne _0202AEB0 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202AEB0: + add r3, r3, #0x1 + add r4, r4, r0 + cmp r3, #0x8 + blt _0202AEA0 +_0202AEB8: + mov r0, #0x0 + pop {r3-r4} + bx lr + nop +_0202AEC0: .word 0x0000012E + + thumb_func_start FUN_0202AEC4 +FUN_0202AEC4: ; 0x0202AEC4 + push {r3-r5, lr} + cmp r1, #0x0 + beq _0202AEEE + ldr r3, _0202AEF0 ; =0x0000012E + mov r4, #0x41 + mov r2, #0x0 + add r3, r0, r3 + lsl r4, r4, #0x2 +_0202AED4: + ldrh r5, [r3, #0x0] + lsl r5, r5, #0x1e + lsr r5, r5, #0x1e + cmp r1, r5 + bne _0202AEE6 + add r1, r2, #0x1 + bl FUN_0202AD94 + pop {r3-r5, pc} +_0202AEE6: + add r2, r2, #0x1 + add r3, r3, r4 + cmp r2, #0x8 + blt _0202AED4 +_0202AEEE: + pop {r3-r5, pc} + .balign 4 +_0202AEF0: .word 0x0000012E + + thumb_func_start FUN_0202AEF4 +FUN_0202AEF4: ; 0x0202AEF4 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + lsl r0, r0, #0xa + cmp r4, r0 + blt _0202AF06 + bl ErrorHandling +_0202AF06: + mov r0, #0x1 + mov r1, #0x7 + add r2, r4, #0x0 + and r2, r1 + add r1, r0, #0x0 + lsl r1, r2 + asr r2, r4, #0x2 + lsr r2, r2, #0x1d + add r2, r4, r2 + asr r2, r2, #0x3 + ldrb r2, [r5, r2] + tst r1, r2 + bne _0202AF22 + mov r0, #0x0 +_0202AF22: + pop {r3-r5, pc} + + thumb_func_start FUN_0202AF24 +FUN_0202AF24: ; 0x0202AF24 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + lsl r0, r0, #0xa + cmp r4, r0 + blt _0202AF36 + bl ErrorHandling +_0202AF36: + asr r0, r4, #0x2 + lsr r0, r0, #0x1d + add r0, r4, r0 + asr r0, r0, #0x3 + mov r1, #0x7 + ldrb r3, [r5, r0] + mov r2, #0x1 + and r1, r4 + lsl r2, r1 + add r1, r3, #0x0 + orr r1, r2 + strb r1, [r5, r0] + pop {r3-r5, pc} + + thumb_func_start FUN_0202AF50 +FUN_0202AF50: ; 0x0202AF50 + ldr r3, _0202AF58 ; =FUN_0202AEF4 + ldr r1, _0202AF5C ; =0x000007FF + bx r3 + nop +_0202AF58: .word FUN_0202AEF4 +_0202AF5C: .word 0x000007FF + + thumb_func_start FUN_0202AF60 +FUN_0202AF60: ; 0x0202AF60 + ldr r3, _0202AF68 ; =FUN_0202AF24 + ldr r1, _0202AF6C ; =0x000007FF + bx r3 + nop +_0202AF68: .word FUN_0202AF24 +_0202AF6C: .word 0x000007FF + + thumb_func_start FUN_0202AF70 +FUN_0202AF70: ; 0x0202AF70 + push {r3, lr} + ldr r1, _0202AF84 ; =0x021C59D4 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0202AF82 + bl FUN_0202251C + ldr r1, _0202AF84 ; =0x021C59D4 + str r0, [r1, #0x0] +_0202AF82: + pop {r3, pc} + .balign 4 +_0202AF84: .word 0x021C59D4 + + thumb_func_start FUN_0202AF88 +FUN_0202AF88: ; 0x0202AF88 + ldr r0, _0202AF98 ; =0x021C59D4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202AF94 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202AF94: + bx lr + nop +_0202AF98: .word 0x021C59D4 + + thumb_func_start FUN_0202AF9C +FUN_0202AF9C: ; 0x0202AF9C + push {r3-r5, lr} + ldr r4, _0202AFBC ; =0x021C59D4 + mov r5, #0x0 +_0202AFA2: + ldr r0, [r4, #0x0] + add r1, r5, #0x0 + bl FUN_0202AE28 + cmp r0, #0x1 + bne _0202AFB2 + add r0, r5, #0x1 + pop {r3-r5, pc} +_0202AFB2: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202AFA2 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202AFBC: .word 0x021C59D4 + + thumb_func_start FUN_0202AFC0 +FUN_0202AFC0: ; 0x0202AFC0 + push {r4, lr} + add r4, r0, #0x0 + bne _0202AFCA + mov r0, #0x0 + pop {r4, pc} +_0202AFCA: + sub r0, r4, #0x1 + cmp r0, #0x8 + blt _0202AFD4 + bl ErrorHandling +_0202AFD4: + ldr r0, _0202AFF8 ; =0x021C59D4 + sub r1, r4, #0x1 + ldr r0, [r0, #0x0] + bl FUN_0202AE28 + cmp r0, #0x1 + bne _0202AFF4 + ldr r0, _0202AFF8 ; =0x021C59D4 + sub r1, r4, #0x1 + ldr r0, [r0, #0x0] + bl FUN_0202AC2C + cmp r0, #0x0 + beq _0202AFF4 + ldrh r0, [r0, #0x0] + pop {r4, pc} +_0202AFF4: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0202AFF8: .word 0x021C59D4 + + thumb_func_start FUN_0202AFFC +FUN_0202AFFC: ; 0x0202AFFC + cmp r0, #0x0 + beq _0202B016 + ldr r1, _0202B01C ; =0x021C59D4 + ldr r2, [r1, #0x0] + mov r1, #0x13 + lsl r1, r1, #0x4 + add r2, r2, r1 + sub r1, r0, #0x1 + lsl r0, r1, #0x6 + add r0, r1, r0 + lsl r0, r0, #0x2 + add r0, r2, r0 + bx lr +_0202B016: + mov r0, #0x0 + bx lr + nop +_0202B01C: .word 0x021C59D4 + + thumb_func_start FUN_0202B020 +FUN_0202B020: ; 0x0202B020 + add r1, r0, #0x0 + ldr r0, _0202B02C ; =0x021C59D4 + ldr r3, _0202B030 ; =FUN_0202AD94 + ldr r0, [r0, #0x0] + bx r3 + nop +_0202B02C: .word 0x021C59D4 +_0202B030: .word FUN_0202AD94 + + thumb_func_start FUN_0202B034 +FUN_0202B034: ; 0x0202B034 + ldr r0, _0202B038 ; =0x00002AB0 + bx lr + .balign 4 +_0202B038: .word 0x00002AB0 + + thumb_func_start FUN_0202B03C +FUN_0202B03C: ; 0x0202B03C + ldr r3, _0202B048 ; =MIi_CpuClear32 + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _0202B04C ; =0x00002AB0 + bx r3 + nop +_0202B048: .word MIi_CpuClear32 +_0202B04C: .word 0x00002AB0 + + thumb_func_start FUN_0202B050 +FUN_0202B050: ; 0x0202B050 + push {r3-r7, lr} + sub sp, #0x18 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + cmp r0, #0x0 + bne _0202B062 + bl ErrorHandling +_0202B062: + ldr r1, _0202B1E0 ; =0x00002AA8 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + cmp r0, #0x1e + blo _0202B070 + bl ErrorHandling +_0202B070: + ldr r1, _0202B1E4 ; =0x00002AAC + ldr r0, [sp, #0x0] + ldr r2, [r0, r1] + ldr r0, _0202B1E8 ; =0x0000270F + cmp r2, r0 + blo _0202B07E + b _0202B1DC +_0202B07E: + ldr r0, [sp, #0x0] + sub r1, r1, #0x4 + ldr r1, [r0, r1] + mov r0, #0x5b + lsl r0, r0, #0x2 + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x0] + add r0, r0, r2 + str r0, [sp, #0x14] + ldr r0, [sp, #0x4] + bl FUN_0206B9AC + str r0, [sp, #0x10] + mov r0, #0xb + mov r1, #0x0 + bl FUN_020219F4 + mov r2, #0x5a + add r6, r0, #0x0 + ldr r1, [sp, #0x14] + mov r0, #0x0 + lsl r2, r2, #0x2 + bl MIi_CpuClear16 + ldr r0, [sp, #0x10] + mov r7, #0x0 + cmp r0, #0x0 + ble _0202B18E + ldr r5, [sp, #0x14] +_0202B0BA: + ldr r0, [sp, #0x4] + add r1, r7, #0x0 + bl FUN_0206B9B0 + add r4, r0, #0x0 + bl FUN_020669D4 + str r0, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + bne _0202B17E + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl FUN_020671BC + strh r0, [r5, #0x0] + add r0, r4, #0x0 + mov r1, #0xa0 + mov r2, #0x0 + bl FUN_020671BC + strb r0, [r5, #0x2] + add r0, r4, #0x0 + mov r1, #0x70 + mov r2, #0x0 + bl FUN_020671BC + mov r1, #0x0 + strb r0, [r5, #0x3] + add r0, r4, #0x0 + add r2, r1, #0x0 + bl FUN_020671BC + str r0, [r5, #0x4] + add r0, r4, #0x0 + mov r1, #0x7 + mov r2, #0x0 + bl FUN_020671BC + str r0, [r5, #0x8] + add r0, r4, #0x0 + mov r1, #0x36 + mov r2, #0x0 + bl FUN_020671BC + strh r0, [r5, #0x32] + add r0, r4, #0x0 + mov r1, #0x37 + mov r2, #0x0 + bl FUN_020671BC + strh r0, [r5, #0x34] + add r0, r4, #0x0 + mov r1, #0x38 + mov r2, #0x0 + bl FUN_020671BC + strh r0, [r5, #0x36] + add r0, r4, #0x0 + mov r1, #0x39 + mov r2, #0x0 + bl FUN_020671BC + strh r0, [r5, #0x38] + cmp r6, #0x0 + beq _0202B176 + add r0, r4, #0x0 + mov r1, #0x76 + add r2, r6, #0x0 + bl FUN_020671BC + add r1, r5, #0x0 + add r0, r6, #0x0 + add r1, #0xc + mov r2, #0xb + bl FUN_02021EF0 + add r0, r4, #0x0 + mov r1, #0x90 + add r2, r6, #0x0 + bl FUN_020671BC + add r1, r5, #0x0 + add r0, r6, #0x0 + add r1, #0x22 + mov r2, #0x8 + bl FUN_02021EF0 + b _0202B17C +_0202B176: + ldr r0, _0202B1EC ; =0x0000FFFF + strh r0, [r5, #0xc] + strh r0, [r5, #0x22] +_0202B17C: + add r5, #0x3c +_0202B17E: + ldr r1, [sp, #0xc] + add r0, r4, #0x0 + bl FUN_02066A20 + ldr r0, [sp, #0x10] + add r7, r7, #0x1 + cmp r7, r0 + blt _0202B0BA +_0202B18E: + ldr r0, [sp, #0x8] + mov r1, #0x5a + ldr r2, [r0, #0x0] + ldr r0, [sp, #0x14] + lsl r1, r1, #0x2 + strh r2, [r0, r1] + ldr r0, [sp, #0x8] + add r2, r1, #0x2 + ldr r3, [r0, #0x4] + ldr r0, [sp, #0x14] + add r1, r1, #0x3 + strb r3, [r0, r2] + ldr r0, [sp, #0x8] + ldr r2, [r0, #0x8] + ldr r0, [sp, #0x14] + strb r2, [r0, r1] + ldr r1, _0202B1E0 ; =0x00002AA8 + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + str r2, [r0, r1] + ldr r0, [r0, r1] + cmp r0, #0x1e + blo _0202B1C6 + ldr r0, [sp, #0x0] + mov r2, #0x0 + str r2, [r0, r1] +_0202B1C6: + ldr r1, _0202B1E4 ; =0x00002AAC + ldr r0, [sp, #0x0] + ldr r0, [r0, r1] + add r2, r0, #0x1 + ldr r0, [sp, #0x0] + cmp r6, #0x0 + str r2, [r0, r1] + beq _0202B1DC + add r0, r6, #0x0 + bl FUN_02021A20 +_0202B1DC: + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_0202B1E0: .word 0x00002AA8 +_0202B1E4: .word 0x00002AAC +_0202B1E8: .word 0x0000270F +_0202B1EC: .word 0x0000FFFF + + thumb_func_start FUN_0202B1F0 +FUN_0202B1F0: ; 0x0202B1F0 + push {r4, lr} + add r4, r0, #0x0 + bne _0202B1FA + bl ErrorHandling +_0202B1FA: + ldr r0, _0202B214 ; =0x00002AA8 + ldr r0, [r4, r0] + cmp r0, #0x1e + blo _0202B206 + bl ErrorHandling +_0202B206: + ldr r0, _0202B218 ; =0x00002AAC + ldr r0, [r4, r0] + cmp r0, #0x1e + blo _0202B210 + mov r0, #0x1e +_0202B210: + pop {r4, pc} + nop +_0202B214: .word 0x00002AA8 +_0202B218: .word 0x00002AAC + + thumb_func_start FUN_0202B21C +FUN_0202B21C: ; 0x0202B21C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202B22A + bl ErrorHandling +_0202B22A: + ldr r0, _0202B248 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B236 + bl ErrorHandling +_0202B236: + cmp r4, #0x1e + blt _0202B23E + bl ErrorHandling +_0202B23E: + ldr r0, _0202B24C ; =0x00002AAC + ldr r0, [r5, r0] + sub r0, r0, r4 + pop {r3-r5, pc} + nop +_0202B248: .word 0x00002AA8 +_0202B24C: .word 0x00002AAC + + thumb_func_start FUN_0202B250 +FUN_0202B250: ; 0x0202B250 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + cmp r5, #0x0 + bne _0202B25E + bl ErrorHandling +_0202B25E: + ldr r0, _0202B298 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B26A + bl ErrorHandling +_0202B26A: + cmp r4, #0x1e + blt _0202B272 + bl ErrorHandling +_0202B272: + ldr r0, _0202B298 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r2, r0, r4 + bpl _0202B27E + add r2, #0x1e +_0202B27E: + mov r1, #0x5b + lsl r1, r1, #0x2 + mul r1, r2 + mov r0, #0x0 + add r2, r5, r1 +_0202B288: + ldrh r1, [r2, #0x0] + cmp r1, #0x0 + beq _0202B296 + add r0, r0, #0x1 + add r2, #0x3c + cmp r0, #0x6 + blo _0202B288 +_0202B296: + pop {r3-r5, pc} + .balign 4 +_0202B298: .word 0x00002AA8 + + thumb_func_start FUN_0202B29C +FUN_0202B29C: ; 0x0202B29C + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + add r4, r3, #0x0 + cmp r5, #0x0 + bne _0202B2AE + bl ErrorHandling +_0202B2AE: + ldr r0, _0202B318 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B2BA + bl ErrorHandling +_0202B2BA: + cmp r6, #0x1e + blt _0202B2C2 + bl ErrorHandling +_0202B2C2: + ldr r0, _0202B318 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r1, r0, r6 + bpl _0202B2CE + add r1, #0x1e +_0202B2CE: + mov r0, #0x5b + lsl r0, r0, #0x2 + mul r0, r1 + add r1, r5, r0 + mov r0, #0x3c + mul r0, r7 + add r5, r1, r0 + ldrh r0, [r1, r0] + add r1, r5, #0x0 + add r1, #0xc + strh r0, [r4, #0x10] + ldrb r0, [r5, #0x2] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x4] + str r0, [r4, #0x8] + ldr r0, [r5, #0x8] + str r0, [r4, #0xc] + ldrb r0, [r5, #0x3] + strb r0, [r4, #0x13] + ldr r0, [r4, #0x0] + bl FUN_02021E28 + add r1, r5, #0x0 + ldr r0, [r4, #0x4] + add r1, #0x22 + bl FUN_02021E28 + mov r1, #0x0 +_0202B306: + ldrh r0, [r5, #0x32] + add r1, r1, #0x1 + add r5, r5, #0x2 + strh r0, [r4, #0x14] + add r4, r4, #0x2 + cmp r1, #0x4 + blt _0202B306 + pop {r3-r7, pc} + nop +_0202B318: .word 0x00002AA8 + + thumb_func_start FUN_0202B31C +FUN_0202B31C: ; 0x0202B31C + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + cmp r5, #0x0 + bne _0202B32C + bl ErrorHandling +_0202B32C: + ldr r0, _0202B370 ; =0x00002AA8 + ldr r0, [r5, r0] + cmp r0, #0x1e + blo _0202B338 + bl ErrorHandling +_0202B338: + cmp r6, #0x1e + blt _0202B340 + bl ErrorHandling +_0202B340: + ldr r0, _0202B370 ; =0x00002AA8 + ldr r0, [r5, r0] + sub r0, r0, #0x1 + sub r2, r0, r6 + bpl _0202B34C + add r2, #0x1e +_0202B34C: + mov r0, #0x5b + lsl r0, r0, #0x2 + add r1, r2, #0x0 + mul r1, r0 + add r2, r5, r1 + sub r1, r0, #0x4 + ldrh r1, [r2, r1] + str r1, [r4, #0x0] + sub r1, r0, #0x2 + ldrb r1, [r2, r1] + sub r0, r0, #0x1 + str r1, [r4, #0x4] + ldrb r0, [r2, r0] + str r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0xc] + pop {r4-r6, pc} + nop +_0202B370: .word 0x00002AA8 + + thumb_func_start FUN_0202B374 +FUN_0202B374: ; 0x0202B374 + ldr r0, _0202B378 ; =0x00000B88 + bx lr + .balign 4 +_0202B378: .word 0x00000B88 + + thumb_func_start FUN_0202B37C +FUN_0202B37C: ; 0x0202B37C + ldr r3, _0202B388 ; =MIi_CpuClearFast + add r1, r0, #0x0 + mov r0, #0x0 + ldr r2, _0202B38C ; =0x00000B88 + bx r3 + nop +_0202B388: .word MIi_CpuClearFast +_0202B38C: .word 0x00000B88 + + thumb_func_start FUN_0202B390 +FUN_0202B390: ; 0x0202B390 + push {r4, lr} + add r4, r0, #0x0 + add r1, r4, #0x0 + mov r0, #0x0 + add r1, #0xc + mov r2, #0xc0 + bl MIi_CpuClearFast + add r1, r4, #0x0 + mov r0, #0x0 + add r1, #0xcc + mov r2, #0xc0 + bl MIi_CpuClearFast + mov r1, #0x63 + lsl r1, r1, #0x2 + mov r0, #0x0 + add r1, r4, r1 + mov r2, #0xc0 + bl MIi_CpuClearFast + add r0, r4, #0x0 + bl FUN_0202B3F8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202B3C4 +FUN_0202B3C4: ; 0x0202B3C4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x4] + cmp r0, r1 + ble _0202B3D4 + sub r0, r0, r1 + str r0, [r4, #0x4] + pop {r4, pc} +_0202B3D4: + add r0, r2, #0x0 + mov r1, #0xf + bl _s32_div_f + mov r0, #0xf + sub r1, r0, r1 + str r1, [r4, #0x4] + bne _0202B3E6 + str r0, [r4, #0x4] +_0202B3E6: + mov r1, #0x0 + strb r1, [r4, #0x8] + add r0, r1, #0x0 +_0202B3EC: + strb r0, [r4, r1] + add r1, r1, #0x1 + cmp r1, #0x4 + blt _0202B3EC + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202B3F8 +FUN_0202B3F8: ; 0x0202B3F8 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + bl FUN_0202B40C + add r0, r4, #0x0 + bl FUN_0202B430 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202B40C +FUN_0202B40C: ; 0x0202B40C + strb r1, [r0, #0x8] + bx lr + + thumb_func_start FUN_0202B410 +FUN_0202B410: ; 0x0202B410 + ldrb r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_0202B414 +FUN_0202B414: ; 0x0202B414 + push {r3, lr} + mov r3, #0x0 +_0202B418: + ldrb r2, [r0, r3] + cmp r2, #0x0 + bne _0202B422 + strb r1, [r0, r3] + pop {r3, pc} +_0202B422: + add r3, r3, #0x1 + cmp r3, #0x4 + blt _0202B418 + bl ErrorHandling + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202B430 +FUN_0202B430: ; 0x0202B430 + mov r2, #0x0 + add r1, r2, #0x0 +_0202B434: + strb r1, [r0, r2] + add r2, r2, #0x1 + cmp r2, #0x4 + blt _0202B434 + bx lr + .balign 4 + + thumb_func_start FUN_0202B440 +FUN_0202B440: ; 0x0202B440 + mov r3, #0x0 +_0202B442: + ldrb r2, [r0, r3] + cmp r1, r2 + bne _0202B44C + mov r0, #0x1 + bx lr +_0202B44C: + add r3, r3, #0x1 + cmp r3, #0x4 + blt _0202B442 + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202B458 +FUN_0202B458: ; 0x0202B458 + mov r2, #0x0 + add r3, r2, #0x0 +_0202B45C: + ldrb r1, [r0, r2] + cmp r1, #0x0 + beq _0202B464 + add r3, r3, #0x1 +_0202B464: + add r2, r2, #0x1 + cmp r2, #0x4 + blt _0202B45C + add r0, r3, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202B470 +FUN_0202B470: ; 0x0202B470 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + add r0, sp, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020126B4 + ldr r0, [sp, #0x8] + ldr r3, [sp, #0x4] + lsl r0, r0, #0x18 + lsr r1, r0, #0x10 + ldr r0, [sp, #0x0] + lsl r3, r3, #0x18 + lsl r0, r0, #0x18 + lsr r3, r3, #0x8 + orr r0, r3 + ldr r2, [sp, #0xc] + orr r0, r1 + orr r0, r2 + str r0, [r5, #0x4] + strb r4, [r5, #0x0] + mov r0, #0x0 + strb r0, [r5, #0x1] + add r5, #0x8 + add r0, r6, #0x0 + add r1, r5, #0x0 + mov r2, #0x28 + bl MIi_CpuCopyFast + add sp, #0x10 + pop {r4-r6, pc} + + thumb_func_start FUN_0202B4B0 +FUN_0202B4B0: ; 0x0202B4B0 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl FUN_0202B548 + mov r2, #0x0 + add r3, r0, #0x0 +_0202B4BE: + ldrb r1, [r3, #0x0] + cmp r5, r1 + bne _0202B4E0 + mov r1, #0x30 + mul r1, r2 + add r0, r0, r1 + ldrb r1, [r0, #0x1] + cmp r1, #0x3 + blo _0202B4DC + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B4DC: + mov r0, #0x0 + pop {r3-r5, pc} +_0202B4E0: + add r2, r2, #0x1 + add r3, #0x30 + cmp r2, #0x4 + blt _0202B4BE + mov r1, #0x0 + add r3, r0, #0x0 +_0202B4EC: + ldrb r2, [r3, #0x0] + cmp r2, #0x0 + bne _0202B504 + mov r2, #0x30 + mul r2, r1 + add r0, r0, r2 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B504: + add r1, r1, #0x1 + add r3, #0x30 + cmp r1, #0x4 + blt _0202B4EC + mov r1, #0x0 + add r3, r0, #0x0 +_0202B510: + ldrb r2, [r3, #0x1] + cmp r2, #0x3 + blo _0202B528 + mov r2, #0x30 + mul r2, r1 + add r0, r0, r2 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0202B470 + mov r0, #0x1 + pop {r3-r5, pc} +_0202B528: + add r1, r1, #0x1 + add r3, #0x30 + cmp r1, #0x4 + blt _0202B510 + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202B534 +FUN_0202B534: ; 0x0202B534 + add r0, #0x8 + bx lr + + thumb_func_start FUN_0202B538 +FUN_0202B538: ; 0x0202B538 + ldrb r0, [r0, #0x6] + bx lr + + thumb_func_start FUN_0202B53C +FUN_0202B53C: ; 0x0202B53C + ldrb r0, [r0, #0x5] + bx lr + + thumb_func_start FUN_0202B540 +FUN_0202B540: ; 0x0202B540 + add r0, #0x18 + bx lr + + thumb_func_start FUN_0202B544 +FUN_0202B544: ; 0x0202B544 + bx lr + .balign 4 + + thumb_func_start FUN_0202B548 +FUN_0202B548: ; 0x0202B548 + push {r4, lr} + mov r4, #0x0 + cmp r1, #0x4 + bhi _0202B57E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202B55C: ; jump table (using 16-bit offset) + .short _0202B57E - _0202B55C - 2; case 0 + .short _0202B566 - _0202B55C - 2; case 1 + .short _0202B56E - _0202B55C - 2; case 2 + .short _0202B574 - _0202B55C - 2; case 3 + .short _0202B57A - _0202B55C - 2; case 4 +_0202B566: + mov r1, #0x63 + lsl r1, r1, #0x2 + add r4, r0, r1 + b _0202B57E +_0202B56E: + add r4, r0, #0x0 + add r4, #0xc + b _0202B57E +_0202B574: + add r4, r0, #0x0 + add r4, #0xcc + b _0202B57E +_0202B57A: + bl ErrorHandling +_0202B57E: + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202B584 +FUN_0202B584: ; 0x0202B584 + push {r4, lr} + mov r4, #0x0 + cmp r1, #0x4 + bhi _0202B5BA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202B598: ; jump table (using 16-bit offset) + .short _0202B5BA - _0202B598 - 2; case 0 + .short _0202B5B0 - _0202B598 - 2; case 1 + .short _0202B5A2 - _0202B598 - 2; case 2 + .short _0202B5AA - _0202B598 - 2; case 3 + .short _0202B5B6 - _0202B598 - 2; case 4 +_0202B5A2: + mov r1, #0x93 + lsl r1, r1, #0x2 + add r4, r0, r1 + b _0202B5BA +_0202B5AA: + ldr r1, _0202B5C0 ; =0x000006CC + add r4, r0, r1 + b _0202B5BA +_0202B5B0: + ldr r1, _0202B5C4 ; =0x0000090C + add r4, r0, r1 + b _0202B5BA +_0202B5B6: + bl ErrorHandling +_0202B5BA: + add r0, r4, #0x0 + pop {r4, pc} + nop +_0202B5C0: .word 0x000006CC +_0202B5C4: .word 0x0000090C + + thumb_func_start FUN_0202B5C8 +FUN_0202B5C8: ; 0x0202B5C8 + ldrb r0, [r0, #0x0] + bx lr + + thumb_func_start FUN_0202B5CC +FUN_0202B5CC: ; 0x0202B5CC + ldrb r1, [r0, #0x1] + cmp r1, #0x3 + bhs _0202B5D6 + add r1, r1, #0x1 + strb r1, [r0, #0x1] +_0202B5D6: + bx lr + + thumb_func_start FUN_0202B5D8 +FUN_0202B5D8: ; 0x0202B5D8 + add r0, #0x8 + bx lr + + thumb_func_start FUN_0202B5DC +FUN_0202B5DC: ; 0x0202B5DC + push {r4-r7} + mov r5, #0x0 + add r4, r5, #0x0 + ldr r6, [sp, #0x10] + cmp r1, #0x0 + ble _0202B616 +_0202B5E8: + ldrb r7, [r0, #0x0] + cmp r2, r7 + bne _0202B60E + ldrb r7, [r0, #0x1] + cmp r3, #0x0 + beq _0202B600 + cmp r7, #0x0 + beq _0202B600 + add r7, r4, #0x1 + strb r7, [r6, r5] + add r5, r5, #0x1 + b _0202B60E +_0202B600: + cmp r3, #0x0 + bne _0202B60E + cmp r7, #0x0 + bne _0202B60E + add r7, r4, #0x1 + strb r7, [r6, r5] + add r5, r5, #0x1 +_0202B60E: + add r4, r4, #0x1 + add r0, #0x30 + cmp r4, r1 + blt _0202B5E8 +_0202B616: + add r0, r5, #0x0 + pop {r4-r7} + bx lr + + thumb_func_start FUN_0202B61C +FUN_0202B61C: ; 0x0202B61C + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + mov r5, #0x0 + add r0, r1, #0x0 + add r4, r5, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + ldr r7, [sp, #0x20] + cmp r0, #0x0 + ble _0202B672 +_0202B634: + ldrb r2, [r6, #0x18] + ldr r1, [sp, #0x4] + ldrb r0, [r6, #0x19] + cmp r1, r2 + bne _0202B668 + ldr r1, [sp, #0x8] + cmp r1, #0x0 + beq _0202B654 + cmp r0, #0x0 + beq _0202B654 + add r0, r4, #0x1 + bl FUN_0202B830 + strb r0, [r7, r5] + add r5, r5, #0x1 + b _0202B668 +_0202B654: + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _0202B668 + cmp r0, #0x0 + bne _0202B668 + add r0, r4, #0x1 + bl FUN_0202B830 + strb r0, [r7, r5] + add r5, r5, #0x1 +_0202B668: + ldr r0, [sp, #0x0] + add r4, r4, #0x1 + add r6, #0x48 + cmp r4, r0 + blt _0202B634 +_0202B672: + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_0202B678 +FUN_0202B678: ; 0x0202B678 + push {r3-r5, lr} + ldr r5, [sp, #0x10] + ldr r4, [sp, #0x14] + cmp r1, #0x4 + bhi _0202B702 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0202B68E: ; jump table (using 16-bit offset) + .short _0202B702 - _0202B68E - 2; case 0 + .short _0202B6DA - _0202B68E - 2; case 1 + .short _0202B698 - _0202B68E - 2; case 2 + .short _0202B6BA - _0202B68E - 2; case 3 + .short _0202B6FE - _0202B68E - 2; case 4 +_0202B698: + cmp r3, #0x0 + str r4, [sp, #0x0] + beq _0202B6AA + add r0, #0xc + mov r1, #0x4 + add r3, r5, #0x0 + bl FUN_0202B5DC + pop {r3-r5, pc} +_0202B6AA: + mov r1, #0x93 + lsl r1, r1, #0x2 + add r0, r0, r1 + mov r1, #0x10 + add r3, r5, #0x0 + bl FUN_0202B61C + pop {r3-r5, pc} +_0202B6BA: + cmp r3, #0x0 + str r4, [sp, #0x0] + beq _0202B6CC + add r0, #0xcc + mov r1, #0x4 + add r3, r5, #0x0 + bl FUN_0202B5DC + pop {r3-r5, pc} +_0202B6CC: + ldr r1, _0202B708 ; =0x000006CC + add r3, r5, #0x0 + add r0, r0, r1 + mov r1, #0x8 + bl FUN_0202B61C + pop {r3-r5, pc} +_0202B6DA: + cmp r3, #0x0 + str r4, [sp, #0x0] + beq _0202B6F0 + mov r1, #0x63 + lsl r1, r1, #0x2 + add r0, r0, r1 + mov r1, #0x4 + add r3, r5, #0x0 + bl FUN_0202B5DC + pop {r3-r5, pc} +_0202B6F0: + ldr r1, _0202B70C ; =0x0000090C + add r3, r5, #0x0 + add r0, r0, r1 + mov r1, #0x8 + bl FUN_0202B61C + pop {r3-r5, pc} +_0202B6FE: + mov r0, #0x0 + pop {r3-r5, pc} +_0202B702: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202B708: .word 0x000006CC +_0202B70C: .word 0x0000090C + + thumb_func_start FUN_0202B710 +FUN_0202B710: ; 0x0202B710 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + add r6, r1, #0x0 + add r5, r2, #0x0 + add r0, sp, #0x8 + mov r1, #0x0 + mov r2, #0x4 + bl MI_CpuFill8 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + mov r3, #0x1 + bl FUN_0202B678 + cmp r0, #0x0 + beq _0202B742 + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0202B742: + mov r3, #0x1 + str r3, [sp, #0x0] + add r0, sp, #0x8 + str r0, [sp, #0x4] + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_0202B678 + cmp r0, #0x0 + beq _0202B79E + add r0, sp, #0x8 + ldrb r0, [r0, #0x0] + mov r7, #0x0 + cmp r0, #0x0 + beq _0202B798 + add r5, sp, #0x8 +_0202B764: + ldrb r2, [r5, #0x0] + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_0202B7C8 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + blo _0202B77A + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202B77A: + add r7, r7, #0x1 + add r5, r5, #0x1 + cmp r7, #0x4 + bge _0202B786 + mov r1, #0x1 + b _0202B788 +_0202B786: + mov r1, #0x0 +_0202B788: + ldrb r0, [r5, #0x0] + cmp r0, #0x0 + beq _0202B792 + mov r0, #0x1 + b _0202B794 +_0202B792: + mov r0, #0x0 +_0202B794: + tst r0, r1 + bne _0202B764 +_0202B798: + add sp, #0xc + mov r0, #0x0 + pop {r4-r7, pc} +_0202B79E: + mov r5, #0x1 +_0202B7A0: + add r0, r4, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_0202B7C8 + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202B7B6 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + blo _0202B7BC +_0202B7B6: + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202B7BC: + add r5, r5, #0x1 + cmp r5, #0x4 + ble _0202B7A0 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_0202B7C8 +FUN_0202B7C8: ; 0x0202B7C8 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r1, #0x0 + bl FUN_0202B820 + cmp r0, #0x1 + beq _0202B7DE + bl ErrorHandling +_0202B7DE: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0202B548 + mov r1, #0x80 + bic r4, r1 + sub r2, r4, #0x1 + mov r1, #0x30 + mul r1, r2 + add r0, r0, r1 + pop {r4-r6, pc} + + thumb_func_start FUN_0202B7F4 +FUN_0202B7F4: ; 0x0202B7F4 + push {r4-r6, lr} + add r4, r2, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r6, r1, #0x0 + bl FUN_0202B820 + cmp r0, #0x0 + beq _0202B80A + bl ErrorHandling +_0202B80A: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0202B584 + mov r1, #0x80 + bic r4, r1 + sub r2, r4, #0x1 + mov r1, #0x48 + mul r1, r2 + add r0, r0, r1 + pop {r4-r6, pc} + + thumb_func_start FUN_0202B820 +FUN_0202B820: ; 0x0202B820 + mov r1, #0x80 + tst r0, r1 + bne _0202B82A + mov r0, #0x1 + bx lr +_0202B82A: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202B830 +FUN_0202B830: ; 0x0202B830 + mov r1, #0x80 + orr r0, r1 + bx lr + .balign 4 + + thumb_func_start FUN_0202B838 +FUN_0202B838: ; 0x0202B838 + ldr r1, _0202B840 ; =0x00000B4C + add r0, r0, r1 + bx lr + nop +_0202B840: .word 0x00000B4C + + thumb_func_start FUN_0202B844 +FUN_0202B844: ; 0x0202B844 + ldr r1, _0202B84C ; =0x00000B56 + add r0, r0, r1 + bx lr + nop +_0202B84C: .word 0x00000B56 + + thumb_func_start FUN_0202B850 +FUN_0202B850: ; 0x0202B850 + ldr r1, _0202B858 ; =0x00000B7A + add r0, r0, r1 + bx lr + nop +_0202B858: .word 0x00000B7A + + thumb_func_start FUN_0202B85C +FUN_0202B85C: ; 0x0202B85C + ldr r1, _0202B864 ; =0x00000B7C + add r0, r0, r1 + bx lr + nop +_0202B864: .word 0x00000B7C + + thumb_func_start FUN_0202B868 +FUN_0202B868: ; 0x0202B868 + mov r1, #0x2e + lsl r1, r1, #0x6 + add r0, r0, r1 + bx lr + + thumb_func_start FUN_0202B870 +FUN_0202B870: ; 0x0202B870 + lsl r1, r0, #0x1 + ldr r0, _0202B878 ; =0x020EEAC8 + ldrb r0, [r0, r1] + bx lr + .balign 4 +_0202B878: .word 0x020EEAC8 + + thumb_func_start FUN_0202B87C +FUN_0202B87C: ; 0x0202B87C + lsl r1, r0, #0x1 + ldr r0, _0202B884 ; =0x020EEAC9 + ldrb r0, [r0, r1] + bx lr + .balign 4 +_0202B884: .word 0x020EEAC9 + + thumb_func_start FUN_0202B888 +FUN_0202B888: ; 0x0202B888 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + ldr r3, _0202B898 ; =StringFillEOS + add r0, #0x8 + mov r1, #0x8 + bx r3 + nop +_0202B898: .word StringFillEOS + + thumb_func_start FUN_0202B89C +FUN_0202B89C: ; 0x0202B89C + push {r3, lr} + add r0, #0x8 + bl StringLength + cmp r0, #0x0 + beq _0202B8AC + mov r0, #0x1 + pop {r3, pc} +_0202B8AC: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_0202B8B0 +FUN_0202B8B0: ; 0x0202B8B0 + mov r0, #0xea + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_0202B8B8 +FUN_0202B8B8: ; 0x0202B8B8 + push {r3-r7, lr} + mov r2, #0xea + mov r1, #0x0 + lsl r2, r2, #0x4 + add r6, r0, #0x0 + bl MI_CpuFill8 + mov r7, #0x0 +_0202B8C8: + mov r4, #0x0 + add r5, r6, #0x0 +_0202B8CC: + add r0, r5, #0x0 + bl FUN_0202B888 + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, #0x6 + blt _0202B8CC + add r7, r7, #0x1 + add r6, #0x90 + cmp r7, #0x1a + blt _0202B8C8 + pop {r3-r7, pc} + + thumb_func_start FUN_0202B8E4 +FUN_0202B8E4: ; 0x0202B8E4 + ldr r3, _0202B8EC ; =FUN_02022610 + mov r1, #0x1c + bx r3 + nop +_0202B8EC: .word FUN_02022610 + + thumb_func_start FUN_0202B8F0 +FUN_0202B8F0: ; 0x0202B8F0 + push {r4-r6, lr} + cmp r2, #0x6 + blo _0202B8FE + blo _0202B930 + bl ErrorHandling + pop {r4-r6, pc} +_0202B8FE: + mov r3, #0x90 + mul r3, r1 + add r3, r0, r3 + cmp r2, #0x5 + bge _0202B928 + mov r0, #0x18 + mul r0, r2 + add r6, r3, r0 +_0202B90E: + add r5, r6, #0x0 + add r5, #0x18 + add r4, r6, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + add r2, r2, #0x1 + add r6, #0x18 + stmia r4!, {r0-r1} + cmp r2, #0x5 + blt _0202B90E +_0202B928: + add r3, #0x78 + add r0, r3, #0x0 + bl FUN_0202B888 +_0202B930: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202B934 +FUN_0202B934: ; 0x0202B934 + mov r0, #0x4e + lsl r0, r0, #0x2 + bx lr + .balign 4 + + thumb_func_start FUN_0202B93C +FUN_0202B93C: ; 0x0202B93C + push {r3-r7, lr} + sub sp, #0x8 + add r5, r1, #0x0 + bl FUN_02029FC8 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x34 + bl FUN_020169D8 + str r0, [sp, #0x4] + add r5, r0, #0x0 + ldr r0, _0202B9E8 ; =0x020EEAD0 + mov r6, #0x0 + str r0, [sp, #0x0] +_0202B95A: + cmp r6, #0x5 + beq _0202B968 + cmp r6, #0xa + beq _0202B988 + cmp r6, #0xb + beq _0202B9A0 + b _0202B9C8 +_0202B968: + add r0, r4, #0x0 + mov r1, #0xf + bl FUN_0202A150 + add r7, r0, #0x0 + beq _0202B984 + add r0, r4, #0x0 + mov r1, #0x1d + bl FUN_0202A150 + add r1, r7, #0x0 + bl _u32_div_f + add r7, r0, #0x0 +_0202B984: + str r7, [r5, #0x0] + b _0202B9D4 +_0202B988: + add r0, r4, #0x0 + mov r1, #0x41 + bl FUN_0202A150 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x42 + bl FUN_0202A150 + add r0, r7, r0 + str r0, [r5, #0x0] + b _0202B9D4 +_0202B9A0: + add r0, r4, #0x0 + mov r1, #0x3f + bl FUN_0202A150 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x40 + bl FUN_0202A150 + add r1, r7, r0 + beq _0202B9C4 + ldr r0, [sp, #0x4] + ldr r2, [r0, #0x28] + mov r0, #0x64 + mul r0, r2 + bl _u32_div_f + add r1, r0, #0x0 +_0202B9C4: + str r1, [r5, #0x0] + b _0202B9D4 +_0202B9C8: + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + bl FUN_0202A150 + str r0, [r5, #0x0] +_0202B9D4: + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r0, #0x4 + add r5, r5, #0x4 + str r0, [sp, #0x0] + cmp r6, #0xd + blt _0202B95A + ldr r0, [sp, #0x4] + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_0202B9E8: .word 0x020EEAD0 + + thumb_func_start FUN_0202B9EC +FUN_0202B9EC: ; 0x0202B9EC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020238F4 + mov r1, #0x4e + add r6, r0, #0x0 + add r0, r4, #0x0 + lsl r1, r1, #0x2 + bl FUN_020169D8 + mov r2, #0x4e + mov r1, #0x0 + lsl r2, r2, #0x2 + str r0, [sp, #0x4] + bl MI_CpuFill8 + add r0, r5, #0x0 + bl FUN_0202881C + mov r1, #0x1 + bl FUN_0202877C + str r0, [sp, #0x8] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_020239A0 + add r7, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202B93C + ldr r4, [sp, #0x4] + str r0, [sp, #0x0] + mov r6, #0x0 + add r5, r0, #0x0 +_0202BA38: + ldr r0, [sp, #0x8] + add r1, r4, #0x0 + str r0, [r4, #0x0] + add r0, r7, #0x0 + add r1, #0x8 + mov r2, #0x8 + bl FUN_02021EF0 + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + str r0, [r4, #0x4] + add r4, #0x18 + add r5, r5, #0x4 + cmp r6, #0xd + blt _0202BA38 + ldr r0, [sp, #0x0] + bl FUN_02016A18 + add r0, r7, #0x0 + bl FUN_02021A20 + ldr r0, [sp, #0x4] + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_0202BA68 +FUN_0202BA68: ; 0x0202BA68 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 +_0202BA6E: + add r0, r5, #0x0 + bl FUN_0202B888 + add r4, r4, #0x1 + add r5, #0x18 + cmp r4, #0x6 + blt _0202BA6E + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202BA80 +FUN_0202BA80: ; 0x0202BA80 + push {r3, lr} + ldr r3, [r0, #0x0] + ldr r2, [r1, #0x0] + cmp r3, r2 + beq _0202BA8E + mov r0, #0x0 + pop {r3, pc} +_0202BA8E: + add r0, #0x8 + add r1, #0x8 + bl StringNotEqual + cmp r0, #0x0 + bne _0202BA9E + mov r0, #0x1 + pop {r3, pc} +_0202BA9E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202BAA4 +FUN_0202BAA4: ; 0x0202BAA4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x4] + add r7, r1, #0x0 + mov r4, #0x0 + cmp r0, #0x0 + ble _0202BACE + add r5, r6, #0x0 +_0202BAB4: + ldr r0, [r5, #0xc] + add r1, r7, #0x0 + bl FUN_0202BA80 + cmp r0, #0x0 + beq _0202BAC4 + mov r0, #0x1 + pop {r3-r7, pc} +_0202BAC4: + ldr r0, [r6, #0x4] + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r0 + blt _0202BAB4 +_0202BACE: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202BAD4 +FUN_0202BAD4: ; 0x0202BAD4 + push {r4-r7, lr} + sub sp, #0xc + add r6, r1, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x0] + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0xe0 + add r4, r3, #0x0 + bl MI_CpuFill8 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + cmp r0, #0x0 + bne _0202BB64 + mov r2, #0x90 + add r0, r4, #0x0 + mul r0, r2 + add r1, r6, #0x0 + add r0, r5, r0 + add r1, #0x50 + str r0, [sp, #0x8] + bl MI_CpuCopy8 + add r1, sp, #0x10 + ldrb r3, [r1, #0x18] + mov r0, #0x0 + cmp r3, #0x0 + ble _0202BB2E + mov r2, #0x18 + ldr r1, [sp, #0x24] + mul r2, r4 +_0202BB14: + ldr r5, [r6, #0x4] + add r0, r0, #0x1 + add r4, r5, #0x0 + add r4, r4, #0x1 + str r4, [r6, #0x4] + ldr r4, [r1, #0x0] + lsl r5, r5, #0x2 + add r4, r4, r2 + add r5, r6, r5 + str r4, [r5, #0xc] + add r1, r1, #0x4 + cmp r0, r3 + blt _0202BB14 +_0202BB2E: + add r4, r6, #0x0 + add r4, #0x50 + mov r7, #0x0 + add r5, r4, #0x0 +_0202BB36: + add r0, r4, #0x0 + bl FUN_0202B89C + cmp r0, #0x0 + beq _0202BB58 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0202BAA4 + cmp r0, #0x0 + bne _0202BB58 + ldr r1, [r6, #0x0] + add r0, r1, #0x1 + str r0, [r6, #0x0] + lsl r0, r1, #0x2 + add r0, r6, r0 + str r4, [r0, #0x38] +_0202BB58: + add r7, r7, #0x1 + add r4, #0x18 + add r5, #0x18 + cmp r7, #0x6 + blt _0202BB36 + b _0202BBF8 +_0202BB64: + add r0, r4, #0x0 + add r0, #0xd + mov r2, #0x90 + add r1, r0, #0x0 + mul r1, r2 + add r0, r5, r1 + add r1, r6, #0x0 + add r1, #0x50 + str r0, [sp, #0x8] + bl MI_CpuCopy8 + add r0, sp, #0x10 + ldrb r2, [r0, #0x18] + mov r3, #0x0 + cmp r2, #0x0 + ble _0202BBB2 + mov r1, #0x18 + ldr r0, [sp, #0x24] + mul r1, r4 +_0202BB8A: + ldr r4, [r0, #0x0] + ldr r5, [r1, r4] + cmp r5, #0x0 + beq _0202BBAA + ldr r4, [sp, #0x0] + cmp r4, r5 + bne _0202BBAA + ldr r5, [r6, #0x4] + add r4, r5, #0x0 + add r4, r4, #0x1 + str r4, [r6, #0x4] + ldr r4, [r0, #0x0] + lsl r5, r5, #0x2 + add r4, r4, r1 + add r5, r6, r5 + str r4, [r5, #0xc] +_0202BBAA: + add r3, r3, #0x1 + add r0, r0, #0x4 + cmp r3, r2 + blt _0202BB8A +_0202BBB2: + add r4, r6, #0x0 + mov r0, #0x0 + add r4, #0x50 + str r0, [sp, #0x4] + add r5, r6, #0x0 + add r7, r4, #0x0 +_0202BBBE: + add r0, r4, #0x0 + bl FUN_0202B89C + cmp r0, #0x0 + beq _0202BBE8 + ldr r1, [r5, #0x50] + ldr r0, [sp, #0x0] + cmp r0, r1 + bne _0202BBE8 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl FUN_0202BAA4 + cmp r0, #0x0 + bne _0202BBE8 + ldr r1, [r6, #0x0] + add r0, r1, #0x1 + str r0, [r6, #0x0] + lsl r0, r1, #0x2 + add r0, r6, r0 + str r4, [r0, #0x38] +_0202BBE8: + ldr r0, [sp, #0x4] + add r4, #0x18 + add r0, r0, #0x1 + add r5, #0x18 + add r7, #0x18 + str r0, [sp, #0x4] + cmp r0, #0x6 + blt _0202BBBE +_0202BBF8: + ldr r1, [r6, #0x4] + ldr r0, [r6, #0x0] + mov r2, #0x0 + add r0, r1, r0 + str r0, [r6, #0x8] + ldr r0, [r6, #0x0] + cmp r0, #0x0 + ble _0202BC20 + add r1, r6, #0x0 +_0202BC0A: + ldr r3, [r6, #0x4] + ldr r0, [r1, #0x38] + add r3, r2, r3 + lsl r3, r3, #0x2 + add r3, r6, r3 + str r0, [r3, #0xc] + ldr r0, [r6, #0x0] + add r2, r2, #0x1 + add r1, r1, #0x4 + cmp r2, r0 + blt _0202BC0A +_0202BC20: + mov r0, #0x0 + mov r12, r0 + ldr r0, [r6, #0x8] + sub r5, r0, #0x1 + cmp r5, #0x0 + ble _0202BC64 + add r3, r6, #0x0 +_0202BC2E: + mov r0, r12 + cmp r5, r0 + ble _0202BC52 + lsl r0, r5, #0x2 + add r4, r6, r0 +_0202BC38: + ldr r2, [r4, #0xc] + ldr r7, [r3, #0xc] + ldr r0, [r2, #0x4] + ldr r1, [r7, #0x4] + cmp r1, r0 + bhs _0202BC48 + str r2, [r3, #0xc] + str r7, [r4, #0xc] +_0202BC48: + sub r5, r5, #0x1 + mov r0, r12 + sub r4, r4, #0x4 + cmp r5, r0 + bgt _0202BC38 +_0202BC52: + mov r0, r12 + add r0, r0, #0x1 + mov r12, r0 + ldr r0, [r6, #0x8] + add r3, r3, #0x4 + sub r5, r0, #0x1 + mov r0, r12 + cmp r0, r5 + blt _0202BC2E +_0202BC64: + ldr r0, [sp, #0x8] + bl FUN_0202BA68 + mov r3, #0x0 + add r2, r6, #0x0 + b _0202BC8A +_0202BC70: + ldr r5, [r2, #0xc] + ldr r4, [sp, #0x8] + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [sp, #0x8] + add r2, r2, #0x4 + add r0, #0x18 + str r0, [sp, #0x8] + add r3, r3, #0x1 +_0202BC8A: + cmp r3, #0x6 + bge _0202BC94 + ldr r0, [r6, #0x8] + cmp r3, r0 + blt _0202BC70 +_0202BC94: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_0202BC98 +FUN_0202BC98: ; 0x0202BC98 + push {r4-r7, lr} + sub sp, #0x14 + add r7, r0, #0x0 + add r5, r1, #0x0 + ldr r0, [sp, #0x2c] + mov r1, #0xe0 + str r2, [sp, #0x10] + add r4, r3, #0x0 + bl FUN_020169D8 + add r6, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r1, r6, #0x0 + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + str r0, [sp, #0xc] + ldr r3, [sp, #0x10] + add r0, r7, #0x0 + bl FUN_0202BAD4 + cmp r5, #0x0 + beq _0202BCEA + mov r0, #0x1 + str r0, [sp, #0x0] + str r4, [sp, #0x4] + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r1, r6, #0x0 + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x2c] + str r0, [sp, #0xc] + ldr r3, [sp, #0x10] + add r0, r7, #0x0 + bl FUN_0202BAD4 +_0202BCEA: + add r0, r6, #0x0 + bl FUN_02016A18 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start FUN_0202BCF4 +FUN_0202BCF4: ; 0x0202BCF4 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r1, #0x0 + ldr r1, [sp, #0x38] + add r4, r0, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + str r1, [sp, #0x38] + bl FUN_0202B8E4 + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl FUN_0202881C + mov r1, #0x1 + bl FUN_0202877C + mov r4, #0x0 + add r3, r4, #0x0 + str r0, [sp, #0xc] + cmp r5, #0x0 + bls _0202BD44 +_0202BD20: + cmp r3, r6 + beq _0202BD3A + lsl r0, r3, #0x2 + ldr r2, [r7, r0] + cmp r2, #0x0 + beq _0202BD3A + add r1, r4, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsl r1, r0, #0x2 + add r0, sp, #0x10 + str r2, [r0, r1] +_0202BD3A: + add r0, r3, #0x1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, r5 + blo _0202BD20 +_0202BD44: + cmp r4, #0x0 + beq _0202BD68 + mov r5, #0x0 + add r6, sp, #0x10 +_0202BD4C: + ldr r0, [sp, #0x38] + str r4, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + add r2, r5, #0x0 + add r3, r6, #0x0 + bl FUN_0202BC98 + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xd + blo _0202BD4C +_0202BD68: + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start FUN_0202BD6C +FUN_0202BD6C: ; 0x0202BD6C + push {r3-r7, lr} + sub sp, #0x10 + str r2, [sp, #0x0] + add r4, r0, #0x0 + add r5, r1, #0x0 + bl FUN_020238F4 + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + mov r1, #0x4c + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x4c + add r7, r0, #0x0 + bl MI_CpuFill8 + add r0, r4, #0x0 + bl FUN_0202881C + mov r1, #0x1 + bl FUN_0202877C + str r0, [sp, #0xc] + ldr r1, [sp, #0x0] + add r0, r4, #0x0 + bl FUN_0202B93C + str r0, [sp, #0x8] + add r0, r5, #0x0 + bl FUN_0202B870 + str r0, [r7, #0x0] + add r0, r5, #0x0 + bl FUN_0202B87C + ldr r1, [r7, #0x0] + mov r6, #0x0 + cmp r1, #0x0 + ble _0202BDE2 + lsl r1, r0, #0x2 + ldr r0, [sp, #0x8] + add r4, r7, #0x0 + add r5, r0, r1 +_0202BDC4: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0x0] + str r0, [r4, #0x8] + ldr r0, [sp, #0x4] + bl FUN_020239A0 + str r0, [r4, #0xc] + ldr r0, [r7, #0x0] + add r6, r6, #0x1 + add r4, #0xc + add r5, r5, #0x4 + cmp r6, r0 + blt _0202BDC4 +_0202BDE2: + ldr r0, [sp, #0x8] + bl FUN_02016A18 + add r0, r7, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202BDF0 +FUN_0202BDF0: ; 0x0202BDF0 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + str r1, [sp, #0x0] + add r0, r7, #0x0 + mov r1, #0x4c + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x4c + add r4, r0, #0x0 + bl MI_CpuFill8 + ldr r0, [sp, #0x0] + mov r1, #0x90 + mul r1, r0 + mov r6, #0x0 + add r5, r5, r1 +_0202BE14: + add r0, r5, #0x0 + bl FUN_0202B89C + cmp r0, #0x0 + beq _0202BE60 + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + ldr r0, [r5, #0x0] + add r1, r4, r1 + str r0, [r1, #0x4] + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + ldr r0, [r5, #0x4] + add r1, r4, r1 + str r0, [r1, #0x8] + mov r0, #0x8 + add r1, r7, #0x0 + bl FUN_020219F4 + ldr r2, [r4, #0x0] + mov r1, #0xc + mul r1, r2 + add r1, r4, r1 + str r0, [r1, #0xc] + ldr r1, [r4, #0x0] + mov r0, #0xc + mul r0, r1 + add r0, r4, r0 + add r1, r5, #0x0 + ldr r0, [r0, #0xc] + add r1, #0x8 + bl FUN_02021E28 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] +_0202BE60: + add r6, r6, #0x1 + add r5, #0x18 + cmp r6, #0x6 + blt _0202BE14 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_0202BE6C +FUN_0202BE6C: ; 0x0202BE6C + push {r4-r6, lr} + add r6, r0, #0x0 + mov r4, #0x0 + add r5, r6, #0x0 +_0202BE74: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + beq _0202BE7E + bl FUN_02021A20 +_0202BE7E: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, #0x6 + blt _0202BE74 + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x4c + bl MI_CpuFill8 + add r0, r6, #0x0 + bl FUN_02016A18 + pop {r4-r6, pc} + + thumb_func_start FUN_0202BE98 +FUN_0202BE98: ; 0x0202BE98 + ldr r0, _0202BE9C ; =0x00000688 + bx lr + .balign 4 +_0202BE9C: .word 0x00000688 + + thumb_func_start FUN_0202BEA0 +FUN_0202BEA0: ; 0x0202BEA0 + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r2, _0202BED8 ; =0x00000688 + mov r0, #0x0 + add r1, r5, #0x0 + bl MIi_CpuClearFast + mov r4, #0x0 + mov r6, #0xab + add r7, r4, #0x0 +_0202BEB4: + add r0, r5, #0x0 + bl FUN_02066978 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + beq _0202BECC + bl ErrorHandling +_0202BECC: + add r4, r4, #0x1 + add r5, #0xec + cmp r4, #0x6 + blt _0202BEB4 + pop {r3-r7, pc} + nop +_0202BED8: .word 0x00000688 + + thumb_func_start FUN_0202BEDC +FUN_0202BEDC: ; 0x0202BEDC + push {r3-r7, lr} + add r5, r0, #0x0 + ldr r2, _0202BF14 ; =0x00000588 + mov r0, #0x0 + add r1, r5, #0x0 + bl MIi_CpuClearFast + mov r4, #0x0 + mov r6, #0xab + add r7, r4, #0x0 +_0202BEF0: + add r0, r5, #0x0 + bl FUN_02066978 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + beq _0202BF08 + bl ErrorHandling +_0202BF08: + add r4, r4, #0x1 + add r5, #0xec + cmp r4, #0x6 + blt _0202BEF0 + pop {r3-r7, pc} + nop +_0202BF14: .word 0x00000588 + + thumb_func_start FUN_0202BF18 +FUN_0202BF18: ; 0x0202BF18 + push {r4-r7} + add r2, r0, #0x0 + ldr r3, _0202BF70 ; =0x00000588 + mov r0, #0x0 + add r5, r2, #0x0 +_0202BF22: + ldr r4, [r5, r3] + cmp r1, r4 + beq _0202BF6C + add r0, r0, #0x1 + add r5, r5, #0x4 + cmp r0, #0x14 + blt _0202BF22 + ldr r1, _0202BF70 ; =0x00000588 + mov r0, #0x0 + add r4, r2, #0x0 +_0202BF36: + ldr r3, [r4, r1] + cmp r3, #0x0 + beq _0202BF6C + add r0, r0, #0x1 + add r4, r4, #0x4 + cmp r0, #0x14 + blt _0202BF36 + mov r3, #0x0 + ldr r4, _0202BF74 ; =0x7FFFFFFF + add r5, r3, #0x0 +_0202BF4A: + ldr r0, _0202BF78 ; =0x000005D8 + ldr r1, [r2, r0] + add r0, r0, #0x4 + ldr r0, [r2, r0] + sub r6, r1, r4 + mov r12, r0 + mov r6, r12 + sbc r6, r3 + bge _0202BF62 + add r4, r1, #0x0 + add r3, r0, #0x0 + add r7, r5, #0x0 +_0202BF62: + add r5, r5, #0x1 + add r2, #0x8 + cmp r5, #0x14 + blt _0202BF4A + add r0, r7, #0x0 +_0202BF6C: + pop {r4-r7} + bx lr + .balign 4 +_0202BF70: .word 0x00000588 +_0202BF74: .word 0x7FFFFFFF +_0202BF78: .word 0x000005D8 + + thumb_func_start FUN_0202BF7C +FUN_0202BF7C: ; 0x0202BF7C + add r3, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xec + mul r1, r2 + add r1, r3, r1 + ldr r3, _0202BF8C ; =FUN_02069A64 + bx r3 + nop +_0202BF8C: .word FUN_02069A64 + + thumb_func_start FUN_0202BF90 +FUN_0202BF90: ; 0x0202BF90 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0202BF18 + add r6, r0, #0x0 + lsl r0, r6, #0x2 + add r1, r5, r0 + ldr r0, _0202BFCC ; =0x00000588 + str r4, [r1, r0] + bl FUN_020126FC + lsl r2, r6, #0x3 + add r3, r5, r2 + ldr r2, _0202BFD0 ; =0x000005D8 + str r0, [r3, r2] + add r0, r2, #0x4 + str r1, [r3, r0] + bl OS_GetOwnerRtcOffset + ldr r2, _0202BFD4 ; =0x00000678 + str r0, [r5, r2] + add r0, r2, #0x4 + add r2, #0x8 + str r1, [r5, r0] + add r0, r5, r2 + bl OS_GetMacAddress + pop {r4-r6, pc} + nop +_0202BFCC: .word 0x00000588 +_0202BFD0: .word 0x000005D8 +_0202BFD4: .word 0x00000678 + + thumb_func_start FUN_0202BFD8 +FUN_0202BFD8: ; 0x0202BFD8 + push {r4-r6, lr} + add r5, r1, #0x0 + add r6, r0, #0x0 + add r4, r2, #0x0 + cmp r5, #0x6 + blt _0202BFE8 + bl ErrorHandling +_0202BFE8: + mov r0, #0xec + mul r0, r5 + add r3, r6, r0 + mov r2, #0x1d +_0202BFF0: + ldmia r3!, {r0-r1} + stmia r4!, {r0-r1} + sub r2, r2, #0x1 + bne _0202BFF0 + ldr r0, [r3, #0x0] + str r0, [r4, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202C000 +FUN_0202C000: ; 0x0202C000 + push {r3-r7, lr} + mov r4, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + mov r7, #0xab +_0202C00A: + add r0, r5, #0x0 + add r1, r7, #0x0 + mov r2, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + beq _0202C01A + add r4, r4, #0x1 +_0202C01A: + add r6, r6, #0x1 + add r5, #0xec + cmp r6, #0x6 + blt _0202C00A + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202C028 +FUN_0202C028: ; 0x0202C028 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020126FC + ldr r1, _0202C058 ; =0x00000588 + mov r3, #0x0 + add r6, r5, #0x0 +_0202C038: + ldr r2, [r6, r1] + cmp r4, r2 + bne _0202C04A + lsl r1, r3, #0x3 + add r2, r5, r1 + ldr r1, _0202C05C ; =0x000005D8 + ldr r1, [r2, r1] + sub r0, r0, r1 + pop {r4-r6, pc} +_0202C04A: + add r3, r3, #0x1 + add r6, r6, #0x4 + cmp r3, #0x14 + blt _0202C038 + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202C058: .word 0x00000588 +_0202C05C: .word 0x000005D8 + + thumb_func_start FUN_0202C060 +FUN_0202C060: ; 0x0202C060 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r0, sp, #0x0 + bl OS_GetMacAddress + mov r0, #0x1a + mov r3, #0x0 + add r5, sp, #0x0 + lsl r0, r0, #0x6 +_0202C074: + add r1, r4, r3 + ldrb r2, [r5, #0x0] + ldrb r1, [r1, r0] + cmp r2, r1 + beq _0202C084 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202C084: + add r3, r3, #0x1 + add r5, r5, #0x1 + cmp r3, #0x6 + blt _0202C074 + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202C094 +FUN_0202C094: ; 0x0202C094 + push {r4, lr} + add r4, r0, #0x0 + bl OS_GetOwnerRtcOffset + ldr r2, _0202C0B4 ; =0x00000678 + ldr r3, [r4, r2] + add r2, r2, #0x4 + ldr r2, [r4, r2] + eor r0, r3 + eor r1, r2 + orr r0, r1 + bne _0202C0B0 + mov r0, #0x1 + pop {r4, pc} +_0202C0B0: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_0202C0B4: .word 0x00000678 + + thumb_func_start FUN_0202C0B8 +FUN_0202C0B8: ; 0x0202C0B8 + push {r3-r4} + mov r4, #0x0 + mov r1, #0x1a + add r3, r4, #0x0 + lsl r1, r1, #0x6 +_0202C0C2: + add r2, r0, r3 + ldrb r2, [r2, r1] + add r3, r3, #0x1 + orr r4, r2 + cmp r3, #0x6 + blt _0202C0C2 + cmp r4, #0x0 + bne _0202C0D8 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202C0D8: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0202C0E0 +FUN_0202C0E0: ; 0x0202C0E0 + mov r0, #0x28 + bx lr + + thumb_func_start FUN_0202C0E4 +FUN_0202C0E4: ; 0x0202C0E4 + push {r4-r5} + mov r4, #0x0 + add r1, r4, #0x0 + add r2, r4, #0x0 +_0202C0EC: + add r3, r2, #0x0 + add r5, r0, #0x0 +_0202C0F0: + add r3, r3, #0x1 + strh r1, [r5, #0x0] + add r5, r5, #0x2 + cmp r3, #0x4 + blt _0202C0F0 + add r4, r4, #0x1 + add r0, #0x8 + cmp r4, #0x5 + blt _0202C0EC + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_0202C108 +FUN_0202C108: ; 0x0202C108 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x21 + add r4, r2, #0x0 + bl FUN_02022610 + lsl r1, r5, #0x3 + add r3, r0, r1 + lsl r2, r4, #0x1 + ldrh r1, [r3, r2] + ldr r0, _0202C128 ; =0x0000270F + cmp r1, r0 + bhs _0202C126 + add r0, r1, #0x1 + strh r0, [r3, r2] +_0202C126: + pop {r3-r5, pc} + .balign 4 +_0202C128: .word 0x0000270F + + thumb_func_start FUN_0202C12C +FUN_0202C12C: ; 0x0202C12C + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0x21 + add r4, r2, #0x0 + bl FUN_02022610 + lsl r2, r5, #0x3 + lsl r1, r4, #0x1 + add r0, r0, r2 + ldrh r0, [r1, r0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202C144 +FUN_0202C144: ; 0x0202C144 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + bne _0202C194 + add r0, r5, #0x0 + bl FUN_02024DA0 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02029FC8 + add r7, r0, #0x0 + add r0, r4, #0x0 + mov r1, #0x5 + mov r2, #0x0 + bl FUN_020671BC + add r2, r0, #0x0 + lsl r2, r2, #0x10 + add r0, r7, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x10 + bl FUN_0202A1C4 + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02024AF0 + add r0, r5, #0x0 + bl FUN_0204C1A8 + add r1, r4, #0x0 + bl FUN_0204C104 +_0202C194: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202C198 +FUN_0202C198: ; 0x0202C198 + ldr r1, _0202C1A4 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202C1A8 ; =0x00001310 + str r0, [r2, r1] + bx lr + nop +_0202C1A4: .word 0x021C59D8 +_0202C1A8: .word 0x00001310 + + thumb_func_start FUN_0202C1AC +FUN_0202C1AC: ; 0x0202C1AC + ldr r1, _0202C1C0 ; =0x021C59D8 + ldr r3, [r1, #0x4] + ldr r1, _0202C1C4 ; =0x00001310 + ldr r2, [r3, r1] + sub r2, #0x9 + cmp r2, #0x1 + bls _0202C1BE + add r1, #0x20 + str r0, [r3, r1] +_0202C1BE: + bx lr + .balign 4 +_0202C1C0: .word 0x021C59D8 +_0202C1C4: .word 0x00001310 + + thumb_func_start FUN_0202C1C8 +FUN_0202C1C8: ; 0x0202C1C8 + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r1, _0202C1F0 ; =0x021C59D8 + ldr r0, _0202C1F4 ; =FUN_0202C1F8 + ldr r1, [r1, #0x4] + bl WM_SetParentParameter + cmp r0, #0x2 + beq _0202C1EC + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202C1EC: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C1F0: .word 0x021C59D8 +_0202C1F4: .word FUN_0202C1F8 + + thumb_func_start FUN_0202C1F8 +FUN_0202C1F8: ; 0x0202C1F8 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C20C + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r3, pc} +_0202C20C: + bl FUN_0202C21C + cmp r0, #0x0 + bne _0202C21A + mov r0, #0x9 + bl FUN_0202C198 +_0202C21A: + pop {r3, pc} + + thumb_func_start FUN_0202C21C +FUN_0202C21C: ; 0x0202C21C + push {r4, lr} + ldr r0, _0202C278 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C27C ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C230 + mov r0, #0x1 + pop {r4, pc} +_0202C230: + bl WMi_GetStatusAddress + add r4, r0, #0x0 + mov r0, #0x66 + lsl r0, r0, #0x2 + add r0, r4, r0 + mov r1, #0x4 + bl DC_InvalidateRange + mov r0, #0x66 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, r4, r0 + mov r1, #0x4 + bl DC_FlushRange + ldr r0, _0202C280 ; =FUN_0202C288 + bl WM_StartParent + cmp r0, #0x2 + beq _0202C264 + bl FUN_0202C1AC + mov r0, #0x0 + pop {r4, pc} +_0202C264: + ldr r2, _0202C278 ; =0x021C59D8 + ldr r1, _0202C284 ; =0x0000132C + ldr r0, [r2, #0x4] + mov r3, #0x0 + strh r3, [r0, r1] + ldr r2, [r2, #0x4] + mov r0, #0x1 + add r1, r1, #0x2 + strh r0, [r2, r1] + pop {r4, pc} + .balign 4 +_0202C278: .word 0x021C59D8 +_0202C27C: .word 0x00001310 +_0202C280: .word FUN_0202C288 +_0202C284: .word 0x0000132C + + thumb_func_start FUN_0202C288 +FUN_0202C288: ; 0x0202C288 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrh r0, [r5, #0x10] + mov r1, #0x1 + lsl r1, r0 + lsl r0, r1, #0x10 + lsr r4, r0, #0x10 + ldrh r0, [r5, #0x2] + cmp r0, #0x0 + beq _0202C2A8 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r4-r6, pc} +_0202C2A8: + ldrh r0, [r5, #0x8] + cmp r0, #0x7 + bgt _0202C2C0 + bge _0202C2DA + cmp r0, #0x2 + bgt _0202C378 + cmp r0, #0x0 + blt _0202C378 + beq _0202C36A + cmp r0, #0x2 + beq _0202C2CC + pop {r4-r6, pc} +_0202C2C0: + cmp r0, #0x9 + bgt _0202C2C8 + beq _0202C34C + pop {r4-r6, pc} +_0202C2C8: + cmp r0, #0x1a + pop {r4-r6, pc} +_0202C2CC: + ldr r0, _0202C37C ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C380 ; =0x00001345 + ldrb r1, [r2, r0] + add r1, r1, #0x1 + strb r1, [r2, r0] + pop {r4-r6, pc} +_0202C2DA: + ldr r0, _0202C37C ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C384 ; =0x00001343 + ldrb r1, [r2, r0] + cmp r1, #0x1 + beq _0202C318 + sub r0, r0, #0x1 + ldrb r0, [r2, r0] + cmp r0, #0x1 + beq _0202C318 + bl FUN_0202CBA0 + ldr r1, _0202C37C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202C388 ; =0x00001334 + ldrb r1, [r2, r1] + cmp r0, r1 + bge _0202C318 + bl FUN_02033534 + ldrb r1, [r5, #0x14] + cmp r1, r0 + bne _0202C318 + add r1, r5, #0x0 + ldr r0, _0202C38C ; =0x02105D54 + add r1, #0x15 + mov r2, #0x3 + bl memcmp + cmp r0, #0x0 + beq _0202C330 +_0202C318: + ldrh r1, [r5, #0x10] + mov r0, #0x0 + bl WM_Disconnect + cmp r0, #0x2 + beq _0202C378 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r4-r6, pc} +_0202C330: + ldr r1, _0202C37C ; =0x021C59D8 + ldr r0, _0202C390 ; =0x0000132E + ldr r3, [r1, #0x4] + ldrh r2, [r3, r0] + orr r2, r4 + strh r2, [r3, r0] + ldr r1, [r1, #0x4] + sub r0, r0, #0x6 + ldr r1, [r1, r0] + cmp r1, #0x0 + beq _0202C378 + ldrh r0, [r5, #0x10] + blx r1 + pop {r4-r6, pc} +_0202C34C: + ldr r2, _0202C37C ; =0x021C59D8 + ldr r1, _0202C390 ; =0x0000132E + ldr r0, [r2, #0x4] + mvn r3, r4 + ldrh r6, [r0, r1] + and r3, r6 + strh r3, [r0, r1] + ldr r0, [r2, #0x4] + sub r1, #0xa + ldr r1, [r0, r1] + cmp r1, #0x0 + beq _0202C378 + ldrh r0, [r5, #0x10] + blx r1 + pop {r4-r6, pc} +_0202C36A: + bl FUN_0202C394 + cmp r0, #0x0 + bne _0202C378 + mov r0, #0x9 + bl FUN_0202C198 +_0202C378: + pop {r4-r6, pc} + nop +_0202C37C: .word 0x021C59D8 +_0202C380: .word 0x00001345 +_0202C384: .word 0x00001343 +_0202C388: .word 0x00001334 +_0202C38C: .word 0x02105D54 +_0202C390: .word 0x0000132E + + thumb_func_start FUN_0202C394 +FUN_0202C394: ; 0x0202C394 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0202C3F0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C3F4 ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C3AC + add sp, #0x8 + mov r0, #0x1 + pop {r4, pc} +_0202C3AC: + mov r0, #0x4 + bl FUN_0202C198 + ldr r0, _0202C3F0 ; =0x021C59D8 + ldr r2, _0202C3F8 ; =0x00001304 + ldr r4, [r0, #0x4] + ldr r3, _0202C3FC ; =0x00001020 + ldr r0, [r4, r2] + add r2, r2, #0x4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [r4, r2] + add r1, r4, r3 + lsl r2, r2, #0x10 + sub r3, #0xe0 + ldr r0, _0202C400 ; =FUN_0202C404 + lsr r2, r2, #0x10 + add r3, r4, r3 + bl WM_StartMP + cmp r0, #0x2 + beq _0202C3E8 + bl FUN_0202C1AC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0202C3E8: + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + nop +_0202C3F0: .word 0x021C59D8 +_0202C3F4: .word 0x00001310 +_0202C3F8: .word 0x00001304 +_0202C3FC: .word 0x00001020 +_0202C400: .word FUN_0202C404 + + thumb_func_start FUN_0202C404 +FUN_0202C404: ; 0x0202C404 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202C41A + add r0, r1, #0x0 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r3, pc} +_0202C41A: + ldrh r0, [r0, #0x4] + sub r0, #0xa + cmp r0, #0x3 + bhi _0202C454 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202C42E: ; jump table (using 16-bit offset) + .short _0202C436 - _0202C42E - 2; case 0 + .short _0202C454 - _0202C42E - 2; case 1 + .short _0202C454 - _0202C42E - 2; case 2 + .short _0202C454 - _0202C42E - 2; case 3 +_0202C436: + ldr r0, _0202C458 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C45C ; =0x00001314 + ldr r1, [r2, r0] + cmp r1, #0x2 + bne _0202C44E + sub r0, r0, #0x4 + ldr r0, [r2, r0] + cmp r0, #0x4 + beq _0202C44E + cmp r0, #0x6 + beq _0202C454 +_0202C44E: + mov r0, #0x4 + bl FUN_0202C198 +_0202C454: + pop {r3, pc} + nop +_0202C458: .word 0x021C59D8 +_0202C45C: .word 0x00001314 + + thumb_func_start FUN_0202C460 +FUN_0202C460: ; 0x0202C460 + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202C480 ; =FUN_0202C484 + bl WM_EndMP + cmp r0, #0x2 + beq _0202C47A + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C47A: + mov r0, #0x1 + pop {r3, pc} + nop +_0202C480: .word FUN_0202C484 + + thumb_func_start FUN_0202C484 +FUN_0202C484: ; 0x0202C484 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C496 + bl FUN_0202C1AC + bl FUN_0202D0D8 + pop {r3, pc} +_0202C496: + bl FUN_0202C4A4 + cmp r0, #0x0 + bne _0202C4A2 + bl FUN_0202D0D8 +_0202C4A2: + pop {r3, pc} + + thumb_func_start FUN_0202C4A4 +FUN_0202C4A4: ; 0x0202C4A4 + push {r3, lr} + ldr r0, _0202C4BC ; =FUN_0202C4C0 + bl WM_EndParent + cmp r0, #0x2 + beq _0202C4B8 + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C4B8: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C4BC: .word FUN_0202C4C0 + + thumb_func_start FUN_0202C4C0 +FUN_0202C4C0: ; 0x0202C4C0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C4CE + bl FUN_0202C1AC + pop {r3, pc} +_0202C4CE: + mov r0, #0x1 + bl FUN_0202C198 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202C4D8 +FUN_0202C4D8: ; 0x0202C4D8 + push {r3-r7, lr} + add r6, r2, #0x0 + ldr r2, _0202C564 ; =0x021C59D8 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r3, #0x2 + ldr r0, [r2, #0x4] + ldr r1, _0202C568 ; =0x00001308 + lsl r3, r3, #0x8 + str r3, [r0, r1] + ldr r2, [r2, #0x4] + mov r0, #0x40 + sub r1, r1, #0x4 + str r0, [r2, r1] + mov r0, #0x2 + bl FUN_0202C198 + ldr r1, _0202C564 ; =0x021C59D8 + ldr r0, _0202C56C ; =0x00001256 + ldr r3, [r1, #0x4] + mov r2, #0x1 + strh r2, [r3, r0] + add r7, r0, #0x0 + ldrh r3, [r4, #0x4] + ldr r2, [r1, #0x4] + add r7, #0x96 + strh r3, [r2, r7] + add r7, r0, #0x0 + ldrh r3, [r4, #0x2] + ldr r2, [r1, #0x4] + add r7, #0x94 + strh r3, [r2, r7] + add r2, r0, #0x0 + ldrh r4, [r4, #0x0] + ldr r3, [r1, #0x4] + add r2, #0x92 + strh r4, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + add r2, #0xbe + str r5, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + mov r2, #0x0 + add r3, #0xaa + str r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0xb6 + strh r6, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x8e + strh r2, [r4, r3] + ldr r2, [r1, #0x4] + add r0, #0xb8 + mov r1, #0x1 + strh r1, [r2, r0] + bl FUN_0202C5D8 + cmp r0, #0x0 + bne _0202C55E + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C55E: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0202C564: .word 0x021C59D8 +_0202C568: .word 0x00001308 +_0202C56C: .word 0x00001256 + + thumb_func_start FUN_0202C570 +FUN_0202C570: ; 0x0202C570 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x2 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_0202C198 + ldr r1, _0202C5D4 ; =0x021C59D8 + mov r0, #0x13 + ldr r2, [r1, #0x4] + lsl r0, r0, #0x8 + str r5, [r2, r0] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + add r2, #0xc + strh r6, [r3, r2] + add r3, r0, #0x0 + ldr r5, [r1, #0x4] + mov r2, #0x0 + sub r3, #0x1c + strh r2, [r5, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x4] + add r3, #0xe + strh r2, [r5, r3] + add r2, r0, #0x0 + ldrh r5, [r4, #0x4] + ldr r3, [r1, #0x4] + sub r2, #0x14 + strh r5, [r3, r2] + add r2, r0, #0x0 + ldrh r5, [r4, #0x2] + ldr r3, [r1, #0x4] + sub r2, #0x16 + strh r5, [r3, r2] + ldrh r2, [r4, #0x0] + ldr r1, [r1, #0x4] + sub r0, #0x18 + strh r2, [r1, r0] + bl FUN_0202C5D8 + cmp r0, #0x0 + bne _0202C5D0 + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x0 + pop {r4-r6, pc} +_0202C5D0: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0202C5D4: .word 0x021C59D8 + + thumb_func_start FUN_0202C5D8 +FUN_0202C5D8: ; 0x0202C5D8 + push {r3-r7, lr} + bl WM_GetAllowedChannel + add r5, r0, #0x0 + mov r0, #0x2 + lsl r0, r0, #0xe + cmp r5, r0 + bne _0202C5F8 + mov r0, #0x3 + bl FUN_0202C1AC + mov r0, #0x1 + bl FUN_020336A0 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C5F8: + cmp r5, #0x0 + bne _0202C60C + mov r0, #0x16 + bl FUN_0202C1AC + mov r0, #0x1 + bl FUN_020336A0 + mov r0, #0x0 + pop {r3-r7, pc} +_0202C60C: + ldr r1, _0202C684 ; =0x021C59D8 + ldr r0, _0202C688 ; =0x0000130C + ldr r3, [r1, #0x4] + ldrh r2, [r3, r0] + cmp r2, #0x0 + bne _0202C64C + add r7, r0, #0x0 + mov r3, #0x1 + add r2, r3, #0x0 + sub r7, #0x28 + sub r0, #0x28 +_0202C622: + ldr r4, [r1, #0x4] + ldr r6, _0202C68C ; =0x000012E4 + ldrh r6, [r4, r6] + add r6, r6, #0x1 + strh r6, [r4, r7] + ldr r4, [r1, #0x4] + ldrh r6, [r4, r0] + cmp r6, #0x10 + bls _0202C638 + ldr r6, _0202C68C ; =0x000012E4 + strh r3, [r4, r6] +_0202C638: + ldr r6, [r1, #0x4] + ldr r4, _0202C68C ; =0x000012E4 + ldrh r4, [r6, r4] + add r6, r2, #0x0 + sub r4, r4, #0x1 + lsl r6, r4 + add r4, r5, #0x0 + tst r4, r6 + bne _0202C650 + b _0202C622 +_0202C64C: + sub r0, #0x28 + strh r2, [r3, r0] +_0202C650: + bl WM_GetDispersionScanPeriod + ldr r2, _0202C684 ; =0x021C59D8 + ldr r1, _0202C690 ; =0x000012E6 + ldr r3, [r2, #0x4] + strh r0, [r3, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + sub r0, #0xc6 + add r4, r3, r0 + sub r0, r1, #0x6 + str r4, [r3, r0] + ldr r2, [r2, #0x4] + sub r1, r1, #0x6 + ldr r0, _0202C694 ; =FUN_0202C698 + add r1, r2, r1 + bl WM_StartScan + cmp r0, #0x2 + beq _0202C680 + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3-r7, pc} +_0202C680: + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 +_0202C684: .word 0x021C59D8 +_0202C688: .word 0x0000130C +_0202C68C: .word 0x000012E4 +_0202C690: .word 0x000012E6 +_0202C694: .word FUN_0202C698 + + thumb_func_start FUN_0202C698 +FUN_0202C698: ; 0x0202C698 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202C6AE + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C6AE: + ldr r0, _0202C760 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C764 ; =0x00001310 + ldr r1, [r2, r0] + cmp r1, #0x2 + beq _0202C6D0 + mov r1, #0x0 + sub r0, r0, #0x2 + strh r1, [r2, r0] + bl FUN_0202C794 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C6D0: + ldrh r1, [r4, #0x8] + cmp r1, #0x3 + beq _0202C75C + cmp r1, #0x4 + beq _0202C74E + cmp r1, #0x5 + bne _0202C74E + sub r0, #0xf0 + add r0, r2, r0 + mov r1, #0xc0 + bl DC_InvalidateRange + ldr r0, _0202C760 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C768 ; =0x00001320 + ldr r2, [r1, r0] + cmp r2, #0x0 + beq _0202C704 + ldrh r0, [r4, #0x36] + cmp r0, #0x8 + blo _0202C704 + add r1, r4, #0x0 + add r1, #0x48 + ldrb r1, [r1, #0x4] + ldr r0, [r4, #0x3c] + blx r2 +_0202C704: + ldrh r0, [r4, #0x36] + cmp r0, #0x8 + blo _0202C74E + ldr r0, _0202C760 ; =0x021C59D8 + ldr r2, [r4, #0x3c] + ldr r0, [r0, #0x4] + ldr r1, [r0, #0x8] + cmp r2, r1 + bne _0202C74E + add r4, #0x43 + ldrb r2, [r4, #0x0] + mov r1, #0x3 + and r1, r2 + cmp r1, #0x1 + bne _0202C74E + mov r1, #0x13 + lsl r1, r1, #0x8 + ldr r2, [r0, r1] + cmp r2, #0x0 + beq _0202C732 + sub r1, #0xe0 + add r0, r0, r1 + blx r2 +_0202C732: + ldr r0, _0202C760 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C76C ; =0x0000130E + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _0202C74E + bl FUN_0202C794 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C74E: + bl FUN_0202C5D8 + cmp r0, #0x0 + bne _0202C75C + mov r0, #0x9 + bl FUN_0202C198 +_0202C75C: + pop {r4, pc} + nop +_0202C760: .word 0x021C59D8 +_0202C764: .word 0x00001310 +_0202C768: .word 0x00001320 +_0202C76C: .word 0x0000130E + + thumb_func_start FUN_0202C770 +FUN_0202C770: ; 0x0202C770 + push {r3, lr} + ldr r0, _0202C78C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C790 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + beq _0202C782 + mov r0, #0x0 + pop {r3, pc} +_0202C782: + mov r0, #0x3 + bl FUN_0202C198 + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C78C: .word 0x021C59D8 +_0202C790: .word 0x00001310 + + thumb_func_start FUN_0202C794 +FUN_0202C794: ; 0x0202C794 + push {r3, lr} + ldr r0, _0202C7AC ; =FUN_0202C7B0 + bl WM_EndScan + cmp r0, #0x2 + beq _0202C7A8 + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C7A8: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202C7AC: .word FUN_0202C7B0 + + thumb_func_start FUN_0202C7B0 +FUN_0202C7B0: ; 0x0202C7B0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C7BE + bl FUN_0202C1AC + pop {r3, pc} +_0202C7BE: + mov r0, #0x1 + bl FUN_0202C198 + ldr r0, _0202C7E0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C7E4 ; =0x0000130E + ldrh r0, [r1, r0] + cmp r0, #0x0 + beq _0202C7DE + bl FUN_0202C7E8 + cmp r0, #0x0 + bne _0202C7DE + mov r0, #0x9 + bl FUN_0202C198 +_0202C7DE: + pop {r3, pc} + .balign 4 +_0202C7E0: .word 0x021C59D8 +_0202C7E4: .word 0x0000130E + + thumb_func_start FUN_0202C7E8 +FUN_0202C7E8: ; 0x0202C7E8 + push {lr} + sub sp, #0x24 + ldr r0, _0202C844 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C848 ; =0x00001310 + ldr r0, [r1, r0] + sub r0, r0, #0x4 + cmp r0, #0x2 + bhi _0202C800 + add sp, #0x24 + mov r0, #0x1 + pop {pc} +_0202C800: + mov r0, #0x3 + bl FUN_0202C198 + add r1, sp, #0x4 + ldr r0, _0202C84C ; =0x02105D54 + add r1, #0x1 + mov r2, #0x3 + bl MI_CpuCopy8 + bl FUN_02033534 + add r1, sp, #0x4 + strb r0, [r1, #0x0] + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, _0202C844 ; =0x021C59D8 + ldr r0, _0202C850 ; =FUN_0202C858 + ldr r2, [r1, #0x4] + ldr r1, _0202C854 ; =0x00001220 + mov r3, #0x1 + add r1, r2, r1 + add r2, sp, #0x4 + bl WM_StartConnectEx + cmp r0, #0x2 + beq _0202C83E + bl FUN_0202C1AC + add sp, #0x24 + mov r0, #0x0 + pop {pc} +_0202C83E: + mov r0, #0x1 + add sp, #0x24 + pop {pc} + .balign 4 +_0202C844: .word 0x021C59D8 +_0202C848: .word 0x00001310 +_0202C84C: .word 0x02105D54 +_0202C850: .word FUN_0202C858 +_0202C854: .word 0x00001220 + + thumb_func_start FUN_0202C858 +FUN_0202C858: ; 0x0202C858 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202C894 + bl FUN_0202C1AC + ldrh r0, [r4, #0x2] + cmp r0, #0xc + bne _0202C874 + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C874: + cmp r0, #0xb + bne _0202C880 + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C880: + cmp r0, #0x1 + bne _0202C88C + mov r0, #0x8 + bl FUN_0202C198 + pop {r4, pc} +_0202C88C: + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C894: + ldrh r0, [r4, #0x8] + cmp r0, #0x8 + beq _0202C8FA + cmp r0, #0x7 + bne _0202C8DA + ldr r0, _0202C8FC ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202C900 ; =0x00001335 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202C8B8 + mov r0, #0x14 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C8B8: + mov r0, #0x4 + bl FUN_0202C198 + bl FUN_0202C908 + cmp r0, #0x0 + bne _0202C8CE + mov r0, #0x3 + bl FUN_0202C198 + pop {r4, pc} +_0202C8CE: + ldr r0, _0202C8FC ; =0x021C59D8 + ldrh r2, [r4, #0xa] + ldr r1, [r0, #0x4] + ldr r0, _0202C904 ; =0x0000132C + strh r2, [r1, r0] + pop {r4, pc} +_0202C8DA: + cmp r0, #0x6 + beq _0202C8FA + cmp r0, #0x9 + bne _0202C8F0 + mov r0, #0x14 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r4, pc} +_0202C8F0: + cmp r0, #0x1a + beq _0202C8FA + mov r0, #0x9 + bl FUN_0202C198 +_0202C8FA: + pop {r4, pc} + .balign 4 +_0202C8FC: .word 0x021C59D8 +_0202C900: .word 0x00001335 +_0202C904: .word 0x0000132C + + thumb_func_start FUN_0202C908 +FUN_0202C908: ; 0x0202C908 + push {r4, lr} + sub sp, #0x8 + ldr r0, _0202C948 ; =0x021C59D8 + ldr r2, _0202C94C ; =0x00001304 + ldr r4, [r0, #0x4] + ldr r3, _0202C950 ; =0x00001020 + ldr r0, [r4, r2] + add r1, r4, r3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r2, r2, #0x4 + ldr r2, [r4, r2] + sub r3, #0xe0 + lsl r2, r2, #0x10 + ldr r0, _0202C954 ; =FUN_0202C958 + lsr r2, r2, #0x10 + add r3, r4, r3 + bl WM_StartMP + cmp r0, #0x2 + beq _0202C942 + bl FUN_0202C1AC + add sp, #0x8 + mov r0, #0x0 + pop {r4, pc} +_0202C942: + mov r0, #0x1 + add sp, #0x8 + pop {r4, pc} + .balign 4 +_0202C948: .word 0x021C59D8 +_0202C94C: .word 0x00001304 +_0202C950: .word 0x00001020 +_0202C954: .word FUN_0202C958 + + thumb_func_start FUN_0202C958 +FUN_0202C958: ; 0x0202C958 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202C97A + cmp r1, #0xf + beq _0202C9B0 + cmp r1, #0x9 + beq _0202C9B0 + cmp r1, #0xd + beq _0202C9B0 + add r0, r1, #0x0 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + pop {r3, pc} +_0202C97A: + ldrh r0, [r0, #0x4] + sub r0, #0xa + cmp r0, #0x3 + bhi _0202C9B0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202C98E: ; jump table (using 16-bit offset) + .short _0202C996 - _0202C98E - 2; case 0 + .short _0202C9B0 - _0202C98E - 2; case 1 + .short _0202C9B0 - _0202C98E - 2; case 2 + .short _0202C9B0 - _0202C98E - 2; case 3 +_0202C996: + ldr r0, _0202C9B4 ; =0x021C59D8 + ldr r2, [r0, #0x4] + ldr r0, _0202C9B8 ; =0x00001314 + ldr r1, [r2, r0] + cmp r1, #0x3 + bne _0202C9AA + sub r0, r0, #0x4 + ldr r0, [r2, r0] + cmp r0, #0x6 + beq _0202C9B0 +_0202C9AA: + mov r0, #0x4 + bl FUN_0202C198 +_0202C9B0: + pop {r3, pc} + nop +_0202C9B4: .word 0x021C59D8 +_0202C9B8: .word 0x00001314 + + thumb_func_start FUN_0202C9BC +FUN_0202C9BC: ; 0x0202C9BC + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202C9DC ; =FUN_0202C9E0 + bl WM_EndMP + cmp r0, #0x2 + beq _0202C9D6 + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202C9D6: + mov r0, #0x1 + pop {r3, pc} + nop +_0202C9DC: .word FUN_0202C9E0 + + thumb_func_start FUN_0202C9E0 +FUN_0202C9E0: ; 0x0202C9E0 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202C9F2 + bl FUN_0202C1AC + bl FUN_0202D100 + pop {r3, pc} +_0202C9F2: + bl FUN_0202CA04 + cmp r0, #0x0 + bne _0202CA00 + mov r0, #0x9 + bl FUN_0202C198 +_0202CA00: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202CA04 +FUN_0202CA04: ; 0x0202CA04 + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202CA28 ; =FUN_0202CA2C + mov r1, #0x0 + bl WM_Disconnect + cmp r0, #0x2 + beq _0202CA24 + bl FUN_0202C1AC + bl FUN_0202D0D8 + mov r0, #0x0 + pop {r3, pc} +_0202CA24: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202CA28: .word FUN_0202CA2C + + thumb_func_start FUN_0202CA2C +FUN_0202CA2C: ; 0x0202CA2C + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CA3A + bl FUN_0202C1AC + pop {r3, pc} +_0202CA3A: + mov r0, #0x1 + bl FUN_0202C198 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202CA44 +FUN_0202CA44: ; 0x0202CA44 + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202CA64 ; =FUN_0202CA68 + bl WM_Reset + cmp r0, #0x2 + beq _0202CA5E + bl FUN_0202C1AC + mov r0, #0x0 + pop {r3, pc} +_0202CA5E: + mov r0, #0x1 + pop {r3, pc} + nop +_0202CA64: .word FUN_0202CA68 + + thumb_func_start FUN_0202CA68 +FUN_0202CA68: ; 0x0202CA68 + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _0202CA80 + mov r0, #0x9 + bl FUN_0202C198 + ldrh r0, [r4, #0x2] + bl FUN_0202C1AC + pop {r4, pc} +_0202CA80: + mov r0, #0x1 + bl FUN_0202C198 + pop {r4, pc} + + thumb_func_start FUN_0202CA88 +FUN_0202CA88: ; 0x0202CA88 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + ldr r0, _0202CAD0 ; =0x021C59D8 + add r6, r1, #0x0 + add r4, r2, #0x0 + ldr r1, [r0, #0x4] + mov r0, #0x3d + lsl r0, r0, #0x6 + ldr r2, _0202CAD4 ; =0x00001304 + add r0, r1, r0 + ldr r1, [r1, r2] + add r7, r3, #0x0 + bl DC_FlushRange + ldr r0, _0202CAD8 ; =0x0000FFFF + add r1, r7, #0x0 + str r0, [sp, #0x0] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x4] + mov r0, #0x2 + str r0, [sp, #0x8] + ldr r0, _0202CADC ; =FUN_0202CAE0 + add r2, r5, #0x0 + add r3, r6, #0x0 + bl WM_SetMPDataToPortEx + cmp r0, #0x2 + bne _0202CACA + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_0202CACA: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_0202CAD0: .word 0x021C59D8 +_0202CAD4: .word 0x00001304 +_0202CAD8: .word 0x0000FFFF +_0202CADC: .word FUN_0202CAE0 + + thumb_func_start FUN_0202CAE0 +FUN_0202CAE0: ; 0x0202CAE0 + push {r3, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202CAF4 + cmp r1, #0xf + beq _0202CAF4 + add r0, r1, #0x0 + bl FUN_0202C1AC + pop {r3, pc} +_0202CAF4: + ldr r2, [r0, #0x20] + cmp r2, #0x0 + beq _0202CB06 + cmp r1, #0x0 + bne _0202CB02 + mov r0, #0x1 + b _0202CB04 +_0202CB02: + mov r0, #0x0 +_0202CB04: + blx r2 +_0202CB06: + pop {r3, pc} + + thumb_func_start FUN_0202CB08 +FUN_0202CB08: ; 0x0202CB08 + push {r3, lr} + add r2, r0, #0x0 + ldrh r0, [r2, #0x2] + cmp r0, #0x0 + beq _0202CB18 + bl FUN_0202C1AC + pop {r3, pc} +_0202CB18: + ldr r0, _0202CB48 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CB4C ; =0x00001318 + ldr r3, [r1, r0] + cmp r3, #0x0 + beq _0202CB44 + ldrh r0, [r2, #0x4] + cmp r0, #0x19 + beq _0202CB44 + cmp r0, #0x15 + bne _0202CB38 + ldrh r0, [r2, #0x12] + ldr r1, [r2, #0xc] + ldrh r2, [r2, #0x10] + blx r3 + pop {r3, pc} +_0202CB38: + cmp r0, #0x9 + bne _0202CB44 + ldrh r0, [r2, #0x12] + mov r1, #0x0 + add r2, r1, #0x0 + blx r3 +_0202CB44: + pop {r3, pc} + nop +_0202CB48: .word 0x021C59D8 +_0202CB4C: .word 0x00001318 + + thumb_func_start FUN_0202CB50 +FUN_0202CB50: ; 0x0202CB50 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CB60 + mov r0, #0xa + bl FUN_0202C198 + pop {r3, pc} +_0202CB60: + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_02090CC8 + mov r0, #0x0 + bl FUN_0202C198 + pop {r3, pc} + + thumb_func_start FUN_0202CB70 +FUN_0202CB70: ; 0x0202CB70 + ldr r1, _0202CB78 ; =0x021C59D8 + ldr r1, [r1, #0x4] + str r0, [r1, #0x8] + bx lr + .balign 4 +_0202CB78: .word 0x021C59D8 + + thumb_func_start FUN_0202CB7C +FUN_0202CB7C: ; 0x0202CB7C + ldr r2, _0202CB88 ; =0x021C59D8 + ldr r3, [r2, #0x4] + str r0, [r3, #0x0] + ldr r0, [r2, #0x4] + strh r1, [r0, #0x4] + bx lr + .balign 4 +_0202CB88: .word 0x021C59D8 + + thumb_func_start FUN_0202CB8C +FUN_0202CB8C: ; 0x0202CB8C + ldr r0, _0202CB98 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CB9C ; =0x0000132E + ldrh r0, [r1, r0] + bx lr + nop +_0202CB98: .word 0x021C59D8 +_0202CB9C: .word 0x0000132E + + thumb_func_start FUN_0202CBA0 +FUN_0202CBA0: ; 0x0202CBA0 + push {r3-r4} + ldr r0, _0202CBCC ; =0x021C59D8 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202CBD0 ; =0x0000132E + add r3, r2, #0x0 + ldrh r4, [r1, r0] + mov r1, #0x1 +_0202CBB0: + add r0, r4, #0x0 + tst r0, r1 + beq _0202CBB8 + add r2, r2, #0x1 +_0202CBB8: + lsl r0, r4, #0xf + add r3, r3, #0x1 + lsr r4, r0, #0x10 + cmp r3, #0x10 + blt _0202CBB0 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + pop {r3-r4} + bx lr + nop +_0202CBCC: .word 0x021C59D8 +_0202CBD0: .word 0x0000132E + + thumb_func_start FUN_0202CBD4 +FUN_0202CBD4: ; 0x0202CBD4 + ldr r0, _0202CBE0 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CBE4 ; =0x00001310 + ldr r0, [r1, r0] + bx lr + nop +_0202CBE0: .word 0x021C59D8 +_0202CBE4: .word 0x00001310 + + thumb_func_start FUN_0202CBE8 +FUN_0202CBE8: ; 0x0202CBE8 + ldr r0, _0202CBF4 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202CBF8 ; =0x00001330 + ldr r0, [r1, r0] + bx lr + nop +_0202CBF4: .word 0x021C59D8 +_0202CBF8: .word 0x00001330 + + thumb_func_start FUN_0202CBFC +FUN_0202CBFC: ; 0x0202CBFC + push {r3-r5, lr} + sub sp, #0x8 + add r0, sp, #0x0 + bl OS_GetMacAddress + ldr r0, _0202CC84 ; =0x027FFC3C + ldr r3, [r0, #0x0] + add r0, sp, #0x0 + ldrh r2, [r0, #0x4] + ldrh r1, [r0, #0x2] + ldrh r0, [r0, #0x0] + add r0, r0, r3 + add r0, r1, r0 + add r1, r2, r0 + ldr r3, _0202CC88 ; =0x021C59D8 + ldr r2, _0202CC8C ; =0x00001338 + ldr r0, [r3, #0x4] + str r1, [r0, r2] + ldr r0, [r3, #0x4] + ldr r1, _0202CC90 ; =0x00010DCD + ldr r4, [r0, r2] + add r5, r4, #0x0 + mul r5, r1 + ldr r1, _0202CC94 ; =0x00003039 + mov r4, #0x0 + add r1, r5, r1 + str r1, [r0, r2] + ldr r1, [r3, #0x4] + add r0, r2, #0x4 + strh r4, [r1, r0] + ldr r1, [r3, #0x4] + mov r4, #0x65 + add r0, r2, #0x6 + strh r4, [r1, r0] + mov r0, #0x3 + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_0202CC98 + cmp r0, #0x18 + bne _0202CC68 + mov r0, #0x18 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CC68: + cmp r0, #0x2 + beq _0202CC7C + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CC7C: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_0202CC84: .word 0x027FFC3C +_0202CC88: .word 0x021C59D8 +_0202CC8C: .word 0x00001338 +_0202CC90: .word 0x00010DCD +_0202CC94: .word 0x00003039 + + thumb_func_start FUN_0202CC98 +FUN_0202CC98: ; 0x0202CC98 + push {r4, lr} + add r4, r0, #0x0 + bl WM_GetAllowedChannel + mov r1, #0x2 + lsl r1, r1, #0xe + cmp r0, r1 + bne _0202CCBE + mov r0, #0x3 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + mov r0, #0x3 + pop {r4, pc} +_0202CCBE: + cmp r0, #0x0 + bne _0202CCD8 + mov r0, #0x16 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + mov r0, #0x18 + pop {r4, pc} +_0202CCD8: + mov r2, #0x1 + sub r1, r4, #0x1 + lsl r2, r1 + add r1, r2, #0x0 + tst r1, r0 + bne _0202CD00 + mov r2, #0x1 +_0202CCE6: + add r1, r4, #0x1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x10 + bls _0202CCF4 + mov r0, #0x18 + pop {r4, pc} +_0202CCF4: + sub r1, r4, #0x1 + add r3, r2, #0x0 + lsl r3, r1 + add r1, r3, #0x0 + tst r1, r0 + beq _0202CCE6 +_0202CD00: + ldr r0, _0202CD10 ; =FUN_0202CD14 + add r1, r4, #0x0 + bl FUN_0202CD90 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4, pc} + nop +_0202CD10: .word FUN_0202CD14 + + thumb_func_start FUN_0202CD14 +FUN_0202CD14: ; 0x0202CD14 + push {r3-r5, lr} + ldrh r1, [r0, #0x2] + cmp r1, #0x0 + beq _0202CD30 + add r0, r1, #0x0 + bl FUN_0202C1AC + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + pop {r3-r5, pc} +_0202CD30: + ldr r2, _0202CD88 ; =0x021C59D8 + ldrh r1, [r0, #0x8] + ldrh r5, [r0, #0xa] + ldr r0, [r2, #0x4] + ldr r3, _0202CD8C ; =0x0000133E + ldrh r4, [r0, r3] + cmp r4, r5 + bls _0202CD50 + strh r5, [r0, r3] + mov r4, #0x1 + sub r0, r1, #0x1 + lsl r4, r0 + ldr r2, [r2, #0x4] + add r0, r3, #0x2 + strh r4, [r2, r0] + b _0202CD64 +_0202CD50: + cmp r4, r5 + bne _0202CD64 + add r2, r3, #0x2 + ldrh r5, [r0, r2] + mov r4, #0x1 + sub r2, r1, #0x1 + lsl r4, r2 + orr r4, r5 + add r2, r3, #0x2 + strh r4, [r0, r2] +_0202CD64: + add r0, r1, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202CC98 + cmp r0, #0x18 + bne _0202CD7A + mov r0, #0x7 + bl FUN_0202C198 + pop {r3-r5, pc} +_0202CD7A: + cmp r0, #0x2 + beq _0202CD84 + mov r0, #0x9 + bl FUN_0202C198 +_0202CD84: + pop {r3-r5, pc} + nop +_0202CD88: .word 0x021C59D8 +_0202CD8C: .word 0x0000133E + + thumb_func_start FUN_0202CD90 +FUN_0202CD90: ; 0x0202CD90 + push {r3, lr} + add r3, r1, #0x0 + mov r1, #0x1e + str r1, [sp, #0x0] + mov r1, #0x3 + mov r2, #0x11 + bl WM_MeasureChannel + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202CDA4 +FUN_0202CDA4: ; 0x0202CDA4 + push {r3, lr} + mov r0, #0x1 + bl FUN_0202C198 + ldr r0, _0202CDC8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + mov r0, #0x4d + lsl r0, r0, #0x6 + ldrh r0, [r1, r0] + bl FUN_0202CDD0 + ldr r2, _0202CDC8 ; =0x021C59D8 + ldr r1, _0202CDCC ; =0x0000133C + ldr r3, [r2, #0x4] + strh r0, [r3, r1] + ldr r0, [r2, #0x4] + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0202CDC8: .word 0x021C59D8 +_0202CDCC: .word 0x0000133C + + thumb_func_start FUN_0202CDD0 +FUN_0202CDD0: ; 0x0202CDD0 + push {r4-r7} + add r4, r0, #0x0 + mov r0, #0x0 + add r3, r0, #0x0 + add r2, r0, #0x0 + mov r1, #0x1 +_0202CDDC: + add r5, r1, #0x0 + lsl r5, r2 + tst r5, r4 + beq _0202CDF0 + add r0, r2, #0x1 + add r3, r3, #0x1 + lsl r0, r0, #0x10 + lsl r3, r3, #0x10 + asr r0, r0, #0x10 + lsr r3, r3, #0x10 +_0202CDF0: + add r2, r2, #0x1 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + cmp r2, #0x10 + blt _0202CDDC + cmp r3, #0x1 + bls _0202CE4E + ldr r5, _0202CE54 ; =0x021C59D8 + ldr r2, _0202CE58 ; =0x00001338 + ldr r0, [r5, #0x4] + ldr r1, _0202CE5C ; =0x00010DCD + ldr r6, [r0, r2] + add r7, r6, #0x0 + mul r7, r1 + ldr r1, _0202CE60 ; =0x00003039 + add r1, r7, r1 + str r1, [r0, r2] + ldr r0, [r5, #0x4] + mov r1, #0x1 + ldr r0, [r0, r2] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mul r0, r3 + lsl r0, r0, #0x8 + lsr r2, r0, #0x10 + mov r3, #0x0 +_0202CE24: + add r0, r4, #0x0 + tst r0, r1 + beq _0202CE3E + cmp r2, #0x0 + bne _0202CE38 + add r0, r3, #0x1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4-r7} + bx lr +_0202CE38: + sub r0, r2, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 +_0202CE3E: + lsl r0, r4, #0xf + lsr r4, r0, #0x10 + add r0, r3, #0x1 + lsl r0, r0, #0x10 + asr r3, r0, #0x10 + cmp r3, #0x10 + blt _0202CE24 + mov r0, #0x0 +_0202CE4E: + pop {r4-r7} + bx lr + nop +_0202CE54: .word 0x021C59D8 +_0202CE58: .word 0x00001338 +_0202CE5C: .word 0x00010DCD +_0202CE60: .word 0x00003039 + + thumb_func_start FUN_0202CE64 +FUN_0202CE64: ; 0x0202CE64 + push {r3-r5, lr} + lsl r1, r0, #0x1b + lsr r2, r1, #0x1b + beq _0202CE72 + mov r1, #0x20 + sub r1, r1, r2 + add r0, r0, r1 +_0202CE72: + ldr r2, _0202CEE4 ; =0x021C59D8 + ldr r1, _0202CEE8 ; =0x00001308 + str r0, [r2, #0x4] + mov r3, #0x0 + str r3, [r0, r1] + ldr r4, [r2, #0x4] + sub r0, r1, #0x4 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x10 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x24 + strh r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + mov r5, #0x1 + add r0, #0x26 + strh r5, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x28 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x8 + str r3, [r4, r0] + ldr r0, [r2, #0x4] + mov r5, #0x8 + str r3, [r0, #0x0] + ldr r0, [r2, #0x4] + strh r3, [r0, #0x4] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x14 + str r3, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x2c + strb r5, [r4, r0] + add r0, r1, #0x0 + ldr r4, [r2, #0x4] + add r0, #0x2d + strb r3, [r4, r0] + ldr r0, [r2, #0x4] + add r1, #0x3a + strb r3, [r0, r1] + bl FUN_0202CF0C + cmp r0, #0x0 + bne _0202CEE0 + mov r0, #0x0 + pop {r3-r5, pc} +_0202CEE0: + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_0202CEE4: .word 0x021C59D8 +_0202CEE8: .word 0x00001308 + + thumb_func_start FUN_0202CEEC +FUN_0202CEEC: ; 0x0202CEEC + mov r0, #0x4e + lsl r0, r0, #0x6 + bx lr + .balign 4 + + thumb_func_start FUN_0202CEF4 +FUN_0202CEF4: ; 0x0202CEF4 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x8 + bne _0202CF08 + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x19 + bl FUN_0202C1AC +_0202CF08: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202CF0C +FUN_0202CF0C: ; 0x0202CF0C + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202CF38 ; =0x021C59D8 + ldr r1, _0202CF3C ; =FUN_0202CF40 + ldr r0, [r0, #0x4] + mov r2, #0x2 + add r0, #0x40 + bl WM_Initialize + cmp r0, #0x2 + beq _0202CF34 + bl FUN_0202C1AC + mov r0, #0xa + bl FUN_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202CF34: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202CF38: .word 0x021C59D8 +_0202CF3C: .word FUN_0202CF40 + + thumb_func_start FUN_0202CF40 +FUN_0202CF40: ; 0x0202CF40 + push {r3, lr} + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + beq _0202CF5A + bl FUN_0202C1AC + mov r0, #0xa + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + pop {r3, pc} +_0202CF5A: + ldr r0, _0202CF80 ; =FUN_0202CEF4 + bl WM_SetIndCallback + cmp r0, #0x0 + beq _0202CF76 + bl FUN_0202C1AC + mov r0, #0xa + bl FUN_0202C198 + mov r0, #0x1 + bl FUN_020336A0 + pop {r3, pc} +_0202CF76: + mov r0, #0x1 + bl FUN_0202C198 + pop {r3, pc} + nop +_0202CF80: .word FUN_0202CEF4 + + thumb_func_start FUN_0202CF84 +FUN_0202CF84: ; 0x0202CF84 + push {r3-r7, lr} + add r6, r1, #0x0 + ldr r1, _0202D02C ; =0x021C59D8 + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r0, #0x7 + ldr r2, [r1, #0x4] + ldr r1, _0202D030 ; =0x00001308 + lsl r0, r0, #0x6 + str r0, [r2, r1] + ldr r0, _0202D02C ; =0x021C59D8 + add r4, r3, #0x0 + ldr r2, [r0, #0x4] + sub r0, r1, #0x4 + mov r3, #0xe0 + str r3, [r2, r0] + ldr r0, _0202D02C ; =0x021C59D8 + add r1, #0xc + ldr r0, [r0, #0x4] + str r5, [r0, r1] + mov r0, #0x3 + bl FUN_0202C198 + ldr r1, _0202D02C ; =0x021C59D8 + cmp r5, #0x0 + ldr r0, [r1, #0x4] + strh r6, [r0, #0xc] + ldr r0, [r1, #0x4] + strh r7, [r0, #0x32] + add r0, sp, #0x8 + ldrh r2, [r0, #0x10] + ldr r0, [r1, #0x4] + strh r2, [r0, #0x18] + beq _0202CFCE + cmp r5, #0x4 + beq _0202CFE8 + b _0202CFF4 +_0202CFCE: + ldr r0, [r1, #0x4] + mov r2, #0xc0 + strh r2, [r0, #0x34] + cmp r4, #0x5 + blo _0202CFE0 + ldr r0, [r1, #0x4] + mov r2, #0xc + strh r2, [r0, #0x36] + b _0202CFF4 +_0202CFE0: + ldr r0, [r1, #0x4] + mov r2, #0x26 + strh r2, [r0, #0x36] + b _0202CFF4 +_0202CFE8: + ldr r0, [r1, #0x4] + mov r2, #0x64 + strh r2, [r0, #0x34] + ldr r0, [r1, #0x4] + mov r2, #0xc + strh r2, [r0, #0x36] +_0202CFF4: + ldr r1, _0202D02C ; =0x021C59D8 + ldr r0, [r1, #0x4] + strh r4, [r0, #0x10] + ldr r2, [r1, #0x4] + mov r0, #0x0 + strh r0, [r2, #0x16] + ldr r2, [r1, #0x4] + cmp r5, #0x2 + strh r0, [r2, #0x12] + ldr r2, [sp, #0x1c] + ldr r1, [r1, #0x4] + strh r2, [r1, #0xe] + bne _0202D010 + mov r0, #0x1 +_0202D010: + ldr r1, _0202D02C ; =0x021C59D8 + cmp r5, #0x0 + ldr r1, [r1, #0x4] + strh r0, [r1, #0x14] + beq _0202D022 + cmp r5, #0x2 + beq _0202D022 + cmp r5, #0x4 + bne _0202D028 +_0202D022: + bl FUN_0202C1C8 + pop {r3-r7, pc} +_0202D028: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202D02C: .word 0x021C59D8 +_0202D030: .word 0x00001308 + + thumb_func_start FUN_0202D034 +FUN_0202D034: ; 0x0202D034 + push {r4-r6, lr} + ldr r2, _0202D094 ; =0x021C59D8 + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r3, #0x2 + ldr r0, [r2, #0x4] + ldr r1, _0202D098 ; =0x00001308 + lsl r3, r3, #0x8 + str r3, [r0, r1] + sub r0, r1, #0x4 + ldr r3, [r2, #0x4] + mov r6, #0x40 + str r6, [r3, r0] + ldr r0, [r2, #0x4] + add r1, #0xc + str r5, [r0, r1] + mov r0, #0x3 + bl FUN_0202C198 + cmp r5, #0x1 + beq _0202D066 + cmp r5, #0x3 + beq _0202D066 + cmp r5, #0x5 + bne _0202D08E +_0202D066: + ldr r1, _0202D094 ; =0x021C59D8 + add r0, r4, #0x0 + ldr r2, [r1, #0x4] + ldr r1, _0202D09C ; =0x00001220 + add r1, r2, r1 + mov r2, #0xc0 + bl MI_CpuCopy8 + ldr r0, _0202D094 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D09C ; =0x00001220 + add r0, r1, r0 + mov r1, #0xc0 + bl DC_FlushRange + bl DC_WaitWriteBufferEmpty + bl FUN_0202C7E8 + pop {r4-r6, pc} +_0202D08E: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202D094: .word 0x021C59D8 +_0202D098: .word 0x00001308 +_0202D09C: .word 0x00001220 + + thumb_func_start FUN_0202D0A0 +FUN_0202D0A0: ; 0x0202D0A0 + push {r3, lr} + ldr r2, _0202D0C4 ; =0x021C59D8 + ldr r3, [r2, #0x4] + ldr r2, _0202D0C8 ; =0x00001318 + str r0, [r3, r2] + lsl r0, r1, #0x10 + ldr r1, _0202D0CC ; =FUN_0202CB08 + lsr r0, r0, #0x10 + mov r2, #0x0 + bl WM_SetPortCallback + cmp r0, #0x0 + beq _0202D0C2 + mov r0, #0x9 + bl FUN_0202C198 +_0202D0C0: + b _0202D0C0 +_0202D0C2: + pop {r3, pc} + .balign 4 +_0202D0C4: .word 0x021C59D8 +_0202D0C8: .word 0x00001318 +_0202D0CC: .word FUN_0202CB08 + + thumb_func_start FUN_0202D0D0 +FUN_0202D0D0: ; 0x0202D0D0 + push {r3, lr} + bl FUN_0202CA88 + pop {r3, pc} + + thumb_func_start FUN_0202D0D8 +FUN_0202D0D8: ; 0x0202D0D8 + push {r3, lr} + ldr r0, _0202D0F8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D0FC ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + bne _0202D0E8 +_0202D0E6: + b _0202D0E6 +_0202D0E8: + bl FUN_0202CA44 + cmp r0, #0x0 + bne _0202D0F6 + mov r0, #0xa + bl FUN_0202C198 +_0202D0F6: + pop {r3, pc} + .balign 4 +_0202D0F8: .word 0x021C59D8 +_0202D0FC: .word 0x00001310 + + thumb_func_start FUN_0202D100 +FUN_0202D100: ; 0x0202D100 + push {r3, lr} + ldr r0, _0202D16C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D170 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x1 + beq _0202D16A + cmp r0, #0x6 + beq _0202D126 + cmp r0, #0x5 + beq _0202D126 + cmp r0, #0x4 + beq _0202D126 + mov r0, #0x3 + bl FUN_0202C198 + bl FUN_0202D0D8 + pop {r3, pc} +_0202D126: + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202D16C ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D174 ; =0x00001314 + ldr r0, [r1, r0] + cmp r0, #0x5 + bhi _0202D16A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202D144: ; jump table (using 16-bit offset) + .short _0202D15E - _0202D144 - 2; case 0 + .short _0202D150 - _0202D144 - 2; case 1 + .short _0202D16A - _0202D144 - 2; case 2 + .short _0202D16A - _0202D144 - 2; case 3 + .short _0202D15E - _0202D144 - 2; case 4 + .short _0202D150 - _0202D144 - 2; case 5 +_0202D150: + bl FUN_0202C9BC + cmp r0, #0x0 + bne _0202D16A + bl FUN_0202D0D8 + pop {r3, pc} +_0202D15E: + bl FUN_0202C460 + cmp r0, #0x0 + bne _0202D16A + bl FUN_0202D0D8 +_0202D16A: + pop {r3, pc} + .balign 4 +_0202D16C: .word 0x021C59D8 +_0202D170: .word 0x00001310 +_0202D174: .word 0x00001314 + + thumb_func_start FUN_0202D178 +FUN_0202D178: ; 0x0202D178 + push {r3, lr} + mov r0, #0x3 + bl FUN_0202C198 + ldr r0, _0202D198 ; =FUN_0202CB50 + bl WM_End + cmp r0, #0x2 + beq _0202D194 + mov r0, #0x9 + bl FUN_0202C198 + mov r0, #0x0 + pop {r3, pc} +_0202D194: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202D198: .word FUN_0202CB50 + + thumb_func_start FUN_0202D19C +FUN_0202D19C: ; 0x0202D19C + ldr r0, _0202D1A8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1AC ; =0x0000132C + ldrh r0, [r1, r0] + bx lr + nop +_0202D1A8: .word 0x021C59D8 +_0202D1AC: .word 0x0000132C + + thumb_func_start FUN_0202D1B0 +FUN_0202D1B0: ; 0x0202D1B0 + ldr r1, _0202D1C0 ; =0x021C59D8 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _0202D1BC + ldr r1, _0202D1C4 ; =0x00001334 + strb r0, [r2, r1] +_0202D1BC: + bx lr + nop +_0202D1C0: .word 0x021C59D8 +_0202D1C4: .word 0x00001334 + + thumb_func_start FUN_0202D1C8 +FUN_0202D1C8: ; 0x0202D1C8 + ldr r0, _0202D1DC ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1E0 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x1 + bne _0202D1D8 + mov r0, #0x1 + bx lr +_0202D1D8: + mov r0, #0x0 + bx lr + .balign 4 +_0202D1DC: .word 0x021C59D8 +_0202D1E0: .word 0x00001310 + + thumb_func_start FUN_0202D1E4 +FUN_0202D1E4: ; 0x0202D1E4 + ldr r0, _0202D1F8 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D1FC ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x3 + bne _0202D1F4 + mov r0, #0x1 + bx lr +_0202D1F4: + mov r0, #0x0 + bx lr + .balign 4 +_0202D1F8: .word 0x021C59D8 +_0202D1FC: .word 0x00001310 + + thumb_func_start FUN_0202D200 +FUN_0202D200: ; 0x0202D200 + ldr r0, _0202D214 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D218 ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x9 + bne _0202D210 + mov r0, #0x1 + bx lr +_0202D210: + mov r0, #0x0 + bx lr + .balign 4 +_0202D214: .word 0x021C59D8 +_0202D218: .word 0x00001310 + + thumb_func_start FUN_0202D21C +FUN_0202D21C: ; 0x0202D21C + ldr r0, _0202D238 ; =0x021C59D8 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0202D234 + ldr r0, _0202D23C ; =0x00001310 + ldr r0, [r1, r0] + cmp r0, #0x2 + bne _0202D230 + mov r0, #0x1 + bx lr +_0202D230: + mov r0, #0x0 + bx lr +_0202D234: + mov r0, #0x0 + bx lr + .balign 4 +_0202D238: .word 0x021C59D8 +_0202D23C: .word 0x00001310 + + thumb_func_start FUN_0202D240 +FUN_0202D240: ; 0x0202D240 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r0, #0x0 + ldr r0, _0202D274 ; =0x021C59D8 + add r5, r1, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202D278 ; =0x00001310 + add r4, r2, #0x0 + ldr r0, [r1, r0] + cmp r0, #0x4 + bne _0202D26E + lsl r0, r3, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0x1 + lsl r2, r5, #0x10 + str r0, [sp, #0x4] + mov r0, #0x0 + add r1, r6, #0x0 + lsr r2, r2, #0x10 + add r3, r4, #0x0 + bl WM_SetGameInfo +_0202D26E: + add sp, #0x8 + pop {r4-r6, pc} + nop +_0202D274: .word 0x021C59D8 +_0202D278: .word 0x00001310 + + thumb_func_start FUN_0202D27C +FUN_0202D27C: ; 0x0202D27C + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bne _0202D28C + ldr r0, _0202D290 ; =0x021C59D8 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _0202D294 ; =0x00001344 + strb r2, [r1, r0] +_0202D28C: + bx lr + nop +_0202D290: .word 0x021C59D8 +_0202D294: .word 0x00001344 + + thumb_func_start FUN_0202D298 +FUN_0202D298: ; 0x0202D298 + push {r4, lr} + ldr r2, _0202D2C4 ; =0x021C59D8 + add r1, r0, #0x0 + ldr r3, [r2, #0x4] + ldr r0, _0202D2C8 ; =0x00001344 + mov r4, #0x0 + strb r4, [r3, r0] + ldr r2, [r2, #0x4] + sub r0, #0x34 + ldr r0, [r2, r0] + cmp r0, #0x4 + bne _0202D2BE + ldr r0, _0202D2CC ; =FUN_0202D27C + bl WM_SetEntry + cmp r0, #0x2 + bne _0202D2BE + mov r0, #0x1 + pop {r4, pc} +_0202D2BE: + mov r0, #0x0 + pop {r4, pc} + nop +_0202D2C4: .word 0x021C59D8 +_0202D2C8: .word 0x00001344 +_0202D2CC: .word FUN_0202D27C + + thumb_func_start FUN_0202D2D0 +FUN_0202D2D0: ; 0x0202D2D0 + ldr r0, _0202D2EC ; =0x021C59D8 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0202D2E8 + ldr r0, _0202D2F0 ; =0x00001345 + ldrb r0, [r1, r0] + cmp r0, #0x6 + blo _0202D2E4 + mov r0, #0x1 + bx lr +_0202D2E4: + mov r0, #0x0 + bx lr +_0202D2E8: + mov r0, #0x0 + bx lr + .balign 4 +_0202D2EC: .word 0x021C59D8 +_0202D2F0: .word 0x00001345 + + thumb_func_start FUN_0202D2F4 +FUN_0202D2F4: ; 0x0202D2F4 + ldr r0, _0202D300 ; =0x021C59D8 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202D304 ; =0x00001345 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202D300: .word 0x021C59D8 +_0202D304: .word 0x00001345 + + thumb_func_start FUN_0202D308 +FUN_0202D308: ; 0x0202D308 + ldr r1, _0202D314 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D318 ; =0x00001320 + str r0, [r2, r1] + bx lr + nop +_0202D314: .word 0x021C59D8 +_0202D318: .word 0x00001320 + + thumb_func_start FUN_0202D31C +FUN_0202D31C: ; 0x0202D31C + ldr r1, _0202D328 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D32C ; =0x00001324 + str r0, [r2, r1] + bx lr + nop +_0202D328: .word 0x021C59D8 +_0202D32C: .word 0x00001324 + + thumb_func_start FUN_0202D330 +FUN_0202D330: ; 0x0202D330 + ldr r1, _0202D33C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D340 ; =0x00001328 + str r0, [r2, r1] + bx lr + nop +_0202D33C: .word 0x021C59D8 +_0202D340: .word 0x00001328 + + thumb_func_start FUN_0202D344 +FUN_0202D344: ; 0x0202D344 + ldr r1, _0202D350 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D354 ; =0x00001342 + strb r0, [r2, r1] + bx lr + nop +_0202D350: .word 0x021C59D8 +_0202D354: .word 0x00001342 + + thumb_func_start FUN_0202D358 +FUN_0202D358: ; 0x0202D358 + ldr r0, _0202D364 ; =0x021C59D8 + ldr r1, [r0, #0x4] + ldr r0, _0202D368 ; =0x00001342 + ldrb r0, [r1, r0] + bx lr + nop +_0202D364: .word 0x021C59D8 +_0202D368: .word 0x00001342 + + thumb_func_start FUN_0202D36C +FUN_0202D36C: ; 0x0202D36C + ldr r1, _0202D378 ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D37C ; =0x00001343 + strb r0, [r2, r1] + bx lr + nop +_0202D378: .word 0x021C59D8 +_0202D37C: .word 0x00001343 + + thumb_func_start FUN_0202D380 +FUN_0202D380: ; 0x0202D380 + ldr r1, _0202D38C ; =0x021C59D8 + ldr r2, [r1, #0x4] + ldr r1, _0202D390 ; =0x00001335 + strb r0, [r2, r1] + bx lr + nop +_0202D38C: .word 0x021C59D8 +_0202D390: .word 0x00001335 + + thumb_func_start FUN_0202D394 +FUN_0202D394: ; 0x0202D394 + str r1, [r0, #0x0] + strh r2, [r0, #0xa] + mov r1, #0x0 + strh r1, [r0, #0x4] + strh r1, [r0, #0x6] + strh r1, [r0, #0x8] + bx lr + .balign 4 + + thumb_func_start FUN_0202D3A4 +FUN_0202D3A4: ; 0x0202D3A4 + push {r3-r7, lr} + str r2, [sp, #0x0] + add r5, r0, #0x0 + add r7, r1, #0x0 + bl FUN_0202D498 + ldr r1, [sp, #0x0] + cmp r0, r1 + bgt _0202D3BC + bl FUN_02031454 + pop {r3-r7, pc} +_0202D3BC: + mov r0, #0x8 + ldrsh r4, [r5, r0] + ldrsh r1, [r5, r0] + ldr r0, [sp, #0x0] + mov r6, #0x0 + add r0, r1, r0 + cmp r4, r0 + bge _0202D3F2 +_0202D3CC: + cmp r7, #0x0 + bne _0202D3D4 + bl ErrorHandling +_0202D3D4: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202D4A8 + ldrb r2, [r7, r6] + ldr r1, [r5, #0x0] + add r4, r4, #0x1 + strb r2, [r1, r0] + mov r0, #0x8 + ldrsh r1, [r5, r0] + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r1, r0 + cmp r4, r0 + blt _0202D3CC +_0202D3F2: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202D4A8 + strh r0, [r5, #0x8] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202D400 +FUN_0202D400: ; 0x0202D400 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0202D42C + mov r1, #0x4 + add r4, r0, #0x0 + ldrsh r1, [r5, r1] + add r0, r5, #0x0 + add r1, r1, r4 + bl FUN_0202D4A8 + strh r0, [r5, #0x4] + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_0202D41C +FUN_0202D41C: ; 0x0202D41C + push {r3, lr} + add r1, sp, #0x0 + mov r2, #0x1 + bl FUN_0202D400 + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0202D42C +FUN_0202D42C: ; 0x0202D42C + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x4 + ldrsh r4, [r5, r0] + add r7, r2, #0x0 + str r1, [sp, #0x0] + add r0, r4, r7 + mov r6, #0x0 + cmp r4, r0 + bge _0202D472 +_0202D440: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202D4A8 + mov r1, #0x6 + ldrsh r1, [r5, r1] + cmp r1, r0 + bne _0202D454 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202D454: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202D4A8 + ldr r1, [r5, #0x0] + add r4, r4, #0x1 + ldrb r1, [r1, r0] + ldr r0, [sp, #0x0] + strb r1, [r0, r6] + mov r0, #0x4 + ldrsh r0, [r5, r0] + add r6, r6, #0x1 + add r0, r0, r7 + cmp r4, r0 + blt _0202D440 +_0202D472: + add r0, r6, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202D478 +FUN_0202D478: ; 0x0202D478 + mov r1, #0x4 + mov r3, #0x6 + ldrsh r1, [r0, r1] + ldrsh r2, [r0, r3] + cmp r1, r2 + ble _0202D490 + mov r2, #0xa + ldrsh r2, [r0, r2] + ldrsh r0, [r0, r3] + add r0, r2, r0 + sub r0, r0, r1 + bx lr +_0202D490: + ldrsh r0, [r0, r3] + sub r0, r0, r1 + bx lr + .balign 4 + + thumb_func_start FUN_0202D498 +FUN_0202D498: ; 0x0202D498 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_0202D478 + mov r1, #0xa + ldrsh r1, [r4, r1] + sub r0, r1, r0 + pop {r4, pc} + + thumb_func_start FUN_0202D4A8 +FUN_0202D4A8: ; 0x0202D4A8 + push {r3, lr} + add r2, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0xa + ldrsh r1, [r2, r1] + bl _s32_div_f + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202D4BC +FUN_0202D4BC: ; 0x0202D4BC + mov r1, #0x8 + ldrsh r1, [r0, r1] + strh r1, [r0, #0x6] + bx lr + + thumb_func_start FUN_0202D4C4 +FUN_0202D4C4: ; 0x0202D4C4 + ldr r3, [r0, #0x1c] + mov r2, #0x0 + ldr r1, [r0, #0x18] + cmp r3, #0x0 + ble _0202D4E0 +_0202D4CE: + ldrb r0, [r1, #0xe] + cmp r0, #0x0 + bne _0202D4D8 + add r0, r1, #0x0 + bx lr +_0202D4D8: + add r2, r2, #0x1 + add r1, #0x10 + cmp r2, r3 + blt _0202D4CE +_0202D4E0: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202D4E4 +FUN_0202D4E4: ; 0x0202D4E4 + ldr r3, [r0, #0x1c] + mov r2, #0x0 + ldr r1, [r0, #0x18] + cmp r3, #0x0 + ble _0202D500 +_0202D4EE: + ldrb r0, [r1, #0xe] + cmp r0, #0x0 + beq _0202D4F8 + mov r0, #0x0 + bx lr +_0202D4F8: + add r2, r2, #0x1 + add r1, #0x10 + cmp r2, r3 + blt _0202D4EE +_0202D500: + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0202D504 +FUN_0202D504: ; 0x0202D504 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202D522 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + beq _0202D518 + str r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r1, #0x4] + b _0202D51E +_0202D518: + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] +_0202D51E: + mov r0, #0x1 + bx lr +_0202D522: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202D528 +FUN_0202D528: ; 0x0202D528 + ldr r2, [r0, #0x0] + strb r1, [r2, #0x0] + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + sub r1, r1, #0x1 + str r1, [r0, #0x4] + bne _0202D53E + mov r0, #0x1 + bx lr +_0202D53E: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_0202D544 +FUN_0202D544: ; 0x0202D544 + push {r4-r6, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0xe] + add r4, r1, #0x0 + bl FUN_0202D9A0 + add r6, r0, #0x0 + ldr r0, _0202D5B8 ; =0x0000FFFF + cmp r6, r0 + ldr r0, [r4, #0x4] + bne _0202D56A + cmp r0, #0x3 + bge _0202D57A + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + strb r1, [r5, #0xf] + mov r0, #0x1 + pop {r4-r6, pc} +_0202D56A: + cmp r0, #0x1 + bge _0202D57A + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + strb r1, [r5, #0xf] + mov r0, #0x1 + pop {r4-r6, pc} +_0202D57A: + ldrb r1, [r5, #0xe] + add r0, r4, #0x0 + bl FUN_0202D528 + ldr r0, _0202D5B8 ; =0x0000FFFF + cmp r6, r0 + bne _0202D5A4 + ldrh r1, [r5, #0xc] + add r0, r4, #0x0 + asr r1, r1, #0x8 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0202D528 + ldrh r1, [r5, #0xc] + add r0, r4, #0x0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0202D528 + b _0202D5A6 +_0202D5A4: + strh r6, [r5, #0xc] +_0202D5A6: + ldrb r1, [r5, #0xf] + mov r0, #0x1 + bic r1, r0 + mov r0, #0x1 + orr r0, r1 + strb r0, [r5, #0xf] + mov r0, #0x0 + pop {r4-r6, pc} + nop +_0202D5B8: .word 0x0000FFFF + + thumb_func_start FUN_0202D5BC +FUN_0202D5BC: ; 0x0202D5BC + push {r3-r7, lr} + add r5, r0, #0x0 + ldrb r0, [r5, #0xe] + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_0202D9A0 + ldr r1, _0202D680 ; =0x0000FFFF + cmp r0, r1 + bne _0202D5D6 + mov r2, #0x3 + b _0202D5D8 +_0202D5D6: + mov r2, #0x1 +_0202D5D8: + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x4] + add r0, r0, r2 + cmp r1, r0 + bge _0202D5EA + cmp r7, #0x0 + bne _0202D5EA + mov r0, #0x0 + pop {r3-r7, pc} +_0202D5EA: + ldrb r0, [r5, #0xf] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #0x1 + beq _0202D604 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0202D544 + cmp r0, #0x0 + beq _0202D604 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D604: + ldrh r3, [r5, #0xc] + ldr r2, [r4, #0x4] + cmp r2, r3 + ldrb r0, [r5, #0xf] + bge _0202D64E + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _0202D61E + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + bl FUN_0202D400 + b _0202D634 +_0202D61E: + mov r3, #0x0 + cmp r2, #0x0 + ble _0202D634 +_0202D624: + ldr r0, [r5, #0x0] + ldrb r1, [r0, r3] + ldr r0, [r4, #0x0] + strb r1, [r0, r3] + ldr r0, [r4, #0x4] + add r3, r3, #0x1 + cmp r3, r0 + blt _0202D624 +_0202D634: + ldr r1, [r5, #0x0] + ldr r0, [r4, #0x4] + add r0, r1, r0 + str r0, [r5, #0x0] + ldrh r1, [r5, #0xc] + ldr r0, [r4, #0x4] + sub r0, r1, r0 + strh r0, [r5, #0xc] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r7, pc} +_0202D64E: + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _0202D660 + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + add r2, r3, #0x0 + bl FUN_0202D400 + b _0202D66A +_0202D660: + ldr r0, [r5, #0x0] + ldr r1, [r4, #0x0] + add r2, r3, #0x0 + bl MI_CpuCopy8 +_0202D66A: + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x0] + add r0, r1, r0 + str r0, [r4, #0x0] + ldrh r0, [r5, #0xc] + ldr r1, [r4, #0x4] + sub r0, r1, r0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r7, pc} + nop +_0202D680: .word 0x0000FFFF + + thumb_func_start FUN_0202D684 +FUN_0202D684: ; 0x0202D684 + push {r3-r7, lr} + sub sp, #0x8 + add r5, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r7, r3, #0x0 + bl FUN_0202D4C4 + add r4, r0, #0x0 + bne _0202D69E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D69E: + ldr r0, _0202D710 ; =0x0000FFFE + cmp r7, r0 + blt _0202D6A8 + bl ErrorHandling +_0202D6A8: + ldr r0, [sp, #0x0] + bl FUN_0202D9A0 + add r6, r0, #0x0 + ldr r0, _0202D714 ; =0x0000FFFF + cmp r6, r0 + bne _0202D6B8 + add r6, r7, #0x0 +_0202D6B8: + ldr r0, [sp, #0x24] + cmp r0, #0x0 + beq _0202D6EA + ldr r0, [r5, #0x14] + bl FUN_0202D498 + add r1, r6, #0x3 + cmp r1, r0 + blt _0202D6D0 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0202D6D0: + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x4] + ldr r3, _0202D718 ; =0x00000109 + add r2, r6, #0x0 + bl FUN_0202D3A4 + ldr r0, [r5, #0x14] + bl FUN_0202D4BC + ldrb r1, [r4, #0xf] + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0xf] +_0202D6EA: + ldr r0, [sp, #0x0] + strh r6, [r4, #0xc] + strb r0, [r4, #0xe] + ldr r0, [sp, #0x4] + str r0, [r4, #0x0] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _0202D700 + str r4, [r5, #0x4] + str r4, [r5, #0x0] + b _0202D708 +_0202D700: + str r4, [r0, #0x8] + ldr r0, [r5, #0x4] + str r0, [r4, #0x4] + str r4, [r5, #0x4] +_0202D708: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + nop +_0202D710: .word 0x0000FFFE +_0202D714: .word 0x0000FFFF +_0202D718: .word 0x00000109 + + thumb_func_start FUN_0202D71C +FUN_0202D71C: ; 0x0202D71C + ldr r1, [r0, #0x10] + cmp r1, #0x0 + beq _0202D726 + add r0, r1, #0x0 + bx lr +_0202D726: + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202D730 + add r0, r1, #0x0 + bx lr +_0202D730: + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202D738 + mov r0, #0x0 +_0202D738: + bx lr + .balign 4 + + thumb_func_start FUN_0202D73C +FUN_0202D73C: ; 0x0202D73C + push {r4, lr} + add r4, r0, #0x0 + ldr r1, [r4, #0x10] + cmp r1, #0x0 + beq _0202D74C + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} +_0202D74C: + bl FUN_0202D504 + cmp r0, #0x0 + bne _0202D75C + add r4, #0x8 + add r0, r4, #0x0 + bl FUN_0202D504 +_0202D75C: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202D760 +FUN_0202D760: ; 0x0202D760 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0x4] + mov r7, #0x1 + str r2, [sp, #0x0] + cmp r0, #0x0 + ble _0202D7B6 +_0202D770: + add r0, r5, #0x0 + bl FUN_0202D71C + add r6, r0, #0x0 + beq _0202D7B6 + add r0, r5, #0x0 + bl FUN_0202D73C + ldr r2, [r5, #0x14] + add r0, r6, #0x0 + add r1, r4, #0x0 + add r3, r7, #0x0 + bl FUN_0202D5BC + cmp r0, #0x0 + bne _0202D794 + str r6, [r5, #0x10] + b _0202D7B6 +_0202D794: + mov r0, #0x0 + ldr r1, [r4, #0x4] + mvn r0, r0 + cmp r1, r0 + bne _0202D7A4 + str r6, [r5, #0x10] + mov r0, #0x0 + pop {r3-r7, pc} +_0202D7A4: + add r0, r6, #0x0 + mov r1, #0x0 + mov r2, #0x10 + bl MI_CpuFill8 + ldr r0, [r4, #0x4] + ldr r7, [sp, #0x0] + cmp r0, #0x0 + bgt _0202D770 +_0202D7B6: + ldr r0, [r4, #0x4] + mov r2, #0x0 + cmp r0, #0x0 + ble _0202D7D2 + mov r1, #0xee +_0202D7C0: + ldr r0, [r4, #0x0] + add r2, r2, #0x1 + strb r1, [r0, #0x0] + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + ldr r0, [r4, #0x4] + cmp r2, r0 + blt _0202D7C0 +_0202D7D2: + mov r0, #0x1 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202D7D8 +FUN_0202D7D8: ; 0x0202D7D8 + push {r3-r7, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r1, #0x0 + mov r2, #0x20 + add r5, r0, #0x0 + bl MI_CpuFill8 + lsl r7, r4, #0x4 + mov r0, #0xf + add r1, r7, #0x0 + bl FUN_02016998 + mov r1, #0x0 + add r2, r7, #0x0 + str r0, [r5, #0x18] + bl MI_CpuFill8 + str r4, [r5, #0x1c] + str r6, [r5, #0x14] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0202D804 +FUN_0202D804: ; 0x0202D804 + push {r4, lr} + add r4, r0, #0x0 + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x18] + mov r1, #0x0 + lsl r2, r2, #0x4 + bl MI_CpuFill8 + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + str r0, [r4, #0x8] + str r0, [r4, #0xc] + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202D824 +FUN_0202D824: ; 0x0202D824 + ldr r3, _0202D82C ; =FUN_02016A18 + ldr r0, [r0, #0x18] + bx r3 + nop +_0202D82C: .word FUN_02016A18 + + thumb_func_start FUN_0202D830 +FUN_0202D830: ; 0x0202D830 + push {r3-r4} + ldr r4, [r0, #0x1c] + mov r2, #0x0 + ldr r3, [r0, #0x18] + cmp r4, #0x0 + ble _0202D850 +_0202D83C: + ldrb r0, [r3, #0xe] + cmp r0, r1 + bne _0202D848 + mov r0, #0x1 + pop {r3-r4} + bx lr +_0202D848: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, r4 + blt _0202D83C +_0202D850: + mov r0, #0x0 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_0202D858 +FUN_0202D858: ; 0x0202D858 + push {r3-r4, lr} + sub sp, #0x1c + ldr r3, _0202D880 ; =0x020EEB04 + add r4, r0, #0x0 + add r2, sp, #0x0 + mov r1, #0x1a +_0202D864: + ldrb r0, [r3, #0x0] + add r3, r3, #0x1 + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202D864 + cmp r4, #0x1a + blo _0202D878 + bl ErrorHandling +_0202D878: + add r0, sp, #0x0 + ldrb r0, [r0, r4] + add sp, #0x1c + pop {r3-r4, pc} + .balign 4 +_0202D880: .word 0x020EEB04 + + thumb_func_start FUN_0202D884 +FUN_0202D884: ; 0x0202D884 + push {r3-r4, lr} + sub sp, #0x1c + ldr r3, _0202D8AC ; =0x020EEB1E + add r4, r0, #0x0 + add r2, sp, #0x0 + mov r1, #0x1a +_0202D890: + ldrb r0, [r3, #0x0] + add r3, r3, #0x1 + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _0202D890 + cmp r4, #0x1a + blo _0202D8A4 + bl ErrorHandling +_0202D8A4: + add r0, sp, #0x0 + ldrb r0, [r0, r4] + add sp, #0x1c + pop {r3-r4, pc} + .balign 4 +_0202D8AC: .word 0x020EEB1E + + thumb_func_start FUN_0202D8B0 +FUN_0202D8B0: ; 0x0202D8B0 + cmp r0, #0xd + bgt _0202D8C4 + cmp r0, #0x7 + blt _0202D8CC + beq _0202D8C8 + cmp r0, #0x9 + beq _0202D8C8 + cmp r0, #0xd + beq _0202D8C8 + b _0202D8CC +_0202D8C4: + cmp r0, #0x12 + bne _0202D8CC +_0202D8C8: + mov r0, #0x1 + bx lr +_0202D8CC: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202D8D0 +FUN_0202D8D0: ; 0x0202D8D0 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0202D914 ; =0x021C59E0 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + cmp r0, #0x0 + bne _0202D8EC + mov r0, #0xf + mov r1, #0x18 + bl FUN_02016998 + ldr r1, _0202D914 ; =0x021C59E0 + str r0, [r1, #0x0] +_0202D8EC: + ldr r0, _0202D914 ; =0x021C59E0 + mov r3, #0x0 + ldr r1, [r0, #0x0] + add r2, r3, #0x0 + str r5, [r1, #0x0] + ldr r1, [r0, #0x0] + str r4, [r1, #0x4] + ldr r1, [r0, #0x0] + str r6, [r1, #0x8] +_0202D8FE: + ldr r1, [r0, #0x0] + add r1, r1, r3 + add r3, r3, #0x1 + strb r2, [r1, #0xc] + cmp r3, #0x8 + blt _0202D8FE + ldr r0, _0202D914 ; =0x021C59E0 + ldr r0, [r0, #0x0] + strb r2, [r0, #0x14] + pop {r4-r6, pc} + nop +_0202D914: .word 0x021C59E0 + + thumb_func_start FUN_0202D918 +FUN_0202D918: ; 0x0202D918 + push {r3, lr} + ldr r0, _0202D930 ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202D92C + bl FUN_02016A18 + ldr r0, _0202D930 ; =0x021C59E0 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202D92C: + pop {r3, pc} + nop +_0202D930: .word 0x021C59E0 + + thumb_func_start FUN_0202D934 +FUN_0202D934: ; 0x0202D934 + push {r3-r7, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r4, #0x16 + bge _0202D94C + mov r0, #0xc + mul r1, r0 + ldr r0, _0202D998 ; =0x020EEB38 + ldr r4, [r0, r1] + b _0202D974 +_0202D94C: + ldr r0, _0202D99C ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202D958 + bl ErrorHandling +_0202D958: + ldr r0, _0202D99C ; =0x021C59E0 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x16 + cmp r4, r0 + ble _0202D96A + bl FUN_02031454 + pop {r3-r7, pc} +_0202D96A: + ldr r1, [r1, #0x0] + sub r4, #0x16 + mov r0, #0xc + mul r0, r4 + ldr r4, [r1, r0] +_0202D974: + cmp r4, #0x0 + beq _0202D996 + ldr r0, _0202D99C ; =0x021C59E0 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _0202D98C + ldr r3, [r3, #0x8] + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + blx r4 + pop {r3-r7, pc} +_0202D98C: + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + mov r3, #0x0 + blx r4 +_0202D996: + pop {r3-r7, pc} + .balign 4 +_0202D998: .word 0x020EEB38 +_0202D99C: .word 0x021C59E0 + + thumb_func_start FUN_0202D9A0 +FUN_0202D9A0: ; 0x0202D9A0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x16 + bge _0202D9B6 + mov r0, #0xc + add r1, r5, #0x0 + mul r1, r0 + ldr r0, _0202D9FC ; =0x020EEB3C + ldr r0, [r0, r1] + b _0202D9EE +_0202D9B6: + ldr r0, _0202DA00 ; =0x021C59E0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202D9C2 + bl ErrorHandling +_0202D9C2: + ldr r0, _0202DA00 ; =0x021C59E0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _0202D9D2 + bl FUN_02031454 + mov r0, #0x0 + pop {r3-r5, pc} +_0202D9D2: + ldr r0, [r1, #0x4] + add r0, #0x16 + cmp r5, r0 + ble _0202D9E2 + bl FUN_02031454 + mov r0, #0x0 + pop {r3-r5, pc} +_0202D9E2: + ldr r1, [r1, #0x0] + sub r5, #0x16 + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + ldr r0, [r0, #0x4] +_0202D9EE: + cmp r0, #0x0 + beq _0202D9F6 + blx r0 + add r4, r0, #0x0 +_0202D9F6: + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_0202D9FC: .word 0x020EEB3C +_0202DA00: .word 0x021C59E0 + + thumb_func_start FUN_0202DA04 +FUN_0202DA04: ; 0x0202DA04 + cmp r0, #0x16 + bge _0202DA1C + mov r1, #0xc + mul r1, r0 + ldr r0, _0202DA38 ; =0x020EEB40 + ldr r0, [r0, r1] + cmp r0, #0x0 + beq _0202DA18 + mov r0, #0x1 + bx lr +_0202DA18: + mov r0, #0x0 + bx lr +_0202DA1C: + ldr r1, _0202DA3C ; =0x021C59E0 + sub r0, #0x16 + ldr r1, [r1, #0x0] + ldr r2, [r1, #0x0] + mov r1, #0xc + mul r1, r0 + add r0, r2, r1 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202DA34 + mov r0, #0x1 + bx lr +_0202DA34: + mov r0, #0x0 + bx lr + .balign 4 +_0202DA38: .word 0x020EEB40 +_0202DA3C: .word 0x021C59E0 + + thumb_func_start FUN_0202DA40 +FUN_0202DA40: ; 0x0202DA40 + push {r3-r5, lr} + add r3, r0, #0x0 + cmp r3, #0x16 + bge _0202DA58 + mov r4, #0xc + mul r4, r3 + ldr r3, _0202DA70 ; =0x020EEB40 + add r0, r1, #0x0 + ldr r3, [r3, r4] + mov r1, #0x0 + blx r3 + pop {r3-r5, pc} +_0202DA58: + ldr r0, _0202DA74 ; =0x021C59E0 + sub r3, #0x16 + ldr r4, [r0, #0x0] + add r0, r1, #0x0 + ldr r1, [r4, #0x8] + ldr r5, [r4, #0x0] + mov r4, #0xc + mul r4, r3 + add r3, r5, r4 + ldr r3, [r3, #0x8] + blx r3 + pop {r3-r5, pc} + .balign 4 +_0202DA70: .word 0x020EEB40 +_0202DA74: .word 0x021C59E0 + + thumb_func_start FUN_0202DA78 +FUN_0202DA78: ; 0x0202DA78 + ldr r0, _0202DA7C ; =0x0000FFFF + bx lr + .balign 4 +_0202DA7C: .word 0x0000FFFF + + thumb_func_start FUN_0202DA80 +FUN_0202DA80: ; 0x0202DA80 + mov r0, #0x0 + bx lr + + thumb_func_start FUN_0202DA84 +FUN_0202DA84: ; 0x0202DA84 + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0202DA88 +FUN_0202DA88: ; 0x0202DA88 + mov r0, #0x2 + bx lr + + thumb_func_start FUN_0202DA8C +FUN_0202DA8C: ; 0x0202DA8C + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _0202DACA + ldr r4, _0202DACC ; =0x021C59E0 + mov r1, #0x1 + ldr r0, [r4, #0x0] + add r0, r0, r5 + strb r1, [r0, #0xc] + mov r5, #0x0 +_0202DAA4: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202DABA + ldr r0, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, #0xc] + cmp r0, #0x0 + beq _0202DACA +_0202DABA: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202DAA4 + mov r1, #0x0 + mov r0, #0xe + add r2, r1, #0x0 + bl FUN_02030BC4 +_0202DACA: + pop {r3-r5, pc} + .balign 4 +_0202DACC: .word 0x021C59E0 + + thumb_func_start FUN_0202DAD0 +FUN_0202DAD0: ; 0x0202DAD0 + ldr r0, _0202DAF0 ; =0x021C59E0 + mov r3, #0x0 + ldr r1, [r0, #0x0] + str r3, [r1, #0x0] + ldr r1, [r0, #0x0] + str r3, [r1, #0x4] + ldr r1, [r0, #0x0] + str r3, [r1, #0x8] + ldr r0, [r0, #0x0] + mov r1, #0x1 + strb r1, [r0, #0x14] + ldr r3, _0202DAF4 ; =FUN_020311D0 + mov r0, #0xf + add r1, r2, #0x0 + bx r3 + nop +_0202DAF0: .word 0x021C59E0 +_0202DAF4: .word FUN_020311D0 + + thumb_func_start FUN_0202DAF8 +FUN_0202DAF8: ; 0x0202DAF8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _0202DB0E + ldr r0, _0202DB10 ; =0x021C59E0 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + strb r1, [r0, #0xc] +_0202DB0E: + pop {r4, pc} + .balign 4 +_0202DB10: .word 0x021C59E0 + + thumb_func_start FUN_0202DB14 +FUN_0202DB14: ; 0x0202DB14 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + str r1, [sp, #0x4] + bl FUN_020238F4 + str r0, [sp, #0x8] + ldr r0, _0202DBA0 ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202DB9A + mov r1, #0xe9 + mov r0, #0xf + lsl r1, r1, #0x2 + bl FUN_02016998 + ldr r1, _0202DBA0 ; =0x021C59E4 + mov r2, #0xe9 + str r0, [r1, #0x0] + mov r1, #0x0 + lsl r2, r2, #0x2 + bl MI_CpuFill8 + mov r6, #0x0 + ldr r7, _0202DBA0 ; =0x021C59E4 + add r4, r6, #0x0 + add r5, r6, #0x0 +_0202DB4A: + ldr r1, [r7, #0x0] + add r0, r1, #0x0 + add r0, #0x28 + add r2, r0, r4 + mov r0, #0xd2 + add r1, r1, r5 + lsl r0, r0, #0x2 + str r2, [r1, r0] + add r0, r6, #0x0 + bl FUN_0202DE78 + add r6, r6, #0x1 + add r4, #0x68 + add r5, r5, #0x4 + cmp r6, #0x8 + blt _0202DB4A + ldr r2, _0202DBA0 ; =0x021C59E4 + mov r1, #0x3a + ldr r3, [r2, #0x0] + mov r0, #0x0 + lsl r1, r1, #0x4 + strb r0, [r3, r1] + ldr r4, [r2, #0x0] + add r3, r1, #0x1 + strb r0, [r4, r3] + add r3, r1, #0x2 + ldr r4, [r2, #0x0] + sub r1, #0x58 + strb r0, [r4, r3] + ldr r3, [r2, #0x0] + ldr r0, [sp, #0x0] + str r0, [r3, #0x4] + ldr r3, [r2, #0x0] + ldr r0, [sp, #0x4] + str r0, [r3, #0x0] + ldr r2, [r2, #0x0] + ldr r0, [sp, #0x8] + ldr r1, [r2, r1] + bl FUN_0202393C +_0202DB9A: + add sp, #0xc + pop {r4-r7, pc} + nop +_0202DBA0: .word 0x021C59E4 + + thumb_func_start FUN_0202DBA4 +FUN_0202DBA4: ; 0x0202DBA4 + push {r3-r5, lr} + ldr r1, _0202DBDC ; =0x021C59E4 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _0202DBD8 + mov r4, #0x0 + mov r0, #0xd2 + add r5, r4, #0x0 + add r3, r4, #0x0 + lsl r0, r0, #0x2 +_0202DBB8: + ldr r2, [r1, #0x0] + add r4, r4, #0x1 + add r2, r2, r5 + add r5, r5, #0x4 + str r3, [r2, r0] + cmp r4, #0x8 + blt _0202DBB8 + ldr r0, _0202DBDC ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202DBD2 + bl FUN_02016A18 +_0202DBD2: + ldr r0, _0202DBDC ; =0x021C59E4 + mov r1, #0x0 + str r1, [r0, #0x0] +_0202DBD8: + pop {r3-r5, pc} + nop +_0202DBDC: .word 0x021C59E4 + + thumb_func_start FUN_0202DBE0 +FUN_0202DBE0: ; 0x0202DBE0 + push {r3-r7, lr} + bl FUN_02031190 + add r4, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl FUN_0202881C + add r7, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl FUN_020286EC + str r0, [sp, #0x0] + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl FUN_02029AFC + add r6, r0, #0x0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + bl FUN_020238F4 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r2, [r1, #0x0] + lsl r1, r4, #0x2 + add r2, r2, r1 + mov r1, #0xd2 + lsl r1, r1, #0x2 + ldr r1, [r2, r1] + bl FUN_0202393C + mov r0, #0x68 + add r5, r4, #0x0 + mul r5, r0 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r0, [r0, #0x0] + add r0, #0x64 + add r0, r0, r5 + bl OS_GetMacAddress + add r0, r7, #0x0 + mov r1, #0x1 + mov r2, #0x0 + bl FUN_020287A8 + ldr r1, _0202DCD8 ; =0x021C59E4 + mov r2, #0x10 + ldr r1, [r1, #0x0] + add r1, #0x54 + add r1, r1, r5 + bl MI_CpuCopy8 + add r0, r6, #0x0 + bl FUN_02029B38 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, r1, r5 + add r1, #0x6b + strb r0, [r1, #0x0] + add r0, r6, #0x0 + bl FUN_02029B3C + ldr r2, _0202DCD8 ; =0x021C59E4 + ldr r1, [r2, #0x0] + add r1, r1, r5 + add r1, #0x6c + strb r0, [r1, #0x0] + ldr r0, [r2, #0x0] + ldr r0, [r0, #0x4] + bl FUN_02025C18 + ldr r2, _0202DCD8 ; =0x021C59E4 + ldr r1, [r2, #0x0] + add r1, r1, r5 + add r1, #0x6d + strb r0, [r1, #0x0] + ldr r2, [r2, #0x0] + mov r0, #0x1 + add r2, #0x6d + ldrb r1, [r2, r5] + sub r0, r0, r1 + strb r0, [r2, r5] + ldr r0, [sp, #0x0] + bl FUN_02028228 + ldr r1, _0202DCD8 ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, #0x48 + add r1, r1, r5 + bl FUN_02096CCC + ldr r0, _0202DCD8 ; =0x021C59E4 + mov r1, #0x0 + ldr r0, [r0, #0x0] + mov r2, #0x20 + add r0, #0x8 + add r0, r0, r5 + bl MI_CpuFill8 + ldr r0, _0202DCD8 ; =0x021C59E4 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _0202DCC4 + add r1, #0x8 + add r1, r1, r5 + bl FUN_02023ACC +_0202DCC4: + ldr r1, _0202DCD8 ; =0x021C59E4 + mov r0, #0x3 + ldr r1, [r1, #0x0] + mov r2, #0x68 + add r1, #0x8 + add r1, r1, r5 + bl FUN_02030ADC + pop {r3-r7, pc} + nop +_0202DCD8: .word 0x021C59E4 + + thumb_func_start FUN_0202DCDC +FUN_0202DCDC: ; 0x0202DCDC + mov r0, #0x68 + bx lr + + thumb_func_start FUN_0202DCE0 +FUN_0202DCE0: ; 0x0202DCE0 + ldr r0, _0202DCF4 ; =0x021C59E4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0202DCF0 + mov r0, #0x3a + mov r1, #0x1 + lsl r0, r0, #0x4 + strb r1, [r2, r0] +_0202DCF0: + bx lr + nop +_0202DCF4: .word 0x021C59E4 + + thumb_func_start FUN_0202DCF8 +FUN_0202DCF8: ; 0x0202DCF8 + ldr r0, _0202DD04 ; =0x021C59E4 + ldr r1, [r0, #0x0] + mov r0, #0x3a + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + .balign 4 +_0202DD04: .word 0x021C59E4 + + thumb_func_start FUN_0202DD08 +FUN_0202DD08: ; 0x0202DD08 + push {r3-r5, lr} + ldr r1, _0202DD78 ; =0x021C59E4 + add r4, r2, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _0202DD74 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202DD74 + ldr r1, _0202DD78 ; =0x021C59E4 + mov r2, #0x68 + ldr r5, [r1, #0x0] + add r1, r4, #0x0 + add r1, #0x62 + ldrb r1, [r1, #0x0] + add r5, #0x8 + add r0, r4, #0x0 + add r3, r1, #0x0 + mul r3, r2 + add r1, r5, r3 + bl MI_CpuCopy8 + add r4, #0x62 + ldr r2, _0202DD78 ; =0x021C59E4 + ldrb r3, [r4, #0x0] + ldr r0, [r2, #0x0] + ldr r1, _0202DD7C ; =0x000003A2 + strb r3, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x0] + sub r0, #0xa + add r4, r3, r0 + ldrb r3, [r3, r1] + ldrb r0, [r4, r3] + cmp r0, #0x2 + bhs _0202DD74 + mov r0, #0x1 + strb r0, [r4, r3] + ldr r0, [r2, #0x0] + ldrb r4, [r0, r1] + bl FUN_02031190 + cmp r4, r0 + bne _0202DD74 + ldr r0, _0202DD78 ; =0x021C59E4 + mov r2, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] +_0202DD74: + pop {r3-r5, pc} + nop +_0202DD78: .word 0x021C59E4 +_0202DD7C: .word 0x000003A2 + + thumb_func_start FUN_0202DD80 +FUN_0202DD80: ; 0x0202DD80 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202DDE0 ; =0x021C59E4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0202DDDC + mov r3, #0x68 + add r4, r5, #0x0 + add r0, r2, #0x0 + mul r4, r3 + add r1, #0x8 + add r1, r1, r4 + add r2, r3, #0x0 + bl MI_CpuCopy8 + ldr r0, _0202DDE0 ; =0x021C59E4 + add r1, r5, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x64 + add r0, r0, r4 + bl FUN_0202EFAC + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x1 + ldr r0, [r0, #0x0] + add r1, r0, r5 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bl FUN_02031190 + cmp r5, r0 + bne _0202DDD2 + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x3 + ldr r0, [r0, #0x0] + add r1, r0, r5 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r3-r5, pc} +_0202DDD2: + ldr r0, _0202DDE0 ; =0x021C59E4 + mov r2, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _0202DDE4 ; =0x000003A1 + strb r2, [r1, r0] +_0202DDDC: + pop {r3-r5, pc} + nop +_0202DDE0: .word 0x021C59E4 +_0202DDE4: .word 0x000003A1 + + thumb_func_start FUN_0202DDE8 +FUN_0202DDE8: ; 0x0202DDE8 + push {r3-r7, lr} + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r1, [r0, #0x0] + ldr r0, _0202DE74 ; =0x000003A1 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202DDFA + mov r0, #0x0 + pop {r3-r7, pc} +_0202DDFA: + mov r0, #0x5 + bl FUN_02031354 + cmp r0, #0x0 + bne _0202DE6C + mov r4, #0x0 + add r5, r4, #0x0 + add r7, r4, #0x0 +_0202DE0A: + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r2, [r0, #0x0] + mov r0, #0xe6 + add r1, r2, r4 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202DE4A + add r0, r2, r5 + add r0, #0x6a + strb r4, [r0, #0x0] + ldr r0, _0202DE70 ; =0x021C59E4 + ldr r6, [r0, #0x0] + bl FUN_02023924 + add r2, r0, #0x0 + mov r0, #0xd2 + add r1, r6, r7 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + add r6, #0x28 + add r1, r6, r5 + bl MI_CpuCopy8 + ldr r1, _0202DE70 ; =0x021C59E4 + mov r0, #0x4 + ldr r1, [r1, #0x0] + mov r2, #0x68 + add r1, #0x8 + add r1, r1, r5 + bl FUN_02031000 +_0202DE4A: + add r4, r4, #0x1 + add r5, #0x68 + add r7, r7, #0x4 + cmp r4, #0x8 + blt _0202DE0A + mov r1, #0x0 + mov r0, #0x5 + add r2, r1, #0x0 + bl FUN_02031000 + ldr r0, _0202DE70 ; =0x021C59E4 + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _0202DE74 ; =0x000003A1 + strb r2, [r1, r0] + mov r0, #0x1 + pop {r3-r7, pc} +_0202DE6C: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0202DE70: .word 0x021C59E4 +_0202DE74: .word 0x000003A1 + + thumb_func_start FUN_0202DE78 +FUN_0202DE78: ; 0x0202DE78 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202DEA0 ; =0x021C59E4 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r1, r1, r0 + mov r0, #0xd2 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bl FUN_02023948 + ldr r0, _0202DEA0 ; =0x021C59E4 + mov r2, #0x0 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + pop {r4, pc} + nop +_0202DEA0: .word 0x021C59E4 + + thumb_func_start FUN_0202DEA4 +FUN_0202DEA4: ; 0x0202DEA4 + ldr r1, _0202DEBC ; =0x021C59E4 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _0202DEB8 + mov r0, #0x1 + bx lr +_0202DEB8: + mov r0, #0x0 + bx lr + .balign 4 +_0202DEBC: .word 0x021C59E4 + + thumb_func_start FUN_0202DEC0 +FUN_0202DEC0: ; 0x0202DEC0 + ldr r1, _0202DEDC ; =0x021C59E4 + mov r2, #0x1 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x2 + beq _0202DED8 + cmp r0, #0x1 + beq _0202DED8 + mov r2, #0x0 +_0202DED8: + add r0, r2, #0x0 + bx lr + .balign 4 +_0202DEDC: .word 0x021C59E4 + + thumb_func_start FUN_0202DEE0 +FUN_0202DEE0: ; 0x0202DEE0 + ldr r1, _0202DEF0 ; =0x021C59E4 + mov r2, #0x2 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202DEF0: .word 0x021C59E4 + + thumb_func_start FUN_0202DEF4 +FUN_0202DEF4: ; 0x0202DEF4 + ldr r1, _0202DF04 ; =0x021C59E4 + mov r2, #0x3 + ldr r1, [r1, #0x0] + add r1, r1, r0 + mov r0, #0xe6 + lsl r0, r0, #0x2 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202DF04: .word 0x021C59E4 + + thumb_func_start FUN_0202DF08 +FUN_0202DF08: ; 0x0202DF08 + ldr r1, _0202DF24 ; =0x021C59E4 + mov r0, #0x0 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + lsl r1, r1, #0x2 +_0202DF12: + ldrb r2, [r3, r1] + cmp r2, #0x1 + beq _0202DF22 + add r0, r0, #0x1 + add r3, r3, #0x1 + cmp r0, #0x8 + blt _0202DF12 + mov r0, #0xff +_0202DF22: + bx lr + .balign 4 +_0202DF24: .word 0x021C59E4 + + thumb_func_start FUN_0202DF28 +FUN_0202DF28: ; 0x0202DF28 + push {r3-r4} + ldr r1, _0202DF50 ; =0x021C59E4 + mov r0, #0x0 + ldr r4, [r1, #0x0] + mov r1, #0xe6 + add r3, r0, #0x0 + lsl r1, r1, #0x2 +_0202DF36: + ldrb r2, [r4, r1] + cmp r2, #0x2 + beq _0202DF40 + cmp r2, #0x3 + bne _0202DF42 +_0202DF40: + add r0, r0, #0x1 +_0202DF42: + add r3, r3, #0x1 + add r4, r4, #0x1 + cmp r3, #0x8 + blt _0202DF36 + pop {r3-r4} + bx lr + nop +_0202DF50: .word 0x021C59E4 + + thumb_func_start FUN_0202DF54 +FUN_0202DF54: ; 0x0202DF54 + push {r4-r6, lr} + ldr r0, _0202DFA0 ; =0x021C59E4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202DF9C + bl FUN_02030F20 + cmp r0, #0x0 + beq _0202DF9C + mov r6, #0xe6 + ldr r4, _0202DFA0 ; =0x021C59E4 + mov r5, #0x0 + lsl r6, r6, #0x2 +_0202DF6E: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202DF96 + cmp r5, #0x0 + bne _0202DF86 + bl FUN_02031280 + cmp r0, #0x0 + bne _0202DF96 +_0202DF86: + ldr r0, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, r6] + cmp r0, #0x0 + beq _0202DF96 + add r0, r5, #0x0 + bl FUN_0202DE78 +_0202DF96: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202DF6E +_0202DF9C: + pop {r4-r6, pc} + nop +_0202DFA0: .word 0x021C59E4 + + thumb_func_start FUN_0202DFA4 +FUN_0202DFA4: ; 0x0202DFA4 + ldr r1, _0202DFD4 ; =0x021C59E4 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + bne _0202DFB0 + mov r0, #0x0 + bx lr +_0202DFB0: + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x1 + beq _0202DFC4 + cmp r1, #0x2 + beq _0202DFC4 + cmp r1, #0x3 + bne _0202DFD0 +_0202DFC4: + lsl r0, r0, #0x2 + add r1, r3, r0 + mov r0, #0xd2 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + bx lr +_0202DFD0: + mov r0, #0x0 + bx lr + .balign 4 +_0202DFD4: .word 0x021C59E4 + + thumb_func_start FUN_0202DFD8 +FUN_0202DFD8: ; 0x0202DFD8 + ldr r1, _0202DFF8 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202DFF2 + mov r1, #0x68 + add r3, #0x48 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202DFF2: + mov r0, #0x0 + bx lr + nop +_0202DFF8: .word 0x021C59E4 + + thumb_func_start FUN_0202DFFC +FUN_0202DFFC: ; 0x0202DFFC + ldr r1, _0202E01C ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E016 + mov r1, #0x68 + add r3, #0x54 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202E016: + mov r0, #0x0 + bx lr + nop +_0202E01C: .word 0x021C59E4 + + thumb_func_start FUN_0202E020 +FUN_0202E020: ; 0x0202E020 + ldr r1, _0202E040 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E03C + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6b + ldrb r0, [r0, #0x0] + bx lr +_0202E03C: + mov r0, #0x0 + bx lr + .balign 4 +_0202E040: .word 0x021C59E4 + + thumb_func_start FUN_0202E044 +FUN_0202E044: ; 0x0202E044 + ldr r1, _0202E064 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E060 + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6c + ldrb r0, [r0, #0x0] + bx lr +_0202E060: + mov r0, #0x0 + bx lr + .balign 4 +_0202E064: .word 0x021C59E4 + + thumb_func_start FUN_0202E068 +FUN_0202E068: ; 0x0202E068 + ldr r1, _0202E088 ; =0x021C59E4 + ldr r3, [r1, #0x0] + mov r1, #0xe6 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E084 + mov r1, #0x68 + mul r1, r0 + add r0, r3, r1 + add r0, #0x6d + ldrb r0, [r0, #0x0] + bx lr +_0202E084: + mov r0, #0x0 + bx lr + .balign 4 +_0202E088: .word 0x021C59E4 + + thumb_func_start FUN_0202E08C +FUN_0202E08C: ; 0x0202E08C + push {r4-r6, lr} + mov r4, #0x0 + add r5, r4, #0x0 + add r6, r4, #0x0 +_0202E094: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202E0E8 + ldr r0, _0202E0F4 ; =0x021C59E4 + ldr r0, [r0, #0x0] + add r1, r0, r4 + mov r0, #0xe6 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202E0E8 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202E0E8 + ldr r0, _0202E0F4 ; =0x021C59E4 + ldr r1, _0202E0F8 ; =0x00000399 + ldr r0, [r0, #0x0] + add r2, r0, r4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E0E8 + add r1, r6, #0x0 + add r2, r0, r5 +_0202E0D0: + add r3, r2, #0x0 + add r3, #0x70 + ldrb r0, [r2, #0x8] + ldrb r3, [r3, #0x0] + cmp r0, r3 + beq _0202E0E0 + mov r0, #0x0 + pop {r4-r6, pc} +_0202E0E0: + add r1, r1, #0x1 + add r2, r2, #0x1 + cmp r1, #0x20 + blt _0202E0D0 +_0202E0E8: + add r4, r4, #0x1 + add r5, #0x68 + cmp r4, #0x7 + blt _0202E094 + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 +_0202E0F4: .word 0x021C59E4 +_0202E0F8: .word 0x00000399 + + thumb_func_start FUN_0202E0FC +FUN_0202E0FC: ; 0x0202E0FC + push {r3-r7, lr} + add r7, r0, #0x0 + ldr r0, _0202E1B4 ; =0x021C59E4 + add r6, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202E1B0 + cmp r7, #0x2 + beq _0202E11C + bl FUN_02031190 + bl FUN_020313CC + mov r1, #0x1 + and r0, r1 + str r0, [sp, #0x0] +_0202E11C: + mov r4, #0x0 + bl FUN_02030F20 + cmp r0, #0x0 + ble _0202E1B0 + add r5, r4, #0x0 +_0202E128: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + mov r1, #0xe6 + ldr r0, [r0, #0x0] + lsl r1, r1, #0x2 + add r2, r0, r4 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _0202E1A4 + cmp r7, #0x0 + bne _0202E16E + add r0, r4, #0x0 + bl FUN_020313CC + mov r1, #0x1 + and r1, r0 + ldr r0, [sp, #0x0] + cmp r0, r1 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + mov r1, #0xda + ldr r0, [r0, #0x0] + lsl r1, r1, #0x2 + add r0, r0, r5 + ldrh r1, [r0, r1] + add r2, r1, r6 + mov r1, #0xda + lsl r1, r1, #0x2 + strh r2, [r0, r1] + b _0202E1A4 +_0202E16E: + cmp r7, #0x1 + bne _0202E194 + add r0, r4, #0x0 + bl FUN_020313CC + mov r1, #0x1 + and r1, r0 + ldr r0, [sp, #0x0] + cmp r0, r1 + beq _0202E1A4 + ldr r0, _0202E1B4 ; =0x021C59E4 + ldr r1, _0202E1B8 ; =0x0000036A + ldr r0, [r0, #0x0] + add r0, r0, r5 + ldrh r1, [r0, r1] + add r2, r1, r6 + ldr r1, _0202E1B8 ; =0x0000036A + strh r2, [r0, r1] + b _0202E1A4 +_0202E194: + mov r1, #0xdb + add r0, r0, r5 + lsl r1, r1, #0x2 + ldrh r1, [r0, r1] + add r2, r1, r6 + mov r1, #0xdb + lsl r1, r1, #0x2 + strh r2, [r0, r1] +_0202E1A4: + add r5, r5, #0x6 + add r4, r4, #0x1 + bl FUN_02030F20 + cmp r4, r0 + blt _0202E128 +_0202E1B0: + pop {r3-r7, pc} + nop +_0202E1B4: .word 0x021C59E4 +_0202E1B8: .word 0x0000036A + + thumb_func_start FUN_0202E1BC +FUN_0202E1BC: ; 0x0202E1BC + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl FUN_020286EC + str r0, [sp, #0x4] + mov r4, #0x0 + bl FUN_02030F20 + cmp r0, #0x0 + ble _0202E224 + add r5, r4, #0x0 +_0202E1D4: + add r0, r4, #0x0 + bl FUN_0202DFD8 + add r1, r0, #0x0 + beq _0202E218 + add r0, r7, #0x0 + add r2, sp, #0x8 + bl FUN_02033874 + cmp r0, #0x0 + beq _0202E1EE + cmp r0, #0x1 + bne _0202E218 +_0202E1EE: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bge _0202E1F8 + bl ErrorHandling +_0202E1F8: + ldr r0, _0202E254 ; =0x021C59E4 + mov r2, #0xda + ldr r0, [r0, #0x0] + ldr r3, _0202E258 ; =0x0000036A + add r6, r0, r5 + mov r0, #0xdb + lsl r0, r0, #0x2 + ldrh r0, [r6, r0] + lsl r2, r2, #0x2 + str r0, [sp, #0x0] + ldrh r2, [r6, r2] + ldrh r3, [r6, r3] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x8] + bl FUN_02028608 +_0202E218: + add r5, r5, #0x6 + add r4, r4, #0x1 + bl FUN_02030F20 + cmp r4, r0 + blt _0202E1D4 +_0202E224: + mov r3, #0xda + mov r2, #0x0 + lsl r3, r3, #0x2 + ldr r6, _0202E254 ; =0x021C59E4 + add r1, r2, #0x0 + add r0, r2, #0x0 + add r4, r3, #0x2 + add r5, r3, #0x4 +_0202E234: + ldr r7, [r6, #0x0] + add r2, r2, #0x1 + add r7, r7, r1 + strh r0, [r7, r3] + ldr r7, [r6, #0x0] + add r7, r7, r1 + strh r0, [r7, r4] + ldr r7, [r6, #0x0] + add r7, r7, r1 + add r1, r1, #0x6 + strh r0, [r7, r5] + cmp r2, #0x8 + blt _0202E234 + add sp, #0xc + pop {r4-r7, pc} + nop +_0202E254: .word 0x021C59E4 +_0202E258: .word 0x0000036A + + thumb_func_start FUN_0202E25C +FUN_0202E25C: ; 0x0202E25C + push {r4, lr} + add r4, r0, #0x0 + cmp r1, #0x1 + bne _0202E26E + mov r0, #0x0 + mov r1, #0x1 + bl FUN_0202E0FC + b _0202E27E +_0202E26E: + mov r0, #0x0 + mvn r0, r0 + cmp r1, r0 + bne _0202E27E + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_0202E0FC +_0202E27E: + add r0, r4, #0x0 + bl FUN_0202E1BC + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202E288 +FUN_0202E288: ; 0x0202E288 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2 + bl FUN_0202E0FC + add r0, r4, #0x0 + bl FUN_0202E1BC + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0202E29C +FUN_0202E29C: ; 0x0202E29C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202E332 + mov r1, #0xdb + mov r0, #0xf + lsl r1, r1, #0x4 + bl FUN_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + mov r2, #0xdb + str r0, [r1, #0x8] + mov r1, #0x0 + lsl r2, r2, #0x4 + bl MI_CpuFill8 + bl FUN_0202CEEC + add r1, r0, #0x0 + mov r0, #0xf + bl FUN_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + ldr r2, [r1, #0x8] + ldr r1, _0202E338 ; =0x00000CA4 + str r0, [r2, r1] + bl FUN_0202CEEC + add r2, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E338 ; =0x00000CA4 + ldr r0, [r1, r0] + mov r1, #0x0 + bl MI_CpuFill8 + bl FUN_02023AC4 + add r1, r0, #0x0 + mov r0, #0xf + bl FUN_02016998 + ldr r1, _0202E334 ; =0x021C59E8 + ldr r2, [r1, #0x8] + ldr r1, _0202E33C ; =0x00000CBC + str r0, [r2, r1] + bl FUN_02023AC4 + add r2, r0, #0x0 + ldr r0, _0202E334 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E33C ; =0x00000CBC + ldr r0, [r1, r0] + mov r1, #0x0 + bl MI_CpuFill8 + ldr r2, _0202E334 ; =0x021C59E8 + mov r1, #0x33 + ldr r3, _0202E340 ; =0x00000333 + ldr r0, [r2, #0x8] + lsl r1, r1, #0x6 + str r3, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x8] + sub r0, #0x8 + str r4, [r3, r0] + ldr r0, [r2, #0x8] + sub r1, #0x18 + add r0, r0, r1 + bl FUN_02013724 + bl FUN_0202E500 +_0202E332: + pop {r4, pc} + .balign 4 +_0202E334: .word 0x021C59E8 +_0202E338: .word 0x00000CA4 +_0202E33C: .word 0x00000CBC +_0202E340: .word 0x00000333 + + thumb_func_start FUN_0202E344 +FUN_0202E344: ; 0x0202E344 + ldr r0, _0202E354 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202E350 + mov r0, #0x1 + bx lr +_0202E350: + mov r0, #0x0 + bx lr + .balign 4 +_0202E354: .word 0x021C59E8 + + thumb_func_start FUN_0202E358 +FUN_0202E358: ; 0x0202E358 + push {r4-r5} + mov r5, #0x0 + cmp r2, #0x0 + ble _0202E378 +_0202E360: + ldrb r4, [r0, #0x0] + ldrb r3, [r1, #0x0] + cmp r4, r3 + beq _0202E36E + mov r0, #0x0 + pop {r4-r5} + bx lr +_0202E36E: + add r5, r5, #0x1 + add r0, r0, #0x1 + add r1, r1, #0x1 + cmp r5, r2 + blt _0202E360 +_0202E378: + mov r0, #0x1 + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_0202E380 +FUN_0202E380: ; 0x0202E380 + push {r3-r7, lr} + add r7, r0, #0x0 + bl FUN_02033534 + add r5, r0, #0x0 + bl FUN_0203354C + add r4, r7, #0x0 + add r6, r0, #0x0 + add r4, #0x50 + cmp r5, #0xe + beq _0202E3C2 + ldrb r0, [r4, #0x4] + bl FUN_0202D8B0 + cmp r0, #0x0 + beq _0202E3AC + add r0, r5, #0x0 + bl FUN_0202D8B0 + cmp r0, #0x0 + bne _0202E3C2 +_0202E3AC: + add r0, r4, #0x0 + add r0, #0x54 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202E3BC + ldrb r0, [r4, #0x4] + cmp r0, #0xa + beq _0202E460 +_0202E3BC: + ldrb r0, [r4, #0x4] + cmp r0, r5 + bne _0202E460 +_0202E3C2: + cmp r5, #0xe + beq _0202E3CC + ldrb r0, [r4, #0x5] + cmp r0, r6 + bne _0202E460 +_0202E3CC: + mov r6, #0x0 + add r4, r6, #0x0 + add r5, r6, #0x0 +_0202E3D2: + ldr r0, _0202E464 ; =0x021C59E8 + ldr r1, _0202E468 ; =0x00000C84 + ldr r0, [r0, #0x8] + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E412 + add r0, #0x58 + add r0, r0, r5 + add r1, r7, #0x4 + mov r2, #0x6 + bl FUN_0202E358 + cmp r0, #0x0 + beq _0202E412 + ldr r2, _0202E464 ; =0x021C59E8 + lsl r1, r6, #0x1 + ldr r3, [r2, #0x8] + mov r0, #0x96 + add r3, r3, r1 + ldr r1, _0202E468 ; =0x00000C84 + strh r0, [r3, r1] + ldr r3, [r2, #0x8] + mov r2, #0xc0 + add r1, r6, #0x0 + add r3, #0x54 + mul r1, r2 + add r0, r7, #0x0 + add r1, r3, r1 + bl MI_CpuCopy8 + pop {r3-r7, pc} +_0202E412: + add r6, r6, #0x1 + add r4, r4, #0x2 + add r5, #0xc0 + cmp r6, #0x10 + blt _0202E3D2 + ldr r0, _0202E464 ; =0x021C59E8 + ldr r2, _0202E468 ; =0x00000C84 + ldr r0, [r0, #0x8] + mov r1, #0x0 + add r4, r0, #0x0 +_0202E426: + ldrh r3, [r4, r2] + cmp r3, #0x0 + beq _0202E434 + add r1, r1, #0x1 + add r4, r4, #0x2 + cmp r1, #0x10 + blt _0202E426 +_0202E434: + cmp r1, #0x10 + bge _0202E460 + lsl r2, r1, #0x1 + add r2, r0, r2 + ldr r0, _0202E468 ; =0x00000C84 + mov r3, #0x96 + strh r3, [r2, r0] + ldr r2, _0202E464 ; =0x021C59E8 + add r3, r1, #0x0 + ldr r4, [r2, #0x8] + mov r2, #0xc0 + add r4, #0x54 + mul r3, r2 + add r0, r7, #0x0 + add r1, r4, r3 + bl MI_CpuCopy8 + ldr r0, _0202E464 ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E46C ; =0x00000CB4 + strb r2, [r1, r0] +_0202E460: + pop {r3-r7, pc} + nop +_0202E464: .word 0x021C59E8 +_0202E468: .word 0x00000C84 +_0202E46C: .word 0x00000CB4 + + thumb_func_start FUN_0202E470 +FUN_0202E470: ; 0x0202E470 + push {r3, lr} + cmp r1, #0x0 + beq _0202E47A + bl OS_Terminate +_0202E47A: + ldr r0, _0202E484 ; =0x021C59E8 + mov r1, #0x2 + str r1, [r0, #0x4] + pop {r3, pc} + nop +_0202E484: .word 0x021C59E8 + + thumb_func_start FUN_0202E488 +FUN_0202E488: ; 0x0202E488 + ldr r0, _0202E494 ; =0x021C59E8 + mov r1, #0x0 + str r1, [r0, #0x4] + ldr r3, _0202E498 ; =FUN_02016454 + mov r0, #0x4 + bx r3 + .balign 4 +_0202E494: .word 0x021C59E8 +_0202E498: .word FUN_02016454 + + thumb_func_start FUN_0202E49C +FUN_0202E49C: ; 0x0202E49C + push {r3, lr} + mov r0, #0x4 + bl FUN_02016444 + ldr r0, _0202E4C0 ; =0x021C59E8 + mov r1, #0x1 + str r1, [r0, #0x4] + ldr r1, _0202E4C4 ; =FUN_0202E470 + mov r0, #0x8 + mov r2, #0x0 + bl FUN_02090DB8 + cmp r0, #0x1 + beq _0202E4BC + bl OS_Terminate +_0202E4BC: + pop {r3, pc} + nop +_0202E4C0: .word 0x021C59E8 +_0202E4C4: .word FUN_0202E470 + + thumb_func_start FUN_0202E4C8 +FUN_0202E4C8: ; 0x0202E4C8 + ldr r0, _0202E4D8 ; =0x021C59E8 + ldr r0, [r0, #0x4] + cmp r0, #0x2 + bne _0202E4D4 + mov r0, #0x1 + bx lr +_0202E4D4: + mov r0, #0x0 + bx lr + .balign 4 +_0202E4D8: .word 0x021C59E8 + + thumb_func_start FUN_0202E4DC +FUN_0202E4DC: ; 0x0202E4DC + ldr r0, _0202E4EC ; =0x021C59E8 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202E4E8 + mov r0, #0x1 + bx lr +_0202E4E8: + mov r0, #0x0 + bx lr + .balign 4 +_0202E4EC: .word 0x021C59E8 + + thumb_func_start FUN_0202E4F0 +FUN_0202E4F0: ; 0x0202E4F0 + ldr r3, _0202E4F8 ; =FUN_02090CC8 + ldr r0, _0202E4FC ; =FUN_0202E488 + mov r1, #0x0 + bx r3 + .balign 4 +_0202E4F8: .word FUN_02090CC8 +_0202E4FC: .word FUN_0202E488 + + thumb_func_start FUN_0202E500 +FUN_0202E500: ; 0x0202E500 + push {r3, lr} + ldr r1, _0202E534 ; =0x021C59E8 + mov r0, #0xcb + ldr r2, [r1, #0x8] + mov r3, #0x0 + lsl r0, r0, #0x4 + str r3, [r2, r0] + ldr r1, [r1, #0x8] + sub r0, #0xc + ldr r2, [r1, r0] + mov r0, #0x1f + add r1, r2, #0x0 + and r1, r0 + mov r0, #0x20 + sub r0, r0, r1 + add r0, r2, r0 + bl FUN_0202CE64 + ldr r0, _0202E534 ; =0x021C59E8 + ldr r1, [r0, #0x8] + mov r0, #0x33 + lsl r0, r0, #0x6 + ldr r0, [r1, r0] + bl FUN_0202CB70 + pop {r3, pc} + .balign 4 +_0202E534: .word 0x021C59E8 + + thumb_func_start FUN_0202E538 +FUN_0202E538: ; 0x0202E538 + push {r3-r5, lr} + mov r4, #0x0 + ldr r2, _0202E564 ; =0x021C59E8 + ldr r0, _0202E568 ; =0x00000C84 + add r5, r4, #0x0 + add r1, r4, #0x0 +_0202E544: + ldr r3, [r2, #0x8] + add r4, r4, #0x1 + add r3, r3, r5 + add r5, r5, #0x2 + strh r1, [r3, r0] + cmp r4, #0x10 + blt _0202E544 + ldr r0, _0202E564 ; =0x021C59E8 + mov r2, #0x3 + ldr r0, [r0, #0x8] + lsl r2, r2, #0xa + add r0, #0x54 + bl MI_CpuFill8 + pop {r3-r5, pc} + nop +_0202E564: .word 0x021C59E8 +_0202E568: .word 0x00000C84 + + thumb_func_start FUN_0202E56C +FUN_0202E56C: ; 0x0202E56C + push {r3-r4} + ldr r1, _0202E58C ; =0x021C59E8 + lsl r0, r0, #0x18 + ldr r2, [r1, #0x8] + ldr r4, _0202E590 ; =0x00000DAD + lsr r0, r0, #0x18 + ldrb r1, [r2, r4] + mov r3, #0x8 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1c + orr r0, r1 + strb r0, [r2, r4] + pop {r3-r4} + bx lr + nop +_0202E58C: .word 0x021C59E8 +_0202E590: .word 0x00000DAD + + thumb_func_start FUN_0202E594 +FUN_0202E594: ; 0x0202E594 + push {r4-r5} + ldr r1, _0202E5F0 ; =0x021C59E8 + ldr r0, _0202E5F4 ; =0x00000CB4 + ldr r3, [r1, #0x8] + mov r2, #0x0 + strb r2, [r3, r0] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x1 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x4 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x8] + add r3, #0xf6 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r5, [r1, #0x8] + add r3, #0xf9 + ldrb r4, [r5, r3] + mov r3, #0x10 + bic r4, r3 + add r3, r0, #0x0 + add r3, #0xf9 + strb r4, [r5, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x8] + add r3, #0xf8 + strb r2, [r4, r3] + ldr r1, [r1, #0x8] + add r0, #0xf7 + strb r2, [r1, r0] + pop {r4-r5} + bx lr + .balign 4 +_0202E5F0: .word 0x021C59E8 +_0202E5F4: .word 0x00000CB4 + + thumb_func_start FUN_0202E5F8 +FUN_0202E5F8: ; 0x0202E5F8 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_0202E594 + add r0, r5, #0x0 + bl FUN_0202E56C + bl FUN_0202D2F4 + ldr r0, _0202E65C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E660 ; =0x00000DAB + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202E62A + ldr r0, _0202E664 ; =FUN_020303BC + mov r1, #0xe + bl FUN_0202D0A0 + ldr r0, _0202E65C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E660 ; =0x00000DAB + strb r2, [r1, r0] +_0202E62A: + ldr r0, _0202E65C ; =0x021C59E8 + ldr r3, _0202E668 ; =0x00000DAD + ldr r1, [r0, #0x8] + mov r2, #0x20 + ldrb r0, [r1, r3] + bic r0, r2 + lsl r2, r4, #0x18 + lsr r2, r2, #0x18 + lsl r2, r2, #0x1f + lsr r2, r2, #0x1a + orr r0, r2 + strb r0, [r1, r3] + bl FUN_0202CBD4 + cmp r0, #0x1 + bne _0202E656 + bl FUN_0202CBFC + cmp r0, #0x0 + beq _0202E656 + mov r0, #0x1 + pop {r3-r5, pc} +_0202E656: + mov r0, #0x0 + pop {r3-r5, pc} + nop +_0202E65C: .word 0x021C59E8 +_0202E660: .word 0x00000DAB +_0202E664: .word FUN_020303BC +_0202E668: .word 0x00000DAD + + thumb_func_start FUN_0202E66C +FUN_0202E66C: ; 0x0202E66C + push {r4, lr} + sub sp, #0x8 + add r4, r1, #0x0 + bl FUN_0202E594 + cmp r4, #0x0 + beq _0202E67E + bl FUN_0202E538 +_0202E67E: + ldr r0, _0202E6DC ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E6E0 ; =0x00000DAB + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _0202E69C + ldr r0, _0202E6E4 ; =FUN_02030238 + mov r1, #0xe + bl FUN_0202D0A0 + ldr r0, _0202E6DC ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E6E0 ; =0x00000DAB + strb r2, [r1, r0] +_0202E69C: + bl FUN_0202CBD4 + cmp r0, #0x1 + bne _0202E6D4 + ldr r2, _0202E6E8 ; =0x020EEC40 + add r0, sp, #0x0 + ldrb r3, [r2, #0x0] + add r1, sp, #0x0 + strb r3, [r0, #0x0] + ldrb r3, [r2, #0x1] + strb r3, [r0, #0x1] + ldrb r3, [r2, #0x2] + strb r3, [r0, #0x2] + ldrb r3, [r2, #0x3] + strb r3, [r0, #0x3] + ldrb r3, [r2, #0x4] + ldrb r2, [r2, #0x5] + strb r3, [r0, #0x4] + strb r2, [r0, #0x5] + ldr r0, _0202E6EC ; =FUN_0202E380 + mov r2, #0x0 + bl FUN_0202C570 + cmp r0, #0x0 + beq _0202E6D4 + add sp, #0x8 + mov r0, #0x1 + pop {r4, pc} +_0202E6D4: + mov r0, #0x0 + add sp, #0x8 + pop {r4, pc} + nop +_0202E6DC: .word 0x021C59E8 +_0202E6E0: .word 0x00000DAB +_0202E6E4: .word FUN_02030238 +_0202E6E8: .word 0x020EEC40 +_0202E6EC: .word FUN_0202E380 + + thumb_func_start FUN_0202E6F0 +FUN_0202E6F0: ; 0x0202E6F0 + push {r3, lr} + ldr r0, _0202E77C ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + bne _0202E6FE + mov r0, #0x1 + pop {r3, pc} +_0202E6FE: + ldr r0, _0202E780 ; =0x00000DAC + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202E710 + cmp r0, #0x1 + beq _0202E740 + cmp r0, #0x2 + beq _0202E758 + b _0202E776 +_0202E710: + bl FUN_0202D21C + cmp r0, #0x0 + beq _0202E728 + bl FUN_0202C770 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E728: + bl FUN_0202D1E4 + cmp r0, #0x0 + bne _0202E776 + bl FUN_0202D100 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x2 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E740: + bl FUN_0202D1E4 + cmp r0, #0x0 + bne _0202E776 + bl FUN_0202D100 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x2 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] + b _0202E776 +_0202E758: + bl FUN_0202D1C8 + cmp r0, #0x0 + beq _0202E764 + mov r0, #0x1 + pop {r3, pc} +_0202E764: + bl FUN_0202D200 + cmp r0, #0x0 + beq _0202E776 + ldr r0, _0202E77C ; =0x021C59E8 + mov r2, #0x1 + ldr r1, [r0, #0x8] + ldr r0, _0202E780 ; =0x00000DAC + strb r2, [r1, r0] +_0202E776: + mov r0, #0x0 + pop {r3, pc} + nop +_0202E77C: .word 0x021C59E8 +_0202E780: .word 0x00000DAC + + thumb_func_start FUN_0202E784 +FUN_0202E784: ; 0x0202E784 + push {r3, lr} + ldr r0, _0202E7A8 ; =0x021C59E8 + ldr r2, [r0, #0x8] + cmp r2, #0x0 + beq _0202E7A2 + ldr r0, _0202E7AC ; =0x00000DAA + ldrb r1, [r2, r0] + cmp r1, #0x0 + bne _0202E7A2 + mov r1, #0x1 + strb r1, [r2, r0] + bl FUN_0202D100 + mov r0, #0x1 + pop {r3, pc} +_0202E7A2: + mov r0, #0x0 + pop {r3, pc} + nop +_0202E7A8: .word 0x021C59E8 +_0202E7AC: .word 0x00000DAA + + thumb_func_start FUN_0202E7B0 +FUN_0202E7B0: ; 0x0202E7B0 + push {r3, lr} + ldr r1, _0202E7D0 ; =0x021C59E8 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0202E7CE + cmp r0, #0x0 + ldr r0, _0202E7D4 ; =0x00000DAA + beq _0202E7C6 + mov r1, #0x2 + strb r1, [r2, r0] + pop {r3, pc} +_0202E7C6: + mov r1, #0x0 + strb r1, [r2, r0] + bl FUN_0202E500 +_0202E7CE: + pop {r3, pc} + .balign 4 +_0202E7D0: .word 0x021C59E8 +_0202E7D4: .word 0x00000DAA + + thumb_func_start FUN_0202E7D8 +FUN_0202E7D8: ; 0x0202E7D8 + push {r3, lr} + ldr r0, _0202E804 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E808 ; =0x00000CBC + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E80C ; =0x00000CA4 + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + ldr r0, [r0, #0x8] + bl FUN_02016A18 + ldr r0, _0202E804 ; =0x021C59E8 + mov r1, #0x0 + str r1, [r0, #0x8] + pop {r3, pc} + nop +_0202E804: .word 0x021C59E8 +_0202E808: .word 0x00000CBC +_0202E80C: .word 0x00000CA4 + + thumb_func_start FUN_0202E810 +FUN_0202E810: ; 0x0202E810 + push {r4, lr} + bl FUN_02030F40 + cmp r0, #0x0 + bne _0202E81E + mov r0, #0x0 + pop {r4, pc} +_0202E81E: + ldr r1, _0202E83C ; =0x021C59E8 + mov r0, #0x0 + ldr r4, [r1, #0x8] + ldr r1, _0202E840 ; =0x00000C84 + add r3, r0, #0x0 +_0202E828: + ldrh r2, [r4, r1] + cmp r2, #0x0 + beq _0202E830 + add r0, r0, #0x1 +_0202E830: + add r3, r3, #0x1 + add r4, r4, #0x2 + cmp r3, #0x10 + blt _0202E828 + pop {r4, pc} + nop +_0202E83C: .word 0x021C59E8 +_0202E840: .word 0x00000C84 + + thumb_func_start FUN_0202E844 +FUN_0202E844: ; 0x0202E844 + push {r3-r5, lr} + ldr r1, _0202E870 ; =0x021C59E8 + mov r4, #0x0 + ldr r5, [r1, #0x8] + ldr r1, _0202E874 ; =0x00000C84 + add r3, r4, #0x0 +_0202E850: + ldrh r2, [r5, r1] + cmp r2, #0x0 + beq _0202E860 + cmp r4, r0 + bne _0202E85E + add r0, r3, #0x0 + pop {r3-r5, pc} +_0202E85E: + add r4, r4, #0x1 +_0202E860: + add r3, r3, #0x1 + add r5, r5, #0x2 + cmp r3, #0x10 + blt _0202E850 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202E870: .word 0x021C59E8 +_0202E874: .word 0x00000C84 + + thumb_func_start FUN_0202E878 +FUN_0202E878: ; 0x0202E878 + ldr r0, _0202E884 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202E888 ; =0x00000CB4 + ldrb r0, [r1, r0] + bx lr + nop +_0202E884: .word 0x021C59E8 +_0202E888: .word 0x00000CB4 + + thumb_func_start FUN_0202E88C +FUN_0202E88C: ; 0x0202E88C + ldr r0, _0202E898 ; =0x021C59E8 + mov r2, #0x0 + ldr r1, [r0, #0x8] + ldr r0, _0202E89C ; =0x00000CB4 + strb r2, [r1, r0] + bx lr + .balign 4 +_0202E898: .word 0x021C59E8 +_0202E89C: .word 0x00000CB4 + + thumb_func_start FUN_0202E8A0 +FUN_0202E8A0: ; 0x0202E8A0 + ldr r1, _0202E8C8 ; =0x021C59E8 + ldr r3, [r1, #0x8] + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202E8CC ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E8C2 + mov r1, #0xc0 + mul r1, r0 + add r0, r3, r1 + add r0, #0xaa + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0202E8C4 + mov r0, #0x1 + bx lr +_0202E8C2: + mov r0, #0x0 +_0202E8C4: + bx lr + nop +_0202E8C8: .word 0x021C59E8 +_0202E8CC: .word 0x00000C84 + + thumb_func_start FUN_0202E8D0 +FUN_0202E8D0: ; 0x0202E8D0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r4, #0xf +_0202E8D6: + add r0, r4, #0x0 + bl FUN_0202E8A0 + cmp r0, r5 + ble _0202E8E8 + cmp r0, #0x8 + bge _0202E8E8 + add r0, r4, #0x0 + pop {r3-r5, pc} +_0202E8E8: + sub r4, r4, #0x1 + bpl _0202E8D6 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202E8F4 +FUN_0202E8F4: ; 0x0202E8F4 + push {r3-r7, lr} + bl FUN_0202E810 + cmp r0, #0x0 + bne _0202E904 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0202E904: + mov r5, #0x2d + ldr r7, _0202E948 ; =0x021C59E8 + mov r6, #0xf + mov r4, #0x1e + lsl r5, r5, #0x6 +_0202E90E: + ldr r0, [r7, #0x8] + ldr r1, _0202E94C ; =0x00000C84 + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E938 + add r0, #0x58 + add r0, r0, r5 + bl FUN_0202EFE4 + cmp r0, #0x0 + beq _0202E938 + add r0, r6, #0x0 + bl FUN_0202E8A0 + cmp r0, #0x1 + ble _0202E938 + cmp r0, #0x8 + bge _0202E938 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202E938: + sub r4, r4, #0x2 + sub r5, #0xc0 + sub r6, r6, #0x1 + bpl _0202E90E + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} + nop +_0202E948: .word 0x021C59E8 +_0202E94C: .word 0x00000C84 + + thumb_func_start FUN_0202E950 +FUN_0202E950: ; 0x0202E950 + push {r3-r7, lr} + bl FUN_0202E810 + cmp r0, #0x0 + bne _0202E960 + mov r0, #0x0 + mvn r0, r0 + pop {r3-r7, pc} +_0202E960: + mov r5, #0x2d + ldr r7, _0202E9A4 ; =0x021C59E8 + mov r6, #0xf + mov r4, #0x1e + lsl r5, r5, #0x6 +_0202E96A: + ldr r0, [r7, #0x8] + ldr r1, _0202E9A8 ; =0x00000C84 + add r2, r0, r4 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202E986 + add r0, #0x58 + add r0, r0, r5 + bl FUN_0202EFE4 + cmp r0, #0x0 + beq _0202E986 + add r0, r6, #0x0 + pop {r3-r7, pc} +_0202E986: + sub r4, r4, #0x2 + sub r5, #0xc0 + sub r6, r6, #0x1 + bpl _0202E96A + mov r0, #0x1 + bl FUN_0202E8D0 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _0202E9A2 + mov r0, #0x0 + bl FUN_0202E8D0 +_0202E9A2: + pop {r3-r7, pc} + .balign 4 +_0202E9A4: .word 0x021C59E8 +_0202E9A8: .word 0x00000C84 + + thumb_func_start FUN_0202E9AC +FUN_0202E9AC: ; 0x0202E9AC + push {r4-r6, lr} + add r4, r1, #0x0 + ldr r1, _0202E9E0 ; =0x021C59E8 + mov r5, #0x0 + ldr r6, [r1, #0x8] + ldr r1, _0202E9E4 ; =0x00000C84 + add r3, r5, #0x0 +_0202E9BA: + ldrh r2, [r6, r1] + cmp r2, #0x0 + beq _0202E9D4 + cmp r0, r5 + bne _0202E9D2 + add r0, r3, #0x0 + bl FUN_0202EF84 + add r1, r4, #0x0 + bl FUN_0202393C + pop {r4-r6, pc} +_0202E9D2: + add r5, r5, #0x1 +_0202E9D4: + add r3, r3, #0x1 + add r6, r6, #0x2 + cmp r3, #0x10 + blt _0202E9BA + pop {r4-r6, pc} + nop +_0202E9E0: .word 0x021C59E8 +_0202E9E4: .word 0x00000C84 + + thumb_func_start FUN_0202E9E8 +FUN_0202E9E8: ; 0x0202E9E8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0202CBD4 + cmp r0, #0x2 + bne _0202E9FC + bl FUN_0202C770 + mov r0, #0x0 + pop {r3-r5, pc} +_0202E9FC: + bl FUN_0202CBD4 + cmp r0, #0x1 + bne _0202EA48 + bl FUN_02033534 + mov r1, #0xc0 + add r4, r5, #0x0 + mul r4, r1 + ldr r1, _0202EA4C ; =0x021C59E8 + ldr r3, [r1, #0x8] + add r1, r3, r4 + add r1, #0x8a + ldrh r2, [r1, #0x0] + ldr r1, _0202EA50 ; =0x00000DA8 + strb r2, [r3, r1] + bl FUN_0202D8B0 + cmp r0, #0x0 + beq _0202EA36 + ldr r1, _0202EA4C ; =0x021C59E8 + mov r0, #0x1 + ldr r1, [r1, #0x8] + mov r2, #0x0 + add r1, #0x58 + add r1, r1, r4 + bl FUN_0202C4D8 + b _0202EA44 +_0202EA36: + ldr r1, _0202EA4C ; =0x021C59E8 + mov r0, #0x1 + ldr r1, [r1, #0x8] + add r1, #0x54 + add r1, r1, r4 + bl FUN_0202D034 +_0202EA44: + mov r0, #0x1 + pop {r3-r5, pc} +_0202EA48: + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_0202EA4C: .word 0x021C59E8 +_0202EA50: .word 0x00000DA8 + + thumb_func_start FUN_0202EA54 +FUN_0202EA54: ; 0x0202EA54 + push {r4-r7} + mov r4, #0x0 + ldr r1, _0202EA90 ; =0x021C59E8 + ldr r0, _0202EA94 ; =0x00000C84 + add r5, r4, #0x0 + mov r2, #0x1 +_0202EA60: + ldr r3, [r1, #0x8] + add r3, r3, r5 + ldrh r6, [r3, r0] + cmp r6, #0x0 + beq _0202EA84 + beq _0202EA84 + ldr r6, _0202EA94 ; =0x00000C84 + ldrh r6, [r3, r6] + sub r7, r6, #0x1 + ldr r6, _0202EA94 ; =0x00000C84 + strh r7, [r3, r6] + ldr r3, [r1, #0x8] + add r7, r3, r5 + ldrh r6, [r7, r6] + cmp r6, #0x0 + bne _0202EA84 + ldr r6, _0202EA98 ; =0x00000CB4 + strb r2, [r3, r6] +_0202EA84: + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x10 + blt _0202EA60 + pop {r4-r7} + bx lr + .balign 4 +_0202EA90: .word 0x021C59E8 +_0202EA94: .word 0x00000C84 +_0202EA98: .word 0x00000CB4 + + thumb_func_start FUN_0202EA9C +FUN_0202EA9C: ; 0x0202EA9C + push {r3-r5, lr} + bl FUN_02033534 + add r5, r0, #0x0 + bl FUN_0202EF70 + add r4, r0, #0x0 + cmp r5, #0xf + beq _0202EB24 + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r5, r1, r0 + bl FUN_02023AC4 + cmp r0, #0x20 + ble _0202EAC2 + bl ErrorHandling +_0202EAC2: + bl FUN_02023924 + cmp r0, #0x20 + beq _0202EACE + bl ErrorHandling +_0202EACE: + bl FUN_02023924 + add r1, r5, #0x0 + add r2, r0, #0x0 + add r0, r4, #0x0 + add r1, #0x10 + bl MI_CpuCopy8 + bl FUN_02023AC4 + add r2, r0, #0x0 + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB74 ; =0x00000CBC + ldr r0, [r1, r0] + add r1, r5, #0x0 + add r1, #0x30 + bl MI_CpuCopy8 + add r0, r4, #0x0 + bl FUN_020239BC + str r0, [r5, #0x0] + bl FUN_02033534 + strb r0, [r5, #0x4] + bl FUN_0203354C + strb r0, [r5, #0x5] + ldr r0, _0202EB6C ; =0x021C59E8 + mov r2, #0x8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB78 ; =0x00000CA8 + add r0, r1, r0 + add r1, r5, #0x0 + add r1, #0x8 + bl MI_CpuCopy8 + bl FUN_0202D358 + add r5, #0x54 + strb r0, [r5, #0x0] + b _0202EB4E +_0202EB24: + ldr r1, _0202EB6C ; =0x021C59E8 + ldr r4, [r1, #0x8] + ldr r1, _0202EB70 ; =0x00000CC4 + add r5, r4, r1 + bl FUN_020239BC + ldr r1, _0202EB70 ; =0x00000CC4 + str r0, [r4, r1] + bl FUN_02033534 + strb r0, [r5, #0x4] + bl FUN_0203354C + strb r0, [r5, #0x5] + ldr r0, _0202EB6C ; =0x021C59E8 + add r5, #0x8 + ldr r0, [r0, #0x8] + add r1, r5, #0x0 + mov r2, #0x54 + bl MI_CpuCopy8 +_0202EB4E: + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl DC_FlushRange + ldr r0, _0202EB6C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EB70 ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl FUN_0202CB7C + pop {r3-r5, pc} + .balign 4 +_0202EB6C: .word 0x021C59E8 +_0202EB70: .word 0x00000CC4 +_0202EB74: .word 0x00000CBC +_0202EB78: .word 0x00000CA8 + + thumb_func_start FUN_0202EB7C +FUN_0202EB7C: ; 0x0202EB7C + push {r4, lr} + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r4, r1, r0 + bl FUN_0202EDB8 + ldrb r1, [r4, #0x6] + cmp r1, r0 + beq _0202EBC6 + bl FUN_0202EDB8 + strb r0, [r4, #0x6] + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl DC_FlushRange + ldr r0, _0202EBC8 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EBCC ; =0x00000CC4 + add r0, r1, r0 + mov r1, #0x5c + bl FUN_0202CB7C + ldr r3, _0202EBC8 ; =0x021C59E8 + ldr r2, _0202EBCC ; =0x00000CC4 + ldr r4, [r3, #0x8] + ldrh r3, [r3, #0x0] + add r0, r4, r2 + sub r2, r2, #0x4 + ldr r2, [r4, r2] + mov r1, #0x5c + bl FUN_0202D240 +_0202EBC6: + pop {r4, pc} + .balign 4 +_0202EBC8: .word 0x021C59E8 +_0202EBCC: .word 0x00000CC4 + + thumb_func_start FUN_0202EBD0 +FUN_0202EBD0: ; 0x0202EBD0 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_0202CBD4 + add r5, r0, #0x0 + bl FUN_0202DF54 + bl FUN_0202EB7C + bl FUN_0202D19C + cmp r0, #0x0 + bne _0202EC0C + bl FUN_0202EE24 + cmp r0, #0x0 + bne _0202EC0C + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED54 ; =0x00000DAD + ldrb r1, [r2, r0] + lsl r3, r1, #0x1d + lsr r3, r3, #0x1f + beq _0202EC0C + mov r3, #0x1 + bic r1, r3 + mov r3, #0x1 + orr r1, r3 + strb r1, [r2, r0] +_0202EC0C: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r1, _0202ED58 ; =0x0000FFFF + ldr r3, [r0, #0x8] + ldr r0, _0202ED5C ; =0x00000DA6 + ldrh r2, [r3, r0] + cmp r2, r1 + bne _0202EC1C + strh r4, [r3, r0] +_0202EC1C: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED54 ; =0x00000DAD + ldrb r1, [r2, r0] + lsl r3, r1, #0x1e + lsr r3, r3, #0x1f + beq _0202EC3C + sub r3, r0, #0x7 + ldrh r3, [r2, r3] + cmp r3, r4 + bls _0202EC3C + mov r3, #0x1 + bic r1, r3 + mov r3, #0x1 + orr r1, r3 + strb r1, [r2, r0] +_0202EC3C: + bl FUN_0202CBE8 + cmp r0, #0x19 + bne _0202EC4A + mov r0, #0x0 + bl FUN_020335D0 +_0202EC4A: + cmp r5, #0x9 + bhi _0202ED4C + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0202EC5A: ; jump table (using 16-bit offset) + .short _0202EC6E - _0202EC5A - 2; case 0 + .short _0202EC8E - _0202EC5A - 2; case 1 + .short _0202ED4C - _0202EC5A - 2; case 2 + .short _0202ED4C - _0202EC5A - 2; case 3 + .short _0202ED4C - _0202EC5A - 2; case 4 + .short _0202ED4C - _0202EC5A - 2; case 5 + .short _0202ED4C - _0202EC5A - 2; case 6 + .short _0202ECD2 - _0202EC5A - 2; case 7 + .short _0202ECB8 - _0202EC5A - 2; case 8 + .short _0202ECB8 - _0202EC5A - 2; case 9 +_0202EC6E: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r2, [r0, #0x8] + ldr r0, _0202ED60 ; =0x00000DAA + ldrb r1, [r2, r0] + cmp r1, #0x1 + bne _0202EC82 + bl FUN_0202E7D8 + add sp, #0x8 + pop {r3-r5, pc} +_0202EC82: + cmp r1, #0x2 + bne _0202ED4C + mov r1, #0x3 + strb r1, [r2, r0] + add sp, #0x8 + pop {r3-r5, pc} +_0202EC8E: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202ED60 ; =0x00000DAA + ldrb r0, [r1, r0] + cmp r0, #0x1 + bne _0202ECA2 + bl FUN_0202D178 + cmp r0, #0x0 + bne _0202ED4C +_0202ECA2: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202ED60 ; =0x00000DAA + ldrb r0, [r1, r0] + cmp r0, #0x2 + bne _0202ED4C + bl FUN_0202D178 + add sp, #0x8 + cmp r0, #0x0 + pop {r3-r5, pc} +_0202ECB8: + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r3, [r0, #0x8] + cmp r3, #0x0 + beq _0202ED4C + ldr r1, _0202ED54 ; =0x00000DAD + mov r0, #0x1 + ldrb r2, [r3, r1] + add sp, #0x8 + bic r2, r0 + mov r0, #0x1 + orr r0, r2 + strb r0, [r3, r1] + pop {r3-r5, pc} +_0202ECD2: + bl FUN_0202CDA4 + ldr r3, _0202ED50 ; =0x021C59E8 + ldr r2, _0202ED64 ; =0x00000DA9 + ldr r4, [r3, #0x8] + ldrb r1, [r4, r2] + cmp r1, #0x0 + bne _0202ECEE + sub r1, r2, #0x5 + strh r0, [r4, r1] + ldr r0, [r3, #0x8] + mov r1, #0x5 + strb r1, [r0, r2] + b _0202ECF2 +_0202ECEE: + sub r0, r1, #0x1 + strb r0, [r4, r2] +_0202ECF2: + ldr r1, _0202ED50 ; =0x021C59E8 + ldr r0, _0202ED68 ; =0x00000DA4 + ldr r2, [r1, #0x8] + ldrh r5, [r2, r0] + add r0, #0x9 + ldrb r0, [r2, r0] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + beq _0202ED0A + ldrh r0, [r1, #0x0] + add r0, r0, #0x1 + strh r0, [r1, #0x0] +_0202ED0A: + bl FUN_0202EA9C + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r4, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202EEE8 + str r0, [sp, #0x0] + ldr r1, _0202ED50 ; =0x021C59E8 + ldr r0, _0202ED54 ; =0x00000DAD + ldr r2, [r1, #0x8] + add r3, r4, #0x0 + ldrb r0, [r2, r0] + add r2, r5, #0x0 + lsl r0, r0, #0x1a + lsr r0, r0, #0x1f + str r0, [sp, #0x4] + ldrh r1, [r1, #0x0] + mov r0, #0x0 + bl FUN_0202CF84 + ldr r0, _0202ED50 ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202ED6C ; =0x00000DA8 + strb r5, [r1, r0] +_0202ED4C: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_0202ED50: .word 0x021C59E8 +_0202ED54: .word 0x00000DAD +_0202ED58: .word 0x0000FFFF +_0202ED5C: .word 0x00000DA6 +_0202ED60: .word 0x00000DAA +_0202ED64: .word 0x00000DA9 +_0202ED68: .word 0x00000DA4 +_0202ED6C: .word 0x00000DA8 + + thumb_func_start FUN_0202ED70 +FUN_0202ED70: ; 0x0202ED70 + push {r3, lr} + ldr r1, _0202ED80 ; =0x021C59E8 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + beq _0202ED7E + bl FUN_0202EBD0 +_0202ED7E: + pop {r3, pc} + .balign 4 +_0202ED80: .word 0x021C59E8 + + thumb_func_start FUN_0202ED84 +FUN_0202ED84: ; 0x0202ED84 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0202EDB4 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _0202ED94 + mov r0, #0x0 + pop {r4, pc} +_0202ED94: + bl FUN_0202CBD4 + cmp r0, #0x4 + beq _0202EDA0 + mov r0, #0x0 + pop {r4, pc} +_0202EDA0: + bl FUN_0202CB8C + mov r2, #0x1 + add r1, r2, #0x0 + lsl r1, r4 + tst r0, r1 + bne _0202EDB0 + mov r2, #0x0 +_0202EDB0: + add r0, r2, #0x0 + pop {r4, pc} + .balign 4 +_0202EDB4: .word 0x021C59E8 + + thumb_func_start FUN_0202EDB8 +FUN_0202EDB8: ; 0x0202EDB8 + push {r3-r5, lr} + mov r4, #0x0 + add r5, r4, #0x0 +_0202EDBE: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202ED84 + cmp r0, #0x0 + beq _0202EDCC + add r4, r4, #0x1 +_0202EDCC: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202EDBE + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202EDD8 +FUN_0202EDD8: ; 0x0202EDD8 + ldr r0, _0202EDF0 ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202EDEC + ldr r0, _0202EDF4 ; =0x00000DAA + ldrb r0, [r1, r0] + cmp r0, #0x3 + bne _0202EDEC + mov r0, #0x1 + bx lr +_0202EDEC: + mov r0, #0x0 + bx lr + .balign 4 +_0202EDF0: .word 0x021C59E8 +_0202EDF4: .word 0x00000DAA + + thumb_func_start FUN_0202EDF8 +FUN_0202EDF8: ; 0x0202EDF8 + ldr r0, _0202EE08 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE04 + mov r0, #0x1 + bx lr +_0202EE04: + mov r0, #0x0 + bx lr + .balign 4 +_0202EE08: .word 0x021C59E8 + + thumb_func_start FUN_0202EE0C +FUN_0202EE0C: ; 0x0202EE0C + push {r3, lr} + ldr r0, _0202EE20 ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE1C + bl FUN_0202D1C8 + pop {r3, pc} +_0202EE1C: + mov r0, #0x1 + pop {r3, pc} + .balign 4 +_0202EE20: .word 0x021C59E8 + + thumb_func_start FUN_0202EE24 +FUN_0202EE24: ; 0x0202EE24 + push {r3, lr} + ldr r0, _0202EE3C ; =0x021C59E8 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EE38 + bl FUN_0202CB8C + ldr r1, _0202EE40 ; =0x0000FFFE + and r0, r1 + pop {r3, pc} +_0202EE38: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_0202EE3C: .word 0x021C59E8 +_0202EE40: .word 0x0000FFFE + + thumb_func_start FUN_0202EE44 +FUN_0202EE44: ; 0x0202EE44 + push {r3, lr} + bl FUN_0202EE60 + cmp r0, #0x0 + beq _0202EE5A + bl FUN_0202CBE8 + cmp r0, #0x14 + bne _0202EE5A + mov r0, #0x1 + pop {r3, pc} +_0202EE5A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202EE60 +FUN_0202EE60: ; 0x0202EE60 + ldr r0, _0202EE7C ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202EE76 + ldr r0, _0202EE80 ; =0x00000DAD + ldrb r0, [r1, r0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _0202EE76 + mov r0, #0x1 + bx lr +_0202EE76: + mov r0, #0x0 + bx lr + nop +_0202EE7C: .word 0x021C59E8 +_0202EE80: .word 0x00000DAD + + thumb_func_start FUN_0202EE84 +FUN_0202EE84: ; 0x0202EE84 + push {r3-r4} + ldr r1, _0202EEA8 ; =0x021C59E8 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0202EEA2 + ldr r4, _0202EEAC ; =0x00000DAD + lsl r0, r0, #0x18 + ldrb r1, [r2, r4] + lsr r0, r0, #0x18 + mov r3, #0x4 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1d + orr r0, r1 + strb r0, [r2, r4] +_0202EEA2: + pop {r3-r4} + bx lr + nop +_0202EEA8: .word 0x021C59E8 +_0202EEAC: .word 0x00000DAD + + thumb_func_start FUN_0202EEB0 +FUN_0202EEB0: ; 0x0202EEB0 + push {r4-r5} + ldr r5, _0202EEDC ; =0x021C59E8 + ldr r2, [r5, #0x8] + cmp r2, #0x0 + beq _0202EED6 + ldr r4, _0202EEE0 ; =0x00000DAD + lsl r0, r0, #0x18 + ldrb r1, [r2, r4] + lsr r0, r0, #0x18 + mov r3, #0x2 + lsl r0, r0, #0x1f + bic r1, r3 + lsr r0, r0, #0x1e + orr r0, r1 + strb r0, [r2, r4] + ldr r2, _0202EEE4 ; =0x0000FFFF + ldr r1, [r5, #0x8] + sub r0, r4, #0x7 + strh r2, [r1, r0] +_0202EED6: + pop {r4-r5} + bx lr + nop +_0202EEDC: .word 0x021C59E8 +_0202EEE0: .word 0x00000DAD +_0202EEE4: .word 0x0000FFFF + + thumb_func_start FUN_0202EEE8 +FUN_0202EEE8: ; 0x0202EEE8 + push {r3-r5, lr} + add r5, r0, #0x0 + bl WM_GetDispersionBeaconPeriod + add r4, r0, #0x0 + cmp r5, #0x1a + blo _0202EEFA + bl ErrorHandling +_0202EEFA: + cmp r5, #0xa + bne _0202EF04 + lsl r0, r4, #0xe + lsr r0, r0, #0x10 + pop {r3-r5, pc} +_0202EF04: + cmp r5, #0x9 + beq _0202EF0C + cmp r5, #0xd + bne _0202EF12 +_0202EF0C: + lsl r0, r4, #0xe + lsr r0, r0, #0x10 + pop {r3-r5, pc} +_0202EF12: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0202EF18 +FUN_0202EF18: ; 0x0202EF18 + ldr r1, _0202EF3C ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202EF36 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EF40 ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202EF36 + mov r1, #0xc0 + add r3, #0x54 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202EF36: + mov r0, #0x0 + bx lr + nop +_0202EF3C: .word 0x021C59E8 +_0202EF40: .word 0x00000C84 + + thumb_func_start FUN_0202EF44 +FUN_0202EF44: ; 0x0202EF44 + ldr r1, _0202EF68 ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202EF62 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EF6C ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202EF62 + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + bx lr +_0202EF62: + mov r0, #0x0 + bx lr + nop +_0202EF68: .word 0x021C59E8 +_0202EF6C: .word 0x00000C84 + + thumb_func_start FUN_0202EF70 +FUN_0202EF70: ; 0x0202EF70 + ldr r0, _0202EF7C ; =0x021C59E8 + ldr r1, [r0, #0x8] + ldr r0, _0202EF80 ; =0x00000CB8 + ldr r0, [r1, r0] + bx lr + nop +_0202EF7C: .word 0x021C59E8 +_0202EF80: .word 0x00000CB8 + + thumb_func_start FUN_0202EF84 +FUN_0202EF84: ; 0x0202EF84 + ldr r1, _0202EFA4 ; =0x021C59E8 + ldr r3, [r1, #0x8] + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202EFA8 ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + bne _0202EF98 + mov r0, #0x0 + bx lr +_0202EF98: + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + add r0, #0x10 + bx lr + .balign 4 +_0202EFA4: .word 0x021C59E8 +_0202EFA8: .word 0x00000C84 + + thumb_func_start FUN_0202EFAC +FUN_0202EFAC: ; 0x0202EFAC + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0202EFDC ; =0x021C59E8 + add r4, r1, #0x0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0202EFD8 + cmp r4, #0x8 + blt _0202EFC2 + bl ErrorHandling +_0202EFC2: + ldr r1, _0202EFDC ; =0x021C59E8 + add r0, r5, #0x0 + ldr r2, [r1, #0x8] + ldr r1, _0202EFE0 ; =0x00000C54 + add r3, r2, r1 + mov r2, #0x6 + add r1, r4, #0x0 + mul r1, r2 + add r1, r3, r1 + bl MI_CpuCopy8 +_0202EFD8: + pop {r3-r5, pc} + nop +_0202EFDC: .word 0x021C59E8 +_0202EFE0: .word 0x00000C54 + + thumb_func_start FUN_0202EFE4 +FUN_0202EFE4: ; 0x0202EFE4 + push {r4-r5} + ldr r2, _0202F034 ; =0x021C59E8 + mov r1, #0x0 + ldr r3, [r2, #0x8] + ldr r2, _0202F038 ; =0x00000C54 + add r2, r3, r2 + ldrb r3, [r0, #0x0] +_0202EFF2: + ldrb r4, [r2, #0x0] + cmp r4, r3 + bne _0202F026 + ldrb r5, [r2, #0x1] + ldrb r4, [r0, #0x1] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x2] + ldrb r4, [r0, #0x2] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x3] + ldrb r4, [r0, #0x3] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x4] + ldrb r4, [r0, #0x4] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x5] + ldrb r4, [r0, #0x5] + cmp r5, r4 + bne _0202F026 + mov r0, #0x1 + pop {r4-r5} + bx lr +_0202F026: + add r1, r1, #0x1 + add r2, r2, #0x6 + cmp r1, #0x8 + blt _0202EFF2 + mov r0, #0x0 + pop {r4-r5} + bx lr + .balign 4 +_0202F034: .word 0x021C59E8 +_0202F038: .word 0x00000C54 + + thumb_func_start FUN_0202F03C +FUN_0202F03C: ; 0x0202F03C + ldr r0, _0202F054 ; =0x021C59E8 + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _0202F04E + ldr r0, _0202F058 ; =0x00000DAD + ldrb r0, [r1, r0] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + bx lr +_0202F04E: + mov r0, #0x0 + bx lr + nop +_0202F054: .word 0x021C59E8 +_0202F058: .word 0x00000DAD + + thumb_func_start FUN_0202F05C +FUN_0202F05C: ; 0x0202F05C + ldr r0, _0202F070 ; =0x021C59E8 + ldr r3, [r0, #0x8] + cmp r3, #0x0 + beq _0202F06E + ldr r1, _0202F074 ; =0x00000DAD + mov r0, #0x10 + ldrb r2, [r3, r1] + orr r0, r2 + strb r0, [r3, r1] +_0202F06E: + bx lr + .balign 4 +_0202F070: .word 0x021C59E8 +_0202F074: .word 0x00000DAD + + thumb_func_start FUN_0202F078 +FUN_0202F078: ; 0x0202F078 + ldr r1, _0202F088 ; =0x021C59E8 + ldr r3, _0202F08C ; =MI_CpuCopy8 + ldr r2, [r1, #0x8] + ldr r1, _0202F090 ; =0x00000CA8 + add r1, r2, r1 + mov r2, #0x8 + bx r3 + nop +_0202F088: .word 0x021C59E8 +_0202F08C: .word MI_CpuCopy8 +_0202F090: .word 0x00000CA8 + + thumb_func_start FUN_0202F094 +FUN_0202F094: ; 0x0202F094 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02023AC4 + ldr r1, _0202F0B0 ; =0x021C59E8 + add r2, r0, #0x0 + ldr r3, [r1, #0x8] + ldr r1, _0202F0B4 ; =0x00000CBC + add r0, r4, #0x0 + ldr r1, [r3, r1] + bl MI_CpuCopy8 + pop {r4, pc} + nop +_0202F0B0: .word 0x021C59E8 +_0202F0B4: .word 0x00000CBC + + thumb_func_start FUN_0202F0B8 +FUN_0202F0B8: ; 0x0202F0B8 + push {r4, lr} + bl FUN_0202EA9C + ldr r3, _0202F0D4 ; =0x021C59E8 + ldr r2, _0202F0D8 ; =0x00000CC4 + ldr r4, [r3, #0x8] + ldrh r3, [r3, #0x0] + add r0, r4, r2 + sub r2, r2, #0x4 + ldr r2, [r4, r2] + mov r1, #0x5c + bl FUN_0202D240 + pop {r4, pc} + .balign 4 +_0202F0D4: .word 0x021C59E8 +_0202F0D8: .word 0x00000CC4 + + thumb_func_start FUN_0202F0DC +FUN_0202F0DC: ; 0x0202F0DC + push {r4-r6, lr} + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 +_0202F0E4: + add r0, r4, #0x0 + bl FUN_0202EF44 + cmp r0, #0x0 + beq _0202F0F8 + ldrb r1, [r0, #0x4] + cmp r1, r6 + bne _0202F0F8 + ldrb r0, [r0, #0x6] + add r5, r5, r0 +_0202F0F8: + add r4, r4, #0x1 + cmp r4, #0x10 + blt _0202F0E4 + add r0, r5, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0202F104 +FUN_0202F104: ; 0x0202F104 + ldr r3, _0202F108 ; =FUN_0202D2D0 + bx r3 + .balign 4 +_0202F108: .word FUN_0202D2D0 + + thumb_func_start FUN_0202F10C +FUN_0202F10C: ; 0x0202F10C + push {r3, lr} + ldr r1, _0202F120 ; =0x021C59E8 + mov r2, #0x54 + ldr r1, [r1, #0x8] + bl MI_CpuCopy8 + bl FUN_0202F0B8 + pop {r3, pc} + nop +_0202F120: .word 0x021C59E8 + + thumb_func_start FUN_0202F124 +FUN_0202F124: ; 0x0202F124 + ldr r1, _0202F148 ; =0x021C59E8 + ldr r3, [r1, #0x8] + cmp r3, #0x0 + beq _0202F144 + lsl r1, r0, #0x1 + add r2, r3, r1 + ldr r1, _0202F14C ; =0x00000C84 + ldrh r1, [r2, r1] + cmp r1, #0x0 + beq _0202F144 + mov r1, #0xc0 + add r3, #0xa4 + mul r1, r0 + add r0, r3, r1 + add r0, #0x8 + bx lr +_0202F144: + mov r0, #0x0 + bx lr + .balign 4 +_0202F148: .word 0x021C59E8 +_0202F14C: .word 0x00000C84 + + thumb_func_start FUN_0202F150 +FUN_0202F150: ; 0x0202F150 + push {r4-r6, lr} + add r6, r1, #0x0 + mov r4, #0x0 + ldr r1, _0202F2BC ; =0x021C59F4 + cmp r0, #0x0 + strb r4, [r1, #0x0] + beq _0202F25C + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r5, r0, #0x1 + ldr r0, _0202F2BC ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202F178 + mov r0, #0x1 + pop {r4-r6, pc} +_0202F178: + mov r0, #0xf + bl FUN_02031480 + ldr r1, _0202F2C0 ; =0x0000068C + mov r0, #0xf + bl FUN_02016998 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, _0202F2C0 ; =0x0000068C + str r0, [r1, #0x4] + add r1, r4, #0x0 + bl MI_CpuFill8 + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2C4 ; =0x00000658 + ldr r0, [r2, #0x4] + add r6, #0x40 + str r6, [r0, r1] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + add r6, r4, #0x0 + add r0, #0x25 + strb r6, [r3, r0] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + mov r6, #0x1b + add r0, #0x26 + strb r6, [r3, r0] + ldr r2, [r2, #0x4] + mov r0, #0xf + ldr r1, [r2, r1] + lsl r1, r1, #0x1 + bl FUN_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2C8 ; =0x0000045C + ldr r3, [r2, #0x4] + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + bl FUN_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + mov r1, #0x46 + ldr r3, [r2, #0x4] + lsl r1, r1, #0x4 + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + mul r1, r5 + bl FUN_02016998 + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2CC ; =0x00000458 + ldr r3, [r2, #0x4] + str r0, [r3, r1] + ldr r2, [r2, #0x4] + ldr r1, _0202F2C4 ; =0x00000658 + mov r0, #0xf + ldr r1, [r2, r1] + mul r1, r5 + bl FUN_02016998 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _0202F2D0 ; =0x00000454 + str r0, [r2, r1] + bl FUN_02033534 + cmp r0, #0xa + ldr r2, _0202F2D4 ; =0x0000054C + bne _0202F236 + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x64 + ldr r3, [r0, #0x4] + add r0, r3, r2 + sub r2, #0xe8 + add r2, r3, r2 + bl FUN_0202D7D8 + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x32 + ldr r3, [r0, #0x4] + ldr r2, _0202F2D8 ; =0x0000056C + lsl r1, r1, #0x4 + add r0, r3, r2 + sub r2, #0x90 + add r2, r3, r2 + bl FUN_0202D7D8 + b _0202F268 +_0202F236: + ldr r0, _0202F2BC ; =0x021C59F4 + mov r1, #0x14 + ldr r3, [r0, #0x4] + add r0, r3, r2 + sub r2, #0xe8 + add r2, r3, r2 + bl FUN_0202D7D8 + ldr r0, _0202F2BC ; =0x021C59F4 + add r1, r6, #0x0 + ldr r3, [r0, #0x4] + ldr r2, _0202F2D8 ; =0x0000056C + add r1, #0xfd + add r0, r3, r2 + sub r2, #0x90 + add r2, r3, r2 + bl FUN_0202D7D8 + b _0202F268 +_0202F25C: + ldr r0, [r1, #0x4] + mov r4, #0x1 + cmp r0, #0x0 + bne _0202F268 + bl ErrorHandling +_0202F268: + ldr r2, _0202F2BC ; =0x021C59F4 + ldr r1, _0202F2DC ; =0x0000065C + ldr r3, [r2, #0x4] + mov r0, #0x0 + strh r0, [r3, r1] + mov r5, #0xff + add r1, #0x1b +_0202F276: + ldr r3, [r2, #0x4] + add r3, r3, r0 + add r0, r0, #0x1 + strb r5, [r3, r1] + cmp r0, #0x4 + blt _0202F276 + cmp r4, #0x0 + bne _0202F28A + bl FUN_0202F2F0 +_0202F28A: + ldr r0, _0202F2BC ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F2E0 ; =0x000005F8 + add r0, r1, r0 + bl FUN_020312BC + cmp r4, #0x0 + bne _0202F2AC + mov r1, #0x0 + ldr r0, _0202F2E4 ; =FUN_0202FB20 + add r2, r1, #0x0 + bl FUN_0200CA60 + ldr r1, _0202F2BC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _0202F2E8 ; =0x00000548 + str r0, [r2, r1] +_0202F2AC: + ldr r0, _0202F2BC ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F2EC ; =0x00000687 + strb r2, [r1, r0] + mov r0, #0x1 + pop {r4-r6, pc} + nop +_0202F2BC: .word 0x021C59F4 +_0202F2C0: .word 0x0000068C +_0202F2C4: .word 0x00000658 +_0202F2C8: .word 0x0000045C +_0202F2CC: .word 0x00000458 +_0202F2D0: .word 0x00000454 +_0202F2D4: .word 0x0000054C +_0202F2D8: .word 0x0000056C +_0202F2DC: .word 0x0000065C +_0202F2E0: .word 0x000005F8 +_0202F2E4: .word FUN_0202FB20 +_0202F2E8: .word 0x00000548 +_0202F2EC: .word 0x00000687 + + thumb_func_start FUN_0202F2F0 +FUN_0202F2F0: ; 0x0202F2F0 + push {r3-r7, lr} + ldr r3, _0202F54C ; =0x021C59F4 + ldr r2, _0202F550 ; =0x0000062C + ldr r1, [r3, #0x4] + mov r0, #0x0 + strb r0, [r1, r2] + ldr r4, [r3, #0x4] + add r1, r2, #0x1 + strb r0, [r4, r1] + add r1, r2, #0x0 + ldr r4, [r3, #0x4] + add r1, #0x53 + strb r0, [r4, r1] + ldr r1, [r3, #0x4] + add r2, #0x54 + strb r0, [r1, r2] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r6, r0, #0x1 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F558 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + bl MI_CpuFill8 + mov r4, #0x0 + cmp r6, #0x0 + ble _0202F360 + ldr r7, _0202F54C ; =0x021C59F4 + add r5, r4, #0x0 +_0202F33E: + ldr r3, [r7, #0x4] + ldr r0, _0202F554 ; =0x00000658 + ldr r1, _0202F558 ; =0x00000458 + ldr r2, [r3, r0] + ldr r0, _0202F55C ; =0x000004E8 + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r4, #0x0 + mul r1, r2 + add r0, r0, r5 + add r1, r3, r1 + bl FUN_0202D394 + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r6 + blt _0202F33E +_0202F360: + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F560 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + bl MI_CpuFill8 + mov r5, #0x0 + cmp r6, #0x0 + ble _0202F3A2 + ldr r7, _0202F54C ; =0x021C59F4 + add r4, r5, #0x0 +_0202F380: + ldr r3, [r7, #0x4] + ldr r0, _0202F554 ; =0x00000658 + ldr r1, _0202F560 ; =0x00000454 + ldr r2, [r3, r0] + ldr r0, _0202F564 ; =0x0000047C + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl FUN_0202D394 + add r5, r5, #0x1 + add r4, #0xc + cmp r5, r6 + blt _0202F380 +_0202F3A2: + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x6 + ldr r1, [r0, #0x4] + mov r0, #0xb5 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x0 + lsl r2, r2, #0x6 + bl MI_CpuFill8 + ldr r0, _0202F54C ; =0x021C59F4 + mov r1, #0xb5 + ldr r2, [r0, #0x4] + ldr r0, _0202F568 ; =0x000004DC + lsl r1, r1, #0x2 + add r0, r2, r0 + add r1, r2, r1 + mov r2, #0x6 + lsl r2, r2, #0x6 + bl FUN_0202D394 + mov r0, #0xee + add r2, r0, #0x0 + mov r3, #0x85 + ldr r4, _0202F54C ; =0x021C59F4 + mov r1, #0x0 + add r2, #0x66 + lsl r3, r3, #0x2 +_0202F3DA: + ldr r5, [r4, #0x4] + add r5, r5, r1 + strb r0, [r5, r2] + ldr r5, [r4, #0x4] + add r5, r5, r1 + add r1, r1, #0x1 + strb r0, [r5, r3] + cmp r1, #0xc0 + blt _0202F3DA + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x42 + ldr r0, [r0, #0x4] + mov r1, #0x0 + add r0, #0x4c + lsl r2, r2, #0x2 + bl MI_CpuFill8 + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x42 + ldr r1, [r0, #0x4] + ldr r0, _0202F56C ; =0x00000464 + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, #0x4c + bl FUN_0202D394 + ldr r1, _0202F54C ; =0x021C59F4 + mov r2, #0xff + ldr r0, [r1, #0x4] + mov r3, #0x1 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x26 + strb r2, [r0, #0x0] + mov r2, #0xee +_0202F420: + ldr r0, [r1, #0x4] + strb r2, [r0, r3] + ldr r0, [r1, #0x4] + add r0, r0, r3 + add r0, #0x26 + add r3, r3, #0x1 + strb r2, [r0, #0x0] + cmp r3, #0x26 + blt _0202F420 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r2, _0202F554 ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F570 ; =0x0000045C + ldr r2, [r3, r2] + ldr r0, [r3, r0] + mov r1, #0x0 + lsl r2, r2, #0x1 + bl MI_CpuFill8 + ldr r0, _0202F54C ; =0x021C59F4 + mov r1, #0x47 + ldr r3, [r0, #0x4] + ldr r2, _0202F554 ; =0x00000658 + lsl r1, r1, #0x4 + add r0, r3, r1 + sub r1, #0x14 + ldr r2, [r3, r2] + ldr r1, [r3, r1] + lsl r2, r2, #0x1 + bl FUN_0202D394 + mov r2, #0x0 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r1, _0202F574 ; =0x00000684 + ldr r3, [r0, #0x4] + mov r12, r2 + strb r2, [r3, r1] + ldr r3, [r0, #0x4] + add r1, r1, #0x1 + strb r2, [r3, r1] + add r1, r2, #0x0 + add r7, r2, #0x0 + add r6, r2, #0x0 +_0202F476: + ldr r3, [r0, #0x4] + add r4, r3, r2 + ldr r3, _0202F578 ; =0x0000065F + strb r6, [r4, r3] + ldr r3, [r0, #0x4] + ldr r4, _0202F57C ; =0x00000667 + add r5, r3, r2 + mov r3, #0x1 + strb r3, [r5, r4] + ldr r3, [r0, #0x4] + add r4, #0x8 + add r5, r3, r2 + mov r3, #0x1 + strb r3, [r5, r4] + ldr r4, [r0, #0x4] + mov r3, r12 + add r4, r4, r3 + mov r3, #0x61 + lsl r3, r3, #0x4 + strh r6, [r4, r3] + ldr r3, [r0, #0x4] + mov r4, #0xee + add r5, r3, r1 + ldr r3, _0202F580 ; =0x00000596 + add r2, r2, #0x1 + strb r4, [r5, r3] + ldr r3, [r0, #0x4] + ldr r4, _0202F584 ; =0x0000FFFF + add r5, r3, r1 + ldr r3, _0202F588 ; =0x00000594 + strh r4, [r5, r3] + ldr r3, [r0, #0x4] + add r4, r3, r1 + mov r3, #0x59 + lsl r3, r3, #0x4 + str r6, [r4, r3] + ldr r3, [r0, #0x4] + add r4, r3, r1 + ldr r3, _0202F58C ; =0x0000058C + add r1, #0xc + str r6, [r4, r3] + ldr r3, [r0, #0x4] + add r4, r3, r7 + ldr r3, _0202F590 ; =0x00000638 + add r7, r7, #0x4 + str r6, [r4, r3] + mov r3, r12 + add r3, r3, #0x2 + mov r12, r3 + cmp r2, #0x8 + blt _0202F476 + ldr r1, _0202F54C ; =0x021C59F4 + ldr r0, _0202F594 ; =0x00000634 + ldr r2, [r1, #0x4] + sub r3, r0, #0x4 + str r6, [r2, r0] + ldr r4, [r1, #0x4] + mov r2, #0x1 + str r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + sub r3, #0x3e + mov r2, #0xee + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + ldr r2, _0202F584 ; =0x0000FFFF + sub r3, #0x40 + strh r2, [r4, r3] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x44 + str r6, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x48 + str r6, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x4e + mov r2, #0x1 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x4f + strb r2, [r4, r3] + ldr r2, _0202F598 ; =0x02105D58 + mov r3, #0x4 + strb r3, [r2, #0x1] + strb r3, [r2, #0x0] + ldr r1, [r1, #0x4] + sub r0, #0xe8 + add r0, r1, r0 + bl FUN_0202D804 + ldr r0, _0202F54C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F59C ; =0x0000056C + add r0, r1, r0 + bl FUN_0202D804 + ldr r0, _0202F54C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F5A0 ; =0x00000688 + strb r2, [r1, r0] + pop {r3-r7, pc} + .balign 4 +_0202F54C: .word 0x021C59F4 +_0202F550: .word 0x0000062C +_0202F554: .word 0x00000658 +_0202F558: .word 0x00000458 +_0202F55C: .word 0x000004E8 +_0202F560: .word 0x00000454 +_0202F564: .word 0x0000047C +_0202F568: .word 0x000004DC +_0202F56C: .word 0x00000464 +_0202F570: .word 0x0000045C +_0202F574: .word 0x00000684 +_0202F578: .word 0x0000065F +_0202F57C: .word 0x00000667 +_0202F580: .word 0x00000596 +_0202F584: .word 0x0000FFFF +_0202F588: .word 0x00000594 +_0202F58C: .word 0x0000058C +_0202F590: .word 0x00000638 +_0202F594: .word 0x00000634 +_0202F598: .word 0x02105D58 +_0202F59C: .word 0x0000056C +_0202F5A0: .word 0x00000688 + + thumb_func_start FUN_0202F5A4 +FUN_0202F5A4: ; 0x0202F5A4 + push {r3-r7, lr} + ldr r1, _0202F7D4 ; =0x021C59F4 + ldr r0, _0202F7D8 ; =0x0000062C + ldr r2, [r1, #0x4] + mov r3, #0x0 + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + add r0, r0, #0x1 + strb r3, [r1, r0] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r6, r0, #0x1 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7E0 ; =0x00000458 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + bl MI_CpuFill8 + mov r4, #0x0 + cmp r6, #0x0 + ble _0202F606 + ldr r7, _0202F7D4 ; =0x021C59F4 + add r5, r4, #0x0 +_0202F5E4: + ldr r3, [r7, #0x4] + ldr r0, _0202F7DC ; =0x00000658 + ldr r1, _0202F7E0 ; =0x00000458 + ldr r2, [r3, r0] + ldr r0, _0202F7E4 ; =0x000004E8 + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r4, #0x0 + mul r1, r2 + add r0, r0, r5 + add r1, r3, r1 + bl FUN_0202D394 + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r6 + blt _0202F5E4 +_0202F606: + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7E8 ; =0x00000454 + mov r1, #0x0 + ldr r0, [r3, r0] + ldr r3, [r3, r2] + add r2, r3, #0x0 + mul r2, r6 + bl MI_CpuFill8 + mov r5, #0x0 + cmp r6, #0x0 + ble _0202F648 + ldr r7, _0202F7D4 ; =0x021C59F4 + add r4, r5, #0x0 +_0202F626: + ldr r3, [r7, #0x4] + ldr r0, _0202F7DC ; =0x00000658 + ldr r1, _0202F7E8 ; =0x00000454 + ldr r2, [r3, r0] + ldr r0, _0202F7EC ; =0x0000047C + add r0, r3, r0 + ldr r3, [r3, r1] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl FUN_0202D394 + add r5, r5, #0x1 + add r4, #0xc + cmp r5, r6 + blt _0202F626 +_0202F648: + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x6 + ldr r1, [r0, #0x4] + mov r0, #0xb5 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x0 + lsl r2, r2, #0x6 + bl MI_CpuFill8 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r1, #0xb5 + ldr r2, [r0, #0x4] + ldr r0, _0202F7F0 ; =0x000004DC + lsl r1, r1, #0x2 + add r0, r2, r0 + add r1, r2, r1 + mov r2, #0x6 + lsl r2, r2, #0x6 + bl FUN_0202D394 + mov r0, #0xee + add r2, r0, #0x0 + mov r3, #0x85 + ldr r4, _0202F7D4 ; =0x021C59F4 + mov r1, #0x0 + add r2, #0x66 + lsl r3, r3, #0x2 +_0202F680: + ldr r5, [r4, #0x4] + add r5, r5, r1 + strb r0, [r5, r2] + ldr r5, [r4, #0x4] + add r5, r5, r1 + add r1, r1, #0x1 + strb r0, [r5, r3] + cmp r1, #0xc0 + blt _0202F680 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x42 + ldr r0, [r0, #0x4] + mov r1, #0x0 + add r0, #0x4c + lsl r2, r2, #0x2 + bl MI_CpuFill8 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x42 + ldr r1, [r0, #0x4] + ldr r0, _0202F7F4 ; =0x00000464 + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, #0x4c + bl FUN_0202D394 + ldr r1, _0202F7D4 ; =0x021C59F4 + mov r2, #0xff + ldr r0, [r1, #0x4] + mov r3, #0x1 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x4] + add r0, #0x26 + strb r2, [r0, #0x0] + mov r2, #0xee +_0202F6C6: + ldr r0, [r1, #0x4] + strb r2, [r0, r3] + ldr r0, [r1, #0x4] + add r0, r0, r3 + add r0, #0x26 + add r3, r3, #0x1 + strb r2, [r0, #0x0] + cmp r3, #0x26 + blt _0202F6C6 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r2, _0202F7DC ; =0x00000658 + ldr r3, [r0, #0x4] + ldr r0, _0202F7F8 ; =0x0000045C + ldr r2, [r3, r2] + ldr r0, [r3, r0] + mov r1, #0x0 + lsl r2, r2, #0x1 + bl MI_CpuFill8 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r1, #0x47 + ldr r3, [r0, #0x4] + ldr r2, _0202F7DC ; =0x00000658 + lsl r1, r1, #0x4 + add r0, r3, r1 + sub r1, #0x14 + ldr r2, [r3, r2] + ldr r1, [r3, r1] + lsl r2, r2, #0x1 + bl FUN_0202D394 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r3, #0x0 + ldr r2, [r0, #0x4] + ldr r1, _0202F7FC ; =0x00000684 + add r7, r3, #0x0 + strb r3, [r2, r1] + ldr r2, [r0, #0x4] + add r1, r1, #0x1 + strb r3, [r2, r1] + add r1, r3, #0x0 + add r2, r3, #0x0 +_0202F71A: + ldr r4, [r0, #0x4] + add r5, r4, r3 + ldr r4, _0202F800 ; =0x0000065F + strb r7, [r5, r4] + ldr r4, [r0, #0x4] + ldr r5, _0202F804 ; =0x00000667 + add r6, r4, r3 + mov r4, #0x1 + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + add r5, #0x8 + add r6, r4, r3 + mov r4, #0x1 + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + add r3, r3, #0x1 + add r5, r4, r1 + mov r4, #0x61 + lsl r4, r4, #0x4 + strh r7, [r5, r4] + ldr r4, [r0, #0x4] + ldr r5, _0202F808 ; =0x00000596 + add r6, r4, r2 + mov r4, #0xee + strb r4, [r6, r5] + ldr r4, [r0, #0x4] + ldr r5, _0202F80C ; =0x0000FFFF + add r6, r4, r2 + ldr r4, _0202F810 ; =0x00000594 + add r1, r1, #0x2 + strh r5, [r6, r4] + ldr r4, [r0, #0x4] + add r5, r4, r2 + mov r4, #0x59 + lsl r4, r4, #0x4 + str r7, [r5, r4] + ldr r4, [r0, #0x4] + add r5, r4, r2 + ldr r4, _0202F814 ; =0x0000058C + add r2, #0xc + str r7, [r5, r4] + cmp r3, #0x8 + blt _0202F71A + ldr r1, _0202F7D4 ; =0x021C59F4 + add r0, r4, #0x0 + ldr r3, [r1, #0x4] + add r0, #0xa4 + mov r2, #0x1 + str r2, [r3, r0] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + sub r3, #0x3a + mov r2, #0xee + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + ldr r2, _0202F80C ; =0x0000FFFF + sub r3, #0x3c + strh r2, [r4, r3] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x40 + str r7, [r3, r2] + add r2, r0, #0x0 + ldr r3, [r1, #0x4] + sub r2, #0x44 + str r7, [r3, r2] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x52 + mov r2, #0x1 + strb r2, [r4, r3] + add r3, r0, #0x0 + ldr r4, [r1, #0x4] + add r3, #0x53 + strb r2, [r4, r3] + ldr r1, [r1, #0x4] + sub r0, #0xe4 + add r0, r1, r0 + bl FUN_0202D804 + ldr r0, _0202F7D4 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202F818 ; =0x0000056C + add r0, r1, r0 + bl FUN_0202D804 + ldr r0, _0202F7D4 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202F81C ; =0x00000688 + strb r2, [r1, r0] + pop {r3-r7, pc} + .balign 4 +_0202F7D4: .word 0x021C59F4 +_0202F7D8: .word 0x0000062C +_0202F7DC: .word 0x00000658 +_0202F7E0: .word 0x00000458 +_0202F7E4: .word 0x000004E8 +_0202F7E8: .word 0x00000454 +_0202F7EC: .word 0x0000047C +_0202F7F0: .word 0x000004DC +_0202F7F4: .word 0x00000464 +_0202F7F8: .word 0x0000045C +_0202F7FC: .word 0x00000684 +_0202F800: .word 0x0000065F +_0202F804: .word 0x00000667 +_0202F808: .word 0x00000596 +_0202F80C: .word 0x0000FFFF +_0202F810: .word 0x00000594 +_0202F814: .word 0x0000058C +_0202F818: .word 0x0000056C +_0202F81C: .word 0x00000688 + + thumb_func_start FUN_0202F820 +FUN_0202F820: ; 0x0202F820 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _0202F8B8 ; =0x021C59F4 + ldr r3, _0202F8BC ; =0x0000065F + ldr r1, [r0, #0x4] + mov r2, #0x0 + add r1, r1, r5 + strb r2, [r1, r3] + ldr r4, [r0, #0x4] + mov r1, #0x1 + add r6, r4, r5 + add r4, r3, #0x0 + add r4, #0x8 + strb r1, [r6, r4] + ldr r6, [r0, #0x4] + lsl r4, r5, #0x2 + add r6, r6, r4 + add r4, r3, #0x0 + sub r4, #0x27 + str r2, [r6, r4] + ldr r2, [r0, #0x4] + add r4, r2, r5 + add r2, r3, #0x0 + add r2, #0x10 + strb r1, [r4, r2] + ldr r1, [r0, #0x4] + sub r0, r3, #0x7 + ldr r2, [r1, r0] + ldr r3, _0202F8C0 ; =0x0000047C + mov r0, #0xc + add r4, r5, #0x0 + mul r4, r0 + add r0, r1, r3 + sub r3, #0x28 + ldr r3, [r1, r3] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl FUN_0202D394 + ldr r0, _0202F8B8 ; =0x021C59F4 + ldr r3, _0202F8C4 ; =0x000004E8 + ldr r1, [r0, #0x4] + ldr r0, _0202F8C8 ; =0x00000658 + ldr r2, [r1, r0] + add r0, r1, r3 + sub r3, #0x90 + ldr r3, [r1, r3] + add r1, r5, #0x0 + mul r1, r2 + add r0, r0, r4 + add r1, r3, r1 + bl FUN_0202D394 + ldr r3, _0202F8B8 ; =0x021C59F4 + ldr r2, _0202F8CC ; =0x00000596 + ldr r0, [r3, #0x4] + mov r1, #0xee + add r0, r0, r4 + strb r1, [r0, r2] + ldr r0, [r3, #0x4] + ldr r5, _0202F8D0 ; =0x0000FFFF + add r1, r0, r4 + sub r0, r2, #0x2 + strh r5, [r1, r0] + ldr r1, [r3, #0x4] + mov r0, #0x0 + add r5, r1, r4 + sub r1, r2, #0x6 + str r0, [r5, r1] + ldr r1, [r3, #0x4] + sub r2, #0xa + add r1, r1, r4 + str r0, [r1, r2] + pop {r4-r6, pc} + .balign 4 +_0202F8B8: .word 0x021C59F4 +_0202F8BC: .word 0x0000065F +_0202F8C0: .word 0x0000047C +_0202F8C4: .word 0x000004E8 +_0202F8C8: .word 0x00000658 +_0202F8CC: .word 0x00000596 +_0202F8D0: .word 0x0000FFFF + + thumb_func_start FUN_0202F8D4 +FUN_0202F8D4: ; 0x0202F8D4 + push {r4-r6, lr} + ldr r4, _0202F908 ; =0x021C59F4 + ldr r6, _0202F90C ; =0x00000667 + mov r5, #0x1 +_0202F8DC: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202F900 + ldr r0, [r4, #0x4] + add r0, r0, r5 + ldrb r0, [r0, r6] + cmp r0, #0x0 + bne _0202F900 + bl FUN_02031280 + cmp r0, #0x0 + bne _0202F900 + add r0, r5, #0x0 + bl FUN_0202F820 +_0202F900: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _0202F8DC + pop {r4-r6, pc} + .balign 4 +_0202F908: .word 0x021C59F4 +_0202F90C: .word 0x00000667 + + thumb_func_start FUN_0202F910 +FUN_0202F910: ; 0x0202F910 + ldr r3, _0202F914 ; =FUN_0202F820 + bx r3 + .balign 4 +_0202F914: .word FUN_0202F820 + + thumb_func_start FUN_0202F918 +FUN_0202F918: ; 0x0202F918 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x0] + mov r4, #0x1 + bl FUN_02033534 + cmp r0, #0x13 + bge _0202F93E + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0202E5F8 + add r4, r0, #0x0 + ldr r0, _0202F94C ; =FUN_0202F910 + bl FUN_0202D330 +_0202F93E: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_0202F150 + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_0202F94C: .word FUN_0202F910 + + thumb_func_start FUN_0202F950 +FUN_0202F950: ; 0x0202F950 + push {r3-r7, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r7, r2, #0x0 + mov r4, #0x1 + bl FUN_02033534 + cmp r0, #0x13 + bge _0202F96C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0202E66C + add r4, r0, #0x0 +_0202F96C: + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_0202F150 + ldr r0, _0202F980 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_0202F980: .word 0x02105D58 + + thumb_func_start FUN_0202F984 +FUN_0202F984: ; 0x0202F984 + push {r4, lr} + mov r4, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _0202F99A + ldr r0, _0202F9D4 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + beq _0202F9A2 + pop {r4, pc} +_0202F99A: + ldr r0, _0202F9D4 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0202F9D0 +_0202F9A2: + ldr r0, _0202F9D8 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202F9DC ; =0x0000067D + ldrb r1, [r2, r0] + cmp r1, #0x2 + bne _0202F9B4 + mov r1, #0x0 + strb r1, [r2, r0] + mov r4, #0x1 +_0202F9B4: + ldr r0, _0202F9D8 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202F9DC ; =0x0000067D + ldrb r1, [r2, r0] + cmp r1, #0x3 + bne _0202F9C4 + mov r4, #0x1 + strb r4, [r2, r0] +_0202F9C4: + cmp r4, #0x0 + beq _0202F9CC + bl FUN_0202F5A4 +_0202F9CC: + bl FUN_02031088 +_0202F9D0: + pop {r4, pc} + nop +_0202F9D4: .word 0x02105D58 +_0202F9D8: .word 0x021C59F4 +_0202F9DC: .word 0x0000067D + + thumb_func_start FUN_0202F9E0 +FUN_0202F9E0: ; 0x0202F9E0 + ldr r1, _0202FA08 ; =0x021C59F4 + ldr r3, [r1, #0x4] + ldr r1, _0202FA0C ; =0x0000067D + ldrb r2, [r3, r1] + cmp r2, #0x0 + bne _0202F9F6 + cmp r0, #0x1 + bne _0202F9F6 + mov r0, #0x3 + strb r0, [r3, r1] + bx lr +_0202F9F6: + cmp r2, #0x1 + bne _0202FA04 + cmp r0, #0x0 + bne _0202FA04 + ldr r0, _0202FA0C ; =0x0000067D + mov r1, #0x2 + strb r1, [r3, r0] +_0202FA04: + bx lr + nop +_0202FA08: .word 0x021C59F4 +_0202FA0C: .word 0x0000067D + + thumb_func_start FUN_0202FA10 +FUN_0202FA10: ; 0x0202FA10 + ldr r3, _0202FA18 ; =FUN_0202F9E0 + mov r0, #0x1 + bx r3 + nop +_0202FA18: .word FUN_0202F9E0 + + thumb_func_start FUN_0202FA1C +FUN_0202FA1C: ; 0x0202FA1C + ldr r3, _0202FA24 ; =FUN_0202F9E0 + mov r0, #0x0 + bx r3 + nop +_0202FA24: .word FUN_0202F9E0 + + thumb_func_start FUN_0202FA28 +FUN_0202FA28: ; 0x0202FA28 + ldr r0, _0202FA40 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FA44 ; =0x0000067D + ldrb r0, [r1, r0] + cmp r0, #0x2 + bne _0202FA38 + mov r0, #0x1 + bx lr +_0202FA38: + cmp r0, #0x3 + bne _0202FA3E + mov r0, #0x0 +_0202FA3E: + bx lr + .balign 4 +_0202FA40: .word 0x021C59F4 +_0202FA44: .word 0x0000067D + + thumb_func_start FUN_0202FA48 +FUN_0202FA48: ; 0x0202FA48 + push {r3, lr} + bl FUN_0202FA28 + cmp r0, #0x1 + bne _0202FA56 + mov r0, #0x1 + pop {r3, pc} +_0202FA56: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202FA5C +FUN_0202FA5C: ; 0x0202FA5C + push {r4, lr} + ldr r0, _0202FB00 ; =0x021C59F4 + mov r4, #0x0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FA82 + bl FUN_02033534 + cmp r0, #0x13 + blt _0202FA78 + bl MOD04_021D83C0 + mov r4, #0x1 + b _0202FA82 +_0202FA78: + bl FUN_0202E784 + cmp r0, #0x0 + beq _0202FA82 + mov r4, #0x1 +_0202FA82: + cmp r4, #0x0 + beq _0202FAFE + bl FUN_020314D0 + bl FUN_0202DBA4 + ldr r0, _0202FB00 ; =0x021C59F4 + mov r1, #0x0 + strb r1, [r0, #0x0] + ldr r1, [r0, #0x4] + ldr r0, _0202FB04 ; =0x00000548 + ldr r0, [r1, r0] + bl FUN_0200CAB4 + ldr r1, _0202FB00 ; =0x021C59F4 + ldr r0, _0202FB04 ; =0x00000548 + ldr r2, [r1, #0x4] + mov r3, #0x0 + str r3, [r2, r0] + ldr r1, [r1, #0x4] + sub r0, #0xec + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x46 + lsl r0, r0, #0x4 + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB08 ; =0x00000458 + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB0C ; =0x00000454 + ldr r0, [r1, r0] + bl FUN_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB10 ; =0x0000056C + add r0, r1, r0 + bl FUN_0202D824 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FB14 ; =0x0000054C + add r0, r1, r0 + bl FUN_0202D824 + ldr r0, _0202FB00 ; =0x021C59F4 + ldr r0, [r0, #0x4] + bl FUN_02016A18 + ldr r0, _0202FB00 ; =0x021C59F4 + mov r1, #0x0 + str r1, [r0, #0x4] +_0202FAFE: + pop {r4, pc} + .balign 4 +_0202FB00: .word 0x021C59F4 +_0202FB04: .word 0x00000548 +_0202FB08: .word 0x00000458 +_0202FB0C: .word 0x00000454 +_0202FB10: .word 0x0000056C +_0202FB14: .word 0x0000054C + + thumb_func_start FUN_0202FB18 +FUN_0202FB18: ; 0x0202FB18 + ldr r3, _0202FB1C ; =FUN_0202E9E8 + bx r3 + .balign 4 +_0202FB1C: .word FUN_0202E9E8 + + thumb_func_start FUN_0202FB20 +FUN_0202FB20: ; 0x0202FB20 + push {r3, lr} + ldr r0, _0202FB54 ; =0x021C59F4 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202FB52 + bl FUN_0203050C + bl FUN_02031190 + cmp r0, #0x0 + bne _0202FB40 + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202FB48 +_0202FB40: + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FB4C +_0202FB48: + bl FUN_0202FEEC +_0202FB4C: + ldr r0, _0202FB54 ; =0x021C59F4 + mov r1, #0x0 + strb r1, [r0, #0x0] +_0202FB52: + pop {r3, pc} + .balign 4 +_0202FB54: .word 0x021C59F4 + + thumb_func_start FUN_0202FB58 +FUN_0202FB58: ; 0x0202FB58 + push {r3, lr} + bl FUN_0202F03C + cmp r0, #0x0 + beq _0202FB7C + bl FUN_02031190 + cmp r0, #0x0 + bne _0202FB78 + bl FUN_0202EE24 + cmp r0, #0x0 + bne _0202FB7C + bl FUN_0202FA5C + pop {r3, pc} +_0202FB78: + bl FUN_0202FA5C +_0202FB7C: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0202FB80 +FUN_0202FB80: ; 0x0202FB80 + push {r4, lr} + bl FUN_02031CDC + ldr r1, _0202FC48 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _0202FC34 + ldr r0, _0202FC4C ; =0x0000068A + ldrb r0, [r2, r0] + cmp r0, #0x0 + bne _0202FC16 + mov r0, #0x0 + strb r0, [r1, #0x0] + bl FUN_0202F984 + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, _0202FC50 ; =0x021C48B8 + ldr r0, [r0, #0x4] + ldr r2, _0202FC54 ; =0x00000628 + ldr r3, [r1, #0x44] + ldr r1, _0202FC58 ; =0x00007FFF + ldrh r4, [r0, r2] + and r1, r3 + orr r1, r4 + strh r1, [r0, r2] + bl FUN_02030674 + bl FUN_0202FCCC + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, _0202FC54 ; =0x00000628 + ldr r3, [r0, #0x4] + mov r0, #0x2 + ldrh r2, [r3, r1] + lsl r0, r0, #0xe + and r0, r2 + strh r0, [r3, r1] + bl FUN_0202FA28 + cmp r0, #0x0 + bne _0202FBD6 + bl FUN_02030DA4 +_0202FBD6: + bl FUN_02031190 + cmp r0, #0x0 + bne _0202FBE8 + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202FBF0 +_0202FBE8: + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FBF4 +_0202FBF0: + bl FUN_02030074 +_0202FBF4: + bl FUN_02031190 + cmp r0, #0x0 + beq _0202FC0C + bl FUN_0202FA28 + cmp r0, #0x1 + beq _0202FC0C + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FC10 +_0202FC0C: + bl FUN_02030DFC +_0202FC10: + ldr r0, _0202FC48 ; =0x021C59F4 + mov r1, #0x1 + strb r1, [r0, #0x0] +_0202FC16: + ldr r0, _0202FC48 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FC5C ; =0x0000065C + ldrh r0, [r1, r0] + bl FUN_0202ED70 + bl FUN_02031190 + cmp r0, #0x0 + bne _0202FC2E + bl FUN_0202F8D4 +_0202FC2E: + bl FUN_0202FB58 + b _0202FC3A +_0202FC34: + mov r0, #0x0 + bl FUN_0202ED70 +_0202FC3A: + mov r0, #0x0 + bl FUN_020335F4 + bl FUN_020315A4 + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_0202FC48: .word 0x021C59F4 +_0202FC4C: .word 0x0000068A +_0202FC50: .word 0x021C48B8 +_0202FC54: .word 0x00000628 +_0202FC58: .word 0x00007FFF +_0202FC5C: .word 0x0000065C + + thumb_func_start FUN_0202FC60 +FUN_0202FC60: ; 0x0202FC60 + push {r4, lr} + ldr r0, _0202FC7C ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FC74 + bl FUN_0202F2F0 +_0202FC74: + ldr r0, _0202FC7C ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + nop +_0202FC7C: .word 0x021C59F4 + + thumb_func_start FUN_0202FC80 +FUN_0202FC80: ; 0x0202FC80 + push {r4, lr} + ldr r0, _0202FCA0 ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _0202FC9A + ldr r0, _0202FCA4 ; =0x0000067D + mov r1, #0x1 + strb r1, [r2, r0] + bl FUN_0202F2F0 +_0202FC9A: + ldr r0, _0202FCA0 ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_0202FCA0: .word 0x021C59F4 +_0202FCA4: .word 0x0000067D + + thumb_func_start FUN_0202FCA8 +FUN_0202FCA8: ; 0x0202FCA8 + push {r4, lr} + ldr r0, _0202FCC8 ; =0x021C59F4 + mov r1, #0x0 + ldrb r4, [r0, #0x0] + strb r1, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FCC0 + bl FUN_0202F2F0 + bl FUN_0202E538 +_0202FCC0: + ldr r0, _0202FCC8 ; =0x021C59F4 + strb r4, [r0, #0x0] + pop {r4, pc} + nop +_0202FCC8: .word 0x021C59F4 + + thumb_func_start FUN_0202FCCC +FUN_0202FCCC: ; 0x0202FCCC + push {r3, lr} + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0202FD40 + bl FUN_02033534 + cmp r0, #0x13 + blt _0202FD06 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r1, _0202FE1C ; =0x00000687 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _0202FCF8 + mov r1, #0x26 + bl MOD04_021D78FC + cmp r0, #0x0 + bne _0202FCFA +_0202FCF8: + b _0202FE10 +_0202FCFA: + ldr r0, _0202FE14 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + strb r2, [r1, r0] + pop {r3, pc} +_0202FD06: + bl FUN_0202CBD4 + cmp r0, #0x4 + bne _0202FD1A + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202FD22 +_0202FD1A: + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FE10 +_0202FD22: + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x0] + bl FUN_0203050C + ldr r0, _0202FE20 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE14 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0202FE18 ; =0x00000683 + strb r2, [r1, r0] + pop {r3, pc} +_0202FD40: + bl FUN_02033534 + cmp r0, #0x13 + blt _0202FDB2 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, _0202FE1C ; =0x00000687 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r2] + cmp r1, #0x0 + beq _0202FE10 + add r1, r2, #0x0 + sub r1, #0x57 + ldr r1, [r0, r1] + cmp r1, #0x0 + beq _0202FD7A + sub r2, #0x53 + ldr r1, [r0, r2] + cmp r1, #0x3 + bgt _0202FE10 + ldr r1, _0202FE20 ; =0x02105D58 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _0202FD90 + bl FUN_02030930 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x0] + b _0202FD90 +_0202FD7A: + ldr r1, _0202FE20 ; =0x02105D58 + ldrb r1, [r1, #0x0] + cmp r1, #0x4 + bne _0202FD90 + bl FUN_02030930 + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x0] +_0202FD90: + ldr r0, _0202FE14 ; =0x021C59F4 + mov r1, #0x26 + ldr r0, [r0, #0x4] + bl MOD04_021D78FC + cmp r0, #0x0 + beq _0202FE10 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x0] + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE24 ; =0x00000634 + ldr r1, [r2, r0] + add r1, r1, #0x1 + str r1, [r2, r0] + pop {r3, pc} +_0202FDB2: + bl FUN_0202CBD4 + cmp r0, #0x4 + bne _0202FDC6 + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + bne _0202FDCE +_0202FDC6: + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FE10 +_0202FDCE: + ldr r0, _0202FE20 ; =0x02105D58 + ldrb r0, [r0, #0x0] + cmp r0, #0x4 + bne _0202FE10 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE24 ; =0x00000634 + ldr r1, [r2, r0] + cmp r1, #0x3 + bgt _0202FE10 + add r0, #0x4b + ldrb r1, [r2, r0] + mov r0, #0x26 + mul r0, r1 + add r0, r2, r0 + bl FUN_02030930 + ldr r0, _0202FE14 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _0202FE28 ; =0x0000067F + ldrb r1, [r2, r0] + mov r0, #0x1 + sub r1, r0, r1 + mov r0, #0x26 + mul r0, r1 + add r0, r2, r0 + bl FUN_02030930 + ldr r0, _0202FE20 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x0] + bl FUN_0203050C +_0202FE10: + pop {r3, pc} + nop +_0202FE14: .word 0x021C59F4 +_0202FE18: .word 0x00000683 +_0202FE1C: .word 0x00000687 +_0202FE20: .word 0x02105D58 +_0202FE24: .word 0x00000634 +_0202FE28: .word 0x0000067F + + thumb_func_start FUN_0202FE2C +FUN_0202FE2C: ; 0x0202FE2C + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + str r0, [sp, #0xc] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r0, r0, #0x1 + mov r7, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _0202FED0 + ldr r0, [sp, #0x0] + mov r1, #0xc0 + add r6, r0, #0x0 + add r4, r7, #0x0 + add r5, r7, #0x0 + mul r6, r1 +_0202FE66: + ldr r0, _0202FEE4 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0202FEE8 ; =0x0000047C + add r0, r1, r0 + add r0, r0, r4 + bl FUN_0202D4BC + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202FE90 + ldr r0, _0202FEE4 ; =0x021C59F4 + mov r1, #0xe + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r2, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + strb r1, [r2, r0] +_0202FE90: + ldr r0, _0202FEE4 ; =0x021C59F4 + mov r2, #0x55 + ldr r1, [r0, #0x4] + ldr r0, _0202FEE8 ; =0x0000047C + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, r1, r2 + add r1, r1, r6 + ldr r2, [sp, #0xc] + add r0, r0, r4 + add r1, r1, r5 + bl FUN_0202D400 + ldr r0, _0202FEE4 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r1, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0xe + bne _0202FEC2 + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] +_0202FEC2: + ldr r0, [sp, #0xc] + add r7, r7, #0x1 + add r5, r5, r0 + ldr r0, [sp, #0x8] + add r4, #0xc + cmp r7, r0 + blt _0202FE66 +_0202FED0: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + cmp r1, r0 + bne _0202FEDE + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202FEDE: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0202FEE4: .word 0x021C59F4 +_0202FEE8: .word 0x0000047C + + thumb_func_start FUN_0202FEEC +FUN_0202FEEC: ; 0x0202FEEC + push {r3-r7, lr} + ldr r0, _02030064 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0202FEFE + bl FUN_02033534 + cmp r0, #0x13 + blt _0202FF00 +_0202FEFE: + b _02030062 +_0202FF00: + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + str r0, [sp, #0x0] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r6, r0, #0x1 + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + cmp r1, #0x2 + beq _0202FF2C + ldrb r0, [r0, #0x1] + cmp r0, #0x0 + beq _0202FF2C + b _02030062 +_0202FF2C: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] + bl FUN_0202FA28 + cmp r0, #0x1 + bne _0202FF4A + ldr r0, _02030064 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + bl FUN_0202FE2C +_0202FF4A: + bl FUN_0202CBD4 + cmp r0, #0x4 + bne _0202FF86 + bl FUN_02031280 + cmp r0, #0x0 + bne _0202FF86 + ldr r0, _02030064 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r3, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r0, [r1, r0] + mov r1, #0xc0 + add r2, r0, #0x0 + mul r2, r1 + add r0, r3, r2 + ldr r3, _0203006C ; =FUN_020304F0 + mov r2, #0xe + bl FUN_0202D0D0 + cmp r0, #0x0 + bne _0202FF86 + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + sub r1, r1, #0x1 + strb r1, [r0, #0x1] +_0202FF86: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + cmp r1, #0x1 + beq _0202FF94 + ldrb r0, [r0, #0x1] + cmp r0, #0x3 + bne _0203000A +_0202FF94: + mov r4, #0x0 + cmp r6, #0x0 + ble _0202FFDC + ldr r7, _02030064 ; =0x021C59F4 + add r5, r4, #0x0 +_0202FF9E: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202FFBA + ldr r0, [r7, #0x4] + ldr r1, _02030070 ; =0x00000638 + add r0, r0, r5 + ldr r1, [r0, r1] + add r2, r1, #0x1 + ldr r1, _02030070 ; =0x00000638 + str r2, [r0, r1] + b _0202FFD4 +_0202FFBA: + bl FUN_02031280 + cmp r0, #0x0 + beq _0202FFD4 + cmp r4, #0x0 + bne _0202FFD4 + ldr r0, [r7, #0x4] + ldr r1, _02030070 ; =0x00000638 + add r0, r0, r5 + ldr r1, [r0, r1] + add r2, r1, #0x1 + ldr r1, _02030070 ; =0x00000638 + str r2, [r0, r1] +_0202FFD4: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _0202FF9E +_0202FFDC: + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x55 + ldr r2, [r0, #0x4] + lsl r1, r1, #0x2 + add r4, r2, r1 + mov r1, #0x1a + lsl r1, r1, #0x6 + ldrb r1, [r2, r1] + mov r2, #0xc0 + mov r0, #0x0 + add r3, r1, #0x0 + mul r3, r2 + add r1, r4, r3 + bl FUN_0203026C + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x1a + ldr r3, [r0, #0x4] + lsl r1, r1, #0x6 + ldrb r2, [r3, r1] + mov r0, #0x1 + sub r0, r0, r2 + strb r0, [r3, r1] +_0203000A: + mov r5, #0x0 + cmp r6, #0x0 + ble _0203004A + add r4, r5, #0x0 + mov r7, #0xff +_02030014: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + bne _02030040 + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030040 + ldr r0, _02030064 ; =0x021C59F4 + mov r1, #0x1a + ldr r0, [r0, #0x4] + lsl r1, r1, #0x6 + ldrb r2, [r0, r1] + mov r1, #0xc0 + mul r1, r2 + add r0, r0, r1 + add r1, r4, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + strb r7, [r1, r0] +_02030040: + ldr r0, [sp, #0x0] + add r5, r5, #0x1 + add r4, r4, r0 + cmp r5, r6 + blt _02030014 +_0203004A: + bl FUN_0202CBD4 + cmp r0, #0x4 + bne _0203005A + bl FUN_02031280 + cmp r0, #0x0 + beq _02030062 +_0203005A: + ldr r0, _02030068 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] +_02030062: + pop {r3-r7, pc} + .balign 4 +_02030064: .word 0x021C59F4 +_02030068: .word 0x02105D58 +_0203006C: .word FUN_020304F0 +_02030070: .word 0x00000638 + + thumb_func_start FUN_02030074 +FUN_02030074: ; 0x02030074 + push {r3-r7, lr} + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _020300DC + bl FUN_02033534 + cmp r0, #0x13 + blt _020300B4 + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + beq _020300DC + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x4c + bl MOD04_021D79B4 + cmp r0, #0x0 + beq _020300DC + ldr r0, _02030228 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + strb r2, [r1, r0] + pop {r3-r7, pc} +_020300B4: + bl FUN_0202CBD4 + cmp r0, #0x4 + beq _020300C4 + bl FUN_02031280 + cmp r0, #0x0 + beq _020300DC +_020300C4: + bl FUN_0202FEEC + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x2 + bne _020300DC + ldr r0, _02030228 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203022C ; =0x00000683 + strb r2, [r1, r0] + pop {r3-r7, pc} +_020300DC: + bl FUN_02033534 + cmp r0, #0x13 + blt _02030184 + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + bne _020300F0 + b _02030224 +_020300F0: + ldr r0, _02030228 ; =0x021C59F4 + mov r1, #0x63 + ldr r2, [r0, #0x4] + lsl r1, r1, #0x4 + ldr r0, [r2, r1] + cmp r0, #0x0 + beq _02030130 + add r0, r1, #0x0 + add r0, #0xc + ldr r0, [r2, r0] + cmp r0, #0x3 + bgt _02030110 + add r1, #0x8 + ldr r0, [r2, r1] + cmp r0, #0x3 + ble _02030112 +_02030110: + b _02030224 +_02030112: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _02030150 + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030128 + mov r0, #0x0 + bl FUN_0202FE2C +_02030128: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x1] + b _02030150 +_02030130: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _0203014A + bl FUN_0202FA28 + cmp r0, #0x1 + bne _0203014A + mov r0, #0x0 + bl FUN_0202FE2C + cmp r0, #0x0 + beq _02030224 +_0203014A: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x2 + strb r1, [r0, #0x1] +_02030150: + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r0, r1, r0 + mov r1, #0x4c + bl MOD04_021D79B4 + cmp r0, #0x0 + beq _02030224 + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x4 + strb r1, [r0, #0x1] + ldr r1, _02030228 ; =0x021C59F4 + ldr r0, _02030234 ; =0x00000638 + ldr r3, [r1, #0x4] + ldr r2, [r3, r0] + add r2, r2, #0x1 + str r2, [r3, r0] + ldr r2, [r1, #0x4] + add r1, r0, #0x4 + ldr r1, [r2, r1] + add r0, r0, #0x4 + add r1, r1, #0x1 + str r1, [r2, r0] + pop {r3-r7, pc} +_02030184: + bl FUN_0202CBD4 + cmp r0, #0x4 + beq _02030194 + bl FUN_02031280 + cmp r0, #0x0 + beq _02030224 +_02030194: + ldr r0, _02030230 ; =0x02105D58 + ldrb r0, [r0, #0x1] + cmp r0, #0x4 + bne _02030224 + ldr r6, _02030228 ; =0x021C59F4 + ldr r7, _02030234 ; =0x00000638 + mov r4, #0x1 + mov r5, #0x4 +_020301A4: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _020301BC + ldr r0, [r6, #0x4] + add r0, r0, r5 + ldr r0, [r0, r7] + cmp r0, #0x3 + ble _020301D2 + pop {r3-r7, pc} +_020301BC: + cmp r4, #0x0 + bne _020301D2 + bl FUN_02031280 + cmp r0, #0x0 + beq _020301D2 + ldr r1, [r6, #0x4] + ldr r0, _02030234 ; =0x00000638 + ldr r0, [r1, r0] + cmp r0, #0x3 + bgt _02030224 +_020301D2: + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x8 + blt _020301A4 + bl FUN_0202FA28 + cmp r0, #0x0 + bne _0203021A + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r2, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r1, [r1, r0] + mov r0, #0xc0 + mul r0, r1 + add r0, r2, r0 + bl FUN_02030A00 + ldr r0, _02030228 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x55 + lsl r0, r0, #0x2 + add r2, r1, r0 + mov r0, #0x1a + lsl r0, r0, #0x6 + ldrb r1, [r1, r0] + mov r0, #0x1 + sub r1, r0, r1 + mov r0, #0xc0 + mul r0, r1 + add r0, r2, r0 + bl FUN_02030A00 +_0203021A: + ldr r0, _02030230 ; =0x02105D58 + mov r1, #0x0 + strb r1, [r0, #0x1] + bl FUN_0202FEEC +_02030224: + pop {r3-r7, pc} + nop +_02030228: .word 0x021C59F4 +_0203022C: .word 0x00000683 +_02030230: .word 0x02105D58 +_02030234: .word 0x00000638 + + thumb_func_start FUN_02030238 +FUN_02030238: ; 0x02030238 + push {r4-r6, lr} + ldr r4, _02030264 ; =0x021C59F4 + ldr r3, _02030268 ; =0x0000066F + ldr r5, [r4, #0x4] + ldrb r6, [r5, r3] + cmp r6, #0x0 + beq _0203025C + add r0, r3, #0x0 + sub r0, #0x3b + ldr r0, [r5, r0] + sub r1, r0, #0x1 + add r0, r3, #0x0 + sub r0, #0x3b + str r1, [r5, r0] + ldr r0, [r4, #0x4] + mov r1, #0x0 + strb r1, [r0, r3] + pop {r4-r6, pc} +_0203025C: + bl FUN_0203026C + pop {r4-r6, pc} + nop +_02030264: .word 0x021C59F4 +_02030268: .word 0x0000066F + + thumb_func_start FUN_0203026C +FUN_0203026C: ; 0x0203026C + push {r3-r7, lr} + sub sp, #0x8 + ldr r0, _020303A0 ; =0x021C59F4 + add r5, r1, #0x0 + ldr r2, [r0, #0x4] + ldr r0, _020303A4 ; =0x00000634 + ldr r1, [r2, r0] + sub r1, r1, #0x1 + str r1, [r2, r0] + cmp r5, #0x0 + beq _02030290 + ldrb r0, [r5, #0x0] + cmp r0, #0xb + bne _02030296 + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030292 +_02030290: + b _0203039C +_02030292: + add r5, r5, #0x1 + b _0203029E +_02030296: + bl FUN_0202FA28 + cmp r0, #0x0 + beq _0203039C +_0203029E: + ldr r0, _020303A0 ; =0x021C59F4 + ldr r1, _020303A8 ; =0x00000682 + ldr r0, [r0, #0x4] + ldrb r1, [r0, r1] + cmp r1, #0x0 + beq _020302B2 + ldrb r2, [r5, #0x0] + mov r1, #0x1 + tst r1, r2 + bne _0203039C +_020302B2: + ldr r1, _020303A8 ; =0x00000682 + mov r2, #0x0 + strb r2, [r0, r1] + bl FUN_0202FA28 + cmp r0, #0x1 + bne _0203036E + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + add r6, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r0, r0, #0x1 + mov r4, #0x0 + str r0, [sp, #0x4] + cmp r0, #0x0 + ble _0203039C + sub r0, r6, #0x1 + add r7, r4, #0x0 + str r0, [sp, #0x0] +_020302EA: + ldrb r0, [r5, #0x0] + cmp r0, #0xff + bne _02030302 + ldr r0, _020303A0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020303AC ; =0x0000065C + lsl r2, r4 + ldrh r0, [r1, r0] + mvn r2, r2 + and r2, r0 + b _02030310 +_02030302: + ldr r0, _020303A0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020303AC ; =0x0000065C + lsl r2, r4 + ldrh r0, [r1, r0] + orr r2, r0 +_02030310: + ldr r0, _020303AC ; =0x0000065C + strh r2, [r1, r0] + ldrb r2, [r5, #0x0] + cmp r2, #0xff + bne _0203031E + add r5, r5, r6 + b _02030360 +_0203031E: + cmp r2, #0xe + bne _02030326 + add r5, r5, r6 + b _02030360 +_02030326: + ldr r0, _020303A0 ; =0x021C59F4 + ldr r3, [r0, #0x4] + ldr r0, _020303B0 ; =0x00000667 + add r1, r3, r4 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0203033E + mov r0, #0x1 + tst r0, r2 + beq _0203033E + add r5, r5, r6 + b _02030360 +_0203033E: + ldr r0, _020303B4 ; =0x000004E8 + add r5, r5, #0x1 + add r0, r3, r0 + ldr r2, [sp, #0x0] + ldr r3, _020303B8 ; =0x000005E6 + add r0, r0, r7 + add r1, r5, #0x0 + bl FUN_0202D3A4 + ldr r0, [sp, #0x0] + mov r1, #0x0 + add r5, r5, r0 + ldr r0, _020303A0 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r2, r0, r4 + ldr r0, _020303B0 ; =0x00000667 + strb r1, [r2, r0] +_02030360: + ldr r0, [sp, #0x4] + add r4, r4, #0x1 + add r7, #0xc + cmp r4, r0 + blt _020302EA + add sp, #0x8 + pop {r3-r7, pc} +_0203036E: + ldr r0, _020303A0 ; =0x021C59F4 + ldrb r2, [r5, #0x1] + ldr r1, [r0, #0x4] + ldr r3, _020303AC ; =0x0000065C + strh r2, [r1, r3] + ldr r2, [r0, #0x4] + ldrh r1, [r2, r3] + lsl r1, r1, #0x8 + strh r1, [r2, r3] + ldr r4, [r0, #0x4] + ldrb r1, [r5, #0x2] + ldrh r2, [r4, r3] + add r1, r2, r1 + strh r1, [r4, r3] + ldr r1, [r0, #0x4] + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + ldrb r2, [r5, #0x3] + add r1, r5, #0x4 + sub r3, #0x5d + bl FUN_0202D3A4 +_0203039C: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_020303A0: .word 0x021C59F4 +_020303A4: .word 0x00000634 +_020303A8: .word 0x00000682 +_020303AC: .word 0x0000065C +_020303B0: .word 0x00000667 +_020303B4: .word 0x000004E8 +_020303B8: .word 0x000005E6 + + thumb_func_start FUN_020303BC +FUN_020303BC: ; 0x020303BC + push {r4-r6, lr} + ldr r3, _020303EC ; =0x021C59F4 + ldr r6, _020303F0 ; =0x0000066F + ldr r5, [r3, #0x4] + add r4, r5, r0 + ldrb r4, [r4, r6] + cmp r4, #0x0 + beq _020303E4 + add r1, r6, #0x0 + sub r1, #0x37 + add r4, r5, r1 + lsl r2, r0, #0x2 + ldr r1, [r4, r2] + sub r1, r1, #0x1 + str r1, [r4, r2] + ldr r1, [r3, #0x4] + mov r2, #0x0 + add r0, r1, r0 + strb r2, [r0, r6] + pop {r4-r6, pc} +_020303E4: + bl FUN_020303F4 + pop {r4-r6, pc} + nop +_020303EC: .word 0x021C59F4 +_020303F0: .word 0x0000066F + + thumb_func_start FUN_020303F4 +FUN_020303F4: ; 0x020303F4 + push {r4-r6, lr} + ldr r3, _020304B8 ; =0x021C59F4 + add r5, r0, #0x0 + ldr r0, [r3, #0x4] + ldr r2, _020304BC ; =0x00000638 + add r4, r1, #0x0 + add r1, r0, r2 + lsl r0, r5, #0x2 + ldr r6, [r1, r0] + sub r6, r6, #0x1 + str r6, [r1, r0] + cmp r4, #0x0 + beq _020304B4 + ldr r0, [r3, #0x4] + add r2, #0x2f + add r0, r0, r2 + ldrb r1, [r0, r5] + cmp r1, #0x0 + beq _02030422 + ldrb r2, [r4, #0x0] + mov r1, #0x1 + tst r1, r2 + bne _020304B4 +_02030422: + mov r1, #0x0 + strb r1, [r0, r5] + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030478 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + add r6, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + ldrb r1, [r4, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _02030468 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r3, _020304C0 ; =0x0000065E + ldr r1, [r0, #0x4] + ldr r0, _020304C4 ; =0x0000047C + add r2, r6, #0x0 + add r1, r1, r0 + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + add r1, r4, #0x0 + bl FUN_0202D3A4 +_02030468: + ldr r0, _020304B8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020304C8 ; =0x0000065F + add r1, r1, r0 + ldrb r0, [r1, r5] + add r0, r0, #0x1 + strb r0, [r1, r5] + pop {r4-r6, pc} +_02030478: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020307E4 + ldrb r1, [r4, #0x0] + mov r0, #0x2 + tst r0, r1 + bne _020304B4 + mov r0, #0xc + add r6, r5, #0x0 + mul r6, r0 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020304CC ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r6 + bl FUN_0202D498 + cmp r0, #0xb + blt _020304B4 + ldr r0, _020304B8 ; =0x021C59F4 + ldr r3, _020304D0 ; =0x0000066E + ldr r1, [r0, #0x4] + ldr r0, _020304CC ; =0x000004E8 + mov r2, #0xb + add r0, r1, r0 + add r0, r0, r6 + add r1, r4, #0x1 + bl FUN_0202D3A4 +_020304B4: + pop {r4-r6, pc} + nop +_020304B8: .word 0x021C59F4 +_020304BC: .word 0x00000638 +_020304C0: .word 0x0000065E +_020304C4: .word 0x0000047C +_020304C8: .word 0x0000065F +_020304CC: .word 0x000004E8 +_020304D0: .word 0x0000066E + + thumb_func_start FUN_020304D4 +FUN_020304D4: ; 0x020304D4 + push {r3, lr} + cmp r0, #0x0 + beq _020304E4 + ldr r0, _020304EC ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + pop {r3, pc} +_020304E4: + bl ErrorHandling + pop {r3, pc} + nop +_020304EC: .word 0x02105D58 + + thumb_func_start FUN_020304F0 +FUN_020304F0: ; 0x020304F0 + push {r3, lr} + cmp r0, #0x0 + beq _02030500 + ldr r0, _02030508 ; =0x02105D58 + ldrb r1, [r0, #0x1] + add r1, r1, #0x1 + strb r1, [r0, #0x1] + pop {r3, pc} +_02030500: + bl ErrorHandling + pop {r3, pc} + nop +_02030508: .word 0x02105D58 + + thumb_func_start FUN_0203050C +FUN_0203050C: ; 0x0203050C + push {r4, lr} + ldr r0, _02030660 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _0203051E + bl FUN_02033534 + cmp r0, #0x13 + blt _02030520 +_0203051E: + b _0203065E +_02030520: + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + add r4, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + bl FUN_02031280 + cmp r0, #0x0 + beq _02030594 + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + cmp r1, #0x2 + beq _02030550 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02030594 +_02030550: + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x1 + bl FUN_020304D4 + ldr r0, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r3, [r0, #0x4] + mov r0, #0x0 + ldrb r2, [r3, r1] + mov r1, #0x26 + mul r1, r2 + lsl r2, r4, #0x10 + add r1, r3, r1 + lsr r2, r2, #0x10 + bl FUN_020303F4 + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] + pop {r4, pc} +_02030594: + bl FUN_0202CBD4 + cmp r0, #0x4 + bne _0203065E + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + bne _020305AE + bl FUN_02031190 + pop {r4, pc} +_020305AE: + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + cmp r1, #0x2 + beq _020305BC + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203065E +_020305BC: + bl FUN_02031190 + cmp r0, #0x0 + beq _02030612 + ldr r0, _02030664 ; =0x02105D58 + ldr r3, _0203066C ; =FUN_020304D4 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + ldr r0, _02030660 ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _02030668 ; =0x0000067F + ldrb r1, [r2, r0] + mov r0, #0x26 + mul r0, r1 + lsl r1, r4, #0x10 + add r0, r2, r0 + lsr r1, r1, #0x10 + mov r2, #0xe + bl FUN_0202D0D0 + cmp r0, #0x0 + bne _020305F4 + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + sub r1, r1, #0x1 + strb r1, [r0, #0x0] + pop {r4, pc} +_020305F4: + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] + pop {r4, pc} +_02030612: + bl FUN_0202CB8C + ldr r1, _02030670 ; =0x0000FFFE + tst r0, r1 + beq _0203065E + ldr r0, _02030664 ; =0x02105D58 + ldrb r1, [r0, #0x0] + add r1, r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x1 + bl FUN_020304D4 + ldr r0, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r3, [r0, #0x4] + mov r0, #0x0 + ldrb r2, [r3, r1] + mov r1, #0x26 + mul r1, r2 + lsl r2, r4, #0x10 + add r1, r3, r1 + lsr r2, r2, #0x10 + bl FUN_020303F4 + ldr r2, _02030660 ; =0x021C59F4 + ldr r1, _02030668 ; =0x0000067F + ldr r4, [r2, #0x4] + mov r0, #0x1 + ldrb r3, [r4, r1] + sub r0, r0, r3 + strb r0, [r4, r1] + add r0, r1, #0x0 + ldr r2, [r2, #0x4] + sub r0, #0x4b + ldr r0, [r2, r0] + sub r1, #0x4b + add r0, r0, #0x1 + str r0, [r2, r1] +_0203065E: + pop {r4, pc} + .balign 4 +_02030660: .word 0x021C59F4 +_02030664: .word 0x02105D58 +_02030668: .word 0x0000067F +_0203066C: .word FUN_020304D4 +_02030670: .word 0x0000FFFE + + thumb_func_start FUN_02030674 +FUN_02030674: ; 0x02030674 + push {r3-r7, lr} + ldr r7, _02030798 ; =0x021C59F4 + mov r6, #0x0 + ldr r5, [r7, #0x4] + ldr r2, _0203079C ; =0x0000062C + add r4, r6, #0x0 + ldrb r0, [r5, r2] + cmp r0, #0x0 + beq _02030690 + sub r1, r2, #0x4 + ldrh r1, [r5, r1] + mov r3, #0xf0 + tst r3, r1 + bne _02030692 +_02030690: + b _02030794 +_02030692: + cmp r0, #0x2 + bne _020306D0 + mov r0, #0x20 + tst r0, r1 + beq _020306A4 + mov r0, #0x10 + orr r0, r6 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306A4: + mov r0, #0x10 + tst r0, r1 + beq _020306B2 + mov r0, #0x20 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306B2: + mov r0, #0x40 + tst r0, r1 + beq _020306C0 + mov r0, #0x80 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306C0: + mov r0, #0x80 + tst r0, r1 + beq _0203077E + mov r0, #0x40 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203077E +_020306D0: + add r0, r2, #0x2 + ldrh r0, [r5, r0] + cmp r0, #0x0 + beq _020306F2 + add r4, r0, #0x0 + add r0, r2, #0x1 + ldrsb r0, [r5, r0] + sub r1, r0, #0x1 + add r0, r2, #0x1 + strb r1, [r5, r0] + ldr r1, [r7, #0x4] + ldrsb r0, [r1, r0] + cmp r0, #0x0 + bge _0203077E + add r0, r2, #0x2 + strh r6, [r1, r0] + b _0203077E +_020306F2: + add r0, r2, #0x0 + sub r0, #0x34 + add r6, r5, r0 + sub r2, #0x34 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r5, r2] + ldr r3, [r6, #0x4] + bl _ll_mul + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r6, #0x10] + ldr r1, [r6, #0x14] + add r0, r0, r3 + adc r1, r2 + ldr r2, _020307A0 ; =0x000005F8 + str r0, [r5, r2] + mov r2, #0x0 + str r1, [r6, #0x4] + lsr r0, r1, #0x1e + lsl r1, r2, #0x2 + orr r1, r0 + cmp r1, #0x3 + bhi _02030746 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02030730: ; jump table (using 16-bit offset) + .short _02030738 - _02030730 - 2; case 0 + .short _0203073C - _02030730 - 2; case 1 + .short _02030740 - _02030730 - 2; case 2 + .short _02030744 - _02030730 - 2; case 3 +_02030738: + mov r4, #0x20 + b _02030746 +_0203073C: + mov r4, #0x10 + b _02030746 +_02030740: + mov r4, #0x40 + b _02030746 +_02030744: + mov r4, #0x80 +_02030746: + ldr r0, _02030798 ; =0x021C59F4 + ldr r5, [r0, #0x4] + ldr r0, _020307A0 ; =0x000005F8 + add r6, r5, r0 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r6, #0x0] + ldr r3, [r6, #0x4] + bl _ll_mul + ldr r3, [r6, #0x10] + ldr r2, [r6, #0x14] + add r0, r3, r0 + adc r2, r1 + ldr r1, _020307A0 ; =0x000005F8 + mov r3, #0x0 + str r0, [r5, r1] + str r2, [r6, #0x4] + lsr r0, r2, #0x1c + lsl r2, r3, #0x4 + orr r2, r0 + add r0, r1, #0x0 + add r0, #0x35 + strb r2, [r5, r0] + ldr r0, _02030798 ; =0x021C59F4 + add r1, #0x36 + ldr r0, [r0, #0x4] + strh r4, [r0, r1] +_0203077E: + ldr r2, _02030798 ; =0x021C59F4 + ldr r1, _020307A4 ; =0x00000628 + ldr r5, [r2, #0x4] + mov r0, #0xf0 + ldrh r3, [r5, r1] + bic r3, r0 + strh r3, [r5, r1] + ldr r2, [r2, #0x4] + ldrh r0, [r2, r1] + add r0, r0, r4 + strh r0, [r2, r1] +_02030794: + pop {r3-r7, pc} + nop +_02030798: .word 0x021C59F4 +_0203079C: .word 0x0000062C +_020307A0: .word 0x000005F8 +_020307A4: .word 0x00000628 + + thumb_func_start FUN_020307A8 +FUN_020307A8: ; 0x020307A8 + ldr r0, _020307B4 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020307B8 ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307B4: .word 0x021C59F4 +_020307B8: .word 0x0000062C + + thumb_func_start FUN_020307BC +FUN_020307BC: ; 0x020307BC + ldr r0, _020307C8 ; =0x021C59F4 + mov r2, #0x2 + ldr r1, [r0, #0x4] + ldr r0, _020307CC ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307C8: .word 0x021C59F4 +_020307CC: .word 0x0000062C + + thumb_func_start FUN_020307D0 +FUN_020307D0: ; 0x020307D0 + ldr r0, _020307DC ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _020307E0 ; =0x0000062C + strb r2, [r1, r0] + bx lr + .balign 4 +_020307DC: .word 0x021C59F4 +_020307E0: .word 0x0000062C + + thumb_func_start FUN_020307E4 +FUN_020307E4: ; 0x020307E4 + push {r4-r7} + ldr r4, _02030868 ; =0x021C59F4 + lsl r6, r1, #0x1 + ldr r2, [r4, #0x4] + mov r5, #0x0 + add r3, r2, r6 + mov r2, #0x61 + lsl r2, r2, #0x4 + strh r5, [r3, r2] + ldrb r5, [r0, #0x0] + mov r3, #0x10 + add r7, r5, #0x0 + and r7, r3 + cmp r7, #0x10 + bne _02030860 + mov r7, #0xc + and r5, r7 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + bne _0203081A + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x40 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203081A: + cmp r5, #0x4 + bne _0203082C + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x80 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203082C: + cmp r5, #0x8 + bne _0203083E + ldr r3, [r4, #0x4] + add r4, r3, r2 + ldrh r3, [r4, r6] + mov r2, #0x20 + orr r2, r3 + strh r2, [r4, r6] + b _0203084C +_0203083E: + cmp r5, #0xc + bne _0203084C + ldr r4, [r4, #0x4] + add r4, r4, r2 + ldrh r2, [r4, r6] + orr r2, r3 + strh r2, [r4, r6] +_0203084C: + ldrb r0, [r0, #0x0] + asr r2, r0, #0x5 + mov r0, #0x7 + and r2, r0 + ldr r0, _02030868 ; =0x021C59F4 + ldr r0, [r0, #0x4] + add r1, r0, r1 + mov r0, #0x62 + lsl r0, r0, #0x4 + strb r2, [r1, r0] +_02030860: + mov r0, #0x1 + pop {r4-r7} + bx lr + nop +_02030868: .word 0x021C59F4 + + thumb_func_start FUN_0203086C +FUN_0203086C: ; 0x0203086C + bx lr + .balign 4 + + thumb_func_start FUN_02030870 +FUN_02030870: ; 0x02030870 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0203091C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030920 ; =0x0000062A + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02030884 + mov r0, #0x0 + pop {r4, pc} +_02030884: + bl FUN_02030FE0 + cmp r0, #0x0 + bne _02030890 + mov r0, #0x0 + pop {r4, pc} +_02030890: + ldr r0, _0203091C ; =0x021C59F4 + ldr r2, [r0, #0x4] + ldr r0, _02030924 ; =0x00000681 + ldrb r1, [r2, r0] + cmp r1, #0x0 + beq _020308A0 + sub r1, r1, #0x1 + strb r1, [r2, r0] +_020308A0: + ldr r1, _0203091C ; =0x021C59F4 + ldr r0, _02030928 ; =0x00000628 + ldr r2, [r1, #0x4] + mov r3, #0x40 + ldrh r2, [r2, r0] + tst r3, r2 + beq _020308C0 + ldrb r3, [r4, #0x0] + mov r2, #0x10 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308C0: + mov r3, #0x80 + tst r3, r2 + beq _020308D8 + ldrb r3, [r4, #0x0] + mov r2, #0x14 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308D8: + mov r3, #0x20 + tst r3, r2 + beq _020308F0 + ldrb r3, [r4, #0x0] + mov r2, #0x18 + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] + b _02030906 +_020308F0: + mov r3, #0x10 + tst r2, r3 + beq _02030906 + ldrb r3, [r4, #0x0] + mov r2, #0x1c + add r0, #0x59 + orr r2, r3 + strb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + mov r2, #0x8 + strb r2, [r1, r0] +_02030906: + ldr r0, _0203091C ; =0x021C59F4 + ldrb r2, [r4, #0x0] + ldr r1, [r0, #0x4] + ldr r0, _0203092C ; =0x0000062B + ldrb r0, [r1, r0] + lsl r0, r0, #0x5 + orr r0, r2 + strb r0, [r4, #0x0] + mov r0, #0x0 + pop {r4, pc} + nop +_0203091C: .word 0x021C59F4 +_02030920: .word 0x0000062A +_02030924: .word 0x00000681 +_02030928: .word 0x00000628 +_0203092C: .word 0x0000062B + + thumb_func_start FUN_02030930 +FUN_02030930: ; 0x02030930 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + add r5, r0, #0x0 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + ldr r0, _020309F0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _020309F4 ; =0x00000684 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030960 + mov r0, #0x0 + b _02030962 +_02030960: + mov r0, #0x1 +_02030962: + strb r0, [r4, #0x0] + bl FUN_0202FA28 + cmp r0, #0x0 + bne _02030972 + add r0, r4, #0x0 + bl FUN_02030870 +_02030972: + ldr r1, _020309F0 ; =0x021C59F4 + ldr r0, _020309F4 ; =0x00000684 + ldr r2, [r1, #0x4] + mov r3, #0x0 + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + ldr r0, _020309F8 ; =0x0000054C + add r0, r1, r0 + bl FUN_0202D4E4 + cmp r0, #0x0 + beq _0203099E + ldrb r1, [r4, #0x0] + mov r0, #0x2 + orr r0, r1 + strb r0, [r4, #0x0] + ldrb r0, [r4, #0x0] + cmp r0, #0x2 + bne _020309E8 + add sp, #0x8 + mov r0, #0x0 + pop {r3-r5, pc} +_0203099E: + sub r0, r5, #0x1 + str r0, [sp, #0x4] + add r0, r4, #0x1 + str r0, [sp, #0x0] + ldr r0, _020309F0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020309F8 ; =0x0000054C + add r0, r1, r0 + add r1, sp, #0x0 + bl FUN_0202D760 + cmp r0, #0x0 + bne _020309C4 + ldr r0, _020309F0 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _020309F4 ; =0x00000684 + strb r2, [r1, r0] +_020309C4: + bl FUN_0202FA28 + cmp r0, #0x1 + bne _020309E8 + ldr r2, _020309F0 ; =0x021C59F4 + ldr r1, _020309FC ; =0x0000065E + ldr r3, [r2, #0x4] + ldrb r0, [r3, r1] + add r0, r0, #0x1 + strb r0, [r3, r1] + ldr r2, [r2, #0x4] + ldrb r0, [r4, #0x0] + ldrb r1, [r2, r1] + lsl r2, r1, #0x4 + mov r1, #0xf0 + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x0] +_020309E8: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r5, pc} + nop +_020309F0: .word 0x021C59F4 +_020309F4: .word 0x00000684 +_020309F8: .word 0x0000054C +_020309FC: .word 0x0000065E + + thumb_func_start FUN_02030A00 +FUN_02030A00: ; 0x02030A00 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0xb + strb r0, [r4, #0x0] + ldr r0, _02030A6C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030A1A + mov r0, #0x0 + b _02030A1C +_02030A1A: + mov r0, #0x1 +_02030A1C: + strb r0, [r4, #0x1] + bl FUN_0202CB8C + asr r1, r0, #0x8 + strb r1, [r4, #0x2] + strb r0, [r4, #0x3] + mov r0, #0xbb + str r0, [sp, #0x4] + add r0, r4, #0x5 + str r0, [sp, #0x0] + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030A74 ; =0x0000056C + add r0, r1, r0 + add r1, sp, #0x0 + bl FUN_0202D760 + cmp r0, #0x0 + beq _02030A5A + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + strb r2, [r1, r0] + ldr r1, [sp, #0x4] + mov r0, #0xbb + sub r0, r0, r1 + add sp, #0x8 + strb r0, [r4, #0x4] + pop {r4, pc} +_02030A5A: + ldr r0, _02030A6C ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _02030A70 ; =0x00000685 + strb r2, [r1, r0] + mov r0, #0xbb + strb r0, [r4, #0x4] + add sp, #0x8 + pop {r4, pc} + .balign 4 +_02030A6C: .word 0x021C59F4 +_02030A70: .word 0x00000685 +_02030A74: .word 0x0000056C + + thumb_func_start FUN_02030A78 +FUN_02030A78: ; 0x02030A78 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + bne _02030A9C + bl FUN_02031280 + cmp r0, #0x0 + bne _02030A9C + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030A9C: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02030AD4 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030AD8 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + cmp r0, #0x0 + beq _02030AC0 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030AC0: + bl FUN_02033534 + cmp r0, #0xa + bne _02030ACC + bl FUN_02031454 +_02030ACC: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02030AD4: .word 0x021C59F4 +_02030AD8: .word 0x0000054C + + thumb_func_start FUN_02030ADC +FUN_02030ADC: ; 0x02030ADC + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + bne _02030B00 + bl FUN_02031280 + cmp r0, #0x0 + bne _02030B00 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B00: + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02030B34 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030B38 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + cmp r0, #0x0 + beq _02030B22 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030B22: + bl FUN_02033534 + cmp r0, #0xa + bne _02030B2E + bl FUN_02031454 +_02030B2E: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02030B34: .word 0x021C59F4 +_02030B38: .word 0x0000054C + + thumb_func_start FUN_02030B3C +FUN_02030B3C: ; 0x02030B3C + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + beq _02030B58 + bl ErrorHandling + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B58: + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + bne _02030B70 + bl FUN_02031280 + cmp r0, #0x0 + bne _02030B70 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030B70: + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030B86 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02030A78 + add sp, #0x8 + pop {r4-r6, pc} +_02030B86: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02030BBC ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030BC0 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + cmp r0, #0x0 + beq _02030BAA + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030BAA: + bl FUN_02033534 + cmp r0, #0xa + bne _02030BB6 + bl FUN_02031454 +_02030BB6: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02030BBC: .word 0x021C59F4 +_02030BC0: .word 0x0000056C + + thumb_func_start FUN_02030BC4 +FUN_02030BC4: ; 0x02030BC4 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + beq _02030BE0 + bl FUN_02031454 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030BE0: + mov r0, #0x0 + bl FUN_02030E7C + cmp r0, #0x0 + bne _02030BF8 + bl FUN_02031280 + cmp r0, #0x0 + bne _02030BF8 + add sp, #0x8 + mov r0, #0x0 + pop {r4-r6, pc} +_02030BF8: + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02030C0E + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02030ADC + add sp, #0x8 + pop {r4-r6, pc} +_02030C0E: + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02030C44 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02030C48 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + cmp r0, #0x0 + beq _02030C30 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r6, pc} +_02030C30: + bl FUN_02033534 + cmp r0, #0xa + bne _02030C3C + bl FUN_02031454 +_02030C3C: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02030C44: .word 0x021C59F4 +_02030C48: .word 0x0000056C + + thumb_func_start FUN_02030C4C +FUN_02030C4C: ; 0x02030C4C + ldr r3, _02030C54 ; =FUN_02030BC4 + mov r2, #0x0 + bx r3 + nop +_02030C54: .word FUN_02030BC4 + + thumb_func_start FUN_02030C58 +FUN_02030C58: ; 0x02030C58 + ldr r0, _02030C64 ; =0x021C59F4 + ldr r3, _02030C68 ; =FUN_0202D498 + ldr r1, [r0, #0x4] + ldr r0, _02030C6C ; =0x00000464 + add r0, r1, r0 + bx r3 + .balign 4 +_02030C64: .word 0x021C59F4 +_02030C68: .word FUN_0202D498 +_02030C6C: .word 0x00000464 + + thumb_func_start FUN_02030C70 +FUN_02030C70: ; 0x02030C70 + push {r4, lr} + ldr r4, [sp, #0x8] + bl FUN_0202D934 + mov r0, #0xee + strb r0, [r4, #0xa] + ldr r0, _02030C88 ; =0x0000FFFF + strh r0, [r4, #0x8] + mov r0, #0x0 + str r0, [r4, #0x4] + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_02030C88: .word 0x0000FFFF + + thumb_func_start FUN_02030C8C +FUN_02030C8C: ; 0x02030C8C + push {r4-r7, lr} + sub sp, #0x14 + add r6, r0, #0x0 + str r1, [sp, #0x4] + str r2, [sp, #0x8] + ldr r5, [sp, #0x28] + bl FUN_0202D478 + cmp r0, #0x0 + beq _02030D94 +_02030CA0: + ldrb r7, [r5, #0xa] + cmp r7, #0xee + bne _02030CB2 + add r0, r6, #0x0 + bl FUN_0202D41C + add r7, r0, #0x0 + cmp r7, #0xee + beq _02030D8A +_02030CB2: + mov r0, #0x4 + ldrsh r0, [r6, r0] + strb r7, [r5, #0xa] + ldrh r4, [r5, #0x8] + str r0, [sp, #0x10] + ldr r0, _02030D98 ; =0x0000FFFF + cmp r4, r0 + bne _02030D06 + add r0, r7, #0x0 + bl FUN_0202D9A0 + add r4, r0, #0x0 + ldr r0, _02030D9C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030DA0 ; =0x00000689 + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030D94 + ldr r0, _02030D98 ; =0x0000FFFF + cmp r4, r0 + bne _02030D04 + add r0, r6, #0x0 + bl FUN_0202D478 + cmp r0, #0x1 + bge _02030CEE + ldr r0, [sp, #0x10] + add sp, #0x14 + strh r0, [r6, #0x4] + pop {r4-r7, pc} +_02030CEE: + add r0, r6, #0x0 + bl FUN_0202D41C + lsl r4, r0, #0x8 + add r0, r6, #0x0 + bl FUN_0202D41C + add r4, r4, r0 + mov r0, #0x4 + ldrsh r0, [r6, r0] + str r0, [sp, #0x10] +_02030D04: + strh r4, [r5, #0x8] +_02030D06: + add r0, r7, #0x0 + bl FUN_0202DA04 + cmp r0, #0x0 + beq _02030D5E + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02030D22 + ldrh r2, [r5, #0x8] + ldr r1, [sp, #0x4] + add r0, r7, #0x0 + bl FUN_0202DA40 + str r0, [r5, #0x4] +_02030D22: + ldr r2, [r5, #0x0] + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + sub r2, r4, r2 + bl FUN_0202D400 + ldr r2, [r5, #0x4] + str r0, [sp, #0xc] + cmp r2, #0x0 + beq _02030D42 + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x8] + add r1, r2, r1 + ldr r2, [sp, #0xc] + bl MI_CpuCopy8 +_02030D42: + ldr r1, [r5, #0x0] + ldr r0, [sp, #0xc] + add r0, r1, r0 + str r0, [r5, #0x0] + cmp r0, r4 + blt _02030D8A + str r5, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r3, [r5, #0x4] + add r1, r7, #0x0 + add r2, r4, #0x0 + bl FUN_02030C70 + b _02030D8A +_02030D5E: + add r0, r6, #0x0 + bl FUN_0202D478 + cmp r0, r4 + blt _02030D82 + ldr r1, [sp, #0x8] + add r0, r6, #0x0 + add r2, r4, #0x0 + bl FUN_0202D400 + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x8] + add r1, r7, #0x0 + add r2, r4, #0x0 + str r5, [sp, #0x0] + bl FUN_02030C70 + b _02030D8A +_02030D82: + ldr r0, [sp, #0x10] + add sp, #0x14 + strh r0, [r6, #0x4] + pop {r4-r7, pc} +_02030D8A: + add r0, r6, #0x0 + bl FUN_0202D478 + cmp r0, #0x0 + bne _02030CA0 +_02030D94: + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02030D98: .word 0x0000FFFF +_02030D9C: .word 0x021C59F4 +_02030DA0: .word 0x00000689 + + thumb_func_start FUN_02030DA4 +FUN_02030DA4: ; 0x02030DA4 + push {r3, lr} + ldr r0, _02030DF0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030DEE + ldr r0, _02030DF4 ; =0x0000068B + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030DEE + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl FUN_0202D4BC + ldr r0, _02030DF0 ; =0x021C59F4 + ldr r1, [r0, #0x4] + mov r0, #0x47 + lsl r0, r0, #0x4 + add r0, r1, r0 + bl FUN_0202D478 + cmp r0, #0x0 + ble _02030DEE + ldr r0, _02030DF0 ; =0x021C59F4 + mov r2, #0x47 + ldr r3, [r0, #0x4] + ldr r0, _02030DF8 ; =0x000005EC + lsl r2, r2, #0x4 + add r0, r3, r0 + str r0, [sp, #0x0] + add r0, r3, r2 + sub r2, #0x10 + ldr r2, [r3, r2] + mov r1, #0x0 + mov r3, #0x1 + bl FUN_02030C8C +_02030DEE: + pop {r3, pc} + .balign 4 +_02030DF0: .word 0x021C59F4 +_02030DF4: .word 0x0000068B +_02030DF8: .word 0x000005EC + + thumb_func_start FUN_02030DFC +FUN_02030DFC: ; 0x02030DFC + push {r3-r7, lr} + ldr r0, _02030E6C ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030E68 + ldr r0, _02030E70 ; =0x0000068B + ldrb r0, [r1, r0] + cmp r0, #0x0 + bne _02030E68 + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r7, r0, #0x1 + mov r4, #0x0 + cmp r7, #0x0 + ble _02030E68 + ldr r6, _02030E6C ; =0x021C59F4 + add r5, r4, #0x0 +_02030E26: + ldr r1, [r6, #0x4] + ldr r0, _02030E74 ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r5 + bl FUN_0202D4BC + ldr r1, [r6, #0x4] + ldr r0, _02030E74 ; =0x000004E8 + add r0, r1, r0 + add r0, r0, r5 + bl FUN_0202D478 + cmp r0, #0x0 + ble _02030E60 + ldr r3, [r6, #0x4] + ldr r0, _02030E78 ; =0x0000058C + mov r2, #0x46 + add r0, r3, r0 + add r0, r0, r5 + str r0, [sp, #0x0] + ldr r0, _02030E74 ; =0x000004E8 + lsl r2, r2, #0x4 + add r0, r3, r0 + ldr r2, [r3, r2] + add r0, r0, r5 + add r1, r4, #0x0 + mov r3, #0x0 + bl FUN_02030C8C +_02030E60: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, r7 + blt _02030E26 +_02030E68: + pop {r3-r7, pc} + nop +_02030E6C: .word 0x021C59F4 +_02030E70: .word 0x0000068B +_02030E74: .word 0x000004E8 +_02030E78: .word 0x0000058C + + thumb_func_start FUN_02030E7C +FUN_02030E7C: ; 0x02030E7C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02030F14 ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _02030E8C + mov r0, #0x0 + pop {r4, pc} +_02030E8C: + bl FUN_02033534 + cmp r0, #0x13 + blt _02030EC0 + ldr r0, _02030F14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030F18 ; =0x00000687 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02030EBC + bl MOD04_021D8018 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02030EBC + cmp r4, #0x0 + bne _02030EB4 + mov r0, #0x1 + pop {r4, pc} +_02030EB4: + cmp r4, #0x1 + bne _02030EBC + mov r0, #0x1 + pop {r4, pc} +_02030EBC: + mov r0, #0x0 + pop {r4, pc} +_02030EC0: + bl FUN_02030F40 + cmp r0, #0x0 + bne _02030ECC + mov r0, #0x0 + pop {r4, pc} +_02030ECC: + bl FUN_0202CBD4 + cmp r0, #0x4 + beq _02030ED8 + mov r0, #0x0 + pop {r4, pc} +_02030ED8: + bl FUN_02031190 + cmp r4, r0 + bne _02030EE4 + mov r0, #0x1 + pop {r4, pc} +_02030EE4: + bl FUN_02031190 + cmp r0, #0x0 + bne _02030EFE + bl FUN_0202CB8C + mov r1, #0x1 + add r2, r1, #0x0 + lsl r2, r4 + tst r0, r2 + beq _02030F10 + add r0, r1, #0x0 + pop {r4, pc} +_02030EFE: + ldr r0, _02030F14 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02030F1C ; =0x0000065C + ldrh r2, [r1, r0] + mov r0, #0x1 + add r1, r0, #0x0 + lsl r1, r4 + tst r1, r2 + bne _02030F12 +_02030F10: + mov r0, #0x0 +_02030F12: + pop {r4, pc} + .balign 4 +_02030F14: .word 0x021C59F4 +_02030F18: .word 0x00000687 +_02030F1C: .word 0x0000065C + + thumb_func_start FUN_02030F20 +FUN_02030F20: ; 0x02030F20 + push {r3-r5, lr} + mov r4, #0x0 + add r5, r4, #0x0 +_02030F26: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _02030F34 + add r4, r4, #0x1 +_02030F34: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _02030F26 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02030F40 +FUN_02030F40: ; 0x02030F40 + push {r3, lr} + ldr r0, _02030F5C ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02030F56 + bl FUN_02033534 + cmp r0, #0x13 + blt _02030F56 + mov r0, #0x1 + pop {r3, pc} +_02030F56: + bl FUN_0202EDF8 + pop {r3, pc} + .balign 4 +_02030F5C: .word 0x021C59F4 + + thumb_func_start FUN_02030F60 +FUN_02030F60: ; 0x02030F60 + ldr r1, _02030F6C ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _02030F70 ; =0x0000062B + strb r0, [r2, r1] + bx lr + nop +_02030F6C: .word 0x021C59F4 +_02030F70: .word 0x0000062B + + thumb_func_start FUN_02030F74 +FUN_02030F74: ; 0x02030F74 + ldr r1, _02030F84 ; =0x021C59F4 + ldr r1, [r1, #0x4] + add r1, r1, r0 + mov r0, #0x62 + lsl r0, r0, #0x4 + ldrb r0, [r1, r0] + bx lr + nop +_02030F84: .word 0x021C59F4 + + thumb_func_start FUN_02030F88 +FUN_02030F88: ; 0x02030F88 + ldr r1, _02030FA4 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + bne _02030F94 + mov r0, #0x0 + bx lr +_02030F94: + mov r1, #0x61 + lsl r1, r1, #0x4 + add r3, r2, r1 + lsl r2, r0, #0x1 + ldrh r0, [r3, r2] + mov r1, #0x0 + strh r1, [r3, r2] + bx lr + .balign 4 +_02030FA4: .word 0x021C59F4 + + thumb_func_start FUN_02030FA8 +FUN_02030FA8: ; 0x02030FA8 + ldr r0, _02030FC0 ; =0x021C59F4 + ldr r3, [r0, #0x4] + cmp r3, #0x0 + beq _02030FBC + ldr r1, _02030FC4 ; =0x00000628 + mov r0, #0x2 + ldrh r2, [r3, r1] + lsl r0, r0, #0xe + orr r0, r2 + strh r0, [r3, r1] +_02030FBC: + bx lr + nop +_02030FC0: .word 0x021C59F4 +_02030FC4: .word 0x00000628 + + thumb_func_start FUN_02030FC8 +FUN_02030FC8: ; 0x02030FC8 + ldr r0, _02030FD8 ; =0x021C59F4 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _02030FD6 + ldr r0, _02030FDC ; =0x00000628 + mov r1, #0x0 + strh r1, [r2, r0] +_02030FD6: + bx lr + .balign 4 +_02030FD8: .word 0x021C59F4 +_02030FDC: .word 0x00000628 + + thumb_func_start FUN_02030FE0 +FUN_02030FE0: ; 0x02030FE0 + ldr r0, _02030FF8 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02030FF4 + ldr r0, _02030FFC ; =0x00000628 + ldrh r1, [r1, r0] + mov r0, #0x2 + lsl r0, r0, #0xe + and r0, r1 + bx lr +_02030FF4: + mov r0, #0x1 + bx lr + .balign 4 +_02030FF8: .word 0x021C59F4 +_02030FFC: .word 0x00000628 + + thumb_func_start FUN_02031000 +FUN_02031000: ; 0x02031000 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_0202FA28 + cmp r0, #0x1 + bne _02031030 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02031050 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031054 ; =0x0000054C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + add sp, #0x8 + pop {r4-r6, pc} +_02031030: + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + ldr r0, _02031050 ; =0x021C59F4 + add r2, r4, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031058 ; =0x0000056C + add r3, r6, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + bl FUN_0202D684 + add sp, #0x8 + pop {r4-r6, pc} + nop +_02031050: .word 0x021C59F4 +_02031054: .word 0x0000054C +_02031058: .word 0x0000056C + + thumb_func_start FUN_0203105C +FUN_0203105C: ; 0x0203105C + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, _02031080 ; =0x021C59F4 + add r4, r1, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031084 ; =0x0000054C + add r3, r2, #0x0 + add r0, r1, r0 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_0202D684 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02031080: .word 0x021C59F4 +_02031084: .word 0x0000054C + + thumb_func_start FUN_02031088 +FUN_02031088: ; 0x02031088 + push {r3, lr} + ldr r0, _02031100 ; =0x021C59F4 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _020310FC + ldr r1, _02031104 ; =0x0000067B + ldrb r0, [r2, r1] + cmp r0, #0x1 + beq _020310A0 + cmp r0, #0x3 + beq _020310D8 + pop {r3, pc} +_020310A0: + bl FUN_0202FA28 + cmp r0, #0x1 + bne _020310B8 + ldr r1, _02031100 ; =0x021C59F4 + mov r0, #0xb + ldr r2, [r1, #0x4] + ldr r1, _02031108 ; =0x0000067C + add r1, r2, r1 + bl FUN_020311D0 + b _020310C8 +_020310B8: + ldr r1, _02031100 ; =0x021C59F4 + mov r0, #0xb + ldr r2, [r1, #0x4] + ldr r1, _02031108 ; =0x0000067C + add r1, r2, r1 + mov r2, #0x1 + bl FUN_02030BC4 +_020310C8: + cmp r0, #0x0 + beq _020310FC + ldr r0, _02031100 ; =0x021C59F4 + mov r2, #0x2 + ldr r1, [r0, #0x4] + ldr r0, _02031104 ; =0x0000067B + strb r2, [r1, r0] + pop {r3, pc} +_020310D8: + add r1, r1, #0x1 + mov r0, #0xc + add r1, r2, r1 + bl FUN_020311D0 + cmp r0, #0x0 + beq _020310FC + ldr r0, _02031100 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02031108 ; =0x0000067C + ldrb r0, [r1, r0] + bl FUN_0202F9E0 + ldr r0, _02031100 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _02031104 ; =0x0000067B + strb r2, [r1, r0] +_020310FC: + pop {r3, pc} + nop +_02031100: .word 0x021C59F4 +_02031104: .word 0x0000067B +_02031108: .word 0x0000067C + + thumb_func_start FUN_0203110C +FUN_0203110C: ; 0x0203110C + push {r4, lr} + add r4, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _0203112A + ldr r1, _0203112C ; =0x021C59F4 + ldr r0, _02031130 ; =0x0000067B + ldr r2, [r1, #0x4] + mov r3, #0x1 + strb r3, [r2, r0] + ldrb r2, [r4, #0x0] + ldr r1, [r1, #0x4] + add r0, r0, #0x1 + strb r2, [r1, r0] +_0203112A: + pop {r4, pc} + .balign 4 +_0203112C: .word 0x021C59F4 +_02031130: .word 0x0000067B + + thumb_func_start FUN_02031134 +FUN_02031134: ; 0x02031134 + push {r4, lr} + add r4, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + beq _02031152 + ldr r1, _02031154 ; =0x021C59F4 + ldrb r3, [r4, #0x0] + ldr r2, [r1, #0x4] + ldr r0, _02031158 ; =0x0000067C + strb r3, [r2, r0] + ldr r1, [r1, #0x4] + mov r2, #0x3 + sub r0, r0, #0x1 + strb r2, [r1, r0] +_02031152: + pop {r4, pc} + .balign 4 +_02031154: .word 0x021C59F4 +_02031158: .word 0x0000067C + + thumb_func_start FUN_0203115C +FUN_0203115C: ; 0x0203115C + push {r4, lr} + add r4, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _02031184 + ldr r0, _02031188 ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _0203118C ; =0x0000067B + ldrb r0, [r1, r0] + cmp r0, #0x2 + bne _02031184 + ldrb r0, [r4, #0x0] + bl FUN_0202F9E0 + ldr r0, _02031188 ; =0x021C59F4 + mov r2, #0x0 + ldr r1, [r0, #0x4] + ldr r0, _0203118C ; =0x0000067B + strb r2, [r1, r0] +_02031184: + pop {r4, pc} + nop +_02031188: .word 0x021C59F4 +_0203118C: .word 0x0000067B + + thumb_func_start FUN_02031190 +FUN_02031190: ; 0x02031190 + push {r3, lr} + ldr r0, _020311CC ; =0x021C59F4 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _020311C6 + bl FUN_02033534 + cmp r0, #0x13 + blt _020311B4 + bl MOD04_021D8018 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020311C6 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, pc} +_020311B4: + bl FUN_02031280 + cmp r0, #0x0 + beq _020311C0 + mov r0, #0x0 + pop {r3, pc} +_020311C0: + bl FUN_0202D19C + pop {r3, pc} +_020311C6: + mov r0, #0x0 + pop {r3, pc} + nop +_020311CC: .word 0x021C59F4 + + thumb_func_start FUN_020311D0 +FUN_020311D0: ; 0x020311D0 + ldr r3, _020311D8 ; =FUN_02030ADC + mov r2, #0x0 + bx r3 + nop +_020311D8: .word FUN_02030ADC + + thumb_func_start FUN_020311DC +FUN_020311DC: ; 0x020311DC + ldr r3, _020311E4 ; =FUN_02030ADC + mov r1, #0x0 + add r2, r1, #0x0 + bx r3 + .balign 4 +_020311E4: .word FUN_02030ADC + + thumb_func_start FUN_020311E8 +FUN_020311E8: ; 0x020311E8 + ldr r3, _020311EC ; =FUN_0202EE24 + bx r3 + .balign 4 +_020311EC: .word FUN_0202EE24 + + thumb_func_start FUN_020311F0 +FUN_020311F0: ; 0x020311F0 + push {r3, lr} + bl FUN_02031280 + cmp r0, #0x0 + beq _020311FE + mov r0, #0x0 + pop {r3, pc} +_020311FE: + ldr r0, _02031220 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203121A + ldr r0, _02031224 ; =0x00000689 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _0203121A + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_020334E8 + mov r0, #0x1 + pop {r3, pc} +_0203121A: + bl FUN_0202EE60 + pop {r3, pc} + .balign 4 +_02031220: .word 0x021C59F4 +_02031224: .word 0x00000689 + + thumb_func_start FUN_02031228 +FUN_02031228: ; 0x02031228 + push {r3, lr} + bl FUN_0202D858 + cmp r0, #0x5 + blo _02031236 + mov r0, #0xc + pop {r3, pc} +_02031236: + bl FUN_0202FA28 + cmp r0, #0x0 + bne _02031242 + mov r0, #0xc + pop {r3, pc} +_02031242: + mov r0, #0x26 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02031248 +FUN_02031248: ; 0x02031248 + push {r3, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r0, r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02031258 +FUN_02031258: ; 0x02031258 + push {r3, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D884 + add r0, r0, #0x1 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02031268 +FUN_02031268: ; 0x02031268 + ldr r1, _02031278 ; =0x021C59F4 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _02031274 + ldr r1, _0203127C ; =0x00000686 + strb r0, [r2, r1] +_02031274: + bx lr + nop +_02031278: .word 0x021C59F4 +_0203127C: .word 0x00000686 + + thumb_func_start FUN_02031280 +FUN_02031280: ; 0x02031280 + ldr r0, _02031294 ; =0x021C59F4 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203128E + ldr r0, _02031298 ; =0x00000686 + ldrb r0, [r1, r0] + bx lr +_0203128E: + mov r0, #0x0 + bx lr + nop +_02031294: .word 0x021C59F4 +_02031298: .word 0x00000686 + + thumb_func_start FUN_0203129C +FUN_0203129C: ; 0x0203129C + push {r3, lr} + bl FUN_0202F03C + cmp r0, #0x0 + bne _020312B6 + bl FUN_02031190 + cmp r0, #0x0 + bne _020312B6 + mov r0, #0x2 + add r1, sp, #0x0 + bl FUN_02030C4C +_020312B6: + bl FUN_0202F05C + pop {r3, pc} + + thumb_func_start FUN_020312BC +FUN_020312BC: ; 0x020312BC + push {r3-r7, lr} + sub sp, #0x20 + add r4, r0, #0x0 + add r0, sp, #0x10 + add r1, sp, #0x4 + bl FUN_0201265C + ldr r0, _02031340 ; =0x021C48B8 + ldr r6, [sp, #0x10] + mov r5, #0x0 + lsr r7, r6, #0x1c + lsl r5, r5, #0x4 + ldr r1, [sp, #0xc] + ldr r0, [r0, #0x2c] + lsl r6, r6, #0x4 + add r3, r1, r0 + ldr r0, [sp, #0x18] + orr r5, r7 + str r0, [sp, #0x0] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r6, r0, r6 + ldr r0, _02031344 ; =0x00000000 + ldr r2, [sp, #0x8] + adc r0, r5 + lsr r5, r6, #0x1b + lsl r0, r0, #0x5 + orr r0, r5 + ldr r5, [sp, #0x0] + lsl r6, r6, #0x5 + add r6, r5, r6 + ldr r5, _02031344 ; =0x00000000 + adc r5, r0 + lsr r0, r6, #0x1b + lsl r5, r5, #0x5 + orr r5, r0 + lsl r0, r6, #0x5 + add r6, r1, r0 + ldr r1, _02031344 ; =0x00000000 + adc r1, r5 + lsr r0, r6, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + lsl r0, r6, #0x6 + add r5, r2, r0 + ldr r2, _02031344 ; =0x00000000 + adc r2, r1 + lsr r0, r5, #0x1a + lsl r1, r2, #0x6 + orr r1, r0 + lsl r0, r5, #0x6 + add r2, r3, r0 + ldr r0, _02031344 ; =0x00000000 + str r2, [r4, #0x0] + adc r0, r1 + str r0, [r4, #0x4] + ldr r1, _02031348 ; =0x6C078965 + ldr r0, _0203134C ; =0x5D588B65 + str r1, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, _02031350 ; =0x00269EC3 + str r0, [r4, #0x10] + mov r0, #0x0 + str r0, [r4, #0x14] + add sp, #0x20 + pop {r3-r7, pc} + .balign 4 +_02031340: .word 0x021C48B8 +_02031344: .word 0x00000000 +_02031348: .word 0x6C078965 +_0203134C: .word 0x5D588B65 +_02031350: .word 0x00269EC3 + + thumb_func_start FUN_02031354 +FUN_02031354: ; 0x02031354 + add r1, r0, #0x0 + ldr r0, _02031364 ; =0x021C59F4 + ldr r3, _02031368 ; =FUN_0202D830 + ldr r2, [r0, #0x4] + ldr r0, _0203136C ; =0x0000056C + add r0, r2, r0 + bx r3 + nop +_02031364: .word 0x021C59F4 +_02031368: .word FUN_0202D830 +_0203136C: .word 0x0000056C + + thumb_func_start FUN_02031370 +FUN_02031370: ; 0x02031370 + ldr r0, _0203137C ; =0x021C59F4 + ldr r3, _02031380 ; =FUN_0202D4E4 + ldr r1, [r0, #0x4] + ldr r0, _02031384 ; =0x0000056C + add r0, r1, r0 + bx r3 + .balign 4 +_0203137C: .word 0x021C59F4 +_02031380: .word FUN_0202D4E4 +_02031384: .word 0x0000056C + + thumb_func_start FUN_02031388 +FUN_02031388: ; 0x02031388 + ldr r0, _02031394 ; =0x021C59F4 + ldr r3, _02031398 ; =FUN_0202D4E4 + ldr r1, [r0, #0x4] + ldr r0, _0203139C ; =0x0000054C + add r0, r1, r0 + bx r3 + .balign 4 +_02031394: .word 0x021C59F4 +_02031398: .word FUN_0202D4E4 +_0203139C: .word 0x0000054C + + thumb_func_start FUN_020313A0 +FUN_020313A0: ; 0x020313A0 + ldr r1, _020313AC ; =0x021C59F4 + ldr r2, [r1, #0x4] + ldr r1, _020313B0 ; =0x00000687 + strb r0, [r2, r1] + bx lr + nop +_020313AC: .word 0x021C59F4 +_020313B0: .word 0x00000687 + + thumb_func_start FUN_020313B4 +FUN_020313B4: ; 0x020313B4 + ldr r2, _020313C4 ; =0x021C59F4 + ldr r2, [r2, #0x4] + cmp r2, #0x0 + beq _020313C2 + add r2, r2, r1 + ldr r1, _020313C8 ; =0x00000677 + strb r0, [r2, r1] +_020313C2: + bx lr + .balign 4 +_020313C4: .word 0x021C59F4 +_020313C8: .word 0x00000677 + + thumb_func_start FUN_020313CC +FUN_020313CC: ; 0x020313CC + ldr r1, _020313E4 ; =0x021C59F4 + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _020313E0 + add r2, r1, r0 + ldr r1, _020313E8 ; =0x00000677 + ldrb r1, [r2, r1] + cmp r1, #0xff + beq _020313E0 + add r0, r1, #0x0 +_020313E0: + bx lr + nop +_020313E4: .word 0x021C59F4 +_020313E8: .word 0x00000677 + + thumb_func_start FUN_020313EC +FUN_020313EC: ; 0x020313EC + push {r3, lr} + bl FUN_02033534 + cmp r0, #0x13 + bge _020313FA + mov r0, #0x0 + pop {r3, pc} +_020313FA: + bl MOD04_021D8624 + pop {r3, pc} + + thumb_func_start FUN_02031400 +FUN_02031400: ; 0x02031400 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02033534 + cmp r0, #0x13 + blt _02031430 + ldr r2, _02031434 ; =0x021C59F4 + mov r1, #0x63 + ldr r0, [r2, #0x4] + lsl r1, r1, #0x4 + str r4, [r0, r1] + cmp r4, #0x0 + beq _02031430 + ldr r3, [r2, #0x4] + mov r4, #0x0 + add r0, r1, #0x4 + str r4, [r3, r0] + add r0, r1, #0x0 + ldr r3, [r2, #0x4] + add r0, #0x8 + str r4, [r3, r0] + ldr r0, [r2, #0x4] + add r1, #0xc + str r4, [r0, r1] +_02031430: + pop {r4, pc} + nop +_02031434: .word 0x021C59F4 + + thumb_func_start FUN_02031438 +FUN_02031438: ; 0x02031438 + ldr r0, _0203144C ; =0x021C59F4 + ldr r1, [r0, #0x4] + ldr r0, _02031450 ; =0x00000681 + ldrb r0, [r1, r0] + cmp r0, #0x0 + beq _02031448 + mov r0, #0x1 + bx lr +_02031448: + mov r0, #0x0 + bx lr + .balign 4 +_0203144C: .word 0x021C59F4 +_02031450: .word 0x00000681 + + thumb_func_start FUN_02031454 +FUN_02031454: ; 0x02031454 + ldr r0, _02031460 ; =0x021C59F4 + mov r2, #0x1 + ldr r1, [r0, #0x4] + ldr r0, _02031464 ; =0x00000689 + strb r2, [r1, r0] + bx lr + .balign 4 +_02031460: .word 0x021C59F4 +_02031464: .word 0x00000689 + + thumb_func_start FUN_02031468 +FUN_02031468: ; 0x02031468 + ldr r0, _02031478 ; =0x021C59F4 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + beq _02031476 + ldr r0, _0203147C ; =0x0000068A + mov r1, #0x1 + strb r1, [r2, r0] +_02031476: + bx lr + .balign 4 +_02031478: .word 0x021C59F4 +_0203147C: .word 0x0000068A + + thumb_func_start FUN_02031480 +FUN_02031480: ; 0x02031480 + push {r4, lr} + ldr r1, _020314C8 ; =0x021C59FC + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _0203149C + ldr r1, _020314CC ; =0x00000253 + bl FUN_02016998 + ldr r1, _020314C8 ; =0x021C59FC + ldr r2, _020314CC ; =0x00000253 + str r0, [r1, #0x0] + mov r1, #0x0 + bl MI_CpuFill8 +_0203149C: + ldr r1, _020314C8 ; =0x021C59FC + mov r3, #0x0 + mov r0, #0xff +_020314A2: + ldr r2, [r1, #0x0] + add r2, r2, r3 + add r3, r3, #0x1 + strb r0, [r2, #0x10] + cmp r3, #0x8 + blt _020314A2 + ldr r3, _020314C8 ; =0x021C59FC + mov r1, #0x25 + ldr r2, [r3, #0x0] + lsl r1, r1, #0x4 + strb r0, [r2, r1] + ldr r4, [r3, #0x0] + add r2, r1, #0x1 + strb r0, [r4, r2] + ldr r2, [r3, #0x0] + mov r4, #0x0 + add r0, r1, #0x2 + strb r4, [r2, r0] + pop {r4, pc} + .balign 4 +_020314C8: .word 0x021C59FC +_020314CC: .word 0x00000253 + + thumb_func_start FUN_020314D0 +FUN_020314D0: ; 0x020314D0 + push {r3, lr} + ldr r0, _020314E4 ; =0x021C59FC + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _020314E4 ; =0x021C59FC + mov r1, #0x0 + str r1, [r0, #0x0] + pop {r3, pc} + nop +_020314E4: .word 0x021C59FC + + thumb_func_start FUN_020314E8 +FUN_020314E8: ; 0x020314E8 + ldr r0, _020314F8 ; =0x021C59FC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020314F4 + mov r0, #0x1 + bx lr +_020314F4: + mov r0, #0x0 + bx lr + .balign 4 +_020314F8: .word 0x021C59FC + + thumb_func_start FUN_020314FC +FUN_020314FC: ; 0x020314FC + push {r3-r6, lr} + sub sp, #0x4 + ldrb r1, [r2, #0x0] + add r5, r0, #0x0 + add r0, sp, #0x0 + strb r1, [r0, #0x0] + bl FUN_02031190 + cmp r0, #0x0 + bne _02031556 + add r0, sp, #0x0 + strb r5, [r0, #0x1] + ldrb r1, [r0, #0x0] + strb r1, [r0, #0x2] + add r1, sp, #0x0 + mov r0, #0x12 + add r1, #0x1 + bl FUN_02030C4C + ldr r6, _0203155C ; =0x021C59FC + add r4, sp, #0x0 + ldr r0, [r6, #0x0] + ldrb r1, [r4, #0x0] + add r0, r0, r5 + mov r5, #0x0 + strb r1, [r0, #0x10] +_02031530: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _02031548 + ldr r0, [r6, #0x0] + ldrb r1, [r4, #0x0] + add r0, r0, r5 + ldrb r0, [r0, #0x10] + cmp r1, r0 + bne _02031556 +_02031548: + add r5, r5, #0x1 + cmp r5, #0x8 + blt _02031530 + mov r0, #0x11 + add r1, sp, #0x0 + bl FUN_02030C4C +_02031556: + add sp, #0x4 + pop {r3-r6, pc} + nop +_0203155C: .word 0x021C59FC + + thumb_func_start FUN_02031560 +FUN_02031560: ; 0x02031560 + ldr r0, _02031570 ; =0x021C59FC + ldrb r3, [r2, #0x1] + ldr r1, [r0, #0x0] + ldrb r0, [r2, #0x0] + add r0, r1, r0 + strb r3, [r0, #0x10] + bx lr + nop +_02031570: .word 0x021C59FC + + thumb_func_start FUN_02031574 +FUN_02031574: ; 0x02031574 + ldr r0, _02031584 ; =0x021C59FC + ldrb r2, [r2, #0x0] + ldr r1, [r0, #0x0] + mov r0, #0x25 + lsl r0, r0, #0x4 + strb r2, [r1, r0] + bx lr + nop +_02031584: .word 0x021C59FC + + thumb_func_start FUN_02031588 +FUN_02031588: ; 0x02031588 + ldr r2, _0203159C ; =0x021C59FC + ldr r1, _020315A0 ; =0x00000251 + ldr r3, [r2, #0x0] + strb r0, [r3, r1] + ldr r2, [r2, #0x0] + mov r3, #0x1 + add r0, r1, #0x1 + strb r3, [r2, r0] + bx lr + nop +_0203159C: .word 0x021C59FC +_020315A0: .word 0x00000251 + + thumb_func_start FUN_020315A4 +FUN_020315A4: ; 0x020315A4 + push {r3, lr} + ldr r0, _020315D0 ; =0x021C59FC + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020315CE + ldr r1, _020315D4 ; =0x00000252 + ldrb r0, [r2, r1] + cmp r0, #0x0 + beq _020315CE + sub r1, r1, #0x1 + mov r0, #0x10 + add r1, r2, r1 + bl FUN_020311D0 + cmp r0, #0x0 + beq _020315CE + ldr r0, _020315D0 ; =0x021C59FC + mov r2, #0x0 + ldr r1, [r0, #0x0] + ldr r0, _020315D4 ; =0x00000252 + strb r2, [r1, r0] +_020315CE: + pop {r3, pc} + .balign 4 +_020315D0: .word 0x021C59FC +_020315D4: .word 0x00000252 + + thumb_func_start FUN_020315D8 +FUN_020315D8: ; 0x020315D8 + ldr r1, _020315F8 ; =0x021C59FC + ldr r2, [r1, #0x0] + cmp r2, #0x0 + bne _020315E4 + mov r0, #0x1 + bx lr +_020315E4: + mov r1, #0x25 + lsl r1, r1, #0x4 + ldrb r1, [r2, r1] + cmp r1, r0 + bne _020315F2 + mov r0, #0x1 + bx lr +_020315F2: + mov r0, #0x0 + bx lr + nop +_020315F8: .word 0x021C59FC + + thumb_func_start FUN_020315FC +FUN_020315FC: ; 0x020315FC + ldr r1, _02031608 ; =0x021C59FC + ldr r1, [r1, #0x0] + add r0, r1, r0 + ldrb r0, [r0, #0x10] + bx lr + nop +_02031608: .word 0x021C59FC + + thumb_func_start FUN_0203160C +FUN_0203160C: ; 0x0203160C + push {r3-r4} + lsl r4, r0, #0x1 + ldr r0, _02031624 ; =0x021C59FC + ldrb r3, [r2, #0x0] + ldr r1, [r0, #0x0] + strb r3, [r1, r4] + ldr r0, [r0, #0x0] + ldrb r1, [r2, #0x1] + add r0, r0, r4 + strb r1, [r0, #0x1] + pop {r3-r4} + bx lr + .balign 4 +_02031624: .word 0x021C59FC + + thumb_func_start FUN_02031628 +FUN_02031628: ; 0x02031628 + mov r0, #0x2 + bx lr + + thumb_func_start FUN_0203162C +FUN_0203162C: ; 0x0203162C + push {r3, lr} + add r2, sp, #0x0 + strb r0, [r2, #0x0] + strb r1, [r2, #0x1] + mov r0, #0x13 + add r1, sp, #0x0 + bl FUN_020311D0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02031640 +FUN_02031640: ; 0x02031640 + ldr r2, _02031664 ; =0x021C59FC + ldr r3, [r2, #0x0] + cmp r3, #0x0 + bne _0203164E + mov r0, #0x0 + mvn r0, r0 + bx lr +_0203164E: + lsl r2, r0, #0x1 + ldrb r0, [r3, r2] + cmp r1, r0 + bne _0203165C + add r0, r3, r2 + ldrb r0, [r0, #0x1] + bx lr +_0203165C: + mov r0, #0x0 + mvn r0, r0 + bx lr + nop +_02031664: .word 0x021C59FC + + thumb_func_start FUN_02031668 +FUN_02031668: ; 0x02031668 + push {r3-r7, lr} + mov r4, #0x0 + ldr r6, _02031688 ; =0x021C59FC + add r5, r4, #0x0 + add r7, r4, #0x0 +_02031672: + ldr r0, [r6, #0x0] + add r1, r7, #0x0 + add r0, r0, r5 + mov r2, #0x2 + bl MI_CpuFill8 + add r4, r4, #0x1 + add r5, r5, #0x2 + cmp r4, #0x8 + blt _02031672 + pop {r3-r7, pc} + .balign 4 +_02031688: .word 0x021C59FC + + thumb_func_start FUN_0203168C +FUN_0203168C: ; 0x0203168C + push {r3-r4} + mov r4, #0x0 + mov r0, #0x92 + ldr r1, _020316A8 ; =0x021C59FC + add r3, r4, #0x0 + lsl r0, r0, #0x2 +_02031698: + ldr r2, [r1, #0x0] + add r2, r2, r4 + add r4, r4, #0x1 + strb r3, [r2, r0] + cmp r4, #0x8 + blt _02031698 + pop {r3-r4} + bx lr + .balign 4 +_020316A8: .word 0x021C59FC + + thumb_func_start FUN_020316AC +FUN_020316AC: ; 0x020316AC + push {r4, lr} + ldr r2, _020316DC ; =0x021C59FC + ldr r3, [r2, #0x0] + cmp r3, #0x0 + beq _020316D8 + add r4, r0, #0x0 + mov r2, #0x46 + mul r4, r2 + add r3, #0x18 + add r0, r1, #0x0 + add r1, r3, r4 + bl MI_CpuCopy8 + ldr r1, _020316DC ; =0x021C59FC + mov r0, #0x14 + ldr r1, [r1, #0x0] + add r1, #0x18 + add r1, r1, r4 + bl FUN_020311D0 + mov r0, #0x1 + pop {r4, pc} +_020316D8: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_020316DC: .word 0x021C59FC + + thumb_func_start FUN_020316E0 +FUN_020316E0: ; 0x020316E0 + ldr r1, _02031700 ; =0x021C59FC + ldr r3, [r1, #0x0] + mov r1, #0x92 + add r2, r3, r0 + lsl r1, r1, #0x2 + ldrb r1, [r2, r1] + cmp r1, #0x0 + beq _020316FA + mov r1, #0x46 + add r3, #0x18 + mul r1, r0 + add r0, r3, r1 + bx lr +_020316FA: + mov r0, #0x0 + bx lr + nop +_02031700: .word 0x021C59FC + + thumb_func_start FUN_02031704 +FUN_02031704: ; 0x02031704 + push {r3-r5, lr} + ldr r3, _0203172C ; =0x021C59FC + add r1, r0, #0x0 + ldr r0, [r3, #0x0] + mov r5, #0x1 + add r4, r0, r1 + mov r0, #0x92 + lsl r0, r0, #0x2 + strb r5, [r4, r0] + ldr r4, [r3, #0x0] + add r0, r2, #0x0 + mov r2, #0x46 + add r3, r1, #0x0 + add r4, #0x18 + mul r3, r2 + add r1, r4, r3 + bl MI_CpuCopy8 + pop {r3-r5, pc} + nop +_0203172C: .word 0x021C59FC + + thumb_func_start FUN_02031730 +FUN_02031730: ; 0x02031730 + mov r0, #0x46 + bx lr + + thumb_func_start FUN_02031734 +FUN_02031734: ; 0x02031734 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _020317BC ; =0x021C5A00 + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020317B8 + bl FUN_0202E49C + mov r0, #0xf + mov r1, #0x50 + bl FUN_02016998 + ldr r1, _020317BC ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, _020317BC ; =0x021C5A00 + mov r2, #0x32 + ldr r1, [r0, #0x0] + strh r2, [r1, #0x3a] + ldr r1, [r0, #0x0] + mov r2, #0x1 + add r1, #0x43 + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + str r5, [r0, #0x28] + add r0, r5, #0x0 + bl FUN_020238F4 + ldr r1, _020317BC ; =0x021C5A00 + ldr r2, [r1, #0x0] + str r0, [r2, #0x2c] + ldr r0, [r1, #0x0] + mov r2, #0x2 + add r0, #0x3c + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x0 + add r0, #0x3d + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0x48 + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0x3f + strb r4, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, #0xc + bl FUN_020312BC + mov r0, #0x0 + add r1, r0, #0x0 + add r2, r0, #0x0 + bl FUN_0202D8D0 + cmp r4, #0x9 + beq _020317B8 + cmp r4, #0x11 + beq _020317B8 + cmp r4, #0xf + beq _020317B8 + bl FUN_02033E74 +_020317B8: + pop {r3-r5, pc} + nop +_020317BC: .word 0x021C5A00 + + thumb_func_start FUN_020317C0 +FUN_020317C0: ; 0x020317C0 + push {r3, lr} + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203180A + bl FUN_0202D918 + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020317DC + bl FUN_02016A18 +_020317DC: + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x13 + blo _020317EE + mov r0, #0x31 + bl FUN_020168D0 +_020317EE: + bl FUN_02033ED0 + bl FUN_0202E4F0 + ldr r0, _0203180C ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + mov r0, #0xf + bl FUN_020168D0 + ldr r0, _0203180C ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] +_0203180A: + pop {r3, pc} + .balign 4 +_0203180C: .word 0x021C5A00 + + thumb_func_start FUN_02031810 +FUN_02031810: ; 0x02031810 + ldr r0, _02031820 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203181C + mov r0, #0x1 + bx lr +_0203181C: + mov r0, #0x0 + bx lr + .balign 4 +_02031820: .word 0x021C5A00 + + thumb_func_start FUN_02031824 +FUN_02031824: ; 0x02031824 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02031858 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031856 + mov r2, #0xe + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl FUN_02016828 + add r0, r4, #0x0 + mov r1, #0xa + bl FUN_02031734 + ldr r0, _02031858 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _0203185C ; =FUN_02031D30 + mov r1, #0x32 + bl FUN_02031D20 +_02031856: + pop {r4, pc} + .balign 4 +_02031858: .word 0x021C5A00 +_0203185C: .word FUN_02031D30 + + thumb_func_start FUN_02031860 +FUN_02031860: ; 0x02031860 + push {r3, lr} + ldr r0, _02031878 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031876 + bl FUN_02031468 + ldr r0, _0203187C ; =FUN_020323CC + mov r1, #0x0 + bl FUN_02031D20 +_02031876: + pop {r3, pc} + .balign 4 +_02031878: .word 0x021C5A00 +_0203187C: .word FUN_020323CC + + thumb_func_start FUN_02031880 +FUN_02031880: ; 0x02031880 + push {r3, lr} + bl FUN_0202FC60 + bl FUN_02031190 + ldr r1, _0203189C ; =0x021C5A00 + ldr r1, [r1, #0x0] + strh r0, [r1, #0x38] + ldr r0, _020318A0 ; =FUN_020321B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + nop +_0203189C: .word 0x021C5A00 +_020318A0: .word FUN_020321B8 + + thumb_func_start FUN_020318A4 +FUN_020318A4: ; 0x020318A4 + ldr r1, _020318B0 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x4f + strb r0, [r1, #0x0] + bx lr + nop +_020318B0: .word 0x021C5A00 + + thumb_func_start FUN_020318B4 +FUN_020318B4: ; 0x020318B4 + ldr r3, _020318BC ; =FUN_02031D20 + ldr r0, _020318C0 ; =FUN_02032028 + mov r1, #0x0 + bx r3 + .balign 4 +_020318BC: .word FUN_02031D20 +_020318C0: .word FUN_02032028 + + thumb_func_start FUN_020318C4 +FUN_020318C4: ; 0x020318C4 + push {r4} + sub sp, #0xc + ldr r4, _0203190C ; =0x020EEC50 + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + ldr r0, _02031910 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + cmp r0, #0x0 + bne _020318E8 + add sp, #0xc + mov r0, #0x0 + pop {r4} + bx lr +_020318E8: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02031904 +_020318EE: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _020318FC + add sp, #0xc + mov r0, #0x1 + pop {r4} + bx lr +_020318FC: + add r2, r2, #0x4 + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _020318EE +_02031904: + mov r0, #0x0 + add sp, #0xc + pop {r4} + bx lr + .balign 4 +_0203190C: .word 0x020EEC50 +_02031910: .word 0x021C5A00 + + thumb_func_start FUN_02031914 +FUN_02031914: ; 0x02031914 + ldr r3, _0203191C ; =FUN_02031D20 + ldr r0, _02031920 ; =FUN_02032178 + mov r1, #0x0 + bx r3 + .balign 4 +_0203191C: .word FUN_02031D20 +_02031920: .word FUN_02032178 + + thumb_func_start FUN_02031924 +FUN_02031924: ; 0x02031924 + ldr r0, _02031930 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x4c + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031930: .word 0x021C5A00 + + thumb_func_start FUN_02031934 +FUN_02031934: ; 0x02031934 + push {r3, lr} + bl FUN_0202E49C + ldr r0, _02031944 ; =FUN_02032194 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02031944: .word FUN_02032194 + + thumb_func_start FUN_02031948 +FUN_02031948: ; 0x02031948 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _02031980 + ldr r2, _02031984 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl FUN_02031734 + ldr r0, _02031988 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r1, #0x40 + strb r5, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r4, [r0, #0x30] + ldr r0, _0203198C ; =FUN_020321D0 + bl FUN_02031D20 +_02031980: + pop {r3-r7, pc} + nop +_02031984: .word 0x00007080 +_02031988: .word 0x021C5A00 +_0203198C: .word FUN_020321D0 + + thumb_func_start FUN_02031990 +FUN_02031990: ; 0x02031990 + push {r3-r7, lr} + add r6, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r4, r3, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _020319C8 + ldr r2, _020319CC ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + add r0, r6, #0x0 + add r1, r7, #0x0 + bl FUN_02031734 + ldr r0, _020319D0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r1, #0x40 + strb r5, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + str r4, [r0, #0x30] + ldr r0, _020319D4 ; =FUN_0203224C + bl FUN_02031D20 +_020319C8: + pop {r3-r7, pc} + nop +_020319CC: .word 0x00007080 +_020319D0: .word 0x021C5A00 +_020319D4: .word FUN_0203224C + + thumb_func_start FUN_020319D8 +FUN_020319D8: ; 0x020319D8 + ldr r1, _020319E8 ; =0x021C5A00 + ldr r3, _020319EC ; =FUN_02031D20 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _020319F0 ; =FUN_02032298 + mov r1, #0x0 + bx r3 + .balign 4 +_020319E8: .word 0x021C5A00 +_020319EC: .word FUN_02031D20 +_020319F0: .word FUN_02032298 + + thumb_func_start FUN_020319F4 +FUN_020319F4: ; 0x020319F4 + push {r3, lr} + bl FUN_0202FCA8 + ldr r0, _02031A04 ; =FUN_02032364 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02031A04: .word FUN_02032364 + + thumb_func_start FUN_02031A08 +FUN_02031A08: ; 0x02031A08 + push {r3, lr} + ldr r0, _02031A1C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031A1A + ldr r0, _02031A20 ; =FUN_02032440 + mov r1, #0x5 + bl FUN_02031D20 +_02031A1A: + pop {r3, pc} + .balign 4 +_02031A1C: .word 0x021C5A00 +_02031A20: .word FUN_02032440 + + thumb_func_start FUN_02031A24 +FUN_02031A24: ; 0x02031A24 + ldr r3, _02031A28 ; =FUN_0202D298 + bx r3 + .balign 4 +_02031A28: .word FUN_0202D298 + + thumb_func_start FUN_02031A2C +FUN_02031A2C: ; 0x02031A2C + push {r4} + sub sp, #0xc + ldr r4, _02031A74 ; =0x020EEC5C + add r3, sp, #0x0 + ldmia r4!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r4, #0x0] + str r0, [r3, #0x0] + ldr r0, _02031A78 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + cmp r0, #0x0 + bne _02031A50 + add sp, #0xc + mov r0, #0x0 + pop {r4} + bx lr +_02031A50: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02031A6C +_02031A56: + ldr r0, [r2, #0x0] + cmp r1, r0 + bne _02031A64 + add sp, #0xc + mov r0, #0x1 + pop {r4} + bx lr +_02031A64: + add r2, r2, #0x4 + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _02031A56 +_02031A6C: + mov r0, #0x0 + add sp, #0xc + pop {r4} + bx lr + .balign 4 +_02031A74: .word 0x020EEC5C +_02031A78: .word 0x021C5A00 + + thumb_func_start FUN_02031A7C +FUN_02031A7C: ; 0x02031A7C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02031ABC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031ABA + ldr r2, _02031AC0 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + cmp r0, #0x0 + bne _02031A9A + bl FUN_020335E0 +_02031A9A: + add r0, r4, #0x0 + mov r1, #0x9 + bl FUN_02031734 + ldr r0, _02031ABC ; =0x021C5A00 + mov r2, #0x9 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r1, #0x0 + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02031AC4 ; =FUN_02032478 + bl FUN_02031D20 +_02031ABA: + pop {r4, pc} + .balign 4 +_02031ABC: .word 0x021C5A00 +_02031AC0: .word 0x00007080 +_02031AC4: .word FUN_02032478 + + thumb_func_start FUN_02031AC8 +FUN_02031AC8: ; 0x02031AC8 + push {r3, lr} + ldr r1, _02031AEC ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + mov r0, #0x1 + bl FUN_0202D344 + bl FUN_02033E74 + ldr r0, _02031AF0 ; =FUN_02032628 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02031AEC: .word 0x021C5A00 +_02031AF0: .word FUN_02032628 + + thumb_func_start FUN_02031AF4 +FUN_02031AF4: ; 0x02031AF4 + ldr r0, _02031B20 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031B02 + mov r0, #0x0 + mvn r0, r0 + bx lr +_02031B02: + ldr r1, [r0, #0x24] + ldr r0, _02031B24 ; =FUN_0203279C + cmp r1, r0 + bne _02031B0E + mov r0, #0x1 + bx lr +_02031B0E: + ldr r0, _02031B28 ; =FUN_020327B4 + cmp r1, r0 + bne _02031B18 + mov r0, #0x1 + b _02031B1A +_02031B18: + mov r0, #0x0 +_02031B1A: + neg r0, r0 + bx lr + nop +_02031B20: .word 0x021C5A00 +_02031B24: .word FUN_0203279C +_02031B28: .word FUN_020327B4 + + thumb_func_start FUN_02031B2C +FUN_02031B2C: ; 0x02031B2C + ldr r0, _02031B48 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031B38 + mov r0, #0x0 + bx lr +_02031B38: + ldr r1, [r0, #0x24] + ldr r0, _02031B4C ; =FUN_020327FC + cmp r1, r0 + bne _02031B44 + mov r0, #0x1 + bx lr +_02031B44: + mov r0, #0x0 + bx lr + .balign 4 +_02031B48: .word 0x021C5A00 +_02031B4C: .word FUN_020327FC + + thumb_func_start FUN_02031B50 +FUN_02031B50: ; 0x02031B50 + push {r3, lr} + mov r0, #0x0 + bl FUN_0202D344 + ldr r0, _02031BC4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x44 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02031B78 + add r0, r1, #0x0 + add r0, #0x45 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02031B78 + add r1, #0x3f + ldrb r0, [r1, #0x0] + cmp r0, #0x9 + bne _02031B80 +_02031B78: + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_020334E8 +_02031B80: + bl FUN_02033ED0 + ldr r0, _02031BC4 ; =0x021C5A00 + mov r2, #0x9 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r1, #0x48 + strb r2, [r1, #0x0] + ldr r0, [r0, #0x0] + add r0, #0x3c + ldrb r0, [r0, #0x0] + bl FUN_0202D1B0 + bl FUN_02031190 + cmp r0, #0x0 + bne _02031BB8 + mov r0, #0x1 + bl FUN_0202D36C + ldr r0, _02031BC8 ; =FUN_020323DC + mov r1, #0xf + bl FUN_02031D20 + pop {r3, pc} +_02031BB8: + ldr r0, _02031BCC ; =FUN_02032424 + mov r1, #0x5 + bl FUN_02031D20 + pop {r3, pc} + nop +_02031BC4: .word 0x021C5A00 +_02031BC8: .word FUN_020323DC +_02031BCC: .word FUN_02032424 + + thumb_func_start FUN_02031BD0 +FUN_02031BD0: ; 0x02031BD0 + ldr r0, _02031BEC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031BDC + mov r0, #0x1 + bx lr +_02031BDC: + ldr r1, [r0, #0x24] + ldr r0, _02031BF0 ; =FUN_020324F8 + cmp r1, r0 + beq _02031BE8 + mov r0, #0x1 + bx lr +_02031BE8: + mov r0, #0x0 + bx lr + .balign 4 +_02031BEC: .word 0x021C5A00 +_02031BF0: .word FUN_020324F8 + + thumb_func_start FUN_02031BF4 +FUN_02031BF4: ; 0x02031BF4 + push {r3, lr} + ldr r0, _02031C08 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031C06 + ldr r0, _02031C0C ; =FUN_02032440 + mov r1, #0x5 + bl FUN_02031D20 +_02031C06: + pop {r3, pc} + .balign 4 +_02031C08: .word 0x021C5A00 +_02031C0C: .word FUN_02032440 + + thumb_func_start FUN_02031C10 +FUN_02031C10: ; 0x02031C10 + push {r3, lr} + ldr r0, _02031C28 ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02031C24 + mov r0, #0x1 + add r1, #0x48 + strb r0, [r1, #0x0] + bl FUN_0202D344 +_02031C24: + pop {r3, pc} + nop +_02031C28: .word 0x021C5A00 + + thumb_func_start FUN_02031C2C +FUN_02031C2C: ; 0x02031C2C + push {r3, lr} + ldr r0, _02031C4C ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02031C48 + mov r0, #0x1 + add r1, #0x48 + strb r0, [r1, #0x0] + bl FUN_0202D344 + ldr r0, _02031C50 ; =FUN_02032850 + mov r1, #0x0 + bl FUN_02031D20 +_02031C48: + pop {r3, pc} + nop +_02031C4C: .word 0x021C5A00 +_02031C50: .word FUN_02032850 + + thumb_func_start FUN_02031C54 +FUN_02031C54: ; 0x02031C54 + ldr r0, _02031C60 ; =0x021C5A00 + mov r1, #0x12 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031C60: .word 0x021C5A00 + + thumb_func_start FUN_02031C64 +FUN_02031C64: ; 0x02031C64 + ldr r0, _02031C70 ; =0x021C5A00 + mov r1, #0x9 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_02031C70: .word 0x021C5A00 + + thumb_func_start FUN_02031C74 +FUN_02031C74: ; 0x02031C74 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _02031C9C + ldr r2, _02031CA0 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02031734 + ldr r0, _02031CA4 ; =FUN_02032E00 + mov r1, #0x0 + bl FUN_02031D20 +_02031C9C: + pop {r3-r5, pc} + nop +_02031CA0: .word 0x00007080 +_02031CA4: .word FUN_02032E00 + + thumb_func_start FUN_02031CA8 +FUN_02031CA8: ; 0x02031CA8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _02031CD0 + ldr r2, _02031CD4 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02031734 + ldr r0, _02031CD8 ; =FUN_02032E48 + mov r1, #0x0 + bl FUN_02031D20 +_02031CD0: + pop {r3-r5, pc} + nop +_02031CD4: .word 0x00007080 +_02031CD8: .word FUN_02032E48 + + thumb_func_start FUN_02031CDC +FUN_02031CDC: ; 0x02031CDC + push {r3, lr} + ldr r0, _02031D1C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031CEE + ldr r0, [r0, #0x24] + cmp r0, #0x0 + beq _02031CEE + blx r0 +_02031CEE: + bl FUN_02033590 + cmp r0, #0x0 + beq _02031D04 + bl MOD04_021DDB08 + mov r1, #0x3 + sub r0, r1, r0 + bl FUN_02033EEC + pop {r3, pc} +_02031D04: + bl FUN_0202EDF8 + cmp r0, #0x0 + beq _02031D18 + bl WM_GetLinkLevel + mov r1, #0x3 + sub r0, r1, r0 + bl FUN_02033EEC +_02031D18: + pop {r3, pc} + nop +_02031D1C: .word 0x021C5A00 + + thumb_func_start FUN_02031D20 +FUN_02031D20: ; 0x02031D20 + ldr r2, _02031D2C ; =0x021C5A00 + ldr r3, [r2, #0x0] + str r0, [r3, #0x24] + ldr r0, [r2, #0x0] + strh r1, [r0, #0x3a] + bx lr + .balign 4 +_02031D2C: .word 0x021C5A00 + + thumb_func_start FUN_02031D30 +FUN_02031D30: ; 0x02031D30 + push {r3-r5, lr} + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031D42 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3-r5, pc} +_02031D42: + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02031DF8 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + mov r0, #0x1 + bl FUN_02031268 + bl FUN_02030FA8 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x4a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031DC8 + add r1, #0x43 + ldrb r1, [r1, #0x0] + mov r0, #0x1 + mov r2, #0x7d + lsl r2, r2, #0x2 + add r3, r0, #0x0 + bl FUN_0202F918 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + bl _ll_mul + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, _02031DFC ; =FUN_020320C4 + add r1, #0x14 + bl FUN_02031D20 + pop {r3-r5, pc} +_02031DC8: + mov r0, #0x1 + mov r2, #0x7d + add r1, r0, #0x0 + lsl r2, r2, #0x2 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02031DF6 + ldr r0, _02031DF8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4c + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031DEE + ldr r0, _02031E00 ; =FUN_020323B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3-r5, pc} +_02031DEE: + ldr r0, _02031E04 ; =FUN_02031EE0 + mov r1, #0x40 + bl FUN_02031D20 +_02031DF6: + pop {r3-r5, pc} + .balign 4 +_02031DF8: .word 0x021C5A00 +_02031DFC: .word FUN_020320C4 +_02031E00: .word FUN_020323B8 +_02031E04: .word FUN_02031EE0 + + thumb_func_start FUN_02031E08 +FUN_02031E08: ; 0x02031E08 + push {r3-r5, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _02031E7C + mov r0, #0x1 + bl FUN_02031268 + bl FUN_02030FA8 + ldr r0, _02031E80 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4a + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02031E32 + ldr r0, _02031E84 ; =FUN_02032058 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3-r5, pc} +_02031E32: + mov r2, #0x7d + mov r0, #0x0 + mov r1, #0x1 + lsl r2, r2, #0x2 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02031E7C + ldr r0, _02031E80 ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + mov r1, #0x0 + str r3, [r4, #0x4] + lsr r0, r3, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + ldrh r0, [r5, #0x38] + cmp r0, #0x0 + beq _02031E76 + lsl r1, r0, #0x6 + mov r0, #0x0 + strh r0, [r5, #0x38] +_02031E76: + ldr r0, _02031E88 ; =FUN_02031EE0 + bl FUN_02031D20 +_02031E7C: + pop {r3-r5, pc} + nop +_02031E80: .word 0x021C5A00 +_02031E84: .word FUN_02032058 +_02031E88: .word FUN_02031EE0 + + thumb_func_start FUN_02031E8C +FUN_02031E8C: ; 0x02031E8C + push {r3-r5, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _02031ED6 + mov r0, #0x0 + mov r2, #0x7d + add r1, r0, #0x0 + lsl r2, r2, #0x2 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02031ED6 + ldr r0, _02031ED8 ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + ldr r0, _02031EDC ; =FUN_02031EE0 + add r1, #0x10 + str r3, [r5, #0x4] + bl FUN_02031D20 +_02031ED6: + pop {r3-r5, pc} + .balign 4 +_02031ED8: .word 0x021C5A00 +_02031EDC: .word FUN_02031EE0 + + thumb_func_start FUN_02031EE0 +FUN_02031EE0: ; 0x02031EE0 + push {r3, lr} + bl FUN_0202EA54 + ldr r0, _02031F54 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x4f + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02031F50 + add r1, #0x4b + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + bne _02031F50 + bl FUN_0202E8F4 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02031F1A + ldr r1, _02031F54 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _02031F58 ; =FUN_02031F60 + mov r1, #0x20 + bl FUN_02031D20 + pop {r3, pc} +_02031F1A: + ldr r0, _02031F54 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031F2A + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02031F2A: + bl FUN_0202E950 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _02031F48 + ldr r1, _02031F54 ; =0x021C5A00 + ldr r1, [r1, #0x0] + add r1, #0x3e + strb r0, [r1, #0x0] + ldr r0, _02031F58 ; =FUN_02031F60 + mov r1, #0x20 + bl FUN_02031D20 + pop {r3, pc} +_02031F48: + ldr r0, _02031F5C ; =FUN_02032028 + mov r1, #0x0 + bl FUN_02031D20 +_02031F50: + pop {r3, pc} + nop +_02031F54: .word 0x021C5A00 +_02031F58: .word FUN_02031F60 +_02031F5C: .word FUN_02032028 + + thumb_func_start FUN_02031F60 +FUN_02031F60: ; 0x02031F60 + push {r3, lr} + bl FUN_0202EA54 + ldr r0, _02031FBC ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202E8A0 + cmp r0, #0x0 + beq _02031F90 + ldr r0, _02031FBC ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202FB18 + cmp r0, #0x0 + beq _02031F90 + ldr r0, _02031FC0 ; =FUN_02031FC8 + mov r1, #0x64 + bl FUN_02031D20 + pop {r3, pc} +_02031F90: + bl FUN_020311F0 + cmp r0, #0x0 + beq _02031FA2 + ldr r0, _02031FC4 ; =FUN_02032028 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02031FA2: + ldr r0, _02031FBC ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02031FB2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02031FB2: + ldr r0, _02031FC4 ; =FUN_02032028 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02031FBC: .word 0x021C5A00 +_02031FC0: .word FUN_02031FC8 +_02031FC4: .word FUN_02032028 + + thumb_func_start FUN_02031FC8 +FUN_02031FC8: ; 0x02031FC8 + push {r3, lr} + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + beq _02031FEE + bl FUN_0202FC60 + mov r0, #0x0 + bl FUN_02031268 + bl FUN_02030FA8 + ldr r0, _0203201C ; =FUN_0203213C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02031FEE: + bl FUN_020311F0 + cmp r0, #0x0 + beq _02032000 + ldr r0, _02032020 ; =FUN_02032028 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032000: + ldr r0, _02032024 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032010 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032010: + ldr r0, _02032020 ; =FUN_02032028 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + nop +_0203201C: .word FUN_0203213C +_02032020: .word FUN_02032028 +_02032024: .word 0x021C5A00 + + thumb_func_start FUN_02032028 +FUN_02032028: ; 0x02032028 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203203A + ldr r0, _0203203C ; =FUN_02032058 + mov r1, #0x0 + bl FUN_02031D20 +_0203203A: + pop {r3, pc} + .balign 4 +_0203203C: .word FUN_02032058 + + thumb_func_start FUN_02032040 +FUN_02032040: ; 0x02032040 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _02032052 + ldr r0, _02032054 ; =FUN_02031E8C + mov r1, #0x0 + bl FUN_02031D20 +_02032052: + pop {r3, pc} + .balign 4 +_02032054: .word FUN_02031E8C + + thumb_func_start FUN_02032058 +FUN_02032058: ; 0x02032058 + push {r3-r5, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _020320BA + mov r0, #0x1 + bl FUN_02031268 + ldr r1, _020320BC ; =0x021C5A00 + mov r2, #0x7d + ldr r1, [r1, #0x0] + mov r0, #0x0 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x2 + mov r3, #0x1 + bl FUN_0202F918 + cmp r0, #0x0 + beq _020320BA + ldr r0, _020320BC ; =0x021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + bl _ll_mul + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, _020320C0 ; =FUN_020320C4 + add r1, #0x14 + bl FUN_02031D20 +_020320BA: + pop {r3-r5, pc} + .balign 4 +_020320BC: .word 0x021C5A00 +_020320C0: .word FUN_020320C4 + + thumb_func_start FUN_020320C4 +FUN_020320C4: ; 0x020320C4 + push {r3, lr} + bl FUN_020311E8 + cmp r0, #0x0 + beq _020320E2 + ldr r0, _0203210C ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + ldr r0, _02032110 ; =FUN_02032118 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020320E2: + ldr r0, _0203210C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020320F2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020320F2: + add r1, #0x4a + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + bne _0203210A + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203210A + ldr r0, _02032114 ; =FUN_02032040 + mov r1, #0x2 + bl FUN_02031D20 +_0203210A: + pop {r3, pc} + .balign 4 +_0203210C: .word 0x021C5A00 +_02032110: .word FUN_02032118 +_02032114: .word FUN_02032040 + + thumb_func_start FUN_02032118 +FUN_02032118: ; 0x02032118 + push {r3, lr} + mov r0, #0x0 + bl FUN_02031268 + mov r0, #0x1 + bl FUN_0202EE84 + bl FUN_02030FA8 + ldr r0, _02032134 ; =FUN_02032138 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02032134: .word FUN_02032138 + + thumb_func_start FUN_02032138 +FUN_02032138: ; 0x02032138 + bx lr + .balign 4 + + thumb_func_start FUN_0203213C +FUN_0203213C: ; 0x0203213C + bx lr + .balign 4 + + thumb_func_start FUN_02032140 +FUN_02032140: ; 0x02032140 + push {r3, lr} + ldr r0, _02032170 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x13 + bhs _02032166 + bl FUN_0202EE0C + cmp r0, #0x0 + beq _0203216E + mov r0, #0x1 + bl FUN_02031268 + bl FUN_02030FA8 + mov r0, #0x1 + bl FUN_0202E7B0 +_02032166: + ldr r0, _02032174 ; =FUN_020323B8 + mov r1, #0x0 + bl FUN_02031D20 +_0203216E: + pop {r3, pc} + .balign 4 +_02032170: .word 0x021C5A00 +_02032174: .word FUN_020323B8 + + thumb_func_start FUN_02032178 +FUN_02032178: ; 0x02032178 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203218E + bl FUN_0202FC60 + ldr r0, _02032190 ; =FUN_02032140 + mov r1, #0x0 + bl FUN_02031D20 +_0203218E: + pop {r3, pc} + .balign 4 +_02032190: .word FUN_02032140 + + thumb_func_start FUN_02032194 +FUN_02032194: ; 0x02032194 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _020321B0 + mov r0, #0x0 + bl FUN_0202E7B0 + bl FUN_0202FC60 + ldr r0, _020321B4 ; =FUN_02031E08 + mov r1, #0x0 + bl FUN_02031D20 +_020321B0: + pop {r3, pc} + nop +_020321B4: .word FUN_02031E08 + + thumb_func_start FUN_020321B8 +FUN_020321B8: ; 0x020321B8 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _020321CA + ldr r0, _020321CC ; =FUN_02031E08 + mov r1, #0x0 + bl FUN_02031D20 +_020321CA: + pop {r3, pc} + .balign 4 +_020321CC: .word FUN_02031E08 + + thumb_func_start FUN_020321D0 +FUN_020321D0: ; 0x020321D0 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _0203220C + ldr r0, _02032210 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032210 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + add r3, r0, #0x0 + bl FUN_0202F918 + cmp r0, #0x0 + beq _0203220C + bl FUN_0202FA10 + ldr r0, _02032214 ; =FUN_02032218 + mov r1, #0x0 + bl FUN_02031D20 +_0203220C: + pop {r3, pc} + nop +_02032210: .word 0x021C5A00 +_02032214: .word FUN_02032218 + + thumb_func_start FUN_02032218 +FUN_02032218: ; 0x02032218 + push {r3, lr} + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0203222E + ldr r0, _02032230 ; =FUN_02032234 + mov r1, #0x0 + bl FUN_02031D20 +_0203222E: + pop {r3, pc} + .balign 4 +_02032230: .word FUN_02032234 + + thumb_func_start FUN_02032234 +FUN_02032234: ; 0x02032234 + push {r3, lr} + bl FUN_02030F40 + cmp r0, #0x0 + bne _02032246 + ldr r0, _02032248 ; =FUN_020323BC + mov r1, #0x0 + bl FUN_02031D20 +_02032246: + pop {r3, pc} + .balign 4 +_02032248: .word FUN_020323BC + + thumb_func_start FUN_0203224C +FUN_0203224C: ; 0x0203224C + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02032286 + ldr r0, _02032288 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032288 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x28] + ldr r1, [r1, #0x30] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032286 + bl FUN_0202FA10 + ldr r0, _0203228C ; =FUN_02032290 + mov r1, #0x0 + bl FUN_02031D20 +_02032286: + pop {r3, pc} + .balign 4 +_02032288: .word 0x021C5A00 +_0203228C: .word FUN_02032290 + + thumb_func_start FUN_02032290 +FUN_02032290: ; 0x02032290 + ldr r3, _02032294 ; =FUN_0202EA54 + bx r3 + .balign 4 +_02032294: .word FUN_0202EA54 + + thumb_func_start FUN_02032298 +FUN_02032298: ; 0x02032298 + push {r3, lr} + bl FUN_0202EA54 + ldr r0, _020322B8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202FB18 + cmp r0, #0x0 + beq _020322B6 + ldr r0, _020322BC ; =FUN_020322C0 + mov r1, #0xa + bl FUN_02031D20 +_020322B6: + pop {r3, pc} + .balign 4 +_020322B8: .word 0x021C5A00 +_020322BC: .word FUN_020322C0 + + thumb_func_start FUN_020322C0 +FUN_020322C0: ; 0x020322C0 + push {r3, lr} + bl FUN_020311F0 + cmp r0, #0x0 + beq _020322D2 + ldr r0, _020322F0 ; =FUN_020322F8 + mov r1, #0x0 + bl FUN_02031D20 +_020322D2: + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + beq _020322EE + bl FUN_02031190 + cmp r0, #0x0 + beq _020322EE + ldr r0, _020322F4 ; =FUN_0203234C + mov r1, #0x0 + bl FUN_02031D20 +_020322EE: + pop {r3, pc} + .balign 4 +_020322F0: .word FUN_020322F8 +_020322F4: .word FUN_0203234C + + thumb_func_start FUN_020322F8 +FUN_020322F8: ; 0x020322F8 + push {r3, lr} + bl FUN_0202E6F0 + ldr r0, _02032308 ; =FUN_0203230C + mov r1, #0x2 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02032308: .word FUN_0203230C + + thumb_func_start FUN_0203230C +FUN_0203230C: ; 0x0203230C + push {r3, lr} + ldr r0, _02032344 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203231E + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203231E: + bl FUN_0202EE0C + cmp r0, #0x0 + beq _02032340 + mov r1, #0x1 + mov r0, #0x0 + lsl r2, r1, #0x9 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032340 + bl FUN_0202FA10 + ldr r0, _02032348 ; =FUN_02032298 + mov r1, #0xa + bl FUN_02031D20 +_02032340: + pop {r3, pc} + nop +_02032344: .word 0x021C5A00 +_02032348: .word FUN_02032298 + + thumb_func_start FUN_0203234C +FUN_0203234C: ; 0x0203234C + push {r3, lr} + bl FUN_02030F40 + cmp r0, #0x0 + bne _0203235E + ldr r0, _02032360 ; =FUN_020323BC + mov r1, #0x0 + bl FUN_02031D20 +_0203235E: + pop {r3, pc} + .balign 4 +_02032360: .word FUN_020323BC + + thumb_func_start FUN_02032364 +FUN_02032364: ; 0x02032364 + push {r3, lr} + bl FUN_0202E6F0 + ldr r0, _02032374 ; =FUN_02032378 + mov r1, #0x2 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02032374: .word FUN_02032378 + + thumb_func_start FUN_02032378 +FUN_02032378: ; 0x02032378 + push {r3, lr} + ldr r0, _020323B0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203238A + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203238A: + bl FUN_0202EE0C + cmp r0, #0x0 + beq _020323AC + mov r1, #0x1 + mov r0, #0x0 + lsl r2, r1, #0x9 + bl FUN_0202F950 + cmp r0, #0x0 + beq _020323AC + bl FUN_0202FA10 + ldr r0, _020323B4 ; =FUN_02032290 + mov r1, #0xa + bl FUN_02031D20 +_020323AC: + pop {r3, pc} + nop +_020323B0: .word 0x021C5A00 +_020323B4: .word FUN_02032290 + + thumb_func_start FUN_020323B8 +FUN_020323B8: ; 0x020323B8 + bx lr + .balign 4 + + thumb_func_start FUN_020323BC +FUN_020323BC: ; 0x020323BC + push {r3, lr} + bl FUN_02030F40 + cmp r0, #0x0 + bne _020323CA + bl FUN_020317C0 +_020323CA: + pop {r3, pc} + + thumb_func_start FUN_020323CC +FUN_020323CC: ; 0x020323CC + ldr r3, _020323D4 ; =FUN_02031D20 + ldr r0, _020323D8 ; =FUN_02032440 + mov r1, #0x5 + bx r3 + .balign 4 +_020323D4: .word FUN_02031D20 +_020323D8: .word FUN_02032440 + + thumb_func_start FUN_020323DC +FUN_020323DC: ; 0x020323DC + push {r3, lr} + bl FUN_02030F20 + cmp r0, #0x1 + bgt _020323F8 + mov r0, #0x0 + bl FUN_0202D36C + bl FUN_0202FC80 + ldr r0, _0203241C ; =FUN_020324F8 + mov r1, #0x0 + bl FUN_02031D20 +_020323F8: + ldr r0, _02032420 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032408 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032408: + mov r0, #0x0 + bl FUN_0202D36C + bl FUN_0202FC80 + ldr r0, _0203241C ; =FUN_020324F8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_0203241C: .word FUN_020324F8 +_02032420: .word 0x021C5A00 + + thumb_func_start FUN_02032424 +FUN_02032424: ; 0x02032424 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203243A + bl FUN_0202FC60 + ldr r0, _0203243C ; =FUN_020324F8 + mov r1, #0x0 + bl FUN_02031D20 +_0203243A: + pop {r3, pc} + .balign 4 +_0203243C: .word FUN_020324F8 + + thumb_func_start FUN_02032440 +FUN_02032440: ; 0x02032440 + push {r3, lr} + ldr r0, _02032470 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032450 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] +_02032450: + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203246E + ldr r0, _02032470 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x3a] + cmp r0, #0x0 + bne _0203246E + bl FUN_0202FA5C + ldr r0, _02032474 ; =FUN_020323BC + mov r1, #0x0 + bl FUN_02031D20 +_0203246E: + pop {r3, pc} + .balign 4 +_02032470: .word 0x021C5A00 +_02032474: .word FUN_020323BC + + thumb_func_start FUN_02032478 +FUN_02032478: ; 0x02032478 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _020324BE + ldr r0, _020324C0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _020324C0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3c + ldrb r0, [r0, #0x0] + bl FUN_0202D1B0 + ldr r0, _020324C0 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl FUN_0202F950 + cmp r0, #0x0 + beq _020324BE + bl FUN_0202FA10 + ldr r0, _020324C4 ; =FUN_020324C8 + mov r1, #0x40 + bl FUN_02031D20 +_020324BE: + pop {r3, pc} + .balign 4 +_020324C0: .word 0x021C5A00 +_020324C4: .word FUN_020324C8 + + thumb_func_start FUN_020324C8 +FUN_020324C8: ; 0x020324C8 + push {r3, lr} + bl FUN_0202EA54 + ldr r0, _020324F0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020324DE + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020324DE: + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _020324EE + ldr r0, _020324F4 ; =FUN_02032510 + mov r1, #0x0 + bl FUN_02031D20 +_020324EE: + pop {r3, pc} + .balign 4 +_020324F0: .word 0x021C5A00 +_020324F4: .word FUN_02032510 + + thumb_func_start FUN_020324F8 +FUN_020324F8: ; 0x020324F8 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203250A + ldr r0, _0203250C ; =FUN_02032510 + mov r1, #0x0 + bl FUN_02031D20 +_0203250A: + pop {r3, pc} + .balign 4 +_0203250C: .word FUN_02032510 + + thumb_func_start FUN_02032510 +FUN_02032510: ; 0x02032510 + push {r3-r5, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _02032568 + ldr r1, _0203256C ; =0x021C5A00 + mov r2, #0x2 + ldr r1, [r1, #0x0] + mov r0, #0x0 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x8 + mov r3, #0x1 + bl FUN_0202F918 + cmp r0, #0x0 + beq _02032568 + ldr r0, _0203256C ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + str r3, [r5, #0x4] + bl FUN_0202FA10 + ldr r0, _0203256C ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + ldr r0, _02032570 ; =FUN_02032578 + ldr r1, _02032574 ; =0x00002710 + bl FUN_02031D20 +_02032568: + pop {r3-r5, pc} + nop +_0203256C: .word 0x021C5A00 +_02032570: .word FUN_02032578 +_02032574: .word 0x00002710 + + thumb_func_start FUN_02032578 +FUN_02032578: ; 0x02032578 + push {r3, lr} + bl FUN_0202F104 + cmp r0, #0x0 + bne _020325B2 + bl FUN_020311E8 + cmp r0, #0x0 + beq _020325A2 + ldr r0, _020325C4 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + bl FUN_02033E74 + ldr r0, _020325C8 ; =FUN_020327FC + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020325A2: + ldr r0, _020325C4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020325B2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020325B2: + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _020325C2 + ldr r0, _020325CC ; =FUN_020325D0 + mov r1, #0x0 + bl FUN_02031D20 +_020325C2: + pop {r3, pc} + .balign 4 +_020325C4: .word 0x021C5A00 +_020325C8: .word FUN_020327FC +_020325CC: .word FUN_020325D0 + + thumb_func_start FUN_020325D0 +FUN_020325D0: ; 0x020325D0 + push {r3-r5, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _0203261C + mov r0, #0x0 + mov r2, #0x2 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl FUN_0202F950 + cmp r0, #0x0 + beq _0203261C + bl FUN_0202FA10 + ldr r0, _02032620 ; =0x021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + ldr r0, _02032624 ; =FUN_020324C8 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + str r3, [r5, #0x4] + bl FUN_02031D20 +_0203261C: + pop {r3-r5, pc} + nop +_02032620: .word 0x021C5A00 +_02032624: .word FUN_020324C8 + + thumb_func_start FUN_02032628 +FUN_02032628: ; 0x02032628 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203263A + ldr r0, _0203263C ; =FUN_02032640 + mov r1, #0x0 + bl FUN_02031D20 +_0203263A: + pop {r3, pc} + .balign 4 +_0203263C: .word FUN_02032640 + + thumb_func_start FUN_02032640 +FUN_02032640: ; 0x02032640 + push {r3, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _02032666 + mov r0, #0x0 + mov r2, #0x2 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032666 + bl FUN_0202FA10 + ldr r0, _02032668 ; =FUN_0203266C + mov r1, #0x64 + bl FUN_02031D20 +_02032666: + pop {r3, pc} + .balign 4 +_02032668: .word FUN_0203266C + + thumb_func_start FUN_0203266C +FUN_0203266C: ; 0x0203266C + push {r3, lr} + ldr r0, _020326C4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202E8A0 + cmp r0, #0x0 + beq _02032698 + ldr r0, _020326C4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202FB18 + cmp r0, #0x0 + beq _02032698 + ldr r0, _020326C8 ; =FUN_020326D0 + mov r1, #0x64 + bl FUN_02031D20 + pop {r3, pc} +_02032698: + bl FUN_020311F0 + cmp r0, #0x0 + beq _020326AA + ldr r0, _020326CC ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020326AA: + ldr r0, _020326C4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _020326BA + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_020326BA: + ldr r0, _020326CC ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_020326C4: .word 0x021C5A00 +_020326C8: .word FUN_020326D0 +_020326CC: .word FUN_020327B8 + + thumb_func_start FUN_020326D0 +FUN_020326D0: ; 0x020326D0 + push {r3, lr} + bl FUN_020311F0 + cmp r0, #0x0 + beq _020326E4 + ldr r0, _02032728 ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020326E4: + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0203270C + ldr r0, _0203272C ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + ldr r1, _02032730 ; =0x02105D5C + mov r0, #0x6 + bl FUN_020311D0 + ldr r0, _02032734 ; =FUN_02032738 + mov r1, #0x78 + bl FUN_02031D20 + pop {r3, pc} +_0203270C: + ldr r0, _0203272C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _0203271C + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_0203271C: + ldr r0, _02032728 ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + nop +_02032728: .word FUN_020327B8 +_0203272C: .word 0x021C5A00 +_02032730: .word 0x02105D5C +_02032734: .word FUN_02032738 + + thumb_func_start FUN_02032738 +FUN_02032738: ; 0x02032738 + push {r3, lr} + bl FUN_020311F0 + cmp r0, #0x0 + beq _0203274C + ldr r0, _0203278C ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_0203274C: + ldr r0, _02032790 ; =0x021C5A00 + ldr r1, [r0, #0x0] + add r0, r1, #0x0 + add r0, #0x3d + ldrb r0, [r0, #0x0] + cmp r0, #0x2 + bne _02032764 + ldr r0, _02032794 ; =FUN_020327B4 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032764: + cmp r0, #0x1 + bne _02032776 + bl FUN_0202DBE0 + ldr r0, _02032798 ; =FUN_0203279C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032776: + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + beq _02032782 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032782: + ldr r0, _0203278C ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_0203278C: .word FUN_020327B8 +_02032790: .word 0x021C5A00 +_02032794: .word FUN_020327B4 +_02032798: .word FUN_0203279C + + thumb_func_start FUN_0203279C +FUN_0203279C: ; 0x0203279C + push {r3, lr} + bl FUN_020311F0 + cmp r0, #0x0 + beq _020327AE + ldr r0, _020327B0 ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 +_020327AE: + pop {r3, pc} + .balign 4 +_020327B0: .word FUN_020327B8 + + thumb_func_start FUN_020327B4 +FUN_020327B4: ; 0x020327B4 + bx lr + .balign 4 + + thumb_func_start FUN_020327B8 +FUN_020327B8: ; 0x020327B8 + push {r3, lr} + ldr r0, _020327F0 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _020327EC + ldr r0, _020327F0 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x38] + cmp r0, #0x0 + beq _020327E4 + sub r0, r0, #0x1 + strh r0, [r1, #0x38] + ldr r0, _020327F4 ; =FUN_02032640 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020327E4: + ldr r0, _020327F8 ; =FUN_020327B4 + mov r1, #0x0 + bl FUN_02031D20 +_020327EC: + pop {r3, pc} + nop +_020327F0: .word 0x021C5A00 +_020327F4: .word FUN_02032640 +_020327F8: .word FUN_020327B4 + + thumb_func_start FUN_020327FC +FUN_020327FC: ; 0x020327FC + push {r3, lr} + bl FUN_020311E8 + cmp r0, #0x0 + bne _02032820 + bl FUN_02033510 + cmp r0, #0x0 + bne _0203282C + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _0203282C + ldr r0, _02032848 ; =FUN_020325D0 + mov r1, #0x0 + bl FUN_02031D20 + b _0203282C +_02032820: + bl FUN_02031190 + cmp r0, #0x0 + bne _0203282C + bl FUN_0202DDE8 +_0203282C: + bl FUN_020311F0 + cmp r0, #0x0 + beq _02032844 + bl FUN_02033510 + cmp r0, #0x0 + bne _02032844 + ldr r0, _0203284C ; =FUN_020327B8 + mov r1, #0x0 + bl FUN_02031D20 +_02032844: + pop {r3, pc} + nop +_02032848: .word FUN_020325D0 +_0203284C: .word FUN_020327B8 + + thumb_func_start FUN_02032850 +FUN_02032850: ; 0x02032850 + push {r3, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _0203287E + ldr r1, _02032880 ; =0x021C5A00 + mov r0, #0x0 + ldr r1, [r1, #0x0] + mov r2, #0x2 + add r1, #0x43 + ldrb r1, [r1, #0x0] + lsl r2, r2, #0x8 + add r3, r0, #0x0 + bl FUN_0202F918 + cmp r0, #0x0 + beq _0203287E + bl FUN_0202FA10 + ldr r0, _02032884 ; =FUN_020323B8 + mov r1, #0x0 + bl FUN_02031D20 +_0203287E: + pop {r3, pc} + .balign 4 +_02032880: .word 0x021C5A00 +_02032884: .word FUN_020323B8 + + thumb_func_start FUN_02032888 +FUN_02032888: ; 0x02032888 + push {r3, lr} + ldr r0, _020328BC ; =0x021C5A00 + mov r1, #0xd + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bl FUN_02031190 + cmp r0, #0x0 + add r0, sp, #0x0 + bne _020328AE + mov r1, #0x0 + strb r1, [r0, #0x1] + add r1, sp, #0x0 + mov r0, #0xa + add r1, #0x1 + bl FUN_020311D0 + pop {r3, pc} +_020328AE: + mov r1, #0x0 + strb r1, [r0, #0x0] + mov r0, #0xa + add r1, sp, #0x0 + bl FUN_020311D0 + pop {r3, pc} + .balign 4 +_020328BC: .word 0x021C5A00 + + thumb_func_start FUN_020328C0 +FUN_020328C0: ; 0x020328C0 + ldr r1, _020328D8 ; =0x021C5A00 + ldr r3, _020328DC ; =FUN_02031D20 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + ldr r0, _020328E0 ; =FUN_02032924 + mov r1, #0x0 + bx r3 + nop +_020328D8: .word 0x021C5A00 +_020328DC: .word FUN_02031D20 +_020328E0: .word FUN_02032924 + + thumb_func_start FUN_020328E4 +FUN_020328E4: ; 0x020328E4 + ldr r0, _020328F0 ; =0x021C5A00 + mov r1, #0x7 + ldr r0, [r0, #0x0] + add r0, #0x3f + strb r1, [r0, #0x0] + bx lr + .balign 4 +_020328F0: .word 0x021C5A00 + + thumb_func_start FUN_020328F4 +FUN_020328F4: ; 0x020328F4 + push {r3, lr} + ldr r1, _0203291C ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r2, #0x3e + strb r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x7 + add r0, #0x3f + strb r2, [r0, #0x0] + ldr r0, [r1, #0x0] + mov r2, #0x3 + strh r2, [r0, #0x38] + bl FUN_02033E74 + ldr r0, _02032920 ; =FUN_02032628 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + nop +_0203291C: .word 0x021C5A00 +_02032920: .word FUN_02032628 + + thumb_func_start FUN_02032924 +FUN_02032924: ; 0x02032924 + push {r3, lr} + bl FUN_0202E6F0 + cmp r0, #0x0 + beq _02032936 + ldr r0, _02032938 ; =FUN_0203293C + mov r1, #0x0 + bl FUN_02031D20 +_02032936: + pop {r3, pc} + .balign 4 +_02032938: .word FUN_0203293C + + thumb_func_start FUN_0203293C +FUN_0203293C: ; 0x0203293C + push {r3, lr} + bl FUN_0202EE0C + cmp r0, #0x0 + beq _0203296C + ldr r0, _02032970 ; =0x021C5A00 + mov r2, #0x2 + ldr r0, [r0, #0x0] + mov r1, #0xd + add r0, #0x3f + strb r1, [r0, #0x0] + mov r0, #0x0 + add r1, r0, #0x0 + lsl r2, r2, #0x8 + bl FUN_0202F950 + cmp r0, #0x0 + beq _0203296C + bl FUN_0202FA1C + ldr r0, _02032974 ; =FUN_02032978 + mov r1, #0x64 + bl FUN_02031D20 +_0203296C: + pop {r3, pc} + nop +_02032970: .word 0x021C5A00 +_02032974: .word FUN_02032978 + + thumb_func_start FUN_02032978 +FUN_02032978: ; 0x02032978 + push {r3, lr} + ldr r0, _020329E4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202E8A0 + cmp r0, #0x0 + beq _020329A4 + ldr r0, _020329E4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x3e + ldrb r0, [r0, #0x0] + bl FUN_0202FB18 + cmp r0, #0x0 + beq _020329A4 + ldr r0, _020329E8 ; =FUN_020329F4 + mov r1, #0x64 + bl FUN_02031D20 + pop {r3, pc} +_020329A4: + bl FUN_020311F0 + cmp r0, #0x0 + bne _020329B6 + ldr r0, _020329E4 ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x0 + bne _020329DC +_020329B6: + ldr r0, _020329E4 ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _020329D2 + ldr r0, _020329EC ; =FUN_020327B4 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020329D2: + ldr r0, _020329F0 ; =FUN_02032924 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020329DC: + beq _020329E2 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] +_020329E2: + pop {r3, pc} + .balign 4 +_020329E4: .word 0x021C5A00 +_020329E8: .word FUN_020329F4 +_020329EC: .word FUN_020327B4 +_020329F0: .word FUN_02032924 + + thumb_func_start FUN_020329F4 +FUN_020329F4: ; 0x020329F4 + push {r3, lr} + ldr r0, _02032A7C ; =0x021C5A00 + ldr r1, [r0, #0x0] + ldrh r0, [r1, #0x3a] + cmp r0, #0x5a + bls _02032A06 + sub r0, r0, #0x1 + strh r0, [r1, #0x3a] + pop {r3, pc} +_02032A06: + bl FUN_020311F0 + cmp r0, #0x0 + beq _02032A34 + ldr r0, _02032A7C ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _02032A2A + ldr r0, _02032A80 ; =FUN_020327B4 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032A2A: + ldr r0, _02032A84 ; =FUN_02032924 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032A34: + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0x0 + beq _02032A4A + ldr r0, _02032A88 ; =FUN_0203279C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032A4A: + ldr r0, _02032A7C ; =0x021C5A00 + ldr r2, [r0, #0x0] + ldrh r1, [r2, #0x3a] + cmp r1, #0x0 + beq _02032A5A + sub r0, r1, #0x1 + strh r0, [r2, #0x3a] + pop {r3, pc} +_02032A5A: + ldrh r1, [r2, #0x38] + sub r1, r1, #0x1 + strh r1, [r2, #0x38] + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x38] + cmp r0, #0x0 + bne _02032A72 + ldr r0, _02032A80 ; =FUN_020327B4 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032A72: + ldr r0, _02032A84 ; =FUN_02032924 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} + .balign 4 +_02032A7C: .word 0x021C5A00 +_02032A80: .word FUN_020327B4 +_02032A84: .word FUN_02032924 +_02032A88: .word FUN_0203279C + + thumb_func_start FUN_02032A8C +FUN_02032A8C: ; 0x02032A8C + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r2, #0x0 + bl FUN_02031190 + cmp r0, #0x0 + bne _02032ADA + ldr r6, _02032ADC ; =0x02105D5C + mov r3, #0x1 + mov r2, #0x0 +_02032AA0: + ldrb r1, [r6, #0x0] + ldrb r0, [r4, r2] + cmp r1, r0 + beq _02032AAC + mov r3, #0x0 + b _02032AB4 +_02032AAC: + add r2, r2, #0x1 + add r6, r6, #0x1 + cmp r2, #0x6 + blo _02032AA0 +_02032AB4: + cmp r3, #0x0 + beq _02032AD0 + ldr r0, _02032AE0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x48 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02032AD0 + ldr r1, _02032AE4 ; =0x02105D6C + mov r0, #0x7 + strb r5, [r1, #0x0] + bl FUN_02030C4C + pop {r4-r6, pc} +_02032AD0: + ldr r1, _02032AE8 ; =0x02105D64 + mov r0, #0x7 + strb r5, [r1, #0x0] + bl FUN_02030C4C +_02032ADA: + pop {r4-r6, pc} + .balign 4 +_02032ADC: .word 0x02105D5C +_02032AE0: .word 0x021C5A00 +_02032AE4: .word 0x02105D6C +_02032AE8: .word 0x02105D64 + + thumb_func_start FUN_02032AEC +FUN_02032AEC: ; 0x02032AEC + push {r3-r5, lr} + mov r4, #0x1 + ldr r5, _02032B5C ; =0x02105D6D + add r3, r4, #0x0 +_02032AF4: + ldrb r1, [r5, #0x0] + ldrb r0, [r2, r3] + cmp r1, r0 + beq _02032B00 + mov r4, #0x0 + b _02032B08 +_02032B00: + add r3, r3, #0x1 + add r5, r5, #0x1 + cmp r3, #0x6 + blo _02032AF4 +_02032B08: + cmp r4, #0x0 + beq _02032B22 + ldrb r4, [r2, #0x0] + bl FUN_02031190 + cmp r4, r0 + bne _02032B58 + ldr r0, _02032B60 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] + pop {r3-r5, pc} +_02032B22: + mov r4, #0x1 + ldr r3, _02032B64 ; =0x02105D65 + add r5, r4, #0x0 +_02032B28: + ldrb r1, [r3, #0x0] + ldrb r0, [r2, r5] + cmp r1, r0 + beq _02032B34 + mov r4, #0x0 + b _02032B3C +_02032B34: + add r5, r5, #0x1 + add r3, r3, #0x1 + cmp r5, #0x6 + blo _02032B28 +_02032B3C: + cmp r4, #0x0 + beq _02032B58 + ldrb r4, [r2, #0x0] + bl FUN_02031190 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r4, r0 + bne _02032B58 + ldr r0, _02032B60 ; =0x021C5A00 + mov r1, #0x2 + ldr r0, [r0, #0x0] + add r0, #0x3d + strb r1, [r0, #0x0] +_02032B58: + pop {r3-r5, pc} + nop +_02032B5C: .word 0x02105D6D +_02032B60: .word 0x021C5A00 +_02032B64: .word 0x02105D65 + + thumb_func_start FUN_02032B68 +FUN_02032B68: ; 0x02032B68 + mov r0, #0x6 + bx lr + + thumb_func_start FUN_02032B6C +FUN_02032B6C: ; 0x02032B6C + push {r3, lr} + ldr r1, _02032B80 ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _02032B7E + add r1, #0x3c + strb r0, [r1, #0x0] + bl FUN_0202D1B0 +_02032B7E: + pop {r3, pc} + .balign 4 +_02032B80: .word 0x021C5A00 + + thumb_func_start FUN_02032B84 +FUN_02032B84: ; 0x02032B84 + ldr r3, _02032B88 ; =FUN_0202EA54 + bx r3 + .balign 4 +_02032B88: .word FUN_0202EA54 + + thumb_func_start FUN_02032B8C +FUN_02032B8C: ; 0x02032B8C + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02032BC6 + ldr r0, _02032BC8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032BC8 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + mov r2, #0x20 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032BC6 + bl FUN_0202FA10 + ldr r0, _02032BCC ; =FUN_02032B84 + mov r1, #0x0 + bl FUN_02031D20 +_02032BC6: + pop {r3, pc} + .balign 4 +_02032BC8: .word 0x021C5A00 +_02032BCC: .word FUN_02032B84 + + thumb_func_start FUN_02032BD0 +FUN_02032BD0: ; 0x02032BD0 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _02032C00 + mov r2, #0x7 + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl FUN_02016828 + add r0, r4, #0x0 + mov r1, #0xe + bl FUN_02031734 + ldr r0, _02032C04 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02032C08 ; =FUN_02032B8C + bl FUN_02031D20 +_02032C00: + pop {r4, pc} + nop +_02032C04: .word 0x021C5A00 +_02032C08: .word FUN_02032B8C + + thumb_func_start FUN_02032C0C +FUN_02032C0C: ; 0x02032C0C + push {r3, lr} + ldr r0, _02032C20 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02032C1E + ldr r0, _02032C24 ; =FUN_02032440 + mov r1, #0x5 + bl FUN_02031D20 +_02032C1E: + pop {r3, pc} + .balign 4 +_02032C20: .word 0x021C5A00 +_02032C24: .word FUN_02032440 + + thumb_func_start FUN_02032C28 +FUN_02032C28: ; 0x02032C28 + sub sp, #0x8 + ldr r1, _02032C64 ; =0x020EEC48 + add r0, sp, #0x0 + ldr r2, [r1, #0x0] + ldr r1, [r1, #0x4] + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, _02032C68 ; =0x021C5A00 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x24] + cmp r1, #0x0 + bne _02032C46 + mov r0, #0x0 + add sp, #0x8 + bx lr +_02032C46: + cmp r2, #0x0 + beq _02032C5E +_02032C4A: + ldr r1, [r0, #0x0] + cmp r3, r1 + bne _02032C56 + mov r0, #0x1 + add sp, #0x8 + bx lr +_02032C56: + add r0, r0, #0x4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _02032C4A +_02032C5E: + mov r0, #0x0 + add sp, #0x8 + bx lr + .balign 4 +_02032C64: .word 0x020EEC48 +_02032C68: .word 0x021C5A00 + + thumb_func_start FUN_02032C6C +FUN_02032C6C: ; 0x02032C6C + ldr r2, _02032CE4 ; =0x00400131 + cmp r0, r2 + bhi _02032C7C + bhs _02032CBA + ldr r2, _02032CE8 ; =0x00000333 + cmp r0, r2 + beq _02032C8E + bx lr +_02032C7C: + ldr r1, _02032CEC ; =0x00400286 + cmp r0, r1 + bhi _02032C86 + beq _02032CCE + bx lr +_02032C86: + add r1, #0x92 + cmp r0, r1 + beq _02032CA6 + bx lr +_02032C8E: + cmp r1, #0xf + bne _02032CE0 + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CA6: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x1 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CBA: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x2 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] + bx lr +_02032CCE: + ldr r0, _02032CF0 ; =0x021C5A00 + ldr r2, [r0, #0x0] + add r0, r2, #0x0 + add r0, #0x49 + ldrb r1, [r0, #0x0] + mov r0, #0x4 + add r2, #0x49 + orr r0, r1 + strb r0, [r2, #0x0] +_02032CE0: + bx lr + nop +_02032CE4: .word 0x00400131 +_02032CE8: .word 0x00000333 +_02032CEC: .word 0x00400286 +_02032CF0: .word 0x021C5A00 + + thumb_func_start FUN_02032CF4 +FUN_02032CF4: ; 0x02032CF4 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02032D34 + ldr r0, _02032D38 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032D38 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + ldr r0, _02032D3C ; =FUN_02032C6C + bl FUN_0202D308 + mov r0, #0x1 + add r1, r0, #0x0 + mov r2, #0x20 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032D34 + bl FUN_0202FA10 + ldr r0, _02032D40 ; =FUN_02032B84 + mov r1, #0x0 + bl FUN_02031D20 +_02032D34: + pop {r3, pc} + nop +_02032D38: .word 0x021C5A00 +_02032D3C: .word FUN_02032C6C +_02032D40: .word FUN_02032B84 + + thumb_func_start FUN_02032D44 +FUN_02032D44: ; 0x02032D44 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02030F40 + cmp r0, #0x0 + bne _02032D74 + mov r2, #0x7 + mov r0, #0x3 + mov r1, #0xf + lsl r2, r2, #0xc + bl FUN_02016828 + add r0, r4, #0x0 + mov r1, #0x11 + bl FUN_02031734 + ldr r0, _02032D78 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x40 + strb r1, [r0, #0x0] + ldr r0, _02032D7C ; =FUN_02032CF4 + bl FUN_02031D20 +_02032D74: + pop {r4, pc} + nop +_02032D78: .word 0x021C5A00 +_02032D7C: .word FUN_02032CF4 + + thumb_func_start FUN_02032D80 +FUN_02032D80: ; 0x02032D80 + push {r3, lr} + ldr r0, _02032D94 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02032D92 + ldr r0, _02032D98 ; =FUN_02032440 + mov r1, #0x5 + bl FUN_02031D20 +_02032D92: + pop {r3, pc} + .balign 4 +_02032D94: .word 0x021C5A00 +_02032D98: .word FUN_02032440 + + thumb_func_start FUN_02032D9C +FUN_02032D9C: ; 0x02032D9C + ldr r0, _02032DA8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x49 + ldrb r0, [r0, #0x0] + bx lr + nop +_02032DA8: .word 0x021C5A00 + + thumb_func_start FUN_02032DAC +FUN_02032DAC: ; 0x02032DAC + push {r3, lr} + bl FUN_02031468 + ldr r0, _02032DF4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02032DBE + mov r0, #0x1 + pop {r3, pc} +_02032DBE: + add r0, #0x3f + ldrb r0, [r0, #0x0] + add r0, #0xe8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi _02032DD4 + bl MOD04_021D83C0 + mov r0, #0x1 + pop {r3, pc} +_02032DD4: + bl FUN_02033590 + cmp r0, #0x0 + beq _02032DE6 + ldr r0, _02032DF8 ; =FUN_0203318C + mov r1, #0x0 + bl FUN_02031D20 + b _02032DEE +_02032DE6: + ldr r0, _02032DFC ; =FUN_02032178 + mov r1, #0x0 + bl FUN_02031D20 +_02032DEE: + mov r0, #0x0 + pop {r3, pc} + nop +_02032DF4: .word 0x021C5A00 +_02032DF8: .word FUN_0203318C +_02032DFC: .word FUN_02032178 + + thumb_func_start FUN_02032E00 +FUN_02032E00: ; 0x02032E00 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02032E3C + ldr r0, _02032E40 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032E40 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + add r3, r0, #0x0 + bl FUN_0202F918 + cmp r0, #0x0 + beq _02032E3C + bl FUN_0202FA10 + ldr r0, _02032E44 ; =FUN_02032218 + mov r1, #0x0 + bl FUN_02031D20 +_02032E3C: + pop {r3, pc} + nop +_02032E40: .word 0x021C5A00 +_02032E44: .word FUN_02032218 + + thumb_func_start FUN_02032E48 +FUN_02032E48: ; 0x02032E48 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _02032E82 + ldr r0, _02032E84 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x2c] + bl FUN_0202E29C + ldr r0, _02032E84 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202DB14 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + bl FUN_0202F950 + cmp r0, #0x0 + beq _02032E82 + bl FUN_0202FA10 + ldr r0, _02032E88 ; =FUN_02032290 + mov r1, #0x0 + bl FUN_02031D20 +_02032E82: + pop {r3, pc} + .balign 4 +_02032E84: .word 0x021C5A00 +_02032E88: .word FUN_02032290 + + thumb_func_start FUN_02032E8C +FUN_02032E8C: ; 0x02032E8C + bx lr + .balign 4 + + thumb_func_start FUN_02032E90 +FUN_02032E90: ; 0x02032E90 + push {r3, lr} + bl MOD04_021D7F8C + cmp r0, #0x0 + bge _02032EA2 + ldr r0, _02032EA4 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 +_02032EA2: + pop {r3, pc} + .balign 4 +_02032EA4: .word FUN_02032E8C + + thumb_func_start FUN_02032EA8 +FUN_02032EA8: ; 0x02032EA8 + bx lr + .balign 4 + + thumb_func_start FUN_02032EAC +FUN_02032EAC: ; 0x02032EAC + bx lr + .balign 4 + + thumb_func_start FUN_02032EB0 +FUN_02032EB0: ; 0x02032EB0 + push {r3, lr} + mov r0, #0x1 + bl FUN_020313A0 + bl MOD04_021D7F8C + cmp r0, #0xa + blt _02032ECA + ldr r0, _02032F0C ; =FUN_02032EAC + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032ECA: + cmp r0, #0x0 + bge _02032ED8 + ldr r0, _02032F10 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032ED8: + cmp r0, #0x1 + bne _02032EE6 + ldr r0, _02032F14 ; =FUN_02032E90 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032EE6: + cmp r0, #0x2 + bne _02032F08 + ldr r0, _02032F18 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x44 + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02032F00 + ldr r0, _02032F10 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032F00: + ldr r0, _02032F1C ; =FUN_02032EA8 + mov r1, #0x0 + bl FUN_02031D20 +_02032F08: + pop {r3, pc} + nop +_02032F0C: .word FUN_02032EAC +_02032F10: .word FUN_02032E8C +_02032F14: .word FUN_02032E90 +_02032F18: .word 0x021C5A00 +_02032F1C: .word FUN_02032EA8 + + thumb_func_start FUN_02032F20 +FUN_02032F20: ; 0x02032F20 + add r1, r0, #0x2 + cmp r1, #0x1 + bls _02032F28 + neg r0, r0 +_02032F28: + ldr r1, _02032F30 ; =0x021C5A00 + ldr r1, [r1, #0x0] + str r0, [r1, #0x34] + bx lr + .balign 4 +_02032F30: .word 0x021C5A00 + + thumb_func_start FUN_02032F34 +FUN_02032F34: ; 0x02032F34 + push {r3, lr} + mov r0, #0x0 + bl MOD04_021D7800 + cmp r0, #0xa + blt _02032F4A + ldr r0, _02032F88 ; =FUN_02032EAC + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032F4A: + cmp r0, #0x0 + bge _02032F5C + bl FUN_02032F20 + ldr r0, _02032F8C ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032F5C: + cmp r0, #0x1 + bne _02032F6A + ldr r0, _02032F90 ; =FUN_02032EB0 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032F6A: + cmp r0, #0x2 + bne _02032F78 + ldr r0, _02032F94 ; =FUN_02032EA8 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032F78: + cmp r0, #0x3 + bne _02032F84 + ldr r0, _02032F88 ; =FUN_02032EAC + mov r1, #0x0 + bl FUN_02031D20 +_02032F84: + pop {r3, pc} + nop +_02032F88: .word FUN_02032EAC +_02032F8C: .word FUN_02032E8C +_02032F90: .word FUN_02032EB0 +_02032F94: .word FUN_02032EA8 + + thumb_func_start FUN_02032F98 +FUN_02032F98: ; 0x02032F98 + push {r3, lr} + mov r0, #0x1 + bl MOD04_021D7800 + cmp r0, #0x0 + bge _02032FB2 + bl FUN_02032F20 + ldr r0, _02032FD0 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02032FB2: + ldr r0, _02032FD4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x42 + ldrb r0, [r0, #0x0] + bl MOD04_021D8494 + cmp r0, #0x0 + beq _02032FCE + bl FUN_0202FC60 + ldr r0, _02032FD8 ; =FUN_02032F34 + mov r1, #0x0 + bl FUN_02031D20 +_02032FCE: + pop {r3, pc} + .balign 4 +_02032FD0: .word FUN_02032E8C +_02032FD4: .word 0x021C5A00 +_02032FD8: .word FUN_02032F34 + + thumb_func_start FUN_02032FDC +FUN_02032FDC: ; 0x02032FDC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02032FFC ; =FUN_020303BC + ldr r1, _02033000 ; =FUN_02030238 + bl MOD04_021D77C4 + ldr r0, _02033004 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x42 + strb r4, [r0, #0x0] + ldr r0, _02033008 ; =FUN_02032F98 + bl FUN_02031D20 + mov r0, #0x1 + pop {r4, pc} + .balign 4 +_02032FFC: .word FUN_020303BC +_02033000: .word FUN_02030238 +_02033004: .word 0x021C5A00 +_02033008: .word FUN_02032F98 + + thumb_func_start FUN_0203300C +FUN_0203300C: ; 0x0203300C + ldr r0, _02033048 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + ldr r0, _0203304C ; =FUN_02032F34 + cmp r1, r0 + bne _0203301C + mov r0, #0x0 + bx lr +_0203301C: + ldr r0, _02033050 ; =FUN_02032EB0 + cmp r1, r0 + bne _02033026 + mov r0, #0x1 + bx lr +_02033026: + ldr r0, _02033054 ; =FUN_02032E90 + cmp r1, r0 + bne _02033030 + mov r0, #0x3 + bx lr +_02033030: + ldr r0, _02033058 ; =FUN_02032EA8 + cmp r1, r0 + bne _0203303A + mov r0, #0x4 + bx lr +_0203303A: + ldr r0, _0203305C ; =FUN_02032EAC + cmp r1, r0 + bne _02033044 + mov r0, #0x5 + bx lr +_02033044: + mov r0, #0x2 + bx lr + .balign 4 +_02033048: .word 0x021C5A00 +_0203304C: .word FUN_02032F34 +_02033050: .word FUN_02032EB0 +_02033054: .word FUN_02032E90 +_02033058: .word FUN_02032EA8 +_0203305C: .word FUN_02032EAC + + thumb_func_start FUN_02033060 +FUN_02033060: ; 0x02033060 + push {r3, lr} + ldr r0, _02033090 ; =FUN_020303BC + ldr r1, _02033094 ; =FUN_02030238 + bl MOD04_021D77C4 + mov r0, #0x0 + mvn r0, r0 + bl MOD04_021D8494 + cmp r0, #0x0 + beq _0203308C + ldr r0, _02033098 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x4d + strb r1, [r0, #0x0] + bl FUN_0202FC60 + ldr r0, _0203309C ; =FUN_02032F34 + mov r1, #0x0 + bl FUN_02031D20 +_0203308C: + pop {r3, pc} + nop +_02033090: .word FUN_020303BC +_02033094: .word FUN_02030238 +_02033098: .word 0x021C5A00 +_0203309C: .word FUN_02032F34 + + thumb_func_start FUN_020330A0 +FUN_020330A0: ; 0x020330A0 + push {r3, lr} + mov r0, #0x0 + bl FUN_020313A0 + ldr r0, _020330D8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x41 + ldrb r0, [r0, #0x0] + bl MOD04_021D82BC + cmp r0, #0x0 + beq _020330C6 + bl MOD04_021D836C + ldr r0, _020330DC ; =FUN_02033060 + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_020330C6: + bl MOD04_021D7F8C + cmp r0, #0x0 + bge _020330D6 + ldr r0, _020330E0 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 +_020330D6: + pop {r3, pc} + .balign 4 +_020330D8: .word 0x021C5A00 +_020330DC: .word FUN_02033060 +_020330E0: .word FUN_02032E8C + + thumb_func_start FUN_020330E4 +FUN_020330E4: ; 0x020330E4 + push {r3, lr} + bl FUN_02031190 + cmp r0, #0x0 + bne _02033100 + ldr r0, _02033120 ; =0x021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033124 ; =FUN_020330A0 + bl FUN_02031D20 + b _02033112 +_02033100: + ldr r0, _02033120 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033124 ; =FUN_020330A0 + mov r1, #0x0 + bl FUN_02031D20 +_02033112: + ldr r0, _02033120 ; =0x021C5A00 + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, #0x4d + strb r1, [r0, #0x0] + pop {r3, pc} + nop +_02033120: .word 0x021C5A00 +_02033124: .word FUN_020330A0 + + thumb_func_start FUN_02033128 +FUN_02033128: ; 0x02033128 + ldr r0, _02033134 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4d + ldrb r0, [r0, #0x0] + bx lr + nop +_02033134: .word 0x021C5A00 + + thumb_func_start FUN_02033138 +FUN_02033138: ; 0x02033138 + ldr r0, _0203314C ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + ldr r0, _02033150 ; =FUN_02033060 + cmp r1, r0 + bne _02033148 + mov r0, #0x1 + bx lr +_02033148: + mov r0, #0x0 + bx lr + .balign 4 +_0203314C: .word 0x021C5A00 +_02033150: .word FUN_02033060 + + thumb_func_start FUN_02033154 +FUN_02033154: ; 0x02033154 + ldr r0, _02033174 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + ldr r0, _02033178 ; =FUN_02032F34 + cmp r1, r0 + bne _02033164 + mov r0, #0x1 + bx lr +_02033164: + ldr r0, _0203317C ; =FUN_02033060 + cmp r1, r0 + bne _0203316E + mov r0, #0x1 + bx lr +_0203316E: + mov r0, #0x0 + bx lr + nop +_02033174: .word 0x021C5A00 +_02033178: .word FUN_02032F34 +_0203317C: .word FUN_02033060 + + thumb_func_start FUN_02033180 +FUN_02033180: ; 0x02033180 + ldr r0, _02033188 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x34] + bx lr + .balign 4 +_02033188: .word 0x021C5A00 + + thumb_func_start FUN_0203318C +FUN_0203318C: ; 0x0203318C + push {r3, lr} + mov r0, #0x0 + bl FUN_020313A0 + mov r0, #0x0 + bl MOD04_021D82BC + cmp r0, #0x0 + beq _020331AA + bl MOD04_021D836C + ldr r0, _020331BC ; =FUN_02032440 + mov r1, #0x0 + bl FUN_02031D20 +_020331AA: + bl MOD04_021D7F8C + cmp r0, #0x0 + bge _020331BA + ldr r0, _020331C0 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 +_020331BA: + pop {r3, pc} + .balign 4 +_020331BC: .word FUN_02032440 +_020331C0: .word FUN_02032E8C + + thumb_func_start FUN_020331C4 +FUN_020331C4: ; 0x020331C4 + push {r3, lr} + ldr r0, _020331E0 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020331DC + mov r0, #0x1 + bl FUN_020166B8 + ldr r0, _020331E4 ; =FUN_02032440 + mov r1, #0x5 + bl FUN_02031D20 +_020331DC: + pop {r3, pc} + nop +_020331E0: .word 0x021C5A00 +_020331E4: .word FUN_02032440 + + thumb_func_start FUN_020331E8 +FUN_020331E8: ; 0x020331E8 + push {r3, lr} + ldr r0, _02033200 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020331FE + mov r1, #0x0 + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033204 ; =FUN_020330A0 + bl FUN_02031D20 +_020331FE: + pop {r3, pc} + .balign 4 +_02033200: .word 0x021C5A00 +_02033204: .word FUN_020330A0 + + thumb_func_start FUN_02033208 +FUN_02033208: ; 0x02033208 + push {r3, lr} + ldr r0, _02033234 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033232 + bl FUN_02031190 + cmp r0, #0x0 + bne _02033220 + mov r1, #0x0 + ldr r0, _02033234 ; =0x021C5A00 + b _02033224 +_02033220: + ldr r0, _02033234 ; =0x021C5A00 + mov r1, #0x1 +_02033224: + ldr r0, [r0, #0x0] + add r0, #0x41 + strb r1, [r0, #0x0] + ldr r0, _02033238 ; =FUN_020330A0 + mov r1, #0x0 + bl FUN_02031D20 +_02033232: + pop {r3, pc} + .balign 4 +_02033234: .word 0x021C5A00 +_02033238: .word FUN_020330A0 + + thumb_func_start FUN_0203323C +FUN_0203323C: ; 0x0203323C + push {r3, lr} + bl FUN_02031190 + add r1, sp, #0x0 + strb r0, [r1, #0x0] + mov r0, #0x15 + add r1, sp, #0x0 + bl FUN_020311D0 + pop {r3, pc} + + thumb_func_start FUN_02033250 +FUN_02033250: ; 0x02033250 + ldr r0, _0203327C ; =0x021C5A00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _02033276 + ldr r1, [r2, #0x24] + ldr r0, _02033280 ; =FUN_02032E8C + cmp r1, r0 + bne _02033264 + mov r0, #0x1 + bx lr +_02033264: + ldr r0, _02033284 ; =FUN_02032E90 + cmp r1, r0 + bne _02033276 + add r2, #0x44 + ldrb r0, [r2, #0x0] + cmp r0, #0x0 + beq _02033276 + mov r0, #0x1 + bx lr +_02033276: + mov r0, #0x0 + bx lr + nop +_0203327C: .word 0x021C5A00 +_02033280: .word FUN_02032E8C +_02033284: .word FUN_02032E90 + + thumb_func_start FUN_02033288 +FUN_02033288: ; 0x02033288 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020332D8 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020332D6 + mov r1, #0xf + add r2, r1, #0x0 + mov r0, #0x3 + add r2, #0xf1 + bl FUN_02016828 + mov r0, #0xf + mov r1, #0x50 + bl FUN_02016998 + ldr r1, _020332D8 ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, _020332D8 ; =0x021C5A00 + mov r2, #0x18 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0x1 + add r2, #0x46 + strb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + str r4, [r0, #0x28] + mov r0, #0x0 + bl FUN_020334E8 + mov r0, #0x1 + bl FUN_020166A8 +_020332D6: + pop {r4, pc} + .balign 4 +_020332D8: .word 0x021C5A00 + + thumb_func_start FUN_020332DC +FUN_020332DC: ; 0x020332DC + push {r3, lr} + ldr r0, _0203330C ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033308 + mov r0, #0x1 + bl FUN_020166B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_020334E8 + ldr r0, _0203330C ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _0203330C ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0xf + bl FUN_020168D0 +_02033308: + pop {r3, pc} + nop +_0203330C: .word 0x021C5A00 + + thumb_func_start FUN_02033310 +FUN_02033310: ; 0x02033310 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _02033360 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203335E + mov r1, #0xf + add r2, r1, #0x0 + mov r0, #0x3 + add r2, #0xf1 + bl FUN_02016828 + mov r0, #0xf + mov r1, #0x50 + bl FUN_02016998 + ldr r1, _02033360 ; =0x021C5A00 + mov r2, #0x50 + str r0, [r1, #0x0] + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, _02033360 ; =0x021C5A00 + mov r2, #0x19 + ldr r1, [r0, #0x0] + add r1, #0x3f + strb r2, [r1, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0x1 + add r2, #0x46 + strb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + str r4, [r0, #0x28] + mov r0, #0x0 + bl FUN_020334E8 + mov r0, #0x1 + bl FUN_020166A8 +_0203335E: + pop {r4, pc} + .balign 4 +_02033360: .word 0x021C5A00 + + thumb_func_start FUN_02033364 +FUN_02033364: ; 0x02033364 + push {r3, lr} + ldr r0, _02033394 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033390 + mov r0, #0x1 + bl FUN_020166B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_020334E8 + ldr r0, _02033394 ; =0x021C5A00 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _02033394 ; =0x021C5A00 + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, #0xf + bl FUN_020168D0 +_02033390: + pop {r3, pc} + nop +_02033394: .word 0x021C5A00 + + thumb_func_start FUN_02033398 +FUN_02033398: ; 0x02033398 + push {r3, lr} + sub sp, #0x8 + ldr r0, _020333EC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020333AA + add sp, #0x8 + mov r0, #0x0 + pop {r3, pc} +_020333AA: + add r0, #0x3f + ldrb r0, [r0, #0x0] + cmp r0, #0x18 + bne _020333C8 + add r0, sp, #0x4 + add r1, sp, #0x0 + bl MOD04_021DD718 + cmp r0, #0x0 + beq _020333E4 + bl MOD04_021DD6F0 + add sp, #0x8 + mov r0, #0x1 + pop {r3, pc} +_020333C8: + cmp r0, #0x19 + bne _020333E4 + add r0, sp, #0x4 + add r1, sp, #0x0 + bl MOD04_021DD718 + cmp r0, #0x0 + beq _020333E4 + ldr r0, [sp, #0x0] + cmp r0, #0x7 + bne _020333E4 + add sp, #0x8 + mov r0, #0x1 + pop {r3, pc} +_020333E4: + mov r0, #0x0 + add sp, #0x8 + pop {r3, pc} + nop +_020333EC: .word 0x021C5A00 + + thumb_func_start FUN_020333F0 +FUN_020333F0: ; 0x020333F0 + push {r3, lr} + bl MOD04_021D76AC + cmp r0, #0x0 + bge _02033408 + bl FUN_02032F20 + ldr r0, _02033414 ; =FUN_02032E8C + mov r1, #0x0 + bl FUN_02031D20 + pop {r3, pc} +_02033408: + ble _02033412 + ldr r0, _02033418 ; =FUN_02033060 + mov r1, #0x0 + bl FUN_02031D20 +_02033412: + pop {r3, pc} + .balign 4 +_02033414: .word FUN_02032E8C +_02033418: .word FUN_02033060 + + thumb_func_start FUN_0203341C +FUN_0203341C: ; 0x0203341C + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0x0 + beq _0203345E + mov r1, #0x31 + mov r0, #0x3 + lsl r2, r1, #0xc + bl FUN_02016828 + mov r0, #0x1 + add r1, r0, #0x0 + lsl r2, r0, #0x9 + add r3, r0, #0x0 + bl FUN_0202F918 + cmp r0, #0x0 + beq _0203345E + ldr r0, _02033460 ; =0x021C5A00 + mov r1, #0x31 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl MOD05_021D74E0 + ldr r0, _02033464 ; =FUN_020335D0 + bl MOD04_021D83A8 + bl FUN_0202FA10 + ldr r0, _02033468 ; =FUN_020333F0 + mov r1, #0x0 + bl FUN_02031D20 +_0203345E: + pop {r3, pc} + .balign 4 +_02033460: .word 0x021C5A00 +_02033464: .word FUN_020335D0 +_02033468: .word FUN_020333F0 + + thumb_func_start FUN_0203346C +FUN_0203346C: ; 0x0203346C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020238F4 + bl FUN_02030F40 + cmp r0, #0x0 + beq _02033482 + mov r0, #0x0 + pop {r3-r5, pc} +_02033482: + mov r0, #0x1 + bl FUN_020166A8 + ldr r2, _020334D0 ; =0x00007080 + mov r0, #0x3 + mov r1, #0xf + bl FUN_02016828 + add r0, r5, #0x0 + mov r1, #0x17 + bl FUN_02031734 + mov r0, #0xf + add r1, r4, #0x0 + bl FUN_02016998 + ldr r1, _020334D4 ; =0x021C5A00 + ldr r2, [r1, #0x0] + str r0, [r2, #0x0] + ldr r0, [r1, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r2, r4, #0x0 + bl MI_CpuFill8 + ldr r0, _020334D4 ; =0x021C5A00 + mov r1, #0x0 + ldr r2, [r0, #0x0] + add r2, #0x40 + strb r1, [r2, #0x0] + ldr r0, [r0, #0x0] + str r5, [r0, #0x28] + ldr r0, _020334D8 ; =FUN_0203341C + bl FUN_02031D20 + ldr r0, _020334D4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 +_020334D0: .word 0x00007080 +_020334D4: .word 0x021C5A00 +_020334D8: .word FUN_0203341C + + thumb_func_start FUN_020334DC +FUN_020334DC: ; 0x020334DC + ldr r0, _020334E4 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020334E4: .word 0x021C5A00 + + thumb_func_start FUN_020334E8 +FUN_020334E8: ; 0x020334E8 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _0203350C ; =0x021C5A00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020334FE + add r2, #0x44 + strb r4, [r2, #0x0] + ldr r0, [r0, #0x0] + add r0, #0x45 + strb r1, [r0, #0x0] +_020334FE: + add r0, r4, #0x0 + bl FUN_0202EE84 + add r0, r4, #0x0 + bl FUN_0202EEB0 + pop {r4, pc} + .balign 4 +_0203350C: .word 0x021C5A00 + + thumb_func_start FUN_02033510 +FUN_02033510: ; 0x02033510 + ldr r0, _02033530 ; =0x021C5A00 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0203352C + add r0, r1, #0x0 + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033526 + mov r0, #0x1 + bx lr +_02033526: + add r1, #0x45 + ldrb r0, [r1, #0x0] + bx lr +_0203352C: + mov r0, #0x0 + bx lr + .balign 4 +_02033530: .word 0x021C5A00 + + thumb_func_start FUN_02033534 +FUN_02033534: ; 0x02033534 + ldr r0, _02033548 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033542 + add r0, #0x3f + ldrb r0, [r0, #0x0] + bx lr +_02033542: + mov r0, #0x1 + bx lr + nop +_02033548: .word 0x021C5A00 + + thumb_func_start FUN_0203354C +FUN_0203354C: ; 0x0203354C + ldr r0, _02033560 ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203355A + add r0, #0x40 + ldrb r0, [r0, #0x0] + bx lr +_0203355A: + mov r0, #0x0 + bx lr + nop +_02033560: .word 0x021C5A00 + + thumb_func_start FUN_02033564 +FUN_02033564: ; 0x02033564 + ldr r1, _02033570 ; =0x021C5A00 + ldr r3, _02033574 ; =MI_CpuCopy8 + ldr r1, [r1, #0x0] + mov r2, #0x6 + add r1, r1, #0x4 + bx r3 + .balign 4 +_02033570: .word 0x021C5A00 +_02033574: .word MI_CpuCopy8 + + thumb_func_start FUN_02033578 +FUN_02033578: ; 0x02033578 + add r1, r0, #0x0 + ldr r0, _02033588 ; =0x021C5A00 + ldr r3, _0203358C ; =MI_CpuCopy8 + ldr r0, [r0, #0x0] + mov r2, #0x6 + add r0, r0, #0x4 + bx r3 + nop +_02033588: .word 0x021C5A00 +_0203358C: .word MI_CpuCopy8 + + thumb_func_start FUN_02033590 +FUN_02033590: ; 0x02033590 + push {r3, lr} + bl FUN_02033534 + cmp r0, #0x13 + blt _0203359E + mov r0, #0x1 + pop {r3, pc} +_0203359E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020335A4 +FUN_020335A4: ; 0x020335A4 + ldr r1, _020335B4 ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020335B0 + add r1, #0x47 + strb r0, [r1, #0x0] +_020335B0: + bx lr + nop +_020335B4: .word 0x021C5A00 + + thumb_func_start FUN_020335B8 +FUN_020335B8: ; 0x020335B8 + ldr r0, _020335CC ; =0x021C5A00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020335C6 + add r0, #0x47 + ldrb r0, [r0, #0x0] + bx lr +_020335C6: + mov r0, #0x0 + bx lr + nop +_020335CC: .word 0x021C5A00 + + thumb_func_start FUN_020335D0 +FUN_020335D0: ; 0x020335D0 + push {r3, lr} + add r2, r0, #0x0 + mov r0, #0x0 + mov r1, #0x1 + bl FUN_02033F70 +_020335DC: + b _020335DC + .balign 4 + + thumb_func_start FUN_020335E0 +FUN_020335E0: ; 0x020335E0 + push {r3, lr} + mov r0, #0x0 + mov r1, #0x4 + add r2, r0, #0x0 + bl FUN_02033F70 +_020335EC: + b _020335EC + .balign 4 + + thumb_func_start FUN_020335F0 +FUN_020335F0: ; 0x020335F0 + bx lr + .balign 4 + + thumb_func_start FUN_020335F4 +FUN_020335F4: ; 0x020335F4 + push {r3, lr} + bl FUN_02033510 + cmp r0, #0x0 + beq _0203366C + bl FUN_020311F0 + cmp r0, #0x0 + bne _02033622 + bl FUN_02033250 + cmp r0, #0x0 + bne _02033622 + bl FUN_02033398 + cmp r0, #0x0 + bne _02033622 + ldr r0, _02033670 ; =0x021C5A00 + ldr r0, [r0, #0x0] + add r0, #0x4e + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203366C +_02033622: + bl FUN_020335B8 + cmp r0, #0x0 + bne _0203366C + bl FUN_0200541C + ldr r0, _02033670 ; =0x021C5A00 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x28] + bl FUN_0202287C + ldr r1, _02033674 ; =0x021C4918 + mov r0, #0x1 + strb r0, [r1, #0x4] + ldr r1, _02033670 ; =0x021C5A00 + ldr r2, [r1, #0x0] + add r1, r2, #0x0 + add r1, #0x4e + ldrb r1, [r1, #0x0] + cmp r1, #0x3 + bne _02033654 + mov r0, #0x3 + bl FUN_020335A4 + pop {r3, pc} +_02033654: + add r2, #0x3f + ldrb r1, [r2, #0x0] + cmp r1, #0x19 + beq _02033660 + cmp r1, #0xf + bne _02033668 +_02033660: + mov r0, #0x2 + bl FUN_020335A4 + pop {r3, pc} +_02033668: + bl FUN_020335A4 +_0203366C: + pop {r3, pc} + nop +_02033670: .word 0x021C5A00 +_02033674: .word 0x021C4918 + + thumb_func_start FUN_02033678 +FUN_02033678: ; 0x02033678 + push {r3, lr} + bl FUN_0202EDD8 + cmp r0, #0x0 + bne _0203368A + bl FUN_02031810 + cmp r0, #0x0 + bne _0203368E +_0203368A: + mov r0, #0x1 + pop {r3, pc} +_0203368E: + bl FUN_0202E344 + cmp r0, #0x0 + bne _0203369A + mov r0, #0x1 + pop {r3, pc} +_0203369A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020336A0 +FUN_020336A0: ; 0x020336A0 + push {r3, lr} + ldr r1, _020336BC ; =0x021C5A00 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020336B6 + add r1, #0x4e + strb r0, [r1, #0x0] + bl FUN_02031468 + mov r0, #0x1 + pop {r3, pc} +_020336B6: + mov r0, #0x0 + pop {r3, pc} + nop +_020336BC: .word 0x021C5A00 + + thumb_func_start FUN_020336C0 +FUN_020336C0: ; 0x020336C0 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_020336C8 +FUN_020336C8: ; 0x020336C8 + push {r4-r6, lr} + add r4, r2, #0x0 + add r6, r1, #0x0 + ldr r1, [r4, #0x0] + add r5, r0, #0x0 + cmp r1, #0x6 + bhi _02033774 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_020336E2: ; jump table (using 16-bit offset) + .short _020336F0 - _020336E2 - 2; case 0 + .short _020336FC - _020336E2 - 2; case 1 + .short _02033714 - _020336E2 - 2; case 2 + .short _0203373A - _020336E2 - 2; case 3 + .short _0203374A - _020336E2 - 2; case 4 + .short _0203376A - _020336E2 - 2; case 5 + .short _02033770 - _020336E2 - 2; case 6 +_020336F0: + mov r0, #0x6f + bl FUN_02031588 + mov r0, #0x1 + str r0, [r4, #0x0] + b _02033774 +_020336FC: + mov r0, #0x6f + bl FUN_020315D8 + cmp r0, #0x0 + beq _02033774 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02022840 + mov r0, #0x2 + str r0, [r4, #0x0] + b _02033774 +_02033714: + bl FUN_02022854 + add r5, r0, #0x0 + cmp r5, #0x2 + bne _02033722 + bl ErrorHandling +_02033722: + cmp r5, #0x3 + bne _0203372A + bl ErrorHandling +_0203372A: + cmp r5, #0x1 + bne _02033774 + mov r0, #0x3 + str r0, [r4, #0x0] + mov r0, #0x70 + bl FUN_02031588 + b _02033774 +_0203373A: + mov r0, #0x70 + bl FUN_020315D8 + cmp r0, #0x0 + beq _02033774 + mov r0, #0x4 + str r0, [r4, #0x0] + b _02033774 +_0203374A: + bl FUN_02022854 + add r5, r0, #0x0 + cmp r5, #0x3 + bne _02033758 + bl ErrorHandling +_02033758: + cmp r5, #0x1 + bne _02033760 + bl ErrorHandling +_02033760: + cmp r5, #0x2 + bne _02033774 + mov r0, #0x5 + str r0, [r4, #0x0] + b _02033774 +_0203376A: + mov r0, #0x6 + str r0, [r4, #0x0] + b _02033774 +_02033770: + mov r0, #0x1 + pop {r4-r6, pc} +_02033774: + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02033778 +FUN_02033778: ; 0x02033778 + push {r3-r7, lr} + str r0, [sp, #0x0] + bl FUN_02030F20 + add r7, r0, #0x0 + mov r0, #0x0 + bl FUN_0202DFA4 + cmp r0, #0x0 + beq _020337C6 + mov r5, #0x0 + cmp r7, #0x0 + ble _020337C6 +_02033792: + bl FUN_02031190 + cmp r5, r0 + beq _020337C0 + add r0, r5, #0x0 + bl FUN_0202E020 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0202E044 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0202DFA4 + bl FUN_02023A70 + add r3, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020337C8 +_020337C0: + add r5, r5, #0x1 + cmp r5, r7 + blt _02033792 +_020337C6: + pop {r3-r7, pc} + + thumb_func_start FUN_020337C8 +FUN_020337C8: ; 0x020337C8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02029B40 + cmp r0, #0x0 + bne _020337E4 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + mov r3, #0x1 + bl FUN_02029B90 +_020337E4: + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020337E8 +FUN_020337E8: ; 0x020337E8 + push {r3-r5, lr} + mov r1, #0x72 + lsl r1, r1, #0x4 + bl FUN_02016998 + add r4, r0, #0x0 + add r0, #0x1f + mov r1, #0x1f + bic r0, r1 + bl FUN_02096B14 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_02016A18 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0203380C +FUN_0203380C: ; 0x0203380C + push {r4, lr} + bl FUN_02028228 + add r4, r0, #0x0 + bl FUN_02096FB0 + cmp r0, #0x0 + bne _0203382A + ldr r1, _0203382C ; =0x4144414A + add r0, r4, #0x0 + bl thunk_FUN_02097190 + add r0, r4, #0x0 + bl thunk_FUN_02096e4c +_0203382A: + pop {r4, pc} + .balign 4 +_0203382C: .word 0x4144414A + + thumb_func_start FUN_02033830 +FUN_02033830: ; 0x02033830 + push {r3-r4, lr} + sub sp, #0xc + bl FUN_02028228 + add r4, r0, #0x0 + add r1, sp, #0x0 + bl FUN_02096CCC + add r0, r4, #0x0 + add r1, sp, #0x0 + bl FUN_02096DA0 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start FUN_0203384C +FUN_0203384C: ; 0x0203384C + push {r4, lr} + bl FUN_020286EC + bl FUN_02028228 + add r4, r0, #0x0 + bl FUN_02096F80 + cmp r0, #0x0 + beq _0203386E + add r0, r4, #0x0 + bl FUN_02096F18 + cmp r0, #0x0 + beq _0203386E + mov r0, #0x1 + pop {r4, pc} +_0203386E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02033874 +FUN_02033874: ; 0x02033874 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + add r5, r1, #0x0 + str r2, [sp, #0x0] + bl FUN_020286EC + bl FUN_02028228 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl FUN_020286EC + mov r1, #0x0 + bl FUN_0202838C + add r4, r0, #0x0 + mov r1, #0x0 + ldr r0, [sp, #0x0] + mvn r1, r1 + str r1, [r0, #0x0] + add r0, r5, #0x0 + bl FUN_0209700C + cmp r0, #0x0 + bne _020338AE + add sp, #0x8 + mov r0, #0x3 + pop {r3-r7, pc} +_020338AE: + mov r7, #0x0 +_020338B0: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02096B78 + cmp r0, #0x0 + beq _020338C6 + ldr r0, [sp, #0x0] + add sp, #0x8 + str r7, [r0, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_020338C6: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02096DA0 + cmp r0, #0x0 + ble _020338F4 + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02096DA0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_02096DA0 + ldr r1, [sp, #0x4] + cmp r1, r0 + bne _020338F4 + ldr r0, [sp, #0x0] + add sp, #0x8 + str r7, [r0, #0x0] + mov r0, #0x1 + pop {r3-r7, pc} +_020338F4: + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bge _0203390A + add r0, r4, #0x0 + bl FUN_0209700C + cmp r0, #0x0 + bne _0203390A + ldr r0, [sp, #0x0] + str r7, [r0, #0x0] +_0203390A: + add r7, r7, #0x1 + add r4, #0xc + cmp r7, #0x20 + blt _020338B0 + mov r0, #0x2 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02033918 +FUN_02033918: ; 0x02033918 + push {r3-r7, lr} + sub sp, #0x18 + add r4, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r6, r3, #0x0 + bl FUN_020286EC + bl FUN_02028228 + add r7, r0, #0x0 + add r0, r4, #0x0 + bl FUN_020286EC + mov r1, #0x0 + bl FUN_0202838C + add r5, r0, #0x0 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r7, #0x0 + bl FUN_020973B4 + cmp r0, #0x0 + bne _02033950 + add sp, #0x18 + mov r0, #0x3 + pop {r3-r7, pc} +_02033950: + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, sp, #0xc + bl FUN_02096D2C + add r0, r7, #0x0 + add r1, sp, #0xc + bl FUN_02096DA0 + cmp r0, #0x0 + bgt _0203396C + add sp, #0x18 + mov r0, #0x3 + pop {r3-r7, pc} +_0203396C: + mov r0, #0x0 + mvn r0, r0 + str r0, [r6, #0x0] + mov r4, #0x0 +_02033974: + add r0, r7, #0x0 + add r1, sp, #0xc + bl FUN_02096DA0 + str r0, [sp, #0x8] + add r0, r7, #0x0 + add r1, r5, #0x0 + bl FUN_02096DA0 + ldr r1, [sp, #0x8] + cmp r1, r0 + bne _02033994 + add sp, #0x18 + str r4, [r6, #0x0] + mov r0, #0x0 + pop {r3-r7, pc} +_02033994: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bge _020339A6 + add r0, r5, #0x0 + bl FUN_0209700C + cmp r0, #0x0 + bne _020339A6 + str r4, [r6, #0x0] +_020339A6: + add r4, r4, #0x1 + add r5, #0xc + cmp r4, #0x20 + blt _02033974 + mov r0, #0x2 + add sp, #0x18 + pop {r3-r7, pc} + + thumb_func_start FUN_020339B4 +FUN_020339B4: ; 0x020339B4 + push {r4-r7, lr} + sub sp, #0x14 + add r6, r1, #0x0 + mov r1, #0x0 + add r5, r0, #0x0 + str r2, [sp, #0x4] + str r1, [sp, #0xc] + bl FUN_020286EC + mov r1, #0x0 + bl FUN_0202838C + str r0, [sp, #0x8] + mov r4, #0x0 + bl FUN_02030F20 + cmp r0, #0x0 + ble _02033A68 +_020339D8: + bl FUN_02031190 + cmp r4, r0 + beq _02033A5C + add r0, r4, #0x0 + bl FUN_0202DFD8 + add r7, r0, #0x0 + beq _02033A5C + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, sp, #0x10 + bl FUN_02033874 + str r0, [r6, #0x0] + cmp r0, #0x3 + bne _020339FE + bl ErrorHandling +_020339FE: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + bne _02033A1C + mov r0, #0x2 + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02033A70 + add r0, r5, #0x0 + bl FUN_0202E1BC + b _02033A5C +_02033A1C: + cmp r0, #0x1 + bne _02033A54 + bl FUN_02033590 + cmp r0, #0x0 + bne _02033A5C + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02033A70 + ldr r2, [sp, #0x10] + mov r1, #0xc + add r3, r2, #0x0 + mul r3, r1 + ldr r1, [sp, #0x8] + add r0, r7, #0x0 + add r1, r1, r3 + mov r2, #0xc + bl MI_CpuCopy8 + add r0, r5, #0x0 + bl FUN_0202E1BC + b _02033A5C +_02033A54: + cmp r0, #0x2 + bne _02033A5C + mov r0, #0x1 + str r0, [sp, #0xc] +_02033A5C: + add r6, r6, #0x4 + add r4, r4, #0x1 + bl FUN_02030F20 + cmp r4, r0 + blt _020339D8 +_02033A68: + ldr r0, [sp, #0xc] + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02033A70 +FUN_02033A70: ; 0x02033A70 + push {r4-r7, lr} + sub sp, #0x14 + add r5, r2, #0x0 + str r0, [sp, #0x0] + add r7, r1, #0x0 + str r3, [sp, #0x4] + bl FUN_020286EC + add r1, r5, #0x0 + add r4, r0, #0x0 + bl FUN_0202838C + str r0, [sp, #0x8] + add r0, r7, #0x0 + bl FUN_0202DFA4 + add r6, r0, #0x0 + ldr r0, [sp, #0x28] + cmp r0, #0x2 + beq _02033AA6 + add r0, r7, #0x0 + bl FUN_0202DFD8 + ldr r1, [sp, #0x8] + mov r2, #0xc + bl MI_CpuCopy8 +_02033AA6: + ldr r0, [sp, #0x28] + cmp r0, #0x0 + bne _02033AEC + ldr r1, [sp, #0x4] + add r0, r6, #0x0 + bl FUN_020239A0 + str r0, [sp, #0xc] + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020283C0 + ldr r0, [sp, #0xc] + bl FUN_02021A20 + add r0, r6, #0x0 + bl FUN_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl FUN_020282E8 + add r0, r6, #0x0 + bl FUN_020239BC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl FUN_020282E8 + b _02033B22 +_02033AEC: + cmp r0, #0x1 + bne _02033B22 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl FUN_0202822C + cmp r0, #0x2 + bne _02033B22 + add r0, r6, #0x0 + bl FUN_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x8 + bl FUN_020282E8 + add r0, r6, #0x0 + bl FUN_020239BC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x0 + bl FUN_020282E8 +_02033B22: + ldr r1, [sp, #0x4] + mov r0, #0x78 + bl FUN_020219F4 + str r0, [sp, #0x10] + add r0, r7, #0x0 + bl FUN_0202DFFC + add r1, r0, #0x0 + ldr r0, [sp, #0x10] + bl FUN_02021E28 + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02028404 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add r0, r6, #0x0 + bl FUN_02023A28 + add r3, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + mov r2, #0x7 + bl FUN_020282E8 + ldr r0, [sp, #0x0] + bl FUN_0202E1BC + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02033B68 +FUN_02033B68: ; 0x02033B68 + push {r4-r6, lr} + add r4, r1, #0x0 + add r5, r2, #0x0 + mov r2, #0x7 + add r6, r3, #0x0 + ldr r1, [sp, #0x10] + mov r0, #0x1 + lsl r2, r2, #0x6 + add r3, r4, #0x0 + bl FUN_02033D3C + ldr r1, [sp, #0x10] + mov r0, #0x1 + add r2, r4, #0x0 + bl FUN_02033D9C + add r0, r4, #0x0 + mov r1, #0x20 + bl FUN_020169D8 + add r4, r0, #0x0 + ldr r0, _02033BC4 ; =FUN_02033BC8 + add r1, r4, #0x0 + mov r2, #0x5 + bl FUN_0200CA98 + str r0, [r4, #0x18] + strh r5, [r4, #0xc] + strh r6, [r4, #0xe] + mov r1, #0x0 + str r1, [r4, #0x0] + mov r0, #0x3 + str r0, [r4, #0x4] + ldr r0, [sp, #0x14] + str r0, [r4, #0x14] + ldr r0, [sp, #0x10] + str r1, [r4, #0x8] + strb r0, [r4, #0x10] + strb r1, [r4, #0x12] + mov r0, #0x7 + strb r1, [r4, #0x11] + lsl r0, r0, #0x18 + str r0, [r4, #0x1c] + add r0, r4, #0x0 + pop {r4-r6, pc} + nop +_02033BC4: .word FUN_02033BC8 + + thumb_func_start FUN_02033BC8 +FUN_02033BC8: ; 0x02033BC8 + push {r3-r7, lr} + add r5, r1, #0x0 + ldrb r0, [r5, #0x11] + cmp r0, #0x1 + beq _02033BD8 + cmp r0, #0x2 + beq _02033BEE + b _02033C04 +_02033BD8: + ldr r0, _02033CB0 ; =0x04000304 + ldrh r1, [r0, #0x0] + lsr r0, r0, #0xb + and r0, r1 + asr r0, r0, #0xf + cmp r0, #0x1 + bne _02033BEA + mov r6, #0x1 + b _02033C06 +_02033BEA: + mov r6, #0x2 + b _02033C06 +_02033BEE: + ldr r0, _02033CB0 ; =0x04000304 + ldrh r1, [r0, #0x0] + lsr r0, r0, #0xb + and r0, r1 + asr r0, r0, #0xf + cmp r0, #0x1 + bne _02033C00 + mov r6, #0x2 + b _02033C06 +_02033C00: + mov r6, #0x1 + b _02033C06 +_02033C04: + mov r6, #0x1 +_02033C06: + ldr r4, [r5, #0x4] + cmp r6, #0x1 + bne _02033C1E + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033CB4 ; =0x00300010 + add r7, r1, #0x0 + and r7, r0 + bl GX_GetBankForOBJ + b _02033C2C +_02033C1E: + ldr r0, _02033CB8 ; =0x04001000 + ldr r1, [r0, #0x0] + ldr r0, _02033CB4 ; =0x00300010 + add r7, r1, #0x0 + and r7, r0 + bl GX_GetBankForSubOBJ +_02033C2C: + cmp r7, #0x10 + beq _02033C38 + ldr r1, _02033CBC ; =0x00200010 + cmp r7, r1 + beq _02033C54 + b _02033C6C +_02033C38: + cmp r0, #0x40 + beq _02033C40 + cmp r0, #0x20 + bne _02033C4A +_02033C40: + mov r0, #0x1f + lsl r1, r4, #0x2 + lsl r0, r0, #0x4 + add r1, r1, r0 + b _02033C74 +_02033C4A: + mov r0, #0x3f + lsl r1, r4, #0x2 + lsl r0, r0, #0x4 + add r1, r1, r0 + b _02033C74 +_02033C54: + cmp r0, #0x30 + beq _02033C5C + cmp r0, #0x50 + bne _02033C64 +_02033C5C: + mov r0, #0x9f + lsl r0, r0, #0x2 + add r1, r4, r0 + b _02033C74 +_02033C64: + mov r0, #0xff + lsl r0, r0, #0x2 + add r1, r4, r0 + b _02033C74 +_02033C6C: + mov r0, #0xfe + lsl r1, r4, #0x1 + lsl r0, r0, #0x2 + add r1, r1, r0 +_02033C74: + cmp r6, #0x1 + bne _02033C7E + mov r2, #0x7 + lsl r2, r2, #0x18 + b _02033C80 +_02033C7E: + ldr r2, _02033CC0 ; =0x07000400 +_02033C80: + ldrh r3, [r5, #0xe] + ldrh r0, [r5, #0xc] + lsl r3, r3, #0x18 + lsr r4, r3, #0x18 + mov r3, #0x1 + lsl r0, r0, #0x17 + lsl r3, r3, #0x1e + lsr r0, r0, #0x7 + orr r3, r4 + orr r0, r3 + str r0, [r2, #0x0] + mov r0, #0xe + lsl r0, r0, #0xc + orr r0, r1 + strh r0, [r2, #0x4] + ldr r1, [r5, #0x1c] + cmp r2, r1 + beq _02033CAE + ldr r0, _02033CC4 ; =0x40000200 + str r0, [r1, #0x0] + mov r0, #0x0 + strh r0, [r1, #0x4] + str r2, [r5, #0x1c] +_02033CAE: + pop {r3-r7, pc} + .balign 4 +_02033CB0: .word 0x04000304 +_02033CB4: .word 0x00300010 +_02033CB8: .word 0x04001000 +_02033CBC: .word 0x00200010 +_02033CC0: .word 0x07000400 +_02033CC4: .word 0x40000200 + + thumb_func_start FUN_02033CC8 +FUN_02033CC8: ; 0x02033CC8 + cmp r1, #0x4 + bge _02033CD2 + str r1, [r0, #0x4] + mov r1, #0x0 + str r1, [r0, #0x8] +_02033CD2: + bx lr + + thumb_func_start FUN_02033CD4 +FUN_02033CD4: ; 0x02033CD4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x18] + bl FUN_0200CAB4 + mov r0, #0x7 + ldr r2, _02033D00 ; =0x40000200 + lsl r0, r0, #0x18 + str r2, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x4] + ldrb r0, [r4, #0x12] + cmp r0, #0x0 + beq _02033CF6 + ldr r0, _02033D04 ; =0x07000400 + str r2, [r0, #0x0] + strh r1, [r0, #0x4] +_02033CF6: + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + nop +_02033D00: .word 0x40000200 +_02033D04: .word 0x07000400 + + thumb_func_start FUN_02033D08 +FUN_02033D08: ; 0x02033D08 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + mov r2, #0x7 + ldrb r1, [r5, #0x10] + mov r0, #0x2 + lsl r2, r2, #0x6 + add r3, r6, #0x0 + bl FUN_02033D3C + ldrb r1, [r5, #0x10] + mov r0, #0x2 + add r2, r6, #0x0 + bl FUN_02033D9C + cmp r4, #0x0 + beq _02033D30 + mov r0, #0x1 + b _02033D32 +_02033D30: + mov r0, #0x2 +_02033D32: + strb r0, [r5, #0x11] + mov r0, #0x1 + strb r0, [r5, #0x12] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02033D3C +FUN_02033D3C: ; 0x02033D3C + push {r3-r5, lr} + sub sp, #0x8 + mov r1, #0x96 + add r5, r0, #0x0 + add r0, r3, #0x0 + lsl r1, r1, #0x2 + add r4, r2, #0x0 + bl FUN_020169D8 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02033D92 + ldr r0, _02033D98 ; =0x02105D88 + add r1, sp, #0x4 + bl FUN_020161F8 + mov r1, #0x96 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x2 + bl DC_FlushRange + ldr r0, [sp, #0x4] + add r1, sp, #0x0 + bl FUN_020B0138 + cmp r5, #0x1 + bne _02033D80 + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + bl GX_LoadOBJPltt + b _02033D8C +_02033D80: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + bl GXS_LoadOBJPltt +_02033D8C: + ldr r0, [sp, #0x4] + bl FUN_02016A18 +_02033D92: + add sp, #0x8 + pop {r3-r5, pc} + nop +_02033D98: .word 0x02105D88 + + thumb_func_start FUN_02033D9C +FUN_02033D9C: ; 0x02033D9C + push {r3-r5, lr} + sub sp, #0x8 + add r4, r1, #0x0 + mov r1, #0x96 + add r5, r0, #0x0 + add r0, r2, #0x0 + lsl r1, r1, #0x2 + bl FUN_020169D8 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _02033E58 + cmp r4, #0x0 + add r1, sp, #0x4 + beq _02033DC2 + ldr r0, _02033E5C ; =0x02105D98 + bl FUN_020161F8 + b _02033DC8 +_02033DC2: + ldr r0, _02033E60 ; =0x02105DA8 + bl FUN_020161F8 +_02033DC8: + mov r1, #0x96 + ldr r0, [sp, #0x4] + lsl r1, r1, #0x2 + bl DC_FlushRange + ldr r0, [sp, #0x4] + add r1, sp, #0x0 + bl FUN_020B0088 + cmp r5, #0x1 + bne _02033DF0 + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033E64 ; =0x00300010 + add r4, r1, #0x0 + and r4, r0 + bl GX_GetBankForOBJ + b _02033E00 +_02033DF0: + mov r0, #0x1 + lsl r0, r0, #0x1a + ldr r1, [r0, #0x0] + ldr r0, _02033E64 ; =0x00300010 + add r4, r1, #0x0 + and r4, r0 + bl GX_GetBankForOBJ +_02033E00: + cmp r4, #0x10 + beq _02033E0C + ldr r1, _02033E68 ; =0x00200010 + cmp r4, r1 + beq _02033E20 + b _02033E30 +_02033E0C: + cmp r0, #0x40 + beq _02033E14 + cmp r0, #0x20 + bne _02033E1A +_02033E14: + mov r1, #0x3e + lsl r1, r1, #0x8 + b _02033E34 +_02033E1A: + mov r1, #0x7e + lsl r1, r1, #0x8 + b _02033E34 +_02033E20: + cmp r0, #0x30 + beq _02033E28 + cmp r0, #0x50 + bne _02033E2C +_02033E28: + ldr r1, _02033E6C ; =0x00013E00 + b _02033E34 +_02033E2C: + ldr r1, _02033E70 ; =0x0001FE00 + b _02033E34 +_02033E30: + mov r1, #0xfe + lsl r1, r1, #0x8 +_02033E34: + cmp r5, #0x1 + bne _02033E46 + ldr r0, [sp, #0x0] + mov r2, #0x2 + ldr r0, [r0, #0x14] + lsl r2, r2, #0x8 + bl GX_LoadOBJ + b _02033E52 +_02033E46: + ldr r0, [sp, #0x0] + mov r2, #0x2 + ldr r0, [r0, #0x14] + lsl r2, r2, #0x8 + bl GXS_LoadOBJ +_02033E52: + ldr r0, [sp, #0x4] + bl FUN_02016A18 +_02033E58: + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02033E5C: .word 0x02105D98 +_02033E60: .word 0x02105DA8 +_02033E64: .word 0x00300010 +_02033E68: .word 0x00200010 +_02033E6C: .word 0x00013E00 +_02033E70: .word 0x0001FE00 + + thumb_func_start FUN_02033E74 +FUN_02033E74: ; 0x02033E74 + push {r4, lr} + mov r4, #0x0 + bl FUN_02033590 + cmp r0, #0x0 + beq _02033E82 + mov r4, #0x1 +_02033E82: + mov r0, #0xf0 + mov r1, #0x0 + add r2, r4, #0x0 + bl FUN_02033E90 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02033E90 +FUN_02033E90: ; 0x02033E90 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + bl FUN_0202E4DC + cmp r0, #0x0 + beq _02033EC4 + ldr r0, _02033EC8 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EAE + bl FUN_02033ED0 +_02033EAE: + ldr r0, _02033ECC ; =0x02105D74 + str r4, [sp, #0x0] + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x5b + add r2, r5, #0x0 + add r3, r6, #0x0 + bl FUN_02033B68 + ldr r1, _02033EC8 ; =0x021C5A04 + str r0, [r1, #0x0] +_02033EC4: + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 +_02033EC8: .word 0x021C5A04 +_02033ECC: .word 0x02105D74 + + thumb_func_start FUN_02033ED0 +FUN_02033ED0: ; 0x02033ED0 + push {r3, lr} + ldr r0, _02033EE8 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EE4 + bl FUN_02033CD4 + ldr r0, _02033EE8 ; =0x021C5A04 + mov r1, #0x0 + str r1, [r0, #0x0] +_02033EE4: + pop {r3, pc} + nop +_02033EE8: .word 0x021C5A04 + + thumb_func_start FUN_02033EEC +FUN_02033EEC: ; 0x02033EEC + push {r3, lr} + add r1, r0, #0x0 + ldr r0, _02033F00 ; =0x021C5A04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033EFC + bl FUN_02033CC8 +_02033EFC: + pop {r3, pc} + nop +_02033F00: .word 0x021C5A04 + + thumb_func_start FUN_02033F04 +FUN_02033F04: ; 0x02033F04 + push {r3, lr} + add r3, r0, #0x0 + ldr r0, _02033F1C ; =0x021C5A04 + add r2, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02033F18 + add r1, r3, #0x0 + bl FUN_02033D08 +_02033F18: + pop {r3, pc} + nop +_02033F1C: .word 0x021C5A04 + + thumb_func_start FUN_02033F20 +FUN_02033F20: ; 0x02033F20 + push {r3, lr} + bl FUN_02030F40 + cmp r0, #0x0 + beq _02033F40 + bl FUN_02030F20 + cmp r0, #0x1 + bgt _02033F3A + bl FUN_02033590 + cmp r0, #0x0 + beq _02033F4C +_02033F3A: + bl FUN_02033E74 + pop {r3, pc} +_02033F40: + bl FUN_02033590 + cmp r0, #0x0 + beq _02033F4C + bl FUN_02033E74 +_02033F4C: + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02033F50 +FUN_02033F50: ; 0x02033F50 + ldr r3, _02033F64 ; =0x027E0000 + ldr r1, _02033F68 ; =0x00003FF8 + mov r0, #0x1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + ldr r3, _02033F6C ; =MI_WaitDma + mov r0, #0x3 + bx r3 + nop +_02033F64: .word 0x027E0000 +_02033F68: .word 0x00003FF8 +_02033F6C: .word MI_WaitDma + + thumb_func_start FUN_02033F70 +FUN_02033F70: ; 0x02033F70 + push {r3-r7, lr} + sub sp, #0x28 + add r4, r0, #0x0 + str r2, [sp, #0xc] + cmp r1, #0x4 + bhi _02033F92 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02033F88: ; jump table (using 16-bit offset) + .short _02033F92 - _02033F88 - 2; case 0 + .short _02033F96 - _02033F88 - 2; case 1 + .short _02033F9A - _02033F88 - 2; case 2 + .short _02033F9E - _02033F88 - 2; case 3 + .short _02033FA2 - _02033F88 - 2; case 4 +_02033F92: + mov r5, #0x1 + b _02033FA4 +_02033F96: + mov r5, #0x2 + b _02033FA4 +_02033F9A: + mov r5, #0x3 + b _02033FA4 +_02033F9E: + mov r5, #0x4 + b _02033FA4 +_02033FA2: + mov r5, #0x5 +_02033FA4: + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl FUN_0200E3A0 + mov r0, #0x1 + bl OS_DisableIrqMask + ldr r1, _02034154 ; =FUN_02033F50 + mov r0, #0x1 + bl OS_SetIrqFunction + mov r0, #0x1 + bl OS_EnableIrqMask + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02034158 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0203415C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl FUN_0201669C + ldr r0, _02034160 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl FUN_0201E7A0 + ldr r3, _02034164 ; =0x04000050 + mov r1, #0x0 + strh r1, [r3, #0x0] + ldr r0, _02034168 ; =0x04001050 + sub r3, #0x50 + strh r1, [r0, #0x0] + ldr r2, [r3, #0x0] + ldr r1, _0203416C ; =0xFFFF1FFF + sub r0, #0x50 + and r2, r1 + str r2, [r3, #0x0] + ldr r2, [r0, #0x0] + and r1, r2 + str r1, [r0, #0x0] + ldr r0, _02034170 ; =0x020EECD0 + bl FUN_0201E66C + add r0, r4, #0x0 + bl FUN_02016B94 + add r6, r0, #0x0 + ldr r0, _02034174 ; =0x020EECA4 + bl FUN_02016BBC + mov r1, #0x0 + ldr r2, _02034178 ; =0x020EECB4 + add r0, r6, #0x0 + add r3, r1, #0x0 + bl FUN_02016C18 + add r0, r6, #0x0 + mov r1, #0x0 + bl FUN_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r2, _0203417C ; =0x000001F7 + add r0, r6, #0x0 + mov r3, #0x2 + str r4, [sp, #0x4] + bl FUN_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl FUN_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl FUN_02017F18 + ldr r1, _02034180 ; =0x00006C21 + mov r0, #0x0 + bl FUN_02017FE4 + ldr r1, _02034180 ; =0x00006C21 + mov r0, #0x4 + bl FUN_02017FE4 + mov r0, #0x1 + mov r1, #0x1a + mov r2, #0xc8 + add r3, r4, #0x0 + bl FUN_0200A86C + str r0, [sp, #0x10] + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl FUN_020219F4 + add r7, r0, #0x0 + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl FUN_020219F4 + str r0, [sp, #0x14] + bl FUN_0201BD5C + add r0, r4, #0x0 + bl FUN_0200AA80 + add r4, r0, #0x0 + ldr r2, _02034184 ; =0x020EEC9C + add r0, r6, #0x0 + add r1, sp, #0x18 + bl FUN_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x18 + mov r1, #0xf + add r3, r2, #0x0 + bl FUN_020196F4 + ldr r2, _0203417C ; =0x000001F7 + add r0, sp, #0x18 + mov r1, #0x0 + mov r3, #0x2 + bl FUN_0200CCA4 + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r2, [sp, #0xc] + add r0, r4, #0x0 + mov r1, #0x0 + mov r3, #0x5 + bl FUN_0200AD38 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + add r1, r5, #0x0 + bl FUN_0200A8E0 + ldr r2, [sp, #0x14] + add r0, r4, #0x0 + add r1, r7, #0x0 + bl FUN_0200B7B8 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0x18 + add r2, r7, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl FUN_0201BD84 + add r0, r7, #0x0 + bl FUN_02021A20 + bl FUN_0201E788 + mov r0, #0x0 + bl FUN_0200E394 + mov r0, #0x1 + bl FUN_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl FUN_0200A274 + add r0, sp, #0x18 + bl FUN_02019178 + ldr r0, [sp, #0x10] + bl FUN_0200A8B8 + add r0, r4, #0x0 + bl FUN_0200AB18 + add r0, r6, #0x0 + bl FUN_02016A18 + add sp, #0x28 + pop {r3-r7, pc} + nop +_02034154: .word FUN_02033F50 +_02034158: .word 0xFFFFE0FF +_0203415C: .word 0x04001000 +_02034160: .word 0x021C4918 +_02034164: .word 0x04000050 +_02034168: .word 0x04001050 +_0203416C: .word 0xFFFF1FFF +_02034170: .word 0x020EECD0 +_02034174: .word 0x020EECA4 +_02034178: .word 0x020EECB4 +_0203417C: .word 0x000001F7 +_02034180: .word 0x00006C21 +_02034184: .word 0x020EEC9C + + thumb_func_start FUN_02034188 +FUN_02034188: ; 0x02034188 + push {r4-r7, lr} + sub sp, #0x24 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_0200E3A0 + mov r0, #0x1 + mov r1, #0x0 + bl FUN_0200E3A0 + bl FUN_02015EF4 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_02015F10 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #0x1 + lsl r2, r2, #0x1a + ldr r1, [r2, #0x0] + ldr r0, _02034368 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2, #0x0] + ldr r2, _0203436C ; =0x04001000 + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + mov r0, #0x4 + mov r1, #0x8 + bl FUN_0201669C + ldr r0, _02034370 ; =0x021C4918 + mov r1, #0x0 + strb r1, [r0, #0x5] + bl FUN_0201E7A0 + ldr r3, _02034374 ; =0x04000050 + mov r0, #0x0 + strh r0, [r3, #0x0] + ldr r2, _02034378 ; =0x04001050 + sub r3, #0x50 + strh r0, [r2, #0x0] + ldr r1, [r3, #0x0] + ldr r0, _0203437C ; =0xFFFF1FFF + sub r2, #0x50 + and r1, r0 + str r1, [r3, #0x0] + ldr r1, [r2, #0x0] + and r0, r1 + str r0, [r2, #0x0] + ldr r0, _02034380 ; =0x020EED2C + bl FUN_0201E66C + add r0, r4, #0x0 + bl FUN_02016B94 + str r0, [sp, #0x10] + ldr r0, _02034384 ; =0x020EED00 + bl FUN_02016BBC + mov r1, #0x0 + ldr r0, [sp, #0x10] + ldr r2, _02034388 ; =0x020EED10 + add r3, r1, #0x0 + bl FUN_02016C18 + ldr r0, [sp, #0x10] + mov r1, #0x0 + bl FUN_02018744 + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r2, _0203438C ; =0x000001F7 + mov r3, #0x2 + str r4, [sp, #0x4] + bl FUN_0200CB00 + mov r0, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl FUN_02002ED0 + mov r0, #0x0 + mov r1, #0x20 + add r2, r0, #0x0 + add r3, r4, #0x0 + bl FUN_02017F18 + ldr r1, _02034390 ; =0x00006C21 + mov r0, #0x0 + bl FUN_02017FE4 + ldr r1, _02034390 ; =0x00006C21 + mov r0, #0x4 + bl FUN_02017FE4 + ldr r2, _02034394 ; =0x00000265 + mov r0, #0x1 + mov r1, #0x1a + add r3, r4, #0x0 + bl FUN_0200A86C + str r0, [sp, #0xc] + mov r0, #0x6 + lsl r0, r0, #0x6 + add r1, r4, #0x0 + bl FUN_020219F4 + add r4, r0, #0x0 + bl FUN_0201BD5C + ldr r0, [sp, #0x10] + ldr r2, _02034398 ; =0x020EECF8 + add r1, sp, #0x14 + bl FUN_02019150 + mov r0, #0xd0 + str r0, [sp, #0x0] + mov r0, #0x90 + mov r2, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x14 + mov r1, #0xf + add r3, r2, #0x0 + bl FUN_020196F4 + ldr r2, _0203438C ; =0x000001F7 + add r0, sp, #0x14 + mov r1, #0x0 + mov r3, #0x2 + bl FUN_0200CCA4 + ldr r0, [sp, #0xc] + mov r1, #0xf + add r2, r4, #0x0 + bl FUN_0200A8E0 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + add r0, sp, #0x14 + add r2, r4, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl FUN_0201BD84 + add r0, r4, #0x0 + bl FUN_02021A20 + bl FUN_0201E788 + mov r0, #0x0 + bl FUN_0200E394 + mov r0, #0x1 + bl FUN_0200E394 + mov r0, #0x0 + mov r1, #0x3f + mov r2, #0x3 + bl FUN_0200A274 + ldr r4, _0203439C ; =0x04000130 + ldr r6, _020343A0 ; =0x027FFFA8 + mov r7, #0x1 +_020342E4: + ldrh r1, [r4, #0x0] + ldrh r0, [r6, #0x0] + orr r1, r0 + ldr r0, _020343A4 ; =0x00002FFF + eor r1, r0 + and r0, r1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl FUN_02000FE8 + add r0, r5, #0x0 + tst r0, r7 + bne _02034308 + mov r0, #0x1 + add r1, r0, #0x0 + bl OS_WaitIrq + b _020342E4 +_02034308: + add r0, sp, #0x14 + bl FUN_02019178 + ldr r0, [sp, #0xc] + bl FUN_0200A8B8 + mov r0, #0x0 + add r1, r0, #0x0 + bl FUN_0201797C + mov r0, #0x1 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x2 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x3 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x4 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x5 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x6 + mov r1, #0x0 + bl FUN_0201797C + mov r0, #0x7 + mov r1, #0x0 + bl FUN_0201797C + ldr r0, [sp, #0x10] + mov r1, #0x0 + bl FUN_020178A0 + ldr r0, [sp, #0x10] + bl FUN_02016A18 + add sp, #0x24 + pop {r4-r7, pc} + nop +_02034368: .word 0xFFFFE0FF +_0203436C: .word 0x04001000 +_02034370: .word 0x021C4918 +_02034374: .word 0x04000050 +_02034378: .word 0x04001050 +_0203437C: .word 0xFFFF1FFF +_02034380: .word 0x020EED2C +_02034384: .word 0x020EED00 +_02034388: .word 0x020EED10 +_0203438C: .word 0x000001F7 +_02034390: .word 0x00006C21 +_02034394: .word 0x00000265 +_02034398: .word 0x020EECF8 +_0203439C: .word 0x04000130 +_020343A0: .word 0x027FFFA8 +_020343A4: .word 0x00002FFF + + thumb_func_start FUN_020343A8 +FUN_020343A8: ; 0x020343A8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r0, #0x0 + str r2, [sp, #0x0] + mov r2, #0x0 + strb r2, [r4, #0x1] + mov r0, #0xe1 + ldr r7, _02034488 ; =0x0000070A + ldr r6, _0203448C ; =0x00000A8E + mov r12, r1 + strb r2, [r4, #0x0] + add r3, r4, #0x0 + add r5, r2, #0x0 + lsl r0, r0, #0x2 +_020343C4: + add r1, r4, r2 + strh r5, [r3, #0x2] + strb r5, [r1, r7] + strh r5, [r3, r6] + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, r0 + blt _020343C4 + ldr r0, _02034490 ; =0x00001196 + mov r2, #0x0 +_020343D8: + add r1, r4, r5 + add r5, r5, #0x1 + strb r2, [r1, r0] + cmp r5, #0x10 + blt _020343D8 + mov r0, #0x29 + mov r1, r12 + mov r2, #0xb + bl FUN_02006528 + add r6, r0, #0x0 + ldrb r0, [r6, #0x0] + add r5, r6, #0x5 + strb r0, [r4, #0x1] + ldrb r0, [r6, #0x1] + strb r0, [r4, #0x0] + ldrb r0, [r6, #0x2] + str r0, [sp, #0x8] + ldrb r0, [r6, #0x3] + str r0, [sp, #0x4] + ldrb r7, [r6, #0x4] + cmp r7, #0x10 + bls _0203440A + bl ErrorHandling +_0203440A: + ldr r1, _02034490 ; =0x00001196 + add r0, r5, #0x0 + add r1, r4, r1 + add r2, r7, #0x0 + bl MI_CpuCopy8 + ldr r0, [sp, #0x8] + add r5, r5, r7 + cmp r0, #0x0 + beq _0203443A + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x2 + mul r2, r3 + lsl r2, r2, #0x1 + bl MI_CpuCopy8 + ldrb r1, [r4, #0x1] + ldrb r0, [r4, #0x0] + mul r0, r1 + lsl r0, r0, #0x1 + add r5, r5, r0 + b _0203444E +_0203443A: + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r0, [sp, #0x0] + add r1, r4, #0x2 + lsl r0, r0, #0x10 + mul r2, r3 + lsr r0, r0, #0x10 + lsl r2, r2, #0x1 + bl MIi_CpuClear16 +_0203444E: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _0203446C + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r1, _02034488 ; =0x0000070A + add r0, r5, #0x0 + add r1, r4, r1 + mul r2, r3 + bl MI_CpuCopy8 + ldrb r1, [r4, #0x1] + ldrb r0, [r4, #0x0] + mul r0, r1 + add r5, r5, r0 +_0203446C: + ldrb r3, [r4, #0x1] + ldrb r2, [r4, #0x0] + ldr r1, _0203448C ; =0x00000A8E + add r0, r5, #0x0 + mul r2, r3 + add r1, r4, r1 + lsl r2, r2, #0x1 + bl MI_CpuCopy8 + add r0, r6, #0x0 + bl FUN_02016A18 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02034488: .word 0x0000070A +_0203448C: .word 0x00000A8E +_02034490: .word 0x00001196 + + thumb_func_start FUN_02034494 +FUN_02034494: ; 0x02034494 + push {r3, lr} + ldr r1, _020344A8 ; =0x000011AA + mov r0, #0xb + bl FUN_02016998 + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + pop {r3, pc} + .balign 4 +_020344A8: .word 0x000011AA + + thumb_func_start FUN_020344AC +FUN_020344AC: ; 0x020344AC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0203474C + add r6, r0, #0x0 + add r0, r4, #0x4 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_020343A8 + strb r6, [r4, #0x2] + ldrb r0, [r4, #0x4] + strb r0, [r4, #0x1] + ldrb r0, [r4, #0x5] + strb r0, [r4, #0x0] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020344D0 +FUN_020344D0: ; 0x020344D0 + ldr r3, _020344D4 ; =FUN_02016A18 + bx r3 + .balign 4 +_020344D4: .word FUN_02016A18 + + thumb_func_start FUN_020344D8 +FUN_020344D8: ; 0x020344D8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldrb r1, [r4, #0x0] + ldrb r0, [r4, #0x1] + mul r0, r1 + cmp r5, r0 + blt _020344EC + bl ErrorHandling +_020344EC: + lsl r0, r5, #0x1 + add r1, r4, r0 + ldr r0, _020344F8 ; =0x00000A92 + ldrh r0, [r1, r0] + pop {r3-r5, pc} + nop +_020344F8: .word 0x00000A92 + + thumb_func_start FUN_020344FC +FUN_020344FC: ; 0x020344FC + push {r4, lr} + add r4, r0, #0x0 + bne _02034506 + bl ErrorHandling +_02034506: + ldrb r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0203450C +FUN_0203450C: ; 0x0203450C + push {r4, lr} + add r4, r0, #0x0 + bne _02034516 + bl ErrorHandling +_02034516: + ldrb r0, [r4, #0x1] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0203451C +FUN_0203451C: ; 0x0203451C + push {r3-r7, lr} + add r7, r0, #0x0 + ldrb r0, [r7, #0x1] + add r5, r1, #0x0 + add r4, r2, #0x0 + ldrb r6, [r7, #0x0] + str r0, [sp, #0x0] + cmp r5, #0x0 + blt _02034532 + cmp r5, r6 + blt _02034536 +_02034532: + bl ErrorHandling +_02034536: + cmp r4, #0x0 + blt _02034540 + ldr r0, [sp, #0x0] + cmp r4, r0 + blt _02034544 +_02034540: + bl ErrorHandling +_02034544: + add r0, r4, #0x0 + mul r0, r6 + add r0, r5, r0 + lsl r0, r0, #0x1 + add r0, r7, r0 + ldrh r0, [r0, #0x6] + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02034554 +FUN_02034554: ; 0x02034554 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + ldrb r1, [r5, #0x0] + ldrb r0, [r5, #0x1] + mul r0, r1 + cmp r4, #0x0 + blt _02034568 + cmp r4, r0 + blt _0203456C +_02034568: + bl ErrorHandling +_0203456C: + lsl r0, r4, #0x1 + add r0, r5, r0 + ldrh r0, [r0, #0x6] + pop {r3-r5, pc} + + thumb_func_start FUN_02034574 +FUN_02034574: ; 0x02034574 + ldrb r0, [r0, #0x2] + bx lr + + thumb_func_start FUN_02034578 +FUN_02034578: ; 0x02034578 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [sp, #0x10] + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r4, r0 + blt _0203458A + bl ErrorHandling +_0203458A: + ldr r0, [sp, #0x10] + mul r0, r6 + add r4, r4, r0 + mov r0, #0xe1 + lsl r0, r0, #0x2 + cmp r4, r0 + blt _0203459C + bl ErrorHandling +_0203459C: + ldr r0, _020345A4 ; =0x0000070E + add r1, r5, r4 + ldrb r0, [r1, r0] + pop {r4-r6, pc} + .balign 4 +_020345A4: .word 0x0000070E + + thumb_func_start FUN_020345A8 +FUN_020345A8: ; 0x020345A8 + push {r3-r5, lr} + ldr r1, _020345D8 ; =0x00000708 + add r4, r0, #0x0 + bl FUN_02016998 + add r5, r0, #0x0 + mov r0, #0x29 + mov r1, #0x0 + add r2, r4, #0x0 + bl FUN_02006528 + add r4, r0, #0x0 + ldrb r1, [r4, #0x4] + add r0, r4, #0x5 + ldr r2, _020345D8 ; =0x00000708 + add r0, r0, r1 + add r1, r5, #0x0 + bl MI_CpuCopy8 + add r0, r4, #0x0 + bl FUN_02016A18 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_020345D8: .word 0x00000708 + + thumb_func_start FUN_020345DC +FUN_020345DC: ; 0x020345DC + push {r4, lr} + add r4, r0, #0x0 + bne _020345E6 + bl ErrorHandling +_020345E6: + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020345F0 +FUN_020345F0: ; 0x020345F0 + mov r3, #0x1e + mul r3, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + ldrh r0, [r0, r1] + bx lr + + thumb_func_start FUN_020345FC +FUN_020345FC: ; 0x020345FC + push {r3-r5, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x1c8 + add r3, r0, #0x0 + add r5, r1, #0x0 + lsl r1, r3, #0x10 + add r4, r2, #0x0 + add r0, sp, #0x0 + lsr r1, r1, #0x10 + mov r2, #0x0 + bl FUN_020343A8 + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + cmp r5, r0 + blt _0203462E + bl ErrorHandling +_0203462E: + add r0, sp, #0x0 + ldrb r0, [r0, #0x0] + cmp r4, r0 + blt _0203463A + bl ErrorHandling +_0203463A: + add r0, sp, #0x0 + ldrb r0, [r0, #0x1] + mul r0, r4 + add r0, r5, r0 + lsl r1, r0, #0x1 + add r0, sp, #0x0 + add r0, #0x2 + ldrh r0, [r0, r1] + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x1c8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02034660 +FUN_02034660: ; 0x02034660 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bne _0203466C + bl ErrorHandling +_0203466C: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020344D8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02034678 +FUN_02034678: ; 0x02034678 + push {r4-r7} + ldr r1, _020346C4 ; =0x00000A92 + ldrb r7, [r0, #0x0] + add r2, r0, r1 + ldr r1, _020346C8 ; =0x0000070E + add r1, r0, r1 + ldrb r0, [r0, #0x2] + cmp r0, #0x0 + bne _020346BE + mov r0, #0x15 + add r6, r7, #0x0 + mul r6, r0 + add r5, r6, #0x0 + add r5, #0x17 + mov r4, #0xb0 + lsl r0, r5, #0x1 + add r6, #0x18 + strh r4, [r2, r0] + lsl r0, r6, #0x1 + strh r4, [r2, r0] + mov r0, #0x16 + add r3, r7, #0x0 + mul r3, r0 + add r0, r3, #0x0 + add r0, #0x17 + lsl r7, r0, #0x1 + add r3, #0x18 + strh r4, [r2, r7] + lsl r7, r3, #0x1 + strh r4, [r2, r7] + mov r2, #0x2 + strb r2, [r1, r5] + strb r2, [r1, r6] + strb r2, [r1, r0] + strb r2, [r1, r3] +_020346BE: + pop {r4-r7} + bx lr + nop +_020346C4: .word 0x00000A92 +_020346C8: .word 0x0000070E + + thumb_func_start FUN_020346CC +FUN_020346CC: ; 0x020346CC + push {r3-r4} + ldr r1, _0203470C ; =0x00000A92 + add r2, r0, r1 + ldrb r1, [r0, #0x0] + ldrb r0, [r0, #0x2] + cmp r0, #0x0 + bne _02034706 + mov r0, #0xf + mul r0, r1 + add r0, #0x1c + mov r3, #0x77 + lsl r0, r0, #0x1 + strh r3, [r2, r0] + lsl r0, r1, #0x4 + add r3, r0, #0x0 + add r3, #0x1b + mov r4, #0x78 + lsl r3, r3, #0x1 + strh r4, [r2, r3] + add r3, r0, #0x0 + add r3, #0x1c + add r0, r1, r0 + add r0, #0x1b + mov r4, #0x79 + lsl r3, r3, #0x1 + strh r4, [r2, r3] + mov r3, #0x7a + lsl r0, r0, #0x1 + strh r3, [r2, r0] +_02034706: + pop {r3-r4} + bx lr + nop +_0203470C: .word 0x00000A92 + + thumb_func_start FUN_02034710 +FUN_02034710: ; 0x02034710 + push {r3, lr} + ldr r1, _02034720 ; =0x0000022F + cmp r0, r1 + blo _0203471E + bl ErrorHandling + mov r0, #0x3 +_0203471E: + pop {r3, pc} + .balign 4 +_02034720: .word 0x0000022F + + thumb_func_start FUN_02034724 +FUN_02034724: ; 0x02034724 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034734 ; =0x020EEDBC + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034734: .word 0x020EEDBC + + thumb_func_start FUN_02034738 +FUN_02034738: ; 0x02034738 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034748 ; =0x020EEDBD + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034748: .word 0x020EEDBD + + thumb_func_start FUN_0203474C +FUN_0203474C: ; 0x0203474C + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203476C ; =0x020EEDBE + ldrh r0, [r0, r1] + cmp r0, #0x16 + bne _02034768 + ldr r1, _02034770 ; =0x020ECAC0 + ldrb r1, [r1, #0x0] + cmp r1, #0xb + bne _02034768 + mov r0, #0x17 +_02034768: + pop {r3, pc} + nop +_0203476C: .word 0x020EEDBE +_02034770: .word 0x020ECAC0 + + thumb_func_start FUN_02034774 +FUN_02034774: ; 0x02034774 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034784 ; =0x020EEDC4 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034784: .word 0x020EEDC4 + + thumb_func_start FUN_02034788 +FUN_02034788: ; 0x02034788 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034798 ; =0x020EEDC0 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034798: .word 0x020EEDC0 + + thumb_func_start FUN_0203479C +FUN_0203479C: ; 0x0203479C + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347AC ; =0x020EEDC2 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347AC: .word 0x020EEDC2 + + thumb_func_start FUN_020347B0 +FUN_020347B0: ; 0x020347B0 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347C0 ; =0x020EEDC6 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347C0: .word 0x020EEDC6 + + thumb_func_start FUN_020347C4 +FUN_020347C4: ; 0x020347C4 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347D4 ; =0x020EEDC8 + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020347D4: .word 0x020EEDC8 + + thumb_func_start FUN_020347D8 +FUN_020347D8: ; 0x020347D8 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020347F4 ; =0x020EEDCA + ldrh r1, [r0, r1] + ldr r0, _020347F8 ; =0x0000FFFF + cmp r1, r0 + beq _020347F0 + mov r0, #0x1 + pop {r3, pc} +_020347F0: + mov r0, #0x0 + pop {r3, pc} + .balign 4 +_020347F4: .word 0x020EEDCA +_020347F8: .word 0x0000FFFF + + thumb_func_start FUN_020347FC +FUN_020347FC: ; 0x020347FC + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203480C ; =0x020EEDCA + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0203480C: .word 0x020EEDCA + + thumb_func_start FUN_02034810 +FUN_02034810: ; 0x02034810 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034820 ; =0x020EEDCC + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034820: .word 0x020EEDCC + + thumb_func_start FUN_02034824 +FUN_02034824: ; 0x02034824 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034834 ; =0x020EEDCE + ldrh r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034834: .word 0x020EEDCE + + thumb_func_start FUN_02034838 +FUN_02034838: ; 0x02034838 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034848 ; =0x020EEDD0 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_02034848: .word 0x020EEDD0 + + thumb_func_start FUN_0203484C +FUN_0203484C: ; 0x0203484C + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _0203485C ; =0x020EEDD1 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_0203485C: .word 0x020EEDD1 + + thumb_func_start FUN_02034860 +FUN_02034860: ; 0x02034860 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034878 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + pop {r3, pc} + nop +_02034878: .word 0x020EEDBC + + thumb_func_start FUN_0203487C +FUN_0203487C: ; 0x0203487C + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _02034894 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_02034894: .word 0x020EEDBC + + thumb_func_start FUN_02034898 +FUN_02034898: ; 0x02034898 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348B0 ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_020348B0: .word 0x020EEDBC + + thumb_func_start FUN_020348B4 +FUN_020348B4: ; 0x020348B4 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348CC ; =0x020EEDBC + add r0, r0, r1 + ldrb r0, [r0, #0x17] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1f + pop {r3, pc} + nop +_020348CC: .word 0x020EEDBC + + thumb_func_start FUN_020348D0 +FUN_020348D0: ; 0x020348D0 + push {r3, lr} + bl FUN_02034710 + mov r1, #0x18 + mul r1, r0 + ldr r0, _020348E0 ; =0x020EEDD2 + ldrb r0, [r0, r1] + pop {r3, pc} + .balign 4 +_020348E0: .word 0x020EEDD2 + + thumb_func_start FUN_020348E4 +FUN_020348E4: ; 0x020348E4 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02034898 + cmp r0, #0x0 + bne _020348F4 + mov r0, #0x0 + pop {r4, pc} +_020348F4: + add r0, r4, #0x0 + bl FUN_020348D0 + cmp r0, #0x1 + beq _02034902 + mov r0, #0x1 + pop {r4, pc} +_02034902: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034908 +FUN_02034908: ; 0x02034908 + push {r3, lr} + bl FUN_0203474C + cmp r0, #0x0 + bne _02034916 + mov r0, #0x1 + pop {r3, pc} +_02034916: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0203491C +FUN_0203491C: ; 0x0203491C + push {r3, lr} + bl FUN_020348D0 + cmp r0, #0x5 + bne _0203492A + mov r0, #0x1 + pop {r3, pc} +_0203492A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02034930 +FUN_02034930: ; 0x02034930 + push {r3, lr} + bl FUN_020348D0 + cmp r0, #0x3 + bne _0203493E + mov r0, #0x1 + pop {r3, pc} +_0203493E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02034944 +FUN_02034944: ; 0x02034944 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020348D0 + cmp r0, #0x4 + beq _0203495A + add r0, r4, #0x0 + bl FUN_020348D0 + cmp r0, #0x5 + bne _0203495E +_0203495A: + mov r0, #0x1 + pop {r4, pc} +_0203495E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034964 +FUN_02034964: ; 0x02034964 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020348D0 + cmp r0, #0x1 + beq _0203497A + add r0, r4, #0x0 + bl FUN_020348D0 + cmp r0, #0x2 + bne _0203497E +_0203497A: + mov r0, #0x1 + pop {r4, pc} +_0203497E: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034984 +FUN_02034984: ; 0x02034984 + push {r3, lr} + bl FUN_0203491C + cmp r0, #0x0 + beq _02034992 + mov r0, #0x1 + pop {r3, pc} +_02034992: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02034998 +FUN_02034998: ; 0x02034998 + ldr r1, _020349A8 ; =0x000001D2 + cmp r0, r1 + bne _020349A2 + mov r0, #0x1 + bx lr +_020349A2: + mov r0, #0x0 + bx lr + nop +_020349A8: .word 0x000001D2 + + thumb_func_start FUN_020349AC +FUN_020349AC: ; 0x020349AC + cmp r0, #0xdb + bne _020349B4 + mov r0, #0x1 + bx lr +_020349B4: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_020349B8 +FUN_020349B8: ; 0x020349B8 + ldr r1, _020349C8 ; =0x0000011F + cmp r0, r1 + bne _020349C2 + mov r0, #0x1 + bx lr +_020349C2: + mov r0, #0x0 + bx lr + nop +_020349C8: .word 0x0000011F + + thumb_func_start FUN_020349CC +FUN_020349CC: ; 0x020349CC + cmp r0, #0xfd + bne _020349D4 + mov r0, #0x1 + bx lr +_020349D4: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_020349D8 +FUN_020349D8: ; 0x020349D8 + cmp r0, #0xdc + bne _020349E0 + mov r0, #0x1 + bx lr +_020349E0: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_020349E4 +FUN_020349E4: ; 0x020349E4 + ldr r3, _02034A00 ; =0x020EED54 + mov r2, #0x0 +_020349E8: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _020349F2 + mov r0, #0x1 + bx lr +_020349F2: + add r2, r2, #0x1 + add r3, r3, #0x2 + cmp r2, #0x12 + blo _020349E8 + mov r0, #0x0 + bx lr + nop +_02034A00: .word 0x020EED54 + + thumb_func_start FUN_02034A04 +FUN_02034A04: ; 0x02034A04 + ldr r3, _02034A24 ; =0x020EED78 + mov r2, #0x0 +_02034A08: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _02034A18 + add r0, r2, #0x1 + lsl r1, r0, #0x1 + ldr r0, _02034A24 ; =0x020EED78 + ldrh r0, [r0, r1] + bx lr +_02034A18: + add r2, r2, #0x2 + add r3, r3, #0x4 + cmp r2, #0x22 + blo _02034A08 + mov r0, #0x0 + bx lr + .balign 4 +_02034A24: .word 0x020EED78 + + thumb_func_start FUN_02034A28 +FUN_02034A28: ; 0x02034A28 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + add r4, r1, #0x0 + cmp r0, #0x0 + beq _02034A38 + bl ErrorHandling +_02034A38: + ldr r1, _02034A44 ; =0x00000AC8 + add r0, r4, #0x0 + bl FUN_02016998 + str r0, [r5, #0x14] + pop {r3-r5, pc} + .balign 4 +_02034A44: .word 0x00000AC8 + + thumb_func_start FUN_02034A48 +FUN_02034A48: ; 0x02034A48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02034A56 + bl ErrorHandling +_02034A56: + ldr r0, [r4, #0x14] + bl FUN_02016A18 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034A60 +FUN_02034A60: ; 0x02034A60 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + add r4, r1, #0x0 + cmp r0, #0x0 + bne _02034A70 + bl ErrorHandling +_02034A70: + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl FUN_02034A98 + ldr r0, [r5, #0x14] + bl FUN_02034C50 + mov r0, #0x92 + ldr r1, [r5, #0x14] + lsl r0, r0, #0x4 + add r0, r1, r0 + add r1, r4, #0x0 + bl FUN_02034CB4 + ldr r0, [r5, #0x14] + add r1, r4, #0x0 + bl FUN_02034CEC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02034A98 +FUN_02034A98: ; 0x02034A98 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02034810 + add r4, r0, #0x0 + mov r0, #0x20 + add r1, r4, #0x0 + bl LoadFromNARC_7 + mov r1, #0x2 + lsl r1, r1, #0xa + cmp r0, r1 + blo _02034AB8 + bl ErrorHandling +_02034AB8: + add r5, #0x20 + add r0, r5, #0x0 + mov r1, #0x20 + add r2, r4, #0x0 + bl LoadFromNARC + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02034AC8 +FUN_02034AC8: ; 0x02034AC8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x14] + ldr r4, [r0, #0x4] + cmp r0, #0x0 + bne _02034AD8 + bl ErrorHandling +_02034AD8: + cmp r4, #0x0 + beq _02034AEC + ldr r1, [r5, #0x1c] + ldr r3, [r5, #0x14] + ldr r0, [r5, #0x34] + ldr r1, [r1, #0x0] + ldr r3, [r3, #0x14] + add r2, r4, #0x0 + bl FUN_02057BAC +_02034AEC: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02034AF0 +FUN_02034AF0: ; 0x02034AF0 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x10] + bx lr + .balign 4 + + thumb_func_start FUN_02034AF8 +FUN_02034AF8: ; 0x02034AF8 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034B00 +FUN_02034B00: ; 0x02034B00 + ldr r2, [r0, #0x14] + ldr r0, [r2, #0x8] + cmp r1, r0 + blo _02034B0C + mov r0, #0x0 + bx lr +_02034B0C: + mov r0, #0xc + ldr r2, [r2, #0x18] + mul r0, r1 + add r0, r2, r0 + bx lr + .balign 4 + + thumb_func_start FUN_02034B18 +FUN_02034B18: ; 0x02034B18 + push {r4-r7} + ldr r5, [r0, #0x14] + mov r3, #0x0 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bls _02034B4A + ldr r6, [r5, #0x18] + add r4, r3, #0x0 + add r0, r6, #0x0 +_02034B2A: + ldrh r7, [r0, #0x0] + cmp r1, r7 + bne _02034B3E + add r7, r6, r4 + ldrh r7, [r7, #0x2] + cmp r2, r7 + bne _02034B3E + add r0, r3, #0x0 + pop {r4-r7} + bx lr +_02034B3E: + ldr r7, [r5, #0x8] + add r3, r3, #0x1 + add r0, #0xc + add r4, #0xc + cmp r3, r7 + blo _02034B2A +_02034B4A: + mov r0, #0x0 + mvn r0, r0 + pop {r4-r7} + bx lr + .balign 4 + + thumb_func_start FUN_02034B54 +FUN_02034B54: ; 0x02034B54 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0xc] + bx lr + .balign 4 + + thumb_func_start FUN_02034B5C +FUN_02034B5C: ; 0x02034B5C + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x1c] + bx lr + .balign 4 + + thumb_func_start FUN_02034B64 +FUN_02034B64: ; 0x02034B64 + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start FUN_02034B6C +FUN_02034B6C: ; 0x02034B6C + ldr r0, [r0, #0x14] + ldr r0, [r0, #0x14] + bx lr + .balign 4 + + thumb_func_start FUN_02034B74 +FUN_02034B74: ; 0x02034B74 + push {r3-r7, lr} + ldr r0, [r0, #0x14] + add r4, r1, #0x0 + ldr r5, [r0, #0x4] + add r7, r2, #0x0 + add r1, r3, #0x0 + mov r2, #0x0 + ldr r3, [r0, #0x14] + cmp r5, #0x0 + bls _02034BA4 + add r6, r3, #0x0 +_02034B8A: + ldrh r0, [r6, #0x0] + cmp r4, r0 + bne _02034B9C + lsl r0, r2, #0x5 + add r0, r3, r0 + strh r7, [r0, #0x18] + strh r1, [r0, #0x1a] + mov r0, #0x1 + pop {r3-r7, pc} +_02034B9C: + add r2, r2, #0x1 + add r6, #0x20 + cmp r2, r5 + blo _02034B8A +_02034BA4: + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02034BAC +FUN_02034BAC: ; 0x02034BAC + push {r4-r6, lr} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r5, [r0, #0x4] + ldr r4, [r0, #0x14] + cmp r5, #0x0 + bls _02034BD4 + add r6, r4, #0x0 +_02034BBC: + ldrh r0, [r6, #0x0] + cmp r1, r0 + bne _02034BCC + lsl r0, r3, #0x5 + add r0, r4, r0 + strh r2, [r0, #0xc] + mov r0, #0x1 + pop {r4-r6, pc} +_02034BCC: + add r3, r3, #0x1 + add r6, #0x20 + cmp r3, r5 + blo _02034BBC +_02034BD4: + bl ErrorHandling + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02034BDC +FUN_02034BDC: ; 0x02034BDC + push {r4-r6, lr} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r5, [r0, #0x4] + ldr r4, [r0, #0x14] + cmp r5, #0x0 + bls _02034C04 + add r6, r4, #0x0 +_02034BEC: + ldrh r0, [r6, #0x0] + cmp r1, r0 + bne _02034BFC + lsl r0, r3, #0x5 + add r0, r4, r0 + strh r2, [r0, #0x4] + mov r0, #0x1 + pop {r4-r6, pc} +_02034BFC: + add r3, r3, #0x1 + add r6, #0x20 + cmp r3, r5 + blo _02034BEC +_02034C04: + bl ErrorHandling + mov r0, #0x0 + pop {r4-r6, pc} + + thumb_func_start FUN_02034C0C +FUN_02034C0C: ; 0x02034C0C + push {r3-r4} + ldr r0, [r0, #0x14] + ldr r4, [r0, #0x18] + mov r0, #0xc + mul r0, r1 + strh r2, [r4, r0] + add r0, r4, r0 + strh r3, [r0, #0x2] + mov r0, #0x1 + pop {r3-r4} + bx lr + .balign 4 + + thumb_func_start FUN_02034C24 +FUN_02034C24: ; 0x02034C24 + ldr r0, [r0, #0x14] + ldr r3, [r0, #0x18] + mov r0, #0xc + mul r0, r1 + add r0, r3, r0 + strh r2, [r0, #0x4] + mov r0, #0x1 + bx lr + + thumb_func_start FUN_02034C34 +FUN_02034C34: ; 0x02034C34 + push {r4-r6, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02034AF0 + mov r1, #0x14 + mul r1, r5 + add r0, r0, r1 + str r4, [r0, #0x4] + str r6, [r0, #0x8] + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02034C50 +FUN_02034C50: ; 0x02034C50 + add r1, r0, #0x0 + ldr r2, [r0, #0x20] + add r1, #0x20 + add r1, r1, #0x4 + str r2, [r0, #0x0] + cmp r2, #0x0 + beq _02034C62 + str r1, [r0, #0x10] + b _02034C66 +_02034C62: + mov r2, #0x0 + str r2, [r0, #0x10] +_02034C66: + ldr r3, [r0, #0x0] + mov r2, #0x14 + mul r2, r3 + add r3, r1, r2 + ldr r2, [r1, r2] + add r1, r3, #0x4 + str r2, [r0, #0x4] + cmp r2, #0x0 + beq _02034C7C + str r1, [r0, #0x14] + b _02034C80 +_02034C7C: + mov r2, #0x0 + str r2, [r0, #0x14] +_02034C80: + ldr r2, [r0, #0x4] + lsl r2, r2, #0x5 + add r3, r1, r2 + ldr r2, [r1, r2] + add r1, r3, #0x4 + str r2, [r0, #0x8] + cmp r2, #0x0 + beq _02034C94 + str r1, [r0, #0x18] + b _02034C98 +_02034C94: + mov r2, #0x0 + str r2, [r0, #0x18] +_02034C98: + ldr r3, [r0, #0x8] + mov r2, #0xc + mul r2, r3 + add r3, r1, r2 + ldr r1, [r1, r2] + str r1, [r0, #0xc] + cmp r1, #0x0 + beq _02034CAE + add r1, r3, #0x4 + str r1, [r0, #0x1c] + bx lr +_02034CAE: + mov r1, #0x0 + str r1, [r0, #0x1c] + bx lr + + thumb_func_start FUN_02034CB4 +FUN_02034CB4: ; 0x02034CB4 + push {r3-r5, lr} + mov r2, #0x6a + add r4, r1, #0x0 + mov r1, #0x0 + lsl r2, r2, #0x2 + add r5, r0, #0x0 + bl memset + add r0, r4, #0x0 + bl FUN_020347D8 + cmp r0, #0x0 + beq _02034CDE + add r0, r4, #0x0 + bl FUN_020347FC + add r2, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x25 + bl LoadFromNARC +_02034CDE: + pop {r3-r5, pc} + + thumb_func_start FUN_02034CE0 +FUN_02034CE0: ; 0x02034CE0 + ldr r1, [r0, #0x14] + mov r0, #0x92 + lsl r0, r0, #0x4 + add r0, r1, r0 + bx lr + .balign 4 + + thumb_func_start FUN_02034CEC +FUN_02034CEC: ; 0x02034CEC + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl FUN_0203479C + mov r1, #0x82 + lsl r1, r1, #0x4 + mov r2, #0x1 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r5, r1 + lsl r2, r2, #0x8 + bl MIi_CpuClearFast + mov r0, #0xa + add r1, r4, #0x0 + bl LoadFromNARC_7 + mov r1, #0x1 + lsl r1, r1, #0x8 + cmp r0, r1 + blo _02034D1C + bl ErrorHandling +_02034D1C: + mov r0, #0x82 + lsl r0, r0, #0x4 + add r0, r5, r0 + mov r1, #0xa + add r2, r4, #0x0 + bl LoadFromNARC + pop {r3-r5, pc} + + thumb_func_start FUN_02034D2C +FUN_02034D2C: ; 0x02034D2C + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _02034D3A + bl ErrorHandling +_02034D3A: + mov r0, #0x82 + ldr r1, [r4, #0x14] + lsl r0, r0, #0x4 + add r0, r1, r0 + pop {r4, pc} + + thumb_func_start FUN_02034D44 +FUN_02034D44: ; 0x02034D44 + push {r4-r7} + ldr r0, [r0, #0x14] + mov r3, #0x0 + ldr r4, [r0, #0x4] + cmp r4, #0x0 + bls _02034D76 + ldr r6, [r0, #0x14] + add r5, r3, #0x0 + add r4, r6, #0x0 +_02034D56: + ldrh r7, [r4, #0x18] + cmp r1, r7 + bne _02034D6A + add r7, r6, r5 + ldrh r7, [r7, #0x1a] + cmp r2, r7 + bne _02034D6A + mov r0, #0x0 + pop {r4-r7} + bx lr +_02034D6A: + ldr r7, [r0, #0x4] + add r3, r3, #0x1 + add r4, #0x20 + add r5, #0x20 + cmp r3, r7 + blo _02034D56 +_02034D76: + mov r0, #0x1 + pop {r4-r7} + bx lr + + thumb_func_start FUN_02034D7C +FUN_02034D7C: ; 0x02034D7C + mov r0, #0xa0 + bx lr + + thumb_func_start FUN_02034D80 +FUN_02034D80: ; 0x02034D80 + mov r0, #0x5 + lsl r0, r0, #0xa + bx lr + .balign 4 + + thumb_func_start FUN_02034D88 +FUN_02034D88: ; 0x02034D88 + ldr r3, _02034D94 ; =MIi_CpuClear32 + mov r2, #0x5 + add r1, r0, #0x0 + mov r0, #0x0 + lsl r2, r2, #0xa + bx r3 + .balign 4 +_02034D94: .word MIi_CpuClear32 + + thumb_func_start FUN_02034D98 +FUN_02034D98: ; 0x02034D98 + push {r4, lr} + add r4, r0, #0x0 + mov r1, #0x0 + mov r2, #0xa0 + bl memset + add r0, r4, #0x0 + add r0, #0x6c + bl FUN_0204ADE0 + add r0, r4, #0x0 + add r0, #0x8c + bl FUN_02055468 + bl FUN_02034E8C + add r4, #0x68 + strh r0, [r4, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034DC0 +FUN_02034DC0: ; 0x02034DC0 + bx lr + .balign 4 + + thumb_func_start FUN_02034DC4 +FUN_02034DC4: ; 0x02034DC4 + add r0, #0x14 + bx lr + + thumb_func_start FUN_02034DC8 +FUN_02034DC8: ; 0x02034DC8 + add r0, #0x28 + bx lr + + thumb_func_start FUN_02034DCC +FUN_02034DCC: ; 0x02034DCC + add r0, #0x50 + bx lr + + thumb_func_start FUN_02034DD0 +FUN_02034DD0: ; 0x02034DD0 + add r0, #0x3c + bx lr + + thumb_func_start FUN_02034DD4 +FUN_02034DD4: ; 0x02034DD4 + add r3, r1, #0x0 + add r2, r0, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x3c + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + bx lr + + thumb_func_start FUN_02034DE8 +FUN_02034DE8: ; 0x02034DE8 + add r0, #0x64 + bx lr + + thumb_func_start FUN_02034DEC +FUN_02034DEC: ; 0x02034DEC + add r0, #0x66 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034DF4 +FUN_02034DF4: ; 0x02034DF4 + add r0, #0x66 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034DFC +FUN_02034DFC: ; 0x02034DFC + add r0, #0x68 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034E04 +FUN_02034E04: ; 0x02034E04 + add r0, #0x68 + strh r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034E0C +FUN_02034E0C: ; 0x02034E0C + add r0, #0x6c + bx lr + + thumb_func_start FUN_02034E10 +FUN_02034E10: ; 0x02034E10 + add r0, #0x6a + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034E18 +FUN_02034E18: ; 0x02034E18 + add r0, #0x6a + strb r1, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02034E20 +FUN_02034E20: ; 0x02034E20 + add r0, #0x8c + bx lr + + thumb_func_start FUN_02034E24 +FUN_02034E24: ; 0x02034E24 + add r0, #0x98 + bx lr + + thumb_func_start FUN_02034E28 +FUN_02034E28: ; 0x02034E28 + add r0, #0x96 + bx lr + + thumb_func_start FUN_02034E2C +FUN_02034E2C: ; 0x02034E2C + add r0, #0x94 + bx lr + + thumb_func_start FUN_02034E30 +FUN_02034E30: ; 0x02034E30 + ldr r3, _02034E38 ; =FUN_02022610 + mov r1, #0x6 + bx r3 + nop +_02034E38: .word FUN_02022610 + + thumb_func_start FUN_02034E3C +FUN_02034E3C: ; 0x02034E3C + ldr r3, _02034E44 ; =FUN_02022610 + mov r1, #0xb + bx r3 + nop +_02034E44: .word FUN_02022610 + + thumb_func_start FUN_02034E48 +FUN_02034E48: ; 0x02034E48 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02034E3C + add r2, r0, #0x0 + ldr r1, [r4, #0x34] + add r0, r4, #0x0 + mov r3, #0x40 + bl FUN_02057800 + pop {r4, pc} + + thumb_func_start FUN_02034E60 +FUN_02034E60: ; 0x02034E60 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02034E3C + add r1, r0, #0x0 + ldr r0, [r4, #0x34] + mov r2, #0x40 + bl FUN_0205785C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02034E78 +FUN_02034E78: ; 0x02034E78 + push {r3, lr} + cmp r0, #0x0 + ble _02034E82 + cmp r0, #0x14 + bls _02034E88 +_02034E82: + bl ErrorHandling + mov r0, #0x1 +_02034E88: + sub r0, r0, #0x1 + pop {r3, pc} + + thumb_func_start FUN_02034E8C +FUN_02034E8C: ; 0x02034E8C + mov r0, #0x1 + bx lr + + thumb_func_start FUN_02034E90 +FUN_02034E90: ; 0x02034E90 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_02034E78 + lsl r1, r0, #0x4 + ldr r0, _02034EB8 ; =0x020F222A + ldrh r0, [r0, r1] + str r0, [r4, #0x0] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + ldr r0, _02034EBC ; =0x020F222C + ldrh r0, [r0, r1] + str r0, [r4, #0x8] + ldr r0, _02034EC0 ; =0x020F222E + ldrh r0, [r0, r1] + str r0, [r4, #0xc] + mov r0, #0x1 + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 +_02034EB8: .word 0x020F222A +_02034EBC: .word 0x020F222C +_02034EC0: .word 0x020F222E + + thumb_func_start FUN_02034EC4 +FUN_02034EC4: ; 0x02034EC4 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_02034E78 + lsl r1, r0, #0x4 + ldr r0, _02034EEC ; =0x020F2224 + ldrh r0, [r0, r1] + str r0, [r4, #0x0] + mov r0, #0x0 + mvn r0, r0 + str r0, [r4, #0x4] + ldr r0, _02034EF0 ; =0x020F2226 + ldrh r0, [r0, r1] + str r0, [r4, #0x8] + ldr r0, _02034EF4 ; =0x020F2228 + ldrh r0, [r0, r1] + str r0, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x10] + pop {r4, pc} + .balign 4 +_02034EEC: .word 0x020F2224 +_02034EF0: .word 0x020F2226 +_02034EF4: .word 0x020F2228 + + thumb_func_start FUN_02034EF8 +FUN_02034EF8: ; 0x02034EF8 + ldr r3, _02034F18 ; =0x020F2224 + mov r2, #0x0 +_02034EFC: + ldrh r1, [r3, #0x0] + cmp r0, r1 + bne _02034F0C + ldrb r1, [r3, #0xc] + cmp r1, #0x0 + beq _02034F0C + add r0, r2, #0x1 + bx lr +_02034F0C: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, #0x14 + blo _02034EFC + mov r0, #0x0 + bx lr + .balign 4 +_02034F18: .word 0x020F2224 + + thumb_func_start FUN_02034F1C +FUN_02034F1C: ; 0x02034F1C + ldr r3, _02034F3C ; =0x020F2224 + mov r2, #0x0 +_02034F20: + ldrh r1, [r3, #0x6] + cmp r0, r1 + bne _02034F30 + ldrb r1, [r3, #0xc] + cmp r1, #0x0 + beq _02034F30 + add r0, r2, #0x1 + bx lr +_02034F30: + add r2, r2, #0x1 + add r3, #0x10 + cmp r2, #0x14 + blo _02034F20 + mov r0, #0x0 + bx lr + .balign 4 +_02034F3C: .word 0x020F2224 + + thumb_func_start FUN_02034F40 +FUN_02034F40: ; 0x02034F40 + push {r3-r6} + asr r3, r1, #0x4 + lsr r3, r3, #0x1b + add r3, r1, r3 + asr r1, r2, #0x4 + lsr r1, r1, #0x1b + add r1, r2, r1 + mov r4, #0x0 + asr r2, r1, #0x5 + ldr r5, _02034F84 ; =0x020F2224 + asr r3, r3, #0x5 + add r1, r4, #0x0 +_02034F58: + ldrh r6, [r5, #0x6] + cmp r0, r6 + bne _02034F76 + ldrh r6, [r5, #0x8] + add r4, r1, #0x1 + lsr r6, r6, #0x5 + cmp r3, r6 + bne _02034F76 + ldrh r6, [r5, #0xa] + lsr r6, r6, #0x5 + cmp r2, r6 + bne _02034F76 + add r0, r4, #0x0 + pop {r3-r6} + bx lr +_02034F76: + add r1, r1, #0x1 + add r5, #0x10 + cmp r1, #0x14 + blo _02034F58 + add r0, r4, #0x0 + pop {r3-r6} + bx lr + .balign 4 +_02034F84: .word 0x020F2224 + + thumb_func_start FUN_02034F88 +FUN_02034F88: ; 0x02034F88 + push {r4, lr} + ldr r3, _02034FB8 ; =0x020F2224 + mov r4, #0x0 +_02034F8E: + ldrh r2, [r3, #0x6] + cmp r1, r2 + bne _02034FAE + ldrb r2, [r3, #0xd] + cmp r2, #0x0 + beq _02034FAE + ldr r0, [r0, #0xc] + bl FUN_020462AC + ldr r2, _02034FBC ; =0x020F2232 + lsl r3, r4, #0x4 + ldrh r2, [r2, r3] + mov r1, #0x1 + bl FUN_0205F2E4 + pop {r4, pc} +_02034FAE: + add r4, r4, #0x1 + add r3, #0x10 + cmp r4, #0x14 + blo _02034F8E + pop {r4, pc} + .balign 4 +_02034FB8: .word 0x020F2224 +_02034FBC: .word 0x020F2232 + + thumb_func_start FUN_02034FC0 +FUN_02034FC0: ; 0x02034FC0 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02034E78 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_020462AC + ldr r2, _02034FE0 ; =0x020F2232 + lsl r3, r4, #0x4 + ldrh r2, [r2, r3] + mov r1, #0x2 + bl FUN_0205F2E4 + pop {r3-r5, pc} + .balign 4 +_02034FE0: .word 0x020F2232 + + thumb_func_start FUN_02034FE4 +FUN_02034FE4: ; 0x02034FE4 + push {r3-r7, lr} + add r7, r0, #0x0 + add r0, r1, #0x0 + bl FUN_02034838 + add r4, r0, #0x0 + cmp r4, #0x18 + blt _0203505C + ldr r0, [r7, #0xc] + bl FUN_02023794 + add r6, r0, #0x0 + add r0, r6, #0x4 + bl FUN_02012710 + sub r5, r0, #0x1 + bmi _0203500C + ldr r0, _02035060 ; =0x0000016E + cmp r5, r0 + blt _02035010 +_0203500C: + bl ErrorHandling +_02035010: + ldr r0, [r6, #0x8] + cmp r0, #0x2 + bls _02035044 + ldr r6, [r6, #0x4] + mov r0, #0x3 + tst r0, r6 + bne _0203502A + add r0, r6, #0x0 + mov r1, #0x64 + bl _u32_div_f + cmp r1, #0x0 + bne _02035038 +_0203502A: + mov r1, #0x19 + add r0, r6, #0x0 + lsl r1, r1, #0x4 + bl _u32_div_f + cmp r1, #0x0 + bne _0203503C +_02035038: + mov r0, #0x1 + b _0203503E +_0203503C: + mov r0, #0x0 +_0203503E: + cmp r0, #0x0 + bne _02035044 + add r5, r5, #0x1 +_02035044: + add r0, r7, #0x0 + bl FUN_0204B33C + cmp r0, #0x0 + beq _02035050 + mov r5, #0x1 +_02035050: + lsl r0, r5, #0x2 + sub r4, #0x18 + add r0, r5, r0 + add r1, r4, r0 + ldr r0, _02035064 ; =0x020F2364 + ldrb r0, [r0, r1] +_0203505C: + pop {r3-r7, pc} + nop +_02035060: .word 0x0000016E +_02035064: .word 0x020F2364 + + thumb_func_start FUN_02035068 +FUN_02035068: ; 0x02035068 + push {r3, lr} + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x0] + bl FUN_02034824 + cmp r0, #0x0 + beq _0203507A + mov r0, #0x1 + pop {r3, pc} +_0203507A: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02035080 +FUN_02035080: ; 0x02035080 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02035254 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205F214 + cmp r0, #0x1 + bne _020350A6 + add r0, r5, #0x0 + bl FUN_020352C4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350A6: + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205F244 + cmp r0, #0x1 + bne _020350C2 + add r0, r5, #0x0 + bl FUN_020352C8 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350C2: + add r0, r5, #0x0 + bl FUN_02060144 + cmp r0, #0x1 + bne _020350DA + add r0, r5, #0x0 + bl FUN_020352CC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _020350E6 +_020350DA: + add r0, r5, #0x0 + bl FUN_02035270 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] +_020350E6: + mov r0, #0x71 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r0, [r5, #0x38] + bl FUN_02055B30 + cmp r0, #0x1 + bne _02035106 + ldr r0, [r5, #0x38] + bl FUN_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl FUN_02055B8C +_02035106: + ldr r1, _02035114 ; =FUN_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020463CC + pop {r3-r5, pc} + nop +_02035114: .word FUN_020352E4 + + thumb_func_start FUN_02035118 +FUN_02035118: ; 0x02035118 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02035254 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020352D4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x38] + bl FUN_02055B30 + cmp r0, #0x1 + bne _0203514C + ldr r0, [r5, #0x38] + bl FUN_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl FUN_02055B8C +_0203514C: + ldr r1, _02035158 ; =FUN_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020463CC + pop {r3-r5, pc} + .balign 4 +_02035158: .word FUN_020352E4 + + thumb_func_start FUN_0203515C +FUN_0203515C: ; 0x0203515C + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02035254 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020352DC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x0 + add r0, r1, #0x4 + str r2, [r4, r0] + ldr r0, [r5, #0x38] + bl FUN_02055B30 + cmp r0, #0x1 + bne _02035190 + ldr r0, [r5, #0x38] + bl FUN_020552F8 + add r1, r0, #0x0 + ldr r0, [r5, #0x38] + bl FUN_02055B8C +_02035190: + ldr r1, _0203519C ; =FUN_020352E4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020463CC + pop {r3-r5, pc} + .balign 4 +_0203519C: .word FUN_020352E4 + + thumb_func_start FUN_020351A0 +FUN_020351A0: ; 0x020351A0 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _0203524C ; =0x000005FD + bl FUN_020054C8 + bl FUN_02035254 + add r4, r0, #0x0 + mov r0, #0x71 + mov r1, #0x0 + lsl r0, r0, #0x2 + str r1, [r4, r0] + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205F214 + cmp r0, #0x1 + bne _020351D4 + add r0, r5, #0x0 + bl FUN_020352C4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_020351D4: + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205F244 + cmp r0, #0x1 + bne _020351F0 + add r0, r5, #0x0 + bl FUN_020352C8 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_020351F0: + add r0, r5, #0x0 + bl FUN_02060144 + cmp r0, #0x1 + bne _02035208 + add r0, r5, #0x0 + bl FUN_020352CC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_02035208: + ldr r0, [r5, #0x6c] + cmp r0, #0x3 + bne _0203521C + add r0, r5, #0x0 + bl FUN_020352DC + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + b _02035240 +_0203521C: + cmp r0, #0x2 + bne _02035234 + add r0, r5, #0x0 + bl FUN_020352D4 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] + mov r2, #0x1 + add r0, r1, #0x4 + str r2, [r4, r0] + b _02035240 +_02035234: + add r0, r5, #0x0 + bl FUN_02035270 + mov r1, #0x7 + lsl r1, r1, #0x6 + str r0, [r4, r1] +_02035240: + ldr r0, [r5, #0x10] + ldr r1, _02035250 ; =FUN_020352E4 + add r2, r4, #0x0 + bl FUN_020463EC + pop {r3-r5, pc} + .balign 4 +_0203524C: .word 0x000005FD +_02035250: .word FUN_020352E4 + + thumb_func_start FUN_02035254 +FUN_02035254: ; 0x02035254 + push {r3, lr} + mov r1, #0x2 + mov r0, #0xb + lsl r1, r1, #0x8 + bl FUN_02016998 + mov r2, #0x0 + strh r2, [r0, #0x2a] + mov r1, #0x7e + strh r2, [r0, #0x28] + lsl r1, r1, #0x2 + str r2, [r0, r1] + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02035270 +FUN_02035270: ; 0x02035270 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r4, #0x0 + bl FUN_02024DA0 + bl FUN_02024D64 + cmp r0, #0x0 + bne _02035288 + mov r0, #0x1 + orr r4, r0 +_02035288: + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205F388 + cmp r0, #0x0 + bne _0203529A + mov r0, #0x2 + orr r4, r0 +_0203529A: + ldr r0, [r5, #0xc] + bl FUN_020462AC + bl FUN_0205ECE0 + cmp r0, #0x0 + bne _020352AC + mov r0, #0x4 + orr r4, r0 +_020352AC: + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl FUN_020349CC + cmp r0, #0x1 + bne _020352BC + mov r0, #0x6 + orr r4, r0 +_020352BC: + mov r0, #0x6 + lsl r0, r0, #0x6 + orr r0, r4 + pop {r3-r5, pc} + + thumb_func_start FUN_020352C4 +FUN_020352C4: ; 0x020352C4 + mov r0, #0x90 + bx lr + + thumb_func_start FUN_020352C8 +FUN_020352C8: ; 0x020352C8 + mov r0, #0x94 + bx lr + + thumb_func_start FUN_020352CC +FUN_020352CC: ; 0x020352CC + ldr r0, _020352D0 ; =0x00000195 + bx lr + .balign 4 +_020352D0: .word 0x00000195 + + thumb_func_start FUN_020352D4 +FUN_020352D4: ; 0x020352D4 + mov r0, #0x11 + lsl r0, r0, #0x4 + bx lr + .balign 4 + + thumb_func_start FUN_020352DC +FUN_020352DC: ; 0x020352DC + ldr r0, _020352E0 ; =0x00000191 + bx lr + .balign 4 +_020352E0: .word 0x00000191 + + thumb_func_start FUN_020352E4 +FUN_020352E4: ; 0x020352E4 + push {r4-r6, lr} + add r6, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + ldrh r1, [r4, #0x2a] + cmp r1, #0xf + bhi _02035362 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02035308: ; jump table (using 16-bit offset) + .short _02035328 - _02035308 - 2; case 0 + .short _02035358 - _02035308 - 2; case 1 + .short _02035368 - _02035308 - 2; case 2 + .short _02035370 - _02035308 - 2; case 3 + .short _02035378 - _02035308 - 2; case 4 + .short _02035380 - _02035308 - 2; case 5 + .short _02035388 - _02035308 - 2; case 6 + .short _02035390 - _02035308 - 2; case 7 + .short _020353C0 - _02035308 - 2; case 8 + .short _020353D6 - _02035308 - 2; case 9 + .short _020353F6 - _02035308 - 2; case 10 + .short _02035412 - _02035308 - 2; case 11 + .short _02035398 - _02035308 - 2; case 12 + .short _02035440 - _02035308 - 2; case 13 + .short _02035478 - _02035308 - 2; case 14 + .short _02035432 - _02035308 - 2; case 15 +_02035328: + ldr r0, [r5, #0x34] + bl FUN_02058780 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_0205CE80 + mov r1, #0x7a + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02063964 + add r0, r6, #0x0 + bl FUN_0203549C + add r0, r6, #0x0 + bl FUN_02035734 + mov r0, #0x1 + strh r0, [r4, #0x2a] + b _02035484 +_02035358: + add r0, r6, #0x0 + bl FUN_020358E4 + cmp r0, #0x0 + beq _02035364 +_02035362: + b _02035484 +_02035364: + mov r0, #0x0 + pop {r4-r6, pc} +_02035368: + add r0, r6, #0x0 + bl FUN_02035CA0 + b _02035484 +_02035370: + add r0, r6, #0x0 + bl FUN_02035CDC + b _02035484 +_02035378: + add r0, r6, #0x0 + bl FUN_020365F0 + b _02035484 +_02035380: + add r0, r6, #0x0 + bl FUN_02036644 + b _02035484 +_02035388: + add r0, r6, #0x0 + bl FUN_02036E08 + b _02035484 +_02035390: + add r0, r6, #0x0 + bl FUN_02036F1C + b _02035484 +_02035398: + add r0, r5, #0x0 + bl FUN_020464A4 + cmp r0, #0x0 + beq _02035484 + ldr r0, [r5, #0x34] + bl FUN_02058780 + add r0, r6, #0x0 + bl FUN_0203549C + add r0, r6, #0x0 + bl FUN_02035734 + mov r0, #0x1 + bl MOD05_021D7CA4 + mov r0, #0xe + strh r0, [r4, #0x2a] + b _02035484 +_020353C0: + add r0, r5, #0x0 + bl FUN_020464A4 + cmp r0, #0x0 + beq _02035484 + mov r0, #0x1 + bl MOD05_021D7CA4 + mov r0, #0x9 + strh r0, [r4, #0x2a] + b _02035484 +_020353D6: + bl FUN_0200E308 + cmp r0, #0x0 + beq _02035484 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0203598C + add r0, r4, #0x0 + bl FUN_02016A18 + ldr r0, [r5, #0x34] + bl FUN_020587B0 + mov r0, #0x1 + pop {r4-r6, pc} +_020353F6: + add r0, r5, #0x0 + bl FUN_020464A4 + cmp r0, #0x0 + beq _02035484 + ldr r0, [r5, #0x34] + bl FUN_02058780 + mov r0, #0x1 + bl MOD05_021D7CA4 + mov r0, #0xb + strh r0, [r4, #0x2a] + b _02035484 +_02035412: + bl FUN_0200E308 + cmp r0, #0x0 + beq _02035484 + mov r2, #0x72 + lsl r2, r2, #0x2 + ldr r1, [r4, r2] + add r2, #0x30 + ldr r2, [r4, r2] + add r0, r6, #0x0 + bl FUN_020463EC + add r0, r4, #0x0 + bl FUN_02016A18 + b _02035484 +_02035432: + bl FUN_02016A18 + ldr r0, [r5, #0x34] + bl FUN_020587B0 + mov r0, #0x1 + pop {r4-r6, pc} +_02035440: + add r1, r5, #0x0 + bl FUN_0203598C + add r0, r4, #0x0 + bl FUN_02035718 + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_0200CCF8 + add r0, r4, #0x0 + bl FUN_02019178 + add r0, r6, #0x0 + bl FUN_020358A0 + ldr r0, [r5, #0x8] + mov r1, #0x3 + bl FUN_0201AC68 + add r0, r4, #0x0 + bl FUN_02016A18 + ldr r0, [r5, #0x34] + bl FUN_020587B0 + mov r0, #0x1 + pop {r4-r6, pc} +_02035478: + bl FUN_0200E308 + cmp r0, #0x0 + beq _02035484 + mov r0, #0x1 + strh r0, [r4, #0x2a] +_02035484: + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _02035496 + add r0, r4, #0x0 + bl FUN_02035BB0 + ldr r0, [r4, #0x38] + bl FUN_0201FDEC +_02035496: + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0203549C +FUN_0203549C: ; 0x0203549C + push {r3-r7, lr} + sub sp, #0x30 + add r4, r0, #0x0 + bl FUN_02046528 + str r0, [sp, #0x1c] + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r1, r4, #0x0 + add r1, #0x30 + bl FUN_0203566C + str r0, [sp, #0x14] + mov r0, #0x1 + str r0, [sp, #0x0] + mov r0, #0xb + str r0, [sp, #0x4] + ldr r0, [sp, #0x14] + mov r2, #0x3 + lsl r1, r0, #0x1 + add r0, r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _02035658 ; =0x0000023B + add r1, r4, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x1c] + mov r3, #0x14 + ldr r0, [r0, #0x8] + bl FUN_02019064 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0xb + ldr r0, [sp, #0x1c] + str r3, [sp, #0x4] + ldr r0, [r0, #0x8] + ldr r2, _0203565C ; =0x000003D9 + mov r1, #0x3 + bl FUN_0200CB00 + ldr r2, _0203565C ; =0x000003D9 + add r0, r4, #0x0 + mov r1, #0x1 + mov r3, #0xb + bl FUN_0200CCA4 + ldr r2, _02035660 ; =0x00000143 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0xb + bl FUN_0200A86C + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + mov r1, #0xb + bl FUN_02012838 + str r0, [r4, #0x24] + mov r5, #0x0 + ldr r0, [sp, #0x14] + strh r5, [r4, #0x28] + cmp r0, #0x0 + bls _020355BC +_02035526: + add r0, r4, r5 + add r0, #0x30 + ldrb r3, [r0, #0x0] + cmp r3, #0x3 + bne _02035594 + mov r0, #0xb + bl FUN_0200AA80 + add r6, r0, #0x0 + mov r0, #0x8 + mov r1, #0xb + bl FUN_020219F4 + add r1, r4, r5 + add r1, #0x30 + ldrb r1, [r1, #0x0] + add r7, r0, #0x0 + ldr r0, [sp, #0x18] + lsl r2, r1, #0x3 + ldr r1, _02035664 ; =0x020F2ACC + ldr r1, [r1, r2] + bl FUN_0200A914 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0xc] + bl FUN_020238F4 + add r2, r0, #0x0 + add r0, r6, #0x0 + mov r1, #0x0 + bl FUN_0200ABC0 + ldr r2, [sp, #0x20] + add r0, r6, #0x0 + add r1, r7, #0x0 + bl FUN_0200B7B8 + add r2, r4, r5 + add r2, #0x30 + ldrb r2, [r2, #0x0] + ldr r0, [r4, #0x24] + add r1, r7, #0x0 + bl FUN_020128A0 + ldr r0, [sp, #0x20] + bl FUN_02021A20 + add r0, r7, #0x0 + bl FUN_02021A20 + add r0, r6, #0x0 + bl FUN_0200AB18 + b _020355A2 +_02035594: + ldr r2, _02035664 ; =0x020F2ACC + lsl r6, r3, #0x3 + ldr r0, [r4, #0x24] + ldr r1, [sp, #0x18] + ldr r2, [r2, r6] + bl FUN_02012880 +_020355A2: + ldr r0, [sp, #0x1c] + add r0, #0x8c + ldr r1, [r0, #0x0] + add r0, r4, r5 + add r0, #0x30 + ldrb r0, [r0, #0x0] + cmp r1, r0 + bne _020355B4 + strh r5, [r4, #0x28] +_020355B4: + ldr r0, [sp, #0x14] + add r5, r5, #0x1 + cmp r5, r0 + blo _02035526 +_020355BC: + ldrh r0, [r4, #0x28] + add r0, r4, r0 + add r0, #0x30 + ldrb r1, [r0, #0x0] + ldr r0, [sp, #0x1c] + add r0, #0x8c + str r1, [r0, #0x0] + ldr r0, [sp, #0x18] + bl FUN_0200A8B8 + ldr r0, [r4, #0x24] + mov r1, #0x1 + str r0, [sp, #0x24] + str r4, [sp, #0x28] + add r0, sp, #0x24 + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + ldr r1, [sp, #0x14] + strb r1, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + mov r1, #0x8 + orr r1, r2 + strb r1, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + mov r1, #0x10 + orr r1, r2 + strb r1, [r0, #0xb] + ldr r1, [sp, #0x14] + ldrb r2, [r0, #0xb] + cmp r1, #0x4 + blo _0203560E + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _02035614 +_0203560E: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_02035614: + mov r0, #0xb + str r0, [sp, #0x0] + ldr r0, _02035668 ; =0x00000402 + mov r1, #0x1c + str r0, [sp, #0x4] + ldrh r3, [r4, #0x28] + add r0, sp, #0x24 + mov r2, #0x4 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02001B8C + str r0, [r4, #0x20] + add r0, r4, #0x0 + bl FUN_02019220 + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0xc] + bl FUN_020238F4 + bl FUN_020239CC + add r3, r0, #0x0 + add r0, r4, #0x0 + add r4, #0x30 + lsl r3, r3, #0x18 + ldr r2, [sp, #0x14] + add r1, r4, #0x0 + lsr r3, r3, #0x18 + bl FUN_020359B8 + add sp, #0x30 + pop {r3-r7, pc} + nop +_02035658: .word 0x0000023B +_0203565C: .word 0x000003D9 +_02035660: .word 0x00000143 +_02035664: .word 0x020F2ACC +_02035668: .word 0x00000402 + + thumb_func_start FUN_0203566C +FUN_0203566C: ; 0x0203566C + push {r3-r4} + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + sub r3, #0xc0 + mov r2, #0x0 + tst r3, r4 + bne _02035682 + mov r3, #0x8 + strb r3, [r1, #0x0] + add r2, r2, #0x1 +_02035682: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x80 + tst r3, r4 + bne _02035694 + mov r3, #0x7 + strb r3, [r1, r2] + add r2, r2, #0x1 +_02035694: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x1 + tst r3, r4 + bne _020356A6 + mov r3, #0x0 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356A6: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x2 + tst r3, r4 + bne _020356B8 + mov r3, #0x1 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356B8: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x4 + tst r3, r4 + bne _020356CA + mov r3, #0x2 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356CA: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x8 + tst r3, r4 + bne _020356DC + mov r3, #0x3 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356DC: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x10 + tst r3, r4 + bne _020356EE + mov r3, #0x4 + strb r3, [r1, r2] + add r2, r2, #0x1 +_020356EE: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r4, [r0, r3] + mov r3, #0x20 + tst r3, r4 + bne _02035700 + mov r3, #0x5 + strb r3, [r1, r2] + add r2, r2, #0x1 +_02035700: + mov r3, #0x7 + lsl r3, r3, #0x6 + ldr r3, [r0, r3] + mov r0, #0x40 + tst r0, r3 + bne _02035712 + mov r0, #0x6 + strb r0, [r1, r2] + add r2, r2, #0x1 +_02035712: + add r0, r2, #0x0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_02035718 +FUN_02035718: ; 0x02035718 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02035B78 + ldr r0, [r4, #0x20] + mov r1, #0x0 + bl FUN_02001C5C + ldr r0, [r4, #0x24] + bl FUN_02012870 + mov r0, #0x0 + str r0, [r4, #0x20] + pop {r4, pc} + + thumb_func_start FUN_02035734 +FUN_02035734: ; 0x02035734 + push {r3-r7, lr} + sub sp, #0x20 + add r5, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_020462AC + bl FUN_0205F214 + cmp r0, #0x1 + bne _0203575A + mov r6, #0x0 + b _0203576C +_0203575A: + ldr r0, [r4, #0xc] + bl FUN_020462AC + bl FUN_0205F244 + cmp r0, #0x1 + beq _0203576A + b _0203588E +_0203576A: + mov r6, #0x1 +_0203576C: + mov r3, #0x1 + str r3, [sp, #0x0] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x4 + str r0, [sp, #0x8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02035894 ; =0x0000032D + add r1, r5, #0x0 + str r0, [sp, #0x10] + ldr r0, [r4, #0x8] + add r1, #0x10 + mov r2, #0x3 + bl FUN_02019064 + mov r0, #0x1 + str r0, [sp, #0x0] + mov r3, #0xb + str r3, [sp, #0x4] + ldr r0, [r4, #0x8] + ldr r2, _02035898 ; =0x000003D9 + mov r1, #0x3 + bl FUN_0200CB00 + add r0, r5, #0x0 + ldr r2, _02035898 ; =0x000003D9 + add r0, #0x10 + mov r1, #0x1 + mov r3, #0xb + bl FUN_0200CCA4 + add r0, r5, #0x0 + add r0, #0x10 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _0203589C ; =0x00000143 + mov r0, #0x0 + mov r1, #0x1a + mov r3, #0xb + bl FUN_0200A86C + str r0, [sp, #0x1c] + cmp r6, #0x0 + bne _020357D0 + mov r1, #0x9 + bl FUN_0200A914 + b _020357D6 +_020357D0: + mov r1, #0xa + bl FUN_0200A914 +_020357D6: + mov r1, #0x0 + add r7, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + add r0, r5, #0x0 + add r0, #0x10 + add r2, r7, #0x0 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl FUN_0201BD84 + add r0, r7, #0x0 + bl FUN_02021A20 + mov r0, #0xb + bl FUN_0200AA80 + add r7, r0, #0x0 + mov r0, #0x20 + mov r1, #0xb + bl FUN_020219F4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + mov r1, #0xb + bl FUN_0200A914 + str r0, [sp, #0x14] + cmp r6, #0x0 + bne _02035834 + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034E24 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldrh r2, [r2, #0x0] + add r0, r7, #0x0 + mov r3, #0x2 + bl FUN_0200AD38 + b _0203584C +_02035834: + add r0, r4, #0x0 + bl FUN_0204BAB0 + mov r1, #0x0 + add r2, r0, #0x0 + str r1, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + add r0, r7, #0x0 + mov r3, #0x2 + bl FUN_0200AD38 +_0203584C: + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r7, #0x0 + bl FUN_0200B7B8 + mov r0, #0x10 + str r0, [sp, #0x0] + mov r0, #0xff + str r0, [sp, #0x4] + mov r1, #0x0 + add r0, r5, #0x0 + ldr r2, [sp, #0x18] + add r0, #0x10 + add r3, r1, #0x0 + str r1, [sp, #0x8] + bl FUN_0201BD84 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add r0, r7, #0x0 + bl FUN_0200AB18 + ldr r0, [sp, #0x1c] + bl FUN_0200A8B8 + add r5, #0x10 + add r0, r5, #0x0 + bl FUN_02019220 +_0203588E: + add sp, #0x20 + pop {r3-r7, pc} + nop +_02035894: .word 0x0000032D +_02035898: .word 0x000003D9 +_0203589C: .word 0x00000143 + + thumb_func_start FUN_020358A0 +FUN_020358A0: ; 0x020358A0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_020462AC + bl FUN_0205F214 + cmp r0, #0x0 + bne _020358CE + ldr r0, [r4, #0xc] + bl FUN_020462AC + bl FUN_0205F244 + cmp r0, #0x0 + beq _020358E0 +_020358CE: + add r0, r5, #0x0 + add r0, #0x10 + mov r1, #0x1 + bl FUN_0200CCF8 + add r5, #0x10 + add r0, r5, #0x0 + bl FUN_02019178 +_020358E0: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020358E4 +FUN_020358E4: ; 0x020358E4 + push {r3-r7, lr} + add r7, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r7, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x20] + bl FUN_02001E5C + add r6, r0, #0x0 + mov r1, #0x5e + ldr r0, [r5, #0x20] + lsl r1, r1, #0x4 + bl FUN_02001D2C + str r0, [r5, #0x2c] + ldr r0, [r5, #0x20] + bl FUN_02001E5C + strh r0, [r5, #0x28] + ldrh r1, [r5, #0x28] + cmp r6, r1 + beq _0203593A + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + ldr r0, [r0, #0x0] + bl FUN_02035BE8 + ldrh r2, [r5, #0x28] + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02035C44 + ldrh r0, [r5, #0x28] + add r4, #0x8c + add r0, r5, r0 + add r0, #0x30 + ldrb r0, [r0, #0x0] + str r0, [r4, #0x0] +_0203593A: + ldrh r0, [r5, #0x28] + add r0, r0, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + ldr r0, [r0, #0x0] + bl FUN_02035C78 + mov r1, #0x1 + ldr r2, [r5, #0x2c] + mvn r1, r1 + cmp r2, r1 + beq _02035960 + add r0, r1, #0x1 + cmp r2, r0 + beq _02035982 + b _02035966 +_02035960: + mov r0, #0xd + strh r0, [r5, #0x2a] + b _02035982 +_02035966: + ldr r0, _02035988 ; =0x020F2AD0 + lsl r2, r2, #0x3 + ldr r2, [r0, r2] + cmp r2, r1 + bne _02035976 + mov r0, #0xd + strh r0, [r5, #0x2a] + b _02035982 +_02035976: + add r0, r1, #0x1 + cmp r2, r0 + beq _02035982 + add r0, r7, #0x0 + blx r2 + pop {r3-r7, pc} +_02035982: + mov r0, #0x1 + pop {r3-r7, pc} + nop +_02035988: .word 0x020F2AD0 + + thumb_func_start FUN_0203598C +FUN_0203598C: ; 0x0203598C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0202EDF8 + cmp r0, #0x0 + beq _020359B4 + mov r0, #0x71 + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _020359B4 + ldr r0, [r4, #0x7c] + bl FUN_02052F74 + bl FUN_02031B50 + mov r0, #0x0 + bl FUN_02052B74 +_020359B4: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020359B8 +FUN_020359B8: ; 0x020359B8 + push {r4-r7, lr} + sub sp, #0xb4 + ldr r4, _02035B60 ; =0x020F2AB4 + str r3, [sp, #0x18] + add r3, sp, #0x9c + str r2, [sp, #0x14] + str r0, [sp, #0xc] + str r1, [sp, #0x10] + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [sp, #0xc] + add r1, r2, #0x0 + add r0, #0x38 + mov r2, #0x8 + mov r3, #0xb + bl MOD05_021D959C + mov r0, #0x2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x4] + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x8] + ldr r0, [sp, #0xc] + mov r2, #0x5 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D967C + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x1 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D96F4 + ldr r0, _02035B64 ; =0x000034D8 + mov r2, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r1, #0x42 + add r0, #0x38 + add r3, r2, #0x0 + bl MOD05_021D9708 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02035B64 ; =0x000034D8 + mov r1, #0x42 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + mov r2, #0x2 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D971C + ldr r0, [sp, #0xc] + ldr r1, _02035B68 ; =0x020F2B14 + add r0, #0x38 + bl MOD05_021D9820 + mov r2, #0x67 + ldr r1, [sp, #0xc] + lsl r2, r2, #0x2 + str r0, [r1, r2] + add r0, r1, #0x0 + ldr r0, [r0, r2] + ldrh r1, [r1, #0x28] + ldr r0, [r0, #0x0] + bl FUN_02035BE8 + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x4 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D96F4 + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x0] + ldr r0, [sp, #0xc] + mov r2, #0x3 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D9708 + mov r0, #0x1 + str r0, [sp, #0x0] + ldr r0, _02035B6C ; =0x000034D9 + mov r1, #0x42 + str r0, [sp, #0x4] + ldr r0, [sp, #0xc] + mov r2, #0x6 + add r0, #0x38 + mov r3, #0x0 + bl MOD05_021D971C + ldr r0, [sp, #0x14] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035B2C + ldr r5, [sp, #0xc] + ldr r3, _02035B70 ; =0x020F2B48 + add r7, r4, #0x0 + add r2, sp, #0x28 + mov r6, #0x6 +_02035AA2: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r6, r6, #0x1 + bne _02035AA2 + ldr r0, [r3, #0x0] + ldr r3, _02035B74 ; =0x020F2AA8 + str r0, [r2, #0x0] + ldmia r3!, {r0-r1} + add r2, sp, #0x1c + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] +_02035ABA: + add r6, sp, #0x28 + add r3, sp, #0x68 + mov r2, #0x6 +_02035AC0: + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + sub r2, r2, #0x1 + bne _02035AC0 + ldr r0, [r6, #0x0] + add r1, sp, #0x68 + str r0, [r3, #0x0] + mov r0, #0x2 + ldrsh r0, [r1, r0] + add r0, r0, r7 + strh r0, [r1, #0x2] + ldr r0, [sp, #0x10] + ldrb r2, [r0, r4] + cmp r2, #0x2 + bne _02035AEA + ldr r0, [sp, #0x18] + cmp r0, #0x1 + bne _02035AEA + mov r0, #0x1b + strh r0, [r1, #0x6] + b _02035AF2 +_02035AEA: + lsl r0, r2, #0x1 + add r1, r2, r0 + add r0, sp, #0x68 + strh r1, [r0, #0x6] +_02035AF2: + ldr r0, [sp, #0xc] + add r1, sp, #0x68 + add r0, #0x38 + bl MOD05_021D9820 + mov r1, #0x1a + lsl r1, r1, #0x4 + add r2, sp, #0x5c + add r3, sp, #0x1c + str r0, [r5, r1] + ldmia r3!, {r0-r1} + add r6, r2, #0x0 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + add r1, r6, #0x0 + str r0, [r2, #0x0] + mov r0, #0x1a + lsl r0, r0, #0x4 + ldr r0, [r5, r0] + mov r2, #0x1 + ldr r0, [r0, #0x0] + bl FUN_02020074 + ldr r0, [sp, #0x14] + add r4, r4, #0x1 + add r7, #0x18 + add r5, r5, #0x4 + cmp r4, r0 + blo _02035ABA +_02035B2C: + ldr r0, [sp, #0xc] + mov r2, #0x1 + ldrh r0, [r0, #0x28] + add r0, r0, #0x1 + lsl r1, r0, #0x2 + ldr r0, [sp, #0xc] + add r1, r0, r1 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x2 + ldr r0, [r0, #0x0] + bl FUN_02035C18 + ldr r0, [sp, #0x14] + mov r1, #0x6f + add r2, r0, #0x1 + ldr r0, [sp, #0xc] + lsl r1, r1, #0x2 + str r2, [r0, r1] + mov r0, #0x10 + mov r1, #0x1 + bl FUN_0201E6E4 + add sp, #0xb4 + pop {r4-r7, pc} + .balign 4 +_02035B60: .word 0x020F2AB4 +_02035B64: .word 0x000034D8 +_02035B68: .word 0x020F2B14 +_02035B6C: .word 0x000034D9 +_02035B70: .word 0x020F2B48 +_02035B74: .word 0x020F2AA8 + + thumb_func_start FUN_02035B78 +FUN_02035B78: ; 0x02035B78 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x6f + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035BA6 + mov r7, #0x67 + lsl r7, r7, #0x2 + add r6, r7, #0x0 + add r6, #0x20 +_02035B90: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r7] + bl FUN_0200C3DC + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, r6] + cmp r4, r0 + blo _02035B90 +_02035BA6: + add r5, #0x38 + add r0, r5, #0x0 + bl MOD05_021D99F8 + pop {r3-r7, pc} + + thumb_func_start FUN_02035BB0 +FUN_02035BB0: ; 0x02035BB0 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x6f + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + mov r4, #0x0 + cmp r0, #0x0 + bls _02035BE4 + mov r7, #0x67 + lsl r7, r7, #0x2 + add r6, r7, #0x0 + add r6, #0x20 +_02035BC8: + lsl r0, r4, #0x2 + add r0, r5, r0 + ldr r0, [r0, r7] + mov r1, #0x1 + ldr r0, [r0, #0x0] + lsl r1, r1, #0xc + bl FUN_020201E4 + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [r5, r6] + cmp r4, r0 + blo _02035BC8 +_02035BE4: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02035BE8 +FUN_02035BE8: ; 0x02035BE8 + push {r3-r6, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_0202011C + add r6, r0, #0x0 + add r3, sp, #0x0 + ldmia r6!, {r0-r1} + add r2, r3, #0x0 + stmia r3!, {r0-r1} + ldr r0, [r6, #0x0] + add r1, r2, #0x0 + str r0, [r3, #0x0] + mov r0, #0x18 + mul r0, r4 + add r0, #0x14 + lsl r0, r0, #0xc + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl FUN_02020044 + add sp, #0xc + pop {r3-r6, pc} + + thumb_func_start FUN_02035C18 +FUN_02035C18: ; 0x02035C18 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + bl FUN_020201DC + mov r1, #0x3 + bl _u32_div_f + add r2, r0, #0x0 + lsl r1, r2, #0x1 + add r1, r2, r1 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02020130 + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0202027C + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02035C44 +FUN_02035C44: ; 0x02035C44 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r1, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x0 + add r4, r2, #0x0 + ldr r0, [r0, #0x0] + add r2, r1, #0x0 + bl FUN_02035C18 + add r0, r4, #0x1 + lsl r0, r0, #0x2 + add r1, r5, r0 + mov r0, #0x67 + lsl r0, r0, #0x2 + ldr r0, [r1, r0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r2, r1, #0x0 + bl FUN_02035C18 + pop {r3-r5, pc} + + thumb_func_start FUN_02035C78 +FUN_02035C78: ; 0x02035C78 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020201DC + mov r1, #0x3 + bl _u32_div_f + cmp r1, #0x1 + bne _02035C9E + add r0, r4, #0x0 + bl FUN_02020388 + cmp r0, #0x0 + bne _02035C9E + add r0, r4, #0x0 + mov r1, #0x2 + mov r2, #0x1 + bl FUN_02035C18 +_02035C9E: + pop {r4, pc} + + thumb_func_start FUN_02035CA0 +FUN_02035CA0: ; 0x02035CA0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0200E308 + cmp r0, #0x0 + beq _02035CD8 + add r0, r5, #0x0 + bl FUN_02046528 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + bl FUN_02035718 + add r0, r4, #0x0 + bl FUN_02019178 + add r0, r5, #0x0 + bl FUN_020358A0 + mov r1, #0x72 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + blx r1 + mov r0, #0x3 + strh r0, [r4, #0x2a] +_02035CD8: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02035CDC +FUN_02035CDC: ; 0x02035CDC + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _02035D02 + mov r1, #0x72 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + blx r1 +_02035D02: + pop {r4-r6, pc} + + thumb_func_start FUN_02035D04 +FUN_02035D04: ; 0x02035D04 + mov r2, #0x72 + lsl r2, r2, #0x2 + str r1, [r0, r2] + mov r1, #0x3 + strh r1, [r0, #0x2a] + bx lr + + thumb_func_start FUN_02035D10 +FUN_02035D10: ; 0x02035D10 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _02035D30 ; =FUN_02035D34 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02035D30: .word FUN_02035D34 + + thumb_func_start FUN_02035D34 +FUN_02035D34: ; 0x02035D34 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r6, r0, #0x0 + mov r0, #0xb + mov r1, #0x20 + bl FUN_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_02024DA0 + str r0, [sp, #0x0] + ldr r0, [r5, #0xc] + bl FUN_020238F4 + str r0, [sp, #0x4] + ldr r0, [r5, #0xc] + bl FUN_020462AC + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + str r0, [r4, #0x0] + ldr r0, [sp, #0x4] + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl FUN_0204B2A4 + str r0, [r4, #0x8] + add r0, r7, #0x0 + mov r1, #0x0 + bl FUN_0205F524 + str r0, [r4, #0xc] + add r0, r7, #0x0 + mov r1, #0x1 + bl FUN_0205F524 + str r0, [r4, #0x10] + add r0, r7, #0x0 + mov r1, #0x2 + bl FUN_0205F524 + str r0, [r4, #0x14] + add r0, r7, #0x0 + mov r1, #0x3 + bl FUN_0205F524 + str r0, [r4, #0x18] + add r0, r5, #0x0 + add r0, #0xb0 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + str r0, [r4, #0x1c] + add r0, r5, #0x0 + bl FUN_02038690 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + ldr r1, _02035DC4 ; =FUN_02035DC8 + sub r0, #0x30 + str r1, [r6, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02035DC4: .word FUN_02035DC8 + + thumb_func_start FUN_02035DC8 +FUN_02035DC8: ; 0x02035DC8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204649C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _02035DF0 + mov r0, #0xb + bl FUN_02016A8C +_02035DF0: + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02035DF8 +FUN_02035DF8: ; 0x02035DF8 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _02035E18 ; =FUN_02035E1C + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02035E18: .word FUN_02035E1C + + thumb_func_start FUN_02035E1C +FUN_02035E1C: ; 0x02035E1C + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x7a + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + mov r2, #0x0 + bl FUN_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, _02035E4C ; =FUN_02035E50 + sub r1, #0x30 + str r0, [r4, r1] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02035E4C: .word FUN_02035E50 + + thumb_func_start FUN_02035E50 +FUN_02035E50: ; 0x02035E50 + push {r4-r7, lr} + sub sp, #0xc + add r7, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r7, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x40 + bl FUN_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x40 + add r6, r0, #0x0 + bl memcpy + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r6, #0x0 + add r0, #0x23 + ldrb r0, [r0, #0x0] + cmp r0, #0x17 + bls _02035E90 + b _020361E6 +_02035E90: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02035E9C: ; jump table (using 16-bit offset) + .short _020361E6 - _02035E9C - 2; case 0 + .short _02035ECC - _02035E9C - 2; case 1 + .short _020361E6 - _02035E9C - 2; case 2 + .short _020360EA - _02035E9C - 2; case 3 + .short _02035F4A - _02035E9C - 2; case 4 + .short _02035FD0 - _02035E9C - 2; case 5 + .short _02036056 - _02035E9C - 2; case 6 + .short _020360AC - _02035E9C - 2; case 7 + .short _02036144 - _02035E9C - 2; case 8 + .short _02036170 - _02035E9C - 2; case 9 + .short _020361CA - _02035E9C - 2; case 10 + .short _020361A4 - _02035E9C - 2; case 11 + .short _020361A4 - _02035E9C - 2; case 12 + .short _020361A4 - _02035E9C - 2; case 13 + .short _020361A4 - _02035E9C - 2; case 14 + .short _020361A4 - _02035E9C - 2; case 15 + .short _020361A4 - _02035E9C - 2; case 16 + .short _020361A4 - _02035E9C - 2; case 17 + .short _020361A4 - _02035E9C - 2; case 18 + .short _020361A4 - _02035E9C - 2; case 19 + .short _020361A4 - _02035E9C - 2; case 20 + .short _020361A4 - _02035E9C - 2; case 21 + .short _020361A4 - _02035E9C - 2; case 22 + .short _020361A4 - _02035E9C - 2; case 23 +_02035ECC: + mov r0, #0xb + mov r1, #0x30 + bl FUN_02016998 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r7, #0x0] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r7, #0x4] + mov r0, #0x1 + strb r0, [r7, #0x11] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x14] + ldr r0, [r7, #0x0] + bl FUN_0206B9AC + strb r0, [r7, #0x13] + mov r0, #0x0 + strh r0, [r7, #0x18] + strb r0, [r7, #0x12] + ldr r0, [r5, #0xc] + bl FUN_0202A918 + str r0, [r7, #0x20] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r7, #0x1c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r7, #0x2c] + mov r0, #0x0 + str r0, [r7, #0x28] + ldr r1, _0203626C ; =0x020F2A9C + add r0, r7, #0x0 + bl FUN_0207B000 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl FUN_0207C2A4 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_0203796C + mov r0, #0x7e + lsl r0, r0, #0x2 + str r7, [r4, r0] + ldr r1, _02036270 ; =FUN_0203684C + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02035F4A: + mov r0, #0xb + mov r1, #0x30 + bl FUN_02016998 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r7, #0x0] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r7, #0x4] + mov r1, #0x1 + add r0, r6, #0x0 + strb r1, [r7, #0x11] + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x14] + strb r1, [r7, #0x13] + ldrh r0, [r6, #0x26] + strh r0, [r7, #0x18] + mov r0, #0x2 + strb r0, [r7, #0x12] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r7, #0x1c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r7, #0x2c] + mov r0, #0x0 + str r0, [r7, #0x28] + ldr r1, _02036274 ; =0x020F2A8C + add r0, r7, #0x0 + bl FUN_0207B000 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl FUN_0207C2A4 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_0203796C + mov r0, #0xb + mov r1, #0x4 + bl FUN_02016998 + ldrh r1, [r6, #0x24] + strh r1, [r0, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + sub r0, r1, #0x4 + str r7, [r4, r0] + ldr r1, _02036270 ; =FUN_0203684C + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02035FD0: + mov r0, #0xb + mov r1, #0x30 + bl FUN_02016998 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r7, #0x0] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r7, #0x4] + mov r1, #0x1 + add r0, r6, #0x0 + strb r1, [r7, #0x11] + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x14] + strb r1, [r7, #0x13] + ldrh r0, [r6, #0x26] + strh r0, [r7, #0x18] + mov r0, #0x2 + strb r0, [r7, #0x12] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r7, #0x1c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r7, #0x2c] + mov r0, #0x0 + str r0, [r7, #0x28] + ldr r1, _02036274 ; =0x020F2A8C + add r0, r7, #0x0 + bl FUN_0207B000 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r7, #0x0 + bl FUN_0207C2A4 + add r0, r5, #0x0 + add r1, r7, #0x0 + bl FUN_0203796C + mov r0, #0xb + mov r1, #0x4 + bl FUN_02016998 + mov r1, #0x0 + strh r1, [r0, #0x0] + ldr r1, [r6, #0x34] + strh r1, [r0, #0x2] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + sub r0, r1, #0x4 + str r7, [r4, r0] + ldr r1, _02036270 ; =FUN_0203684C + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02036056: + ldrh r0, [r6, #0x24] + bl FUN_0206EAB8 + add r3, r0, #0x0 + mov r0, #0xb + add r2, r6, #0x0 + str r0, [sp, #0x0] + add r2, #0x22 + ldrb r2, [r2, #0x0] + add r0, r5, #0x0 + mov r1, #0x2 + bl FUN_02037F2C + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, r6, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0xa + ldrh r0, [r6, #0x24] + bne _02036090 + add r2, r6, #0x0 + add r2, #0x22 + ldrb r2, [r2, #0x0] + mov r1, #0x0 + bl FUN_02036BC4 + b _0203609C +_02036090: + add r2, r6, #0x0 + add r2, #0x22 + ldrb r2, [r2, #0x0] + mov r1, #0x1 + bl FUN_02036BC4 +_0203609C: + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036278 ; =FUN_02036BDC + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_020360AC: + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + add r1, r6, #0x0 + add r1, #0x22 + ldrb r1, [r1, #0x0] + bl FUN_0206B9B0 + add r1, r0, #0x0 + add r0, r5, #0x0 + mov r2, #0xb + bl FUN_02037F90 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r2, r6, #0x0 + add r2, #0x22 + ldrh r0, [r6, #0x24] + ldrb r2, [r2, #0x0] + mov r1, #0x2 + bl FUN_02036BC4 + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036278 ; =FUN_02036BDC + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_020360EA: + mov r0, #0xb + mov r1, #0x4 + bl FUN_02016998 + add r1, r6, #0x0 + add r1, #0x22 + ldrb r1, [r1, #0x0] + str r1, [r0, #0x0] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r5, #0xc] + bl FUN_0206F158 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + ldr r1, _0203627C ; =0x020F2A90 + add r0, r7, #0x0 + mov r2, #0xb + bl FUN_0206EFEC + mov r1, #0x7e + lsl r1, r1, #0x2 + add r3, r5, #0x0 + str r0, [r4, r1] + add r3, #0x94 + ldr r0, [r4, r1] + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x0] + mov r2, #0x1 + bl FUN_0206E314 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl FUN_0203781C + ldr r1, _02036280 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02036144: + mov r0, #0xb + mov r1, #0xc + bl FUN_02016998 + ldrh r1, [r6, #0x24] + strh r1, [r0, #0x2] + mov r1, #0x3 + strb r1, [r0, #0x1] + add r1, r6, #0x0 + add r1, #0x22 + ldrb r1, [r1, #0x0] + strb r1, [r0, #0x0] + ldrh r1, [r6, #0x38] + strh r1, [r0, #0x4] + ldr r1, [r6, #0x3c] + str r1, [r0, #0x8] + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + mov r0, #0x6 + strh r0, [r4, #0x2a] + b _0203625E +_02036170: + mov r0, #0xb + mov r1, #0xc + bl FUN_02016998 + add r7, r0, #0x0 + ldr r0, [r5, #0x1c] + ldr r0, [r0, #0x0] + bl FUN_02034A04 + strh r0, [r7, #0x2] + mov r0, #0x0 + strb r0, [r7, #0x1] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + strb r0, [r7, #0x0] + ldrh r0, [r6, #0x38] + strh r0, [r7, #0x4] + ldr r0, [r6, #0x3c] + str r0, [r7, #0x8] + mov r0, #0x7e + lsl r0, r0, #0x2 + str r7, [r4, r0] + mov r0, #0x6 + strh r0, [r4, #0x2a] + b _0203625E +_020361A4: + sub r0, #0xb + add r1, sp, #0x4 + strh r0, [r1, #0x6] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r0, [r0, #0x0] + strh r0, [r1, #0x4] + str r7, [sp, #0x4] + ldrh r1, [r1, #0x6] + mov r0, #0x0 + bl FUN_02063948 + mov r1, #0x7a + lsl r1, r1, #0x2 + add r2, r0, #0x0 + add r0, sp, #0x4 + add r1, r4, r1 + blx r2 + b _0203625E +_020361CA: + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036280 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_020361E6: + add r0, r6, #0x0 + add r0, #0x20 + ldrb r0, [r0, #0x0] + cmp r0, #0x5 + beq _02036200 + cmp r0, #0x6 + beq _02036200 + cmp r0, #0x7 + beq _02036200 + cmp r0, #0x10 + beq _02036200 + cmp r0, #0x8 + bne _02036234 +_02036200: + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r2, #0x7e + lsl r2, r2, #0x2 + str r0, [r4, r2] + add r0, r6, #0x0 + add r0, #0x22 + ldrb r1, [r0, #0x0] + ldr r0, [r4, r2] + cmp r1, #0x6 + blo _02036226 + mov r1, #0x0 + bl FUN_0206E358 + b _0203622A +_02036226: + bl FUN_0206E358 +_0203622A: + ldr r1, _02036280 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02036234: + cmp r0, #0x9 + bne _02036254 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036280 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203625E +_02036254: + add r0, r5, #0x0 + bl FUN_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] +_0203625E: + add r0, r6, #0x0 + bl FUN_02016A18 + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + nop +_0203626C: .word 0x020F2A9C +_02036270: .word FUN_0203684C +_02036274: .word 0x020F2A8C +_02036278: .word FUN_02036BDC +_0203627C: .word 0x020F2A90 +_02036280: .word FUN_020362E4 + + thumb_func_start FUN_02036284 +FUN_02036284: ; 0x02036284 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _020362A4 ; =FUN_020362A8 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_020362A4: .word FUN_020362A8 + + thumb_func_start FUN_020362A8 +FUN_020362A8: ; 0x020362A8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x0 + bl FUN_0206E358 + mov r0, #0x72 + ldr r1, _020362E0 ; =FUN_020362E4 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020362E0: .word FUN_020362E4 + + thumb_func_start FUN_020362E4 +FUN_020362E4: ; 0x020362E4 + push {r3-r7, lr} + sub sp, #0x18 + add r5, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0xb + bl FUN_0206E2F0 + str r0, [sp, #0x8] + bl FUN_0206E308 + mov r1, #0x7e + lsl r1, r1, #0x2 + add r2, r0, #0x0 + ldr r0, [sp, #0x8] + ldr r1, [r4, r1] + bl memcpy + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, [sp, #0x8] + bl FUN_0206E384 + cmp r0, #0x5 + bls _02036328 + b _020364EE +_02036328: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02036334: ; jump table (using 16-bit offset) + .short _02036340 - _02036334 - 2; case 0 + .short _0203637A - _02036334 - 2; case 1 + .short _0203638A - _02036334 - 2; case 2 + .short _020364EE - _02036334 - 2; case 3 + .short _020363F6 - _02036334 - 2; case 4 + .short _020364EE - _02036334 - 2; case 5 +_02036340: + ldr r0, [sp, #0x8] + bl FUN_0206E37C + add r1, sp, #0x10 + strh r0, [r1, #0x4] + ldr r0, [sp, #0x8] + bl FUN_0206E38C + add r1, sp, #0x10 + strb r0, [r1, #0x6] + str r5, [sp, #0x10] + ldrh r0, [r1, #0x4] + mov r1, #0x6 + mov r2, #0xb + bl FUN_0206E7B8 + add r1, r0, #0x0 + lsl r1, r1, #0x10 + mov r0, #0x0 + lsr r1, r1, #0x10 + bl FUN_0205CE48 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r2, r0, #0x0 + add r0, sp, #0x10 + add r1, r4, r1 + blx r2 + b _020364F8 +_0203637A: + ldr r0, [sp, #0x8] + bl FUN_0206E37C + add r1, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0203695C + b _020364F8 +_0203638A: + mov r0, #0xb + mov r1, #0x40 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r5, r0, #0x0 + bl memset + ldr r0, [r6, #0xc] + bl FUN_0206BB1C + str r0, [r5, #0x0] + ldr r0, [r6, #0xc] + bl FUN_0206F158 + str r0, [r5, #0x4] + ldr r0, [r6, #0xc] + bl FUN_02025838 + str r0, [r5, #0x8] + ldr r0, [r6, #0xc] + bl LoadPlayerDataAddress + str r0, [r5, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r4, r0 + str r0, [r5, #0x18] + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x9 + add r0, #0x20 + strb r1, [r0, #0x0] + ldr r0, [sp, #0x8] + bl FUN_0206E37C + strh r0, [r5, #0x24] + ldr r1, _02036504 ; =0x020F96DC + add r0, r6, #0x0 + add r2, r5, #0x0 + bl FUN_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r5, [r4, r0] + ldr r1, _02036508 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _020364F8 +_020363F6: + ldr r0, [r6, #0xc] + bl FUN_0206BB1C + str r0, [sp, #0x4] + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + ldr r7, [r0, #0x0] + ldr r0, [sp, #0x8] + bl FUN_0206E37C + add r5, r0, #0x0 + ldr r0, [sp, #0x4] + add r1, r7, #0x0 + bl FUN_0206B9B0 + str r0, [sp, #0xc] + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r5, #0x0 + bl FUN_0206EA98 + cmp r0, #0x1 + bne _02036474 + ldr r0, [sp, #0xc] + mov r1, #0x6 + mov r2, #0x0 + bl FUN_020671BC + cmp r0, #0x0 + bne _02036474 + add r0, r5, #0x0 + bl FUN_0206EAB8 + add r3, r0, #0x0 + mov r0, #0xb + lsl r2, r7, #0x18 + str r0, [sp, #0x0] + add r0, r6, #0x0 + mov r1, #0x2 + lsr r2, r2, #0x18 + bl FUN_02037F2C + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + lsl r2, r7, #0x18 + add r0, r5, #0x0 + mov r1, #0x0 + lsr r2, r2, #0x18 + bl FUN_02036BC4 + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _0203650C ; =FUN_02036BDC + add r0, r4, #0x0 + bl FUN_02035D04 + b _020364F8 +_02036474: + mov r0, #0xb + mov r1, #0x40 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r5, r0, #0x0 + bl memset + ldr r0, [sp, #0x4] + str r0, [r5, #0x0] + ldr r0, [r6, #0xc] + bl FUN_0206F158 + str r0, [r5, #0x4] + ldr r0, [r6, #0xc] + bl FUN_02025838 + str r0, [r5, #0x8] + ldr r0, [r6, #0xc] + bl LoadPlayerDataAddress + str r0, [r5, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r4, r0 + str r0, [r5, #0x18] + add r0, r5, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + ldr r0, [sp, #0x8] + bl FUN_0206E37C + strh r0, [r5, #0x24] + add r0, r5, #0x0 + add r0, #0x22 + strb r7, [r0, #0x0] + str r6, [r5, #0x1c] + ldrh r0, [r5, #0x24] + cmp r0, #0x0 + bne _020364CC + mov r1, #0x0 + b _020364CE +_020364CC: + mov r1, #0xa +_020364CE: + add r0, r5, #0x0 + add r0, #0x20 + strb r1, [r0, #0x0] + ldr r1, _02036504 ; =0x020F96DC + add r0, r6, #0x0 + add r2, r5, #0x0 + bl FUN_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r5, [r4, r0] + ldr r1, _02036508 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _020364F8 +_020364EE: + add r0, r6, #0x0 + bl FUN_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] +_020364F8: + ldr r0, [sp, #0x8] + bl FUN_02016A18 + mov r0, #0x0 + add sp, #0x18 + pop {r3-r7, pc} + .balign 4 +_02036504: .word 0x020F96DC +_02036508: .word FUN_02035E50 +_0203650C: .word FUN_02036BDC + + thumb_func_start FUN_02036510 +FUN_02036510: ; 0x02036510 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _02036530 ; =FUN_02036534 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02036530: .word FUN_02036534 + + thumb_func_start FUN_02036534 +FUN_02036534: ; 0x02036534 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0xb + bl FUN_02065054 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + str r5, [sp, #0x0] + ldr r0, [r4, r1] + mov r2, #0x0 + str r0, [sp, #0x4] + mov r0, #0x1 + add r1, r0, #0x0 + mov r3, #0xff + bl FUN_02064E90 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl FUN_02038680 + mov r0, #0x72 + ldr r1, _02036580 ; =FUN_02036584 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02036580: .word FUN_02036584 + + thumb_func_start FUN_02036584 +FUN_02036584: ; 0x02036584 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x7e + add r4, r0, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl FUN_02065314 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02065070 + add r0, r5, #0x0 + bl FUN_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020365BC +FUN_020365BC: ; 0x020365BC + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + bl FUN_02035718 + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_0200CCF8 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + add r0, r4, #0x0 + bl FUN_02019178 + add r0, r5, #0x0 + bl FUN_020358A0 + mov r0, #0x4 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020365F0 +FUN_020365F0: ; 0x020365F0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02046528 + ldr r0, [r0, #0xc] + bl FUN_0202280C + cmp r0, #0x0 + beq _02036618 + mov r2, #0x0 + ldr r1, _0203663C ; =0x000007F2 + add r0, r5, #0x0 + add r3, r2, #0x0 + bl FUN_02038CD8 + b _02036636 +_02036618: + mov r0, #0x20 + mov r1, #0x8 + bl FUN_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r3, [r4, r1] + mov r2, #0x0 + strh r2, [r3, #0x4] + ldr r1, _02036640 ; =0x000007D5 + add r0, r5, #0x0 + add r3, r3, #0x4 + bl FUN_02038CD8 +_02036636: + mov r0, #0x5 + strh r0, [r4, #0x2a] + pop {r3-r5, pc} + .balign 4 +_0203663C: .word 0x000007F2 +_02036640: .word 0x000007D5 + + thumb_func_start FUN_02036644 +FUN_02036644: ; 0x02036644 + push {r4-r6, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r4, r0] + ldr r0, [r6, #0xc] + bl FUN_0202280C + cmp r0, #0x0 + beq _0203666C + mov r0, #0x0 + strh r0, [r4, #0x2a] + pop {r4-r6, pc} +_0203666C: + ldrh r0, [r5, #0x4] + cmp r0, #0x0 + bne _02036676 + mov r0, #0x0 + b _02036678 +_02036676: + mov r0, #0xf +_02036678: + strh r0, [r4, #0x2a] + add r0, r5, #0x0 + bl FUN_02016A18 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02036684 +FUN_02036684: ; 0x02036684 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _020366A4 ; =FUN_020366A8 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_020366A4: .word FUN_020366A8 + + thumb_func_start FUN_020366A8 +FUN_020366A8: ; 0x020366A8 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02037EF8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, _020366D0 ; =FUN_020366D4 + sub r1, #0x30 + str r0, [r4, r1] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_020366D0: .word FUN_020366D4 + + thumb_func_start FUN_020366D4 +FUN_020366D4: ; 0x020366D4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r5, #0x0 + bl FUN_0204649C + mov r0, #0xc + strh r0, [r4, #0x2a] + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02036700 +FUN_02036700: ; 0x02036700 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x0 + bl MOD05_021D7CA4 + mov r0, #0x72 + ldr r1, _02036720 ; =FUN_02036724 + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x2 + strh r0, [r4, #0x2a] + mov r0, #0x1 + pop {r4, pc} + nop +_02036720: .word FUN_02036724 + + thumb_func_start FUN_02036724 +FUN_02036724: ; 0x02036724 + push {r3-r5, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + ldr r2, [r5, #0xc] + mov r0, #0x2 + mov r1, #0x0 + mov r3, #0xb + bl FUN_02085338 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + add r0, sp, #0x0 + mov r1, #0x4 + bl FUN_0201373C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + add r1, sp, #0x0 + bl FUN_020853BC + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + add r0, r5, #0x0 + bl FUN_02037E80 + mov r0, #0x72 + ldr r1, _02036778 ; =FUN_0203677C + lsl r0, r0, #0x2 + str r1, [r4, r0] + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 +_02036778: .word FUN_0203677C + + thumb_func_start FUN_0203677C +FUN_0203677C: ; 0x0203677C + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl FUN_020853E4 + cmp r0, #0x0 + bne _020367C6 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + add r1, sp, #0x0 + bl FUN_020853FC + bl FUN_0202EDF8 + cmp r0, #0x0 + beq _020367C0 + add r0, sp, #0x0 + bl FUN_02052DE8 + ldr r0, [r4, #0x78] + add r1, sp, #0x0 + bl FUN_02052CD8 +_020367C0: + mov r0, #0x8 + strh r0, [r5, #0x2a] + b _020367CA +_020367C6: + mov r0, #0xc + strh r0, [r5, #0x2a] +_020367CA: + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r5, r0] + bl FUN_020853A8 + add r0, r4, #0x0 + bl FUN_0204649C + ldr r0, [r4, #0x7c] + bl FUN_02052F74 + mov r0, #0x0 + add sp, #0x8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020367E8 +FUN_020367E8: ; 0x020367E8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + bl FUN_02035718 + add r0, r4, #0x0 + mov r1, #0x1 + bl FUN_0200CCF8 + ldrb r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl FUN_0201AC68 + add r0, r4, #0x0 + bl FUN_02019178 + add r0, r5, #0x0 + bl FUN_020358A0 + ldr r0, [r6, #0xc] + bl FUN_020462AC + bl FUN_0205F214 + cmp r0, #0x1 + bne _02036834 + ldr r1, _02036848 ; =0x00002275 + add r0, r5, #0x0 + mov r2, #0x0 + bl FUN_02038D10 + b _0203683E +_02036834: + add r0, r5, #0x0 + mov r1, #0x4 + mov r2, #0x0 + bl FUN_02038D10 +_0203683E: + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x0 + pop {r4-r6, pc} + .balign 4 +_02036848: .word 0x00002275 + + thumb_func_start FUN_0203684C +FUN_0203684C: ; 0x0203684C + push {r3-r7, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x30 + add r7, r0, #0x0 + bl memcpy + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldrb r0, [r7, #0x12] + cmp r0, #0x2 + bne _0203692E + mov r0, #0xb + mov r1, #0x40 + bl FUN_02016998 + mov r1, #0x7f + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r2, #0x40 + str r1, [sp, #0x0] + mov r1, #0x0 + add r5, r0, #0x0 + bl memset + ldr r0, [r6, #0xc] + bl FUN_0206BB1C + str r0, [r5, #0x0] + ldr r0, [r6, #0xc] + bl FUN_0206F158 + str r0, [r5, #0x4] + ldr r0, [r6, #0xc] + bl FUN_02025838 + str r0, [r5, #0x8] + ldr r0, [r6, #0xc] + bl LoadPlayerDataAddress + str r0, [r5, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r4, r0 + add r1, r5, #0x0 + str r0, [r5, #0x18] + mov r0, #0x0 + add r1, #0x21 + strb r0, [r1, #0x0] + ldr r1, [sp, #0x0] + str r6, [r5, #0x1c] + ldrh r1, [r1, #0x0] + cmp r1, #0x0 + beq _020368E2 + add r1, r5, #0x0 + mov r2, #0x7 + add r1, #0x20 + strb r2, [r1, #0x0] + b _020368EE +_020368E2: + add r0, r5, #0x0 + mov r1, #0x8 + add r0, #0x20 + strb r1, [r0, #0x0] + ldr r0, [sp, #0x0] + ldrh r0, [r0, #0x2] +_020368EE: + str r0, [r5, #0x34] + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldrh r0, [r0, #0x0] + strh r0, [r5, #0x24] + add r0, r5, #0x0 + ldrb r1, [r7, #0x14] + add r0, #0x22 + strb r1, [r0, #0x0] + ldrh r0, [r7, #0x18] + strh r0, [r5, #0x26] + add r0, r5, #0x0 + ldrb r1, [r7, #0x16] + add r0, #0x28 + strb r1, [r0, #0x0] + ldr r1, _02036954 ; =0x020F96DC + add r0, r6, #0x0 + bl FUN_020373D4 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r5, [r4, r0] + ldr r1, _02036958 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _0203694A +_0203692E: + mov r1, #0x7a + lsl r1, r1, #0x2 + ldrb r2, [r7, #0x14] + add r0, r6, #0x0 + add r1, r4, r1 + bl FUN_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036958 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 +_0203694A: + add r0, r7, #0x0 + bl FUN_02016A18 + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02036954: .word 0x020F96DC +_02036958: .word FUN_02035E50 + + thumb_func_start FUN_0203695C +FUN_0203695C: ; 0x0203695C + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02046528 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl FUN_0204652C + add r6, r0, #0x0 + mov r0, #0xb + bl FUN_020851B8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r6, r1] + ldr r0, [sp, #0x4] + ldr r0, [r0, #0xc] + bl FUN_0206F158 + str r0, [sp, #0x0] + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r4, #0x0 + mov r2, #0x1 + bl FUN_020851DC + mov r5, #0x0 + add r4, r5, #0x0 +_0203699A: + add r0, r4, #0x0 + bl FUN_0206EB1C + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + add r1, r7, #0x0 + mov r2, #0x1 + mov r3, #0xb + bl FUN_0206EE50 + cmp r0, #0x1 + bne _020369C6 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + add r1, r7, #0x0 + mov r2, #0x0 + bl FUN_020851DC + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +_020369C6: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x40 + blo _0203699A + ldr r0, [sp, #0x4] + add r3, sp, #0x8 + add r0, #0x94 + ldr r0, [r0, #0x0] + mov r1, #0x4 + add r2, sp, #0x8 + add r3, #0x1 + bl FUN_0206F17C + mov r0, #0x7e + add r2, sp, #0x8 + lsl r0, r0, #0x2 + ldrb r1, [r2, #0x1] + add r3, r5, #0x3 + lsl r3, r3, #0x18 + ldrb r2, [r2, #0x0] + ldr r0, [r6, r0] + lsr r3, r3, #0x18 + bl FUN_020851F8 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r0, [sp, #0x4] + ldr r1, [r6, r1] + bl FUN_0203791C + ldr r1, _02036A10 ; =FUN_02036A14 + add r0, r6, #0x0 + bl FUN_02035D04 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 +_02036A10: .word FUN_02036A14 + + thumb_func_start FUN_02036A14 +FUN_02036A14: ; 0x02036A14 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + add r1, sp, #0x0 + ldr r0, [r4, r0] + add r1, #0x1 + add r2, sp, #0x0 + bl FUN_0208524C + add r0, r5, #0x0 + add r3, sp, #0x0 + add r0, #0x94 + ldrb r2, [r3, #0x0] + ldrb r3, [r3, #0x1] + ldr r0, [r0, #0x0] + mov r1, #0x4 + bl FUN_0206F190 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl FUN_02016A8C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036A74 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02036A74: .word FUN_020362E4 + + thumb_func_start FUN_02036A78 +FUN_02036A78: ; 0x02036A78 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x7e + add r4, r0, #0x0 + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl FUN_02016A8C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036AB4 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036AB4: .word FUN_020362E4 + + thumb_func_start FUN_02036AB8 +FUN_02036AB8: ; 0x02036AB8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r1, [r4, r0] + mov r0, #0xb + ldr r7, [r1, #0x0] + bl FUN_02016A8C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r4, r0] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + bne _02036B0E + mov r0, #0xb + add r1, r5, #0x0 + bl FUN_02016A8C + mov r1, #0x7a + lsl r1, r1, #0x2 + lsl r2, r7, #0x18 + add r0, r6, #0x0 + add r1, r4, r1 + lsr r2, r2, #0x18 + bl FUN_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036B88 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _02036B82 +_02036B0E: + ldr r0, [r6, #0xc] + bl FUN_0206BB1C + add r1, r7, #0x0 + bl FUN_0206B9B0 + add r2, r0, #0x0 + ldr r0, [r5, #0x14] + add r1, r6, #0x0 + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r0, [r5, #0x18] + lsl r0, r0, #0x5 + add r0, #0x10 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0x4] + ldr r3, [r5, #0x1c] + mov r0, #0xb + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + bl FUN_02063888 + ldr r1, [r5, #0x1c] + add r7, r0, #0x0 + lsl r1, r1, #0x10 + mov r0, #0x1 + lsr r1, r1, #0x10 + mov r2, #0xb + bl FUN_0202914C + add r1, r0, #0x0 + add r0, r6, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + mov r2, #0x1 + bl FUN_02028AD4 + mov r1, #0x7e + lsl r1, r1, #0x2 + ldr r1, [r4, r1] + mov r0, #0xb + bl FUN_02016A8C + add r0, r6, #0x0 + bl FUN_0204649C + mov r0, #0x72 + ldr r1, _02036B8C ; =FUN_020638BC + lsl r0, r0, #0x2 + str r1, [r4, r0] + add r0, #0x30 + str r7, [r4, r0] + mov r0, #0xa + strh r0, [r4, #0x2a] +_02036B82: + mov r0, #0x0 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02036B88: .word FUN_02035E50 +_02036B8C: .word FUN_020638BC + + thumb_func_start FUN_02036B90 +FUN_02036B90: ; 0x02036B90 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036BC0 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036BC0: .word FUN_020362E4 + + thumb_func_start FUN_02036BC4 +FUN_02036BC4: ; 0x02036BC4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0xb + mov r1, #0x4 + add r6, r2, #0x0 + bl FUN_02016998 + strh r5, [r0, #0x0] + strb r6, [r0, #0x2] + strb r4, [r0, #0x3] + pop {r4-r6, pc} + + thumb_func_start FUN_02036BDC +FUN_02036BDC: ; 0x02036BDC + push {r4-r6, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r6, [r4, r0] + ldrb r1, [r6, #0x3] + cmp r1, #0x3 + bhi _02036CD4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02036C06: ; jump table (using 16-bit offset) + .short _02036C58 - _02036C06 - 2; case 0 + .short _02036C98 - _02036C06 - 2; case 1 + .short _02036C32 - _02036C06 - 2; case 2 + .short _02036C0E - _02036C06 - 2; case 3 +_02036C0E: + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_0208562C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036CE4 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + b _02036CD4 +_02036C32: + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_0208562C + mov r1, #0x7a + lsl r1, r1, #0x2 + ldrb r2, [r6, #0x2] + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036CE8 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _02036CD4 +_02036C58: + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_020855E4 + cmp r0, #0x1 + bne _02036C70 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0xc + bl FUN_02036CEC + b _02036CD4 +_02036C70: + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_0208562C + mov r1, #0x7a + lsl r1, r1, #0x2 + ldrb r2, [r6, #0x2] + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_020379C8 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036CE8 ; =FUN_02035E50 + add r0, r4, #0x0 + bl FUN_02035D04 + b _02036CD4 +_02036C98: + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_020855E4 + cmp r0, #0x1 + bne _02036CB0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0xb + bl FUN_02036CEC + b _02036CD4 +_02036CB0: + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_0208562C + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036CE4 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 +_02036CD4: + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02036CE4: .word FUN_020362E4 +_02036CE8: .word FUN_02035E50 + + thumb_func_start FUN_02036CEC +FUN_02036CEC: ; 0x02036CEC + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x7f + add r6, r1, #0x0 + str r2, [sp, #0x0] + lsl r0, r0, #0x2 + ldr r7, [r6, r0] + mov r0, #0xb + mov r1, #0x40 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x40 + add r4, r0, #0x0 + bl memset + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl FUN_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0xc] + mov r0, #0x7a + lsl r0, r0, #0x2 + add r0, r6, r0 + str r0, [r4, #0x18] + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x21 + strb r1, [r0, #0x0] + ldrh r0, [r7, #0x0] + strh r0, [r4, #0x24] + add r0, r4, #0x0 + ldrb r1, [r7, #0x2] + add r0, #0x22 + strb r1, [r0, #0x0] + add r1, r4, #0x0 + ldr r0, [sp, #0x0] + add r1, #0x20 + strb r0, [r1, #0x0] + str r5, [r4, #0x1c] + ldrb r1, [r7, #0x2] + ldr r0, [r4, #0x0] + bl FUN_0206B9B0 + add r1, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl FUN_0208560C + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r6, r0] + bl FUN_0208562C + ldr r1, _02036D8C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + ldr r1, _02036D90 ; =FUN_02035E50 + add r0, r6, #0x0 + bl FUN_02035D04 + pop {r3-r7, pc} + nop +_02036D8C: .word 0x020F96DC +_02036D90: .word FUN_02035E50 + + thumb_func_start FUN_02036D94 +FUN_02036D94: ; 0x02036D94 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02087E14 + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036DD0 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + nop +_02036DD0: .word FUN_020362E4 + + thumb_func_start FUN_02036DD4 +FUN_02036DD4: ; 0x02036DD4 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + mov r1, #0x73 + add r4, r0, #0x0 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r1, _02036E04 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 + mov r0, #0x0 + pop {r3-r5, pc} + .balign 4 +_02036E04: .word FUN_020362E4 + + thumb_func_start FUN_02036E08 +FUN_02036E08: ; 0x02036E08 + push {r3-r7, lr} + sub sp, #0x48 + add r5, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r6, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r5, [r6, r0] + bl FUN_0200541C + mov r0, #0x3 + mov r1, #0x49 + lsl r2, r0, #0x10 + bl FUN_0201681C + ldr r0, [r4, #0xc] + bl FUN_0206BB1C + ldrb r1, [r5, #0x0] + str r0, [sp, #0x20] + bl FUN_0206B9B0 + str r0, [sp, #0x24] + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + ldr r0, [r4, #0xc] + bne _02036E9E + bl LoadPlayerDataAddress + str r0, [sp, #0x28] + ldr r0, [r4, #0xc] + bl FUN_02079C70 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02024DA0 + str r0, [sp, #0x2c] + ldr r0, [r4, #0xc] + bl FUN_0206F158 + str r0, [sp, #0x30] + ldr r0, [r4, #0xc] + bl FUN_02029FC8 + str r0, [sp, #0x34] + ldr r0, [r4, #0xc] + bl FUN_0204C1A8 + ldr r1, [sp, #0x2c] + str r7, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x30] + ldr r3, [sp, #0x28] + str r1, [sp, #0x8] + ldr r1, [sp, #0x34] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x8] + ldr r1, [sp, #0x24] + str r0, [sp, #0x14] + mov r0, #0x1 + str r0, [sp, #0x18] + mov r0, #0x49 + str r0, [sp, #0x1c] + ldrh r2, [r5, #0x4] + ldr r0, [sp, #0x20] + bl FUN_0206C700 + b _02036EF2 +_02036E9E: + bl LoadPlayerDataAddress + str r0, [sp, #0x38] + ldr r0, [r4, #0xc] + bl FUN_02079C70 + add r7, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02024DA0 + str r0, [sp, #0x3c] + ldr r0, [r4, #0xc] + bl FUN_0206F158 + str r0, [sp, #0x40] + ldr r0, [r4, #0xc] + bl FUN_02029FC8 + str r0, [sp, #0x44] + ldr r0, [r4, #0xc] + bl FUN_0204C1A8 + ldr r1, [sp, #0x3c] + str r7, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x40] + ldr r3, [sp, #0x38] + str r1, [sp, #0x8] + ldr r1, [sp, #0x44] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x8] + ldr r1, [sp, #0x24] + str r0, [sp, #0x14] + mov r0, #0x0 + str r0, [sp, #0x18] + mov r0, #0x49 + str r0, [sp, #0x1c] + ldrh r2, [r5, #0x4] + ldr r0, [sp, #0x20] + bl FUN_0206C700 +_02036EF2: + add r4, r0, #0x0 + mov r0, #0xb + mov r1, #0x4 + bl FUN_02016998 + ldrb r1, [r5, #0x0] + str r1, [r0, #0x0] + mov r1, #0x7f + lsl r1, r1, #0x2 + str r0, [r6, r1] + sub r0, r1, #0x4 + ldr r0, [r6, r0] + bl FUN_02016A18 + mov r0, #0x7e + lsl r0, r0, #0x2 + str r4, [r6, r0] + mov r0, #0x7 + strh r0, [r6, #0x2a] + add sp, #0x48 + pop {r3-r7, pc} + + thumb_func_start FUN_02036F1C +FUN_02036F1C: ; 0x02036F1C + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_0206C91C + cmp r0, #0x1 + bne _02036F98 + mov r0, #0x7e + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_0206C92C + mov r0, #0x49 + bl FUN_020168D0 + ldr r0, _02036F9C ; =0x00000475 + mov r1, #0x0 + bl FUN_02005350 + mov r0, #0x0 + bl FUN_0200415C + ldr r1, [r5, #0x1c] + add r0, r5, #0x0 + ldr r1, [r1, #0x0] + bl FUN_0204ADBC + mov r1, #0x73 + lsl r1, r1, #0x2 + add r0, r5, #0x0 + add r1, r4, r1 + bl FUN_02037844 + mov r1, #0x7e + lsl r1, r1, #0x2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #0x4 + ldr r1, [r4, r1] + ldr r1, [r1, #0x0] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0206E358 + mov r0, #0x7f + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r1, _02036FA0 ; =FUN_020362E4 + add r0, r4, #0x0 + bl FUN_02035D04 +_02036F98: + pop {r3-r5, pc} + nop +_02036F9C: .word 0x00000475 +_02036FA0: .word FUN_020362E4 + + thumb_func_start FUN_02036FA4 +FUN_02036FA4: ; 0x02036FA4 + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, [r6, #0x38] + add r4, r1, #0x0 + add r5, r2, #0x0 + bl FUN_020552F8 + add r7, r0, #0x0 + ldr r0, [r6, #0x38] + bl FUN_02055320 + str r0, [r4, #0x0] + ldr r0, [r6, #0x38] + bl FUN_0205532C + str r0, [r5, #0x0] + cmp r7, #0x3 + bhi _02036FFA + add r0, r7, r7 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02036FD4: ; jump table (using 16-bit offset) + .short _02036FDC - _02036FD4 - 2; case 0 + .short _02036FE4 - _02036FD4 - 2; case 1 + .short _02036FEC - _02036FD4 - 2; case 2 + .short _02036FF4 - _02036FD4 - 2; case 3 +_02036FDC: + ldr r0, [r5, #0x0] + sub r0, r0, #0x1 + str r0, [r5, #0x0] + b _02036FFA +_02036FE4: + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _02036FFA +_02036FEC: + ldr r0, [r4, #0x0] + sub r0, r0, #0x1 + str r0, [r4, #0x0] + b _02036FFA +_02036FF4: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] +_02036FFA: + add r0, r7, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02037000 +FUN_02037000: ; 0x02037000 + push {r3-r5, lr} + add r5, r1, #0x0 + bl FUN_020553A0 + bl FUN_02058BE4 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02058BE4 + cmp r4, r0 + bne _0203701C + mov r0, #0x1 + b _0203701E +_0203701C: + mov r0, #0x0 +_0203701E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3-r5, pc} + + thumb_func_start FUN_02037024 +FUN_02037024: ; 0x02037024 + push {r4-r6, lr} + sub sp, #0x8 + add r6, r1, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + add r5, r0, #0x0 + bl FUN_02036FA4 + add r4, r0, #0x0 + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + add r0, r5, #0x0 + bl FUN_0204A6E0 + bl FUN_020547A4 + cmp r0, #0x1 + bne _0203707E + cmp r4, #0x3 + bhi _0203707E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02037058: ; jump table (using 16-bit offset) + .short _02037060 - _02037058 - 2; case 0 + .short _02037068 - _02037058 - 2; case 1 + .short _02037070 - _02037058 - 2; case 2 + .short _02037078 - _02037058 - 2; case 3 +_02037060: + ldr r0, [sp, #0x0] + sub r0, r0, #0x1 + str r0, [sp, #0x0] + b _0203707E +_02037068: + ldr r0, [sp, #0x0] + add r0, r0, #0x1 + str r0, [sp, #0x0] + b _0203707E +_02037070: + ldr r0, [sp, #0x4] + sub r0, r0, #0x1 + str r0, [sp, #0x4] + b _0203707E +_02037078: + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] +_0203707E: + ldr r0, [r5, #0x34] + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + bl FUN_02058D74 + str r0, [r6, #0x0] + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02037090 +FUN_02037090: ; 0x02037090 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + bl FUN_02037024 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020370B8 + bl FUN_020588D4 + cmp r0, #0x1 + bne _020370B8 + ldr r0, [r5, #0x38] + ldr r1, [r4, #0x0] + bl FUN_02037000 + cmp r0, #0x1 + bne _020370B8 + mov r0, #0x1 + pop {r3-r5, pc} +_020370B8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_020370BC +FUN_020370BC: ; 0x020370BC + push {r3-r7, lr} + sub sp, #0x10 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r1, sp, #0xc + add r2, sp, #0x8 + add r6, r0, #0x0 + bl FUN_02036FA4 + ldr r0, [sp, #0x4] + mov r7, #0x0 + cmp r0, #0x0 + ble _02037130 + ldr r4, [sp, #0x0] + add r5, r4, #0x0 +_020370DA: + ldr r1, [sp, #0xc] + ldr r0, [r4, #0x4] + cmp r1, r0 + bne _02037124 + ldr r1, [sp, #0x8] + ldr r0, [r4, #0x8] + cmp r1, r0 + bne _02037124 + ldrh r0, [r4, #0x2] + cmp r0, #0x2 + bne _0203710A + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_0203713C + cmp r0, #0x1 + bne _02037124 + mov r0, #0x14 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add sp, #0x10 + ldrh r0, [r0, r1] + pop {r3-r7, pc} +_0203710A: + add r0, r6, #0x0 + add r1, r5, #0x0 + bl FUN_02037168 + cmp r0, #0x1 + bne _02037124 + mov r0, #0x14 + add r1, r7, #0x0 + mul r1, r0 + ldr r0, [sp, #0x0] + add sp, #0x10 + ldrh r0, [r0, r1] + pop {r3-r7, pc} +_02037124: + ldr r0, [sp, #0x4] + add r7, r7, #0x1 + add r4, #0x14 + add r5, #0x14 + cmp r7, r0 + blt _020370DA +_02037130: + ldr r0, _02037138 ; =0x0000FFFF + add sp, #0x10 + pop {r3-r7, pc} + nop +_02037138: .word 0x0000FFFF + + thumb_func_start FUN_0203713C +FUN_0203713C: ; 0x0203713C + push {r4, lr} + add r4, r0, #0x0 + ldrh r0, [r1, #0x2] + cmp r0, #0x2 + beq _0203714A + mov r0, #0x0 + pop {r4, pc} +_0203714A: + ldrh r0, [r1, #0x0] + bl FUN_02039694 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_02039528 + cmp r0, #0x1 + beq _02037160 + mov r0, #0x1 + b _02037162 +_02037160: + mov r0, #0x0 +_02037162: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r4, pc} + + thumb_func_start FUN_02037168 +FUN_02037168: ; 0x02037168 + push {r4, lr} + add r4, r1, #0x0 + ldrh r1, [r4, #0x10] + cmp r1, #0x4 + bne _02037176 + mov r0, #0x1 + pop {r4, pc} +_02037176: + ldr r0, [r0, #0x38] + bl FUN_020552F8 + cmp r0, #0x3 + bhi _020371CC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0203718C: ; jump table (using 16-bit offset) + .short _02037194 - _0203718C - 2; case 0 + .short _020371A2 - _0203718C - 2; case 1 + .short _020371B0 - _0203718C - 2; case 2 + .short _020371BE - _0203718C - 2; case 3 +_02037194: + ldrh r0, [r4, #0x10] + cmp r0, #0x0 + beq _0203719E + cmp r0, #0x6 + bne _020371CC +_0203719E: + mov r0, #0x1 + pop {r4, pc} +_020371A2: + ldrh r0, [r4, #0x10] + cmp r0, #0x3 + beq _020371AC + cmp r0, #0x6 + bne _020371CC +_020371AC: + mov r0, #0x1 + pop {r4, pc} +_020371B0: + ldrh r0, [r4, #0x10] + cmp r0, #0x2 + beq _020371BA + cmp r0, #0x5 + bne _020371CC +_020371BA: + mov r0, #0x1 + pop {r4, pc} +_020371BE: + ldrh r0, [r4, #0x10] + cmp r0, #0x1 + beq _020371C8 + cmp r0, #0x5 + bne _020371CC +_020371C8: + mov r0, #0x1 + pop {r4, pc} +_020371CC: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_020371D0 +FUN_020371D0: ; 0x020371D0 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r6, r1, #0x0 + add r4, r2, #0x0 + bl FUN_020552F8 + cmp r0, #0x0 + beq _020371EA + add sp, #0x8 + ldr r0, _0203722C ; =0x0000FFFF + pop {r4-r6, pc} +_020371EA: + add r0, r5, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x0 + bl FUN_02036FA4 + mov r0, #0x0 + cmp r4, #0x0 + ble _02037224 + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x0] + add r1, r6, #0x0 +_02037200: + ldr r5, [r1, #0x4] + cmp r2, r5 + bne _0203721C + ldr r5, [r1, #0x8] + cmp r3, r5 + bne _0203721C + ldrh r5, [r1, #0x2] + cmp r5, #0x1 + bne _0203721C + mov r1, #0x14 + mul r1, r0 + add sp, #0x8 + ldrh r0, [r6, r1] + pop {r4-r6, pc} +_0203721C: + add r0, r0, #0x1 + add r1, #0x14 + cmp r0, r4 + blt _02037200 +_02037224: + ldr r0, _0203722C ; =0x0000FFFF + add sp, #0x8 + pop {r4-r6, pc} + nop +_0203722C: .word 0x0000FFFF + + thumb_func_start FUN_02037230 +FUN_02037230: ; 0x02037230 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x38] + add r4, r1, #0x0 + bl FUN_020552F8 + cmp r0, #0x0 + beq _02037244 + mov r0, #0x0 + pop {r3-r5, pc} +_02037244: + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02037090 + cmp r0, #0x1 + bne _02037260 + ldr r0, [r4, #0x0] + bl FUN_02058458 + sub r0, #0x5b + cmp r0, #0x5 + bhi _02037260 + mov r0, #0x1 + pop {r3-r5, pc} +_02037260: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02037264 +FUN_02037264: ; 0x02037264 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + ldr r0, [r0, #0x38] + str r1, [sp, #0x4] + str r2, [sp, #0x8] + bl FUN_02055320 + add r6, r0, #0x0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x38] + bl FUN_0205532C + add r4, r0, #0x0 + ldr r0, [sp, #0x8] + mov r7, #0x0 + cmp r0, #0x0 + ble _020372C8 + ldr r5, [sp, #0x4] +_0203728A: + ldrh r1, [r5, #0x2] + cmp r6, r1 + blt _020372BE + ldrh r0, [r5, #0x6] + add r0, r1, r0 + cmp r6, r0 + bge _020372BE + ldrh r1, [r5, #0x4] + cmp r4, r1 + blt _020372BE + ldrh r0, [r5, #0x8] + add r0, r1, r0 + cmp r4, r0 + bge _020372BE + ldrh r1, [r5, #0xe] + ldr r0, [sp, #0x0] + bl FUN_020394F0 + ldrh r1, [r5, #0xc] + cmp r1, r0 + bne _020372BE + ldr r0, [sp, #0x4] + lsl r1, r7, #0x4 + add sp, #0xc + ldrh r0, [r0, r1] + pop {r4-r7, pc} +_020372BE: + ldr r0, [sp, #0x8] + add r7, r7, #0x1 + add r5, #0x10 + cmp r7, r0 + blt _0203728A +_020372C8: + ldr r0, _020372D0 ; =0x0000FFFF + add sp, #0xc + pop {r4-r7, pc} + nop +_020372D0: .word 0x0000FFFF + + thumb_func_start FUN_020372D4 +FUN_020372D4: ; 0x020372D4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0200628C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02037400 + ldr r1, _02037300 ; =0x021C5A08 + str r0, [r1, #0x0] + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _020372F4 + bl FUN_02048FC8 + b _020372F8 +_020372F4: + bl FUN_02048EC8 +_020372F8: + mov r0, #0x0 + str r0, [r4, #0x4] + mov r0, #0x1 + pop {r3-r5, pc} + .balign 4 +_02037300: .word 0x021C5A08 + + thumb_func_start FUN_02037304 +FUN_02037304: ; 0x02037304 + push {r3, lr} + bl FUN_02037400 + ldr r1, _02037318 ; =0x021C5A08 + str r0, [r1, #0x0] + bl FUN_02048D90 + mov r0, #0x1 + pop {r3, pc} + nop +_02037318: .word 0x021C5A08 + + thumb_func_start FUN_0203731C +FUN_0203731C: ; 0x0203731C + push {r3, lr} + bl FUN_02006278 + bl FUN_02037524 + cmp r0, #0x0 + beq _0203732E + mov r0, #0x1 + pop {r3, pc} +_0203732E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02037334 +FUN_02037334: ; 0x02037334 + push {r3, lr} + bl FUN_020374B0 + ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _0203734C ; =0x021DBAB8 + bl FUN_02000E7C + mov r0, #0x1 + pop {r3, pc} + nop +_02037348: .word SDK_OVERLAY_MODULE_63_ID +_0203734C: .word 0x021DBAB8 + + thumb_func_start LoadOverlay_MODULE_05 +LoadOverlay_MODULE_05: ; 0x02037350 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _02037360 + bl ErrorHandling +_02037360: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0203736C + bl ErrorHandling +_0203736C: + ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID + mov r1, #0x2 + bl HandleLoadOverlay + mov r1, #0x0 + str r1, [r4, #0x64] + ldr r0, [r4, #0x0] + mov r2, #0xb + str r1, [r0, #0x8] + ldr r0, _02037390 ; =0x021F64C8 + add r1, r4, #0x0 + bl FUN_02006234 + ldr r1, [r4, #0x0] + str r0, [r1, #0x0] + pop {r4, pc} + .balign 4 +_0203738C: .word SDK_OVERLAY_MODULE_05_ID +_02037390: .word 0x021F64C8 + + thumb_func_start FUN_02037394 +FUN_02037394: ; 0x02037394 + mov r1, #0x0 + str r1, [r0, #0x64] + bx lr + .balign 4 + + thumb_func_start FUN_0203739C +FUN_0203739C: ; 0x0203739C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020373A8 + mov r0, #0x1 + bx lr +_020373A8: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_020373AC +FUN_020373AC: ; 0x020373AC + ldr r1, [r0, #0x0] + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020373BE + ldr r0, [r0, #0x64] + cmp r0, #0x0 + beq _020373BE + mov r0, #0x1 + bx lr +_020373BE: + mov r0, #0x0 + bx lr + .balign 4 + + thumb_func_start FUN_020373C4 +FUN_020373C4: ; 0x020373C4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + beq _020373D0 + mov r0, #0x1 + bx lr +_020373D0: + mov r0, #0x0 + bx lr + + thumb_func_start FUN_020373D4 +FUN_020373D4: ; 0x020373D4 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + add r4, r1, #0x0 + ldr r0, [r0, #0x4] + add r6, r2, #0x0 + cmp r0, #0x0 + beq _020373E8 + bl ErrorHandling +_020373E8: + add r0, r5, #0x0 + bl FUN_02037394 + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r2, #0xb + bl FUN_02006234 + ldr r1, [r5, #0x0] + str r0, [r1, #0x4] + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02037400 +FUN_02037400: ; 0x02037400 + push {r3-r5, lr} + mov r2, #0x7 + add r5, r0, #0x0 + mov r0, #0x3 + mov r1, #0xb + lsl r2, r2, #0xe + bl FUN_0201681C + mov r1, #0x20 + mov r0, #0x3 + lsl r2, r1, #0x9 + bl FUN_0201681C + mov r2, #0x3 + mov r0, #0x0 + mov r1, #0x5b + lsl r2, r2, #0x8 + bl FUN_0201681C + add r0, r5, #0x0 + mov r1, #0xb8 + mov r2, #0xb + bl FUN_02006268 + mov r1, #0x0 + mov r2, #0xb8 + add r4, r0, #0x0 + bl MI_CpuFill8 + mov r0, #0xb + mov r1, #0x10 + bl FUN_02016998 + str r0, [r4, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr r0, [r4, #0x0] + str r1, [r0, #0x4] + ldr r0, [r4, #0x0] + str r1, [r0, #0x8] + ldr r0, [r4, #0x0] + str r1, [r0, #0xc] + add r0, r5, #0x0 + bl FUN_0200628C + ldr r0, [r0, #0x8] + str r0, [r4, #0xc] + mov r0, #0x0 + str r0, [r4, #0x10] + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034DC0 + str r0, [r4, #0x1c] + bl FUN_02034494 + str r0, [r4, #0x28] + add r0, r4, #0x0 + mov r1, #0xb + bl FUN_02034A28 + mov r0, #0xb + bl FUN_0206F164 + add r1, r4, #0x0 + add r1, #0x94 + str r0, [r1, #0x0] + mov r0, #0xb + bl FUN_0205DD18 + add r1, r4, #0x0 + add r1, #0x90 + str r0, [r1, #0x0] + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl FUN_0205DD40 + mov r0, #0xb + bl FUN_0208A300 + add r1, r4, #0x0 + add r1, #0xb0 + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020374B0 +FUN_020374B0: ; 0x020374B0 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02006278 + add r4, r0, #0x0 + ldr r0, [r4, #0x28] + bl FUN_020344D0 + add r0, r4, #0x0 + bl FUN_02034A48 + add r0, r4, #0x0 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl FUN_0205DD38 + add r0, r4, #0x0 + add r0, #0xb0 + ldr r0, [r0, #0x0] + bl FUN_0208A320 + ldr r0, [r4, #0x0] + bl FUN_02016A18 + add r0, r5, #0x0 + bl FUN_0200627C + mov r0, #0x5b + bl FUN_020168D0 + mov r0, #0xb + bl FUN_020168D0 + mov r0, #0x20 + bl FUN_020168D0 + pop {r3-r5, pc} + + thumb_func_start FUN_02037504 +FUN_02037504: ; 0x02037504 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02037520 + bl FUN_02006290 + cmp r0, #0x0 + beq _02037520 + ldr r0, [r4, #0x0] + bl FUN_02006260 + mov r0, #0x0 + str r0, [r4, #0x0] +_02037520: + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02037524 +FUN_02037524: ; 0x02037524 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02037594 + add r0, r4, #0x0 + bl FUN_02046420 + cmp r0, #0x1 + bne _02037546 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _02037546 + mov r1, #0x0 + add r0, r4, #0x0 + add r2, r1, #0x0 + bl MOD05_021EFA9C +_02037546: + ldr r0, [r4, #0x0] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02037562 + bl FUN_02037504 + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0203756E + ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID + bl UnloadOverlayByID + b _0203756E +_02037562: + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _0203756E + add r0, r0, #0x4 + bl FUN_02037504 +_0203756E: + ldr r1, [r4, #0x0] + ldr r0, [r1, #0xc] + cmp r0, #0x0 + beq _0203758C + ldr r0, [r4, #0x10] + cmp r0, #0x0 + bne _0203758C + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _0203758C + ldr r0, [r1, #0x4] + cmp r0, #0x0 + bne _0203758C + mov r0, #0x1 + pop {r4, pc} +_0203758C: + mov r0, #0x0 + pop {r4, pc} + .balign 4 +_02037590: .word SDK_OVERLAY_MODULE_05_ID + + thumb_func_start FUN_02037594 +FUN_02037594: ; 0x02037594 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r1, [r4, #0x0] + mov r5, #0x0 + ldr r1, [r1, #0x8] + cmp r1, #0x0 + bne _020375B4 + ldr r1, [r4, #0x64] + cmp r1, #0x0 + beq _020375B4 + bl FUN_0204646C + cmp r0, #0x0 + bne _020375B4 + mov r5, #0x1 +_020375B4: + cmp r5, #0x0 + beq _020375D4 + ldr r0, [r4, #0x38] + bl FUN_02055A38 + ldr r3, _02037758 ; =0x021C48B8 + add r0, sp, #0x8 + ldr r2, [r3, #0x48] + ldr r3, [r3, #0x44] + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + add r1, r4, #0x0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl MOD05_021D8164 +_020375D4: + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x6c] + ldr r1, [r0, #0x0] + ldr r0, _0203775C ; =0x00000146 + cmp r1, r0 + bne _020375E2 + mov r2, #0x0 +_020375E2: + cmp r2, #0x4 + bhi _020376E2 + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020375F2: ; jump table (using 16-bit offset) + .short _020376E2 - _020375F2 - 2; case 0 + .short _020375FC - _020375F2 - 2; case 1 + .short _02037646 - _020375F2 - 2; case 2 + .short _0203761C - _020375F2 - 2; case 3 + .short _02037672 - _020375F2 - 2; case 4 +_020375FC: + cmp r5, #0x0 + beq _02037610 + bl FUN_0204E2FC + cmp r0, #0x0 + beq _02037610 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl MOD05_021D85FC +_02037610: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0204D6C0 + add sp, #0x10 + pop {r3-r5, pc} +_0203761C: + cmp r5, #0x0 + beq _0203763A + bl FUN_0204E2FC + cmp r0, #0x0 + beq _02037638 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl MOD04_021D865C + cmp r0, #0x1 + bne _0203763A + mov r5, #0x0 + b _0203763A +_02037638: + mov r5, #0x0 +_0203763A: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_0204D6C0 + add sp, #0x10 + pop {r3-r5, pc} +_02037646: + cmp r5, #0x0 + bne _0203764C + b _02037754 +_0203764C: + add r0, sp, #0x8 + add r1, r4, #0x0 + bl MOD05_021D8758 + cmp r0, #0x1 + beq _02037754 + add r3, sp, #0x8 + ldrh r0, [r3, #0x6] + mov r2, #0x0 + str r0, [sp, #0x0] + str r2, [sp, #0x4] + ldrh r3, [r3, #0x4] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x24] + sub r2, r2, #0x1 + bl FUN_020557F4 + add sp, #0x10 + pop {r3-r5, pc} +_02037672: + cmp r5, #0x0 + beq _02037754 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl MOD05_021D8820 + cmp r0, #0x1 + bne _020376A6 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl MOD05_021E32F0 + add r0, r4, #0x0 + mov r1, #0x4 + bl MOD05_021E81BC + ldr r0, [r4, #0x38] + bl MOD05_021E7138 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl MOD05_021EFA9C + add sp, #0x10 + pop {r3-r5, pc} +_020376A6: + ldr r0, _02037758 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _020376B8 + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl MOD05_021E32F0 +_020376B8: + mov r5, #0x0 + bl FUN_02037790 + cmp r0, #0x0 + beq _020376C8 + bl MOD20_02252534 + add r5, r0, #0x0 +_020376C8: + add r3, sp, #0x8 + ldrh r0, [r3, #0x6] + mov r2, #0x0 + mvn r2, r2 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x4] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x24] + bl FUN_020557F4 + add sp, #0x10 + pop {r3-r5, pc} +_020376E2: + cmp r5, #0x0 + beq _02037754 + add r0, sp, #0x8 + add r1, r4, #0x0 + bl MOD05_021D8320 + cmp r0, #0x1 + bne _0203771C + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl MOD05_021E32F0 + add r0, r4, #0x0 + mov r1, #0x4 + bl MOD05_021E81BC + ldr r0, [r4, #0x38] + bl FUN_02055B14 + ldr r0, [r4, #0x38] + bl MOD05_021E7138 + add r0, r4, #0x0 + mov r1, #0x0 + mov r2, #0x1 + bl MOD05_021EFA9C + add sp, #0x10 + pop {r3-r5, pc} +_0203771C: + ldr r0, _02037758 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _0203772E + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x8] + bl MOD05_021E32F0 +_0203772E: + mov r5, #0x0 + bl FUN_02037790 + cmp r0, #0x0 + beq _0203773E + bl MOD20_02252534 + add r5, r0, #0x0 +_0203773E: + add r3, sp, #0x8 + ldrh r0, [r3, #0x6] + mov r2, #0x0 + mvn r2, r2 + str r0, [sp, #0x0] + str r5, [sp, #0x4] + ldrh r3, [r3, #0x4] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x24] + bl FUN_020557F4 +_02037754: + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_02037758: .word 0x021C48B8 +_0203775C: .word 0x00000146 + + thumb_func_start FUN_02037760 +FUN_02037760: ; 0x02037760 + ldr r0, _02037770 ; =0x021C5A08 + ldr r3, _02037774 ; =FUN_02030FC8 + ldr r0, [r0, #0x0] + mov r1, #0x1 + ldr r0, [r0, #0x0] + str r1, [r0, #0x8] + bx r3 + nop +_02037770: .word 0x021C5A08 +_02037774: .word FUN_02030FC8 + + thumb_func_start FUN_02037778 +FUN_02037778: ; 0x02037778 + ldr r0, _02037788 ; =0x021C5A08 + ldr r3, _0203778C ; =FUN_02030FA8 + ldr r0, [r0, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x8] + bx r3 + nop +_02037788: .word 0x021C5A08 +_0203778C: .word FUN_02030FA8 + + thumb_func_start FUN_02037790 +FUN_02037790: ; 0x02037790 + ldr r0, _020377A4 ; =0x021C5A08 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _0203779E + mov r0, #0x0 + bx lr +_0203779E: + ldr r0, [r0, #0x14] + bx lr + nop +_020377A4: .word 0x021C5A08 + + thumb_func_start FUN_020377A8 +FUN_020377A8: ; 0x020377A8 + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_020377AC +FUN_020377AC: ; 0x020377AC + ldr r0, [r0, #0xc] + bx lr + + thumb_func_start FUN_020377B0 +FUN_020377B0: ; 0x020377B0 + ldr r2, _020377C4 ; =0x020F2B9C + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + nop +_020377C4: .word 0x020F2B9C + + thumb_func_start FUN_020377C8 +FUN_020377C8: ; 0x020377C8 + ldr r2, _020377DC ; =0x020F2BB0 + add r3, r0, #0x0 + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r3, #0x0] + bx lr + nop +_020377DC: .word 0x020F2BB0 + + thumb_func_start FUN_020377E0 +FUN_020377E0: ; 0x020377E0 + push {r3, lr} + bl FUN_02034E30 + bl FUN_02034DC0 + bl FUN_020377B0 + pop {r3, pc} + + thumb_func_start FUN_020377F0 +FUN_020377F0: ; 0x020377F0 + mov r0, #0x1 + bx lr + + thumb_func_start FUN_020377F4 +FUN_020377F4: ; 0x020377F4 + push {r3, lr} + bl MOD11_0222D5C0 + cmp r0, #0x0 + beq _02037802 + mov r0, #0x1 + pop {r3, pc} +_02037802: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02037808 +FUN_02037808: ; 0x02037808 + mov r0, #0x1 + bx lr + + thumb_func_start FUN_0203780C +FUN_0203780C: ; 0x0203780C + ldr r3, _02037814 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037818 ; =0x020F2D94 + bx r3 + .balign 4 +_02037814: .word FUN_020373D4 +_02037818: .word 0x020F2D94 + + thumb_func_start FUN_0203781C +FUN_0203781C: ; 0x0203781C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037840 ; =0x020F2D74 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037840: .word 0x020F2D74 + + thumb_func_start FUN_02037844 +FUN_02037844: ; 0x02037844 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r6, r1, #0x0 + bl FUN_0206F158 + ldr r1, _02037898 ; =0x020F2BDC + mov r2, #0xb + bl FUN_0206EFEC + add r3, r5, #0x0 + add r3, #0x94 + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x0] + mov r2, #0x0 + add r4, r0, #0x0 + bl FUN_0206E314 + ldr r1, [r5, #0x6c] + add r0, r4, #0x0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_0206E360 + ldr r0, [r5, #0x38] + bl FUN_020553C4 + cmp r0, #0x1 + bne _02037884 + add r0, r4, #0x0 + bl FUN_0206E340 +_02037884: + add r0, r4, #0x0 + add r1, r6, #0x0 + bl FUN_0206E354 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0203781C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037898: .word 0x020F2BDC + + thumb_func_start FUN_0203789C +FUN_0203789C: ; 0x0203789C + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + add r4, r1, #0x0 + bl FUN_0206F158 + add r6, r0, #0x0 + cmp r4, #0x0 + beq _020378B4 + cmp r4, #0x1 + beq _020378BC + b _020378C4 +_020378B4: + ldr r1, _020378F0 ; =0x020F2BC8 + ldr r0, _020378F4 ; =0x02105DB8 + str r1, [r0, #0x0] + b _020378C8 +_020378BC: + ldr r1, _020378F8 ; =0x020F2BC4 + ldr r0, _020378F4 ; =0x02105DB8 + str r1, [r0, #0x0] + b _020378C8 +_020378C4: + bl ErrorHandling +_020378C8: + ldr r1, _020378F4 ; =0x02105DB8 + add r0, r6, #0x0 + ldr r1, [r1, #0x0] + mov r2, #0x20 + bl FUN_0206EFEC + add r3, r5, #0x0 + add r3, #0x94 + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x0] + add r4, r0, #0x0 + mov r2, #0x3 + bl FUN_0206E314 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0203781C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_020378F0: .word 0x020F2BC8 +_020378F4: .word 0x02105DB8 +_020378F8: .word 0x020F2BC4 + + thumb_func_start FUN_020378FC +FUN_020378FC: ; 0x020378FC + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_0206E37C + add r4, r0, #0x0 + beq _02037916 + add r0, r5, #0x0 + bl FUN_0206E384 + cmp r0, #0x5 + bne _02037916 + bl ErrorHandling +_02037916: + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_0203791C +FUN_0203791C: ; 0x0203791C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037940 ; =0x020F2D44 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037940: .word 0x020F2D44 + + thumb_func_start FUN_02037944 +FUN_02037944: ; 0x02037944 + push {r3-r5, lr} + sub sp, #0x10 + ldr r4, _02037968 ; =0x020F2D24 + add r3, sp, #0x0 + add r5, r0, #0x0 + add r2, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r1, r2, #0x0 + ldr r2, [r5, #0xc] + add r0, r5, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r3-r5, pc} + nop +_02037968: .word 0x020F2D24 + + thumb_func_start FUN_0203796C +FUN_0203796C: ; 0x0203796C + ldr r3, _02037974 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037978 ; =0x020FA6E8 + bx r3 + .balign 4 +_02037974: .word FUN_020373D4 +_02037978: .word 0x020FA6E8 + + thumb_func_start FUN_0203797C +FUN_0203797C: ; 0x0203797C + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x40 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r4, #0x0 + mov r2, #0x40 + bl MIi_CpuClearFast + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_0206F158 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl FUN_02025838 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0xc] + add r0, r4, #0x0 + add r0, #0x21 + strb r6, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x20 + strb r7, [r0, #0x0] + str r5, [r4, #0x1c] + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_020379C8 +FUN_020379C8: ; 0x020379C8 + push {r3-r7, lr} + add r5, r0, #0x0 + add r7, r2, #0x0 + mov r2, #0x0 + add r6, r1, #0x0 + mov r0, #0xb + add r1, r5, #0x0 + add r3, r2, #0x0 + bl FUN_0203797C + add r4, r0, #0x0 + str r6, [r4, #0x18] + add r0, #0x22 + strb r7, [r0, #0x0] + ldr r1, _020379F4 ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + nop +_020379F4: .word 0x020F96DC + + thumb_func_start FUN_020379F8 +FUN_020379F8: ; 0x020379F8 + push {r3-r5, lr} + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x3 + add r5, r1, #0x0 + bl FUN_0203797C + add r4, r0, #0x0 + ldr r1, _02037A18 ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02037A18: .word 0x020F96DC + + thumb_func_start FUN_02037A1C +FUN_02037A1C: ; 0x02037A1C + push {r3-r5, lr} + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x13 + add r5, r1, #0x0 + bl FUN_0203797C + add r4, r0, #0x0 + ldr r1, _02037A3C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + nop +_02037A3C: .word 0x020F96DC + + thumb_func_start FUN_02037A40 +FUN_02037A40: ; 0x02037A40 + add r0, #0x22 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02037A48 +FUN_02037A48: ; 0x02037A48 + push {r4-r6, lr} + add r4, r2, #0x0 + mov r0, #0xb + mov r2, #0x0 + mov r3, #0x12 + add r5, r1, #0x0 + bl FUN_0203797C + add r6, r0, #0x0 + add r0, #0x22 + strb r4, [r0, #0x0] + ldr r1, _02037A6C ; =0x020F96DC + add r0, r5, #0x0 + add r2, r6, #0x0 + bl FUN_020373D4 + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037A6C: .word 0x020F96DC + + thumb_func_start FUN_02037A70 +FUN_02037A70: ; 0x02037A70 + add r0, #0x23 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 + + thumb_func_start FUN_02037A78 +FUN_02037A78: ; 0x02037A78 + ldrb r0, [r0, #0x14] + bx lr + + thumb_func_start FUN_02037A7C +FUN_02037A7C: ; 0x02037A7C + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02046530 + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x4 + bhi _02037B3A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02037AA8: ; jump table (using 16-bit offset) + .short _02037AB2 - _02037AA8 - 2; case 0 + .short _02037AC2 - _02037AA8 - 2; case 1 + .short _02037AF8 - _02037AA8 - 2; case 2 + .short _02037B1A - _02037AA8 - 2; case 3 + .short _02037B30 - _02037AA8 - 2; case 4 +_02037AB2: + ldr r1, _02037B40 ; =0x020F96DC + ldr r2, [r4, #0x4] + add r0, r6, #0x0 + bl FUN_020373D4 + mov r0, #0x1 + str r0, [r5, #0x0] + b _02037B3A +_02037AC2: + add r0, r6, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _02037B3A + ldr r0, [r4, #0x4] + add r0, #0x22 + ldrb r0, [r0, #0x0] + cmp r0, #0x6 + beq _02037AE6 + cmp r0, #0x7 + bne _02037AF2 + mov r0, #0x2 + bl FUN_020527D8 + mov r0, #0x4 + str r0, [r5, #0x0] + b _02037B3A +_02037AE6: + mov r0, #0x1 + bl FUN_020527D8 + mov r0, #0x4 + str r0, [r5, #0x0] + b _02037B3A +_02037AF2: + mov r0, #0x2 + str r0, [r5, #0x0] + b _02037B3A +_02037AF8: + ldr r1, [r4, #0x0] + add r0, r6, #0x0 + mov r2, #0x0 + bl FUN_02037C7C + str r0, [r4, #0x8] + ldr r1, [r4, #0x4] + add r1, #0x22 + ldrb r1, [r1, #0x0] + strb r1, [r0, #0x14] + ldr r1, [r4, #0x8] + add r0, r6, #0x0 + bl FUN_0203796C + mov r0, #0x3 + str r0, [r5, #0x0] + b _02037B3A +_02037B1A: + add r0, r6, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _02037B3A + ldr r0, [r4, #0x8] + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r5, #0x0] + b _02037B3A +_02037B30: + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x1 + pop {r4-r6, pc} +_02037B3A: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02037B40: .word 0x020F96DC + + thumb_func_start FUN_02037B44 +FUN_02037B44: ; 0x02037B44 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0xc + bl FUN_02016998 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x0 + mov r3, #0x2 + str r5, [r4, #0x0] + bl FUN_0203797C + add r5, r0, #0x0 + add r0, #0x32 + ldrb r1, [r0, #0x0] + mov r0, #0xf + add r2, r4, #0x0 + bic r1, r0 + mov r0, #0x2 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + add r0, #0x32 + ldrb r1, [r0, #0x0] + mov r0, #0xf0 + bic r1, r0 + mov r0, #0x20 + orr r1, r0 + add r0, r5, #0x0 + add r0, #0x32 + strb r1, [r0, #0x0] + add r0, r5, #0x0 + mov r1, #0x1e + add r0, #0x33 + strb r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r5, #0x14] + ldr r1, _02037BAC ; =FUN_02037A7C + add r0, r7, #0x0 + str r5, [r4, #0x4] + bl FUN_0204640C + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02037BAC: .word FUN_02037A7C + + thumb_func_start FUN_02037BB0 +FUN_02037BB0: ; 0x02037BB0 + push {r3-r7, lr} + add r5, r2, #0x0 + add r6, r3, #0x0 + mov r0, #0xb + mov r2, #0x0 + mov r3, #0xd + add r7, r1, #0x0 + bl FUN_0203797C + add r4, r0, #0x0 + ldr r1, [sp, #0x1c] + add r0, #0x22 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + mov r1, #0x2 + add r0, #0x29 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add r0, #0x2a + strb r5, [r0, #0x0] + ldr r0, [sp, #0x18] + cmp r0, #0x0 + bne _02037BE6 + add r0, r4, #0x0 + add r0, #0x2b + strb r6, [r0, #0x0] + b _02037BEE +_02037BE6: + add r0, r4, #0x0 + mov r1, #0x0 + add r0, #0x2b + strb r1, [r0, #0x0] +_02037BEE: + ldr r1, _02037BFC ; =0x020F96DC + add r0, r7, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 +_02037BFC: .word 0x020F96DC + + thumb_func_start FUN_02037C00 +FUN_02037C00: ; 0x02037C00 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r0, #0xb + mov r1, #0x30 + add r6, r2, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + strb r6, [r4, #0x14] + ldr r0, [r4, #0x0] + bl FUN_0206B9AC + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + strb r0, [r4, #0x12] + ldr r0, [r5, #0xc] + bl FUN_0202A918 + str r0, [r4, #0x20] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r4, #0x2c] + mov r0, #0x0 + str r0, [r4, #0x28] + ldr r1, _02037C74 ; =0x020F2A9C + add r0, r4, #0x0 + bl FUN_0207B000 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0207C2A4 + ldr r1, _02037C78 ; =0x020FA6E8 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037C74: .word 0x020F2A9C +_02037C78: .word 0x020FA6E8 + + thumb_func_start FUN_02037C7C +FUN_02037C7C: ; 0x02037C7C + push {r4-r6, lr} + ldr r5, [r0, #0xc] + add r0, r1, #0x0 + mov r1, #0x30 + add r6, r2, #0x0 + bl FUN_020169D8 + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + bl MI_CpuFill8 + add r0, r5, #0x0 + bl LoadPlayerDataAddress + str r0, [r4, #0x4] + add r0, r5, #0x0 + bl FUN_0206BB1C + str r0, [r4, #0x0] + mov r0, #0x1 + strb r0, [r4, #0x11] + mov r0, #0x0 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x0] + bl FUN_0206B9AC + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + strb r6, [r4, #0x12] + add r0, r5, #0x0 + bl FUN_0206BB28 + str r0, [r4, #0x1c] + add r0, r5, #0x0 + bl FUN_02079C70 + str r0, [r4, #0x2c] + add r0, r5, #0x0 + bl FUN_0202A918 + str r0, [r4, #0x20] + ldr r1, _02037CEC ; =0x020F2BD0 + add r0, r4, #0x0 + bl FUN_0207B000 + add r0, r5, #0x0 + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0207C2A4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037CEC: .word 0x020F2BD0 + + thumb_func_start FUN_02037CF0 +FUN_02037CF0: ; 0x02037CF0 + push {r4-r6, lr} + add r5, r1, #0x0 + mov r1, #0x30 + add r6, r2, #0x0 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x30 + add r4, r0, #0x0 + bl memset + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x4] + mov r0, #0x1 + strb r0, [r4, #0x11] + strb r6, [r4, #0x14] + strb r0, [r4, #0x13] + mov r0, #0x0 + strh r0, [r4, #0x18] + mov r0, #0x2 + strb r0, [r4, #0x12] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r4, #0x2c] + ldr r1, _02037D58 ; =0x020F2BCC + add r0, r4, #0x0 + bl FUN_0207B000 + ldr r0, [r5, #0xc] + bl FUN_020238F4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0207C2A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0203796C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02037D58: .word 0x020F2BCC + + thumb_func_start FUN_02037D5C +FUN_02037D5C: ; 0x02037D5C + ldrb r0, [r0, #0x16] + bx lr + + thumb_func_start FUN_02037D60 +FUN_02037D60: ; 0x02037D60 + ldr r3, _02037D68 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037D6C ; =0x020F2CF4 + bx r3 + .balign 4 +_02037D68: .word FUN_020373D4 +_02037D6C: .word 0x020F2CF4 + + thumb_func_start FUN_02037D70 +FUN_02037D70: ; 0x02037D70 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r0, #0x0 + bl FUN_02046530 + add r4, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_02046528 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + beq _02037D9A + cmp r1, #0x1 + beq _02037DA8 + cmp r1, #0x2 + beq _02037DB8 + b _02037E12 +_02037D9A: + ldr r1, [r5, #0xc] + bl FUN_02037E80 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02037E12 +_02037DA8: + bl FUN_0204647C + cmp r0, #0x0 + bne _02037E12 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02037E12 +_02037DB8: + ldr r0, [r5, #0xc] + bl FUN_020853E4 + cmp r0, #0x0 + bne _02037DCC + ldr r0, [r5, #0xc] + bl FUN_020853E8 + cmp r0, #0x0 + bne _02037DD4 +_02037DCC: + ldr r0, [r5, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x0] + b _02037E00 +_02037DD4: + ldr r0, [r5, #0x0] + mov r1, #0x1 + strh r1, [r0, #0x0] + ldr r0, [r5, #0x8] + cmp r0, #0x0 + ldr r0, [r5, #0xc] + bne _02037DEC + bl FUN_020853EC + ldr r1, [r5, #0x4] + strh r0, [r1, #0x0] + b _02037E00 +_02037DEC: + add r1, sp, #0x0 + bl FUN_020853F0 + add r0, sp, #0x0 + ldrh r2, [r0, #0x0] + ldr r1, [r5, #0x4] + strh r2, [r1, #0x0] + ldrh r1, [r0, #0x2] + ldr r0, [r5, #0x8] + strh r1, [r0, #0x0] +_02037E00: + ldr r0, [r5, #0xc] + bl FUN_020853A8 + add r0, r5, #0x0 + bl FUN_02016A18 + add sp, #0x4 + mov r0, #0x1 + pop {r3-r6, pc} +_02037E12: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r6, pc} + + thumb_func_start FUN_02037E18 +FUN_02037E18: ; 0x02037E18 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02046528 + add r7, r0, #0x0 + mov r0, #0x20 + mov r1, #0x10 + bl FUN_02016998 + add r4, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r6, #0x0 + str r0, [r4, #0x0] + str r5, [r4, #0x4] + str r6, [r4, #0x8] + bne _02037E56 + mov r0, #0x0 + ldr r2, [r7, #0xc] + add r1, r0, #0x0 + mov r3, #0x20 + bl FUN_02085338 + str r0, [r4, #0xc] + ldrh r1, [r5, #0x0] + bl FUN_020853B0 + b _02037E6C +_02037E56: + ldr r2, [r7, #0xc] + mov r0, #0x1 + mov r1, #0x0 + mov r3, #0x20 + bl FUN_02085338 + str r0, [r4, #0xc] + ldrh r1, [r5, #0x0] + ldrh r2, [r6, #0x0] + bl FUN_020853B4 +_02037E6C: + ldr r0, [sp, #0x0] + ldr r1, _02037E7C ; =FUN_02037D70 + add r2, r4, #0x0 + bl FUN_0204640C + add sp, #0x8 + pop {r3-r7, pc} + nop +_02037E7C: .word FUN_02037D70 + + thumb_func_start FUN_02037E80 +FUN_02037E80: ; 0x02037E80 + ldr r3, _02037E88 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037E8C ; =0x020F2CE4 + bx r3 + .balign 4 +_02037E88: .word FUN_020373D4 +_02037E8C: .word 0x020F2CE4 + + thumb_func_start FUN_02037E90 +FUN_02037E90: ; 0x02037E90 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02037EB4 ; =0x020F2CD4 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02037EB4: .word 0x020F2CD4 + + thumb_func_start FUN_02037EB8 +FUN_02037EB8: ; 0x02037EB8 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_02034E30 + bl FUN_02034E0C + mov r1, #0x5 + mov r0, #0xb + lsl r1, r1, #0x6 + bl FUN_020169D8 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x0 + bl FUN_0205F7A0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02037E90 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02037EE8 +FUN_02037EE8: ; 0x02037EE8 + ldr r3, _02037EF0 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037EF4 ; =0x020F2CC4 + bx r3 + .balign 4 +_02037EF0: .word FUN_020373D4 +_02037EF4: .word 0x020F2CC4 + + thumb_func_start FUN_02037EF8 +FUN_02037EF8: ; 0x02037EF8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x2 + bl FUN_020169D8 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020377AC + bl LoadPlayerDataAddress + add r1, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02037EE8 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02037F1C +FUN_02037F1C: ; 0x02037F1C + ldr r3, _02037F24 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037F28 ; =0x020FCAC8 + bx r3 + .balign 4 +_02037F24: .word FUN_020373D4 +_02037F28: .word 0x020FCAC8 + + thumb_func_start FUN_02037F2C +FUN_02037F2C: ; 0x02037F2C + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + bl FUN_020377AC + mov r1, #0xb + str r1, [sp, #0x0] + add r1, r4, #0x0 + add r2, r6, #0x0 + add r3, r7, #0x0 + bl FUN_020854E0 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02037F1C + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02037F58 +FUN_02037F58: ; 0x02037F58 + push {r3-r7, lr} + add r5, r1, #0x0 + add r7, r0, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + cmp r5, #0x3 + bne _02037F74 + bl FUN_020377AC + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020855B0 + b _02037F82 +_02037F74: + bl FUN_020377AC + add r1, r5, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl FUN_02085538 +_02037F82: + add r4, r0, #0x0 + add r0, r7, #0x0 + add r1, r4, #0x0 + bl FUN_02037F1C + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02037F90 +FUN_02037F90: ; 0x02037F90 + push {r4-r6, lr} + add r4, r1, #0x0 + add r6, r2, #0x0 + add r5, r0, #0x0 + bl FUN_020377AC + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02085578 + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02037F1C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02037FB4 +FUN_02037FB4: ; 0x02037FB4 + ldr r3, _02037FBC ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02037FC0 ; =0x020FD1B0 + bx r3 + .balign 4 +_02037FBC: .word FUN_020373D4 +_02037FC0: .word 0x020FD1B0 + + thumb_func_start FUN_02037FC4 +FUN_02037FC4: ; 0x02037FC4 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r0, #0x0 + bl FUN_020377AC + add r1, r5, #0x0 + bl FUN_02087D00 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02037FB4 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02037FE4 +FUN_02037FE4: ; 0x02037FE4 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02038008 ; =0x020F2CB4 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02038008: .word 0x020F2CB4 + + thumb_func_start FUN_0203800C +FUN_0203800C: ; 0x0203800C + push {r3-r7, lr} + add r5, r1, #0x0 + mov r1, #0x20 + add r7, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02016998 + mov r1, #0x0 + mov r2, #0x20 + add r4, r0, #0x0 + bl memset + add r0, r5, #0x0 + bl FUN_0206BB1C + add r1, r7, #0x0 + bl FUN_0206B9B0 + str r0, [r4, #0x0] + add r0, r5, #0x0 + bl FUN_02027E24 + str r0, [sp, #0x0] + mov r1, #0x0 + bl FUN_02027008 + add r7, r0, #0x0 + ldr r0, [sp, #0x0] + bl FUN_0202708C + str r7, [r4, #0x4] + str r0, [r4, #0x8] + add r0, r5, #0x0 + bl LoadPlayerDataAddress + str r0, [r4, #0xc] + add r0, r5, #0x0 + bl FUN_02029FC8 + str r0, [r4, #0x10] + add r0, r5, #0x0 + bl FUN_020238F4 + str r0, [r4, #0x14] + ldr r0, [sp, #0x18] + str r6, [r4, #0x18] + str r0, [r4, #0x1c] + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02038070 +FUN_02038070: ; 0x02038070 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0203808E + cmp r0, #0x1 + beq _0203809E + b _020380C8 +_0203808E: + ldr r1, [r5, #0xc] + add r0, r4, #0x0 + bl FUN_0203811C + ldr r0, [r5, #0x0] + add r0, r0, #0x1 + str r0, [r5, #0x0] + b _020380C8 +_0203809E: + add r0, r4, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _020380C8 + ldr r0, [r5, #0x8] + cmp r0, #0x1 + bne _020380B2 + mov r1, #0x1 + b _020380B4 +_020380B2: + mov r1, #0x0 +_020380B4: + ldr r0, [r5, #0x4] + strh r1, [r0, #0x0] + ldr r0, [r5, #0xc] + bl FUN_02016A18 + add r0, r5, #0x0 + bl FUN_02016A18 + mov r0, #0x1 + pop {r3-r5, pc} +_020380C8: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_020380CC +FUN_020380CC: ; 0x020380CC + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + add r5, r1, #0x0 + mov r0, #0x20 + mov r1, #0x10 + add r7, r2, #0x0 + str r3, [sp, #0x4] + bl FUN_02016998 + add r4, r0, #0x0 + add r2, r4, #0x0 + mov r1, #0x10 + mov r0, #0x0 +_020380E8: + strb r0, [r2, #0x0] + add r2, r2, #0x1 + sub r1, r1, #0x1 + bne _020380E8 + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + add r3, r4, #0x0 + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r2, [sp, #0x4] + mov r0, #0x20 + add r3, #0x8 + bl FUN_0203800C + str r0, [r4, #0xc] + ldr r1, _02038118 ; =FUN_02038070 + add r0, r6, #0x0 + add r2, r4, #0x0 + str r5, [r4, #0x4] + bl FUN_0204640C + add sp, #0x8 + pop {r3-r7, pc} + nop +_02038118: .word FUN_02038070 + + thumb_func_start FUN_0203811C +FUN_0203811C: ; 0x0203811C + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _0203812C ; =0x02105DDC + bl FUN_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_0203812C: .word 0x02105DDC + + thumb_func_start FUN_02038130 +FUN_02038130: ; 0x02038130 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _02038140 ; =0x02105DCC + bl FUN_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_02038140: .word 0x02105DCC + + thumb_func_start FUN_02038144 +FUN_02038144: ; 0x02038144 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_020238F4 + str r0, [r5, #0x4] + ldr r0, [r4, #0xc] + bl FUN_0206BB1C + str r0, [r5, #0x8] + ldr r0, [r4, #0xc] + mov r1, #0x9 + bl FUN_02022610 + str r0, [r5, #0xc] + ldr r0, [r4, #0xc] + bl FUN_02029AFC + str r0, [r5, #0x14] + ldr r0, [r4, #0xc] + bl LoadPlayerDataAddress + str r0, [r5, #0x18] + ldr r0, [r4, #0xc] + bl FUN_02024DA0 + str r0, [r5, #0x24] + ldr r0, [r4, #0xc] + bl FUN_0206BB28 + str r0, [r5, #0x30] + ldr r0, [r4, #0xc] + str r0, [r5, #0x10] + add r0, r4, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r5, #0x1c] + ldr r0, [r4, #0xc] + bl FUN_02029FC8 + str r0, [r5, #0x20] + bl FUN_02023924 + add r1, r0, #0x0 + mov r0, #0x20 + bl FUN_02016998 + str r0, [r5, #0x38] + bl FUN_020690C4 + add r1, r0, #0x0 + mov r0, #0x20 + bl FUN_02016998 + str r0, [r5, #0x3c] + bl FUN_020690C4 + add r1, r0, #0x0 + mov r0, #0x20 + bl FUN_02016998 + str r0, [r5, #0x40] + str r4, [r5, #0x0] + mov r0, #0x0 + str r0, [r5, #0x34] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020381CC +FUN_020381CC: ; 0x020381CC + push {r4, lr} + add r4, r0, #0x0 + ldr r0, [r4, #0x38] + cmp r0, #0x0 + beq _020381DE + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x38] +_020381DE: + ldr r0, [r4, #0x3c] + cmp r0, #0x0 + beq _020381EC + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x3c] +_020381EC: + ldr r0, [r4, #0x40] + cmp r0, #0x0 + beq _020381FA + bl FUN_02016A18 + mov r0, #0x0 + str r0, [r4, #0x40] +_020381FA: + pop {r4, pc} + + thumb_func_start FUN_020381FC +FUN_020381FC: ; 0x020381FC + push {r4-r7, lr} + sub sp, #0x34 + add r6, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x7 + bls _02038218 + b _020383C8 +_02038218: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02038224: ; jump table (using 16-bit offset) + .short _02038234 - _02038224 - 2; case 0 + .short _0203824A - _02038224 - 2; case 1 + .short _02038258 - _02038224 - 2; case 2 + .short _0203826A - _02038224 - 2; case 3 + .short _02038288 - _02038224 - 2; case 4 + .short _020382F6 - _02038224 - 2; case 5 + .short _02038386 - _02038224 - 2; case 6 + .short _020383B2 - _02038224 - 2; case 7 +_02038234: + bl FUN_02033590 + cmp r0, #0x0 + bne _02038242 + add r0, r6, #0x0 + bl FUN_0204AF3C +_02038242: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020383C8 +_0203824A: + add r0, r4, #0x4 + add r1, r5, #0x0 + bl FUN_02038144 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] +_02038258: + ldr r1, _020383D0 ; =0x02105DBC + add r0, r6, #0x0 + add r2, r4, #0x4 + bl FUN_02046500 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020383C8 +_0203826A: + ldr r1, [r4, #0x2c] + cmp r1, #0x0 + bne _02038282 + add r0, r4, #0x4 + bl FUN_020381CC + add r0, r4, #0x0 + bl FUN_02016A18 + add sp, #0x34 + mov r0, #0x1 + pop {r4-r7, pc} +_02038282: + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _020383C8 +_02038288: + ldr r0, [r4, #0x3c] + str r0, [r4, #0x50] + ldr r0, [r4, #0x40] + bl FUN_020690E4 + str r0, [r4, #0x48] + ldr r0, [r4, #0x44] + bl FUN_020690E4 + str r0, [r4, #0x4c] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x5c] + mov r0, #0x1 + str r0, [r4, #0x58] + add r0, r5, #0x0 + bl FUN_0204B2A4 + cmp r0, #0x4 + bhi _020382C8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020382BE: ; jump table (using 16-bit offset) + .short _020382C8 - _020382BE - 2; case 0 + .short _020382C8 - _020382BE - 2; case 1 + .short _020382CE - _020382BE - 2; case 2 + .short _020382D4 - _020382BE - 2; case 3 + .short _020382D4 - _020382BE - 2; case 4 +_020382C8: + mov r0, #0x0 + str r0, [r4, #0x54] + b _020382D8 +_020382CE: + mov r0, #0x1 + str r0, [r4, #0x54] + b _020382D8 +_020382D4: + mov r0, #0x2 + str r0, [r4, #0x54] +_020382D8: + bl FUN_02033590 + cmp r0, #0x0 + beq _020382E4 + mov r0, #0x3 + str r0, [r4, #0x54] +_020382E4: + add r2, r4, #0x0 + ldr r1, _020383D4 ; =0x020F2CA4 + add r0, r6, #0x0 + add r2, #0x48 + bl FUN_02046500 + mov r0, #0x5 + str r0, [r4, #0x0] + b _020383C8 +_020382F6: + ldr r0, [r4, #0x44] + mov r1, #0x6 + mov r2, #0x0 + bl FUN_020671BC + add r3, r0, #0x0 + add r0, sp, #0x30 + str r0, [sp, #0x0] + lsl r3, r3, #0x10 + ldr r1, [r4, #0x44] + mov r0, #0x0 + mov r2, #0x1 + lsr r3, r3, #0x10 + bl FUN_02069168 + str r0, [sp, #0x20] + cmp r0, #0x0 + beq _02038380 + mov r0, #0x3 + mov r1, #0x1a + lsl r2, r0, #0x10 + bl FUN_0201681C + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [sp, #0x24] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + add r6, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_02024DA0 + add r7, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0206F158 + str r0, [sp, #0x28] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + str r0, [sp, #0x2c] + ldr r0, [r5, #0xc] + bl FUN_0204C1A8 + str r6, [sp, #0x0] + ldr r1, [sp, #0x28] + str r7, [sp, #0x4] + str r1, [sp, #0x8] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x20] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x30] + ldr r3, [sp, #0x24] + str r0, [sp, #0x14] + mov r0, #0x4 + str r0, [sp, #0x18] + mov r0, #0x1a + str r0, [sp, #0x1c] + ldr r1, [r4, #0x44] + mov r0, #0x0 + bl FUN_0206C700 + str r0, [r4, #0x60] + mov r0, #0x6 + str r0, [r4, #0x0] + b _020383C8 +_02038380: + mov r0, #0x7 + str r0, [r4, #0x0] + b _020383C8 +_02038386: + ldr r0, [r4, #0x60] + bl FUN_0206C91C + cmp r0, #0x0 + beq _020383C8 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x30] + bl FUN_0206B9B0 + add r1, r0, #0x0 + ldr r0, [r4, #0x44] + bl FUN_02069B88 + ldr r0, [r4, #0x60] + bl FUN_0206C92C + mov r0, #0x1a + bl FUN_020168D0 + mov r0, #0x7 + str r0, [r4, #0x0] + b _020383C8 +_020383B2: + ldr r0, [r4, #0x38] + add r0, r0, #0x1 + str r0, [r4, #0x38] + mov r0, #0x2 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + mov r1, #0x10 + bl FUN_0202A170 +_020383C8: + mov r0, #0x0 + add sp, #0x34 + pop {r4-r7, pc} + nop +_020383D0: .word 0x02105DBC +_020383D4: .word 0x020F2CA4 + + thumb_func_start FUN_020383D8 +FUN_020383D8: ; 0x020383D8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x20 + mov r1, #0x68 + bl FUN_02016998 + add r2, r0, #0x0 + mov r0, #0x0 + str r0, [r2, #0x0] + ldr r1, _020383F4 ; =FUN_020381FC + add r0, r4, #0x0 + bl FUN_0204640C + pop {r4, pc} + .balign 4 +_020383F4: .word FUN_020381FC + + thumb_func_start FUN_020383F8 +FUN_020383F8: ; 0x020383F8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x20 + mov r1, #0xc + bl FUN_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0x7c] + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x8] + ldr r1, _02038428 ; =0x020F2C94 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + pop {r3-r5, pc} + nop +_02038428: .word 0x020F2C94 + + thumb_func_start FUN_0203842C +FUN_0203842C: ; 0x0203842C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0xb + mov r1, #0x14 + bl FUN_02016998 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + str r0, [r4, #0x0] + ldr r0, [r5, #0x7c] + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + str r0, [r4, #0xc] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + ldr r1, _02038468 ; =0x020F2D04 + str r0, [r4, #0x10] + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02038468: .word 0x020F2D04 + + thumb_func_start FUN_0203846C +FUN_0203846C: ; 0x0203846C + ldr r3, _02038474 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02038478 ; =0x020F2D54 + bx r3 + .balign 4 +_02038474: .word FUN_020373D4 +_02038478: .word 0x020F2D54 + + thumb_func_start FUN_0203847C +FUN_0203847C: ; 0x0203847C + push {r3-r7, lr} + add r5, r0, #0x0 + bl FUN_02046528 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x3 + bhi _02038544 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020384A0: ; jump table (using 16-bit offset) + .short _020384A8 - _020384A0 - 2; case 0 + .short _020384B6 - _020384A0 - 2; case 1 + .short _020384C8 - _020384A0 - 2; case 2 + .short _020384D6 - _020384A0 - 2; case 3 +_020384A8: + add r0, r5, #0x0 + bl FUN_0204AF3C + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02038544 +_020384B6: + ldr r1, _02038548 ; =0x020FA5FC + ldr r2, [r4, #0xc] + add r0, r5, #0x0 + bl FUN_02046500 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02038544 +_020384C8: + add r0, r5, #0x0 + bl FUN_0204AF84 + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + b _02038544 +_020384D6: + ldr r1, [r4, #0xc] + ldr r0, [r1, #0x0] + cmp r0, #0x1 + bne _020384F2 + ldr r0, [r1, #0x18] + ldr r1, [r4, #0x10] + bl FUN_02021CE0 + cmp r0, #0x0 + bne _02038514 + ldr r0, [r4, #0xc] + mov r1, #0x1 + str r1, [r0, #0x14] + b _02038514 +_020384F2: + cmp r0, #0x5 + bne _02038514 + ldr r0, [r1, #0x18] + bl FUN_02021F2C + add r7, r0, #0x0 + ldr r0, [r6, #0xc] + bl FUN_0202881C + add r1, r7, #0x0 + bl FUN_02028854 + cmp r0, #0x0 + beq _02038514 + ldr r0, [r4, #0xc] + mov r1, #0x2 + str r1, [r0, #0x14] +_02038514: + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x14] + cmp r0, #0x0 + bne _02038522 + add r0, r5, #0x0 + bl FUN_0203854C +_02038522: + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _0203852E + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x14] + strh r0, [r1, #0x0] +_0203852E: + ldr r0, [r4, #0xc] + bl FUN_02077AC4 + ldr r0, [r4, #0x10] + bl FUN_02021A20 + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x1 + pop {r3-r7, pc} +_02038544: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_02038548: .word 0x020FA5FC + + thumb_func_start FUN_0203854C +FUN_0203854C: ; 0x0203854C + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x0] + cmp r0, #0x6 + bhi _020385CA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02038572: ; jump table (using 16-bit offset) + .short _02038580 - _02038572 - 2; case 0 + .short _02038590 - _02038572 - 2; case 1 + .short _020385CA - _02038572 - 2; case 2 + .short _020385CA - _02038572 - 2; case 3 + .short _020385CA - _02038572 - 2; case 4 + .short _020385A8 - _02038572 - 2; case 5 + .short _020385BC - _02038572 - 2; case 6 +_02038580: + ldr r0, [r5, #0xc] + bl FUN_020238F4 + ldr r1, [r4, #0xc] + add r1, #0x1c + bl FUN_0202395C + pop {r3-r5, pc} +_02038590: + ldr r0, [r5, #0xc] + bl FUN_0206BB1C + ldr r1, [r4, #0x4] + bl FUN_0206B9B0 + ldr r2, [r4, #0xc] + mov r1, #0x75 + add r2, #0x1c + bl FUN_02067830 + pop {r3-r5, pc} +_020385A8: + ldr r0, [r5, #0xc] + bl FUN_0202881C + ldr r3, [r4, #0xc] + mov r1, #0x0 + ldr r3, [r3, #0x18] + add r2, r1, #0x0 + bl FUN_020287C0 + pop {r3-r5, pc} +_020385BC: + ldr r0, [r5, #0xc] + bl FUN_02024EB4 + ldr r1, [r4, #0xc] + ldr r1, [r1, #0x18] + bl FUN_02024F18 +_020385CA: + pop {r3-r5, pc} + + thumb_func_start FUN_020385CC +FUN_020385CC: ; 0x020385CC + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x4] + add r6, r1, #0x0 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + ldr r5, [sp, #0x2c] + bl FUN_02046528 + add r7, r0, #0x0 + mov r0, #0xb + mov r1, #0x14 + bl FUN_020169D8 + add r4, r0, #0x0 + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r0, [sp, #0x28] + str r0, [r4, #0x4] + ldr r0, [sp, #0x30] + str r0, [r4, #0x8] + ldr r0, [r7, #0xc] + bl LoadPlayerDataAddress + str r0, [sp, #0x0] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0xc] + mov r0, #0xb + add r1, r6, #0x0 + bl FUN_02077A84 + str r0, [r4, #0xc] + mov r0, #0xc + mov r1, #0xb + bl FUN_020219F4 + str r0, [r4, #0x10] + cmp r6, #0x1 + beq _02038620 + cmp r6, #0x5 + beq _02038656 + b _02038660 +_02038620: + ldr r0, [r7, #0xc] + bl FUN_0206BB1C + ldr r1, [r4, #0x4] + bl FUN_0206B9B0 + mov r1, #0x6f + mov r2, #0x0 + add r6, r0, #0x0 + bl FUN_020671BC + ldr r1, [r4, #0xc] + mov r2, #0x0 + str r0, [r1, #0x10] + add r0, r6, #0x0 + mov r1, #0x70 + bl FUN_020671BC + ldr r1, [r4, #0xc] + cmp r5, #0x0 + str r0, [r1, #0x8] + beq _0203866E + ldr r0, [r4, #0x10] + add r1, r5, #0x0 + bl FUN_02021E28 + b _0203866E +_02038656: + ldr r0, [r4, #0x10] + add r1, r5, #0x0 + bl FUN_02021E28 + b _0203866E +_02038660: + cmp r5, #0x0 + beq _0203866E + ldr r0, [r4, #0xc] + add r1, r5, #0x0 + ldr r0, [r0, #0x18] + bl FUN_02021E28 +_0203866E: + ldr r0, [sp, #0x4] + ldr r1, _0203867C ; =FUN_0203847C + add r2, r4, #0x0 + bl FUN_0204640C + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_0203867C: .word FUN_0203847C + + thumb_func_start FUN_02038680 +FUN_02038680: ; 0x02038680 + ldr r3, _02038688 ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _0203868C ; =0x020F2C54 + bx r3 + .balign 4 +_02038688: .word FUN_020373D4 +_0203868C: .word 0x020F2C54 + + thumb_func_start FUN_02038690 +FUN_02038690: ; 0x02038690 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _020386A0 ; =0x020F2C44 + bl FUN_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_020386A0: .word 0x020F2C44 + + thumb_func_start FUN_020386A4 +FUN_020386A4: ; 0x020386A4 + ldr r3, _020386AC ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _020386B0 ; =0x020F2C34 + bx r3 + .balign 4 +_020386AC: .word FUN_020373D4 +_020386B0: .word 0x020F2C34 + + thumb_func_start FUN_020386B4 +FUN_020386B4: ; 0x020386B4 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_02029ABC + ldr r5, _020386DC ; =0x020F2C24 + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r3!, {r0-r1} + add r1, r2, #0x0 + ldr r2, [r4, #0xc] + add r0, r4, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r3-r5, pc} + .balign 4 +_020386DC: .word 0x020F2C24 + + thumb_func_start FUN_020386E0 +FUN_020386E0: ; 0x020386E0 + push {r4-r6, lr} + sub sp, #0x10 + ldr r3, _0203878C ; =0x020F2C64 + add r2, sp, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0xb + mov r1, #0x44 + bl FUN_020169D8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0202ABBC + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_02023788 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + mov r1, #0x2 + bl FUN_02022610 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl FUN_02022510 + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl FUN_02024DA0 + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl FUN_020286EC + str r0, [r4, #0x14] + ldr r0, [r5, #0xc] + bl FUN_02029AFC + str r0, [r4, #0x18] + ldr r0, [r5, #0xc] + bl FUN_020238F4 + str r0, [r4, #0x1c] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x24] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + str r0, [r4, #0x28] + add r0, r5, #0x0 + add r0, #0x98 + ldr r0, [r0, #0x0] + str r0, [r4, #0x2c] + ldr r0, [r5, #0xc] + bl FUN_02079C70 + str r0, [r4, #0x3c] + ldr r0, [r5, #0xc] + str r0, [r4, #0x20] + ldr r0, [r5, #0xc] + bl FUN_0206BB28 + str r0, [r4, #0x34] + ldr r0, [r4, #0x14] + bl FUN_02033830 + str r0, [r4, #0x38] + ldr r0, [r5, #0xc] + bl FUN_0206F158 + str r0, [r4, #0x30] + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + str r6, [r4, #0x40] + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_0203878C: .word 0x020F2C64 + + thumb_func_start FUN_02038790 +FUN_02038790: ; 0x02038790 + push {r3-r7, lr} + sub sp, #0x10 + ldr r3, _02038800 ; =0x020F2C74 + add r7, r2, #0x0 + add r2, sp, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + mov r0, #0xb + mov r1, #0x28 + bl FUN_020169D8 + add r4, r0, #0x0 + ldr r0, [r5, #0xc] + bl FUN_0202A8D8 + str r0, [r4, #0x0] + ldr r0, [r5, #0xc] + bl FUN_0202A8E4 + str r0, [r4, #0x4] + ldr r0, [r5, #0xc] + bl FUN_02023788 + str r0, [r4, #0x8] + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl FUN_020286EC + bl FUN_02028228 + str r0, [r4, #0x14] + ldr r0, [r5, #0xc] + str r0, [r4, #0xc] + ldr r0, [r5, #0xc] + bl FUN_020286EC + bl FUN_02033830 + str r0, [r4, #0x1c] + str r6, [r4, #0x18] + add r0, r5, #0x0 + add r1, sp, #0x0 + add r2, r4, #0x0 + str r7, [r4, #0x24] + bl FUN_020373D4 + add r0, r4, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 +_02038800: .word 0x020F2C74 + + thumb_func_start FUN_02038804 +FUN_02038804: ; 0x02038804 + ldr r3, _0203880C ; =FUN_020373D4 + ldr r1, _02038810 ; =0x020F2D14 + ldr r2, [r0, #0xc] + bx r3 + .balign 4 +_0203880C: .word FUN_020373D4 +_02038810: .word 0x020F2D14 + + thumb_func_start FUN_02038814 +FUN_02038814: ; 0x02038814 + ldr r3, _0203881C ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02038820 ; =0x020F2D64 + bx r3 + .balign 4 +_0203881C: .word FUN_020373D4 +_02038820: .word 0x020F2D64 + + thumb_func_start FUN_02038824 +FUN_02038824: ; 0x02038824 + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + mov r1, #0xb + add r2, sp, #0x0 + bl FUN_02022534 + ldr r1, [sp, #0x0] + add r4, r0, #0x0 + cmp r1, #0x2 + bne _02038842 + bl FUN_02016A18 + mov r0, #0x0 + pop {r3-r5, pc} +_02038842: + ldr r1, _02038850 ; =0x020F2BF4 + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02038850: .word 0x020F2BF4 + + thumb_func_start FUN_02038854 +FUN_02038854: ; 0x02038854 + ldr r3, _0203885C ; =FUN_020373D4 + add r2, r1, #0x0 + ldr r1, _02038860 ; =0x020F2C04 + bx r3 + .balign 4 +_0203885C: .word FUN_020373D4 +_02038860: .word 0x020F2C04 + + thumb_func_start FUN_02038864 +FUN_02038864: ; 0x02038864 + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _02038888 ; =0x020F2C84 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_02038888: .word 0x020F2C84 + + thumb_func_start FUN_0203888C +FUN_0203888C: ; 0x0203888C + push {r4-r6, lr} + sub sp, #0x10 + ldr r5, _020388B0 ; =0x020F2D84 + add r4, sp, #0x0 + add r6, r0, #0x0 + add r2, r1, #0x0 + add r3, r4, #0x0 + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r5!, {r0-r1} + stmia r4!, {r0-r1} + add r0, r6, #0x0 + add r1, r3, #0x0 + bl FUN_020373D4 + add sp, #0x10 + pop {r4-r6, pc} + nop +_020388B0: .word 0x020F2D84 + + thumb_func_start FUN_020388B4 +FUN_020388B4: ; 0x020388B4 + push {r3-r5, lr} + sub sp, #0x10 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_0206BB1C + bl MOD05_021ED49C + add r5, r0, #0x0 + bne _020388CC + bl ErrorHandling +_020388CC: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020613CC + str r5, [sp, #0x0] + ldr r0, [r4, #0xc] + bl LoadPlayerDataAddress + str r0, [sp, #0x4] + ldr r0, [r4, #0xc] + bl FUN_020238F4 + str r0, [sp, #0x8] + ldr r1, [r4, #0x1c] + add r0, r4, #0x0 + ldr r1, [r1, #0x0] + bl FUN_0204AB58 + add r1, sp, #0x0 + strh r0, [r1, #0xc] + ldr r0, [r4, #0x10] + add r1, sp, #0x0 + bl FUN_020863DC + add sp, #0x10 + pop {r3-r5, pc} + + thumb_func_start FUN_02038900 +FUN_02038900: ; 0x02038900 + push {r3, lr} + add r2, r1, #0x0 + ldr r1, _02038910 ; =0x020F2C14 + bl FUN_020373D4 + mov r0, #0x1 + pop {r3, pc} + nop +_02038910: .word 0x020F2C14 + + thumb_func_start FUN_02038914 +FUN_02038914: ; 0x02038914 + push {r4-r7, lr} + sub sp, #0xc + add r6, r0, #0x0 + bl FUN_02046528 + add r4, r0, #0x0 + ldr r0, [r4, #0xc] + bl FUN_020462AC + add r7, r0, #0x0 + add r0, r6, #0x0 + bl FUN_0204652C + add r5, r0, #0x0 + add r0, r6, #0x0 + bl FUN_02046530 + add r6, r0, #0x0 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _02038944 + cmp r0, #0x1 + beq _02038956 + b _020389C6 +_02038944: + add r5, #0xc + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_02038900 + ldr r0, [r6, #0x0] + add r0, r0, #0x1 + str r0, [r6, #0x0] + b _020389C6 +_02038956: + add r0, r4, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _020389C6 + ldr r0, [r4, #0xc] + bl FUN_0202390C + str r0, [sp, #0x0] + bl FUN_020126FC + str r0, [sp, #0x4] + ldr r0, [sp, #0x0] + add r6, r1, #0x0 + bl FUN_02028930 + str r0, [sp, #0x8] + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + ldr r2, [sp, #0x4] + add r3, r6, #0x0 + bl FUN_020127C0 + mov r2, #0x3c + mov r3, #0x0 + bl _ll_sdiv + add r3, r0, #0x0 + ldr r1, [sp, #0x8] + ldr r2, [r5, #0x0] + add r0, r4, #0x0 + bl FUN_02061A8C + ldr r0, [r4, #0xc] + bl FUN_0202390C + ldr r1, [r5, #0x0] + bl FUN_02028918 + add r0, r7, #0x0 + bl FUN_0205F6C8 + ldr r1, [r5, #0x18] + cmp r1, r0 + ble _020389BA + lsl r1, r1, #0x10 + add r0, r7, #0x0 + lsr r1, r1, #0x10 + bl FUN_0205F6D8 +_020389BA: + add r0, r5, #0x0 + bl FUN_02016A18 + add sp, #0xc + mov r0, #0x1 + pop {r4-r7, pc} +_020389C6: + mov r0, #0x0 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_020389CC +FUN_020389CC: ; 0x020389CC + push {r3-r7, lr} + add r7, r0, #0x0 + add r6, r1, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + ldr r0, [r5, #0xc] + bl LoadPlayerDataAddress + str r0, [sp, #0x0] + mov r0, #0x20 + add r1, r0, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + str r4, [r4, #0xc] + ldr r0, [r5, #0xc] + bl FUN_0202390C + bl FUN_02028930 + str r0, [r4, #0x0] + bl FUN_020126FC + str r0, [r4, #0x4] + str r1, [r4, #0x8] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + str r0, [r4, #0x14] + mov r0, #0x0 + str r0, [r4, #0x18] + ldr r0, [sp, #0x0] + bl FUN_02025084 + str r0, [r4, #0x1c] + lsl r1, r6, #0x18 + ldr r0, [r5, #0xc] + lsr r1, r1, #0x18 + bl FUN_02038A3C + str r0, [r4, #0x10] + ldr r0, [r5, #0xc] + bl FUN_02029FC8 + mov r1, #0x5 + bl FUN_0202A170 + ldr r1, _02038A38 ; =FUN_02038914 + add r0, r7, #0x0 + add r2, r4, #0x0 + bl FUN_0204640C + pop {r3-r7, pc} + .balign 4 +_02038A38: .word FUN_02038914 + + thumb_func_start FUN_02038A3C +FUN_02038A3C: ; 0x02038A3C + push {r4-r7, lr} + sub sp, #0x14 + str r1, [sp, #0x0] + bl FUN_0202881C + add r4, r0, #0x0 + bl getseed_LC + str r0, [sp, #0x4] + add r0, r4, #0x0 + bl FUN_020287A4 + bl seedr_LC + ldr r0, _02038AAC ; =0x020F2BE8 + add r1, sp, #0x8 + mov r2, #0xc + bl MI_CpuCopy8 + mov r4, #0x0 + mov r7, #0xc + add r6, sp, #0x8 +_02038A68: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xc + bhs _02038A92 +_02038A72: + bl rand_LC + add r1, r7, #0x0 + bl _s32_div_f + lsl r0, r1, #0x18 + lsr r2, r0, #0x18 + ldrb r1, [r6, r4] + ldrb r0, [r6, r2] + strb r0, [r6, r4] + add r0, r5, #0x1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + strb r1, [r6, r2] + cmp r5, #0xc + blo _02038A72 +_02038A92: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xc + blo _02038A68 + ldr r0, [sp, #0x4] + bl seedr_LC + ldr r0, [sp, #0x0] + add r1, sp, #0x8 + ldrb r0, [r1, r0] + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02038AAC: .word 0x020F2BE8 + + thumb_func_start FUN_02038AB0 +FUN_02038AB0: ; 0x02038AB0 + push {r4, lr} + bl FUN_0204652C + add r4, r0, #0x0 + bl MOD06_0224D79C + cmp r0, #0x1 + bne _02038ACA + add r0, r4, #0x0 + bl MOD06_0224D76C + mov r0, #0x1 + pop {r4, pc} +_02038ACA: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02038AD0 +FUN_02038AD0: ; 0x02038AD0 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r2, r0, #0x0 + ldr r1, [r2, #0xc] + ldr r2, [r2, #0x8] + mov r0, #0x4 + bl MOD06_0224D70C + add r2, r0, #0x0 + ldr r1, _02038AF0 ; =FUN_02038AB0 + add r0, r4, #0x0 + bl FUN_0204640C + pop {r4, pc} + .balign 4 +_02038AF0: .word FUN_02038AB0 + + thumb_func_start FUN_02038AF4 +FUN_02038AF4: ; 0x02038AF4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r0, r1, #0x0 + mov r1, #0x8 + add r6, r2, #0x0 + bl FUN_02016998 + add r4, r0, #0x0 + str r6, [r4, #0x4] + ldr r0, [r5, #0xc] + ldr r1, _02038B18 ; =0x020F2DA4 + str r0, [r4, #0x0] + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020373D4 + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 +_02038B18: .word 0x020F2DA4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index dadbc8aa..9b591348 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -224,7 +224,7 @@ _02038E32: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _02038E44 ; =0x0003643F
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -1187,7 +1187,7 @@ FUN_02039564: ; 0x02039564 bl FUN_02046380
mov r1, #0x0
mov r2, #0x40
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s index 874a600a..02b844ac 100644 --- a/arm9/asm/unk_02046030.s +++ b/arm9/asm/unk_02046030.s @@ -298,13 +298,13 @@ FUN_02046294: ; 0x02046294 thumb_func_start FUN_0204629C
FUN_0204629C: ; 0x0204629C
- ldr r3, _020462A8 ; =Call_FillMemWithValue
+ ldr r3, _020462A8 ; =memset
mov r2, #0xeb
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
-_020462A8: .word Call_FillMemWithValue
+_020462A8: .word memset
thumb_func_start FUN_020462AC
FUN_020462AC: ; 0x020462AC
@@ -4191,7 +4191,7 @@ _0204817A: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -11649,7 +11649,7 @@ _0204BBB8: FUN_0204BBC4: ; 0x0204BBC4
push {r3-r5, lr}
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0204BBE4 ; =0x0000199A
bl _s32_div_f
lsl r0, r0, #0x10
@@ -11773,7 +11773,7 @@ _0204BC94: mov r4, #0x0
b _0204BCD8
_0204BCA4:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
add r1, #0x14
add r4, r0, #0x0
@@ -25762,7 +25762,7 @@ _0205289C: ldr r0, [r0, r1]
pop {r4-r6, pc}
_020528A4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -25776,7 +25776,7 @@ _020528A4: ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528C0:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25790,7 +25790,7 @@ _020528C0: ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528DC:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -25804,7 +25804,7 @@ _020528DC: ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528F8:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25818,7 +25818,7 @@ _020528F8: ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052914:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25832,7 +25832,7 @@ _02052914: ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052930:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -31430,7 +31430,7 @@ _0205518E: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
@@ -36030,7 +36030,7 @@ _0205745A: add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x4a
lsl r0, r0, #0x2
add r6, r4, #0x0
@@ -36045,7 +36045,7 @@ _0205747E: add r0, r4, #0x0
mov r1, #0x0
add r2, r6, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020583B4
@@ -36489,7 +36489,7 @@ _02057846: add r0, r5, #0x0
mov r1, #0x0
mul r2, r4
- bl Call_FillMemWithValue
+ bl memset
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -37306,13 +37306,13 @@ _02057F7C: .word 0x021F9080 thumb_func_start FUN_02057F80
FUN_02057F80: ; 0x02057F80
- ldr r3, _02057F8C ; =Call_FillMemWithValue
+ ldr r3, _02057F8C ; =memset
mov r2, #0x4a
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
-_02057F8C: .word Call_FillMemWithValue
+_02057F8C: .word memset
thumb_func_start FUN_02057F90
FUN_02057F90: ; 0x02057F90
@@ -38313,7 +38313,7 @@ _0205859A: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38337,7 +38337,7 @@ _020585C2: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38361,7 +38361,7 @@ _020585EA: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38385,7 +38385,7 @@ _02058612: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -43558,7 +43558,7 @@ FUN_0205AAB0: ; 0x0205AAB0 push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -43577,7 +43577,7 @@ FUN_0205AAD4: ; 0x0205AAD4 add r5, r1, #0x0
bl FUN_0205AAFC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r5, #0x0
@@ -47960,7 +47960,7 @@ _0205CA9A: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x0]
str r7, [r4, #0x8]
str r0, [r4, #0xc]
@@ -48724,7 +48724,7 @@ FUN_0205D024: ; 0x0205D024 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49207,7 +49207,7 @@ FUN_0205D400: ; 0x0205D400 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49574,7 +49574,7 @@ FUN_0205D6BC: ; 0x0205D6BC ldr r2, [sp, #0x0]
mov r1, #0x0
add r7, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x72
ldr r1, _0205D710 ; =0x021F57F1
lsl r0, r0, #0x2
@@ -49938,7 +49938,7 @@ FUN_0205D9A8: ; 0x0205D9A8 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -50170,7 +50170,7 @@ _0205DB9C: add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2c
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -50449,7 +50449,7 @@ _0205DDC2: mov r6, #0x0
b _0205DDF2
_0205DDCA:
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
@@ -50600,7 +50600,7 @@ _0205DEE0: str r0, [r5, #0x2c]
cmp r0, #0x0
bne _0205DF24
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -51147,7 +51147,7 @@ _0205E2D6: bne _0205E2DC
add r6, r7, #0x0
_0205E2DC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -51320,7 +51320,7 @@ _0205E430: mov r4, #0x0
b _0205E46A
_0205E43C:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
@@ -53730,9 +53730,9 @@ _0205F5F8: .word 0x0000403D FUN_0205F5FC: ; 0x0205F5FC
push {r3-r5, lr}
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r0, #0x0
lsl r1, r1, #0x10
add r0, r5, #0x0
@@ -53785,7 +53785,7 @@ FUN_0205F668: ; 0x0205F668 push {r4, lr}
bl FUN_020462AC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x62
bl _s32_div_f
add r1, r1, #0x2
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0 add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -55519,7 +55519,7 @@ _020603F6: bl FUN_0202AA74
cmp r0, #0x0
beq _02060430
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x4
lsr r6, r0, #0x10
cmp r6, #0x10
@@ -55720,7 +55720,7 @@ FUN_02060588: ; 0x02060588 lsl r0, r0, #0x2
ldr r4, [r7, r0]
_0206059C:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _020605D4 ; =0x000008D4
bl _s32_div_f
lsl r0, r0, #0x10
@@ -55792,7 +55792,7 @@ _02060628: mov r6, #0x0
b _02060658
_02060630:
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790 mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -57690,7 +57690,7 @@ FUN_02061498: ; 0x02061498 ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060D90
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _020614F8 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -58049,7 +58049,7 @@ FUN_02061798: ; 0x02061798 add r0, sp, #0x4
add r4, r1, #0x0
strb r2, [r0, #0x6]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x3
bl _u32_div_f
add r0, sp, #0x4
@@ -58098,7 +58098,7 @@ FUN_020617D8: ; 0x020617D8 ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060E70
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02061830 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -59218,7 +59218,7 @@ FUN_020620A0: ; 0x020620A0 _020620BE:
cmp r4, #0x1
ble _020620D0
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -59252,7 +59252,7 @@ _020620F8: beq _02062100
bl ErrorHandling
_02062100:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59311,7 +59311,7 @@ FUN_02062170: ; 0x02062170 push {r3-r7, lr}
add r6, r0, #0x0
add r7, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02062234 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -59355,7 +59355,7 @@ _020621BC: ; jump table (using 16-bit offset) .short _0206222C - _020621BC - 2; case 10
.short _02062228 - _020621BC - 2; case 11
_020621D4:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x2
lsr r4, r0, #0x10
cmp r4, #0x4
@@ -59496,7 +59496,7 @@ _020622C0: .word 0x020F78A6 FUN_020622C4: ; 0x020622C4
push {r4-r6, lr}
add r6, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59510,7 +59510,7 @@ _020622E0: blt _020622E6
add r5, r5, #0x1
_020622E6:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59620,7 +59620,7 @@ _020623A4: mov r5, #0x0
b _020623DE
_020623B0:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
@@ -59741,7 +59741,7 @@ _02062496: mov r5, #0x0
b _020624C6
_0206249E:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
@@ -59825,7 +59825,7 @@ FUN_0206252C: ; 0x0206252C add r4, r0, #0x0
cmp r4, #0x1
ble _02062552
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -63987,7 +63987,7 @@ _02064622: add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -64007,7 +64007,7 @@ FUN_02064640: ; 0x02064640 mov r1, #0x0
mov r2, #0xc8
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r1, _02064680 ; =FUN_0206478C
add r0, r4, #0x0
bl FUN_020646B8
@@ -64166,7 +64166,7 @@ FUN_0206473C: ; 0x0206473C bl FUN_02064738
mov r1, #0x0
add r2, r4, #0x0
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.balign 4
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054 ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -68773,9 +68773,9 @@ FUN_02066B64: ; 0x02066B64 ldr r0, [sp, #0x30]
cmp r0, #0x0
bne _02066B8E
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r0, r4
str r0, [sp, #0x34]
@@ -68790,9 +68790,9 @@ _02066B8E: ldr r7, _02066D84 ; =0xFFFF0000
add r6, r7, #0x0
_02066BA2:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #0x34]
lsl r0, r0, #0x10
add r3, r4, #0x0
@@ -68895,7 +68895,7 @@ _02066BDE: bl FUN_02067960
b _02066D18
_02066C94:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1f
str r0, [sp, #0x8]
and r0, r1
@@ -68924,7 +68924,7 @@ _02066C94: mov r1, #0x48
add r2, sp, #0x4
bl FUN_02067960
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1f
str r0, [sp, #0x8]
and r0, r1
@@ -69017,9 +69017,9 @@ FUN_02066D90: ; 0x02066D90 add r6, r0, #0x0
add r7, r1, #0x0
_02066D9E:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r5, r0
add r0, r5, #0x0
@@ -69060,9 +69060,9 @@ FUN_02066DD4: ; 0x02066DD4 sub r0, r0, #0x1
str r0, [sp, #0x20]
_02066DF4:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r4, r0
mov r3, #0x3
@@ -72714,7 +72714,7 @@ FUN_020688E8: ; 0x020688E8 str r2, [sp, #0x0]
cmp r6, #0x5
bne _02068900
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
bne _020689D4
@@ -72983,12 +72983,12 @@ FUN_02068AD8: ; 0x02068AD8 lsr r0, r0, #0x10
eor r0, r1
lsr r7, r0, #0x3
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7
and r0, r1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7
and r0, r1
lsl r0, r0, #0x10
@@ -72999,7 +72999,7 @@ _02068B04: bl FUN_0206A92C
tst r0, r7
beq _02068B34
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
beq _02068B26
@@ -73017,7 +73017,7 @@ _02068B26: lsr r5, r0, #0x10
b _02068B56
_02068B34:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
beq _02068B56
@@ -75332,7 +75332,7 @@ FUN_02069C4C: ; 0x02069C4C add r5, r0, #0x0
bl FUN_0206B9AC
add r6, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
lsl r1, r1, #0xe
cmp r0, r1
@@ -75345,7 +75345,7 @@ FUN_02069C4C: ; 0x02069C4C cmp r0, r1
bne _02069CF2
_02069C70:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
bl _s32_div_f
add r0, r5, #0x0
@@ -75375,7 +75375,7 @@ _02069C70: add r5, sp, #0x0
mov r6, #0x7
_02069CB8:
- bl FUN_0201B9EC
+ bl rand_LC
strb r0, [r5, #0x0]
ldrb r2, [r5, #0x0]
add r1, r2, #0x0
@@ -75527,7 +75527,7 @@ FUN_02069DC8: ; 0x02069DC8 add r5, r0, #0x0
bl FUN_0206B9AC
add r7, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x3
bl _s32_div_f
cmp r1, #0x0
@@ -75915,7 +75915,7 @@ FUN_0206A094: ; 0x0206A094 add r7, r2, #0x0
tst r0, r1
bne _0206A12E
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r4, r1, #0x0
@@ -77871,7 +77871,7 @@ FUN_0206AE0C: ; 0x0206AE0C add r7, r1, #0x0
add r4, r0, #0x0
add r5, r2, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
lsl r6, r7, #0x2
str r0, [sp, #0x44]
add r0, r4, r6
@@ -77945,7 +77945,7 @@ _0206AE96: add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -77953,7 +77953,7 @@ _0206AE96: cmp r0, #0x0
ble _0206AECE
_0206AEBC:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78029,7 +78029,7 @@ _0206AF3E: add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78037,7 +78037,7 @@ _0206AF3E: cmp r0, #0x0
ble _0206AF76
_0206AF64:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78122,7 +78122,7 @@ _0206AFFC: add r0, r0, r2
add r0, r1, r0
str r0, [sp, #0x14]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78130,7 +78130,7 @@ _0206AFFC: cmp r0, #0x0
ble _0206B030
_0206B01E:
- bl FUN_0201B9EC
+ bl rand_LC
str r0, [sp, #0x14]
add r0, r4, r5
add r0, #0x29
@@ -78206,7 +78206,7 @@ _0206B0A2: add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78214,7 +78214,7 @@ _0206B0A2: cmp r0, #0x0
ble _0206B0DA
_0206B0C8:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78287,7 +78287,7 @@ _0206B156: ldr r0, [sp, #0x40]
bl FUN_02016A18
ldr r0, [sp, #0x44]
- bl FUN_0201B9E0
+ bl seedr_LC
add sp, #0x50
pop {r3-r7, pc}
@@ -79377,7 +79377,7 @@ _0206B8DA: add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- bl Call_FillMemWithValue
+ bl memset
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0 mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74 ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -102727,7 +102727,7 @@ _020772FE: mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -103277,7 +103277,7 @@ FUN_020777D4: ; 0x020777D4 ldr r0, [r5, #0x4]
cmp r0, #0x0
bne _020777FE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -103289,7 +103289,7 @@ FUN_020777D4: ; 0x020777D4 _020777FE:
cmp r0, #0x1
bne _0207781A
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -122309,7 +122309,7 @@ FUN_02081214: ; 0x02081214 bl FUN_0201681C
bl FUN_020811D8
add r4, r0, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
mov r1, #0x67
lsl r1, r1, #0x6
str r0, [r4, r1]
@@ -122686,7 +122686,7 @@ _020814FE: mov r0, #0x67
lsl r0, r0, #0x6
ldr r0, [r7, r0]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r7, #0x0
bl FUN_0208120C
mov r0, #0x14
@@ -125265,27 +125265,27 @@ FUN_0208285C: ; 0x0208285C push {r4, lr}
bl FUN_020126D8
add r4, r0, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
add r0, #0xa
mul r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B9E0
+ bl seedr_LC
pop {r4, pc}
.balign 4
thumb_func_start FUN_02082878
FUN_02082878: ; 0x02082878
- ldr r3, _0208287C ; =FUN_0201B9EC
+ ldr r3, _0208287C ; =rand_LC
bx r3
.balign 4
-_0208287C: .word FUN_0201B9EC
+_0208287C: .word rand_LC
thumb_func_start FUN_02082880
FUN_02082880: ; 0x02082880
push {r4, lr}
add r4, r1, #0x0
- bl FUN_0201BA10
+ bl rand_ALT
str r0, [r4, #0x0]
lsr r0, r0, #0x10
lsl r0, r0, #0x10
@@ -126927,7 +126927,7 @@ FUN_02083454: ; 0x02083454 cmp r1, #0x1
bne _02083474
_02083464:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xc
bl _s32_div_f
add sp, #0xc
@@ -126972,7 +126972,7 @@ _020834A6: add r4, r4, #0x3
strb r0, [r2, r1]
_020834BE:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0x0
bl _s32_div_f
add r0, sp, #0x0
@@ -128896,7 +128896,7 @@ _02084280: blt _02084280
ldr r0, _020842AC ; =0x00000F6C
str r3, [r4, r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf7
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -131946,7 +131946,7 @@ FUN_020859C0: ; 0x020859C0 ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
bl MOD62_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
@@ -132596,7 +132596,7 @@ _02085F5E: mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
bl LoadPlayerDataAddress
ldr r1, [r4, #0x8]
@@ -132609,7 +132609,7 @@ _02085F5E: mov r1, #0x0
mov r2, #0x40
str r0, [r4, #0xc]
- bl Call_FillMemWithValue
+ bl memset
ldr r1, _02085FA8 ; =FUN_02085DA4
add r0, r6, #0x0
add r2, r4, #0x0
@@ -132752,7 +132752,7 @@ FUN_02086084: ; 0x02086084 mov r1, #0x0
mov r2, #0x80
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498 mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960 mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
diff --git a/arm9/data/rom2_2.s b/arm9/data/rom2_2.s index 9eba6039..dcb48002 100644 --- a/arm9/data/rom2_2.s +++ b/arm9/data/rom2_2.s @@ -828,168 +828,168 @@ UNK_020EDB74: ; 0x020EDB74 .global UNK_020EDC7E UNK_020EDC7E: ; 0x020EDC7E - .byte 0x00, 0x00, 0xB7, 0x00, 0x6D, 0x01, 0x23, 0x02, 0xD9, 0x02, 0x8F, 0x03, 0x45, 0x04, 0xFB, 0x04 - .byte 0xB1, 0x05, 0x67, 0x06, 0x1D, 0x07, 0xD3, 0x07, 0x89, 0x08, 0x3F, 0x09, 0xF5, 0x09, 0xAB, 0x0A - .byte 0x61, 0x0B, 0x17, 0x0C, 0xCD, 0x0C, 0x83, 0x0D, 0x39, 0x0E, 0xEF, 0x0E, 0xA5, 0x0F, 0x5C, 0x10 - .byte 0x12, 0x11, 0xC8, 0x11, 0x7E, 0x12, 0x34, 0x13, 0xEA, 0x13, 0xA0, 0x14, 0x56, 0x15, 0x0C, 0x16 - .byte 0xC2, 0x16, 0x78, 0x17, 0x2E, 0x18, 0xE4, 0x18, 0x9A, 0x19, 0x50, 0x1A, 0x06, 0x1B, 0xBC, 0x1B - .byte 0x72, 0x1C, 0x28, 0x1D, 0xDE, 0x1D, 0x94, 0x1E, 0x4A, 0x1F, 0x00, 0x20, 0xB7, 0x20, 0x6D, 0x21 - .byte 0x23, 0x22, 0xD9, 0x22, 0x8F, 0x23, 0x45, 0x24, 0xFB, 0x24, 0xB1, 0x25, 0x67, 0x26, 0x1D, 0x27 - .byte 0xD3, 0x27, 0x89, 0x28, 0x3F, 0x29, 0xF5, 0x29, 0xAB, 0x2A, 0x61, 0x2B, 0x17, 0x2C, 0xCD, 0x2C - .byte 0x83, 0x2D, 0x39, 0x2E, 0xEF, 0x2E, 0xA5, 0x2F, 0x5C, 0x30, 0x12, 0x31, 0xC8, 0x31, 0x7E, 0x32 - .byte 0x34, 0x33, 0xEA, 0x33, 0xA0, 0x34, 0x56, 0x35, 0x0C, 0x36, 0xC2, 0x36, 0x78, 0x37, 0x2E, 0x38 - .byte 0xE4, 0x38, 0x9A, 0x39, 0x50, 0x3A, 0x06, 0x3B, 0xBC, 0x3B, 0x72, 0x3C, 0x28, 0x3D, 0xDE, 0x3D - .byte 0x94, 0x3E, 0x4A, 0x3F, 0x00, 0x40, 0xB7, 0x40, 0x6D, 0x41, 0x23, 0x42, 0xD9, 0x42, 0x8F, 0x43 - .byte 0x45, 0x44, 0xFB, 0x44, 0xB1, 0x45, 0x67, 0x46, 0x1D, 0x47, 0xD3, 0x47, 0x89, 0x48, 0x3F, 0x49 - .byte 0xF5, 0x49, 0xAB, 0x4A, 0x61, 0x4B, 0x17, 0x4C, 0xCD, 0x4C, 0x83, 0x4D, 0x39, 0x4E, 0xEF, 0x4E - .byte 0xA5, 0x4F, 0x5C, 0x50, 0x12, 0x51, 0xC8, 0x51, 0x7E, 0x52, 0x34, 0x53, 0xEA, 0x53, 0xA0, 0x54 - .byte 0x56, 0x55, 0x0C, 0x56, 0xC2, 0x56, 0x78, 0x57, 0x2E, 0x58, 0xE4, 0x58, 0x9A, 0x59, 0x50, 0x5A - .byte 0x06, 0x5B, 0xBC, 0x5B, 0x72, 0x5C, 0x28, 0x5D, 0xDE, 0x5D, 0x94, 0x5E, 0x4A, 0x5F, 0x00, 0x60 - .byte 0xB7, 0x60, 0x6D, 0x61, 0x23, 0x62, 0xD9, 0x62, 0x8F, 0x63, 0x45, 0x64, 0xFB, 0x64, 0xB1, 0x65 - .byte 0x67, 0x66, 0x1D, 0x67, 0xD3, 0x67, 0x89, 0x68, 0x3F, 0x69, 0xF5, 0x69, 0xAB, 0x6A, 0x61, 0x6B - .byte 0x17, 0x6C, 0xCD, 0x6C, 0x83, 0x6D, 0x39, 0x6E, 0xEF, 0x6E, 0xA5, 0x6F, 0x5C, 0x70, 0x12, 0x71 - .byte 0xC8, 0x71, 0x7E, 0x72, 0x34, 0x73, 0xEA, 0x73, 0xA0, 0x74, 0x56, 0x75, 0x0C, 0x76, 0xC2, 0x76 - .byte 0x78, 0x77, 0x2E, 0x78, 0xE4, 0x78, 0x9A, 0x79, 0x50, 0x7A, 0x06, 0x7B, 0xBC, 0x7B, 0x72, 0x7C - .byte 0x28, 0x7D, 0xDE, 0x7D, 0x94, 0x7E, 0x4A, 0x7F, 0x00, 0x80, 0xB7, 0x80, 0x6D, 0x81, 0x23, 0x82 - .byte 0xD9, 0x82, 0x8F, 0x83, 0x45, 0x84, 0xFB, 0x84, 0xB1, 0x85, 0x67, 0x86, 0x1D, 0x87, 0xD3, 0x87 - .byte 0x89, 0x88, 0x3F, 0x89, 0xF5, 0x89, 0xAB, 0x8A, 0x61, 0x8B, 0x17, 0x8C, 0xCD, 0x8C, 0x83, 0x8D - .byte 0x39, 0x8E, 0xEF, 0x8E, 0xA5, 0x8F, 0x5C, 0x90, 0x12, 0x91, 0xC8, 0x91, 0x7E, 0x92, 0x34, 0x93 - .byte 0xEA, 0x93, 0xA0, 0x94, 0x56, 0x95, 0x0C, 0x96, 0xC2, 0x96, 0x78, 0x97, 0x2E, 0x98, 0xE4, 0x98 - .byte 0x9A, 0x99, 0x50, 0x9A, 0x06, 0x9B, 0xBC, 0x9B, 0x72, 0x9C, 0x28, 0x9D, 0xDE, 0x9D, 0x94, 0x9E - .byte 0x4A, 0x9F, 0x00, 0xA0, 0xB7, 0xA0, 0x6D, 0xA1, 0x23, 0xA2, 0xD9, 0xA2, 0x8F, 0xA3, 0x45, 0xA4 - .byte 0xFB, 0xA4, 0xB1, 0xA5, 0x67, 0xA6, 0x1D, 0xA7, 0xD3, 0xA7, 0x89, 0xA8, 0x3F, 0xA9, 0xF5, 0xA9 - .byte 0xAB, 0xAA, 0x61, 0xAB, 0x17, 0xAC, 0xCD, 0xAC, 0x83, 0xAD, 0x39, 0xAE, 0xEF, 0xAE, 0xA5, 0xAF - .byte 0x5C, 0xB0, 0x12, 0xB1, 0xC8, 0xB1, 0x7E, 0xB2, 0x34, 0xB3, 0xEA, 0xB3, 0xA0, 0xB4, 0x56, 0xB5 - .byte 0x0C, 0xB6, 0xC2, 0xB6, 0x78, 0xB7, 0x2E, 0xB8, 0xE4, 0xB8, 0x9A, 0xB9, 0x50, 0xBA, 0x06, 0xBB - .byte 0xBC, 0xBB, 0x72, 0xBC, 0x28, 0xBD, 0xDE, 0xBD, 0x94, 0xBE, 0x4A, 0xBF, 0x00, 0xC0, 0xB7, 0xC0 - .byte 0x6D, 0xC1, 0x23, 0xC2, 0xD9, 0xC2, 0x8F, 0xC3, 0x45, 0xC4, 0xFB, 0xC4, 0xB1, 0xC5, 0x67, 0xC6 - .byte 0x1D, 0xC7, 0xD3, 0xC7, 0x89, 0xC8, 0x3F, 0xC9, 0xF5, 0xC9, 0xAB, 0xCA, 0x61, 0xCB, 0x17, 0xCC - .byte 0xCD, 0xCC, 0x83, 0xCD, 0x39, 0xCE, 0xEF, 0xCE, 0xA5, 0xCF, 0x5C, 0xD0, 0x12, 0xD1, 0xC8, 0xD1 - .byte 0x7E, 0xD2, 0x34, 0xD3, 0xEA, 0xD3, 0xA0, 0xD4, 0x56, 0xD5, 0x0C, 0xD6, 0xC2, 0xD6, 0x78, 0xD7 - .byte 0x2E, 0xD8, 0xE4, 0xD8, 0x9A, 0xD9, 0x50, 0xDA, 0x06, 0xDB, 0xBC, 0xDB, 0x72, 0xDC, 0x28, 0xDD - .byte 0xDE, 0xDD, 0x94, 0xDE, 0x4A, 0xDF, 0x00, 0xE0, 0xB7, 0xE0, 0x6D, 0xE1, 0x23, 0xE2, 0xD9, 0xE2 - .byte 0x8F, 0xE3, 0x45, 0xE4, 0xFB, 0xE4, 0xB1, 0xE5, 0x67, 0xE6, 0x1D, 0xE7, 0xD3, 0xE7, 0x89, 0xE8 - .byte 0x3F, 0xE9, 0xF5, 0xE9, 0xAB, 0xEA, 0x61, 0xEB, 0x17, 0xEC, 0xCD, 0xEC, 0x83, 0xED, 0x39, 0xEE - .byte 0xEF, 0xEE, 0xA5, 0xEF, 0x5C, 0xF0, 0x12, 0xF1, 0xC8, 0xF1, 0x7E, 0xF2, 0x34, 0xF3, 0xEA, 0xF3 - .byte 0xA0, 0xF4, 0x56, 0xF5, 0x0C, 0xF6, 0xC2, 0xF6, 0x78, 0xF7, 0x2E, 0xF8, 0xE4, 0xF8, 0x9A, 0xF9 - .byte 0x50, 0xFA, 0x06, 0xFB, 0xBC, 0xFB, 0x72, 0xFC, 0x28, 0xFD, 0xDE, 0xFD, 0x94, 0xFE, 0x4A, 0xFF - .byte 0x00, 0x00 - + .short 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB + .short 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB + .short 0x0B61, 0x0C17, 0x0CCD, 0x0D83, 0x0E39, 0x0EEF, 0x0FA5, 0x105C + .short 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0, 0x1556, 0x160C + .short 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC + .short 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D + .short 0x2223, 0x22D9, 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D + .short 0x27D3, 0x2889, 0x293F, 0x29F5, 0x2AAB, 0x2B61, 0x2C17, 0x2CCD + .short 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112, 0x31C8, 0x327E + .short 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E + .short 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE + .short 0x3E94, 0x3F4A, 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F + .short 0x4445, 0x44FB, 0x45B1, 0x4667, 0x471D, 0x47D3, 0x4889, 0x493F + .short 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83, 0x4E39, 0x4EEF + .short 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0 + .short 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50 + .short 0x5B06, 0x5BBC, 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000 + .short 0x60B7, 0x616D, 0x6223, 0x62D9, 0x638F, 0x6445, 0x64FB, 0x65B1 + .short 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5, 0x6AAB, 0x6B61 + .short 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112 + .short 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2 + .short 0x7778, 0x782E, 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72 + .short 0x7D28, 0x7DDE, 0x7E94, 0x7F4A, 0x8000, 0x80B7, 0x816D, 0x8223 + .short 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667, 0x871D, 0x87D3 + .short 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83 + .short 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334 + .short 0x93EA, 0x94A0, 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4 + .short 0x999A, 0x9A50, 0x9B06, 0x9BBC, 0x9C72, 0x9D28, 0x9DDE, 0x9E94 + .short 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9, 0xA38F, 0xA445 + .short 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5 + .short 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5 + .short 0xB05C, 0xB112, 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556 + .short 0xB60C, 0xB6C2, 0xB778, 0xB82E, 0xB8E4, 0xB99A, 0xBA50, 0xBB06 + .short 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A, 0xC000, 0xC0B7 + .short 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667 + .short 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17 + .short 0xCCCD, 0xCD83, 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8 + .short 0xD27E, 0xD334, 0xD3EA, 0xD4A0, 0xD556, 0xD60C, 0xD6C2, 0xD778 + .short 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC, 0xDC72, 0xDD28 + .short 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9 + .short 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889 + .short 0xE93F, 0xE9F5, 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39 + .short 0xEEEF, 0xEFA5, 0xF05C, 0xF112, 0xF1C8, 0xF27E, 0xF334, 0xF3EA + .short 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E, 0xF8E4, 0xF99A + .short 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A + + .balign 4, 0 .global UNK_020EDF50 UNK_020EDF50: ; 0x020EDF50 - .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00 - .byte 0x1E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00 - .byte 0x3A, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00 - .byte 0x54, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00 - .byte 0x69, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00 - .byte 0x79, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00 - .byte 0x82, 0x06, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00 - .byte 0x83, 0x07, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00 - .byte 0x7B, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00 - .byte 0x68, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00 - .byte 0x49, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00 - .byte 0x1D, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00 - .byte 0xE4, 0x0B, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00 - .byte 0x9C, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00 - .byte 0x44, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00 - .byte 0xDB, 0x0D, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00 - .byte 0x61, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00 - .byte 0xD6, 0x0E, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00 - .byte 0x38, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00 - .byte 0x86, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00 - .byte 0xC2, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00 - .byte 0xEA, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00 - .byte 0xFE, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00 - .byte 0xFE, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00 - .byte 0xEA, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00 - .byte 0xC2, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00 - .byte 0x86, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00 - .byte 0x38, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00 - .byte 0xD6, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00 - .byte 0x61, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00 - .byte 0xDB, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00 - .byte 0x44, 0x0D, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00 - .byte 0x9C, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00 - .byte 0xE4, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00 - .byte 0x1D, 0x0B, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00 - .byte 0x49, 0x0A, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00 - .byte 0x68, 0x09, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00 - .byte 0x7B, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00 - .byte 0x83, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00 - .byte 0x82, 0x06, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00 - .byte 0x79, 0x05, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00 - .byte 0x69, 0x04, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00 - .byte 0x54, 0x03, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00 - .byte 0x3A, 0x02, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00 - .byte 0x1E, 0x01, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xB9, 0xFF, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0xFF - .byte 0xE2, 0xFE, 0xFF, 0xFF, 0x9B, 0xFE, 0xFF, 0xFF, 0x54, 0xFE, 0xFF, 0xFF, 0x0D, 0xFE, 0xFF, 0xFF - .byte 0xC6, 0xFD, 0xFF, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF, 0x39, 0xFD, 0xFF, 0xFF, 0xF2, 0xFC, 0xFF, 0xFF - .byte 0xAC, 0xFC, 0xFF, 0xFF, 0x67, 0xFC, 0xFF, 0xFF, 0x21, 0xFC, 0xFF, 0xFF, 0xDC, 0xFB, 0xFF, 0xFF - .byte 0x97, 0xFB, 0xFF, 0xFF, 0x52, 0xFB, 0xFF, 0xFF, 0x0E, 0xFB, 0xFF, 0xFF, 0xCA, 0xFA, 0xFF, 0xFF - .byte 0x87, 0xFA, 0xFF, 0xFF, 0x44, 0xFA, 0xFF, 0xFF, 0x02, 0xFA, 0xFF, 0xFF, 0xC0, 0xF9, 0xFF, 0xFF - .byte 0x7E, 0xF9, 0xFF, 0xFF, 0x3D, 0xF9, 0xFF, 0xFF, 0xFC, 0xF8, 0xFF, 0xFF, 0xBC, 0xF8, 0xFF, 0xFF - .byte 0x7D, 0xF8, 0xFF, 0xFF, 0x3E, 0xF8, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xFF, 0xC2, 0xF7, 0xFF, 0xFF - .byte 0x85, 0xF7, 0xFF, 0xFF, 0x49, 0xF7, 0xFF, 0xFF, 0x0E, 0xF7, 0xFF, 0xFF, 0xD3, 0xF6, 0xFF, 0xFF - .byte 0x98, 0xF6, 0xFF, 0xFF, 0x5F, 0xF6, 0xFF, 0xFF, 0x26, 0xF6, 0xFF, 0xFF, 0xEE, 0xF5, 0xFF, 0xFF - .byte 0xB7, 0xF5, 0xFF, 0xFF, 0x81, 0xF5, 0xFF, 0xFF, 0x4B, 0xF5, 0xFF, 0xFF, 0x17, 0xF5, 0xFF, 0xFF - .byte 0xE3, 0xF4, 0xFF, 0xFF, 0xB0, 0xF4, 0xFF, 0xFF, 0x7E, 0xF4, 0xFF, 0xFF, 0x4C, 0xF4, 0xFF, 0xFF - .byte 0x1C, 0xF4, 0xFF, 0xFF, 0xED, 0xF3, 0xFF, 0xFF, 0xBE, 0xF3, 0xFF, 0xFF, 0x91, 0xF3, 0xFF, 0xFF - .byte 0x64, 0xF3, 0xFF, 0xFF, 0x39, 0xF3, 0xFF, 0xFF, 0x0E, 0xF3, 0xFF, 0xFF, 0xE5, 0xF2, 0xFF, 0xFF - .byte 0xBC, 0xF2, 0xFF, 0xFF, 0x95, 0xF2, 0xFF, 0xFF, 0x6E, 0xF2, 0xFF, 0xFF, 0x49, 0xF2, 0xFF, 0xFF - .byte 0x25, 0xF2, 0xFF, 0xFF, 0x02, 0xF2, 0xFF, 0xFF, 0xDF, 0xF1, 0xFF, 0xFF, 0xBE, 0xF1, 0xFF, 0xFF - .byte 0x9F, 0xF1, 0xFF, 0xFF, 0x80, 0xF1, 0xFF, 0xFF, 0x62, 0xF1, 0xFF, 0xFF, 0x46, 0xF1, 0xFF, 0xFF - .byte 0x2A, 0xF1, 0xFF, 0xFF, 0x10, 0xF1, 0xFF, 0xFF, 0xF7, 0xF0, 0xFF, 0xFF, 0xDF, 0xF0, 0xFF, 0xFF - .byte 0xC8, 0xF0, 0xFF, 0xFF, 0xB3, 0xF0, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0xFF, 0x8C, 0xF0, 0xFF, 0xFF - .byte 0x7A, 0xF0, 0xFF, 0xFF, 0x69, 0xF0, 0xFF, 0xFF, 0x5A, 0xF0, 0xFF, 0xFF, 0x4B, 0xF0, 0xFF, 0xFF - .byte 0x3E, 0xF0, 0xFF, 0xFF, 0x32, 0xF0, 0xFF, 0xFF, 0x28, 0xF0, 0xFF, 0xFF, 0x1F, 0xF0, 0xFF, 0xFF - .byte 0x16, 0xF0, 0xFF, 0xFF, 0x10, 0xF0, 0xFF, 0xFF, 0x0A, 0xF0, 0xFF, 0xFF, 0x06, 0xF0, 0xFF, 0xFF - .byte 0x02, 0xF0, 0xFF, 0xFF, 0x01, 0xF0, 0xFF, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0x01, 0xF0, 0xFF, 0xFF - .byte 0x02, 0xF0, 0xFF, 0xFF, 0x06, 0xF0, 0xFF, 0xFF, 0x0A, 0xF0, 0xFF, 0xFF, 0x10, 0xF0, 0xFF, 0xFF - .byte 0x16, 0xF0, 0xFF, 0xFF, 0x1F, 0xF0, 0xFF, 0xFF, 0x28, 0xF0, 0xFF, 0xFF, 0x32, 0xF0, 0xFF, 0xFF - .byte 0x3E, 0xF0, 0xFF, 0xFF, 0x4B, 0xF0, 0xFF, 0xFF, 0x5A, 0xF0, 0xFF, 0xFF, 0x69, 0xF0, 0xFF, 0xFF - .byte 0x7A, 0xF0, 0xFF, 0xFF, 0x8C, 0xF0, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0xFF, 0xB3, 0xF0, 0xFF, 0xFF - .byte 0xC8, 0xF0, 0xFF, 0xFF, 0xDF, 0xF0, 0xFF, 0xFF, 0xF7, 0xF0, 0xFF, 0xFF, 0x10, 0xF1, 0xFF, 0xFF - .byte 0x2A, 0xF1, 0xFF, 0xFF, 0x46, 0xF1, 0xFF, 0xFF, 0x62, 0xF1, 0xFF, 0xFF, 0x80, 0xF1, 0xFF, 0xFF - .byte 0x9F, 0xF1, 0xFF, 0xFF, 0xBE, 0xF1, 0xFF, 0xFF, 0xDF, 0xF1, 0xFF, 0xFF, 0x02, 0xF2, 0xFF, 0xFF - .byte 0x25, 0xF2, 0xFF, 0xFF, 0x49, 0xF2, 0xFF, 0xFF, 0x6E, 0xF2, 0xFF, 0xFF, 0x95, 0xF2, 0xFF, 0xFF - .byte 0xBC, 0xF2, 0xFF, 0xFF, 0xE5, 0xF2, 0xFF, 0xFF, 0x0E, 0xF3, 0xFF, 0xFF, 0x39, 0xF3, 0xFF, 0xFF - .byte 0x64, 0xF3, 0xFF, 0xFF, 0x91, 0xF3, 0xFF, 0xFF, 0xBE, 0xF3, 0xFF, 0xFF, 0xED, 0xF3, 0xFF, 0xFF - .byte 0x1C, 0xF4, 0xFF, 0xFF, 0x4C, 0xF4, 0xFF, 0xFF, 0x7E, 0xF4, 0xFF, 0xFF, 0xB0, 0xF4, 0xFF, 0xFF - .byte 0xE3, 0xF4, 0xFF, 0xFF, 0x17, 0xF5, 0xFF, 0xFF, 0x4B, 0xF5, 0xFF, 0xFF, 0x81, 0xF5, 0xFF, 0xFF - .byte 0xB7, 0xF5, 0xFF, 0xFF, 0xEE, 0xF5, 0xFF, 0xFF, 0x26, 0xF6, 0xFF, 0xFF, 0x5F, 0xF6, 0xFF, 0xFF - .byte 0x98, 0xF6, 0xFF, 0xFF, 0xD3, 0xF6, 0xFF, 0xFF, 0x0E, 0xF7, 0xFF, 0xFF, 0x49, 0xF7, 0xFF, 0xFF - .byte 0x85, 0xF7, 0xFF, 0xFF, 0xC2, 0xF7, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xFF, 0x3E, 0xF8, 0xFF, 0xFF - .byte 0x7D, 0xF8, 0xFF, 0xFF, 0xBC, 0xF8, 0xFF, 0xFF, 0xFC, 0xF8, 0xFF, 0xFF, 0x3D, 0xF9, 0xFF, 0xFF - .byte 0x7E, 0xF9, 0xFF, 0xFF, 0xC0, 0xF9, 0xFF, 0xFF, 0x02, 0xFA, 0xFF, 0xFF, 0x44, 0xFA, 0xFF, 0xFF - .byte 0x87, 0xFA, 0xFF, 0xFF, 0xCA, 0xFA, 0xFF, 0xFF, 0x0E, 0xFB, 0xFF, 0xFF, 0x52, 0xFB, 0xFF, 0xFF - .byte 0x97, 0xFB, 0xFF, 0xFF, 0xDC, 0xFB, 0xFF, 0xFF, 0x21, 0xFC, 0xFF, 0xFF, 0x67, 0xFC, 0xFF, 0xFF - .byte 0xAC, 0xFC, 0xFF, 0xFF, 0xF2, 0xFC, 0xFF, 0xFF, 0x39, 0xFD, 0xFF, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF - .byte 0xC6, 0xFD, 0xFF, 0xFF, 0x0D, 0xFE, 0xFF, 0xFF, 0x54, 0xFE, 0xFF, 0xFF, 0x9B, 0xFE, 0xFF, 0xFF - .byte 0xE2, 0xFE, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0xB9, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00 - .byte 0x1E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00 - .byte 0x3A, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00 - .byte 0x54, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00 - .byte 0x69, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00 - .byte 0x79, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00 - .byte 0x82, 0x06, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00 - .byte 0x83, 0x07, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00 - .byte 0x7B, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00 - .byte 0x68, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00 - .byte 0x49, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00 - .byte 0x1D, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00 - .byte 0xE4, 0x0B, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00 - .byte 0x9C, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00 - .byte 0x44, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00 - .byte 0xDB, 0x0D, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00 - .byte 0x61, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00 - .byte 0xD6, 0x0E, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00 - .byte 0x38, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00 - .byte 0x86, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00 - .byte 0xC2, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00 - .byte 0xEA, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00 - .byte 0xFE, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00 + .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6 + .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3 + .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E + .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424 + .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536 + .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640 + .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744 + .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E + .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D + .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12 + .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9 + .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4 + .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F + .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B + .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7 + .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42 + .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA + .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21 + .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74 + .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5 + .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1 + .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA + .word 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF + .word 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0 + .word 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE + .word 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97 + .word 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D + .word 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0 + .word 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80 + .word 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE + .word 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B + .word 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7 + .word 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13 + .word 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50 + .word 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F + .word 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1 + .word 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7 + .word 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2 + .word 0x00000783, 0x00000744, 0x00000704, 0x000006C3 + .word 0x00000682, 0x00000640, 0x000005FE, 0x000005BC + .word 0x00000579, 0x00000536, 0x000004F2, 0x000004AE + .word 0x00000469, 0x00000424, 0x000003DF, 0x00000399 + .word 0x00000354, 0x0000030E, 0x000002C7, 0x00000281 + .word 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165 + .word 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047 + .word 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A + .word 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D + .word 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2 + .word 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC + .word 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA + .word 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0 + .word 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC + .word 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2 + .word 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3 + .word 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE + .word 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517 + .word 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C + .word 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391 + .word 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5 + .word 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249 + .word 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE + .word 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146 + .word 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF + .word 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C + .word 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B + .word 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F + .word 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006 + .word 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001 + .word 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010 + .word 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032 + .word 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069 + .word 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3 + .word 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110 + .word 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180 + .word 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202 + .word 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295 + .word 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339 + .word 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED + .word 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0 + .word 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581 + .word 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F + .word 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749 + .word 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E + .word 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D + .word 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44 + .word 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52 + .word 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67 + .word 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F + .word 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B + .word 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9 + .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6 + .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3 + .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E + .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424 + .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536 + .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640 + .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744 + .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E + .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D + .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12 + .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9 + .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4 + .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F + .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B + .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7 + .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42 + .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA + .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21 + .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74 + .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5 + .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1 + .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA + .word 0x00000FFE, 0x00000FFF .global UNK_020EE658 UNK_020EE658: ; 0x020EE658 diff --git a/arm9/global.inc b/arm9/global.inc index bc7eb9da..febe7982 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -28,7 +28,7 @@ .extern CTRDG_ReadAgbFlash
.extern CTRDG_TerminateForPulledOut
.extern CTRDG_WriteAndVerifyAgbFlashAsync
-.extern Call_FillMemWithValue
+.extern memset
.extern ConvertUIntToDecimalString
.extern DC_FlushAll
.extern DC_FlushRange
@@ -873,12 +873,12 @@ .extern FUN_0201B988
.extern FUN_0201B9A0
.extern FUN_0201B9B8
-.extern FUN_0201B9D4
-.extern FUN_0201B9E0
-.extern FUN_0201B9EC
-.extern FUN_0201BA10
-.extern FUN_0201BA1C
-.extern FUN_0201BA60
+.extern getseed_LC
+.extern seedr_LC
+.extern rand_LC
+.extern rand_ALT
+.extern seedr_MT
+.extern rand_MT
.extern FUN_0201BBD0
.extern FUN_0201BC84
.extern FUN_0201BCBC
@@ -6199,3 +6199,4 @@ .extern FUN_020110BC
.extern FUN_0201DED0
.extern FUN_02012710
+.extern FUN_02013764
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index ff24ae38..61edcd55 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -27478,7 +27478,7 @@ _021F0708: mov r0, r4 mov r1, #0 mov r2, #0x210 - bl Call_FillMemWithValue + bl memset mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _021F072C: @@ -28619,7 +28619,7 @@ MOD04_021F1668: ; 0x021F1668 ldmeqia sp!, {r4, r5, r6, pc} mov r1, #0 mov r2, #0x490 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] mov r3, #0 strb r3, [r0] @@ -31477,7 +31477,7 @@ _021F3F08: _021F3F50: mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset ldr r1, [r5, #0x1a0] mov r0, #0 str r1, [r4, #4] @@ -32038,7 +32038,7 @@ _021F4710: _021F4790: mov r1, #0 mov r2, #0x308 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x3c] ldr r1, [sp, #0x2c] str r0, [r4, #0x304] @@ -34817,7 +34817,7 @@ _021F6EE8: _021F6F10: mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset ldr r1, [r6, #0x1c] ldr r0, _021F717C ; =0x00000201 str r1, [r4] @@ -34886,7 +34886,7 @@ _021F6FEC: _021F7014: mov r1, #0 mov r2, #0x204 - bl Call_FillMemWithValue + bl memset ldr r1, [r6, #0x1c] mov r0, #0 str r1, [r4] @@ -35344,7 +35344,7 @@ MOD04_021F7674: ; 0x021F7674 ldmeqia sp!, {r4, r5, r6, r7, pc} mov r1, #0 mov r2, #0x40 - bl Call_FillMemWithValue + bl memset mov r0, #0x64 str r0, [r4] str r6, [r4, #4] @@ -37410,7 +37410,7 @@ _021F939C: ldr r1, [sp, #0x40] ldr r2, [sp, #0x44] mov r0, r7 - bl Call_FillMemWithValue + bl memset mov r0, r6 bl atol str r0, [r8, fp] @@ -38001,7 +38001,7 @@ _021F9C5C: ldr r1, [sp, #0x58] ldr r2, [sp, #0x5c] mov r0, r8 - bl Call_FillMemWithValue + bl memset mov r0, r5 str fp, [r8, #0x24] bl atol @@ -38420,7 +38420,7 @@ _021FA27C: add r8, r7, fp ldr r1, [sp, #0x70] mov r0, r8 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x2c] ldr r1, [r0, #4] mov r0, r6 @@ -38951,7 +38951,7 @@ MOD04_021FA9F0: ; 0x021FA9F0 _021FAA2C: mov r1, #0 mov r2, #0x144 - bl Call_FillMemWithValue + bl memset str r7, [r4] mvn r0, #0 str r0, [r4, #4] @@ -44663,7 +44663,7 @@ MOD04_021FF790: ; 0x021FF790 beq _021FF930 mov r1, #0 mov r2, #0xa0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] str r5, [r0] ldr r0, [sp] @@ -44848,7 +44848,7 @@ MOD04_021FFA10: ; 0x021FFA10 ldmeqia sp!, {r4, r5, r6, r7, pc} mov r1, #0 mov r2, #0x44 - bl Call_FillMemWithValue + bl memset mvn r0, #0 str r0, [r4] str r6, [r4, #0x3c] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index ea3a41c6..4fb96baa 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -11025,7 +11025,7 @@ _021DC998: ldr r2, [r4, #8] ldr r0, [r0, r1] mov r1, #0 - bl Call_FillMemWithValue + bl memset b _021DCA04 _021DC9FE: ldr r0, [r4, #0xc] @@ -11443,7 +11443,7 @@ _021DCD14: _021DCD26: ldr r2, _021DCD60 ; =0x00000F68 mov r1, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [r4, #0xc] ldr r2, _021DCD64 ; =0x00000F62 str r5, [r0] @@ -11498,7 +11498,7 @@ _021DCD80: _021DCD92: mov r1, #0 mov r2, #0x64 - bl Call_FillMemWithValue + bl memset _021DCD9A: mov r0, #1 pop {r4, pc} @@ -11640,7 +11640,7 @@ MOD05_021DCE74: ; 0x021DCE74 mov r1, #0 add r0, #0x10 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r5, #0xfc ldr r1, [r5] ldr r0, [r4, #0x10] @@ -11973,7 +11973,7 @@ _021DD11E: add r0, r4, #0 mov r1, #0 mov r2, #0x3c - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_start MOD05_021DD130 @@ -13157,7 +13157,7 @@ _021DD9CC: ldr r4, [r6, #8] mov r0, #0 str r0, [r4] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r5, r1, #0 @@ -13165,7 +13165,7 @@ _021DD9CC: ldr r0, [r6, #4] lsr r1, r1, #0x10 bl FUN_02020208 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r2, r5, #1 @@ -13197,12 +13197,12 @@ _021DDA12: _021DDA32: mov r0, #0 str r0, [r4, #0xc] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #1 str r0, [r4, #4] - bl FUN_0201BA60 + bl rand_MT ldr r1, _021DDA74 ; =0x0000010E bl _u32_div_f mov r0, #0xf @@ -13266,7 +13266,7 @@ _021DDAA2: ldr r0, [r5, #4] cmp r1, r0 ble _021DDAE4 - bl FUN_0201BA60 + bl rand_MT mov r1, #0xa bl _u32_div_f cmp r1, #7 @@ -13637,7 +13637,7 @@ _021DDD9A: add r4, r0, #0 beq _021DDE6A ldr r5, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 and r1, r0 lsl r1, r1, #0x10 @@ -13650,7 +13650,7 @@ _021DDD9A: str r0, [r5, #0x14] str r0, [r5, #0x18] str r0, [r5, #0x20] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x3c str r0, [sp, #0x14] bl _s32_div_f @@ -13672,12 +13672,12 @@ _021DDDEC: sub r0, #0x20 _021DDDF0: str r0, [r5, #4] - bl FUN_0201BA60 + bl rand_MT mov r1, #1 and r0, r1 add r0, r0, #4 str r0, [r5, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #1 and r0, r1 add r0, r0, #1 @@ -13686,7 +13686,7 @@ _021DDDF0: str r0, [r5] ldr r0, [sp, #8] str r0, [r5, #0x1c] - bl FUN_0201BA60 + bl rand_MT ldr r1, _021DDE74 ; =0x0000019E bl _u32_div_f sub r1, #0x20 @@ -13700,7 +13700,7 @@ _021DDDF0: ldr r0, [sp, #4] cmp r6, r0 blt _021DDE48 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #0x27 @@ -13710,7 +13710,7 @@ _021DDDF0: str r0, [sp, #0x1c] b _021DDE5C _021DDE48: - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #7 @@ -14228,7 +14228,7 @@ _021DE22E: str r0, [r5, #0x14] mov r0, #0 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x2a bl _u32_div_f add r0, r1, #4 @@ -14260,7 +14260,7 @@ _021DE22E: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x69 lsl r1, r1, #2 bl _u32_div_f @@ -15589,7 +15589,7 @@ _021DECE4: ldr r5, [r4, #8] mov r0, #0 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xf @@ -15614,7 +15614,7 @@ _021DECE4: ldr r0, _021DEDA8 ; =0x021F683C ldr r0, [r0, r6] str r0, [r5, #0x14] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xfa lsl r1, r1, #2 bl _u32_div_f @@ -15636,7 +15636,7 @@ _021DED4E: add r0, sp, #0xc add r1, r4, #0 bl MOD05_021DD168 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x18 bl _u32_div_f ldr r0, _021DEDB0 ; =0x00000106 @@ -15644,7 +15644,7 @@ _021DED4E: str r0, [sp, #0xc] lsl r0, r0, #0xc str r0, [sp, #0xc] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xc0 bl _u32_div_f sub r1, #0x40 @@ -16498,12 +16498,12 @@ _021DF430: ldr r5, [r6, #8] mov r0, #0 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT mov r1, #6 bl _u32_div_f add r1, #0x12 str r1, [r5, #4] - bl FUN_0201BA60 + bl rand_MT add r7, r0, #0 mov r1, #3 and r7, r1 @@ -16547,14 +16547,14 @@ _021DF492: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x18 bl _u32_div_f mov r0, #1 lsl r0, r0, #8 add r0, r1, r0 str r0, [sp, #0x18] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xa8 bl _u32_div_f ldr r0, [sp, #0x18] @@ -16951,12 +16951,12 @@ _021DF7D6: ldr r5, [r4, #8] mov r0, #0 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT mov r1, #5 bl _u32_div_f add r0, r1, #7 str r0, [r5, #4] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xfa lsl r1, r1, #2 bl _u32_div_f @@ -16976,30 +16976,30 @@ _021DF80C: str r0, [r5, #8] mov r0, #1 str r0, [r5, #0xc] - bl FUN_0201BA60 + bl rand_MT mov r1, #6 bl _u32_div_f add r0, r1, #3 str r0, [r5, #0x10] - bl FUN_0201BA60 + bl rand_MT mov r1, #5 bl _u32_div_f add r0, r1, #4 str r0, [r5, #0x14] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f str r1, [sp, #8] add r0, sp, #0x10 add r1, r4, #0 bl MOD05_021DD168 - bl FUN_0201BA60 + bl rand_MT mov r1, #6 lsl r1, r1, #6 bl _u32_div_f sub r1, #0x40 str r1, [sp, #0x10] - bl FUN_0201BA60 + bl rand_MT lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x10] @@ -17027,13 +17027,13 @@ _021DF80C: mov r1, #0xce sub r7, r1, r0 bpl _021DF89E - bl FUN_0201BA60 + bl rand_MT neg r1, r7 bl _u32_div_f sub r1, r6, r1 b _021DF8AA _021DF89E: - bl FUN_0201BA60 + bl rand_MT add r1, r7, #0 bl _u32_div_f add r1, r6, r1 @@ -17048,7 +17048,7 @@ _021DF8AA: str r0, [r5, #4] b _021DF8C6 _021DF8BC: - bl FUN_0201BA60 + bl rand_MT mov r1, #3 and r0, r1 str r0, [sp, #8] @@ -17150,12 +17150,12 @@ _021DF958: _021DF978: b _021DFA96 _021DF97A: - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 @@ -17178,12 +17178,12 @@ _021DF9A2: ldr r0, [r4, #4] mov r1, #0x10 bl MOD05_021DC6D4 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 @@ -17212,12 +17212,12 @@ _021DF9E2: ldr r0, [r4, #0xc] cmp r1, r0 bgt _021DFA50 - bl FUN_0201BA60 + bl rand_MT mov r1, #0xf bl _u32_div_f add r1, #0xa str r1, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #7 @@ -17231,12 +17231,12 @@ _021DFA26: ldr r0, [r4, #0xc] cmp r1, r0 blt _021DFA50 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 @@ -17840,7 +17840,7 @@ _021DFEF6: ldr r5, [r4, #8] mov r0, #0 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f add r7, r1, #0 @@ -17888,7 +17888,7 @@ _021DFEF6: str r0, [r5, #8] mov r0, #0 str r0, [r5, #0xc] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 and r1, r0 mov r0, #0x64 @@ -17915,11 +17915,11 @@ _021DFEF6: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201BA60 + bl rand_MT ldr r1, _021DFFFC ; =0x000001FF and r0, r1 str r0, [sp, #0x18] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x30 bl _u32_div_f mov r0, #0 @@ -17992,7 +17992,7 @@ _021E0032: ldr r0, [r4, #4] cmp r1, r0 ble _021E0076 - bl FUN_0201BA60 + bl rand_MT mov r1, #0xa bl _u32_div_f cmp r1, #5 @@ -18496,7 +18496,7 @@ _021E0436: add r4, r0, #0 beq _021E050E ldr r5, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 and r1, r0 lsl r1, r1, #0x10 @@ -18507,7 +18507,7 @@ _021E0436: str r0, [r5, #0x10] mov r0, #0 str r0, [r5, #0x14] - bl FUN_0201BA60 + bl rand_MT lsr r1, r0, #0x1f lsl r2, r0, #0x1f sub r2, r2, r1 @@ -18522,14 +18522,14 @@ _021E0474: mvn r0, r0 _021E0478: str r0, [r5, #4] - bl FUN_0201BA60 + bl rand_MT mov r0, #1 str r0, [r5, #0xc] ldr r0, [sp, #0xc] str r0, [r5] ldr r0, [sp, #8] str r0, [r5, #0x18] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa @@ -18543,7 +18543,7 @@ _021E0478: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201BA60 + bl rand_MT ldr r1, _021E0518 ; =0x0000019E bl _u32_div_f ldr r0, [sp, #0x10] @@ -18556,7 +18556,7 @@ _021E0478: ldr r0, [sp, #4] cmp r6, r0 blt _021E04DE - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #0x27 @@ -18565,7 +18565,7 @@ _021E0478: str r0, [sp, #0x24] b _021E04F0 _021E04DE: - bl FUN_0201BA60 + bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #7 @@ -18731,7 +18731,7 @@ _021E060E: str r0, [r4, #4] mov r0, #0 str r0, [r4, #0x14] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x1e lsl r1, r1, #4 bl _u32_div_f @@ -18739,7 +18739,7 @@ _021E060E: str r1, [r4, #0x18] mov r0, #0 str r0, [r4, #0x1c] - bl FUN_0201BA60 + bl rand_MT mov r1, #3 bl _u32_div_f cmp r1, #0 @@ -18788,13 +18788,13 @@ _021E0678: ldr r0, [r4, #8] cmp r0, #0xc8 bne _021E069E - bl FUN_0201BA60 + bl rand_MT mov r1, #0xf bl _u32_div_f str r1, [r4, #0x10] b _021E06BE _021E069E: - bl FUN_0201BA60 + bl rand_MT add r7, r0, #0 ldr r1, [r4, #0x18] mov r0, #0x32 @@ -19012,7 +19012,7 @@ _021E084C: add r5, r0, #0 beq _021E0932 ldr r4, [r5, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xe bl _u32_div_f add r6, r1, #0 @@ -19024,7 +19024,7 @@ _021E084C: lsr r0, r0, #0x1e add r0, r6, r0 asr r6, r0, #2 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x19 bl _u32_div_f add r2, r1, #0 @@ -19038,7 +19038,7 @@ _021E084C: str r0, [r4, #4] mov r0, #0 str r0, [r4, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #1 and r0, r1 str r0, [r4, #0xc] @@ -19060,36 +19060,36 @@ _021E08BA: ; jump table .short _021E08E0 - _021E08BA - 2 ; case 3 .short _021E08FA - _021E08BA - 2 ; case 4 _021E08C4: - bl FUN_0201BA60 + bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #0xc0 bl _u32_div_f add r1, #8 str r1, [sp, #0xc] b _021E0912 _021E08E0: - bl FUN_0201BA60 + bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x7f and r0, r1 add r0, #0x40 str r0, [sp, #0xc] b _021E0912 _021E08FA: - bl FUN_0201BA60 + bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] - bl FUN_0201BA60 + bl rand_MT mov r1, #0x1f and r0, r1 add r0, #0xa0 @@ -20116,7 +20116,7 @@ MOD05_021E1100: ; 0x021E1100 add r4, r1, #0 mov r1, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset mov r2, #0x6b add r1, r5, #0 lsl r2, r2, #2 @@ -20196,7 +20196,7 @@ MOD05_021E117C: ; 0x021E117C ldr r2, _021E11C8 ; =0x0000062C add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset pop {r4, pc} nop _021E11C4: .word 0xFFFF1FFF @@ -20445,7 +20445,7 @@ _021E1396: mov r2, #0x47 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset str r7, [r4, #4] ldr r0, [r7, #0xc] bl FUN_020462AC @@ -21000,7 +21000,7 @@ _021E17BE: mov r7, #1 b _021E182E _021E17DE: - bl FUN_0201B9EC + bl rand_LC mov r1, #0x64 bl _s32_div_f cmp r1, #0x32 @@ -21576,7 +21576,7 @@ _021E1C18: mov r2, #0xb6 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset str r5, [sp] add r0, sp, #0x20 ldrb r0, [r0, #0x10] @@ -24683,7 +24683,7 @@ MOD05_021E3474: ; 0x021E3474 mov r1, #0 mov r2, #0x4c add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021E34B4 ; =MOD05_021E34B8 add r1, r4, #0 mov r2, #5 @@ -25083,7 +25083,7 @@ MOD05_021E3768: ; 0x021E3768 mov r1, #0 mov r2, #0x30 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021E379C ; =0x04000048 mov r1, #0x3f ldrh r2, [r0] @@ -25419,7 +25419,7 @@ MOD05_021E39FC: ; 0x021E39FC mov r1, #0 mov r2, #0x48 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021E3A40 ; =0x04000048 mov r5, #0x3f ldrh r2, [r0] @@ -26327,7 +26327,7 @@ MOD05_021E4140: ; 0x021E4140 mov r1, #0 mov r2, #0x30 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r4, pc} .balign 4, 0 @@ -26445,7 +26445,7 @@ MOD05_021E4220: ; 0x021E4220 mov r1, #0 mov r2, #0x30 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r4, pc} .balign 4, 0 @@ -26645,7 +26645,7 @@ MOD05_021E4394: ; 0x021E4394 mov r1, #0 mov r2, #0xcc add r7, r0, #0 - bl Call_FillMemWithValue + bl memset mov r4, #0 add r5, r7, #0 _021E43AE: @@ -27042,7 +27042,7 @@ MOD05_021E4688: ; 0x021E4688 mov r1, #0 mov r2, #0x24 add r7, r0, #0 - bl Call_FillMemWithValue + bl memset mov r4, #0 add r5, r7, #0 _021E46A0: @@ -27176,7 +27176,7 @@ MOD05_021E4788: ; 0x021E4788 mov r1, #0 mov r2, #0xe8 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r4, pc} @@ -27638,7 +27638,7 @@ MOD05_021E4AE4: ; 0x021E4AE4 mov r1, #0 mov r2, #0x2c add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] lsl r1, r5, #3 str r0, [r4] @@ -27766,7 +27766,7 @@ MOD05_021E4BE8: ; 0x021E4BE8 add r1, r4, #0 add r2, r5, #0 add r6, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r6, #0 pop {r4, r5, r6, pc} @@ -28364,7 +28364,7 @@ _021E500A: add r0, r4, #0 mov r1, #0 mov r2, #0x28 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] add r2, r4, #0 str r0, [r4] @@ -32832,7 +32832,7 @@ _021E72CC: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 @@ -33109,7 +33109,7 @@ _021E74E8: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 @@ -35786,7 +35786,7 @@ _021E8912: str r0, [r4, #0xc] mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset ldr r5, [r4, #0xc] bl MOD05_021E3768 str r0, [r5, #0x1c] @@ -35968,7 +35968,7 @@ _021E8A92: str r0, [r4, #0xc] mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset ldr r5, [r4, #0xc] bl MOD05_021E3768 str r0, [r5, #0x1c] @@ -36851,7 +36851,7 @@ _021E916E: str r0, [r7, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, [r7, #0x10] ldr r4, [r7, #0xc] ldr r1, [r0, #0x20] @@ -37257,7 +37257,7 @@ _021E94D4: str r0, [r6, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r0, [r6, #0x10] ldr r4, [r6, #0xc] ldr r1, [r0, #0x20] @@ -37617,7 +37617,7 @@ _021E97D6: str r0, [r7, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r0, [r7, #0x10] ldr r4, [r7, #0xc] ldr r1, [r0, #0x20] @@ -38075,7 +38075,7 @@ _021E9B98: str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #6 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x1c] ldr r4, [r0, #0xc] ldr r0, [r0, #0x10] @@ -38733,7 +38733,7 @@ _021EA110: str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #0x10] ldr r4, [r5, #0xc] ldr r1, [r0, #0x20] @@ -39064,7 +39064,7 @@ _021EA3D8: str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x18] mov r2, #1 ldr r4, [r0, #0xc] @@ -39650,7 +39650,7 @@ _021EA8B2: str r0, [r4, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r5, [r4, #0xc] mov r1, #1 add r0, r5, #0 @@ -39936,7 +39936,7 @@ _021EAB14: str r0, [r6, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r4, [r6, #0xc] mov r1, #4 add r0, r4, #0 @@ -40244,7 +40244,7 @@ _021EAD8E: str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #0x14] mov r1, #6 ldr r4, [r0, #0xc] @@ -40732,7 +40732,7 @@ _021EB18E: str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r4, [r5, #0xc] mov r1, #1 add r0, r4, #0 @@ -41258,7 +41258,7 @@ _021EB5E4: mov r1, #0 mov r2, #0x38 str r0, [r4, #0xc] - bl Call_FillMemWithValue + bl memset mov r0, #2 mov r1, #0 bl FUN_0201E6E4 @@ -41478,7 +41478,7 @@ _021EB7A2: str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r4, [r5, #0xc] mov r1, #1 add r0, r4, #0 @@ -42161,7 +42161,7 @@ _021EBD20: str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r4, [r5, #0xc] mov r1, #4 add r0, r4, #0 @@ -43595,7 +43595,7 @@ _021EC8EC: blt _021EC8D8 cmp r7, #2 bne _021EC90E - bl FUN_0201B9EC + bl rand_LC ldr r1, _021EC940 ; =0x00007FFF cmp r0, r1 blo _021EC90A @@ -43615,7 +43615,7 @@ _021EC90E: bl FUN_020672BC cmp r0, #0xe5 bne _021EC938 - bl FUN_0201B9EC + bl rand_LC ldr r1, _021EC940 ; =0x00007FFF cmp r0, r1 blo _021EC932 @@ -43642,7 +43642,7 @@ MOD05_021EC944: ; 0x021EC944 bl MOD05_021EC8A8 add r1, r0, #0 bpl _021EC960 - bl FUN_0201BA60 + bl rand_MT add r1, r0, #0 ldr r0, [sp] bl FUN_02023CB8 @@ -43658,7 +43658,7 @@ _021EC960: add r6, r0, #0 lsl r7, r7, #4 _021EC978: - bl FUN_0201BA60 + bl rand_MT add r4, r0, #0 bl FUN_02068884 cmp r6, r0 @@ -43730,7 +43730,7 @@ _021EC9E0: add r6, sp, #8 add r7, #2 _021EC9F4: - bl FUN_0201B9EC + bl rand_LC mov r1, #6 sub r1, r1, r5 bl _s32_div_f @@ -43749,7 +43749,7 @@ _021EC9F4: add r6, #1 mov r7, #0x1f _021ECA1E: - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r0, r0, #0x1f sub r0, r0, r1 @@ -44532,7 +44532,7 @@ MOD05_021ED00C: ; 0x021ED00C mov r5, #0 _021ED044: add r0, r4, #0 - bl FUN_0201BA10 + bl rand_ALT add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 @@ -44987,7 +44987,7 @@ _021ED3AC: ldr r0, [sp] bl MOD05_021ED320 add r4, r0, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x64 mul r1, r0 add r0, r1, #0 @@ -45434,7 +45434,7 @@ _021ED6B4: beq _021ED788 _021ED774: add r0, r7, #0 - bl FUN_0201BA10 + bl rand_ALT add r7, r0, #0 ldr r0, [sp, #0x2c] add r1, r7, #0 @@ -52111,7 +52111,7 @@ MOD05_021F0ADC: ; 0x021F0ADC mov r0, #0 mvn r0, r0 strb r0, [r4] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1c sub r1, r1, r2 @@ -52240,7 +52240,7 @@ _021F0BE0: blt _021F0C0C mov r0, #0 strb r0, [r4, #1] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x1c sub r2, r2, r1 @@ -57512,7 +57512,7 @@ _021F33E2: ldr r2, [sp, #8] add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] strh r6, [r4] strh r0, [r4, #2] @@ -57639,7 +57639,7 @@ MOD05_021F34DC: ; 0x021F34DC mov r1, #0 mov r2, #0x58 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp, #8] str r0, [r5] add r0, r7, #0 @@ -58023,7 +58023,7 @@ _021F382E: ldr r0, [r4, #0xc] mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, pc} .balign 4, 0 @@ -58036,7 +58036,7 @@ MOD05_021F383C: ; 0x021F383C add r0, r4, #0 mov r1, #0 mov r2, #0x60 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .balign 4, 0 @@ -59993,7 +59993,7 @@ MOD05_021F46C8: ; 0x021F46C8 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r2, #0x63 mov r0, #0 add r1, r4, #0 @@ -60072,13 +60072,13 @@ _021F4732: add r0, #0xc mov r1, #0 lsl r2, r2, #6 - bl Call_FillMemWithValue + bl memset mov r2, #0x63 lsl r2, r2, #2 add r0, r4, r2 mov r1, #0 sub r2, #0xc - bl Call_FillMemWithValue + bl memset mov r0, #1 str r0, [r4] mov r0, #0 @@ -60929,7 +60929,7 @@ _021F4DDE: bl FUN_0202A9C0 cmp r5, r0 bne _021F4E42 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -61031,7 +61031,7 @@ MOD05_021F4EE4: ; 0x021F4EE4 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -61085,7 +61085,7 @@ _021F4F3E: MOD05_021F4F44: ; 0x021F4F44 push {r3, r4, r5, lr} add r4, r0, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -61148,7 +61148,7 @@ _021F4FA8: MOD05_021F4FAC: ; 0x021F4FAC push {r3, r4, r5, lr} add r4, r0, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -61752,7 +61752,7 @@ MOD05_021F5400: ; 0x021F5400 mov r1, #0 mov r2, #0x78 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r1, [r5, #8] add r0, r4, #0 bl FUN_020B80B4 @@ -62048,7 +62048,7 @@ MOD05_021F5608: ; 0x021F5608 mov r1, #0x11 mov r2, #0x20 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #1 str r0, [sp] add r0, r5, #0 @@ -62512,7 +62512,7 @@ _021F59C4: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] str r0, [r4] ldr r0, [sp, #4] @@ -63125,7 +63125,7 @@ _021F5E24: MOD05_021F5E30: ; 0x021F5E30 push {r4, lr} add r4, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r0, r0, #0x1e sub r0, r0, r1 @@ -63454,7 +63454,7 @@ _021F6088: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -63654,7 +63654,7 @@ MOD05_021F61F4: ; 0x021F61F4 add r4, r0, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset str r6, [r4] mov r0, #0 str r0, [r4, #0xc] @@ -63896,7 +63896,7 @@ _021F63AC: str r0, [r5, #4] mov r1, #0 add r2, r6, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index b31dfde1..d9c1c402 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -589,7 +589,7 @@ MOD06_02239B08: ; 0x02239B08 add r0, r4, #0 mov r1, #0 mov r2, #0x74 - bl Call_FillMemWithValue + bl memset mov r0, #4 add r1, r5, #0 bl MOD06_0223AC78 @@ -1813,7 +1813,7 @@ MOD06_0223A428: ; 0x0223A428 mov r1, #0 mov r2, #0x4c add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_0201EB64 str r0, [r4] @@ -2101,7 +2101,7 @@ MOD06_0223A644: ; 0x0223A644 mov r1, #0 mov r2, #0x24 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #3 str r0, [r4, #0x1c] add r0, r4, #0 @@ -2253,7 +2253,7 @@ MOD06_0223A75C: ; 0x0223A75C mov r1, #0 lsl r2, r2, #6 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x4b str r5, [r4] mov r1, #5 @@ -2683,7 +2683,7 @@ _0223AA8A: add r0, r7, #0 mov r1, #0 mov r2, #0xdc - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD06_0223AAB0 @@ -2931,7 +2931,7 @@ MOD06_0223AC78: ; 0x0223AC78 add r4, r0, #0 mov r1, #0 lsl r2, r2, #6 - bl Call_FillMemWithValue + bl memset str r6, [r4, #4] mov r0, #0 str r0, [r4] @@ -3614,7 +3614,7 @@ MOD06_0223B19C: ; 0x0223B19C add r6, r0, #0 mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset add r0, r6, #0 mov r1, #0x62 add r2, r5, #0 @@ -3845,7 +3845,7 @@ MOD06_0223B348: ; 0x0223B348 add r4, r0, #0 mov r1, #0 mov r2, #0x90 - bl Call_FillMemWithValue + bl memset add r0, r4, #4 add r1, r5, #0 bl MOD06_0223A3F0 @@ -3993,7 +3993,7 @@ MOD06_0223B458: ; 0x0223B458 add r6, r0, #0 mov r1, #0 mov r2, #0xd4 - bl Call_FillMemWithValue + bl memset add r0, r6, #0 add r0, #0xc4 add r1, r7, #0 @@ -4514,7 +4514,7 @@ MOD06_0223B828: ; 0x0223B828 add r6, r0, #0 mov r1, #0 mov r2, #0xec - bl Call_FillMemWithValue + bl memset add r0, r6, #0 add r0, #0xd8 str r4, [r0] @@ -5149,7 +5149,7 @@ _0223BD2E: add r2, sp, #0x20 bl MOD06_0223CF14 add r6, r0, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6016,7 +6016,7 @@ MOD06_0223C470: ; 0x0223C470 add r0, r5, #0 add r0, #0x74 strh r1, [r0] - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6060,7 +6060,7 @@ _0223C4D4: bls _0223C4EC mov r4, #0x64 _0223C4EC: - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6144,7 +6144,7 @@ _0223C580: MOD06_0223C584: ; 0x0223C584 push {r3, r4, r5, lr} add r4, r1, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6165,7 +6165,7 @@ _0223C5A8: thumb_func_start MOD06_0223C5AC MOD06_0223C5AC: ; 0x0223C5AC push {r4, lr} - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6255,7 +6255,7 @@ _0223C644: thumb_func_start MOD06_0223C648 MOD06_0223C648: ; 0x0223C648 push {r4, lr} - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6300,7 +6300,7 @@ MOD06_0223C694: ; 0x0223C694 push {r4, r5, r6, lr} add r5, r0, #0 mov r4, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -6452,7 +6452,7 @@ MOD06_0223C78C: ; 0x0223C78C ldrb r0, [r1, #0xe] cmp r0, #0x1c bne _0223C7C6 - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r5, r0, #0x10 cmp r5, #2 @@ -6471,7 +6471,7 @@ _0223C7AC: lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _0223C7C6: - bl FUN_0201B9EC + bl rand_LC ldr r1, _0223C7E4 ; =0x00000A3E bl _s32_div_f lsl r0, r0, #0x10 @@ -6504,7 +6504,7 @@ _0223C7FC: lsl r0, r2, #0x18 _0223C802: lsr r4, r0, #0x18 - bl FUN_0201B9EC + bl rand_LC sub r1, r4, r5 add r1, r1, #1 lsl r1, r1, #0x18 @@ -6523,7 +6523,7 @@ _0223C802: cmp r0, #0x2e bne _0223C84C _0223C82C: - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r7, r0, #0x10 cmp r7, #2 @@ -6574,7 +6574,7 @@ MOD06_0223C854: ; 0x0223C854 beq _0223C8E0 cmp r0, #0xff beq _0223C8E0 - bl FUN_0201B9EC + bl rand_LC ldr r1, _0223C964 ; =0x00005556 bl _s32_div_f lsl r0, r0, #0x10 @@ -6597,7 +6597,7 @@ _0223C8A6: _0223C8BE: cmp r0, #0x1c bne _0223C8E0 - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r4, r0, #0x10 cmp r4, #2 @@ -6708,7 +6708,7 @@ _0223C998: ldrb r0, [r5, #0xe] cmp r0, #0x38 bne _0223CA28 - bl FUN_0201B9EC + bl rand_LC ldr r1, _0223CA68 ; =0x00005556 bl _s32_div_f lsl r0, r0, #0x10 @@ -7125,7 +7125,7 @@ MOD06_0223CCDC: ; 0x0223CCDC mov r2, #0 add r3, sp, #0x10 bl MOD06_0223D2DC - bl FUN_0201B9EC + bl rand_LC ldr r1, _0223CD78 ; =0x00001746 bl _s32_div_f lsl r0, r0, #0x10 @@ -7149,7 +7149,7 @@ _0223CD1A: cmp r0, #0x2e bne _0223CD4C _0223CD36: - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r6, r0, #0x10 cmp r6, #2 @@ -7360,7 +7360,7 @@ _0223CEB6: mov r0, #0 pop {r4, r5, r6, r7, pc} _0223CEBC: - bl FUN_0201B9EC + bl rand_LC add r1, r4, #0 bl _s32_div_f add r0, sp, #0x10 @@ -7384,7 +7384,7 @@ MOD06_0223CED4: ; 0x0223CED4 ldrb r0, [r0, #0x14] cmp r1, r0 bne _0223CF0E - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r4, r0, #0x10 cmp r4, #2 @@ -7499,7 +7499,7 @@ _0223CFAC: sub r0, r0, #5 cmp r4, r0 bgt _0223CFCA - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r4, r0, #0x10 cmp r4, #2 @@ -7698,7 +7698,7 @@ _0223D134: mov r0, #0 pop {r4, r5, r6, r7, pc} _0223D148: - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r4, r0, #0x10 cmp r4, #2 @@ -7722,7 +7722,7 @@ _0223D16E: mov r4, #0 b _0223D19E _0223D176: - bl FUN_0201B9EC + bl rand_LC add r4, r0, #0 ldr r0, _0223D1B8 ; =0x0000FFFF add r1, r5, #0 @@ -7823,7 +7823,7 @@ _0223D222: lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] - bl FUN_0201B9EC + bl rand_LC ldr r1, [sp, #4] bl _s32_div_f ldrb r0, [r5, #0x11] @@ -7870,7 +7870,7 @@ MOD06_0223D27C: ; 0x0223D27C cmp r0, #0x2e bne _0223D2D8 _0223D296: - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r6, r0, #0x10 cmp r6, #2 @@ -8037,7 +8037,7 @@ MOD06_0223D3B4: ; 0x0223D3B4 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r4, pc} @@ -18827,7 +18827,7 @@ _02242C0E: mov r2, #0x11 mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset add r2, sp, #0x10 ldrb r2, [r2, #0x10] ldr r3, [sp, #0x24] @@ -23252,7 +23252,7 @@ _02244DF4: mov r2, #2 b _02244E10 _02244DF8: - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 @@ -23611,7 +23611,7 @@ _02245098: add r2, sp, #0x24 add r3, sp, #0x28 bl MOD06_0224CDB8 - bl FUN_0201B9EC + bl rand_LC ldr r1, _02245110 ; =0x00001556 bl _s32_div_f lsl r0, r0, #0x10 @@ -23644,7 +23644,7 @@ MOD06_02245114: ; 0x02245114 add r7, r0, #0 mov r4, #0 _02245132: - bl FUN_0201B9EC + bl rand_LC ldr r1, _0224518C ; =0x0000071D bl _s32_div_f lsl r0, r0, #0x10 @@ -26507,7 +26507,7 @@ MOD06_022466C0: ; 0x022466C0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset str r5, [r4, #0x60] add r0, r4, #0 pop {r3, r4, r5, pc} @@ -30637,7 +30637,7 @@ _02248644: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -30818,7 +30818,7 @@ _0224879E: add sp, #8 pop {r3, r4, r5, r6, r7, pc} _022487AC: - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -31661,7 +31661,7 @@ _02248E32: ldrb r0, [r0] pop {r3, r4, r5, pc} _02248E3E: - bl FUN_0201BA60 + bl rand_MT add r1, r4, #0 bl _u32_div_f add r0, sp, #0 @@ -32194,7 +32194,7 @@ MOD06_022491FC: ; 0x022491FC mov r0, #0 pop {r4, pc} _0224921E: - bl FUN_0201BA60 + bl rand_MT add r1, r4, #0 bl _u32_div_f add r0, sp, #0 @@ -39609,7 +39609,7 @@ _0224CBA0: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -39651,7 +39651,7 @@ _0224CBE0: _0224CBF0: mov r7, #0 _0224CBF2: - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #4 lsr r5, r0, #0x10 cmp r5, #0x10 @@ -39709,7 +39709,7 @@ MOD06_0224CC60: ; 0x0224CC60 push {r4, r5, r6, r7, lr} sub sp, #0x4c add r5, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsl r0, r0, #1 lsr r4, r0, #0x10 cmp r4, #2 @@ -41087,7 +41087,7 @@ MOD06_0224D70C: ; 0x0224D70C add r4, r0, #0 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset str r5, [r4, #0x18] str r7, [r4, #0x14] str r6, [r4, #8] @@ -41132,7 +41132,7 @@ MOD06_0224D76C: ; 0x0224D76C add r0, r4, #0 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} @@ -43366,7 +43366,7 @@ MOD06_0224E948: ; 0x0224E948 mov r2, #0xdc add r4, r3, #0 ldr r7, [sp, #0x28] - bl Call_FillMemWithValue + bl memset add r0, r6, #0 add r0, #0x78 mov r1, #0x8d @@ -43519,7 +43519,7 @@ MOD06_0224EA64: ; 0x0224EA64 add r0, r4, #0 mov r1, #0 mov r2, #0xf0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r0, #0xdc mov r1, #4 @@ -43633,7 +43633,7 @@ MOD06_0224EB30: ; 0x0224EB30 add r0, r4, #0 mov r1, #0 mov r2, #0xf0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r0, #0xdc mov r1, #4 @@ -43667,7 +43667,7 @@ MOD06_0224EB78: ; 0x0224EB78 add r0, r4, #0 mov r1, #0 mov r2, #0xf0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r0, #0xdc mov r1, #4 @@ -43805,7 +43805,7 @@ MOD06_0224EC5C: ; 0x0224EC5C strb r1, [r0, #1] ldr r0, [sp, #8] mov r1, #0 - bl Call_FillMemWithValue + bl memset mov r1, #0x6e ldr r0, [sp, #8] lsl r1, r1, #2 @@ -44057,7 +44057,7 @@ MOD06_0224EE54: ; 0x0224EE54 mov r2, #0xcc add r7, r0, #0 add r5, r3, #0 - bl Call_FillMemWithValue + bl memset ldr r1, [sp] add r0, r7, #0 bl MOD05_021F5400 @@ -44103,7 +44103,7 @@ _0224EEAC: add r0, r7, #0 mov r1, #0 mov r2, #0xcc - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD06_0224EEC8 @@ -44228,7 +44228,7 @@ MOD06_0224EF98: ; 0x0224EF98 add r0, r5, #0 mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, _0224F024 ; =0x00000CFC mov r1, #4 add r0, r5, r0 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 1afc6bca..9ec5f07f 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -16,7 +16,7 @@ MOD07_02211E60: ; 0x02211E60 ldr r2, _02211E8C ; =0x00000B84 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _02211E90 ; =0x00000B7F str r5, [r4] mov r1, #0 @@ -733,7 +733,7 @@ _02212450: _02212454: sub r0, r0, #6 ldrsb r4, [r5, r0] - bl FUN_0201B9EC + bl rand_LC add r1, r4, #0 bl _s32_div_f lsr r0, r4, #0x1f @@ -744,7 +744,7 @@ _02212454: asr r6, r0, #0x10 ldr r0, _02212580 ; =0x00000B7D ldrsb r4, [r5, r0] - bl FUN_0201B9EC + bl rand_LC add r1, r4, #0 bl _s32_div_f lsr r0, r4, #0x1f @@ -3504,7 +3504,7 @@ _02213AC2: add r0, r6, r4 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -3795,7 +3795,7 @@ MOD07_02213D30: ; 0x02213D30 add r0, r4, r0 mov r1, #0 mov r2, #0x90 - bl Call_FillMemWithValue + bl memset ldr r1, [r4] add r0, r4, #0 ldr r1, [r1, #4] diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index b9678da6..9bc92d95 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -170,7 +170,7 @@ _02211F78: mov r2, #0x69
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0x47
str r5, [r4]
mov r0, #0
@@ -195,7 +195,7 @@ _02211FAC: mov r2, #0x47
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0
str r1, [r4, #0xc]
str r1, [r4, #0x18]
@@ -991,7 +991,7 @@ MOD08_0221252C: ; 0x0221252C _02212544:
mov r1, #0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r0, #0x90
ldrh r0, [r0]
@@ -4277,7 +4277,7 @@ MOD08_02213DA8: ; 0x02213DA8 _02213DC0:
mov r1, #0
mov r2, #0x4c
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [r4]
strb r0, [r4, #5]
@@ -6119,7 +6119,7 @@ MOD08_02214BC4: ; 0x02214BC4 mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6194,7 +6194,7 @@ MOD08_02214C64: ; 0x02214C64 mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #2
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6252,7 +6252,7 @@ MOD08_02214CDC: ; 0x02214CDC mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6328,7 +6328,7 @@ MOD08_02214D80: ; 0x02214D80 mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #4
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6377,7 +6377,7 @@ MOD08_02214DE4: ; 0x02214DE4 mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #5
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -14196,7 +14196,7 @@ MOD08_022187F4: ; 0x022187F4 ldr r2, _02218864 ; =0x00000624
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
cmp r4, #0
bne _02218816
bl ErrorHandling
@@ -14320,7 +14320,7 @@ _022188F8: add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x34]
bl MOD08_022189A0
add r6, r0, #0
@@ -22324,7 +22324,7 @@ _0221C8F4: ldr r1, _0221CAF4 ; =0x0000A0C0
add r0, #0x44
strh r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r1, #0x23
@@ -22364,7 +22364,7 @@ _0221C94E: ldr r1, _0221CAF8 ; =0x000056C0
add r0, #0x44
strh r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r1, #0x23
@@ -22372,7 +22372,7 @@ _0221C94E: str r1, [r4, #0x3c]
pop {r3, r4, r5, r6, pc}
_0221C9A0:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22407,7 +22407,7 @@ _0221C9D2: add sp, #4
pop {r3, r4, r5, r6, pc}
_0221C9E4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22439,7 +22439,7 @@ _0221CA0E: add sp, #4
pop {r3, r4, r5, r6, pc}
_0221CA26:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22471,7 +22471,7 @@ _0221CA50: add sp, #4
pop {r3, r4, r5, r6, pc}
_0221CA68:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -29035,7 +29035,7 @@ _02220010: strb r0, [r4, #0xc]
b _02220092
_02220020:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
add r5, r1, #0
@@ -29290,7 +29290,7 @@ _022201FE: add r1, r5, #0
add r1, #0x21
strb r0, [r1]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
ldr r0, [sp, #0x14]
@@ -29299,7 +29299,7 @@ _022201FE: add r0, r5, #0
add r0, #0x22
strb r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
bl _s32_div_f
add r0, r5, #0
@@ -29321,7 +29321,7 @@ _022201FE: lsl r0, r0, #3
str r0, [sp, #0x18]
add r7, r1, r0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
ldrsh r1, [r7, r1]
bl _s32_div_f
@@ -29331,7 +29331,7 @@ _022201FE: lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #0x10]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #4
ldrsh r1, [r7, r1]
bl _s32_div_f
@@ -30100,7 +30100,7 @@ MOD08_022208A0: ; 0x022208A0 add r6, r4, #2
add r5, r4, #4
_022208D4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1e
sub r2, r2, r1
@@ -33630,7 +33630,7 @@ MOD08_02222654: ; 0x02222654 mov r1, #0
mov r2, #0x68
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r1, _022227BC ; =MOD08_022224E0
str r5, [r4]
add r0, r5, #0
@@ -34043,7 +34043,7 @@ MOD08_022229C8: ; 0x022229C8 add r4, r0, #0
mov r1, #0
mov r2, #0x50
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
add r0, r5, #0
bl MOD08_02212504
@@ -34119,7 +34119,7 @@ MOD08_02222A78: ; 0x02222A78 add r4, r0, #0
mov r1, #0
mov r2, #0x40
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
add r0, r5, #0
bl MOD08_02212460
@@ -44768,7 +44768,7 @@ _02228086: add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -47110,7 +47110,7 @@ _02229136: bl MOD08_022280C4
cmp r0, #1
bne _0222928C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x14
bl _s32_div_f
add r1, #0xa
@@ -47458,7 +47458,7 @@ _022293F6: bl MOD08_022280C4
cmp r0, #1
bne _0222954C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x14
bl _s32_div_f
add r1, #0xa
@@ -48137,7 +48137,7 @@ _0222993C: add r0, #0x21
strb r2, [r0]
bl MOD08_0221268C
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1f
sub r0, r0, r1
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index e0510cd2..f2efcdad 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -22,7 +22,7 @@ _02211E6E: ldr r2, _02211EDC ; =0x00002090
add r4, r0, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
ldr r0, [r5, #8]
bl MOD11_0222FF68
@@ -12661,7 +12661,7 @@ MOD09_022186F0: ; 0x022186F0 ldr r2, _02218784 ; =0x0000115C
add r4, r0, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
ldr r0, [r5]
bl MOD11_0222FF68
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index 63ecac82..820d6e96 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -671,7 +671,7 @@ MOD11_0222DB50: ; 0x0222DB50 mov r0, #0
add r2, r5, #0
bl MIi_CpuClear16
- bl FUN_0201B9D4
+ bl getseed_LC
ldr r1, _0222DF0C ; =0x00002430
str r0, [r4, r1]
add r0, sp, #0x20
@@ -695,7 +695,7 @@ MOD11_0222DB50: ; 0x0222DB50 add r0, r2, r0
add r0, r3, r0
add r0, r5, r0
- bl FUN_0201B9E0
+ bl seedr_LC
bl MOD11_0222EF30
str r0, [r4]
bl FUN_02015F1C
@@ -1381,7 +1381,7 @@ _0222E1AC: bl MOD11_0222EFD4
ldr r0, _0222E254 ; =0x00002430
ldr r0, [r4, r0]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, #0
bl MOD11_02231474
cmp r0, #0
@@ -3095,7 +3095,7 @@ MOD11_0222F01C: ; 0x0222F01C push {r3, r4, r5, lr}
sub sp, #0x50
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0222F0B8 ; =0x000023FB
ldrb r2, [r4, r1]
lsl r0, r2, #0x1f
@@ -13196,7 +13196,7 @@ MOD11_02233DE4: ; 0x02233DE4 mov r4, #5
b _02233E36
_02233E1C:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
and r0, r1
cmp r0, #2
@@ -13204,7 +13204,7 @@ _02233E1C: add r4, r0, #2
b _02233E36
_02233E2C:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
and r0, r1
add r4, r0, #2
@@ -14440,7 +14440,7 @@ MOD11_022347B0: ; 0x022347B0 add r0, r5, #0
bl MOD11_0223A404
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #1
bl _s32_div_f
mov r0, #0x4d
@@ -14886,7 +14886,7 @@ _02234AF6: ldr r6, _02234BD0 ; =0x0000308C
mov r7, #0x1e
_02234B22:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r0, r0, #0x1e
ldr r1, [r5, #0x64]
@@ -15701,7 +15701,7 @@ _0223518E: _0223519E:
ldr r7, _02235238 ; =0x00002D4C
_022351A0:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
ldr r2, [r4, #0x64]
@@ -16386,7 +16386,7 @@ _022356AA: add r0, r1, r0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r5
@@ -16474,7 +16474,7 @@ _02235784: add r0, r1, r0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r5
@@ -16800,7 +16800,7 @@ MOD11_02235A2C: ; 0x02235A2C ldr r4, _02235A7C ; =0x00002D4C
mov r7, #0xc0
_02235A3C:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235A80 ; =0x000001D3
bl _s32_div_f
add r0, r1, #1
@@ -16892,7 +16892,7 @@ MOD11_02235A84: ; 0x02235A84 mul r2, r7
add r1, r5, r2
strh r3, [r1, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235B3C ; =0x00002DC8
ldr r4, [r5, #0x6c]
add r3, r5, r1
@@ -17250,7 +17250,7 @@ _02235D7E: add r1, r5, r1
add r0, r3, #2
strh r4, [r1, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235E14 ; =0x00002DC8
ldr r2, [r5, #0x6c]
add r4, r5, r1
@@ -17716,7 +17716,7 @@ _02236156: _02236180:
mov r7, #0x1e
_02236182:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
@@ -18218,7 +18218,7 @@ _02236572: add r4, r6, r0
mov r0, #0xc0
mul r5, r0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [r4, r5]
lsl r1, r1, #0x13
lsr r1, r1, #0x1e
@@ -18519,7 +18519,7 @@ _022367DE: beq _02236844
mov r7, #5
_022367EA:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
ldr r0, [sp, #0xc]
@@ -19809,7 +19809,7 @@ MOD11_02237220: ; 0x02237220 add r0, r5, #0
bl MOD11_0223A404
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x66
@@ -19865,7 +19865,7 @@ MOD11_02237290: ; 0x02237290 ldrb r0, [r4, r0]
cmp r0, #0
bne _0223731C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, _0223732C ; =0x00003120
@@ -21218,7 +21218,7 @@ _02237D7E: _02237D8A:
cmp r7, #0
beq _02237DA8
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
lsl r1, r1, #1
@@ -23903,12 +23903,12 @@ _02239222: ldr r0, [sp, #8]
cmp r0, #0
bne _022392EC
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
bne _022392EC
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r5, r1, #0
@@ -23997,7 +23997,7 @@ _02239324: blt _0223932E
bl ErrorHandling
_0223932E:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r2, [sp, #0xc]
@@ -24714,7 +24714,7 @@ _022398F0: bne _022398F8
bl ErrorHandling
_022398F8:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r4
@@ -24797,7 +24797,7 @@ _0223999C: _022399A0:
mov r4, #0x1e
_022399A2:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r4
@@ -25527,7 +25527,7 @@ _02239F82: blt _02239F74
cmp r4, #0
beq _02239FB0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
lsl r1, r1, #2
@@ -25719,7 +25719,7 @@ MOD11_0223A0D8: ; 0x0223A0D8 str r0, [sp]
cmp r6, #0x40
bne _0223A126
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, [sp]
@@ -29776,7 +29776,7 @@ _0223C1CC: add r6, r0, #0
mov r5, #0
_0223C1E0:
- bl FUN_0201B9EC
+ bl rand_LC
cmp r0, r6
bhs _0223C1EE
add r5, r5, #1
@@ -33367,7 +33367,7 @@ _0223DE26: mov r6, #0
add r5, r4, #0
_0223DE2A:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223DE70 ; =0x0000310C
add r6, r6, #1
strh r0, [r5, r1]
@@ -36661,7 +36661,7 @@ MOD11_0223F770: ; 0x0223F770 str r0, [r4, #8]
mov r0, #0x27
str r0, [r4, #0xc]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
mov r0, #0x4e
@@ -36707,7 +36707,7 @@ MOD11_0223F7CC: ; 0x0223F7CC str r0, [r4, #8]
mov r0, #0x27
str r0, [r4, #0xc]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
mov r0, #0x4e
@@ -36857,7 +36857,7 @@ _0223F8F6: mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0223F90E:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
ldr r1, _0223FAEC ; =0x00002D74
add r2, r4, r7
@@ -36911,7 +36911,7 @@ _0223F968: ldr r0, _0223FAEC ; =0x00002D74
ldrb r0, [r1, r0]
str r0, [sp, #0x1c]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x18
add r1, r5, r1
@@ -36942,7 +36942,7 @@ _0223F968: mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0223F9B6:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
add r7, r0, #0
and r7, r1
@@ -37004,7 +37004,7 @@ _0223FA2E: sub r0, r0, r5
lsl r0, r0, #0x18
lsr r5, r0, #0x18
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
lsr r7, r0, #0x18
cmp r7, r5
@@ -37665,7 +37665,7 @@ _0223FF42: mov r0, #0x20
tst r0, r1
beq _0223FF9E
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
cmp r1, #0
@@ -37990,7 +37990,7 @@ _022401CA: mov r0, #7
tst r0, r1
beq _02240276
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02240204
@@ -38084,7 +38084,7 @@ _0224028C: bl MOD11_02246D1C
cmp r0, #0x62
beq _022402E0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1e
sub r2, r2, r1
@@ -38130,7 +38130,7 @@ _022402E8: mov r1, #0x46
lsl r1, r1, #2
str r0, [r4, r1]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02240326
@@ -38799,7 +38799,7 @@ _0224082A: lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240846:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r0, r1, #1
@@ -39874,7 +39874,7 @@ _0224106A: bne _022410D0
cmp r7, #0x40
bne _022410A4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, [sp]
@@ -42995,7 +42995,7 @@ MOD11_02242870: ; 0x02242870 cmp r0, #0
beq _0224290A
_022428B8:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r6
@@ -47053,7 +47053,7 @@ _02244760: _02244776:
cmp r6, r4
bne _02244784
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
bne _02244786
@@ -47098,7 +47098,7 @@ _022447B0: _022447C6:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47140,7 +47140,7 @@ _022447FE: _02244814:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47182,7 +47182,7 @@ _0224484C: _02244862:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47197,7 +47197,7 @@ _02244876: _0224487E:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47515,7 +47515,7 @@ _02244AF4: bne _02244AFC
bl ErrorHandling
_02244AFC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r6
@@ -47584,7 +47584,7 @@ _02244B7C: bne _02244B84
bl ErrorHandling
_02244B84:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r7
@@ -47803,7 +47803,7 @@ _02244D26: mov r1, #2
tst r0, r1
beq _02244D6E
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -47974,7 +47974,7 @@ _02244E72: ldr r1, [r1, r2]
cmp r1, #0
beq _02244EA0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x1f
lsr r1, r0, #0x1d
add r0, sp, #0x14
@@ -48897,7 +48897,7 @@ _02245594: ldr r0, _022455F4 ; =0x000021A0
mov r1, #6
strb r1, [r2, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _022455F8 ; =0x0000310C
add r4, r4, #1
strh r0, [r5, r1]
@@ -51716,7 +51716,7 @@ MOD11_02246B58: ; 0x02246B58 mov r0, #1
cmp r6, #0x70
blo _02246B76
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x70
bl _u32_div_f
add r6, r1, #0
@@ -51925,7 +51925,7 @@ MOD11_02246CCC: ; 0x02246CCC mov r6, #1
b _02246D14
_02246CF0:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r2, [r5, #0x64]
mov r1, #0xc0
mul r1, r2
@@ -52489,7 +52489,7 @@ _0224711C: add r0, r1, r0
lsl r0, r0, #0x18
lsr r7, r0, #0x18
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x18
sub r2, r2, r1
@@ -53154,7 +53154,7 @@ _02247616: ldr r0, [r0, r1]
cmp r0, #0
beq _02247696
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -54095,7 +54095,7 @@ _02247D2C: cmp r5, #0x96
blo _02247D3C
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54109,7 +54109,7 @@ _02247D46: cmp r5, #0x78
blo _02247D56
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54138,7 +54138,7 @@ _02247D98: cmp r5, #0x50
blo _02247DA8
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54154,7 +54154,7 @@ _02247DB2: blo _02247DC6
cmp r5, r0
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54209,7 +54209,7 @@ _02247E08: add r2, r5, #0
bl MOD11_022473F8
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
mov r0, #0xc0
@@ -54329,7 +54329,7 @@ _02247E88: ldrh r0, [r0, r2]
cmp r0, #0
beq _02247F38
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x1f
lsr r1, r0, #0x1d
add r0, sp, #0xc0
@@ -54826,7 +54826,7 @@ MOD11_022482A4: ; 0x022482A4 mov r2, #2
bl MOD11_02230308
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
mov r3, #1
add r2, r0, #0
and r2, r3
@@ -54972,7 +54972,7 @@ _022483C6: mov r0, #1
tst r0, r1
beq _022483E6
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55212,12 +55212,12 @@ _0224859A: mov r0, #1
tst r0, r1
beq _02248650
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
bge _02248650
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #0
@@ -55320,7 +55320,7 @@ _02248688: mov r0, #1
tst r0, r1
beq _02248770
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55394,7 +55394,7 @@ _02248712: mov r0, #1
tst r0, r1
beq _02248770
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55480,7 +55480,7 @@ _022487AC: ldr r0, [r1, r0]
cmp r0, #0
beq _0224887A
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -56763,7 +56763,7 @@ _02249168: add r5, r4, r5
mov r7, #5
_02249172:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
add r0, r5, r1
@@ -57892,7 +57892,7 @@ _02249A12: ldr r7, _02249A64 ; =0x00002D59
add r5, r4, r5
_02249A1A:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r0, r5, r1
@@ -59201,7 +59201,7 @@ _0224A3F2: mov r7, #5
mov r6, #0xc0
_0224A3FC:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
ldr r0, [r4, #0x64]
@@ -60051,7 +60051,7 @@ _0224AA5A: mov r7, #5
mov r6, #0xc0
_0224AA64:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
ldr r0, [r4, #0x6c]
@@ -62697,7 +62697,7 @@ MOD11_0224BF10: ; 0x0224BF10 push {r4, lr}
add r4, r1, #0
beq _0224BF36
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1c
sub r1, r1, r2
@@ -62809,7 +62809,7 @@ _0224BFC4: bls _0224BFE0
mov r5, #4
_0224BFE0:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0224C040 ; =0x0225E244
ldrb r1, [r1, r5]
bl _s32_div_f
@@ -64007,7 +64007,7 @@ MOD11_0224C84C: ; 0x0224C84C beq _0224C890
cmp r2, #0x79
beq _0224C890
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _0224C88C
@@ -72933,7 +72933,7 @@ MOD11_02250F94: ; 0x02250F94 ldrb r1, [r2, r1]
bl _s32_div_f
add r5, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xff
bl _s32_div_f
cmp r1, r5
@@ -73222,7 +73222,7 @@ _0225122E: add r4, r4, #1
cmp r4, #4
blt _0225121C
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
lsl r1, r1, #2
@@ -88682,7 +88682,7 @@ _02258C1E: strb r0, [r4, #4]
mov r0, #0xa
strb r0, [r4, #5]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r3, r0, #0x1d
ldrb r2, [r4, #5]
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s index d5e257e5..4a499200 100644 --- a/arm9/modules/13/asm/module_13_arm2.s +++ b/arm9/modules/13/asm/module_13_arm2.s @@ -17010,7 +17010,7 @@ _0222CC8C: add r0, sp, #0 mov r2, r4 mov r1, #0x2a - bl Call_FillMemWithValue + bl memset add r0, sp, #0 mov r1, r5 bl MOD13_0222C788 diff --git a/arm9/modules/13/asm/module_13_thumb.s b/arm9/modules/13/asm/module_13_thumb.s index 3dcc0731..5cb48aa3 100644 --- a/arm9/modules/13/asm/module_13_thumb.s +++ b/arm9/modules/13/asm/module_13_thumb.s @@ -7170,7 +7170,7 @@ MOD13_0221AA64: ; 0x0221AA64 beq _0221AA82 mov r1, #0 add r2, r4, #0 - bl Call_FillMemWithValue + bl memset _0221AA82: add r0, r5, #0 add sp, #4 @@ -11705,7 +11705,7 @@ _0221CDE0: add r0, r0, r1 add r1, r7, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset ldr r0, _0221CE88 ; =0x02241E90 ldr r0, [r0, #0x5c] cmp r0, #1 @@ -12253,7 +12253,7 @@ MOD13_0221D1E0: ; 0x0221D1E0 add r0, r5, #0 mov r1, #0 add r2, r6, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 9b9e30bb..839501c6 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -250,7 +250,7 @@ _021D76C2: ldr r2, _021D77D0 ; =0x00001D10 add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset str r7, [r4, #4] ldr r0, [r5, #0x1c] str r0, [r4, #8] @@ -2301,7 +2301,7 @@ MOD16_021D8628: ; 0x021D8628 add r0, r4, #0 mov r1, #0 lsl r2, r2, #6 - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD16_021D8628 @@ -4566,7 +4566,7 @@ MOD16_021D9798: ; 0x021D9798 ldr r2, _021D988C ; =0x00001770 mov r1, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] str r0, [r5] ldr r1, [r4, #8] @@ -5017,7 +5017,7 @@ _021D9AAE: ldr r2, _021D9CA8 ; =0x000003DA add r0, r6, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x24] ldr r1, _021D9CA8 ; =0x000003DA @@ -5030,7 +5030,7 @@ _021D9ACC: ldr r2, _021D9CA8 ; =0x000003DA add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset mov r1, #0 ldr r0, [sp, #0x48] str r1, [sp, #0x20] @@ -5081,7 +5081,7 @@ _021D9B16: str r2, [sp, #0x24] mov r1, #0 lsl r2, r2, #1 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] @@ -5109,7 +5109,7 @@ _021D9B6A: str r2, [sp, #0x24] mov r1, #0 lsl r2, r2, #1 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] @@ -5137,7 +5137,7 @@ _021D9BA6: str r2, [sp, #0x24] mov r1, #0 lsl r2, r2, #1 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] @@ -5165,7 +5165,7 @@ _021D9BE2: str r2, [sp, #0x24] mov r1, #0 lsl r2, r2, #1 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] @@ -5193,7 +5193,7 @@ _021D9C1E: str r2, [sp, #0x24] mov r1, #0 lsl r2, r2, #1 - bl Call_FillMemWithValue + bl memset mov r0, #0 str r0, [sp, #0x20] ldr r1, [r5] @@ -6623,7 +6623,7 @@ _021DA60E: add r0, r4, #0 mov r1, #0 mov r2, #0x48 - bl Call_FillMemWithValue + bl memset mov r0, #5 str r0, [r4, #8] str r5, [r4, #0x44] @@ -7584,7 +7584,7 @@ _021DACB2: add r0, r4, #0 mov r1, #0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7A38 str r0, [r4] @@ -7686,7 +7686,7 @@ _021DAD92: add r0, r4, #0 mov r1, #0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7A38 str r0, [r4] @@ -7750,7 +7750,7 @@ _021DAE26: add r0, r4, #0 mov r1, #0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7A38 str r0, [r4] @@ -8271,7 +8271,7 @@ _021DB268: ldr r0, [r4, #0xc] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #8] str r0, [r4, #0x10] ldr r0, [r5] @@ -10427,7 +10427,7 @@ _021DC11E: add r0, r4, #0 mov r1, #0 mov r2, #0x38 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7AD8 str r0, [r4] @@ -10585,7 +10585,7 @@ _021DC24C: ldr r0, [r5, #8] mov r1, #0 mov r2, #0x24 - bl Call_FillMemWithValue + bl memset ldr r1, [r5, #8] add r0, r4, #0 bl MOD16_021DC4D4 @@ -12543,7 +12543,7 @@ MOD16_021DD1A0: ; 0x021DD1A0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #4] bl MOD16_021D9EC4 mov r1, #0x51 @@ -14004,7 +14004,7 @@ _021DDCB8: add r0, r4, #0 mov r1, #0 mov r2, #0x28 - bl Call_FillMemWithValue + bl memset add r0, r6, #0 mov r1, #0 bl MOD16_021D7B5C @@ -14068,7 +14068,7 @@ _021DDD34: add r0, r4, #0 mov r1, #0 add r2, r7, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 @@ -14141,7 +14141,7 @@ _021DDDAC: ldr r0, [r5, #8] mov r1, #0 mov r2, #0x24 - bl Call_FillMemWithValue + bl memset ldr r1, _021DDDD8 ; =0x000004CD ldr r0, [r5, #8] add r2, r4, #0 @@ -14251,7 +14251,7 @@ _021DDE72: ldr r0, [r4, #8] mov r1, #0 mov r2, #0x3c - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -16121,7 +16121,7 @@ _021DEC76: add r0, r4, #0 mov r1, #0 mov r2, #0x38 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7AD8 str r0, [r4] @@ -16178,7 +16178,7 @@ _021DECE8: add r0, r4, #0 mov r1, #0 add r2, r7, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -16465,7 +16465,7 @@ _021DEEDC: str r0, [r4, #8] mov r1, #0 mov r2, #0x64 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -18120,7 +18120,7 @@ _021DFB6A: add r0, r4, #0 mov r1, #0 mov r2, #0x9c - bl Call_FillMemWithValue + bl memset add r0, r4, #0 ldr r1, _021DFBB4 ; =0x0000FFFF str r4, [r5, #8] @@ -18360,7 +18360,7 @@ _021DFD32: str r0, [r4, #8] mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -25484,7 +25484,7 @@ _021E3016: add r0, r4, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset str r4, [r6, #8] ldr r1, [r5] ldr r0, _021E3070 ; =0x00001744 @@ -25621,7 +25621,7 @@ _021E310A: ldr r2, _021E31D4 ; =0x00000844 str r0, [r4, #8] mov r1, #0 - bl Call_FillMemWithValue + bl memset ldr r5, [r4, #8] ldr r0, [r7, #4] mov r1, #0 @@ -27212,13 +27212,13 @@ MOD16_021E3DBC: ; 0x021E3DBC add r0, #0xec mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset mov r2, #0x47 lsl r2, r2, #4 add r0, r6, r2 mov r1, #0 sub r2, #0xec - bl Call_FillMemWithValue + bl memset add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] @@ -27978,7 +27978,7 @@ _021E435A: add r0, r4, #0 mov r1, #0 mov r2, #0x28 - bl Call_FillMemWithValue + bl memset str r4, [r5, #8] add r0, r4, #0 add r1, r6, #0 @@ -28062,7 +28062,7 @@ _021E43E8: str r0, [r4, #8] mov r1, #0 mov r2, #0x2c - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -29142,7 +29142,7 @@ _021E4BDE: add r0, r4, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7AD8 str r0, [r4] @@ -29313,7 +29313,7 @@ _021E4D00: str r0, [r4, #8] mov r1, #0 mov r2, #0x74 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -31520,7 +31520,7 @@ _021E5DA4: str r0, [r4, #8] mov r1, #0 mov r2, #0xd0 - bl Call_FillMemWithValue + bl memset ldr r0, [r4, #8] ldr r1, [r7, #0xc] add r0, #0xc8 @@ -33918,7 +33918,7 @@ _021E6F2A: add r0, r4, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7AD8 str r0, [r4] @@ -34041,7 +34041,7 @@ _021E6FE4: str r0, [r4, #8] mov r1, #0 mov r2, #0x58 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -35664,7 +35664,7 @@ _021E7C58: add r0, r4, #0 mov r1, #0 add r2, r7, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -35750,7 +35750,7 @@ MOD16_021E7CE4: ; 0x021E7CE4 mov r1, #0 mov r2, #0x3c add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r1, #0 add r2, r4, #0 mov r0, #4 @@ -35850,7 +35850,7 @@ _021E7DA2: str r0, [r4, #8] mov r1, #0 mov r2, #0xc4 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -37791,7 +37791,7 @@ _021E8C82: add r0, r4, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7B00 str r0, [r4] @@ -37878,7 +37878,7 @@ _021E8D3C: add r0, r4, #0 mov r1, #0 add r2, r7, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -38074,7 +38074,7 @@ _021E8E9E: str r0, [r4, #8] mov r1, #0 mov r2, #0x28 - bl Call_FillMemWithValue + bl memset ldr r1, [r7, #8] ldr r0, [r4, #8] str r1, [r0] @@ -39035,7 +39035,7 @@ _021E95E2: add r0, r4, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl MOD16_021D7B14 str r0, [r4] @@ -39267,7 +39267,7 @@ _021E9774: str r0, [r4, #8] mov r1, #0 mov r2, #0x28 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -40948,7 +40948,7 @@ _021EA3C2: str r0, [r4, #8] mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -42567,7 +42567,7 @@ MOD16_021EAFB4: ; 0x021EAFB4 mov r1, #0 mov r2, #0x70 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r2, [r5, #4] add r0, r4, #0 add r1, r6, #0 @@ -42688,7 +42688,7 @@ _021EB0B0: str r0, [r4, #8] mov r1, #0 mov r2, #0x74 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -46275,7 +46275,7 @@ _021ECBE0: add r0, r4, #0 mov r1, #0 add r2, r7, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -46465,7 +46465,7 @@ _021ECD2C: str r0, [r4, #8] mov r1, #0 mov r2, #0x40 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -47659,7 +47659,7 @@ _021ED618: add r0, r4, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset add r0, r6, #0 bl MOD16_021D7B48 str r0, [r4] @@ -47827,7 +47827,7 @@ _021ED738: str r0, [r4, #8] mov r1, #0 mov r2, #0xc4 - bl Call_FillMemWithValue + bl memset ldr r0, [r4, #8] mov r1, #1 add r0, #0xb8 @@ -50034,7 +50034,7 @@ _021EE848: str r0, [r4, #8] mov r1, #0 mov r2, #0x30 - bl Call_FillMemWithValue + bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -50960,7 +50960,7 @@ MOD16_021EEF0C: ; 0x021EEF0C add r4, r0, #0 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r1, r5, #0 bl MOD16_021EEFA4 @@ -52576,7 +52576,7 @@ _021EFBAA: add r0, r5, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD16_021EFBA4 @@ -52755,7 +52755,7 @@ _021EFCEA: lsl r0, r0, #2 strb r7, [r1, r0] _021EFCFC: - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x1c sub r2, r2, r1 @@ -52984,7 +52984,7 @@ _021EFE9C: add r3, r3, #2 cmp r2, #4 blt _021EFE6A - bl FUN_0201B9EC + bl rand_LC add r1, r4, #0 bl _s32_div_f add r0, sp, #0 @@ -53160,7 +53160,7 @@ _021EFFE6: add r2, r2, #2 cmp r1, #4 blt _021EFFBA - bl FUN_0201B9EC + bl rand_LC add r1, r4, #0 bl _s32_div_f add r0, sp, #0x10 @@ -53232,7 +53232,7 @@ _021F0070: add r2, r2, #2 cmp r4, #4 blt _021F0056 - bl FUN_0201B9EC + bl rand_LC add r1, r6, #0 bl _s32_div_f add r0, sp, #0x1c @@ -53441,7 +53441,7 @@ MOD16_021F01FC: ; 0x021F01FC add r0, r5, #0 bl MOD16_021F2D54 add r6, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 @@ -53471,7 +53471,7 @@ MOD16_021F0238: ; 0x021F0238 add r0, r5, #0 bl MOD16_021F2D54 add r6, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 @@ -53501,7 +53501,7 @@ MOD16_021F0274: ; 0x021F0274 add r0, r5, #0 bl MOD16_021F2D54 add r6, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 @@ -53531,7 +53531,7 @@ MOD16_021F02B0: ; 0x021F02B0 add r0, r5, #0 bl MOD16_021F2D54 add r6, r0, #0 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 @@ -55180,7 +55180,7 @@ _021F0F88: beq _021F0FC2 cmp r6, #0 beq _021F0FC2 - bl FUN_0201B9EC + bl rand_LC mov r1, #1 tst r0, r1 beq _021F0FBA @@ -59600,7 +59600,7 @@ _021F3122: str r0, [sp, #0x20] b _021F3214 _021F3132: - bl FUN_0201B9EC + bl rand_LC mov r1, #0xb bl _s32_div_f ldr r0, [sp, #0x64] @@ -59644,7 +59644,7 @@ _021F3170: add r4, r0, #0 b _021F3214 _021F318E: - bl FUN_0201B9EC + bl rand_LC mov r1, #0x64 bl _s32_div_f cmp r1, #5 @@ -60483,7 +60483,7 @@ _021F3730: mov r0, #2 tst r0, r1 beq _021F37D8 - bl FUN_0201B9EC + bl rand_LC mov r1, #3 bl _s32_div_f cmp r1, #2 @@ -60820,7 +60820,7 @@ _021F3A58: mov r0, #2 tst r0, r1 beq _021F3A7E - bl FUN_0201B9EC + bl rand_LC mov r1, #3 bl _s32_div_f cmp r1, #2 @@ -60884,7 +60884,7 @@ _021F3AE4: mov r0, #2 tst r0, r1 beq _021F3B0A - bl FUN_0201B9EC + bl rand_LC mov r1, #3 bl _s32_div_f cmp r1, #2 @@ -61062,7 +61062,7 @@ _021F3C5A: ldr r0, [sp, #0xb0] cmp r0, #0 bne _021F3C82 - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x1f sub r2, r2, r1 @@ -61128,7 +61128,7 @@ _021F3CE8: ldr r0, [sp, #0xb0] cmp r0, #0 bne _021F3D10 - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 @@ -61235,7 +61235,7 @@ _021F3D78: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3DC2: - bl FUN_0201B9EC + bl rand_LC mov r1, #0xa bl _s32_div_f cmp r1, #0 @@ -61313,7 +61313,7 @@ _021F3E18: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3E62: - bl FUN_0201B9EC + bl rand_LC mov r1, #0xa bl _s32_div_f cmp r1, #0 @@ -61348,7 +61348,7 @@ MOD16_021F3E90: ; 0x021F3E90 bl MOD16_021F3D3C cmp r0, #0 beq _021F3EB8 - bl FUN_0201B9EC + bl rand_LC mov r1, #3 bl _s32_div_f cmp r1, #0 @@ -61496,7 +61496,7 @@ _021F3F62: ldr r0, [sp, #0x10] cmp r0, r1 bne _021F3FE6 - bl FUN_0201B9EC + bl rand_LC mov r1, #1 tst r0, r1 beq _021F3FE6 @@ -61776,7 +61776,7 @@ _021F4182: mov r0, #2 tst r0, r1 beq _021F4232 - bl FUN_0201B9EC + bl rand_LC ldr r1, [sp, #0x24] bl _s32_div_f cmp r1, #0 @@ -61855,7 +61855,7 @@ _021F42A4: ldrh r0, [r6, r7] cmp r0, #0 bne _021F42C8 - bl FUN_0201B9EC + bl rand_LC mov r1, #1 tst r0, r1 beq _021F42C8 @@ -61874,7 +61874,7 @@ _021F42C8: ldrb r0, [r1, r0] cmp r0, #0 bne _021F42EE - bl FUN_0201B9EC + bl rand_LC mov r1, #1 tst r0, r1 beq _021F42EE @@ -61912,7 +61912,7 @@ _021F4308: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F4322: - bl FUN_0201B9EC + bl rand_LC mov r1, #1 tst r0, r1 beq _021F433A diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 2a6f2e72..2703b8a1 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -19,7 +19,7 @@ MOD17_021D74E0: ; 0x021D74E0 mov r1, #0 add r2, r6, #0 str r0, [r4] - bl Call_FillMemWithValue + bl memset str r5, [r4, #4] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} @@ -1616,7 +1616,7 @@ MOD17_021D8088: ; 0x021D8088 mov r1, #0 lsl r2, r2, #2 str r0, [r4, #0x30] - bl Call_FillMemWithValue + bl memset mov r0, #0x77 str r0, [r4, #0x34] pop {r4, pc} @@ -1978,7 +1978,7 @@ MOD17_021D8358: ; 0x021D8358 ldr r2, [sp] mov r1, #0 str r0, [r5] - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r1, r7, #0 bl FUN_02020C44 @@ -1993,7 +1993,7 @@ MOD17_021D8358: ; 0x021D8358 mov r1, #0 add r2, r4, #0 str r0, [r5, #8] - bl Call_FillMemWithValue + bl memset add r0, r6, #0 add r1, r7, #0 bl FUN_02020C44 @@ -2055,7 +2055,7 @@ MOD17_021D83E4: ; 0x021D83E4 ldr r2, _021D84D8 ; =0x000006D8 mov r1, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021D84DC ; =MOD17_021D8FC8 add r1, r5, #0 bl FUN_02015F10 @@ -2545,7 +2545,7 @@ MOD17_021D8818: ; 0x021D8818 ldr r2, _021D897C ; =0x000006D8 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021D8980 ; =MOD17_021D8FC8 add r1, r4, #0 bl FUN_02015F10 @@ -5604,7 +5604,7 @@ MOD17_021D9FD4: ; 0x021D9FD4 add r0, r4, #0 mov r1, #0 mov r2, #0x88 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D9FD4 @@ -6485,7 +6485,7 @@ _021DA5EE: add r0, r6, #0 mov r1, #0 mov r2, #0x8c - bl Call_FillMemWithValue + bl memset pop {r4, r5, r6, pc} thumb_func_end MOD17_021DA5E0 @@ -6601,7 +6601,7 @@ _021DA6B8: str r0, [r5] mov r0, #0x12 str r0, [r4] - bl FUN_0201BA60 + bl rand_MT ldr r2, [sp, #0x10] mov r1, #0x6c sub r1, r1, r2 @@ -6609,7 +6609,7 @@ _021DA6B8: ldr r0, [r5] add r0, r0, r1 str r0, [r5] - bl FUN_0201BA60 + bl rand_MT ldr r2, [sp, #0x14] mov r1, #0x7d sub r1, r1, r2 @@ -7506,7 +7506,7 @@ _021DAD04: ldr r0, [r4, #0x28] mov r1, #0 mul r2, r3 - bl Call_FillMemWithValue + bl memset mov r0, #1 str r0, [r5, #0x3c] pop {r3, r4, r5, r6, r7, pc} @@ -7987,7 +7987,7 @@ MOD17_021DB038: ; 0x021DB038 str r0, [r5] mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset ldr r1, [r5] ldr r0, [sp, #0x18] str r4, [r1, #4] @@ -8316,14 +8316,14 @@ _021DB2C2: add r1, sp, #0x14 add r2, sp, #0x10 bl MOD17_021DBC08 - bl FUN_0201BA60 + bl rand_MT ldr r2, [sp, #0x14] mov r1, #0x6c sub r1, r1, r2 bl _u32_div_f add r1, #0xa str r1, [sp, #0xc] - bl FUN_0201BA60 + bl rand_MT ldr r2, [sp, #0x10] mov r1, #0x7d sub r1, r1, r2 @@ -9282,7 +9282,7 @@ _021DBA0E: ldr r0, [r5] mov r1, #0 add r2, r4, #0 - bl Call_FillMemWithValue + bl memset str r6, [r5, #4] pop {r4, r5, r6, pc} thumb_func_end MOD17_021DB9F4 @@ -9762,7 +9762,7 @@ MOD17_021DBD4C: ; 0x021DBD4C add r0, r4, #0 mov r1, #0 mov r2, #0x2c - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD17_021DBD4C @@ -10428,7 +10428,7 @@ MOD17_021DC248: ; 0x021DC248 add r0, r4, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DC248 @@ -11366,7 +11366,7 @@ MOD17_021DC950: ; 0x021DC950 mov r2, #0x52 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset _021DC96A: mov r0, #2 tst r0, r6 @@ -11588,7 +11588,7 @@ _021DCB22: add r0, r4, #0 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD17_021DCA80 @@ -12454,7 +12454,7 @@ _021DD192: add r0, r5, #0 mov r1, #0 mov r2, #0x94 - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, pc} thumb_func_end MOD17_021DD178 @@ -13202,7 +13202,7 @@ MOD17_021DD6DC: ; 0x021DD6DC mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x8b ldr r1, [r5, #0x68] lsl r0, r0, #2 @@ -13272,7 +13272,7 @@ MOD17_021DD778: ; 0x021DD778 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x8b ldr r1, [r5, #0x68] lsl r0, r0, #2 @@ -13795,7 +13795,7 @@ MOD17_021DDB58: ; 0x021DDB58 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021DDC28 ; =MOD17_021DDD40 add r1, r4, #0 bl FUN_02015F10 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 5f5307af..acbd812b 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -1079,7 +1079,7 @@ _02239E96: mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _02239EA8: - bl FUN_0201B9EC + bl rand_LC add r1, r5, #0 bl _s32_div_f ldr r0, _02239EF4 ; =0x02251380 @@ -14722,7 +14722,7 @@ _0224072E: ldrh r1, [r1, #0x16] strh r2, [r0, #8] strh r1, [r0, #0xa] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 @@ -19641,7 +19641,7 @@ _02242DD2: ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] - bl FUN_0201B9EC + bl rand_LC mov r1, #0xa bl _s32_div_f add r1, #0x7b @@ -22737,13 +22737,13 @@ _022445F6: str r0, [r5] str r0, [r5, #4] str r0, [r5, #8] - bl FUN_0201B9EC + bl rand_LC mov r1, #0x7d lsl r1, r1, #2 bl _s32_div_f add r1, #0x32 str r1, [r4] - bl FUN_0201B9EC + bl rand_LC mov r1, #0x7d lsl r1, r1, #2 bl _s32_div_f @@ -29675,7 +29675,7 @@ MOD18_02247BB8: ; 0x02247BB8 mov r4, #0 add r7, sp, #0x14 _02247C0A: - bl FUN_0201BA60 + bl rand_MT mov r1, #0xc bl _u32_div_f add r2, r1, #0 diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 46ecca3d..3f9efbbe 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -820,12 +820,12 @@ _02254E50: .word 0x00000165 MOD28_02254E54: ; 0x02254E54 push {r3, r4, r5, lr} add r5, r0, #0 - bl FUN_0201BA60 + bl rand_MT mov r1, #0x3f and r0, r1 sub r0, #0x20 lsl r4, r0, #0xc - bl FUN_0201BA60 + bl rand_MT mov r1, #0x3f and r0, r1 sub r0, #0x20 diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index 540a137b..ef3e3e9e 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -1439,7 +1439,7 @@ _022552D8: ldr r0, [r4, #0x60] cmp r0, #0 beq _0225539A - bl FUN_0201BA60 + bl rand_MT mov r1, #7 and r0, r1 str r0, [r4, #0x6c] diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s index 5ca3e405..e4fc7ad1 100644 --- a/arm9/modules/37/asm/module_37.s +++ b/arm9/modules/37/asm/module_37.s @@ -213,7 +213,7 @@ _022549AC: bl MOD37_02254A18 cmp r0, #0 beq _022549DE - bl FUN_0201BA60 + bl rand_MT mov r1, #1 and r0, r1 str r0, [r4, #8] diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s index 5afd3f96..f52ea869 100644 --- a/arm9/modules/52/asm/module_52.s +++ b/arm9/modules/52/asm/module_52.s @@ -170,7 +170,7 @@ MOD52_021D7604: ; 0x021D7604 add r0, r5, #0 bl FUN_0202881C add r4, r0, #0 - bl FUN_0201BA60 + bl rand_MT add r2, r0, #0 add r0, r4, #0 mov r1, #1 @@ -180,7 +180,7 @@ MOD52_021D7604: ; 0x021D7604 add r0, r5, #0 bl FUN_020238F4 add r4, r0, #0 - bl FUN_0201BA60 + bl rand_MT add r7, r0, #0 cmp r6, #0 beq _021D7656 diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 912604c0..5e63549a 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -45,7 +45,7 @@ _021D74F6: ldr r2, _021D7640 ; =0x0000940C mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x27 bl FUN_02016B94 str r0, [r4] diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 4f56ad9c..529bf315 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -46,7 +46,7 @@ _021D74F6: ldr r2, _021D7638 ; =0x00004A60 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x33 bl FUN_02016B94 str r0, [r4] diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 30506d65..a25b99a6 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -41,7 +41,7 @@ MOD57_021D74E0: ; 0x021D74E0 ldr r2, _021D76F0 ; =0x00003320 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_0200628C add r1, r4, #0 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index c3ad3a0b..f41e981d 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -51,7 +51,7 @@ _021D9A36: ldr r2, _021D9B74 ; =0x00005CB0 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x27 bl FUN_02016B94 str r0, [r4] diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s index 8353fb56..ec8b9a53 100644 --- a/arm9/modules/59/asm/module_59.s +++ b/arm9/modules/59/asm/module_59.s @@ -19,7 +19,7 @@ MOD59_021D74E0: ; 0x021D74E0 mov r1, #0 mov r2, #0xb4 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x52 str r0, [r4] add r0, r5, #0 @@ -4427,7 +4427,7 @@ MOD59_021D9868: ; 0x021D9868 mov r1, #0 mov r2, #0x28 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x53 str r0, [r4] mov r0, #0 diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index 431bfc00..ffbc157e 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -23,7 +23,7 @@ MOD60_021D74E0: ; 0x021D74E0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_02024FD8 ldrh r1, [r4, #0x18] diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index fc773305..beb43d8a 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -20,7 +20,7 @@ MOD61_021D74E0: ; 0x021D74E0 mov r1, #0 mov r2, #0xbc add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x29 str r0, [r4] add r0, r5, #0 diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s index 19156654..ea56905d 100644 --- a/arm9/modules/63/asm/module_63.s +++ b/arm9/modules/63/asm/module_63.s @@ -52,7 +52,7 @@ MOD63_021D74E0: ; 0x021D74E0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x1e str r0, [r4] mov r0, #0x1d @@ -3066,7 +3066,7 @@ MOD63_021D8D10: ; 0x021D8D10 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x4c str r0, [r4] mov r1, #0 @@ -3077,10 +3077,10 @@ MOD63_021D8D10: ; 0x021D8D10 ldr r0, _021D8D94 ; =0x021C4918 strb r1, [r0, #5] bl FUN_0201E7A0 - bl FUN_0201B9D4 + bl getseed_LC str r0, [r4, #0x14] mov r0, #0 - bl FUN_0201B9E0 + bl seedr_LC mov r0, #1 pop {r4, pc} .align 2, 0 @@ -3205,7 +3205,7 @@ MOD63_021D8E68: ; 0x021D8E68 add r4, r0, #0 bl FUN_0200E31C ldr r0, [r4, #0x14] - bl FUN_0201B9E0 + bl seedr_LC add r0, r5, #0 bl FUN_0200627C mov r0, #0x4c @@ -4000,11 +4000,11 @@ MOD63_021D9498: ; 0x021D9498 ldr r0, [r5, #0x44] mov r1, #0 add r2, r4, #0 - bl Call_FillMemWithValue + bl memset ldr r0, [r5, #0x4c] mov r1, #0 add r2, r6, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 mov r1, #4 add r0, #0x3b @@ -7201,7 +7201,7 @@ MOD63_021DAEF8: ; 0x021DAEF8 add r4, r0, #0 mov r1, #0 lsl r2, r2, #2 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 bl MOD63_021DAFEC add r0, r4, #0 @@ -7227,7 +7227,7 @@ MOD63_021DAF20: ; 0x021DAF20 mov r1, #0 add r2, r6, #0 str r0, [r4, #4] - bl Call_FillMemWithValue + bl memset str r5, [r4] add r0, r4, #0 pop {r4, r5, r6, pc} @@ -7639,7 +7639,7 @@ _021DB248: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x19 sub r2, r2, r1 @@ -7649,7 +7649,7 @@ _021DB248: add r0, #0x40 lsl r0, r0, #0xc str r0, [sp, #4] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x1a sub r2, r2, r1 @@ -7823,13 +7823,13 @@ _021DB3A8: stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] - bl FUN_0201B9EC + bl rand_LC mov r1, #0xe0 bl _s32_div_f add r1, #0xa lsl r0, r1, #0xc str r0, [sp, #4] - bl FUN_0201B9EC + bl rand_LC mov r1, #0x38 bl _s32_div_f ldr r0, _021DB41C ; =0x0000013A diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 6c647c40..b9de9e0d 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -24,7 +24,7 @@ _021D7504: ldr r2, _021D7630 ; =0x000006B4 add r0, r5, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x25 lsl r0, r0, #4 add r0, r5, r0 @@ -1006,7 +1006,7 @@ MOD64_021D7D18: ; 0x021D7D18 add r4, r3, #0 mov r1, #0 mov r2, #0x98 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 @@ -1033,7 +1033,7 @@ MOD64_021D7D50: ; 0x021D7D50 add r5, r0, #0 mov r1, #0 mov r2, #0x98 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -1135,7 +1135,7 @@ _021D7E28: add r0, r5, #0 mov r1, #0 mov r2, #0x98 - bl Call_FillMemWithValue + bl memset pop {r3, r4, r5, pc} thumb_func_end MOD64_021D7E04 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index ba9ed1dd..db284cc3 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -21,7 +21,7 @@ MOD66_021D74E0: ; 0x021D74E0 mov r1, #0 mov r2, #0xe4 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021D7534 ; =0x00000139 str r5, [r4, #0x2c] ldrb r0, [r5, r0] @@ -871,7 +871,7 @@ MOD66_021D7BB4: ; 0x021D7BB4 mov r1, #0 lsl r2, r2, #4 str r0, [r4, #0x34] - bl Call_FillMemWithValue + bl memset mov r0, #1 pop {r4, pc} .align 2, 0 @@ -3780,7 +3780,7 @@ MOD66_021D9228: ; 0x021D9228 mov r2, #0x1c mov r1, #0 mul r2, r3 - bl Call_FillMemWithValue + bl memset ldrh r0, [r7] mov r6, #0 ldr r5, _021D9344 ; =0x021D990C @@ -4130,7 +4130,7 @@ _021D94DA: mov r2, #0x18 mov r1, #0 mul r2, r3 - bl Call_FillMemWithValue + bl memset ldr r0, [sp] mov r4, #0 str r0, [r6] diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 5227f694..11ce834a 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -46,7 +46,7 @@ MOD67_021D74E0: ; 0x021D74E0 ldr r2, _021D75C8 ; =0x00001068 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x2a bl FUN_02016B94 str r0, [r4] diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index 22fdf851..ef69cd9e 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -42,7 +42,7 @@ MOD68_021D74E0: ; 0x021D74E0 mov r1, #0 lsl r2, r2, #2 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 bl FUN_0200628C mov r1, #0x7e diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index d09cc9ed..0236e100 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -3422,10 +3422,10 @@ MOD69_0222F1B0: ; 0x0222F1B0 mov r0, #0x3f bl FUN_02016998 str r0, [sp, #0x28] - bl FUN_0201B9EC + bl rand_LC str r0, [sp, #0x20] ldr r0, _0222F348 ; =0x00003594 - bl FUN_0201B9E0 + bl seedr_LC mov r0, #0 ldr r4, [sp, #0x28] str r0, [sp, #0x24] @@ -3458,7 +3458,7 @@ _0222F1EE: mov r0, #0 str r0, [sp, #0x1c] _0222F206: - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x13 sub r1, r1, r2 @@ -3471,7 +3471,7 @@ _0222F206: lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #8] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x13 sub r1, r1, r2 @@ -3484,7 +3484,7 @@ _0222F206: lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #4] - bl FUN_0201B9EC + bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f @@ -3517,7 +3517,7 @@ _0222F25C: strh r0, [r4, #0x28] strh r0, [r4, #0x2a] strh r0, [r4, #0x2c] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x17 sub r2, r2, r1 @@ -3528,7 +3528,7 @@ _0222F25C: lsl r0, r0, #8 add r0, r1, r0 strh r0, [r4, #0x2e] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x17 sub r2, r2, r1 @@ -3539,7 +3539,7 @@ _0222F25C: lsl r0, r0, #8 add r0, r1, r0 strh r0, [r4, #0x30] - bl FUN_0201B9EC + bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x17 sub r2, r2, r1 @@ -3557,7 +3557,7 @@ _0222F25C: add r6, r6, #6 cmp r7, #4 blt _0222F25C - bl FUN_0201B9EC + bl rand_LC mov r1, #7 and r0, r1 sub r5, r0, #1 @@ -3594,7 +3594,7 @@ _0222F2FA: b _0222F1EE _0222F320: ldr r0, [sp, #0x20] - bl FUN_0201B9E0 + bl seedr_LC ldr r0, [sp, #0x28] mov r2, #0 str r2, [r0] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 6ce817e2..5bc5cb22 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -957,7 +957,7 @@ _0222DDD8: bl FUN_02031190 cmp r0, #0 bne _0222DE04 - bl FUN_0201B9EC + bl rand_LC ldr r1, _0222E0F0 ; =0x00000445 bl _s32_div_f lsl r0, r0, #0x10 @@ -2157,7 +2157,7 @@ MOD70_0222E76C: ; 0x0222E76C ldr r0, _0222E844 ; =0x0000221C mov r1, #0xff ldr r0, [r5, r0] - bl Call_FillMemWithValue + bl memset ldr r0, [r4, #4] mov r1, #0x1a bl FUN_020239A0 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index 554e804f..8fe29b6b 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -31,7 +31,7 @@ MOD73_021D74F0: ; 0x021D74F0 ldr r2, _021D757C ; =0x000015E8 add r5, r0, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset str r5, [r4, #0x18] mov r1, #0x38 str r1, [r5] @@ -3073,7 +3073,7 @@ _021D8E12: mov r1, #4 add r0, r7, r0 add r2, r1, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _021D8E7C ; =0x00001428 ldr r0, [r7, r0] cmp r0, #1 @@ -3513,7 +3513,7 @@ MOD73_021D9120: ; 0x021D9120 mov r1, #0 lsl r2, r2, #4 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r1, #0x1a lsl r1, r1, #4 str r5, [r4, r1] @@ -3569,7 +3569,7 @@ _021D9174: add r0, r6, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset _021D91AA: ldr r0, [sp] add r6, #0x34 @@ -4260,7 +4260,7 @@ MOD73_021D96B0: ; 0x021D96B0 mov r1, #0 lsl r2, r2, #4 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x42 lsl r0, r0, #2 str r4, [r5, r0] @@ -4280,7 +4280,7 @@ _021D96D6: add r0, r4, #0 mov r1, #0 lsl r2, r2, #4 - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD73_021D96C8 @@ -4716,7 +4716,7 @@ MOD73_021D9A28: ; 0x021D9A28 mov r1, #0 mov r2, #0x34 add r7, r3, #0 - bl Call_FillMemWithValue + bl memset str r6, [r5, #0x18] ldr r0, [sp, #0x1c] str r4, [r5, #0x14] @@ -4740,7 +4740,7 @@ _021D9A5A: add r0, r4, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9A4C @@ -5294,12 +5294,12 @@ _021D9E7C: thumb_func_start MOD73_021D9E80 MOD73_021D9E80: ; 0x021D9E80 - ldr r3, _021D9E88 ; =Call_FillMemWithValue + ldr r3, _021D9E88 ; =memset mov r1, #0 mov r2, #0x78 bx r3 .align 2, 0 -_021D9E88: .word Call_FillMemWithValue +_021D9E88: .word memset thumb_func_end MOD73_021D9E80 thumb_func_start MOD73_021D9E8C @@ -5314,7 +5314,7 @@ _021D9E9A: add r0, r4, #0 mov r1, #0 mov r2, #0x78 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9E8C @@ -5634,7 +5634,7 @@ MOD73_021DA0E0: ; 0x021DA0E0 mov r2, #0x20 add r5, r0, #0 add r7, r3, #0 - bl Call_FillMemWithValue + bl memset str r4, [r5, #0x14] str r6, [r5, #0x18] str r7, [r5, #0x1c] @@ -5654,7 +5654,7 @@ _021DA10A: add r0, r4, #0 mov r1, #0 mov r2, #0x20 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA0FC @@ -5807,7 +5807,7 @@ MOD73_021DA210: ; 0x021DA210 mov r1, #0 mov r2, #0x34 add r7, r3, #0 - bl Call_FillMemWithValue + bl memset str r6, [r5, #0x1c] ldr r0, [sp, #0x1c] str r4, [r5, #0x20] @@ -5833,7 +5833,7 @@ _021DA242: add r0, r4, #0 mov r1, #0 mov r2, #0x34 - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD73_021DA234 @@ -6581,12 +6581,12 @@ _021DA818: .word 0x0001020F thumb_func_start MOD73_021DA81C MOD73_021DA81C: ; 0x021DA81C - ldr r3, _021DA824 ; =Call_FillMemWithValue + ldr r3, _021DA824 ; =memset mov r1, #0 ldr r2, _021DA828 ; =0x00000414 bx r3 .align 2, 0 -_021DA824: .word Call_FillMemWithValue +_021DA824: .word memset _021DA828: .word 0x00000414 thumb_func_end MOD73_021DA81C @@ -6602,7 +6602,7 @@ _021DA83A: ldr r2, _021DA848 ; =0x00000414 add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset pop {r4, pc} nop _021DA848: .word 0x00000414 @@ -6714,17 +6714,17 @@ _021DA900: ldr r0, [sp, #0x60] bl MOD73_021DAB30 _021DA906: - bl FUN_0201BA60 + bl rand_MT lsl r0, r0, #0x10 lsr r6, r0, #0x10 - bl FUN_0201BA60 + bl rand_MT add r1, sp, #0x9c ldrb r1, [r1, #0x11] bl _u32_div_f add r0, sp, #0x9c ldrb r0, [r0, #0x10] add r4, r0, r1 - bl FUN_0201BA60 + bl rand_MT add r1, sp, #0x9c ldrb r1, [r1, #0x13] bl _u32_div_f @@ -6752,7 +6752,7 @@ _021DA906: str r3, [sp, #0x68] ldrsh r4, [r1, r2] str r0, [sp, #0x78] - bl FUN_0201BA60 + bl rand_MT ldr r1, [sp, #0xa0] bl _u32_div_f ldr r0, [sp, #0x9c] @@ -7008,7 +7008,7 @@ _021DAB3E: add r0, r4, #0 mov r1, #0 mov r2, #0x80 - bl Call_FillMemWithValue + bl memset pop {r4, pc} thumb_func_end MOD73_021DAB30 @@ -7292,12 +7292,12 @@ _021DAD72: thumb_func_start MOD73_021DAD78 MOD73_021DAD78: ; 0x021DAD78 - ldr r3, _021DAD80 ; =Call_FillMemWithValue + ldr r3, _021DAD80 ; =memset mov r1, #0 mov r2, #0x80 bx r3 .align 2, 0 -_021DAD80: .word Call_FillMemWithValue +_021DAD80: .word memset thumb_func_end MOD73_021DAD78 thumb_func_start MOD73_021DAD84 @@ -7312,7 +7312,7 @@ _021DAD92: add r0, r4, #0 mov r1, #0 mov r2, #0x80 - bl Call_FillMemWithValue + bl memset pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DAD84 @@ -7595,7 +7595,7 @@ MOD73_021DAF70: ; 0x021DAF70 add r4, r1, #0 mov r1, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset str r4, [r5, #4] pop {r3, r4, r5, pc} nop @@ -7614,7 +7614,7 @@ _021DAF96: ldr r2, _021DAFA4 ; =0x0000090C add r0, r4, #0 mov r1, #0 - bl Call_FillMemWithValue + bl memset pop {r4, pc} nop _021DAFA4: .word 0x0000090C @@ -8639,7 +8639,7 @@ MOD73_021DB698: ; 0x021DB698 ldr r0, [r5, #4] cmp r0, #0 bge _021DB70A - bl FUN_0201BA60 + bl rand_MT mov r1, #5 add r6, r0, #0 bl _u32_div_f @@ -8905,7 +8905,7 @@ MOD73_021DB884: ; 0x021DB884 add r4, r0, #0 mov r1, #0 mov r2, #0x68 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 add r0, #0xc bl MOD73_021DB680 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index ef22a35a..5ac99cc2 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -23,7 +23,7 @@ MOD74_021D74E0: ; 0x021D74E0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldrh r0, [r5, #4] strh r0, [r4, #8] ldrh r0, [r5, #6] diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 4cbcb3a7..00cfbad8 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -40,7 +40,7 @@ MOD75_021E6BA0: ; 0x021E6BA0 ldr r2, _021E6D60 ; =0x000004A4 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_0200628C add r1, r4, #0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index a9f0e6ba..45716ea0 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -21,7 +21,7 @@ MOD76_021D74E0: ; 0x021D74E0 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_0200628C str r0, [r4] diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 8f4fe450..1e602cbc 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -36,7 +36,7 @@ MOD77_021D74E0: ; 0x021D74E0 ldr r2, _021D75DC ; =0x0000C32C mov r1, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x32 str r0, [r5] ldr r0, _021D75E0 ; =0x020ECAC4 diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s index 199957df..dbda846c 100644 --- a/arm9/modules/78/asm/module_78.s +++ b/arm9/modules/78/asm/module_78.s @@ -20,7 +20,7 @@ MOD78_021D74E0: ; 0x021D74E0 mov r1, #0 mov r2, #0xa0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset add r0, r5, #0 bl FUN_0200628C add r5, r0, #0 diff --git a/arm9/modules/79/asm/module_79_arm.s b/arm9/modules/79/asm/module_79_arm.s index 6e80c08e..9c6a0246 100644 --- a/arm9/modules/79/asm/module_79_arm.s +++ b/arm9/modules/79/asm/module_79_arm.s @@ -452,7 +452,7 @@ _02212A98: mov r0, r4 mov r1, #0 mov r2, #0x24 - bl Call_FillMemWithValue + bl memset ldmia sp!, {r4, pc} .align 2, 0 _02212AAC: .word 0x02216888 @@ -1475,7 +1475,7 @@ _0221384C: mov r2, #0x184 ldr r4, [r0, r5, lsl #2] mov r0, r4 - bl Call_FillMemWithValue + bl memset mov r0, #1 str r0, [r4] ldr r0, _022139C4 ; =0x02217134 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index a7342cac..de0e7672 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -1399,7 +1399,7 @@ _0222DFE4: ldr r2, _0222E108 ; =0x00001044 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x3e bl FUN_02016B94 str r0, [r4, #4] @@ -15859,7 +15859,7 @@ MOD80_022353B4: ; 0x022353B4 bl FUN_02022840 mov r0, #0x1f str r0, [r4, #0x2c] - bl FUN_0201B9EC + bl rand_LC ldr r1, _022353EC ; =0x00000445 bl _s32_div_f lsl r0, r0, #0x10 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index aaa6085d..b52f32e8 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -3248,7 +3248,7 @@ MOD81_022396E8: ; 0x022396E8 str r1, [r4, r0] add r0, r0, #4 str r1, [r4, r0] - bl FUN_0201BA60 + bl rand_MT add r1, r4, #0 add r1, #0xbc str r0, [r1] @@ -3300,7 +3300,7 @@ _02239790: add r0, r5, #0 add r0, #0xbc ldr r0, [r0] - bl FUN_0201BA1C + bl seedr_MT add r0, r5, #0 bl FUN_02016A18 _022397A0: @@ -4154,17 +4154,17 @@ MOD81_02239E00: ; 0x02239E00 add r3, sp, #0x60 bl MOD81_022387A8 ldr r0, _02239F18 ; =0x035947D1 - bl FUN_0201BA1C + bl seedr_MT mov r0, #0 str r0, [sp, #0x14] add r4, r7, #0 _02239E9A: - bl FUN_0201BA60 + bl rand_MT mov r1, #0xe8 bl _u32_div_f add r6, r1, #0 add r6, #0xc - bl FUN_0201BA60 + bl rand_MT mov r1, #0x71 lsl r1, r1, #2 bl _u32_div_f diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index c13e4a07..73c58a93 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -649,7 +649,7 @@ _0222DA48: ldr r2, _0222DB58 ; =0x00000EC8 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x44 bl FUN_02016B94 str r0, [r4, #4] diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index b660fc3c..4bd1653b 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -1925,7 +1925,7 @@ MOD83_0222E48C: ; 0x0222E48C mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x51 bl FUN_02016B94 str r0, [r4] @@ -6512,7 +6512,7 @@ MOD83_02230954: ; 0x02230954 ldr r2, _022309FC ; =0x00002998 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x56 bl FUN_02016B94 str r0, [r4] @@ -9733,7 +9733,7 @@ MOD83_022323A8: ; 0x022323A8 ldr r2, _0223240C ; =0x00003CF4 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x57 bl FUN_02016B94 ldr r1, _02232410 ; =0x0000299C @@ -11393,7 +11393,7 @@ MOD83_02233168: ; 0x02233168 ldr r2, _022331B4 ; =0x00003CF4 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset ldr r0, _022331B8 ; =0x0000299C mov r1, #0x1e str r6, [r4, r0] @@ -17640,7 +17640,7 @@ MOD83_0223600C: ; 0x0223600C mov r1, #0 add r0, r4, r0 mov r2, #0x4c - bl Call_FillMemWithValue + bl memset ldr r0, _022360BC ; =0x00000498 mov r3, #0x1b add r1, r0, #0 @@ -18512,7 +18512,7 @@ MOD83_02236764: ; 0x02236764 ldr r2, _022367F0 ; =0x00012608 mov r1, #0 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x4e bl FUN_02016B94 str r0, [r4, #0x20] @@ -22822,7 +22822,7 @@ MOD83_022387A0: ; 0x022387A0 mov r1, #0 add r2, r4, #0 add r5, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 @@ -22993,7 +22993,7 @@ MOD83_022388E4: ; 0x022388E4 mov r2, #0x54 add r5, r0, #0 add r7, r3, #0 - bl Call_FillMemWithValue + bl memset mov r0, #1 str r0, [r5, #4] str r0, [r5, #8] diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s index e295fcbb..a0ac6143 100644 --- a/arm9/modules/84/asm/module_84.s +++ b/arm9/modules/84/asm/module_84.s @@ -1670,7 +1670,7 @@ _021D82CC: add r2, r4, r1 ldr r1, _021D8434 ; =0x000002BA strb r0, [r2, r1] - bl FUN_0201B9EC + bl rand_LC ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] lsl r1, r1, #3 @@ -1705,7 +1705,7 @@ _021D8340: add r5, r4, #0 add r5, #0x18 _021D8358: - bl FUN_0201B9EC + bl rand_LC ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] sub r1, r1, r7 @@ -1748,7 +1748,7 @@ _021D8358: cmp r7, r0 blt _021D8358 _021D83B0: - bl FUN_0201B9EC + bl rand_LC mov r1, #3 bl _s32_div_f add r5, r1, #0 @@ -1787,7 +1787,7 @@ _021D83E8: bl FUN_02024674 ldr r1, _021D8434 ; =0x000002BA strb r0, [r4, r1] - bl FUN_0201B9EC + bl rand_LC mov r1, #0xaf lsl r1, r1, #2 str r0, [r4, r1] @@ -2922,7 +2922,7 @@ MOD84_021D8C54: ; 0x021D8C54 str r2, [r4, r0] add r1, #0xa strh r2, [r4, r1] - bl FUN_0201B9EC + bl rand_LC ldr r1, _021D8CD0 ; =0x00000DFC strh r0, [r4, r1] add r0, r5, #0 @@ -2986,7 +2986,7 @@ MOD84_021D8CEC: ; 0x021D8CEC add r4, r0, #0 ldr r0, _021D8D08 ; =0x00000DFC ldrh r0, [r4, r0] - bl FUN_0201B9E0 + bl seedr_LC add r0, r4, #0 bl MOD84_021D9044 add r0, r4, #0 @@ -3393,7 +3393,7 @@ _021D8FE4: b _021D9034 _021D9028: ldr r0, _021D9040 ; =0x00003485 - bl FUN_0201B9E0 + bl seedr_LC add sp, #0x6c mov r0, #1 pop {r4, r5, r6, r7, pc} @@ -3551,7 +3551,7 @@ _021D90F6: mov r0, #0x4e lsl r0, r0, #0xe str r0, [r4, #0x18] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x19 sub r1, r1, r2 @@ -3563,7 +3563,7 @@ _021D90F6: str r0, [r4, #0x1c] mov r0, #0 str r0, [r4, #0x20] - bl FUN_0201B9EC + bl rand_LC ldr r1, _021D9200 ; =0x00000667 bl _s32_div_f ldr r0, _021D9204 ; =0x00000666 @@ -3573,7 +3573,7 @@ _021D90F6: str r0, [r4, #0x30] mov r0, #0 str r0, [r4, #0x28] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 @@ -3583,7 +3583,7 @@ _021D90F6: add r0, r0, #2 lsl r0, r0, #0xc str r0, [r4, #0x2c] - bl FUN_0201B9EC + bl rand_LC mov r1, #0xc bl _s32_div_f add r0, r1, #4 @@ -3759,7 +3759,7 @@ _021D92AE: mov r0, #0x4e lsl r0, r0, #0xe str r0, [r4, #0x18] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x19 sub r1, r1, r2 @@ -3771,7 +3771,7 @@ _021D92AE: str r0, [r4, #0x1c] mov r0, #0 str r0, [r4, #0x20] - bl FUN_0201B9EC + bl rand_LC ldr r1, _021D938C ; =0x00000667 bl _s32_div_f ldr r0, _021D9390 ; =0x00000666 @@ -3781,7 +3781,7 @@ _021D92AE: str r0, [r4, #0x30] mov r0, #0 str r0, [r4, #0x28] - bl FUN_0201B9EC + bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 @@ -3791,7 +3791,7 @@ _021D92AE: add r0, r0, #2 lsl r0, r0, #0xc str r0, [r4, #0x2c] - bl FUN_0201B9EC + bl rand_LC mov r1, #0xc bl _s32_div_f add r0, r1, #4 diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index a8184ceb..3b342aa7 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -1482,7 +1482,7 @@ _021D810C: add r0, r4, #0 mov r1, #0 add r2, r5, #0 - bl Call_FillMemWithValue + bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -1587,7 +1587,7 @@ MOD85_021D81C8: ; 0x021D81C8 mov r4, #0 lsl r6, r7, #0x11 _021D81D2: - bl FUN_0201B9EC + bl rand_LC add r1, r7, #0 bl _s32_div_f add r0, r5, #0 @@ -6759,7 +6759,7 @@ _021DA7B4: thumb_func_start MOD85_021DA7B8 MOD85_021DA7B8: ; 0x021DA7B8 push {r3, lr} - bl FUN_0201B9EC + bl rand_LC mov r1, #0x64 bl _u32_div_f add r0, r1, #0 @@ -7481,7 +7481,7 @@ _021DAD08: .word 0x021E0240 MOD85_021DAD0C: ; 0x021DAD0C push {r4, lr} add r4, r0, #0 - bl FUN_0201B9EC + bl rand_LC mov r1, #6 bl _s32_div_f str r1, [r4, #0x34] diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s index f31782bf..9c974657 100644 --- a/arm9/modules/86/asm/module_86.s +++ b/arm9/modules/86/asm/module_86.s @@ -19,7 +19,7 @@ MOD86_021D74E0: ; 0x021D74E0 mov r1, #0 mov r2, #0x44 add r4, r0, #0 - bl Call_FillMemWithValue + bl memset mov r0, #0x54 str r0, [r4] add r0, r5, #0 diff --git a/arm9/src/FUN_02000DE4.c b/arm9/src/FUN_02000DE4.c index 033ef4ce..851f39b8 100644 --- a/arm9/src/FUN_02000DE4.c +++ b/arm9/src/FUN_02000DE4.c @@ -149,8 +149,8 @@ THUMB_FUNC void FUN_02000F4C(int arg0, int arg1) } extern void FUN_0201265C(struct Unk21C4818 *, struct Unk21C4828 *); -extern void FUN_0201BA1C(int); -extern void FUN_0201B9E0(int); +extern void seedr_MT(int); +extern void seedr_LC(int); void FUN_02000FA4(void) { @@ -160,8 +160,8 @@ void FUN_02000FA4(void) { int r4 = gUnknown21C48B8.unk2C; int r5 = ((sp0.unk4 + sp0.unk8) << 24) + (spC.unk0 + ((256 * spC.unk4 * spC.unk8) << 16) + (sp0.unk0 << 16)); - FUN_0201BA1C(r4 + r5); - FUN_0201B9E0(r4 + r5); + seedr_MT(r4 + r5); + seedr_LC(r4 + r5); } } |