summaryrefslogtreecommitdiff
path: root/arm9/modules/20/asm/mod20_02252C5C.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/20/asm/mod20_02252C5C.s')
-rw-r--r--arm9/modules/20/asm/mod20_02252C5C.s1400
1 files changed, 1400 insertions, 0 deletions
diff --git a/arm9/modules/20/asm/mod20_02252C5C.s b/arm9/modules/20/asm/mod20_02252C5C.s
new file mode 100644
index 00000000..6cd2ee2e
--- /dev/null
+++ b/arm9/modules/20/asm/mod20_02252C5C.s
@@ -0,0 +1,1400 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 2, 0
+
+ thumb_func_start MOD20_02252C5C
+MOD20_02252C5C: ; 0x02252C5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0xea
+ add r5, r0, #0
+ mov r0, #7
+ lsl r1, r1, #2
+ add r7, r2, #0
+ str r3, [sp]
+ bl AllocFromHeap
+ str r0, [r5]
+ add r4, r0, #0
+ beq _02252D0A
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r7, [r4, r0]
+ ldr r0, [r4, r0]
+ bl NNS_G2dResetOamManagerBuffer
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD20_02253BA4
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _02252CA6
+ ldr r0, [r5]
+ bl FreeToHeap
+ mov r0, #0
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02252CA6:
+ mov r0, #7
+ str r6, [r4]
+ bl BgConfig_Alloc
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ add r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD20_02252D44
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r0, r4, r1
+ sub r1, #8
+ ldr r1, [r4, r1]
+ bl MOD20_02253428
+ ldr r0, [r5]
+ mov r1, #8
+ add r0, r0, #4
+ bl MOD20_022536F4
+ ldr r0, [r5]
+ mov r1, #0x88
+ add r0, #0x2c
+ bl MOD20_02252E5C
+ ldr r0, [r5]
+ mov r1, #0x8c
+ add r0, #0x84
+ bl MOD20_02252E5C
+ ldr r0, [r5]
+ mov r1, #0x90
+ add r0, #0xdc
+ bl MOD20_02252E5C
+ ldr r0, _02252D10 ; =MOD20_02252D14
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA98
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02252D0A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02252D10: .word MOD20_02252D14
+ thumb_func_end MOD20_02252C5C
+
+ thumb_func_start MOD20_02252D14
+MOD20_02252D14: ; 0x02252D14
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r3, _02252D20 ; =MOD20_02253C78
+ ldr r0, [r1, r0]
+ bx r3
+ nop
+_02252D20: .word MOD20_02253C78
+ thumb_func_end MOD20_02252D14
+
+ thumb_func_start MOD20_02252D24
+MOD20_02252D24: ; 0x02252D24
+ push {r3, lr}
+ bl MOD20_02252B1C
+ mov r1, #0x55
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252D24
+
+ thumb_func_start MOD20_02252D34
+MOD20_02252D34: ; 0x02252D34
+ push {r3, lr}
+ bl MOD20_02252B1C
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252D34
+
+ thumb_func_start MOD20_02252D44
+MOD20_02252D44: ; 0x02252D44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xc
+ mov r1, #0
+ add r2, sp, #0
+ mov r3, #7
+ bl GfGfxLoader_GetPlttData
+ add r4, r0, #0
+ beq _02252D7A
+ ldr r0, [sp]
+ mov r2, #0x62
+ lsl r2, r2, #2
+ add r1, r5, r2
+ ldr r0, [r0, #0xc]
+ add r2, #0x78
+ bl MIi_CpuCopy32
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r0, r5, r1
+ add r1, #0x78
+ bl DC_FlushRange
+ add r0, r4, #0
+ bl FreeToHeap
+_02252D7A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252D44
+
+ thumb_func_start MOD20_02252D7C
+MOD20_02252D7C: ; 0x02252D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl Sav2_Poketch_GetScreenTint
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r5, r4, r1
+ lsl r4, r0, #6
+ add r0, r5, r4
+ lsl r1, r6, #5
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r5, r4
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02252D7C
+
+ thumb_func_start MOD20_02252DB4
+MOD20_02252DB4: ; 0x02252DB4
+ push {r3, r4, r5, lr}
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl Sav2_Poketch_GetScreenTint
+ mov r1, #0x62
+ lsl r0, r0, #5
+ lsl r1, r1, #2
+ add r0, #0x10
+ add r4, r4, r1
+ lsl r5, r0, #1
+ add r0, r4, r5
+ mov r1, #0
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r4, r5
+ mov r1, #0
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252DB4
+
+ thumb_func_start MOD20_02252DEC
+MOD20_02252DEC: ; 0x02252DEC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl Sav2_Poketch_GetScreenTint
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #6
+ add r0, r1, r0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252DEC
+
+ thumb_func_start MOD20_02252E18
+MOD20_02252E18: ; 0x02252E18
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02252E58
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD20_022535A4
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E36
+ bl MOD20_02253C4C
+_02252E36:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E44
+ bl FreeToHeap
+_02252E44:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E52
+ bl FUN_0200CAB4
+_02252E52:
+ add r0, r4, #0
+ bl FreeToHeap
+_02252E58:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252E18
+
+ thumb_func_start MOD20_02252E5C
+MOD20_02252E5C: ; 0x02252E5C
+ push {r4, r5}
+ mov r2, #0xf
+ ldr r5, _02252E7C ; =MOD20_022545EC
+ mov r4, #0
+ lsl r2, r2, #0xc
+_02252E66:
+ ldrh r3, [r5]
+ add r4, r4, #1
+ add r5, r5, #2
+ add r3, r1, r3
+ orr r3, r2
+ strh r3, [r0]
+ add r0, r0, #2
+ cmp r4, #0x2c
+ blo _02252E66
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02252E7C: .word MOD20_022545EC
+ thumb_func_end MOD20_02252E5C
+
+ thumb_func_start MOD20_02252E80
+MOD20_02252E80: ; 0x02252E80
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, r2, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ ldr r0, _02252EA0 ; =MOD20_02254644
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02252EA0: .word MOD20_02254644
+ thumb_func_end MOD20_02252E80
+
+ thumb_func_start MOD20_02252EA4
+MOD20_02252EA4: ; 0x02252EA4
+ ldr r3, _02252EAC ; =MOD20_02253794
+ add r0, r0, #4
+ bx r3
+ nop
+_02252EAC: .word MOD20_02253794
+ thumb_func_end MOD20_02252EA4
+
+ thumb_func_start MOD20_02252EB0
+MOD20_02252EB0: ; 0x02252EB0
+ ldr r3, _02252EB8 ; =MOD20_022537B8
+ add r0, r0, #4
+ bx r3
+ nop
+_02252EB8: .word MOD20_022537B8
+ thumb_func_end MOD20_02252EB0
+
+ thumb_func_start MOD20_02252EBC
+MOD20_02252EBC: ; 0x02252EBC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, r0, #4
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252EBC
+
+ thumb_func_start MOD20_02252ED0
+MOD20_02252ED0: ; 0x02252ED0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0
+ bl GXS_SetGraphicsMode
+ mov r0, #0x80
+ bl GX_SetBankForSubBG
+ mov r0, #1
+ lsl r0, r0, #8
+ bl GX_SetBankForSubOBJ
+ ldr r2, _02252FD8 ; =0x04001000
+ ldr r0, _02252FDC ; =0xFFCFFFEF
+ ldr r1, [r2]
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ bl GX_DisableEngineBLayers
+ mov r0, #0x10
+ mov r1, #1
+ bl GX_EngineBToggleLayers
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r2, _02252FE0 ; =MOD20_022545B4
+ mov r1, #4
+ mov r3, #0
+ bl InitBgFromTemplate
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r2, _02252FE4 ; =MOD20_022545D0
+ mov r1, #5
+ mov r3, #0
+ bl InitBgFromTemplate
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #7
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ lsl r2, r0, #5
+ ldr r2, [r4, r2]
+ mov r1, #0xe
+ mov r3, #4
+ bl GfGfxLoader_LoadCharData
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #7
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ lsl r2, r0, #5
+ ldr r2, [r4, r2]
+ mov r1, #0xf
+ mov r3, #4
+ bl GfGfxLoader_LoadScrnData
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C44
+ add r3, r0, #0
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0xd
+ mov r2, #4
+ lsl r3, r3, #5
+ bl GfGfxLoader_GXLoadPalWithSrcOffset
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r1, #0x18
+ str r1, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ bl FillBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ ldr r0, _02252FD8 ; =0x04001000
+ ldr r1, _02252FE8 ; =0xFFFFE0FF
+ ldr r2, [r0]
+ and r2, r1
+ mov r1, #0x13
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r0]
+ ldr r2, [r0]
+ ldr r1, _02252FEC ; =0xFFFF1FFF
+ and r1, r2
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02252FD8: .word 0x04001000
+_02252FDC: .word 0xFFCFFFEF
+_02252FE0: .word MOD20_022545B4
+_02252FE4: .word MOD20_022545D0
+_02252FE8: .word 0xFFFFE0FF
+_02252FEC: .word 0xFFFF1FFF
+ thumb_func_end MOD20_02252ED0
+
+ thumb_func_start MOD20_02252FF0
+MOD20_02252FF0: ; 0x02252FF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A8
+ add r4, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225301C
+ cmp r0, #1
+ beq _02253028
+ cmp r0, #2
+ beq _022530F6
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225301C:
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+_02253028:
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _022530FC
+ mov r0, #0
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ add r0, #0xc
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bls _02253048
+ mov r0, #0x28
+ strh r0, [r4, #2]
+_02253048:
+ ldrh r1, [r4, #2]
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1e
+ lsr r0, r1, #2
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ mov r1, #0xc
+ sub r6, r1, r0
+ lsl r0, r0, #1
+ str r0, [sp, #0x14]
+ lsl r0, r6, #0x18
+ ldr r1, [sp, #0x14]
+ add r7, r3, r2
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ lsl r1, r1, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0x40
+ mov r3, #2
+ bl FillBgTilemapRect
+ cmp r7, #0
+ beq _022530DA
+ sub r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ add r2, r7, #0
+ add r2, #0xd8
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FillBgTilemapRect
+ ldr r0, [sp, #0x14]
+ mov r2, #0xd8
+ add r0, r6, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ sub r2, r2, r7
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FillBgTilemapRect
+_022530DA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bne _022530FC
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022530F6:
+ ldr r0, [sp, #0x10]
+ bl MOD20_02252EBC
+_022530FC:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02252FF0
+
+ thumb_func_start MOD20_02253100
+MOD20_02253100: ; 0x02253100
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A8
+ add r4, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225312C
+ cmp r0, #1
+ beq _02253138
+ cmp r0, #2
+ beq _0225321E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225312C:
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+_02253138:
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02253224
+ mov r0, #0
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ add r0, #8
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bls _02253158
+ mov r0, #0x28
+ strh r0, [r4, #2]
+_02253158:
+ ldrh r0, [r4, #2]
+ mov r3, #2
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ lsr r7, r0, #2
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r6, r2, r1
+ mov r0, #0x16
+ sub r0, r0, r7
+ str r0, [sp, #0x14]
+ lsl r1, r7, #0x18
+ str r3, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ bl FillBgTilemapRect
+ ldr r0, [sp, #0x14]
+ lsl r1, r7, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ mov r3, #2
+ bl FillBgTilemapRect
+ cmp r6, #0
+ beq _02253202
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ sub r3, r6, #1
+ mov r2, #0xdb
+ sub r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FillBgTilemapRect
+ ldr r0, [sp, #0x14]
+ add r6, #0xd4
+ sub r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ lsl r2, r6, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FillBgTilemapRect
+_02253202:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bne _02253224
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225321E:
+ ldr r0, [sp, #0x10]
+ bl MOD20_02252EBC
+_02253224:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02253100
+
+ thumb_func_start MOD20_02253228
+MOD20_02253228: ; 0x02253228
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A8
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ add r2, r0, #0
+ cmp r2, #4
+ bhs _02253280
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r6, #0xd7
+ sub r2, r6, r2
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FillBgTilemapRect
+ add r0, r6, #0
+ add r0, #0xa9
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ add r0, r5, #0
+ bl MOD20_022538B0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_02253280:
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253228
+
+ thumb_func_start MOD20_0225328C
+MOD20_0225328C: ; 0x0225328C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A8
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ add r2, r0, #0
+ cmp r2, #4
+ bhs _022532E4
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r6, #0xdb
+ sub r2, r6, r2
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FillBgTilemapRect
+ add r0, r6, #0
+ add r0, #0xa5
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ add r0, r5, #0
+ bl MOD20_022538B0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_022532E4:
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225328C
+
+ thumb_func_start MOD20_022532F0
+MOD20_022532F0: ; 0x022532F0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0x84
+ mov r3, #0x1b
+ bl LoadRectToBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl BgCommitTilemapBufferToVram
+ ldr r0, _02253334 ; =0x00000671
+ bl PlaySE
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02253334: .word 0x00000671
+ thumb_func_end MOD20_022532F0
+
+ thumb_func_start MOD20_02253338
+MOD20_02253338: ; 0x02253338
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0x2c
+ mov r3, #0x1b
+ bl LoadRectToBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl BgCommitTilemapBufferToVram
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253338
+
+ thumb_func_start MOD20_02253378
+MOD20_02253378: ; 0x02253378
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0xdc
+ mov r3, #0x1b
+ bl LoadRectToBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl BgCommitTilemapBufferToVram
+ ldr r0, _022533BC ; =0x0000066F
+ bl PlaySE
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022533BC: .word 0x0000066F
+ thumb_func_end MOD20_02253378
+
+ thumb_func_start MOD20_022533C0
+MOD20_022533C0: ; 0x022533C0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ mov r1, #0x57
+ add r4, r0, #0
+ lsl r1, r1, #2
+ add r1, r4, r1
+ bl MOD20_02253430
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r1, [r4]
+ add r0, r4, r0
+ bl MOD20_0225354C
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_022533C0
+
+ thumb_func_start MOD20_022533EC
+MOD20_022533EC: ; 0x022533EC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r1, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r1, [r1]
+ bl MOD20_0225354C
+ add r0, r4, #0
+ bl MOD20_02252EBC
+ pop {r4, pc}
+ thumb_func_end MOD20_022533EC
+
+ thumb_func_start MOD20_0225340C
+MOD20_0225340C: ; 0x0225340C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bl MOD20_022535A4
+ add r0, r4, #0
+ bl MOD20_02252EBC
+ pop {r4, pc}
+ thumb_func_end MOD20_0225340C
+
+ thumb_func_start MOD20_02253428
+MOD20_02253428: ; 0x02253428
+ mov r2, #0
+ str r2, [r0]
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_02253428
+
+ thumb_func_start MOD20_02253430
+MOD20_02253430: ; 0x02253430
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #7
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ cmp r0, #0
+ beq _022534CC
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl GfGfxLoader_LoadWholePalette
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #7
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r2, #5
+ add r3, r1, #0
+ bl GfGfxLoader_GXLoadPal
+ add r0, r5, #0
+ mov r1, #0xf
+ bl MOD20_022534D4
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ ldr r1, _022534D0 ; =MOD20_022545A4
+ add r2, #8
+ bl MOD20_02253E74
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022534CC
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ ldr r1, _022534D0 ; =MOD20_022545A4
+ add r2, #8
+ bl MOD20_02253E74
+ str r0, [r4, #0x20]
+ cmp r0, #0
+ bne _022534AE
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02253F14
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022534AE:
+ mov r1, #1
+ lsl r1, r1, #0x10
+ mov r2, #0
+ bl MOD20_02253F54
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xf
+ bl MOD20_02253F9C
+ ldr r0, [r4, #0x20]
+ mov r1, #0xf
+ bl MOD20_02253F9C
+ mov r0, #1
+ str r0, [r4]
+_022534CC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022534D0: .word MOD20_022545A4
+ thumb_func_end MOD20_02253430
+
+ thumb_func_start MOD20_022534D4
+MOD20_022534D4: ; 0x022534D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl MOD20_02252C3C
+ bl Sav2_Poketch_GetScreenTint
+ mov r1, #0x62
+ lsl r0, r0, #5
+ lsl r1, r1, #2
+ add r0, r0, #1
+ add r2, r5, r1
+ lsl r0, r0, #1
+ add r0, r2, r0
+ add r1, #0x5a
+ mov r2, #2
+ bl GXS_LoadBGPltt
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl MOD20_02252DEC
+ ldr r1, _02253548 ; =0x0000038A
+ add r0, r1, #6
+ ldrh r2, [r5, r1]
+ ldrh r0, [r5, r0]
+ strh r0, [r5, r1]
+ add r0, r1, #6
+ strh r2, [r5, r0]
+ add r0, r1, #0
+ add r2, r1, #0
+ add r0, #0xe
+ add r2, #0x1c
+ ldrh r3, [r5, r2]
+ add r2, r1, #0
+ ldrh r0, [r5, r0]
+ add r2, #0xe
+ strh r3, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x1c
+ strh r0, [r5, r2]
+ sub r0, r1, #2
+ add r0, r5, r0
+ mov r1, #0x20
+ bl DC_FlushRange
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r1, r4, #5
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02253548: .word 0x0000038A
+ thumb_func_end MOD20_022534D4
+
+ thumb_func_start MOD20_0225354C
+MOD20_0225354C: ; 0x0225354C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02253596
+ ldr r0, [r1]
+ ldr r2, _02253598 ; =0x04000280
+ mov r3, #0
+ add r0, r0, #1
+ strh r3, [r2]
+ str r0, [r2, #0x10]
+ add r0, r2, #0
+ mov r1, #0xa
+ add r0, #0x18
+ str r1, [r0]
+ str r3, [r0, #4]
+ lsr r0, r2, #0xb
+_0225356E:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225356E
+ ldr r0, _0225359C ; =0x040002A0
+ add r3, r0, #0
+ ldr r1, [r0]
+ sub r3, #0x20
+ lsr r0, r0, #0xb
+_0225357E:
+ ldrh r2, [r3]
+ tst r2, r0
+ bne _0225357E
+ ldr r0, _022535A0 ; =0x040002A8
+ ldr r5, [r0]
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD20_02253F28
+_02253596:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02253598: .word 0x04000280
+_0225359C: .word 0x040002A0
+_022535A0: .word 0x040002A8
+ thumb_func_end MOD20_0225354C
+
+ thumb_func_start MOD20_022535A4
+MOD20_022535A4: ; 0x022535A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _022535CA
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02253F14
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x20]
+ bl MOD20_02253F14
+ add r0, r4, #0
+ add r0, #8
+ bl MOD20_02254014
+ mov r0, #0
+ str r0, [r4]
+_022535CA:
+ pop {r4, pc}
+ thumb_func_end MOD20_022535A4
+
+ thumb_func_start MOD20_022535CC
+MOD20_022535CC: ; 0x022535CC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A8
+ add r0, r6, #0
+ bl MOD20_022538AC
+ add r5, r0, #0
+ cmp r5, #3
+ bhi _0225365E
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022535F8: ; jump table
+ .short _02253600 - _022535F8 - 2 ; case 0
+ .short _0225361C - _022535F8 - 2 ; case 1
+ .short _0225361C - _022535F8 - 2 ; case 2
+ .short _0225361C - _022535F8 - 2 ; case 3
+_02253600:
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, _02253664 ; =0x04001050
+ mov r1, #2
+ mov r2, #0x1c
+ mov r3, #0x1a
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl BgCommitTilemapBufferToVram
+_0225361C:
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r2, #0xdb
+ sub r2, r2, r5
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FillBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ cmp r5, #3
+ bne _02253658
+ add r0, r6, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_02253658:
+ add r0, r6, #0
+ bl MOD20_022538B0
+_0225365E:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02253664: .word 0x04001050
+ thumb_func_end MOD20_022535CC
+
+ thumb_func_start MOD20_02253668
+MOD20_02253668: ; 0x02253668
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ mov r3, #2
+ add r4, r0, #0
+ str r3, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ mov r2, #0x40
+ bl FillBgTilemapRect
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl BgCommitTilemapBufferToVram
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl BgCommitTilemapBufferToVram
+ mov r1, #0
+ ldr r0, _022536C4 ; =0x04001050
+ add r2, r1, #0
+ mov r3, #0x1f
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_022536C4: .word 0x04001050
+ thumb_func_end MOD20_02253668
+
+ thumb_func_start MOD20_022536C8
+MOD20_022536C8: ; 0x022536C8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FreeBgTilemapBuffer
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FreeBgTilemapBuffer
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022536C8
+
+ .section .rodata
+
+ .global MOD20_022545A4
+MOD20_022545A4: ; 0x022545A4
+ .byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD20_022545B4
+MOD20_022545B4: ; 0x022545B4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD20_022545D0
+MOD20_022545D0: ; 0x022545D0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x0D, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global MOD20_022545EC
+MOD20_022545EC: ; 0x022545EC
+ .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0015, 0x0016, 0x0017, 0x0018
+ .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D
+ .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D
+ .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D
+ .short 0x002A, 0x002B, 0x002C, 0x002D, 0x003F, 0x0040, 0x0041, 0x0042
+ .short 0x0054, 0x0055, 0x0056, 0x0057
+
+ .global MOD20_02254644
+MOD20_02254644: ; 0x02254644
+ .word 0x00000000, MOD20_02252ED0, 0x00000000
+ .word 0x00000001, MOD20_02252FF0, 0x00000004
+ .word 0x00000002, MOD20_02252FF0, 0x00000004
+ .word 0x00000003, MOD20_02253228, 0x00000004
+ .word 0x00000004, MOD20_02253100, 0x00000004
+ .word 0x00000005, MOD20_0225328C, 0x00000004
+ .word 0x00000006, MOD20_022532F0, 0x00000000
+ .word 0x00000008, MOD20_02253338, 0x00000000
+ .word 0x00000007, MOD20_02253378, 0x00000000
+ .word 0x00000009, MOD20_022533C0, 0x00000000
+ .word 0x0000000A, MOD20_022533EC, 0x00000000
+ .word 0x0000000B, MOD20_0225340C, 0x00000000
+ .word 0x0000000C, MOD20_022535CC, 0x00000000
+ .word 0x0000000D, MOD20_02253668, 0x00000000
+ .word 0x0000000E, MOD20_022536C8, 0x00000000
+ .word 0xFFFFFFFF, 0x00000000, 0x00000000