mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-20 07:44:54 -05:00
4626 lines
82 KiB
ArmAsm
4626 lines
82 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
.section .text
|
|
.balign 2, 0
|
|
|
|
thumb_func_start MOD20_02252440
|
|
MOD20_02252440: ; 0x02252440
|
|
ldr r3, _02252444 ; =FUN_02037790
|
|
bx r3
|
|
.align 2, 0
|
|
_02252444: .word FUN_02037790
|
|
thumb_func_end MOD20_02252440
|
|
|
|
thumb_func_start MOD20_02252448
|
|
MOD20_02252448: ; 0x02252448
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #3
|
|
str r2, [sp]
|
|
mov r1, #7
|
|
lsl r2, r0, #0xe
|
|
add r7, r3, #0
|
|
bl FUN_0201681C
|
|
mov r0, #3
|
|
mov r1, #8
|
|
lsl r2, r0, #0xe
|
|
bl FUN_0201681C
|
|
mov r0, #7
|
|
mov r1, #0x60
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _022524B2
|
|
str r4, [r5]
|
|
ldr r0, [sp]
|
|
str r6, [r4, #0x5c]
|
|
str r0, [r4, #0x54]
|
|
bl FUN_0204C1A8
|
|
str r0, [r4, #0x58]
|
|
ldr r0, [sp, #0x18]
|
|
str r7, [r4, #0x4c]
|
|
str r0, [r4, #0x50]
|
|
add r0, r4, #0
|
|
bl MOD20_0225253C
|
|
cmp r0, #0
|
|
beq _022524B2
|
|
bl FUN_0201CC08
|
|
mov r0, #4
|
|
bl FUN_0201CC24
|
|
ldr r0, _022524B4 ; =MOD20_022525F0
|
|
str r5, [r4, #0x34]
|
|
add r1, r4, #0
|
|
mov r2, #4
|
|
bl FUN_0200CA44
|
|
str r0, [r4, #0x38]
|
|
ldr r0, _022524B8 ; =MOD20_0225259C
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA44
|
|
_022524B2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_022524B4: .word MOD20_022525F0
|
|
_022524B8: .word MOD20_0225259C
|
|
thumb_func_end MOD20_02252448
|
|
|
|
thumb_func_start MOD20_022524BC
|
|
MOD20_022524BC: ; 0x022524BC
|
|
push {r3, lr}
|
|
ldrb r1, [r0]
|
|
cmp r1, #3
|
|
beq _022524CE
|
|
cmp r1, #4
|
|
beq _022524CE
|
|
mov r1, #3
|
|
bl MOD20_022525F8
|
|
_022524CE:
|
|
pop {r3, pc}
|
|
thumb_func_end MOD20_022524BC
|
|
|
|
thumb_func_start MOD20_022524D0
|
|
MOD20_022524D0: ; 0x022524D0
|
|
cmp r0, #0
|
|
bne _022524D8
|
|
mov r0, #1
|
|
bx lr
|
|
_022524D8:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end MOD20_022524D0
|
|
|
|
thumb_func_start MOD20_022524DC
|
|
MOD20_022524DC: ; 0x022524DC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
cmp r1, #5
|
|
bhi _0225252E
|
|
add r0, r1, r1
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022524F0: ; jump table
|
|
.short _0225252E - _022524F0 - 2 ; case 0
|
|
.short _022524FC - _022524F0 - 2 ; case 1
|
|
.short _0225252E - _022524F0 - 2 ; case 2
|
|
.short _0225252E - _022524F0 - 2 ; case 3
|
|
.short _0225251E - _022524F0 - 2 ; case 4
|
|
.short _02252502 - _022524F0 - 2 ; case 5
|
|
_022524FC:
|
|
mov r0, #1
|
|
strb r0, [r4, #4]
|
|
pop {r4, pc}
|
|
_02252502:
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF84
|
|
add r1, r0, #1
|
|
ldr r0, _02252530 ; =0x0001869F
|
|
cmp r1, r0
|
|
bls _02252512
|
|
mov r1, #0
|
|
_02252512:
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF88
|
|
mov r0, #1
|
|
strb r0, [r4, #7]
|
|
pop {r4, pc}
|
|
_0225251E:
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #2
|
|
bne _0225252E
|
|
ldr r1, [r4, #0x44]
|
|
cmp r1, #0
|
|
beq _0225252E
|
|
ldr r0, [r4, #0x48]
|
|
blx r1
|
|
_0225252E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_02252530: .word 0x0001869F
|
|
thumb_func_end MOD20_022524DC
|
|
|
|
thumb_func_start MOD20_02252534
|
|
MOD20_02252534: ; 0x02252534
|
|
ldrb r0, [r0, #3]
|
|
bx lr
|
|
thumb_func_end MOD20_02252534
|
|
|
|
thumb_func_start MOD20_02252538
|
|
MOD20_02252538: ; 0x02252538
|
|
ldr r0, [r0, #0x14]
|
|
bx lr
|
|
thumb_func_end MOD20_02252538
|
|
|
|
thumb_func_start MOD20_0225253C
|
|
MOD20_0225253C: ; 0x0225253C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
ldr r2, [r4, #0x50]
|
|
add r0, #0x1c
|
|
add r1, #0x20
|
|
add r3, r4, #0
|
|
bl MOD20_02252C5C
|
|
cmp r0, #0
|
|
beq _02252578
|
|
mov r1, #0
|
|
strb r1, [r4]
|
|
strb r1, [r4, #1]
|
|
strb r1, [r4, #3]
|
|
strb r1, [r4, #4]
|
|
strb r1, [r4, #7]
|
|
strb r1, [r4, #5]
|
|
strb r1, [r4, #6]
|
|
sub r0, r1, #1
|
|
str r0, [r4, #0x14]
|
|
strb r1, [r4, #2]
|
|
add r0, r4, #0
|
|
str r1, [r4, #8]
|
|
bl MOD20_022529C4
|
|
cmp r0, #0
|
|
beq _02252578
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_02252578:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_0225253C
|
|
|
|
thumb_func_start MOD20_0225257C
|
|
MOD20_0225257C: ; 0x0225257C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x38]
|
|
bl FUN_0200CAB4
|
|
add r0, r4, #0
|
|
bl MOD20_02252A08
|
|
add r0, r4, #0
|
|
bl MOD20_022528FC
|
|
ldr r0, [r4, #0x1c]
|
|
bl MOD20_02252E18
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225257C
|
|
|
|
thumb_func_start MOD20_0225259C
|
|
MOD20_0225259C: ; 0x0225259C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4]
|
|
cmp r0, #4
|
|
bhs _022525C0
|
|
cmp r0, #0
|
|
beq _022525B2
|
|
add r0, r4, #0
|
|
bl MOD20_02252A14
|
|
_022525B2:
|
|
ldrb r1, [r4]
|
|
add r0, r4, #0
|
|
lsl r2, r1, #2
|
|
ldr r1, _022525EC ; =0x022544CC
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
pop {r3, r4, r5, pc}
|
|
_022525C0:
|
|
beq _022525C6
|
|
bl ErrorHandling
|
|
_022525C6:
|
|
ldr r0, [r4, #0x34]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
bl MOD20_0225257C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl FUN_0200CAB4
|
|
mov r0, #7
|
|
bl FUN_020168D0
|
|
mov r0, #8
|
|
bl FUN_020168D0
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_022525EC: .word 0x022544CC
|
|
thumb_func_end MOD20_0225259C
|
|
|
|
thumb_func_start MOD20_022525F0
|
|
MOD20_022525F0: ; 0x022525F0
|
|
mov r0, #0
|
|
strb r0, [r1, #4]
|
|
strb r0, [r1, #7]
|
|
bx lr
|
|
thumb_func_end MOD20_022525F0
|
|
|
|
thumb_func_start MOD20_022525F8
|
|
MOD20_022525F8: ; 0x022525F8
|
|
strb r1, [r0]
|
|
mov r1, #0
|
|
strb r1, [r0, #1]
|
|
bx lr
|
|
thumb_func_end MOD20_022525F8
|
|
|
|
thumb_func_start MOD20_02252600
|
|
MOD20_02252600: ; 0x02252600
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #3
|
|
bhi _02252684
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02252616: ; jump table
|
|
.short _0225261E - _02252616 - 2 ; case 0
|
|
.short _0225262E - _02252616 - 2 ; case 1
|
|
.short _0225265A - _02252616 - 2 ; case 2
|
|
.short _02252670 - _02252616 - 2 ; case 3
|
|
_0225261E:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
bl MOD20_02252E80
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r3, r4, r5, pc}
|
|
_0225262E:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
bl MOD20_02252EA4
|
|
cmp r0, #0
|
|
beq _02252684
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF14
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD20_022528B0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD20_02252918
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r3, r4, r5, pc}
|
|
_0225265A:
|
|
bl MOD20_0225293C
|
|
cmp r0, #0
|
|
beq _02252684
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #1
|
|
bl MOD20_02252E80
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
_02252670:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #1
|
|
bl MOD20_02252EA4
|
|
cmp r0, #0
|
|
beq _02252684
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD20_022525F8
|
|
_02252684:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252600
|
|
|
|
thumb_func_start MOD20_02252688
|
|
MOD20_02252688: ; 0x02252688
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #4
|
|
bls _02252694
|
|
b _022527AA
|
|
_02252694:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_022526A0: ; jump table
|
|
.short _022526AA - _022526A0 - 2 ; case 0
|
|
.short _022526D4 - _022526A0 - 2 ; case 1
|
|
.short _0225271A - _022526A0 - 2 ; case 2
|
|
.short _02252750 - _022526A0 - 2 ; case 3
|
|
.short _0225276C - _022526A0 - 2 ; case 4
|
|
_022526AA:
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _022527AA
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #3
|
|
beq _022526BC
|
|
cmp r0, #5
|
|
bne _022527AA
|
|
_022526BC:
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #1
|
|
strb r0, [r4, #5]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #4
|
|
bl MOD20_02252E80
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_022526D4:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #3
|
|
beq _022526DE
|
|
cmp r0, #5
|
|
bne _022526E2
|
|
_022526DE:
|
|
mov r0, #1
|
|
str r0, [r4, #0xc]
|
|
_022526E2:
|
|
ldr r0, [r4, #0x1c]
|
|
bl MOD20_02252EB0
|
|
cmp r0, #0
|
|
beq _022527AA
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF1C
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _02252710
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #9
|
|
bl MOD20_02252E80
|
|
mov r0, #0x1e
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #4
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252710:
|
|
mov r0, #3
|
|
str r0, [r4, #0x10]
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_0225271A:
|
|
ldr r1, [r4, #8]
|
|
cmp r1, #3
|
|
beq _02252724
|
|
cmp r1, #5
|
|
bne _0225273A
|
|
_02252724:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #9
|
|
bl MOD20_02252E80
|
|
mov r0, #0x1e
|
|
str r0, [r4, #0x10]
|
|
mov r0, #0
|
|
str r0, [r4, #0xc]
|
|
mov r0, #4
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_0225273A:
|
|
ldr r1, [r4, #0x10]
|
|
cmp r1, #0
|
|
beq _02252746
|
|
sub r0, r1, #1
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_02252746:
|
|
bl MOD20_0225294C
|
|
mov r0, #3
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252750:
|
|
bl MOD20_02252968
|
|
cmp r0, #0
|
|
beq _022527AA
|
|
add r0, r4, #0
|
|
bl MOD20_022528FC
|
|
bl FUN_020893E0
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl MOD20_022525F8
|
|
pop {r4, pc}
|
|
_0225276C:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #3
|
|
beq _02252776
|
|
cmp r0, #5
|
|
bne _0225278C
|
|
_02252776:
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF1C
|
|
str r0, [r4, #0x20]
|
|
mov r0, #0x1e
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xa
|
|
bl MOD20_02252E80
|
|
pop {r4, pc}
|
|
_0225278C:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _02252798
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x10]
|
|
pop {r4, pc}
|
|
_02252798:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xb
|
|
bl MOD20_02252E80
|
|
add r0, r4, #0
|
|
bl MOD20_0225294C
|
|
mov r0, #3
|
|
strb r0, [r4, #1]
|
|
_022527AA:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02252688
|
|
|
|
thumb_func_start MOD20_022527AC
|
|
MOD20_022527AC: ; 0x022527AC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #0
|
|
beq _022527C0
|
|
cmp r1, #1
|
|
beq _022527E4
|
|
cmp r1, #2
|
|
beq _022527FC
|
|
pop {r3, r4, r5, pc}
|
|
_022527C0:
|
|
mov r0, #1
|
|
strb r0, [r4, #6]
|
|
ldr r0, [r4, #0x58]
|
|
bl FUN_0204BF14
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD20_022528B0
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl MOD20_02252918
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r3, r4, r5, pc}
|
|
_022527E4:
|
|
bl MOD20_0225293C
|
|
cmp r0, #0
|
|
beq _02252816
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #2
|
|
bl MOD20_02252E80
|
|
ldrb r0, [r4, #1]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r3, r4, r5, pc}
|
|
_022527FC:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #2
|
|
bl MOD20_02252EA4
|
|
cmp r0, #0
|
|
beq _02252816
|
|
mov r0, #0
|
|
strb r0, [r4, #5]
|
|
strb r0, [r4, #6]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl MOD20_022525F8
|
|
_02252816:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_022527AC
|
|
|
|
thumb_func_start MOD20_02252818
|
|
MOD20_02252818: ; 0x02252818
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #3
|
|
bhi _022528AC
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225282E: ; jump table
|
|
.short _02252836 - _0225282E - 2 ; case 0
|
|
.short _02252866 - _0225282E - 2 ; case 1
|
|
.short _0225287A - _0225282E - 2 ; case 2
|
|
.short _02252890 - _0225282E - 2 ; case 3
|
|
_02252836:
|
|
ldrb r1, [r4, #2]
|
|
cmp r1, #3
|
|
bhi _022528AC
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02252848: ; jump table
|
|
.short _02252860 - _02252848 - 2 ; case 0
|
|
.short _02252850 - _02252848 - 2 ; case 1
|
|
.short _02252856 - _02252848 - 2 ; case 2
|
|
.short _02252860 - _02252848 - 2 ; case 3
|
|
_02252850:
|
|
mov r0, #1
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252856:
|
|
bl MOD20_0225294C
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252860:
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252866:
|
|
bl MOD20_0225293C
|
|
cmp r0, #0
|
|
beq _022528AC
|
|
add r0, r4, #0
|
|
bl MOD20_0225294C
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_0225287A:
|
|
bl MOD20_02252968
|
|
cmp r0, #0
|
|
beq _022528AC
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xe
|
|
bl MOD20_02252E80
|
|
mov r0, #3
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_02252890:
|
|
ldr r0, [r4, #0x1c]
|
|
bl MOD20_02252EB0
|
|
cmp r0, #0
|
|
beq _022528AC
|
|
add r0, r4, #0
|
|
bl MOD20_022528FC
|
|
bl FUN_0201CD04
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
bl MOD20_022525F8
|
|
_022528AC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252818
|
|
|
|
thumb_func_start MOD20_022528B0
|
|
MOD20_022528B0: ; 0x022528B0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bmi _022528BC
|
|
cmp r4, #0x19
|
|
blo _022528C0
|
|
_022528BC:
|
|
bl ErrorHandling
|
|
_022528C0:
|
|
mov r0, #0
|
|
ldr r1, [r5, #0x14]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
bne _022528F0
|
|
ldr r2, _022528F4 ; =0x022544DC
|
|
mov r1, #0
|
|
_022528CE:
|
|
ldr r0, [r2]
|
|
cmp r4, r0
|
|
bne _022528E8
|
|
ldr r0, _022528F8 ; =0x022544E0
|
|
lsl r1, r1, #3
|
|
ldr r6, [r0, r1]
|
|
mov r1, #2
|
|
add r0, r6, #0
|
|
bl HandleLoadOverlay
|
|
str r4, [r5, #0x14]
|
|
str r6, [r5, #0x18]
|
|
pop {r4, r5, r6, pc}
|
|
_022528E8:
|
|
add r1, r1, #1
|
|
add r2, #8
|
|
cmp r1, #0x19
|
|
blo _022528CE
|
|
_022528F0:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022528F4: .word 0x022544DC
|
|
_022528F8: .word 0x022544E0
|
|
thumb_func_end MOD20_022528B0
|
|
|
|
thumb_func_start MOD20_022528FC
|
|
MOD20_022528FC: ; 0x022528FC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldr r1, [r4, #0x14]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _02252916
|
|
ldr r0, [r4, #0x18]
|
|
bl UnloadOverlayByID
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [r4, #0x14]
|
|
_02252916:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_022528FC
|
|
|
|
thumb_func_start MOD20_02252918
|
|
MOD20_02252918: ; 0x02252918
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #0
|
|
beq _02252926
|
|
bl ErrorHandling
|
|
_02252926:
|
|
add r0, r4, #0
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x14]
|
|
ldr r5, [r4, #0x3c]
|
|
add r0, #0x24
|
|
add r1, r4, #0
|
|
blx r5
|
|
mov r0, #1
|
|
strb r0, [r4, #2]
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252918
|
|
|
|
thumb_func_start MOD20_0225293C
|
|
MOD20_0225293C: ; 0x0225293C
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #2
|
|
bne _02252946
|
|
mov r0, #1
|
|
bx lr
|
|
_02252946:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225293C
|
|
|
|
thumb_func_start MOD20_0225294C
|
|
MOD20_0225294C: ; 0x0225294C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #2
|
|
beq _0225295A
|
|
bl ErrorHandling
|
|
_0225295A:
|
|
ldr r0, [r4, #0x24]
|
|
ldr r1, [r4, #0x40]
|
|
blx r1
|
|
mov r0, #3
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225294C
|
|
|
|
thumb_func_start MOD20_02252968
|
|
MOD20_02252968: ; 0x02252968
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0
|
|
bne _02252972
|
|
mov r0, #1
|
|
bx lr
|
|
_02252972:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252968
|
|
|
|
thumb_func_start MOD20_02252978
|
|
MOD20_02252978: ; 0x02252978
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02252440
|
|
str r5, [r0, #0x3c]
|
|
str r4, [r0, #0x40]
|
|
mov r1, #0
|
|
str r1, [r0, #0x44]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252978
|
|
|
|
thumb_func_start MOD20_0225298C
|
|
MOD20_0225298C: ; 0x0225298C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #1
|
|
beq _0225299A
|
|
bl ErrorHandling
|
|
_0225299A:
|
|
mov r0, #2
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_0225298C
|
|
|
|
thumb_func_start MOD20_022529A0
|
|
MOD20_022529A0: ; 0x022529A0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #3
|
|
beq _022529AE
|
|
bl ErrorHandling
|
|
_022529AE:
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_022529A0
|
|
|
|
thumb_func_start MOD20_022529B4
|
|
MOD20_022529B4: ; 0x022529B4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02252440
|
|
str r5, [r0, #0x44]
|
|
str r4, [r0, #0x48]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_022529B4
|
|
|
|
thumb_func_start MOD20_022529C4
|
|
MOD20_022529C4: ; 0x022529C4
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
ldr r0, _02252A00 ; =0x022544C4
|
|
ldr r2, _02252A04 ; =MOD20_02252A24
|
|
mov r1, #2
|
|
add r3, r4, #0
|
|
bl MOD20_02254130
|
|
str r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _022529F8
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
mov r3, #7
|
|
bl MOD20_022542AC
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [r4, #0x2c]
|
|
str r0, [r4, #0x30]
|
|
add sp, #4
|
|
mov r0, #1
|
|
pop {r3, r4, pc}
|
|
_022529F8:
|
|
mov r0, #0
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
nop
|
|
_02252A00: .word 0x022544C4
|
|
_02252A04: .word MOD20_02252A24
|
|
thumb_func_end MOD20_022529C4
|
|
|
|
thumb_func_start MOD20_02252A08
|
|
MOD20_02252A08: ; 0x02252A08
|
|
ldr r3, _02252A10 ; =MOD20_02254198
|
|
ldr r0, [r0, #0x28]
|
|
bx r3
|
|
nop
|
|
_02252A10: .word MOD20_02254198
|
|
thumb_func_end MOD20_02252A08
|
|
|
|
thumb_func_start MOD20_02252A14
|
|
MOD20_02252A14: ; 0x02252A14
|
|
ldr r3, _02252A20 ; =MOD20_022541B4
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
ldr r0, [r0, #0x28]
|
|
bx r3
|
|
nop
|
|
_02252A20: .word MOD20_022541B4
|
|
thumb_func_end MOD20_02252A14
|
|
|
|
thumb_func_start MOD20_02252A24
|
|
MOD20_02252A24: ; 0x02252A24
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r3, #0
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252A4C
|
|
cmp r7, #0
|
|
beq _02252A46
|
|
cmp r7, #1
|
|
bne _02252A50
|
|
mov r0, #1
|
|
strb r0, [r5, #3]
|
|
b _02252A50
|
|
_02252A46:
|
|
mov r0, #0
|
|
strb r0, [r5, #3]
|
|
b _02252A50
|
|
_02252A4C:
|
|
mov r0, #0
|
|
strb r0, [r5, #3]
|
|
_02252A50:
|
|
cmp r4, #1
|
|
bne _02252A6A
|
|
add r0, r5, #0
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
beq _02252AEA
|
|
cmp r7, #1
|
|
bne _02252AEA
|
|
ldr r0, _02252AEC ; =0x0000066E
|
|
bl FUN_020054C8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02252A6A:
|
|
mov r4, #0
|
|
mvn r4, r4
|
|
cmp r7, #0
|
|
beq _02252A78
|
|
cmp r7, #1
|
|
beq _02252A7C
|
|
b _02252A94
|
|
_02252A78:
|
|
mov r4, #8
|
|
b _02252A94
|
|
_02252A7C:
|
|
add r0, r5, #0
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252A8C
|
|
ldrb r0, [r5, #6]
|
|
cmp r0, #0
|
|
beq _02252A92
|
|
_02252A8C:
|
|
mov r4, #6
|
|
mov r6, #0
|
|
b _02252A94
|
|
_02252A92:
|
|
mov r4, #7
|
|
_02252A94:
|
|
mov r0, #0
|
|
ldr r1, [r5, #0x2c]
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _02252AA4
|
|
add r0, r4, #0
|
|
add r4, r1, #0
|
|
str r0, [r5, #0x2c]
|
|
_02252AA4:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
beq _02252AC0
|
|
ldr r0, [r5, #0x1c]
|
|
add r1, r4, #0
|
|
bl MOD20_02252AF0
|
|
cmp r0, #0
|
|
beq _02252AC0
|
|
sub r0, r4, #6
|
|
cmp r0, #1
|
|
bhi _02252AC0
|
|
str r4, [r5, #0x30]
|
|
_02252AC0:
|
|
cmp r6, #2
|
|
beq _02252AE0
|
|
cmp r6, #3
|
|
beq _02252AD6
|
|
cmp r6, #5
|
|
bne _02252AE8
|
|
ldr r0, [r5, #0x28]
|
|
mov r1, #0
|
|
bl MOD20_022542CC
|
|
b _02252AE8
|
|
_02252AD6:
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #6
|
|
bne _02252AE8
|
|
mov r6, #0
|
|
b _02252AE8
|
|
_02252AE0:
|
|
ldr r0, [r5, #0x30]
|
|
cmp r0, #7
|
|
bne _02252AE8
|
|
mov r6, #3
|
|
_02252AE8:
|
|
str r6, [r5, #8]
|
|
_02252AEA:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02252AEC: .word 0x0000066E
|
|
thumb_func_end MOD20_02252A24
|
|
|
|
thumb_func_start MOD20_02252AF0
|
|
MOD20_02252AF0: ; 0x02252AF0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
_02252AF8:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl MOD20_02252EA4
|
|
cmp r0, #0
|
|
bne _02252B08
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_02252B08:
|
|
add r4, r4, #1
|
|
cmp r4, #3
|
|
blo _02252AF8
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl MOD20_02252E80
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252AF0
|
|
|
|
thumb_func_start MOD20_02252B1C
|
|
MOD20_02252B1C: ; 0x02252B1C
|
|
push {r3, lr}
|
|
bl MOD20_02252440
|
|
ldr r0, [r0, #0x1c]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252B1C
|
|
|
|
thumb_func_start MOD20_02252B28
|
|
MOD20_02252B28: ; 0x02252B28
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl MOD20_02252440
|
|
ldrb r1, [r0, #5]
|
|
cmp r1, #0
|
|
bne _02252B46
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252B46
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl FUN_020054C8
|
|
_02252B46:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02252B28
|
|
|
|
thumb_func_start MOD20_02252B48
|
|
MOD20_02252B48: ; 0x02252B48
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl MOD20_02252440
|
|
ldrb r1, [r0, #5]
|
|
cmp r1, #0
|
|
bne _02252B66
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252B66
|
|
lsl r0, r4, #0x10
|
|
lsr r0, r0, #0x10
|
|
bl FUN_02005578
|
|
_02252B66:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02252B48
|
|
|
|
thumb_func_start MOD20_02252B68
|
|
MOD20_02252B68: ; 0x02252B68
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02252440
|
|
ldrb r1, [r0, #5]
|
|
cmp r1, #0
|
|
bne _02252BB4
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252BB4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl FUN_02020AB0
|
|
cmp r0, #0
|
|
beq _02252BB4
|
|
ldr r0, [r5]
|
|
sub r0, #0x10
|
|
cmp r0, #0xbf
|
|
bhs _02252B98
|
|
mov r1, #1
|
|
b _02252B9A
|
|
_02252B98:
|
|
mov r1, #0
|
|
_02252B9A:
|
|
ldr r0, [r4]
|
|
sub r0, #0x10
|
|
cmp r0, #0x9f
|
|
bhs _02252BA6
|
|
mov r0, #1
|
|
b _02252BA8
|
|
_02252BA6:
|
|
mov r0, #0
|
|
_02252BA8:
|
|
tst r0, r1
|
|
beq _02252BB0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02252BB0:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02252BB4:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252B68
|
|
|
|
thumb_func_start MOD20_02252BB8
|
|
MOD20_02252BB8: ; 0x02252BB8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02252440
|
|
ldrb r1, [r0, #5]
|
|
cmp r1, #0
|
|
bne _02252C04
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252C04
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl FUN_02020ACC
|
|
cmp r0, #0
|
|
beq _02252C04
|
|
ldr r0, [r5]
|
|
sub r0, #0x10
|
|
cmp r0, #0xbf
|
|
bhs _02252BE8
|
|
mov r1, #1
|
|
b _02252BEA
|
|
_02252BE8:
|
|
mov r1, #0
|
|
_02252BEA:
|
|
ldr r0, [r4]
|
|
sub r0, #0x10
|
|
cmp r0, #0x9f
|
|
bhs _02252BF6
|
|
mov r0, #1
|
|
b _02252BF8
|
|
_02252BF6:
|
|
mov r0, #0
|
|
_02252BF8:
|
|
tst r0, r1
|
|
beq _02252C00
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02252C00:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02252C04:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252BB8
|
|
|
|
thumb_func_start MOD20_02252C08
|
|
MOD20_02252C08: ; 0x02252C08
|
|
ldr r3, _02252C10 ; =FUN_0204646C
|
|
ldr r0, [r0, #0x5c]
|
|
bx r3
|
|
nop
|
|
_02252C10: .word FUN_0204646C
|
|
thumb_func_end MOD20_02252C08
|
|
|
|
thumb_func_start MOD20_02252C14
|
|
MOD20_02252C14: ; 0x02252C14
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02252C08
|
|
cmp r0, #0
|
|
bne _02252C2E
|
|
ldrb r0, [r5, #5]
|
|
cmp r0, #0
|
|
bne _02252C2E
|
|
add r0, r4, #0
|
|
bl MOD20_022541B4
|
|
_02252C2E:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252C14
|
|
|
|
thumb_func_start MOD20_02252C30
|
|
MOD20_02252C30: ; 0x02252C30
|
|
ldrb r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_02252C30
|
|
|
|
thumb_func_start MOD20_02252C34
|
|
MOD20_02252C34: ; 0x02252C34
|
|
ldrb r0, [r0, #7]
|
|
bx lr
|
|
thumb_func_end MOD20_02252C34
|
|
|
|
thumb_func_start MOD20_02252C38
|
|
MOD20_02252C38: ; 0x02252C38
|
|
ldr r0, [r0, #0x5c]
|
|
bx lr
|
|
thumb_func_end MOD20_02252C38
|
|
|
|
thumb_func_start MOD20_02252C3C
|
|
MOD20_02252C3C: ; 0x02252C3C
|
|
ldr r0, [r0, #0x58]
|
|
bx lr
|
|
thumb_func_end MOD20_02252C3C
|
|
|
|
thumb_func_start MOD20_02252C40
|
|
MOD20_02252C40: ; 0x02252C40
|
|
ldr r0, [r0, #0x54]
|
|
bx lr
|
|
thumb_func_end MOD20_02252C40
|
|
|
|
thumb_func_start MOD20_02252C44
|
|
MOD20_02252C44: ; 0x02252C44
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x54]
|
|
bl FUN_020238F4
|
|
bl FUN_020239CC
|
|
cmp r0, #1
|
|
beq _02252C58
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02252C58:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD20_02252C44
|
|
|
|
thumb_func_start MOD20_02252C5C
|
|
MOD20_02252C5C: ; 0x02252C5C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
mov r1, #0xea
|
|
add r5, r0, #0
|
|
mov r0, #7
|
|
lsl r1, r1, #2
|
|
add r7, r2, #0
|
|
str r3, [sp]
|
|
bl AllocFromHeap
|
|
str r0, [r5]
|
|
add r4, r0, #0
|
|
beq _02252D0A
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
str r7, [r4, r0]
|
|
ldr r0, [r4, r0]
|
|
bl FUN_020B0888
|
|
mov r0, #0x15
|
|
lsl r0, r0, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #7
|
|
bl MOD20_02253BA4
|
|
mov r1, #0x55
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
ldr r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _02252CA6
|
|
ldr r0, [r5]
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02252CA6:
|
|
mov r0, #7
|
|
str r6, [r4]
|
|
bl FUN_02016B94
|
|
mov r1, #6
|
|
lsl r1, r1, #6
|
|
str r0, [r4, r1]
|
|
ldr r0, [sp]
|
|
add r1, r1, #4
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
bl MOD20_02252D44
|
|
mov r1, #0x57
|
|
lsl r1, r1, #2
|
|
add r0, r4, r1
|
|
sub r1, #8
|
|
ldr r1, [r4, r1]
|
|
bl MOD20_02253428
|
|
ldr r0, [r5]
|
|
mov r1, #8
|
|
add r0, r0, #4
|
|
bl MOD20_022536F4
|
|
ldr r0, [r5]
|
|
mov r1, #0x88
|
|
add r0, #0x2c
|
|
bl MOD20_02252E5C
|
|
ldr r0, [r5]
|
|
mov r1, #0x8c
|
|
add r0, #0x84
|
|
bl MOD20_02252E5C
|
|
ldr r0, [r5]
|
|
mov r1, #0x90
|
|
add r0, #0xdc
|
|
bl MOD20_02252E5C
|
|
ldr r0, _02252D10 ; =MOD20_02252D14
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl FUN_0200CA98
|
|
mov r1, #0x56
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02252D0A:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02252D10: .word MOD20_02252D14
|
|
thumb_func_end MOD20_02252C5C
|
|
|
|
thumb_func_start MOD20_02252D14
|
|
MOD20_02252D14: ; 0x02252D14
|
|
mov r0, #0x55
|
|
lsl r0, r0, #2
|
|
ldr r3, _02252D20 ; =MOD20_02253C78
|
|
ldr r0, [r1, r0]
|
|
bx r3
|
|
nop
|
|
_02252D20: .word MOD20_02253C78
|
|
thumb_func_end MOD20_02252D14
|
|
|
|
thumb_func_start MOD20_02252D24
|
|
MOD20_02252D24: ; 0x02252D24
|
|
push {r3, lr}
|
|
bl MOD20_02252B1C
|
|
mov r1, #0x55
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252D24
|
|
|
|
thumb_func_start MOD20_02252D34
|
|
MOD20_02252D34: ; 0x02252D34
|
|
push {r3, lr}
|
|
bl MOD20_02252B1C
|
|
mov r1, #6
|
|
lsl r1, r1, #6
|
|
ldr r0, [r0, r1]
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252D34
|
|
|
|
thumb_func_start MOD20_02252D44
|
|
MOD20_02252D44: ; 0x02252D44
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0xc
|
|
mov r1, #0
|
|
add r2, sp, #0
|
|
mov r3, #7
|
|
bl FUN_02006C08
|
|
add r4, r0, #0
|
|
beq _02252D7A
|
|
ldr r0, [sp]
|
|
mov r2, #0x62
|
|
lsl r2, r2, #2
|
|
add r1, r5, r2
|
|
ldr r0, [r0, #0xc]
|
|
add r2, #0x78
|
|
bl MIi_CpuCopy32
|
|
mov r1, #0x62
|
|
lsl r1, r1, #2
|
|
add r0, r5, r1
|
|
add r1, #0x78
|
|
bl DC_FlushRange
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02252D7A:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252D44
|
|
|
|
thumb_func_start MOD20_02252D7C
|
|
MOD20_02252D7C: ; 0x02252D7C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
bl MOD20_02252B1C
|
|
add r4, r0, #0
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD20_02252C3C
|
|
bl FUN_0204BF44
|
|
mov r1, #0x62
|
|
lsl r1, r1, #2
|
|
add r5, r4, r1
|
|
lsl r4, r0, #6
|
|
add r0, r5, r4
|
|
lsl r1, r6, #5
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
add r0, r5, r4
|
|
add r1, r7, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadOBJPltt
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_02252D7C
|
|
|
|
thumb_func_start MOD20_02252DB4
|
|
MOD20_02252DB4: ; 0x02252DB4
|
|
push {r3, r4, r5, lr}
|
|
bl MOD20_02252B1C
|
|
add r4, r0, #0
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD20_02252C3C
|
|
bl FUN_0204BF44
|
|
mov r1, #0x62
|
|
lsl r0, r0, #5
|
|
lsl r1, r1, #2
|
|
add r0, #0x10
|
|
add r4, r4, r1
|
|
lsl r5, r0, #1
|
|
add r0, r4, r5
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadBGPltt
|
|
add r0, r4, r5
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl GXS_LoadOBJPltt
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252DB4
|
|
|
|
thumb_func_start MOD20_02252DEC
|
|
MOD20_02252DEC: ; 0x02252DEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl MOD20_02252B1C
|
|
add r4, r0, #0
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD20_02252C3C
|
|
bl FUN_0204BF44
|
|
mov r1, #0x62
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
lsl r0, r0, #6
|
|
add r0, r1, r0
|
|
add r1, r5, #0
|
|
mov r2, #0x20
|
|
bl MIi_CpuCopy16
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02252DEC
|
|
|
|
thumb_func_start MOD20_02252E18
|
|
MOD20_02252E18: ; 0x02252E18
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _02252E58
|
|
mov r0, #0x57
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl MOD20_022535A4
|
|
mov r0, #0x55
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02252E36
|
|
bl MOD20_02253C4C
|
|
_02252E36:
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02252E44
|
|
bl FreeToHeap
|
|
_02252E44:
|
|
mov r0, #0x56
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _02252E52
|
|
bl FUN_0200CAB4
|
|
_02252E52:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02252E58:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252E18
|
|
|
|
thumb_func_start MOD20_02252E5C
|
|
MOD20_02252E5C: ; 0x02252E5C
|
|
push {r4, r5}
|
|
mov r2, #0xf
|
|
ldr r5, _02252E7C ; =0x022545EC
|
|
mov r4, #0
|
|
lsl r2, r2, #0xc
|
|
_02252E66:
|
|
ldrh r3, [r5]
|
|
add r4, r4, #1
|
|
add r5, r5, #2
|
|
add r3, r1, r3
|
|
orr r3, r2
|
|
strh r3, [r0]
|
|
add r0, r0, #2
|
|
cmp r4, #0x2c
|
|
blo _02252E66
|
|
pop {r4, r5}
|
|
bx lr
|
|
.align 2, 0
|
|
_02252E7C: .word 0x022545EC
|
|
thumb_func_end MOD20_02252E5C
|
|
|
|
thumb_func_start MOD20_02252E80
|
|
MOD20_02252E80: ; 0x02252E80
|
|
push {lr}
|
|
sub sp, #0xc
|
|
add r2, r0, #0
|
|
add r0, r2, #4
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
mov r0, #7
|
|
str r0, [sp, #8]
|
|
ldr r0, _02252EA0 ; =0x02254644
|
|
ldr r3, [r2]
|
|
bl MOD20_022537E0
|
|
add sp, #0xc
|
|
pop {pc}
|
|
nop
|
|
_02252EA0: .word 0x02254644
|
|
thumb_func_end MOD20_02252E80
|
|
|
|
thumb_func_start MOD20_02252EA4
|
|
MOD20_02252EA4: ; 0x02252EA4
|
|
ldr r3, _02252EAC ; =MOD20_02253794
|
|
add r0, r0, #4
|
|
bx r3
|
|
nop
|
|
_02252EAC: .word MOD20_02253794
|
|
thumb_func_end MOD20_02252EA4
|
|
|
|
thumb_func_start MOD20_02252EB0
|
|
MOD20_02252EB0: ; 0x02252EB0
|
|
ldr r3, _02252EB8 ; =MOD20_022537B8
|
|
add r0, r0, #4
|
|
bx r3
|
|
nop
|
|
_02252EB8: .word MOD20_022537B8
|
|
thumb_func_end MOD20_02252EB0
|
|
|
|
thumb_func_start MOD20_02252EBC
|
|
MOD20_02252EBC: ; 0x02252EBC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl MOD20_022538A0
|
|
add r0, r0, #4
|
|
add r1, r4, #0
|
|
bl MOD20_02253888
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02252EBC
|
|
|
|
thumb_func_start MOD20_02252ED0
|
|
MOD20_02252ED0: ; 0x02252ED0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
bl GXS_SetGraphicsMode
|
|
mov r0, #0x80
|
|
bl GX_SetBankForSubBG
|
|
mov r0, #1
|
|
lsl r0, r0, #8
|
|
bl GX_SetBankForSubOBJ
|
|
ldr r2, _02252FD8 ; =0x04001000
|
|
ldr r0, _02252FDC ; =0xFFCFFFEF
|
|
ldr r1, [r2]
|
|
and r1, r0
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
str r0, [r2]
|
|
bl FUN_0201E740
|
|
mov r0, #0x10
|
|
mov r1, #1
|
|
bl FUN_0201E74C
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
ldr r2, _02252FE0 ; =0x022545B4
|
|
mov r1, #4
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
ldr r2, _02252FE4 ; =0x022545D0
|
|
mov r1, #5
|
|
mov r3, #0
|
|
bl FUN_02016C18
|
|
mov r0, #0x40
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #7
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc
|
|
lsl r2, r0, #5
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0xe
|
|
mov r3, #4
|
|
bl FUN_0200687C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #7
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc
|
|
lsl r2, r0, #5
|
|
ldr r2, [r4, r2]
|
|
mov r1, #0xf
|
|
mov r3, #4
|
|
bl FUN_020068C8
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl MOD20_02252C44
|
|
add r3, r0, #0
|
|
mov r0, #0x1e
|
|
lsl r0, r0, #4
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r0, #7
|
|
str r0, [sp, #8]
|
|
mov r0, #0xc
|
|
mov r1, #0xd
|
|
mov r2, #4
|
|
lsl r3, r3, #5
|
|
bl FUN_02006948
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x20
|
|
str r0, [sp, #4]
|
|
mov r1, #0x18
|
|
str r1, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
mov r2, #0xd8
|
|
bl FUN_02018540
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
ldr r0, _02252FD8 ; =0x04001000
|
|
ldr r1, _02252FE8 ; =0xFFFFE0FF
|
|
ldr r2, [r0]
|
|
and r2, r1
|
|
mov r1, #0x13
|
|
lsl r1, r1, #8
|
|
orr r1, r2
|
|
str r1, [r0]
|
|
ldr r2, [r0]
|
|
ldr r1, _02252FEC ; =0xFFFF1FFF
|
|
and r1, r2
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02252FD8: .word 0x04001000
|
|
_02252FDC: .word 0xFFCFFFEF
|
|
_02252FE0: .word 0x022545B4
|
|
_02252FE4: .word 0x022545D0
|
|
_02252FE8: .word 0xFFFFE0FF
|
|
_02252FEC: .word 0xFFFF1FFF
|
|
thumb_func_end MOD20_02252ED0
|
|
|
|
thumb_func_start MOD20_02252FF0
|
|
MOD20_02252FF0: ; 0x02252FF0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r1, [sp, #0x10]
|
|
add r0, r1, #0
|
|
bl MOD20_022538A8
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538A0
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538AC
|
|
cmp r0, #0
|
|
beq _0225301C
|
|
cmp r0, #1
|
|
beq _02253028
|
|
cmp r0, #2
|
|
beq _022530F6
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225301C:
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538B0
|
|
_02253028:
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _022530FC
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
ldrh r0, [r4, #2]
|
|
add r0, #0xc
|
|
strh r0, [r4, #2]
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0x28
|
|
bls _02253048
|
|
mov r0, #0x28
|
|
strh r0, [r4, #2]
|
|
_02253048:
|
|
ldrh r1, [r4, #2]
|
|
lsr r3, r1, #0x1f
|
|
lsl r2, r1, #0x1e
|
|
lsr r0, r1, #2
|
|
sub r2, r2, r3
|
|
mov r1, #0x1e
|
|
ror r2, r1
|
|
mov r1, #0xc
|
|
sub r6, r1, r0
|
|
lsl r0, r0, #1
|
|
str r0, [sp, #0x14]
|
|
lsl r0, r6, #0x18
|
|
ldr r1, [sp, #0x14]
|
|
add r7, r3, r2
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x18
|
|
lsl r1, r1, #0x18
|
|
str r0, [sp, #4]
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #8]
|
|
mov r1, #0xf
|
|
str r1, [sp, #0xc]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
mov r2, #0x40
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
cmp r7, #0
|
|
beq _022530DA
|
|
sub r0, r6, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r1, #0x18
|
|
add r2, r7, #0
|
|
add r2, #0xd8
|
|
lsl r2, r2, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
ldr r0, [sp, #0x14]
|
|
mov r2, #0xd8
|
|
add r0, r6, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r1, #0x18
|
|
sub r2, r2, r7
|
|
lsl r2, r2, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
_022530DA:
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0x28
|
|
bne _022530FC
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538B0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022530F6:
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_02252EBC
|
|
_022530FC:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_02252FF0
|
|
|
|
thumb_func_start MOD20_02253100
|
|
MOD20_02253100: ; 0x02253100
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r1, [sp, #0x10]
|
|
add r0, r1, #0
|
|
bl MOD20_022538A8
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538A0
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538AC
|
|
cmp r0, #0
|
|
beq _0225312C
|
|
cmp r0, #1
|
|
beq _02253138
|
|
cmp r0, #2
|
|
beq _0225321E
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225312C:
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538B0
|
|
_02253138:
|
|
ldrh r0, [r4]
|
|
add r0, r0, #1
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _02253224
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
ldrh r0, [r4, #2]
|
|
add r0, #8
|
|
strh r0, [r4, #2]
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0x28
|
|
bls _02253158
|
|
mov r0, #0x28
|
|
strh r0, [r4, #2]
|
|
_02253158:
|
|
ldrh r0, [r4, #2]
|
|
mov r3, #2
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1e
|
|
lsr r7, r0, #2
|
|
sub r1, r1, r2
|
|
mov r0, #0x1e
|
|
ror r1, r0
|
|
add r6, r2, r1
|
|
mov r0, #0x16
|
|
sub r0, r0, r7
|
|
str r0, [sp, #0x14]
|
|
lsl r1, r7, #0x18
|
|
str r3, [sp]
|
|
mov r0, #0x18
|
|
str r0, [sp, #4]
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #8]
|
|
mov r1, #0xf
|
|
str r1, [sp, #0xc]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
mov r2, #0xd8
|
|
bl FUN_02018540
|
|
ldr r0, [sp, #0x14]
|
|
lsl r1, r7, #0x18
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r0, #0x18
|
|
str r0, [sp, #4]
|
|
lsr r1, r1, #0x18
|
|
str r1, [sp, #8]
|
|
mov r1, #0xf
|
|
str r1, [sp, #0xc]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
mov r2, #0xd8
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
cmp r6, #0
|
|
beq _02253202
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
mov r1, #0x18
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
sub r3, r6, #1
|
|
mov r2, #0xdb
|
|
sub r2, r2, r3
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
ldr r0, [sp, #0x14]
|
|
add r6, #0xd4
|
|
sub r0, r0, #1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
mov r1, #0x18
|
|
lsl r2, r6, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
mov r3, #2
|
|
bl FUN_02018540
|
|
_02253202:
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0x28
|
|
bne _02253224
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_022538B0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225321E:
|
|
ldr r0, [sp, #0x10]
|
|
bl MOD20_02252EBC
|
|
_02253224:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_02253100
|
|
|
|
thumb_func_start MOD20_02253228
|
|
MOD20_02253228: ; 0x02253228
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A8
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538AC
|
|
add r2, r0, #0
|
|
cmp r2, #4
|
|
bhs _02253280
|
|
mov r3, #2
|
|
str r3, [sp]
|
|
mov r1, #0x18
|
|
mov r6, #0xd7
|
|
sub r2, r6, r2
|
|
lsl r2, r2, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #0x14
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
bl FUN_02018540
|
|
add r0, r6, #0
|
|
add r0, #0xa9
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
add r0, r5, #0
|
|
bl MOD20_022538B0
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_02253280:
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253228
|
|
|
|
thumb_func_start MOD20_0225328C
|
|
MOD20_0225328C: ; 0x0225328C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A8
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538AC
|
|
add r2, r0, #0
|
|
cmp r2, #4
|
|
bhs _022532E4
|
|
mov r3, #2
|
|
str r3, [sp]
|
|
mov r1, #0x18
|
|
mov r6, #0xdb
|
|
sub r2, r6, r2
|
|
lsl r2, r2, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #0x14
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
bl FUN_02018540
|
|
add r0, r6, #0
|
|
add r0, #0xa5
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
add r0, r5, #0
|
|
bl MOD20_022538B0
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_022532E4:
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225328C
|
|
|
|
thumb_func_start MOD20_022532F0
|
|
MOD20_022532F0: ; 0x022532F0
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
mov r0, #0xb
|
|
add r2, r4, #0
|
|
str r0, [sp]
|
|
mov r1, #4
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r2, #0x84
|
|
mov r3, #0x1b
|
|
bl FUN_02018148
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_02017CD0
|
|
ldr r0, _02253334 ; =0x00000671
|
|
bl FUN_020054C8
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_02253334: .word 0x00000671
|
|
thumb_func_end MOD20_022532F0
|
|
|
|
thumb_func_start MOD20_02253338
|
|
MOD20_02253338: ; 0x02253338
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
mov r0, #0xb
|
|
add r2, r4, #0
|
|
str r0, [sp]
|
|
mov r1, #4
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r2, #0x2c
|
|
mov r3, #0x1b
|
|
bl FUN_02018148
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_02017CD0
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253338
|
|
|
|
thumb_func_start MOD20_02253378
|
|
MOD20_02253378: ; 0x02253378
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
mov r0, #0xb
|
|
add r2, r4, #0
|
|
str r0, [sp]
|
|
mov r1, #4
|
|
str r1, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
add r2, #0xdc
|
|
mov r3, #0x1b
|
|
bl FUN_02018148
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_02017CD0
|
|
ldr r0, _022533BC ; =0x0000066F
|
|
bl FUN_020054C8
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_022533BC: .word 0x0000066F
|
|
thumb_func_end MOD20_02253378
|
|
|
|
thumb_func_start MOD20_022533C0
|
|
MOD20_022533C0: ; 0x022533C0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
mov r1, #0x57
|
|
add r4, r0, #0
|
|
lsl r1, r1, #2
|
|
add r1, r4, r1
|
|
bl MOD20_02253430
|
|
mov r0, #0x57
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl MOD20_0225354C
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022533C0
|
|
|
|
thumb_func_start MOD20_022533EC
|
|
MOD20_022533EC: ; 0x022533EC
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r0, r4, #0
|
|
bl MOD20_022538A0
|
|
add r1, r0, #0
|
|
mov r0, #0x57
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r1, [r1]
|
|
bl MOD20_0225354C
|
|
add r0, r4, #0
|
|
bl MOD20_02252EBC
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_022533EC
|
|
|
|
thumb_func_start MOD20_0225340C
|
|
MOD20_0225340C: ; 0x0225340C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r0, r4, #0
|
|
bl MOD20_022538A0
|
|
mov r1, #0x57
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
bl MOD20_022535A4
|
|
add r0, r4, #0
|
|
bl MOD20_02252EBC
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_0225340C
|
|
|
|
thumb_func_start MOD20_02253428
|
|
MOD20_02253428: ; 0x02253428
|
|
mov r2, #0
|
|
str r2, [r0]
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_02253428
|
|
|
|
thumb_func_start MOD20_02253430
|
|
MOD20_02253430: ; 0x02253430
|
|
push {r4, r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
mov r1, #0xc
|
|
mov r2, #3
|
|
mov r3, #4
|
|
bl MOD20_02253FBC
|
|
cmp r0, #0
|
|
beq _022534CC
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r2, #1
|
|
str r2, [sp, #4]
|
|
mov r0, #7
|
|
str r0, [sp, #8]
|
|
mov r0, #0xc
|
|
mov r1, #2
|
|
bl FUN_02006A34
|
|
mov r0, #0x60
|
|
str r0, [sp]
|
|
mov r0, #7
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
mov r0, #0xc
|
|
mov r2, #5
|
|
add r3, r1, #0
|
|
bl FUN_02006930
|
|
add r0, r5, #0
|
|
mov r1, #0xf
|
|
bl MOD20_022534D4
|
|
add r2, r4, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _022534D0 ; =0x022545A4
|
|
add r2, #8
|
|
bl MOD20_02253E74
|
|
str r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
beq _022534CC
|
|
add r2, r4, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _022534D0 ; =0x022545A4
|
|
add r2, #8
|
|
bl MOD20_02253E74
|
|
str r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bne _022534AE
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
bl MOD20_02253F14
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
_022534AE:
|
|
mov r1, #1
|
|
lsl r1, r1, #0x10
|
|
mov r2, #0
|
|
bl MOD20_02253F54
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xf
|
|
bl MOD20_02253F9C
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #0xf
|
|
bl MOD20_02253F9C
|
|
mov r0, #1
|
|
str r0, [r4]
|
|
_022534CC:
|
|
add sp, #0xc
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_022534D0: .word 0x022545A4
|
|
thumb_func_end MOD20_02253430
|
|
|
|
thumb_func_start MOD20_022534D4
|
|
MOD20_022534D4: ; 0x022534D4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
add r4, r1, #0
|
|
bl MOD20_02252C3C
|
|
bl FUN_0204BF44
|
|
mov r1, #0x62
|
|
lsl r0, r0, #5
|
|
lsl r1, r1, #2
|
|
add r0, r0, #1
|
|
add r2, r5, r1
|
|
lsl r0, r0, #1
|
|
add r0, r2, r0
|
|
add r1, #0x5a
|
|
mov r2, #2
|
|
bl GXS_LoadBGPltt
|
|
mov r0, #0xe2
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl MOD20_02252DEC
|
|
ldr r1, _02253548 ; =0x0000038A
|
|
add r0, r1, #6
|
|
ldrh r2, [r5, r1]
|
|
ldrh r0, [r5, r0]
|
|
strh r0, [r5, r1]
|
|
add r0, r1, #6
|
|
strh r2, [r5, r0]
|
|
add r0, r1, #0
|
|
add r2, r1, #0
|
|
add r0, #0xe
|
|
add r2, #0x1c
|
|
ldrh r3, [r5, r2]
|
|
add r2, r1, #0
|
|
ldrh r0, [r5, r0]
|
|
add r2, #0xe
|
|
strh r3, [r5, r2]
|
|
add r2, r1, #0
|
|
add r2, #0x1c
|
|
strh r0, [r5, r2]
|
|
sub r0, r1, #2
|
|
add r0, r5, r0
|
|
mov r1, #0x20
|
|
bl DC_FlushRange
|
|
mov r0, #0xe2
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
lsl r1, r4, #5
|
|
mov r2, #0x20
|
|
bl GXS_LoadOBJPltt
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02253548: .word 0x0000038A
|
|
thumb_func_end MOD20_022534D4
|
|
|
|
thumb_func_start MOD20_0225354C
|
|
MOD20_0225354C: ; 0x0225354C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _02253596
|
|
ldr r0, [r1]
|
|
ldr r2, _02253598 ; =0x04000280
|
|
mov r3, #0
|
|
add r0, r0, #1
|
|
strh r3, [r2]
|
|
str r0, [r2, #0x10]
|
|
add r0, r2, #0
|
|
mov r1, #0xa
|
|
add r0, #0x18
|
|
str r1, [r0]
|
|
str r3, [r0, #4]
|
|
lsr r0, r2, #0xb
|
|
_0225356E:
|
|
ldrh r1, [r2]
|
|
tst r1, r0
|
|
bne _0225356E
|
|
ldr r0, _0225359C ; =0x040002A0
|
|
add r3, r0, #0
|
|
ldr r1, [r0]
|
|
sub r3, #0x20
|
|
lsr r0, r0, #0xb
|
|
_0225357E:
|
|
ldrh r2, [r3]
|
|
tst r2, r0
|
|
bne _0225357E
|
|
ldr r0, _022535A0 ; =0x040002A8
|
|
ldr r5, [r0]
|
|
ldr r0, [r4, #0x1c]
|
|
bl MOD20_02253F28
|
|
ldr r0, [r4, #0x20]
|
|
add r1, r5, #0
|
|
bl MOD20_02253F28
|
|
_02253596:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02253598: .word 0x04000280
|
|
_0225359C: .word 0x040002A0
|
|
_022535A0: .word 0x040002A8
|
|
thumb_func_end MOD20_0225354C
|
|
|
|
thumb_func_start MOD20_022535A4
|
|
MOD20_022535A4: ; 0x022535A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _022535CA
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
bl MOD20_02253F14
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [r4, #0x20]
|
|
bl MOD20_02253F14
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl MOD20_02254014
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
_022535CA:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_022535A4
|
|
|
|
thumb_func_start MOD20_022535CC
|
|
MOD20_022535CC: ; 0x022535CC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x10
|
|
add r6, r1, #0
|
|
add r0, r6, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl MOD20_022538A8
|
|
add r0, r6, #0
|
|
bl MOD20_022538AC
|
|
add r5, r0, #0
|
|
cmp r5, #3
|
|
bhi _0225365E
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022535F8: ; jump table
|
|
.short _02253600 - _022535F8 - 2 ; case 0
|
|
.short _0225361C - _022535F8 - 2 ; case 1
|
|
.short _0225361C - _022535F8 - 2 ; case 2
|
|
.short _0225361C - _022535F8 - 2 ; case 3
|
|
_02253600:
|
|
mov r0, #6
|
|
str r0, [sp]
|
|
ldr r0, _02253664 ; =0x04001050
|
|
mov r1, #2
|
|
mov r2, #0x1c
|
|
mov r3, #0x1a
|
|
bl G2x_SetBlendAlpha_
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_02017CD0
|
|
_0225361C:
|
|
mov r3, #2
|
|
str r3, [sp]
|
|
mov r1, #0x18
|
|
mov r2, #0xdb
|
|
sub r2, r2, r5
|
|
lsl r2, r2, #0x10
|
|
str r1, [sp, #4]
|
|
mov r0, #0x14
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
lsr r2, r2, #0x10
|
|
bl FUN_02018540
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
cmp r5, #3
|
|
bne _02253658
|
|
add r0, r6, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
_02253658:
|
|
add r0, r6, #0
|
|
bl MOD20_022538B0
|
|
_0225365E:
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02253664: .word 0x04001050
|
|
thumb_func_end MOD20_022535CC
|
|
|
|
thumb_func_start MOD20_02253668
|
|
MOD20_02253668: ; 0x02253668
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
mov r3, #2
|
|
add r4, r0, #0
|
|
str r3, [sp]
|
|
mov r1, #0x18
|
|
str r1, [sp, #4]
|
|
mov r0, #0x14
|
|
str r0, [sp, #8]
|
|
mov r0, #0xf
|
|
str r0, [sp, #0xc]
|
|
lsl r0, r1, #4
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
mov r2, #0x40
|
|
bl FUN_02018540
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_02017CD0
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_02017CD0
|
|
mov r1, #0
|
|
ldr r0, _022536C4 ; =0x04001050
|
|
add r2, r1, #0
|
|
mov r3, #0x1f
|
|
str r1, [sp]
|
|
bl G2x_SetBlendAlpha_
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022536C4: .word 0x04001050
|
|
thumb_func_end MOD20_02253668
|
|
|
|
thumb_func_start MOD20_022536C8
|
|
MOD20_022536C8: ; 0x022536C8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r0, r5, #0
|
|
bl MOD20_022538A0
|
|
add r4, r0, #0
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #4
|
|
bl FUN_020178A0
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r4, r0]
|
|
mov r1, #5
|
|
bl FUN_020178A0
|
|
add r0, r5, #0
|
|
bl MOD20_02252EBC
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_022536C8
|
|
|
|
thumb_func_start MOD20_022536F4
|
|
MOD20_022536F4: ; 0x022536F4
|
|
ldr r2, _02253710 ; =0x12345678
|
|
str r1, [r0]
|
|
mov r3, #0
|
|
str r2, [r0, #4]
|
|
cmp r1, #0
|
|
bls _0225370C
|
|
sub r2, r3, #1
|
|
_02253702:
|
|
add r3, r3, #1
|
|
str r2, [r0, #8]
|
|
add r0, r0, #4
|
|
cmp r3, r1
|
|
blo _02253702
|
|
_0225370C:
|
|
bx lr
|
|
nop
|
|
_02253710: .word 0x12345678
|
|
thumb_func_end MOD20_022536F4
|
|
|
|
thumb_func_start MOD20_02253714
|
|
MOD20_02253714: ; 0x02253714
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r5, #4]
|
|
ldr r0, _02253750 ; =0x12345678
|
|
cmp r1, r0
|
|
beq _02253726
|
|
bl ErrorHandling
|
|
_02253726:
|
|
ldr r6, [r5]
|
|
mov r2, #0
|
|
cmp r6, #0
|
|
bls _0225374A
|
|
add r3, r5, #0
|
|
sub r0, r2, #1
|
|
_02253732:
|
|
ldr r1, [r3, #8]
|
|
cmp r1, r0
|
|
bne _02253742
|
|
lsl r0, r2, #2
|
|
add r0, r5, r0
|
|
str r4, [r0, #8]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02253742:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
cmp r2, r6
|
|
blo _02253732
|
|
_0225374A:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02253750: .word 0x12345678
|
|
thumb_func_end MOD20_02253714
|
|
|
|
thumb_func_start MOD20_02253754
|
|
MOD20_02253754: ; 0x02253754
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r5, #4]
|
|
ldr r0, _02253790 ; =0x12345678
|
|
cmp r1, r0
|
|
beq _02253766
|
|
bl ErrorHandling
|
|
_02253766:
|
|
ldr r3, [r5]
|
|
mov r2, #0
|
|
cmp r3, #0
|
|
bls _0225378A
|
|
add r1, r5, #0
|
|
_02253770:
|
|
ldr r0, [r1, #8]
|
|
cmp r4, r0
|
|
bne _02253782
|
|
mov r1, #0
|
|
lsl r0, r2, #2
|
|
mvn r1, r1
|
|
add r0, r5, r0
|
|
str r1, [r0, #8]
|
|
pop {r3, r4, r5, pc}
|
|
_02253782:
|
|
add r2, r2, #1
|
|
add r1, r1, #4
|
|
cmp r2, r3
|
|
blo _02253770
|
|
_0225378A:
|
|
bl ErrorHandling
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_02253790: .word 0x12345678
|
|
thumb_func_end MOD20_02253754
|
|
|
|
thumb_func_start MOD20_02253794
|
|
MOD20_02253794: ; 0x02253794
|
|
push {r3, r4}
|
|
ldr r4, [r0]
|
|
mov r3, #0
|
|
cmp r4, #0
|
|
bls _022537B2
|
|
_0225379E:
|
|
ldr r2, [r0, #8]
|
|
cmp r1, r2
|
|
bne _022537AA
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_022537AA:
|
|
add r3, r3, #1
|
|
add r0, r0, #4
|
|
cmp r3, r4
|
|
blo _0225379E
|
|
_022537B2:
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end MOD20_02253794
|
|
|
|
thumb_func_start MOD20_022537B8
|
|
MOD20_022537B8: ; 0x022537B8
|
|
push {r3, r4}
|
|
ldr r4, [r0]
|
|
mov r3, #0
|
|
cmp r4, #0
|
|
bls _022537D8
|
|
sub r1, r3, #1
|
|
_022537C4:
|
|
ldr r2, [r0, #8]
|
|
cmp r2, r1
|
|
beq _022537D0
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_022537D0:
|
|
add r3, r3, #1
|
|
add r0, r0, #4
|
|
cmp r3, r4
|
|
blo _022537C4
|
|
_022537D8:
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022537B8
|
|
|
|
thumb_func_start MOD20_022537E0
|
|
MOD20_022537E0: ; 0x022537E0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
str r2, [sp]
|
|
mov r0, #0
|
|
add r5, r1, #0
|
|
ldr r2, [r7]
|
|
sub r1, r0, #1
|
|
str r3, [sp, #4]
|
|
cmp r2, r1
|
|
beq _02253880
|
|
add r3, r7, #0
|
|
sub r1, r0, #1
|
|
_022537FA:
|
|
ldr r2, [r3]
|
|
cmp r5, r2
|
|
bne _02253876
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
str r0, [sp, #8]
|
|
add r0, #8
|
|
mov r1, #0xc
|
|
str r0, [sp, #8]
|
|
mul r6, r1
|
|
ldr r1, [sp, #8]
|
|
ldr r0, [sp, #0x28]
|
|
ldr r1, [r1, r6]
|
|
add r1, #0x18
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02253870
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0, r6]
|
|
cmp r0, #0
|
|
beq _0225382C
|
|
add r0, r4, #0
|
|
add r0, #0x18
|
|
b _0225382E
|
|
_0225382C:
|
|
mov r0, #0
|
|
_0225382E:
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r5, #0
|
|
bl MOD20_02253714
|
|
cmp r0, #0
|
|
beq _02253866
|
|
ldr r0, [sp]
|
|
ldr r2, [sp, #0x24]
|
|
str r0, [r4, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
str r5, [r4]
|
|
ldr r0, [sp, #4]
|
|
add r5, r7, #4
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r5, r6]
|
|
add r1, r4, #0
|
|
bl FUN_0200CA44
|
|
str r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _02253884
|
|
ldr r2, [r5, r6]
|
|
add r1, r4, #0
|
|
blx r2
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02253866:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02253870:
|
|
bl ErrorHandling
|
|
b _02253880
|
|
_02253876:
|
|
add r3, #0xc
|
|
ldr r2, [r3]
|
|
add r0, r0, #1
|
|
cmp r2, r1
|
|
bne _022537FA
|
|
_02253880:
|
|
bl ErrorHandling
|
|
_02253884:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_022537E0
|
|
|
|
thumb_func_start MOD20_02253888
|
|
MOD20_02253888: ; 0x02253888
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
bl MOD20_02253754
|
|
ldr r0, [r4, #0x14]
|
|
bl FUN_0200CAB4
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02253888
|
|
|
|
thumb_func_start MOD20_022538A0
|
|
MOD20_022538A0: ; 0x022538A0
|
|
ldr r0, [r0, #8]
|
|
bx lr
|
|
thumb_func_end MOD20_022538A0
|
|
|
|
thumb_func_start MOD20_022538A4
|
|
MOD20_022538A4: ; 0x022538A4
|
|
ldr r0, [r0, #0x10]
|
|
bx lr
|
|
thumb_func_end MOD20_022538A4
|
|
|
|
thumb_func_start MOD20_022538A8
|
|
MOD20_022538A8: ; 0x022538A8
|
|
ldr r0, [r0, #0xc]
|
|
bx lr
|
|
thumb_func_end MOD20_022538A8
|
|
|
|
thumb_func_start MOD20_022538AC
|
|
MOD20_022538AC: ; 0x022538AC
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_022538AC
|
|
|
|
thumb_func_start MOD20_022538B0
|
|
MOD20_022538B0: ; 0x022538B0
|
|
ldr r1, [r0, #4]
|
|
add r1, r1, #1
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_022538B0
|
|
|
|
thumb_func_start MOD20_022538B8
|
|
MOD20_022538B8: ; 0x022538B8
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_022538B8
|
|
|
|
thumb_func_start MOD20_022538BC
|
|
MOD20_022538BC: ; 0x022538BC
|
|
push {r3, r4, r5, r6}
|
|
mul r2, r3
|
|
ldr r4, [sp, #0x18]
|
|
add r1, r1, r2
|
|
lsl r6, r1, #1
|
|
lsl r4, r4, #0xc
|
|
ldr r1, [sp, #0x10]
|
|
add r5, r4, #0
|
|
orr r5, r1
|
|
add r2, r0, r6
|
|
strh r5, [r0, r6]
|
|
add r0, r1, #1
|
|
orr r0, r4
|
|
strh r0, [r2, #2]
|
|
ldr r0, [sp, #0x14]
|
|
lsl r3, r3, #1
|
|
add r1, r1, r0
|
|
add r0, r4, #0
|
|
orr r0, r1
|
|
strh r0, [r2, r3]
|
|
add r0, r1, #1
|
|
add r1, r4, #0
|
|
orr r1, r0
|
|
add r0, r2, r3
|
|
strh r1, [r0, #2]
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022538BC
|
|
|
|
thumb_func_start MOD20_022538F4
|
|
MOD20_022538F4: ; 0x022538F4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #8
|
|
mov r1, #0x20
|
|
bl AllocFromHeap
|
|
add r7, r0, #0
|
|
beq _02253960
|
|
bl MOD20_02252DEC
|
|
mov r4, #0
|
|
cmp r6, #0
|
|
bls _0225395A
|
|
_02253910:
|
|
ldrh r3, [r5]
|
|
mov r0, #0x1f
|
|
lsl r0, r0, #0xa
|
|
and r0, r3
|
|
asr r0, r0, #0xa
|
|
add r2, r0, #0
|
|
mov r1, #0x72
|
|
mov r0, #0x1f
|
|
mul r2, r1
|
|
and r0, r3
|
|
add r1, #0xb9
|
|
mul r1, r0
|
|
mov r0, #0x3e
|
|
lsl r0, r0, #4
|
|
and r0, r3
|
|
asr r3, r0, #5
|
|
ldr r0, _02253964 ; =0x0000024B
|
|
mul r0, r3
|
|
add r0, r1, r0
|
|
mov r1, #0xfa
|
|
add r0, r2, r0
|
|
lsl r1, r1, #2
|
|
bl _u32_div_f
|
|
lsr r1, r0, #3
|
|
cmp r1, #3
|
|
bls _02253948
|
|
mov r1, #3
|
|
_02253948:
|
|
ldr r0, _02253968 ; =0x0225470C
|
|
add r4, r4, #1
|
|
ldrb r0, [r0, r1]
|
|
lsl r0, r0, #1
|
|
ldrh r0, [r7, r0]
|
|
strh r0, [r5]
|
|
add r5, r5, #2
|
|
cmp r4, r6
|
|
blo _02253910
|
|
_0225395A:
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
_02253960:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02253964: .word 0x0000024B
|
|
_02253968: .word 0x0225470C
|
|
thumb_func_end MOD20_022538F4
|
|
|
|
thumb_func_start MOD20_0225396C
|
|
MOD20_0225396C: ; 0x0225396C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
mov r0, #8
|
|
mov r1, #0x20
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _022539C2
|
|
mov r0, #8
|
|
mov r1, #0x20
|
|
bl AllocFromHeap
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl MOD20_02252DEC
|
|
cmp r5, #0
|
|
beq _022539BC
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
lsl r3, r6, #1
|
|
_02253998:
|
|
ldrh r2, [r4, r3]
|
|
add r0, r0, #1
|
|
strh r2, [r1]
|
|
add r1, r1, #2
|
|
cmp r0, #0x10
|
|
blt _02253998
|
|
add r0, r5, #0
|
|
mov r1, #0x20
|
|
bl DC_FlushRange
|
|
add r0, r5, #0
|
|
lsl r1, r7, #5
|
|
mov r2, #0x20
|
|
bl GXS_LoadOBJPltt
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_022539BC:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_022539C2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_0225396C
|
|
|
|
thumb_func_start MOD20_022539C4
|
|
MOD20_022539C4: ; 0x022539C4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl FUN_0206B888
|
|
add r1, r0, #0
|
|
mov r0, #0x13
|
|
add r2, sp, #0
|
|
mov r3, #8
|
|
bl FUN_02006C08
|
|
add r4, r0, #0
|
|
beq _02253A02
|
|
ldr r0, [sp]
|
|
mov r1, #0x40
|
|
ldr r0, [r0, #0xc]
|
|
bl MOD20_022538F4
|
|
ldr r0, [sp]
|
|
mov r1, #0x80
|
|
ldr r0, [r0, #0xc]
|
|
bl DC_FlushRange
|
|
ldr r0, [sp]
|
|
lsl r1, r5, #5
|
|
ldr r0, [r0, #0xc]
|
|
mov r2, #0x80
|
|
bl GXS_LoadOBJPltt
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02253A02:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_022539C4
|
|
|
|
thumb_func_start MOD20_02253A04
|
|
MOD20_02253A04: ; 0x02253A04
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
str r0, [sp, #4]
|
|
lsl r0, r3, #1
|
|
str r0, [sp, #0xc]
|
|
add r6, r1, #0
|
|
str r2, [sp, #8]
|
|
ldr r2, _02253A9C ; =0x02254708
|
|
ldr r1, [sp, #0xc]
|
|
mov r0, #8
|
|
ldrh r1, [r2, r1]
|
|
bl AllocFromHeap
|
|
add r7, r0, #0
|
|
beq _02253A98
|
|
mov r0, #0x13
|
|
mov r1, #8
|
|
bl NARC_ctor
|
|
str r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
beq _02253A92
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
bls _02253A8C
|
|
ldr r1, _02253AA0 ; =0x02254704
|
|
ldr r0, [sp, #0xc]
|
|
ldr r4, [sp, #0x18]
|
|
ldrh r5, [r1, r0]
|
|
ldr r1, _02253A9C ; =0x02254708
|
|
ldrh r0, [r1, r0]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #4]
|
|
lsl r0, r0, #5
|
|
str r0, [sp, #0x10]
|
|
_02253A4E:
|
|
str r7, [sp]
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r1, [r6]
|
|
ldr r3, [sp, #0x14]
|
|
mov r2, #0
|
|
bl NARC_ReadFromMember
|
|
add r0, r7, #0
|
|
add r1, sp, #0x20
|
|
bl FUN_020B0088
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r5, #0
|
|
ldr r0, [r0, #0x14]
|
|
bl DC_FlushRange
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r0, [r0, #0x14]
|
|
add r1, r1, r4
|
|
add r2, r5, #0
|
|
bl GXS_LoadOBJ
|
|
ldr r0, [sp, #0x18]
|
|
add r6, r6, #4
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #8]
|
|
add r4, r4, r5
|
|
str r1, [sp, #0x18]
|
|
cmp r1, r0
|
|
blo _02253A4E
|
|
_02253A8C:
|
|
ldr r0, [sp, #0x1c]
|
|
bl NARC_dtor
|
|
_02253A92:
|
|
add r0, r7, #0
|
|
bl FreeToHeap
|
|
_02253A98:
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02253A9C: .word 0x02254708
|
|
_02253AA0: .word 0x02254704
|
|
thumb_func_end MOD20_02253A04
|
|
|
|
thumb_func_start MOD20_02253AA4
|
|
MOD20_02253AA4: ; 0x02253AA4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
mov r1, #2
|
|
add r2, sp, #0xc
|
|
strh r1, [r2]
|
|
mov r3, #3
|
|
strh r3, [r2, #2]
|
|
mov r3, #0xa
|
|
strh r3, [r2, #4]
|
|
mov r3, #0xb
|
|
strh r3, [r2, #6]
|
|
str r3, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
lsl r1, r4, #0x18
|
|
lsr r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
mov r3, #9
|
|
add r6, r0, #0
|
|
bl FUN_02018148
|
|
mov r1, #4
|
|
add r0, sp, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #5
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r1, #0xd
|
|
strh r1, [r0, #6]
|
|
mov r3, #0xb
|
|
lsl r1, r4, #0x18
|
|
str r3, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
bl FUN_02018148
|
|
mov r1, #6
|
|
add r0, sp, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #7
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xe
|
|
strh r1, [r0, #4]
|
|
mov r1, #0xf
|
|
strh r1, [r0, #6]
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
lsl r1, r4, #0x18
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
mov r3, #0xd
|
|
bl FUN_02018148
|
|
add r0, r5, #0
|
|
mov r1, #0xa
|
|
bl _u32_div_f
|
|
mov r1, #0xa
|
|
mul r1, r0
|
|
add r0, r0, #4
|
|
sub r5, r5, r1
|
|
lsr r1, r0, #2
|
|
lsl r0, r0, #0x1e
|
|
lsl r1, r1, #4
|
|
lsr r0, r0, #0x1d
|
|
add r2, r1, r0
|
|
add r0, sp, #0xc
|
|
strh r2, [r0]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r2, #0
|
|
add r1, #8
|
|
strh r1, [r0, #4]
|
|
add r2, #9
|
|
strh r2, [r0, #6]
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
lsl r1, r4, #0x18
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
mov r3, #0xf
|
|
bl FUN_02018148
|
|
add r0, r5, #4
|
|
lsr r1, r0, #2
|
|
lsl r0, r0, #0x1e
|
|
lsl r1, r1, #4
|
|
lsr r0, r0, #0x1d
|
|
add r2, r1, r0
|
|
add r0, sp, #0xc
|
|
strh r2, [r0]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r2, #0
|
|
add r1, #8
|
|
strh r1, [r0, #4]
|
|
add r2, #9
|
|
strh r2, [r0, #6]
|
|
mov r0, #0xb
|
|
str r0, [sp]
|
|
mov r0, #2
|
|
str r0, [sp, #4]
|
|
lsl r1, r4, #0x18
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
mov r3, #0x11
|
|
bl FUN_02018148
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253AA4
|
|
|
|
thumb_func_start MOD20_02253BA4
|
|
MOD20_02253BA4: ; 0x02253BA4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0x1c
|
|
mov r6, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02253C0E
|
|
add r0, r6, #0
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4, #0xc]
|
|
str r0, [r4, #4]
|
|
str r7, [r4]
|
|
str r5, [r4, #0x18]
|
|
add r0, r7, #0
|
|
bl FUN_020B0830
|
|
strh r0, [r4, #0x10]
|
|
ldrh r1, [r4, #0x10]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #3
|
|
bl AllocFromHeap
|
|
str r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _02253C0E
|
|
ldrh r2, [r4, #0x10]
|
|
mov r1, #0x90
|
|
add r0, r5, #0
|
|
mul r1, r2
|
|
bl AllocFromHeap
|
|
str r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _02253C0E
|
|
ldrh r1, [r4, #0x10]
|
|
add r0, r5, #0
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeap
|
|
str r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02253C0E
|
|
ldrh r2, [r4, #0x10]
|
|
ldr r1, [r4, #0xc]
|
|
bl MOD20_0225403C
|
|
add r0, r6, #0
|
|
strh r0, [r4, #0x12]
|
|
str r0, [r4, #8]
|
|
mov r6, #1
|
|
_02253C0E:
|
|
cmp r6, #0
|
|
bne _02253C46
|
|
cmp r4, #0
|
|
beq _02253C42
|
|
ldr r1, [r4, #0x14]
|
|
cmp r1, #0
|
|
beq _02253C22
|
|
add r0, r5, #0
|
|
bl FUN_02016A8C
|
|
_02253C22:
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0
|
|
beq _02253C2E
|
|
add r0, r5, #0
|
|
bl FUN_02016A8C
|
|
_02253C2E:
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _02253C3A
|
|
add r0, r5, #0
|
|
bl FUN_02016A8C
|
|
_02253C3A:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl FUN_02016A8C
|
|
_02253C42:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02253C46:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253BA4
|
|
|
|
thumb_func_start MOD20_02253C4C
|
|
MOD20_02253C4C: ; 0x02253C4C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
beq _02253C76
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _02253C5C
|
|
bl FreeToHeap
|
|
_02253C5C:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _02253C66
|
|
bl FreeToHeap
|
|
_02253C66:
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02253C70
|
|
bl FreeToHeap
|
|
_02253C70:
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
_02253C76:
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02253C4C
|
|
|
|
thumb_func_start MOD20_02253C78
|
|
MOD20_02253C78: ; 0x02253C78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r0, #0x12]
|
|
cmp r0, #0
|
|
bne _02253C86
|
|
b _02253E52
|
|
_02253C86:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r4, [r0, #8]
|
|
ldr r5, [r0, #0x14]
|
|
ldrh r0, [r0, #0x10]
|
|
cmp r4, #0
|
|
str r0, [sp, #0x10]
|
|
bne _02253C96
|
|
b _02253E38
|
|
_02253C96:
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
add r0, #8
|
|
lsl r1, r1, #0xc
|
|
bl FUN_020B1EC4
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02253CAE
|
|
b _02253E30
|
|
_02253CAE:
|
|
add r6, r4, #0
|
|
add r6, #0x40
|
|
mov r0, #0xc
|
|
ldrsh r0, [r6, r0]
|
|
ldr r1, [r4, #0x64]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0xe
|
|
ldrsh r0, [r6, r0]
|
|
ldr r1, [r4, #0x68]
|
|
lsl r0, r0, #0xc
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x1c]
|
|
add r0, r4, #0
|
|
add r0, #0x87
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _02253CEE
|
|
add r0, sp, #0x18
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
str r3, [sp, #8]
|
|
lsl r1, r1, #0x10
|
|
ldr r2, [r4, #0x34]
|
|
add r0, r5, #0
|
|
lsr r1, r1, #0x10
|
|
bl FUN_020B1AF8
|
|
b _02253D86
|
|
_02253CEE:
|
|
ldr r0, [r4, #0x6c]
|
|
bl MTX_Identity22_
|
|
ldrh r1, [r6, #0x12]
|
|
mov r0, #4
|
|
tst r0, r1
|
|
beq _02253D20
|
|
add r0, r4, #0
|
|
add r0, #0x8c
|
|
ldrh r2, [r6, #0x10]
|
|
ldrh r0, [r0]
|
|
ldr r1, _02253E58 ; =0x020FFA38
|
|
add r0, r2, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
asr r0, r0, #4
|
|
lsl r3, r0, #2
|
|
add r2, r1, r3
|
|
ldrsh r1, [r1, r3]
|
|
mov r3, #2
|
|
ldrsh r2, [r2, r3]
|
|
ldr r0, [r4, #0x6c]
|
|
bl MTX_Rot22_
|
|
b _02253D3E
|
|
_02253D20:
|
|
add r0, r4, #0
|
|
add r0, #0x8c
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02253D3E
|
|
asr r0, r0, #4
|
|
lsl r3, r0, #2
|
|
ldr r1, _02253E58 ; =0x020FFA38
|
|
ldr r0, [r4, #0x6c]
|
|
add r2, r1, r3
|
|
ldrsh r1, [r1, r3]
|
|
mov r3, #2
|
|
ldrsh r2, [r2, r3]
|
|
bl MTX_Rot22_
|
|
_02253D3E:
|
|
ldrh r1, [r6, #0x12]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _02253D62
|
|
ldr r0, [r6, #4]
|
|
ldr r7, [r4, #0x6c]
|
|
bl FX_Inv
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r6, #8]
|
|
bl FX_Inv
|
|
add r3, r0, #0
|
|
ldr r2, [sp, #0x14]
|
|
add r0, r7, #0
|
|
add r1, r7, #0
|
|
bl MTX_ScaleApply22
|
|
_02253D62:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [r4, #0x6c]
|
|
ldr r0, [r0]
|
|
bl FUN_020B0BB0
|
|
add r1, sp, #0x18
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r1, [sp, #0x10]
|
|
ldr r2, [r4, #0x34]
|
|
lsl r1, r1, #0x10
|
|
ldr r3, [r4, #0x6c]
|
|
add r0, r5, #0
|
|
lsr r1, r1, #0x10
|
|
bl FUN_020B1AF8
|
|
_02253D86:
|
|
ldr r1, [sp, #0x10]
|
|
sub r1, r1, r0
|
|
str r1, [sp, #0x10]
|
|
add r1, r0, #0
|
|
sub r0, r0, #1
|
|
cmp r1, #0
|
|
beq _02253E30
|
|
ldr r7, _02253E5C ; =0xDFFFFFFF
|
|
asr r1, r7, #0x11
|
|
_02253D98:
|
|
ldr r3, [r5, #4]
|
|
ldr r2, _02253E60 ; =0xFFFFF3FF
|
|
add r6, r4, #0
|
|
and r2, r3
|
|
add r3, r4, #0
|
|
add r3, #0x82
|
|
ldrh r3, [r3]
|
|
add r6, #0x84
|
|
lsl r3, r3, #0x1e
|
|
lsr r3, r3, #0x14
|
|
orr r2, r3
|
|
str r2, [r5, #4]
|
|
ldr r3, _02253E64 ; =0xFFFF0FFF
|
|
ldrh r6, [r6]
|
|
and r3, r2
|
|
lsl r2, r2, #0x10
|
|
lsr r2, r2, #0x1c
|
|
add r2, r2, r6
|
|
lsl r2, r2, #0x1c
|
|
lsr r2, r2, #0x10
|
|
orr r2, r3
|
|
add r6, r4, #0
|
|
ldr r3, _02253E68 ; =0xFFFFFC00
|
|
str r2, [r5, #4]
|
|
add r6, #0x88
|
|
and r3, r2
|
|
lsl r2, r2, #0x16
|
|
ldrh r6, [r6]
|
|
lsr r2, r2, #0x16
|
|
add r6, r2, r6
|
|
ldr r2, _02253E6C ; =0x000003FF
|
|
and r2, r6
|
|
orr r2, r3
|
|
add r6, r4, #0
|
|
str r2, [r5, #4]
|
|
add r6, #0x8a
|
|
ldr r2, [r5]
|
|
ldr r3, _02253E70 ; =0xEFFFFFFF
|
|
ldrb r6, [r6]
|
|
and r3, r2
|
|
lsl r2, r2, #3
|
|
lsr r2, r2, #0x1f
|
|
eor r2, r6
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #3
|
|
orr r2, r3
|
|
add r6, r4, #0
|
|
add r3, r2, #0
|
|
str r2, [r5]
|
|
add r6, #0x8b
|
|
lsl r2, r2, #2
|
|
ldrb r6, [r6]
|
|
lsr r2, r2, #0x1f
|
|
and r3, r7
|
|
eor r2, r6
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #2
|
|
orr r2, r3
|
|
add r6, r4, #0
|
|
add r3, r2, #0
|
|
str r2, [r5]
|
|
add r6, #0x8e
|
|
lsl r2, r2, #0x13
|
|
ldrb r6, [r6]
|
|
lsr r2, r2, #0x1f
|
|
and r3, r1
|
|
eor r2, r6
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #0x13
|
|
orr r2, r3
|
|
str r2, [r5]
|
|
add r2, r0, #0
|
|
add r5, #8
|
|
sub r0, r0, #1
|
|
cmp r2, #0
|
|
bne _02253D98
|
|
_02253E30:
|
|
ldr r4, [r4, #0x5c]
|
|
cmp r4, #0
|
|
beq _02253E38
|
|
b _02253C96
|
|
_02253E38:
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [r0, #0x14]
|
|
cmp r5, r1
|
|
bls _02253E52
|
|
sub r3, r5, r1
|
|
asr r2, r3, #2
|
|
lsr r2, r2, #0x1d
|
|
add r2, r3, r2
|
|
lsl r2, r2, #0xd
|
|
ldr r0, [r0]
|
|
lsr r2, r2, #0x10
|
|
bl FUN_020B0D58
|
|
_02253E52:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02253E58: .word 0x020FFA38
|
|
_02253E5C: .word 0xDFFFFFFF
|
|
_02253E60: .word 0xFFFFF3FF
|
|
_02253E64: .word 0xFFFF0FFF
|
|
_02253E68: .word 0xFFFFFC00
|
|
_02253E6C: .word 0x000003FF
|
|
_02253E70: .word 0xEFFFFFFF
|
|
thumb_func_end MOD20_02253C78
|
|
|
|
thumb_func_start MOD20_02253E74
|
|
MOD20_02253E74: ; 0x02253E74
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
bl MOD20_02254068
|
|
add r4, r0, #0
|
|
beq _02253F10
|
|
ldrb r1, [r5, #0xb]
|
|
add r0, #0x82
|
|
strh r1, [r0]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, #0xc]
|
|
add r0, #0x80
|
|
strh r1, [r0]
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl MOD20_022540A4
|
|
ldr r0, [r6, #8]
|
|
str r0, [r4]
|
|
ldr r0, [r6, #0xc]
|
|
str r0, [r4, #4]
|
|
ldrh r1, [r5, #8]
|
|
bl FUN_020AFC04
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
ldr r2, [r4]
|
|
add r0, #8
|
|
bl FUN_020B1F80
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, #4]
|
|
str r1, [r4, #0x64]
|
|
add r1, r4, #0
|
|
str r0, [r4, #0x68]
|
|
mov r0, #0
|
|
add r1, #0x84
|
|
strh r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x88
|
|
strh r0, [r1]
|
|
ldrb r2, [r5, #0xa]
|
|
mov r1, #1
|
|
tst r2, r1
|
|
beq _02253ED4
|
|
add r0, r1, #0
|
|
_02253ED4:
|
|
add r1, r4, #0
|
|
add r1, #0x8a
|
|
strb r0, [r1]
|
|
ldrb r1, [r5, #0xa]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _02253EE6
|
|
mov r1, #1
|
|
b _02253EE8
|
|
_02253EE6:
|
|
mov r1, #0
|
|
_02253EE8:
|
|
add r0, r4, #0
|
|
add r0, #0x8b
|
|
strb r1, [r0]
|
|
add r1, r4, #0
|
|
mov r0, #0
|
|
add r1, #0x8e
|
|
strb r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x8c
|
|
strh r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x70
|
|
str r1, [r4, #0x6c]
|
|
add r1, r4, #0
|
|
ldrb r2, [r5, #0xd]
|
|
add r1, #0x87
|
|
strb r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x86
|
|
strb r0, [r1]
|
|
_02253F10:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_02253E74
|
|
|
|
thumb_func_start MOD20_02253F14
|
|
MOD20_02253F14: ; 0x02253F14
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_022540FC
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl MOD20_02254080
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_02253F14
|
|
|
|
thumb_func_start MOD20_02253F28
|
|
MOD20_02253F28: ; 0x02253F28
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r4, #4]
|
|
lsr r1, r1, #0x10
|
|
bl FUN_020AFC04
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
ldr r2, [r4]
|
|
add r0, #8
|
|
bl FUN_020B1F80
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02253F28
|
|
|
|
thumb_func_start MOD20_02253F44
|
|
MOD20_02253F44: ; 0x02253F44
|
|
ldr r0, [r0, #0x10]
|
|
cmp r0, #0
|
|
bne _02253F4E
|
|
mov r0, #1
|
|
bx lr
|
|
_02253F4E:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F44
|
|
|
|
thumb_func_start MOD20_02253F54
|
|
MOD20_02253F54: ; 0x02253F54
|
|
ldr r3, [r0, #0x64]
|
|
add r1, r3, r1
|
|
str r1, [r0, #0x64]
|
|
ldr r1, [r0, #0x68]
|
|
add r1, r1, r2
|
|
str r1, [r0, #0x68]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F54
|
|
|
|
thumb_func_start MOD20_02253F64
|
|
MOD20_02253F64: ; 0x02253F64
|
|
str r1, [r0, #0x64]
|
|
str r2, [r0, #0x68]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F64
|
|
|
|
thumb_func_start MOD20_02253F6C
|
|
MOD20_02253F6C: ; 0x02253F6C
|
|
ldr r3, [r0, #0x64]
|
|
str r3, [r1]
|
|
ldr r0, [r0, #0x68]
|
|
str r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F6C
|
|
|
|
thumb_func_start MOD20_02253F78
|
|
MOD20_02253F78: ; 0x02253F78
|
|
add r0, #0x86
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F78
|
|
|
|
thumb_func_start MOD20_02253F80
|
|
MOD20_02253F80: ; 0x02253F80
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
add r4, r2, #0
|
|
bl MOD20_022540FC
|
|
add r0, r5, #0
|
|
add r0, #0x80
|
|
strh r4, [r0]
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl MOD20_022540A4
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD20_02253F80
|
|
|
|
thumb_func_start MOD20_02253F9C
|
|
MOD20_02253F9C: ; 0x02253F9C
|
|
add r0, #0x84
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253F9C
|
|
|
|
thumb_func_start MOD20_02253FA4
|
|
MOD20_02253FA4: ; 0x02253FA4
|
|
add r0, #0x88
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253FA4
|
|
|
|
thumb_func_start MOD20_02253FAC
|
|
MOD20_02253FAC: ; 0x02253FAC
|
|
add r0, #0x8e
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253FAC
|
|
|
|
thumb_func_start MOD20_02253FB4
|
|
MOD20_02253FB4: ; 0x02253FB4
|
|
add r0, #0x8c
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253FB4
|
|
|
|
thumb_func_start MOD20_02253FBC
|
|
MOD20_02253FBC: ; 0x02253FBC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, [sp, #0x18]
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r1, r2, #0
|
|
add r7, r3, #0
|
|
str r4, [r5, #0x10]
|
|
add r0, r6, #0
|
|
add r2, r4, #0
|
|
bl FUN_02006C88
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
add r2, r4, #0
|
|
bl FUN_02006C88
|
|
str r0, [r5, #4]
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
beq _0225400E
|
|
ldr r1, [r5, #4]
|
|
cmp r1, #0
|
|
beq _0225400E
|
|
add r1, r5, #0
|
|
add r1, #8
|
|
bl FUN_020AFEB8
|
|
cmp r0, #0
|
|
bne _02253FFC
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02253FFC:
|
|
ldr r0, [r5, #4]
|
|
add r5, #0xc
|
|
add r1, r5, #0
|
|
bl thunk_FUN_020afda0
|
|
cmp r0, #0
|
|
bne _0225400E
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225400E:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02253FBC
|
|
|
|
thumb_func_start MOD20_02254014
|
|
MOD20_02254014: ; 0x02254014
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _02254028
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_02016A8C
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
_02254028:
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _02254038
|
|
ldr r0, [r4, #0x10]
|
|
bl FUN_02016A8C
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_02254038:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02254014
|
|
|
|
thumb_func_start MOD20_0225403C
|
|
MOD20_0225403C: ; 0x0225403C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
add r4, r1, #0
|
|
sub r6, r6, #1
|
|
cmp r0, #0
|
|
beq _0225405E
|
|
_0225404C:
|
|
add r0, r4, #0
|
|
stmia r5!, {r4}
|
|
bl MOD20_02254060
|
|
add r0, r6, #0
|
|
add r4, #0x90
|
|
sub r6, r6, #1
|
|
cmp r0, #0
|
|
bne _0225404C
|
|
_0225405E:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end MOD20_0225403C
|
|
|
|
thumb_func_start MOD20_02254060
|
|
MOD20_02254060: ; 0x02254060
|
|
mov r1, #0
|
|
str r1, [r0, #0x5c]
|
|
str r1, [r0, #0x60]
|
|
bx lr
|
|
thumb_func_end MOD20_02254060
|
|
|
|
thumb_func_start MOD20_02254068
|
|
MOD20_02254068: ; 0x02254068
|
|
ldrh r2, [r0, #0x12]
|
|
ldrh r1, [r0, #0x10]
|
|
cmp r2, r1
|
|
bhs _0225407C
|
|
add r1, r2, #1
|
|
strh r1, [r0, #0x12]
|
|
ldr r1, [r0, #4]
|
|
lsl r0, r2, #2
|
|
ldr r0, [r1, r0]
|
|
bx lr
|
|
_0225407C:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end MOD20_02254068
|
|
|
|
thumb_func_start MOD20_02254080
|
|
MOD20_02254080: ; 0x02254080
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldrh r0, [r5, #0x12]
|
|
add r4, r1, #0
|
|
cmp r0, #0
|
|
beq _022540A0
|
|
add r0, r4, #0
|
|
bl MOD20_02254060
|
|
ldrh r0, [r5, #0x12]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #0x12]
|
|
ldrh r0, [r5, #0x12]
|
|
ldr r1, [r5, #4]
|
|
lsl r0, r0, #2
|
|
str r4, [r1, r0]
|
|
_022540A0:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02254080
|
|
|
|
thumb_func_start MOD20_022540A4
|
|
MOD20_022540A4: ; 0x022540A4
|
|
push {r4, r5}
|
|
ldr r3, [r0, #8]
|
|
cmp r3, #0
|
|
bne _022540B8
|
|
str r1, [r0, #8]
|
|
mov r0, #0
|
|
str r0, [r1, #0x5c]
|
|
str r0, [r1, #0x60]
|
|
pop {r4, r5}
|
|
bx lr
|
|
_022540B8:
|
|
add r4, r1, #0
|
|
add r4, #0x80
|
|
ldr r5, [r4]
|
|
add r2, r3, #0
|
|
_022540C0:
|
|
add r4, r2, #0
|
|
add r4, #0x80
|
|
ldr r4, [r4]
|
|
cmp r5, r4
|
|
bhs _022540E2
|
|
cmp r2, r3
|
|
bne _022540D0
|
|
str r1, [r0, #8]
|
|
_022540D0:
|
|
ldr r0, [r2, #0x60]
|
|
str r0, [r1, #0x60]
|
|
cmp r0, #0
|
|
beq _022540DA
|
|
str r1, [r0, #0x5c]
|
|
_022540DA:
|
|
str r2, [r1, #0x5c]
|
|
str r1, [r2, #0x60]
|
|
pop {r4, r5}
|
|
bx lr
|
|
_022540E2:
|
|
ldr r4, [r2, #0x5c]
|
|
cmp r4, #0
|
|
bne _022540F4
|
|
str r1, [r2, #0x5c]
|
|
str r2, [r1, #0x60]
|
|
mov r0, #0
|
|
str r0, [r1, #0x5c]
|
|
pop {r4, r5}
|
|
bx lr
|
|
_022540F4:
|
|
add r2, r4, #0
|
|
b _022540C0
|
|
thumb_func_end MOD20_022540A4
|
|
|
|
thumb_func_start MOD20_022540F8
|
|
MOD20_022540F8: ; 0x022540F8
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end MOD20_022540F8
|
|
|
|
thumb_func_start MOD20_022540FC
|
|
MOD20_022540FC: ; 0x022540FC
|
|
ldr r2, [r1, #0x60]
|
|
cmp r2, #0
|
|
beq _02254118
|
|
ldr r0, [r1, #0x5c]
|
|
cmp r0, #0
|
|
beq _02254112
|
|
str r0, [r2, #0x5c]
|
|
ldr r2, [r1, #0x60]
|
|
ldr r0, [r1, #0x5c]
|
|
str r2, [r0, #0x60]
|
|
bx lr
|
|
_02254112:
|
|
mov r0, #0
|
|
str r0, [r2, #0x5c]
|
|
bx lr
|
|
_02254118:
|
|
ldr r3, [r1, #0x5c]
|
|
cmp r3, #0
|
|
beq _02254128
|
|
mov r2, #0
|
|
str r2, [r3, #0x60]
|
|
ldr r1, [r1, #0x5c]
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
_02254128:
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022540FC
|
|
|
|
thumb_func_start MOD20_02254130
|
|
MOD20_02254130: ; 0x02254130
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
ldr r5, [sp, #0x20]
|
|
bne _02254144
|
|
bl ErrorHandling
|
|
_02254144:
|
|
add r0, r5, #0
|
|
mov r1, #0x18
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
beq _02254192
|
|
ldr r0, [sp]
|
|
str r5, [r4, #8]
|
|
str r0, [r4, #4]
|
|
str r6, [r4]
|
|
mov r1, #0xe
|
|
ldr r0, [sp, #4]
|
|
str r7, [r4, #0xc]
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
mul r1, r7
|
|
bl AllocFromHeap
|
|
str r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _02254188
|
|
mov r6, #0
|
|
cmp r7, #0
|
|
bls _02254192
|
|
add r5, r6, #0
|
|
_02254176:
|
|
ldr r0, [r4, #0x14]
|
|
add r0, r0, r5
|
|
bl MOD20_022542E4
|
|
add r6, r6, #1
|
|
add r5, #0xe
|
|
cmp r6, r7
|
|
blo _02254176
|
|
b _02254192
|
|
_02254188:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl FUN_02016A8C
|
|
mov r4, #0
|
|
_02254192:
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end MOD20_02254130
|
|
|
|
thumb_func_start MOD20_02254198
|
|
MOD20_02254198: ; 0x02254198
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bne _022541A2
|
|
bl ErrorHandling
|
|
_022541A2:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0x14]
|
|
bl FUN_02016A8C
|
|
ldr r0, [r4, #8]
|
|
add r1, r4, #0
|
|
bl FUN_02016A8C
|
|
pop {r4, pc}
|
|
thumb_func_end MOD20_02254198
|
|
|
|
thumb_func_start MOD20_022541B4
|
|
MOD20_022541B4: ; 0x022541B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
bl FUN_02020A98
|
|
str r0, [sp, #4]
|
|
cmp r0, #0
|
|
beq _0225420C
|
|
bl FUN_02020AA4
|
|
ldr r1, [r5, #0xc]
|
|
mov r7, #0
|
|
str r0, [sp]
|
|
cmp r1, #0
|
|
bls _02254232
|
|
add r4, r7, #0
|
|
add r6, r7, #0
|
|
_022541D6:
|
|
ldr r0, [r5, #0x14]
|
|
add r1, r0, r4
|
|
ldrb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, r4
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
ldr r0, [r5]
|
|
beq _022541F2
|
|
add r0, r0, r6
|
|
bl FUN_02020A40
|
|
b _022541F8
|
|
_022541F2:
|
|
add r0, r0, r6
|
|
bl FUN_02020A6C
|
|
_022541F8:
|
|
ldr r1, [r5, #0x14]
|
|
add r7, r7, #1
|
|
add r1, r1, r4
|
|
strb r0, [r1, #1]
|
|
ldr r1, [r5, #0xc]
|
|
add r4, #0xe
|
|
add r6, r6, #4
|
|
cmp r7, r1
|
|
blo _022541D6
|
|
b _02254232
|
|
_0225420C:
|
|
ldr r1, [r5, #0xc]
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
cmp r1, #0
|
|
bls _02254232
|
|
add r0, r2, #0
|
|
add r3, r2, #0
|
|
_0225421A:
|
|
ldr r1, [r5, #0x14]
|
|
add r2, r2, #1
|
|
add r4, r1, r0
|
|
ldrb r1, [r4, #1]
|
|
strb r1, [r4, #2]
|
|
ldr r1, [r5, #0x14]
|
|
add r1, r1, r0
|
|
strb r3, [r1, #1]
|
|
ldr r1, [r5, #0xc]
|
|
add r0, #0xe
|
|
cmp r2, r1
|
|
blo _0225421A
|
|
_02254232:
|
|
mov r6, #0
|
|
cmp r1, #0
|
|
bls _02254278
|
|
ldr r7, _022542A8 ; =0x02254710
|
|
add r4, r6, #0
|
|
_0225423C:
|
|
ldr r3, [r5, #0x14]
|
|
ldr r1, [sp, #4]
|
|
add r0, r3, r4
|
|
ldrb r3, [r3, r4]
|
|
ldr r2, [sp]
|
|
lsl r3, r3, #2
|
|
ldr r3, [r7, r3]
|
|
blx r3
|
|
add r1, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
add r0, r0, r4
|
|
ldrb r2, [r0, #1]
|
|
ldrb r0, [r0, #2]
|
|
cmp r2, r0
|
|
bne _0225425C
|
|
mov r2, #2
|
|
_0225425C:
|
|
cmp r1, #0
|
|
bne _02254264
|
|
cmp r2, #2
|
|
beq _0225426E
|
|
_02254264:
|
|
ldr r3, [r5, #0x10]
|
|
ldr r4, [r5, #4]
|
|
add r0, r6, #0
|
|
blx r4
|
|
b _02254278
|
|
_0225426E:
|
|
ldr r0, [r5, #0xc]
|
|
add r6, r6, #1
|
|
add r4, #0xe
|
|
cmp r6, r0
|
|
blo _0225423C
|
|
_02254278:
|
|
ldr r0, [r5, #0xc]
|
|
add r6, r6, #1
|
|
cmp r6, r0
|
|
bhs _022542A2
|
|
mov r0, #0xe
|
|
add r4, r6, #0
|
|
ldr r7, _022542A8 ; =0x02254710
|
|
mul r4, r0
|
|
_02254288:
|
|
ldr r3, [r5, #0x14]
|
|
ldr r1, [sp, #4]
|
|
add r0, r3, r4
|
|
ldrb r3, [r3, r4]
|
|
ldr r2, [sp]
|
|
lsl r3, r3, #2
|
|
ldr r3, [r7, r3]
|
|
blx r3
|
|
ldr r0, [r5, #0xc]
|
|
add r6, r6, #1
|
|
add r4, #0xe
|
|
cmp r6, r0
|
|
blo _02254288
|
|
_022542A2:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_022542A8: .word 0x02254710
|
|
thumb_func_end MOD20_022541B4
|
|
|
|
thumb_func_start MOD20_022542AC
|
|
MOD20_022542AC: ; 0x022542AC
|
|
push {r3, r4}
|
|
ldr r4, [r0, #0x14]
|
|
mov r0, #0xe
|
|
mul r0, r1
|
|
add r1, r4, r0
|
|
lsl r0, r2, #1
|
|
add r0, r1, r0
|
|
strh r3, [r0, #8]
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end MOD20_022542AC
|
|
|
|
thumb_func_start MOD20_022542C0
|
|
MOD20_022542C0: ; 0x022542C0
|
|
ldr r3, [r0, #0x14]
|
|
mov r0, #0xe
|
|
mul r0, r1
|
|
add r0, r3, r0
|
|
strh r2, [r0, #0xc]
|
|
bx lr
|
|
thumb_func_end MOD20_022542C0
|
|
|
|
thumb_func_start MOD20_022542CC
|
|
MOD20_022542CC: ; 0x022542CC
|
|
add r3, r1, #0
|
|
mov r2, #0xe
|
|
mul r3, r2
|
|
ldr r1, [r0, #0x14]
|
|
mov r2, #0
|
|
add r1, r1, r3
|
|
strh r2, [r1, #4]
|
|
ldr r0, [r0, #0x14]
|
|
mov r1, #4
|
|
strb r1, [r0, r3]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022542CC
|
|
|
|
thumb_func_start MOD20_022542E4
|
|
MOD20_022542E4: ; 0x022542E4
|
|
mov r2, #0
|
|
strb r2, [r0]
|
|
strb r2, [r0, #1]
|
|
strb r2, [r0, #2]
|
|
strh r2, [r0, #4]
|
|
strh r2, [r0, #6]
|
|
add r3, r0, #0
|
|
add r1, r2, #0
|
|
_022542F4:
|
|
add r2, r2, #1
|
|
strh r1, [r3, #8]
|
|
add r3, r3, #2
|
|
cmp r2, #2
|
|
blo _022542F4
|
|
strh r1, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_022542E4
|
|
|
|
thumb_func_start MOD20_02254304
|
|
MOD20_02254304: ; 0x02254304
|
|
strb r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
bx lr
|
|
thumb_func_end MOD20_02254304
|
|
|
|
thumb_func_start MOD20_0225430C
|
|
MOD20_0225430C: ; 0x0225430C
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end MOD20_0225430C
|
|
|
|
thumb_func_start MOD20_02254310
|
|
MOD20_02254310: ; 0x02254310
|
|
ldrh r2, [r0, #4]
|
|
ldr r1, _02254320 ; =0x0000FFFF
|
|
cmp r2, r1
|
|
bhs _0225431C
|
|
add r1, r2, #1
|
|
strh r1, [r0, #4]
|
|
_0225431C:
|
|
bx lr
|
|
nop
|
|
_02254320: .word 0x0000FFFF
|
|
thumb_func_end MOD20_02254310
|
|
|
|
thumb_func_start MOD20_02254324
|
|
MOD20_02254324: ; 0x02254324
|
|
ldrh r3, [r0, #4]
|
|
mov r2, #0
|
|
_02254328:
|
|
ldrh r1, [r0, #8]
|
|
cmp r3, r1
|
|
bne _02254332
|
|
add r0, r2, #5
|
|
bx lr
|
|
_02254332:
|
|
add r2, r2, #1
|
|
add r0, r0, #2
|
|
cmp r2, #2
|
|
blo _02254328
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02254324
|
|
|
|
thumb_func_start MOD20_02254340
|
|
MOD20_02254340: ; 0x02254340
|
|
push {r3, lr}
|
|
ldrb r1, [r0, #1]
|
|
cmp r1, #0
|
|
beq _02254356
|
|
cmp r2, #0
|
|
beq _02254356
|
|
mov r1, #1
|
|
bl MOD20_02254304
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_02254356:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_02254340
|
|
|
|
thumb_func_start MOD20_0225435C
|
|
MOD20_0225435C: ; 0x0225435C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl MOD20_02254310
|
|
ldrb r0, [r5, #1]
|
|
cmp r0, #0
|
|
beq _0225438A
|
|
add r0, r5, #0
|
|
bl MOD20_02254324
|
|
cmp r0, #0
|
|
bne _022543B8
|
|
ldrh r1, [r5, #0xc]
|
|
cmp r1, #0
|
|
beq _022543B6
|
|
ldrh r0, [r5, #4]
|
|
cmp r0, r1
|
|
blo _022543B6
|
|
mov r0, #0
|
|
strh r0, [r5, #4]
|
|
mov r0, #7
|
|
pop {r3, r4, r5, pc}
|
|
_0225438A:
|
|
cmp r4, #0
|
|
beq _0225439A
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl MOD20_02254304
|
|
mov r0, #2
|
|
pop {r3, r4, r5, pc}
|
|
_0225439A:
|
|
ldrh r0, [r5, #6]
|
|
cmp r0, #0
|
|
beq _022543AA
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl MOD20_0225430C
|
|
b _022543B6
|
|
_022543AA:
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl MOD20_02254304
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
_022543B6:
|
|
mov r0, #0
|
|
_022543B8:
|
|
pop {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225435C
|
|
|
|
thumb_func_start MOD20_022543BC
|
|
MOD20_022543BC: ; 0x022543BC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
bl MOD20_02254310
|
|
ldrh r1, [r5, #4]
|
|
ldrh r0, [r5, #6]
|
|
cmp r1, r0
|
|
bls _022543DA
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl MOD20_02254304
|
|
mov r0, #3
|
|
pop {r3, r4, r5, pc}
|
|
_022543DA:
|
|
ldrb r0, [r5, #1]
|
|
cmp r0, #0
|
|
beq _022543F0
|
|
cmp r4, #0
|
|
beq _022543F0
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl MOD20_02254304
|
|
mov r0, #4
|
|
pop {r3, r4, r5, pc}
|
|
_022543F0:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end MOD20_022543BC
|
|
|
|
thumb_func_start MOD20_022543F4
|
|
MOD20_022543F4: ; 0x022543F4
|
|
push {r3, lr}
|
|
ldrb r1, [r0, #1]
|
|
cmp r1, #0
|
|
beq _02254402
|
|
bl MOD20_02254310
|
|
b _02254408
|
|
_02254402:
|
|
mov r1, #0
|
|
bl MOD20_02254304
|
|
_02254408:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end MOD20_022543F4
|
|
|
|
thumb_func_start MOD20_0225440C
|
|
MOD20_0225440C: ; 0x0225440C
|
|
push {r3, lr}
|
|
ldrb r1, [r0, #1]
|
|
cmp r1, #0
|
|
bne _0225441A
|
|
mov r1, #0
|
|
bl MOD20_02254304
|
|
_0225441A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.align 2, 0
|
|
thumb_func_end MOD20_0225440C
|
|
|
|
thumb_func_start MOD20_02254420
|
|
MOD20_02254420: ; 0x02254420
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r5, #0x1e
|
|
blo _02254432
|
|
bl ErrorHandling
|
|
_02254432:
|
|
cmp r4, #0x21
|
|
blo _0225443A
|
|
bl ErrorHandling
|
|
_0225443A:
|
|
cmp r5, #0x1e
|
|
blo _02254440
|
|
mov r5, #0
|
|
_02254440:
|
|
cmp r4, #0x21
|
|
blo _02254446
|
|
mov r4, #0
|
|
_02254446:
|
|
ldr r0, _02254458 ; =0x02254744
|
|
lsl r1, r5, #1
|
|
ldrh r0, [r0, r1]
|
|
lsl r1, r4, #1
|
|
str r0, [r6]
|
|
ldr r0, _0225445C ; =0x02254780
|
|
ldrh r0, [r0, r1]
|
|
str r0, [r7]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_02254458: .word 0x02254744
|
|
_0225445C: .word 0x02254780
|
|
thumb_func_end MOD20_02254420
|
|
|
|
thumb_func_start MOD20_02254460
|
|
MOD20_02254460: ; 0x02254460
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
cmp r5, #4
|
|
blo _02254470
|
|
bl ErrorHandling
|
|
_02254470:
|
|
ldr r0, _02254480 ; =0x02254724
|
|
lsl r1, r5, #3
|
|
ldr r0, [r0, r1]
|
|
str r0, [r4]
|
|
ldr r0, _02254484 ; =0x02254728
|
|
ldr r0, [r0, r1]
|
|
str r0, [r6]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_02254480: .word 0x02254724
|
|
_02254484: .word 0x02254728
|
|
thumb_func_end MOD20_02254460
|
|
|
|
thumb_func_start MOD20_02254488
|
|
MOD20_02254488: ; 0x02254488
|
|
push {r4, r5}
|
|
ldr r5, _022544B8 ; =0x022547C2
|
|
mov r4, #0
|
|
_0225448E:
|
|
ldrh r3, [r5]
|
|
cmp r0, r3
|
|
bne _022544A8
|
|
ldr r0, _022544BC ; =0x022547C4
|
|
lsl r3, r4, #2
|
|
ldrb r0, [r0, r3]
|
|
str r0, [r1]
|
|
ldr r0, _022544C0 ; =0x022547C5
|
|
ldrb r0, [r0, r3]
|
|
str r0, [r2]
|
|
mov r0, #1
|
|
pop {r4, r5}
|
|
bx lr
|
|
_022544A8:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #0x1d
|
|
blo _0225448E
|
|
mov r0, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
nop
|
|
_022544B8: .word 0x022547C2
|
|
_022544BC: .word 0x022547C4
|
|
_022544C0: .word 0x022547C5
|
|
thumb_func_end MOD20_02254488
|
|
|
|
.section .rodata
|
|
; 0x022544C4
|
|
.byte 0x60, 0xAC, 0xDC, 0xF4, 0x10, 0xAF, 0x10, 0xCF, 0x01, 0x26, 0x25, 0x02, 0x89, 0x26, 0x25, 0x02
|
|
.byte 0xAD, 0x27, 0x25, 0x02, 0x19, 0x28, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00
|
|
.byte 0x17, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00
|
|
.byte 0x11, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00
|
|
.byte 0x05, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00
|
|
.byte 0x0A, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00
|
|
.byte 0x0E, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00
|
|
.byte 0x14, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00
|
|
.byte 0x07, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00
|
|
.byte 0x10, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00
|
|
.byte 0x13, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0x01
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00
|
|
.byte 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00
|
|
.byte 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00
|
|
.byte 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00
|
|
.byte 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00
|
|
.byte 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xD1, 0x2E, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xF1, 0x2F, 0x25, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF1, 0x2F, 0x25, 0x02
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x29, 0x32, 0x25, 0x02, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x31, 0x25, 0x02, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
|
.byte 0x8D, 0x32, 0x25, 0x02, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xF1, 0x32, 0x25, 0x02
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x39, 0x33, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x07, 0x00, 0x00, 0x00, 0x79, 0x33, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
|
|
.byte 0xC1, 0x33, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xED, 0x33, 0x25, 0x02
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x34, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x0C, 0x00, 0x00, 0x00, 0xCD, 0x35, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00
|
|
.byte 0x69, 0x36, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xC9, 0x36, 0x25, 0x02
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x02, 0x00, 0x04, 0x80, 0x02, 0x80, 0x04, 0x01, 0x08, 0x0F, 0x04, 0x41, 0x43, 0x25, 0x02
|
|
.byte 0x5D, 0x43, 0x25, 0x02, 0xBD, 0x43, 0x25, 0x02, 0xF5, 0x43, 0x25, 0x02, 0x0D, 0x44, 0x25, 0x02
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00
|
|
.byte 0xA8, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00
|
|
.byte 0x1A, 0x00, 0x20, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x44, 0x00
|
|
.byte 0x4A, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5C, 0x00, 0x62, 0x00, 0x68, 0x00, 0x6E, 0x00, 0x74, 0x00
|
|
.byte 0x7A, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8C, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9E, 0x00, 0xA4, 0x00
|
|
.byte 0xAA, 0x00, 0xB0, 0x00, 0xB6, 0x00, 0xBC, 0x00, 0xC2, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x30, 0x00
|
|
.byte 0x36, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x5A, 0x00, 0x60, 0x00
|
|
.byte 0x66, 0x00, 0x6C, 0x00, 0x72, 0x00, 0x78, 0x00, 0x7E, 0x00, 0x84, 0x00, 0x8A, 0x00, 0x90, 0x00
|
|
.byte 0x96, 0x00, 0x9C, 0x00, 0xA2, 0x00, 0xA8, 0x00, 0xAE, 0x00, 0xB4, 0x00, 0xBA, 0x00, 0x56, 0x01
|
|
.byte 0x2F, 0x96, 0x57, 0x01, 0x38, 0x90, 0x58, 0x01, 0x41, 0x84, 0x59, 0x01, 0x32, 0x7E, 0x5A, 0x01
|
|
.byte 0x32, 0x78, 0x5B, 0x01, 0x3E, 0x6C, 0x5D, 0x01, 0x4A, 0x5A, 0x5E, 0x01, 0x50, 0x6F, 0x61, 0x01
|
|
.byte 0x53, 0x7E, 0x62, 0x01, 0x65, 0x7E, 0x64, 0x01, 0x7D, 0x7E, 0x6A, 0x01, 0x80, 0x66, 0x6B, 0x01
|
|
.byte 0x7A, 0x5A, 0x6D, 0x01, 0x5C, 0x5A, 0x6E, 0x01, 0x68, 0x5A, 0x6F, 0x01, 0x6E, 0x8A, 0x73, 0x01
|
|
.byte 0x77, 0x96, 0x75, 0x01, 0x98, 0x93, 0x7C, 0x01, 0x98, 0x78, 0x7E, 0x01, 0x8C, 0x66, 0x7F, 0x01
|
|
.byte 0x56, 0x42, 0x81, 0x01, 0x50, 0x33, 0x84, 0x01, 0x29, 0x84, 0x87, 0x01, 0x38, 0x9C, 0xD3, 0x01
|
|
.byte 0x3B, 0xA2, 0x88, 0x01, 0x4A, 0xA2, 0x8B, 0x01, 0xAA, 0x8A, 0xC8, 0x00, 0x44, 0x72, 0xCC, 0x00
|
|
.byte 0x38, 0x66, 0x00, 0x00
|