Disassemble module 44

This commit is contained in:
PikalaxALT
2020-05-12 07:55:58 -04:00
parent ea1871defd
commit c503359350
3 changed files with 605 additions and 4 deletions

View File

@@ -1797,10 +1797,21 @@ SECTIONS {
SDK_OVERLAY.MODULE_43.BSS_SIZE = SDK_OVERLAY.MODULE_43.BSS_END - SDK_OVERLAY.MODULE_43.BSS_START;
} >> MODULE_43
.MODULE.44: {
.MODULE.44 :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_44.START = .;
FILE_295400.o (.text) /* 0x291400 */
module_44.o (.text)
module_44.o (.rodata)
module_44.o (.init)
// SDK_OVERLAY.MODULE_44.SINIT_START = .;
module_44.o (.ctor)
module_44.o (.sinit)
// WRITEW 0;
// SDK_OVERLAY.MODULE_44.SINIT_END = .;
. = ALIGN(32);
module_44.o (.sdata)
module_44.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_44.END = .;
SDK_OVERLAY.MODULE_44.SIZE = SDK_OVERLAY.MODULE_44.END - SDK_OVERLAY.MODULE_44.START;
@@ -1810,7 +1821,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_44.BSS_START = .;
FILE_295400.o (.bss)
module_44.o (.sbss)
module_44.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_44.BSS_END = .;
SDK_OVERLAY.MODULE_44.BSS_SIZE = SDK_OVERLAY.MODULE_44.BSS_END - SDK_OVERLAY.MODULE_44.BSS_START;
@@ -3133,7 +3145,15 @@ SECTIONS {
WRITEW SDK_OVERLAY_MODULE_43_ID;
WRITEW 0;
OVERLAY_TABLE(MODULE_44, 44)
WRITEW SDK_OVERLAY_MODULE_44_ID;
WRITEW SDK_OVERLAY.MODULE_44.START;
WRITEW SDK_OVERLAY.MODULE_44.SIZE;
WRITEW SDK_OVERLAY.MODULE_44.BSS_SIZE;
WRITEW SDK_OVERLAY.MODULE_44.SINIT_START;
WRITEW SDK_OVERLAY.MODULE_44.SINIT_END;
WRITEW SDK_OVERLAY_MODULE_44_ID;
WRITEW 0;
OVERLAY_TABLE(MODULE_45, 45)
OVERLAY_TABLE(MODULE_46, 46)
OVERLAY_TABLE(MODULE_47, 47)

View File

@@ -2665,6 +2665,7 @@
.extern FUN_0204C080
.extern FUN_0204C0A4
.extern FUN_020252B8
.extern FUN_0204BF58
.extern MOD20_02254420
.extern MOD20_02254460
.extern MOD20_02254488

View File

@@ -0,0 +1,580 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD44_02254840
MOD44_02254840: ; 0x02254840
ldr r3, _02254848 ; =MOD20_02252978
ldr r0, _0225484C ; =MOD44_02254854
ldr r1, _02254850 ; =MOD44_02254920
bx r3
.align 2, 0
_02254848: .word MOD20_02252978
_0225484C: .word MOD44_02254854
_02254850: .word MOD44_02254920
thumb_func_end MOD44_02254840
thumb_func_start MOD44_02254854
MOD44_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #8
mov r1, #0x14
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 MOD44_0225489C
cmp r0, #0
beq _0225488C
ldr r0, _02254898 ; =MOD44_022548EC
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 MOD44_022548EC
thumb_func_end MOD44_02254854
thumb_func_start MOD44_0225489C
MOD44_0225489C: ; 0x0225489C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
add r6, r2, #0
bl MOD20_02252C3C
str r0, [r5, #0x10]
bl FUN_0204BF44
str r0, [r5, #4]
strb r0, [r5, #3]
add r0, r5, #0
add r0, #8
add r1, r5, #4
add r2, r6, #0
bl MOD44_02254A54
cmp r0, #0
beq _022548D2
mov r0, #0
strb r0, [r5]
strb r0, [r5, #1]
strb r0, [r5, #2]
str r4, [r5, #0xc]
mov r0, #1
pop {r4, r5, r6, pc}
_022548D2:
mov r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD44_0225489C
thumb_func_start MOD44_022548D8
MOD44_022548D8: ; 0x022548D8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
bl MOD44_02254B00
add r0, r4, #0
bl FUN_02016A18
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_022548D8
thumb_func_start MOD44_022548EC
MOD44_022548EC: ; 0x022548EC
push {r3, r4, r5, lr}
add r4, r1, #0
ldrb r1, [r4]
add r5, r0, #0
cmp r1, #3
bhs _02254918
lsl r2, r1, #2
ldr r1, _0225491C ; =0x02254C54
add r0, r4, #0
ldr r1, [r1, r2]
blx r1
cmp r0, #0
beq _02254918
add r0, r4, #0
bl MOD44_022548D8
add r0, r5, #0
bl FUN_0200CAB4
ldr r0, [r4, #0xc]
bl MOD20_022529A0
_02254918:
pop {r3, r4, r5, pc}
nop
_0225491C: .word 0x02254C54
thumb_func_end MOD44_022548EC
thumb_func_start MOD44_02254920
MOD44_02254920: ; 0x02254920
mov r1, #1
strb r1, [r0, #2]
bx lr
.align 2, 0
thumb_func_end MOD44_02254920
thumb_func_start MOD44_02254928
MOD44_02254928: ; 0x02254928
ldrb r2, [r0, #2]
cmp r2, #0
bne _02254930
b _02254932
_02254930:
mov r1, #2
_02254932:
strb r1, [r0]
mov r1, #0
strb r1, [r0, #1]
bx lr
.align 2, 0
thumb_func_end MOD44_02254928
thumb_func_start MOD44_0225493C
MOD44_0225493C: ; 0x0225493C
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #1]
cmp r0, #0
beq _0225494C
cmp r0, #1
beq _0225495C
b _02254976
_0225494C:
ldr r0, [r4, #8]
mov r1, #0
bl MOD44_02254B14
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _02254976
_0225495C:
ldr r0, [r4, #8]
mov r1, #0
bl MOD44_02254B38
cmp r0, #0
beq _02254976
ldr r0, [r4, #0xc]
bl MOD20_0225298C
add r0, r4, #0
mov r1, #1
bl MOD44_02254928
_02254976:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_0225493C
thumb_func_start MOD44_0225497C
MOD44_0225497C: ; 0x0225497C
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #2]
cmp r1, #0
beq _02254990
mov r1, #2
bl MOD44_02254928
mov r0, #0
pop {r4, pc}
_02254990:
ldrb r1, [r4, #1]
cmp r1, #0
beq _0225499C
cmp r1, #1
beq _022549B4
b _022549C4
_0225499C:
bl MOD44_022549C8
cmp r0, #0
beq _022549C4
ldr r0, [r4, #8]
mov r1, #2
bl MOD44_02254B14
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _022549C4
_022549B4:
ldr r0, [r4, #8]
mov r1, #2
bl MOD44_02254B38
cmp r0, #0
beq _022549C4
mov r0, #0
strb r0, [r4, #1]
_022549C4:
mov r0, #0
pop {r4, pc}
thumb_func_end MOD44_0225497C
thumb_func_start MOD44_022549C8
MOD44_022549C8: ; 0x022549C8
push {r4, lr}
sub sp, #8
add r4, r0, #0
ldr r0, [r4, #0xc]
bl MOD20_02252C08
cmp r0, #0
bne _02254A18
add r0, sp, #4
add r1, sp, #0
bl FUN_02020AB0
cmp r0, #0
beq _02254A18
ldr r0, [sp]
cmp r0, #0x88
blo _02254A18
cmp r0, #0xa0
bhs _02254A18
ldr r0, [sp, #4]
cmp r0, #0x30
blo _02254A18
cmp r0, #0xb8
bhs _02254A18
sub r0, #0x30
lsr r1, r0, #4
cmp r1, #8
blo _02254A02
mov r1, #7
_02254A02:
ldrb r0, [r4, #3]
cmp r1, r0
beq _02254A18
str r1, [r4, #4]
strb r1, [r4, #3]
ldr r0, [r4, #0x10]
bl FUN_0204BF58
add sp, #8
mov r0, #1
pop {r4, pc}
_02254A18:
mov r0, #0
add sp, #8
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_022549C8
thumb_func_start MOD44_02254A20
MOD44_02254A20: ; 0x02254A20
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #1]
cmp r0, #0
beq _02254A30
cmp r0, #1
beq _02254A40
b _02254A4E
_02254A30:
ldr r0, [r4, #8]
mov r1, #1
bl MOD44_02254B14
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _02254A4E
_02254A40:
ldr r0, [r4, #8]
bl MOD44_02254B44
cmp r0, #0
beq _02254A4E
mov r0, #1
pop {r4, pc}
_02254A4E:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_02254A20
thumb_func_start MOD44_02254A54
MOD44_02254A54: ; 0x02254A54
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
mov r0, #8
mov r1, #0x3c
bl FUN_02016998
add r4, r0, #0
beq _02254A8A
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 MOD44_02254A90
str r4, [r6]
mov r0, #1
pop {r4, r5, r6, pc}
_02254A8A:
mov r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD44_02254A54
thumb_func_start MOD44_02254A90
MOD44_02254A90: ; 0x02254A90
push {r4, r5, lr}
sub sp, #0xc
mov r3, #0
str r3, [sp]
mov r2, #1
add r5, r0, #0
add r4, r1, #0
str r2, [sp, #4]
mov r0, #8
str r0, [sp, #8]
mov r0, #0xc
mov r1, #0x45
bl FUN_02006A34
mov r0, #8
str r0, [sp]
add r0, r5, #0
add r0, #0x28
mov r1, #0xc
mov r2, #0x43
mov r3, #0x44
bl MOD20_02253FBC
add r2, r5, #0
ldr r0, [r5, #0x20]
ldr r1, _02254AE0 ; =0x02254C60
add r2, #0x28
bl MOD20_02253E74
str r0, [r5, #0x24]
ldr r1, [r4]
mov r2, #0x25
lsl r1, r1, #4
add r1, #0x38
lsl r1, r1, #0xc
lsl r2, r2, #0xe
bl MOD20_02253F64
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_02254AE0: .word 0x02254C60
thumb_func_end MOD44_02254A90
thumb_func_start MOD44_02254AE4
MOD44_02254AE4: ; 0x02254AE4
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x24]
cmp r1, #0
beq _02254AF4
ldr r0, [r4, #0x20]
bl MOD20_02253F14
_02254AF4:
add r4, #0x28
add r0, r4, #0
bl MOD20_02254014
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_02254AE4
thumb_func_start MOD44_02254B00
MOD44_02254B00: ; 0x02254B00
push {r4, lr}
add r4, r0, #0
beq _02254B10
bl MOD44_02254AE4
add r0, r4, #0
bl FUN_02016A18
_02254B10:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_02254B00
thumb_func_start MOD44_02254B14
MOD44_02254B14: ; 0x02254B14
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, _02254B34 ; =0x02254C8C
ldr r3, [r2]
bl MOD20_022537E0
add sp, #0xc
pop {pc}
nop
_02254B34: .word 0x02254C8C
thumb_func_end MOD44_02254B14
thumb_func_start MOD44_02254B38
MOD44_02254B38: ; 0x02254B38
ldr r3, _02254B40 ; =MOD20_02253794
add r0, #8
bx r3
nop
_02254B40: .word MOD20_02253794
thumb_func_end MOD44_02254B38
thumb_func_start MOD44_02254B44
MOD44_02254B44: ; 0x02254B44
ldr r3, _02254B4C ; =MOD20_022537B8
add r0, #8
bx r3
nop
_02254B4C: .word MOD20_022537B8
thumb_func_end MOD44_02254B44
thumb_func_start MOD44_02254B50
MOD44_02254B50: ; 0x02254B50
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 MOD44_02254B50
thumb_func_start MOD44_02254B64
MOD44_02254B64: ; 0x02254B64
push {r4, r5, lr}
sub sp, #0x14
add r4, r1, #0
add r0, r4, #0
bl MOD20_022538A0
add r5, r0, #0
add r0, r4, #0
bl MOD20_022538A4
ldr r0, [r5, #4]
ldr r2, _02254BEC ; =0x02254C70
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, #0x42
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, #0x41
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, _02254BF0 ; =0x04001000
ldr r0, _02254BF4 ; =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 MOD44_02254B50
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
_02254BEC: .word 0x02254C70
_02254BF0: .word 0x04001000
_02254BF4: .word 0xFFFFE0FF
thumb_func_end MOD44_02254B64
thumb_func_start MOD44_02254BF8
MOD44_02254BF8: ; 0x02254BF8
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 MOD44_02254B50
pop {r4, pc}
.align 2, 0
thumb_func_end MOD44_02254BF8
thumb_func_start MOD44_02254C14
MOD44_02254C14: ; 0x02254C14
push {r4, r5, r6, lr}
add r6, r1, #0
add r0, r6, #0
bl MOD20_022538A0
add r5, r0, #0
add r0, r6, #0
bl MOD20_022538A4
add r4, r0, #0
ldr r0, _02254C50 ; =0x00000663
bl MOD20_02252B28
mov r0, #0
add r1, r0, #0
bl MOD20_02252D7C
ldr r1, [r4]
mov r2, #0x25
lsl r1, r1, #4
add r1, #0x38
ldr r0, [r5, #0x24]
lsl r1, r1, #0xc
lsl r2, r2, #0xe
bl MOD20_02253F64
add r0, r6, #0
bl MOD44_02254B50
pop {r4, r5, r6, pc}
.align 2, 0
_02254C50: .word 0x00000663
thumb_func_end MOD44_02254C14
.section .rodata
; 0x02254C54
.incbin "baserom.nds", 0x295814, 0x68
; .section .sinit
.global SDK_OVERLAY.MODULE_44.SINIT_START
.global SDK_OVERLAY.MODULE_44.SINIT_END
SDK_OVERLAY.MODULE_44.SINIT_START:
.word MOD44_02254840
.word 0
SDK_OVERLAY.MODULE_44.SINIT_END: