summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm7/arm7.lsf3
-rw-r--r--arm7/asm/NVRAM.s1053
-rw-r--r--arm7/asm/RTC_external.s75
-rw-r--r--arm7/asm/RTC_unk_03805064.s665
-rw-r--r--arm7/asm/wram2.s1747
-rw-r--r--arm7/asm/wram_bss.s28
-rw-r--r--arm7/global.inc25
-rw-r--r--arm9/arm9.lsf37
-rw-r--r--arm9/global.inc56
-rw-r--r--arm9/lib/include/FS_file.h1
-rw-r--r--arm9/lib/include/MI_dma_gxcommand.h3
-rw-r--r--arm9/lib/include/OS_alarm.h3
-rw-r--r--arm9/lib/include/OS_exception.h5
-rw-r--r--arm9/lib/include/OS_reset.h6
-rw-r--r--arm9/lib/include/OS_thread.h12
-rw-r--r--arm9/lib/include/OS_tick.h1
-rw-r--r--arm9/lib/src/FS_command.c2
-rw-r--r--arm9/lib/src/FS_command_default.c1
-rw-r--r--arm9/lib/src/FS_file.c2
-rw-r--r--arm9/lib/src/FX_mtx44.c1
-rw-r--r--arm9/lib/src/GX.c4
-rw-r--r--arm9/lib/src/GX_g2.c4
-rw-r--r--arm9/lib/src/GX_g3x.c76
-rw-r--r--arm9/lib/src/MI_dma_gxcommand.c8
-rw-r--r--arm9/lib/src/OS_alarm.c4
-rw-r--r--arm9/lib/src/OS_arena.c3
-rw-r--r--arm9/lib/src/OS_exception.c4
-rw-r--r--arm9/lib/src/OS_irqHandler.c2
-rw-r--r--arm9/lib/src/OS_reset.c7
-rw-r--r--arm9/lib/src/OS_system.c53
-rw-r--r--arm9/lib/src/OS_terminate_proc.c9
-rw-r--r--arm9/lib/src/OS_thread.c13
-rw-r--r--arm9/lib/src/OS_tick.c2
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s3485
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s (renamed from arm9/modules/11/asm/module_11.s)3493
-rw-r--r--arm9/modules/11/src/module_11_sinit.c17
-rw-r--r--arm9/modules/21/asm/module_21.s12
-rw-r--r--arm9/modules/21/src/module_21_sinit.c13
-rw-r--r--arm9/modules/22/asm/module_22.s15
-rw-r--r--arm9/modules/22/src/module_22_sinit.c13
-rw-r--r--arm9/modules/23/asm/module_23.s12
-rw-r--r--arm9/modules/23/src/module_23_sinit.c13
-rw-r--r--arm9/modules/24/asm/module_24.s15
-rw-r--r--arm9/modules/24/src/module_24_sinit.c13
-rw-r--r--arm9/modules/25/asm/module_25.s15
-rw-r--r--arm9/modules/25/src/module_25_sinit.c13
-rw-r--r--arm9/modules/26/asm/module_26.s15
-rw-r--r--arm9/modules/26/src/module_26_sinit.c13
-rw-r--r--arm9/modules/27/asm/module_27.s12
-rw-r--r--arm9/modules/27/src/module_27_sinit.c13
-rw-r--r--arm9/modules/28/asm/module_28.s12
-rw-r--r--arm9/modules/28/src/module_28_sinit.c13
-rw-r--r--arm9/modules/29/asm/module_29.s12
-rw-r--r--arm9/modules/29/src/module_29_sinit.c13
-rw-r--r--arm9/modules/30/asm/module_30.s12
-rw-r--r--arm9/modules/30/src/module_30_sinit.c13
-rw-r--r--arm9/modules/32/asm/module_32.s12
-rw-r--r--arm9/modules/32/src/module_32_sinit.c13
-rw-r--r--arm9/modules/34/asm/module_34.s12
-rw-r--r--arm9/modules/34/src/module_34_sinit.c13
-rw-r--r--arm9/modules/36/asm/module_36.s12
-rw-r--r--arm9/modules/36/src/module_36_sinit.c13
-rw-r--r--arm9/modules/39/asm/module_39.s12
-rw-r--r--arm9/modules/39/src/module_39_sinit.c13
-rw-r--r--arm9/modules/41/asm/module_41.s12
-rw-r--r--arm9/modules/41/src/module_41_sinit.c13
-rw-r--r--arm9/modules/42/asm/module_42.s12
-rw-r--r--arm9/modules/42/src/module_42_sinit.c13
-rw-r--r--arm9/modules/43/asm/module_43.s12
-rw-r--r--arm9/modules/43/src/module_43_sinit.c13
-rw-r--r--arm9/modules/44/asm/module_44.s12
-rw-r--r--arm9/modules/44/src/module_44_sinit.c13
-rw-r--r--arm9/modules/47/asm/module_47.s12
-rw-r--r--arm9/modules/47/src/module_47_sinit.c13
-rw-r--r--include-mw/function_target.h2
75 files changed, 5735 insertions, 5664 deletions
diff --git a/arm7/arm7.lsf b/arm7/arm7.lsf
index cbffa45a..7be05a3a 100644
--- a/arm7/arm7.lsf
+++ b/arm7/arm7.lsf
@@ -69,6 +69,9 @@ Autoload WRAM
Object SPI_mic.o
Object CTRDG.o
Object CTRDG_sp.o
+ Object NVRAM.o
+ Object RTC_unk_03805064.o
+ Object RTC_external.o
Object wram2.o
Object wram_bss.o
}
diff --git a/arm7/asm/NVRAM.s b/arm7/asm/NVRAM.s
new file mode 100644
index 00000000..3257e7b4
--- /dev/null
+++ b/arm7/asm/NVRAM.s
@@ -0,0 +1,1053 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _0380A018
+_0380A018: ;0x0380A018
+ .space 0x0380A038 - 0x0380A018
+
+ .section .text
+
+ arm_func_start FUN_0380428C
+FUN_0380428C: ;@ 0x0380428C
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl NVRAM_ReadStatusRegister
+ ldrh r1, [sp]
+ ands r0, r1, #1
+ movne r0, #0
+ bne _038042B8
+ ands r0, r1, #2
+ movne r0, #1
+ moveq r0, #0
+_038042B8:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_038042C4
+FUN_038042C4: ;@ 0x038042C4
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl NVRAM_ReadStatusRegister
+ ldrh r0, [sp]
+ ands r0, r0, #1
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start NVRAM_ExecuteProcess
+NVRAM_ExecuteProcess: ;@ 0x038042F0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ mov r0, #1
+ bl SPIi_CheckException
+ cmp r0, #0
+ bne _03804334
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _038045C0
+_03804334:
+ mov r0, #1
+ bl SPIi_GetException
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r0, [r4, #4]
+ sub r0, r0, #32
+ cmp r0, #13
+ addls pc, pc, r0, lsl #2
+ b _03804584
+ b _03804390
+ b _03804398
+ b _038043A0
+ b _038043AC
+ b _038043EC
+ b _0380442C
+ b _03804474
+ b _038044BC
+ b _038044F4
+ b _0380452C
+ b _03804534
+ b _0380453C
+ b _03804570
+ b _0380457C
+_03804390:
+ bl NVRAM_WriteEnable
+ b _038045A4
+_03804398:
+ bl NVRAM_WriteDisable
+ b _038045A4
+_038043A0:
+ ldr r0, [r4, #16]
+ bl NVRAM_ReadStatusRegister
+ b _038045A4
+_038043AC:
+ bl FUN_038042C4
+ cmp r0, #0
+ bne _038043D8
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_038043D8:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #12]
+ ldr r2, [r4, #16]
+ bl NVRAM_ReadDataBytes
+ b _038045A4
+_038043EC:
+ bl FUN_038042C4
+ cmp r0, #0
+ bne _03804418
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_03804418:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #12]
+ ldr r2, [r4, #16]
+ bl NVRAM_ReadDataBytesAtHigherSpeed
+ b _038045A4
+_0380442C:
+ bl FUN_0380428C
+ cmp r0, #0
+ bne _03804458
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_03804458:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #12]
+ mov r1, r1, lsl #16
+ mov r1, r1, lsr #16
+ ldr r2, [r4, #16]
+ bl NVRAM_PageWrite
+ b _038045A4
+_03804474:
+ bl FUN_0380428C
+ cmp r0, #0
+ bne _038044A0
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_038044A0:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #12]
+ mov r1, r1, lsl #16
+ mov r1, r1, lsr #16
+ ldr r2, [r4, #16]
+ bl NVRAM_PageProgram
+ b _038045A4
+_038044BC:
+ bl FUN_0380428C
+ cmp r0, #0
+ bne _038044E8
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_038044E8:
+ ldr r0, [r4, #8]
+ bl NVRAM_PageErase
+ b _038045A4
+_038044F4:
+ bl FUN_0380428C
+ cmp r0, #0
+ bne _03804520
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_03804520:
+ ldr r0, [r4, #8]
+ bl NVRAM_SectorErase
+ b _038045A4
+_0380452C:
+ bl NVRAM_DeepPowerDown
+ b _038045A4
+_03804534:
+ bl NVRAM_ReleaseFromDeepPowerDown
+ b _038045A4
+_0380453C:
+ bl FUN_0380428C
+ cmp r0, #0
+ bne _03804568
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+ b _038045C0
+_03804568:
+ bl NVRAM_ChipErase
+ b _038045A4
+_03804570:
+ ldr r0, [r4, #16]
+ bl NVRAM_ReadSiliconId
+ b _038045A4
+_0380457C:
+ bl NVRAM_SoftwareReset
+ b _038045A4
+_03804584:
+ mov r0, #1
+ bl SPIi_ReleaseException
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #1
+ bl SPIi_ReturnResult
+ b _038045C0
+_038045A4:
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ mov r0, #1
+ bl SPIi_ReleaseException
+_038045C0:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+
+ arm_func_start NVRAM_AnalyzeCommand
+NVRAM_AnalyzeCommand: ;@ 0x038045CC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #12
+ ands r1, r0, #33554432 ;@ 0x2000000
+ beq _038045FC
+ mov r5, #0
+ mov lr, r5
+ ldr r1, _0380476C ;@ =_0380A018
+_038045E8:
+ mov r4, r5, lsl #1
+ strh lr, [r1, r4]
+ add r5, r5, #1
+ cmp r5, #16
+ blt _038045E8
+_038045FC:
+ and r1, r0, #983040 ;@ 0xf0000
+ mov r1, r1, lsr #16
+ mov r4, r1, lsl #1
+ ldr r1, _0380476C ;@ =_0380A018
+ strh r0, [r1, r4]
+ ands r0, r0, #16777216 ;@ 0x1000000
+ beq _03804760
+ ldrh r0, [r1]
+ and r4, r0, #65280 ;@ 0xff00
+ mov r4, r4, lsl #8
+ mov r4, r4, lsr #16
+ sub lr, r4, #34 ;@ 0x22
+ cmp lr, #10
+ addls pc, pc, lr, lsl #2
+ b _03804734
+ b _03804664
+ b _038046A0
+ b _038046A0
+ b _038046E8
+ b _038046E8
+ b _03804728
+ b _03804728
+ b _03804734
+ b _03804734
+ b _03804734
+ b _03804664
+_03804664:
+ ldrh ip, [r1, #4]
+ and lr, ip, #65280 ;@ 0xff00
+ and r0, r0, #255 ;@ 0xff
+ mov ip, r0, lsl #24
+ ldrh r0, [r1, #2]
+ orr r0, ip, r0, lsl #8
+ orr ip, r0, lr, lsr #8
+ cmp ip, #33554432 ;@ 0x2000000
+ bcc _03804690
+ cmp ip, #41943040 ;@ 0x2800000
+ bcc _03804734
+_03804690:
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03804760
+_038046A0:
+ ldrh r3, [r1, #8]
+ ldrh r2, [r1, #10]
+ orr ip, r2, r3, lsl #16
+ cmp ip, #33554432 ;@ 0x2000000
+ bcc _038046BC
+ cmp ip, #41943040 ;@ 0x2800000
+ bcc _038046CC
+_038046BC:
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03804760
+_038046CC:
+ and r2, r0, #255 ;@ 0xff
+ ldrh r0, [r1, #2]
+ orr r3, r0, r2, lsl #16
+ ldrh r2, [r1, #4]
+ ldrh r0, [r1, #6]
+ orr r2, r0, r2, lsl #16
+ b _03804734
+_038046E8:
+ ldrh r3, [r1, #6]
+ ldrh r2, [r1, #8]
+ orr ip, r2, r3, lsl #16
+ cmp ip, #33554432 ;@ 0x2000000
+ bcc _03804704
+ cmp ip, #41943040 ;@ 0x2800000
+ bcc _03804714
+_03804704:
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03804760
+_03804714:
+ and r2, r0, #255 ;@ 0xff
+ ldrh r0, [r1, #2]
+ orr r3, r0, r2, lsl #16
+ ldrh r2, [r1, #4]
+ b _03804734
+_03804728:
+ and r3, r0, #255 ;@ 0xff
+ ldrh r0, [r1, #2]
+ orr r3, r0, r3, lsl #16
+_03804734:
+ str r2, [sp]
+ str ip, [sp, #4]
+ mov r0, #1
+ mov r1, r4
+ mov r2, #3
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03804760
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+_03804760:
+ add sp, sp, #12
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_0380476C: .word _0380A018
+
+ arm_func_start NVRAM_Init
+NVRAM_Init: ;@ 0x03804770
+ mov r3, #0
+ mov r2, r3
+ ldr r0, _03804794 ;@ =_0380A018
+_0380477C:
+ mov r1, r3, lsl #1
+ strh r2, [r0, r1]
+ add r3, r3, #1
+ cmp r3, #16
+ blt _0380477C
+ bx lr
+_03804794: .word _0380A018
+
+ arm_func_start NVRAM_SoftwareReset
+NVRAM_SoftwareReset: ;@ 0x03804798
+ ldr r1, _038047D0 ;@ =0x040001C0
+_0380479C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380479C
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #255 ;@ 0xff
+ ldr r0, _038047D4 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038047D0 ;@ =0x040001C0
+_038047C0:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038047C0
+ bx lr
+_038047D0: .word 0x040001C0
+_038047D4: .word 0x040001C2
+
+ arm_func_start NVRAM_ReadSiliconId
+NVRAM_ReadSiliconId: ;@ 0x038047D8
+ ldr r2, _0380486C ;@ =0x040001C0
+_038047DC:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _038047DC
+ mov r1, #35072 ;@ 0x8900
+ strh r1, [r2]
+ mov r2, #159 ;@ 0x9f
+ ldr r1, _03804870 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r2, _0380486C ;@ =0x040001C0
+_03804800:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804800
+ mov r2, #0
+ ldr r1, _03804870 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r3, _0380486C ;@ =0x040001C0
+_0380481C:
+ ldrh r1, [r3]
+ ands r1, r1, #128 ;@ 0x80
+ bne _0380481C
+ ldr r2, _03804870 ;@ =0x040001C2
+ ldrh r1, [r2]
+ and r1, r1, #255 ;@ 0xff
+ strb r1, [r0]
+ mov r1, #33024 ;@ 0x8100
+ strh r1, [r3]
+ mov r1, #0
+ strh r1, [r2]
+ ldr r2, _0380486C ;@ =0x040001C0
+_0380484C:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _0380484C
+ ldr r1, _03804870 ;@ =0x040001C2
+ ldrh r1, [r1]
+ and r1, r1, #255 ;@ 0xff
+ strb r1, [r0, #1]
+ bx lr
+_0380486C: .word 0x040001C0
+_03804870: .word 0x040001C2
+
+ arm_func_start NVRAM_ChipErase
+NVRAM_ChipErase: ;@ 0x03804874
+ ldr r1, _038048AC ;@ =0x040001C0
+_03804878:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804878
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #199 ;@ 0xc7
+ ldr r0, _038048B0 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038048AC ;@ =0x040001C0
+_0380489C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380489C
+ bx lr
+_038048AC: .word 0x040001C0
+_038048B0: .word 0x040001C2
+
+ arm_func_start NVRAM_ReleaseFromDeepPowerDown
+NVRAM_ReleaseFromDeepPowerDown: ;@ 0x038048B4
+ ldr r1, _038048EC ;@ =0x040001C0
+_038048B8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038048B8
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #171 ;@ 0xab
+ ldr r0, _038048F0 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038048EC ;@ =0x040001C0
+_038048DC:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038048DC
+ bx lr
+_038048EC: .word 0x040001C0
+_038048F0: .word 0x040001C2
+
+ arm_func_start NVRAM_DeepPowerDown
+NVRAM_DeepPowerDown: ;@ 0x038048F4
+ ldr r1, _0380492C ;@ =0x040001C0
+_038048F8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038048F8
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #185 ;@ 0xb9
+ ldr r0, _03804930 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _0380492C ;@ =0x040001C0
+_0380491C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380491C
+ bx lr
+_0380492C: .word 0x040001C0
+_03804930: .word 0x040001C2
+
+ arm_func_start NVRAM_SectorErase
+NVRAM_SectorErase: ;@ 0x03804934
+ and r1, r0, #16711680 ;@ 0xff0000
+ mov r1, r1, lsr #16
+ mov r1, r1, lsl #16
+ mov r2, r1, lsr #16
+ and r1, r0, #65280 ;@ 0xff00
+ mov r1, r1, lsl #8
+ mov r1, r1, lsr #16
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ ldr ip, _038049F0 ;@ =0x040001C0
+_03804960:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804960
+ mov r3, #35072 ;@ 0x8900
+ strh r3, [ip]
+ mov ip, #216 ;@ 0xd8
+ ldr r3, _038049F4 ;@ =0x040001C2
+ strh ip, [r3]
+ ldr ip, _038049F0 ;@ =0x040001C0
+_03804984:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804984
+ and r3, r2, #255 ;@ 0xff
+ ldr r2, _038049F4 ;@ =0x040001C2
+ strh r3, [r2]
+ ldr r3, _038049F0 ;@ =0x040001C0
+_038049A0:
+ ldrh r2, [r3]
+ ands r2, r2, #128 ;@ 0x80
+ bne _038049A0
+ and r2, r1, #255 ;@ 0xff
+ ldr r1, _038049F4 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r2, _038049F0 ;@ =0x040001C0
+_038049BC:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _038049BC
+ mov r1, #33024 ;@ 0x8100
+ strh r1, [r2]
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _038049F4 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038049F0 ;@ =0x040001C0
+_038049E0:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038049E0
+ bx lr
+_038049F0: .word 0x040001C0
+_038049F4: .word 0x040001C2
+
+ arm_func_start NVRAM_PageErase
+NVRAM_PageErase: ;@ 0x038049F8
+ and r1, r0, #16711680 ;@ 0xff0000
+ mov r1, r1, lsr #16
+ mov r1, r1, lsl #16
+ mov r2, r1, lsr #16
+ and r1, r0, #65280 ;@ 0xff00
+ mov r1, r1, lsl #8
+ mov r1, r1, lsr #16
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ ldr ip, _03804AB4 ;@ =0x040001C0
+_03804A24:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804A24
+ mov r3, #35072 ;@ 0x8900
+ strh r3, [ip]
+ mov ip, #219 ;@ 0xdb
+ ldr r3, _03804AB8 ;@ =0x040001C2
+ strh ip, [r3]
+ ldr ip, _03804AB4 ;@ =0x040001C0
+_03804A48:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804A48
+ and r3, r2, #255 ;@ 0xff
+ ldr r2, _03804AB8 ;@ =0x040001C2
+ strh r3, [r2]
+ ldr r3, _03804AB4 ;@ =0x040001C0
+_03804A64:
+ ldrh r2, [r3]
+ ands r2, r2, #128 ;@ 0x80
+ bne _03804A64
+ and r2, r1, #255 ;@ 0xff
+ ldr r1, _03804AB8 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r2, _03804AB4 ;@ =0x040001C0
+_03804A80:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804A80
+ mov r1, #33024 ;@ 0x8100
+ strh r1, [r2]
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _03804AB8 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03804AB4 ;@ =0x040001C0
+_03804AA4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804AA4
+ bx lr
+_03804AB4: .word 0x040001C0
+_03804AB8: .word 0x040001C2
+
+ arm_func_start NVRAM_PageProgram
+NVRAM_PageProgram: ;@ 0x03804ABC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ cmp r1, #1
+ bcc _03804BD4
+ add r3, r0, r1
+ sub r3, r3, #1
+ mov r3, r3, lsr #8
+ cmp r3, r0, lsr #8
+ andhi r1, r0, #255 ;@ 0xff
+ rsbhi r1, r1, #256 ;@ 0x100
+ movhi r1, r1, lsl #16
+ movhi r1, r1, lsr #16
+ and r3, r0, #16711680 ;@ 0xff0000
+ mov r3, r3, lsr #16
+ strh r3, [sp]
+ and r3, r0, #65280 ;@ 0xff00
+ mov r3, r3, lsr #8
+ strh r3, [sp, #2]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [sp, #4]
+ ldr r3, _03804BE0 ;@ =0x040001C0
+_03804B10:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804B10
+ mov r0, #35072 ;@ 0x8900
+ strh r0, [r3]
+ mov r0, #2
+ ldr lr, _03804BE4 ;@ =0x040001C2
+ strh r0, [lr]
+ mov r4, #0
+ add r3, sp, #0
+ ldr ip, _03804BE0 ;@ =0x040001C0
+_03804B3C:
+ ldrh r0, [ip]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804B3C
+ mov r0, r4, lsl #1
+ ldrh r0, [r3, r0]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [lr]
+ add r4, r4, #1
+ cmp r4, #3
+ blt _03804B3C
+ mov ip, #0
+ sub lr, r1, #1
+ ldr r3, _03804BE0 ;@ =0x040001C0
+ ldr r0, _03804BE4 ;@ =0x040001C2
+ b _03804B94
+_03804B78:
+ ldrh r1, [r3]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804B78
+ ldrb r1, [r2, ip]
+ and r1, r1, #255 ;@ 0xff
+ strh r1, [r0]
+ add ip, ip, #1
+_03804B94:
+ cmp ip, lr
+ blt _03804B78
+ ldr r1, _03804BE0 ;@ =0x040001C0
+_03804BA0:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804BA0
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ ldrb r0, [r2, ip]
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _03804BE4 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03804BE0 ;@ =0x040001C0
+_03804BC8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804BC8
+_03804BD4:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03804BE0: .word 0x040001C0
+_03804BE4: .word 0x040001C2
+
+ arm_func_start NVRAM_PageWrite
+NVRAM_PageWrite: ;@ 0x03804BE8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ cmp r1, #1
+ bcc _03804D00
+ add r3, r0, r1
+ sub r3, r3, #1
+ mov r3, r3, lsr #8
+ cmp r3, r0, lsr #8
+ andhi r1, r0, #255 ;@ 0xff
+ rsbhi r1, r1, #256 ;@ 0x100
+ movhi r1, r1, lsl #16
+ movhi r1, r1, lsr #16
+ and r3, r0, #16711680 ;@ 0xff0000
+ mov r3, r3, lsr #16
+ strh r3, [sp]
+ and r3, r0, #65280 ;@ 0xff00
+ mov r3, r3, lsr #8
+ strh r3, [sp, #2]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [sp, #4]
+ ldr r3, _03804D0C ;@ =0x040001C0
+_03804C3C:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804C3C
+ mov r0, #35072 ;@ 0x8900
+ strh r0, [r3]
+ mov r0, #10
+ ldr lr, _03804D10 ;@ =0x040001C2
+ strh r0, [lr]
+ mov r4, #0
+ add r3, sp, #0
+ ldr ip, _03804D0C ;@ =0x040001C0
+_03804C68:
+ ldrh r0, [ip]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804C68
+ mov r0, r4, lsl #1
+ ldrh r0, [r3, r0]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [lr]
+ add r4, r4, #1
+ cmp r4, #3
+ blt _03804C68
+ mov ip, #0
+ sub lr, r1, #1
+ ldr r3, _03804D0C ;@ =0x040001C0
+ ldr r0, _03804D10 ;@ =0x040001C2
+ b _03804CC0
+_03804CA4:
+ ldrh r1, [r3]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804CA4
+ ldrb r1, [r2, ip]
+ and r1, r1, #255 ;@ 0xff
+ strh r1, [r0]
+ add ip, ip, #1
+_03804CC0:
+ cmp ip, lr
+ blt _03804CA4
+ ldr r1, _03804D0C ;@ =0x040001C0
+_03804CCC:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804CCC
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ ldrb r0, [r2, ip]
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _03804D10 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03804D0C ;@ =0x040001C0
+_03804CF4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804CF4
+_03804D00:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03804D0C: .word 0x040001C0
+_03804D10: .word 0x040001C2
+
+ arm_func_start NVRAM_ReadDataBytesAtHigherSpeed
+NVRAM_ReadDataBytesAtHigherSpeed: ;@ 0x03804D14
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ cmp r1, #1
+ bcc _03804E3C
+ and r3, r0, #16711680 ;@ 0xff0000
+ mov r3, r3, lsr #16
+ strh r3, [sp]
+ and r3, r0, #65280 ;@ 0xff00
+ mov r3, r3, lsr #8
+ strh r3, [sp, #2]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [sp, #4]
+ ldr r3, _03804E48 ;@ =0x040001C0
+_03804D48:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804D48
+ mov r0, #35072 ;@ 0x8900
+ strh r0, [r3]
+ mov r0, #11
+ ldr ip, _03804E4C ;@ =0x040001C2
+ strh r0, [ip]
+ mov lr, #0
+ add r3, sp, #0
+ ldr r4, _03804E48 ;@ =0x040001C0
+_03804D74:
+ ldrh r0, [r4]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804D74
+ mov r0, lr, lsl #1
+ ldrh r0, [r3, r0]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [ip]
+ add lr, lr, #1
+ cmp lr, #3
+ blt _03804D74
+ ldr r3, _03804E48 ;@ =0x040001C0
+_03804DA0:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804DA0
+ mov r3, #0
+ ldr r0, _03804E4C ;@ =0x040001C2
+ strh r3, [r0]
+ ldr r3, _03804E48 ;@ =0x040001C0
+_03804DBC:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804DBC
+ mov r0, #0
+ ldr ip, _03804E48 ;@ =0x040001C0
+ mov r4, r0
+ ldr lr, _03804E4C ;@ =0x040001C2
+ sub r1, r1, #1
+ b _03804E00
+_03804DE0:
+ strh r4, [lr]
+_03804DE4:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804DE4
+ ldrh r3, [lr]
+ and r3, r3, #255 ;@ 0xff
+ strb r3, [r2, r0]
+ add r0, r0, #1
+_03804E00:
+ cmp r0, r1
+ bcc _03804DE0
+ mov r1, #33024 ;@ 0x8100
+ ldr ip, _03804E48 ;@ =0x040001C0
+ strh r1, [ip]
+ mov r3, #0
+ ldr r1, _03804E4C ;@ =0x040001C2
+ strh r3, [r1]
+_03804E20:
+ ldrh r1, [ip]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804E20
+ ldr r1, _03804E4C ;@ =0x040001C2
+ ldrh r1, [r1]
+ and r1, r1, #255 ;@ 0xff
+ strb r1, [r2, r0]
+_03804E3C:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03804E48: .word 0x040001C0
+_03804E4C: .word 0x040001C2
+
+ arm_func_start NVRAM_ReadDataBytes
+NVRAM_ReadDataBytes: ;@ 0x03804E50
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ cmp r1, #1
+ bcc _03804F5C
+ and r3, r0, #16711680 ;@ 0xff0000
+ mov r3, r3, lsr #16
+ strh r3, [sp]
+ and r3, r0, #65280 ;@ 0xff00
+ mov r3, r3, lsr #8
+ strh r3, [sp, #2]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [sp, #4]
+ ldr r3, _03804F68 ;@ =0x040001C0
+_03804E84:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804E84
+ mov r0, #35072 ;@ 0x8900
+ strh r0, [r3]
+ mov r0, #3
+ ldr ip, _03804F6C ;@ =0x040001C2
+ strh r0, [ip]
+ mov lr, #0
+ add r3, sp, #0
+ ldr r4, _03804F68 ;@ =0x040001C0
+_03804EB0:
+ ldrh r0, [r4]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804EB0
+ mov r0, lr, lsl #1
+ ldrh r0, [r3, r0]
+ and r0, r0, #255 ;@ 0xff
+ strh r0, [ip]
+ add lr, lr, #1
+ cmp lr, #3
+ blt _03804EB0
+ ldr r3, _03804F68 ;@ =0x040001C0
+_03804EDC:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804EDC
+ mov r0, #0
+ ldr ip, _03804F68 ;@ =0x040001C0
+ mov r4, r0
+ ldr lr, _03804F6C ;@ =0x040001C2
+ sub r1, r1, #1
+ b _03804F20
+_03804F00:
+ strh r4, [lr]
+_03804F04:
+ ldrh r3, [ip]
+ ands r3, r3, #128 ;@ 0x80
+ bne _03804F04
+ ldrh r3, [lr]
+ and r3, r3, #255 ;@ 0xff
+ strb r3, [r2, r0]
+ add r0, r0, #1
+_03804F20:
+ cmp r0, r1
+ bcc _03804F00
+ mov r1, #33024 ;@ 0x8100
+ ldr ip, _03804F68 ;@ =0x040001C0
+ strh r1, [ip]
+ mov r3, #0
+ ldr r1, _03804F6C ;@ =0x040001C2
+ strh r3, [r1]
+_03804F40:
+ ldrh r1, [ip]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804F40
+ ldr r1, _03804F6C ;@ =0x040001C2
+ ldrh r1, [r1]
+ and r1, r1, #255 ;@ 0xff
+ strb r1, [r2, r0]
+_03804F5C:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03804F68: .word 0x040001C0
+_03804F6C: .word 0x040001C2
+
+ arm_func_start NVRAM_ReadStatusRegister
+NVRAM_ReadStatusRegister: ;@ 0x03804F70
+ ldr r2, _03804FDC ;@ =0x040001C0
+_03804F74:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804F74
+ mov r1, #35072 ;@ 0x8900
+ strh r1, [r2]
+ mov r2, #5
+ ldr r1, _03804FE0 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r2, _03804FDC ;@ =0x040001C0
+_03804F98:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804F98
+ mov r1, #33024 ;@ 0x8100
+ strh r1, [r2]
+ mov r2, #0
+ ldr r1, _03804FE0 ;@ =0x040001C2
+ strh r2, [r1]
+ ldr r2, _03804FDC ;@ =0x040001C0
+_03804FBC:
+ ldrh r1, [r2]
+ ands r1, r1, #128 ;@ 0x80
+ bne _03804FBC
+ ldr r1, _03804FE0 ;@ =0x040001C2
+ ldrh r1, [r1]
+ and r1, r1, #255 ;@ 0xff
+ strb r1, [r0]
+ bx lr
+_03804FDC: .word 0x040001C0
+_03804FE0: .word 0x040001C2
+
+ arm_func_start NVRAM_WriteDisable
+NVRAM_WriteDisable: ;@ 0x03804FE4
+ ldr r1, _0380501C ;@ =0x040001C0
+_03804FE8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03804FE8
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #4
+ ldr r0, _03805020 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _0380501C ;@ =0x040001C0
+_0380500C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380500C
+ bx lr
+_0380501C: .word 0x040001C0
+_03805020: .word 0x040001C2
+
+ arm_func_start NVRAM_WriteEnable
+NVRAM_WriteEnable: ;@ 0x03805024
+ ldr r1, _0380505C ;@ =0x040001C0
+_03805028:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03805028
+ mov r0, #33024 ;@ 0x8100
+ strh r0, [r1]
+ mov r1, #6
+ ldr r0, _03805060 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _0380505C ;@ =0x040001C0
+_0380504C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380504C
+ bx lr
+_0380505C: .word 0x040001C0
+_03805060: .word 0x040001C2
diff --git a/arm7/asm/RTC_external.s b/arm7/asm/RTC_external.s
new file mode 100644
index 00000000..2b45b9e3
--- /dev/null
+++ b/arm7/asm/RTC_external.s
@@ -0,0 +1,75 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _0380A210
+_0380A210: ;0x0380A210
+ .space 0x0380A3F0 - 0x0380A210
+
+ .section .text
+
+ arm_func_start RTC_Init
+RTC_Init: ;@ 0x03805954
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ ldr r0, _03805A28 ;@ =_0380A038
+ ldrh r1, [r0]
+ cmp r1, #0
+ bne _03805A1C
+ mov r1, #1
+ strh r1, [r0]
+ ldr r0, _03805A2C ;@ =_0380A03C
+ str r1, [r0, #468] ;@ 0x1d4
+ bl FUN_03805158
+ mov r1, #0
+ ldr r0, _03805A2C ;@ =_0380A03C
+ str r1, [r0, #468] ;@ 0x1d4
+ bl PXI_Init
+ mov r0, #5
+ ldr r1, _03805A30 ;@ =FUN_03805818
+ bl PXI_SetFifoRecvCallback
+ ldr r0, _03805A2C ;@ =_0380A03C
+ ldr r1, _03805A34 ;@ =_0380A05C
+ mov r2, #4
+ bl OS_InitMessageQueue
+ mov r0, #256 ;@ 0x100
+ str r0, [sp]
+ str r4, [sp, #4]
+ ldr r0, _03805A38 ;@ =_0380A06C
+ ldr r1, _03805A3C ;@ =FUN_0380531C
+ mov r2, #0
+ ldr r3, _03805A40 ;@ =_0380A210
+ bl OS_CreateThread
+ ldr r0, _03805A38 ;@ =_0380A06C
+ bl OS_WakeupThreadDirect
+ mov r0, #32768 ;@ 0x8000
+ bl EXIi_SelectRcnt
+ mov r0, #64 ;@ 0x40
+ mov r1, #0
+ bl EXIi_SetBitRcnt0L
+ mov r0, #256 ;@ 0x100
+ mov r1, r0
+ bl EXIi_SetBitRcnt0L
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #128 ;@ 0x80
+ ldr r1, _03805A44 ;@ =FUN_0380528C
+ bl OS_SetIrqFunction
+ mov r0, #128 ;@ 0x80
+ bl OS_EnableIrqMask
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_03805A1C:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03805A28: .word _0380A038
+_03805A2C: .word _0380A03C
+_03805A30: .word FUN_03805818
+_03805A34: .word _0380A05C
+_03805A38: .word _0380A06C
+_03805A3C: .word FUN_0380531C
+_03805A40: .word _0380A210
+_03805A44: .word FUN_0380528C
diff --git a/arm7/asm/RTC_unk_03805064.s b/arm7/asm/RTC_unk_03805064.s
new file mode 100644
index 00000000..095d0149
--- /dev/null
+++ b/arm7/asm/RTC_unk_03805064.s
@@ -0,0 +1,665 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _0380A038
+_0380A038: ;0x0380A038
+ .space 0x0380A03C - 0x0380A038
+
+ .global _0380A03C
+_0380A03C: ;0x0380A03C
+ .space 0x0380A05C - 0x0380A03C
+
+ .global _0380A05C
+_0380A05C: ;0x0380A05C
+ .space 0x0380A06C - 0x0380A05C
+
+ .global _0380A06C
+_0380A06C: ;0x0380A06C
+ .space 0x0380A13C - 0x0380A06C
+
+ .global _0380A13C
+_0380A13C: ;0x0380A13C
+ .space 0x0380A210 - 0x0380A13C
+
+ .section .text
+
+ arm_func_start FUN_03805064
+FUN_03805064: ;@ 0x03805064
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ mov lr, #0
+ mov r2, lr
+ b _03805094
+_03805078:
+ mov r1, r2, lsl #2
+ mov r1, r0, lsr r1
+ and r1, r1, #15
+ cmp r1, #10
+ movcs r0, #0
+ bcs _038050D0
+ add r2, r2, #1
+_03805094:
+ cmp r2, #8
+ blt _03805078
+ mov r3, #0
+ mov ip, #1
+ mov r2, #10
+_038050A8:
+ mov r1, r3, lsl #2
+ mov r1, r0, lsr r1
+ and r1, r1, #15
+ mla lr, ip, r1, lr
+ add r3, r3, #1
+ mul r1, ip, r2
+ mov ip, r1
+ cmp r3, #8
+ blt _038050A8
+ mov r0, lr
+_038050D0:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_038050DC
+FUN_038050DC: ;@ 0x038050DC
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ sub r0, r7, #1
+ cmp r0, #1
+ subls r8, r8, #1
+ addls r7, r7, #12
+ mov r0, r8
+ mov r1, #400 ;@ 0x190
+ bl _u32_div_f
+ mov r5, r0
+ mov r0, r8
+ mov r1, #100 ;@ 0x64
+ bl _u32_div_f
+ mov r4, r0
+ mov r0, #13
+ mul r0, r7, r0
+ add r0, r0, #8
+ mov r1, #5
+ bl _u32_div_f
+ add r1, r8, r8, lsr #2
+ sub r1, r1, r4
+ add r1, r5, r1
+ add r0, r1, r0
+ add r0, r6, r0
+ mov r1, #7
+ bl _u32_div_f
+ mov r0, r1
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+
+ arm_func_start FUN_03805158
+FUN_03805158: ;@ 0x03805158
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl RTC_ReadStatus1
+ add r0, sp, #2
+ bl RTC_ReadStatus2
+ ldrh r0, [sp]
+ mov r1, r0, lsl #24
+ movs r1, r1, lsr #31
+ bne _0380519C
+ mov r0, r0, lsl #25
+ movs r0, r0, lsr #31
+ bne _0380519C
+ ldrh r0, [sp, #2]
+ mov r0, r0, lsl #24
+ movs r0, r0, lsr #31
+ beq _038051B4
+_0380519C:
+ ldrh r0, [sp]
+ bic r0, r0, #1
+ orr r0, r0, #1
+ strh r0, [sp]
+ add r0, sp, #0
+ bl RTC_WriteStatus1
+_038051B4:
+ ldrh r0, [sp]
+ mov r1, r0, lsl #27
+ movs r1, r1, lsr #31
+ bne _038051D0
+ mov r0, r0, lsl #26
+ movs r0, r0, lsr #31
+ beq _038051F0
+_038051D0:
+ ldrh r0, [sp, #2]
+ bic r0, r0, #15
+ strh r0, [sp, #2]
+ ldrh r0, [sp, #2]
+ bic r0, r0, #64 ;@ 0x40
+ strh r0, [sp, #2]
+ add r0, sp, #2
+ bl RTC_WriteStatus2
+_038051F0:
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ bl RTC_ReadDateTime
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ ldrb r0, [r0]
+ bl FUN_03805064
+ mov r4, r0
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ ldr r0, [r0]
+ mov r0, r0, lsl #19
+ mov r0, r0, lsr #27
+ bl FUN_03805064
+ mov r5, r0
+ ldr r0, _03805288 ;@ =0x027FFDE8
+ ldr r0, [r0]
+ mov r0, r0, lsl #10
+ mov r0, r0, lsr #26
+ bl FUN_03805064
+ mov r2, r0
+ add r0, r4, #2000 ;@ 0x7d0
+ mov r1, r5
+ bl FUN_038050DC
+ ldr r2, _03805288 ;@ =0x027FFDE8
+ ldr r1, [r2]
+ mov r3, r1, lsl #5
+ mov r3, r3, lsr #29
+ cmp r3, r0
+ beq _03805274
+ bic r1, r1, #117440512 ;@ 0x7000000
+ and r0, r0, #7
+ orr r0, r1, r0, lsl #24
+ str r0, [r2]
+ mov r0, r2
+ bl RTC_WriteDateTime
+_03805274:
+ mov r0, #1
+ bl RTC_SetHourFormat
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_03805288: .word 0x027FFDE8
+
+ arm_func_start FUN_0380528C
+FUN_0380528C: ;@ 0x0380528C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ add r0, sp, #0
+ bl RTC_ReadStatus1
+ ldrh r0, [sp]
+ mov r1, r0, lsl #27
+ movs r1, r1, lsr #31
+ bne _038052B8
+ mov r0, r0, lsl #26
+ movs r0, r0, lsr #31
+ beq _03805310
+_038052B8:
+ add r0, sp, #2
+ bl RTC_ReadStatus2
+ mov r4, #0
+ ldrh r0, [sp]
+ mov r0, r0, lsl #27
+ movs r0, r0, lsr #31
+ orrne r4, r4, #1
+ ldrneh r0, [sp, #2]
+ bicne r0, r0, #15
+ strneh r0, [sp, #2]
+ ldrh r0, [sp]
+ mov r0, r0, lsl #26
+ movs r0, r0, lsr #31
+ orrne r4, r4, #2
+ ldrneh r0, [sp, #2]
+ bicne r0, r0, #64 ;@ 0x40
+ strneh r0, [sp, #2]
+ add r0, sp, #2
+ bl RTC_WriteStatus2
+ mov r0, #48 ;@ 0x30
+ mov r1, r4
+ bl FUN_038057D8
+_03805310:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start FUN_0380531C
+FUN_0380531C: ;@ 0x0380531C
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ sub sp, sp, #76 ;@ 0x4c
+ ldr r6, _038057CC ;@ =0x027FFDE8
+ add r5, r6, #4
+ mov r7, #0
+ ldr r9, _038057D0 ;@ =_0380A03C
+ mov r8, #1
+ mov r0, #16
+ str r0, [sp]
+ mov r0, #17
+ str r0, [sp, #4]
+ mov r0, #18
+ str r0, [sp, #8]
+ mov sl, #19
+ mov r4, #2
+ mov fp, #20
+ mov r0, #21
+ str r0, [sp, #12]
+ mov r0, #22
+ str r0, [sp, #16]
+ mov r0, #23
+ str r0, [sp, #20]
+ mov r0, #24
+ str r0, [sp, #24]
+ mov r0, #25
+ str r0, [sp, #28]
+ mov r0, #32
+ str r0, [sp, #32]
+ mov r0, #33 ;@ 0x21
+ str r0, [sp, #36] ;@ 0x24
+ mov r0, #34 ;@ 0x22
+ str r0, [sp, #40] ;@ 0x28
+ mov r0, #35 ;@ 0x23
+ str r0, [sp, #44] ;@ 0x2c
+ mov r0, #36 ;@ 0x24
+ str r0, [sp, #48] ;@ 0x30
+ mov r0, #37 ;@ 0x25
+ str r0, [sp, #52] ;@ 0x34
+ mov r0, #38 ;@ 0x26
+ str r0, [sp, #56] ;@ 0x38
+ mov r0, #39 ;@ 0x27
+ str r0, [sp, #60] ;@ 0x3c
+ mov r0, #40 ;@ 0x28
+ str r0, [sp, #64] ;@ 0x40
+ mov r0, #41 ;@ 0x29
+ str r0, [sp, #68] ;@ 0x44
+_038053D4:
+ mov r0, r9
+ add r1, sp, #72 ;@ 0x48
+ mov r2, r8
+ bl OS_ReceiveMessage
+ ldr r0, _038057D4 ;@ =_0380A13C
+ ldrh r0, [r0, #216] ;@ 0xd8
+ cmp r0, #41 ;@ 0x29
+ addls pc, pc, r0, lsl #2
+ b _038057BC
+ b _038054A0
+ b _038054B8
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038054DC
+ b _038054F8
+ b _03805514
+ b _03805530
+ b _03805568
+ b _038055A0
+ b _038055D8
+ b _038055F4
+ b _03805610
+ b _0380562C
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _038057BC
+ b _03805648
+ b _03805664
+ b _03805688
+ b _038056A4
+ b _038056DC
+ b _03805714
+ b _0380574C
+ b _03805768
+ b _03805784
+ b _038057A0
+_038054A0:
+ bl RTC_Reset
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, r7
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038054B8:
+ ldrh r0, [r6]
+ mov r0, r0, lsl #30
+ mov r0, r0, lsr #31
+ bl RTC_SetHourFormat
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, r8
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038054DC:
+ mov r0, r6
+ bl RTC_ReadDateTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038054F8:
+ mov r0, r6
+ bl RTC_ReadDate
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #4]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805514:
+ add r0, r6, #4
+ bl RTC_ReadTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #8]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805530:
+ mov r0, r5
+ bl RTC_ReadPulse
+ cmp r0, #0
+ bne _03805554
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, sl
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_03805554:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, sl
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805568:
+ mov r0, r5
+ bl RTC_ReadAlarm1
+ cmp r0, #0
+ bne _0380558C
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, fp
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_0380558C:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r0, fp
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038055A0:
+ mov r0, r5
+ bl RTC_ReadAlarm2
+ cmp r0, #0
+ bne _038055C4
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #12]
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_038055C4:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #12]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038055D8:
+ mov r0, r6
+ bl RTC_ReadStatus1
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #16]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038055F4:
+ add r0, r6, #2
+ bl RTC_ReadStatus2
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #20]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805610:
+ add r0, r6, #4
+ bl RTC_ReadAdjust
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #24]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_0380562C:
+ add r0, r6, #4
+ bl RTC_ReadFree
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #28]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805648:
+ mov r0, r6
+ bl RTC_WriteDateTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #32]
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805664:
+ add r0, r6, #4
+ bl RTC_ReadTime
+ mov r0, r6
+ bl RTC_WriteDateTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #36] ;@ 0x24
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805688:
+ add r0, r6, #4
+ bl RTC_WriteTime
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #40] ;@ 0x28
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038056A4:
+ mov r0, r5
+ bl RTC_WritePulse
+ cmp r0, #0
+ bne _038056C8
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #44] ;@ 0x2c
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_038056C8:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #44] ;@ 0x2c
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038056DC:
+ mov r0, r5
+ bl RTC_WriteAlarm1
+ cmp r0, #0
+ bne _03805700
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #48] ;@ 0x30
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_03805700:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #48] ;@ 0x30
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805714:
+ mov r0, r5
+ bl RTC_WriteAlarm2
+ cmp r0, #0
+ bne _03805738
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #52] ;@ 0x34
+ mov r1, r4
+ bl FUN_038057D8
+ b _038053D4
+_03805738:
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #52] ;@ 0x34
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_0380574C:
+ mov r0, r6
+ bl RTC_WriteStatus1
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #56] ;@ 0x38
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805768:
+ add r0, r6, #2
+ bl RTC_WriteStatus2
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #60] ;@ 0x3c
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_03805784:
+ add r0, r6, #4
+ bl RTC_WriteAdjust
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #64] ;@ 0x40
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038057A0:
+ add r0, r6, #4
+ bl RTC_WriteFree
+ str r7, [r9, #468] ;@ 0x1d4
+ ldr r0, [sp, #68] ;@ 0x44
+ mov r1, r7
+ bl FUN_038057D8
+ b _038053D4
+_038057BC:
+ str r7, [r9, #468] ;@ 0x1d4
+ mov r1, r8
+ bl FUN_038057D8
+ b _038053D4
+_038057CC: .word 0x027FFDE8
+_038057D0: .word _0380A03C
+_038057D4: .word _0380A13C
+
+ arm_func_start FUN_038057D8
+FUN_038057D8: ;@ 0x038057D8
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r0, r0, lsl #8
+ and r0, r0, #32512 ;@ 0x7f00
+ orr r2, r0, #32768 ;@ 0x8000
+ and r0, r1, #255 ;@ 0xff
+ orr r6, r2, r0
+ mov r5, #5
+ mov r4, #0
+_038057F8:
+ mov r0, r5
+ mov r1, r6
+ mov r2, r4
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ blt _038057F8
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+
+ arm_func_start FUN_03805818
+FUN_03805818: ;@ 0x03805818
+ stmdb sp!, {r4, lr}
+ cmp r2, #0
+ bne _03805944
+ and r0, r1, #32512 ;@ 0x7f00
+ mov r0, r0, lsl #8
+ mov r4, r0, lsr #16
+ cmp r4, #41 ;@ 0x29
+ addls pc, pc, r4, lsl #2
+ b _03805938
+ b _038058E4
+ b _038058E4
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _03805938
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+ b _038058E4
+_038058E4:
+ ldr r0, _0380594C ;@ =_0380A03C
+ ldr r1, [r0, #468] ;@ 0x1d4
+ cmp r1, #0
+ beq _03805904
+ mov r0, r4
+ mov r1, #3
+ bl FUN_038057D8
+ b _03805944
+_03805904:
+ mov r1, #1
+ str r1, [r0, #468] ;@ 0x1d4
+ ldr r1, _03805950 ;@ =_0380A13C
+ strh r4, [r1, #216] ;@ 0xd8
+ mov r1, #0
+ mov r2, r1
+ bl OS_SendMessage
+ cmp r0, #0
+ bne _03805944
+ mov r0, r4
+ mov r1, #4
+ bl FUN_038057D8
+ b _03805944
+_03805938:
+ mov r0, r4
+ mov r1, #1
+ bl FUN_038057D8
+_03805944:
+ ldmia sp!, {r4, lr}
+ bx lr
+_0380594C: .word _0380A03C
+_03805950: .word _0380A13C
diff --git a/arm7/asm/wram2.s b/arm7/asm/wram2.s
index 68b31543..1ad3f830 100644
--- a/arm7/asm/wram2.s
+++ b/arm7/asm/wram2.s
@@ -3,1753 +3,6 @@
.section .text
- arm_func_start FUN_0380428C
-FUN_0380428C: ;@ 0x0380428C
- stmfd sp!, {lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl NVRAM_ReadStatusRegister
- ldrh r1, [sp]
- ands r0, r1, #1
- movne r0, #0
- bne _038042B8
- ands r0, r1, #2
- movne r0, #1
- moveq r0, #0
-_038042B8:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038042C4
-FUN_038042C4: ;@ 0x038042C4
- stmfd sp!, {lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl NVRAM_ReadStatusRegister
- ldrh r0, [sp]
- ands r0, r0, #1
- moveq r0, #1
- movne r0, #0
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start NVRAM_ExecuteProcess
-NVRAM_ExecuteProcess: ;@ 0x038042F0
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- bl OS_DisableInterrupts
- mov r5, r0
- mov r0, #1
- bl SPIi_CheckException
- cmp r0, #0
- bne _03804334
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _038045C0
-_03804334:
- mov r0, #1
- bl SPIi_GetException
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r0, [r4, #4]
- sub r0, r0, #32
- cmp r0, #13
- addls pc, pc, r0, lsl #2
- b _03804584
- b _03804390
- b _03804398
- b _038043A0
- b _038043AC
- b _038043EC
- b _0380442C
- b _03804474
- b _038044BC
- b _038044F4
- b _0380452C
- b _03804534
- b _0380453C
- b _03804570
- b _0380457C
-_03804390:
- bl NVRAM_WriteEnable
- b _038045A4
-_03804398:
- bl NVRAM_WriteDisable
- b _038045A4
-_038043A0:
- ldr r0, [r4, #16]
- bl NVRAM_ReadStatusRegister
- b _038045A4
-_038043AC:
- bl FUN_038042C4
- cmp r0, #0
- bne _038043D8
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038043D8:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- ldr r2, [r4, #16]
- bl NVRAM_ReadDataBytes
- b _038045A4
-_038043EC:
- bl FUN_038042C4
- cmp r0, #0
- bne _03804418
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804418:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- ldr r2, [r4, #16]
- bl NVRAM_ReadDataBytesAtHigherSpeed
- b _038045A4
-_0380442C:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804458
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804458:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- ldr r2, [r4, #16]
- bl NVRAM_PageWrite
- b _038045A4
-_03804474:
- bl FUN_0380428C
- cmp r0, #0
- bne _038044A0
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038044A0:
- ldr r0, [r4, #8]
- ldr r1, [r4, #12]
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- ldr r2, [r4, #16]
- bl NVRAM_PageProgram
- b _038045A4
-_038044BC:
- bl FUN_0380428C
- cmp r0, #0
- bne _038044E8
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_038044E8:
- ldr r0, [r4, #8]
- bl NVRAM_PageErase
- b _038045A4
-_038044F4:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804520
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804520:
- ldr r0, [r4, #8]
- bl NVRAM_SectorErase
- b _038045A4
-_0380452C:
- bl NVRAM_DeepPowerDown
- b _038045A4
-_03804534:
- bl NVRAM_ReleaseFromDeepPowerDown
- b _038045A4
-_0380453C:
- bl FUN_0380428C
- cmp r0, #0
- bne _03804568
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
- b _038045C0
-_03804568:
- bl NVRAM_ChipErase
- b _038045A4
-_03804570:
- ldr r0, [r4, #16]
- bl NVRAM_ReadSiliconId
- b _038045A4
-_0380457C:
- bl NVRAM_SoftwareReset
- b _038045A4
-_03804584:
- mov r0, #1
- bl SPIi_ReleaseException
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #1
- bl SPIi_ReturnResult
- b _038045C0
-_038045A4:
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r0, #1
- bl SPIi_ReleaseException
-_038045C0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-
- arm_func_start NVRAM_AnalyzeCommand
-NVRAM_AnalyzeCommand: ;@ 0x038045CC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #12
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _038045FC
- mov r5, #0
- mov lr, r5
- ldr r1, _0380476C ;@ =_0380A018
-_038045E8:
- mov r4, r5, lsl #1
- strh lr, [r1, r4]
- add r5, r5, #1
- cmp r5, #16
- blt _038045E8
-_038045FC:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r4, r1, lsl #1
- ldr r1, _0380476C ;@ =_0380A018
- strh r0, [r1, r4]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03804760
- ldrh r0, [r1]
- and r4, r0, #65280 ;@ 0xff00
- mov r4, r4, lsl #8
- mov r4, r4, lsr #16
- sub lr, r4, #34 ;@ 0x22
- cmp lr, #10
- addls pc, pc, lr, lsl #2
- b _03804734
- b _03804664
- b _038046A0
- b _038046A0
- b _038046E8
- b _038046E8
- b _03804728
- b _03804728
- b _03804734
- b _03804734
- b _03804734
- b _03804664
-_03804664:
- ldrh ip, [r1, #4]
- and lr, ip, #65280 ;@ 0xff00
- and r0, r0, #255 ;@ 0xff
- mov ip, r0, lsl #24
- ldrh r0, [r1, #2]
- orr r0, ip, r0, lsl #8
- orr ip, r0, lr, lsr #8
- cmp ip, #33554432 ;@ 0x2000000
- bcc _03804690
- cmp ip, #41943040 ;@ 0x2800000
- bcc _03804734
-_03804690:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_038046A0:
- ldrh r3, [r1, #8]
- ldrh r2, [r1, #10]
- orr ip, r2, r3, lsl #16
- cmp ip, #33554432 ;@ 0x2000000
- bcc _038046BC
- cmp ip, #41943040 ;@ 0x2800000
- bcc _038046CC
-_038046BC:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_038046CC:
- and r2, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r2, lsl #16
- ldrh r2, [r1, #4]
- ldrh r0, [r1, #6]
- orr r2, r0, r2, lsl #16
- b _03804734
-_038046E8:
- ldrh r3, [r1, #6]
- ldrh r2, [r1, #8]
- orr ip, r2, r3, lsl #16
- cmp ip, #33554432 ;@ 0x2000000
- bcc _03804704
- cmp ip, #41943040 ;@ 0x2800000
- bcc _03804714
-_03804704:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03804760
-_03804714:
- and r2, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r2, lsl #16
- ldrh r2, [r1, #4]
- b _03804734
-_03804728:
- and r3, r0, #255 ;@ 0xff
- ldrh r0, [r1, #2]
- orr r3, r0, r3, lsl #16
-_03804734:
- str r2, [sp]
- str ip, [sp, #4]
- mov r0, #1
- mov r1, r4
- mov r2, #3
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03804760
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
-_03804760:
- add sp, sp, #12
- ldmia sp!, {r4, r5, lr}
- bx lr
-_0380476C: .word _0380A018
-
- arm_func_start NVRAM_Init
-NVRAM_Init: ;@ 0x03804770
- mov r3, #0
- mov r2, r3
- ldr r0, _03804794 ;@ =_0380A018
-_0380477C:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _0380477C
- bx lr
-_03804794: .word _0380A018
-
- arm_func_start NVRAM_SoftwareReset
-NVRAM_SoftwareReset: ;@ 0x03804798
- ldr r1, _038047D0 ;@ =0x040001C0
-_0380479C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380479C
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #255 ;@ 0xff
- ldr r0, _038047D4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038047D0 ;@ =0x040001C0
-_038047C0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038047C0
- bx lr
-_038047D0: .word 0x040001C0
-_038047D4: .word 0x040001C2
-
- arm_func_start NVRAM_ReadSiliconId
-NVRAM_ReadSiliconId: ;@ 0x038047D8
- ldr r2, _0380486C ;@ =0x040001C0
-_038047DC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _038047DC
- mov r1, #35072 ;@ 0x8900
- strh r1, [r2]
- mov r2, #159 ;@ 0x9f
- ldr r1, _03804870 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _0380486C ;@ =0x040001C0
-_03804800:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804800
- mov r2, #0
- ldr r1, _03804870 ;@ =0x040001C2
- strh r2, [r1]
- ldr r3, _0380486C ;@ =0x040001C0
-_0380481C:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _0380481C
- ldr r2, _03804870 ;@ =0x040001C2
- ldrh r1, [r2]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0]
- mov r1, #33024 ;@ 0x8100
- strh r1, [r3]
- mov r1, #0
- strh r1, [r2]
- ldr r2, _0380486C ;@ =0x040001C0
-_0380484C:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _0380484C
- ldr r1, _03804870 ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0, #1]
- bx lr
-_0380486C: .word 0x040001C0
-_03804870: .word 0x040001C2
-
- arm_func_start NVRAM_ChipErase
-NVRAM_ChipErase: ;@ 0x03804874
- ldr r1, _038048AC ;@ =0x040001C0
-_03804878:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804878
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #199 ;@ 0xc7
- ldr r0, _038048B0 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038048AC ;@ =0x040001C0
-_0380489C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380489C
- bx lr
-_038048AC: .word 0x040001C0
-_038048B0: .word 0x040001C2
-
- arm_func_start NVRAM_ReleaseFromDeepPowerDown
-NVRAM_ReleaseFromDeepPowerDown: ;@ 0x038048B4
- ldr r1, _038048EC ;@ =0x040001C0
-_038048B8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048B8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #171 ;@ 0xab
- ldr r0, _038048F0 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038048EC ;@ =0x040001C0
-_038048DC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048DC
- bx lr
-_038048EC: .word 0x040001C0
-_038048F0: .word 0x040001C2
-
- arm_func_start NVRAM_DeepPowerDown
-NVRAM_DeepPowerDown: ;@ 0x038048F4
- ldr r1, _0380492C ;@ =0x040001C0
-_038048F8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038048F8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #185 ;@ 0xb9
- ldr r0, _03804930 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380492C ;@ =0x040001C0
-_0380491C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380491C
- bx lr
-_0380492C: .word 0x040001C0
-_03804930: .word 0x040001C2
-
- arm_func_start NVRAM_SectorErase
-NVRAM_SectorErase: ;@ 0x03804934
- and r1, r0, #16711680 ;@ 0xff0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #16
- mov r2, r1, lsr #16
- and r1, r0, #65280 ;@ 0xff00
- mov r1, r1, lsl #8
- mov r1, r1, lsr #16
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr ip, _038049F0 ;@ =0x040001C0
-_03804960:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804960
- mov r3, #35072 ;@ 0x8900
- strh r3, [ip]
- mov ip, #216 ;@ 0xd8
- ldr r3, _038049F4 ;@ =0x040001C2
- strh ip, [r3]
- ldr ip, _038049F0 ;@ =0x040001C0
-_03804984:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804984
- and r3, r2, #255 ;@ 0xff
- ldr r2, _038049F4 ;@ =0x040001C2
- strh r3, [r2]
- ldr r3, _038049F0 ;@ =0x040001C0
-_038049A0:
- ldrh r2, [r3]
- ands r2, r2, #128 ;@ 0x80
- bne _038049A0
- and r2, r1, #255 ;@ 0xff
- ldr r1, _038049F4 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _038049F0 ;@ =0x040001C0
-_038049BC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _038049BC
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _038049F4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038049F0 ;@ =0x040001C0
-_038049E0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038049E0
- bx lr
-_038049F0: .word 0x040001C0
-_038049F4: .word 0x040001C2
-
- arm_func_start NVRAM_PageErase
-NVRAM_PageErase: ;@ 0x038049F8
- and r1, r0, #16711680 ;@ 0xff0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #16
- mov r2, r1, lsr #16
- and r1, r0, #65280 ;@ 0xff00
- mov r1, r1, lsl #8
- mov r1, r1, lsr #16
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr ip, _03804AB4 ;@ =0x040001C0
-_03804A24:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804A24
- mov r3, #35072 ;@ 0x8900
- strh r3, [ip]
- mov ip, #219 ;@ 0xdb
- ldr r3, _03804AB8 ;@ =0x040001C2
- strh ip, [r3]
- ldr ip, _03804AB4 ;@ =0x040001C0
-_03804A48:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804A48
- and r3, r2, #255 ;@ 0xff
- ldr r2, _03804AB8 ;@ =0x040001C2
- strh r3, [r2]
- ldr r3, _03804AB4 ;@ =0x040001C0
-_03804A64:
- ldrh r2, [r3]
- ands r2, r2, #128 ;@ 0x80
- bne _03804A64
- and r2, r1, #255 ;@ 0xff
- ldr r1, _03804AB8 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804AB4 ;@ =0x040001C0
-_03804A80:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804A80
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804AB8 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804AB4 ;@ =0x040001C0
-_03804AA4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804AA4
- bx lr
-_03804AB4: .word 0x040001C0
-_03804AB8: .word 0x040001C2
-
- arm_func_start NVRAM_PageProgram
-NVRAM_PageProgram: ;@ 0x03804ABC
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804BD4
- add r3, r0, r1
- sub r3, r3, #1
- mov r3, r3, lsr #8
- cmp r3, r0, lsr #8
- andhi r1, r0, #255 ;@ 0xff
- rsbhi r1, r1, #256 ;@ 0x100
- movhi r1, r1, lsl #16
- movhi r1, r1, lsr #16
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804BE0 ;@ =0x040001C0
-_03804B10:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804B10
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #2
- ldr lr, _03804BE4 ;@ =0x040001C2
- strh r0, [lr]
- mov r4, #0
- add r3, sp, #0
- ldr ip, _03804BE0 ;@ =0x040001C0
-_03804B3C:
- ldrh r0, [ip]
- ands r0, r0, #128 ;@ 0x80
- bne _03804B3C
- mov r0, r4, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [lr]
- add r4, r4, #1
- cmp r4, #3
- blt _03804B3C
- mov ip, #0
- sub lr, r1, #1
- ldr r3, _03804BE0 ;@ =0x040001C0
- ldr r0, _03804BE4 ;@ =0x040001C2
- b _03804B94
-_03804B78:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _03804B78
- ldrb r1, [r2, ip]
- and r1, r1, #255 ;@ 0xff
- strh r1, [r0]
- add ip, ip, #1
-_03804B94:
- cmp ip, lr
- blt _03804B78
- ldr r1, _03804BE0 ;@ =0x040001C0
-_03804BA0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804BA0
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- ldrb r0, [r2, ip]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804BE4 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804BE0 ;@ =0x040001C0
-_03804BC8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804BC8
-_03804BD4:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804BE0: .word 0x040001C0
-_03804BE4: .word 0x040001C2
-
- arm_func_start NVRAM_PageWrite
-NVRAM_PageWrite: ;@ 0x03804BE8
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804D00
- add r3, r0, r1
- sub r3, r3, #1
- mov r3, r3, lsr #8
- cmp r3, r0, lsr #8
- andhi r1, r0, #255 ;@ 0xff
- rsbhi r1, r1, #256 ;@ 0x100
- movhi r1, r1, lsl #16
- movhi r1, r1, lsr #16
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804D0C ;@ =0x040001C0
-_03804C3C:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804C3C
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #10
- ldr lr, _03804D10 ;@ =0x040001C2
- strh r0, [lr]
- mov r4, #0
- add r3, sp, #0
- ldr ip, _03804D0C ;@ =0x040001C0
-_03804C68:
- ldrh r0, [ip]
- ands r0, r0, #128 ;@ 0x80
- bne _03804C68
- mov r0, r4, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [lr]
- add r4, r4, #1
- cmp r4, #3
- blt _03804C68
- mov ip, #0
- sub lr, r1, #1
- ldr r3, _03804D0C ;@ =0x040001C0
- ldr r0, _03804D10 ;@ =0x040001C2
- b _03804CC0
-_03804CA4:
- ldrh r1, [r3]
- ands r1, r1, #128 ;@ 0x80
- bne _03804CA4
- ldrb r1, [r2, ip]
- and r1, r1, #255 ;@ 0xff
- strh r1, [r0]
- add ip, ip, #1
-_03804CC0:
- cmp ip, lr
- blt _03804CA4
- ldr r1, _03804D0C ;@ =0x040001C0
-_03804CCC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804CCC
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- ldrb r0, [r2, ip]
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03804D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03804D0C ;@ =0x040001C0
-_03804CF4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804CF4
-_03804D00:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804D0C: .word 0x040001C0
-_03804D10: .word 0x040001C2
-
- arm_func_start NVRAM_ReadDataBytesAtHigherSpeed
-NVRAM_ReadDataBytesAtHigherSpeed: ;@ 0x03804D14
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804E3C
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804D48:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804D48
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #11
- ldr ip, _03804E4C ;@ =0x040001C2
- strh r0, [ip]
- mov lr, #0
- add r3, sp, #0
- ldr r4, _03804E48 ;@ =0x040001C0
-_03804D74:
- ldrh r0, [r4]
- ands r0, r0, #128 ;@ 0x80
- bne _03804D74
- mov r0, lr, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [ip]
- add lr, lr, #1
- cmp lr, #3
- blt _03804D74
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804DA0:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804DA0
- mov r3, #0
- ldr r0, _03804E4C ;@ =0x040001C2
- strh r3, [r0]
- ldr r3, _03804E48 ;@ =0x040001C0
-_03804DBC:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804DBC
- mov r0, #0
- ldr ip, _03804E48 ;@ =0x040001C0
- mov r4, r0
- ldr lr, _03804E4C ;@ =0x040001C2
- sub r1, r1, #1
- b _03804E00
-_03804DE0:
- strh r4, [lr]
-_03804DE4:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804DE4
- ldrh r3, [lr]
- and r3, r3, #255 ;@ 0xff
- strb r3, [r2, r0]
- add r0, r0, #1
-_03804E00:
- cmp r0, r1
- bcc _03804DE0
- mov r1, #33024 ;@ 0x8100
- ldr ip, _03804E48 ;@ =0x040001C0
- strh r1, [ip]
- mov r3, #0
- ldr r1, _03804E4C ;@ =0x040001C2
- strh r3, [r1]
-_03804E20:
- ldrh r1, [ip]
- ands r1, r1, #128 ;@ 0x80
- bne _03804E20
- ldr r1, _03804E4C ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r2, r0]
-_03804E3C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804E48: .word 0x040001C0
-_03804E4C: .word 0x040001C2
-
- arm_func_start NVRAM_ReadDataBytes
-NVRAM_ReadDataBytes: ;@ 0x03804E50
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- cmp r1, #1
- bcc _03804F5C
- and r3, r0, #16711680 ;@ 0xff0000
- mov r3, r3, lsr #16
- strh r3, [sp]
- and r3, r0, #65280 ;@ 0xff00
- mov r3, r3, lsr #8
- strh r3, [sp, #2]
- and r0, r0, #255 ;@ 0xff
- strh r0, [sp, #4]
- ldr r3, _03804F68 ;@ =0x040001C0
-_03804E84:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804E84
- mov r0, #35072 ;@ 0x8900
- strh r0, [r3]
- mov r0, #3
- ldr ip, _03804F6C ;@ =0x040001C2
- strh r0, [ip]
- mov lr, #0
- add r3, sp, #0
- ldr r4, _03804F68 ;@ =0x040001C0
-_03804EB0:
- ldrh r0, [r4]
- ands r0, r0, #128 ;@ 0x80
- bne _03804EB0
- mov r0, lr, lsl #1
- ldrh r0, [r3, r0]
- and r0, r0, #255 ;@ 0xff
- strh r0, [ip]
- add lr, lr, #1
- cmp lr, #3
- blt _03804EB0
- ldr r3, _03804F68 ;@ =0x040001C0
-_03804EDC:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03804EDC
- mov r0, #0
- ldr ip, _03804F68 ;@ =0x040001C0
- mov r4, r0
- ldr lr, _03804F6C ;@ =0x040001C2
- sub r1, r1, #1
- b _03804F20
-_03804F00:
- strh r4, [lr]
-_03804F04:
- ldrh r3, [ip]
- ands r3, r3, #128 ;@ 0x80
- bne _03804F04
- ldrh r3, [lr]
- and r3, r3, #255 ;@ 0xff
- strb r3, [r2, r0]
- add r0, r0, #1
-_03804F20:
- cmp r0, r1
- bcc _03804F00
- mov r1, #33024 ;@ 0x8100
- ldr ip, _03804F68 ;@ =0x040001C0
- strh r1, [ip]
- mov r3, #0
- ldr r1, _03804F6C ;@ =0x040001C2
- strh r3, [r1]
-_03804F40:
- ldrh r1, [ip]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F40
- ldr r1, _03804F6C ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r2, r0]
-_03804F5C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03804F68: .word 0x040001C0
-_03804F6C: .word 0x040001C2
-
- arm_func_start NVRAM_ReadStatusRegister
-NVRAM_ReadStatusRegister: ;@ 0x03804F70
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804F74:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F74
- mov r1, #35072 ;@ 0x8900
- strh r1, [r2]
- mov r2, #5
- ldr r1, _03804FE0 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804F98:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804F98
- mov r1, #33024 ;@ 0x8100
- strh r1, [r2]
- mov r2, #0
- ldr r1, _03804FE0 ;@ =0x040001C2
- strh r2, [r1]
- ldr r2, _03804FDC ;@ =0x040001C0
-_03804FBC:
- ldrh r1, [r2]
- ands r1, r1, #128 ;@ 0x80
- bne _03804FBC
- ldr r1, _03804FE0 ;@ =0x040001C2
- ldrh r1, [r1]
- and r1, r1, #255 ;@ 0xff
- strb r1, [r0]
- bx lr
-_03804FDC: .word 0x040001C0
-_03804FE0: .word 0x040001C2
-
- arm_func_start NVRAM_WriteDisable
-NVRAM_WriteDisable: ;@ 0x03804FE4
- ldr r1, _0380501C ;@ =0x040001C0
-_03804FE8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03804FE8
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #4
- ldr r0, _03805020 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380501C ;@ =0x040001C0
-_0380500C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380500C
- bx lr
-_0380501C: .word 0x040001C0
-_03805020: .word 0x040001C2
-
- arm_func_start NVRAM_WriteEnable
-NVRAM_WriteEnable: ;@ 0x03805024
- ldr r1, _0380505C ;@ =0x040001C0
-_03805028:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03805028
- mov r0, #33024 ;@ 0x8100
- strh r0, [r1]
- mov r1, #6
- ldr r0, _03805060 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380505C ;@ =0x040001C0
-_0380504C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380504C
- bx lr
-_0380505C: .word 0x040001C0
-_03805060: .word 0x040001C2
-
- arm_func_start FUN_03805064
-FUN_03805064: ;@ 0x03805064
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov lr, #0
- mov r2, lr
- b _03805094
-_03805078:
- mov r1, r2, lsl #2
- mov r1, r0, lsr r1
- and r1, r1, #15
- cmp r1, #10
- movcs r0, #0
- bcs _038050D0
- add r2, r2, #1
-_03805094:
- cmp r2, #8
- blt _03805078
- mov r3, #0
- mov ip, #1
- mov r2, #10
-_038050A8:
- mov r1, r3, lsl #2
- mov r1, r0, lsr r1
- and r1, r1, #15
- mla lr, ip, r1, lr
- add r3, r3, #1
- mul r1, ip, r2
- mov ip, r1
- cmp r3, #8
- blt _038050A8
- mov r0, lr
-_038050D0:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038050DC
-FUN_038050DC: ;@ 0x038050DC
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r0
- mov r7, r1
- mov r6, r2
- sub r0, r7, #1
- cmp r0, #1
- subls r8, r8, #1
- addls r7, r7, #12
- mov r0, r8
- mov r1, #400 ;@ 0x190
- bl _u32_div_f
- mov r5, r0
- mov r0, r8
- mov r1, #100 ;@ 0x64
- bl _u32_div_f
- mov r4, r0
- mov r0, #13
- mul r0, r7, r0
- add r0, r0, #8
- mov r1, #5
- bl _u32_div_f
- add r1, r8, r8, lsr #2
- sub r1, r1, r4
- add r1, r5, r1
- add r0, r1, r0
- add r0, r6, r0
- mov r1, #7
- bl _u32_div_f
- mov r0, r1
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-
- arm_func_start FUN_03805158
-FUN_03805158: ;@ 0x03805158
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- add r0, sp, #0
- bl RTC_ReadStatus1
- add r0, sp, #2
- bl RTC_ReadStatus2
- ldrh r0, [sp]
- mov r1, r0, lsl #24
- movs r1, r1, lsr #31
- bne _0380519C
- mov r0, r0, lsl #25
- movs r0, r0, lsr #31
- bne _0380519C
- ldrh r0, [sp, #2]
- mov r0, r0, lsl #24
- movs r0, r0, lsr #31
- beq _038051B4
-_0380519C:
- ldrh r0, [sp]
- bic r0, r0, #1
- orr r0, r0, #1
- strh r0, [sp]
- add r0, sp, #0
- bl RTC_WriteStatus1
-_038051B4:
- ldrh r0, [sp]
- mov r1, r0, lsl #27
- movs r1, r1, lsr #31
- bne _038051D0
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- beq _038051F0
-_038051D0:
- ldrh r0, [sp, #2]
- bic r0, r0, #15
- strh r0, [sp, #2]
- ldrh r0, [sp, #2]
- bic r0, r0, #64 ;@ 0x40
- strh r0, [sp, #2]
- add r0, sp, #2
- bl RTC_WriteStatus2
-_038051F0:
- ldr r0, _03805288 ;@ =0x027FFDE8
- bl RTC_ReadDateTime
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldrb r0, [r0]
- bl FUN_03805064
- mov r4, r0
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldr r0, [r0]
- mov r0, r0, lsl #19
- mov r0, r0, lsr #27
- bl FUN_03805064
- mov r5, r0
- ldr r0, _03805288 ;@ =0x027FFDE8
- ldr r0, [r0]
- mov r0, r0, lsl #10
- mov r0, r0, lsr #26
- bl FUN_03805064
- mov r2, r0
- add r0, r4, #2000 ;@ 0x7d0
- mov r1, r5
- bl FUN_038050DC
- ldr r2, _03805288 ;@ =0x027FFDE8
- ldr r1, [r2]
- mov r3, r1, lsl #5
- mov r3, r3, lsr #29
- cmp r3, r0
- beq _03805274
- bic r1, r1, #117440512 ;@ 0x7000000
- and r0, r0, #7
- orr r0, r1, r0, lsl #24
- str r0, [r2]
- mov r0, r2
- bl RTC_WriteDateTime
-_03805274:
- mov r0, #1
- bl RTC_SetHourFormat
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03805288: .word 0x027FFDE8
-
- arm_func_start FUN_0380528C
-FUN_0380528C: ;@ 0x0380528C
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- add r0, sp, #0
- bl RTC_ReadStatus1
- ldrh r0, [sp]
- mov r1, r0, lsl #27
- movs r1, r1, lsr #31
- bne _038052B8
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- beq _03805310
-_038052B8:
- add r0, sp, #2
- bl RTC_ReadStatus2
- mov r4, #0
- ldrh r0, [sp]
- mov r0, r0, lsl #27
- movs r0, r0, lsr #31
- orrne r4, r4, #1
- ldrneh r0, [sp, #2]
- bicne r0, r0, #15
- strneh r0, [sp, #2]
- ldrh r0, [sp]
- mov r0, r0, lsl #26
- movs r0, r0, lsr #31
- orrne r4, r4, #2
- ldrneh r0, [sp, #2]
- bicne r0, r0, #64 ;@ 0x40
- strneh r0, [sp, #2]
- add r0, sp, #2
- bl RTC_WriteStatus2
- mov r0, #48 ;@ 0x30
- mov r1, r4
- bl FUN_038057D8
-_03805310:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start FUN_0380531C
-FUN_0380531C: ;@ 0x0380531C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #76 ;@ 0x4c
- ldr r6, _038057CC ;@ =0x027FFDE8
- add r5, r6, #4
- mov r7, #0
- ldr r9, _038057D0 ;@ =_0380A03C
- mov r8, #1
- mov r0, #16
- str r0, [sp]
- mov r0, #17
- str r0, [sp, #4]
- mov r0, #18
- str r0, [sp, #8]
- mov sl, #19
- mov r4, #2
- mov fp, #20
- mov r0, #21
- str r0, [sp, #12]
- mov r0, #22
- str r0, [sp, #16]
- mov r0, #23
- str r0, [sp, #20]
- mov r0, #24
- str r0, [sp, #24]
- mov r0, #25
- str r0, [sp, #28]
- mov r0, #32
- str r0, [sp, #32]
- mov r0, #33 ;@ 0x21
- str r0, [sp, #36] ;@ 0x24
- mov r0, #34 ;@ 0x22
- str r0, [sp, #40] ;@ 0x28
- mov r0, #35 ;@ 0x23
- str r0, [sp, #44] ;@ 0x2c
- mov r0, #36 ;@ 0x24
- str r0, [sp, #48] ;@ 0x30
- mov r0, #37 ;@ 0x25
- str r0, [sp, #52] ;@ 0x34
- mov r0, #38 ;@ 0x26
- str r0, [sp, #56] ;@ 0x38
- mov r0, #39 ;@ 0x27
- str r0, [sp, #60] ;@ 0x3c
- mov r0, #40 ;@ 0x28
- str r0, [sp, #64] ;@ 0x40
- mov r0, #41 ;@ 0x29
- str r0, [sp, #68] ;@ 0x44
-_038053D4:
- mov r0, r9
- add r1, sp, #72 ;@ 0x48
- mov r2, r8
- bl OS_ReceiveMessage
- ldr r0, _038057D4 ;@ =_0380A13C
- ldrh r0, [r0, #216] ;@ 0xd8
- cmp r0, #41 ;@ 0x29
- addls pc, pc, r0, lsl #2
- b _038057BC
- b _038054A0
- b _038054B8
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038054DC
- b _038054F8
- b _03805514
- b _03805530
- b _03805568
- b _038055A0
- b _038055D8
- b _038055F4
- b _03805610
- b _0380562C
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _038057BC
- b _03805648
- b _03805664
- b _03805688
- b _038056A4
- b _038056DC
- b _03805714
- b _0380574C
- b _03805768
- b _03805784
- b _038057A0
-_038054A0:
- bl RTC_Reset
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, r7
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054B8:
- ldrh r0, [r6]
- mov r0, r0, lsl #30
- mov r0, r0, lsr #31
- bl RTC_SetHourFormat
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, r8
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054DC:
- mov r0, r6
- bl RTC_ReadDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038054F8:
- mov r0, r6
- bl RTC_ReadDate
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #4]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805514:
- add r0, r6, #4
- bl RTC_ReadTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #8]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805530:
- mov r0, r5
- bl RTC_ReadPulse
- cmp r0, #0
- bne _03805554
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, sl
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805554:
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, sl
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805568:
- mov r0, r5
- bl RTC_ReadAlarm1
- cmp r0, #0
- bne _0380558C
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, fp
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_0380558C:
- str r7, [r9, #468] ;@ 0x1d4
- mov r0, fp
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055A0:
- mov r0, r5
- bl RTC_ReadAlarm2
- cmp r0, #0
- bne _038055C4
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #12]
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_038055C4:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #12]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055D8:
- mov r0, r6
- bl RTC_ReadStatus1
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #16]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038055F4:
- add r0, r6, #2
- bl RTC_ReadStatus2
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #20]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805610:
- add r0, r6, #4
- bl RTC_ReadAdjust
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #24]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_0380562C:
- add r0, r6, #4
- bl RTC_ReadFree
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #28]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805648:
- mov r0, r6
- bl RTC_WriteDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #32]
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805664:
- add r0, r6, #4
- bl RTC_ReadTime
- mov r0, r6
- bl RTC_WriteDateTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #36] ;@ 0x24
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805688:
- add r0, r6, #4
- bl RTC_WriteTime
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #40] ;@ 0x28
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038056A4:
- mov r0, r5
- bl RTC_WritePulse
- cmp r0, #0
- bne _038056C8
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #44] ;@ 0x2c
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_038056C8:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #44] ;@ 0x2c
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038056DC:
- mov r0, r5
- bl RTC_WriteAlarm1
- cmp r0, #0
- bne _03805700
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #48] ;@ 0x30
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805700:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #48] ;@ 0x30
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805714:
- mov r0, r5
- bl RTC_WriteAlarm2
- cmp r0, #0
- bne _03805738
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #52] ;@ 0x34
- mov r1, r4
- bl FUN_038057D8
- b _038053D4
-_03805738:
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #52] ;@ 0x34
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_0380574C:
- mov r0, r6
- bl RTC_WriteStatus1
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #56] ;@ 0x38
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805768:
- add r0, r6, #2
- bl RTC_WriteStatus2
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #60] ;@ 0x3c
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_03805784:
- add r0, r6, #4
- bl RTC_WriteAdjust
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #64] ;@ 0x40
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038057A0:
- add r0, r6, #4
- bl RTC_WriteFree
- str r7, [r9, #468] ;@ 0x1d4
- ldr r0, [sp, #68] ;@ 0x44
- mov r1, r7
- bl FUN_038057D8
- b _038053D4
-_038057BC:
- str r7, [r9, #468] ;@ 0x1d4
- mov r1, r8
- bl FUN_038057D8
- b _038053D4
-_038057CC: .word 0x027FFDE8
-_038057D0: .word _0380A03C
-_038057D4: .word _0380A13C
-
- arm_func_start FUN_038057D8
-FUN_038057D8: ;@ 0x038057D8
- stmdb sp!, {r4, r5, r6, lr}
- mov r0, r0, lsl #8
- and r0, r0, #32512 ;@ 0x7f00
- orr r2, r0, #32768 ;@ 0x8000
- and r0, r1, #255 ;@ 0xff
- orr r6, r2, r0
- mov r5, #5
- mov r4, #0
-_038057F8:
- mov r0, r5
- mov r1, r6
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- blt _038057F8
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start FUN_03805818
-FUN_03805818: ;@ 0x03805818
- stmdb sp!, {r4, lr}
- cmp r2, #0
- bne _03805944
- and r0, r1, #32512 ;@ 0x7f00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- cmp r4, #41 ;@ 0x29
- addls pc, pc, r4, lsl #2
- b _03805938
- b _038058E4
- b _038058E4
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _03805938
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
- b _038058E4
-_038058E4:
- ldr r0, _0380594C ;@ =_0380A03C
- ldr r1, [r0, #468] ;@ 0x1d4
- cmp r1, #0
- beq _03805904
- mov r0, r4
- mov r1, #3
- bl FUN_038057D8
- b _03805944
-_03805904:
- mov r1, #1
- str r1, [r0, #468] ;@ 0x1d4
- ldr r1, _03805950 ;@ =_0380A13C
- strh r4, [r1, #216] ;@ 0xd8
- mov r1, #0
- mov r2, r1
- bl OS_SendMessage
- cmp r0, #0
- bne _03805944
- mov r0, r4
- mov r1, #4
- bl FUN_038057D8
- b _03805944
-_03805938:
- mov r0, r4
- mov r1, #1
- bl FUN_038057D8
-_03805944:
- ldmia sp!, {r4, lr}
- bx lr
-_0380594C: .word _0380A03C
-_03805950: .word _0380A13C
-
- arm_func_start RTC_Init
-RTC_Init: ;@ 0x03805954
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- mov r4, r0
- ldr r0, _03805A28 ;@ =_0380A038
- ldrh r1, [r0]
- cmp r1, #0
- bne _03805A1C
- mov r1, #1
- strh r1, [r0]
- ldr r0, _03805A2C ;@ =_0380A03C
- str r1, [r0, #468] ;@ 0x1d4
- bl FUN_03805158
- mov r1, #0
- ldr r0, _03805A2C ;@ =_0380A03C
- str r1, [r0, #468] ;@ 0x1d4
- bl PXI_Init
- mov r0, #5
- ldr r1, _03805A30 ;@ =FUN_03805818
- bl PXI_SetFifoRecvCallback
- ldr r0, _03805A2C ;@ =_0380A03C
- ldr r1, _03805A34 ;@ =_0380A05C
- mov r2, #4
- bl OS_InitMessageQueue
- mov r0, #256 ;@ 0x100
- str r0, [sp]
- str r4, [sp, #4]
- ldr r0, _03805A38 ;@ =_0380A06C
- ldr r1, _03805A3C ;@ =FUN_0380531C
- mov r2, #0
- ldr r3, _03805A40 ;@ =_0380A210
- bl OS_CreateThread
- ldr r0, _03805A38 ;@ =_0380A06C
- bl OS_WakeupThreadDirect
- mov r0, #32768 ;@ 0x8000
- bl EXIi_SelectRcnt
- mov r0, #64 ;@ 0x40
- mov r1, #0
- bl EXIi_SetBitRcnt0L
- mov r0, #256 ;@ 0x100
- mov r1, r0
- bl EXIi_SetBitRcnt0L
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #128 ;@ 0x80
- ldr r1, _03805A44 ;@ =FUN_0380528C
- bl OS_SetIrqFunction
- mov r0, #128 ;@ 0x80
- bl OS_EnableIrqMask
- mov r0, r4
- bl OS_RestoreInterrupts
-_03805A1C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03805A28: .word _0380A038
-_03805A2C: .word _0380A03C
-_03805A30: .word FUN_03805818
-_03805A34: .word _0380A05C
-_03805A38: .word _0380A06C
-_03805A3C: .word FUN_0380531C
-_03805A40: .word _0380A210
-_03805A44: .word FUN_0380528C
-
arm_func_start FUN_03805A48
FUN_03805A48: ;@ 0x03805A48
stmdb sp!, {r4, r5, r6, r7, lr}
diff --git a/arm7/asm/wram_bss.s b/arm7/asm/wram_bss.s
index b8123702..af742ee8 100644
--- a/arm7/asm/wram_bss.s
+++ b/arm7/asm/wram_bss.s
@@ -2,34 +2,6 @@
.include "global.inc"
.section .bss
- .global _0380A018
-_0380A018: ;0x0380A018
- .space 0x0380A038 - 0x0380A018
-
- .global _0380A038
-_0380A038: ;0x0380A038
- .space 0x0380A03C - 0x0380A038
-
- .global _0380A03C
-_0380A03C: ;0x0380A03C
- .space 0x0380A05C - 0x0380A03C
-
- .global _0380A05C
-_0380A05C: ;0x0380A05C
- .space 0x0380A06C - 0x0380A05C
-
- .global _0380A06C
-_0380A06C: ;0x0380A06C
- .space 0x0380A13C - 0x0380A06C
-
- .global _0380A13C
-_0380A13C: ;0x0380A13C
- .space 0x0380A210 - 0x0380A13C
-
- .global _0380A210
-_0380A210: ;0x0380A210
- .space 0x0380A3F0 - 0x0380A210
-
.global _0380A3F0
_0380A3F0: ;0x0380A3F0
.space 0x0380A3F4 - 0x0380A3F0
diff --git a/arm7/global.inc b/arm7/global.inc
index 23c99838..f628a4cd 100644
--- a/arm7/global.inc
+++ b/arm7/global.inc
@@ -258,6 +258,31 @@
.extern NVRAM_Init
.extern NVRAM_ReadDataBytes
.extern RTC_Init
+.extern RTC_ReadAdjust
+.extern RTC_ReadAlarm1
+.extern RTC_ReadAlarm2
+.extern RTC_ReadDate
+.extern RTC_ReadDateTime
+.extern RTC_ReadFree
+.extern RTC_ReadPulse
+.extern RTC_ReadStatus1
+.extern RTC_ReadStatus2
+.extern RTC_ReadTime
+.extern RTC_Reset
+.extern RTC_SetHourFormat
+.extern RTC_WriteAdjust
+.extern RTC_WriteAlarm1
+.extern RTC_WriteAlarm2
+.extern RTC_WriteDateTime
+.extern RTC_WriteFree
+.extern RTC_WritePulse
+.extern RTC_WriteStatus1
+.extern RTC_WriteStatus2
+.extern RTC_WriteTime
+.extern FUN_03805158
+.extern FUN_0380528C
+.extern FUN_0380531C
+.extern FUN_03805818
.extern WVR_Shutdown
.extern WVR_Init
.extern FUN_038073EC
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index cfa44c60..9c13b534 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -569,8 +569,9 @@ Overlay MODULE_11
{
##Battles##
After MODULE_08
- Object module_11.o
+ Object module_11_thumb1.o
Object module_11_sinit.o
+ Object module_11_thumb2.o
}
Overlay MODULE_12
@@ -638,13 +639,14 @@ Overlay MODULE_21
{
##Pokétch Clock##
After MODULE_20
- Object module_21.o
Object module_21_sinit.o
+ Object module_21.o
}
Overlay MODULE_22
{
After MODULE_20
+ Object module_22_sinit.o
Object module_22.o
}
@@ -652,14 +654,15 @@ Overlay MODULE_23
{
##Pokétch Calculator##
After MODULE_20
- Object module_23.o
Object module_23_sinit.o
+ Object module_23.o
}
Overlay MODULE_24
{
##Memo Pad##
After MODULE_20
+ Object module_24_sinit.o
Object module_24.o
}
@@ -667,12 +670,14 @@ Overlay MODULE_25
{
##Analogue Watch##
After MODULE_20
+ Object module_25_sinit.o
Object module_25.o
}
Overlay MODULE_26
{
After MODULE_20
+ Object module_26_sinit.o
Object module_26.o
}
@@ -680,31 +685,31 @@ Overlay MODULE_27
{
##Pokétch Party##
After MODULE_20
- Object module_27.o
Object module_27_sinit.o
+ Object module_27.o
}
Overlay MODULE_28
{
##Friendship Checker##
After MODULE_20
- Object module_28.o
Object module_28_sinit.o
+ Object module_28.o
}
Overlay MODULE_29
{
##Dowsing Machine##
After MODULE_20
- Object module_29.o
Object module_29_sinit.o
+ Object module_29.o
}
Overlay MODULE_30
{
After MODULE_20
- Object module_30.o
Object module_30_sinit.o
+ Object module_30.o
}
Overlay MODULE_31
@@ -717,8 +722,8 @@ Overlay MODULE_31
Overlay MODULE_32
{
After MODULE_20
- Object module_32.o
Object module_32_sinit.o
+ Object module_32.o
}
Overlay MODULE_33
@@ -730,8 +735,8 @@ Overlay MODULE_33
Overlay MODULE_34
{
After MODULE_20
- Object module_34.o
Object module_34_sinit.o
+ Object module_34.o
}
Overlay MODULE_35
@@ -744,8 +749,8 @@ Overlay MODULE_35
Overlay MODULE_36
{
After MODULE_20
- Object module_36.o
Object module_36_sinit.o
+ Object module_36.o
}
Overlay MODULE_37
@@ -765,8 +770,8 @@ Overlay MODULE_38
Overlay MODULE_39
{
After MODULE_20
- Object module_39.o
Object module_39_sinit.o
+ Object module_39.o
}
Overlay MODULE_40
@@ -778,31 +783,31 @@ Overlay MODULE_40
Overlay MODULE_41
{
After MODULE_20
- Object module_41.o
Object module_41_sinit.o
+ Object module_41.o
}
Overlay MODULE_42
{
##Marking Map##
After MODULE_20
- Object module_42.o
Object module_42_sinit.o
+ Object module_42.o
}
Overlay MODULE_43
{
##Berry Searcher##
After MODULE_20
- Object module_43.o
Object module_43_sinit.o
+ Object module_43.o
}
Overlay MODULE_44
{
After MODULE_20
- Object module_44.o
Object module_44_sinit.o
+ Object module_44.o
}
Overlay MODULE_45
@@ -821,8 +826,8 @@ Overlay MODULE_47
{
##Link Searcher##
After MODULE_20
- Object module_47.o
Object module_47_sinit.o
+ Object module_47.o
}
Overlay MODULE_48
diff --git a/arm9/global.inc b/arm9/global.inc
index c750a6c5..63a62566 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -6915,9 +6915,28 @@
.extern MOD8_0222D578
.extern MOD09_022186F0
.extern MOD11_0222D5C0
+.extern MOD11_0222D7F8
+.extern MOD11_0222D840
+.extern MOD11_0222D88C
+.extern MOD11_0222D944
+.extern MOD11_0222D980
+.extern MOD11_0222E520
+.extern MOD11_0222F0D4
+.extern MOD11_0222F29C
+.extern MOD11_0222F4E4
+.extern MOD11_0222F93C
+.extern MOD11_0222F988
+.extern MOD11_0222FABC
+.extern MOD11_0222FB04
+.extern MOD11_0222FC38
+.extern MOD11_0222FC80
+.extern MOD11_0222FE58
+.extern MOD11_0222FE94
+.extern MOD11_0222FEC0
.extern MOD11_0222FF68
.extern MOD11_0222FF74
.extern MOD11_0222FF78
+.extern MOD11_0222FF7C
.extern MOD11_0222FF84
.extern MOD11_0222FF88
.extern MOD11_0222FFC8
@@ -6936,24 +6955,40 @@
.extern MOD11_02230188
.extern MOD11_02230214
.extern MOD11_02230218
+.extern MOD11_0223021C
.extern MOD11_0223022C
.extern MOD11_02230260
.extern MOD11_02230270
.extern MOD11_02230290
+.extern MOD11_02230294
.extern MOD11_022302BC
.extern MOD11_02230370
+.extern MOD11_02230C68
+.extern MOD11_02230D38
.extern MOD11_02230E44
.extern MOD11_02230E54
+.extern MOD11_02230EC8
+.extern MOD11_02230FA8
.extern MOD11_02231238
.extern MOD11_022312D0
+.extern MOD11_02231338
.extern MOD11_02231344
.extern MOD11_02231350
.extern MOD11_0223135C
.extern MOD11_02231368
.extern MOD11_02231374
+.extern MOD11_02231390
+.extern MOD11_02231410
+.extern MOD11_02231474
+.extern MOD11_02231484
+.extern MOD11_022314A0
+.extern MOD11_022314B0
.extern MOD11_02231504
.extern MOD11_02231534
.extern MOD11_02231678
+.extern MOD11_0223D1DC
+.extern MOD11_0223D238
+.extern MOD11_0223D284
.extern MOD11_02243420
.extern MOD11_02244248
.extern MOD11_02245D38
@@ -6968,12 +7003,29 @@
.extern MOD11_02249D90
.extern MOD11_02249E04
.extern MOD11_02249E58
+.extern MOD11_0224B240
.extern MOD11_0224B310
.extern MOD11_0224C12C
.extern MOD11_0224C474
+.extern MOD11_0224C54C
+.extern MOD11_0224CA64
.extern MOD11_0224CA94
+.extern MOD11_0224CB38
+.extern MOD11_0224CB54
.extern MOD11_02252DB4
+.extern MOD11_0225377C
+.extern MOD11_02253A58
+.extern MOD11_02253A70
+.extern MOD11_02254820
.extern MOD11_022567E0
+.extern MOD11_022583D8
+.extern MOD11_02258450
+.extern MOD11_022584AC
+.extern MOD11_022584D4
+.extern MOD11_02258658
+.extern MOD11_022586BC
+.extern MOD11_02258820
+.extern MOD11_02258958
.extern MOD11_0225D3EC
.extern MOD11_0225D45C
.extern MOD11_0225D484
@@ -6988,6 +7040,10 @@
.extern MOD11_0225D80C
.extern MOD11_0225D820
.extern MOD11_0225D824
+.extern MOD11_0225D9B8
+.extern MOD11_0225DA04
+.extern MOD11_0225DA40
+.extern MOD11_0225DAB8
.extern MOD12_0222D5C0
.extern MOD12_0222D89C
.extern MOD12_0222D9B0
diff --git a/arm9/lib/include/FS_file.h b/arm9/lib/include/FS_file.h
index 6e4f1cd0..f870ad2a 100644
--- a/arm9/lib/include/FS_file.h
+++ b/arm9/lib/include/FS_file.h
@@ -177,7 +177,6 @@ FSFile; // size = 0x50
void FS_Init(u32 default_dma_no);
BOOL FS_IsAvailable(void);
void FS_InitFile(FSFile * p_file);
-static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos);
int FSi_ReadFileCore(FSFile * p_file, void * dst, s32 len, BOOL async);
BOOL FS_ConvertPathToFileID(FSFileID * p_file_id, const char * path);
BOOL FS_OpenFileDirect(FSFile * p_file, FSArchive * p_arc, u32 image_top, u32 image_bottom, u32 file_index);
diff --git a/arm9/lib/include/MI_dma_gxcommand.h b/arm9/lib/include/MI_dma_gxcommand.h
index 29aa9c72..7cc32ba2 100644
--- a/arm9/lib/include/MI_dma_gxcommand.h
+++ b/arm9/lib/include/MI_dma_gxcommand.h
@@ -29,9 +29,6 @@ typedef struct
void MI_SendGXCommand(u32 dmaNo, const void *src, u32 commandLength);
void MI_SendGXCommandAsync(u32 dmaNo, const void *src, u32 commandLength, MIDmaCallback callback, void *arg);
-static void MIi_FIFOCallback(void);
-static void MIi_DMACallback(void *);
void MI_SendGXCommandAsyncFast(u32 dmaNo, const void *src, u32 commandLength, MIDmaCallback callback, void *arg);
-static void MIi_DMAFastCallback(void *);
#endif //POKEDIAMOND_MI_DMA_GXCOMMAND_H
diff --git a/arm9/lib/include/OS_alarm.h b/arm9/lib/include/OS_alarm.h
index c8d0682d..00a3c3d3 100644
--- a/arm9/lib/include/OS_alarm.h
+++ b/arm9/lib/include/OS_alarm.h
@@ -12,14 +12,11 @@ struct OSiAlarmQueue
OSAlarm *tail;
};
-static void OSi_SetTimer(OSAlarm *alarm);
void OS_InitAlarm(void);
BOOL OS_IsAlarmAvailable(void);
void OS_CreateAlarm(OSAlarm *alarm);
-static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire);
void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
void OS_CancelAlarm(OSAlarm *alarm);
void OSi_AlarmHandler(void *arg);
-static void OSi_ArrangeTimer(void);
#endif //POKEDIAMOND_ARM9_OS_ALARM_H
diff --git a/arm9/lib/include/OS_exception.h b/arm9/lib/include/OS_exception.h
index 68caf856..26fc3525 100644
--- a/arm9/lib/include/OS_exception.h
+++ b/arm9/lib/include/OS_exception.h
@@ -15,12 +15,7 @@ typedef struct
typedef void (*OSExceptionHandler) (u32, void *);
-static void OSi_ExceptionHandler(void);
-
void OS_InitException(void);
void OSi_ExceptionHandler(void);
-static void OSi_GetAndDisplayContext(void);
-static void OSi_SetExContext(void);
-static void OSi_DisplayExContext(void);
#endif //POKEDIAMOND_OS_EXCEPTION_H
diff --git a/arm9/lib/include/OS_reset.h b/arm9/lib/include/OS_reset.h
index ef62184b..b5d43bad 100644
--- a/arm9/lib/include/OS_reset.h
+++ b/arm9/lib/include/OS_reset.h
@@ -6,14 +6,8 @@
#include "PXI_fifo.h"
void OS_InitReset(void);
-static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err);
-static void OSi_SendToPxi(u16 data);
void OS_ResetSystem(u32 parameter);
-static void OSi_DoResetSystem(void);
void OSi_DoBoot(void);
-static void OSi_CpuClear32(register u32 data, register void *destp, register u32 size);
-static void OSi_ReloadRomData(void);
-static void OSi_ReadCardRom32(u32 src, void *dst, s32 len);
static inline u32 OS_GetResetParameter(void)
{
diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h
index 8afc0b78..e330e219 100644
--- a/arm9/lib/include/OS_thread.h
+++ b/arm9/lib/include/OS_thread.h
@@ -5,22 +5,12 @@
#include "OS_context.h"
#include "nitro/OS_thread_shared.h"
-static s32 OSi_GetUnusedThreadId(void);
-static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
-static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
-static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue);
-static void OSi_InsertThreadToList(OSThread *thread);
-static void OSi_RemoveThreadFromList(OSThread *thread);
void OS_InitThread(void);
BOOL OS_IsThreadAvailable(void);
void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
void OS_ExitThread(void);
-static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
-static void OSi_ExitThread(void *arg);
-static void OSi_ExitThread_Destroy(void);
void OS_DestroyThread(OSThread *thread);
-static void OSi_CancelThreadAlarmForSleep(OSThread *thread);
void OS_JoinThread(OSThread *thread);
BOOL OS_IsThreadTerminated(const OSThread *thread);
void OS_SleepThread(OSThreadQueue *queue);
@@ -32,9 +22,7 @@ void OS_YieldThread(void);
BOOL OS_SetThreadPriority(OSThread *thread, u32 prio);
u32 OS_GetThreadPriority(const OSThread *thread);
void OS_Sleep(u32 msec);
-static void OSi_SleepAlarmCallback(void *arg);
OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback);
-static void OSi_IdleThreadProc(void *);
u32 OS_DisableScheduler(void);
u32 OS_EnableScheduler(void);
void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);
diff --git a/arm9/lib/include/OS_tick.h b/arm9/lib/include/OS_tick.h
index 59c43b10..e0b6ea39 100644
--- a/arm9/lib/include/OS_tick.h
+++ b/arm9/lib/include/OS_tick.h
@@ -9,7 +9,6 @@
void OS_InitTick(void);
BOOL OS_IsTickAvailable(void);
-static void OSi_CountUpTick(void);
OSTick OS_GetTick(void);
u16 OS_GetTickLo(void);
diff --git a/arm9/lib/src/FS_command.c b/arm9/lib/src/FS_command.c
index 7e0d41c9..e677f6c6 100644
--- a/arm9/lib/src/FS_command.c
+++ b/arm9/lib/src/FS_command.c
@@ -40,6 +40,8 @@ ARM_FUNC FSResult FSi_TranslateCommand(FSFile *p_file, FSCommandType command)
ret = FS_RESULT_PROC_DEFAULT;
p_arc->proc_flag &= ~bit;
break;
+ default:
+ break;
}
}
else
diff --git a/arm9/lib/src/FS_command_default.c b/arm9/lib/src/FS_command_default.c
index 582bf1b2..0cdc91fc 100644
--- a/arm9/lib/src/FS_command_default.c
+++ b/arm9/lib/src/FS_command_default.c
@@ -55,6 +55,7 @@ ARM_FUNC FSResult FSi_ReadTable(FSiSyncReadParam * p, void * dst, u32 len)
(void)OS_RestoreInterrupts(bak_psr);
ret = p_arc->list.next->error;
}
+ default:
break;
}
p->pos += len;
diff --git a/arm9/lib/src/FS_file.c b/arm9/lib/src/FS_file.c
index c1a6c54d..11595c02 100644
--- a/arm9/lib/src/FS_file.c
+++ b/arm9/lib/src/FS_file.c
@@ -7,6 +7,8 @@
extern FSDirPos current_dir_pos;
BOOL is_init = FALSE;
+static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos);
+
ARM_FUNC void FS_Init(u32 default_dma_no)
{
if (!is_init)
diff --git a/arm9/lib/src/FX_mtx44.c b/arm9/lib/src/FX_mtx44.c
index 697f8709..c72f6158 100644
--- a/arm9/lib/src/FX_mtx44.c
+++ b/arm9/lib/src/FX_mtx44.c
@@ -103,7 +103,6 @@ ARM_FUNC asm void MTX_Copy44To43_(struct Mtx44 *src, struct Mtx43 *dst){
bx lr
}
-
THUMB_FUNC asm void MTX_RotX44_(struct Mtx44 *mtx, fx32 sinphi, fx32 cosphi){
str r2, [r0, #0x14]
str r2, [r0, #0x28]
diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c
index d103bed5..69ad8718 100644
--- a/arm9/lib/src/GX.c
+++ b/arm9/lib/src/GX.c
@@ -83,7 +83,7 @@ ARM_FUNC void GX_DispOn(){
sIsDispOn = 0x1;
if (sDispMode)
{
- reg_GX_DISPCNT = reg_GX_DISPCNT & ~0x30000 | (sDispMode << 0x10);
+ reg_GX_DISPCNT = (reg_GX_DISPCNT & ~0x30000) | (sDispMode << 0x10);
}
else
{
@@ -102,7 +102,7 @@ ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){
}
ARM_FUNC void GXS_SetGraphicsMode(u32 mode){
- reg_GXS_DB_DISPCNT = reg_GXS_DB_DISPCNT & ~0x7 | mode;
+ reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~0x7) | mode;
}
ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){
diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/src/GX_g2.c
index bde1d1a5..99ba0e26 100644
--- a/arm9/lib/src/GX_g2.c
+++ b/arm9/lib/src/GX_g2.c
@@ -50,7 +50,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
{
if ((temp & 0xC0) == 0x80)
{
- ptr[0] = (u16)(temp & ~0xC0 | 0xC0);
+ ptr[0] = (u16)((temp & ~0xC0) | 0xC0);
}
ptr[2] = (u16)(-brightness);
}
@@ -58,7 +58,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
{
if ((temp & 0xC0) == 0xC0)
{
- ptr[0] = (u16)(temp & ~0xC0 | 0x80);
+ ptr[0] = (u16)((temp & ~0xC0) | 0x80);
}
ptr[2] = (u16)brightness;
}
diff --git a/arm9/lib/src/GX_g3x.c b/arm9/lib/src/GX_g3x.c
index c8266bee..41070a9b 100644
--- a/arm9/lib/src/GX_g3x.c
+++ b/arm9/lib/src/GX_g3x.c
@@ -8,42 +8,42 @@ void MI_Copy36B(void *src, void *dst);
ARM_FUNC asm void GXi_NopClearFifo128_(void *reg){
mov r1, #0x0
- mov r2, #0x0
- mov r3, #0x0
- mov r12, #0x0
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- stmia r0, {r1-r3,r12}
- bx lr
+ mov r2, #0x0
+ mov r3, #0x0
+ mov r12, #0x0
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ bx lr
}
ARM_FUNC void G3X_Init(){
@@ -56,10 +56,10 @@ ARM_FUNC void G3X_Init(){
reg_G3X_DISP3DCNT |= 0x2000;
reg_G3X_DISP3DCNT |= 0x1000;
reg_G3X_DISP3DCNT &= ~0x3002;
- reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & ~0x3000 | 0x10);
+ reg_G3X_DISP3DCNT = (u16)((reg_G3X_DISP3DCNT & ~0x3000) | 0x10);
reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & (u16)~0x3004);
reg_G3X_GXSTAT |= 0x8000;
- reg_G3X_GXSTAT = reg_G3X_GXSTAT & ~0xC0000000 | 0x80000000;
+ reg_G3X_GXSTAT = (reg_G3X_GXSTAT & ~0xC0000000) | 0x80000000;
G3X_InitMtxStack();
reg_G3X_CLEAR_COLOR = 0x0;
reg_G3X_CLEAR_DEPTH = 0x7FFF;
diff --git a/arm9/lib/src/MI_dma_gxcommand.c b/arm9/lib/src/MI_dma_gxcommand.c
index 8d1a891a..781f1f73 100644
--- a/arm9/lib/src/MI_dma_gxcommand.c
+++ b/arm9/lib/src/MI_dma_gxcommand.c
@@ -6,6 +6,10 @@
static MIiGXDmaParams MIi_GXDmaParams = { FALSE };
+static void MIi_FIFOCallback(void);
+static void MIi_DMACallback(void *arg);
+static void MIi_DMAFastCallback(void *arg);
+
#pragma section ITCM begin
ARM_FUNC void MI_SendGXCommand(u32 dmaNo, const void *src, u32 commandLength)
{
@@ -104,7 +108,7 @@ ARM_FUNC static void MIi_FIFOCallback(void)
}
}
-ARM_FUNC static void MIi_DMACallback(void *)
+ARM_FUNC static void MIi_DMACallback(void *arg)
{
(void)OS_DisableIrqMask(OS_IE_GXFIFO);
@@ -141,7 +145,7 @@ ARM_FUNC void MI_SendGXCommandAsyncFast(u32 dmaNo, const void *src, u32 commandL
MIi_DmaSetParams(dmaNo, (u32)src, (u32)REG_GXFIFO_ADDR, MI_CNT_GXCOPY_IF(commandLength));
}
-ARM_FUNC static void MIi_DMAFastCallback(void *)
+ARM_FUNC static void MIi_DMAFastCallback(void *arg)
{
MIi_GXDmaParams.isBusy = FALSE;
diff --git a/arm9/lib/src/OS_alarm.c b/arm9/lib/src/OS_alarm.c
index 1bd3ff2f..a8c1fedd 100644
--- a/arm9/lib/src/OS_alarm.c
+++ b/arm9/lib/src/OS_alarm.c
@@ -10,6 +10,10 @@ static struct OSiAlarmQueue OSi_AlarmQueue;
static u16 OSi_UseAlarm = FALSE;
+static void OSi_SetTimer(OSAlarm *alarm);
+static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire);
+static void OSi_ArrangeTimer(void);
+
ARM_FUNC static void OSi_SetTimer(OSAlarm *alarm)
{
OSTick tick = OS_GetTick();
diff --git a/arm9/lib/src/OS_arena.c b/arm9/lib/src/OS_arena.c
index ad3a4e16..df9c2fd8 100644
--- a/arm9/lib/src/OS_arena.c
+++ b/arm9/lib/src/OS_arena.c
@@ -1,6 +1,3 @@
-//
-// Created by red031000 on 2020-04-27.
-//
#include "function_target.h"
#include "consts.h"
#include "OS_arena.h"
diff --git a/arm9/lib/src/OS_exception.c b/arm9/lib/src/OS_exception.c
index 5a66b2c4..3aaaa2f2 100644
--- a/arm9/lib/src/OS_exception.c
+++ b/arm9/lib/src/OS_exception.c
@@ -11,6 +11,10 @@ static void *OSi_DebuggerHandler = NULL;
#define HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER 0x027ffd9c
+static void OSi_GetAndDisplayContext(void);
+static void OSi_SetExContext(void);
+static void OSi_DisplayExContext(void);
+
ARM_FUNC void OS_InitException(void)
{
if (0x2600000 <= *(u32 *)HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER
diff --git a/arm9/lib/src/OS_irqHandler.c b/arm9/lib/src/OS_irqHandler.c
index 68f1425d..b4e2d232 100644
--- a/arm9/lib/src/OS_irqHandler.c
+++ b/arm9/lib/src/OS_irqHandler.c
@@ -49,7 +49,7 @@ _01FF8070:
str r3, [ip, #0x80]
mov ip, r0
cmp ip, #0x0
-bne _01FF8070
+ bne _01FF8070
ldr ip, =OSi_IrqThreadQueue
str r3, [ip]
str r3, [ip, #0x4]
diff --git a/arm9/lib/src/OS_reset.c b/arm9/lib/src/OS_reset.c
index 5994e643..a458a8fa 100644
--- a/arm9/lib/src/OS_reset.c
+++ b/arm9/lib/src/OS_reset.c
@@ -18,6 +18,13 @@ extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2);
extern void CARD_LockRom(u16 lockId);
extern void MI_StopDma(u32 dma);
+static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err);
+static void OSi_SendToPxi(u16 data);
+static void OSi_DoResetSystem(void);
+static void OSi_CpuClear32(register u32 data, register void *destp, register u32 size);
+static void OSi_ReloadRomData(void);
+static void OSi_ReadCardRom32(u32 src, void *dst, s32 len);
+
ARM_FUNC void OS_InitReset(void) {
if (OSi_IsInitReset) {
return;
diff --git a/arm9/lib/src/OS_system.c b/arm9/lib/src/OS_system.c
index de6b187a..f5f5faba 100644
--- a/arm9/lib/src/OS_system.c
+++ b/arm9/lib/src/OS_system.c
@@ -1,12 +1,9 @@
-//
-// Created by mart on 4/23/20.
-//
-
#include "OS_system.h"
#include "OS_irqHandler.h"
#include "syscall.h"
-ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) {
+ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void)
+{
mrs r0, cpsr
bic r1, r0, #HW_PSR_DISABLE_IRQ
msr cpsr_c, r1
@@ -14,24 +11,27 @@ ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) {
bx lr
}
-ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void) {
- mrs r0, cpsr
- orr r1, r0, #HW_PSR_DISABLE_IRQ
- msr cpsr_c, r1
- and r0, r0, #HW_PSR_DISABLE_IRQ
- bx lr
+ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void)
+{
+ mrs r0, cpsr
+ orr r1, r0, #HW_PSR_DISABLE_IRQ
+ msr cpsr_c, r1
+ and r0, r0, #HW_PSR_DISABLE_IRQ
+ bx lr
}
-ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) {
- mrs r1, cpsr
- bic r2, r1, #HW_PSR_DISABLE_IRQ
- orr r2, r2, r0
- msr cpsr_c, r2
- and r0, r1, #HW_PSR_DISABLE_IRQ
- bx lr
+ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state)
+{
+ mrs r1, cpsr
+ bic r2, r1, #HW_PSR_DISABLE_IRQ
+ orr r2, r2, r0
+ msr cpsr_c, r2
+ and r0, r1, #HW_PSR_DISABLE_IRQ
+ bx lr
}
-ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) {
+ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void)
+{
mrs r0, cpsr
orr r1, r0, #HW_PSR_DISABLE_IRQ_FIQ
msr cpsr_c, r1
@@ -39,7 +39,8 @@ ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) {
bx lr
}
-ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) {
+ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state)
+{
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ_FIQ
orr r2, r2, r0
@@ -48,25 +49,29 @@ ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) {
bx lr
}
-ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void) {
+ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void)
+{
mrs r0, cpsr
and r0, r0, #HW_PSR_DISABLE_IRQ
bx lr
}
-ARM_FUNC asm OSProcMode OS_GetProcMode(void) {
+ARM_FUNC asm OSProcMode OS_GetProcMode(void)
+{
mrs r0, cpsr
and r0, r0, #HW_PSR_CPU_MODE_MASK
bx lr
}
-ARM_FUNC asm void OS_SpinWait(u32 cycles) {
+ARM_FUNC asm void OS_SpinWait(u32 cycles)
+{
subs r0, r0, #0x4
bhs OS_SpinWait
bx lr
}
-ARM_FUNC void OS_WaitVBlankIntr(void) {
+ARM_FUNC void OS_WaitVBlankIntr(void)
+{
SVC_WaitByLoop(0x1);
OS_WaitIrq(TRUE, OS_IE_V_BLANK);
}
diff --git a/arm9/lib/src/OS_terminate_proc.c b/arm9/lib/src/OS_terminate_proc.c
index 2e5f3fb2..fdc4dbff 100644
--- a/arm9/lib/src/OS_terminate_proc.c
+++ b/arm9/lib/src/OS_terminate_proc.c
@@ -2,14 +2,17 @@
#include "function_target.h"
#include "OS_system.h"
-ARM_FUNC void OS_Terminate(void) {
- while (TRUE) {
+ARM_FUNC void OS_Terminate(void)
+{
+ while (TRUE)
+ {
(void)OS_DisableInterrupts();
OS_Halt();
}
}
-ARM_FUNC asm void OS_Halt(void) {
+ARM_FUNC asm void OS_Halt(void)
+{
mov r0, #0x0
mcr p15, 0x0, r0, c7, c0, 0x4 //Wait For Interrupt (Halt)
bx lr
diff --git a/arm9/lib/src/OS_thread.c b/arm9/lib/src/OS_thread.c
index 2ecde69a..35e91c22 100644
--- a/arm9/lib/src/OS_thread.c
+++ b/arm9/lib/src/OS_thread.c
@@ -32,6 +32,19 @@ OSThread OSi_IdleThread;
u32 OSi_IdleThreadStack[50];
+static s32 OSi_GetUnusedThreadId(void);
+static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
+static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
+static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
+static void OSi_InsertThreadToList(OSThread *thread);
+static void OSi_RemoveThreadFromList(OSThread *thread);
+static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
+static void OSi_ExitThread(void *arg);
+static void OSi_ExitThread_Destroy(void);
+static void OSi_CancelThreadAlarmForSleep(OSThread *thread);
+static void OSi_SleepAlarmCallback(void *arg);
+static void OSi_IdleThreadProc(void *);
+
ARM_FUNC static s32 OSi_GetUnusedThreadId(void)
{
return ++OSi_ThreadIdCount;
diff --git a/arm9/lib/src/OS_tick.c b/arm9/lib/src/OS_tick.c
index 17192117..b0e81054 100644
--- a/arm9/lib/src/OS_tick.c
+++ b/arm9/lib/src/OS_tick.c
@@ -8,6 +8,8 @@ static u16 OSi_UseTick = FALSE;
vu64 OSi_TickCounter;
BOOL OSi_NeedResetTimer = FALSE;
+static void OSi_CountUpTick(void);
+
ARM_FUNC void OS_InitTick(void)
{
if (OSi_UseTick)
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
new file mode 100644
index 00000000..4f33530a
--- /dev/null
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -0,0 +1,3485 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD11_0222D5C0
+MOD11_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ add r6, r0, #0
+ bl FUN_0200628C
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xf
+ bhi _0222D6D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222D5E0: ; jump table
+ .short _0222D600 - _0222D5E0 - 2 ; case 0
+ .short _0222D620 - _0222D5E0 - 2 ; case 1
+ .short _0222D65A - _0222D5E0 - 2 ; case 2
+ .short _0222D670 - _0222D5E0 - 2 ; case 3
+ .short _0222D686 - _0222D5E0 - 2 ; case 4
+ .short _0222D696 - _0222D5E0 - 2 ; case 5
+ .short _0222D6AC - _0222D5E0 - 2 ; case 6
+ .short _0222D6C8 - _0222D5E0 - 2 ; case 7
+ .short _0222D6DA - _0222D5E0 - 2 ; case 8
+ .short _0222D6EE - _0222D5E0 - 2 ; case 9
+ .short _0222D704 - _0222D5E0 - 2 ; case 10
+ .short _0222D720 - _0222D5E0 - 2 ; case 11
+ .short _0222D742 - _0222D5E0 - 2 ; case 12
+ .short _0222D752 - _0222D5E0 - 2 ; case 13
+ .short _0222D7C2 - _0222D5E0 - 2 ; case 14
+ .short _0222D7E4 - _0222D5E0 - 2 ; case 15
+_0222D600:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #5
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, [r5]
+ mov r0, #4
+ tst r0, r1
+ beq _0222D61A
+ mov r0, #1
+ str r0, [r4]
+ b _0222D7EA
+_0222D61A:
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D620:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222F29C
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02033778
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222D648
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ bl FUN_0202A0E8
+ b _0222D654
+_0222D648:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0202A0E8
+_0222D654:
+ mov r0, #2
+ str r0, [r4]
+ b _0222D7EA
+_0222D65A:
+ add r0, r6, #0
+ bl MOD11_0222F4E4
+ cmp r0, #1
+ bne _0222D6D2
+ add r0, r6, #0
+ bl MOD11_0222F93C
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D670:
+ add r0, r6, #0
+ bl MOD11_0222F988
+ cmp r0, #1
+ bne _0222D680
+ mov r0, #4
+ str r0, [r4]
+ b _0222D7EA
+_0222D680:
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D686:
+ add r0, r6, #0
+ bl MOD11_0222FABC
+ cmp r0, #1
+ bne _0222D6D2
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D696:
+ add r0, r6, #0
+ bl MOD11_0222FB04
+ cmp r0, #1
+ bne _0222D6A6
+ mov r0, #6
+ str r0, [r4]
+ b _0222D7EA
+_0222D6A6:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6AC:
+ add r0, r6, #0
+ bl MOD11_0222FC38
+ cmp r0, #1
+ bne _0222D6D2
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #0x3d
+ bl FUN_02031588
+ b _0222D7EA
+_0222D6C8:
+ mov r0, #0x3d
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _0222D6D4
+_0222D6D2:
+ b _0222D7EA
+_0222D6D4:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6DA:
+ ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r6, #0
+ bl MOD11_0222DB50
+ mov r0, #9
+ str r0, [r4]
+ b _0222D7EA
+_0222D6EE:
+ add r0, r6, #0
+ bl MOD11_0222DF4C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r6, #0
+ bl MOD11_0222DFA4
+ mov r0, #0xa
+ str r0, [r4]
+ b _0222D7EA
+_0222D704:
+ add r0, r6, #0
+ bl MOD11_0222FC80
+ cmp r0, #1
+ bne _0222D714
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222D7EA
+_0222D714:
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D720:
+ add r0, r6, #0
+ bl MOD11_0222FE58
+ cmp r0, #1
+ bne _0222D7EA
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0x3e
+ bl FUN_02031588
+ mov r0, #0xc
+ str r0, [r4]
+ b _0222D7EA
+_0222D742:
+ mov r0, #0x3e
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222D7EA
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D752:
+ add r1, sp, #0x24
+ add r2, sp, #0x20
+ bl MOD11_02230D38
+ add r6, r0, #0
+ beq _0222D7BC
+ mov r0, #3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ mov r3, #0x49
+ str r2, [sp]
+ add r2, r0, #0
+ sub r2, #0x58
+ ldr r2, [r5, r2]
+ str r2, [sp, #4]
+ add r2, r0, #0
+ sub r2, #0x60
+ ldr r2, [r5, r2]
+ str r2, [sp, #8]
+ add r2, r0, #0
+ sub r2, #0x24
+ ldr r2, [r5, r2]
+ sub r0, #0x40
+ str r2, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ add r3, #0xe7
+ ldr r0, [r5, #4]
+ ldr r3, [r5, r3]
+ bl FUN_0206C700
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xe
+ str r0, [r4]
+ b _0222D7EA
+_0222D7BC:
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D7C2:
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r5, [r5, r0]
+ add r0, r5, #0
+ bl FUN_0206C91C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r5, #0
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D7E4:
+ add sp, #0x28
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222D7EA:
+ mov r0, #0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
+_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
+
+ thumb_func_start MOD11_0222D7F8
+MOD11_0222D7F8: ; 0x0222D7F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #4]
+ bl MOD11_022584AC
+ ldr r1, _0222D834 ; =0x000023FB
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ mov r0, #2
+ bl FUN_02002CF8
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD11_02231338
+ ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ pop {r4, pc}
+ .align 2, 0
+_0222D834: .word 0x000023FB
+_0222D838: .word SDK_OVERLAY_MODULE_08_ID
+_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
+
+ thumb_func_start MOD11_0222D840
+MOD11_0222D840: ; 0x0222D840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ bl MOD11_0222E4E8
+ add r0, r4, #0
+ bl MOD11_0222E51C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ mov r0, #2
+ bl FUN_02002CF8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222D88C
+MOD11_0222D88C: ; 0x0222D88C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02231338
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ ldr r1, _0222D940 ; =0x000023FB
+ mov r0, #2
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl MOD11_02258450
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #1
+ bl FUN_02002840
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D938: .word SDK_OVERLAY_MODULE_09_ID
+_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
+_0222D940: .word 0x000023FB
+
+ thumb_func_start MOD11_0222D944
+MOD11_0222D944: ; 0x0222D944
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_02231410
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222D980
+MOD11_0222D980: ; 0x0222D980
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ ldr r1, _0222DB38 ; =0x000023FB
+ add r5, r0, #0
+ ldrb r2, [r5, r1]
+ mov r0, #1
+ ldr r4, _0222DB3C ; =MOD11_0225DAE0
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ add r3, sp, #0x14
+ mov r2, #0xa
+_0222D99A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222D99A
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ add r2, sp, #0x14
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, sp, #0x30
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #3
+ add r2, sp, #0x4c
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222DB40 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ add r1, r1, #3
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #9
+ str r0, [sp, #8]
+ lsl r3, r3, #0xa
+ ldr r6, [r5, r3]
+ ldr r0, [r5, #0x28]
+ lsl r3, r6, #1
+ add r3, r6, r3
+ add r3, #0x9e
+ add r2, r3, r2
+ mov r1, #7
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ mov r1, #2
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222DB44 ; =0xFFFF1FFF
+ ldr r3, _0222DB48 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222DB4C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _0222DB38 ; =0x000023FB
+ mov r3, #2
+ ldrb r1, [r5, r0]
+ mov r2, #1
+ orr r1, r3
+ strb r1, [r5, r0]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ bl MOD11_0222FE94
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222DB38: .word 0x000023FB
+_0222DB3C: .word MOD11_0225DAE0
+_0222DB40: .word 0x04000008
+_0222DB44: .word 0xFFFF1FFF
+_0222DB48: .word 0x04001000
+_0222DB4C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222DB50
+MOD11_0222DB50: ; 0x0222DB50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_020222F0
+ add r5, r0, #0
+ bl FUN_020222E8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl GetLCRNGSeed
+ ldr r1, _0222DF0C ; =0x00002430
+ str r0, [r4, r1]
+ add r0, sp, #0x20
+ add r1, sp, #0x14
+ bl FUN_0201265C
+ ldr r0, _0222DF10 ; =gUnknown21C48B8
+ ldr r6, [sp, #0x24]
+ ldr r5, [r0, #0x2c]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ lsl r6, r6, #8
+ add r0, r1, r0
+ lsl r3, r0, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x20]
+ lsl r2, r0, #0x10
+ ldr r0, [sp, #0x28]
+ mul r6, r0
+ lsl r0, r6, #0x10
+ add r0, r1, r0
+ add r0, r2, r0
+ add r0, r3, r0
+ add r0, r5, r0
+ bl SetLCRNGSeed
+ bl MOD11_0222EF30
+ str r0, [r4]
+ bl FUN_02015F1C
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ mov r0, #0xe
+ mov r1, #1
+ mov r2, #0xf
+ mov r3, #5
+ bl FUN_0200B870
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r2, r1, #9
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #5
+ mov r1, #3
+ bl FUN_02018FF4
+ mov r7, #0x73
+ str r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #2
+_0222DC42:
+ mov r1, #0x32
+ mov r0, #5
+ lsl r1, r1, #6
+ bl AllocFromHeap
+ str r0, [r5, r7]
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222DC42
+ mov r0, #0x40
+ mov r1, #5
+ bl FUN_0201C24C
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD11_0222E264
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #5
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ ldr r1, _0222DF14 ; =MOD11_0225DA20
+ ldr r2, _0222DF18 ; =MOD11_0225D9D8
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r1, _0222DF1C ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _0222DF20 ; =MOD11_0225D9EC
+ bl FUN_0200BF60
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #5
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0xc0
+ bl FUN_020081B4
+ add r0, r4, #0
+ bl MOD11_02231390
+ bl MOD11_0222EFDC
+ mov r0, #5
+ bl MOD08_02211F5C
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD11_0222E470
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0x10]
+ mov r0, #5
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #5
+ bl String_ctor
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r1, _0222DF24 ; =0x00002224
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_020031FC
+ ldr r1, _0222DF28 ; =0x00002304
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl MOD11_02230C68
+ mov r1, #0
+ lsl r5, r0, #2
+ mov r3, #9
+ str r1, [sp]
+ mov r0, #0x70
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =MOD11_0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r2, #2
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0xc0
+ str r0, [sp]
+ add r0, #0x40
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =MOD11_0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xdf
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ mov r1, #2
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =MOD11_0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ add r2, r1, #0
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r1, #0
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #1
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #3
+ bl FUN_02003914
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ mov r2, #0xb
+ mov r3, #5
+ bl FUN_020142EC
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020143A8
+ ldr r0, _0222DF34 ; =MOD11_0222F100
+ ldr r2, _0222DF38 ; =0x0000EA60
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x1c]
+ ldr r0, _0222DF3C ; =MOD11_0222F144
+ ldr r2, _0222DF40 ; =0x0000C350
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x20]
+ mov r2, #0x4b
+ ldr r0, _0222DF44 ; =MOD11_0222F254
+ add r1, r4, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA60
+ str r0, [r4, #0x24]
+ mov r1, #0x32
+ ldr r0, _0222DF48 ; =0x00002434
+ mvn r1, r1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r0, r4, #0
+ bl MOD11_02230218
+ bl FUN_0206F1C0
+ mov r0, #5
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02014BF4
+ mov r1, #0x71
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_0201C328
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DF0C: .word 0x00002430
+_0222DF10: .word gUnknown21C48B8
+_0222DF14: .word MOD11_0225DA20
+_0222DF18: .word MOD11_0225D9D8
+_0222DF1C: .word 0x00100010
+_0222DF20: .word MOD11_0225D9EC
+_0222DF24: .word 0x00002224
+_0222DF28: .word 0x00002304
+_0222DF2C: .word MOD11_0225DB88
+_0222DF30: .word 0x0000FFFF
+_0222DF34: .word MOD11_0222F100
+_0222DF38: .word 0x0000EA60
+_0222DF3C: .word MOD11_0222F144
+_0222DF40: .word 0x0000C350
+_0222DF44: .word MOD11_0222F254
+_0222DF48: .word 0x00002434
+
+ thumb_func_start MOD11_0222DF4C
+MOD11_0222DF4C: ; 0x0222DF4C
+ push {r4, r5, r6, lr}
+ bl FUN_02006278
+ ldr r1, _0222DF9C ; =0x000023F8
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DF7A
+ ldr r2, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ ldr r1, [r4, #0x30]
+ beq _0222DF6C
+ bl MOD11_0223D238
+ b _0222DF7A
+_0222DF6C:
+ bl MOD11_0223D238
+ ldr r1, _0222DFA0 ; =0x000023FA
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02254820
+_0222DF7A:
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222DF96
+ add r5, r4, #0
+_0222DF84:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB38
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222DF84
+_0222DF96:
+ ldr r0, _0222DFA0 ; =0x000023FA
+ ldrb r0, [r4, r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222DF9C: .word 0x000023F8
+_0222DFA0: .word 0x000023FA
+
+ thumb_func_start MOD11_0222DFA4
+MOD11_0222DFA4: ; 0x0222DFA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r4, #0
+ bl MOD11_02230EC8
+ ldr r0, _0222E248 ; =0x0000241C
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ beq _0222DFE4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02230FA8
+_0222DFE4:
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+ add r5, r4, #0
+_0222DFEC:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r6, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r5, #0x68]
+ bl FreeToHeap
+ add r1, r6, #0
+ add r1, #0xf8
+ ldr r0, [r5, #0x48]
+ ldr r1, [r1]
+ bl FUN_0202393C
+ ldr r0, [r5, #0x48]
+ bl FreeToHeap
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #4
+ blt _0222DFEC
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020143D0
+ mov r1, #0x42
+ lsl r1, r1, #2
+ ldr r0, [r4, #0x58]
+ ldr r1, [r7, r1]
+ bl FUN_0206EBB4
+ ldr r0, [r4, #0x58]
+ bl FreeToHeap
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r4, #0x60]
+ ldr r1, [r7, r1]
+ bl FUN_02023D80
+ ldr r0, [r4, #0x60]
+ bl FreeToHeap
+ mov r0, #0x45
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add r1, r0, #0
+ ldr r2, [r4, #0x5c]
+ sub r1, #8
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x14
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x20
+ str r2, [r7, r1]
+ add r1, r0, #0
+ ldr r2, _0222E24C ; =0x00002410
+ add r1, #0x7c
+ ldr r3, [r4, r2]
+ add r0, #0x5c
+ str r3, [r7, r1]
+ add r1, r2, #0
+ add r1, #0xc
+ ldrb r3, [r4, r1]
+ mov r1, #0x3f
+ add r2, #0x28
+ and r1, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, r2]
+ mov r2, #4
+ str r1, [r7, r0]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ mov r3, #0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #0
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ add r7, r1, #0
+ mov r6, #0
+ add r5, r4, #0
+ add r7, #0x8c
+_0222E10A:
+ ldr r0, [r5, r7]
+ bl FreeToHeap
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222E10A
+ ldr r0, [r4, #0x18]
+ bl FreeToHeap
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0xc]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x10]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ bl FUN_02012EAC
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_02212024
+ ldr r0, [r4, #0x30]
+ bl MOD11_0223D284
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222E194
+ ldr r7, _0222E250 ; =0x000023F9
+ add r5, r4, #0
+_0222E180:
+ ldrb r2, [r4, r7]
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB54
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222E180
+_0222E194:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020072E8
+ ldr r0, _0222E250 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ beq _0222E1AC
+ add r0, r4, #0
+ bl MOD11_0222D840
+_0222E1AC:
+ mov r0, #0
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_020191A4
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ mov r0, #0x87
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x20]
+ bl FUN_0200CAB4
+ bl FUN_0201CD04
+ ldr r0, [r4]
+ bl MOD11_0222EFD4
+ ldr r0, _0222E254 ; =0x00002430
+ ldr r0, [r4, r0]
+ bl SetLCRNGSeed
+ add r0, r4, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222E220
+ ldr r0, _0222E258 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+_0222E220:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201C350
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222E244
+ ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
+ bl UnloadOverlayByID
+_0222E244:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E248: .word 0x0000241C
+_0222E24C: .word 0x00002410
+_0222E250: .word 0x000023F9
+_0222E254: .word 0x00002430
+_0222E258: .word 0x00000704
+_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
+_0222E260: .word SDK_OVERLAY_MODULE_16_ID
+
+ thumb_func_start MOD11_0222E264
+MOD11_0222E264: ; 0x0222E264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201E6D8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ ldr r6, _0222E450 ; =MOD11_0225DA68
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E282:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E282
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ ldr r6, _0222E454 ; =MOD11_0225D9A8
+ add r3, sp, #0x10
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r1, _0222E458 ; =0x000023FB
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ ldr r6, _0222E45C ; =MOD11_0225DB34
+ add r3, sp, #0x48
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ mov r2, #0xa
+_0222E2F0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E2F0
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x48
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x64
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x80
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222E460 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD11_02258450
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r7, r0, #0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ mov r1, #9
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ mov r0, #7
+ add r1, r1, #3
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #9
+ str r0, [sp, #8]
+ lsl r2, r2, #0xa
+ ldr r3, [r5, r2]
+ ldr r0, [r5, #0x28]
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, #0x9e
+ mov r1, #7
+ add r2, r2, r6
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r7, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222E464 ; =0xFFFF1FFF
+ ldr r3, _0222E468 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222E46C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E450: .word MOD11_0225DA68
+_0222E454: .word MOD11_0225D9A8
+_0222E458: .word 0x000023FB
+_0222E45C: .word MOD11_0225DB34
+_0222E460: .word 0x04000008
+_0222E464: .word 0xFFFF1FFF
+_0222E468: .word 0x04001000
+_0222E46C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222E470
+MOD11_0222E470: ; 0x0222E470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD11_02230294
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD11_022583D8
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD11_022583D8
+ add r0, r5, #0
+ bl MOD11_0222FF78
+ str r0, [sp]
+ ldr r0, [r5, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0222E4E2
+ add r6, r5, #0
+_0222E4AC:
+ ldr r1, [sp]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ ldr r1, [r6, #0x34]
+ add r0, r5, #0
+ add r3, r7, #0
+ bl MOD11_0224CA94
+ ldr r0, [r5, #0x44]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blt _0222E4AC
+_0222E4E2:
+ bl FUN_02033E74
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222E4E8
+MOD11_0222E4E8: ; 0x0222E4E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_022584AC
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222E51C
+MOD11_0222E51C: ; 0x0222E51C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222E520
+MOD11_0222E520: ; 0x0222E520
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r0, [r1]
+ str r1, [sp, #4]
+ str r0, [r4, #0x2c]
+ mov r7, #0
+ add r6, r4, #0
+ add r5, r1, #0
+_0222E532:
+ mov r0, #5
+ bl FUN_02023928
+ add r1, r0, #0
+ add r0, r5, #0
+ str r1, [r6, #0x48]
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0202393C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r7, r7, #1
+ str r0, [r6, #0x78]
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E532
+ mov r0, #5
+ bl FUN_0206EB88
+ str r0, [r4, #0x58]
+ mov r1, #0x42
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x58]
+ bl FUN_0206EBB4
+ mov r0, #5
+ bl FUN_02023D6C
+ str r0, [r4, #0x60]
+ mov r1, #0x11
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x60]
+ bl FUN_02023D80
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldr r0, [sp, #4]
+ add r2, r1, #0
+ ldr r0, [r0, r1]
+ add r3, r1, #0
+ str r0, [r4, #0x64]
+ ldr r0, [sp, #4]
+ add r2, #0x1c
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa0
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x38
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa4
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ sub r2, #8
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ str r0, [r4, #0x5c]
+ ldr r0, [sp, #4]
+ add r2, #0x14
+ ldr r2, [r0, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ str r2, [r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x50
+ ldr r2, [r0, r2]
+ ldr r0, _0222E8BC ; =0x00002420
+ add r3, #0x20
+ str r2, [r4, r0]
+ ldr r2, [sp, #4]
+ ldr r3, [r2, r3]
+ add r2, r4, #0
+ add r2, #0x9c
+ str r3, [r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x7c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x10
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x40
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x24
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x3c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x20
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x44
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x1c
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x4c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x14
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x78
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x18
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x80
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #8
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x54
+ ldr r3, [r2, r3]
+ add r2, r0, #4
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x58
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x60
+ ldr r2, [r2, r3]
+ add r0, #8
+ str r2, [r4, r0]
+ ldr r0, [sp, #4]
+ add r1, #0x30
+ ldr r0, [r0, r1]
+ mov r1, #0x86
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0xd4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222E67E
+ bl ErrorHandling
+_0222E67E:
+ ldr r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r4, [sp, #0x30]
+ add r6, r5, #0
+ add r7, r4, #0
+_0222E68A:
+ ldr r0, [sp, #0x30]
+ ldr r1, [r5, #0x18]
+ add r0, #0xa0
+ strh r1, [r0]
+ add r3, r6, #0
+ add r2, r7, #0
+ mov r0, #6
+ add r3, #0x28
+ add r2, #0xac
+ mov ip, r0
+_0222E69E:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0222E69E
+ ldr r0, [r3]
+ add r5, r5, #4
+ str r0, [r2]
+ ldr r0, [sp, #0x30]
+ add r6, #0x34
+ add r0, r0, #2
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #8]
+ add r7, #0x34
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _0222E68A
+ add r0, r4, #0
+ bl MOD11_0223D1DC
+ str r0, [r4, #0x30]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #5
+_0222E6D2:
+ add r0, r7, #0
+ bl FUN_0206B8AC
+ str r0, [r5, #0x68]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222E6D2
+ ldr r0, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r0
+ bne _0222E6EC
+ b _0222EA8A
+_0222E6EC:
+ add r0, r4, #0
+ bl FUN_0206BF90
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0222FEC0
+ ldr r1, [r4, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E7D0
+ ldr r6, _0222E8C0 ; =MOD11_0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222E712:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r7, #0x34]
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E712
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E734:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E734
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E7C6
+ add r7, r4, #0
+_0222E760:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E7AA
+_0222E76C:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E79E
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E79E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E7AA
+_0222E79E:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E76C
+_0222E7AA:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0222E760
+_0222E7C6:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E7D0:
+ mov r0, #8
+ tst r0, r1
+ beq _0222E8AC
+ mov r5, #0
+ add r6, r4, #0
+_0222E7DA:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldr r0, [sp, #0x34]
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020313CC
+ ldr r1, _0222E8C4 ; =MOD11_0225D9C8
+ lsl r2, r7, #2
+ add r1, r1, r2
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x3c
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r6, #0x34]
+ add r5, r5, #1
+ add r6, r6, #4
+ cmp r5, #4
+ blt _0222E7DA
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E810:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E810
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E8A2
+ add r7, r4, #0
+_0222E83C:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E886
+_0222E848:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E87A
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E87A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E886
+_0222E87A:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E848
+_0222E886:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x10]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0222E83C
+_0222E8A2:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E8AC:
+ mov r0, #2
+ tst r0, r1
+ bne _0222E8B4
+ b _0222E9D4
+_0222E8B4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222E8C8 ; =MOD11_0225D9A0
+ b _0222E8CC
+ nop
+_0222E8BC: .word 0x00002420
+_0222E8C0: .word MOD11_0225DC18
+_0222E8C4: .word MOD11_0225D9C8
+_0222E8C8: .word MOD11_0225D9A0
+_0222E8CC:
+ lsl r0, r0, #2
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E8D4:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E8D4
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E8FE:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E8FE
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E9D2
+_0222E920:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E9B8
+_0222E938:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x14]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222E984
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+ b _0222E9AC
+_0222E984:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+_0222E9AC:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222E938
+_0222E9B8:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0222E920
+_0222E9D2:
+ b _0222EA80
+_0222E9D4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222EC6C ; =MOD11_0225D99C
+ lsl r0, r0, #1
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E9E0:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222E9E0
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x18]
+ add r7, r4, #0
+_0222EA0C:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EA60
+_0222EA22:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EA54
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA54
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA60
+_0222EA54:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EA22
+_0222EA60:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0222EA0C
+_0222EA80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EE3E
+_0222EA8A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0222EB90
+ ldr r6, _0222EC70 ; =MOD11_0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EA96:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EA96
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EAC0:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EAC0
+ ldr r0, [r4, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _0222EB80
+_0222EAE0:
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r5, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _0222EB64
+_0222EAEE:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ cmp r7, #2
+ bne _0222EB2E
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ ldr r0, [sp, #0x38]
+ cmp r0, r5
+ bne _0222EB64
+ b _0222EB56
+_0222EB2E:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB64
+_0222EB56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0222EAEE
+_0222EB64:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #2
+ add r3, r7, #0
+ bl MOD11_0224C54C
+ cmp r7, #0
+ bne _0222EB78
+ str r5, [sp, #0x38]
+_0222EB78:
+ ldr r0, [r4, #0x44]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0222EAE0
+_0222EB80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EB90:
+ mov r1, #8
+ tst r1, r0
+ beq _0222EC60
+ ldr r6, _0222EC70 ; =MOD11_0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EB9C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EB9C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EBC6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EBC6
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222EC50
+ add r7, r4, #0
+_0222EBEA:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EC34
+_0222EBF6:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EC28
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC28
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC34
+_0222EC28:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EBF6
+_0222EC34:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _0222EBEA
+_0222EC50:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EC60:
+ mov r1, #2
+ tst r0, r1
+ bne _0222EC68
+ b _0222ED8A
+_0222EC68:
+ ldr r6, _0222EC70 ; =MOD11_0225DC18
+ b _0222EC78
+ .align 2, 0
+_0222EC6C: .word MOD11_0225D99C
+_0222EC70: .word MOD11_0225DC18
+_0222EC74: .word 0x000023F8
+_0222EC78:
+ mov r5, #0
+ add r7, r4, #0
+_0222EC7C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EC7C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222ECA6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222ECA6
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222ED7A
+_0222ECC8:
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222ED60
+_0222ECE0:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x20]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222ED2C
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x28]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+ b _0222ED54
+_0222ED2C:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+_0222ED54:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222ECE0
+_0222ED60:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0222ECC8
+_0222ED7A:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222ED8A:
+ ldr r6, _0222EEE4 ; =MOD11_0225D998
+ mov r5, #0
+ add r7, r4, #0
+_0222ED90:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222ED90
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_0222EDBC:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EE10
+_0222EDD2:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EE04
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE04
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE10
+_0222EE04:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EDD2
+_0222EE10:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blt _0222EDBC
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+_0222EE3E:
+ mov r0, #2
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0222EE5A
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r2, r4, #0
+ mov r1, #0x8f
+ add r2, #0xf4
+ bl GetMonData
+_0222EE5A:
+ ldr r1, [r4, #0x2c]
+ mov r0, #1
+ tst r0, r1
+ beq _0222EEDC
+ add r0, r4, #0
+ add r0, #0xe1
+ ldrb r0, [r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ beq _0222EE7C
+ ldr r0, _0222EEE8 ; =0x00000149
+ ldrb r0, [r4, r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ bne _0222EEDC
+_0222EE7C:
+ ldr r0, [r4, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEAC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EE8C:
+ ldr r0, [r4, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EE8C
+_0222EEAC:
+ ldr r0, [r4, #0x70]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEDC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EEBC:
+ ldr r0, [r4, #0x70]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x70]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EEBC
+_0222EEDC:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EEE0: .word 0x000023F8
+_0222EEE4: .word MOD11_0225D998
+_0222EEE8: .word 0x00000149
+_0222EEEC: .word 0x00002404
+
+ thumb_func_start MOD11_0222EEF0
+MOD11_0222EEF0: ; 0x0222EEF0
+ sub r0, #0x3e
+ cmp r0, #0x11
+ bhi _0222EF2A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222EF02: ; jump table
+ .short _0222EF26 - _0222EF02 - 2 ; case 0
+ .short _0222EF2A - _0222EF02 - 2 ; case 1
+ .short _0222EF26 - _0222EF02 - 2 ; case 2
+ .short _0222EF26 - _0222EF02 - 2 ; case 3
+ .short _0222EF26 - _0222EF02 - 2 ; case 4
+ .short _0222EF26 - _0222EF02 - 2 ; case 5
+ .short _0222EF26 - _0222EF02 - 2 ; case 6
+ .short _0222EF26 - _0222EF02 - 2 ; case 7
+ .short _0222EF2A - _0222EF02 - 2 ; case 8
+ .short _0222EF2A - _0222EF02 - 2 ; case 9
+ .short _0222EF2A - _0222EF02 - 2 ; case 10
+ .short _0222EF2A - _0222EF02 - 2 ; case 11
+ .short _0222EF26 - _0222EF02 - 2 ; case 12
+ .short _0222EF26 - _0222EF02 - 2 ; case 13
+ .short _0222EF26 - _0222EF02 - 2 ; case 14
+ .short _0222EF26 - _0222EF02 - 2 ; case 15
+ .short _0222EF26 - _0222EF02 - 2 ; case 16
+ .short _0222EF26 - _0222EF02 - 2 ; case 17
+_0222EF26:
+ mov r0, #1
+ bx lr
+_0222EF2A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222EF30
+MOD11_0222EF30: ; 0x0222EF30
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222EF4C ; =MOD11_0222EF50
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222EF4C: .word MOD11_0222EF50
+
+ thumb_func_start MOD11_0222EF50
+MOD11_0222EF50: ; 0x0222EF50
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222EFBC ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _0222EFC0 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0222EFC4 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222EFC8 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0222EFCC ; =0xBFFF0000
+ ldr r0, _0222EFD0 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222EFBC: .word 0x04000008
+_0222EFC0: .word 0xFFFFCFFD
+_0222EFC4: .word 0x0000CFFB
+_0222EFC8: .word 0x00007FFF
+_0222EFCC: .word 0xBFFF0000
+_0222EFD0: .word 0x04000580
+
+ thumb_func_start MOD11_0222EFD4
+MOD11_0222EFD4: ; 0x0222EFD4
+ ldr r3, _0222EFD8 ; =FUN_020223BC
+ bx r3
+ .align 2, 0
+_0222EFD8: .word FUN_020223BC
+
+ thumb_func_start MOD11_0222EFDC
+MOD11_0222EFDC: ; 0x0222EFDC
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F014 ; =UNK_021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222F018 ; =UNK_021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0xc0
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222F004
+ bl ErrorHandling
+_0222F004:
+ cmp r5, #0
+ bne _0222F00C
+ bl ErrorHandling
+_0222F00C:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F014: .word UNK_021064B8
+_0222F018: .word UNK_021064C0
+
+ thumb_func_start MOD11_0222F01C
+MOD11_0222F01C: ; 0x0222F01C
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ bl LCRandom
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0222F040
+ mov r0, #1
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r0, _0222F0BC ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0222F0C0 ; =0x04001050
+ strh r1, [r0]
+_0222F040:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0222F064
+ mov r0, #2
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C4 ; =MOD11_0225DA90
+ add r3, sp, #0x28
+ mov r2, #5
+_0222F056:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F056
+ add r0, sp, #0x28
+ bl FUN_0201E66C
+_0222F064:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0222F088
+ mov r0, #4
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C8 ; =MOD11_0225DAB8
+ add r3, sp, #0
+ mov r2, #5
+_0222F07A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F07A
+ add r0, sp, #0
+ bl FUN_0201E66C
+_0222F088:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x28]
+ bl FUN_0200372C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0CC ; =0x027E0000
+ ldr r1, _0222F0D0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ nop
+_0222F0B8: .word 0x000023FB
+_0222F0BC: .word 0x04000050
+_0222F0C0: .word 0x04001050
+_0222F0C4: .word MOD11_0225DA90
+_0222F0C8: .word MOD11_0225DAB8
+_0222F0CC: .word 0x027E0000
+_0222F0D0: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F0D4
+MOD11_0222F0D4: ; 0x0222F0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0200372C
+ bl FUN_0201C30C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0F8 ; =0x027E0000
+ ldr r1, _0222F0FC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_0222F0F8: .word 0x027E0000
+_0222F0FC: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F100
+MOD11_0222F100: ; 0x0222F100
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F140 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F118
+ cmp r0, #3
+ bne _0222F13E
+_0222F118:
+ cmp r0, #0
+ bne _0222F120
+ bl MOD08_02215A44
+_0222F120:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_0222F13E:
+ pop {r4, pc}
+ .align 2, 0
+_0222F140: .word 0x000023F9
+
+ thumb_func_start MOD11_0222F144
+MOD11_0222F144: ; 0x0222F144
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ mov r5, #0
+ bl MOD11_02231474
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0222F24E
+ mov r0, #2
+ tst r0, r4
+ beq _0222F186
+ mov r0, #1
+ tst r0, r4
+ beq _0222F24E
+ ldr r0, _0222F250 ; =0x00000704
+ add r1, r5, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD11_02231484
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F186:
+ ldr r0, [sp]
+ add r4, r5, #0
+ cmp r0, #0
+ ble _0222F1D0
+_0222F18E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ bl MOD11_02253A58
+ cmp r0, #0
+ bne _0222F1C8
+ add r0, r7, #0
+ bl MOD11_02253A70
+ add r1, r0, #0
+ beq _0222F1C8
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x2c]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #1
+ bne _0222F1C8
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_0222F1C8:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222F18E
+_0222F1D0:
+ cmp r5, #0
+ beq _0222F1F6
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ bne _0222F1F6
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_02231484
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ b _0222F214
+_0222F1F6:
+ cmp r5, #0
+ bne _0222F214
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F214
+ ldr r0, _0222F250 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_02231484
+_0222F214:
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F24E
+ add r0, r6, #0
+ bl MOD11_022314A0
+ add r4, r0, #0
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0222F24E
+ sub r1, r4, #1
+ bne _0222F244
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F244:
+ lsl r1, r1, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD11_022314B0
+_0222F24E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F250: .word 0x00000704
+
+ thumb_func_start MOD11_0222F254
+MOD11_0222F254: ; 0x0222F254
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F280 ; =0x00002434
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #1
+ add r0, r0, #3
+ str r0, [r4, r3]
+ ldr r0, [r4, #4]
+ ldr r3, [r4, r3]
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, _0222F280 ; =0x00002434
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F27C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222F27C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F280: .word 0x00002434
+
+ .section .rodata
+
+ .global MOD11_0225D998
+MOD11_0225D998: ; 0x0225D998
+ .byte 0x00, 0x01, 0x00, 0x00
+
+ .global MOD11_0225D99C
+MOD11_0225D99C: ; 0x0225D99C
+ .byte 0x00, 0x01, 0x01, 0x00
+
+ .global MOD11_0225D9A0
+MOD11_0225D9A0: ; 0x0225D9A0
+ .byte 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04
+
+ .global MOD11_0225D9A8
+MOD11_0225D9A8: ; 0x0225D9A8
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
+
+ .global MOD11_0225D9B8
+MOD11_0225D9B8: ; 0x0225D9B8
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
+
+ .global MOD11_0225D9C8
+MOD11_0225D9C8: ; 0x0225D9C8
+ .byte 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02, 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02
+
+ .global MOD11_0225D9D8
+MOD11_0225D9D8: ; 0x0225D9D8
+ .byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00
+ .byte 0x10, 0x00, 0x00, 0x00
+
+ .global MOD11_0225D9EC
+MOD11_0225D9EC: ; 0x0225D9EC
+ .byte 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
+ .byte 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DA04
+MOD11_0225DA04: ; 0x0225DA04
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DA20
+MOD11_0225DA20: ; 0x0225DA20
+ .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DA40
+MOD11_0225DA40: ; 0x0225DA40
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DA68
+MOD11_0225DA68: ; 0x0225DA68
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DA90
+MOD11_0225DA90: ; 0x0225DA90
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DAB8
+MOD11_0225DAB8: ; 0x0225DAB8
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DAE0
+MOD11_0225DAE0: ; 0x0225DAE0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DB34
+MOD11_0225DB34: ; 0x0225DB34
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD11_0225DB88
+MOD11_0225DB88: ; 0x0225DB88
+ .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00
+ .byte 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00
+ .byte 0x00, 0x5E, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00
+ .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x5F, 0x7F, 0x00, 0x00
+ .byte 0x5F, 0x5B, 0x00, 0x00, 0xD8, 0x5A, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
+ .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
+ .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
+ .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
+ .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
+
+ .global MOD11_0225DC18
+MOD11_0225DC18: ; 0x0225DC18
+ .byte 0x02, 0x03, 0x04, 0x05
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11_thumb2.s
index 7a18d017..f66fef5e 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -3,3395 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD11_0222D5C0
-MOD11_0222D5C0: ; 0x0222D5C0
- push {r4, r5, r6, lr}
- sub sp, #0x28
- add r4, r1, #0
- add r6, r0, #0
- bl FUN_0200628C
- ldr r1, [r4]
- add r5, r0, #0
- cmp r1, #0xf
- bhi _0222D6D2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222D5E0: ; jump table
- .short _0222D600 - _0222D5E0 - 2 ; case 0
- .short _0222D620 - _0222D5E0 - 2 ; case 1
- .short _0222D65A - _0222D5E0 - 2 ; case 2
- .short _0222D670 - _0222D5E0 - 2 ; case 3
- .short _0222D686 - _0222D5E0 - 2 ; case 4
- .short _0222D696 - _0222D5E0 - 2 ; case 5
- .short _0222D6AC - _0222D5E0 - 2 ; case 6
- .short _0222D6C8 - _0222D5E0 - 2 ; case 7
- .short _0222D6DA - _0222D5E0 - 2 ; case 8
- .short _0222D6EE - _0222D5E0 - 2 ; case 9
- .short _0222D704 - _0222D5E0 - 2 ; case 10
- .short _0222D720 - _0222D5E0 - 2 ; case 11
- .short _0222D742 - _0222D5E0 - 2 ; case 12
- .short _0222D752 - _0222D5E0 - 2 ; case 13
- .short _0222D7C2 - _0222D5E0 - 2 ; case 14
- .short _0222D7E4 - _0222D5E0 - 2 ; case 15
-_0222D600:
- mov r2, #0xb
- mov r0, #3
- mov r1, #5
- lsl r2, r2, #0x10
- bl FUN_0201681C
- ldr r1, [r5]
- mov r0, #4
- tst r0, r1
- beq _0222D61A
- mov r0, #1
- str r0, [r4]
- b _0222D7EA
-_0222D61A:
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D620:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0222F29C
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02033778
- bl FUN_02033590
- cmp r0, #0
- bne _0222D648
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x14
- bl FUN_0202A0E8
- b _0222D654
-_0222D648:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x19
- bl FUN_0202A0E8
-_0222D654:
- mov r0, #2
- str r0, [r4]
- b _0222D7EA
-_0222D65A:
- add r0, r6, #0
- bl MOD11_0222F4E4
- cmp r0, #1
- bne _0222D6D2
- add r0, r6, #0
- bl MOD11_0222F93C
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D670:
- add r0, r6, #0
- bl MOD11_0222F988
- cmp r0, #1
- bne _0222D680
- mov r0, #4
- str r0, [r4]
- b _0222D7EA
-_0222D680:
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D686:
- add r0, r6, #0
- bl MOD11_0222FABC
- cmp r0, #1
- bne _0222D6D2
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D696:
- add r0, r6, #0
- bl MOD11_0222FB04
- cmp r0, #1
- bne _0222D6A6
- mov r0, #6
- str r0, [r4]
- b _0222D7EA
-_0222D6A6:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6AC:
- add r0, r6, #0
- bl MOD11_0222FC38
- cmp r0, #1
- bne _0222D6D2
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #7
- str r0, [r4]
- mov r0, #0x3d
- bl FUN_02031588
- b _0222D7EA
-_0222D6C8:
- mov r0, #0x3d
- bl FUN_020315D8
- cmp r0, #0
- bne _0222D6D4
-_0222D6D2:
- b _0222D7EA
-_0222D6D4:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6DA:
- ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r6, #0
- bl MOD11_0222DB50
- mov r0, #9
- str r0, [r4]
- b _0222D7EA
-_0222D6EE:
- add r0, r6, #0
- bl MOD11_0222DF4C
- cmp r0, #1
- bne _0222D7EA
- add r0, r6, #0
- bl MOD11_0222DFA4
- mov r0, #0xa
- str r0, [r4]
- b _0222D7EA
-_0222D704:
- add r0, r6, #0
- bl MOD11_0222FC80
- cmp r0, #1
- bne _0222D714
- mov r0, #0xb
- str r0, [r4]
- b _0222D7EA
-_0222D714:
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D720:
- add r0, r6, #0
- bl MOD11_0222FE58
- cmp r0, #1
- bne _0222D7EA
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0x3e
- bl FUN_02031588
- mov r0, #0xc
- str r0, [r4]
- b _0222D7EA
-_0222D742:
- mov r0, #0x3e
- bl FUN_020315D8
- cmp r0, #0
- beq _0222D7EA
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D752:
- add r1, sp, #0x24
- add r2, sp, #0x20
- bl MOD11_02230D38
- add r6, r0, #0
- beq _0222D7BC
- mov r0, #3
- mov r1, #0x49
- lsl r2, r0, #0x10
- bl FUN_0201681C
- ldr r0, [r5, #4]
- ldr r1, [sp, #0x24]
- bl GetPartyMonByIndex
- add r1, r0, #0
- mov r0, #0x5a
- lsl r0, r0, #2
- ldr r2, [r5, r0]
- mov r3, #0x49
- str r2, [sp]
- add r2, r0, #0
- sub r2, #0x58
- ldr r2, [r5, r2]
- str r2, [sp, #4]
- add r2, r0, #0
- sub r2, #0x60
- ldr r2, [r5, r2]
- str r2, [sp, #8]
- add r2, r0, #0
- sub r2, #0x24
- ldr r2, [r5, r2]
- sub r0, #0x40
- str r2, [sp, #0xc]
- ldr r0, [r5, r0]
- add r2, r6, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x20]
- str r0, [sp, #0x14]
- mov r0, #3
- str r0, [sp, #0x18]
- str r3, [sp, #0x1c]
- add r3, #0xe7
- ldr r0, [r5, #4]
- ldr r3, [r5, r3]
- bl FUN_0206C700
- mov r1, #0x66
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #0xe
- str r0, [r4]
- b _0222D7EA
-_0222D7BC:
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D7C2:
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r5, [r5, r0]
- add r0, r5, #0
- bl FUN_0206C91C
- cmp r0, #1
- bne _0222D7EA
- add r0, r5, #0
- bl FUN_0206C92C
- mov r0, #0x49
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D7E4:
- add sp, #0x28
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0222D7EA:
- mov r0, #0
- add sp, #0x28
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
-_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
-
- thumb_func_start MOD11_0222D7F8
-MOD11_0222D7F8: ; 0x0222D7F8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #4]
- bl MOD11_022584AC
- ldr r1, _0222D834 ; =0x000023FB
- mov r0, #4
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- mov r0, #2
- bl FUN_02002CF8
- add r0, r4, #0
- mov r1, #3
- bl MOD11_02231338
- ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
- mov r1, #2
- bl HandleLoadOverlay
- pop {r4, pc}
- .align 2, 0
-_0222D834: .word 0x000023FB
-_0222D838: .word SDK_OVERLAY_MODULE_08_ID
-_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
-
- thumb_func_start MOD11_0222D840
-MOD11_0222D840: ; 0x0222D840
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #8]
- bl FUN_02019178
- ldr r0, [r4, #4]
- bl MOD11_0222E4E8
- add r0, r4, #0
- bl MOD11_0222E51C
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- bl FUN_0200C398
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BD04
- bl FUN_0201C29C
- mov r0, #2
- bl FUN_02002CF8
- pop {r4, pc}
-
- thumb_func_start MOD11_0222D88C
-MOD11_0222D88C: ; 0x0222D88C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
- bl UnloadOverlayByID
- ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02231338
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- ldr r1, _0222D940 ; =0x000023FB
- mov r0, #2
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- ldr r0, [r4, #4]
- bl MOD11_02258450
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #1
- bl FUN_02002840
- add r0, r4, #0
- bl MOD11_0222FE94
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0222D938: .word SDK_OVERLAY_MODULE_09_ID
-_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
-_0222D940: .word 0x000023FB
-
- thumb_func_start MOD11_0222D944
-MOD11_0222D944: ; 0x0222D944
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- bl FUN_02019178
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_02231410
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222D980
-MOD11_0222D980: ; 0x0222D980
- push {r4, r5, r6, lr}
- sub sp, #0x68
- ldr r1, _0222DB38 ; =0x000023FB
- add r5, r0, #0
- ldrb r2, [r5, r1]
- mov r0, #1
- ldr r4, _0222DB3C ; =MOD11_0225DAE0
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- add r3, sp, #0x14
- mov r2, #0xa
-_0222D99A:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222D99A
- ldr r0, [r4]
- mov r1, #1
- str r0, [r3]
- ldr r0, [r5, #4]
- add r2, sp, #0x14
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #2
- add r2, sp, #0x30
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #2
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #3
- add r2, sp, #0x4c
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222DB40 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r5, #0
- bl MOD11_02230E44
- add r4, r0, #0
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r1, #1
- ldr r0, [r5, #4]
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r1, #9
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- ldr r2, [r5, #4]
- mov r0, #7
- add r1, r1, #3
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r3, #9
- str r0, [sp, #8]
- lsl r3, r3, #0xa
- ldr r6, [r5, r3]
- ldr r0, [r5, #0x28]
- lsl r3, r6, #1
- add r3, r6, r3
- add r3, #0x9e
- add r2, r3, r2
- mov r1, #7
- mov r3, #5
- bl FUN_020030E8
- add r0, r4, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- ldr r2, [r5, #4]
- mov r0, #7
- mov r1, #2
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222DB44 ; =0xFFFF1FFF
- ldr r3, _0222DB48 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222DB4C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- ldr r0, _0222DB38 ; =0x000023FB
- mov r3, #2
- ldrb r1, [r5, r0]
- mov r2, #1
- orr r1, r3
- strb r1, [r5, r0]
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r5, #4]
- ldr r1, [r5, #8]
- bl FUN_02019064
- ldr r0, [r5, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r5, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- add r0, r5, #0
- bl MOD11_0222FE94
- add sp, #0x68
- pop {r4, r5, r6, pc}
- nop
-_0222DB38: .word 0x000023FB
-_0222DB3C: .word MOD11_0225DAE0
-_0222DB40: .word 0x04000008
-_0222DB44: .word 0xFFFF1FFF
-_0222DB48: .word 0x04001000
-_0222DB4C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222DB50
-MOD11_0222DB50: ; 0x0222DB50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- bl FUN_02006278
- add r4, r0, #0
- bl FUN_020222F0
- add r5, r0, #0
- bl FUN_020222E8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl GetLCRNGSeed
- ldr r1, _0222DF0C ; =0x00002430
- str r0, [r4, r1]
- add r0, sp, #0x20
- add r1, sp, #0x14
- bl FUN_0201265C
- ldr r0, _0222DF10 ; =gUnknown21C48B8
- ldr r6, [sp, #0x24]
- ldr r5, [r0, #0x2c]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- lsl r6, r6, #8
- add r0, r1, r0
- lsl r3, r0, #0x18
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x20]
- lsl r2, r0, #0x10
- ldr r0, [sp, #0x28]
- mul r6, r0
- lsl r0, r6, #0x10
- add r0, r1, r0
- add r0, r2, r0
- add r0, r3, r0
- add r0, r5, r0
- bl SetLCRNGSeed
- bl MOD11_0222EF30
- str r0, [r4]
- bl FUN_02015F1C
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- mov r0, #0xe
- mov r1, #1
- mov r2, #0xf
- mov r3, #5
- bl FUN_0200B870
- mov r1, #0x6a
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r2, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- mov r0, #5
- bl FUN_02002FD0
- str r0, [r4, #0x28]
- mov r1, #1
- bl FUN_020038F0
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #0
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r1, #1
- ldr r0, [r4, #0x28]
- lsl r2, r1, #9
- mov r3, #5
- bl FUN_02003008
- mov r2, #7
- ldr r0, [r4, #0x28]
- mov r1, #2
- lsl r2, r2, #6
- mov r3, #5
- bl FUN_02003008
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #3
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r0, #5
- bl FUN_02016B94
- str r0, [r4, #4]
- mov r0, #5
- mov r1, #3
- bl FUN_02018FF4
- mov r7, #0x73
- str r0, [r4, #8]
- mov r6, #0
- add r5, r4, #0
- lsl r7, r7, #2
-_0222DC42:
- mov r1, #0x32
- mov r0, #5
- lsl r1, r1, #6
- bl AllocFromHeap
- str r0, [r5, r7]
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222DC42
- mov r0, #0x40
- mov r1, #5
- bl FUN_0201C24C
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r1, [r4, #4]
- add r0, r4, #0
- bl MOD11_0222E264
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- mov r2, #1
- mov r3, #2
- bl FUN_02019064
- ldr r0, [r4, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r4, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- mov r0, #5
- bl FUN_0200BB14
- add r1, r4, #0
- add r1, #0x90
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- ldr r1, _0222DF14 ; =MOD11_0225DA20
- ldr r2, _0222DF18 ; =MOD11_0225D9D8
- mov r3, #0x20
- bl FUN_0200BB6C
- ldr r1, _0222DF1C ; =0x00100010
- mov r0, #1
- bl FUN_02008D44
- mov r0, #1
- bl FUN_02008DDC
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB34
- add r1, r4, #0
- add r1, #0x94
- str r0, [r1]
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x80
- bl FUN_0200BBF0
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _0222DF20 ; =MOD11_0225D9EC
- bl FUN_0200BF60
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #5
- bl FUN_02006D98
- add r1, r4, #0
- add r1, #0x88
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- mov r2, #0xc0
- bl FUN_020081B4
- add r0, r4, #0
- bl MOD11_02231390
- bl MOD11_0222EFDC
- mov r0, #5
- bl MOD08_02211F5C
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- add r0, r4, #0
- bl MOD11_0222E470
- bl FUN_0201CC08
- mov r0, #4
- bl FUN_0201CC24
- mov r2, #0x51
- mov r0, #1
- mov r1, #0x1a
- lsl r2, r2, #2
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0xc]
- mov r0, #1
- mov r1, #0x1a
- mov r2, #0
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0x10]
- mov r0, #5
- bl FUN_0200AA80
- str r0, [r4, #0x14]
- mov r0, #5
- lsl r0, r0, #6
- mov r1, #5
- bl String_ctor
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_020031FC
- ldr r1, _0222DF24 ; =0x00002224
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_020031FC
- ldr r1, _0222DF28 ; =0x00002304
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl MOD11_02230C68
- mov r1, #0
- lsl r5, r0, #2
- mov r3, #9
- str r1, [sp]
- mov r0, #0x70
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =MOD11_0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r2, #2
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0xc0
- str r0, [sp]
- add r0, #0x40
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =MOD11_0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r1, #0
- lsl r3, r3, #0x10
- mov r2, #2
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0
- str r0, [sp]
- mov r0, #0xdf
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- mov r1, #2
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =MOD11_0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- add r2, r1, #0
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r1, #0
- mov r0, #0xa0
- str r0, [sp]
- mov r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #1
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #3
- bl FUN_02003914
- ldr r0, [r4, #0x28]
- mov r1, #0
- mov r2, #0xb
- mov r3, #5
- bl FUN_020142EC
- mov r1, #0x1b
- lsl r1, r1, #4
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r1, #1
- bl FUN_020143A8
- ldr r0, _0222DF34 ; =MOD11_0222F100
- ldr r2, _0222DF38 ; =0x0000EA60
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x1c]
- ldr r0, _0222DF3C ; =MOD11_0222F144
- ldr r2, _0222DF40 ; =0x0000C350
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x20]
- mov r2, #0x4b
- ldr r0, _0222DF44 ; =MOD11_0222F254
- add r1, r4, #0
- lsl r2, r2, #4
- bl FUN_0200CA60
- str r0, [r4, #0x24]
- mov r1, #0x32
- ldr r0, _0222DF48 ; =0x00002434
- mvn r1, r1
- str r1, [r4, r0]
- add r0, r4, #0
- bl MOD11_0222FE94
- add r0, r4, #0
- bl MOD11_02230218
- bl FUN_0206F1C0
- mov r0, #5
- mov r1, #4
- mov r2, #0
- bl FUN_02014BF4
- mov r1, #0x71
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_0201C328
- mov r1, #0x72
- lsl r1, r1, #2
- str r0, [r4, r1]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222DF0C: .word 0x00002430
-_0222DF10: .word gUnknown21C48B8
-_0222DF14: .word MOD11_0225DA20
-_0222DF18: .word MOD11_0225D9D8
-_0222DF1C: .word 0x00100010
-_0222DF20: .word MOD11_0225D9EC
-_0222DF24: .word 0x00002224
-_0222DF28: .word 0x00002304
-_0222DF2C: .word MOD11_0225DB88
-_0222DF30: .word 0x0000FFFF
-_0222DF34: .word MOD11_0222F100
-_0222DF38: .word 0x0000EA60
-_0222DF3C: .word MOD11_0222F144
-_0222DF40: .word 0x0000C350
-_0222DF44: .word MOD11_0222F254
-_0222DF48: .word 0x00002434
-
- thumb_func_start MOD11_0222DF4C
-MOD11_0222DF4C: ; 0x0222DF4C
- push {r4, r5, r6, lr}
- bl FUN_02006278
- ldr r1, _0222DF9C ; =0x000023F8
- add r4, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- beq _0222DF7A
- ldr r2, [r4, #0x2c]
- mov r1, #4
- tst r1, r2
- ldr r1, [r4, #0x30]
- beq _0222DF6C
- bl MOD11_0223D238
- b _0222DF7A
-_0222DF6C:
- bl MOD11_0223D238
- ldr r1, _0222DFA0 ; =0x000023FA
- strb r0, [r4, r1]
- add r0, r4, #0
- bl MOD11_02254820
-_0222DF7A:
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222DF96
- add r5, r4, #0
-_0222DF84:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB38
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222DF84
-_0222DF96:
- ldr r0, _0222DFA0 ; =0x000023FA
- ldrb r0, [r4, r0]
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222DF9C: .word 0x000023F8
-_0222DFA0: .word 0x000023FA
-
- thumb_func_start MOD11_0222DFA4
-MOD11_0222DFA4: ; 0x0222DFA4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- add r7, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- add r0, r4, #0
- bl MOD11_02230EC8
- ldr r0, _0222E248 ; =0x0000241C
- ldrb r0, [r4, r0]
- cmp r0, #4
- beq _0222DFE4
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl GetPartyMonByIndex
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02230FA8
-_0222DFE4:
- mov r0, #0
- str r0, [sp]
- add r6, r7, #0
- add r5, r4, #0
-_0222DFEC:
- ldr r0, [r5, #0x68]
- ldr r1, [r6, #4]
- bl FUN_0206BAD0
- ldr r0, [r5, #0x68]
- bl FreeToHeap
- add r1, r6, #0
- add r1, #0xf8
- ldr r0, [r5, #0x48]
- ldr r1, [r1]
- bl FUN_0202393C
- ldr r0, [r5, #0x48]
- bl FreeToHeap
- ldr r0, [sp]
- add r6, r6, #4
- add r0, r0, #1
- add r5, r5, #4
- str r0, [sp]
- cmp r0, #4
- blt _0222DFEC
- mov r0, #0x1b
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_020143D0
- mov r1, #0x42
- lsl r1, r1, #2
- ldr r0, [r4, #0x58]
- ldr r1, [r7, r1]
- bl FUN_0206EBB4
- ldr r0, [r4, #0x58]
- bl FreeToHeap
- mov r1, #0x11
- lsl r1, r1, #4
- ldr r0, [r4, #0x60]
- ldr r1, [r7, r1]
- bl FUN_02023D80
- ldr r0, [r4, #0x60]
- bl FreeToHeap
- mov r0, #0x45
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r7, r0]
- add r1, r0, #0
- ldr r2, [r4, #0x5c]
- sub r1, #8
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x98
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x14
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x9c
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x20
- str r2, [r7, r1]
- add r1, r0, #0
- ldr r2, _0222E24C ; =0x00002410
- add r1, #0x7c
- ldr r3, [r4, r2]
- add r0, #0x5c
- str r3, [r7, r1]
- add r1, r2, #0
- add r1, #0xc
- ldrb r3, [r4, r1]
- mov r1, #0x3f
- add r2, #0x28
- and r1, r3
- str r1, [r7, #0x14]
- ldr r1, [r4, r2]
- mov r2, #4
- str r1, [r7, r0]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #3
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x4e
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- mov r3, #0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #0x4f
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #0
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #5
- lsl r1, r1, #6
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- add r7, r1, #0
- mov r6, #0
- add r5, r4, #0
- add r7, #0x8c
-_0222E10A:
- ldr r0, [r5, r7]
- bl FreeToHeap
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222E10A
- ldr r0, [r4, #0x18]
- bl FreeToHeap
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #1
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #3
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- bl FUN_02002FEC
- ldr r0, [r4, #0xc]
- bl DestroyMsgData
- ldr r0, [r4, #0x10]
- bl DestroyMsgData
- ldr r0, [r4, #0x14]
- bl FUN_0200AB18
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_02014C28
- bl FUN_02012EAC
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_02212024
- ldr r0, [r4, #0x30]
- bl MOD11_0223D284
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222E194
- ldr r7, _0222E250 ; =0x000023F9
- add r5, r4, #0
-_0222E180:
- ldrb r2, [r4, r7]
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB54
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222E180
-_0222E194:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020072E8
- ldr r0, _0222E250 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #2
- beq _0222E1AC
- add r0, r4, #0
- bl MOD11_0222D840
-_0222E1AC:
- mov r0, #0
- bl FUN_02002B60
- mov r0, #0
- bl FUN_02002B7C
- mov r0, #0
- bl FUN_02002BB8
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_020191A4
- ldr r0, [r4, #4]
- bl FreeToHeap
- mov r0, #0x87
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x22
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x6a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0200B990
- mov r0, #2
- bl FUN_02002CF8
- ldr r0, [r4, #0x1c]
- bl FUN_0200CAB4
- ldr r0, [r4, #0x20]
- bl FUN_0200CAB4
- bl FUN_0201CD04
- ldr r0, [r4]
- bl MOD11_0222EFD4
- ldr r0, _0222E254 ; =0x00002430
- ldr r0, [r4, r0]
- bl SetLCRNGSeed
- add r0, r4, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222E220
- ldr r0, _0222E258 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
-_0222E220:
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0201C350
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- bl FUN_02033590
- cmp r0, #0
- bne _0222E244
- ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
- bl UnloadOverlayByID
-_0222E244:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222E248: .word 0x0000241C
-_0222E24C: .word 0x00002410
-_0222E250: .word 0x000023F9
-_0222E254: .word 0x00002430
-_0222E258: .word 0x00000704
-_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
-_0222E260: .word SDK_OVERLAY_MODULE_16_ID
-
- thumb_func_start MOD11_0222E264
-MOD11_0222E264: ; 0x0222E264
- push {r4, r5, r6, r7, lr}
- sub sp, #0x9c
- add r5, r0, #0
- add r4, r1, #0
- bl FUN_0201E6D8
- mov r0, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- ldr r6, _0222E450 ; =MOD11_0225DA68
- add r3, sp, #0x20
- mov r2, #5
-_0222E282:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E282
- add r0, sp, #0x20
- bl FUN_0201E66C
- mov r1, #6
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x62
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #0x19
- mov r2, #1
- mov r0, #0
- lsl r1, r1, #0x16
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x66
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- ldr r6, _0222E454 ; =MOD11_0225D9A8
- add r3, sp, #0x10
- add r2, r3, #0
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- add r0, r2, #0
- bl FUN_02016BBC
- ldr r1, _0222E458 ; =0x000023FB
- mov r0, #1
- ldrb r2, [r5, r1]
- ldr r6, _0222E45C ; =MOD11_0225DB34
- add r3, sp, #0x48
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- mov r2, #0xa
-_0222E2F0:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E2F0
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- add r0, r4, #0
- add r2, sp, #0x48
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #1
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #2
- add r2, sp, #0x64
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #2
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #3
- add r2, sp, #0x80
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222E460 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- bl MOD11_02258450
- add r0, r5, #0
- bl MOD11_02230E44
- add r7, r0, #0
- lsl r0, r7, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- mov r1, #1
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- mov r1, #9
- str r0, [sp, #0xc]
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- mov r0, #7
- add r1, r1, #3
- add r2, r4, #0
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r6, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r2, #9
- str r0, [sp, #8]
- lsl r2, r2, #0xa
- ldr r3, [r5, r2]
- ldr r0, [r5, #0x28]
- lsl r2, r3, #1
- add r2, r3, r2
- add r2, #0x9e
- mov r1, #7
- add r2, r2, r6
- mov r3, #5
- bl FUN_020030E8
- add r0, r7, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #7
- mov r1, #2
- add r2, r4, #0
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222E464 ; =0xFFFF1FFF
- ldr r3, _0222E468 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222E46C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- add sp, #0x9c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0222E450: .word MOD11_0225DA68
-_0222E454: .word MOD11_0225D9A8
-_0222E458: .word 0x000023FB
-_0222E45C: .word MOD11_0225DB34
-_0222E460: .word 0x04000008
-_0222E464: .word 0xFFFF1FFF
-_0222E468: .word 0x04001000
-_0222E46C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222E470
-MOD11_0222E470: ; 0x0222E470
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD11_02230294
- add r4, r0, #0
- mov r0, #0x5f
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #0
- add r3, r4, #0
- bl MOD11_022583D8
- mov r0, #0x63
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #1
- add r3, r4, #0
- bl MOD11_022583D8
- add r0, r5, #0
- bl MOD11_0222FF78
- str r0, [sp]
- ldr r0, [r5, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0222E4E2
- add r6, r5, #0
-_0222E4AC:
- ldr r1, [sp]
- add r0, r5, #0
- mov r2, #2
- add r3, r4, #0
- bl MOD11_0224C474
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0x9a
- mov r2, #0
- bl GetMonData
- add r2, r0, #0
- ldr r1, [r6, #0x34]
- add r0, r5, #0
- add r3, r7, #0
- bl MOD11_0224CA94
- ldr r0, [r5, #0x44]
- add r4, r4, #1
- add r6, r6, #4
- cmp r4, r0
- blt _0222E4AC
-_0222E4E2:
- bl FUN_02033E74
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0222E4E8
-MOD11_0222E4E8: ; 0x0222E4E8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- mov r1, #1
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #2
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_022584AC
- pop {r4, pc}
-
- thumb_func_start MOD11_0222E51C
-MOD11_0222E51C: ; 0x0222E51C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222E520
-MOD11_0222E520: ; 0x0222E520
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r4, r0, #0
- ldr r0, [r1]
- str r1, [sp, #4]
- str r0, [r4, #0x2c]
- mov r7, #0
- add r6, r4, #0
- add r5, r1, #0
-_0222E532:
- mov r0, #5
- bl FUN_02023928
- add r1, r0, #0
- add r0, r5, #0
- str r1, [r6, #0x48]
- add r0, #0xf8
- ldr r0, [r0]
- bl FUN_0202393C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r7, r7, #1
- str r0, [r6, #0x78]
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #4
- blt _0222E532
- mov r0, #5
- bl FUN_0206EB88
- str r0, [r4, #0x58]
- mov r1, #0x42
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x58]
- bl FUN_0206EBB4
- mov r0, #5
- bl FUN_02023D6C
- str r0, [r4, #0x60]
- mov r1, #0x11
- ldr r0, [sp, #4]
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x60]
- bl FUN_02023D80
- mov r1, #0x45
- lsl r1, r1, #2
- ldr r0, [sp, #4]
- add r2, r1, #0
- ldr r0, [r0, r1]
- add r3, r1, #0
- str r0, [r4, #0x64]
- ldr r0, [sp, #4]
- add r2, #0x1c
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa0
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x38
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa4
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- sub r2, #8
- ldr r0, [r0, r2]
- add r2, r1, #0
- str r0, [r4, #0x5c]
- ldr r0, [sp, #4]
- add r2, #0x14
- ldr r2, [r0, r2]
- add r0, r4, #0
- add r0, #0x98
- str r2, [r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x50
- ldr r2, [r0, r2]
- ldr r0, _0222E8BC ; =0x00002420
- add r3, #0x20
- str r2, [r4, r0]
- ldr r2, [sp, #4]
- ldr r3, [r2, r3]
- add r2, r4, #0
- add r2, #0x9c
- str r3, [r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x7c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x10
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x40
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x24
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x3c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x20
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x44
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x1c
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x4c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x14
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x78
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x18
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x80
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #8
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x54
- ldr r3, [r2, r3]
- add r2, r0, #4
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x58
- ldr r3, [r2, r3]
- add r2, r0, #0
- add r2, #0xc
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x60
- ldr r2, [r2, r3]
- add r0, #8
- str r2, [r4, r0]
- ldr r0, [sp, #4]
- add r1, #0x30
- ldr r0, [r0, r1]
- mov r1, #0x86
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [sp, #4]
- sub r1, #0xd4
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _0222E67E
- bl ErrorHandling
-_0222E67E:
- ldr r5, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r4, [sp, #0x30]
- add r6, r5, #0
- add r7, r4, #0
-_0222E68A:
- ldr r0, [sp, #0x30]
- ldr r1, [r5, #0x18]
- add r0, #0xa0
- strh r1, [r0]
- add r3, r6, #0
- add r2, r7, #0
- mov r0, #6
- add r3, #0x28
- add r2, #0xac
- mov ip, r0
-_0222E69E:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, ip
- sub r0, r0, #1
- mov ip, r0
- bne _0222E69E
- ldr r0, [r3]
- add r5, r5, #4
- str r0, [r2]
- ldr r0, [sp, #0x30]
- add r6, #0x34
- add r0, r0, #2
- str r0, [sp, #0x30]
- ldr r0, [sp, #8]
- add r7, #0x34
- add r0, r0, #1
- str r0, [sp, #8]
- cmp r0, #4
- blt _0222E68A
- add r0, r4, #0
- bl MOD11_0223D1DC
- str r0, [r4, #0x30]
- mov r6, #0
- add r5, r4, #0
- mov r7, #5
-_0222E6D2:
- add r0, r7, #0
- bl FUN_0206B8AC
- str r0, [r5, #0x68]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222E6D2
- ldr r0, [r4, #0x2c]
- mov r1, #4
- tst r1, r0
- bne _0222E6EC
- b _0222EA8A
-_0222E6EC:
- add r0, r4, #0
- bl FUN_0206BF90
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x34]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0222FEC0
- ldr r1, [r4, #0x2c]
- mov r0, #0x80
- tst r0, r1
- beq _0222E7D0
- ldr r6, _0222E8C0 ; =MOD11_0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222E712:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r7, #0x34]
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E712
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E734:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E734
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E7C6
- add r7, r4, #0
-_0222E760:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E7AA
-_0222E76C:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E79E
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E79E
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E7AA
-_0222E79E:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222E76C
-_0222E7AA:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0xc]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0xc]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0xc]
- cmp r0, r1
- blt _0222E760
-_0222E7C6:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E7D0:
- mov r0, #8
- tst r0, r1
- beq _0222E8AC
- mov r5, #0
- add r6, r4, #0
-_0222E7DA:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldr r0, [sp, #0x34]
- bl FUN_020313CC
- add r7, r0, #0
- add r0, r5, #0
- bl FUN_020313CC
- ldr r1, _0222E8C4 ; =MOD11_0225D9C8
- lsl r2, r7, #2
- add r1, r1, r2
- ldrb r1, [r0, r1]
- add r0, sp, #0x3c
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r6, #0x34]
- add r5, r5, #1
- add r6, r6, #4
- cmp r5, #4
- blt _0222E7DA
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E810:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E810
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E8A2
- add r7, r4, #0
-_0222E83C:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E886
-_0222E848:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E87A
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E87A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E886
-_0222E87A:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222E848
-_0222E886:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x10]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x10]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x10]
- cmp r0, r1
- blt _0222E83C
-_0222E8A2:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E8AC:
- mov r0, #2
- tst r0, r1
- bne _0222E8B4
- b _0222E9D4
-_0222E8B4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222E8C8 ; =MOD11_0225D9A0
- b _0222E8CC
- nop
-_0222E8BC: .word 0x00002420
-_0222E8C0: .word MOD11_0225DC18
-_0222E8C4: .word MOD11_0225D9C8
-_0222E8C8: .word MOD11_0225D9A0
-_0222E8CC:
- lsl r0, r0, #2
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E8D4:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E8D4
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E8FE:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E8FE
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E9D2
-_0222E920:
- ldr r0, [sp, #0x14]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x2c]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E9B8
-_0222E938:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- ldr r1, [sp, #0x14]
- add r5, r0, #0
- cmp r1, #1
- ble _0222E984
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x2c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9B8
- b _0222E9AC
-_0222E984:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9B8
-_0222E9AC:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _0222E938
-_0222E9B8:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x14]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x14]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _0222E920
-_0222E9D2:
- b _0222EA80
-_0222E9D4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222EC6C ; =MOD11_0225D99C
- lsl r0, r0, #1
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E9E0:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222E9E0
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x18]
- add r7, r4, #0
-_0222EA0C:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EA60
-_0222EA22:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EA54
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EA54
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EA60
-_0222EA54:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EA22
-_0222EA60:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x18]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- add r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _0222EA0C
-_0222EA80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EE3E
-_0222EA8A:
- mov r1, #0x10
- tst r1, r0
- beq _0222EB90
- ldr r6, _0222EC70 ; =MOD11_0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EA96:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EA96
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EAC0:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EAC0
- ldr r0, [r4, #0x44]
- mov r7, #0
- cmp r0, #0
- ble _0222EB80
-_0222EAE0:
- add r0, r4, #0
- add r1, r7, #0
- mov r5, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _0222EB64
-_0222EAEE:
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD11_02230014
- add r6, r0, #0
- cmp r7, #2
- bne _0222EB2E
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- ldr r0, [sp, #0x38]
- cmp r0, r5
- bne _0222EB64
- b _0222EB56
-_0222EB2E:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB64
-_0222EB56:
- add r0, r4, #0
- add r1, r7, #0
- add r5, r5, #1
- bl MOD11_0222FFC8
- cmp r5, r0
- blt _0222EAEE
-_0222EB64:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #2
- add r3, r7, #0
- bl MOD11_0224C54C
- cmp r7, #0
- bne _0222EB78
- str r5, [sp, #0x38]
-_0222EB78:
- ldr r0, [r4, #0x44]
- add r7, r7, #1
- cmp r7, r0
- blt _0222EAE0
-_0222EB80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EB90:
- mov r1, #8
- tst r1, r0
- beq _0222EC60
- ldr r6, _0222EC70 ; =MOD11_0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EB9C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EB9C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EBC6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EBC6
- mov r0, #0
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222EC50
- add r7, r4, #0
-_0222EBEA:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EC34
-_0222EBF6:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EC28
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EC28
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EC34
-_0222EC28:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EBF6
-_0222EC34:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x1c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x1c]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x1c]
- cmp r0, r1
- blt _0222EBEA
-_0222EC50:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EC60:
- mov r1, #2
- tst r0, r1
- bne _0222EC68
- b _0222ED8A
-_0222EC68:
- ldr r6, _0222EC70 ; =MOD11_0225DC18
- b _0222EC78
- .align 2, 0
-_0222EC6C: .word MOD11_0225D99C
-_0222EC70: .word MOD11_0225DC18
-_0222EC74: .word 0x000023F8
-_0222EC78:
- mov r5, #0
- add r7, r4, #0
-_0222EC7C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EC7C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222ECA6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222ECA6
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222ED7A
-_0222ECC8:
- ldr r0, [sp, #0x20]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x28]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222ED60
-_0222ECE0:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- ldr r1, [sp, #0x20]
- add r5, r0, #0
- cmp r1, #1
- ble _0222ED2C
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x28]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED60
- b _0222ED54
-_0222ED2C:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED60
-_0222ED54:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _0222ECE0
-_0222ED60:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x20]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x20]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x20]
- cmp r0, r1
- blt _0222ECC8
-_0222ED7A:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222ED8A:
- ldr r6, _0222EEE4 ; =MOD11_0225D998
- mov r5, #0
- add r7, r4, #0
-_0222ED90:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222ED90
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x24]
- add r7, r4, #0
-_0222EDBC:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EE10
-_0222EDD2:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EE04
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EE04
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EE10
-_0222EE04:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EDD2
-_0222EE10:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x24]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #4
- blt _0222EDBC
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
-_0222EE3E:
- mov r0, #2
- ldr r1, [r4, #0x2c]
- lsl r0, r0, #8
- tst r0, r1
- beq _0222EE5A
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl GetPartyMonByIndex
- add r2, r4, #0
- mov r1, #0x8f
- add r2, #0xf4
- bl GetMonData
-_0222EE5A:
- ldr r1, [r4, #0x2c]
- mov r0, #1
- tst r0, r1
- beq _0222EEDC
- add r0, r4, #0
- add r0, #0xe1
- ldrb r0, [r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- beq _0222EE7C
- ldr r0, _0222EEE8 ; =0x00000149
- ldrb r0, [r4, r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- bne _0222EEDC
-_0222EE7C:
- ldr r0, [r4, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EEAC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EE8C:
- ldr r0, [r4, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- ldr r0, [r4, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EE8C
-_0222EEAC:
- ldr r0, [r4, #0x70]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EEDC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EEBC:
- ldr r0, [r4, #0x70]
- add r1, r5, #0
- bl GetPartyMonByIndex
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- ldr r0, [r4, #0x70]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EEBC
-_0222EEDC:
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222EEE0: .word 0x000023F8
-_0222EEE4: .word MOD11_0225D998
-_0222EEE8: .word 0x00000149
-_0222EEEC: .word 0x00002404
-
- thumb_func_start MOD11_0222EEF0
-MOD11_0222EEF0: ; 0x0222EEF0
- sub r0, #0x3e
- cmp r0, #0x11
- bhi _0222EF2A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222EF02: ; jump table
- .short _0222EF26 - _0222EF02 - 2 ; case 0
- .short _0222EF2A - _0222EF02 - 2 ; case 1
- .short _0222EF26 - _0222EF02 - 2 ; case 2
- .short _0222EF26 - _0222EF02 - 2 ; case 3
- .short _0222EF26 - _0222EF02 - 2 ; case 4
- .short _0222EF26 - _0222EF02 - 2 ; case 5
- .short _0222EF26 - _0222EF02 - 2 ; case 6
- .short _0222EF26 - _0222EF02 - 2 ; case 7
- .short _0222EF2A - _0222EF02 - 2 ; case 8
- .short _0222EF2A - _0222EF02 - 2 ; case 9
- .short _0222EF2A - _0222EF02 - 2 ; case 10
- .short _0222EF2A - _0222EF02 - 2 ; case 11
- .short _0222EF26 - _0222EF02 - 2 ; case 12
- .short _0222EF26 - _0222EF02 - 2 ; case 13
- .short _0222EF26 - _0222EF02 - 2 ; case 14
- .short _0222EF26 - _0222EF02 - 2 ; case 15
- .short _0222EF26 - _0222EF02 - 2 ; case 16
- .short _0222EF26 - _0222EF02 - 2 ; case 17
-_0222EF26:
- mov r0, #1
- bx lr
-_0222EF2A:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222EF30
-MOD11_0222EF30: ; 0x0222EF30
- push {r3, lr}
- sub sp, #8
- mov r2, #2
- mov r1, #0
- ldr r0, _0222EF4C ; =MOD11_0222EF50
- str r2, [sp]
- str r0, [sp, #4]
- mov r0, #5
- add r3, r1, #0
- bl FUN_02022318
- add sp, #8
- pop {r3, pc}
- nop
-_0222EF4C: .word MOD11_0222EF50
-
- thumb_func_start MOD11_0222EF50
-MOD11_0222EF50: ; 0x0222EF50
- push {r3, lr}
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- ldr r0, _0222EFBC ; =0x04000008
- mov r1, #3
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #1
- orr r1, r2
- strh r1, [r0]
- add r0, #0x58
- ldrh r2, [r0]
- ldr r1, _0222EFC0 ; =0xFFFFCFFD
- and r2, r1
- strh r2, [r0]
- add r2, r1, #2
- ldrh r3, [r0]
- add r1, r1, #2
- and r3, r2
- mov r2, #0x10
- orr r2, r3
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _0222EFC4 ; =0x0000CFFB
- and r3, r2
- strh r3, [r0]
- ldrh r3, [r0]
- sub r2, #0x1c
- and r3, r1
- mov r1, #8
- orr r1, r3
- strh r1, [r0]
- ldrh r1, [r0]
- and r1, r2
- strh r1, [r0]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl G3X_SetFog
- mov r0, #0
- ldr r2, _0222EFC8 ; =0x00007FFF
- add r1, r0, #0
- mov r3, #0x3f
- str r0, [sp]
- bl G3X_SetClearColor
- ldr r1, _0222EFCC ; =0xBFFF0000
- ldr r0, _0222EFD0 ; =0x04000580
- str r1, [r0]
- pop {r3, pc}
- .align 2, 0
-_0222EFBC: .word 0x04000008
-_0222EFC0: .word 0xFFFFCFFD
-_0222EFC4: .word 0x0000CFFB
-_0222EFC8: .word 0x00007FFF
-_0222EFCC: .word 0xBFFF0000
-_0222EFD0: .word 0x04000580
-
- thumb_func_start MOD11_0222EFD4
-MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =FUN_020223BC
- bx r3
- .align 2, 0
-_0222EFD8: .word FUN_020223BC
-
- thumb_func_start MOD11_0222EFDC
-MOD11_0222EFDC: ; 0x0222EFDC
- push {r3, r4, r5, lr}
- ldr r3, _0222F014 ; =UNK_021064B8
- mov r0, #2
- mov r1, #0
- ldr r3, [r3]
- lsl r0, r0, #0xe
- add r2, r1, #0
- blx r3
- ldr r3, _0222F018 ; =UNK_021064C0
- mov r1, #0
- add r4, r0, #0
- ldr r3, [r3]
- mov r0, #0xc0
- add r2, r1, #0
- blx r3
- add r5, r0, #0
- cmp r4, #0
- bne _0222F004
- bl ErrorHandling
-_0222F004:
- cmp r5, #0
- bne _0222F00C
- bl ErrorHandling
-_0222F00C:
- bl FUN_02012CC8
- pop {r3, r4, r5, pc}
- nop
-_0222F014: .word UNK_021064B8
-_0222F018: .word UNK_021064C0
-
- thumb_func_start MOD11_0222F01C
-MOD11_0222F01C: ; 0x0222F01C
- push {r3, r4, r5, lr}
- sub sp, #0x50
- add r4, r0, #0
- bl LCRandom
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1f
- lsr r0, r0, #0x1f
- beq _0222F040
- mov r0, #1
- bic r2, r0
- strb r2, [r4, r1]
- ldr r0, _0222F0BC ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- ldr r0, _0222F0C0 ; =0x04001050
- strh r1, [r0]
-_0222F040:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1f
- beq _0222F064
- mov r0, #2
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C4 ; =MOD11_0225DA90
- add r3, sp, #0x28
- mov r2, #5
-_0222F056:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F056
- add r0, sp, #0x28
- bl FUN_0201E66C
-_0222F064:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1d
- lsr r0, r0, #0x1f
- beq _0222F088
- mov r0, #4
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C8 ; =MOD11_0225DAB8
- add r3, sp, #0
- mov r2, #5
-_0222F07A:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F07A
- add r0, sp, #0
- bl FUN_0201E66C
-_0222F088:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020081C4
- bl FUN_0201C30C
- bl FUN_0200BC30
- ldr r0, [r4, #0x28]
- bl FUN_0200372C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0CC ; =0x027E0000
- ldr r1, _0222F0D0 ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- add sp, #0x50
- pop {r3, r4, r5, pc}
- nop
-_0222F0B8: .word 0x000023FB
-_0222F0BC: .word 0x04000050
-_0222F0C0: .word 0x04001050
-_0222F0C4: .word MOD11_0225DA90
-_0222F0C8: .word MOD11_0225DAB8
-_0222F0CC: .word 0x027E0000
-_0222F0D0: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F0D4
-MOD11_0222F0D4: ; 0x0222F0D4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- bl FUN_0200372C
- bl FUN_0201C30C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0F8 ; =0x027E0000
- ldr r1, _0222F0FC ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- pop {r4, pc}
- nop
-_0222F0F8: .word 0x027E0000
-_0222F0FC: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F100
-MOD11_0222F100: ; 0x0222F100
- push {r4, lr}
- add r4, r1, #0
- ldr r1, [r4, #4]
- mov r0, #5
- bl FUN_020335F0
- ldr r0, _0222F140 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #0
- beq _0222F118
- cmp r0, #3
- bne _0222F13E
-_0222F118:
- cmp r0, #0
- bne _0222F120
- bl MOD08_02215A44
-_0222F120:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_02006ED4
- add r4, #0x94
- ldr r0, [r4]
- bl FUN_0200BC1C
- bl FUN_0200BC38
- mov r0, #1
- mov r1, #0
- bl FUN_020222B4
-_0222F13E:
- pop {r4, pc}
- .align 2, 0
-_0222F140: .word 0x000023F9
-
- thumb_func_start MOD11_0222F144
-MOD11_0222F144: ; 0x0222F144
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- bl MOD11_0222FF84
- str r0, [sp]
- add r0, r6, #0
- mov r5, #0
- bl MOD11_02231474
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0222F24E
- mov r0, #2
- tst r0, r4
- beq _0222F186
- mov r0, #1
- tst r0, r4
- beq _0222F24E
- ldr r0, _0222F250 ; =0x00000704
- add r1, r5, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #2
- bl MOD11_02231484
- pop {r3, r4, r5, r6, r7, pc}
-_0222F186:
- ldr r0, [sp]
- add r4, r5, #0
- cmp r0, #0
- ble _0222F1D0
-_0222F18E:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- add r7, r0, #0
- bl MOD11_02253A58
- cmp r0, #0
- bne _0222F1C8
- add r0, r7, #0
- bl MOD11_02253A70
- add r1, r0, #0
- beq _0222F1C8
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x2c]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- bl FUN_02079A54
- cmp r0, #1
- bne _0222F1C8
- add r0, r4, #0
- bl MaskOfFlagNo
- orr r5, r0
-_0222F1C8:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _0222F18E
-_0222F1D0:
- cmp r5, #0
- beq _0222F1F6
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- bne _0222F1F6
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #1
- bl MOD11_02231484
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- b _0222F214
-_0222F1F6:
- cmp r5, #0
- bne _0222F214
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F214
- ldr r0, _0222F250 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #0
- bl MOD11_02231484
-_0222F214:
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F24E
- add r0, r6, #0
- bl MOD11_022314A0
- add r4, r0, #0
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_02005508
- cmp r0, #0
- bne _0222F24E
- sub r1, r4, #1
- bne _0222F244
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- pop {r3, r4, r5, r6, r7, pc}
-_0222F244:
- lsl r1, r1, #0x18
- add r0, r6, #0
- lsr r1, r1, #0x18
- bl MOD11_022314B0
-_0222F24E:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222F250: .word 0x00000704
-
- thumb_func_start MOD11_0222F254
-MOD11_0222F254: ; 0x0222F254
- push {r3, r4, r5, lr}
- ldr r3, _0222F280 ; =0x00002434
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, r3]
- mov r1, #1
- add r0, r0, #3
- str r0, [r4, r3]
- ldr r0, [r4, #4]
- ldr r3, [r4, r3]
- mov r2, #3
- bl FUN_020179E0
- ldr r0, _0222F280 ; =0x00002434
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0222F27C
- add r0, r5, #0
- bl FUN_0200CAB4
-_0222F27C:
- pop {r3, r4, r5, pc}
- nop
-_0222F280: .word 0x00002434
-
- thumb_func_start MOD11_0222F284
-MOD11_0222F284: ; 0x0222F284 __sinit
- push {r3, lr}
- bl FUN_02033590
- cmp r0, #0
- bne _0222F296
- ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
- mov r1, #2
- bl HandleLoadOverlay
-_0222F296:
- pop {r3, pc}
- .align 2, 0
-_0222F298: .word SDK_OVERLAY_MODULE_16_ID
-
thumb_func_start MOD11_0222F29C
MOD11_0222F29C: ; 0x0222F29C
push {r4, r5, r6, lr}
@@ -98634,110 +95245,6 @@ MOD11_0225D98C: ; 0x0225D98C
.section .rodata
- .global MOD11_0225D998
-MOD11_0225D998: ; 0x0225D998
- .byte 0x00, 0x01, 0x00, 0x00
-
- .global MOD11_0225D99C
-MOD11_0225D99C: ; 0x0225D99C
- .byte 0x00, 0x01, 0x01, 0x00
-
- .global MOD11_0225D9A0
-MOD11_0225D9A0: ; 0x0225D9A0
- .byte 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04
-
- .global MOD11_0225D9A8
-MOD11_0225D9A8: ; 0x0225D9A8
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
-
- .global MOD11_0225D9B8
-MOD11_0225D9B8: ; 0x0225D9B8
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
-
- .global MOD11_0225D9C8
-MOD11_0225D9C8: ; 0x0225D9C8
- .byte 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02, 0x02, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x02
-
- .global MOD11_0225D9D8
-MOD11_0225D9D8: ; 0x0225D9D8
- .byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00
- .byte 0x10, 0x00, 0x00, 0x00
-
- .global MOD11_0225D9EC
-MOD11_0225D9EC: ; 0x0225D9EC
- .byte 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
- .byte 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
-
- .global MOD11_0225DA04
-MOD11_0225DA04: ; 0x0225DA04
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD11_0225DA20
-MOD11_0225DA20: ; 0x0225DA20
- .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
-
- .global MOD11_0225DA40
-MOD11_0225DA40: ; 0x0225DA40
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
-
- .global MOD11_0225DA68
-MOD11_0225DA68: ; 0x0225DA68
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
-
- .global MOD11_0225DA90
-MOD11_0225DA90: ; 0x0225DA90
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
-
- .global MOD11_0225DAB8
-MOD11_0225DAB8: ; 0x0225DAB8
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
-
- .global MOD11_0225DAE0
-MOD11_0225DAE0: ; 0x0225DAE0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD11_0225DB34
-MOD11_0225DB34: ; 0x0225DB34
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x06, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global MOD11_0225DB88
-MOD11_0225DB88: ; 0x0225DB88
- .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00
- .byte 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00
- .byte 0x00, 0x5E, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00, 0xAB, 0x16, 0x00, 0x00
- .byte 0x51, 0x7B, 0x00, 0x00, 0x3E, 0x02, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x5F, 0x7F, 0x00, 0x00
- .byte 0x5F, 0x5B, 0x00, 0x00, 0xD8, 0x5A, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
- .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
- .byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
- .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
- .byte 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00
-
- .global MOD11_0225DC18
-MOD11_0225DC18: ; 0x0225DC18
- .byte 0x02, 0x03, 0x04, 0x05
-
.global MOD11_0225DC1C
MOD11_0225DC1C: ; 0x0225DC1C
.byte 0x02, 0x04, 0x06, 0x09, 0x0C, 0x10, 0x14, 0x19, 0x1E, 0x00, 0x00, 0x00
diff --git a/arm9/modules/11/src/module_11_sinit.c b/arm9/modules/11/src/module_11_sinit.c
index b798941e..977c4fde 100644
--- a/arm9/modules/11/src/module_11_sinit.c
+++ b/arm9/modules/11/src/module_11_sinit.c
@@ -1,4 +1,17 @@
-#define NitroStaticInit MOD11_0222F284
#include "global.h"
-extern void MOD11_0222F284(void);
+#include "poke_overlay.h"
+#include "FS_overlay.h"
+
+extern u32 FUN_02033590(void);
+FS_EXTERN_OVERLAY(MODULE_16);
+
+THUMB_FUNC static void MOD11_0222F284(void)
+{
+ if (!FUN_02033590())
+ {
+ HandleLoadOverlay(FS_OVERLAY_ID(MODULE_16), 2);
+ }
+}
+
+#define NitroStaticInit MOD11_0222F284
#include "sinit.h"
diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s
index 7ec2a1e6..787a729f 100644
--- a/arm9/modules/21/asm/module_21.s
+++ b/arm9/modules/21/asm/module_21.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD21_02254840
-MOD21_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD21_02254854
- ldr r1, _02254850 ; =MOD21_0225496C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD21_02254854
-_02254850: .word MOD21_0225496C
- thumb_func_end MOD21_02254840
-
thumb_func_start MOD21_02254854
MOD21_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/21/src/module_21_sinit.c b/arm9/modules/21/src/module_21_sinit.c
index e19c840f..2af569ec 100644
--- a/arm9/modules/21/src/module_21_sinit.c
+++ b/arm9/modules/21/src/module_21_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD21_02254840
#include "global.h"
-extern void MOD21_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD21_02254854();
+extern void MOD21_0225496C();
+
+THUMB_FUNC static void MOD21_02254840(void)
+{
+ Poketch_InitApp(MOD21_02254854, MOD21_0225496C);
+}
+
+#define NitroStaticInit MOD21_02254840
#include "sinit.h"
diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s
index 15332cb9..ef079cdb 100644
--- a/arm9/modules/22/asm/module_22.s
+++ b/arm9/modules/22/asm/module_22.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD22_02254840
-MOD22_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD22_02254854
- ldr r1, _02254850 ; =MOD22_022549D8
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD22_02254854
-_02254850: .word MOD22_022549D8
- thumb_func_end MOD22_02254840
-
thumb_func_start MOD22_02254854
MOD22_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -1885,6 +1873,3 @@ MOD22_022556A0: ; 0x022556A0
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x80, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00
.byte 0x0A, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00
-
- .section .sinit
- .word MOD22_02254840
diff --git a/arm9/modules/22/src/module_22_sinit.c b/arm9/modules/22/src/module_22_sinit.c
new file mode 100644
index 00000000..0095f0c1
--- /dev/null
+++ b/arm9/modules/22/src/module_22_sinit.c
@@ -0,0 +1,13 @@
+#include "global.h"
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD22_02254854();
+extern void MOD22_022549D8();
+
+THUMB_FUNC static void MOD22_02254840(void)
+{
+ Poketch_InitApp(MOD22_02254854, MOD22_022549D8);
+}
+
+#define NitroStaticInit MOD22_02254840
+#include "sinit.h"
diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s
index 370847aa..56b78aaf 100644
--- a/arm9/modules/23/asm/module_23.s
+++ b/arm9/modules/23/asm/module_23.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD23_02254840
-MOD23_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD23_02254854
- ldr r1, _02254850 ; =MOD23_022549A4
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD23_02254854
-_02254850: .word MOD23_022549A4
- thumb_func_end MOD23_02254840
-
thumb_func_start MOD23_02254854
MOD23_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/23/src/module_23_sinit.c b/arm9/modules/23/src/module_23_sinit.c
index 522e8ac4..97abb012 100644
--- a/arm9/modules/23/src/module_23_sinit.c
+++ b/arm9/modules/23/src/module_23_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD23_02254840
#include "global.h"
-extern void MOD23_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD23_02254854();
+extern void MOD23_022549A4();
+
+THUMB_FUNC static void MOD23_02254840(void)
+{
+ Poketch_InitApp(MOD23_02254854, MOD23_022549A4);
+}
+
+#define NitroStaticInit MOD23_02254840
#include "sinit.h"
diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s
index ccf6c969..e7eb3899 100644
--- a/arm9/modules/24/asm/module_24.s
+++ b/arm9/modules/24/asm/module_24.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD24_02254840
-MOD24_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD24_02254854
- ldr r1, _02254850 ; =MOD24_02254990
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD24_02254854
-_02254850: .word MOD24_02254990
- thumb_func_end MOD24_02254840
-
thumb_func_start MOD24_02254854
MOD24_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -1219,6 +1207,3 @@ MOD24_0225516C: ; 0x0225516C
.word 0x04, MOD24_02255038, 0x00
.word 0x05, MOD24_02255050, 0x00
.word 0x00, 0x00000000, 0x00
-
- .section .sinit
- .word MOD24_02254840
diff --git a/arm9/modules/24/src/module_24_sinit.c b/arm9/modules/24/src/module_24_sinit.c
new file mode 100644
index 00000000..de535e77
--- /dev/null
+++ b/arm9/modules/24/src/module_24_sinit.c
@@ -0,0 +1,13 @@
+#include "global.h"
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD24_02254854();
+extern void MOD24_02254990();
+
+THUMB_FUNC static void MOD24_02254840(void)
+{
+ Poketch_InitApp(MOD24_02254854, MOD24_02254990);
+}
+
+#define NitroStaticInit MOD24_02254840
+#include "sinit.h"
diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s
index ba331a34..84129725 100644
--- a/arm9/modules/25/asm/module_25.s
+++ b/arm9/modules/25/asm/module_25.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD25_02254840
-MOD25_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD25_02254854
- ldr r1, _02254850 ; =MOD25_0225496C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD25_02254854
-_02254850: .word MOD25_0225496C
- thumb_func_end MOD25_02254840
-
thumb_func_start MOD25_02254854
MOD25_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -686,6 +674,3 @@ MOD25_02254D44: ; 0x02254D44
.word 0x02, MOD25_02254BE8, 0x00
.word 0x03, MOD25_02254C14, 0x00
.word 0x00, 0x00000000, 0x00
-
- .section .sinit
- .word MOD25_02254840
diff --git a/arm9/modules/25/src/module_25_sinit.c b/arm9/modules/25/src/module_25_sinit.c
new file mode 100644
index 00000000..e86493c7
--- /dev/null
+++ b/arm9/modules/25/src/module_25_sinit.c
@@ -0,0 +1,13 @@
+#include "global.h"
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD25_02254854();
+extern void MOD25_0225496C();
+
+THUMB_FUNC static void MOD25_02254840(void)
+{
+ Poketch_InitApp(MOD25_02254854, MOD25_0225496C);
+}
+
+#define NitroStaticInit MOD25_02254840
+#include "sinit.h"
diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s
index 12d880aa..45536bcf 100644
--- a/arm9/modules/26/asm/module_26.s
+++ b/arm9/modules/26/asm/module_26.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD26_02254840
-MOD26_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD26_02254854
- ldr r1, _02254850 ; =MOD26_02254A84
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD26_02254854
-_02254850: .word MOD26_02254A84
- thumb_func_end MOD26_02254840
-
thumb_func_start MOD26_02254854
MOD26_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
@@ -843,6 +831,3 @@ MOD26_02254FF0: ; 0x02254FF0
.word 0x01, MOD26_02254D6C, 0x00
.word 0x02, MOD26_02254D90, 0x00
.word 0x00, 0x00000000, 0x00
-
- .section .sinit
- .word MOD26_02254840
diff --git a/arm9/modules/26/src/module_26_sinit.c b/arm9/modules/26/src/module_26_sinit.c
new file mode 100644
index 00000000..a84f88bb
--- /dev/null
+++ b/arm9/modules/26/src/module_26_sinit.c
@@ -0,0 +1,13 @@
+#include "global.h"
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD26_02254854();
+extern void MOD26_02254A84();
+
+THUMB_FUNC static void MOD26_02254840(void)
+{
+ Poketch_InitApp(MOD26_02254854, MOD26_02254A84);
+}
+
+#define NitroStaticInit MOD26_02254840
+#include "sinit.h"
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index d11eeb44..3ac786b0 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD27_02254840
-MOD27_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD27_02254854
- ldr r1, _02254850 ; =MOD27_0225492C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD27_02254854
-_02254850: .word MOD27_0225492C
- thumb_func_end MOD27_02254840
-
thumb_func_start MOD27_02254854
MOD27_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/27/src/module_27_sinit.c b/arm9/modules/27/src/module_27_sinit.c
index 6b069297..cb942ec9 100644
--- a/arm9/modules/27/src/module_27_sinit.c
+++ b/arm9/modules/27/src/module_27_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD27_02254840
#include "global.h"
-extern void MOD27_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD27_02254854();
+extern void MOD27_0225492C();
+
+THUMB_FUNC static void MOD27_02254840(void)
+{
+ Poketch_InitApp(MOD27_02254854, MOD27_0225492C);
+}
+
+#define NitroStaticInit MOD27_02254840
#include "sinit.h"
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index dba3ebba..16acbd62 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD28_02254840
-MOD28_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD28_02254854
- ldr r1, _02254850 ; =MOD28_022549F4
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD28_02254854
-_02254850: .word MOD28_022549F4
- thumb_func_end MOD28_02254840
-
thumb_func_start MOD28_02254854
MOD28_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/28/src/module_28_sinit.c b/arm9/modules/28/src/module_28_sinit.c
index 3d2d7cf6..605cc4ec 100644
--- a/arm9/modules/28/src/module_28_sinit.c
+++ b/arm9/modules/28/src/module_28_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD28_02254840
#include "global.h"
-extern void MOD28_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD28_02254854();
+extern void MOD28_022549F4();
+
+THUMB_FUNC static void MOD28_02254840(void)
+{
+ Poketch_InitApp(MOD28_02254854, MOD28_022549F4);
+}
+
+#define NitroStaticInit MOD28_02254840
#include "sinit.h"
diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s
index 6473d5da..723e8449 100644
--- a/arm9/modules/29/asm/module_29.s
+++ b/arm9/modules/29/asm/module_29.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD29_02254840
-MOD29_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD29_02254854
- ldr r1, _02254850 ; =MOD29_02254914
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD29_02254854
-_02254850: .word MOD29_02254914
- thumb_func_end MOD29_02254840
-
thumb_func_start MOD29_02254854
MOD29_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/29/src/module_29_sinit.c b/arm9/modules/29/src/module_29_sinit.c
index 77fee47c..34914f4b 100644
--- a/arm9/modules/29/src/module_29_sinit.c
+++ b/arm9/modules/29/src/module_29_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD29_02254840
#include "global.h"
-extern void MOD29_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD29_02254854();
+extern void MOD29_02254914();
+
+THUMB_FUNC static void MOD29_02254840(void)
+{
+ Poketch_InitApp(MOD29_02254854, MOD29_02254914);
+}
+
+#define NitroStaticInit MOD29_02254840
#include "sinit.h"
diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s
index 3be3474f..aa55cd5b 100644
--- a/arm9/modules/30/asm/module_30.s
+++ b/arm9/modules/30/asm/module_30.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD30_02254840
-MOD30_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD30_02254854
- ldr r1, _02254850 ; =MOD30_0225496C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD30_02254854
-_02254850: .word MOD30_0225496C
- thumb_func_end MOD30_02254840
-
thumb_func_start MOD30_02254854
MOD30_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/30/src/module_30_sinit.c b/arm9/modules/30/src/module_30_sinit.c
index 058b270d..cdf50ca2 100644
--- a/arm9/modules/30/src/module_30_sinit.c
+++ b/arm9/modules/30/src/module_30_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD30_02254840
#include "global.h"
-extern void MOD30_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD30_02254854();
+extern void MOD30_0225496C();
+
+THUMB_FUNC static void MOD30_02254840(void)
+{
+ Poketch_InitApp(MOD30_02254854, MOD30_0225496C);
+}
+
+#define NitroStaticInit MOD30_02254840
#include "sinit.h"
diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s
index 6b884f10..5b40a737 100644
--- a/arm9/modules/32/asm/module_32.s
+++ b/arm9/modules/32/asm/module_32.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD32_02254840
-MOD32_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD32_02254854
- ldr r1, _02254850 ; =MOD32_0225495C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD32_02254854
-_02254850: .word MOD32_0225495C
- thumb_func_end MOD32_02254840
-
thumb_func_start MOD32_02254854
MOD32_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/32/src/module_32_sinit.c b/arm9/modules/32/src/module_32_sinit.c
index cf500b6e..f62d14b6 100644
--- a/arm9/modules/32/src/module_32_sinit.c
+++ b/arm9/modules/32/src/module_32_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD32_02254840
#include "global.h"
-extern void MOD32_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD32_02254854();
+extern void MOD32_0225495C();
+
+THUMB_FUNC static void MOD32_02254840(void)
+{
+ Poketch_InitApp(MOD32_02254854, MOD32_0225495C);
+}
+
+#define NitroStaticInit MOD32_02254840
#include "sinit.h"
diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s
index 4a439bd8..84100418 100644
--- a/arm9/modules/34/asm/module_34.s
+++ b/arm9/modules/34/asm/module_34.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD34_02254840
-MOD34_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD34_02254854
- ldr r1, _02254850 ; =MOD34_02254948
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_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}
diff --git a/arm9/modules/34/src/module_34_sinit.c b/arm9/modules/34/src/module_34_sinit.c
index 80d96e0a..96789176 100644
--- a/arm9/modules/34/src/module_34_sinit.c
+++ b/arm9/modules/34/src/module_34_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD34_02254840
#include "global.h"
-extern void MOD34_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD34_02254854();
+extern void MOD34_02254948();
+
+THUMB_FUNC static void MOD34_02254840(void)
+{
+ Poketch_InitApp(MOD34_02254854, MOD34_02254948);
+}
+
+#define NitroStaticInit MOD34_02254840
#include "sinit.h"
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 528f376a..fcd3cbc9 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD36_02254840
-MOD36_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD36_02254854
- ldr r1, _02254850 ; =MOD36_02254990
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD36_02254854
-_02254850: .word MOD36_02254990
- thumb_func_end MOD36_02254840
-
thumb_func_start MOD36_02254854
MOD36_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/36/src/module_36_sinit.c b/arm9/modules/36/src/module_36_sinit.c
index b365faa7..9db2e327 100644
--- a/arm9/modules/36/src/module_36_sinit.c
+++ b/arm9/modules/36/src/module_36_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD36_02254840
#include "global.h"
-extern void MOD36_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD36_02254854();
+extern void MOD36_02254990();
+
+THUMB_FUNC static void MOD36_02254840(void)
+{
+ Poketch_InitApp(MOD36_02254854, MOD36_02254990);
+}
+
+#define NitroStaticInit MOD36_02254840
#include "sinit.h"
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
index abd624df..6ee54fe8 100644
--- a/arm9/modules/39/asm/module_39.s
+++ b/arm9/modules/39/asm/module_39.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD39_02254840
-MOD39_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD39_02254854
- ldr r1, _02254850 ; =MOD39_022549D4
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD39_02254854
-_02254850: .word MOD39_022549D4
- thumb_func_end MOD39_02254840
-
thumb_func_start MOD39_02254854
MOD39_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/39/src/module_39_sinit.c b/arm9/modules/39/src/module_39_sinit.c
index f59753f9..39e6447f 100644
--- a/arm9/modules/39/src/module_39_sinit.c
+++ b/arm9/modules/39/src/module_39_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD39_02254840
#include "global.h"
-extern void MOD39_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD39_02254854();
+extern void MOD39_022549D4();
+
+THUMB_FUNC static void MOD39_02254840(void)
+{
+ Poketch_InitApp(MOD39_02254854, MOD39_022549D4);
+}
+
+#define NitroStaticInit MOD39_02254840
#include "sinit.h"
diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s
index 13762a02..a60736df 100644
--- a/arm9/modules/41/asm/module_41.s
+++ b/arm9/modules/41/asm/module_41.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD41_02254840
-MOD41_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD41_02254854
- ldr r1, _02254850 ; =MOD41_02254AD8
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD41_02254854
-_02254850: .word MOD41_02254AD8
- thumb_func_end MOD41_02254840
-
thumb_func_start MOD41_02254854
MOD41_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/41/src/module_41_sinit.c b/arm9/modules/41/src/module_41_sinit.c
index 9d0d5aa8..1e119d0f 100644
--- a/arm9/modules/41/src/module_41_sinit.c
+++ b/arm9/modules/41/src/module_41_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD41_02254840
#include "global.h"
-extern void MOD41_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD41_02254854();
+extern void MOD41_02254AD8();
+
+THUMB_FUNC static void MOD41_02254840(void)
+{
+ Poketch_InitApp(MOD41_02254854, MOD41_02254AD8);
+}
+
+#define NitroStaticInit MOD41_02254840
#include "sinit.h"
diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s
index b4e4e4d8..8bda4f17 100644
--- a/arm9/modules/42/asm/module_42.s
+++ b/arm9/modules/42/asm/module_42.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD42_02254840
-MOD42_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD42_02254854
- ldr r1, _02254850 ; =MOD42_02254A38
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD42_02254854
-_02254850: .word MOD42_02254A38
- thumb_func_end MOD42_02254840
-
thumb_func_start MOD42_02254854
MOD42_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/42/src/module_42_sinit.c b/arm9/modules/42/src/module_42_sinit.c
index 3b42fc7d..73baf05b 100644
--- a/arm9/modules/42/src/module_42_sinit.c
+++ b/arm9/modules/42/src/module_42_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD42_02254840
#include "global.h"
-extern void MOD42_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD42_02254854();
+extern void MOD42_02254A38();
+
+THUMB_FUNC static void MOD42_02254840(void)
+{
+ Poketch_InitApp(MOD42_02254854, MOD42_02254A38);
+}
+
+#define NitroStaticInit MOD42_02254840
#include "sinit.h"
diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s
index c9bbedfd..da27d823 100644
--- a/arm9/modules/43/asm/module_43.s
+++ b/arm9/modules/43/asm/module_43.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD43_02254840
-MOD43_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD43_02254854
- ldr r1, _02254850 ; =MOD43_02254970
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD43_02254854
-_02254850: .word MOD43_02254970
- thumb_func_end MOD43_02254840
-
thumb_func_start MOD43_02254854
MOD43_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/43/src/module_43_sinit.c b/arm9/modules/43/src/module_43_sinit.c
index 8143a29f..a3ac14b8 100644
--- a/arm9/modules/43/src/module_43_sinit.c
+++ b/arm9/modules/43/src/module_43_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD43_02254840
#include "global.h"
-extern void MOD43_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD43_02254854();
+extern void MOD43_02254970();
+
+THUMB_FUNC static void MOD43_02254840(void)
+{
+ Poketch_InitApp(MOD43_02254854, MOD43_02254970);
+}
+
+#define NitroStaticInit MOD43_02254840
#include "sinit.h"
diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s
index bcee6542..5c50d9f1 100644
--- a/arm9/modules/44/asm/module_44.s
+++ b/arm9/modules/44/asm/module_44.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD44_02254840
-MOD44_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD44_02254854
- ldr r1, _02254850 ; =MOD44_02254920
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_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}
diff --git a/arm9/modules/44/src/module_44_sinit.c b/arm9/modules/44/src/module_44_sinit.c
index 8bb54dd1..29625872 100644
--- a/arm9/modules/44/src/module_44_sinit.c
+++ b/arm9/modules/44/src/module_44_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD44_02254840
#include "global.h"
-extern void MOD44_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD44_02254854();
+extern void MOD44_02254920();
+
+THUMB_FUNC static void MOD44_02254840(void)
+{
+ Poketch_InitApp(MOD44_02254854, MOD44_02254920);
+}
+
+#define NitroStaticInit MOD44_02254840
#include "sinit.h"
diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s
index 549b6c3a..3c2ae879 100644
--- a/arm9/modules/47/asm/module_47.s
+++ b/arm9/modules/47/asm/module_47.s
@@ -3,18 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD47_02254840
-MOD47_02254840: ; 0x02254840
- ldr r3, _02254848 ; =Poketch_InitApp
- ldr r0, _0225484C ; =MOD47_02254854
- ldr r1, _02254850 ; =MOD47_0225491C
- bx r3
- .align 2, 0
-_02254848: .word Poketch_InitApp
-_0225484C: .word MOD47_02254854
-_02254850: .word MOD47_0225491C
- thumb_func_end MOD47_02254840
-
thumb_func_start MOD47_02254854
MOD47_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
diff --git a/arm9/modules/47/src/module_47_sinit.c b/arm9/modules/47/src/module_47_sinit.c
index f8e3041a..f255cafa 100644
--- a/arm9/modules/47/src/module_47_sinit.c
+++ b/arm9/modules/47/src/module_47_sinit.c
@@ -1,4 +1,13 @@
-#define NitroStaticInit MOD47_02254840
#include "global.h"
-extern void MOD47_02254840(void);
+
+extern void Poketch_InitApp(void *func1, void *func2);
+extern void MOD47_02254854();
+extern void MOD47_0225491C();
+
+THUMB_FUNC static void MOD47_02254840(void)
+{
+ Poketch_InitApp(MOD47_02254854, MOD47_0225491C);
+}
+
+#define NitroStaticInit MOD47_02254840
#include "sinit.h"
diff --git a/include-mw/function_target.h b/include-mw/function_target.h
index f37095f9..3834419c 100644
--- a/include-mw/function_target.h
+++ b/include-mw/function_target.h
@@ -8,4 +8,4 @@
#define ENUMS_ALWAYS_INT_OFF _Pragma("enumsalwaysint off")
#define ENUMS_ALWAYS_INT_RESET _Pragma("enumsalwaysint reset")
-#endif //GUARD_FUNCTION_TARGET_H \ No newline at end of file
+#endif //GUARD_FUNCTION_TARGET_H