Merge pull request #449 from tgsm/split-mod20

Split module 20
This commit is contained in:
Akira Akashi
2021-08-17 22:58:17 +01:00
committed by GitHub
9 changed files with 4797 additions and 4749 deletions

View File

@@ -852,7 +852,12 @@ Overlay MODULE_20
{
##Pokétch##
After MODULE_06
Object module_20.o
Object mod20_02252440.o
Object mod20_02252C5C.o
Object mod20_022536F4.o
Object mod20_02253BA4.o
Object mod20_02254130.o
Object mod20_02254420.o
}
Overlay MODULE_21

View File

@@ -7614,6 +7614,7 @@
.extern MOD20_0225298C
.extern MOD20_022529A0
.extern MOD20_022529B4
.extern MOD20_02252B1C
.extern MOD20_02252B28
.extern MOD20_02252B48
.extern MOD20_02252B68
@@ -7625,11 +7626,17 @@
.extern MOD20_02252C38
.extern MOD20_02252C3C
.extern MOD20_02252C40
.extern MOD20_02252C44
.extern MOD20_02252C5C
.extern MOD20_02252D24
.extern MOD20_02252D34
.extern MOD20_02252D7C
.extern MOD20_02252DB4
.extern MOD20_02252DEC
.extern MOD20_02252E18
.extern MOD20_02252E80
.extern MOD20_02252EA4
.extern MOD20_02252EB0
.extern MOD20_022536F4
.extern MOD20_02253794
.extern MOD20_022537B8
@@ -7646,10 +7653,14 @@
.extern MOD20_022539C4
.extern MOD20_02253A04
.extern MOD20_02253AA4
.extern MOD20_02253BA4
.extern MOD20_02253C4C
.extern MOD20_02253C78
.extern MOD20_02253E74
.extern MOD20_02253F14
.extern MOD20_02253F28
.extern MOD20_02253F44
.extern MOD20_02253F54
.extern MOD20_02253F64
.extern MOD20_02253F6C
.extern MOD20_02253F78
@@ -7662,8 +7673,10 @@
.extern MOD20_02254014
.extern MOD20_02254130
.extern MOD20_02254198
.extern MOD20_022541B4
.extern MOD20_022542AC
.extern MOD20_022542C0
.extern MOD20_022542CC
.extern MOD20_02254420
.extern MOD20_02254460
.extern MOD20_02254488

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,682 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 2, 0
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 GF_AssertFail
_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 GF_AssertFail
_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 GF_AssertFail
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 GF_AssertFail
b _02253880
_02253876:
add r3, #0xc
ldr r2, [r3]
add r0, r0, #1
cmp r2, r1
bne _022537FA
_02253880:
bl GF_AssertFail
_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 ; =MOD20_0225470C
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 MOD20_0225470C
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 GfGfxLoader_GetPlttData
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 ; =MOD20_02254708
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 ; =MOD20_02254704
ldr r0, [sp, #0xc]
ldr r4, [sp, #0x18]
ldrh r5, [r1, r0]
ldr r1, _02253A9C ; =MOD20_02254708
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 NNS_G2dGetUnpackedCharacterData
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 MOD20_02254708
_02253AA0: .word MOD20_02254704
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 LoadRectToBgTilemapRect
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 LoadRectToBgTilemapRect
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 LoadRectToBgTilemapRect
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 LoadRectToBgTilemapRect
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 LoadRectToBgTilemapRect
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD20_02253AA4
.section .rodata
.global MOD20_02254704
MOD20_02254704: ; 0x02254704
.byte 0x00, 0x02, 0x00, 0x04
.global MOD20_02254708
MOD20_02254708: ; 0x02254708
.byte 0x80, 0x02, 0x80, 0x04
.global MOD20_0225470C
MOD20_0225470C: ; 0x0225470C
.byte 0x01, 0x08, 0x0F, 0x04

View File

@@ -0,0 +1,808 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 2, 0
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 NNS_G2dGetOamManagerOamCapacity
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 FreeToHeapExplicit
_02253C22:
ldr r1, [r4, #0xc]
cmp r1, #0
beq _02253C2E
add r0, r5, #0
bl FreeToHeapExplicit
_02253C2E:
ldr r1, [r4, #4]
cmp r1, #0
beq _02253C3A
add r0, r5, #0
bl FreeToHeapExplicit
_02253C3A:
add r0, r5, #0
add r1, r4, #0
bl FreeToHeapExplicit
_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 NNS_G2dTickCellAnimation
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 NNS_G2dMakeCellToOams
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 ; =FX_SinCosTable_
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 ; =FX_SinCosTable_
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 NNS_G2dEntryOamManagerAffine
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 NNS_G2dMakeCellToOams
_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 NNS_G2dEntryOamManagerOam
_02253E52:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
_02253E58: .word FX_SinCosTable_
_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 NNS_G2dGetAnimSequenceByIdx
add r1, r0, #0
add r0, r4, #0
ldr r2, [r4]
add r0, #8
bl NNS_G2dInitCellAnimation
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 NNS_G2dGetAnimSequenceByIdx
add r1, r0, #0
add r0, r4, #0
ldr r2, [r4]
add r0, #8
bl NNS_G2dInitCellAnimation
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 GfGfxLoader_UncompressFromNarc
str r0, [r5]
add r0, r6, #0
add r1, r7, #0
add r2, r4, #0
bl GfGfxLoader_UncompressFromNarc
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 NNS_G2dGetUnpackedCellBank
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 NNS_G2dGetUnpackedMCAnimBank
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 FreeToHeapExplicit
mov r0, #0
str r0, [r4]
_02254028:
ldr r1, [r4, #4]
cmp r1, #0
beq _02254038
ldr r0, [r4, #0x10]
bl FreeToHeapExplicit
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

View File

@@ -0,0 +1,458 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 2, 0
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 GF_AssertFail
_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 FreeToHeapExplicit
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 GF_AssertFail
_022541A2:
ldr r0, [r4, #8]
ldr r1, [r4, #0x14]
bl FreeToHeapExplicit
ldr r0, [r4, #8]
add r1, r4, #0
bl FreeToHeapExplicit
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 ; =MOD20_02254710
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 ; =MOD20_02254710
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 MOD20_02254710
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
.section .rodata
.global MOD20_02254710
MOD20_02254710: ; 0x02254710
.word MOD20_02254340, MOD20_0225435C, MOD20_022543BC, MOD20_022543F4
.word MOD20_0225440C

View File

@@ -0,0 +1,185 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 2, 0
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 GF_AssertFail
_02254432:
cmp r4, #0x21
blo _0225443A
bl GF_AssertFail
_0225443A:
cmp r5, #0x1e
blo _02254440
mov r5, #0
_02254440:
cmp r4, #0x21
blo _02254446
mov r4, #0
_02254446:
ldr r0, _02254458 ; =MOD20_02254744
lsl r1, r5, #1
ldrh r0, [r0, r1]
lsl r1, r4, #1
str r0, [r6]
ldr r0, _0225445C ; =MOD20_02254780
ldrh r0, [r0, r1]
str r0, [r7]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02254458: .word MOD20_02254744
_0225445C: .word MOD20_02254780
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 GF_AssertFail
_02254470:
ldr r0, _02254480 ; =MOD20_02254724
lsl r1, r5, #3
ldr r0, [r0, r1]
str r0, [r4]
ldr r0, _02254484 ; =MOD20_02254724 + 4
ldr r0, [r0, r1]
str r0, [r6]
pop {r4, r5, r6, pc}
.align 2, 0
_02254480: .word MOD20_02254724
_02254484: .word MOD20_02254724 + 4
thumb_func_end MOD20_02254460
thumb_func_start MOD20_02254488
MOD20_02254488: ; 0x02254488
push {r4, r5}
ldr r5, _022544B8 ; =MOD20_022547C2
mov r4, #0
_0225448E:
ldrh r3, [r5]
cmp r0, r3
bne _022544A8
ldr r0, _022544BC ; =MOD20_022547C2 + 2
lsl r3, r4, #2
ldrb r0, [r0, r3]
str r0, [r1]
ldr r0, _022544C0 ; =MOD20_022547C2 + 3
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 MOD20_022547C2
_022544BC: .word MOD20_022547C2 + 2
_022544C0: .word MOD20_022547C2 + 3
thumb_func_end MOD20_02254488
.section .rodata
.global MOD20_02254724
MOD20_02254724: ; 0x02254724
.word 0x00000020, 0x0000002A
.word 0x00000032, 0x0000002A
.word 0x000000A8, 0x0000007A
.word 0x000000C2, 0x0000003A
.global MOD20_02254744
MOD20_02254744: ; 0x02254744
.short 0x001A, 0x0020, 0x0026, 0x002C, 0x0032, 0x0038, 0x003E, 0x0044
.short 0x004A, 0x0050, 0x0056, 0x005C, 0x0062, 0x0068, 0x006E, 0x0074
.short 0x007A, 0x0080, 0x0086, 0x008C, 0x0092, 0x0098, 0x009E, 0x00A4
.short 0x00AA, 0x00B0, 0x00B6, 0x00BC, 0x00C2, 0x00C8
.global MOD20_02254780
MOD20_02254780: ; 0x02254780
.short 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x001E, 0x0024
.short 0x002A, 0x0030, 0x0036, 0x003C, 0x0042, 0x0048, 0x004E, 0x0054
.short 0x005A, 0x0060, 0x0066, 0x006C, 0x0072, 0x0078, 0x007E, 0x0084
.short 0x008A, 0x0090, 0x0096, 0x009C, 0x00A2, 0x00A8, 0x00AE, 0x00B4
.short 0x00BA
.global MOD20_022547C2
MOD20_022547C2: ; 0x022547C2
.short 0x0156
.byte 0x2F, 0x96
.short 0x0157
.byte 0x38, 0x90
.short 0x0158
.byte 0x41, 0x84
.short 0x0159
.byte 0x32, 0x7E
.short 0x015A
.byte 0x32, 0x78
.short 0x015B
.byte 0x3E, 0x6C
.short 0x015D
.byte 0x4A, 0x5A
.short 0x015E
.byte 0x50, 0x6F
.short 0x0161
.byte 0x53, 0x7E
.short 0x0162
.byte 0x65, 0x7E
.short 0x0164
.byte 0x7D, 0x7E
.short 0x016A
.byte 0x80, 0x66
.short 0x016B
.byte 0x7A, 0x5A
.short 0x016D
.byte 0x5C, 0x5A
.short 0x016E
.byte 0x68, 0x5A
.short 0x016F
.byte 0x6E, 0x8A
.short 0x0173
.byte 0x77, 0x96
.short 0x0175
.byte 0x98, 0x93
.short 0x017C
.byte 0x98, 0x78
.short 0x017E
.byte 0x8C, 0x66
.short 0x017F
.byte 0x56, 0x42
.short 0x0181
.byte 0x50, 0x33
.short 0x0184
.byte 0x29, 0x84
.short 0x0187
.byte 0x38, 0x9C
.short 0x01D3
.byte 0x3B, 0xA2
.short 0x0188
.byte 0x4A, 0xA2
.short 0x018B
.byte 0xAA, 0x8A
.short 0x00C8
.byte 0x44, 0x72
.short 0x00CC
.byte 0x38, 0x66
.data
.bss

File diff suppressed because it is too large Load Diff