mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-24 01:34:29 -05:00
10421 lines
183 KiB
ArmAsm
10421 lines
183 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
.section .text
|
|
.balign 4, 0
|
|
|
|
thumb_func_start MOD81_02237E40
|
|
MOD81_02237E40: ; 0x02237E40
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
bne _02237E50
|
|
b _02237FC8
|
|
_02237E50:
|
|
mov r0, #3
|
|
mov r1, #0x39
|
|
lsl r2, r0, #0xf
|
|
bl FUN_0201681C
|
|
mov r0, #3
|
|
mov r1, #0x3a
|
|
lsl r2, r0, #0xf
|
|
bl FUN_0201681C
|
|
bl MOD81_02238858
|
|
ldr r1, _02237FD0 ; =0x00000492
|
|
mov r0, #3
|
|
mov r2, #1
|
|
bl FUN_0200433C
|
|
mov r1, #0x55
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
mov r2, #0x39
|
|
bl FUN_02006268
|
|
add r4, r0, #0
|
|
bne _02237E84
|
|
b _02237FC2
|
|
_02237E84:
|
|
add r0, r5, #0
|
|
bl FUN_0200628C
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
mov r0, #0x39
|
|
bl FUN_02016B94
|
|
str r0, [r4, #8]
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
mov r1, #0x39
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x14]
|
|
ldr r2, _02237FD4 ; =0x00000137
|
|
mov r0, #0
|
|
mov r1, #0x1a
|
|
mov r3, #0x39
|
|
bl FUN_0200A86C
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0x39
|
|
bl FUN_0200AA80
|
|
str r0, [r4, #0xc]
|
|
ldr r2, [r4]
|
|
ldr r0, [r2, #0x10]
|
|
cmp r0, #1
|
|
beq _02237ECC
|
|
cmp r0, #2
|
|
beq _02237EFE
|
|
cmp r0, #4
|
|
beq _02237F0A
|
|
b _02237F22
|
|
_02237ECC:
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, [r2]
|
|
mov r1, #0
|
|
bl FUN_0200ACF8
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, [r2, #4]
|
|
mov r1, #1
|
|
bl FUN_0200ACF8
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, [r2, #8]
|
|
mov r1, #2
|
|
bl FUN_0200ABC0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, #4]
|
|
bl MOD81_02237FE8
|
|
mov r1, #0x52
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
b _02237F22
|
|
_02237EFE:
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, [r2]
|
|
mov r1, #0
|
|
bl FUN_0200ACF8
|
|
b _02237F22
|
|
_02237F0A:
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, [r2, #4]
|
|
mov r1, #1
|
|
bl FUN_0200ACF8
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, #4]
|
|
bl MOD81_02237FE8
|
|
mov r1, #0x52
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
_02237F22:
|
|
bl FUN_020B0FC0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #0x7f
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r3, #0x20
|
|
str r3, [sp, #0xc]
|
|
mov r1, #0x39
|
|
str r1, [sp, #0x10]
|
|
mov r1, #0x80
|
|
add r2, r0, #0
|
|
bl FUN_02009EAC
|
|
add r1, r4, #0
|
|
mov r0, #0x40
|
|
add r1, #0x1c
|
|
mov r2, #0x39
|
|
bl FUN_02008C9C
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
mov r2, #0x3a
|
|
add r0, #0x1c
|
|
mov r1, #0
|
|
lsl r2, r2, #0xe
|
|
bl FUN_02008D24
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
mov r1, #0x53
|
|
lsl r1, r1, #2
|
|
strh r0, [r4, r1]
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
ldr r0, [r0, #4]
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
ldr r1, _02237FD8 ; =0x0000014E
|
|
strh r0, [r4, r1]
|
|
mov r0, #0
|
|
add r1, r1, #2
|
|
str r0, [r4, r1]
|
|
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, _02237FDC ; =0xFFFFE0FF
|
|
and r1, r0
|
|
str r1, [r2]
|
|
ldr r2, _02237FE0 ; =0x04001000
|
|
ldr r1, [r2]
|
|
and r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _02237FE4 ; =MOD81_022380F4
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl FUN_0200CA7C
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #0
|
|
add r1, #0xc
|
|
str r0, [r4, r1]
|
|
_02237FC2:
|
|
add sp, #0x14
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_02237FC8:
|
|
mov r0, #0
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_02237FD0: .word 0x00000492
|
|
_02237FD4: .word 0x00000137
|
|
_02237FD8: .word 0x0000014E
|
|
_02237FDC: .word 0xFFFFE0FF
|
|
_02237FE0: .word 0x04001000
|
|
_02237FE4: .word MOD81_022380F4
|
|
thumb_func_end MOD81_02237E40
|
|
|
|
thumb_func_start MOD81_02237FE8
|
|
MOD81_02237FE8: ; 0x02237FE8
|
|
push {r3, lr}
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
mov r1, #0x1c
|
|
bl FUN_02068678
|
|
cmp r0, #0
|
|
bne _02238000
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02238000:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD81_02237FE8
|
|
|
|
thumb_func_start MOD81_02238004
|
|
MOD81_02238004: ; 0x02238004
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl OS_DisableInterrupts
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
mov r0, #0x51
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl FUN_0200CAB4
|
|
bl FUN_02033ED0
|
|
ldr r0, [r4, #0xc]
|
|
bl FUN_0200AB18
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_0200A8B8
|
|
ldr r0, [r4, #0x14]
|
|
bl FUN_02021A20
|
|
ldr r0, [r4, #8]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #0x18]
|
|
bl FUN_0201FD58
|
|
bl FUN_02009FA0
|
|
add r0, r5, #0
|
|
bl FUN_0200627C
|
|
mov r0, #0x39
|
|
bl FUN_020168D0
|
|
mov r0, #0x3a
|
|
bl FUN_020168D0
|
|
add r0, r6, #0
|
|
bl OS_RestoreInterrupts
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238004
|
|
|
|
thumb_func_start MOD81_02238064
|
|
MOD81_02238064: ; 0x02238064
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
bl FUN_02006278
|
|
add r4, r0, #0
|
|
ldr r3, [r4, #4]
|
|
cmp r3, #7
|
|
bhs _022380E0
|
|
ldr r1, [r4]
|
|
ldr r6, _022380E4 ; =0x0223CF90
|
|
lsl r2, r3, #4
|
|
ldr r1, [r1, #0x10]
|
|
ldr r6, [r6, r2]
|
|
tst r1, r6
|
|
beq _022380D0
|
|
mov r1, #0x15
|
|
lsl r1, r1, #4
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0
|
|
bne _02238098
|
|
ldr r1, _022380E8 ; =0x0223CF84
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
mov r1, #0x15
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
_02238098:
|
|
ldr r2, [r4, #4]
|
|
mov r0, #0x15
|
|
lsl r3, r2, #4
|
|
ldr r2, _022380EC ; =0x0223CF88
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r2, [r2, r3]
|
|
add r1, r5, #0
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _022380D8
|
|
ldr r1, [r4, #4]
|
|
mov r0, #0x15
|
|
lsl r2, r1, #4
|
|
ldr r1, _022380F0 ; =0x0223CF8C
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
mov r0, #0x15
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
str r1, [r5]
|
|
b _022380D8
|
|
_022380D0:
|
|
add r0, r3, #1
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_022380D8:
|
|
bl MOD81_02238864
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_022380E0:
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_022380E4: .word 0x0223CF90
|
|
_022380E8: .word 0x0223CF84
|
|
_022380EC: .word 0x0223CF88
|
|
_022380F0: .word 0x0223CF8C
|
|
thumb_func_end MOD81_02238064
|
|
|
|
thumb_func_start MOD81_022380F4
|
|
MOD81_022380F4: ; 0x022380F4
|
|
push {r3, lr}
|
|
ldr r0, [r1, #0x18]
|
|
bl FUN_0201FDEC
|
|
bl FUN_02009F80
|
|
ldr r3, _02238110 ; =0x027E0000
|
|
ldr r1, _02238114 ; =0x00003FF8
|
|
mov r0, #1
|
|
ldr r2, [r3, r1]
|
|
orr r0, r2
|
|
str r0, [r3, r1]
|
|
pop {r3, pc}
|
|
nop
|
|
_02238110: .word 0x027E0000
|
|
_02238114: .word 0x00003FF8
|
|
thumb_func_end MOD81_022380F4
|
|
|
|
thumb_func_start MOD81_02238118
|
|
MOD81_02238118: ; 0x02238118
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
mov r0, #0x39
|
|
add r6, r1, #0
|
|
add r1, r0, #0
|
|
add r1, #0xc7
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
ldr r0, _022381DC ; =0x00000000
|
|
str r0, [r5]
|
|
beq _022381D4
|
|
mov r0, #0x5d
|
|
mov r1, #6
|
|
add r2, sp, #4
|
|
mov r3, #0x39
|
|
bl FUN_02006C08
|
|
add r7, r0, #0
|
|
beq _02238152
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x60
|
|
bl MIi_CpuClear16
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
_02238152:
|
|
add r1, r4, #0
|
|
mov r0, #0
|
|
add r1, #0xec
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xe8
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xf0
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xf4
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xe4
|
|
str r5, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xf8
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xfc
|
|
str r6, [r1]
|
|
add r3, r4, #0
|
|
add r2, r0, #0
|
|
_02238182:
|
|
add r1, r3, #0
|
|
add r1, #0xc4
|
|
add r0, r0, #1
|
|
add r3, r3, #4
|
|
str r2, [r1]
|
|
cmp r0, #8
|
|
blt _02238182
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
ldr r0, _022381E0 ; =0x04000050
|
|
mov r1, #4
|
|
mov r2, #0xc
|
|
mov r3, #0x10
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
ldr r0, _022381E4 ; =0x04001050
|
|
mov r1, #4
|
|
mov r2, #0xc
|
|
mov r3, #0x10
|
|
bl G2x_SetBlendAlpha_
|
|
ldr r0, _022381E8 ; =MOD81_02238248
|
|
add r1, r4, #0
|
|
mov r2, #0x14
|
|
bl FUN_0200CA44
|
|
add r1, r4, #0
|
|
add r1, #0xc0
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _022381D4
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
_022381D4:
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_022381DC: .word 0x00000000
|
|
_022381E0: .word 0x04000050
|
|
_022381E4: .word 0x04001050
|
|
_022381E8: .word MOD81_02238248
|
|
thumb_func_end MOD81_02238118
|
|
|
|
thumb_func_start MOD81_022381EC
|
|
MOD81_022381EC: ; 0x022381EC
|
|
add r1, r0, #0
|
|
add r1, #0xe4
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
cmp r1, #1
|
|
bne _022381FE
|
|
mov r1, #1
|
|
add r0, #0xe8
|
|
str r1, [r0]
|
|
_022381FE:
|
|
bx lr
|
|
thumb_func_end MOD81_022381EC
|
|
|
|
thumb_func_start MOD81_02238200
|
|
MOD81_02238200: ; 0x02238200
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
bne _02238246
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_02238212:
|
|
add r0, r5, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02238224
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
bl MOD81_0223840C
|
|
_02238224:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #8
|
|
blt _02238212
|
|
add r0, r6, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
bl FUN_0200CAB4
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
_02238246:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_02238200
|
|
|
|
thumb_func_start MOD81_02238248
|
|
MOD81_02238248: ; 0x02238248
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _022382C6
|
|
add r0, r4, #0
|
|
add r0, #0xf0
|
|
ldr r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0xf0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xf0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bgt _02238284
|
|
ldr r0, _0223832C ; =0x000006AE
|
|
bl FUN_020054C8
|
|
add r0, r4, #0
|
|
mov r1, #0x1e
|
|
add r0, #0xf0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
bl MOD81_02238358
|
|
_02238284:
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02238328
|
|
bl GX_BeginLoadBGExtPltt
|
|
bl GXS_BeginLoadBGExtPltt
|
|
add r0, r4, #0
|
|
mov r1, #0x60
|
|
bl DC_FlushRange
|
|
mov r1, #6
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GX_LoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GXS_LoadBGExtPltt
|
|
bl GX_EndLoadBGExtPltt
|
|
bl GXS_EndLoadBGExtPltt
|
|
mov r0, #0
|
|
add r4, #0xec
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_022382C6:
|
|
add r0, r4, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02238308
|
|
bl GX_BeginLoadBGExtPltt
|
|
bl GXS_BeginLoadBGExtPltt
|
|
add r0, r4, #0
|
|
mov r1, #0x60
|
|
bl DC_FlushRange
|
|
mov r1, #6
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GX_LoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GXS_LoadBGExtPltt
|
|
bl GX_EndLoadBGExtPltt
|
|
bl GXS_EndLoadBGExtPltt
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xec
|
|
str r1, [r0]
|
|
_02238308:
|
|
add r0, r4, #0
|
|
add r0, #0xf4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _02238328
|
|
add r0, r4, #0
|
|
add r0, #0xe4
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
_02238328:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223832C: .word 0x000006AE
|
|
thumb_func_end MOD81_02238248
|
|
|
|
thumb_func_start MOD81_02238330
|
|
MOD81_02238330: ; 0x02238330
|
|
push {r3, r4}
|
|
cmp r1, #0
|
|
blt _02238340
|
|
cmp r1, #0x60
|
|
bge _02238340
|
|
mov r4, #0
|
|
lsl r1, r1, #1
|
|
strh r4, [r0, r1]
|
|
_02238340:
|
|
cmp r2, #0
|
|
blt _0223834C
|
|
cmp r2, #0x60
|
|
bge _0223834C
|
|
lsl r1, r2, #1
|
|
strh r3, [r0, r1]
|
|
_0223834C:
|
|
mov r1, #1
|
|
add r0, #0xec
|
|
str r1, [r0]
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238330
|
|
|
|
thumb_func_start MOD81_02238358
|
|
MOD81_02238358: ; 0x02238358
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0xf8
|
|
ldr r0, [r0]
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _02238404
|
|
mov r0, #0x39
|
|
mov r1, #0x18
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02238404
|
|
add r0, r5, #0
|
|
str r5, [r4]
|
|
add r0, #0xfc
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
bne _0223838A
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
b _0223838C
|
|
_0223838A:
|
|
mov r0, #0xf
|
|
_0223838C:
|
|
str r0, [r4, #4]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #2
|
|
str r0, [r4, #8]
|
|
add r0, r5, #0
|
|
add r0, #0xf8
|
|
ldr r0, [r0]
|
|
add r1, r4, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
add r0, #0xfc
|
|
ldr r0, [r0]
|
|
mov r2, #0xa
|
|
str r0, [r4, #0x14]
|
|
ldr r0, _02238408 ; =MOD81_0223843C
|
|
bl FUN_0200CA44
|
|
add r1, r5, #0
|
|
add r1, #0xf8
|
|
ldr r1, [r1]
|
|
lsl r1, r1, #2
|
|
add r1, r5, r1
|
|
add r1, #0xc4
|
|
str r0, [r1]
|
|
add r0, r5, #0
|
|
add r0, #0xf8
|
|
ldr r0, [r0]
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _022383FE
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xf8
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r5, #0
|
|
add r0, #0xf8
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0xf8
|
|
ldr r0, [r0]
|
|
cmp r0, #8
|
|
blt _02238404
|
|
mov r0, #0
|
|
add r5, #0xf8
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
_022383FE:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02238404:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02238408: .word MOD81_0223843C
|
|
thumb_func_end MOD81_02238358
|
|
|
|
thumb_func_start MOD81_0223840C
|
|
MOD81_0223840C: ; 0x0223840C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r5, #0
|
|
lsl r4, r1, #2
|
|
add r6, #0xc4
|
|
ldr r0, [r6, r4]
|
|
cmp r0, #0
|
|
beq _0223843A
|
|
bl FUN_0201B6C8
|
|
bl FreeToHeap
|
|
ldr r0, [r6, r4]
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r6, r4]
|
|
add r0, r5, #0
|
|
add r0, #0xf4
|
|
ldr r0, [r0]
|
|
add r5, #0xf4
|
|
sub r0, r0, #1
|
|
str r0, [r5]
|
|
_0223843A:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_0223840C
|
|
|
|
thumb_func_start MOD81_0223843C
|
|
MOD81_0223843C: ; 0x0223843C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, r0, #1
|
|
str r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
cmp r1, r0
|
|
blt _022384A4
|
|
mov r3, #0
|
|
str r3, [r4, #0xc]
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #1
|
|
bne _0223847C
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4]
|
|
add r2, r1, #1
|
|
cmp r2, #0xf
|
|
blt _0223846E
|
|
bl MOD81_02238330
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #0x10]
|
|
bl MOD81_0223840C
|
|
pop {r4, pc}
|
|
_0223846E:
|
|
ldr r3, _022384A8 ; =0x00007FFF
|
|
bl MOD81_02238330
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
_0223847C:
|
|
ldr r2, [r4, #4]
|
|
ldr r0, [r4]
|
|
cmp r2, #0
|
|
bge _02238496
|
|
add r1, r2, #0
|
|
add r2, r2, #1
|
|
bl MOD81_02238330
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #0x10]
|
|
bl MOD81_0223840C
|
|
pop {r4, pc}
|
|
_02238496:
|
|
ldr r3, _022384A8 ; =0x00007FFF
|
|
add r1, r2, #1
|
|
bl MOD81_02238330
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #4]
|
|
_022384A4:
|
|
pop {r4, pc}
|
|
nop
|
|
_022384A8: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223843C
|
|
|
|
thumb_func_start MOD81_022384AC
|
|
MOD81_022384AC: ; 0x022384AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
add r6, r1, #0
|
|
mov r0, #0x39
|
|
mov r1, #0x24
|
|
add r7, r2, #0
|
|
str r3, [sp, #4]
|
|
ldr r5, [sp, #0x28]
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
ldr r0, _0223850C ; =0x00000001
|
|
str r0, [r5]
|
|
beq _02238504
|
|
ldr r1, [sp]
|
|
str r1, [r4]
|
|
str r6, [r4, #8]
|
|
ldr r1, [sp, #4]
|
|
str r7, [r4, #0xc]
|
|
str r1, [r4, #0x10]
|
|
ldr r1, [sp, #0x20]
|
|
str r1, [r4, #0x14]
|
|
cmp r6, r7
|
|
bge _022384E0
|
|
mov r0, #0
|
|
_022384E0:
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [sp, #0x24]
|
|
mov r2, #0
|
|
str r0, [r4, #0x1c]
|
|
str r5, [r4, #4]
|
|
ldr r0, _02238510 ; =MOD81_02238514
|
|
add r1, r4, #0
|
|
str r2, [r5]
|
|
bl FUN_0200CA60
|
|
str r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bne _02238504
|
|
mov r0, #1
|
|
str r0, [r5]
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02238504:
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0223850C: .word 0x00000001
|
|
_02238510: .word MOD81_02238514
|
|
thumb_func_end MOD81_022384AC
|
|
|
|
thumb_func_start MOD81_02238514
|
|
MOD81_02238514: ; 0x02238514
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x10]
|
|
mul r1, r0
|
|
asr r2, r1, #0xc
|
|
asr r1, r2, #4
|
|
lsr r1, r1, #0x1b
|
|
add r1, r2, r1
|
|
asr r2, r1, #5
|
|
ldr r1, [r4, #0x18]
|
|
cmp r1, #0
|
|
beq _02238536
|
|
cmp r1, #1
|
|
beq _0223854C
|
|
b _02238560
|
|
_02238536:
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r0, r2
|
|
cmp r0, r1
|
|
bge _02238542
|
|
str r0, [r4, #8]
|
|
b _02238560
|
|
_02238542:
|
|
str r1, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
b _02238560
|
|
_0223854C:
|
|
ldr r1, [r4, #0xc]
|
|
sub r0, r0, r2
|
|
cmp r0, r1
|
|
ble _02238558
|
|
str r0, [r4, #8]
|
|
b _02238560
|
|
_02238558:
|
|
str r1, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
_02238560:
|
|
add r0, r4, #0
|
|
bl MOD81_02238588
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0223857C
|
|
add r0, r4, #0
|
|
bl MOD81_02238898
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
pop {r3, r4, r5, pc}
|
|
_0223857C:
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238514
|
|
|
|
thumb_func_start MOD81_02238588
|
|
MOD81_02238588: ; 0x02238588
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
add r2, sp, #4
|
|
str r0, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r3, #0x80
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4, #0x1c]
|
|
lsl r1, r0, #2
|
|
ldr r0, _022385CC ; =0x0223CF6C
|
|
ldr r0, [r0, r1]
|
|
mov r1, #2
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
bl FUN_02017BD0
|
|
ldr r0, [r4, #0x1c]
|
|
add r2, sp, #4
|
|
lsl r1, r0, #2
|
|
ldr r0, _022385CC ; =0x0223CF6C
|
|
mov r3, #0x80
|
|
ldr r0, [r0, r1]
|
|
mov r1, #6
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
bl FUN_02017BD0
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_022385CC: .word 0x0223CF6C
|
|
thumb_func_end MOD81_02238588
|
|
|
|
thumb_func_start MOD81_022385D0
|
|
MOD81_022385D0: ; 0x022385D0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x44
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x58]
|
|
add r4, r1, #0
|
|
str r2, [sp, #0x14]
|
|
str r3, [sp, #0x18]
|
|
cmp r0, #0
|
|
beq _022385E8
|
|
mov r6, #0x19
|
|
lsl r6, r6, #8
|
|
b _022385EC
|
|
_022385E8:
|
|
mov r6, #0x32
|
|
lsl r6, r6, #6
|
|
_022385EC:
|
|
mov r0, #0x39
|
|
add r1, r6, #0
|
|
bl AllocFromHeapAtEnd
|
|
add r7, r0, #0
|
|
beq _02238690
|
|
ldr r3, _022386B8 ; =0x0223CF74
|
|
add r2, sp, #0x24
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
cmp r4, #0
|
|
ldr r0, [r5]
|
|
bne _0223860E
|
|
ldr r4, [r0]
|
|
b _02238610
|
|
_0223860E:
|
|
ldr r4, [r0, #4]
|
|
_02238610:
|
|
add r0, r4, #0
|
|
bl FUN_02066A6C
|
|
str r0, [sp, #0x20]
|
|
add r0, sp, #0x34
|
|
add r1, r4, #0
|
|
mov r2, #2
|
|
bl FUN_02068B70
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl FUN_020672BC
|
|
str r0, [sp, #0x1c]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
lsl r0, r0, #0x10
|
|
ldr r1, [sp, #0x58]
|
|
lsr r0, r0, #0x10
|
|
cmp r1, #0
|
|
beq _02238648
|
|
ldr r1, [sp, #0x2c]
|
|
lsl r1, r1, #1
|
|
str r1, [sp, #0x2c]
|
|
_02238648:
|
|
ldr r1, [sp, #0x1c]
|
|
str r7, [sp]
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #0x58]
|
|
mov r2, #0x39
|
|
str r1, [sp, #8]
|
|
mov r1, #2
|
|
str r1, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
add r1, sp, #0x24
|
|
ldrh r0, [r1, #0x10]
|
|
ldrh r1, [r1, #0x12]
|
|
add r3, sp, #0x24
|
|
bl FUN_02012530
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl DC_FlushRange
|
|
ldr r1, [sp, #0x14]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
lsl r1, r1, #0x18
|
|
ldr r0, [r5, #8]
|
|
lsr r1, r1, #0x18
|
|
add r2, r7, #0
|
|
add r3, r6, #0
|
|
bl FUN_02017E14
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r4, #0
|
|
bl FUN_02066A94
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
_02238690:
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #4
|
|
blo _0223869A
|
|
mov r2, #4
|
|
b _0223869C
|
|
_0223869A:
|
|
mov r2, #0
|
|
_0223869C:
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x39
|
|
ldr r3, [sp, #0x18]
|
|
str r0, [sp, #4]
|
|
add r1, sp, #0x24
|
|
ldrh r0, [r1, #0x10]
|
|
ldrh r1, [r1, #0x14]
|
|
lsl r3, r3, #5
|
|
bl FUN_02006930
|
|
add sp, #0x44
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022386B8: .word 0x0223CF74
|
|
thumb_func_end MOD81_022385D0
|
|
|
|
thumb_func_start MOD81_022386BC
|
|
MOD81_022386BC: ; 0x022386BC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
cmp r1, #0
|
|
bne _022386CE
|
|
mov r1, #0xc6
|
|
b _022386DE
|
|
_022386CE:
|
|
mov r0, #0x52
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _022386DC
|
|
mov r1, #0xc7
|
|
b _022386DE
|
|
_022386DC:
|
|
mov r1, #0xc6
|
|
_022386DE:
|
|
mov r0, #0x39
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
mov r2, #0
|
|
add r3, sp, #0x1c
|
|
bl FUN_02006BDC
|
|
add r7, r0, #0
|
|
beq _02238746
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r2, [sp, #0x38]
|
|
add r0, #0xc
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x20
|
|
ldr r3, [sp, #0x3c]
|
|
str r0, [sp, #0x14]
|
|
str r0, [sp, #0x18]
|
|
lsl r1, r4, #0x18
|
|
lsl r2, r2, #0x18
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r5, #8]
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl FUN_02018170
|
|
mov r0, #0xa
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
lsl r0, r6, #0x18
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [sp, #0x3c]
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #8]
|
|
lsl r1, r4, #0x18
|
|
lsl r2, r2, #0x18
|
|
lsl r3, r3, #0x18
|
|
ldr r0, [r5, #8]
|
|
lsr r1, r1, #0x18
|
|
lsr r2, r2, #0x18
|
|
lsr r3, r3, #0x18
|
|
bl FUN_020186B4
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
_02238746:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022386BC
|
|
|
|
thumb_func_start MOD81_0223874C
|
|
MOD81_0223874C: ; 0x0223874C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r3, #0
|
|
mov r0, #0x3a
|
|
add r3, r5, #0
|
|
str r0, [sp]
|
|
add r1, r2, #0
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
add r3, #8
|
|
bl FUN_02006C30
|
|
str r0, [r5]
|
|
mov r0, #0x3a
|
|
add r3, r5, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r6, #0
|
|
mov r2, #1
|
|
add r3, #0xc
|
|
bl FUN_02006C5C
|
|
str r0, [r5, #4]
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223874C
|
|
|
|
thumb_func_start MOD81_02238784
|
|
MOD81_02238784: ; 0x02238784
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _02238796
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
_02238796:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _022387A4
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_022387A4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238784
|
|
|
|
thumb_func_start MOD81_022387A8
|
|
MOD81_022387A8: ; 0x022387A8
|
|
str r2, [r0]
|
|
str r3, [r0, #8]
|
|
ldr r2, [r1, #8]
|
|
str r2, [r0, #0xc]
|
|
ldr r1, [r1, #0xc]
|
|
ldr r2, [sp]
|
|
str r1, [r0, #0x10]
|
|
add r1, r0, #0
|
|
add r1, #0x20
|
|
strb r2, [r1]
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
str r1, [r0, #0x14]
|
|
str r1, [r0, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
bx lr
|
|
thumb_func_end MOD81_022387A8
|
|
|
|
thumb_func_start MOD81_022387C8
|
|
MOD81_022387C8: ; 0x022387C8
|
|
push {r4, lr}
|
|
sub sp, #0x20
|
|
ldr r0, [r0, #0x18]
|
|
str r0, [sp]
|
|
lsl r0, r2, #0xc
|
|
str r0, [sp, #8]
|
|
lsl r0, r3, #0xc
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x28]
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0x39
|
|
str r0, [sp, #0x1c]
|
|
add r0, sp, #0
|
|
bl FUN_0201FF84
|
|
add r4, r0, #0
|
|
beq _02238804
|
|
mov r1, #1
|
|
bl FUN_020200BC
|
|
mov r1, #1
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
bl FUN_020200D8
|
|
_02238804:
|
|
add r0, r4, #0
|
|
add sp, #0x20
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022387C8
|
|
|
|
thumb_func_start MOD81_0223880C
|
|
MOD81_0223880C: ; 0x0223880C
|
|
ldr r0, [r0, #8]
|
|
bx lr
|
|
thumb_func_end MOD81_0223880C
|
|
|
|
thumb_func_start MOD81_02238810
|
|
MOD81_02238810: ; 0x02238810
|
|
ldr r0, [r0, #0xc]
|
|
bx lr
|
|
thumb_func_end MOD81_02238810
|
|
|
|
thumb_func_start MOD81_02238814
|
|
MOD81_02238814: ; 0x02238814
|
|
ldr r0, [r0, #0x10]
|
|
bx lr
|
|
thumb_func_end MOD81_02238814
|
|
|
|
thumb_func_start MOD81_02238818
|
|
MOD81_02238818: ; 0x02238818
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238818
|
|
|
|
thumb_func_start MOD81_02238820
|
|
MOD81_02238820: ; 0x02238820
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238820
|
|
|
|
thumb_func_start MOD81_02238828
|
|
MOD81_02238828: ; 0x02238828
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238828
|
|
|
|
thumb_func_start MOD81_02238830
|
|
MOD81_02238830: ; 0x02238830
|
|
mov r1, #0x53
|
|
lsl r1, r1, #2
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end MOD81_02238830
|
|
|
|
thumb_func_start MOD81_02238838
|
|
MOD81_02238838: ; 0x02238838
|
|
ldr r1, _02238840 ; =0x0000014E
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_02238840: .word 0x0000014E
|
|
thumb_func_end MOD81_02238838
|
|
|
|
thumb_func_start MOD81_02238844
|
|
MOD81_02238844: ; 0x02238844
|
|
ldr r0, [r0]
|
|
ldr r3, _0223884C ; =FUN_02025084
|
|
ldr r0, [r0, #0x14]
|
|
bx r3
|
|
.align 2, 0
|
|
_0223884C: .word FUN_02025084
|
|
thumb_func_end MOD81_02238844
|
|
|
|
thumb_func_start MOD81_02238850
|
|
MOD81_02238850: ; 0x02238850
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238850
|
|
|
|
thumb_func_start MOD81_02238858
|
|
MOD81_02238858: ; 0x02238858
|
|
ldr r0, _02238860 ; =0x0223D3C0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02238860: .word 0x0223D3C0
|
|
thumb_func_end MOD81_02238858
|
|
|
|
thumb_func_start MOD81_02238864
|
|
MOD81_02238864: ; 0x02238864
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _02238890 ; =0x0223D3C0
|
|
ldr r0, [r6]
|
|
cmp r0, #0
|
|
beq _0223888C
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ble _02238886
|
|
ldr r5, _02238894 ; =0x0223D3C4
|
|
_02238876:
|
|
ldr r0, [r5]
|
|
bl FreeToHeap
|
|
ldr r0, [r6]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, r0
|
|
blt _02238876
|
|
_02238886:
|
|
ldr r0, _02238890 ; =0x0223D3C0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
_0223888C:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02238890: .word 0x0223D3C0
|
|
_02238894: .word 0x0223D3C4
|
|
thumb_func_end MOD81_02238864
|
|
|
|
thumb_func_start MOD81_02238898
|
|
MOD81_02238898: ; 0x02238898
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _022388B8 ; =0x0223D3C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0x20
|
|
blt _022388A8
|
|
bl ErrorHandling
|
|
_022388A8:
|
|
ldr r0, _022388B8 ; =0x0223D3C0
|
|
ldr r2, [r0]
|
|
add r1, r2, #1
|
|
str r1, [r0]
|
|
ldr r0, _022388BC ; =0x0223D3C4
|
|
lsl r1, r2, #2
|
|
str r4, [r0, r1]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_022388B8: .word 0x0223D3C0
|
|
_022388BC: .word 0x0223D3C4
|
|
thumb_func_end MOD81_02238898
|
|
|
|
thumb_func_start MOD81_022388C0
|
|
MOD81_022388C0: ; 0x022388C0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x20
|
|
add r5, r2, #0
|
|
str r3, [sp]
|
|
bl AllocFromHeap
|
|
add r6, r0, #0
|
|
beq _02238906
|
|
ldr r3, [sp]
|
|
add r1, r4, #0
|
|
add r2, r5, #0
|
|
bl MOD81_02238CA0
|
|
mov r1, #0x8c
|
|
mov r0, #0x3a
|
|
mul r1, r7
|
|
bl AllocFromHeap
|
|
str r0, [r6, #0x18]
|
|
mov r4, #0
|
|
str r7, [r6, #0x1c]
|
|
cmp r7, #0
|
|
bls _02238906
|
|
add r5, r4, #0
|
|
_022388F6:
|
|
ldr r0, [r6, #0x18]
|
|
add r0, r0, r5
|
|
bl MOD81_02238A38
|
|
add r4, r4, #1
|
|
add r5, #0x8c
|
|
cmp r4, r7
|
|
blo _022388F6
|
|
_02238906:
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022388C0
|
|
|
|
thumb_func_start MOD81_0223890C
|
|
MOD81_0223890C: ; 0x0223890C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x1c]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _0223892C
|
|
add r4, r6, #0
|
|
_0223891A:
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r0, r4
|
|
bl MOD81_02238A6C
|
|
ldr r0, [r5, #0x1c]
|
|
add r6, r6, #1
|
|
add r4, #0x8c
|
|
cmp r6, r0
|
|
blo _0223891A
|
|
_0223892C:
|
|
ldr r0, [r5, #0x18]
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl MOD81_02238D0C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_0223890C
|
|
|
|
thumb_func_start MOD81_02238940
|
|
MOD81_02238940: ; 0x02238940
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x11
|
|
add r2, r1, #0
|
|
bl FUN_020BB1C0
|
|
bl FUN_0201EBA4
|
|
ldr r0, [r5, #0x1c]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _02238976
|
|
add r4, r6, #0
|
|
_0223895E:
|
|
ldr r0, [r5, #0x18]
|
|
add r0, r0, r4
|
|
ldr r1, [r0, #0x64]
|
|
cmp r1, #0
|
|
beq _0223896C
|
|
bl MOD81_02238988
|
|
_0223896C:
|
|
ldr r0, [r5, #0x1c]
|
|
add r6, r6, #1
|
|
add r4, #0x8c
|
|
cmp r6, r0
|
|
blo _0223895E
|
|
_02238976:
|
|
mov r2, #1
|
|
mov r0, #0x12
|
|
add r1, sp, #0
|
|
str r2, [sp]
|
|
bl FUN_020BB1C0
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238940
|
|
|
|
thumb_func_start MOD81_02238988
|
|
MOD81_02238988: ; 0x02238988
|
|
push {r4, lr}
|
|
sub sp, #0x50
|
|
add r4, r0, #0
|
|
add r0, sp, #0x2c
|
|
bl MTX_Identity33_
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238A34 ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #8
|
|
bl MTX_RotX33_
|
|
add r1, sp, #0x2c
|
|
add r0, sp, #8
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238A34 ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #8
|
|
bl MTX_RotY33_
|
|
add r1, sp, #0x2c
|
|
add r0, sp, #8
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238A34 ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #8
|
|
bl MTX_RotZ33_
|
|
add r1, sp, #0x2c
|
|
add r0, sp, #8
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
cmp r0, #0x1f
|
|
beq _02238A20
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
str r0, [sp, #4]
|
|
bl FUN_020B8390
|
|
_02238A20:
|
|
add r1, r4, #0
|
|
add r0, r4, #4
|
|
add r4, #0x74
|
|
add r1, #0x68
|
|
add r2, sp, #0x2c
|
|
add r3, r4, #0
|
|
bl FUN_0201B26C
|
|
add sp, #0x50
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02238A34: .word 0x020FFA38
|
|
thumb_func_end MOD81_02238988
|
|
|
|
thumb_func_start MOD81_02238A38
|
|
MOD81_02238A38: ; 0x02238A38
|
|
mov r1, #0
|
|
str r1, [r0, #0x64]
|
|
add r2, r0, #0
|
|
str r1, [r0]
|
|
add r2, #0x84
|
|
strh r1, [r2]
|
|
mov r2, #0x84
|
|
ldrsh r3, [r0, r2]
|
|
add r2, r0, #0
|
|
add r2, #0x82
|
|
strh r3, [r2]
|
|
mov r2, #0x82
|
|
ldrsh r3, [r0, r2]
|
|
add r2, r0, #0
|
|
add r2, #0x80
|
|
strh r3, [r2]
|
|
mov r2, #1
|
|
lsl r2, r2, #0xc
|
|
str r2, [r0, #0x7c]
|
|
str r2, [r0, #0x78]
|
|
str r2, [r0, #0x74]
|
|
str r1, [r0, #0x70]
|
|
str r1, [r0, #0x6c]
|
|
str r1, [r0, #0x68]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238A38
|
|
|
|
thumb_func_start MOD81_02238A6C
|
|
MOD81_02238A6C: ; 0x02238A6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _02238A80
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
str r0, [r4, #0x64]
|
|
_02238A80:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238A6C
|
|
|
|
thumb_func_start MOD81_02238A84
|
|
MOD81_02238A84: ; 0x02238A84
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r4, [r0, #0x18]
|
|
add r6, r1, #0
|
|
mov r0, #0x8c
|
|
mul r6, r0
|
|
add r7, r2, #0
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r3, [sp, #4]
|
|
add r1, r3, #0
|
|
add r0, r7, #0
|
|
mov r2, #0
|
|
mov r3, #0x3a
|
|
add r5, r4, r6
|
|
bl FUN_02006C98
|
|
str r0, [r4, r6]
|
|
ldr r1, [sp, #4]
|
|
add r0, r7, #0
|
|
bl GetNarcMemberSizeByIdPair
|
|
add r1, r0, #0
|
|
ldr r0, [r4, r6]
|
|
bl DC_FlushRange
|
|
ldr r0, [r4, r6]
|
|
cmp r0, #0
|
|
beq _02238B02
|
|
bl FUN_020BC13C
|
|
str r0, [r5, #0x58]
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r0, r1
|
|
ldr r1, [r1, #0xc]
|
|
add r0, r0, r1
|
|
str r0, [r5, #0x5c]
|
|
ldr r0, [r5]
|
|
bl FUN_020BC0FC
|
|
str r0, [r5, #0x60]
|
|
bl FUN_0201B3C4
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, #0x60]
|
|
bl FUN_0201B3A8
|
|
ldr r1, [r5, #0x5c]
|
|
add r0, r5, #4
|
|
bl FUN_020B80B4
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #0x1f
|
|
str r0, [r5, #0x68]
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [r5, #0x6c]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [r5, #0x70]
|
|
add r0, r5, #0
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [r5, #0x64]
|
|
_02238B02:
|
|
add r0, r5, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD81_02238A84
|
|
|
|
thumb_func_start MOD81_02238B08
|
|
MOD81_02238B08: ; 0x02238B08
|
|
add r2, r0, #0
|
|
add r2, #0x68
|
|
add r3, r1, #0
|
|
ldmia r2!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r3]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B08
|
|
|
|
thumb_func_start MOD81_02238B18
|
|
MOD81_02238B18: ; 0x02238B18
|
|
add r3, r1, #0
|
|
add r2, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0x68
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B18
|
|
|
|
thumb_func_start MOD81_02238B28
|
|
MOD81_02238B28: ; 0x02238B28
|
|
add r2, r0, #0
|
|
add r2, #0x80
|
|
ldrh r2, [r2]
|
|
strh r2, [r1]
|
|
add r2, r0, #0
|
|
add r2, #0x82
|
|
ldrh r2, [r2]
|
|
add r0, #0x84
|
|
strh r2, [r1, #2]
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, #4]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B28
|
|
|
|
thumb_func_start MOD81_02238B40
|
|
MOD81_02238B40: ; 0x02238B40
|
|
ldrh r3, [r1]
|
|
add r2, r0, #0
|
|
add r2, #0x80
|
|
strh r3, [r2]
|
|
add r2, r0, #0
|
|
ldrh r3, [r1, #2]
|
|
add r2, #0x82
|
|
add r0, #0x84
|
|
strh r3, [r2]
|
|
ldrh r1, [r1, #4]
|
|
strh r1, [r0]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B40
|
|
|
|
thumb_func_start MOD81_02238B58
|
|
MOD81_02238B58: ; 0x02238B58
|
|
str r1, [r0, #0x64]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B58
|
|
|
|
thumb_func_start MOD81_02238B5C
|
|
MOD81_02238B5C: ; 0x02238B5C
|
|
push {r3, lr}
|
|
add r2, r0, #0
|
|
add r2, #0x88
|
|
str r1, [r2]
|
|
cmp r1, #0x1f
|
|
ldr r0, [r0, #0x5c]
|
|
beq _02238B76
|
|
mov r2, #0x1f
|
|
mov r1, #0
|
|
lsl r2, r2, #0x10
|
|
bl FUN_020BC02C
|
|
pop {r3, pc}
|
|
_02238B76:
|
|
mov r2, #0x1f
|
|
mov r1, #1
|
|
lsl r2, r2, #0x10
|
|
bl FUN_020BC02C
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238B5C
|
|
|
|
thumb_func_start MOD81_02238B84
|
|
MOD81_02238B84: ; 0x02238B84
|
|
str r1, [r0, #0x74]
|
|
str r1, [r0, #0x78]
|
|
str r1, [r0, #0x7c]
|
|
bx lr
|
|
thumb_func_end MOD81_02238B84
|
|
|
|
thumb_func_start MOD81_02238B8C
|
|
MOD81_02238B8C: ; 0x02238B8C
|
|
push {r3, r4, lr}
|
|
sub sp, #0x4c
|
|
add r4, r0, #0
|
|
add r0, sp, #0x28
|
|
bl MTX_Identity33_
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238C3C ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #4
|
|
bl MTX_RotX33_
|
|
add r1, sp, #0x28
|
|
add r0, sp, #4
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238C3C ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #4
|
|
bl MTX_RotY33_
|
|
add r1, sp, #0x28
|
|
add r0, sp, #4
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrh r0, [r0]
|
|
ldr r3, _02238C3C ; =0x020FFA38
|
|
asr r0, r0, #4
|
|
lsl r2, r0, #1
|
|
lsl r1, r2, #1
|
|
add r2, r2, #1
|
|
lsl r2, r2, #1
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
add r0, sp, #4
|
|
bl MTX_RotZ33_
|
|
add r1, sp, #0x28
|
|
add r0, sp, #4
|
|
add r2, r1, #0
|
|
bl MTX_Concat33
|
|
mov r1, #0
|
|
mov r0, #0x11
|
|
add r2, r1, #0
|
|
bl FUN_020BB1C0
|
|
bl FUN_0201EBA4
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x5c]
|
|
add r4, #0x74
|
|
add r1, #0x68
|
|
add r2, sp, #0x28
|
|
add r3, r4, #0
|
|
bl FUN_0201B6D0
|
|
add r4, r0, #0
|
|
mov r2, #1
|
|
mov r0, #0x12
|
|
add r1, sp, #0
|
|
str r2, [sp]
|
|
bl FUN_020BB1C0
|
|
add r0, r4, #0
|
|
add sp, #0x4c
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_02238C3C: .word 0x020FFA38
|
|
thumb_func_end MOD81_02238B8C
|
|
|
|
thumb_func_start MOD81_02238C40
|
|
MOD81_02238C40: ; 0x02238C40
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r2, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r2]
|
|
add r0, sp, #0
|
|
bl FUN_0201F03C
|
|
add r2, sp, #0
|
|
ldmia r2!, {r0, r1}
|
|
stmia r4!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r4]
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238C40
|
|
|
|
thumb_func_start MOD81_02238C60
|
|
MOD81_02238C60: ; 0x02238C60
|
|
ldr r3, _02238C6C ; =FUN_0201EF90
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
ldr r1, [r2]
|
|
bx r3
|
|
nop
|
|
_02238C6C: .word FUN_0201EF90
|
|
thumb_func_end MOD81_02238C60
|
|
|
|
thumb_func_start MOD81_02238C70
|
|
MOD81_02238C70: ; 0x02238C70
|
|
ldr r3, _02238C7C ; =FUN_0201EFB4
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
ldr r1, [r2]
|
|
bx r3
|
|
nop
|
|
_02238C7C: .word FUN_0201EFB4
|
|
thumb_func_end MOD81_02238C70
|
|
|
|
thumb_func_start MOD81_02238C80
|
|
MOD81_02238C80: ; 0x02238C80
|
|
ldr r3, _02238C8C ; =FUN_0201EE2C
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
ldr r1, [r2]
|
|
bx r3
|
|
nop
|
|
_02238C8C: .word FUN_0201EE2C
|
|
thumb_func_end MOD81_02238C80
|
|
|
|
thumb_func_start MOD81_02238C90
|
|
MOD81_02238C90: ; 0x02238C90
|
|
ldr r3, _02238C9C ; =FUN_0201EEF0
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
ldr r1, [r2]
|
|
bx r3
|
|
nop
|
|
_02238C9C: .word FUN_0201EEF0
|
|
thumb_func_end MOD81_02238C90
|
|
|
|
thumb_func_start MOD81_02238CA0
|
|
MOD81_02238CA0: ; 0x02238CA0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl FUN_0201EB64
|
|
str r0, [r5]
|
|
str r4, [r5, #4]
|
|
str r6, [r5, #8]
|
|
mov r1, #0x4b
|
|
add r2, r5, #0
|
|
str r7, [r5, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r5, #0x10]
|
|
strh r0, [r5, #0x12]
|
|
strh r0, [r5, #0x14]
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5]
|
|
ldr r3, _02238D08 ; =0x00000FA4
|
|
str r0, [sp, #8]
|
|
add r0, r5, #4
|
|
lsl r1, r1, #0xe
|
|
add r2, #0x10
|
|
bl FUN_0201ECA8
|
|
mov r1, #0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x10]
|
|
str r1, [sp, #0xc]
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [r5]
|
|
add r0, sp, #0xc
|
|
bl FUN_0201EC58
|
|
ldr r0, [r5]
|
|
bl FUN_0201EB8C
|
|
mov r1, #0xfa
|
|
ldr r2, [r5]
|
|
mov r0, #0
|
|
lsl r1, r1, #0xe
|
|
bl FUN_0201EC94
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02238D08: .word 0x00000FA4
|
|
thumb_func_end MOD81_02238CA0
|
|
|
|
thumb_func_start MOD81_02238D0C
|
|
MOD81_02238D0C: ; 0x02238D0C
|
|
ldr r3, _02238D14 ; =FUN_0201EB70
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_02238D14: .word FUN_0201EB70
|
|
thumb_func_end MOD81_02238D0C
|
|
|
|
thumb_func_start MOD81_02238D18
|
|
MOD81_02238D18: ; 0x02238D18
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x6c
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02238D60
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0x40]
|
|
mov r0, #0x3a
|
|
bl FUN_02006D98
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
mov r1, #0x3a
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x54]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
mov r1, #0x3a
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x58]
|
|
mov r0, #0
|
|
str r0, [r4, #0x64]
|
|
str r0, [r4, #0x68]
|
|
_02238D60:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_02238D18
|
|
|
|
thumb_func_start MOD81_02238D64
|
|
MOD81_02238D64: ; 0x02238D64
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _02238DC2
|
|
bl MOD81_0223951C
|
|
add r0, r4, #0
|
|
bl MOD81_022395E8
|
|
add r0, r4, #0
|
|
bl MOD81_02239498
|
|
ldr r0, [r4, #0x54]
|
|
bl FUN_02021A20
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_02021A20
|
|
ldr r0, [r4, #0x5c]
|
|
bl MOD81_0223890C
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #1
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #2
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #6
|
|
bl FUN_020178A0
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
bl FUN_02019178
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _02238DB6
|
|
bl FUN_02007534
|
|
_02238DB6:
|
|
ldr r0, [r4, #0xc]
|
|
bl FUN_020072E8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02238DC2:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_02238D64
|
|
|
|
thumb_func_start MOD81_02238DC4
|
|
MOD81_02238DC4: ; 0x02238DC4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #4
|
|
bhs _02238DF2
|
|
lsl r3, r2, #2
|
|
ldr r2, _02238DF8 ; =0x0223CFFC
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _02238DE8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_02238DE8:
|
|
add r0, r5, #0
|
|
bl MOD81_02238DFC
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02238DF2:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02238DF8: .word 0x0223CFFC
|
|
thumb_func_end MOD81_02238DC4
|
|
|
|
thumb_func_start MOD81_02238DFC
|
|
MOD81_02238DFC: ; 0x02238DFC
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl G3X_ResetMtxStack
|
|
mov r1, #0
|
|
mov r0, #0x11
|
|
add r2, r1, #0
|
|
bl FUN_020BB1C0
|
|
bl FUN_020BB394
|
|
bl FUN_020B02C8
|
|
ldr r0, [r4, #0xc]
|
|
bl FUN_020081C4
|
|
ldr r0, [r4, #0xc]
|
|
bl FUN_02006ED4
|
|
mov r2, #1
|
|
str r2, [sp]
|
|
mov r0, #0x12
|
|
add r1, sp, #0
|
|
bl FUN_020BB1C0
|
|
ldr r0, [r4, #0x5c]
|
|
bl MOD81_02238940
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02238DFC
|
|
|
|
thumb_func_start MOD81_02238E44
|
|
MOD81_02238E44: ; 0x02238E44
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
add r4, r0, #0
|
|
ldr r0, _02239040 ; =0x0223D054
|
|
bl FUN_0201E66C
|
|
ldr r2, _02239044 ; =0x04000304
|
|
ldr r0, _02239048 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223904C ; =0x0223D00C
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, _02239050 ; =0x0223D01C
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, _02239054 ; =0x0223D038
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0x40]
|
|
ldr r2, _02239054 ; =0x0223D038
|
|
mov r1, #6
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r2, _02239058 ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r3, [r2]
|
|
mov r1, #1
|
|
bic r3, r0
|
|
add r0, r3, #0
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldr r0, [r4, #0x40]
|
|
add r3, r1, #0
|
|
bl FUN_02017F48
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl FUN_02018540
|
|
ldr r0, [r4]
|
|
bl MOD81_02238844
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #1
|
|
mov r2, #0x6d
|
|
mov r3, #2
|
|
bl FUN_0200CD68
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
add r1, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r2, #1
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
ldr r0, [r4, #0x40]
|
|
add r1, #0x44
|
|
mov r3, #2
|
|
bl FUN_02019064
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r3, #0x20
|
|
str r3, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
mov r1, #7
|
|
mov r2, #0
|
|
bl FUN_02006930
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x40]
|
|
mov r0, #0x5d
|
|
mov r1, #0x16
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x40]
|
|
mov r0, #0x5d
|
|
mov r1, #0x15
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0x17
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x40]
|
|
mov r0, #0x5d
|
|
mov r1, #0x16
|
|
mov r3, #6
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x40]
|
|
mov r0, #0x5d
|
|
mov r1, #0x15
|
|
mov r3, #6
|
|
bl FUN_020068C8
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0x17
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl FUN_02006930
|
|
ldr r0, [r4, #0x40]
|
|
mov r1, #1
|
|
bl FUN_02017CD0
|
|
add r0, r4, #0
|
|
bl MOD81_022392D8
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
str r0, [r4, #0x5c]
|
|
add r0, r4, #0
|
|
bl MOD81_022393A4
|
|
str r0, [r4, #0x10]
|
|
mov r1, #0
|
|
mov r0, #0x6a
|
|
str r1, [sp]
|
|
lsl r0, r0, #0xa
|
|
str r0, [sp, #4]
|
|
ldr r0, _0223905C ; =0x00073800
|
|
mov r2, #0x5d
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0x5c]
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
ldr r2, _02239060 ; =0x0223CFF4
|
|
str r0, [r4, #0x60]
|
|
ldrh r3, [r2]
|
|
add r0, sp, #0x14
|
|
add r1, sp, #0x14
|
|
strh r3, [r0]
|
|
ldrh r3, [r2, #2]
|
|
ldrh r2, [r2, #4]
|
|
strh r3, [r0, #2]
|
|
strh r2, [r0, #4]
|
|
ldr r0, [r4, #0x60]
|
|
bl MOD81_02238B40
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add r0, r4, #0
|
|
bl MOD81_022393F4
|
|
ldr r0, _02239064 ; =0x04000050
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
bl FUN_02033E74
|
|
mov r0, #1
|
|
mov r1, #0x39
|
|
bl FUN_02033F04
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_02239040: .word 0x0223D054
|
|
_02239044: .word 0x04000304
|
|
_02239048: .word 0xFFFF7FFF
|
|
_0223904C: .word 0x0223D00C
|
|
_02239050: .word 0x0223D01C
|
|
_02239054: .word 0x0223D038
|
|
_02239058: .word 0x04000008
|
|
_0223905C: .word 0x00073800
|
|
_02239060: .word 0x0223CFF4
|
|
_02239064: .word 0x04000050
|
|
thumb_func_end MOD81_02238E44
|
|
|
|
thumb_func_start MOD81_02239068
|
|
MOD81_02239068: ; 0x02239068
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _0223908E
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223908E
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #1
|
|
bl FUN_02020130
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0223908E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239068
|
|
|
|
thumb_func_start MOD81_02239094
|
|
MOD81_02239094: ; 0x02239094
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
cmp r0, #4
|
|
bhi _022390CE
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022390AE: ; jump table
|
|
.short _022390B8 - _022390AE - 2 ; case 0
|
|
.short _022390C4 - _022390AE - 2 ; case 1
|
|
.short _02239138 - _022390AE - 2 ; case 2
|
|
.short _022391BE - _022390AE - 2 ; case 3
|
|
.short _022391DE - _022390AE - 2 ; case 4
|
|
_022390B8:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022391EE
|
|
_022390C4:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0xa
|
|
bgt _022390D0
|
|
_022390CE:
|
|
b _022391EE
|
|
_022390D0:
|
|
ldr r0, [r4]
|
|
bl MOD81_02238814
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl MOD81_02238810
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238850
|
|
cmp r0, #1
|
|
bne _022390F0
|
|
mov r1, #0
|
|
mov r6, #2
|
|
b _022390F4
|
|
_022390F0:
|
|
mov r1, #4
|
|
mov r6, #3
|
|
_022390F4:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x54]
|
|
bl FUN_0200A8E0
|
|
ldr r1, [r4, #0x58]
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r7, #0
|
|
bl FUN_0200B7B8
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x58]
|
|
add r0, #0x44
|
|
mov r1, #1
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #0x6d
|
|
mov r2, #2
|
|
bl FUN_0200D06C
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
bl FUN_020191D0
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
str r6, [r5]
|
|
b _022391EE
|
|
_02239138:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x3c
|
|
ble _022391EE
|
|
ldr r0, [r4]
|
|
bl MOD81_02238814
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238810
|
|
add r7, r0, #0
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl FUN_0200A8E0
|
|
ldr r1, [r4, #0x58]
|
|
ldr r2, [r4, #0x54]
|
|
add r0, r7, #0
|
|
bl FUN_0200B7B8
|
|
ldr r0, [r4]
|
|
bl MOD81_02238818
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
cmp r0, #0
|
|
bne _0223918A
|
|
ldr r0, [r4, #0x10]
|
|
mov r1, #1
|
|
bl FUN_02007314
|
|
ldr r0, [r4]
|
|
bl MOD81_02238830
|
|
bl FUN_02005578
|
|
_0223918A:
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x58]
|
|
add r0, #0x44
|
|
mov r1, #1
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
bl FUN_02019548
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022391EE
|
|
_022391BE:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x3c
|
|
ble _022391EE
|
|
add r0, r4, #0
|
|
add r0, #0x44
|
|
mov r1, #0
|
|
bl FUN_0200D0E0
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022391EE
|
|
_022391DE:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x14
|
|
ble _022391EE
|
|
add sp, #0x10
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022391EE:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD81_02239094
|
|
|
|
thumb_func_start MOD81_022391F4
|
|
MOD81_022391F4: ; 0x022391F4
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bhi _022392CE
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0223920E: ; jump table
|
|
.short _02239218 - _0223920E - 2 ; case 0
|
|
.short _02239232 - _0223920E - 2 ; case 1
|
|
.short _02239258 - _0223920E - 2 ; case 2
|
|
.short _02239284 - _0223920E - 2 ; case 3
|
|
.short _022392B6 - _0223920E - 2 ; case 4
|
|
_02239218:
|
|
ldr r0, _022392D4 ; =0x000006A8
|
|
bl FUN_020054C8
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
mov r3, #0xc
|
|
bl MOD81_022394BC
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022392CE
|
|
_02239232:
|
|
bl MOD81_0223950C
|
|
cmp r0, #0
|
|
beq _022392CE
|
|
ldr r0, [r5, #0x10]
|
|
bl FUN_02007534
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #0
|
|
bl FUN_02020130
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022392CE
|
|
_02239258:
|
|
ldr r0, [r5, #0x2c]
|
|
bl FUN_02020388
|
|
cmp r0, #0
|
|
bne _022392CE
|
|
ldr r0, [r5, #0x60]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
mov r1, #0x10
|
|
add r0, r5, #0
|
|
mov r2, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022394BC
|
|
add r0, r5, #0
|
|
bl MOD81_02239578
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022392CE
|
|
_02239284:
|
|
bl MOD81_022395D4
|
|
cmp r0, #2
|
|
bge _02239296
|
|
add r0, r5, #0
|
|
bl MOD81_022395C4
|
|
cmp r0, #1
|
|
bne _022392CE
|
|
_02239296:
|
|
mov r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _022392CE
|
|
_022392B6:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _022392CE
|
|
add r0, r5, #0
|
|
bl MOD81_022395C4
|
|
cmp r0, #0
|
|
beq _022392CE
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_022392CE:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_022392D4: .word 0x000006A8
|
|
thumb_func_end MOD81_022391F4
|
|
|
|
thumb_func_start MOD81_022392D8
|
|
MOD81_022392D8: ; 0x022392D8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _02239380 ; =0x04000060
|
|
ldr r2, _02239384 ; =0xFFFFCFFD
|
|
ldrh r1, [r0]
|
|
and r1, r2
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
add r1, r2, #2
|
|
and r3, r1
|
|
mov r1, #0x10
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r1, _02239388 ; =0x0000CFFB
|
|
and r1, r3
|
|
strh r1, [r0]
|
|
add r1, r2, #2
|
|
ldrh r3, [r0]
|
|
lsr r2, r2, #0x11
|
|
and r3, r1
|
|
mov r1, #8
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
mov r3, #0x3f
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0223938C ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _02239390 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
ldr r3, _02239394 ; =0x021064B8
|
|
mov r0, #1
|
|
mov r1, #0
|
|
ldr r3, [r3]
|
|
lsl r0, r0, #0xe
|
|
add r2, r1, #0
|
|
blx r3
|
|
ldr r3, _02239398 ; =0x021064C0
|
|
add r4, r0, #0
|
|
ldr r3, [r3]
|
|
mov r0, #0x80
|
|
mov r1, #0
|
|
mov r2, #1
|
|
blx r3
|
|
ldr r2, _0223939C ; =0x7FFF0000
|
|
add r6, r0, #0
|
|
and r2, r4
|
|
lsl r1, r4, #0x10
|
|
lsr r2, r2, #0x10
|
|
ldr r0, [r5, #0xc]
|
|
lsr r1, r1, #0xd
|
|
lsl r2, r2, #4
|
|
bl FUN_020081A8
|
|
ldr r2, _022393A0 ; =0xFFFF0000
|
|
lsl r1, r6, #0x10
|
|
and r2, r6
|
|
lsr r2, r2, #0x10
|
|
ldr r0, [r5, #0xc]
|
|
lsr r1, r1, #0xd
|
|
lsl r2, r2, #3
|
|
bl FUN_020081B4
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02239380: .word 0x04000060
|
|
_02239384: .word 0xFFFFCFFD
|
|
_02239388: .word 0x0000CFFB
|
|
_0223938C: .word 0x04000540
|
|
_02239390: .word 0xBFFF0000
|
|
_02239394: .word 0x021064B8
|
|
_02239398: .word 0x021064C0
|
|
_0223939C: .word 0x7FFF0000
|
|
_022393A0: .word 0xFFFF0000
|
|
thumb_func_end MOD81_022392D8
|
|
|
|
thumb_func_start MOD81_022393A4
|
|
MOD81_022393A4: ; 0x022393A4
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x20
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238818
|
|
add r5, r0, #0
|
|
add r0, sp, #0x10
|
|
add r1, r5, #0
|
|
mov r2, #2
|
|
bl FUN_02068B70
|
|
ldr r0, [r4]
|
|
bl MOD81_02238830
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x14
|
|
bl FUN_02069010
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl FUN_02068E1C
|
|
add r3, r0, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r0, r4, #0
|
|
str r1, [sp, #4]
|
|
add r0, #0x14
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0xc]
|
|
add r3, #0x50
|
|
add r1, sp, #0x10
|
|
mov r2, #0x80
|
|
bl FUN_020073A0
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_022393A4
|
|
|
|
thumb_func_start MOD81_022393F4
|
|
MOD81_022393F4: ; 0x022393F4
|
|
push {r4, lr}
|
|
sub sp, #0x70
|
|
add r4, r0, #0
|
|
add r0, #0x30
|
|
mov r1, #0x5d
|
|
mov r2, #7
|
|
mov r3, #8
|
|
bl MOD81_0223874C
|
|
add r0, sp, #0x5c
|
|
bl FUN_020B19DC
|
|
add r0, sp, #0x38
|
|
bl FUN_020B1A24
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x38
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #9
|
|
bl FUN_02006AE4
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x5c
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xa
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #2
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x14
|
|
add r1, #0x30
|
|
add r2, sp, #0x38
|
|
add r3, sp, #0x5c
|
|
bl MOD81_022387A8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x64
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x5a
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x2c]
|
|
mov r1, #1
|
|
bl FUN_02020238
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
ldr r0, [r4, #0x2c]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
add sp, #0x70
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_022393F4
|
|
|
|
thumb_func_start MOD81_02239498
|
|
MOD81_02239498: ; 0x02239498
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_022394A0:
|
|
ldr r0, [r5, #0x28]
|
|
cmp r0, #0
|
|
beq _022394AA
|
|
bl FUN_0201FFC8
|
|
_022394AA:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #2
|
|
blt _022394A0
|
|
add r6, #0x30
|
|
add r0, r6, #0
|
|
bl MOD81_02238784
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_02239498
|
|
|
|
thumb_func_start MOD81_022394BC
|
|
MOD81_022394BC: ; 0x022394BC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x14
|
|
str r2, [sp]
|
|
add r7, r3, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02239502
|
|
str r5, [r4]
|
|
lsl r0, r6, #0xc
|
|
str r0, [r4, #4]
|
|
ldr r0, [sp]
|
|
lsl r1, r0, #0xc
|
|
str r1, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
sub r0, r1, r0
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
str r0, [r4, #0xc]
|
|
ldr r0, _02239504 ; =MOD81_0223953C
|
|
str r7, [r4, #0x10]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA60
|
|
str r0, [r5, #0x64]
|
|
ldr r0, _02239508 ; =0x04000050
|
|
mov r1, #1
|
|
add r2, r6, #0
|
|
bl G2x_SetBlendBrightness_
|
|
_02239502:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02239504: .word MOD81_0223953C
|
|
_02239508: .word 0x04000050
|
|
thumb_func_end MOD81_022394BC
|
|
|
|
thumb_func_start MOD81_0223950C
|
|
MOD81_0223950C: ; 0x0223950C
|
|
ldr r0, [r0, #0x64]
|
|
cmp r0, #0
|
|
bne _02239516
|
|
mov r0, #1
|
|
bx lr
|
|
_02239516:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223950C
|
|
|
|
thumb_func_start MOD81_0223951C
|
|
MOD81_0223951C: ; 0x0223951C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x64]
|
|
cmp r0, #0
|
|
beq _02239538
|
|
bl FUN_0201B6C8
|
|
bl MOD81_02238898
|
|
ldr r0, [r4, #0x64]
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r4, #0x64]
|
|
_02239538:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223951C
|
|
|
|
thumb_func_start MOD81_0223953C
|
|
MOD81_0223953C: ; 0x0223953C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x10]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
ble _0223955E
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4, #0xc]
|
|
add r2, r1, r0
|
|
str r2, [r4, #4]
|
|
ldr r0, _02239574 ; =0x04000050
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl G2x_SetBlendBrightness_
|
|
pop {r4, pc}
|
|
_0223955E:
|
|
ldr r2, [r4, #8]
|
|
ldr r0, _02239574 ; =0x04000050
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r0, [r4]
|
|
bl MOD81_0223951C
|
|
pop {r4, pc}
|
|
nop
|
|
_02239574: .word 0x04000050
|
|
thumb_func_end MOD81_0223953C
|
|
|
|
thumb_func_start MOD81_02239578
|
|
MOD81_02239578: ; 0x02239578
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x30
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _022395B8
|
|
str r5, [r4]
|
|
ldr r0, [r5, #0x60]
|
|
add r1, r4, #0
|
|
str r0, [r4, #4]
|
|
add r1, #8
|
|
bl MOD81_02238B08
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B28
|
|
ldr r0, _022395BC ; =0x00002F60
|
|
mov r2, #0
|
|
str r0, [r4, #0x1c]
|
|
str r2, [r4, #0x20]
|
|
strh r2, [r4, #0x2c]
|
|
str r2, [r4, #0x24]
|
|
ldr r0, _022395C0 ; =MOD81_02239608
|
|
add r1, r4, #0
|
|
str r2, [r4, #0x28]
|
|
bl FUN_0200CA44
|
|
str r0, [r5, #0x68]
|
|
_022395B8:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022395BC: .word 0x00002F60
|
|
_022395C0: .word MOD81_02239608
|
|
thumb_func_end MOD81_02239578
|
|
|
|
thumb_func_start MOD81_022395C4
|
|
MOD81_022395C4: ; 0x022395C4
|
|
ldr r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bne _022395CE
|
|
mov r0, #1
|
|
bx lr
|
|
_022395CE:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022395C4
|
|
|
|
thumb_func_start MOD81_022395D4
|
|
MOD81_022395D4: ; 0x022395D4
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
beq _022395E4
|
|
bl FUN_0201B6C8
|
|
ldr r0, [r0, #0x20]
|
|
pop {r3, pc}
|
|
_022395E4:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD81_022395D4
|
|
|
|
thumb_func_start MOD81_022395E8
|
|
MOD81_022395E8: ; 0x022395E8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
cmp r0, #0
|
|
beq _02239604
|
|
bl FUN_0201B6C8
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #0x68]
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r4, #0x68]
|
|
_02239604:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022395E8
|
|
|
|
thumb_func_start MOD81_02239608
|
|
MOD81_02239608: ; 0x02239608
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x24]
|
|
cmp r0, #0
|
|
bne _0223967C
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x1c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r1, #0
|
|
blt _0223962A
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #6
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x1c]
|
|
b _0223967C
|
|
_0223962A:
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #6
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x1c]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, _022396E0 ; =0xFFFFC000
|
|
cmp r1, r0
|
|
bgt _0223967C
|
|
str r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x1c]
|
|
mov r0, #0x2c
|
|
mul r0, r1
|
|
mov r1, #0x64
|
|
bl _s32_div_f
|
|
neg r1, r0
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #4
|
|
str r1, [r4, #0x1c]
|
|
cmp r1, r0
|
|
bge _02239658
|
|
mov r0, #1
|
|
str r0, [r4, #0x24]
|
|
_02239658:
|
|
ldr r0, _022396E4 ; =0x000005E6
|
|
bl FUN_020054C8
|
|
ldr r0, [r4, #0x20]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
cmp r0, #1
|
|
beq _0223966E
|
|
cmp r0, #3
|
|
beq _02239674
|
|
b _0223967C
|
|
_0223966E:
|
|
mov r0, #0xb0
|
|
strh r0, [r4, #0x2c]
|
|
b _0223967C
|
|
_02239674:
|
|
mov r0, #0x2c
|
|
ldrsh r0, [r4, r0]
|
|
add r0, #0x50
|
|
strh r0, [r4, #0x2c]
|
|
_0223967C:
|
|
mov r0, #0x14
|
|
mov r2, #0x2c
|
|
ldrsh r3, [r4, r0]
|
|
ldrsh r0, [r4, r2]
|
|
add r1, r4, #0
|
|
add r1, #0x14
|
|
add r0, r3, r0
|
|
strh r0, [r4, #0x14]
|
|
mov r0, #0x18
|
|
ldrsh r3, [r4, r0]
|
|
ldrsh r0, [r4, r2]
|
|
sub r0, r3, r0
|
|
strh r0, [r4, #0x18]
|
|
ldr r0, [r4, #4]
|
|
bl MOD81_02238B40
|
|
mov r2, #0x2c
|
|
ldrsh r3, [r4, r2]
|
|
ldr r5, [r4, #8]
|
|
add r1, r4, #0
|
|
lsl r0, r3, #2
|
|
add r0, r3, r0
|
|
add r0, r5, r0
|
|
str r0, [r4, #8]
|
|
ldrsh r2, [r4, r2]
|
|
ldr r3, [r4, #0x10]
|
|
add r1, #8
|
|
lsl r0, r2, #2
|
|
add r0, r2, r0
|
|
add r0, r3, r0
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0x24]
|
|
cmp r0, #0
|
|
beq _022396DE
|
|
mov r0, #0x2c
|
|
ldrsh r0, [r4, r0]
|
|
sub r0, #0xe
|
|
strh r0, [r4, #0x2c]
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x28]
|
|
cmp r0, #0x1e
|
|
ble _022396DE
|
|
ldr r0, [r4]
|
|
bl MOD81_022395E8
|
|
_022396DE:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_022396E0: .word 0xFFFFC000
|
|
_022396E4: .word 0x000005E6
|
|
thumb_func_end MOD81_02239608
|
|
|
|
thumb_func_start MOD81_022396E8
|
|
MOD81_022396E8: ; 0x022396E8
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x5b
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223974A
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
add r1, r4, #0
|
|
add r1, #0xc0
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0xd4
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xcc
|
|
str r1, [r0]
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
str r1, [r4, r0]
|
|
add r0, r0, #4
|
|
str r1, [r4, r0]
|
|
bl rand_MT
|
|
add r1, r4, #0
|
|
add r1, #0xbc
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
mov r2, #0
|
|
add r0, #0xd0
|
|
str r2, [r0]
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
str r2, [r4, r0]
|
|
ldr r0, _02239750 ; =MOD81_02239F58
|
|
add r1, r4, #0
|
|
bl FUN_0200CA98
|
|
_0223974A:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02239750: .word MOD81_02239F58
|
|
thumb_func_end MOD81_022396E8
|
|
|
|
thumb_func_start MOD81_02239754
|
|
MOD81_02239754: ; 0x02239754
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl OS_DisableInterrupts
|
|
add r4, r0, #0
|
|
cmp r5, #0
|
|
beq _022397A0
|
|
add r0, r5, #0
|
|
bl MOD81_02239C94
|
|
add r0, r5, #0
|
|
bl MOD81_02239DF0
|
|
add r0, r5, #0
|
|
bl MOD81_02239F1C
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _02239782
|
|
bl FUN_0200CAB4
|
|
_02239782:
|
|
mov r0, #0x59
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _02239790
|
|
bl MOD81_0223A1FC
|
|
_02239790:
|
|
add r0, r5, #0
|
|
add r0, #0xbc
|
|
ldr r0, [r0]
|
|
bl seedr_MT
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_022397A0:
|
|
add r0, r4, #0
|
|
bl OS_RestoreInterrupts
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_02239754
|
|
|
|
thumb_func_start MOD81_022397A8
|
|
MOD81_022397A8: ; 0x022397A8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #4
|
|
bhs _022397D6
|
|
lsl r3, r2, #2
|
|
ldr r2, _022397DC ; =0x0223D094
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _022397CC
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_022397CC:
|
|
add r0, r5, #0
|
|
bl MOD81_022397E0
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_022397D6:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022397DC: .word 0x0223D094
|
|
thumb_func_end MOD81_022397A8
|
|
|
|
thumb_func_start MOD81_022397E0
|
|
MOD81_022397E0: ; 0x022397E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02239800
|
|
bl G3X_ResetMtxStack
|
|
add r4, #0xd4
|
|
ldr r0, [r4]
|
|
bl MOD81_02238940
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
_02239800:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_022397E0
|
|
|
|
thumb_func_start MOD81_02239804
|
|
MOD81_02239804: ; 0x02239804
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl MOD81_022399FC
|
|
add r0, r4, #0
|
|
bl MOD81_02239CDC
|
|
add r0, r4, #0
|
|
bl MOD81_02239E00
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239804
|
|
|
|
thumb_func_start MOD81_02239838
|
|
MOD81_02239838: ; 0x02239838
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _02239848
|
|
cmp r1, #1
|
|
beq _0223985E
|
|
b _02239876
|
|
_02239848:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _02239876
|
|
ldr r0, _0223987C ; =0x0223D444
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _02239876
|
|
_0223985E:
|
|
ldr r1, _0223987C ; =0x0223D444
|
|
ldr r2, [r1]
|
|
cmp r2, #0x1e
|
|
bge _0223986A
|
|
add r2, r2, #1
|
|
str r2, [r1]
|
|
_0223986A:
|
|
add r0, #0xd0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02239876
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02239876:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0223987C: .word 0x0223D444
|
|
thumb_func_end MOD81_02239838
|
|
|
|
thumb_func_start MOD81_02239880
|
|
MOD81_02239880: ; 0x02239880
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #4
|
|
bhi _02239926
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02239898: ; jump table
|
|
.short _022398A2 - _02239898 - 2 ; case 0
|
|
.short _022398AE - _02239898 - 2 ; case 1
|
|
.short _022398F2 - _02239898 - 2 ; case 2
|
|
.short _02239908 - _02239898 - 2 ; case 3
|
|
.short _0223991E - _02239898 - 2 ; case 4
|
|
_022398A2:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02239926
|
|
_022398AE:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #8
|
|
ble _02239926
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
mov r2, #0x1f
|
|
mov r3, #0x18
|
|
bl MOD81_0223A228
|
|
add r0, r4, #0
|
|
bl MOD81_0223A2AC
|
|
mov r1, #0x16
|
|
lsl r1, r1, #4
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl MOD81_02238B5C
|
|
add r4, #0xd8
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02239926
|
|
_022398F2:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl MOD81_0223A658
|
|
cmp r0, #0
|
|
beq _02239926
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02239926
|
|
_02239908:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl MOD81_0223A64C
|
|
cmp r0, #0
|
|
beq _02239926
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _02239926
|
|
_0223991E:
|
|
bl MOD81_02239F4C
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02239926:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239880
|
|
|
|
thumb_func_start MOD81_0223992C
|
|
MOD81_0223992C: ; 0x0223992C
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #4
|
|
bhi _022399F2
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02239946: ; jump table
|
|
.short _02239950 - _02239946 - 2 ; case 0
|
|
.short _02239966 - _02239946 - 2 ; case 1
|
|
.short _02239984 - _02239946 - 2 ; case 2
|
|
.short _022399A0 - _02239946 - 2 ; case 3
|
|
.short _022399E4 - _02239946 - 2 ; case 4
|
|
_02239950:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl MOD81_0223A664
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022399F2
|
|
_02239966:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #2
|
|
ble _022399F2
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
add r4, #0xc4
|
|
ldr r0, [r4]
|
|
bl MOD81_022381EC
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022399F2
|
|
_02239984:
|
|
add r1, r4, #0
|
|
add r1, #0xc8
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
bne _022399F2
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
bl MOD81_0223A104
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022399F2
|
|
_022399A0:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0x28
|
|
bge _022399B6
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x28
|
|
bne _022399B6
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #4
|
|
bl FUN_020054C8
|
|
_022399B6:
|
|
mov r0, #0x16
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl MOD81_0223A64C
|
|
cmp r0, #0
|
|
beq _022399F2
|
|
mov r0, #4
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _022399F8 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _022399F2
|
|
_022399E4:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _022399F2
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_022399F2:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_022399F8: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223992C
|
|
|
|
thumb_func_start MOD81_022399FC
|
|
MOD81_022399FC: ; 0x022399FC
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, _02239C78 ; =0x0223D0EC
|
|
bl FUN_0201E66C
|
|
ldr r2, _02239C7C ; =0x04000304
|
|
ldr r0, _02239C80 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _02239C84 ; =0x0223D084
|
|
bl FUN_02016BBC
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r2, _02239C88 ; =0x0223D0B4
|
|
mov r1, #2
|
|
mov r3, #1
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r2, _02239C88 ; =0x0223D0B4
|
|
mov r1, #6
|
|
mov r3, #1
|
|
bl FUN_02016C18
|
|
bl OS_DisableInterrupts
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r2, _02239C8C ; =0x0223D0D0
|
|
mov r1, #3
|
|
mov r3, #2
|
|
bl FUN_02016C18
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
ldr r2, _02239C8C ; =0x0223D0D0
|
|
mov r1, #7
|
|
mov r3, #2
|
|
bl FUN_02016C18
|
|
add r0, r5, #0
|
|
bl OS_RestoreInterrupts
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
mov r1, #2
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
add r3, r1, #0
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r1, #2
|
|
mov r3, #6
|
|
bl FUN_0200687C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r2, r4, #0
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r3, #6
|
|
bl FUN_020068C8
|
|
ldr r0, [r4]
|
|
bl MOD81_02238828
|
|
add r5, r0, #0
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl FUN_02006930
|
|
ldr r0, _02239C90 ; =0x0223D07C
|
|
lsl r1, r5, #1
|
|
ldrh r5, [r0, r1]
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #0
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #4
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r1, #5
|
|
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, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r1, #5
|
|
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, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
add r2, r4, #0
|
|
str r0, [sp, #0xc]
|
|
add r2, #0xc0
|
|
ldr r2, [r2]
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r0, #0x3a
|
|
mov r1, #0x60
|
|
bl AllocFromHeap
|
|
add r5, r0, #0
|
|
beq _02239C02
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
mov r2, #0x60
|
|
bl MIi_CpuClear32
|
|
add r0, r5, #0
|
|
mov r1, #0x60
|
|
bl DC_FlushRange
|
|
bl GX_BeginLoadBGExtPltt
|
|
bl GXS_BeginLoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GX_LoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GXS_LoadBGExtPltt
|
|
bl GX_EndLoadBGExtPltt
|
|
bl GXS_EndLoadBGExtPltt
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_02239C02:
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
mov r3, #0xff
|
|
ldr r0, [r0]
|
|
mov r1, #6
|
|
mov r2, #3
|
|
mvn r3, r3
|
|
bl FUN_020179E0
|
|
mov r0, #7
|
|
mov r1, #0
|
|
bl FUN_0201797C
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
mov r1, #3
|
|
ldr r0, [r0]
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
add r0, r4, #0
|
|
add r0, #0xc8
|
|
mov r1, #1
|
|
bl MOD81_02238118
|
|
add r1, r4, #0
|
|
add r1, #0xc4
|
|
str r0, [r1]
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0xd0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
mov r1, #0x12
|
|
mov r2, #1
|
|
ldr r0, [r0]
|
|
lsl r1, r1, #6
|
|
lsl r2, r2, #0xc
|
|
mov r3, #1
|
|
bl MOD81_022384AC
|
|
add r4, #0xcc
|
|
str r0, [r4]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02239C78: .word 0x0223D0EC
|
|
_02239C7C: .word 0x04000304
|
|
_02239C80: .word 0xFFFF7FFF
|
|
_02239C84: .word 0x0223D084
|
|
_02239C88: .word 0x0223D0B4
|
|
_02239C8C: .word 0x0223D0D0
|
|
_02239C90: .word 0x0223D07C
|
|
thumb_func_end MOD81_022399FC
|
|
|
|
thumb_func_start MOD81_02239C94
|
|
MOD81_02239C94: ; 0x02239C94
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0xc8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02239CAA
|
|
add r0, r4, #0
|
|
add r0, #0xc4
|
|
ldr r0, [r0]
|
|
bl MOD81_02238200
|
|
_02239CAA:
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
bl FUN_020178A0
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
mov r1, #6
|
|
bl FUN_020178A0
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
ldr r0, [r0]
|
|
mov r1, #3
|
|
bl FUN_020178A0
|
|
add r4, #0xc0
|
|
ldr r0, [r4]
|
|
mov r1, #7
|
|
bl FUN_020178A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239C94
|
|
|
|
thumb_func_start MOD81_02239CDC
|
|
MOD81_02239CDC: ; 0x02239CDC
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _02239DBC ; =0x04000060
|
|
ldr r1, _02239DC0 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _02239DC4 ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldr r0, _02239DC8 ; =0x0223D0A4
|
|
bl G3X_SetEdgeColorTable
|
|
mov r1, #0
|
|
ldr r0, _02239DCC ; =0x000043FF
|
|
ldr r2, _02239DD0 ; =0x00007FFF
|
|
mov r3, #0x3f
|
|
str r1, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _02239DD4 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _02239DD8 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r1, _02239DDC ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
strh r2, [r1]
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
add r1, r4, #0
|
|
add r1, #0xd4
|
|
str r0, [r1]
|
|
mov r1, #0
|
|
ldr r0, _02239DE0 ; =0xFFFC8800
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r0, r4, #0
|
|
str r1, [sp, #0xc]
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
mov r2, #0x5d
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
add r1, r4, #0
|
|
add r1, #0xd8
|
|
str r0, [r1]
|
|
ldr r1, _02239DE4 ; =0x0000EBE0
|
|
ldr r0, _02239DE8 ; =0x0223D444
|
|
strh r1, [r0, #4]
|
|
mov r1, #0
|
|
strh r1, [r0, #6]
|
|
strh r1, [r0, #8]
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
ldr r1, _02239DEC ; =0x0223D448
|
|
bl MOD81_02238C60
|
|
add r4, #0xd8
|
|
mov r1, #7
|
|
ldr r0, [r4]
|
|
lsl r1, r1, #0xa
|
|
bl MOD81_02238B84
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02239DBC: .word 0x04000060
|
|
_02239DC0: .word 0xFFFFCFFD
|
|
_02239DC4: .word 0x0000CFFB
|
|
_02239DC8: .word 0x0223D0A4
|
|
_02239DCC: .word 0x000043FF
|
|
_02239DD0: .word 0x00007FFF
|
|
_02239DD4: .word 0x04000540
|
|
_02239DD8: .word 0xBFFF0000
|
|
_02239DDC: .word 0x04000008
|
|
_02239DE0: .word 0xFFFC8800
|
|
_02239DE4: .word 0x0000EBE0
|
|
_02239DE8: .word 0x0223D444
|
|
_02239DEC: .word 0x0223D448
|
|
thumb_func_end MOD81_02239CDC
|
|
|
|
thumb_func_start MOD81_02239DF0
|
|
MOD81_02239DF0: ; 0x02239DF0
|
|
push {r3, lr}
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02239DFE
|
|
bl MOD81_0223890C
|
|
_02239DFE:
|
|
pop {r3, pc}
|
|
thumb_func_end MOD81_02239DF0
|
|
|
|
thumb_func_start MOD81_02239E00
|
|
MOD81_02239E00: ; 0x02239E00
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x74
|
|
add r7, r0, #0
|
|
add r0, #0xc
|
|
mov r1, #0x5d
|
|
mov r2, #0xb
|
|
mov r3, #0xc
|
|
bl MOD81_0223874C
|
|
add r0, sp, #0x60
|
|
bl FUN_020B19DC
|
|
add r0, sp, #0x3c
|
|
bl FUN_020B1A24
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x3c
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #0xd
|
|
bl FUN_02006AE4
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x3c
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #0xd
|
|
mov r2, #1
|
|
bl FUN_02006AE4
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x60
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xe
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x60
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xe
|
|
mov r2, #2
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #1
|
|
add r1, r7, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x18
|
|
add r1, #0xc
|
|
add r2, sp, #0x3c
|
|
add r3, sp, #0x60
|
|
bl MOD81_022387A8
|
|
ldr r0, _02239F18 ; =0x035947D1
|
|
bl seedr_MT
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
add r4, r7, #0
|
|
_02239E9A:
|
|
bl rand_MT
|
|
mov r1, #0xe8
|
|
bl _u32_div_f
|
|
add r6, r1, #0
|
|
add r6, #0xc
|
|
bl rand_MT
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
bl _u32_div_f
|
|
add r5, r1, #0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
sub r5, #0x1c
|
|
str r0, [sp, #4]
|
|
ldr r0, [r7]
|
|
add r1, sp, #0x18
|
|
add r2, r6, #0
|
|
add r3, r5, #0
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
add r5, #0x38
|
|
ldr r0, [r7]
|
|
add r1, sp, #0x18
|
|
add r2, r6, #0
|
|
add r3, r5, #0
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
bl FUN_02020130
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #1
|
|
bl FUN_02020130
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
ldr r0, [sp, #0x14]
|
|
add r4, #8
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x14]
|
|
cmp r0, #0x14
|
|
blt _02239E9A
|
|
add sp, #0x74
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02239F18: .word 0x035947D1
|
|
thumb_func_end MOD81_02239E00
|
|
|
|
thumb_func_start MOD81_02239F1C
|
|
MOD81_02239F1C: ; 0x02239F1C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_02239F24:
|
|
ldr r0, [r5, #0x1c]
|
|
cmp r0, #0
|
|
beq _02239F2E
|
|
bl FUN_0201FFC8
|
|
_02239F2E:
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _02239F38
|
|
bl FUN_0201FFC8
|
|
_02239F38:
|
|
add r4, r4, #1
|
|
add r5, #8
|
|
cmp r4, #0x14
|
|
blt _02239F24
|
|
add r6, #0xc
|
|
add r0, r6, #0
|
|
bl MOD81_02238784
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239F1C
|
|
|
|
thumb_func_start MOD81_02239F4C
|
|
MOD81_02239F4C: ; 0x02239F4C
|
|
mov r1, #0x5a
|
|
mov r2, #1
|
|
lsl r1, r1, #2
|
|
str r2, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_02239F4C
|
|
|
|
thumb_func_start MOD81_02239F58
|
|
MOD81_02239F58: ; 0x02239F58
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x5a
|
|
add r4, r1, #0
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _02239FAC
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
add r0, r4, #0
|
|
add r0, #0xc0
|
|
mov r3, #0xff
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
mov r2, #3
|
|
mvn r3, r3
|
|
bl FUN_020179E0
|
|
add r4, #0xc0
|
|
ldr r0, [r4]
|
|
mov r1, #6
|
|
mov r2, #3
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
mov r0, #3
|
|
mov r1, #0
|
|
bl FUN_0201797C
|
|
mov r0, #7
|
|
mov r1, #1
|
|
bl FUN_0201797C
|
|
ldr r2, _02239FB0 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
_02239FAC:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02239FB0: .word 0x04000304
|
|
thumb_func_end MOD81_02239F58
|
|
|
|
thumb_func_start MOD81_02239FB4
|
|
MOD81_02239FB4: ; 0x02239FB4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
str r5, [r2, #4]
|
|
add r0, r2, #0
|
|
str r1, [r0]
|
|
mov r1, #0x52
|
|
mov r7, #0
|
|
lsl r1, r1, #2
|
|
str r7, [r0, r1]
|
|
add r1, r1, #4
|
|
str r2, [sp]
|
|
str r7, [r0, r1]
|
|
add r4, r2, #0
|
|
add r6, r2, #0
|
|
_02239FD0:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5, #0x1c]
|
|
bl FUN_0202011C
|
|
add r2, r6, #0
|
|
add r3, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0x58
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r7, r7, #1
|
|
str r0, [r2]
|
|
add r4, r4, #4
|
|
add r5, #8
|
|
add r6, #0xc
|
|
cmp r7, #0x14
|
|
blt _02239FD0
|
|
ldr r0, _0223A018 ; =MOD81_0223A01C
|
|
ldr r1, [sp]
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
ldr r1, [sp]
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0223A014
|
|
ldr r0, [sp]
|
|
bl FreeToHeap
|
|
_0223A014:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0223A018: .word MOD81_0223A01C
|
|
thumb_func_end MOD81_02239FB4
|
|
|
|
thumb_func_start MOD81_0223A01C
|
|
MOD81_0223A01C: ; 0x0223A01C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r1, #0
|
|
mov r1, #0x52
|
|
lsl r1, r1, #2
|
|
ldr r0, [r6, r1]
|
|
add r0, r0, #1
|
|
str r0, [r6, r1]
|
|
ldr r0, [r6, r1]
|
|
cmp r0, #0xc
|
|
ble _0223A050
|
|
mov r0, #0
|
|
str r0, [r6, r1]
|
|
add r0, r1, #4
|
|
ldr r0, [r6, r0]
|
|
cmp r0, #0x14
|
|
bge _0223A050
|
|
lsl r0, r0, #2
|
|
mov r2, #1
|
|
add r0, r6, r0
|
|
str r2, [r0, #8]
|
|
add r0, r1, #4
|
|
ldr r0, [r6, r0]
|
|
add r2, r0, #1
|
|
add r0, r1, #4
|
|
str r2, [r6, r0]
|
|
_0223A050:
|
|
mov r0, #0
|
|
add r7, r6, #0
|
|
str r0, [sp, #4]
|
|
add r5, r6, #0
|
|
str r6, [sp]
|
|
add r4, r0, #0
|
|
add r7, #0x58
|
|
_0223A05E:
|
|
mov r1, #0x21
|
|
ldr r2, [r5, #0x5c]
|
|
lsl r1, r1, #0xc
|
|
add r2, r2, r1
|
|
mov r1, #0x6a
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xe
|
|
add r0, #0x5c
|
|
str r2, [r5, #0x5c]
|
|
cmp r2, r1
|
|
blt _0223A09E
|
|
mov r1, #0x71
|
|
ldr r2, [r0]
|
|
lsl r1, r1, #0xe
|
|
sub r1, r2, r1
|
|
str r1, [r0]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0223A09E
|
|
ldr r0, [r6, #4]
|
|
mov r1, #1
|
|
add r0, r0, r4
|
|
ldr r0, [r0, #0x1c]
|
|
bl FUN_020200A0
|
|
ldr r0, [r6, #4]
|
|
mov r1, #1
|
|
add r0, r0, r4
|
|
ldr r0, [r0, #0x20]
|
|
bl FUN_020200A0
|
|
_0223A09E:
|
|
ldr r0, [r6, #4]
|
|
add r1, r7, #0
|
|
add r0, r0, r4
|
|
ldr r0, [r0, #0x1c]
|
|
bl FUN_02020044
|
|
add r2, r5, #0
|
|
add r2, #0x58
|
|
add r3, sp, #8
|
|
ldmia r2!, {r0, r1}
|
|
mov ip, r3
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r3]
|
|
mov r0, #0xe
|
|
ldr r1, [sp, #0xc]
|
|
lsl r0, r0, #0xe
|
|
add r0, r1, r0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r6, #4]
|
|
mov r1, ip
|
|
add r0, r0, r4
|
|
ldr r0, [r0, #0x20]
|
|
bl FUN_02020044
|
|
ldr r0, [sp]
|
|
add r5, #0xc
|
|
add r0, r0, #4
|
|
str r0, [sp]
|
|
ldr r0, [sp, #4]
|
|
add r4, #8
|
|
add r0, r0, #1
|
|
add r7, #0xc
|
|
str r0, [sp, #4]
|
|
cmp r0, #0x14
|
|
blt _0223A05E
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A01C
|
|
|
|
thumb_func_start MOD81_0223A0EC
|
|
MOD81_0223A0EC: ; 0x0223A0EC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223A102
|
|
bl FUN_0201B6C8
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
bl FUN_0200CAB4
|
|
_0223A102:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223A0EC
|
|
|
|
thumb_func_start MOD81_0223A104
|
|
MOD81_0223A104: ; 0x0223A104
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
mov r1, #0x17
|
|
add r6, r0, #0
|
|
mov r0, #0x3a
|
|
lsl r1, r1, #4
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223A170
|
|
str r6, [r4]
|
|
add r6, #0xc0
|
|
mov r0, #0x55
|
|
ldr r1, [r6]
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
ldr r0, [r4, r0]
|
|
mov r1, #2
|
|
bl FUN_02017B54
|
|
lsl r1, r0, #0xc
|
|
mov r0, #0x56
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
sub r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #6
|
|
bl FUN_02017B54
|
|
mov r1, #0x57
|
|
lsl r0, r0, #0xc
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r2, #0
|
|
add r0, r1, #4
|
|
str r2, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #8
|
|
str r2, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0xc
|
|
str r5, [r4, r0]
|
|
add r1, #0x10
|
|
str r2, [r4, r1]
|
|
ldr r0, _0223A174 ; =MOD81_0223A178
|
|
add r1, r4, #0
|
|
bl FUN_0200CA60
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _0223A170
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223A170:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0223A174: .word MOD81_0223A178
|
|
thumb_func_end MOD81_0223A104
|
|
|
|
thumb_func_start MOD81_0223A178
|
|
MOD81_0223A178: ; 0x0223A178
|
|
push {r4, r5, r6, lr}
|
|
mov r3, #0x59
|
|
add r4, r1, #0
|
|
lsl r3, r3, #2
|
|
mov r0, #2
|
|
ldr r1, [r4, r3]
|
|
lsl r0, r0, #0x14
|
|
cmp r1, r0
|
|
bge _0223A1FA
|
|
sub r0, r3, #4
|
|
ldr r1, [r4, r0]
|
|
add r0, r3, #0
|
|
sub r0, #0x44
|
|
add r1, r1, r0
|
|
sub r0, r3, #4
|
|
str r1, [r4, r0]
|
|
add r5, r3, #0
|
|
ldr r1, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
sub r5, #0xc
|
|
add r0, r1, r0
|
|
str r0, [r4, r3]
|
|
add r0, r3, #0
|
|
sub r0, #0x10
|
|
ldr r5, [r4, r5]
|
|
ldr r3, [r4, r3]
|
|
ldr r0, [r4, r0]
|
|
sub r3, r5, r3
|
|
mov r1, #2
|
|
mov r2, #3
|
|
asr r3, r3, #0xc
|
|
bl FUN_020179E0
|
|
mov r5, #0x55
|
|
lsl r5, r5, #2
|
|
add r3, r5, #0
|
|
ldr r0, [r4, r5]
|
|
add r3, #8
|
|
add r5, #0x10
|
|
ldr r6, [r4, r3]
|
|
ldr r3, [r4, r5]
|
|
mov r1, #6
|
|
sub r3, r6, r3
|
|
mov r2, #3
|
|
asr r3, r3, #0xc
|
|
bl FUN_020179E0
|
|
mov r1, #0x59
|
|
lsl r1, r1, #2
|
|
mov r0, #2
|
|
ldr r2, [r4, r1]
|
|
lsl r0, r0, #0x12
|
|
cmp r2, r0
|
|
blt _0223A1FA
|
|
add r0, r1, #0
|
|
add r0, #8
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _0223A1FA
|
|
add r1, #8
|
|
ldr r0, [r4]
|
|
add r1, r4, r1
|
|
add r2, r4, #4
|
|
bl MOD81_02239FB4
|
|
_0223A1FA:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_0223A178
|
|
|
|
thumb_func_start MOD81_0223A1FC
|
|
MOD81_0223A1FC: ; 0x0223A1FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
beq _0223A226
|
|
bl FUN_0201B6C8
|
|
add r4, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4, r0]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
add r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
bl MOD81_0223A0EC
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
_0223A226:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_0223A1FC
|
|
|
|
thumb_func_start MOD81_0223A228
|
|
MOD81_0223A228: ; 0x0223A228
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r5, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x14
|
|
add r7, r2, #0
|
|
add r6, r3, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223A268
|
|
lsl r0, r5, #0xc
|
|
str r0, [r4]
|
|
lsl r1, r7, #0xc
|
|
str r1, [r4, #8]
|
|
ldr r0, [r4]
|
|
sub r0, r1, r0
|
|
add r1, r6, #0
|
|
bl _s32_div_f
|
|
str r0, [r4, #4]
|
|
ldr r0, [sp]
|
|
str r6, [r4, #0xc]
|
|
add r1, r5, #0
|
|
str r0, [r4, #0x10]
|
|
bl MOD81_02238B5C
|
|
ldr r0, _0223A26C ; =MOD81_0223A270
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
_0223A268:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0223A26C: .word MOD81_0223A270
|
|
thumb_func_end MOD81_0223A228
|
|
|
|
thumb_func_start MOD81_0223A270
|
|
MOD81_0223A270: ; 0x0223A270
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
ble _0223A292
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, #4]
|
|
add r1, r1, r0
|
|
str r1, [r4]
|
|
ldr r0, [r4, #0x10]
|
|
asr r1, r1, #0xc
|
|
bl MOD81_02238B5C
|
|
pop {r3, r4, r5, pc}
|
|
_0223A292:
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4, #0x10]
|
|
asr r1, r1, #0xc
|
|
bl MOD81_02238B5C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A270
|
|
|
|
thumb_func_start MOD81_0223A2AC
|
|
MOD81_0223A2AC: ; 0x0223A2AC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r5, #0
|
|
add r4, #0xdc
|
|
add r0, #0xd8
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
add r1, #8
|
|
bl MOD81_02238B08
|
|
add r0, r5, #0
|
|
add r0, #0xd8
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
add r1, #0x20
|
|
bl MOD81_02238B28
|
|
add r3, r4, #0
|
|
add r3, #8
|
|
add r2, r4, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, #0x14
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
add r0, r5, #0
|
|
add r0, #0xd4
|
|
ldr r0, [r0]
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
add r0, #0xd8
|
|
ldr r0, [r0]
|
|
add r5, #0xdc
|
|
str r0, [r5]
|
|
ldr r0, [r4, #0xc]
|
|
str r0, [r4, #0x28]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, _0223A37C ; =0xFFFF8000
|
|
sub r0, r0, r1
|
|
mov r1, #0x1e
|
|
bl _s32_div_f
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
mov r2, #1
|
|
mov r1, #0x1e
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
mov r1, #0
|
|
str r1, [r4, #0x38]
|
|
str r1, [r4, #0x3c]
|
|
str r1, [r4, #0x40]
|
|
add r0, r4, #0
|
|
str r1, [r4, #0x44]
|
|
add r0, #0x54
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
lsl r2, r2, #0xe
|
|
add r0, #0x56
|
|
strh r2, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x5a
|
|
strh r1, [r0]
|
|
str r1, [r4, #0x7c]
|
|
add r2, r4, #0
|
|
add r0, r1, #0
|
|
_0223A330:
|
|
add r3, r2, #0
|
|
add r3, #0x5c
|
|
strh r0, [r3]
|
|
add r3, r2, #0
|
|
add r3, #0x5e
|
|
strh r0, [r3]
|
|
add r3, r2, #0
|
|
add r3, #0x60
|
|
strh r0, [r3]
|
|
add r3, r2, #0
|
|
add r3, #0x62
|
|
add r1, r1, #1
|
|
add r2, #8
|
|
strh r0, [r3]
|
|
cmp r1, #3
|
|
blt _0223A330
|
|
mov r1, #0xd
|
|
str r0, [r4, #0x78]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #8
|
|
mov r2, #0x1e
|
|
bl MOD81_0223A384
|
|
mov r1, #0x29
|
|
mov r2, #5
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xc
|
|
lsl r2, r2, #0xe
|
|
mov r3, #0x1e
|
|
bl MOD81_0223A3C0
|
|
ldr r0, _0223A380 ; =MOD81_0223A57C
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223A37C: .word 0xFFFF8000
|
|
_0223A380: .word MOD81_0223A57C
|
|
thumb_func_end MOD81_0223A2AC
|
|
|
|
thumb_func_start MOD81_0223A384
|
|
MOD81_0223A384: ; 0x0223A384
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
beq _0223A3B2
|
|
mov r0, #0x56
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r6, #0
|
|
sub r0, r4, r0
|
|
bl _s32_div_f
|
|
add r1, r5, #0
|
|
add r1, #0x5a
|
|
strh r0, [r1]
|
|
mov r0, #0x56
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x5a
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x56
|
|
strh r1, [r0]
|
|
b _0223A3B6
|
|
_0223A3B2:
|
|
add r0, #0x56
|
|
strh r4, [r0]
|
|
_0223A3B6:
|
|
add r0, r5, #0
|
|
add r0, #0x58
|
|
strh r4, [r0]
|
|
str r6, [r5, #0x74]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_0223A384
|
|
|
|
thumb_func_start MOD81_0223A3C0
|
|
MOD81_0223A3C0: ; 0x0223A3C0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
beq _0223A3F8
|
|
ldr r0, [r5, #0x38]
|
|
add r1, r7, #0
|
|
sub r0, r4, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x40]
|
|
ldr r0, [r5, #0x3c]
|
|
add r1, r7, #0
|
|
sub r0, r6, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x44]
|
|
ldr r1, [r5, #0x38]
|
|
ldr r0, [r5, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x38]
|
|
ldr r1, [r5, #0x3c]
|
|
ldr r0, [r5, #0x44]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x3c]
|
|
str r4, [r5, #0x48]
|
|
str r6, [r5, #0x4c]
|
|
_0223A3F8:
|
|
str r7, [r5, #0x50]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD81_0223A3C0
|
|
|
|
thumb_func_start MOD81_0223A3FC
|
|
MOD81_0223A3FC: ; 0x0223A3FC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
beq _0223A422
|
|
lsl r0, r4, #3
|
|
str r0, [sp]
|
|
add r1, r5, r0
|
|
mov r0, #0x5c
|
|
ldrsh r0, [r1, r0]
|
|
add r1, r7, #0
|
|
sub r0, r6, r0
|
|
bl _s32_div_f
|
|
ldr r1, [sp]
|
|
add r1, r5, r1
|
|
add r1, #0x5e
|
|
strh r0, [r1]
|
|
_0223A422:
|
|
lsl r1, r4, #3
|
|
add r0, r5, r1
|
|
add r0, #0x60
|
|
strh r6, [r0]
|
|
add r0, r5, r1
|
|
add r0, #0x62
|
|
strh r7, [r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A3FC
|
|
|
|
thumb_func_start MOD81_0223A434
|
|
MOD81_0223A434: ; 0x0223A434
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x74]
|
|
cmp r0, #0
|
|
beq _0223A460
|
|
sub r0, r0, #1
|
|
str r0, [r5, #0x74]
|
|
beq _0223A456
|
|
mov r0, #0x56
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x5a
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x56
|
|
strh r1, [r0]
|
|
b _0223A460
|
|
_0223A456:
|
|
mov r0, #0x58
|
|
ldrsh r1, [r5, r0]
|
|
add r0, r5, #0
|
|
add r0, #0x56
|
|
strh r1, [r0]
|
|
_0223A460:
|
|
mov r0, #0x54
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x56
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
strh r1, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x54
|
|
ldrh r0, [r0]
|
|
mov r1, #0xb6
|
|
bl _s32_div_f
|
|
add r4, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
cmp r4, r0
|
|
blt _0223A488
|
|
sub r4, r4, r0
|
|
_0223A488:
|
|
ldr r0, [r5, #0x50]
|
|
cmp r0, #0
|
|
beq _0223A4AE
|
|
ldr r1, [r5, #0x38]
|
|
ldr r0, [r5, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x38]
|
|
ldr r1, [r5, #0x3c]
|
|
ldr r0, [r5, #0x44]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x3c]
|
|
ldr r0, [r5, #0x50]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #0x50]
|
|
bne _0223A4AE
|
|
ldr r0, [r5, #0x48]
|
|
str r0, [r5, #0x38]
|
|
ldr r0, [r5, #0x4c]
|
|
str r0, [r5, #0x3c]
|
|
_0223A4AE:
|
|
add r0, r4, #0
|
|
add r0, #0x5a
|
|
lsl r1, r0, #2
|
|
ldr r0, _0223A578 ; =0x020EDF50
|
|
ldr r2, [r5, #0x38]
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
mov r6, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r6
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
ldr r2, [r5, #8]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x3c]
|
|
ldr r0, _0223A578 ; =0x020EDF50
|
|
lsl r1, r4, #2
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r4, #2
|
|
add r3, r6, #0
|
|
lsl r4, r4, #0xa
|
|
add r4, r0, r4
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r4, #0xc
|
|
ldr r2, [r5, #0x10]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [r5, #0x1c]
|
|
mov r0, #0x22
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x56
|
|
ldrsh r0, [r5, r0]
|
|
mov r2, #0x5e
|
|
mov r6, #0x60
|
|
add r0, r1, r0
|
|
strh r0, [r5, #0x22]
|
|
add r0, r5, #0
|
|
mov r1, #0x5c
|
|
_0223A512:
|
|
add r4, r0, #0
|
|
add r4, #0x62
|
|
ldrh r4, [r4]
|
|
cmp r4, #0
|
|
beq _0223A54A
|
|
add r4, r0, #0
|
|
add r4, #0x62
|
|
ldrh r4, [r4]
|
|
sub r7, r4, #1
|
|
add r4, r0, #0
|
|
add r4, #0x62
|
|
strh r7, [r4]
|
|
add r4, r0, #0
|
|
add r4, #0x62
|
|
ldrh r4, [r4]
|
|
cmp r4, #0
|
|
bne _0223A53E
|
|
ldrsh r7, [r0, r6]
|
|
add r4, r0, #0
|
|
add r4, #0x5c
|
|
strh r7, [r4]
|
|
b _0223A54A
|
|
_0223A53E:
|
|
ldrsh r7, [r0, r1]
|
|
ldrsh r4, [r0, r2]
|
|
add r7, r7, r4
|
|
add r4, r0, #0
|
|
add r4, #0x5c
|
|
strh r7, [r4]
|
|
_0223A54A:
|
|
add r3, r3, #1
|
|
add r0, #8
|
|
cmp r3, #3
|
|
blt _0223A512
|
|
mov r0, #0x20
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x5c
|
|
ldrsh r0, [r5, r0]
|
|
add r0, r1, r0
|
|
strh r0, [r5, #0x20]
|
|
mov r0, #0x22
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x64
|
|
ldrsh r0, [r5, r0]
|
|
add r0, r1, r0
|
|
strh r0, [r5, #0x22]
|
|
mov r0, #0x24
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x6c
|
|
ldrsh r0, [r5, r0]
|
|
add r0, r1, r0
|
|
strh r0, [r5, #0x24]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223A578: .word 0x020EDF50
|
|
thumb_func_end MOD81_0223A434
|
|
|
|
thumb_func_start MOD81_0223A57C
|
|
MOD81_0223A57C: ; 0x0223A57C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0223A5DC
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x2c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bgt _0223A5DC
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
str r1, [r4, #0x30]
|
|
mov r0, #0
|
|
lsl r1, r1, #5
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #0x3c
|
|
bl MOD81_0223A3C0
|
|
ldr r2, _0223A5F8 ; =0xFFFFF800
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r3, #0x1e
|
|
bl MOD81_0223A3FC
|
|
mov r0, #1
|
|
str r0, [r4, #0x7c]
|
|
ldr r1, _0223A5FC ; =MOD81_0223A600
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
_0223A5DC:
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4]
|
|
add r4, #0x20
|
|
add r1, r4, #0
|
|
bl MOD81_02238B40
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223A5F8: .word 0xFFFFF800
|
|
_0223A5FC: .word MOD81_0223A600
|
|
thumb_func_end MOD81_0223A57C
|
|
|
|
thumb_func_start MOD81_0223A600
|
|
MOD81_0223A600: ; 0x0223A600
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x78]
|
|
cmp r0, #0
|
|
bne _0223A64A
|
|
ldr r1, [r4, #0x2c]
|
|
ldr r0, [r4, #0x30]
|
|
add r1, r1, r0
|
|
str r1, [r4, #0x2c]
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, r1
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x20
|
|
bl MOD81_02238B40
|
|
ldr r0, [r4]
|
|
bl MOD81_02238B8C
|
|
cmp r0, #0
|
|
bne _0223A64A
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl MOD81_02238B58
|
|
mov r0, #1
|
|
str r0, [r4, #0x78]
|
|
_0223A64A:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223A600
|
|
|
|
thumb_func_start MOD81_0223A64C
|
|
MOD81_0223A64C: ; 0x0223A64C
|
|
push {r3, lr}
|
|
bl FUN_0201B6C8
|
|
ldr r0, [r0, #0x78]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A64C
|
|
|
|
thumb_func_start MOD81_0223A658
|
|
MOD81_0223A658: ; 0x0223A658
|
|
push {r3, lr}
|
|
bl FUN_0201B6C8
|
|
ldr r0, [r0, #0x7c]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A658
|
|
|
|
thumb_func_start MOD81_0223A664
|
|
MOD81_0223A664: ; 0x0223A664
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
bl FUN_0201B6C8
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
str r1, [r4, #0x78]
|
|
add r0, sp, #0
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r0, #4]
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
bl MOD81_02238C80
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0
|
|
bl MOD81_02238C60
|
|
ldr r1, _0223A6EC ; =0x000058CC
|
|
mov r0, #2
|
|
lsl r0, r0, #0x12
|
|
str r1, [r4, #0x2c]
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r3, #0x14
|
|
add r0, #0x80
|
|
str r3, [r0]
|
|
ldr r0, [r4, #0x28]
|
|
add r2, r1, #0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223A3C0
|
|
mov r2, #0x56
|
|
ldrsh r2, [r4, r2]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
neg r2, r2
|
|
mov r3, #0x1e
|
|
bl MOD81_0223A3FC
|
|
mov r1, #2
|
|
add r2, r1, #0
|
|
add r0, r4, #0
|
|
add r2, #0xfe
|
|
mov r3, #0x32
|
|
bl MOD81_0223A3FC
|
|
mov r1, #2
|
|
ldr r0, [r4]
|
|
lsl r1, r1, #0xc
|
|
bl MOD81_02238B84
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
ldr r1, _0223A6F0 ; =MOD81_0223A6F4
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223A6EC: .word 0x000058CC
|
|
_0223A6F0: .word MOD81_0223A6F4
|
|
thumb_func_end MOD81_0223A664
|
|
|
|
thumb_func_start MOD81_0223A6F4
|
|
MOD81_0223A6F4: ; 0x0223A6F4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0223A734
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x2c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0223A734
|
|
ldr r1, _0223A74C ; =MOD81_0223A750
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
_0223A734:
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4]
|
|
add r4, #0x20
|
|
add r1, r4, #0
|
|
bl MOD81_02238B40
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223A74C: .word MOD81_0223A750
|
|
thumb_func_end MOD81_0223A6F4
|
|
|
|
thumb_func_start MOD81_0223A750
|
|
MOD81_0223A750: ; 0x0223A750
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0x6e
|
|
ble _0223A792
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, _0223A7A8 ; =0xFFFC5800
|
|
sub r0, r0, r1
|
|
mov r1, #0x35
|
|
bl _s32_div_f
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
mov r1, #0x35
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
ldr r1, _0223A7AC ; =MOD81_0223A7B0
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
_0223A792:
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4]
|
|
add r4, #0x20
|
|
add r1, r4, #0
|
|
bl MOD81_02238B40
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223A7A8: .word 0xFFFC5800
|
|
_0223A7AC: .word MOD81_0223A7B0
|
|
thumb_func_end MOD81_0223A750
|
|
|
|
thumb_func_start MOD81_0223A7B0
|
|
MOD81_0223A7B0: ; 0x0223A7B0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0223A7F0
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x2c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
sub r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0223A7F0
|
|
ldr r1, _0223A808 ; =MOD81_0223A80C
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
_0223A7F0:
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4]
|
|
add r4, #0x20
|
|
add r1, r4, #0
|
|
bl MOD81_02238B40
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223A808: .word MOD81_0223A80C
|
|
thumb_func_end MOD81_0223A7B0
|
|
|
|
thumb_func_start MOD81_0223A80C
|
|
MOD81_0223A80C: ; 0x0223A80C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x80
|
|
ldr r0, [r0]
|
|
cmp r0, #1
|
|
ble _0223A83E
|
|
mov r0, #2
|
|
lsl r0, r0, #0x10
|
|
str r0, [r4, #0x2c]
|
|
ldr r1, _0223A854 ; =MOD81_0223A858
|
|
add r0, r5, #0
|
|
bl FUN_0201B6C4
|
|
_0223A83E:
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4]
|
|
add r4, #0x20
|
|
add r1, r4, #0
|
|
bl MOD81_02238B40
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223A854: .word MOD81_0223A858
|
|
thumb_func_end MOD81_0223A80C
|
|
|
|
thumb_func_start MOD81_0223A858
|
|
MOD81_0223A858: ; 0x0223A858
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x78]
|
|
cmp r0, #0
|
|
bne _0223A894
|
|
add r0, r4, #0
|
|
bl MOD81_0223A434
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x2c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x18]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x14
|
|
bl MOD81_02238B18
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x20
|
|
bl MOD81_02238B40
|
|
ldr r0, [r4]
|
|
bl MOD81_02238B8C
|
|
cmp r0, #0
|
|
bne _0223A894
|
|
mov r0, #1
|
|
str r0, [r4, #0x78]
|
|
_0223A894:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A858
|
|
|
|
thumb_func_start MOD81_0223A898
|
|
MOD81_0223A898: ; 0x0223A898
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0xa4
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223A8C2
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0x24]
|
|
mov r0, #0
|
|
str r0, [r4, #0x28]
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl MOD81_0223AD80
|
|
_0223A8C2:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A898
|
|
|
|
thumb_func_start MOD81_0223A8C8
|
|
MOD81_0223A8C8: ; 0x0223A8C8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223A8F6
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
add r0, r4, #0
|
|
bl MOD81_0223ABC0
|
|
add r0, r4, #0
|
|
bl MOD81_0223ACD8
|
|
add r0, r4, #0
|
|
bl MOD81_0223AD68
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl MOD81_0223AD88
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223A8F6:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223A8C8
|
|
|
|
thumb_func_start MOD81_0223A8F8
|
|
MOD81_0223A8F8: ; 0x0223A8F8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #2
|
|
bhs _0223A926
|
|
lsl r3, r2, #2
|
|
ldr r2, _0223A92C ; =0x0223D114
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _0223A91C
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0223A91C:
|
|
add r0, r5, #0
|
|
bl MOD81_0223A930
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223A926:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223A92C: .word 0x0223D114
|
|
thumb_func_end MOD81_0223A8F8
|
|
|
|
thumb_func_start MOD81_0223A930
|
|
MOD81_0223A930: ; 0x0223A930
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0223A94C
|
|
bl G3X_ResetMtxStack
|
|
ldr r0, [r4, #0x28]
|
|
bl MOD81_02238940
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
_0223A94C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223A930
|
|
|
|
thumb_func_start MOD81_0223A950
|
|
MOD81_0223A950: ; 0x0223A950
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl MOD81_0223AA68
|
|
add r0, r4, #0
|
|
bl MOD81_0223ABD8
|
|
add r0, r4, #0
|
|
bl MOD81_0223ACE8
|
|
mov r2, #0
|
|
ldr r0, _0223A990 ; =MOD81_0223B090
|
|
add r1, r4, #0
|
|
str r2, [r4, #0xc]
|
|
bl FUN_0200CA98
|
|
mov r0, #3
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
ldr r3, _0223A994 ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0223A990: .word MOD81_0223B090
|
|
_0223A994: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223A950
|
|
|
|
thumb_func_start MOD81_0223A998
|
|
MOD81_0223A998: ; 0x0223A998
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #4
|
|
bhi _0223AA54
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0223A9B2: ; jump table
|
|
.short _0223A9BC - _0223A9B2 - 2 ; case 0
|
|
.short _0223A9C8 - _0223A9B2 - 2 ; case 1
|
|
.short _0223A9F2 - _0223A9B2 - 2 ; case 2
|
|
.short _0223AA1C - _0223A9B2 - 2 ; case 3
|
|
.short _0223AA46 - _0223A9B2 - 2 ; case 4
|
|
_0223A9BC:
|
|
mov r0, #0
|
|
str r0, [r5, #8]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223AA54
|
|
_0223A9C8:
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
cmp r0, #0xa
|
|
ble _0223AA54
|
|
ldr r0, _0223AA5C ; =0x000006AC
|
|
bl FUN_020054C8
|
|
add r1, r5, #0
|
|
add r0, r5, #0
|
|
add r1, #0x34
|
|
bl MOD81_0223AD9C
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223AA54
|
|
_0223A9F2:
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
bl MOD81_0223AE48
|
|
cmp r0, #0
|
|
beq _0223AA54
|
|
ldr r0, _0223AA60 ; =0x000006AD
|
|
bl FUN_020054C8
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #3
|
|
bl FUN_02020130
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223AA54
|
|
_0223AA1C:
|
|
ldr r0, [r5, #0x20]
|
|
bl FUN_02020388
|
|
cmp r0, #0
|
|
bne _0223AA54
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _0223AA64 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223AA54
|
|
_0223AA46:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223AA54
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_0223AA54:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_0223AA5C: .word 0x000006AC
|
|
_0223AA60: .word 0x000006AD
|
|
_0223AA64: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223A998
|
|
|
|
thumb_func_start MOD81_0223AA68
|
|
MOD81_0223AA68: ; 0x0223AA68
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
ldr r0, _0223ABAC ; =0x0223D158
|
|
bl FUN_0201E66C
|
|
ldr r2, _0223ABB0 ; =0x04000304
|
|
ldr r0, _0223ABB4 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223ABB8 ; =0x0223D11C
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0x24]
|
|
ldr r2, _0223ABBC ; =0x0223D13C
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0x24]
|
|
ldr r2, _0223ABBC ; =0x0223D13C
|
|
mov r1, #7
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4]
|
|
bl MOD81_02238828
|
|
cmp r0, #3
|
|
bhi _0223AABA
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0223AAB2: ; jump table
|
|
.short _0223AABA - _0223AAB2 - 2 ; case 0
|
|
.short _0223AAC6 - _0223AAB2 - 2 ; case 1
|
|
.short _0223AAD2 - _0223AAB2 - 2 ; case 2
|
|
.short _0223AADE - _0223AAB2 - 2 ; case 3
|
|
_0223AABA:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0
|
|
b _0223AAE8
|
|
_0223AAC6:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0x20
|
|
b _0223AAE8
|
|
_0223AAD2:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0x40
|
|
b _0223AAE8
|
|
_0223AADE:
|
|
mov r0, #0x18
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x19
|
|
mov r6, #0x1a
|
|
mov r5, #0
|
|
_0223AAE8:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
add r1, r7, #0
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
add r1, r7, #0
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
add r1, r6, #0
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
add r1, r6, #0
|
|
mov r2, #4
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r1, #3
|
|
add r3, r1, #0
|
|
ldr r0, [r4, #0x24]
|
|
add r2, r1, #0
|
|
add r3, #0xfd
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
mov r2, #3
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223ABAC: .word 0x0223D158
|
|
_0223ABB0: .word 0x04000304
|
|
_0223ABB4: .word 0xFFFF7FFF
|
|
_0223ABB8: .word 0x0223D11C
|
|
_0223ABBC: .word 0x0223D13C
|
|
thumb_func_end MOD81_0223AA68
|
|
|
|
thumb_func_start MOD81_0223ABC0
|
|
MOD81_0223ABC0: ; 0x0223ABC0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #3
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
bl FUN_020178A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223ABC0
|
|
|
|
thumb_func_start MOD81_0223ABD8
|
|
MOD81_0223ABD8: ; 0x0223ABD8
|
|
push {r3, r4, lr}
|
|
sub sp, #0x24
|
|
add r4, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _0223ACAC ; =0x04000060
|
|
ldr r1, _0223ACB0 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _0223ACB4 ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldr r0, _0223ACB8 ; =0x0223D12C
|
|
bl G3X_SetEdgeColorTable
|
|
mov r1, #0
|
|
ldr r0, _0223ACBC ; =0x000043FF
|
|
ldr r2, _0223ACC0 ; =0x00007FFF
|
|
mov r3, #0x3f
|
|
str r1, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0223ACC4 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _0223ACC8 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r1, _0223ACCC ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
strh r2, [r1]
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
str r0, [r4, #0x28]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0x28]
|
|
mov r2, #0x5d
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
ldr r1, _0223ACD0 ; =0x000018E3
|
|
str r0, [r4, #0x2c]
|
|
add r0, sp, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0x10
|
|
bl MOD81_02238C60
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, _0223ACD4 ; =0x000007D2
|
|
bl MOD81_02238C90
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0x18
|
|
bl MOD81_02238C40
|
|
add sp, #0x24
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0223ACAC: .word 0x04000060
|
|
_0223ACB0: .word 0xFFFFCFFD
|
|
_0223ACB4: .word 0x0000CFFB
|
|
_0223ACB8: .word 0x0223D12C
|
|
_0223ACBC: .word 0x000043FF
|
|
_0223ACC0: .word 0x00007FFF
|
|
_0223ACC4: .word 0x04000540
|
|
_0223ACC8: .word 0xBFFF0000
|
|
_0223ACCC: .word 0x04000008
|
|
_0223ACD0: .word 0x000018E3
|
|
_0223ACD4: .word 0x000007D2
|
|
thumb_func_end MOD81_0223ABD8
|
|
|
|
thumb_func_start MOD81_0223ACD8
|
|
MOD81_0223ACD8: ; 0x0223ACD8
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0223ACE4
|
|
bl MOD81_0223890C
|
|
_0223ACE4:
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223ACD8
|
|
|
|
thumb_func_start MOD81_0223ACE8
|
|
MOD81_0223ACE8: ; 0x0223ACE8
|
|
push {r4, lr}
|
|
sub sp, #0x70
|
|
add r4, r0, #0
|
|
add r0, #0x10
|
|
mov r1, #0x5d
|
|
mov r2, #7
|
|
mov r3, #8
|
|
bl MOD81_0223874C
|
|
add r0, sp, #0x5c
|
|
bl FUN_020B19DC
|
|
add r0, sp, #0x38
|
|
bl FUN_020B1A24
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x38
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #9
|
|
bl FUN_02006AE4
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x5c
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xa
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x14
|
|
add r1, #0x10
|
|
add r2, sp, #0x38
|
|
add r3, sp, #0x5c
|
|
bl MOD81_022387A8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x60
|
|
bl MOD81_022387C8
|
|
mov r1, #0
|
|
str r0, [r4, #0x20]
|
|
bl FUN_020200A0
|
|
add sp, #0x70
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223ACE8
|
|
|
|
thumb_func_start MOD81_0223AD68
|
|
MOD81_0223AD68: ; 0x0223AD68
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0223AD76
|
|
bl FUN_0201FFC8
|
|
_0223AD76:
|
|
add r4, #0x10
|
|
add r0, r4, #0
|
|
bl MOD81_02238784
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223AD68
|
|
|
|
thumb_func_start MOD81_0223AD80
|
|
MOD81_0223AD80: ; 0x0223AD80
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223AD80
|
|
|
|
thumb_func_start MOD81_0223AD88
|
|
MOD81_0223AD88: ; 0x0223AD88
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0223AD9A
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_0223AD9A:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223AD88
|
|
|
|
thumb_func_start MOD81_0223AD9C
|
|
MOD81_0223AD9C: ; 0x0223AD9C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
str r0, [r4]
|
|
ldr r1, [r0, #0x2c]
|
|
ldr r2, _0223AE2C ; =0xFFFFD870
|
|
str r1, [r4, #0xc]
|
|
ldr r0, [r0, #0x28]
|
|
ldr r1, _0223AE30 ; =0xFFF50E00
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
str r1, [r4, #0x14]
|
|
mov r1, #0xe2
|
|
lsl r1, r1, #0xc
|
|
str r1, [r4, #0x18]
|
|
add r1, r4, #0
|
|
add r1, #0x6c
|
|
strh r2, [r1]
|
|
add r1, r4, #0
|
|
ldr r2, _0223AE34 ; =0xFFFFF550
|
|
add r1, #0x6e
|
|
strh r2, [r1]
|
|
ldr r1, _0223AE38 ; =0x000134C4
|
|
str r1, [r4, #0x3c]
|
|
ldr r1, _0223AE3C ; =0xFFFF4D56
|
|
str r1, [r4, #0x40]
|
|
str r0, [r4, #0x60]
|
|
str r0, [r4, #0x64]
|
|
mov r1, #2
|
|
str r0, [r4, #0x68]
|
|
lsl r1, r1, #0xc
|
|
strh r1, [r4, #0x34]
|
|
ldr r1, _0223AE40 ; =0xFFFFE000
|
|
strh r1, [r4, #0x36]
|
|
strh r0, [r4, #0x38]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B40
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x54]
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x44]
|
|
mov r0, #0x63
|
|
lsl r0, r0, #0xa
|
|
str r0, [r4, #0x48]
|
|
mov r0, #0
|
|
str r0, [r4, #0x5c]
|
|
add r0, r4, #0
|
|
bl MOD81_0223AE90
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B28
|
|
ldr r0, _0223AE44 ; =MOD81_0223AF5C
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
nop
|
|
_0223AE2C: .word 0xFFFFD870
|
|
_0223AE30: .word 0xFFF50E00
|
|
_0223AE34: .word 0xFFFFF550
|
|
_0223AE38: .word 0x000134C4
|
|
_0223AE3C: .word 0xFFFF4D56
|
|
_0223AE40: .word 0xFFFFE000
|
|
_0223AE44: .word MOD81_0223AF5C
|
|
thumb_func_end MOD81_0223AD9C
|
|
|
|
thumb_func_start MOD81_0223AE48
|
|
MOD81_0223AE48: ; 0x0223AE48
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0223AE52
|
|
mov r0, #1
|
|
bx lr
|
|
_0223AE52:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223AE48
|
|
|
|
thumb_func_start MOD81_0223AE58
|
|
MOD81_0223AE58: ; 0x0223AE58
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, [sp, #0x18]
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r4, #0
|
|
beq _0223AE8E
|
|
ldr r0, [r5, #0x44]
|
|
sub r0, r1, r0
|
|
add r1, r4, #0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x4c]
|
|
ldr r0, [r5, #0x48]
|
|
add r1, r4, #0
|
|
sub r0, r6, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x50]
|
|
ldr r0, [r5, #0x54]
|
|
add r1, r4, #0
|
|
sub r0, r7, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x58]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, #0x5c]
|
|
_0223AE8E:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD81_0223AE58
|
|
|
|
thumb_func_start MOD81_0223AE90
|
|
MOD81_0223AE90: ; 0x0223AE90
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x6c
|
|
ldrh r0, [r0]
|
|
mov r1, #0xb6
|
|
bl _s32_div_f
|
|
add r4, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
cmp r4, r0
|
|
blt _0223AEAA
|
|
sub r4, r4, r0
|
|
_0223AEAA:
|
|
mov r0, #0x6c
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x6e
|
|
ldrsh r0, [r5, r0]
|
|
add r1, r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x6c
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x5c]
|
|
cmp r0, #0
|
|
beq _0223AEE4
|
|
ldr r1, [r5, #0x44]
|
|
ldr r0, [r5, #0x4c]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x44]
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x50]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
ldr r1, [r5, #0x54]
|
|
ldr r0, [r5, #0x58]
|
|
add r1, r1, r0
|
|
str r1, [r5, #0x54]
|
|
ldr r0, [r5, #0xc]
|
|
bl MOD81_02238B84
|
|
ldr r0, [r5, #0x5c]
|
|
sub r0, r0, #1
|
|
str r0, [r5, #0x5c]
|
|
_0223AEE4:
|
|
add r0, r4, #0
|
|
add r0, #0x5a
|
|
lsl r1, r0, #2
|
|
ldr r0, _0223AF58 ; =0x020EDF50
|
|
ldr r2, [r5, #0x44]
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
str r1, [r5, #0x1c]
|
|
ldr r2, [r5, #0x48]
|
|
ldr r0, _0223AF58 ; =0x020EDF50
|
|
lsl r1, r4, #2
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
str r1, [r5, #0x20]
|
|
add r1, r5, #0
|
|
str r3, [r5, #0x24]
|
|
mov r0, #0x34
|
|
ldrsh r2, [r5, r0]
|
|
mov r0, #3
|
|
lsl r0, r0, #8
|
|
add r0, r2, r0
|
|
strh r0, [r5, #0x34]
|
|
ldr r0, [r5, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B40
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r5, #0x28
|
|
add r0, #0x1c
|
|
add r1, #0x10
|
|
add r2, r5, #0
|
|
bl VEC_Add
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223AF58: .word 0x020EDF50
|
|
thumb_func_end MOD81_0223AE90
|
|
|
|
thumb_func_start MOD81_0223AF5C
|
|
MOD81_0223AF5C: ; 0x0223AF5C
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #0x68]
|
|
cmp r1, #0x3c
|
|
bge _0223AF6C
|
|
add r1, r1, #1
|
|
str r1, [r4, #0x68]
|
|
_0223AF6C:
|
|
ldr r1, [r4, #0x60]
|
|
cmp r1, #4
|
|
bls _0223AF74
|
|
b _0223B084
|
|
_0223AF74:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0223AF80: ; jump table
|
|
.short _0223AF8A - _0223AF80 - 2 ; case 0
|
|
.short _0223AFBE - _0223AF80 - 2 ; case 1
|
|
.short _0223AFFC - _0223AF80 - 2 ; case 2
|
|
.short _0223B042 - _0223AF80 - 2 ; case 3
|
|
.short _0223B072 - _0223AF80 - 2 ; case 4
|
|
_0223AF8A:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x3c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223AE90
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0xc]
|
|
bl MOD81_02238B8C
|
|
cmp r0, #0
|
|
beq _0223B084
|
|
ldr r0, [r4, #0x60]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x60]
|
|
pop {r3, r4, pc}
|
|
_0223AFBE:
|
|
ldr r0, [r4, #0xc]
|
|
bl MOD81_02238B8C
|
|
cmp r0, #0
|
|
bne _0223AFD8
|
|
ldr r0, [r4]
|
|
bl MOD81_0223B088
|
|
ldr r0, [r4, #0x60]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x60]
|
|
pop {r3, r4, pc}
|
|
_0223AFD8:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x3c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223AE90
|
|
ldr r0, [r4, #0xc]
|
|
add r4, #0x28
|
|
add r1, r4, #0
|
|
bl MOD81_02238B18
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
_0223AFFC:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x3c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223AE90
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0x68]
|
|
cmp r0, #0x3c
|
|
blt _0223B084
|
|
mov r1, #2
|
|
lsl r1, r1, #0xa
|
|
mov r0, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
lsr r3, r1, #2
|
|
bl MOD81_0223AE58
|
|
mov r0, #0
|
|
str r0, [r4, #0x64]
|
|
ldr r0, [r4, #0x60]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x60]
|
|
pop {r3, r4, pc}
|
|
_0223B042:
|
|
add r0, r4, #0
|
|
bl MOD81_0223AE90
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0x64]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x64]
|
|
cmp r0, #0xc
|
|
blt _0223B084
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0
|
|
bl MOD81_02238B58
|
|
mov r0, #0
|
|
str r0, [r4, #0x64]
|
|
ldr r0, [r4, #0x60]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x60]
|
|
pop {r3, r4, pc}
|
|
_0223B072:
|
|
ldr r1, [r4, #0x64]
|
|
add r1, r1, #1
|
|
str r1, [r4, #0x64]
|
|
cmp r1, #8
|
|
ble _0223B084
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
bl FUN_0200CAB4
|
|
_0223B084:
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
thumb_func_end MOD81_0223AF5C
|
|
|
|
thumb_func_start MOD81_0223B088
|
|
MOD81_0223B088: ; 0x0223B088
|
|
mov r1, #1
|
|
str r1, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B088
|
|
|
|
thumb_func_start MOD81_0223B090
|
|
MOD81_0223B090: ; 0x0223B090
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _0223B0DC
|
|
mov r3, #0
|
|
ldr r1, _0223B0E0 ; =0x00001150
|
|
str r3, [r4, #0xc]
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
mov r1, #3
|
|
ldr r0, [r4, #0x24]
|
|
add r2, r1, #0
|
|
bl FUN_020179E0
|
|
mov r2, #3
|
|
add r3, r2, #0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
add r3, #0xfd
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0
|
|
bl MOD81_02238C70
|
|
ldr r2, _0223B0E4 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
_0223B0DC:
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223B0E0: .word 0x00001150
|
|
_0223B0E4: .word 0x04000304
|
|
thumb_func_end MOD81_0223B090
|
|
|
|
thumb_func_start MOD81_0223B0E8
|
|
MOD81_0223B0E8: ; 0x0223B0E8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x24
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223B106
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0xc]
|
|
_0223B106:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B0E8
|
|
|
|
thumb_func_start MOD81_0223B10C
|
|
MOD81_0223B10C: ; 0x0223B10C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223B11C
|
|
bl MOD81_0223B478
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223B11C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B10C
|
|
|
|
thumb_func_start MOD81_0223B120
|
|
MOD81_0223B120: ; 0x0223B120
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #2
|
|
bhs _0223B148
|
|
lsl r3, r2, #2
|
|
ldr r2, _0223B14C ; =0x0223D180
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _0223B144
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0223B144:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223B148:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223B14C: .word 0x0223D180
|
|
thumb_func_end MOD81_0223B120
|
|
|
|
thumb_func_start MOD81_0223B150
|
|
MOD81_0223B150: ; 0x0223B150
|
|
push {lr}
|
|
sub sp, #0xc
|
|
bl MOD81_0223B264
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
ldr r3, _0223B174 ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0223B174: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223B150
|
|
|
|
thumb_func_start MOD81_0223B178
|
|
MOD81_0223B178: ; 0x0223B178
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0223B190
|
|
cmp r0, #1
|
|
beq _0223B1C2
|
|
cmp r0, #2
|
|
beq _0223B1EE
|
|
b _0223B1FC
|
|
_0223B190:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223B1FC
|
|
ldr r0, _0223B204 ; =0xFFE80000
|
|
mov r2, #0
|
|
str r0, [r5, #0x10]
|
|
mov r0, #5
|
|
lsl r0, r0, #0x10
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _0223B208 ; =0x00005999
|
|
add r1, r5, #0
|
|
str r0, [r5, #0x18]
|
|
ldr r0, _0223B20C ; =0xFFFFDDDE
|
|
str r0, [r5, #0x1c]
|
|
mov r0, #0x3c
|
|
str r0, [r5, #8]
|
|
ldr r0, _0223B210 ; =MOD81_0223B21C
|
|
str r2, [r5, #0x20]
|
|
bl FUN_0200CA60
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223B1FC
|
|
_0223B1C2:
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _0223B1FC
|
|
ldr r0, _0223B214 ; =0x000006A9
|
|
bl FUN_020054C8
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _0223B218 ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223B1FC
|
|
_0223B1EE:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223B1FC
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_0223B1FC:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_0223B204: .word 0xFFE80000
|
|
_0223B208: .word 0x00005999
|
|
_0223B20C: .word 0xFFFFDDDE
|
|
_0223B210: .word MOD81_0223B21C
|
|
_0223B214: .word 0x000006A9
|
|
_0223B218: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223B178
|
|
|
|
thumb_func_start MOD81_0223B21C
|
|
MOD81_0223B21C: ; 0x0223B21C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0223B24A
|
|
sub r0, r0, #1
|
|
str r0, [r4, #8]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x1c]
|
|
add r2, r1, r0
|
|
str r2, [r4, #0x14]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0xc]
|
|
asr r1, r1, #0xc
|
|
asr r2, r2, #0xc
|
|
bl MOD81_0223B4B0
|
|
pop {r3, r4, r5, pc}
|
|
_0223B24A:
|
|
mov r1, #0x2f
|
|
mvn r1, r1
|
|
ldr r0, [r4, #0xc]
|
|
add r2, r1, #0
|
|
bl MOD81_0223B4B0
|
|
mov r0, #1
|
|
str r0, [r4, #0x20]
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B21C
|
|
|
|
thumb_func_start MOD81_0223B264
|
|
MOD81_0223B264: ; 0x0223B264
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, _0223B45C ; =0x0223D1EC
|
|
bl FUN_0201E66C
|
|
ldr r2, _0223B460 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223B464 ; =0x0223D188
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B468 ; =0x0223D198
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B468 ; =0x0223D198
|
|
mov r1, #5
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B46C ; =0x0223D1B4
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B470 ; =0x0223D1D0
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B470 ; =0x0223D1D0
|
|
mov r1, #7
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #0x13
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #0x13
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #0x12
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #0x12
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0x14
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0x14
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl FUN_02006930
|
|
mov r0, #0xc8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
ldr r0, [r4, #0xc]
|
|
mov r2, #0
|
|
add r3, r1, #0
|
|
bl FUN_02017F48
|
|
mov r0, #0xc8
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
mov r3, #1
|
|
bl FUN_02017F48
|
|
mov r0, #0xc8
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
mov r2, #0
|
|
mov r3, #1
|
|
bl FUN_02017F48
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r0, [r4]
|
|
mov r2, #1
|
|
mov r3, #0xe
|
|
bl MOD81_022385D0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
ldr r0, [r4]
|
|
mov r2, #5
|
|
mov r3, #0xe
|
|
bl MOD81_022385D0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
mov r2, #2
|
|
mov r3, #0xf
|
|
bl MOD81_022385D0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x40
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #1
|
|
mov r2, #0xc8
|
|
bl FUN_02018540
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x40
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #5
|
|
mov r2, #0xc8
|
|
bl FUN_02018540
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x40
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
mov r2, #0xc8
|
|
bl FUN_02018540
|
|
mov r0, #0x14
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4]
|
|
mov r2, #1
|
|
mov r3, #0xe
|
|
bl MOD81_022386BC
|
|
mov r0, #0x14
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
ldr r0, [r4]
|
|
mov r2, #5
|
|
mov r3, #0xe
|
|
bl MOD81_022386BC
|
|
mov r2, #2
|
|
str r2, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
mov r3, #0xf
|
|
bl MOD81_022386BC
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #1
|
|
bl FUN_02017CD0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl FUN_02017CD0
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223B474 ; =0xFFFFFE80
|
|
mov r1, #0x50
|
|
bl MOD81_0223B4B0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0223B45C: .word 0x0223D1EC
|
|
_0223B460: .word 0x04000304
|
|
_0223B464: .word 0x0223D188
|
|
_0223B468: .word 0x0223D198
|
|
_0223B46C: .word 0x0223D1B4
|
|
_0223B470: .word 0x0223D1D0
|
|
_0223B474: .word 0xFFFFFE80
|
|
thumb_func_end MOD81_0223B264
|
|
|
|
thumb_func_start MOD81_0223B478
|
|
MOD81_0223B478: ; 0x0223B478
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #3
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #7
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #6
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #1
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #5
|
|
bl FUN_020178A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B478
|
|
|
|
thumb_func_start MOD81_0223B4B0
|
|
MOD81_0223B4B0: ; 0x0223B4B0
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0223B4E4 ; =0x000001FF
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
and r4, r3
|
|
add r5, r0, #0
|
|
mov r1, #2
|
|
mov r2, #3
|
|
and r3, r6
|
|
bl FUN_020179E0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
mov r2, #3
|
|
add r3, r4, #0
|
|
bl FUN_020179E0
|
|
add r4, #0xc0
|
|
add r0, r5, #0
|
|
mov r1, #5
|
|
mov r2, #3
|
|
add r3, r4, #0
|
|
bl FUN_020179E0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0223B4E4: .word 0x000001FF
|
|
thumb_func_end MOD81_0223B4B0
|
|
|
|
thumb_func_start MOD81_0223B4E8
|
|
MOD81_0223B4E8: ; 0x0223B4E8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0xb0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223B51C
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0x24]
|
|
mov r0, #0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl MOD81_0223B9A0
|
|
ldr r0, _0223B520 ; =MOD81_0223BCA8
|
|
add r1, r4, #0
|
|
bl FUN_02015F10
|
|
_0223B51C:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223B520: .word MOD81_0223BCA8
|
|
thumb_func_end MOD81_0223B4E8
|
|
|
|
thumb_func_start MOD81_0223B524
|
|
MOD81_0223B524: ; 0x0223B524
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223B552
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_02015F10
|
|
add r0, r4, #0
|
|
bl MOD81_0223B7D0
|
|
add r0, r4, #0
|
|
bl MOD81_0223B8F8
|
|
add r0, r4, #0
|
|
bl MOD81_0223B988
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
bl MOD81_0223B9A8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223B552:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223B524
|
|
|
|
thumb_func_start MOD81_0223B554
|
|
MOD81_0223B554: ; 0x0223B554
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #2
|
|
bhs _0223B57C
|
|
lsl r3, r2, #2
|
|
ldr r2, _0223B580 ; =0x0223D214
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _0223B578
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0223B578:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223B57C:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223B580: .word 0x0223D214
|
|
thumb_func_end MOD81_0223B554
|
|
|
|
thumb_func_start MOD81_0223B584
|
|
MOD81_0223B584: ; 0x0223B584
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl MOD81_0223B670
|
|
add r0, r4, #0
|
|
bl MOD81_0223B7E8
|
|
add r0, r4, #0
|
|
bl MOD81_0223B908
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
ldr r3, _0223B5B8 ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0223B5B8: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223B584
|
|
|
|
thumb_func_start MOD81_0223B5BC
|
|
MOD81_0223B5BC: ; 0x0223B5BC
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #3
|
|
bhi _0223B662
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0223B5D6: ; jump table
|
|
.short _0223B5DE - _0223B5D6 - 2 ; case 0
|
|
.short _0223B5FE - _0223B5D6 - 2 ; case 1
|
|
.short _0223B628 - _0223B5D6 - 2 ; case 2
|
|
.short _0223B654 - _0223B5D6 - 2 ; case 3
|
|
_0223B5DE:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223B662
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #3
|
|
bl FUN_02020130
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223B662
|
|
_0223B5FE:
|
|
ldr r0, [r5, #0x20]
|
|
bl FUN_02020388
|
|
cmp r0, #0
|
|
bne _0223B662
|
|
ldr r0, _0223B668 ; =0x000006AB
|
|
bl FUN_020054C8
|
|
add r1, r5, #0
|
|
add r0, r5, #0
|
|
add r1, #0x34
|
|
bl MOD81_0223B9BC
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223B662
|
|
_0223B628:
|
|
add r5, #0x34
|
|
add r0, r5, #0
|
|
bl MOD81_0223BA7C
|
|
cmp r0, #0
|
|
beq _0223B662
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
ldr r3, _0223B66C ; =0x00007FFF
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223B662
|
|
_0223B654:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223B662
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_0223B662:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0223B668: .word 0x000006AB
|
|
_0223B66C: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223B5BC
|
|
|
|
thumb_func_start MOD81_0223B670
|
|
MOD81_0223B670: ; 0x0223B670
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r4, r0, #0
|
|
ldr r0, _0223B7C0 ; =0x0223D258
|
|
bl FUN_0201E66C
|
|
ldr r2, _0223B7C4 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223B7C8 ; =0x0223D21C
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0x24]
|
|
ldr r2, _0223B7CC ; =0x0223D23C
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0x24]
|
|
ldr r2, _0223B7CC ; =0x0223D23C
|
|
mov r1, #7
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4]
|
|
bl MOD81_02238828
|
|
cmp r0, #3
|
|
bhi _0223B6C2
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0223B6BA: ; jump table
|
|
.short _0223B6C2 - _0223B6BA - 2 ; case 0
|
|
.short _0223B6CE - _0223B6BA - 2 ; case 1
|
|
.short _0223B6DA - _0223B6BA - 2 ; case 2
|
|
.short _0223B6E6 - _0223B6BA - 2 ; case 3
|
|
_0223B6C2:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0
|
|
b _0223B6F0
|
|
_0223B6CE:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0x20
|
|
b _0223B6F0
|
|
_0223B6DA:
|
|
mov r0, #0xf
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x10
|
|
mov r6, #0x11
|
|
mov r5, #0x40
|
|
b _0223B6F0
|
|
_0223B6E6:
|
|
mov r0, #0x18
|
|
str r0, [sp, #0x10]
|
|
mov r7, #0x19
|
|
mov r6, #0x1a
|
|
mov r5, #0
|
|
_0223B6F0:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
add r1, r7, #0
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
add r1, r7, #0
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [r4, #0x24]
|
|
mov r0, #0x5d
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
add r1, r6, #0
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
add r1, r6, #0
|
|
mov r2, #4
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r1, #3
|
|
ldr r0, [r4, #0x24]
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
mov r2, #3
|
|
add r3, r2, #0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
add r3, #0xfd
|
|
bl FUN_020179E0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
bl FUN_02033E74
|
|
mov r0, #1
|
|
mov r1, #0x39
|
|
bl FUN_02033F04
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223B7C0: .word 0x0223D258
|
|
_0223B7C4: .word 0x04000304
|
|
_0223B7C8: .word 0x0223D21C
|
|
_0223B7CC: .word 0x0223D23C
|
|
thumb_func_end MOD81_0223B670
|
|
|
|
thumb_func_start MOD81_0223B7D0
|
|
MOD81_0223B7D0: ; 0x0223B7D0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #3
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
bl FUN_020178A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B7D0
|
|
|
|
thumb_func_start MOD81_0223B7E8
|
|
MOD81_0223B7E8: ; 0x0223B7E8
|
|
push {r3, r4, lr}
|
|
sub sp, #0x24
|
|
add r4, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _0223B8C8 ; =0x04000060
|
|
ldr r1, _0223B8CC ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _0223B8D0 ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldr r0, _0223B8D4 ; =0x0223D22C
|
|
bl G3X_SetEdgeColorTable
|
|
mov r1, #0
|
|
ldr r0, _0223B8D8 ; =0x000043FF
|
|
ldr r2, _0223B8DC ; =0x00007FFF
|
|
mov r3, #0x3f
|
|
str r1, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0223B8E0 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _0223B8E4 ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r1, _0223B8E8 ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
strh r2, [r1]
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
str r0, [r4, #0x28]
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0x28]
|
|
mov r2, #0x5d
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
ldr r1, _0223B8EC ; =0x000018E3
|
|
str r0, [r4, #0x2c]
|
|
add r0, sp, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0x10
|
|
bl MOD81_02238C60
|
|
ldr r1, _0223B8F0 ; =0x00001150
|
|
add r0, sp, #0x10
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0x10
|
|
bl MOD81_02238C70
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, _0223B8F4 ; =0x000007D2
|
|
bl MOD81_02238C90
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0x18
|
|
bl MOD81_02238C40
|
|
add sp, #0x24
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_0223B8C8: .word 0x04000060
|
|
_0223B8CC: .word 0xFFFFCFFD
|
|
_0223B8D0: .word 0x0000CFFB
|
|
_0223B8D4: .word 0x0223D22C
|
|
_0223B8D8: .word 0x000043FF
|
|
_0223B8DC: .word 0x00007FFF
|
|
_0223B8E0: .word 0x04000540
|
|
_0223B8E4: .word 0xBFFF0000
|
|
_0223B8E8: .word 0x04000008
|
|
_0223B8EC: .word 0x000018E3
|
|
_0223B8F0: .word 0x00001150
|
|
_0223B8F4: .word 0x000007D2
|
|
thumb_func_end MOD81_0223B7E8
|
|
|
|
thumb_func_start MOD81_0223B8F8
|
|
MOD81_0223B8F8: ; 0x0223B8F8
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0223B904
|
|
bl MOD81_0223890C
|
|
_0223B904:
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B8F8
|
|
|
|
thumb_func_start MOD81_0223B908
|
|
MOD81_0223B908: ; 0x0223B908
|
|
push {r4, lr}
|
|
sub sp, #0x70
|
|
add r4, r0, #0
|
|
add r0, #0x10
|
|
mov r1, #0x5d
|
|
mov r2, #7
|
|
mov r3, #8
|
|
bl MOD81_0223874C
|
|
add r0, sp, #0x5c
|
|
bl FUN_020B19DC
|
|
add r0, sp, #0x38
|
|
bl FUN_020B1A24
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x38
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #9
|
|
bl FUN_02006AE4
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x5c
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xa
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #1
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x14
|
|
add r1, #0x10
|
|
add r2, sp, #0x38
|
|
add r3, sp, #0x5c
|
|
bl MOD81_022387A8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x60
|
|
bl MOD81_022387C8
|
|
mov r1, #0
|
|
str r0, [r4, #0x20]
|
|
bl FUN_020200A0
|
|
add sp, #0x70
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B908
|
|
|
|
thumb_func_start MOD81_0223B988
|
|
MOD81_0223B988: ; 0x0223B988
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0223B996
|
|
bl FUN_0201FFC8
|
|
_0223B996:
|
|
add r4, #0x10
|
|
add r0, r4, #0
|
|
bl MOD81_02238784
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223B988
|
|
|
|
thumb_func_start MOD81_0223B9A0
|
|
MOD81_0223B9A0: ; 0x0223B9A0
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223B9A0
|
|
|
|
thumb_func_start MOD81_0223B9A8
|
|
MOD81_0223B9A8: ; 0x0223B9A8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0223B9BA
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_0223B9BA:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223B9A8
|
|
|
|
thumb_func_start MOD81_0223B9BC
|
|
MOD81_0223B9BC: ; 0x0223B9BC
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r1, #0
|
|
str r0, [r4]
|
|
ldr r1, [r0, #0x2c]
|
|
ldr r2, _0223BA5C ; =0xFFFFD870
|
|
str r1, [r4, #0xc]
|
|
ldr r0, [r0, #0x28]
|
|
ldr r1, _0223BA60 ; =0x003D6C00
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
str r1, [r4, #0x14]
|
|
ldr r1, _0223BA64 ; =0xFFE44000
|
|
str r1, [r4, #0x18]
|
|
add r1, r4, #0
|
|
add r1, #0x78
|
|
strh r2, [r1]
|
|
add r1, r4, #0
|
|
ldr r2, _0223BA68 ; =0xFFFFF550
|
|
add r1, #0x7a
|
|
strh r2, [r1]
|
|
ldr r1, _0223BA6C ; =0xFFFEF2C6
|
|
str r1, [r4, #0x3c]
|
|
ldr r1, _0223BA70 ; =0x0000936D
|
|
str r1, [r4, #0x40]
|
|
str r0, [r4, #0x6c]
|
|
str r0, [r4, #0x70]
|
|
mov r1, #2
|
|
str r0, [r4, #0x74]
|
|
lsl r1, r1, #0xc
|
|
strh r1, [r4, #0x34]
|
|
ldr r1, _0223BA74 ; =0xFFFFE000
|
|
strh r1, [r4, #0x36]
|
|
strh r0, [r4, #0x38]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B40
|
|
mov r3, #2
|
|
lsl r3, r3, #8
|
|
mov r1, #0x4a
|
|
mov r2, #0x63
|
|
str r3, [r4, #0x5c]
|
|
lsl r0, r3, #2
|
|
str r0, [r4, #0x44]
|
|
str r0, [r4, #0x48]
|
|
mov r0, #0
|
|
str r0, [r4, #0x68]
|
|
mov r0, #0xc
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
lsl r1, r1, #0xa
|
|
lsl r2, r2, #0xa
|
|
lsl r3, r3, #3
|
|
bl MOD81_0223BA8C
|
|
add r0, r4, #0
|
|
bl MOD81_0223BAD0
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B28
|
|
ldr r0, _0223BA78 ; =MOD81_0223BBC8
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r4, #4]
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_0223BA5C: .word 0xFFFFD870
|
|
_0223BA60: .word 0x003D6C00
|
|
_0223BA64: .word 0xFFE44000
|
|
_0223BA68: .word 0xFFFFF550
|
|
_0223BA6C: .word 0xFFFEF2C6
|
|
_0223BA70: .word 0x0000936D
|
|
_0223BA74: .word 0xFFFFE000
|
|
_0223BA78: .word MOD81_0223BBC8
|
|
thumb_func_end MOD81_0223B9BC
|
|
|
|
thumb_func_start MOD81_0223BA7C
|
|
MOD81_0223BA7C: ; 0x0223BA7C
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0223BA86
|
|
mov r0, #1
|
|
bx lr
|
|
_0223BA86:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BA7C
|
|
|
|
thumb_func_start MOD81_0223BA8C
|
|
MOD81_0223BA8C: ; 0x0223BA8C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x18]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
str r0, [sp]
|
|
cmp r0, #0
|
|
beq _0223BACC
|
|
ldr r0, [r5, #0x44]
|
|
ldr r1, [sp]
|
|
sub r0, r4, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x4c]
|
|
ldr r0, [r5, #0x48]
|
|
ldr r1, [sp]
|
|
sub r0, r6, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x50]
|
|
ldr r0, [r5, #0x5c]
|
|
ldr r1, [sp]
|
|
sub r0, r7, r0
|
|
bl _s32_div_f
|
|
str r0, [r5, #0x60]
|
|
str r4, [r5, #0x54]
|
|
str r6, [r5, #0x58]
|
|
ldr r0, [sp, #0x18]
|
|
str r7, [r5, #0x64]
|
|
str r0, [r5, #0x68]
|
|
_0223BACC:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BA8C
|
|
|
|
thumb_func_start MOD81_0223BAD0
|
|
MOD81_0223BAD0: ; 0x0223BAD0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0223BBC0 ; =0x0223D3A0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0223BBAE
|
|
add r0, r5, #0
|
|
add r0, #0x78
|
|
ldrh r0, [r0]
|
|
mov r1, #0xb6
|
|
bl _s32_div_f
|
|
add r4, r0, #0
|
|
mov r0, #0x5a
|
|
lsl r0, r0, #2
|
|
cmp r4, r0
|
|
blt _0223BAF4
|
|
sub r4, r4, r0
|
|
_0223BAF4:
|
|
mov r0, #0x78
|
|
ldrsh r1, [r5, r0]
|
|
mov r0, #0x7a
|
|
ldrsh r0, [r5, r0]
|
|
sub r1, r1, r0
|
|
add r0, r5, #0
|
|
add r0, #0x78
|
|
strh r1, [r0]
|
|
ldr r0, [r5, #0x68]
|
|
cmp r0, #0
|
|
beq _0223BB3C
|
|
sub r0, r0, #1
|
|
str r0, [r5, #0x68]
|
|
beq _0223BB28
|
|
ldr r1, [r5, #0x44]
|
|
ldr r0, [r5, #0x4c]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x44]
|
|
ldr r1, [r5, #0x48]
|
|
ldr r0, [r5, #0x50]
|
|
add r0, r1, r0
|
|
str r0, [r5, #0x48]
|
|
ldr r1, [r5, #0x5c]
|
|
ldr r0, [r5, #0x60]
|
|
add r0, r1, r0
|
|
b _0223BB32
|
|
_0223BB28:
|
|
ldr r0, [r5, #0x54]
|
|
str r0, [r5, #0x44]
|
|
ldr r0, [r5, #0x58]
|
|
str r0, [r5, #0x48]
|
|
ldr r0, [r5, #0x64]
|
|
_0223BB32:
|
|
str r0, [r5, #0x5c]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r5, #0x5c]
|
|
bl MOD81_02238B84
|
|
_0223BB3C:
|
|
add r0, r4, #0
|
|
add r0, #0x5a
|
|
lsl r1, r0, #2
|
|
ldr r0, _0223BBC4 ; =0x020EDF50
|
|
ldr r2, [r5, #0x44]
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
str r1, [r5, #0x1c]
|
|
ldr r2, [r5, #0x48]
|
|
ldr r0, _0223BBC4 ; =0x020EDF50
|
|
lsl r1, r4, #2
|
|
ldr r0, [r0, r1]
|
|
asr r3, r2, #0x1f
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #2
|
|
mov r3, #0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
str r1, [r5, #0x20]
|
|
add r1, r5, #0
|
|
str r3, [r5, #0x24]
|
|
mov r0, #0x34
|
|
ldrsh r2, [r5, r0]
|
|
mov r0, #3
|
|
lsl r0, r0, #8
|
|
sub r0, r2, r0
|
|
strh r0, [r5, #0x34]
|
|
ldr r0, [r5, #0xc]
|
|
add r1, #0x34
|
|
bl MOD81_02238B40
|
|
add r0, r5, #0
|
|
add r1, r5, #0
|
|
add r5, #0x28
|
|
add r0, #0x1c
|
|
add r1, #0x10
|
|
add r2, r5, #0
|
|
bl VEC_Add
|
|
pop {r3, r4, r5, pc}
|
|
_0223BBAE:
|
|
add r2, r5, #0
|
|
add r2, #0x10
|
|
ldmia r2!, {r0, r1}
|
|
add r5, #0x28
|
|
stmia r5!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223BBC0: .word 0x0223D3A0
|
|
_0223BBC4: .word 0x020EDF50
|
|
thumb_func_end MOD81_0223BAD0
|
|
|
|
thumb_func_start MOD81_0223BBC8
|
|
MOD81_0223BBC8: ; 0x0223BBC8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4, #0x74]
|
|
cmp r1, #0x46
|
|
bge _0223BBD6
|
|
add r1, r1, #1
|
|
str r1, [r4, #0x74]
|
|
_0223BBD6:
|
|
ldr r1, [r4, #0x6c]
|
|
cmp r1, #3
|
|
bhi _0223BC9C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0223BBE8: ; jump table
|
|
.short _0223BBF0 - _0223BBE8 - 2 ; case 0
|
|
.short _0223BC16 - _0223BBE8 - 2 ; case 1
|
|
.short _0223BC50 - _0223BBE8 - 2 ; case 2
|
|
.short _0223BC8A - _0223BBE8 - 2 ; case 3
|
|
_0223BBF0:
|
|
add r0, r4, #0
|
|
bl MOD81_0223BAD0
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0x74]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x74]
|
|
cmp r0, #0xc
|
|
blt _0223BC9C
|
|
mov r0, #0
|
|
str r0, [r4, #0x74]
|
|
ldr r0, [r4, #0x6c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x6c]
|
|
pop {r4, pc}
|
|
_0223BC16:
|
|
ldr r0, [r4, #0xc]
|
|
bl MOD81_02238B8C
|
|
cmp r0, #0
|
|
bne _0223BC2E
|
|
ldr r0, [r4]
|
|
bl MOD81_0223BCA0
|
|
ldr r0, [r4, #0x6c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x6c]
|
|
pop {r4, pc}
|
|
_0223BC2E:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x3c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223BAD0
|
|
ldr r0, [r4, #0xc]
|
|
add r4, #0x28
|
|
add r1, r4, #0
|
|
bl MOD81_02238B18
|
|
pop {r4, pc}
|
|
_0223BC50:
|
|
ldr r1, [r4, #0x14]
|
|
ldr r0, [r4, #0x3c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x40]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
add r0, r4, #0
|
|
bl MOD81_0223BAD0
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x28
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #0x74]
|
|
cmp r0, #0x46
|
|
blt _0223BC9C
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0
|
|
bl MOD81_02238B58
|
|
mov r0, #0
|
|
str r0, [r4, #0x70]
|
|
ldr r0, [r4, #0x6c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x6c]
|
|
pop {r4, pc}
|
|
_0223BC8A:
|
|
ldr r1, [r4, #0x70]
|
|
add r1, r1, #1
|
|
str r1, [r4, #0x70]
|
|
cmp r1, #8
|
|
ble _0223BC9C
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
bl FUN_0200CAB4
|
|
_0223BC9C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BBC8
|
|
|
|
thumb_func_start MOD81_0223BCA0
|
|
MOD81_0223BCA0: ; 0x0223BCA0
|
|
mov r1, #1
|
|
str r1, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BCA0
|
|
|
|
thumb_func_start MOD81_0223BCA8
|
|
MOD81_0223BCA8: ; 0x0223BCA8
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0223BCC6
|
|
bl G3X_ResetMtxStack
|
|
ldr r0, [r4, #0x28]
|
|
bl MOD81_02238940
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
_0223BCC6:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _0223BD08
|
|
ldr r1, _0223BD0C ; =0x0000EEB0
|
|
add r0, sp, #0
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
mov r1, #3
|
|
add r3, r1, #0
|
|
ldr r0, [r4, #0x24]
|
|
add r2, r1, #0
|
|
add r3, #0xfd
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #7
|
|
mov r2, #3
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #0x28]
|
|
add r1, sp, #0
|
|
bl MOD81_02238C70
|
|
ldr r2, _0223BD10 ; =0x04000304
|
|
ldr r0, _0223BD14 ; =0xFFFF7FFF
|
|
ldrh r1, [r2]
|
|
and r0, r1
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
_0223BD08:
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0223BD0C: .word 0x0000EEB0
|
|
_0223BD10: .word 0x04000304
|
|
_0223BD14: .word 0xFFFF7FFF
|
|
thumb_func_end MOD81_0223BCA8
|
|
|
|
thumb_func_start MOD81_0223BD18
|
|
MOD81_0223BD18: ; 0x0223BD18
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x3c
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223BD46
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0
|
|
str r0, [r4, #0x20]
|
|
str r0, [r4, #0x10]
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4, #0x18]
|
|
str r0, [r4, #0x30]
|
|
str r0, [r4, #0x34]
|
|
str r0, [r4, #0x38]
|
|
_0223BD46:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BD18
|
|
|
|
thumb_func_start MOD81_0223BD4C
|
|
MOD81_0223BD4C: ; 0x0223BD4C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223BD80
|
|
bl MOD81_0223C1A8
|
|
add r0, r4, #0
|
|
bl MOD81_0223C2EC
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0
|
|
beq _0223BD66
|
|
bl MOD81_0223C460
|
|
_0223BD66:
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
beq _0223BD70
|
|
bl MOD81_0223C3B0
|
|
_0223BD70:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _0223BD7A
|
|
bl MOD81_0223C514
|
|
_0223BD7A:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223BD80:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BD4C
|
|
|
|
thumb_func_start MOD81_0223BD84
|
|
MOD81_0223BD84: ; 0x0223BD84
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #3
|
|
bhs _0223BDB2
|
|
lsl r3, r2, #2
|
|
ldr r2, _0223BDB8 ; =0x0223D288
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _0223BDA8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0223BDA8:
|
|
add r0, r5, #0
|
|
bl MOD81_0223BDBC
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223BDB2:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223BDB8: .word 0x0223D288
|
|
thumb_func_end MOD81_0223BD84
|
|
|
|
thumb_func_start MOD81_0223BDBC
|
|
MOD81_0223BDBC: ; 0x0223BDBC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0223BDEE
|
|
mov r0, #0x2a
|
|
ldrsh r1, [r4, r0]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
strh r0, [r4, #0x2a]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x24]
|
|
add r1, #0x28
|
|
bl MOD81_02238B40
|
|
bl G3X_ResetMtxStack
|
|
ldr r0, [r4, #0x20]
|
|
bl MOD81_02238940
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
_0223BDEE:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223BDBC
|
|
|
|
thumb_func_start MOD81_0223BDF0
|
|
MOD81_0223BDF0: ; 0x0223BDF0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
bl MOD81_0223BF74
|
|
add r0, r4, #0
|
|
bl MOD81_0223C1DC
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
ldr r3, _0223BE1C ; =0x00007FFF
|
|
mov r0, #0
|
|
add r2, r1, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_0223BE1C: .word 0x00007FFF
|
|
thumb_func_end MOD81_0223BDF0
|
|
|
|
thumb_func_start MOD81_0223BE20
|
|
MOD81_0223BE20: ; 0x0223BE20
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #6
|
|
bhi _0223BEEA
|
|
add r2, r1, r1
|
|
add r2, pc
|
|
ldrh r2, [r2, #6]
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
add pc, r2
|
|
_0223BE38: ; jump table
|
|
.short _0223BE46 - _0223BE38 - 2 ; case 0
|
|
.short _0223BE64 - _0223BE38 - 2 ; case 1
|
|
.short _0223BE7E - _0223BE38 - 2 ; case 2
|
|
.short _0223BE90 - _0223BE38 - 2 ; case 3
|
|
.short _0223BEA8 - _0223BE38 - 2 ; case 4
|
|
.short _0223BECC - _0223BE38 - 2 ; case 5
|
|
.short _0223BEE0 - _0223BE38 - 2 ; case 6
|
|
_0223BE46:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223BEEA
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
add r0, r4, #0
|
|
add r4, #0x30
|
|
add r1, r4, #0
|
|
bl MOD81_0223C3CC
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BE64:
|
|
ldr r1, [r4, #8]
|
|
add r1, r1, #1
|
|
str r1, [r4, #8]
|
|
cmp r1, #8
|
|
ble _0223BEEA
|
|
add r4, #0x34
|
|
add r1, r4, #0
|
|
bl MOD81_0223C300
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BE7E:
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
bne _0223BEEA
|
|
ldr r0, [r4, #0x30]
|
|
cmp r0, #0
|
|
bne _0223BEEA
|
|
add r0, r1, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BE90:
|
|
mov r1, #0
|
|
add r0, #0x14
|
|
mvn r1, r1
|
|
bl MOD81_02238118
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BEA8:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x1e
|
|
ble _0223BEEA
|
|
add r0, r4, #0
|
|
add r0, #0x38
|
|
str r0, [sp]
|
|
ldr r0, [r4, #0x24]
|
|
mov r1, #0x1f
|
|
mov r2, #0
|
|
mov r3, #0x28
|
|
bl MOD81_0223C47C
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BECC:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
bne _0223BEEA
|
|
ldr r0, [r4, #0x10]
|
|
bl MOD81_022381EC
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223BEEA
|
|
_0223BEE0:
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
bne _0223BEEA
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0223BEEA:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223BE20
|
|
|
|
thumb_func_start MOD81_0223BEF0
|
|
MOD81_0223BEF0: ; 0x0223BEF0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0223BF08
|
|
cmp r0, #1
|
|
beq _0223BF30
|
|
cmp r0, #2
|
|
beq _0223BF5A
|
|
b _0223BF6E
|
|
_0223BF08:
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
mov r3, #1
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
str r3, [sp, #4]
|
|
add r0, #0x1c
|
|
str r0, [sp, #8]
|
|
ldr r0, [r5, #0xc]
|
|
lsl r1, r3, #0xc
|
|
lsl r2, r3, #0xa
|
|
bl MOD81_022384AC
|
|
str r0, [r5, #0x18]
|
|
mov r0, #0
|
|
str r0, [r5, #8]
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223BF6E
|
|
_0223BF30:
|
|
ldr r0, [r5, #8]
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
cmp r0, #0xd
|
|
ble _0223BF6E
|
|
mov r0, #8
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
add r2, r0, #0
|
|
add r3, r0, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
b _0223BF6E
|
|
_0223BF5A:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223BF6E
|
|
ldr r0, [r5, #0x1c]
|
|
cmp r0, #0
|
|
beq _0223BF6E
|
|
add sp, #0xc
|
|
mov r0, #1
|
|
pop {r4, r5, pc}
|
|
_0223BF6E:
|
|
mov r0, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
thumb_func_end MOD81_0223BEF0
|
|
|
|
thumb_func_start MOD81_0223BF74
|
|
MOD81_0223BF74: ; 0x0223BF74
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
ldr r0, _0223C18C ; =0x0223D2EC
|
|
bl FUN_0201E66C
|
|
ldr r2, _0223C190 ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223C194 ; =0x0223D294
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223C198 ; =0x0223D2B4
|
|
mov r1, #2
|
|
mov r3, #1
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223C198 ; =0x0223D2B4
|
|
mov r1, #6
|
|
mov r3, #1
|
|
bl FUN_02016C18
|
|
bl OS_DisableInterrupts
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223C19C ; =0x0223D2D0
|
|
mov r1, #3
|
|
mov r3, #2
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0xc]
|
|
ldr r2, _0223C19C ; =0x0223D2D0
|
|
mov r1, #7
|
|
mov r3, #2
|
|
bl FUN_02016C18
|
|
add r0, r5, #0
|
|
bl OS_RestoreInterrupts
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
mov r1, #2
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
add r3, r1, #0
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #2
|
|
mov r3, #6
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r1, #1
|
|
str r1, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r3, #6
|
|
bl FUN_020068C8
|
|
ldr r0, [r4]
|
|
bl MOD81_02238828
|
|
add r5, r0, #0
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #4
|
|
mov r3, #0
|
|
bl FUN_02006930
|
|
ldr r0, _0223C1A0 ; =0x0223D280
|
|
lsl r1, r5, #1
|
|
ldrh r5, [r0, r1]
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #0
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x40
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #0x5d
|
|
mov r1, #3
|
|
mov r2, #4
|
|
add r3, r5, #0
|
|
bl FUN_02006948
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #5
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #5
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
mov r3, #3
|
|
bl FUN_020068C8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0xc]
|
|
mov r0, #0x5d
|
|
mov r1, #4
|
|
mov r3, #7
|
|
bl FUN_020068C8
|
|
mov r0, #0x3a
|
|
mov r1, #0x60
|
|
bl AllocFromHeap
|
|
add r5, r0, #0
|
|
beq _0223C14A
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
mov r2, #0x60
|
|
bl MIi_CpuClear32
|
|
add r0, r5, #0
|
|
mov r1, #0x60
|
|
bl DC_FlushRange
|
|
bl GX_BeginLoadBGExtPltt
|
|
bl GXS_BeginLoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GX_LoadBGExtPltt
|
|
mov r1, #6
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0xc
|
|
mov r2, #0x60
|
|
bl GXS_LoadBGExtPltt
|
|
bl GX_EndLoadBGExtPltt
|
|
bl GXS_EndLoadBGExtPltt
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_0223C14A:
|
|
ldr r0, [r4, #0xc]
|
|
ldr r3, _0223C1A4 ; =0xFFFFFE80
|
|
mov r1, #2
|
|
mov r2, #3
|
|
bl FUN_020179E0
|
|
mov r2, #3
|
|
add r3, r2, #0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #6
|
|
sub r3, #0xc3
|
|
bl FUN_020179E0
|
|
mov r1, #3
|
|
ldr r0, [r4, #0xc]
|
|
add r2, r1, #0
|
|
mov r3, #0x43
|
|
bl FUN_020179E0
|
|
mov r0, #7
|
|
mov r1, #0
|
|
bl FUN_0201797C
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223C18C: .word 0x0223D2EC
|
|
_0223C190: .word 0x04000304
|
|
_0223C194: .word 0x0223D294
|
|
_0223C198: .word 0x0223D2B4
|
|
_0223C19C: .word 0x0223D2D0
|
|
_0223C1A0: .word 0x0223D280
|
|
_0223C1A4: .word 0xFFFFFE80
|
|
thumb_func_end MOD81_0223BF74
|
|
|
|
thumb_func_start MOD81_0223C1A8
|
|
MOD81_0223C1A8: ; 0x0223C1A8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _0223C1B8
|
|
ldr r0, [r4, #0x10]
|
|
bl MOD81_02238200
|
|
_0223C1B8:
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #6
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #3
|
|
bl FUN_020178A0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #7
|
|
bl FUN_020178A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C1A8
|
|
|
|
thumb_func_start MOD81_0223C1DC
|
|
MOD81_0223C1DC: ; 0x0223C1DC
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _0223C2C0 ; =0x04000060
|
|
ldr r1, _0223C2C4 ; =0xFFFFCFFD
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
add r2, r1, #2
|
|
and r3, r2
|
|
mov r2, #0x10
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r2, _0223C2C8 ; =0x0000CFFB
|
|
and r2, r3
|
|
strh r2, [r0]
|
|
add r2, r1, #2
|
|
ldrh r3, [r0]
|
|
add r1, r1, #2
|
|
and r3, r2
|
|
mov r2, #8
|
|
orr r2, r3
|
|
strh r2, [r0]
|
|
ldrh r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0]
|
|
ldr r0, _0223C2CC ; =0x0223D2A4
|
|
bl G3X_SetEdgeColorTable
|
|
mov r1, #0
|
|
ldr r0, _0223C2D0 ; =0x000043FF
|
|
ldr r2, _0223C2D4 ; =0x00007FFF
|
|
mov r3, #0x3f
|
|
str r1, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0223C2D8 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _0223C2DC ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r1, _0223C2E0 ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r2, [r1]
|
|
bic r2, r0
|
|
strh r2, [r1]
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
str r0, [r4, #0x20]
|
|
mov r1, #0
|
|
mov r0, #0x23
|
|
str r1, [sp]
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x20]
|
|
mov r2, #0x5d
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
str r0, [r4, #0x24]
|
|
ldr r0, _0223C2E4 ; =0x0223D450
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, _0223C2E8 ; =0x0223D450
|
|
bl MOD81_02238C60
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #1
|
|
bl MOD81_02238C80
|
|
mov r1, #2
|
|
ldr r0, [r4, #0x24]
|
|
lsl r1, r1, #0xc
|
|
bl MOD81_02238B84
|
|
ldr r0, [r4, #0x24]
|
|
add r4, #0x28
|
|
add r1, r4, #0
|
|
bl MOD81_02238B28
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
nop
|
|
_0223C2C0: .word 0x04000060
|
|
_0223C2C4: .word 0xFFFFCFFD
|
|
_0223C2C8: .word 0x0000CFFB
|
|
_0223C2CC: .word 0x0223D2A4
|
|
_0223C2D0: .word 0x000043FF
|
|
_0223C2D4: .word 0x00007FFF
|
|
_0223C2D8: .word 0x04000540
|
|
_0223C2DC: .word 0xBFFF0000
|
|
_0223C2E0: .word 0x04000008
|
|
_0223C2E4: .word 0x0223D450
|
|
_0223C2E8: .word 0x0223D450
|
|
thumb_func_end MOD81_0223C1DC
|
|
|
|
thumb_func_start MOD81_0223C2EC
|
|
MOD81_0223C2EC: ; 0x0223C2EC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0223C2FE
|
|
bl MOD81_0223890C
|
|
mov r0, #0
|
|
str r0, [r4, #0x20]
|
|
_0223C2FE:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223C2EC
|
|
|
|
thumb_func_start MOD81_0223C300
|
|
MOD81_0223C300: ; 0x0223C300
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x24
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223C340
|
|
str r6, [r4]
|
|
ldr r0, [r6, #0xc]
|
|
add r1, r4, #0
|
|
str r0, [r4, #4]
|
|
ldr r0, _0223C344 ; =0xFFE80000
|
|
mov r2, #0
|
|
str r0, [r4, #0xc]
|
|
asr r0, r0, #1
|
|
str r0, [r4, #0x10]
|
|
ldr r0, _0223C348 ; =0x00009999
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0x28
|
|
str r0, [r4, #8]
|
|
ldr r0, _0223C34C ; =MOD81_0223C350
|
|
str r5, [r4, #0x1c]
|
|
bl FUN_0200CA60
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _0223C340
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223C340:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0223C344: .word 0xFFE80000
|
|
_0223C348: .word 0x00009999
|
|
_0223C34C: .word MOD81_0223C350
|
|
thumb_func_end MOD81_0223C300
|
|
|
|
thumb_func_start MOD81_0223C350
|
|
MOD81_0223C350: ; 0x0223C350
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
beq _0223C390
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x14]
|
|
mov r2, #3
|
|
add r0, r1, r0
|
|
str r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x10]
|
|
ldr r3, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
asr r3, r3, #0xc
|
|
bl FUN_020179E0
|
|
ldr r3, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
mov r2, #3
|
|
asr r3, r3, #0xc
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #8]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, pc}
|
|
_0223C390:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
mov r2, #3
|
|
mov r3, #0
|
|
bl FUN_020179E0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
mov r2, #3
|
|
mov r3, #0xc0
|
|
bl FUN_020179E0
|
|
add r0, r5, #0
|
|
bl MOD81_0223C3B0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_0223C350
|
|
|
|
thumb_func_start MOD81_0223C3B0
|
|
MOD81_0223C3B0: ; 0x0223C3B0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223C3CA
|
|
bl FUN_0201B6C8
|
|
ldr r1, [r0, #0x1c]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
bl MOD81_02238898
|
|
add r0, r4, #0
|
|
bl FUN_0200CAB4
|
|
_0223C3CA:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223C3B0
|
|
|
|
thumb_func_start MOD81_0223C3CC
|
|
MOD81_0223C3CC: ; 0x0223C3CC
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x1c
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223C418
|
|
str r5, [r4]
|
|
ldr r0, [r6, #0x24]
|
|
add r1, r4, #0
|
|
str r0, [r4, #8]
|
|
add r1, #0xc
|
|
bl MOD81_02238B08
|
|
mov r0, #0x32
|
|
ldr r1, [r4, #0x10]
|
|
lsl r0, r0, #0xc
|
|
sub r1, r0, r1
|
|
asr r0, r1, #3
|
|
lsr r0, r0, #0x1c
|
|
add r0, r1, r0
|
|
asr r0, r0, #4
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x10
|
|
str r0, [r4, #4]
|
|
ldr r0, _0223C41C ; =MOD81_0223C420
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _0223C418
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223C418:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0223C41C: .word MOD81_0223C420
|
|
thumb_func_end MOD81_0223C3CC
|
|
|
|
thumb_func_start MOD81_0223C420
|
|
MOD81_0223C420: ; 0x0223C420
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0223C446
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x10]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #8]
|
|
add r1, #0xc
|
|
bl MOD81_02238B18
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223C446:
|
|
mov r0, #0x32
|
|
lsl r0, r0, #0xc
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
add r4, #0xc
|
|
add r1, r4, #0
|
|
bl MOD81_02238B18
|
|
add r0, r5, #0
|
|
bl MOD81_0223C460
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C420
|
|
|
|
thumb_func_start MOD81_0223C460
|
|
MOD81_0223C460: ; 0x0223C460
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223C47A
|
|
bl FUN_0201B6C8
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FUN_0200CAB4
|
|
_0223C47A:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223C460
|
|
|
|
thumb_func_start MOD81_0223C47C
|
|
MOD81_0223C47C: ; 0x0223C47C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp]
|
|
add r6, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x18
|
|
str r2, [sp, #4]
|
|
add r7, r3, #0
|
|
ldr r5, [sp, #0x20]
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223C4D4
|
|
str r5, [r4]
|
|
lsl r0, r6, #0xc
|
|
str r0, [r4, #4]
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r0, #0xc
|
|
str r1, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
sub r0, r1, r0
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
str r0, [r4, #8]
|
|
ldr r0, [sp]
|
|
str r7, [r4, #0x10]
|
|
add r1, r6, #0
|
|
str r0, [r4, #0x14]
|
|
bl MOD81_02238B5C
|
|
ldr r0, _0223C4DC ; =MOD81_0223C4E0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _0223C4D8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0223C4D4:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0223C4D8:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223C4DC: .word MOD81_0223C4E0
|
|
thumb_func_end MOD81_0223C47C
|
|
|
|
thumb_func_start MOD81_0223C4E0
|
|
MOD81_0223C4E0: ; 0x0223C4E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r1, #0x10]
|
|
sub r0, r0, #1
|
|
str r0, [r1, #0x10]
|
|
cmp r0, #0
|
|
ble _0223C500
|
|
ldr r2, [r1, #4]
|
|
ldr r0, [r1, #8]
|
|
add r2, r2, r0
|
|
str r2, [r1, #4]
|
|
ldr r0, [r1, #0x14]
|
|
asr r1, r2, #0xc
|
|
bl MOD81_02238B5C
|
|
pop {r4, pc}
|
|
_0223C500:
|
|
ldr r0, [r1, #0x14]
|
|
ldr r1, [r1, #0xc]
|
|
asr r1, r1, #0xc
|
|
bl MOD81_02238B5C
|
|
add r0, r4, #0
|
|
bl MOD81_0223C514
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C4E0
|
|
|
|
thumb_func_start MOD81_0223C514
|
|
MOD81_0223C514: ; 0x0223C514
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223C52E
|
|
bl FUN_0201B6C8
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FUN_0200CAB4
|
|
_0223C52E:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223C514
|
|
|
|
thumb_func_start MOD81_0223C530
|
|
MOD81_0223C530: ; 0x0223C530
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x70
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223C57A
|
|
str r5, [r4]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
add r0, r5, #0
|
|
bl MOD81_0223880C
|
|
str r0, [r4, #0x44]
|
|
mov r0, #0x3a
|
|
bl FUN_02006D98
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
mov r1, #0x3a
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x58]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
mov r1, #0x3a
|
|
bl FUN_020219F4
|
|
str r0, [r4, #0x5c]
|
|
mov r0, #0
|
|
str r0, [r4, #0x68]
|
|
str r0, [r4, #0x6c]
|
|
str r0, [r4, #0x60]
|
|
_0223C57A:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C530
|
|
|
|
thumb_func_start MOD81_0223C580
|
|
MOD81_0223C580: ; 0x0223C580
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223C5D2
|
|
bl MOD81_0223CD08
|
|
add r0, r4, #0
|
|
bl MOD81_0223CC84
|
|
ldr r0, [r4, #0x6c]
|
|
bl MOD81_0223CDE0
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_02021A20
|
|
ldr r0, [r4, #0x5c]
|
|
bl FUN_02021A20
|
|
ldr r0, [r4, #0x60]
|
|
cmp r0, #0
|
|
beq _0223C5AC
|
|
bl MOD81_0223890C
|
|
_0223C5AC:
|
|
ldr r0, [r4, #0x44]
|
|
mov r1, #1
|
|
bl FUN_020178A0
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
bl FUN_02019178
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _0223C5C6
|
|
bl FUN_02007534
|
|
_0223C5C6:
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_020072E8
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_0223C5D2:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223C580
|
|
|
|
thumb_func_start MOD81_0223C5D4
|
|
MOD81_0223C5D4: ; 0x0223C5D4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldr r2, [r4]
|
|
add r5, r0, #0
|
|
cmp r2, #4
|
|
bhs _0223C602
|
|
lsl r3, r2, #2
|
|
ldr r2, _0223C608 ; =0x0223D31C
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _0223C5F8
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
_0223C5F8:
|
|
add r0, r5, #0
|
|
bl MOD81_0223C60C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223C602:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0223C608: .word 0x0223D31C
|
|
thumb_func_end MOD81_0223C5D4
|
|
|
|
thumb_func_start MOD81_0223C60C
|
|
MOD81_0223C60C: ; 0x0223C60C
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
bl G3X_ResetMtxStack
|
|
mov r1, #0
|
|
mov r0, #0x11
|
|
add r2, r1, #0
|
|
bl FUN_020BB1C0
|
|
bl FUN_020BB394
|
|
bl FUN_020B02C8
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_020081C4
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_02006ED4
|
|
mov r2, #1
|
|
str r2, [sp]
|
|
mov r0, #0x12
|
|
add r1, sp, #0
|
|
bl FUN_020BB1C0
|
|
ldr r0, [r4, #0x60]
|
|
cmp r0, #0
|
|
beq _0223C64A
|
|
bl MOD81_02238940
|
|
_0223C64A:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl FUN_020222B4
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C60C
|
|
|
|
thumb_func_start MOD81_0223C658
|
|
MOD81_0223C658: ; 0x0223C658
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
add r4, r0, #0
|
|
ldr r0, _0223C808 ; =0x0223D374
|
|
bl FUN_0201E66C
|
|
ldr r2, _0223C80C ; =0x04000304
|
|
ldrh r1, [r2]
|
|
lsr r0, r2, #0xb
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0223C810 ; =0x0223D32C
|
|
bl FUN_02016BBC
|
|
ldr r0, [r4, #0x44]
|
|
ldr r2, _0223C814 ; =0x0223D33C
|
|
mov r1, #1
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
ldr r0, [r4, #0x44]
|
|
ldr r2, _0223C818 ; =0x0223D358
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_0201E6E4
|
|
ldr r2, _0223C81C ; =0x04000008
|
|
mov r0, #3
|
|
ldrh r3, [r2]
|
|
mov r1, #1
|
|
bic r3, r0
|
|
add r0, r3, #0
|
|
orr r0, r1
|
|
strh r0, [r2]
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldr r0, [r4, #0x44]
|
|
add r3, r1, #0
|
|
bl FUN_02017F48
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldr r0, [r4, #0x44]
|
|
mov r1, #1
|
|
add r3, r2, #0
|
|
bl FUN_02018540
|
|
ldr r0, [r4]
|
|
bl MOD81_02238844
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #0x44]
|
|
mov r1, #1
|
|
mov r2, #0x6d
|
|
mov r3, #2
|
|
bl FUN_0200CD68
|
|
mov r0, #0x13
|
|
str r0, [sp]
|
|
mov r0, #0x1b
|
|
str r0, [sp, #4]
|
|
mov r0, #4
|
|
add r1, r4, #0
|
|
str r0, [sp, #8]
|
|
mov r2, #1
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
ldr r0, [r4, #0x44]
|
|
add r1, #0x48
|
|
mov r3, #2
|
|
bl FUN_02019064
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r3, #0x20
|
|
str r3, [sp]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #4]
|
|
mov r0, #0xe
|
|
mov r1, #7
|
|
mov r2, #0
|
|
bl FUN_02006930
|
|
ldr r0, [r4, #0x44]
|
|
mov r1, #1
|
|
bl FUN_02017CD0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x44]
|
|
mov r0, #0x5d
|
|
mov r1, #0x16
|
|
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, #0x3a
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x44]
|
|
mov r0, #0x5d
|
|
mov r1, #0x15
|
|
mov r3, #2
|
|
bl FUN_020068C8
|
|
mov r0, #0x20
|
|
str r0, [sp]
|
|
mov r0, #0x3a
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0x17
|
|
add r3, r2, #0
|
|
bl FUN_02006930
|
|
add r0, r4, #0
|
|
bl MOD81_0223CAC4
|
|
mov r1, #0
|
|
mov r0, #1
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl MOD81_022388C0
|
|
str r0, [r4, #0x60]
|
|
add r0, r4, #0
|
|
bl MOD81_0223CB90
|
|
mov r1, #6
|
|
mov r2, #1
|
|
str r0, [r4, #0x14]
|
|
bl FUN_02007558
|
|
mov r1, #0
|
|
mov r0, #0x13
|
|
str r1, [sp]
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #4]
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #0xe
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0x60]
|
|
mov r2, #0x5d
|
|
mov r3, #0x1b
|
|
bl MOD81_02238A84
|
|
ldr r2, _0223C820 ; =0x0223D314
|
|
str r0, [r4, #0x64]
|
|
ldrh r3, [r2]
|
|
add r0, sp, #0x14
|
|
add r1, sp, #0x14
|
|
strh r3, [r0]
|
|
ldrh r3, [r2, #2]
|
|
ldrh r2, [r2, #4]
|
|
strh r3, [r0, #2]
|
|
strh r2, [r0, #4]
|
|
ldr r0, [r4, #0x64]
|
|
bl MOD81_02238B40
|
|
add r0, r4, #0
|
|
bl MOD81_0223CBE0
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E6E4
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _0223C824 ; =0x04000050
|
|
mov r1, #1
|
|
mov r2, #4
|
|
mov r3, #0x10
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
mov r3, #0
|
|
bl FUN_0200E1D0
|
|
mov r0, #1
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
.align 2, 0
|
|
_0223C808: .word 0x0223D374
|
|
_0223C80C: .word 0x04000304
|
|
_0223C810: .word 0x0223D32C
|
|
_0223C814: .word 0x0223D33C
|
|
_0223C818: .word 0x0223D358
|
|
_0223C81C: .word 0x04000008
|
|
_0223C820: .word 0x0223D314
|
|
_0223C824: .word 0x04000050
|
|
thumb_func_end MOD81_0223C658
|
|
|
|
thumb_func_start MOD81_0223C828
|
|
MOD81_0223C828: ; 0x0223C828
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _0223C84E
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223C84E
|
|
ldr r0, [r4, #0x2c]
|
|
mov r1, #1
|
|
bl FUN_02020130
|
|
ldr r0, [r4, #0x2c]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0223C84E:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223C828
|
|
|
|
thumb_func_start MOD81_0223C854
|
|
MOD81_0223C854: ; 0x0223C854
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #4
|
|
bhi _0223C91C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0223C86C: ; jump table
|
|
.short _0223C876 - _0223C86C - 2 ; case 0
|
|
.short _0223C884 - _0223C86C - 2 ; case 1
|
|
.short _0223C8AE - _0223C86C - 2 ; case 2
|
|
.short _0223C8D6 - _0223C86C - 2 ; case 3
|
|
.short _0223C90E - _0223C86C - 2 ; case 4
|
|
_0223C876:
|
|
add r1, r4, #0
|
|
add r1, #0x6c
|
|
bl MOD81_0223CD64
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_0223C884:
|
|
ldr r0, [r4, #0x6c]
|
|
cmp r0, #0
|
|
bne _0223C91C
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #2
|
|
bl FUN_02020130
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #1
|
|
bl FUN_020200A0
|
|
ldr r0, [r4, #0x64]
|
|
mov r1, #0
|
|
bl MOD81_02238B58
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223C91C
|
|
_0223C8AE:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0xa
|
|
ble _0223C91C
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl FUN_02007558
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
mov r3, #0xc
|
|
bl MOD81_0223CCA8
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
b _0223C91C
|
|
_0223C8D6:
|
|
bl MOD81_0223CCF8
|
|
cmp r0, #0
|
|
beq _0223C91C
|
|
ldr r0, [r4]
|
|
bl MOD81_02238820
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
bl FUN_020672BC
|
|
cmp r0, #0
|
|
bne _0223C902
|
|
ldr r0, [r4]
|
|
bl MOD81_02238838
|
|
bl FUN_02005578
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #1
|
|
bl FUN_02007314
|
|
_0223C902:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223C91C
|
|
_0223C90E:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0x1e
|
|
ble _0223C91C
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0223C91C:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_0223C854
|
|
|
|
thumb_func_start MOD81_0223C920
|
|
MOD81_0223C920: ; 0x0223C920
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
ldr r1, [r5]
|
|
add r4, r0, #0
|
|
cmp r1, #5
|
|
bhi _0223C95C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0223C93A: ; jump table
|
|
.short _0223C946 - _0223C93A - 2 ; case 0
|
|
.short _0223C952 - _0223C93A - 2 ; case 1
|
|
.short _0223C9D0 - _0223C93A - 2 ; case 2
|
|
.short _0223CA32 - _0223C93A - 2 ; case 3
|
|
.short _0223CA52 - _0223C93A - 2 ; case 4
|
|
.short _0223CA7C - _0223C93A - 2 ; case 5
|
|
_0223C946:
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223CA8A
|
|
_0223C952:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0xa
|
|
bgt _0223C95E
|
|
_0223C95C:
|
|
b _0223CA8A
|
|
_0223C95E:
|
|
ldr r0, [r4]
|
|
bl MOD81_02238814
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl MOD81_02238810
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238850
|
|
cmp r0, #1
|
|
bne _0223C97E
|
|
mov r1, #2
|
|
add r6, r1, #0
|
|
b _0223C982
|
|
_0223C97E:
|
|
mov r1, #5
|
|
mov r6, #3
|
|
_0223C982:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, [r4, #0x58]
|
|
bl FUN_0200A8E0
|
|
ldr r1, [r4, #0x5c]
|
|
ldr r2, [r4, #0x58]
|
|
add r0, r7, #0
|
|
bl FUN_0200B7B8
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x5c]
|
|
add r0, #0x48
|
|
mov r1, #1
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
mov r1, #0x6d
|
|
mov r2, #2
|
|
bl FUN_0200D06C
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
bl FUN_020191D0
|
|
ldr r0, _0223CA90 ; =0x00000484
|
|
bl FUN_02005C28
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
str r0, [r4, #0xc]
|
|
str r6, [r5]
|
|
b _0223CA8A
|
|
_0223C9D0:
|
|
mov r1, #0x3c
|
|
bl MOD81_0223CA94
|
|
cmp r0, #0
|
|
beq _0223CA8A
|
|
ldr r0, [r4]
|
|
bl MOD81_02238814
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238810
|
|
add r7, r0, #0
|
|
ldr r2, [r4, #0x58]
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl FUN_0200A8E0
|
|
ldr r1, [r4, #0x5c]
|
|
ldr r2, [r4, #0x58]
|
|
add r0, r7, #0
|
|
bl FUN_0200B7B8
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
mov r1, #0xf
|
|
bl FUN_02019620
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0xff
|
|
str r0, [sp, #4]
|
|
str r3, [sp, #8]
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x5c]
|
|
add r0, #0x48
|
|
mov r1, #1
|
|
bl FUN_0201BD84
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
bl FUN_02019548
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223CA8A
|
|
_0223CA32:
|
|
mov r1, #0x3c
|
|
bl MOD81_0223CA94
|
|
cmp r0, #0
|
|
beq _0223CA8A
|
|
add r0, r4, #0
|
|
add r0, #0x48
|
|
mov r1, #0
|
|
bl FUN_0200D0E0
|
|
mov r0, #0
|
|
str r0, [r4, #8]
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223CA8A
|
|
_0223CA52:
|
|
ldr r0, [r4, #8]
|
|
add r0, r0, #1
|
|
str r0, [r4, #8]
|
|
cmp r0, #0xa
|
|
ble _0223CA8A
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
add r2, r1, #0
|
|
add r3, r1, #0
|
|
bl FUN_0200E1D0
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0223CA8A
|
|
_0223CA7C:
|
|
bl FUN_0200E308
|
|
cmp r0, #0
|
|
beq _0223CA8A
|
|
add sp, #0x10
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0223CA8A:
|
|
mov r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223CA90: .word 0x00000484
|
|
thumb_func_end MOD81_0223C920
|
|
|
|
thumb_func_start MOD81_0223CA94
|
|
MOD81_0223CA94: ; 0x0223CA94
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
add r4, r1, #0
|
|
cmp r0, #0
|
|
beq _0223CAA6
|
|
bl FUN_02005CBC
|
|
str r0, [r5, #0xc]
|
|
_0223CAA6:
|
|
ldr r0, [r5, #8]
|
|
cmp r0, r4
|
|
bge _0223CAB4
|
|
add r0, r0, #1
|
|
str r0, [r5, #8]
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0223CAB4:
|
|
ldr r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0223CABE
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0223CABE:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223CA94
|
|
|
|
thumb_func_start MOD81_0223CAC4
|
|
MOD81_0223CAC4: ; 0x0223CAC4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
bl FUN_020BB7F4
|
|
bl G3X_InitMtxStack
|
|
ldr r0, _0223CB6C ; =0x04000060
|
|
ldr r2, _0223CB70 ; =0xFFFFCFFD
|
|
ldrh r1, [r0]
|
|
and r1, r2
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
add r1, r2, #2
|
|
and r3, r1
|
|
mov r1, #0x10
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
ldrh r3, [r0]
|
|
ldr r1, _0223CB74 ; =0x0000CFFB
|
|
and r1, r3
|
|
strh r1, [r0]
|
|
add r1, r2, #2
|
|
ldrh r3, [r0]
|
|
lsr r2, r2, #0x11
|
|
and r3, r1
|
|
mov r1, #8
|
|
orr r1, r3
|
|
strh r1, [r0]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
mov r3, #0x3f
|
|
str r0, [sp]
|
|
bl G3X_SetClearColor
|
|
ldr r1, _0223CB78 ; =0x04000540
|
|
mov r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _0223CB7C ; =0xBFFF0000
|
|
str r0, [r1, #0x40]
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
bl FUN_020AEB70
|
|
mov r0, #1
|
|
lsl r0, r0, #0xe
|
|
mov r1, #1
|
|
bl FUN_020AEDF4
|
|
ldr r3, _0223CB80 ; =0x021064B8
|
|
mov r0, #1
|
|
mov r1, #0
|
|
ldr r3, [r3]
|
|
lsl r0, r0, #0xe
|
|
add r2, r1, #0
|
|
blx r3
|
|
ldr r3, _0223CB84 ; =0x021064C0
|
|
add r4, r0, #0
|
|
ldr r3, [r3]
|
|
mov r0, #0x80
|
|
mov r1, #0
|
|
mov r2, #1
|
|
blx r3
|
|
ldr r2, _0223CB88 ; =0x7FFF0000
|
|
add r6, r0, #0
|
|
and r2, r4
|
|
lsl r1, r4, #0x10
|
|
lsr r2, r2, #0x10
|
|
ldr r0, [r5, #0x10]
|
|
lsr r1, r1, #0xd
|
|
lsl r2, r2, #4
|
|
bl FUN_020081A8
|
|
ldr r2, _0223CB8C ; =0xFFFF0000
|
|
lsl r1, r6, #0x10
|
|
and r2, r6
|
|
lsr r2, r2, #0x10
|
|
ldr r0, [r5, #0x10]
|
|
lsr r1, r1, #0xd
|
|
lsl r2, r2, #3
|
|
bl FUN_020081B4
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0223CB6C: .word 0x04000060
|
|
_0223CB70: .word 0xFFFFCFFD
|
|
_0223CB74: .word 0x0000CFFB
|
|
_0223CB78: .word 0x04000540
|
|
_0223CB7C: .word 0xBFFF0000
|
|
_0223CB80: .word 0x021064B8
|
|
_0223CB84: .word 0x021064C0
|
|
_0223CB88: .word 0x7FFF0000
|
|
_0223CB8C: .word 0xFFFF0000
|
|
thumb_func_end MOD81_0223CAC4
|
|
|
|
thumb_func_start MOD81_0223CB90
|
|
MOD81_0223CB90: ; 0x0223CB90
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x20
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl MOD81_02238820
|
|
add r5, r0, #0
|
|
add r0, sp, #0x10
|
|
add r1, r5, #0
|
|
mov r2, #2
|
|
bl FUN_02068B70
|
|
ldr r0, [r4]
|
|
bl MOD81_02238838
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x18
|
|
bl FUN_02069010
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl FUN_02068E1C
|
|
add r3, r0, #0
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
add r0, r4, #0
|
|
str r1, [sp, #4]
|
|
add r0, #0x18
|
|
str r0, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4, #0x10]
|
|
add r3, #0x50
|
|
add r1, sp, #0x10
|
|
mov r2, #0x80
|
|
bl FUN_020073A0
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD81_0223CB90
|
|
|
|
thumb_func_start MOD81_0223CBE0
|
|
MOD81_0223CBE0: ; 0x0223CBE0
|
|
push {r4, lr}
|
|
sub sp, #0x70
|
|
add r4, r0, #0
|
|
add r0, #0x34
|
|
mov r1, #0x5d
|
|
mov r2, #7
|
|
mov r3, #8
|
|
bl MOD81_0223874C
|
|
add r0, sp, #0x5c
|
|
bl FUN_020B19DC
|
|
add r0, sp, #0x38
|
|
bl FUN_020B1A24
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r0, #0x3a
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x38
|
|
str r0, [sp, #0x10]
|
|
mov r0, #0x5d
|
|
mov r1, #9
|
|
bl FUN_02006AE4
|
|
mov r0, #0x3a
|
|
str r0, [sp]
|
|
add r0, sp, #0x5c
|
|
str r0, [sp, #4]
|
|
mov r0, #0x5d
|
|
mov r1, #0xa
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl FUN_02006A8C
|
|
mov r0, #2
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x14
|
|
add r1, #0x34
|
|
add r2, sp, #0x38
|
|
add r3, sp, #0x5c
|
|
bl MOD81_022387A8
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x64
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x2c]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r0, #1
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4]
|
|
add r1, sp, #0x14
|
|
mov r2, #0x80
|
|
mov r3, #0x5a
|
|
bl MOD81_022387C8
|
|
str r0, [r4, #0x30]
|
|
mov r1, #1
|
|
bl FUN_02020238
|
|
ldr r0, [r4, #0x2c]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
ldr r0, [r4, #0x30]
|
|
mov r1, #0
|
|
bl FUN_020200A0
|
|
add sp, #0x70
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223CBE0
|
|
|
|
thumb_func_start MOD81_0223CC84
|
|
MOD81_0223CC84: ; 0x0223CC84
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_0223CC8C:
|
|
ldr r0, [r5, #0x2c]
|
|
cmp r0, #0
|
|
beq _0223CC96
|
|
bl FUN_0201FFC8
|
|
_0223CC96:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #2
|
|
blt _0223CC8C
|
|
add r6, #0x34
|
|
add r0, r6, #0
|
|
bl MOD81_02238784
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD81_0223CC84
|
|
|
|
thumb_func_start MOD81_0223CCA8
|
|
MOD81_0223CCA8: ; 0x0223CCA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x14
|
|
str r2, [sp]
|
|
add r7, r3, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223CCEE
|
|
str r5, [r4]
|
|
lsl r0, r6, #0xc
|
|
str r0, [r4, #4]
|
|
ldr r0, [sp]
|
|
lsl r1, r0, #0xc
|
|
str r1, [r4, #8]
|
|
ldr r0, [r4, #4]
|
|
sub r0, r1, r0
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
str r0, [r4, #0xc]
|
|
ldr r0, _0223CCF0 ; =MOD81_0223CD28
|
|
str r7, [r4, #0x10]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA60
|
|
str r0, [r5, #0x68]
|
|
ldr r0, _0223CCF4 ; =0x04000050
|
|
mov r1, #1
|
|
add r2, r6, #0
|
|
bl G2x_SetBlendBrightness_
|
|
_0223CCEE:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0223CCF0: .word MOD81_0223CD28
|
|
_0223CCF4: .word 0x04000050
|
|
thumb_func_end MOD81_0223CCA8
|
|
|
|
thumb_func_start MOD81_0223CCF8
|
|
MOD81_0223CCF8: ; 0x0223CCF8
|
|
ldr r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bne _0223CD02
|
|
mov r0, #1
|
|
bx lr
|
|
_0223CD02:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223CCF8
|
|
|
|
thumb_func_start MOD81_0223CD08
|
|
MOD81_0223CD08: ; 0x0223CD08
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x68]
|
|
cmp r0, #0
|
|
beq _0223CD24
|
|
bl FUN_0201B6C8
|
|
bl MOD81_02238898
|
|
ldr r0, [r4, #0x68]
|
|
bl FUN_0200CAB4
|
|
mov r0, #0
|
|
str r0, [r4, #0x68]
|
|
_0223CD24:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223CD08
|
|
|
|
thumb_func_start MOD81_0223CD28
|
|
MOD81_0223CD28: ; 0x0223CD28
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #0x10]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
ble _0223CD4A
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r4, #0xc]
|
|
add r2, r1, r0
|
|
str r2, [r4, #4]
|
|
ldr r0, _0223CD60 ; =0x04000050
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl G2x_SetBlendBrightness_
|
|
pop {r4, pc}
|
|
_0223CD4A:
|
|
ldr r2, [r4, #8]
|
|
ldr r0, _0223CD60 ; =0x04000050
|
|
mov r1, #1
|
|
asr r2, r2, #0xc
|
|
bl G2x_SetBlendBrightness_
|
|
ldr r0, [r4]
|
|
bl MOD81_0223CD08
|
|
pop {r4, pc}
|
|
nop
|
|
_0223CD60: .word 0x04000050
|
|
thumb_func_end MOD81_0223CD28
|
|
|
|
thumb_func_start MOD81_0223CD64
|
|
MOD81_0223CD64: ; 0x0223CD64
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x3a
|
|
mov r1, #0x44
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _0223CDD2
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
str r6, [r4]
|
|
ldr r0, [r5, #0x60]
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r5, #0x64]
|
|
str r0, [r4, #0x14]
|
|
str r5, [r4, #8]
|
|
ldr r0, _0223CDD8 ; =0x000018CC
|
|
str r1, [r4, #0x18]
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #0x14
|
|
str r0, [r4, #0x20]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xc
|
|
strh r0, [r4, #0x3a]
|
|
str r1, [r4, #0x40]
|
|
ldr r0, [r4, #0x14]
|
|
bl MOD81_02238B5C
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #1
|
|
bl MOD81_02238B58
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x14]
|
|
add r1, #0x24
|
|
bl MOD81_02238B08
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x14]
|
|
add r1, #0x34
|
|
bl MOD81_02238B28
|
|
ldr r0, _0223CDDC ; =MOD81_0223CE54
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r6]
|
|
cmp r0, #0
|
|
bne _0223CDD6
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, r5, r6, pc}
|
|
_0223CDD2:
|
|
mov r0, #0
|
|
str r0, [r6]
|
|
_0223CDD6:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0223CDD8: .word 0x000018CC
|
|
_0223CDDC: .word MOD81_0223CE54
|
|
thumb_func_end MOD81_0223CD64
|
|
|
|
thumb_func_start MOD81_0223CDE0
|
|
MOD81_0223CDE0: ; 0x0223CDE0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _0223CDFA
|
|
bl FUN_0201B6C8
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FUN_0200CAB4
|
|
_0223CDFA:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD81_0223CDE0
|
|
|
|
thumb_func_start MOD81_0223CDFC
|
|
MOD81_0223CDFC: ; 0x0223CDFC
|
|
add r1, r0, #0
|
|
ldr r0, [r1, #0x40]
|
|
cmp r0, #0
|
|
beq _0223CE1E
|
|
mov r0, #0x3a
|
|
ldrsh r2, [r1, r0]
|
|
mov r0, #0x3c
|
|
ldrsh r0, [r1, r0]
|
|
add r0, r2, r0
|
|
strh r0, [r1, #0x3a]
|
|
ldr r0, [r1, #0x40]
|
|
sub r0, r0, #1
|
|
str r0, [r1, #0x40]
|
|
bne _0223CE1E
|
|
mov r0, #0x3e
|
|
ldrsh r0, [r1, r0]
|
|
strh r0, [r1, #0x3a]
|
|
_0223CE1E:
|
|
mov r0, #0x36
|
|
ldrsh r2, [r1, r0]
|
|
mov r0, #0x3a
|
|
ldrsh r0, [r1, r0]
|
|
ldr r3, _0223CE34 ; =MOD81_02238B40
|
|
add r0, r2, r0
|
|
strh r0, [r1, #0x36]
|
|
ldr r0, [r1, #0x14]
|
|
add r1, #0x34
|
|
bx r3
|
|
nop
|
|
_0223CE34: .word MOD81_02238B40
|
|
thumb_func_end MOD81_0223CDFC
|
|
|
|
thumb_func_start MOD81_0223CE38
|
|
MOD81_0223CE38: ; 0x0223CE38
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
beq _0223CE50
|
|
mov r0, #0x3a
|
|
ldrsh r0, [r5, r0]
|
|
sub r0, r1, r0
|
|
add r1, r4, #0
|
|
bl _s32_div_f
|
|
strh r0, [r5, #0x3c]
|
|
str r4, [r5, #0x40]
|
|
_0223CE50:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD81_0223CE38
|
|
|
|
thumb_func_start MOD81_0223CE54
|
|
MOD81_0223CE54: ; 0x0223CE54
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD81_0223CDFC
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #5
|
|
bhi _0223CF62
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0223CE72: ; jump table
|
|
.short _0223CE7E - _0223CE72 - 2 ; case 0
|
|
.short _0223CEAE - _0223CE72 - 2 ; case 1
|
|
.short _0223CEC6 - _0223CE72 - 2 ; case 2
|
|
.short _0223CEDC - _0223CE72 - 2 ; case 3
|
|
.short _0223CF24 - _0223CE72 - 2 ; case 4
|
|
.short _0223CF52 - _0223CE72 - 2 ; case 5
|
|
_0223CE7E:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _0223CE9E
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x1c]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r4, #0x20]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r4, #0x14]
|
|
asr r1, r1, #0xc
|
|
bl MOD81_02238B5C
|
|
pop {r3, r4, r5, pc}
|
|
_0223CE9E:
|
|
ldr r0, [r4, #0x14]
|
|
mov r1, #0x1f
|
|
bl MOD81_02238B5C
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223CEAE:
|
|
mov r1, #6
|
|
add r0, r4, #0
|
|
lsl r1, r1, #6
|
|
mov r2, #0x1e
|
|
bl MOD81_0223CE38
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223CEC6:
|
|
ldr r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0xa
|
|
ble _0223CF62
|
|
mov r0, #0
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223CEDC:
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x30]
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x1e
|
|
ldr r1, [r4, #0x30]
|
|
lsl r0, r0, #6
|
|
sub r0, r1, r0
|
|
str r0, [r4, #0x30]
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x14]
|
|
add r1, #0x24
|
|
bl MOD81_02238B18
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, _0223CF64 ; =0xFFFF5000
|
|
cmp r1, r0
|
|
bge _0223CF62
|
|
ldr r0, _0223CF68 ; =0x000005E6
|
|
bl FUN_020054C8
|
|
mov r0, #0
|
|
ldr r1, [r4, #0x30]
|
|
mvn r0, r0
|
|
mul r0, r1
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
mov r3, #8
|
|
bl MOD81_0223CCA8
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223CF24:
|
|
ldr r1, [r4, #0x28]
|
|
ldr r0, [r4, #0x30]
|
|
add r1, r1, r0
|
|
mov r0, #0x13
|
|
lsl r0, r0, #0xc
|
|
str r1, [r4, #0x28]
|
|
cmp r1, r0
|
|
blt _0223CF36
|
|
str r0, [r4, #0x28]
|
|
_0223CF36:
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0x14]
|
|
add r1, #0x24
|
|
bl MOD81_02238B18
|
|
mov r0, #0x13
|
|
ldr r1, [r4, #0x28]
|
|
lsl r0, r0, #0xc
|
|
cmp r1, r0
|
|
bne _0223CF62
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, #1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
_0223CF52:
|
|
ldr r0, [r4, #8]
|
|
bl MOD81_0223CCF8
|
|
cmp r0, #0
|
|
beq _0223CF62
|
|
add r0, r5, #0
|
|
bl MOD81_0223CDE0
|
|
_0223CF62:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0223CF64: .word 0xFFFF5000
|
|
_0223CF68: .word 0x000005E6
|
|
thumb_func_end MOD81_0223CE54
|
|
|
|
.section .rodata
|
|
; 0x0223CF6C
|
|
.byte 0x90, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x19, 0x8D, 0x23, 0x02, 0xC5, 0x8D, 0x23, 0x02
|
|
.byte 0x65, 0x8D, 0x23, 0x02, 0x03, 0x00, 0x00, 0x00, 0xE9, 0x96, 0x23, 0x02, 0xA9, 0x97, 0x23, 0x02
|
|
.byte 0x55, 0x97, 0x23, 0x02, 0x03, 0x00, 0x00, 0x00, 0x99, 0xA8, 0x23, 0x02, 0xF9, 0xA8, 0x23, 0x02
|
|
.byte 0xC9, 0xA8, 0x23, 0x02, 0x03, 0x00, 0x00, 0x00, 0xE9, 0xB0, 0x23, 0x02, 0x21, 0xB1, 0x23, 0x02
|
|
.byte 0x0D, 0xB1, 0x23, 0x02, 0x01, 0x00, 0x00, 0x00, 0xE9, 0xB4, 0x23, 0x02, 0x55, 0xB5, 0x23, 0x02
|
|
.byte 0x25, 0xB5, 0x23, 0x02, 0x05, 0x00, 0x00, 0x00, 0x19, 0xBD, 0x23, 0x02, 0x85, 0xBD, 0x23, 0x02
|
|
.byte 0x4D, 0xBD, 0x23, 0x02, 0x05, 0x00, 0x00, 0x00, 0x31, 0xC5, 0x23, 0x02, 0xD5, 0xC5, 0x23, 0x02
|
|
.byte 0x81, 0xC5, 0x23, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x45, 0x8E, 0x23, 0x02, 0x69, 0x90, 0x23, 0x02, 0x95, 0x90, 0x23, 0x02, 0xF5, 0x91, 0x23, 0x02
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x01
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x60, 0x00, 0xA0, 0x00, 0xE0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x98, 0x23, 0x02, 0x39, 0x98, 0x23, 0x02
|
|
.byte 0x81, 0x98, 0x23, 0x02, 0x2D, 0x99, 0x23, 0x02, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
|
|
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x16, 0x00, 0x00, 0x02, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1E, 0x04, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x51, 0xA9, 0x23, 0x02, 0x99, 0xA9, 0x23, 0x02
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x51, 0xB1, 0x23, 0x02, 0x79, 0xB1, 0x23, 0x02, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1A, 0x00
|
|
.byte 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1C, 0x04, 0x00, 0x02, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x01, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x85, 0xB5, 0x23, 0x02, 0xBD, 0xB5, 0x23, 0x02
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
.byte 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0xA0, 0x00, 0xE0, 0x00, 0xF1, 0xBD, 0x23, 0x02
|
|
.byte 0x21, 0xBE, 0x23, 0x02, 0xF1, 0xBE, 0x23, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
|
|
.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x16, 0x00, 0x00, 0x02, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1E, 0x04, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x59, 0xC6, 0x23, 0x02, 0x29, 0xC8, 0x23, 0x02, 0x55, 0xC8, 0x23, 0x02, 0x21, 0xC9, 0x23, 0x02
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x01
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
|
|
|
.section .data
|
|
; 0x0223D3A0
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.section .bss
|
|
; 0x0223D3C0
|
|
.space 0xA0
|