mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-30 12:26:48 -05:00
Disassemble module 31
This commit is contained in:
@@ -41,7 +41,7 @@ MEMORY {
|
||||
MODULE_28 (RWX) : ORIGIN=0x02254840, LENGTH=0
|
||||
MODULE_29 (RWX) : ORIGIN=0x02254840, LENGTH=0
|
||||
MODULE_30 (RWX) : ORIGIN=0x02254840, LENGTH=0
|
||||
MODULE_31 (RWX) : ORIGIN=0, LENGTH=0
|
||||
MODULE_31 (RWX) : ORIGIN=0x02254840, LENGTH=0
|
||||
MODULE_32 (RWX) : ORIGIN=0, LENGTH=0
|
||||
MODULE_33 (RWX) : ORIGIN=0, LENGTH=0
|
||||
MODULE_34 (RWX) : ORIGIN=0, LENGTH=0
|
||||
@@ -759,7 +759,19 @@ SECTIONS {
|
||||
module_30.o (.bss)
|
||||
} >> MODULE_30
|
||||
|
||||
OVERLAY_FILE(31, 0x289200, FILE_28D200.o)
|
||||
.MODULE.31 : AT (0x289200)
|
||||
{
|
||||
module_31.o (.text)
|
||||
module_31.o (.sdata)
|
||||
module_31.o (.data)
|
||||
} > MODULE_31
|
||||
|
||||
.MODULE.31.bss :
|
||||
{
|
||||
module_31.o (.sbss)
|
||||
module_31.o (.bss)
|
||||
} >> MODULE_31
|
||||
|
||||
OVERLAY_FILE(32, 0x289800, FILE_28D800.o)
|
||||
OVERLAY_FILE(33, 0x289E00, FILE_28DE00.o)
|
||||
OVERLAY_FILE(34, 0x28A200, FILE_28E200.o)
|
||||
|
||||
@@ -5446,6 +5446,7 @@
|
||||
.extern MOD20_02252DEC
|
||||
.extern MOD20_022538B8
|
||||
.extern MOD20_02253F44
|
||||
.extern MOD20_02252C34
|
||||
.extern FUN_0204C0CC
|
||||
.extern FUN_0204C0D4
|
||||
.extern FUN_0204C0E8
|
||||
|
||||
724
arm9/modules/31/asm/module_31.s
Normal file
724
arm9/modules/31/asm/module_31.s
Normal file
@@ -0,0 +1,724 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.section .text
|
||||
.balign 4, 0
|
||||
|
||||
thumb_func_start MOD31_02254840
|
||||
MOD31_02254840: ; 0x02254840
|
||||
ldr r3, _02254848 ; =MOD20_02252978
|
||||
ldr r0, _0225484C ; =MOD31_02254854
|
||||
ldr r1, _02254850 ; =MOD31_02254954
|
||||
bx r3
|
||||
.align 2, 0
|
||||
_02254848: .word MOD20_02252978
|
||||
_0225484C: .word MOD31_02254854
|
||||
_02254850: .word MOD31_02254954
|
||||
thumb_func_end MOD31_02254840
|
||||
|
||||
thumb_func_start MOD31_02254854
|
||||
MOD31_02254854: ; 0x02254854
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x20
|
||||
add r7, r2, #0
|
||||
str r3, [sp]
|
||||
bl FUN_02016998
|
||||
add r4, r0, #0
|
||||
beq _02254892
|
||||
ldr r3, [sp]
|
||||
add r1, r6, #0
|
||||
add r2, r7, #0
|
||||
bl MOD31_0225489C
|
||||
cmp r0, #0
|
||||
beq _0225488C
|
||||
ldr r0, _02254898 ; =MOD31_02254918
|
||||
add r1, r4, #0
|
||||
mov r2, #1
|
||||
bl FUN_0200CA44
|
||||
cmp r0, #0
|
||||
beq _0225488C
|
||||
str r4, [r5]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225488C:
|
||||
add r0, r4, #0
|
||||
bl FUN_02016A18
|
||||
_02254892:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02254898: .word MOD31_02254918
|
||||
thumb_func_end MOD31_02254854
|
||||
|
||||
thumb_func_start MOD31_0225489C
|
||||
MOD31_0225489C: ; 0x0225489C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
str r1, [r5, #0x10]
|
||||
add r0, r1, #0
|
||||
add r4, r2, #0
|
||||
bl MOD20_02252C3C
|
||||
str r0, [r5, #0x1c]
|
||||
mov r0, #1
|
||||
str r0, [r5, #8]
|
||||
ldr r0, [r5, #0x1c]
|
||||
bl FUN_0204BF84
|
||||
str r0, [r5, #4]
|
||||
add r0, r5, #0
|
||||
add r0, #0xc
|
||||
add r1, r5, #4
|
||||
add r2, r4, #0
|
||||
bl MOD31_02254A84
|
||||
cmp r0, #0
|
||||
beq _022548EA
|
||||
mov r0, #0
|
||||
strb r0, [r5]
|
||||
strb r0, [r5, #1]
|
||||
strb r0, [r5, #2]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _022548F0 ; =0x02254D98
|
||||
ldr r2, _022548F4 ; =MOD31_022548F8
|
||||
mov r1, #1
|
||||
add r3, r5, #0
|
||||
bl MOD20_02254130
|
||||
str r0, [r5, #0x14]
|
||||
mov r0, #0
|
||||
str r0, [r5, #0x18]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, pc}
|
||||
_022548EA:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_022548F0: .word 0x02254D98
|
||||
_022548F4: .word MOD31_022548F8
|
||||
thumb_func_end MOD31_0225489C
|
||||
|
||||
thumb_func_start MOD31_022548F8
|
||||
MOD31_022548F8: ; 0x022548F8
|
||||
cmp r0, #0
|
||||
bne _022548FE
|
||||
str r1, [r3, #0x18]
|
||||
_022548FE:
|
||||
bx lr
|
||||
thumb_func_end MOD31_022548F8
|
||||
|
||||
thumb_func_start MOD31_02254900
|
||||
MOD31_02254900: ; 0x02254900
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0x14]
|
||||
bl MOD20_02254198
|
||||
ldr r0, [r4, #0xc]
|
||||
bl MOD31_02254AC0
|
||||
add r0, r4, #0
|
||||
bl FUN_02016A18
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD31_02254900
|
||||
|
||||
thumb_func_start MOD31_02254918
|
||||
MOD31_02254918: ; 0x02254918
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #3
|
||||
bhs _0225494E
|
||||
ldr r0, [r4, #0x10]
|
||||
ldr r1, [r4, #0x14]
|
||||
bl MOD20_02252C14
|
||||
ldrb r1, [r4]
|
||||
add r0, r4, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _02254950 ; =0x02254D9C
|
||||
ldr r1, [r1, r2]
|
||||
blx r1
|
||||
cmp r0, #0
|
||||
beq _0225494E
|
||||
add r0, r4, #0
|
||||
bl MOD31_02254900
|
||||
add r0, r5, #0
|
||||
bl FUN_0200CAB4
|
||||
ldr r0, [r4, #0x10]
|
||||
bl MOD20_022529A0
|
||||
_0225494E:
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02254950: .word 0x02254D9C
|
||||
thumb_func_end MOD31_02254918
|
||||
|
||||
thumb_func_start MOD31_02254954
|
||||
MOD31_02254954: ; 0x02254954
|
||||
mov r1, #1
|
||||
strb r1, [r0, #2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254954
|
||||
|
||||
thumb_func_start MOD31_0225495C
|
||||
MOD31_0225495C: ; 0x0225495C
|
||||
ldrb r2, [r0, #2]
|
||||
cmp r2, #0
|
||||
bne _02254964
|
||||
b _02254966
|
||||
_02254964:
|
||||
mov r1, #2
|
||||
_02254966:
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strb r1, [r0, #1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_0225495C
|
||||
|
||||
thumb_func_start MOD31_02254970
|
||||
MOD31_02254970: ; 0x02254970
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _02254980
|
||||
cmp r0, #1
|
||||
beq _02254990
|
||||
b _022549AA
|
||||
_02254980:
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #0
|
||||
bl MOD31_02254BBC
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022549AA
|
||||
_02254990:
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #0
|
||||
bl MOD31_02254BE0
|
||||
cmp r0, #0
|
||||
beq _022549AA
|
||||
ldr r0, [r4, #0x10]
|
||||
bl MOD20_0225298C
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl MOD31_0225495C
|
||||
_022549AA:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254970
|
||||
|
||||
thumb_func_start MOD31_022549B0
|
||||
MOD31_022549B0: ; 0x022549B0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r1, [r4, #2]
|
||||
cmp r1, #0
|
||||
beq _022549C4
|
||||
mov r1, #2
|
||||
bl MOD31_0225495C
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
_022549C4:
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _022549D0
|
||||
cmp r0, #1
|
||||
beq _02254A0A
|
||||
b _02254A4C
|
||||
_022549D0:
|
||||
ldr r0, [r4, #0x18]
|
||||
cmp r0, #1
|
||||
bne _022549EE
|
||||
mov r0, #0
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #2
|
||||
bl MOD31_02254BBC
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02254A4C
|
||||
_022549EE:
|
||||
ldr r0, [r4, #0x10]
|
||||
bl MOD20_02252C34
|
||||
cmp r0, #0
|
||||
beq _02254A4C
|
||||
ldr r0, [r4, #0x1c]
|
||||
bl FUN_0204BF84
|
||||
str r0, [r4, #4]
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #3
|
||||
bl MOD31_02254BBC
|
||||
b _02254A4C
|
||||
_02254A0A:
|
||||
ldr r0, [r4, #0x18]
|
||||
cmp r0, #2
|
||||
bne _02254A24
|
||||
mov r0, #1
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #2
|
||||
bl MOD31_02254BBC
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x18]
|
||||
strb r0, [r4, #1]
|
||||
b _02254A4C
|
||||
_02254A24:
|
||||
cmp r0, #3
|
||||
bne _02254A4C
|
||||
mov r0, #1
|
||||
str r0, [r4, #8]
|
||||
mov r1, #0
|
||||
str r1, [r4, #4]
|
||||
ldr r0, [r4, #0x1c]
|
||||
bl FUN_0204BF88
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #2
|
||||
bl MOD31_02254BBC
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #3
|
||||
bl MOD31_02254BBC
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x18]
|
||||
strb r0, [r4, #1]
|
||||
_02254A4C:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD31_022549B0
|
||||
|
||||
thumb_func_start MOD31_02254A50
|
||||
MOD31_02254A50: ; 0x02254A50
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _02254A60
|
||||
cmp r0, #1
|
||||
beq _02254A70
|
||||
b _02254A7E
|
||||
_02254A60:
|
||||
ldr r0, [r4, #0xc]
|
||||
mov r1, #1
|
||||
bl MOD31_02254BBC
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02254A7E
|
||||
_02254A70:
|
||||
ldr r0, [r4, #0xc]
|
||||
bl MOD31_02254BEC
|
||||
cmp r0, #0
|
||||
beq _02254A7E
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_02254A7E:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254A50
|
||||
|
||||
thumb_func_start MOD31_02254A84
|
||||
MOD31_02254A84: ; 0x02254A84
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
add r5, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x64
|
||||
bl FUN_02016998
|
||||
add r4, r0, #0
|
||||
beq _02254ABA
|
||||
add r0, #8
|
||||
mov r1, #4
|
||||
bl MOD20_022536F4
|
||||
str r5, [r4]
|
||||
bl MOD20_02252D34
|
||||
str r0, [r4, #4]
|
||||
bl MOD20_02252D24
|
||||
str r0, [r4, #0x20]
|
||||
add r0, r4, #0
|
||||
add r1, r5, #0
|
||||
bl MOD31_02254AD4
|
||||
str r4, [r6]
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02254ABA:
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254A84
|
||||
|
||||
thumb_func_start MOD31_02254AC0
|
||||
MOD31_02254AC0: ; 0x02254AC0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
beq _02254AD0
|
||||
bl MOD31_02254B88
|
||||
add r0, r4, #0
|
||||
bl FUN_02016A18
|
||||
_02254AD0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254AC0
|
||||
|
||||
thumb_func_start MOD31_02254AD4
|
||||
MOD31_02254AD4: ; 0x02254AD4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x14
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
mov r2, #1
|
||||
add r7, r0, #0
|
||||
str r1, [sp, #0xc]
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #2
|
||||
bl FUN_02006A34
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
mov r2, #1
|
||||
mov r3, #0xa
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x34
|
||||
lsl r3, r3, #8
|
||||
bl FUN_02006A34
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r7, #0
|
||||
add r0, #0x3c
|
||||
mov r1, #0xc
|
||||
mov r2, #0x32
|
||||
mov r3, #0x33
|
||||
bl MOD20_02253FBC
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r7, #0
|
||||
add r0, #0x50
|
||||
mov r1, #0xc
|
||||
mov r2, #3
|
||||
mov r3, #4
|
||||
bl MOD20_02253FBC
|
||||
add r2, r7, #0
|
||||
ldr r0, [r7, #0x20]
|
||||
ldr r1, _02254B80 ; =0x02254DA8
|
||||
add r2, #0x3c
|
||||
bl MOD20_02253E74
|
||||
mov r1, #0x50
|
||||
str r0, [r7, #0x24]
|
||||
bl MOD20_02253FA4
|
||||
add r0, r7, #0
|
||||
mov r5, #5
|
||||
str r0, [sp, #0x10]
|
||||
add r0, #0x50
|
||||
mov r6, #0
|
||||
add r4, r7, #0
|
||||
lsl r5, r5, #0x10
|
||||
str r0, [sp, #0x10]
|
||||
_02254B50:
|
||||
ldr r0, [r7, #0x20]
|
||||
ldr r1, _02254B84 ; =0x02254DB8
|
||||
ldr r2, [sp, #0x10]
|
||||
bl MOD20_02253E74
|
||||
mov r2, #1
|
||||
add r1, r5, #0
|
||||
lsl r2, r2, #0x12
|
||||
str r0, [r4, #0x28]
|
||||
bl MOD20_02253F64
|
||||
mov r0, #1
|
||||
lsl r0, r0, #0x10
|
||||
add r6, r6, #1
|
||||
add r4, r4, #4
|
||||
add r5, r5, r0
|
||||
cmp r6, #5
|
||||
blt _02254B50
|
||||
ldr r1, [sp, #0xc]
|
||||
add r0, r7, #0
|
||||
bl MOD31_02254D1C
|
||||
add sp, #0x14
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02254B80: .word 0x02254DA8
|
||||
_02254B84: .word 0x02254DB8
|
||||
thumb_func_end MOD31_02254AD4
|
||||
|
||||
thumb_func_start MOD31_02254B88
|
||||
MOD31_02254B88: ; 0x02254B88
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
ldr r0, [r6, #0x20]
|
||||
ldr r1, [r6, #0x24]
|
||||
bl MOD20_02253F14
|
||||
mov r4, #0
|
||||
add r5, r6, #0
|
||||
_02254B98:
|
||||
ldr r0, [r6, #0x20]
|
||||
ldr r1, [r5, #0x28]
|
||||
bl MOD20_02253F14
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #5
|
||||
blt _02254B98
|
||||
add r0, r6, #0
|
||||
add r0, #0x3c
|
||||
bl MOD20_02254014
|
||||
add r6, #0x50
|
||||
add r0, r6, #0
|
||||
bl MOD20_02254014
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254B88
|
||||
|
||||
thumb_func_start MOD31_02254BBC
|
||||
MOD31_02254BBC: ; 0x02254BBC
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r2, r0, #0
|
||||
add r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
ldr r0, _02254BDC ; =0x02254DE4
|
||||
ldr r3, [r2]
|
||||
bl MOD20_022537E0
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
nop
|
||||
_02254BDC: .word 0x02254DE4
|
||||
thumb_func_end MOD31_02254BBC
|
||||
|
||||
thumb_func_start MOD31_02254BE0
|
||||
MOD31_02254BE0: ; 0x02254BE0
|
||||
ldr r3, _02254BE8 ; =MOD20_02253794
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_02254BE8: .word MOD20_02253794
|
||||
thumb_func_end MOD31_02254BE0
|
||||
|
||||
thumb_func_start MOD31_02254BEC
|
||||
MOD31_02254BEC: ; 0x02254BEC
|
||||
ldr r3, _02254BF4 ; =MOD20_022537B8
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_02254BF4: .word MOD20_022537B8
|
||||
thumb_func_end MOD31_02254BEC
|
||||
|
||||
thumb_func_start MOD31_02254BF8
|
||||
MOD31_02254BF8: ; 0x02254BF8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl MOD20_022538A0
|
||||
add r0, #8
|
||||
add r1, r4, #0
|
||||
bl MOD20_02253888
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254BF8
|
||||
|
||||
thumb_func_start MOD31_02254C0C
|
||||
MOD31_02254C0C: ; 0x02254C0C
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x14
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl MOD20_022538A0
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _02254C90 ; =0x02254DC8
|
||||
mov r1, #6
|
||||
mov r3, #0
|
||||
bl FUN_02016C18
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x31
|
||||
mov r3, #6
|
||||
bl FUN_0200687C
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x30
|
||||
mov r3, #6
|
||||
bl FUN_020068C8
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl MOD20_02252D7C
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #6
|
||||
bl FUN_02017CD0
|
||||
ldr r1, _02254C94 ; =0x04001000
|
||||
ldr r0, _02254C98 ; =0xFFFFE0FF
|
||||
ldr r3, [r1]
|
||||
ldr r2, [r1]
|
||||
str r3, [sp, #0x10]
|
||||
and r0, r2
|
||||
lsl r2, r3, #0x13
|
||||
lsr r3, r2, #0x1b
|
||||
mov r2, #4
|
||||
orr r2, r3
|
||||
lsl r2, r2, #8
|
||||
orr r0, r2
|
||||
str r0, [r1]
|
||||
add r0, r4, #0
|
||||
bl MOD31_02254BF8
|
||||
add sp, #0x14
|
||||
pop {r4, r5, pc}
|
||||
nop
|
||||
_02254C90: .word 0x02254DC8
|
||||
_02254C94: .word 0x04001000
|
||||
_02254C98: .word 0xFFFFE0FF
|
||||
thumb_func_end MOD31_02254C0C
|
||||
|
||||
thumb_func_start MOD31_02254C9C
|
||||
MOD31_02254C9C: ; 0x02254C9C
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl MOD20_022538A0
|
||||
ldr r0, [r0, #4]
|
||||
mov r1, #6
|
||||
bl FUN_020178A0
|
||||
add r0, r4, #0
|
||||
bl MOD31_02254BF8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254C9C
|
||||
|
||||
thumb_func_start MOD31_02254CB8
|
||||
MOD31_02254CB8: ; 0x02254CB8
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl MOD20_022538A0
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
beq _02254CD2
|
||||
cmp r0, #1
|
||||
beq _02254CE2
|
||||
b _02254CEA
|
||||
_02254CD2:
|
||||
ldr r0, _02254CF4 ; =0x00000669
|
||||
bl MOD20_02252B28
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #1
|
||||
bl MOD20_02253F28
|
||||
b _02254CEA
|
||||
_02254CE2:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #0
|
||||
bl MOD20_02253F28
|
||||
_02254CEA:
|
||||
add r0, r5, #0
|
||||
bl MOD31_02254BF8
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_02254CF4: .word 0x00000669
|
||||
thumb_func_end MOD31_02254CB8
|
||||
|
||||
thumb_func_start MOD31_02254CF8
|
||||
MOD31_02254CF8: ; 0x02254CF8
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl MOD20_022538A0
|
||||
add r4, r0, #0
|
||||
add r0, r5, #0
|
||||
bl MOD20_022538A4
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
bl MOD31_02254D1C
|
||||
add r0, r5, #0
|
||||
bl MOD31_02254BF8
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD31_02254CF8
|
||||
|
||||
thumb_func_start MOD31_02254D1C
|
||||
MOD31_02254D1C: ; 0x02254D1C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0xc
|
||||
add r7, r0, #0
|
||||
ldr r0, [r1]
|
||||
ldr r5, _02254D80 ; =0x04000280
|
||||
str r0, [sp, #4]
|
||||
ldr r0, _02254D84 ; =0x00002710
|
||||
lsr r4, r5, #0xb
|
||||
str r0, [sp]
|
||||
mov r0, #0
|
||||
str r0, [sp, #8]
|
||||
lsr r6, r5, #0xb
|
||||
_02254D34:
|
||||
mov r0, #0
|
||||
strh r0, [r5]
|
||||
ldr r1, [sp, #4]
|
||||
ldr r0, _02254D88 ; =0x04000290
|
||||
str r1, [r0]
|
||||
ldr r1, [sp]
|
||||
str r1, [r0, #8]
|
||||
ldr r0, _02254D8C ; =0x04000298
|
||||
mov r1, #0
|
||||
str r1, [r0, #4]
|
||||
_02254D48:
|
||||
ldrh r0, [r5]
|
||||
tst r0, r4
|
||||
bne _02254D48
|
||||
ldr r1, _02254D90 ; =0x040002A0
|
||||
ldr r0, [r7, #0x28]
|
||||
ldr r1, [r1]
|
||||
bl MOD20_02253F28
|
||||
_02254D58:
|
||||
ldrh r0, [r5]
|
||||
tst r0, r6
|
||||
bne _02254D58
|
||||
ldr r0, _02254D94 ; =0x040002A8
|
||||
mov r1, #0xa
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [sp]
|
||||
bl _u32_div_f
|
||||
str r0, [sp]
|
||||
ldr r0, [sp, #8]
|
||||
add r7, r7, #4
|
||||
add r0, r0, #1
|
||||
str r0, [sp, #8]
|
||||
cmp r0, #5
|
||||
blt _02254D34
|
||||
add sp, #0xc
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02254D80: .word 0x04000280
|
||||
_02254D84: .word 0x00002710
|
||||
_02254D88: .word 0x04000290
|
||||
_02254D8C: .word 0x04000298
|
||||
_02254D90: .word 0x040002A0
|
||||
_02254D94: .word 0x040002A8
|
||||
thumb_func_end MOD31_02254D1C
|
||||
|
||||
.section .data
|
||||
; 0x02254D98
|
||||
.incbin "baserom.nds", 0x28D758, 0xA8
|
||||
Reference in New Issue
Block a user