summaryrefslogtreecommitdiff
path: root/arm9/modules/34
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-10 12:21:48 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-10 12:21:48 -0400
commitca2e39c684eada4aec909f6f222806b7914b97d0 (patch)
treebb40c93d89c64714a581a7d84438004ec3db2e52 /arm9/modules/34
parentfc6f621d01f371f03ae49862819352bfc71abd05 (diff)
Dism modules 34-36; meaningful elf
Diffstat (limited to 'arm9/modules/34')
-rw-r--r--arm9/modules/34/asm/module_34.s601
1 files changed, 601 insertions, 0 deletions
diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s
new file mode 100644
index 00000000..a12d1a4a
--- /dev/null
+++ b/arm9/modules/34/asm/module_34.s
@@ -0,0 +1,601 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD34_02254840
+MOD34_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD34_02254854
+ ldr r1, _02254850 ; =MOD34_02254948
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD34_02254854
+_02254850: .word MOD34_02254948
+ thumb_func_end MOD34_02254840
+
+ thumb_func_start MOD34_02254854
+MOD34_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x38
+ 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 MOD34_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD34_0225490C
+ 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 MOD34_0225490C
+ thumb_func_end MOD34_02254854
+
+ thumb_func_start MOD34_0225489C
+MOD34_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x24
+ add r1, r5, #4
+ bl MOD34_02254A5C
+ cmp r0, #0
+ beq _022548DC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0x28]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548E0 ; =0x02254C7C
+ ldr r2, _022548E4 ; =MOD34_02254904
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x2c]
+ mov r1, #0
+ str r1, [r5, #0x30]
+ mov r0, #1
+_022548D0:
+ add r1, r1, #1
+ str r0, [r5, #8]
+ add r5, r5, #4
+ cmp r1, #6
+ blt _022548D0
+ pop {r3, r4, r5, pc}
+_022548DC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022548E0: .word 0x02254C7C
+_022548E4: .word MOD34_02254904
+ thumb_func_end MOD34_0225489C
+
+ thumb_func_start MOD34_022548E8
+MOD34_022548E8: ; 0x022548E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _022548F6
+ bl MOD20_02254198
+_022548F6:
+ ldr r0, [r4, #0x24]
+ bl MOD34_02254A8C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD34_022548E8
+
+ thumb_func_start MOD34_02254904
+MOD34_02254904: ; 0x02254904
+ str r1, [r3, #0x30]
+ str r0, [r3, #0x34]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254904
+
+ thumb_func_start MOD34_0225490C
+MOD34_0225490C: ; 0x0225490C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254942
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254944 ; =0x02254C70
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254942
+ add r0, r4, #0
+ bl MOD34_022548E8
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x28]
+ bl MOD20_022529A0
+_02254942:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254944: .word 0x02254C70
+ thumb_func_end MOD34_0225490C
+
+ thumb_func_start MOD34_02254948
+MOD34_02254948: ; 0x02254948
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254948
+
+ thumb_func_start MOD34_02254950
+MOD34_02254950: ; 0x02254950
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254958
+ b _0225495A
+_02254958:
+ mov r1, #2
+_0225495A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254950
+
+ thumb_func_start MOD34_02254964
+MOD34_02254964: ; 0x02254964
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254974
+ cmp r0, #1
+ beq _02254984
+ b _0225499E
+_02254974:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD34_02254A98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225499E
+_02254984:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD34_02254ABC
+ cmp r0, #0
+ beq _0225499E
+ ldr r0, [r4, #0x28]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD34_02254950
+_0225499E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254964
+
+ thumb_func_start MOD34_022549A4
+MOD34_022549A4: ; 0x022549A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549B8
+ mov r1, #2
+ bl MOD34_02254950
+ mov r0, #0
+ pop {r4, pc}
+_022549B8:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549C4
+ cmp r0, #1
+ beq _022549F6
+ b _02254A1A
+_022549C4:
+ ldr r0, [r4, #0x30]
+ cmp r0, #1
+ bne _02254A1A
+ ldr r1, [r4, #0x34]
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _022549EE
+ strh r1, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl MOD34_02254A98
+ ldr r0, _02254A20 ; =0x00000663
+ bl MOD20_02252B28
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A1A
+_022549EE:
+ ldr r0, _02254A24 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254A1A
+_022549F6:
+ ldr r0, [r4, #0x30]
+ cmp r0, #2
+ bne _02254A0A
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl MOD34_02254A98
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254A1A
+_02254A0A:
+ cmp r0, #3
+ bne _02254A1A
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl MOD34_02254A98
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254A1A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254A20: .word 0x00000663
+_02254A24: .word 0x0000066E
+ thumb_func_end MOD34_022549A4
+
+ thumb_func_start MOD34_02254A28
+MOD34_02254A28: ; 0x02254A28
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A38
+ cmp r0, #1
+ beq _02254A48
+ b _02254A56
+_02254A38:
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl MOD34_02254A98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A56
+_02254A48:
+ ldr r0, [r4, #0x24]
+ bl MOD34_02254AC8
+ cmp r0, #0
+ beq _02254A56
+ mov r0, #1
+ pop {r4, pc}
+_02254A56:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254A28
+
+ thumb_func_start MOD34_02254A5C
+MOD34_02254A5C: ; 0x02254A5C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A88
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _02254A88
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A88:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD34_02254A5C
+
+ thumb_func_start MOD34_02254A8C
+MOD34_02254A8C: ; 0x02254A8C
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254A96
+ bl FUN_02016A18
+_02254A96:
+ pop {r3, pc}
+ thumb_func_end MOD34_02254A8C
+
+ thumb_func_start MOD34_02254A98
+MOD34_02254A98: ; 0x02254A98
+ 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, _02254AB8 ; =0x02254CBC
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254AB8: .word 0x02254CBC
+ thumb_func_end MOD34_02254A98
+
+ thumb_func_start MOD34_02254ABC
+MOD34_02254ABC: ; 0x02254ABC
+ ldr r3, _02254AC4 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254AC4: .word MOD20_02253794
+ thumb_func_end MOD34_02254ABC
+
+ thumb_func_start MOD34_02254AC8
+MOD34_02254AC8: ; 0x02254AC8
+ ldr r3, _02254AD0 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254AD0: .word MOD20_022537B8
+ thumb_func_end MOD34_02254AC8
+
+ thumb_func_start MOD34_02254AD4
+MOD34_02254AD4: ; 0x02254AD4
+ 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 MOD34_02254AD4
+
+ thumb_func_start MOD34_02254AE8
+MOD34_02254AE8: ; 0x02254AE8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A0
+ add r6, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A4
+ add r5, r0, #0
+ ldr r0, [r6, #4]
+ ldr r2, _02254B8C ; =0x02254CA0
+ 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, [r6, #4]
+ mov r0, #0xc
+ mov r1, #0x3b
+ 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, [r6, #4]
+ mov r0, #0xc
+ mov r1, #0x3a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r4, #0
+ add r7, r4, #0
+_02254B4A:
+ ldr r2, [r5, #4]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r7, #0
+ bl MOD34_02254C1C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02254B4A
+ ldr r0, [r6, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r0, _02254B90 ; =0x04001000
+ ldr r1, _02254B94 ; =0xFFFFE0FF
+ ldr r2, [r0]
+ ldr r4, [r0]
+ add r3, r2, #0
+ and r3, r1
+ lsl r1, r4, #0x13
+ lsr r2, r1, #0x1b
+ mov r1, #4
+ orr r1, r2
+ lsl r1, r1, #8
+ orr r1, r3
+ str r1, [r0]
+ ldr r0, [sp, #0x10]
+ str r4, [sp, #0x14]
+ bl MOD34_02254AD4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B8C: .word 0x02254CA0
+_02254B90: .word 0x04001000
+_02254B94: .word 0xFFFFE0FF
+ thumb_func_end MOD34_02254AE8
+
+ thumb_func_start MOD34_02254B98
+MOD34_02254B98: ; 0x02254B98
+ 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 MOD34_02254AD4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254B98
+
+ thumb_func_start MOD34_02254BB4
+MOD34_02254BB4: ; 0x02254BB4
+ 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 r3, r0, #0
+ ldrh r1, [r3, #0x1c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ add r2, r3, r2
+ ldr r2, [r2, #4]
+ mov r3, #1
+ bl MOD34_02254C1C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD34_02254AD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD34_02254BB4
+
+ thumb_func_start MOD34_02254BE8
+MOD34_02254BE8: ; 0x02254BE8
+ 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 r3, r0, #0
+ ldrh r1, [r3, #0x1c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ add r2, r3, r2
+ ldr r2, [r2, #4]
+ mov r3, #0
+ bl MOD34_02254C1C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD34_02254AD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD34_02254BE8
+
+ thumb_func_start MOD34_02254C1C
+MOD34_02254C1C: ; 0x02254C1C
+ push {r4, r5, r6, lr}
+ ldr r0, [r0, #4]
+ add r5, r1, #0
+ mov r1, #6
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201886C
+ ldr r1, _02254C6C ; =0x02254C94
+ lsl r2, r5, #1
+ ldrh r1, [r1, r2]
+ lsl r1, r1, #1
+ add r2, r0, r1
+ cmp r4, #0
+ beq _02254C44
+ add r1, r5, #1
+ mov r0, #0x48
+ add r5, r1, #0
+ mul r5, r0
+ b _02254C46
+_02254C44:
+ mov r5, #0
+_02254C46:
+ cmp r6, #0
+ beq _02254C4C
+ add r5, #0x24
+_02254C4C:
+ mov r3, #0
+ add r0, r3, #0
+_02254C50:
+ add r1, r0, #0
+ add r4, r2, #0
+_02254C54:
+ add r1, r1, #1
+ strh r5, [r4]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r1, #6
+ blt _02254C54
+ add r3, r3, #1
+ add r2, #0x40
+ cmp r3, #6
+ blt _02254C50
+ pop {r4, r5, r6, pc}
+ nop
+_02254C6C: .word 0x02254C94
+ thumb_func_end MOD34_02254C1C
+
+ .section .rodata
+ ; 0x02254C70
+ .incbin "baserom.nds", 0x28e630, 0x88
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_34.SINIT_START
+ .global SDK_OVERLAY.MODULE_34.SINIT_END
+SDK_OVERLAY.MODULE_34.SINIT_START:
+ .word MOD34_02254840
+ .word 0
+SDK_OVERLAY.MODULE_34.SINIT_END: