mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-20 07:44:54 -05:00
7583 lines
131 KiB
ArmAsm
7583 lines
131 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
.section .text
|
|
.balign 4, 0
|
|
|
|
thumb_func_start MOD62_0222D5C0
|
|
MOD62_0222D5C0: ; 0x0222D5C0
|
|
ldr r3, _0222D5C8 ; =HandleLoadOverlay
|
|
ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID
|
|
mov r1, #2
|
|
bx r3
|
|
.align 2, 0
|
|
_0222D5C8: .word HandleLoadOverlay
|
|
_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID
|
|
thumb_func_end MOD62_0222D5C0
|
|
|
|
thumb_func_start MOD62_0222D5D0
|
|
MOD62_0222D5D0: ; 0x0222D5D0
|
|
add r3, r2, #0
|
|
sub r3, #0xa
|
|
strb r3, [r0]
|
|
add r3, r1, #0
|
|
sub r3, #0xa
|
|
strb r3, [r0, #2]
|
|
add r2, #0xa
|
|
strb r2, [r0, #1]
|
|
add r1, #0xa
|
|
strb r1, [r0, #3]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222D5D0
|
|
|
|
thumb_func_start MOD62_0222D5E8
|
|
MOD62_0222D5E8: ; 0x0222D5E8
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #2]
|
|
mov r1, #0xc0
|
|
strb r1, [r0, #1]
|
|
mov r1, #0xff
|
|
strb r1, [r0, #3]
|
|
bx lr
|
|
thumb_func_end MOD62_0222D5E8
|
|
|
|
thumb_func_start MOD62_0222D5F8
|
|
MOD62_0222D5F8: ; 0x0222D5F8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
beq _0222D64C
|
|
cmp r2, #1
|
|
bne _0222D628
|
|
ldr r3, _0222D650 ; =0x021C48F8
|
|
mov r1, #0x1c
|
|
mov r2, #0x1e
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r4, #0
|
|
bl FUN_0200C714
|
|
add r1, sp, #0
|
|
add r0, r4, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl FUN_0200C7A0
|
|
add r0, r5, #0
|
|
bl MOD62_0222D5E8
|
|
pop {r3, r4, r5, pc}
|
|
_0222D628:
|
|
add r1, sp, #0
|
|
add r0, r4, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl FUN_0200C7A0
|
|
add r3, sp, #0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
bl MOD62_0222D5D0
|
|
_0222D64C:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222D650: .word 0x021C48F8
|
|
thumb_func_end MOD62_0222D5F8
|
|
|
|
thumb_func_start MOD62_0222D654
|
|
MOD62_0222D654: ; 0x0222D654
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
add r7, r4, #0
|
|
mov r6, #0xcb
|
|
add r5, r0, #0
|
|
sub r7, #0x38
|
|
lsl r6, r6, #2
|
|
_0222D662:
|
|
ldr r0, [r5, r6]
|
|
cmp r0, #0
|
|
beq _0222D670
|
|
add r1, r7, #0
|
|
mov r2, #0x10
|
|
bl FUN_0200C82C
|
|
_0222D670:
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #8
|
|
blt _0222D662
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222D654
|
|
|
|
thumb_func_start MOD62_0222D67C
|
|
MOD62_0222D67C: ; 0x0222D67C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
mov r6, #0
|
|
lsl r0, r0, #3
|
|
add r0, r7, r0
|
|
ldr r4, [r0, #8]
|
|
add r5, r7, #0
|
|
_0222D690:
|
|
ldrb r1, [r4]
|
|
cmp r1, #0
|
|
beq _0222D6CE
|
|
mov r0, #0xca
|
|
lsl r0, r0, #2
|
|
strb r1, [r5, r0]
|
|
ldrb r1, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r1, [r5, r0]
|
|
ldrb r1, [r4, #2]
|
|
ldr r0, _0222D6E8 ; =0x0000032A
|
|
strb r1, [r5, r0]
|
|
lsl r1, r6, #0x18
|
|
add r0, r7, #0
|
|
lsr r1, r1, #0x18
|
|
bl MOD62_0222D9A0
|
|
mov r0, #0x33
|
|
mov r1, #0xcb
|
|
lsl r0, r0, #4
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r5, r1]
|
|
mov r2, #0
|
|
bl MOD62_0222D5F8
|
|
mov r0, #0xc9
|
|
mov r1, #1
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
b _0222D6DA
|
|
_0222D6CE:
|
|
mov r0, #0xc9
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r0, #4
|
|
strb r1, [r5, r0]
|
|
_0222D6DA:
|
|
add r6, r6, #1
|
|
add r4, r4, #3
|
|
add r5, #0x10
|
|
cmp r6, #8
|
|
blt _0222D690
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222D6E8: .word 0x0000032A
|
|
thumb_func_end MOD62_0222D67C
|
|
|
|
thumb_func_start MOD62_0222D6EC
|
|
MOD62_0222D6EC: ; 0x0222D6EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r0, #0
|
|
mov r0, #0xc9
|
|
mov r4, #0
|
|
add r3, r6, #0
|
|
lsl r0, r0, #2
|
|
_0222D6FA:
|
|
ldr r2, [r3, r0]
|
|
cmp r2, #1
|
|
beq _0222D75C
|
|
add r0, r6, r1
|
|
mov r1, #0x42
|
|
lsl r1, r1, #4
|
|
ldrb r3, [r0, r1]
|
|
lsl r5, r4, #4
|
|
add r0, r1, #0
|
|
add r2, r6, r5
|
|
sub r0, #0xf8
|
|
strb r3, [r2, r0]
|
|
add r0, r1, #0
|
|
sub r0, #0xf7
|
|
add r7, r6, r0
|
|
mov r0, #0xbe
|
|
sub r1, #0xf6
|
|
strb r0, [r7, r5]
|
|
add r0, r6, r1
|
|
mov r1, #0x46
|
|
strb r1, [r0, r5]
|
|
str r0, [sp]
|
|
add r0, sp, #8
|
|
add r1, sp, #4
|
|
bl FUN_02020AB0
|
|
ldr r0, [sp, #8]
|
|
strb r0, [r7, r5]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp]
|
|
strb r1, [r0, r5]
|
|
lsl r1, r4, #0x18
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
bl MOD62_0222D9A0
|
|
lsl r1, r4, #0x18
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
bl MOD62_0222D788
|
|
mov r0, #0xc9
|
|
mov r2, #1
|
|
add r1, r6, r5
|
|
lsl r0, r0, #2
|
|
str r2, [r1, r0]
|
|
add sp, #0xc
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0222D75C:
|
|
add r4, r4, #1
|
|
add r3, #0x10
|
|
cmp r4, #8
|
|
blt _0222D6FA
|
|
mov r0, #0xff
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222D6EC
|
|
|
|
thumb_func_start MOD62_0222D76C
|
|
MOD62_0222D76C: ; 0x0222D76C
|
|
mov r1, #0xc9
|
|
mov r3, #0
|
|
lsl r1, r1, #2
|
|
_0222D772:
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #1
|
|
beq _0222D77C
|
|
mov r0, #1
|
|
bx lr
|
|
_0222D77C:
|
|
add r3, r3, #1
|
|
add r0, #0x10
|
|
cmp r3, #8
|
|
blt _0222D772
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end MOD62_0222D76C
|
|
|
|
thumb_func_start MOD62_0222D788
|
|
MOD62_0222D788: ; 0x0222D788
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0xc9
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_0222D794:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #1
|
|
bne _0222D7D4
|
|
cmp r4, r6
|
|
bne _0222D7AC
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C6C4
|
|
b _0222D7D4
|
|
_0222D7AC:
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FUN_0200C6D8
|
|
add r1, r0, #0
|
|
bne _0222D7C8
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r1, #1
|
|
bl FUN_0200C6C4
|
|
b _0222D7D4
|
|
_0222D7C8:
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r1, #2
|
|
bl FUN_0200C6C4
|
|
_0222D7D4:
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #8
|
|
blt _0222D794
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222D788
|
|
|
|
thumb_func_start MOD62_0222D7E0
|
|
MOD62_0222D7E0: ; 0x0222D7E0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r7, r1, #0
|
|
add r1, r0, #0
|
|
add r1, #0xdc
|
|
ldr r4, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xe0
|
|
ldr r5, [r1]
|
|
mov r1, #0x5b
|
|
str r1, [sp]
|
|
add r1, #0xca
|
|
str r1, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #1
|
|
str r1, [sp, #0xc]
|
|
mov r1, #2
|
|
str r1, [sp, #0x10]
|
|
ldr r1, _0222D864 ; =0x0000532D
|
|
add r6, r2, #0
|
|
str r1, [sp, #0x14]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #3
|
|
add r2, r4, #0
|
|
add r3, r5, #0
|
|
bl FUN_0200C0DC
|
|
add r0, r7, #0
|
|
bl FUN_02085FAC
|
|
add r3, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222D868 ; =0x00004E20
|
|
add r1, r5, #0
|
|
add r0, r6, r0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222D86C ; =0x0000564D
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x5d
|
|
bl FUN_0200C124
|
|
mov r3, #1
|
|
ldr r0, _0222D870 ; =0x000059D9
|
|
str r3, [sp]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #0x5b
|
|
bl FUN_0200C13C
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222D864: .word 0x0000532D
|
|
_0222D868: .word 0x00004E20
|
|
_0222D86C: .word 0x0000564D
|
|
_0222D870: .word 0x000059D9
|
|
thumb_func_end MOD62_0222D7E0
|
|
|
|
thumb_func_start MOD62_0222D874
|
|
MOD62_0222D874: ; 0x0222D874
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x74
|
|
mov r1, #0x26
|
|
lsl r1, r1, #4
|
|
str r0, [sp]
|
|
ldr r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _0222D886
|
|
b _0222D994
|
|
_0222D886:
|
|
ldr r0, [sp]
|
|
mov r7, #0
|
|
str r7, [r0, r1]
|
|
add r4, sp, #0x54
|
|
add r5, sp, #0x34
|
|
add r6, r0, #0
|
|
_0222D892:
|
|
mov r0, #0xff
|
|
str r0, [r4]
|
|
str r0, [r5]
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
beq _0222D8AA
|
|
bl FUN_0200C6D8
|
|
str r0, [r4]
|
|
str r7, [r5]
|
|
_0222D8AA:
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
add r6, #0x10
|
|
cmp r7, #8
|
|
blt _0222D892
|
|
mov r0, #0
|
|
mov ip, r0
|
|
_0222D8BA:
|
|
mov r0, ip
|
|
mov r3, #7
|
|
cmp r0, #7
|
|
bge _0222D8EA
|
|
add r4, sp, #0x70
|
|
add r5, sp, #0x50
|
|
_0222D8C6:
|
|
sub r7, r4, #4
|
|
ldr r2, [r4]
|
|
ldr r0, [r7]
|
|
cmp r0, r2
|
|
blt _0222D8DE
|
|
ldr r1, [r5]
|
|
sub r6, r5, #4
|
|
str r0, [r4]
|
|
ldr r0, [r6]
|
|
str r0, [r5]
|
|
str r2, [r7]
|
|
str r1, [r6]
|
|
_0222D8DE:
|
|
sub r3, r3, #1
|
|
mov r0, ip
|
|
sub r4, r4, #4
|
|
sub r5, r5, #4
|
|
cmp r3, r0
|
|
bgt _0222D8C6
|
|
_0222D8EA:
|
|
mov r0, ip
|
|
add r0, r0, #1
|
|
mov ip, r0
|
|
cmp r0, #7
|
|
blt _0222D8BA
|
|
mov r3, #0xca
|
|
lsl r3, r3, #2
|
|
ldr r0, [sp]
|
|
mov r2, #0
|
|
add r1, sp, #0x1c
|
|
add r4, r3, #1
|
|
add r5, r3, #2
|
|
_0222D902:
|
|
ldrb r6, [r0, r3]
|
|
add r2, r2, #1
|
|
strb r6, [r1]
|
|
ldrb r6, [r0, r4]
|
|
strb r6, [r1, #1]
|
|
ldrb r6, [r0, r5]
|
|
add r0, #0x10
|
|
strb r6, [r1, #2]
|
|
add r1, r1, #3
|
|
cmp r2, #8
|
|
blt _0222D902
|
|
add r3, sp, #0x1c
|
|
add r2, sp, #4
|
|
mov r1, #0x18
|
|
_0222D91E:
|
|
ldrb r0, [r3]
|
|
add r3, r3, #1
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _0222D91E
|
|
ldr r5, [sp]
|
|
mov r6, #0
|
|
add r4, sp, #0x34
|
|
add r7, sp, #4
|
|
_0222D932:
|
|
ldr r1, [r4]
|
|
cmp r1, #0xff
|
|
bne _0222D94A
|
|
mov r0, #0xca
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strb r1, [r5, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r5, r0]
|
|
ldr r0, _0222D998 ; =0x0000032A
|
|
strb r1, [r5, r0]
|
|
b _0222D98A
|
|
_0222D94A:
|
|
lsl r0, r1, #1
|
|
add r0, r1, r0
|
|
ldrb r1, [r7, r0]
|
|
mov r0, #0xca
|
|
lsl r0, r0, #2
|
|
strb r1, [r5, r0]
|
|
ldr r1, [r4]
|
|
lsl r0, r1, #1
|
|
add r0, r1, r0
|
|
add r0, r7, r0
|
|
ldrb r1, [r0, #1]
|
|
ldr r0, _0222D99C ; =0x00000329
|
|
strb r1, [r5, r0]
|
|
ldr r1, [r4]
|
|
lsl r0, r1, #1
|
|
add r0, r1, r0
|
|
add r0, r7, r0
|
|
ldrb r1, [r0, #2]
|
|
ldr r0, _0222D998 ; =0x0000032A
|
|
strb r1, [r5, r0]
|
|
ldr r0, [r4]
|
|
lsl r1, r0, #4
|
|
ldr r0, [sp]
|
|
add r1, r0, r1
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _0222D98A
|
|
add r1, r6, #0
|
|
bl FUN_0200C6C4
|
|
_0222D98A:
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
add r5, #0x10
|
|
cmp r6, #8
|
|
blt _0222D932
|
|
_0222D994:
|
|
add sp, #0x74
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222D998: .word 0x0000032A
|
|
_0222D99C: .word 0x00000329
|
|
thumb_func_end MOD62_0222D874
|
|
|
|
thumb_func_start MOD62_0222D9A0
|
|
MOD62_0222D9A0: ; 0x0222D9A0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
add r5, r1, #0
|
|
add r1, r0, #0
|
|
add r1, #0xdc
|
|
ldr r7, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xe0
|
|
ldr r6, [r1]
|
|
mov r1, #0xc9
|
|
lsl r1, r1, #2
|
|
add r2, r0, r1
|
|
lsl r1, r5, #4
|
|
add r4, r2, r1
|
|
ldr r1, [r2, r1]
|
|
cmp r1, #1
|
|
bne _0222D9CC
|
|
bl ErrorHandling
|
|
add sp, #0x34
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0222D9CC:
|
|
ldrb r1, [r4, #4]
|
|
add r2, r5, #0
|
|
bl MOD62_0222D7E0
|
|
ldrb r1, [r4, #5]
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
ldrb r1, [r4, #6]
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
str r0, [sp, #0x10]
|
|
mov r0, #1
|
|
str r0, [sp, #0x2c]
|
|
sub r0, r0, #2
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x30]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0x24]
|
|
str r0, [sp, #0x28]
|
|
ldrb r0, [r4, #4]
|
|
bl FUN_02085FAC
|
|
ldr r0, _0222DA28 ; =0x00004E20
|
|
add r1, r6, #0
|
|
add r0, r5, r0
|
|
str r0, [sp, #0x14]
|
|
ldr r0, _0222DA2C ; =0x0000532D
|
|
add r2, sp, #0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, _0222DA30 ; =0x0000564D
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, _0222DA34 ; =0x000059D9
|
|
str r0, [sp, #0x20]
|
|
add r0, r7, #0
|
|
bl FUN_0200C154
|
|
str r0, [r4, #8]
|
|
bl FUN_0200C5A8
|
|
mov r0, #1
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DA28: .word 0x00004E20
|
|
_0222DA2C: .word 0x0000532D
|
|
_0222DA30: .word 0x0000564D
|
|
_0222DA34: .word 0x000059D9
|
|
thumb_func_end MOD62_0222D9A0
|
|
|
|
thumb_func_start MOD62_0222DA38
|
|
MOD62_0222DA38: ; 0x0222DA38
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r2, #0
|
|
add r6, r1, #0
|
|
mov r1, #0xc9
|
|
add r4, r0, #0
|
|
lsl r7, r5, #4
|
|
add r3, r4, r7
|
|
lsl r1, r1, #2
|
|
ldr r2, [r3, r1]
|
|
cmp r2, #0
|
|
bne _0222DA52
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222DA52:
|
|
cmp r6, #3
|
|
bhi _0222DAE2
|
|
add r2, r6, r6
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_0222DA62: ; jump table
|
|
.short _0222DA6A - _0222DA62 - 2 ; case 0
|
|
.short _0222DAAA - _0222DA62 - 2 ; case 1
|
|
.short _0222DA80 - _0222DA62 - 2 ; case 2
|
|
.short _0222DAAA - _0222DA62 - 2 ; case 3
|
|
_0222DA6A:
|
|
add r1, r4, #0
|
|
add r1, #0xd4
|
|
ldr r1, [r1]
|
|
cmp r1, #0xff
|
|
bne _0222DAE6
|
|
add r4, #0xd4
|
|
add r1, r5, #0
|
|
str r5, [r4]
|
|
bl MOD62_0222D788
|
|
b _0222DAE6
|
|
_0222DA80:
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
bne _0222DAE6
|
|
add r0, r1, #0
|
|
add r0, #0xc
|
|
add r1, #8
|
|
ldr r0, [r3, r0]
|
|
ldr r1, [r3, r1]
|
|
mov r2, #1
|
|
bl MOD62_0222D5F8
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DBCC
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DC48
|
|
b _0222DAE6
|
|
_0222DAAA:
|
|
add r1, r4, #0
|
|
add r1, #0xd4
|
|
ldr r1, [r1]
|
|
cmp r1, #0xff
|
|
bne _0222DAE6
|
|
add r1, r5, #0
|
|
bl MOD62_0222DB38
|
|
mov r1, #0x33
|
|
add r2, r4, r7
|
|
lsl r1, r1, #4
|
|
add r6, r0, #0
|
|
ldr r0, [r2, r1]
|
|
sub r1, r1, #4
|
|
ldr r1, [r2, r1]
|
|
mov r2, #0
|
|
bl MOD62_0222D5F8
|
|
cmp r6, #0
|
|
bne _0222DADA
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DB78
|
|
_0222DADA:
|
|
mov r0, #0xff
|
|
add r4, #0xd4
|
|
str r0, [r4]
|
|
b _0222DAE6
|
|
_0222DAE2:
|
|
bl ErrorHandling
|
|
_0222DAE6:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DA38
|
|
|
|
thumb_func_start MOD62_0222DAEC
|
|
MOD62_0222DAEC: ; 0x0222DAEC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0xc9
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0222DAF8:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #1
|
|
bne _0222DB06
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl MOD62_0222DB78
|
|
_0222DB06:
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #8
|
|
blt _0222DAF8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222DAEC
|
|
|
|
thumb_func_start MOD62_0222DB10
|
|
MOD62_0222DB10: ; 0x0222DB10
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0xc9
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_0222DB1C:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #1
|
|
bne _0222DB2E
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r6, #0
|
|
bl FUN_0200C644
|
|
_0222DB2E:
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #8
|
|
blt _0222DB1C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222DB10
|
|
|
|
thumb_func_start MOD62_0222DB38
|
|
MOD62_0222DB38: ; 0x0222DB38
|
|
push {r3, lr}
|
|
lsl r1, r1, #4
|
|
add r2, r0, r1
|
|
mov r0, #0xc9
|
|
lsl r0, r0, #2
|
|
ldr r1, [r2, r0]
|
|
cmp r1, #0
|
|
bne _0222DB4C
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222DB4C:
|
|
add r0, #8
|
|
ldr r0, [r2, r0]
|
|
add r1, sp, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl FUN_0200C7A0
|
|
add r2, sp, #0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
ldrsh r0, [r2, r0]
|
|
ldrsh r1, [r2, r1]
|
|
mov r2, #0xbe
|
|
mov r3, #0x46
|
|
bl MOD08_0222A02C
|
|
cmp r0, #0x3c
|
|
bgt _0222DB74
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222DB74:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222DB38
|
|
|
|
thumb_func_start MOD62_0222DB78
|
|
MOD62_0222DB78: ; 0x0222DB78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0xca
|
|
add r7, r1, #0
|
|
lsl r0, r0, #2
|
|
lsl r4, r7, #4
|
|
add r6, r5, r0
|
|
ldrb r0, [r6, r4]
|
|
bl FUN_02085FAC
|
|
add r0, r5, #0
|
|
add r0, #0xe0
|
|
ldr r1, _0222DBC8 ; =0x00004E20
|
|
ldr r0, [r0]
|
|
add r1, r7, r1
|
|
bl FUN_0200C358
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
add r7, r5, r0
|
|
ldr r0, [r7, r4]
|
|
bl FUN_0200C3DC
|
|
mov r1, #0
|
|
mov r2, #0xc9
|
|
lsl r2, r2, #2
|
|
str r1, [r7, r4]
|
|
add r3, r5, r4
|
|
str r1, [r3, r2]
|
|
strb r1, [r6, r4]
|
|
add r0, r2, #5
|
|
strb r1, [r3, r0]
|
|
add r0, r2, #6
|
|
add r2, #0xc
|
|
strb r1, [r3, r0]
|
|
ldr r0, [r3, r2]
|
|
add r2, r1, #0
|
|
bl MOD62_0222D5D0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222DBC8: .word 0x00004E20
|
|
thumb_func_end MOD62_0222DB78
|
|
|
|
thumb_func_start MOD62_0222DBCC
|
|
MOD62_0222DBCC: ; 0x0222DBCC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
bl MOD62_0222DB38
|
|
cmp r0, #0
|
|
bne _0222DBEC
|
|
lsl r0, r5, #4
|
|
add r1, r4, r0
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #1
|
|
bl FUN_0200C90C
|
|
pop {r3, r4, r5, pc}
|
|
_0222DBEC:
|
|
lsl r0, r5, #4
|
|
add r1, r4, r0
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C90C
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DBCC
|
|
|
|
thumb_func_start MOD62_0222DC00
|
|
MOD62_0222DC00: ; 0x0222DC00
|
|
push {r4, r5, r6, r7}
|
|
mov r2, #0xf1
|
|
lsl r2, r2, #2
|
|
ldr r2, [r0, r2]
|
|
ldr r4, _0222DC44 ; =0x00000329
|
|
lsl r2, r2, #3
|
|
add r2, r0, r2
|
|
ldr r2, [r2, #8]
|
|
mov r1, #0
|
|
add r3, r4, #1
|
|
sub r5, r4, #1
|
|
_0222DC16:
|
|
ldrb r7, [r0, r5]
|
|
ldrb r6, [r2]
|
|
cmp r7, r6
|
|
bne _0222DC2E
|
|
ldrb r7, [r0, r4]
|
|
ldrb r6, [r2, #1]
|
|
cmp r7, r6
|
|
bne _0222DC2E
|
|
ldrb r7, [r0, r3]
|
|
ldrb r6, [r2, #2]
|
|
cmp r7, r6
|
|
beq _0222DC34
|
|
_0222DC2E:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
_0222DC34:
|
|
add r1, r1, #1
|
|
add r2, r2, #3
|
|
add r0, #0x10
|
|
cmp r1, #8
|
|
blt _0222DC16
|
|
mov r0, #0
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
.align 2, 0
|
|
_0222DC44: .word 0x00000329
|
|
thumb_func_end MOD62_0222DC00
|
|
|
|
thumb_func_start MOD62_0222DC48
|
|
MOD62_0222DC48: ; 0x0222DC48
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
lsl r4, r1, #4
|
|
mov r0, #0xcb
|
|
add r1, r5, r4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
add r1, sp, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl FUN_0200C7A0
|
|
add r2, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r2, r0]
|
|
ldr r0, _0222DC78 ; =0x00000329
|
|
add r3, r5, r4
|
|
strb r1, [r3, r0]
|
|
mov r1, #0
|
|
ldrsh r1, [r2, r1]
|
|
add r0, r0, #1
|
|
strb r1, [r3, r0]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222DC78: .word 0x00000329
|
|
thumb_func_end MOD62_0222DC48
|
|
|
|
thumb_func_start MOD62_0222DC7C
|
|
MOD62_0222DC7C: ; 0x0222DC7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
mov r3, #0xca
|
|
add r7, r0, #0
|
|
lsl r3, r3, #2
|
|
mov r0, #0
|
|
add r1, r7, #0
|
|
add r2, sp, #0
|
|
add r4, r3, #1
|
|
add r5, r3, #2
|
|
_0222DC90:
|
|
ldrb r6, [r1, r3]
|
|
add r0, r0, #1
|
|
strb r6, [r2]
|
|
ldrb r6, [r1, r4]
|
|
strb r6, [r2, #1]
|
|
ldrb r6, [r1, r5]
|
|
add r1, #0x10
|
|
strb r6, [r2, #2]
|
|
add r2, r2, #3
|
|
cmp r0, #8
|
|
blt _0222DC90
|
|
ldr r0, [r7]
|
|
mov r2, #0xf1
|
|
lsl r2, r2, #2
|
|
ldr r0, [r0, #0x20]
|
|
ldr r2, [r7, r2]
|
|
add r1, sp, #0
|
|
bl FUN_02029CA4
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DC7C
|
|
|
|
thumb_func_start MOD62_0222DCBC
|
|
MOD62_0222DCBC: ; 0x0222DCBC
|
|
push {r3, r4, r5, r6}
|
|
mov r3, #0xca
|
|
lsl r3, r3, #2
|
|
mov r2, #0
|
|
add r4, r3, #1
|
|
add r5, r3, #2
|
|
_0222DCC8:
|
|
ldrb r6, [r1, r3]
|
|
add r2, r2, #1
|
|
strb r6, [r0]
|
|
ldrb r6, [r1, r4]
|
|
strb r6, [r0, #1]
|
|
ldrb r6, [r1, r5]
|
|
add r1, #0x10
|
|
strb r6, [r0, #2]
|
|
add r0, r0, #3
|
|
cmp r2, #8
|
|
blt _0222DCC8
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DCBC
|
|
|
|
thumb_func_start MOD62_0222DCE4
|
|
MOD62_0222DCE4: ; 0x0222DCE4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
add r1, sp, #0
|
|
add r4, r2, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
add r6, r3, #0
|
|
bl FUN_0200C7A0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
ldrsh r2, [r1, r0]
|
|
sub r2, r2, r6
|
|
strb r2, [r5]
|
|
ldrsh r0, [r1, r0]
|
|
add r0, r0, r6
|
|
strb r0, [r5, #1]
|
|
mov r0, #2
|
|
ldrsh r2, [r1, r0]
|
|
sub r2, r2, r4
|
|
strb r2, [r5, #2]
|
|
ldrsh r0, [r1, r0]
|
|
add r0, r0, r4
|
|
strb r0, [r5, #3]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end MOD62_0222DCE4
|
|
|
|
thumb_func_start MOD62_0222DD1C
|
|
MOD62_0222DD1C: ; 0x0222DD1C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
mov r1, #0x35
|
|
bl FUN_02011744
|
|
mov r1, #0x8d
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #2
|
|
mov r1, #0x35
|
|
bl FUN_02002C50
|
|
pop {r4, pc}
|
|
thumb_func_end MOD62_0222DD1C
|
|
|
|
thumb_func_start MOD62_0222DD38
|
|
MOD62_0222DD38: ; 0x0222DD38
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
bl FUN_02002CF8
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02011870
|
|
mov r0, #9
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl FUN_0201D5E8
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02011870
|
|
mov r0, #0x93
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_0201D5E8
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020117BC
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DD38
|
|
|
|
thumb_func_start MOD62_0222DD78
|
|
MOD62_0222DD78: ; 0x0222DD78
|
|
push {r3, lr}
|
|
sub sp, #0x18
|
|
add r3, r0, #0
|
|
mov r0, #0xe
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
mov r0, #2
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _0222DDB0 ; =0x00007530
|
|
add r2, r3, #0
|
|
str r0, [sp, #0x14]
|
|
add r0, r3, #0
|
|
add r0, #0xe8
|
|
add r2, #0xdc
|
|
add r3, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r2, [r2]
|
|
ldr r3, [r3]
|
|
mov r1, #3
|
|
bl FUN_0200C0DC
|
|
add sp, #0x18
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0222DDB0: .word 0x00007530
|
|
thumb_func_end MOD62_0222DD78
|
|
|
|
thumb_func_start MOD62_0222DDB4
|
|
MOD62_0222DDB4: ; 0x0222DDB4
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl MOD62_0222DD78
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
mov r2, #0x4e
|
|
mov r3, #0xa5
|
|
str r1, [sp]
|
|
bl MOD62_0222DE00
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #0xac
|
|
mov r3, #0xa5
|
|
bl MOD62_0222DE00
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end MOD62_0222DDB4
|
|
|
|
thumb_func_start MOD62_0222DDE0
|
|
MOD62_0222DDE0: ; 0x0222DDE0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x8e
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r4, r1, #0
|
|
bl FUN_020119D0
|
|
mov r0, #0x8f
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, r4, #0
|
|
bl FUN_020119D0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DDE0
|
|
|
|
thumb_func_start MOD62_0222DE00
|
|
MOD62_0222DE00: ; 0x0222DE00
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x5c
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
str r2, [sp, #0x10]
|
|
add r7, r3, #0
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r2, #8
|
|
mov r3, #0x35
|
|
bl FUN_0200A86C
|
|
add r1, r4, #5
|
|
str r0, [sp, #0x14]
|
|
bl FUN_0200A914
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x1c
|
|
bl FUN_0201901C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
add r1, sp, #0x1c
|
|
mov r2, #0xa
|
|
mov r3, #2
|
|
bl FUN_020190EC
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222DEF0 ; =0x000F0D02
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x1c
|
|
mov r1, #2
|
|
str r3, [sp, #0xc]
|
|
bl FUN_0201BDE0
|
|
add r0, sp, #0x1c
|
|
mov r1, #2
|
|
mov r2, #0x35
|
|
bl FUN_02011898
|
|
mov r3, #9
|
|
lsl r3, r3, #6
|
|
mov r1, #0xc
|
|
add r6, r4, #0
|
|
mul r6, r1
|
|
add r3, r5, r3
|
|
mov r1, #1
|
|
mov r2, #2
|
|
add r3, r3, r6
|
|
bl FUN_0201D568
|
|
mov r0, #0x8d
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
str r0, [sp, #0x2c]
|
|
add r0, sp, #0x1c
|
|
str r0, [sp, #0x30]
|
|
add r0, r5, #0
|
|
add r0, #0xe0
|
|
ldr r0, [r0]
|
|
bl FUN_0200CA40
|
|
str r0, [sp, #0x34]
|
|
add r0, r5, #0
|
|
add r0, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, _0222DEF4 ; =0x00007530
|
|
bl FUN_0200C334
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0
|
|
mov r1, #0x91
|
|
str r0, [sp, #0x3c]
|
|
add r0, r5, r6
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x10]
|
|
add r7, #0xc0
|
|
str r0, [sp, #0x44]
|
|
mov r0, #1
|
|
str r0, [sp, #0x4c]
|
|
mov r0, #0x28
|
|
str r0, [sp, #0x50]
|
|
mov r0, #2
|
|
str r0, [sp, #0x54]
|
|
mov r0, #0x35
|
|
sub r1, #0xc
|
|
str r0, [sp, #0x58]
|
|
str r7, [sp, #0x48]
|
|
add r5, r5, r1
|
|
lsl r4, r4, #2
|
|
add r0, sp, #0x2c
|
|
bl FUN_020117E8
|
|
str r0, [r5, r4]
|
|
ldr r0, [r5, r4]
|
|
ldr r1, [sp, #0x70]
|
|
bl FUN_02011AC0
|
|
ldr r0, [sp, #0x18]
|
|
bl FUN_02021A20
|
|
ldr r0, [sp, #0x14]
|
|
bl FUN_0200A8B8
|
|
add r0, sp, #0x1c
|
|
bl FUN_02019178
|
|
add sp, #0x5c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DEF0: .word 0x000F0D02
|
|
_0222DEF4: .word 0x00007530
|
|
thumb_func_end MOD62_0222DE00
|
|
|
|
thumb_func_start MOD62_0222DEF8
|
|
MOD62_0222DEF8: ; 0x0222DEF8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
mov r6, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x42
|
|
add r3, r1, #0
|
|
add r7, r6, #0
|
|
add r2, r6, #0
|
|
add r4, r6, #0
|
|
lsl r0, r0, #4
|
|
_0222DF0C:
|
|
add r1, r5, r2
|
|
add r2, r2, #1
|
|
strb r4, [r1, r0]
|
|
cmp r2, #8
|
|
blt _0222DF0C
|
|
lsl r0, r3, #3
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
str r0, [sp]
|
|
add r0, #0x68
|
|
str r0, [sp]
|
|
_0222DF22:
|
|
ldr r0, [sp]
|
|
add r1, r4, #0
|
|
bl FUN_02029CF8
|
|
add r1, r5, r4
|
|
add r1, #0x80
|
|
ldrb r1, [r1]
|
|
cmp r1, #0
|
|
bne _0222DF38
|
|
cmp r0, #1
|
|
bne _0222DF50
|
|
_0222DF38:
|
|
ldr r0, [sp, #4]
|
|
add r7, r7, #1
|
|
cmp r7, r0
|
|
ble _0222DF50
|
|
mov r0, #0x42
|
|
add r1, r5, r6
|
|
add r2, r4, #1
|
|
lsl r0, r0, #4
|
|
add r6, r6, #1
|
|
strb r2, [r1, r0]
|
|
cmp r6, #8
|
|
bge _0222DF56
|
|
_0222DF50:
|
|
add r4, r4, #1
|
|
cmp r4, #0x51
|
|
blt _0222DF22
|
|
_0222DF56:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222DEF8
|
|
|
|
thumb_func_start MOD62_0222DF5C
|
|
MOD62_0222DF5C: ; 0x0222DF5C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r7, r0, #0
|
|
add r0, #0xdc
|
|
ldr r6, [r0]
|
|
add r0, r7, #0
|
|
add r0, #0xe0
|
|
ldr r5, [r0]
|
|
add r0, r7, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r4, #0
|
|
str r0, [sp, #0x18]
|
|
_0222DF76:
|
|
mov r0, #0x42
|
|
add r1, r7, r4
|
|
lsl r0, r0, #4
|
|
ldrb r0, [r1, r0]
|
|
bl FUN_02085FAC
|
|
add r3, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222DFF4 ; =0x000061A8
|
|
add r1, r5, #0
|
|
add r0, r4, r0
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
mov r2, #0x5b
|
|
bl FUN_0200C00C
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _0222DF76
|
|
mov r0, #0x5b
|
|
str r0, [sp]
|
|
add r0, #0xca
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
mov r0, #2
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _0222DFF8 ; =0x000066B4
|
|
mov r1, #3
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x18]
|
|
add r2, r6, #0
|
|
add r3, r5, #0
|
|
bl FUN_0200C0DC
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222DFFC ; =0x00006A2C
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0xb4
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222E000 ; =0x00006DB8
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x58
|
|
bl FUN_0200C13C
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DFF4: .word 0x000061A8
|
|
_0222DFF8: .word 0x000066B4
|
|
_0222DFFC: .word 0x00006A2C
|
|
_0222E000: .word 0x00006DB8
|
|
thumb_func_end MOD62_0222DF5C
|
|
|
|
thumb_func_start MOD62_0222E004
|
|
MOD62_0222E004: ; 0x0222E004
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x58
|
|
add r5, r0, #0
|
|
add r0, #0xdc
|
|
ldr r0, [r0]
|
|
mov r4, #0
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
add r0, #0xe0
|
|
ldr r7, [r0]
|
|
add r0, sp, #4
|
|
strh r4, [r0, #0x20]
|
|
strh r4, [r0, #0x22]
|
|
strh r4, [r0, #0x24]
|
|
strh r4, [r0, #0x26]
|
|
mov r0, #0x3c
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #2
|
|
str r0, [sp, #0x34]
|
|
mov r0, #1
|
|
str r0, [sp, #0x50]
|
|
sub r0, r0, #2
|
|
str r0, [sp, #0x48]
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, _0222E0B4 ; =0x000066B4
|
|
str r4, [sp, #0x54]
|
|
str r0, [sp, #0x3c]
|
|
ldr r0, _0222E0B8 ; =0x00006A2C
|
|
str r4, [sp, #0x30]
|
|
str r0, [sp, #0x40]
|
|
ldr r0, _0222E0BC ; =0x00006DB8
|
|
str r0, [sp, #0x44]
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r6, r5, r0
|
|
_0222E04A:
|
|
ldr r0, _0222E0C0 ; =0x000061A8
|
|
add r1, r7, #0
|
|
add r0, r4, r0
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [sp]
|
|
add r2, sp, #0x24
|
|
bl FUN_0200C154
|
|
add r4, r4, #1
|
|
stmia r6!, {r0}
|
|
cmp r4, #8
|
|
blt _0222E04A
|
|
ldr r3, _0222E0C4 ; =0x02231158
|
|
add r2, sp, #4
|
|
mov r1, #0x10
|
|
_0222E068:
|
|
ldrh r0, [r3]
|
|
add r3, r3, #2
|
|
strh r0, [r2]
|
|
add r2, r2, #2
|
|
sub r1, r1, #1
|
|
bne _0222E068
|
|
mov r7, #0xf9
|
|
mov r6, #0
|
|
add r4, sp, #4
|
|
lsl r7, r7, #2
|
|
_0222E07C:
|
|
mov r2, #2
|
|
ldrsh r2, [r4, r2]
|
|
mov r0, #0xf9
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
sub r2, r2, #1
|
|
lsl r2, r2, #0x10
|
|
ldrsh r1, [r4, r1]
|
|
ldr r0, [r5, r0]
|
|
asr r2, r2, #0x10
|
|
bl FUN_0200C714
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
bl FUN_0200C5A8
|
|
ldr r0, [r5, r7]
|
|
mov r1, #0
|
|
bl FUN_0200C61C
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r6, #8
|
|
blt _0222E07C
|
|
add sp, #0x58
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222E0B4: .word 0x000066B4
|
|
_0222E0B8: .word 0x00006A2C
|
|
_0222E0BC: .word 0x00006DB8
|
|
_0222E0C0: .word 0x000061A8
|
|
_0222E0C4: .word 0x02231158
|
|
thumb_func_end MOD62_0222E004
|
|
|
|
thumb_func_start MOD62_0222E0C8
|
|
MOD62_0222E0C8: ; 0x0222E0C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r7, #0xf9
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0222E0D4:
|
|
add r0, r6, #0
|
|
add r0, #0xe0
|
|
ldr r1, _0222E0F4 ; =0x000061A8
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
bl FUN_0200C358
|
|
ldr r0, [r5, r7]
|
|
bl FUN_0200C3DC
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #8
|
|
blt _0222E0D4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E0F4: .word 0x000061A8
|
|
thumb_func_end MOD62_0222E0C8
|
|
|
|
thumb_func_start MOD62_0222E0F8
|
|
MOD62_0222E0F8: ; 0x0222E0F8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r7, r1, #0
|
|
mov r4, #0
|
|
str r0, [sp]
|
|
str r4, [sp, #4]
|
|
add r5, r7, #0
|
|
add r6, r7, #0
|
|
_0222E108:
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5, r0]
|
|
cmp r1, #0
|
|
beq _0222E120
|
|
add r0, r6, #0
|
|
bl MOD08_02217F08
|
|
cmp r0, #1
|
|
bne _0222E120
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
_0222E120:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
add r6, #0x24
|
|
cmp r4, #8
|
|
blt _0222E108
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
add r0, r7, r0
|
|
bl MOD08_02217ECC
|
|
cmp r0, #1
|
|
bne _0222E160
|
|
mov r3, #0x59
|
|
mov r0, #1
|
|
lsl r3, r3, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, [r7, r3]
|
|
sub r3, #0x44
|
|
ldrsh r3, [r7, r3]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl FUN_020179E0
|
|
mov r3, #0x59
|
|
lsl r3, r3, #2
|
|
ldr r0, [r7, r3]
|
|
sub r3, #0x42
|
|
ldrsh r3, [r7, r3]
|
|
mov r1, #5
|
|
mov r2, #3
|
|
bl FUN_020179E0
|
|
_0222E160:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
bne _0222E17C
|
|
mov r0, #0x5b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
ldr r0, [sp]
|
|
bl FUN_0200CAB4
|
|
_0222E17C:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222E0F8
|
|
|
|
thumb_func_start MOD62_0222E180
|
|
MOD62_0222E180: ; 0x0222E180
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
str r1, [sp, #0xc]
|
|
mov r1, #0x17
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
lsl r1, r1, #4
|
|
str r2, [sp, #0x10]
|
|
bl AllocFromHeap
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0x59
|
|
add r0, #0xe4
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
add r4, r0, #0
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, #0x38
|
|
lsl r0, r0, #4
|
|
neg r0, r0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r6, [sp, #8]
|
|
mul r1, r0
|
|
ldr r0, [sp, #0x10]
|
|
mov r7, #0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r1, [sp, #0x14]
|
|
str r0, [sp, #0x20]
|
|
_0222E1C4:
|
|
mov r0, #0xc9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0
|
|
bne _0222E1D8
|
|
mov r0, #0x51
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _0222E22E
|
|
_0222E1D8:
|
|
mov r0, #0xcb
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
add r1, sp, #0x24
|
|
ldr r0, [r4, r0]
|
|
add r1, #2
|
|
add r2, sp, #0x24
|
|
bl FUN_0200C7A0
|
|
add r1, sp, #0x24
|
|
mov r0, #0
|
|
ldrsh r3, [r1, r0]
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r3, r0
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x20]
|
|
add r2, r1, r2
|
|
lsl r2, r2, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
asr r2, r2, #0x10
|
|
bl MOD08_02217E80
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0
|
|
bl MOD08_02217F08
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
add r0, r5, #0
|
|
bl MOD08_02217F08
|
|
_0222E22E:
|
|
add r7, r7, #1
|
|
add r6, #0x10
|
|
add r4, r4, #4
|
|
add r5, #0x24
|
|
cmp r7, #8
|
|
blt _0222E1C4
|
|
mov r1, #0x59
|
|
ldr r0, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #5
|
|
bl FUN_02017B48
|
|
add r4, r0, #0
|
|
mov r1, #0x59
|
|
ldr r0, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #5
|
|
bl FUN_02017B54
|
|
add r3, r0, #0
|
|
ldr r0, [sp, #0xc]
|
|
mov r5, #0x37
|
|
lsl r0, r0, #4
|
|
add r0, r3, r0
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
mov r1, #0x12
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
lsl r3, r3, #0x10
|
|
ldr r2, [sp, #0xc]
|
|
mvn r5, r5
|
|
mul r5, r2
|
|
add r2, r4, r5
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [sp, #0x1c]
|
|
lsl r1, r1, #4
|
|
add r0, r0, r1
|
|
lsl r1, r4, #0x10
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
asr r3, r3, #0x10
|
|
bl MOD08_02217E80
|
|
mov r2, #0x96
|
|
lsl r2, r2, #2
|
|
ldr r0, [sp, #8]
|
|
add r1, r2, #0
|
|
add r3, r0, r2
|
|
ldr r0, [sp, #0x1c]
|
|
sub r1, #0xec
|
|
str r3, [r0, r1]
|
|
sub r2, #0xec
|
|
ldr r0, [r0, r2]
|
|
mov r3, #1
|
|
str r3, [r0]
|
|
ldr r0, _0222E2B8 ; =MOD62_0222E0F8
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r2, r3, #0xc
|
|
bl FUN_0200CA44
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E2B8: .word MOD62_0222E0F8
|
|
thumb_func_end MOD62_0222E180
|
|
|
|
thumb_func_start MOD62_0222E2BC
|
|
MOD62_0222E2BC: ; 0x0222E2BC
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
mov r2, #2
|
|
mov r1, #0
|
|
ldr r0, _0222E2D8 ; =MOD62_0222E2DC
|
|
str r2, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0x35
|
|
add r3, r1, #0
|
|
bl FUN_02022318
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
nop
|
|
_0222E2D8: .word MOD62_0222E2DC
|
|
thumb_func_end MOD62_0222E2BC
|
|
|
|
thumb_func_start MOD62_0222E2DC
|
|
MOD62_0222E2DC: ; 0x0222E2DC
|
|
push {r3, lr}
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r0, _0222E348 ; =0x04000008
|
|
mov r1, #3
|
|
ldrh r2, [r0]
|
|
bic r2, r1
|
|
mov r1, #1
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
add r0, #0x58
|
|
ldrh r2, [r0]
|
|
ldr r1, _0222E34C ; =0xFFFFCFFD
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _0222E350 ; =0x0000CFFB
|
|
and r3, r2
|
|
strh r3, [r0]
|
|
ldrh r3, [r0]
|
|
sub r2, #0x1c
|
|
and r3, r1
|
|
mov r1, #8
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
ldrh r1, [r0]
|
|
and r1, r2
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl G3X_SetFog
|
|
mov r0, #0
|
|
ldr r2, _0222E354 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
mov r3, #0x3f
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0222E358 ; =0xBFFF0000
|
|
ldr r0, _0222E35C ; =0x04000580
|
|
str r1, [r0]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0222E348: .word 0x04000008
|
|
_0222E34C: .word 0xFFFFCFFD
|
|
_0222E350: .word 0x0000CFFB
|
|
_0222E354: .word 0x00007FFF
|
|
_0222E358: .word 0xBFFF0000
|
|
_0222E35C: .word 0x04000580
|
|
thumb_func_end MOD62_0222E2DC
|
|
|
|
thumb_func_start MOD62_0222E360
|
|
MOD62_0222E360: ; 0x0222E360
|
|
push {r3, r4, r5, lr}
|
|
ldr r3, _0222E398 ; =0x021064B8
|
|
mov r0, #2
|
|
mov r1, #0
|
|
ldr r3, [r3]
|
|
lsl r0, r0, #0xe
|
|
add r2, r1, #0
|
|
blx r3
|
|
ldr r3, _0222E39C ; =0x021064C0
|
|
mov r1, #0
|
|
add r4, r0, #0
|
|
ldr r3, [r3]
|
|
mov r0, #0x80
|
|
add r2, r1, #0
|
|
blx r3
|
|
add r5, r0, #0
|
|
cmp r4, #0
|
|
bne _0222E388
|
|
bl ErrorHandling
|
|
_0222E388:
|
|
cmp r5, #0
|
|
bne _0222E390
|
|
bl ErrorHandling
|
|
_0222E390:
|
|
bl FUN_02012CC8
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222E398: .word 0x021064B8
|
|
_0222E39C: .word 0x021064C0
|
|
thumb_func_end MOD62_0222E360
|
|
|
|
thumb_func_start MOD62_0222E3A0
|
|
MOD62_0222E3A0: ; 0x0222E3A0
|
|
push {r3, lr}
|
|
bl FUN_020222AC
|
|
bl FUN_02013364
|
|
cmp r0, #0
|
|
ble _0222E3B6
|
|
bl FUN_020222AC
|
|
bl FUN_020B02C8
|
|
_0222E3B6:
|
|
bl FUN_02013388
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_020222B4
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222E3A0
|
|
|
|
thumb_func_start MOD62_0222E3C4
|
|
MOD62_0222E3C4: ; 0x0222E3C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x40
|
|
str r1, [sp, #0x18]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x58]
|
|
add r0, r3, #0
|
|
add r6, r2, #0
|
|
str r3, [sp, #0x1c]
|
|
bl MOD62_0222F89C
|
|
cmp r0, #3
|
|
bhi _0222E442
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222E3E8: ; jump table
|
|
.short _0222E3F0 - _0222E3E8 - 2 ; case 0
|
|
.short _0222E402 - _0222E3E8 - 2 ; case 1
|
|
.short _0222E418 - _0222E3E8 - 2 ; case 2
|
|
.short _0222E42E - _0222E3E8 - 2 ; case 3
|
|
_0222E3F0:
|
|
mov r0, #0
|
|
str r0, [sp, #0x24]
|
|
mov r0, #4
|
|
str r0, [sp, #0x28]
|
|
mov r0, #1
|
|
mov r5, #0xd
|
|
mov r4, #6
|
|
str r0, [sp, #0x2c]
|
|
b _0222E442
|
|
_0222E402:
|
|
mov r0, #2
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
mov r0, #4
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
mov r5, #0xb
|
|
mov r4, #8
|
|
str r0, [sp, #0x30]
|
|
b _0222E442
|
|
_0222E418:
|
|
mov r0, #3
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
mov r0, #4
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
mov r5, #0xb
|
|
mov r4, #8
|
|
str r0, [sp, #0x30]
|
|
b _0222E442
|
|
_0222E42E:
|
|
mov r0, #2
|
|
str r0, [sp, #0x24]
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
mov r0, #4
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
mov r5, #0xb
|
|
mov r4, #8
|
|
str r0, [sp, #0x30]
|
|
_0222E442:
|
|
lsr r0, r4, #0x1f
|
|
add r0, r4, r0
|
|
asr r7, r0, #1
|
|
ldr r0, [sp, #0x18]
|
|
bl FUN_0201901C
|
|
lsl r0, r5, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #9
|
|
str r0, [sp, #4]
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
mov r0, #0xe
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xa6
|
|
str r0, [sp, #0x10]
|
|
lsl r2, r6, #0x18
|
|
ldr r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x18]
|
|
lsr r2, r2, #0x18
|
|
mov r3, #0x15
|
|
bl FUN_02019064
|
|
add r0, r7, #0
|
|
mov r1, #0x35
|
|
bl FUN_02012838
|
|
mov r2, #0x67
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r2, r2, #2
|
|
str r0, [r1, r2]
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r2, #8
|
|
mov r3, #0x35
|
|
bl FUN_0200A86C
|
|
mov r6, #0
|
|
str r0, [sp, #0x20]
|
|
cmp r7, #0
|
|
ble _0222E4D0
|
|
add r5, sp, #0x24
|
|
_0222E49A:
|
|
ldr r1, [r5]
|
|
ldr r0, [sp, #0x20]
|
|
lsl r2, r1, #3
|
|
ldr r1, _0222E538 ; =0x02231358
|
|
ldr r1, [r1, r2]
|
|
bl FUN_0200A914
|
|
ldr r2, [r5]
|
|
add r4, r0, #0
|
|
lsl r3, r2, #3
|
|
ldr r2, _0222E538 ; =0x02231358
|
|
mov r0, #0x67
|
|
add r2, r2, r3
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldr r2, [r2, #4]
|
|
add r1, r4, #0
|
|
bl FUN_020128A0
|
|
add r0, r4, #0
|
|
bl FUN_02021A20
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
cmp r6, r7
|
|
blt _0222E49A
|
|
_0222E4D0:
|
|
ldr r0, [sp, #0x20]
|
|
bl FUN_0200A8B8
|
|
mov r1, #0x67
|
|
ldr r0, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
mov r1, #0
|
|
str r0, [sp, #0x34]
|
|
add r0, sp, #0x24
|
|
strb r1, [r0, #0x18]
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, #0xf
|
|
str r1, [sp, #0x38]
|
|
mov r1, #1
|
|
strb r1, [r0, #0x19]
|
|
strb r7, [r0, #0x1a]
|
|
ldrb r3, [r0, #0x1b]
|
|
bic r3, r2
|
|
strb r3, [r0, #0x1b]
|
|
ldrb r3, [r0, #0x1b]
|
|
mov r2, #0x30
|
|
bic r3, r2
|
|
strb r3, [r0, #0x1b]
|
|
ldrb r3, [r0, #0x1b]
|
|
mov r2, #0xc0
|
|
bic r3, r2
|
|
mov r2, #0x40
|
|
orr r2, r3
|
|
strb r2, [r0, #0x1b]
|
|
ldr r0, [sp, #0x18]
|
|
mov r2, #0x1f
|
|
mov r3, #0xd
|
|
bl FUN_0200CCA4
|
|
mov r0, #0x35
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
add r0, sp, #0x34
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl FUN_02001C14
|
|
mov r2, #0x1a
|
|
ldr r1, [sp, #0x1c]
|
|
lsl r2, r2, #4
|
|
str r0, [r1, r2]
|
|
add sp, #0x40
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E538: .word 0x02231358
|
|
thumb_func_end MOD62_0222E3C4
|
|
|
|
thumb_func_start MOD62_0222E53C
|
|
MOD62_0222E53C: ; 0x0222E53C
|
|
push {r4, r5}
|
|
lsr r5, r0, #0x1f
|
|
lsl r4, r0, #0x1e
|
|
sub r4, r4, r5
|
|
mov r3, #0x1e
|
|
ror r4, r3
|
|
add r4, r5, r4
|
|
mov r3, #0x38
|
|
mul r3, r4
|
|
add r3, #0x28
|
|
strh r3, [r1]
|
|
asr r1, r0, #2
|
|
mov r0, #0x35
|
|
mul r0, r1
|
|
add r0, #0x1b
|
|
strh r0, [r2]
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end MOD62_0222E53C
|
|
|
|
thumb_func_start MOD62_0222E560
|
|
MOD62_0222E560: ; 0x0222E560
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x18
|
|
add r1, r0, #0
|
|
add r1, #0xdc
|
|
ldr r4, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xe0
|
|
add r0, #0xe8
|
|
ldr r5, [r1]
|
|
ldr r6, [r0]
|
|
bl FUN_0206B888
|
|
mov r1, #0x13
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
str r0, [sp, #0xc]
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #6
|
|
str r0, [sp, #0x14]
|
|
add r0, r6, #0
|
|
mov r1, #2
|
|
add r2, r4, #0
|
|
add r3, r5, #0
|
|
bl FUN_0200C0DC
|
|
bl FUN_0206B894
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _0222E5D0 ; =0x00004268
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x13
|
|
bl FUN_0200C124
|
|
bl FUN_0206B8A0
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _0222E5D4 ; =0x00004650
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x13
|
|
bl FUN_0200C13C
|
|
add sp, #0x18
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0222E5D0: .word 0x00004268
|
|
_0222E5D4: .word 0x00004650
|
|
thumb_func_end MOD62_0222E560
|
|
|
|
thumb_func_start MOD62_0222E5D8
|
|
MOD62_0222E5D8: ; 0x0222E5D8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x4c
|
|
add r5, r0, #0
|
|
ldr r1, [r5]
|
|
mov r6, #0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
ble _0222E6C6
|
|
str r6, [sp, #0xc]
|
|
add r4, r5, #0
|
|
_0222E5EC:
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r1, r0
|
|
ldr r7, [r0, #4]
|
|
add r0, r7, #0
|
|
bl FUN_0206B6C8
|
|
add r3, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222E6CC ; =0x00003A98
|
|
add r1, r5, #0
|
|
add r0, r6, r0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
mov r2, #0x13
|
|
bl FUN_0200C978
|
|
mov r1, #0
|
|
add r0, sp, #0x18
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
mov r0, #0xa
|
|
str r0, [sp, #0x20]
|
|
add r0, r1, #0
|
|
str r0, [sp, #0x24]
|
|
mov r0, #1
|
|
str r0, [sp, #0x28]
|
|
mov r0, #2
|
|
str r0, [sp, #0x44]
|
|
add r0, r1, #0
|
|
str r0, [sp, #0x48]
|
|
ldr r0, _0222E6CC ; =0x00003A98
|
|
add r2, sp, #0x18
|
|
add r0, r6, r0
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #6
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0222E6D0 ; =0x00004268
|
|
str r0, [sp, #0x34]
|
|
ldr r0, _0222E6D4 ; =0x00004650
|
|
str r0, [sp, #0x38]
|
|
sub r0, r1, #1
|
|
str r0, [sp, #0x3c]
|
|
sub r0, r1, #1
|
|
str r0, [sp, #0x40]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
bl FUN_0200C154
|
|
mov r1, #0xbf
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r7, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
str r0, [sp, #0x14]
|
|
add r0, r7, #0
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
ldr r2, [sp, #0x14]
|
|
bl FUN_0206B7BC
|
|
add r1, r0, #0
|
|
mov r0, #0xbf
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r0, [r0]
|
|
bl FUN_020202DC
|
|
mov r0, #0xbf
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_0200C5C0
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [r5]
|
|
add r0, r0, #4
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r1]
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, r0
|
|
blt _0222E5EC
|
|
_0222E6C6:
|
|
add sp, #0x4c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E6CC: .word 0x00003A98
|
|
_0222E6D0: .word 0x00004268
|
|
_0222E6D4: .word 0x00004650
|
|
thumb_func_end MOD62_0222E5D8
|
|
|
|
thumb_func_start MOD62_0222E6D8
|
|
MOD62_0222E6D8: ; 0x0222E6D8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r0, [r6]
|
|
mov r4, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ble _0222E700
|
|
mov r7, #0xbf
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0222E6EC:
|
|
ldr r0, [r5, r7]
|
|
mov r1, #0
|
|
bl FUN_0200C644
|
|
ldr r0, [r6]
|
|
add r4, r4, #1
|
|
ldr r0, [r0]
|
|
add r5, r5, #4
|
|
cmp r4, r0
|
|
blt _0222E6EC
|
|
_0222E700:
|
|
mov r5, #0
|
|
add r4, r6, #0
|
|
_0222E704:
|
|
ldr r7, [r4, #4]
|
|
cmp r7, #0xff
|
|
beq _0222E748
|
|
add r1, sp, #0
|
|
add r0, r5, #0
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl MOD62_0222E53C
|
|
add r2, sp, #0
|
|
mov r1, #2
|
|
ldrsh r1, [r2, r1]
|
|
add r3, r2, #0
|
|
mov r2, #0
|
|
ldrsh r2, [r3, r2]
|
|
lsl r0, r7, #2
|
|
add r7, r6, r0
|
|
mov r0, #0xbf
|
|
lsl r0, r0, #2
|
|
sub r1, #0x10
|
|
add r2, #0xc
|
|
lsl r1, r1, #0x10
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [r7, r0]
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl FUN_0200C714
|
|
mov r0, #0xbf
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
mov r1, #1
|
|
bl FUN_0200C644
|
|
_0222E748:
|
|
add r5, r5, #1
|
|
add r4, #8
|
|
cmp r5, #0xc
|
|
blt _0222E704
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222E6D8
|
|
|
|
thumb_func_start MOD62_0222E754
|
|
MOD62_0222E754: ; 0x0222E754
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r0, [r6]
|
|
mov r4, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ble _0222E77A
|
|
mov r7, #0xbf
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0222E768:
|
|
ldr r0, [r5, r7]
|
|
bl FUN_0200C5A8
|
|
ldr r0, [r6]
|
|
add r4, r4, #1
|
|
ldr r0, [r0]
|
|
add r5, r5, #4
|
|
cmp r4, r0
|
|
blt _0222E768
|
|
_0222E77A:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222E754
|
|
|
|
thumb_func_start MOD62_0222E77C
|
|
MOD62_0222E77C: ; 0x0222E77C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
ldr r0, [r6]
|
|
mov r4, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ble _0222E7A2
|
|
mov r7, #0xbf
|
|
add r5, r6, #0
|
|
lsl r7, r7, #2
|
|
_0222E790:
|
|
ldr r0, [r5, r7]
|
|
bl FUN_0200C3DC
|
|
ldr r0, [r6]
|
|
add r4, r4, #1
|
|
ldr r0, [r0]
|
|
add r5, r5, #4
|
|
cmp r4, r0
|
|
blt _0222E790
|
|
_0222E7A2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222E77C
|
|
|
|
thumb_func_start MOD62_0222E7A4
|
|
MOD62_0222E7A4: ; 0x0222E7A4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r6, #0
|
|
add r4, r7, #0
|
|
add r5, r7, #0
|
|
_0222E7AE:
|
|
ldr r0, [r4, #8]
|
|
bl MOD62_0222F870
|
|
mov r1, #0x9a
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
mov r0, #0x99
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
bne _0222E7DC
|
|
mov r0, #0x99
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0xff
|
|
beq _0222E7DC
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl MOD62_02230D38
|
|
_0222E7DC:
|
|
add r6, r6, #1
|
|
add r4, #8
|
|
add r5, #0xc
|
|
cmp r6, #0xc
|
|
blt _0222E7AE
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222E7A4
|
|
|
|
thumb_func_start MOD62_0222E7E8
|
|
MOD62_0222E7E8: ; 0x0222E7E8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x4c
|
|
add r4, r0, #0
|
|
mov r0, #0x35
|
|
bl FUN_0200BB14
|
|
add r2, sp, #0x2c
|
|
ldr r5, _0222E868 ; =0x02231138
|
|
str r0, [r4, #8]
|
|
ldmia r5!, {r0, r1}
|
|
add r3, r2, #0
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
ldr r6, _0222E86C ; =0x0223110C
|
|
stmia r2!, {r0, r1}
|
|
add r5, sp, #0x18
|
|
ldmia r6!, {r0, r1}
|
|
add r2, r5, #0
|
|
stmia r5!, {r0, r1}
|
|
ldmia r6!, {r0, r1}
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r6]
|
|
add r1, r3, #0
|
|
str r0, [r5]
|
|
ldr r0, [r4, #8]
|
|
mov r3, #0x20
|
|
bl FUN_0200BB6C
|
|
ldr r3, _0222E870 ; =0x02231120
|
|
add r2, sp, #0
|
|
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, #8]
|
|
bl FUN_0200BB34
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
mov r2, #0x80
|
|
bl FUN_0200BBF0
|
|
cmp r0, #0
|
|
bne _0222E852
|
|
bl ErrorHandling
|
|
_0222E852:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
add r2, sp, #0
|
|
bl FUN_0200BF60
|
|
cmp r0, #0
|
|
bne _0222E864
|
|
bl ErrorHandling
|
|
_0222E864:
|
|
add sp, #0x4c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0222E868: .word 0x02231138
|
|
_0222E86C: .word 0x0223110C
|
|
_0222E870: .word 0x02231120
|
|
thumb_func_end MOD62_0222E7E8
|
|
|
|
thumb_func_start MOD62_0222E874
|
|
MOD62_0222E874: ; 0x0222E874
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
bl FUN_0200C398
|
|
ldr r0, [r4, #8]
|
|
bl FUN_0200BD04
|
|
pop {r4, pc}
|
|
thumb_func_end MOD62_0222E874
|
|
|
|
thumb_func_start MOD62_0222E888
|
|
MOD62_0222E888: ; 0x0222E888
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222E8EC ; =0x0000AFC8
|
|
add r1, r4, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
mov r2, #0x5b
|
|
add r3, r2, #0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
add r3, #0xae
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222E8F0 ; =0x0000B798
|
|
add r1, r4, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
mov r2, #0x5b
|
|
mov r3, #0xad
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222E8F4 ; =0x0000BB80
|
|
mov r2, #0x5b
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
add r4, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r4]
|
|
mov r3, #0x51
|
|
bl FUN_0200C13C
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0222E8EC: .word 0x0000AFC8
|
|
_0222E8F0: .word 0x0000B798
|
|
_0222E8F4: .word 0x0000BB80
|
|
thumb_func_end MOD62_0222E888
|
|
|
|
thumb_func_start MOD62_0222E8F8
|
|
MOD62_0222E8F8: ; 0x0222E8F8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x64
|
|
ldr r4, _0222E97C ; =0x02231178
|
|
add r6, r0, #0
|
|
add r3, sp, #0
|
|
mov r2, #6
|
|
_0222E904:
|
|
ldmia r4!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _0222E904
|
|
mov r7, #0
|
|
add r4, sp, #0
|
|
add r5, r6, #0
|
|
_0222E912:
|
|
ldr r1, [r4]
|
|
add r0, sp, #0
|
|
strh r1, [r0, #0x30]
|
|
ldr r1, [r4, #4]
|
|
add r2, sp, #0x30
|
|
strh r1, [r0, #0x32]
|
|
mov r1, #0
|
|
strh r1, [r0, #0x34]
|
|
strh r1, [r0, #0x36]
|
|
mov r0, #0x28
|
|
str r0, [sp, #0x38]
|
|
mov r0, #2
|
|
str r0, [sp, #0x3c]
|
|
str r0, [sp, #0x40]
|
|
mov r0, #1
|
|
str r0, [sp, #0x5c]
|
|
add r0, r1, #0
|
|
str r0, [sp, #0x60]
|
|
ldr r0, _0222E980 ; =0x0000AFC8
|
|
str r0, [sp, #0x44]
|
|
ldr r0, _0222E984 ; =0x000066B2
|
|
str r0, [sp, #0x48]
|
|
ldr r0, _0222E988 ; =0x0000B798
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, _0222E98C ; =0x0000BB80
|
|
str r0, [sp, #0x50]
|
|
sub r0, r1, #1
|
|
str r0, [sp, #0x54]
|
|
sub r0, r1, #1
|
|
str r0, [sp, #0x58]
|
|
add r0, r6, #0
|
|
add r1, r6, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
bl FUN_0200C154
|
|
mov r1, #0xc5
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r1, #0
|
|
ldr r0, [r5, r0]
|
|
ldr r1, [r4, #8]
|
|
bl FUN_0200C8D0
|
|
add r7, r7, #1
|
|
add r4, #0xc
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222E912
|
|
add sp, #0x64
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222E97C: .word 0x02231178
|
|
_0222E980: .word 0x0000AFC8
|
|
_0222E984: .word 0x000066B2
|
|
_0222E988: .word 0x0000B798
|
|
_0222E98C: .word 0x0000BB80
|
|
thumb_func_end MOD62_0222E8F8
|
|
|
|
thumb_func_start MOD62_0222E990
|
|
MOD62_0222E990: ; 0x0222E990
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0222E9B0
|
|
mov r6, #0xc5
|
|
mov r4, #0
|
|
lsl r6, r6, #2
|
|
_0222E9A2:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200C5A8
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222E9A2
|
|
_0222E9B0:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222E990
|
|
|
|
thumb_func_start MOD62_0222E9B4
|
|
MOD62_0222E9B4: ; 0x0222E9B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0xc5
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_0222E9C0:
|
|
ldr r0, [r5, r7]
|
|
add r1, r6, #0
|
|
bl FUN_0200C644
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222E9C0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222E9B4
|
|
|
|
thumb_func_start MOD62_0222E9D4
|
|
MOD62_0222E9D4: ; 0x0222E9D4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, #0xc5
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
lsl r6, r6, #2
|
|
_0222E9DE:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200C3DC
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222E9DE
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222E9D4
|
|
|
|
thumb_func_start MOD62_0222E9F0
|
|
MOD62_0222E9F0: ; 0x0222E9F0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
mov r6, #1
|
|
str r6, [sp]
|
|
ldr r6, [sp, #0x3c]
|
|
add r7, r2, #0
|
|
str r6, [sp, #4]
|
|
ldr r6, _0222EA68 ; =0x00002AF8
|
|
add r2, r3, #0
|
|
add r2, r2, r6
|
|
str r2, [sp, #8]
|
|
mov r2, #0x5b
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl FUN_0200C00C
|
|
mov r0, #0x5b
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x30]
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r1, [sp, #0x44]
|
|
add r2, r5, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [sp, #0x3c]
|
|
add r3, r4, #0
|
|
str r1, [sp, #0x10]
|
|
add r1, r6, #0
|
|
add r0, r0, r1
|
|
str r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x40]
|
|
add r0, r7, #0
|
|
bl FUN_0200C0DC
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r6, #0
|
|
add r0, r3, r0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x5b
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r3, [sp, #0x38]
|
|
add r0, r6, #0
|
|
add r0, r3, r0
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x5b
|
|
bl FUN_0200C13C
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222EA68: .word 0x00002AF8
|
|
thumb_func_end MOD62_0222E9F0
|
|
|
|
thumb_func_start MOD62_0222EA6C
|
|
MOD62_0222EA6C: ; 0x0222EA6C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x54
|
|
add r5, r0, #0
|
|
ldr r0, _0222EC14 ; =0x0000011E
|
|
add r2, r5, #0
|
|
str r0, [sp]
|
|
mov r0, #0xae
|
|
str r0, [sp, #4]
|
|
mov r3, #0x52
|
|
str r3, [sp, #8]
|
|
mov r1, #1
|
|
str r1, [sp, #0xc]
|
|
mov r0, #2
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
add r2, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
add r3, #0xb8
|
|
bl MOD62_0222E9F0
|
|
ldr r0, _0222EC18 ; =0x00000123
|
|
add r2, r5, #0
|
|
str r0, [sp]
|
|
mov r0, #0xb3
|
|
str r0, [sp, #4]
|
|
mov r3, #0x57
|
|
str r3, [sp, #8]
|
|
mov r1, #1
|
|
str r1, [sp, #0xc]
|
|
mov r0, #2
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0x14]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
add r2, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
add r3, #0xbc
|
|
bl MOD62_0222E9F0
|
|
mov r6, #0
|
|
add r4, r5, #0
|
|
add r7, sp, #0x18
|
|
_0222EAD4:
|
|
mov r0, #0
|
|
strh r0, [r7, #8]
|
|
strh r0, [r7, #0xa]
|
|
strh r0, [r7, #0xc]
|
|
mov r0, #0x9a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r5, #0
|
|
strh r0, [r7, #0xe]
|
|
mov r0, #0x28
|
|
sub r0, r0, r6
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
str r0, [sp, #0x30]
|
|
mov r0, #2
|
|
str r0, [sp, #0x4c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x50]
|
|
ldr r0, _0222EC1C ; =0x00002C02
|
|
add r1, #0xe0
|
|
str r0, [sp, #0x34]
|
|
add r0, #0x14
|
|
str r0, [sp, #0x38]
|
|
ldr r0, _0222EC20 ; =0x00002BA6
|
|
add r2, sp, #0x20
|
|
str r0, [sp, #0x3c]
|
|
sub r0, #0x5c
|
|
str r0, [sp, #0x40]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #0x44]
|
|
str r0, [sp, #0x48]
|
|
add r0, r5, #0
|
|
add r0, #0xdc
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
bl FUN_0200C154
|
|
mov r1, #0x9b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r1, sp, #0x1c
|
|
add r0, r6, #0
|
|
add r1, #2
|
|
add r2, sp, #0x1c
|
|
bl MOD62_0222E53C
|
|
mov r0, #0x9b
|
|
mov r1, #6
|
|
mov r2, #4
|
|
lsl r0, r0, #2
|
|
ldrsh r1, [r7, r1]
|
|
ldrsh r2, [r7, r2]
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200C714
|
|
add r6, r6, #1
|
|
add r4, #0xc
|
|
cmp r6, #0xc
|
|
blt _0222EAD4
|
|
mov r1, #0
|
|
add r0, sp, #0x18
|
|
strh r1, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
strh r1, [r0, #0xc]
|
|
strh r1, [r0, #0xe]
|
|
mov r0, #0x14
|
|
str r0, [sp, #0x28]
|
|
mov r0, #1
|
|
str r1, [sp, #0x2c]
|
|
str r1, [sp, #0x50]
|
|
ldr r1, _0222EC24 ; =0x00002C0B
|
|
str r0, [sp, #0x30]
|
|
add r0, r1, #0
|
|
add r0, #0x10
|
|
str r0, [sp, #0x38]
|
|
add r0, r1, #0
|
|
mov r2, #2
|
|
sub r0, #0x60
|
|
str r1, [sp, #0x34]
|
|
str r0, [sp, #0x3c]
|
|
sub r0, r2, #3
|
|
sub r1, #0xbc
|
|
str r1, [sp, #0x40]
|
|
add r1, r5, #0
|
|
str r2, [sp, #0x4c]
|
|
str r0, [sp, #0x44]
|
|
str r0, [sp, #0x48]
|
|
add r0, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
add r2, sp, #0x20
|
|
bl FUN_0200C154
|
|
mov r1, #0xbd
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r0, #0xdc
|
|
add r1, #0xe0
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
add r2, sp, #0x20
|
|
bl FUN_0200C154
|
|
mov r1, #0xbe
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add r1, #0xcc
|
|
ldr r0, [r5, r1]
|
|
add r1, sp, #0x18
|
|
add r1, #2
|
|
add r2, sp, #0x18
|
|
bl MOD62_0222E53C
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
add r3, sp, #0x18
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r5, r0]
|
|
bl FUN_0200C714
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
add r3, sp, #0x18
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r5, r0]
|
|
bl FUN_0200C714
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0x19
|
|
bl FUN_0200C6C4
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C5C0
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C5C0
|
|
add sp, #0x54
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222EC14: .word 0x0000011E
|
|
_0222EC18: .word 0x00000123
|
|
_0222EC1C: .word 0x00002C02
|
|
_0222EC20: .word 0x00002BA6
|
|
_0222EC24: .word 0x00002C0B
|
|
thumb_func_end MOD62_0222EA6C
|
|
|
|
thumb_func_start MOD62_0222EC28
|
|
MOD62_0222EC28: ; 0x0222EC28
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
bl MOD62_0222E7A4
|
|
add r0, r5, #0
|
|
bl MOD62_0222E6D8
|
|
mov r7, #0x9a
|
|
lsl r7, r7, #2
|
|
mov r4, #0
|
|
add r6, r7, #4
|
|
_0222EC3E:
|
|
ldr r0, [r5, r6]
|
|
cmp r0, #0
|
|
beq _0222EC4A
|
|
ldr r1, [r5, r7]
|
|
bl FUN_0200C5C0
|
|
_0222EC4A:
|
|
add r4, r4, #1
|
|
add r5, #0xc
|
|
cmp r4, #0xc
|
|
blt _0222EC3E
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222EC28
|
|
|
|
thumb_func_start MOD62_0222EC54
|
|
MOD62_0222EC54: ; 0x0222EC54
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
lsl r6, r1, #3
|
|
add r0, r5, r6
|
|
ldr r0, [r0, #4]
|
|
lsl r4, r2, #3
|
|
str r1, [sp]
|
|
add r1, r5, r4
|
|
ldr r7, [r1, #4]
|
|
cmp r0, #0xff
|
|
beq _0222EC80
|
|
add r1, r2, #1
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0xa1
|
|
add r2, sp, #0xc
|
|
bl FUN_02067830
|
|
_0222EC80:
|
|
cmp r7, #0xff
|
|
beq _0222EC9A
|
|
ldr r0, [sp]
|
|
add r2, sp, #8
|
|
add r0, r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r1, [r5]
|
|
lsl r0, r7, #2
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0xa1
|
|
bl FUN_02067830
|
|
_0222EC9A:
|
|
add r2, r5, #4
|
|
ldr r1, [r2, r6]
|
|
ldr r0, [r2, r4]
|
|
add r7, r5, #0
|
|
str r0, [r2, r6]
|
|
str r1, [r2, r4]
|
|
add r7, #8
|
|
ldr r0, [r7, r6]
|
|
add r1, sp, #0x10
|
|
bl FUN_02029C74
|
|
add r0, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, #8
|
|
str r0, [sp, #4]
|
|
ldr r0, [r0, r4]
|
|
ldr r1, [r7, r6]
|
|
bl FUN_02029C74
|
|
ldr r1, [sp, #4]
|
|
add r0, sp, #0x10
|
|
ldr r1, [r1, r4]
|
|
bl FUN_02029C74
|
|
add r0, r5, #0
|
|
bl MOD62_0222EC28
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222EC54
|
|
|
|
thumb_func_start MOD62_0222ECD4
|
|
MOD62_0222ECD4: ; 0x0222ECD4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r6, #0x9b
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
lsl r6, r6, #2
|
|
_0222ECE0:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200C5A8
|
|
add r4, r4, #1
|
|
add r5, #0xc
|
|
cmp r4, #0xc
|
|
blt _0222ECE0
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FUN_0200C5A8
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FUN_0200C5A8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222ECD4
|
|
|
|
thumb_func_start MOD62_0222ED04
|
|
MOD62_0222ED04: ; 0x0222ED04
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
mov r6, #0x9b
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
lsl r6, r6, #2
|
|
_0222ED10:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200C3DC
|
|
add r4, r4, #1
|
|
add r5, #0xc
|
|
cmp r4, #0xc
|
|
blt _0222ED10
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FUN_0200C3DC
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r7, r0]
|
|
bl FUN_0200C3DC
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222ED04
|
|
|
|
thumb_func_start MOD62_0222ED34
|
|
MOD62_0222ED34: ; 0x0222ED34
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r6, r2, #0
|
|
add r4, r1, #0
|
|
lsl r1, r6, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp]
|
|
mov r1, #0x35
|
|
str r1, [sp, #4]
|
|
mov r1, #1
|
|
add r2, r1, #0
|
|
mov r3, #0xf
|
|
add r5, r0, #0
|
|
bl FUN_0200CD68
|
|
add r0, r6, #0
|
|
bl FUN_0200CD64
|
|
add r2, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x35
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #0x1f
|
|
mov r3, #0xd
|
|
bl FUN_0200CB00
|
|
bl FUN_0200CAFC
|
|
add r2, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xd0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
mov r2, #7
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end MOD62_0222ED34
|
|
|
|
thumb_func_start MOD62_0222EDBC
|
|
MOD62_0222EDBC: ; 0x0222EDBC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r6, r2, #0
|
|
add r4, r1, #0
|
|
lsl r1, r6, #0x18
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp]
|
|
mov r1, #0x35
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
mov r2, #1
|
|
mov r3, #0xf
|
|
add r5, r0, #0
|
|
bl FUN_0200CD68
|
|
add r0, r6, #0
|
|
bl FUN_0200CD64
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x35
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
mov r2, #0x1f
|
|
mov r3, #0xd
|
|
bl FUN_0200CB00
|
|
bl FUN_0200CAFC
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xd0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0x26
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
mov r2, #7
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x30
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0xe
|
|
mov r2, #7
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
mov r1, #0x5b
|
|
str r0, [sp, #4]
|
|
mov r0, #0xb0
|
|
add r2, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r2, #0xcb
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222EDBC
|
|
|
|
thumb_func_start MOD62_0222EE78
|
|
MOD62_0222EE78: ; 0x0222EE78
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldr r1, _0222EEDC ; =0x0000FFFF
|
|
add r4, r0, #0
|
|
cmp r5, r1
|
|
bne _0222EE96
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r4, #0
|
|
bl FUN_020191D0
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0222EE96:
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r2, #8
|
|
mov r3, #0x35
|
|
bl FUN_0200A86C
|
|
add r1, r5, #0
|
|
add r6, r0, #0
|
|
bl FUN_0200A914
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #8]
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
bl FUN_020191D0
|
|
add r0, r5, #0
|
|
bl FUN_02021A20
|
|
add r0, r6, #0
|
|
bl FUN_0200A8B8
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0222EEDC: .word 0x0000FFFF
|
|
thumb_func_end MOD62_0222EE78
|
|
|
|
thumb_func_start MOD62_0222EEE0
|
|
MOD62_0222EEE0: ; 0x0222EEE0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
bl FUN_0201901C
|
|
ldr r0, [sp, #0x28]
|
|
lsl r2, r4, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x2c]
|
|
lsl r3, r6, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x30]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
mov r0, #0xe
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x34]
|
|
lsr r2, r2, #0x18
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0
|
|
lsr r3, r3, #0x18
|
|
bl FUN_02019064
|
|
mov r1, #1
|
|
add r0, r5, #0
|
|
add r2, r1, #0
|
|
mov r3, #0xc
|
|
bl FUN_0200D0BC
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r5, #0
|
|
bl FUN_020191D0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222EEE0
|
|
|
|
thumb_func_start MOD62_0222EF44
|
|
MOD62_0222EF44: ; 0x0222EF44
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
bl FUN_0201901C
|
|
ldr r0, [sp, #0x28]
|
|
lsl r2, r4, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x2c]
|
|
lsl r3, r6, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x30]
|
|
add r1, r5, #0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x38]
|
|
lsr r2, r2, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x34]
|
|
lsr r3, r3, #0x18
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0
|
|
bl FUN_02019064
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r5, #0
|
|
bl FUN_020191D0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222EF44
|
|
|
|
thumb_func_start MOD62_0222EFA0
|
|
MOD62_0222EFA0: ; 0x0222EFA0
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
mov r1, #2
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0x94
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0x88
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #3
|
|
bl MOD62_0222EF44
|
|
mov r1, #2
|
|
str r1, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0x9c
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0x90
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #0xa
|
|
bl MOD62_0222EF44
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xa4
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0x98
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #3
|
|
bl MOD62_0222EF44
|
|
mov r0, #5
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xac
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0xa0
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #0xa
|
|
bl MOD62_0222EF44
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xb4
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0xa8
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #3
|
|
bl MOD62_0222EF44
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xbc
|
|
str r1, [sp, #0xc]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
add r1, #0xb0
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #0xa
|
|
bl MOD62_0222EF44
|
|
mov r2, #0xb
|
|
str r2, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xc4
|
|
str r1, [sp, #0xc]
|
|
add r0, r4, #0
|
|
str r2, [sp, #0x10]
|
|
add r0, #0xe4
|
|
add r1, #0xb8
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #3
|
|
bl MOD62_0222EF44
|
|
mov r2, #0xb
|
|
str r2, [sp]
|
|
mov r0, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #2
|
|
str r0, [sp, #8]
|
|
mov r1, #0xcc
|
|
str r1, [sp, #0xc]
|
|
add r0, r4, #0
|
|
str r2, [sp, #0x10]
|
|
add r0, #0xe4
|
|
add r1, #0xc0
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r2, #6
|
|
mov r3, #0xa
|
|
bl MOD62_0222EF44
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222EFA0
|
|
|
|
thumb_func_start MOD62_0222F0D4
|
|
MOD62_0222F0D4: ; 0x0222F0D4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r7, r0, #0
|
|
add r5, r7, #0
|
|
add r5, #0xec
|
|
mov r6, #3
|
|
add r5, #0x30
|
|
_0222F0E2:
|
|
ldr r0, _0222F160 ; =0x0000041D
|
|
add r1, r7, r6
|
|
ldrb r0, [r1, r0]
|
|
str r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
bne _0222F0FE
|
|
add r0, r5, #0
|
|
mov r1, #0xee
|
|
bl FUN_02019620
|
|
add r0, r5, #0
|
|
bl FUN_020191D0
|
|
b _0222F152
|
|
_0222F0FE:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl FUN_02019620
|
|
mov r0, #0x64
|
|
mov r1, #0x35
|
|
bl FUN_020219F4
|
|
ldr r1, [sp, #0x10]
|
|
add r4, r0, #0
|
|
ldr r0, [r7, #0x64]
|
|
sub r1, r1, #1
|
|
bl FUN_02029CF4
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
mov r2, #3
|
|
mov r3, #1
|
|
bl FUN_02021B04
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F164 ; =0x00010200
|
|
mov r1, #0
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
mov r3, #7
|
|
bl FUN_0201BDE0
|
|
add r0, r5, #0
|
|
bl FUN_020191D0
|
|
add r0, r4, #0
|
|
bl FUN_02021A20
|
|
_0222F152:
|
|
add r6, r6, #1
|
|
add r5, #0x10
|
|
cmp r6, #0xb
|
|
blt _0222F0E2
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222F160: .word 0x0000041D
|
|
_0222F164: .word 0x00010200
|
|
thumb_func_end MOD62_0222F0D4
|
|
|
|
thumb_func_start MOD62_0222F168
|
|
MOD62_0222F168: ; 0x0222F168
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
add r0, r1, #3
|
|
lsl r4, r0, #4
|
|
mov r0, #0x42
|
|
add r1, r6, r1
|
|
lsl r0, r0, #4
|
|
add r5, r6, #0
|
|
ldrb r7, [r1, r0]
|
|
add r5, #0xec
|
|
cmp r7, #0
|
|
bne _0222F194
|
|
add r0, r5, r4
|
|
mov r1, #0xee
|
|
bl FUN_02019620
|
|
add r0, r5, r4
|
|
bl FUN_020191D0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0222F194:
|
|
add r0, r5, r4
|
|
mov r1, #0
|
|
bl FUN_02019620
|
|
mov r0, #0x64
|
|
mov r1, #0x35
|
|
bl FUN_020219F4
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r6, #0x64]
|
|
sub r1, r7, #1
|
|
bl FUN_02029CF4
|
|
add r1, r0, #0
|
|
mov r3, #1
|
|
ldr r0, [sp, #0x10]
|
|
mov r2, #3
|
|
str r3, [sp]
|
|
bl FUN_02021B04
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F1E4 ; =0x00010200
|
|
ldr r2, [sp, #0x10]
|
|
str r0, [sp, #8]
|
|
add r0, r5, r4
|
|
mov r3, #7
|
|
str r1, [sp, #0xc]
|
|
bl FUN_0201BDE0
|
|
add r0, r5, r4
|
|
bl FUN_020191D0
|
|
ldr r0, [sp, #0x10]
|
|
bl FUN_02021A20
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0222F1E4: .word 0x00010200
|
|
thumb_func_end MOD62_0222F168
|
|
|
|
thumb_func_start MOD62_0222F1E8
|
|
MOD62_0222F1E8: ; 0x0222F1E8
|
|
push {r3, r4, r5, lr}
|
|
add r0, #0xec
|
|
add r5, r0, #0
|
|
mov r4, #3
|
|
add r5, #0x30
|
|
_0222F1F2:
|
|
add r0, r5, #0
|
|
bl FUN_02019570
|
|
add r0, r5, #0
|
|
bl FUN_02019178
|
|
add r4, r4, #1
|
|
add r5, #0x10
|
|
cmp r4, #0xb
|
|
blt _0222F1F2
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD62_0222F1E8
|
|
|
|
thumb_func_start MOD62_0222F208
|
|
MOD62_0222F208: ; 0x0222F208
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldr r1, _0222F26C ; =0x0000FFFF
|
|
add r4, r0, #0
|
|
cmp r5, r1
|
|
bne _0222F226
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
add r0, r4, #0
|
|
bl FUN_020191D0
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0222F226:
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r2, #0xa
|
|
mov r3, #0x35
|
|
bl FUN_0200A86C
|
|
add r1, r5, #0
|
|
add r6, r0, #0
|
|
bl FUN_0200A914
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
add r3, r1, #0
|
|
str r1, [sp, #8]
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
bl FUN_020191D0
|
|
add r0, r5, #0
|
|
bl FUN_02021A20
|
|
add r0, r6, #0
|
|
bl FUN_0200A8B8
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0222F26C: .word 0x0000FFFF
|
|
thumb_func_end MOD62_0222F208
|
|
|
|
thumb_func_start MOD62_0222F270
|
|
MOD62_0222F270: ; 0x0222F270
|
|
push {r3, lr}
|
|
bl FUN_0201E788
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222F270
|
|
|
|
thumb_func_start MOD62_0222F288
|
|
MOD62_0222F288: ; 0x0222F288
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x35
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F288
|
|
|
|
thumb_func_start MOD62_0222F2A8
|
|
MOD62_0222F2A8: ; 0x0222F2A8
|
|
push {lr}
|
|
sub sp, #0xc
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x35
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
add sp, #0xc
|
|
pop {pc}
|
|
thumb_func_end MOD62_0222F2A8
|
|
|
|
thumb_func_start MOD62_0222F2C8
|
|
MOD62_0222F2C8: ; 0x0222F2C8
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xb1
|
|
mov r3, #2
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xc1
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r1, [sp, #8]
|
|
add r0, #0xe8
|
|
mov r1, #0x5b
|
|
add r2, r1, #0
|
|
ldr r0, [r0]
|
|
add r2, #0xc5
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xb2
|
|
mov r3, #3
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r4, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r4]
|
|
add r1, #0xc2
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
thumb_func_end MOD62_0222F2C8
|
|
|
|
thumb_func_start MOD62_0222F36C
|
|
MOD62_0222F36C: ; 0x0222F36C
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xb0
|
|
mov r3, #5
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xc0
|
|
mov r3, #5
|
|
bl FUN_020068C8
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
mov r1, #0x5b
|
|
add r2, r1, #0
|
|
add r4, #0xe8
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4]
|
|
add r2, #0xc4
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F36C
|
|
|
|
thumb_func_start MOD62_0222F3D4
|
|
MOD62_0222F3D4: ; 0x0222F3D4
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xb0
|
|
mov r3, #7
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x35
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5b
|
|
add r2, #0xe4
|
|
add r1, r0, #0
|
|
ldr r2, [r2]
|
|
add r1, #0xbf
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
mov r1, #0x5b
|
|
add r2, r1, #0
|
|
add r4, #0xe8
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4]
|
|
add r2, #0xc4
|
|
mov r3, #0x35
|
|
bl FUN_020030E8
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F3D4
|
|
|
|
thumb_func_start MOD62_0222F43C
|
|
MOD62_0222F43C: ; 0x0222F43C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x18
|
|
add r1, r0, #0
|
|
add r1, #0xdc
|
|
ldr r4, [r1]
|
|
add r1, r0, #0
|
|
add r1, #0xe0
|
|
ldr r5, [r1]
|
|
mov r1, #0x5b
|
|
str r1, [sp]
|
|
add r1, #0xc7
|
|
str r1, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #3
|
|
str r1, [sp, #0xc]
|
|
mov r2, #2
|
|
str r2, [sp, #0x10]
|
|
ldr r2, _0222F57C ; =0x000066B2
|
|
add r0, #0xe8
|
|
str r2, [sp, #0x14]
|
|
ldr r0, [r0]
|
|
add r2, r4, #0
|
|
add r3, r5, #0
|
|
bl FUN_0200C0DC
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F580 ; =0x000062B9
|
|
mov r2, #0x5b
|
|
add r3, r2, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r3, #0xb6
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F584 ; =0x00006A29
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0xb1
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F588 ; =0x00006DB5
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x55
|
|
bl FUN_0200C13C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F58C ; =0x000062BA
|
|
mov r2, #0x5b
|
|
add r3, r2, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r3, #0xb7
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F590 ; =0x00006A2A
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0xb2
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F594 ; =0x00006DB6
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x56
|
|
bl FUN_0200C13C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F598 ; =0x000062B6
|
|
mov r2, #0x5b
|
|
add r3, r2, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r3, #0xb3
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F59C ; =0x00006A27
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0xaf
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F5A0 ; =0x00006DB3
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x53
|
|
bl FUN_0200C13C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222F5A4 ; =0x000089C8
|
|
mov r2, #0x5b
|
|
add r3, r2, #0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r3, #0xb5
|
|
bl FUN_0200C00C
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F5A8 ; =0x00006A28
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0xb0
|
|
bl FUN_0200C124
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, _0222F5AC ; =0x00006DB4
|
|
add r1, r5, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0x5b
|
|
mov r3, #0x54
|
|
bl FUN_0200C13C
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0222F57C: .word 0x000066B2
|
|
_0222F580: .word 0x000062B9
|
|
_0222F584: .word 0x00006A29
|
|
_0222F588: .word 0x00006DB5
|
|
_0222F58C: .word 0x000062BA
|
|
_0222F590: .word 0x00006A2A
|
|
_0222F594: .word 0x00006DB6
|
|
_0222F598: .word 0x000062B6
|
|
_0222F59C: .word 0x00006A27
|
|
_0222F5A0: .word 0x00006DB3
|
|
_0222F5A4: .word 0x000089C8
|
|
_0222F5A8: .word 0x00006A28
|
|
_0222F5AC: .word 0x00006DB4
|
|
thumb_func_end MOD62_0222F43C
|
|
|
|
thumb_func_start MOD62_0222F5B0
|
|
MOD62_0222F5B0: ; 0x0222F5B0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0xa0
|
|
add r7, r0, #0
|
|
add r0, #0xdc
|
|
ldr r6, [r0]
|
|
add r0, r7, #0
|
|
add r0, #0xe0
|
|
ldr r5, [r0]
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r4, r7, r0
|
|
mov r1, #0
|
|
add r2, sp, #0x6c
|
|
strh r1, [r2]
|
|
strh r1, [r2, #2]
|
|
strh r1, [r2, #4]
|
|
strh r1, [r2, #6]
|
|
mov r0, #0x3c
|
|
str r0, [sp, #0x74]
|
|
mov r0, #2
|
|
str r0, [sp, #0x7c]
|
|
mov r0, #1
|
|
str r1, [sp, #0x9c]
|
|
sub r1, r0, #2
|
|
str r0, [sp, #0x98]
|
|
str r0, [sp, #0x78]
|
|
ldr r0, _0222F6FC ; =0x000062B9
|
|
str r1, [sp, #0x90]
|
|
str r0, [sp, #0x80]
|
|
ldr r0, _0222F700 ; =0x000066B2
|
|
str r1, [sp, #0x94]
|
|
str r0, [sp, #0x84]
|
|
ldr r0, _0222F704 ; =0x00006A29
|
|
add r1, r5, #0
|
|
str r0, [sp, #0x88]
|
|
ldr r0, _0222F708 ; =0x00006DB5
|
|
str r0, [sp, #0x8c]
|
|
add r0, r6, #0
|
|
bl FUN_0200C154
|
|
str r0, [r4, #0x20]
|
|
ldr r0, _0222F70C ; =0x000062BA
|
|
add r1, r5, #0
|
|
str r0, [sp, #0x80]
|
|
ldr r0, _0222F700 ; =0x000066B2
|
|
add r2, sp, #0x6c
|
|
str r0, [sp, #0x84]
|
|
ldr r0, _0222F710 ; =0x00006A2A
|
|
str r0, [sp, #0x88]
|
|
ldr r0, _0222F714 ; =0x00006DB6
|
|
str r0, [sp, #0x8c]
|
|
add r0, r6, #0
|
|
bl FUN_0200C154
|
|
str r0, [r4, #0x24]
|
|
mov r0, #1
|
|
str r0, [sp, #0x98]
|
|
str r0, [sp, #0x78]
|
|
ldr r0, _0222F718 ; =0x000089C8
|
|
add r1, r5, #0
|
|
str r0, [sp, #0x80]
|
|
ldr r0, _0222F700 ; =0x000066B2
|
|
add r2, sp, #0x6c
|
|
str r0, [sp, #0x84]
|
|
ldr r0, _0222F71C ; =0x00006A28
|
|
str r0, [sp, #0x88]
|
|
ldr r0, _0222F720 ; =0x00006DB4
|
|
str r0, [sp, #0x8c]
|
|
add r0, r6, #0
|
|
bl FUN_0200C154
|
|
str r0, [r4, #0x28]
|
|
mov r0, #1
|
|
str r0, [sp, #0x98]
|
|
mov r0, #0
|
|
str r0, [sp, #0x78]
|
|
ldr r0, _0222F724 ; =0x000062B6
|
|
add r1, r5, #0
|
|
str r0, [sp, #0x80]
|
|
ldr r0, _0222F700 ; =0x000066B2
|
|
add r2, sp, #0x6c
|
|
str r0, [sp, #0x84]
|
|
ldr r0, _0222F728 ; =0x00006A27
|
|
str r0, [sp, #0x88]
|
|
ldr r0, _0222F72C ; =0x00006DB3
|
|
str r0, [sp, #0x8c]
|
|
add r0, r6, #0
|
|
bl FUN_0200C154
|
|
str r0, [r4, #0x2c]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, sp, #0x6c
|
|
bl FUN_0200C154
|
|
ldr r3, _0222F730 ; =0x022311A8
|
|
str r0, [r4, #0x30]
|
|
add r2, sp, #0x38
|
|
mov r1, #0x1a
|
|
_0222F676:
|
|
ldrh r0, [r3]
|
|
add r3, r3, #2
|
|
strh r0, [r2]
|
|
add r2, r2, #2
|
|
sub r1, r1, #1
|
|
bne _0222F676
|
|
ldr r3, _0222F734 ; =0x022311DC
|
|
add r2, sp, #4
|
|
mov r1, #0x1a
|
|
_0222F688:
|
|
ldrh r0, [r3]
|
|
add r3, r3, #2
|
|
strh r0, [r2]
|
|
add r2, r2, #2
|
|
sub r1, r1, #1
|
|
bne _0222F688
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r0, #0x1d
|
|
add r4, r7, #0
|
|
lsl r0, r0, #4
|
|
add r7, r7, r0
|
|
add r6, sp, #0x58
|
|
add r4, #0x20
|
|
add r5, sp, #0x24
|
|
add r7, #0x20
|
|
_0222F6A8:
|
|
mov r0, #0xf9
|
|
mov r1, #0
|
|
mov r2, #2
|
|
lsl r0, r0, #2
|
|
ldrsh r1, [r6, r1]
|
|
ldrsh r2, [r6, r2]
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200C714
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200C5A8
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C61C
|
|
mov r1, #0xf9
|
|
mov r2, #0
|
|
mov r3, #2
|
|
lsl r1, r1, #2
|
|
ldrsh r2, [r5, r2]
|
|
ldrsh r3, [r5, r3]
|
|
ldr r1, [r4, r1]
|
|
add r0, r7, #0
|
|
bl MOD62_0222DCE4
|
|
ldr r0, [sp]
|
|
add r6, r6, #4
|
|
add r0, r0, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
add r7, r7, #4
|
|
str r0, [sp]
|
|
cmp r0, #0xd
|
|
blt _0222F6A8
|
|
add sp, #0xa0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222F6FC: .word 0x000062B9
|
|
_0222F700: .word 0x000066B2
|
|
_0222F704: .word 0x00006A29
|
|
_0222F708: .word 0x00006DB5
|
|
_0222F70C: .word 0x000062BA
|
|
_0222F710: .word 0x00006A2A
|
|
_0222F714: .word 0x00006DB6
|
|
_0222F718: .word 0x000089C8
|
|
_0222F71C: .word 0x00006A28
|
|
_0222F720: .word 0x00006DB4
|
|
_0222F724: .word 0x000062B6
|
|
_0222F728: .word 0x00006A27
|
|
_0222F72C: .word 0x00006DB3
|
|
_0222F730: .word 0x022311A8
|
|
_0222F734: .word 0x022311DC
|
|
thumb_func_end MOD62_0222F5B0
|
|
|
|
thumb_func_start MOD62_0222F738
|
|
MOD62_0222F738: ; 0x0222F738
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0xf9
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_0222F744:
|
|
ldr r0, [r5, r7]
|
|
add r1, r6, #0
|
|
bl FUN_0200C644
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xd
|
|
blt _0222F744
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F738
|
|
|
|
thumb_func_start MOD62_0222F758
|
|
MOD62_0222F758: ; 0x0222F758
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F758
|
|
|
|
thumb_func_start MOD62_0222F75C
|
|
MOD62_0222F75C: ; 0x0222F75C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r6, #0xf9
|
|
mov r4, #8
|
|
add r5, #0x20
|
|
lsl r6, r6, #2
|
|
_0222F768:
|
|
ldr r0, [r5, r6]
|
|
bl FUN_0200C3DC
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0xd
|
|
blt _0222F768
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD62_0222F75C
|
|
|
|
thumb_func_start MOD62_0222F778
|
|
MOD62_0222F778: ; 0x0222F778
|
|
add r1, r0, #0
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldr r3, _0222F78C ; =FUN_02029C74
|
|
lsl r0, r0, #3
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #8]
|
|
add r1, #0x68
|
|
bx r3
|
|
.align 2, 0
|
|
_0222F78C: .word FUN_02029C74
|
|
thumb_func_end MOD62_0222F778
|
|
|
|
thumb_func_start MOD62_0222F790
|
|
MOD62_0222F790: ; 0x0222F790
|
|
mov r1, #0xf1
|
|
add r2, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r2, r1]
|
|
ldr r3, _0222F7A4 ; =FUN_02029C74
|
|
lsl r1, r1, #3
|
|
add r1, r2, r1
|
|
add r0, #0x68
|
|
ldr r1, [r1, #8]
|
|
bx r3
|
|
.align 2, 0
|
|
_0222F7A4: .word FUN_02029C74
|
|
thumb_func_end MOD62_0222F790
|
|
|
|
thumb_func_start MOD62_0222F7A8
|
|
MOD62_0222F7A8: ; 0x0222F7A8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_0222F7AE:
|
|
ldr r0, [r5, #0x64]
|
|
add r1, r4, #0
|
|
bl FUN_02029CF4
|
|
add r1, r5, r4
|
|
add r1, #0x80
|
|
add r4, r4, #1
|
|
strb r0, [r1]
|
|
cmp r4, #0x51
|
|
blt _0222F7AE
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD62_0222F7A8
|
|
|
|
thumb_func_start MOD62_0222F7C4
|
|
MOD62_0222F7C4: ; 0x0222F7C4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_0222F7CA:
|
|
add r2, r5, r4
|
|
add r2, #0x80
|
|
ldrb r2, [r2]
|
|
ldr r0, [r5, #0x64]
|
|
add r1, r4, #0
|
|
bl FUN_02029D40
|
|
add r4, r4, #1
|
|
cmp r4, #0x51
|
|
blt _0222F7CA
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD62_0222F7C4
|
|
|
|
thumb_func_start MOD62_0222F7E0
|
|
MOD62_0222F7E0: ; 0x0222F7E0
|
|
push {r3, lr}
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
ldr r0, _0222F804 ; =0x04000050
|
|
mov r1, #0
|
|
mov r2, #6
|
|
mov r3, #0xb
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
ldr r0, _0222F808 ; =0x04001050
|
|
mov r1, #0
|
|
mov r2, #0xe
|
|
mov r3, #7
|
|
bl G2x_SetBlendAlpha_
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_0222F804: .word 0x04000050
|
|
_0222F808: .word 0x04001050
|
|
thumb_func_end MOD62_0222F7E0
|
|
|
|
thumb_func_start MOD62_0222F80C
|
|
MOD62_0222F80C: ; 0x0222F80C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, #0xf1
|
|
add r5, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r0, [r5, r1]
|
|
lsl r0, r0, #3
|
|
add r0, r5, r0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0xff
|
|
beq _0222F832
|
|
ldr r2, [r5]
|
|
lsl r0, r0, #2
|
|
add r0, r2, r0
|
|
add r1, #0x64
|
|
ldr r0, [r0, #4]
|
|
ldr r1, [r5, r1]
|
|
bl FUN_02069B88
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F832:
|
|
ldr r1, [r5]
|
|
mov r6, #0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
ble _0222F868
|
|
add r4, r6, #0
|
|
_0222F83E:
|
|
add r0, r1, r4
|
|
ldr r7, [r0, #4]
|
|
mov r1, #0x4c
|
|
add r0, r7, #0
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
cmp r0, #0
|
|
bne _0222F85C
|
|
ldr r1, _0222F86C ; =0x00000428
|
|
add r0, r7, #0
|
|
ldr r1, [r5, r1]
|
|
bl FUN_02069B88
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F85C:
|
|
ldr r1, [r5]
|
|
add r6, r6, #1
|
|
ldr r0, [r1]
|
|
add r4, r4, #4
|
|
cmp r6, r0
|
|
blt _0222F83E
|
|
_0222F868:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222F86C: .word 0x00000428
|
|
thumb_func_end MOD62_0222F80C
|
|
|
|
thumb_func_start MOD62_0222F870
|
|
MOD62_0222F870: ; 0x0222F870
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, #0
|
|
add r6, r0, #0
|
|
add r5, r7, #0
|
|
add r4, r7, #0
|
|
_0222F87A:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl FUN_02029CC8
|
|
bl FUN_02029CE0
|
|
cmp r0, #0
|
|
beq _0222F88C
|
|
add r5, r5, #1
|
|
_0222F88C:
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _0222F87A
|
|
cmp r5, #0
|
|
beq _0222F898
|
|
mov r7, #1
|
|
_0222F898:
|
|
add r0, r7, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD62_0222F870
|
|
|
|
thumb_func_start MOD62_0222F89C
|
|
MOD62_0222F89C: ; 0x0222F89C
|
|
mov r2, #0xc
|
|
mul r2, r1
|
|
add r1, r0, r2
|
|
mov r0, #0x99
|
|
lsl r0, r0, #2
|
|
ldr r2, [r1, r0]
|
|
add r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
cmp r2, #0xff
|
|
bne _0222F8B8
|
|
cmp r0, #0
|
|
bne _0222F8B8
|
|
mov r0, #0
|
|
bx lr
|
|
_0222F8B8:
|
|
cmp r2, #0xff
|
|
bne _0222F8C4
|
|
cmp r0, #1
|
|
bne _0222F8C4
|
|
mov r0, #1
|
|
bx lr
|
|
_0222F8C4:
|
|
cmp r2, #0xff
|
|
beq _0222F8D0
|
|
cmp r0, #1
|
|
bne _0222F8D0
|
|
mov r0, #2
|
|
bx lr
|
|
_0222F8D0:
|
|
mov r0, #3
|
|
bx lr
|
|
thumb_func_end MOD62_0222F89C
|
|
|
|
thumb_func_start MOD62_0222F8D4
|
|
MOD62_0222F8D4: ; 0x0222F8D4
|
|
push {r3, r4}
|
|
cmp r2, #0xff
|
|
bne _0222F8E6
|
|
mov r2, #0xf6
|
|
lsl r2, r2, #2
|
|
ldr r4, [r0, r2]
|
|
sub r2, r2, #4
|
|
str r4, [r0, r2]
|
|
b _0222F8EC
|
|
_0222F8E6:
|
|
mov r4, #0xf5
|
|
lsl r4, r4, #2
|
|
str r2, [r0, r4]
|
|
_0222F8EC:
|
|
mov r2, #0xf3
|
|
lsl r2, r2, #2
|
|
str r1, [r0, r2]
|
|
add r1, r2, #0
|
|
add r1, #0xc
|
|
str r3, [r0, r1]
|
|
mov r1, #0
|
|
add r2, #0x10
|
|
str r1, [r0, r2]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F8D4
|
|
|
|
thumb_func_start MOD62_0222F904
|
|
MOD62_0222F904: ; 0x0222F904
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xfc
|
|
mov r1, #1
|
|
bl FUN_0200CCF8
|
|
add r0, r4, #0
|
|
add r0, #0xfc
|
|
bl FUN_02019570
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_02001C5C
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02012870
|
|
add r4, #0xfc
|
|
add r0, r4, #0
|
|
bl FUN_02019178
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222F904
|
|
|
|
thumb_func_start MOD62_0222F93C
|
|
MOD62_0222F93C: ; 0x0222F93C
|
|
push {r3, lr}
|
|
mov r1, #1
|
|
mov r2, #0
|
|
mov r3, #3
|
|
bl MOD62_0222F8D4
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222F93C
|
|
|
|
thumb_func_start MOD62_0222F94C
|
|
MOD62_0222F94C: ; 0x0222F94C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl MOD62_0222D874
|
|
add r0, r4, #0
|
|
bl MOD62_0222DC7C
|
|
add r0, r4, #0
|
|
bl MOD62_0222EC28
|
|
mov r2, #0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r3, r2, #0
|
|
bl MOD62_0222F8D4
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD62_0222F94C
|
|
|
|
thumb_func_start MOD62_0222F970
|
|
MOD62_0222F970: ; 0x0222F970
|
|
push {r3, lr}
|
|
mov r1, #3
|
|
mov r2, #0
|
|
add r3, r1, #0
|
|
bl MOD62_0222F8D4
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222F970
|
|
|
|
thumb_func_start MOD62_0222F980
|
|
MOD62_0222F980: ; 0x0222F980
|
|
push {r3, lr}
|
|
mov r1, #4
|
|
mov r2, #0
|
|
mov r3, #3
|
|
bl MOD62_0222F8D4
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222F980
|
|
|
|
thumb_func_start MOD62_0222F990
|
|
MOD62_0222F990: ; 0x0222F990
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0xf3
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
lsl r2, r1, #2
|
|
ldr r1, _0222F9B0 ; =0x02231220
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
add r4, #0xe0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl FUN_0200BC1C
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0222F9B0: .word 0x02231220
|
|
thumb_func_end MOD62_0222F990
|
|
|
|
thumb_func_start MOD62_0222F9B4
|
|
MOD62_0222F9B4: ; 0x0222F9B4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222FA3C ; =0x021C48B8
|
|
mov r1, #0x10
|
|
ldr r0, [r0, #0x4c]
|
|
tst r1, r0
|
|
beq _0222F9D2
|
|
ldr r0, [r4]
|
|
mov r1, #0xc
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
bl _s32_div_f
|
|
str r1, [r4]
|
|
b _0222FA38
|
|
_0222F9D2:
|
|
mov r1, #0x20
|
|
tst r1, r0
|
|
beq _0222F9EA
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
ble _0222F9E4
|
|
sub r0, r0, #1
|
|
str r0, [r4]
|
|
b _0222FA38
|
|
_0222F9E4:
|
|
mov r0, #0xb
|
|
str r0, [r4]
|
|
b _0222FA38
|
|
_0222F9EA:
|
|
mov r1, #0x40
|
|
tst r1, r0
|
|
beq _0222FA0E
|
|
ldr r1, [r4]
|
|
asr r0, r1, #1
|
|
lsr r0, r0, #0x1e
|
|
add r0, r1, r0
|
|
asr r0, r0, #2
|
|
beq _0222FA0A
|
|
sub r0, r1, #4
|
|
mov r1, #0xc
|
|
str r0, [r4]
|
|
bl _s32_div_f
|
|
str r1, [r4]
|
|
b _0222FA38
|
|
_0222FA0A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222FA0E:
|
|
mov r1, #0x80
|
|
tst r0, r1
|
|
beq _0222FA34
|
|
ldr r1, [r4]
|
|
asr r0, r1, #1
|
|
lsr r0, r0, #0x1e
|
|
add r0, r1, r0
|
|
asr r0, r0, #2
|
|
cmp r0, #2
|
|
beq _0222FA30
|
|
add r0, r1, #4
|
|
mov r1, #0xc
|
|
str r0, [r4]
|
|
bl _s32_div_f
|
|
str r1, [r4]
|
|
b _0222FA38
|
|
_0222FA30:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222FA34:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222FA38:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0222FA3C: .word 0x021C48B8
|
|
thumb_func_end MOD62_0222F9B4
|
|
|
|
thumb_func_start MOD62_0222FA40
|
|
MOD62_0222FA40: ; 0x0222FA40
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
str r2, [sp]
|
|
cmp r1, #0
|
|
bne _0222FA50
|
|
mov r4, #1
|
|
_0222FA50:
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
lsl r6, r1, #2
|
|
add r7, r5, r0
|
|
add r1, sp, #4
|
|
ldr r0, [r7, r6]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl MOD62_0222E53C
|
|
mov r0, #0xbd
|
|
add r1, r5, r6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
add r3, sp, #4
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
bl FUN_0200C714
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _0222FAAE
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
ldr r0, [r7, r6]
|
|
lsl r4, r4, #2
|
|
str r0, [r1, r4]
|
|
ldr r0, [r1, r4]
|
|
add r1, sp, #4
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl MOD62_0222E53C
|
|
mov r0, #0xbd
|
|
add r1, r5, r4
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
add r3, sp, #4
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
bl FUN_0200C714
|
|
_0222FAAE:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222FA40
|
|
|
|
thumb_func_start MOD62_0222FAB4
|
|
MOD62_0222FAB4: ; 0x0222FAB4
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
mov r1, #0xf5
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #6
|
|
bls _0222FAC6
|
|
b _0222FD4C
|
|
_0222FAC6:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0222FAD2: ; jump table
|
|
.short _0222FAE0 - _0222FAD2 - 2 ; case 0
|
|
.short _0222FBBC - _0222FAD2 - 2 ; case 1
|
|
.short _0222FBCC - _0222FAD2 - 2 ; case 2
|
|
.short _0222FBE0 - _0222FAD2 - 2 ; case 3
|
|
.short _0222FCA2 - _0222FAD2 - 2 ; case 4
|
|
.short _0222FD00 - _0222FAD2 - 2 ; case 5
|
|
.short _0222FD10 - _0222FAD2 - 2 ; case 6
|
|
_0222FAE0:
|
|
bl MOD62_0222E560
|
|
add r0, r4, #0
|
|
bl MOD62_0222E5D8
|
|
add r0, r4, #0
|
|
bl MOD62_0222E6D8
|
|
add r0, r4, #0
|
|
bl MOD62_0222F2C8
|
|
add r0, r4, #0
|
|
bl MOD62_0222F36C
|
|
add r0, r4, #0
|
|
bl MOD62_0222F3D4
|
|
add r0, r4, #0
|
|
bl MOD62_0222E7A4
|
|
add r0, r4, #0
|
|
bl MOD62_0222EA6C
|
|
mov r0, #0x15
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r3, #2
|
|
add r1, r4, #0
|
|
str r3, [sp, #8]
|
|
mov r0, #0x28
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
add r1, #0xec
|
|
mov r2, #1
|
|
bl MOD62_0222EEE0
|
|
add r0, r4, #0
|
|
bl MOD62_0222D67C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222DB10
|
|
add r0, r4, #0
|
|
bl MOD62_0222D654
|
|
add r0, r4, #0
|
|
bl MOD62_0222F43C
|
|
add r0, r4, #0
|
|
bl MOD62_0222F5B0
|
|
add r0, r4, #0
|
|
bl MOD62_0222E888
|
|
add r0, r4, #0
|
|
bl MOD62_0222E8F8
|
|
add r0, r4, #0
|
|
bl MOD62_0222F778
|
|
add r0, r4, #0
|
|
bl MOD62_0222F7A8
|
|
ldr r1, _0222FD60 ; =0x00000418
|
|
add r0, r4, #0
|
|
ldr r1, [r4, r1]
|
|
bl MOD62_0222DEF8
|
|
add r0, r4, #0
|
|
bl MOD62_0222DF5C
|
|
add r0, r4, #0
|
|
bl MOD62_0222E004
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222F738
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222E9B4
|
|
add r0, r4, #0
|
|
bl MOD62_0222DDB4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222DDE0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
bl MOD62_0222F270
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _0222FD4C
|
|
_0222FBBC:
|
|
bl MOD62_0222F288
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _0222FD4C
|
|
_0222FBCC:
|
|
bl FUN_0200E308
|
|
cmp r0, #1
|
|
beq _0222FBD6
|
|
b _0222FD4C
|
|
_0222FBD6:
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
_0222FBE0:
|
|
bl FUN_02020AA4
|
|
cmp r0, #1
|
|
bne _0222FBF0
|
|
add r0, r4, #0
|
|
bl MOD62_0222F93C
|
|
b _0222FD4C
|
|
_0222FBF0:
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
ldr r6, [r4, r0]
|
|
add r0, r4, r0
|
|
bl MOD62_0222F9B4
|
|
mov r1, #0xf1
|
|
lsl r1, r1, #2
|
|
ldr r5, [r4, r1]
|
|
cmp r0, #1
|
|
str r6, [r4, r1]
|
|
bne _0222FC4C
|
|
add r0, r4, #0
|
|
bl MOD62_0222D874
|
|
add r0, r4, #0
|
|
bl MOD62_0222DC7C
|
|
add r0, r4, #0
|
|
bl MOD62_0222EC28
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl MOD62_0222FA40
|
|
add r0, r4, #0
|
|
bl MOD62_0222DAEC
|
|
add r0, r4, #0
|
|
bl MOD62_0222D67C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222DB10
|
|
add r0, r4, #0
|
|
bl MOD62_0222D654
|
|
ldr r0, _0222FD64 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
b _0222FD4C
|
|
_0222FC4C:
|
|
ldr r0, _0222FD68 ; =0x021C48B8
|
|
ldr r2, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r2
|
|
beq _0222FC8E
|
|
add r0, r1, #0
|
|
add r0, #0x10
|
|
ldr r0, [r4, r0]
|
|
add r1, #0x10
|
|
add r0, r0, #1
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #8
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
add r1, #0xfc
|
|
mov r2, #1
|
|
add r3, r4, #0
|
|
bl MOD62_0222E3C4
|
|
ldr r0, _0222FD64 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
b _0222FD4C
|
|
_0222FC8E:
|
|
mov r0, #2
|
|
tst r0, r2
|
|
beq _0222FD4C
|
|
mov r0, #5
|
|
add r1, #0x10
|
|
str r0, [r4, r1]
|
|
ldr r0, _0222FD6C ; =0x000005DD
|
|
bl FUN_020054C8
|
|
b _0222FD4C
|
|
_0222FCA2:
|
|
mov r0, #0x1a
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02001C78
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222FCBE
|
|
add r0, r0, #1
|
|
cmp r1, r0
|
|
beq _0222FD4C
|
|
b _0222FCD8
|
|
_0222FCBE:
|
|
add r0, r4, #0
|
|
bl MOD62_0222F904
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf5
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _0222FD4C
|
|
_0222FCD8:
|
|
cmp r1, #0
|
|
beq _0222FD4C
|
|
add r0, r4, #0
|
|
blx r1
|
|
cmp r0, #1
|
|
beq _0222FCEC
|
|
add r0, r4, #0
|
|
bl MOD62_0222F904
|
|
b _0222FD4C
|
|
_0222FCEC:
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf5
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _0222FD4C
|
|
_0222FD00:
|
|
bl MOD62_0222F2A8
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _0222FD4C
|
|
_0222FD10:
|
|
bl FUN_0200E308
|
|
cmp r0, #1
|
|
bne _0222FD4C
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
bl FUN_02019178
|
|
add r0, r4, #0
|
|
bl MOD62_0222ED04
|
|
add r0, r4, #0
|
|
bl MOD62_0222E77C
|
|
add r0, r4, #0
|
|
bl MOD62_0222F75C
|
|
add r0, r4, #0
|
|
bl MOD62_0222E9D4
|
|
add r0, r4, #0
|
|
bl MOD62_0222E0C8
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl FUN_02085D9C
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0222FD4C:
|
|
add r0, r4, #0
|
|
bl MOD62_0222E754
|
|
add r0, r4, #0
|
|
bl MOD62_0222ECD4
|
|
mov r0, #1
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222FD60: .word 0x00000418
|
|
_0222FD64: .word 0x000005DC
|
|
_0222FD68: .word 0x021C48B8
|
|
_0222FD6C: .word 0x000005DD
|
|
thumb_func_end MOD62_0222FAB4
|
|
|
|
thumb_func_start MOD62_0222FD70
|
|
MOD62_0222FD70: ; 0x0222FD70
|
|
push {r3, lr}
|
|
cmp r1, #3
|
|
bhi _0222FDA2
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0222FD82: ; jump table
|
|
.short _0222FD8A - _0222FD82 - 2 ; case 0
|
|
.short _0222FD9A - _0222FD82 - 2 ; case 1
|
|
.short _0222FD92 - _0222FD82 - 2 ; case 2
|
|
.short _0222FD9A - _0222FD82 - 2 ; case 3
|
|
_0222FD8A:
|
|
mov r1, #1
|
|
bl FUN_0200C61C
|
|
pop {r3, pc}
|
|
_0222FD92:
|
|
mov r1, #2
|
|
bl FUN_0200C61C
|
|
pop {r3, pc}
|
|
_0222FD9A:
|
|
mov r1, #0
|
|
bl FUN_0200C61C
|
|
pop {r3, pc}
|
|
_0222FDA2:
|
|
bl ErrorHandling
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_0222FD70
|
|
|
|
thumb_func_start MOD62_0222FDA8
|
|
MOD62_0222FDA8: ; 0x0222FDA8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
cmp r5, #0
|
|
beq _0222FDCC
|
|
add r1, sp, #4
|
|
add r2, sp, #0
|
|
bl FUN_020119A4
|
|
ldr r1, [sp, #4]
|
|
ldr r2, [sp]
|
|
add r0, r5, #0
|
|
add r1, r1, r4
|
|
add r2, r2, r6
|
|
bl FUN_020118C4
|
|
_0222FDCC:
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD62_0222FDA8
|
|
|
|
thumb_func_start MOD62_0222FDD0
|
|
MOD62_0222FDD0: ; 0x0222FDD0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #3
|
|
beq _0222FDE2
|
|
cmp r0, #6
|
|
beq _0222FDFC
|
|
b _0222FE1C
|
|
_0222FDE2:
|
|
mov r1, #0
|
|
ldr r0, [r4, #8]
|
|
sub r2, r1, #1
|
|
bl MOD62_0222FDA8
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
bl FUN_0200C61C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0222FDFC:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
mov r2, #2
|
|
bl MOD62_0222FDA8
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
bl FUN_0200C61C
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
_0222FE1C:
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0222FDD0
|
|
|
|
thumb_func_start MOD62_0222FE24
|
|
MOD62_0222FE24: ; 0x0222FE24
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #0x35
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
str r6, [r4, #4]
|
|
add r0, r5, #0
|
|
sub r2, r1, #1
|
|
str r5, [r4, #8]
|
|
bl MOD62_0222FDA8
|
|
mov r2, #0xfa
|
|
ldr r0, _0222FE54 ; =MOD62_0222FDD0
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl FUN_0200CA44
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0222FE54: .word MOD62_0222FDD0
|
|
thumb_func_end MOD62_0222FE24
|
|
|
|
thumb_func_start MOD62_0222FE58
|
|
MOD62_0222FE58: ; 0x0222FE58
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r6, r1, #0
|
|
cmp r0, #0
|
|
bne _0222FE6C
|
|
b _022300A8
|
|
_0222FE6C:
|
|
cmp r5, #0x14
|
|
bls _0222FE72
|
|
b _022300A4
|
|
_0222FE72:
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222FE7E: ; jump table
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 0
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 1
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 2
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 3
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 4
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 5
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 6
|
|
.short _0222FFE6 - _0222FE7E - 2 ; case 7
|
|
.short _0222FEA8 - _0222FE7E - 2 ; case 8
|
|
.short _0222FEF2 - _0222FE7E - 2 ; case 9
|
|
.short _0222FF40 - _0222FE7E - 2 ; case 10
|
|
.short _0222FF6E - _0222FE7E - 2 ; case 11
|
|
.short _0222FFAC - _0222FE7E - 2 ; case 12
|
|
.short _02230074 - _0222FE7E - 2 ; case 13
|
|
.short _02230074 - _0222FE7E - 2 ; case 14
|
|
.short _02230074 - _0222FE7E - 2 ; case 15
|
|
.short _02230074 - _0222FE7E - 2 ; case 16
|
|
.short _02230074 - _0222FE7E - 2 ; case 17
|
|
.short _02230074 - _0222FE7E - 2 ; case 18
|
|
.short _02230074 - _0222FE7E - 2 ; case 19
|
|
.short _02230074 - _0222FE7E - 2 ; case 20
|
|
_0222FEA8:
|
|
cmp r6, #0
|
|
bne _0222FEE6
|
|
ldr r1, _022300AC ; =0x00000418
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
ble _0222FEB6
|
|
b _0222FEBA
|
|
_0222FEB6:
|
|
add r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
_0222FEBA:
|
|
sub r0, r0, #1
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl MOD62_0222E0C8
|
|
ldr r1, _022300AC ; =0x00000418
|
|
add r0, r4, #0
|
|
ldr r1, [r4, r1]
|
|
bl MOD62_0222DEF8
|
|
add r0, r4, #0
|
|
bl MOD62_0222DF5C
|
|
add r0, r4, #0
|
|
bl MOD62_0222E004
|
|
add r0, r4, #0
|
|
bl MOD62_0222F0D4
|
|
ldr r0, _022300B0 ; =0x000006C5
|
|
bl FUN_020054C8
|
|
_0222FEE6:
|
|
ldr r0, _022300B4 ; =0x00000404
|
|
add r1, r6, #0
|
|
ldr r0, [r4, r0]
|
|
bl MOD62_0222FD70
|
|
pop {r4, r5, r6, pc}
|
|
_0222FEF2:
|
|
cmp r6, #0
|
|
bne _0222FF34
|
|
ldr r1, _022300AC ; =0x00000418
|
|
ldr r0, [r4, r1]
|
|
add r0, r0, #1
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl _s32_div_f
|
|
ldr r0, _022300AC ; =0x00000418
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl MOD62_0222E0C8
|
|
ldr r1, _022300AC ; =0x00000418
|
|
add r0, r4, #0
|
|
ldr r1, [r4, r1]
|
|
bl MOD62_0222DEF8
|
|
add r0, r4, #0
|
|
bl MOD62_0222DF5C
|
|
add r0, r4, #0
|
|
bl MOD62_0222E004
|
|
add r0, r4, #0
|
|
bl MOD62_0222F0D4
|
|
ldr r0, _022300B0 ; =0x000006C5
|
|
bl FUN_020054C8
|
|
_0222FF34:
|
|
ldr r0, _022300B8 ; =0x00000408
|
|
add r1, r6, #0
|
|
ldr r0, [r4, r0]
|
|
bl MOD62_0222FD70
|
|
pop {r4, r5, r6, pc}
|
|
_0222FF40:
|
|
cmp r6, #0
|
|
bne _0222FF62
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #5
|
|
beq _0222FF58
|
|
mov r1, #5
|
|
str r1, [r4, r0]
|
|
ldr r0, _022300BC ; =0x000005DD
|
|
bl FUN_020054C8
|
|
_0222FF58:
|
|
ldr r0, _022300C0 ; =0x0000040C
|
|
mov r1, #0
|
|
ldr r0, [r4, r0]
|
|
bl MOD62_0222FE24
|
|
_0222FF62:
|
|
ldr r0, _022300C0 ; =0x0000040C
|
|
add r1, r6, #0
|
|
ldr r0, [r4, r0]
|
|
bl MOD62_0222FD70
|
|
pop {r4, r5, r6, pc}
|
|
_0222FF6E:
|
|
cmp r6, #0
|
|
bne _0222FF9E
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #6
|
|
beq _0222FF8E
|
|
mov r1, #6
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
ldr r0, _022300C4 ; =0x000005E2
|
|
bl FUN_020054C8
|
|
_0222FF8E:
|
|
mov r0, #0x41
|
|
mov r1, #0x8e
|
|
lsl r0, r0, #4
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
bl MOD62_0222FE24
|
|
_0222FF9E:
|
|
mov r0, #0x41
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
add r1, r6, #0
|
|
bl MOD62_0222FD70
|
|
pop {r4, r5, r6, pc}
|
|
_0222FFAC:
|
|
cmp r6, #0
|
|
bne _0222FFDA
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #7
|
|
beq _0222FFCC
|
|
mov r1, #7
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
ldr r0, _022300BC ; =0x000005DD
|
|
bl FUN_020054C8
|
|
_0222FFCC:
|
|
ldr r0, _022300C8 ; =0x00000414
|
|
mov r1, #0x8f
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r4, r1]
|
|
bl MOD62_0222FE24
|
|
_0222FFDA:
|
|
ldr r0, _022300C8 ; =0x00000414
|
|
add r1, r6, #0
|
|
ldr r0, [r4, r0]
|
|
bl MOD62_0222FD70
|
|
pop {r4, r5, r6, pc}
|
|
_0222FFE6:
|
|
cmp r6, #0
|
|
bne _022300A8
|
|
add r0, r4, #0
|
|
bl MOD62_0222D76C
|
|
cmp r0, #0
|
|
bne _02230006
|
|
ldr r0, _022300CC ; =0x000005F2
|
|
bl FUN_020054C8
|
|
add r4, #0xec
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
bl MOD62_0222EE78
|
|
pop {r4, r5, r6, pc}
|
|
_02230006:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #4
|
|
add r6, r4, r0
|
|
ldrb r1, [r6, r5]
|
|
cmp r1, #0
|
|
beq _0223005C
|
|
ldr r0, [r4, #0x64]
|
|
sub r1, r1, #1
|
|
bl FUN_02029CF4
|
|
cmp r0, #0
|
|
beq _0223005C
|
|
lsl r1, r5, #0x18
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x18
|
|
bl MOD62_0222D6EC
|
|
add r1, r4, #0
|
|
add r1, #0xd4
|
|
str r0, [r1]
|
|
ldrb r0, [r6, r5]
|
|
bl FUN_02085FD0
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
bl MOD62_0222F208
|
|
ldr r0, [r4]
|
|
mov r2, #0
|
|
ldrb r1, [r6, r5]
|
|
ldr r0, [r0, #0x20]
|
|
mvn r2, r2
|
|
bl FUN_02029D44
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222F168
|
|
ldr r0, _022300D0 ; =0x000005EB
|
|
bl FUN_020054C8
|
|
pop {r4, r5, r6, pc}
|
|
_0223005C:
|
|
ldrb r0, [r6, r5]
|
|
cmp r0, #0
|
|
beq _022300A8
|
|
ldr r0, _022300CC ; =0x000005F2
|
|
bl FUN_020054C8
|
|
add r4, #0xec
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
bl MOD62_0222EE78
|
|
pop {r4, r5, r6, pc}
|
|
_02230074:
|
|
cmp r6, #0
|
|
bne _022300A8
|
|
sub r5, #0xd
|
|
lsl r2, r5, #0x18
|
|
add r0, r4, #0
|
|
lsr r2, r2, #0x18
|
|
bl MOD62_0222DA38
|
|
lsl r0, r5, #4
|
|
add r1, r4, r0
|
|
mov r0, #0xca
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
bl FUN_02085FD0
|
|
add r4, #0xec
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD62_0222F208
|
|
ldr r0, _022300D0 ; =0x000005EB
|
|
bl FUN_020054C8
|
|
pop {r4, r5, r6, pc}
|
|
_022300A4:
|
|
bl ErrorHandling
|
|
_022300A8:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022300AC: .word 0x00000418
|
|
_022300B0: .word 0x000006C5
|
|
_022300B4: .word 0x00000404
|
|
_022300B8: .word 0x00000408
|
|
_022300BC: .word 0x000005DD
|
|
_022300C0: .word 0x0000040C
|
|
_022300C4: .word 0x000005E2
|
|
_022300C8: .word 0x00000414
|
|
_022300CC: .word 0x000005F2
|
|
_022300D0: .word 0x000005EB
|
|
thumb_func_end MOD62_0222FE58
|
|
|
|
thumb_func_start MOD62_022300D4
|
|
MOD62_022300D4: ; 0x022300D4
|
|
mov r1, #0x96
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end MOD62_022300D4
|
|
|
|
thumb_func_start MOD62_022300DC
|
|
MOD62_022300DC: ; 0x022300DC
|
|
add r0, #0xd8
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD62_022300DC
|
|
|
|
thumb_func_start MOD62_022300E4
|
|
MOD62_022300E4: ; 0x022300E4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
str r0, [sp, #4]
|
|
add r1, sp, #0x10
|
|
mov r0, #0
|
|
strb r0, [r1]
|
|
strb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
mov r7, #0x1d
|
|
lsl r7, r7, #4
|
|
strb r0, [r1, #3]
|
|
ldr r1, _022301A0 ; =0x02231260
|
|
ldr r2, [sp, #4]
|
|
add r3, r7, #1
|
|
add r4, r7, #2
|
|
add r5, r7, #3
|
|
_02230104:
|
|
ldrb r6, [r1]
|
|
add r0, r0, #1
|
|
strb r6, [r2, r7]
|
|
ldrb r6, [r1, #1]
|
|
strb r6, [r2, r3]
|
|
ldrb r6, [r1, #2]
|
|
strb r6, [r2, r4]
|
|
ldrb r6, [r1, #3]
|
|
add r1, r1, #4
|
|
strb r6, [r2, r5]
|
|
add r2, r2, #4
|
|
cmp r0, #0xd
|
|
blt _02230104
|
|
cmp r0, #0x15
|
|
bge _0223017E
|
|
mov r3, #0x1d
|
|
ldr r2, [sp, #4]
|
|
lsl r3, r3, #4
|
|
add r2, r2, r3
|
|
lsl r4, r0, #2
|
|
ldr r1, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
add r1, r1, r4
|
|
add r2, r2, r4
|
|
lsl r4, r0, #4
|
|
add r5, sp, #0xc
|
|
add r3, r3, r4
|
|
ldrb r4, [r5, #4]
|
|
strb r4, [r5]
|
|
ldrb r4, [r5, #5]
|
|
strb r4, [r5, #1]
|
|
ldrb r4, [r5, #6]
|
|
strb r4, [r5, #2]
|
|
ldrb r4, [r5, #7]
|
|
strb r4, [r5, #3]
|
|
ldrb r4, [r5, #2]
|
|
ldrb r6, [r5]
|
|
ldrb r7, [r5, #1]
|
|
str r4, [sp, #8]
|
|
ldrb r4, [r5, #3]
|
|
mov ip, r4
|
|
_02230156:
|
|
mov r4, #0x1d
|
|
lsl r4, r4, #4
|
|
strb r6, [r1, r4]
|
|
add r4, r4, #1
|
|
strb r7, [r1, r4]
|
|
ldr r5, _022301A4 ; =0x000001D2
|
|
ldr r4, [sp, #8]
|
|
add r0, r0, #1
|
|
strb r4, [r1, r5]
|
|
add r5, r5, #1
|
|
mov r4, ip
|
|
strb r4, [r1, r5]
|
|
mov r4, #0x26
|
|
lsl r4, r4, #4
|
|
str r2, [r3, r4]
|
|
add r1, r1, #4
|
|
add r2, r2, #4
|
|
add r3, #0x10
|
|
cmp r0, #0x15
|
|
blt _02230156
|
|
_0223017E:
|
|
mov r0, #0x35
|
|
str r0, [sp]
|
|
mov r1, #0x1d
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r1, #4
|
|
add r0, r0, r1
|
|
ldr r2, _022301A8 ; =MOD62_0222FE58
|
|
ldr r3, [sp, #4]
|
|
mov r1, #0x15
|
|
bl FUN_020220C4
|
|
mov r2, #0x73
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r2, #2
|
|
str r0, [r1, r2]
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_022301A0: .word 0x02231260
|
|
_022301A4: .word 0x000001D2
|
|
_022301A8: .word MOD62_0222FE58
|
|
thumb_func_end MOD62_022300E4
|
|
|
|
thumb_func_start MOD62_022301AC
|
|
MOD62_022301AC: ; 0x022301AC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x34
|
|
ldr r1, _02230214 ; =0x00000428
|
|
add r5, r0, #0
|
|
ldr r1, [r5, r1]
|
|
add r0, sp, #0x24
|
|
mov r2, #2
|
|
bl FUN_02068B68
|
|
ldr r0, _02230214 ; =0x00000428
|
|
mov r1, #5
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
add r4, r0, #0
|
|
ldr r0, _02230214 ; =0x00000428
|
|
mov r1, #2
|
|
ldr r0, [r5, r0]
|
|
bl FUN_02068E14
|
|
add r6, r0, #0
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #2
|
|
lsl r1, r4, #0x10
|
|
str r6, [r5, r0]
|
|
add r0, sp, #0x10
|
|
lsr r1, r1, #0x10
|
|
bl FUN_02069010
|
|
ldr r0, _02230218 ; =0xFFFFFD80
|
|
add r6, #0x30
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #8]
|
|
mov r0, #0x69
|
|
str r1, [sp, #0xc]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r1, sp, #0x24
|
|
mov r2, #0xc0
|
|
add r3, r6, #0
|
|
bl FUN_020073A0
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
str r0, [r5, r1]
|
|
add sp, #0x34
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_02230214: .word 0x00000428
|
|
_02230218: .word 0xFFFFFD80
|
|
thumb_func_end MOD62_022301AC
|
|
|
|
thumb_func_start MOD62_0223021C
|
|
MOD62_0223021C: ; 0x0223021C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r0, _02230268 ; =0x00000428
|
|
mov r1, #5
|
|
ldr r0, [r5, r0]
|
|
mov r2, #0
|
|
bl FUN_020671BC
|
|
add r4, r0, #0
|
|
ldr r0, _02230268 ; =0x00000428
|
|
ldr r0, [r5, r0]
|
|
bl FUN_02068854
|
|
add r6, r0, #0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
mov r1, #1
|
|
bl FUN_02007314
|
|
mov r1, #0x97
|
|
lsl r2, r4, #0x10
|
|
str r6, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, r1]
|
|
sub r1, #0xb4
|
|
ldr r1, [r5, r1]
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_02069038
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_02230268: .word 0x00000428
|
|
thumb_func_end MOD62_0223021C
|
|
|
|
thumb_func_start MOD62_0223026C
|
|
MOD62_0223026C: ; 0x0223026C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xd
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0223026C
|
|
|
|
thumb_func_start MOD62_02230290
|
|
MOD62_02230290: ; 0x02230290
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
bl FUN_0200782C
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
cmp r0, r1
|
|
bne _022302AC
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_022302AC:
|
|
add r1, #0xa8
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0xc
|
|
bl FUN_0200782C
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
cmp r0, r2
|
|
blt _022302DE
|
|
add r0, r2, #0
|
|
add r0, #0xa8
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
bl FUN_02007558
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r4, r0]
|
|
add r2, #0xf3
|
|
bl FUN_02007558
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_022302DE:
|
|
add r2, #0xa8
|
|
ldr r0, [r4, r2]
|
|
mov r1, #0xc
|
|
mov r2, #0x20
|
|
bl FUN_020079E0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xd
|
|
mov r2, #0x20
|
|
bl FUN_020079E0
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl FUN_02007F34
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_02230290
|
|
|
|
thumb_func_start MOD62_0223030C
|
|
MOD62_0223030C: ; 0x0223030C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
bl FUN_0200782C
|
|
cmp r0, #0
|
|
bne _02230324
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02230324:
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
bl FUN_0200782C
|
|
cmp r0, #0
|
|
bgt _02230354
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xc
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0xd
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02230354:
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r4, r0]
|
|
sub r2, #0x2c
|
|
bl FUN_020079E0
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r4, r0]
|
|
sub r2, #0x2d
|
|
bl FUN_020079E0
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
bl FUN_02007F34
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_0223030C
|
|
|
|
thumb_func_start MOD62_02230388
|
|
MOD62_02230388: ; 0x02230388
|
|
add r2, r1, #0
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
ldr r3, _02230398 ; =FUN_02007558
|
|
mov r1, #6
|
|
bx r3
|
|
nop
|
|
_02230398: .word FUN_02007558
|
|
thumb_func_end MOD62_02230388
|
|
|
|
thumb_func_start MOD62_0223039C
|
|
MOD62_0223039C: ; 0x0223039C
|
|
mov r1, #0x6a
|
|
lsl r1, r1, #2
|
|
ldr r3, _022303A8 ; =FUN_02007534
|
|
ldr r0, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_022303A8: .word FUN_02007534
|
|
thumb_func_end MOD62_0223039C
|
|
|
|
thumb_func_start MOD62_022303AC
|
|
MOD62_022303AC: ; 0x022303AC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xa4
|
|
mov r1, #0xf5
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r1]
|
|
cmp r2, #0xa
|
|
bhi _0223042C
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_022303C8: ; jump table
|
|
.short _022303DE - _022303C8 - 2 ; case 0
|
|
.short _02230424 - _022303C8 - 2 ; case 1
|
|
.short _0223049A - _022303C8 - 2 ; case 2
|
|
.short _022304D2 - _022303C8 - 2 ; case 3
|
|
.short _02230BDA - _022303C8 - 2 ; case 4
|
|
.short _022304F2 - _022303C8 - 2 ; case 5
|
|
.short _02230846 - _022303C8 - 2 ; case 6
|
|
.short _022308B2 - _022303C8 - 2 ; case 7
|
|
.short _02230AD4 - _022303C8 - 2 ; case 8
|
|
.short _02230B00 - _022303C8 - 2 ; case 9
|
|
.short _02230B96 - _022303C8 - 2 ; case 10
|
|
_022303DE:
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
add r0, r4, #0
|
|
ldr r1, _0223071C ; =0x0000FFFF
|
|
add r0, #0xec
|
|
bl MOD62_0222EE78
|
|
add r0, r4, #0
|
|
bl MOD62_0222EFA0
|
|
add r0, r4, #0
|
|
bl MOD62_0222F0D4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl MOD62_0222E180
|
|
add r0, r4, #0
|
|
bl MOD62_0222F778
|
|
add r0, r4, #0
|
|
bl MOD62_0222F7A8
|
|
mov r0, #0x26
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230424:
|
|
bl MOD62_022300D4
|
|
cmp r0, #1
|
|
bne _0223042E
|
|
_0223042C:
|
|
b _02230BDA
|
|
_0223042E:
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
mov r2, #3
|
|
bl FUN_02003210
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _0223071C ; =0x0000FFFF
|
|
mov r1, #4
|
|
bl FUN_02003210
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl FUN_0201E6E4
|
|
mov r0, #4
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
mov r0, #7
|
|
mov r1, #1
|
|
bl FUN_020178BC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222F738
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222E9B4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222DDE0
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_0223049A:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
bne _02230598
|
|
mov r0, #3
|
|
mov r1, #1
|
|
bl FUN_020178BC
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
mov r2, #2
|
|
bl FUN_02003210
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022304D2:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
bne _02230598
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_022300DC
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022304F2:
|
|
add r2, r1, #0
|
|
add r2, #8
|
|
ldr r2, [r4, r2]
|
|
cmp r2, #7
|
|
bls _022304FE
|
|
b _0223080C
|
|
_022304FE:
|
|
add r2, r2, r2
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_0223050A: ; jump table
|
|
.short _0223051A - _0223050A - 2 ; case 0
|
|
.short _0223058C - _0223050A - 2 ; case 1
|
|
.short _022305E2 - _0223050A - 2 ; case 2
|
|
.short _02230646 - _0223050A - 2 ; case 3
|
|
.short _02230692 - _0223050A - 2 ; case 4
|
|
.short _022306D6 - _0223050A - 2 ; case 5
|
|
.short _0223072C - _0223050A - 2 ; case 6
|
|
.short _022307A0 - _0223050A - 2 ; case 7
|
|
_0223051A:
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230720 ; =0x0000080B
|
|
mov r1, #2
|
|
bl FUN_02003210
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _0223071C ; =0x0000FFFF
|
|
mov r1, #8
|
|
bl FUN_02003210
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
mov r0, #0x3e
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
bl MOD62_0222F80C
|
|
add r0, r4, #0
|
|
bl MOD62_022301AC
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_02230388
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #0xd
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_0223058C:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
beq _0223059A
|
|
_02230598:
|
|
b _02230BDA
|
|
_0223059A:
|
|
mov r0, #0x35
|
|
str r0, [sp, #0x80]
|
|
mov r1, #1
|
|
mov r2, #0
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x88]
|
|
add r0, r4, #0
|
|
str r1, [sp, #0x7c]
|
|
str r1, [sp, #0x94]
|
|
str r2, [sp, #0x84]
|
|
str r2, [sp, #0x90]
|
|
add r0, #0xdc
|
|
ldr r0, [r0]
|
|
mov r1, #0x9a
|
|
str r0, [sp, #0x98]
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x9c]
|
|
ldr r0, _02230724 ; =0x00000428
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020671BC
|
|
str r0, [sp, #0x8c]
|
|
add r0, sp, #0x7c
|
|
bl MOD08_02229918
|
|
mov r1, #0x8b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022305E2:
|
|
add r2, sp, #0x58
|
|
mov r0, #0
|
|
str r0, [r2]
|
|
str r0, [r2, #4]
|
|
str r0, [r2, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0x58]
|
|
add r0, r1, #0
|
|
add r0, #0x54
|
|
ldr r0, [r4, r0]
|
|
sub r1, #0x10
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [r4, r1]
|
|
add r1, r4, #0
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x64
|
|
bl MOD62_0222DCBC
|
|
ldr r0, _02230724 ; =0x00000428
|
|
mov r1, #0xa1
|
|
ldr r0, [r4, r0]
|
|
add r2, sp, #0x18
|
|
bl FUN_02067830
|
|
ldr r0, _02230724 ; =0x00000428
|
|
mov r1, #0xaa
|
|
ldr r0, [r4, r0]
|
|
add r2, sp, #0x64
|
|
bl FUN_02067830
|
|
mov r0, #0x35
|
|
add r1, sp, #0x58
|
|
bl MOD08_02228218
|
|
mov r1, #0x8a
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
bl MOD08_02228524
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
mov r1, #0
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230646:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_02228570
|
|
cmp r0, #1
|
|
bne _02230702
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_02229A00
|
|
cmp r0, #1
|
|
bne _02230702
|
|
add r0, r4, #0
|
|
bl MOD62_02230290
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_022285A4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_02230388
|
|
add r0, r4, #0
|
|
bl MOD62_0223026C
|
|
ldr r0, _02230728 ; =0x000006C6
|
|
bl FUN_020054C8
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230692:
|
|
bl MOD62_02230290
|
|
add r5, r0, #0
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_022299E8
|
|
cmp r0, #0
|
|
bne _02230702
|
|
cmp r5, #0
|
|
bne _02230702
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_02229A2C
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl FUN_0201E6E4
|
|
add r0, r4, #0
|
|
bl MOD62_0223021C
|
|
mov r0, #0x3e
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
sub r1, r0, #4
|
|
ldr r1, [r4, r1]
|
|
sub r0, r0, #4
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022306D6:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_022285B4
|
|
cmp r0, #0
|
|
bne _02230702
|
|
mov r0, #0x97
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_02014D7C
|
|
cmp r0, #1
|
|
bne _02230702
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02007390
|
|
cmp r0, #0
|
|
beq _02230704
|
|
_02230702:
|
|
b _02230BDA
|
|
_02230704:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_02228618
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
nop
|
|
_0223071C: .word 0x0000FFFF
|
|
_02230720: .word 0x0000080B
|
|
_02230724: .word 0x00000428
|
|
_02230728: .word 0x000006C6
|
|
_0223072C:
|
|
add r0, r1, #0
|
|
add r0, #0xc
|
|
ldr r0, [r4, r0]
|
|
add r2, r0, #1
|
|
add r0, r1, #0
|
|
add r0, #0xc
|
|
str r2, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0xc
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0x1e
|
|
blt _0223081A
|
|
add r0, r1, #0
|
|
mov r2, #0
|
|
add r0, #0xc
|
|
str r2, [r4, r0]
|
|
mov r0, #0x35
|
|
mov r3, #1
|
|
str r0, [sp, #0x34]
|
|
mov r0, #5
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x3c]
|
|
add r0, r4, #0
|
|
str r3, [sp, #0x30]
|
|
str r2, [sp, #0x44]
|
|
str r3, [sp, #0x48]
|
|
add r0, #0xdc
|
|
ldr r0, [r0]
|
|
add r1, #0x54
|
|
str r0, [sp, #0x4c]
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x50]
|
|
ldr r0, [r4, r1]
|
|
mov r1, #0x9a
|
|
bl FUN_020671BC
|
|
str r0, [sp, #0x40]
|
|
add r0, sp, #0x30
|
|
bl MOD08_02229918
|
|
mov r1, #0x8b
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
bl MOD62_0222F7E0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022307A0:
|
|
bl MOD62_0223030C
|
|
add r5, r0, #0
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_022299E8
|
|
cmp r0, #0
|
|
bne _0223081A
|
|
cmp r5, #0
|
|
bne _0223081A
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B38 ; =0x0000080B
|
|
mov r1, #2
|
|
bl FUN_02003210
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B3C ; =0x0000FFFF
|
|
mov r1, #8
|
|
bl FUN_02003210
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_02230388
|
|
add r0, r4, #0
|
|
bl MOD62_0223039C
|
|
mov r0, #0x8b
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD08_02229A2C
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_0223080C:
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
beq _0223081C
|
|
_0223081A:
|
|
b _02230BDA
|
|
_0223081C:
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl FUN_0201E6E4
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_022300DC
|
|
mov r0, #0xf7
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
mov r1, #4
|
|
sub r0, #8
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
ldr r1, _02230B3C ; =0x0000FFFF
|
|
add r0, #0xec
|
|
bl MOD62_0222EE78
|
|
b _02230BDA
|
|
_02230846:
|
|
add r0, #0xec
|
|
mov r1, #0xc
|
|
bl MOD62_0222EE78
|
|
add r0, r4, #0
|
|
bl MOD62_0222DC00
|
|
cmp r0, #1
|
|
bne _02230860
|
|
mov r0, #0x26
|
|
mov r1, #1
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
_02230860:
|
|
add r0, r4, #0
|
|
bl MOD62_0222DC7C
|
|
add r0, r4, #0
|
|
bl MOD62_0222EC28
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, #0x28]
|
|
bl FUN_02029FC8
|
|
mov r1, #6
|
|
bl FUN_0202A170
|
|
mov r0, #0xf1
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
mov r0, #0xc
|
|
mul r0, r1
|
|
add r2, r4, r0
|
|
mov r0, #0x99
|
|
lsl r0, r0, #2
|
|
ldr r0, [r2, r0]
|
|
cmp r0, #0xff
|
|
beq _022308A8
|
|
ldr r2, [r4]
|
|
lsl r0, r0, #2
|
|
add r0, r2, r0
|
|
ldr r5, [r0, #4]
|
|
ldr r0, [r2, #0x20]
|
|
bl FUN_02029C8C
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0xaa
|
|
bl FUN_02067830
|
|
_022308A8:
|
|
mov r0, #0xf5
|
|
mov r1, #8
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022308B2:
|
|
add r1, #8
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #5
|
|
bhi _0223093C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_022308C6: ; jump table
|
|
.short _022308D2 - _022308C6 - 2 ; case 0
|
|
.short _02230930 - _022308C6 - 2 ; case 1
|
|
.short _022309B4 - _022308C6 - 2 ; case 2
|
|
.short _022309C6 - _022308C6 - 2 ; case 3
|
|
.short _02230A2E - _022308C6 - 2 ; case 4
|
|
.short _02230A6A - _022308C6 - 2 ; case 5
|
|
_022308D2:
|
|
bl MOD62_0222DC00
|
|
cmp r0, #0
|
|
bne _022308E4
|
|
mov r0, #0xf5
|
|
mov r1, #8
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022308E4:
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B38 ; =0x0000080B
|
|
mov r1, #2
|
|
bl FUN_02003210
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xa
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B3C ; =0x0000FFFF
|
|
mov r1, #8
|
|
bl FUN_02003210
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl FUN_0201E74C
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230930:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
beq _0223093E
|
|
_0223093C:
|
|
b _02230BDA
|
|
_0223093E:
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl FUN_020038F0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r2, #4
|
|
add r0, r4, #0
|
|
str r2, [sp, #8]
|
|
mov r1, #0x28
|
|
str r1, [sp, #0xc]
|
|
add r0, #0xe4
|
|
add r1, #0xe4
|
|
ldr r0, [r0]
|
|
add r1, r4, r1
|
|
mov r3, #2
|
|
bl MOD62_0222EEE0
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0x19
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #4
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0xd4
|
|
str r0, [sp, #0x24]
|
|
mov r0, #5
|
|
str r0, [sp, #0x28]
|
|
add r0, sp, #0x10
|
|
strb r1, [r0, #0x1c]
|
|
mov r1, #6
|
|
strb r1, [r0, #0x1d]
|
|
mov r0, #0x35
|
|
bl FUN_02014590
|
|
mov r1, #0x89
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
add r1, sp, #0x1c
|
|
bl FUN_020145C8
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #0xe
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_022309B4:
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E74C
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
_022309C6:
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0201466C
|
|
cmp r0, #0
|
|
beq _02230A76
|
|
cmp r0, #1
|
|
beq _022309DC
|
|
cmp r0, #2
|
|
bne _02230A76
|
|
_022309DC:
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl FUN_020038F0
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020146C4
|
|
mov r0, #0x89
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020145A8
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
mov r1, #1
|
|
bl FUN_0200D0E0
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_02019570
|
|
mov r0, #0x43
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl FUN_02019178
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230A2E:
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B38 ; =0x0000080B
|
|
mov r1, #2
|
|
bl FUN_02003210
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B3C ; =0x0000FFFF
|
|
mov r1, #8
|
|
bl FUN_02003210
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230A6A:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
beq _02230A78
|
|
_02230A76:
|
|
b _02230BDA
|
|
_02230A78:
|
|
mov r0, #0x3e
|
|
lsl r0, r0, #4
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _02230AC2
|
|
cmp r1, #1
|
|
beq _02230A8C
|
|
cmp r1, #2
|
|
beq _02230ABC
|
|
b _02230AC2
|
|
_02230A8C:
|
|
add r0, r4, #0
|
|
bl MOD62_0222F790
|
|
add r0, r4, #0
|
|
bl MOD62_0222F7C4
|
|
add r0, r4, #0
|
|
bl MOD62_0222F0D4
|
|
add r0, r4, #0
|
|
bl MOD62_0222DAEC
|
|
add r0, r4, #0
|
|
bl MOD62_0222D67C
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_0222DB10
|
|
mov r0, #0xf5
|
|
mov r1, #6
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _02230AC2
|
|
_02230ABC:
|
|
mov r1, #4
|
|
sub r0, #0xc
|
|
str r1, [r4, r0]
|
|
_02230AC2:
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD62_022300DC
|
|
mov r0, #0xf7
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230AD4:
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
mov r2, #2
|
|
bl FUN_02003210
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230B00:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
bne _02230BDA
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
add r2, r1, #0
|
|
bl FUN_02003210
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r0, r4, #0
|
|
str r3, [sp, #8]
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
ldr r2, _02230B3C ; =0x0000FFFF
|
|
b _02230B40
|
|
.align 2, 0
|
|
_02230B38: .word 0x0000080B
|
|
_02230B3C: .word 0x0000FFFF
|
|
_02230B40:
|
|
mov r1, #4
|
|
bl FUN_02003210
|
|
mov r0, #3
|
|
add r1, r0, #0
|
|
bl FUN_020178BC
|
|
mov r0, #7
|
|
mov r1, #3
|
|
bl FUN_020178BC
|
|
mov r0, #4
|
|
mov r1, #0
|
|
bl FUN_0201E74C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222F738
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222E9B4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_0222DDE0
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
mvn r1, r1
|
|
mov r2, #4
|
|
bl MOD62_0222E180
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl MOD62_022300DC
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230BDA
|
|
_02230B96:
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_020038E4
|
|
cmp r0, #0
|
|
bne _02230BDA
|
|
add r0, r4, #0
|
|
bl MOD62_022300D4
|
|
cmp r0, #1
|
|
beq _02230BDA
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C644
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
mov r2, #0xff
|
|
add r3, r1, #0
|
|
bl MOD62_0222F8D4
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
add r0, r4, #0
|
|
bl MOD62_0222F1E8
|
|
add sp, #0xa4
|
|
mov r0, #1
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02230BDA:
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
ldr r5, [r0]
|
|
cmp r5, #0xff
|
|
bne _02230BF0
|
|
mov r0, #0x73
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_02022144
|
|
b _02230C98
|
|
_02230BF0:
|
|
add r0, sp, #0x14
|
|
add r1, sp, #0x10
|
|
bl FUN_02020AB0
|
|
cmp r0, #0
|
|
beq _02230C3E
|
|
lsl r6, r5, #4
|
|
mov r0, #0xca
|
|
add r1, r4, r6
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
bl FUN_02085FD0
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
bl MOD62_0222F208
|
|
mov r0, #0xcb
|
|
ldr r2, [sp, #0x10]
|
|
add r1, r4, r6
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #0x10
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl FUN_0200C714
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DBCC
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DC48
|
|
b _02230C98
|
|
_02230C3E:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DB38
|
|
lsl r6, r5, #4
|
|
mov r2, #0x33
|
|
add r1, r4, r6
|
|
lsl r2, r2, #4
|
|
add r7, r0, #0
|
|
ldr r0, [r1, r2]
|
|
sub r2, r2, #4
|
|
ldr r1, [r1, r2]
|
|
mov r2, #0
|
|
bl MOD62_0222D5F8
|
|
cmp r7, #0
|
|
bne _02230C80
|
|
mov r1, #0xca
|
|
ldr r0, [r4]
|
|
add r2, r4, r6
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r2, r1]
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #1
|
|
bl FUN_02029D84
|
|
add r0, r4, #0
|
|
bl MOD62_0222F0D4
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD62_0222DB78
|
|
_02230C80:
|
|
ldr r0, _02230CB8 ; =0x000005EA
|
|
bl FUN_020054C8
|
|
add r0, r4, #0
|
|
mov r1, #0xff
|
|
add r0, #0xd4
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
ldr r1, _02230CBC ; =0x0000FFFF
|
|
add r0, #0xec
|
|
bl MOD62_0222F208
|
|
_02230C98:
|
|
add r0, r4, #0
|
|
bl MOD62_0222F758
|
|
add r0, r4, #0
|
|
bl MOD62_0222E990
|
|
add r0, r4, #0
|
|
bl MOD62_0222E754
|
|
add r0, r4, #0
|
|
bl MOD62_0222ECD4
|
|
mov r0, #1
|
|
add sp, #0xa4
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02230CB8: .word 0x000005EA
|
|
_02230CBC: .word 0x0000FFFF
|
|
thumb_func_end MOD62_022303AC
|
|
|
|
thumb_func_start MOD62_02230CC0
|
|
MOD62_02230CC0: ; 0x02230CC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _02230CD8
|
|
cmp r1, #1
|
|
beq _02230CDC
|
|
cmp r1, #2
|
|
beq _02230CEC
|
|
b _02230D26
|
|
_02230CD8:
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
_02230CDC:
|
|
bl MOD62_0222F2A8
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230D26
|
|
_02230CEC:
|
|
bl FUN_0200E308
|
|
cmp r0, #1
|
|
bne _02230D26
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
bl FUN_02019178
|
|
add r0, r4, #0
|
|
bl MOD62_0222ED04
|
|
add r0, r4, #0
|
|
bl MOD62_0222E77C
|
|
add r0, r4, #0
|
|
bl MOD62_0222F75C
|
|
add r0, r4, #0
|
|
bl MOD62_0222E9D4
|
|
add r0, r4, #0
|
|
bl MOD62_0222E0C8
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl FUN_02085D9C
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_02230D26:
|
|
add r0, r4, #0
|
|
bl MOD62_0222E754
|
|
add r0, r4, #0
|
|
bl MOD62_0222ECD4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_02230CC0
|
|
|
|
thumb_func_start MOD62_02230D38
|
|
MOD62_02230D38: ; 0x02230D38
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #0
|
|
add r4, r5, #4
|
|
lsl r6, r1, #3
|
|
str r0, [sp]
|
|
ldr r0, [r4, r6]
|
|
cmp r0, #0xff
|
|
beq _02230D5C
|
|
ldr r1, [r5]
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
mov r1, #0xa1
|
|
add r2, sp, #0
|
|
bl FUN_02067830
|
|
_02230D5C:
|
|
mov r0, #0xff
|
|
str r0, [r4, r6]
|
|
add r0, r5, #0
|
|
bl MOD62_0222EC28
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD62_02230D38
|
|
|
|
thumb_func_start MOD62_02230D6C
|
|
MOD62_02230D6C: ; 0x02230D6C
|
|
push {r4, lr}
|
|
mov r2, #0xf5
|
|
add r4, r0, #0
|
|
lsl r2, r2, #2
|
|
ldr r1, [r4, r2]
|
|
cmp r1, #0
|
|
beq _02230D84
|
|
cmp r1, #1
|
|
beq _02230DA2
|
|
cmp r1, #2
|
|
beq _02230DB2
|
|
b _02230DC6
|
|
_02230D84:
|
|
sub r2, #0x10
|
|
ldr r1, [r4, r2]
|
|
bl MOD62_02230D38
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #9
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
b _02230DC6
|
|
_02230DA2:
|
|
ldr r0, _02230DD8 ; =0x021C48B8
|
|
ldr r3, [r0, #0x48]
|
|
ldr r0, _02230DDC ; =0x00000CF3
|
|
tst r0, r3
|
|
beq _02230DC6
|
|
add r0, r1, #1
|
|
str r0, [r4, r2]
|
|
b _02230DC6
|
|
_02230DB2:
|
|
mov r1, #0
|
|
mov r2, #0xff
|
|
add r3, r1, #0
|
|
bl MOD62_0222F8D4
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
_02230DC6:
|
|
add r0, r4, #0
|
|
bl MOD62_0222E754
|
|
add r0, r4, #0
|
|
bl MOD62_0222ECD4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
nop
|
|
_02230DD8: .word 0x021C48B8
|
|
_02230DDC: .word 0x00000CF3
|
|
thumb_func_end MOD62_02230D6C
|
|
|
|
thumb_func_start MOD62_02230DE0
|
|
MOD62_02230DE0: ; 0x02230DE0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #3
|
|
bls _02230DF0
|
|
b _02230F18
|
|
_02230DF0:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02230DFC: ; jump table
|
|
.short _02230E04 - _02230DFC - 2 ; case 0
|
|
.short _02230E46 - _02230DFC - 2 ; case 1
|
|
.short _02230ED0 - _02230DFC - 2 ; case 2
|
|
.short _02230EE0 - _02230DFC - 2 ; case 3
|
|
_02230E04:
|
|
sub r0, #0xe0
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x19
|
|
bl FUN_0200C6C4
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x14
|
|
bl FUN_0200C6C4
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_0200C5C0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #0xa
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #1
|
|
bl FUN_0200C644
|
|
mov r0, #0xf5
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
add r1, r1, #1
|
|
str r1, [r4, r0]
|
|
_02230E46:
|
|
mov r0, #0xf2
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl MOD62_0222F9B4
|
|
cmp r0, #1
|
|
bne _02230E66
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl MOD62_0222FA40
|
|
ldr r0, _02230F28 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
b _02230F18
|
|
_02230E66:
|
|
ldr r0, _02230F2C ; =0x021C48B8
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _02230EA4
|
|
mov r2, #0xf1
|
|
lsl r2, r2, #2
|
|
ldr r1, [r4, r2]
|
|
add r2, r2, #4
|
|
ldr r2, [r4, r2]
|
|
add r0, r4, #0
|
|
bl MOD62_0222EC54
|
|
mov r1, #1
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl MOD62_0222FA40
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #0xb
|
|
bl MOD62_0222EE78
|
|
mov r0, #0xf5
|
|
mov r1, #2
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
ldr r0, _02230F28 ; =0x000005DC
|
|
bl FUN_020054C8
|
|
b _02230F18
|
|
_02230EA4:
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _02230F18
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C644
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl MOD62_0222FA40
|
|
mov r0, #0xf5
|
|
mov r1, #3
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
ldr r0, _02230F30 ; =0x000005DD
|
|
bl FUN_020054C8
|
|
b _02230F18
|
|
_02230ED0:
|
|
ldr r1, _02230F2C ; =0x021C48B8
|
|
ldr r2, [r1, #0x48]
|
|
ldr r1, _02230F34 ; =0x00000CF3
|
|
tst r1, r2
|
|
beq _02230F18
|
|
mov r1, #3
|
|
str r1, [r4, r0]
|
|
b _02230F18
|
|
_02230EE0:
|
|
sub r0, #0xe0
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x14
|
|
bl FUN_0200C6C4
|
|
mov r0, #0xbe
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0x19
|
|
bl FUN_0200C6C4
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
mov r2, #0xff
|
|
add r3, r1, #0
|
|
bl MOD62_0222F8D4
|
|
mov r0, #0xbd
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
mov r1, #0
|
|
bl FUN_0200C5C0
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
mov r1, #7
|
|
bl MOD62_0222EE78
|
|
_02230F18:
|
|
add r0, r4, #0
|
|
bl MOD62_0222E754
|
|
add r0, r4, #0
|
|
bl MOD62_0222ECD4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02230F28: .word 0x000005DC
|
|
_02230F2C: .word 0x021C48B8
|
|
_02230F30: .word 0x000005DD
|
|
_02230F34: .word 0x00000CF3
|
|
thumb_func_end MOD62_02230DE0
|
|
|
|
thumb_func_start MOD62_02230F38
|
|
MOD62_02230F38: ; 0x02230F38
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end MOD62_02230F38
|
|
|
|
thumb_func_start MOD62_02230F3C
|
|
MOD62_02230F3C: ; 0x02230F3C
|
|
push {r3, lr}
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_02015F1C
|
|
bl FUN_0201E6D8
|
|
bl FUN_0201E740
|
|
mov r2, #1
|
|
lsl r2, r2, #0x1a
|
|
ldr r1, [r2]
|
|
ldr r0, _02230F68 ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _02230F6C ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
_02230F68: .word 0xFFFFE0FF
|
|
_02230F6C: .word 0x04001000
|
|
thumb_func_end MOD62_02230F3C
|
|
|
|
thumb_func_start MOD62_02230F70
|
|
MOD62_02230F70: ; 0x02230F70
|
|
push {r3, lr}
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
bl FUN_02015F1C
|
|
pop {r3, pc}
|
|
thumb_func_end MOD62_02230F70
|
|
|
|
thumb_func_start MOD62_02230F80
|
|
MOD62_02230F80: ; 0x02230F80
|
|
push {r4, r5, lr}
|
|
sub sp, #0xfc
|
|
add r4, r0, #0
|
|
bl FUN_0201E6D8
|
|
ldr r5, _022310B8 ; =0x02231238
|
|
add r3, sp, #0x10
|
|
mov r2, #5
|
|
_02230F90:
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02230F90
|
|
add r0, sp, #0x10
|
|
bl FUN_0201E66C
|
|
mov r1, #6
|
|
mov r2, #2
|
|
mov r0, #0
|
|
lsl r1, r1, #0x18
|
|
lsl r2, r2, #0x12
|
|
bl MIi_CpuClear32
|
|
mov r1, #0x62
|
|
mov r2, #2
|
|
mov r0, #0
|
|
lsl r1, r1, #0x14
|
|
lsl r2, r2, #0x10
|
|
bl MIi_CpuClear32
|
|
mov r1, #0x19
|
|
mov r2, #1
|
|
mov r0, #0
|
|
lsl r1, r1, #0x16
|
|
lsl r2, r2, #0x12
|
|
bl MIi_CpuClear32
|
|
mov r1, #0x66
|
|
mov r2, #2
|
|
mov r0, #0
|
|
lsl r1, r1, #0x14
|
|
lsl r2, r2, #0x10
|
|
bl MIi_CpuClear32
|
|
ldr r5, _022310BC ; =0x02231210
|
|
add r3, sp, #0
|
|
add r2, r3, #0
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
add r0, r2, #0
|
|
bl FUN_02016BBC
|
|
ldr r5, _022310C0 ; =0x02231294
|
|
add r3, sp, #0xa8
|
|
mov r2, #0xa
|
|
_02230FF0:
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02230FF0
|
|
ldr r0, [r5]
|
|
mov r1, #1
|
|
str r0, [r3]
|
|
add r0, r4, #0
|
|
add r2, sp, #0xa8
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r2, sp, #0xc4
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
add r2, sp, #0xe0
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl FUN_02018744
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl FUN_02018744
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl FUN_02018744
|
|
ldr r1, _022310C4 ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
mov r0, #1
|
|
orr r2, r0
|
|
strh r2, [r1]
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r5, _022310C8 ; =0x022312E8
|
|
add r3, sp, #0x38
|
|
mov r2, #0xe
|
|
_02231052:
|
|
ldmia r5!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _02231052
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
add r2, sp, #0x38
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
add r2, sp, #0x54
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
add r2, sp, #0x70
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
add r2, sp, #0x8c
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl FUN_02018744
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
bl FUN_02018744
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
bl FUN_02018744
|
|
add r0, r4, #0
|
|
mov r1, #7
|
|
bl FUN_02018744
|
|
mov r0, #4
|
|
mov r1, #0
|
|
bl FUN_0201E74C
|
|
add sp, #0xfc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_022310B8: .word 0x02231238
|
|
_022310BC: .word 0x02231210
|
|
_022310C0: .word 0x02231294
|
|
_022310C4: .word 0x04000008
|
|
_022310C8: .word 0x022312E8
|
|
thumb_func_end MOD62_02230F80
|
|
|
|
thumb_func_start MOD62_022310CC
|
|
MOD62_022310CC: ; 0x022310CC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020081C4
|
|
bl FUN_0201C30C
|
|
bl FUN_0200BC30
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FUN_0200372C
|
|
add r4, #0xe4
|
|
ldr r0, [r4]
|
|
bl FUN_0201AB60
|
|
ldr r3, _02231104 ; =0x027E0000
|
|
ldr r1, _02231108 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r4, pc}
|
|
nop
|
|
_02231104: .word 0x027E0000
|
|
_02231108: .word 0x00003FF8
|
|
thumb_func_end MOD62_022310CC
|
|
|
|
.section .rodata
|
|
; 0x0223110C
|
|
.byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
|
|
.byte 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x13, 0x00, 0x17, 0x00
|
|
.byte 0x4B, 0x00, 0x17, 0x00, 0x13, 0x00, 0x2F, 0x00, 0x4B, 0x00, 0x2F, 0x00, 0x13, 0x00, 0x47, 0x00
|
|
.byte 0x4B, 0x00, 0x47, 0x00, 0x13, 0x00, 0x5F, 0x00, 0x4B, 0x00, 0x5F, 0x00, 0x88, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xF0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x17, 0x00
|
|
.byte 0x14, 0x00, 0x2F, 0x00, 0x14, 0x00, 0x47, 0x00, 0x14, 0x00, 0x5F, 0x00, 0x4C, 0x00, 0x17, 0x00
|
|
.byte 0x4C, 0x00, 0x2F, 0x00, 0x4C, 0x00, 0x47, 0x00, 0x4C, 0x00, 0x5F, 0x00, 0x1B, 0x00, 0x7C, 0x00
|
|
.byte 0x43, 0x00, 0x7C, 0x00, 0x20, 0x00, 0xAB, 0x00, 0x68, 0x00, 0xAB, 0x00, 0xC0, 0x00, 0xAB, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0x0D, 0x00, 0x0A, 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x0C, 0x00
|
|
.byte 0x1C, 0x00, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0xB5, 0xFA, 0x22, 0x02, 0xAD, 0x03, 0x23, 0x02, 0xC1, 0x0C, 0x23, 0x02
|
|
.byte 0x6D, 0x0D, 0x23, 0x02, 0xE1, 0x0D, 0x23, 0x02, 0x39, 0x0F, 0x23, 0x02, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
.byte 0x60, 0x00, 0x00, 0x00, 0x10, 0x20, 0x08, 0x18, 0x10, 0x20, 0x40, 0x50, 0x28, 0x38, 0x08, 0x18
|
|
.byte 0x28, 0x38, 0x40, 0x50, 0x40, 0x50, 0x08, 0x18, 0x40, 0x50, 0x40, 0x50, 0x58, 0x68, 0x08, 0x18
|
|
.byte 0x58, 0x68, 0x40, 0x50, 0x68, 0x80, 0x08, 0x30, 0x68, 0x80, 0x38, 0x60, 0xA8, 0xBC, 0x12, 0x4D
|
|
.byte 0xA8, 0xBC, 0x61, 0x9C, 0xA8, 0xBC, 0xB2, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x01, 0x00, 0x02, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x0F, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x3D, 0xF9, 0x22, 0x02, 0x01, 0x00, 0x00, 0x00, 0x05, 0xF9, 0x22, 0x02, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x4D, 0xF9, 0x22, 0x02, 0x03, 0x00, 0x00, 0x00, 0x71, 0xF9, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x81, 0xF9, 0x22, 0x02
|
|
|
|
.section .sinit
|
|
.word MOD62_0222D5C0
|