pokediamond/arm9/modules/71/asm/module_71.s
2021-06-19 14:43:22 +02:00

7298 lines
134 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD71_0222D5C0
MOD71_0222D5C0: ; 0x0222D5C0
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl GX_DisableEngineALayers
bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _0222D72C ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _0222D730 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
ldr r2, _0222D734 ; =0x000707D0
mov r0, #3
mov r1, #0x1a
bl CreateHeap
ldr r1, _0222D738 ; =0x000036B4
add r0, r5, #0
mov r2, #0x1a
bl OverlayManager_CreateAndGetData
add r4, r0, #0
ldr r2, _0222D738 ; =0x000036B4
mov r0, #0
add r1, r4, #0
bl MIi_CpuClearFast
mov r0, #0x1a
bl BgConfig_Alloc
mov r1, #0x5d
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0xc
mov r1, #0x16
mov r2, #0x1a
bl ScrStrBufs_new_custom
mov r1, #0x5e
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0x1a
bl ScrStrBufs_new
mov r1, #0x5f
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0x1a
bl ScrStrBufs_new
mov r2, #6
lsl r2, r2, #6
str r0, [r4, r2]
mov r1, #0x1a
mov r0, #0
sub r2, #0x44
add r3, r1, #0
bl NewMsgDataFromNarc
mov r1, #0x61
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
str r0, [r4, #0x40]
add r0, r4, #0
add r1, r5, #0
bl MOD71_0222E76C
mov r0, #4
mov r1, #8
bl SetKeyRepeatTimers
bl MOD71_0222E558
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD71_0222E578
mov r0, #0x10
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x1a
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
add r0, r4, #0
bl MOD71_0222E900
ldr r0, _0222D73C ; =MOD71_0222E4DC
add r1, r4, #0
bl Main_SetVBlankIntrCB
bl MOD71_0222EA38
add r0, r4, #0
bl MOD71_0222EA68
add r0, r4, #0
bl MOD71_0222EF90
mov r0, #0x5d
ldr r2, [r4, #8]
lsl r0, r0, #2
ldr r1, _0222D740 ; =0x00000438
ldr r0, [r4, r0]
ldr r2, [r2, #0x18]
add r1, r4, r1
bl MOD71_02230C48
ldr r0, [r4, #8]
add r1, r4, #0
ldr r0, [r0]
str r0, [r4]
bl FUN_02083D10
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222D744 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
ldr r0, [r4]
bl FUN_02083B84
mov r0, #0
mov r1, #1
bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
mov r1, #0x5d
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r0, #0x1a
bl FUN_020335F0
bl FUN_02033E74
bl IsNighttime
cmp r0, #0
bne _0222D71A
ldr r1, _0222D748 ; =0x0000043D
mov r0, #4
mov r2, #1
bl FUN_0200433C
b _0222D724
_0222D71A:
ldr r1, _0222D74C ; =0x0000043E
mov r0, #4
mov r2, #1
bl FUN_0200433C
_0222D724:
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
nop
_0222D72C: .word 0xFFFFE0FF
_0222D730: .word 0x04001000
_0222D734: .word 0x000707D0
_0222D738: .word 0x000036B4
_0222D73C: .word MOD71_0222E4DC
_0222D740: .word 0x00000438
_0222D744: .word 0x000005A8
_0222D748: .word 0x0000043D
_0222D74C: .word 0x0000043E
thumb_func_end MOD71_0222D5C0
thumb_func_start MOD71_0222D750
MOD71_0222D750: ; 0x0222D750
push {r4, r5, r6, lr}
add r5, r1, #0
ldr r1, [sp, #0x10]
add r4, r2, #0
lsl r1, r1, #4
add r1, #0x92
mov r2, #2
ldr r0, [r0, #0x14]
add r6, r3, #0
lsl r1, r1, #5
lsl r2, r2, #8
bl GX_LoadOBJ
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl FUN_0206B7BC
add r1, r0, #0
ldr r0, [sp, #0x14]
add r1, #0xa
bl FUN_020202A8
pop {r4, r5, r6, pc}
thumb_func_end MOD71_0222D750
thumb_func_start MOD71_0222D780
MOD71_0222D780: ; 0x0222D780
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
bl FUN_02031190
bl FUN_0202DFA4
add r4, r0, #0
bl FUN_02031190
mov r1, #1
eor r0, r1
bl FUN_0202DFA4
add r6, r0, #0
add r0, r4, #0
mov r1, #0x1a
bl PlayerProfile_GetPlayerName_NewString
add r4, r0, #0
add r0, r6, #0
mov r1, #0x1a
bl PlayerProfile_GetPlayerName_NewString
add r6, r0, #0
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x30
bl NewString_ReadMsgData
add r7, r0, #0
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0222D814 ; =0x00000438
add r1, r4, #0
add r0, r5, r0
mov r2, #0xa
mov r3, #0
bl MOD71_02230EFC
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0222D818 ; =0x00000448
add r1, r6, #0
add r0, r5, r0
mov r2, #0xa
mov r3, #0
bl MOD71_02230EFC
mov r0, #1
str r0, [sp]
str r0, [sp, #4]
ldr r0, _0222D81C ; =0x00000498
add r1, r7, #0
add r0, r5, r0
mov r2, #5
mov r3, #0
bl MOD71_02230EFC
add r0, r7, #0
bl String_dtor
add r0, r6, #0
bl String_dtor
add r0, r4, #0
bl String_dtor
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0222D814: .word 0x00000438
_0222D818: .word 0x00000448
_0222D81C: .word 0x00000498
thumb_func_end MOD71_0222D780
thumb_func_start MOD71_0222D820
MOD71_0222D820: ; 0x0222D820
push {r4, lr}
sub sp, #8
add r4, r0, #0
bl MOD71_0222E558
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD71_0222E578
add r0, r4, #0
bl MOD71_0222E900
add r0, r4, #0
bl MOD71_0222D93C
add r0, r4, #0
bl MOD71_0222D780
ldr r0, [r4, #8]
ldr r0, [r0, #0x18]
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r2, #0x5d
str r0, [sp]
mov r0, #0x1a
lsl r2, r2, #2
str r0, [sp, #4]
ldr r0, [r4, r2]
mov r1, #0
add r2, #0x65
mov r3, #0xa
bl FUN_0200CD68
mov r1, #0
mov r2, #0x5d
str r1, [sp]
mov r0, #0x1a
lsl r2, r2, #2
str r0, [sp, #4]
ldr r0, [r4, r2]
add r2, #0x83
mov r3, #0xb
bl FUN_0200CB00
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222D92C ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
mov r0, #4
mov r1, #1
bl ToggleBgLayer
mov r0, #5
mov r1, #1
bl ToggleBgLayer
mov r0, #6
mov r1, #1
bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #1
bl ToggleBgLayer
mov r0, #1
add r1, r0, #0
bl ToggleBgLayer
mov r0, #2
mov r1, #1
bl ToggleBgLayer
mov r0, #3
mov r1, #1
bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
bl MOD71_0222EA38
add r0, r4, #0
bl MOD71_0222EA68
add r0, r4, #0
bl MOD71_0222EF90
ldr r0, _0222D930 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
add r2, r4, #0
bl MOD71_0222DBEC
ldr r0, _0222D934 ; =0x0000221C
mov r1, #6
ldr r0, [r4, r0]
add r2, r4, #0
bl MOD71_0222DBEC
mov r0, #0xce
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xcf
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
ldr r0, _0222D938 ; =MOD71_0222E4DC
add r1, r4, #0
bl Main_SetVBlankIntrCB
add sp, #8
pop {r4, pc}
nop
_0222D92C: .word 0x00000588
_0222D930: .word 0x00002218
_0222D934: .word 0x0000221C
_0222D938: .word MOD71_0222E4DC
thumb_func_end MOD71_0222D820
thumb_func_start MOD71_0222D93C
MOD71_0222D93C: ; 0x0222D93C
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x5e
ldr r1, _0222D9B8 ; =0x00002218
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r1, [r5, r1]
mov r2, #0
bl MOD71_0222DB5C
mov r0, #0x5e
ldr r1, _0222D9BC ; =0x0000221C
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r1, [r5, r1]
mov r2, #6
bl MOD71_0222DB5C
mov r0, #0
mov r2, #0x5e
str r0, [sp]
lsl r2, r2, #2
ldr r3, _0222D9B8 ; =0x00002218
ldr r0, _0222D9C0 ; =0x000004A8
ldr r1, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
ldr r3, [r5, r3]
add r0, r5, r0
bl MOD71_0222DB94
mov r0, #6
mov r2, #0x5e
str r0, [sp]
lsl r2, r2, #2
ldr r3, _0222D9BC ; =0x0000221C
ldr r0, _0222D9C4 ; =0x00000508
ldr r1, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
ldr r3, [r5, r3]
add r0, r5, r0
bl MOD71_0222DB94
ldr r0, _0222D9B8 ; =0x00002218
ldr r0, [r5, r0]
bl GetPartyCount
add r4, r0, #0
ldr r0, _0222D9BC ; =0x0000221C
ldr r0, [r5, r0]
bl GetPartyCount
add r2, r0, #0
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl MOD71_0222E8DC
pop {r3, r4, r5, pc}
nop
_0222D9B8: .word 0x00002218
_0222D9BC: .word 0x0000221C
_0222D9C0: .word 0x000004A8
_0222D9C4: .word 0x00000508
thumb_func_end MOD71_0222D93C
thumb_func_start MOD71_0222D9C8
MOD71_0222D9C8: ; 0x0222D9C8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r1, #0
bl OverlayManager_GetData
ldr r1, [r5]
add r4, r0, #0
mov r6, #0
cmp r1, #0
beq _0222D9E8
cmp r1, #1
beq _0222D9FC
cmp r1, #2
bne _0222D9E6
b _0222DB28
_0222D9E6:
b _0222DB32
_0222D9E8:
bl FUN_0200E308
cmp r0, #0
beq _0222DA02
mov r0, #1
str r0, [r5]
add r0, r4, #0
bl MOD71_0222D780
b _0222DB32
_0222D9FC:
ldr r1, [r4, #0x48]
cmp r1, #7
bls _0222DA04
_0222DA02:
b _0222DB32
_0222DA04:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222DA10: ; jump table
.short _0222DA20 - _0222DA10 - 2 ; case 0
.short _0222DA28 - _0222DA10 - 2 ; case 1
.short _0222DA36 - _0222DA10 - 2 ; case 2
.short _0222DA54 - _0222DA10 - 2 ; case 3
.short _0222DA72 - _0222DA10 - 2 ; case 4
.short _0222DAAE - _0222DA10 - 2 ; case 5
.short _0222DAFE - _0222DA10 - 2 ; case 6
.short _0222DB1A - _0222DA10 - 2 ; case 7
_0222DA20:
bl MOD71_0222DD60
str r0, [r4, #0x48]
b _0222DB32
_0222DA28:
bl MOD71_0222E2D4
str r0, [r4, #0x48]
add r0, r4, #0
bl MOD71_0222F264
b _0222DB32
_0222DA36:
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x1a
str r0, [sp, #8]
add r0, r6, #0
add r1, r6, #0
add r2, r6, #0
add r3, r6, #0
bl FUN_0200E1D0
mov r0, #2
str r0, [r5]
b _0222DB32
_0222DA54:
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x1a
str r0, [sp, #8]
add r0, r6, #0
add r1, r6, #0
add r2, r6, #0
add r3, r6, #0
bl FUN_0200E1D0
mov r0, #4
str r0, [r4, #0x48]
b _0222DB32
_0222DA72:
bl FUN_0200E308
cmp r0, #0
beq _0222DB32
add r0, r4, #0
bl MOD71_0222E3D4
add r0, r4, #0
bl MOD71_0222E378
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD71_0222E848
mov r0, #1
str r0, [r4, #0x44]
mov r0, #5
str r0, [r4, #0x48]
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
mov r1, #6
bl _s32_div_f
add r1, r0, #0
add r0, r4, #0
bl MOD71_0222F59C
b _0222DB32
_0222DAAE:
ldr r0, [r4, #0x40]
bl OverlayManager_Run
cmp r0, #0
beq _0222DB32
ldr r0, [r4, #0x40]
bl OverlayManager_delete
add r0, r4, #0
bl MOD71_0222D820
add r0, r6, #0
str r0, [r4, #0x44]
add r0, r4, #0
add r0, #0x20
ldrb r2, [r0]
ldr r1, [r4, #0x3c]
mov r0, #6
mul r0, r1
add r1, r2, r0
add r0, r4, #0
add r0, #0x88
str r1, [r0]
add r0, r4, #0
bl MOD71_0222E224
add r0, r4, #0
mov r1, #0xce
add r0, #0x88
lsl r1, r1, #2
ldr r0, [r0]
ldr r1, [r4, r1]
add r2, r6, #0
bl MOD71_0222F350
bl FUN_02033E74
mov r0, #6
str r0, [r4, #0x48]
b _0222DB32
_0222DAFE:
mov r0, #8
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x1a
str r0, [sp, #8]
add r0, r6, #0
add r2, r1, #0
add r3, r6, #0
bl FUN_0200E1D0
mov r0, #7
str r0, [r4, #0x48]
b _0222DB32
_0222DB1A:
bl FUN_0200E308
cmp r0, #0
beq _0222DB32
mov r0, #1
str r0, [r4, #0x48]
b _0222DB32
_0222DB28:
bl FUN_0200E308
cmp r0, #0
beq _0222DB32
mov r6, #1
_0222DB32:
ldr r0, [r4, #0x44]
cmp r0, #0
bne _0222DB48
add r0, r4, #0
bl MOD71_02230B3C
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_0201FDEC
_0222DB48:
mov r1, #0x5d
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r0, #0x1a
bl FUN_020335F0
add r0, r6, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD71_0222D9C8
thumb_func_start MOD71_0222DB5C
MOD71_0222DB5C: ; 0x0222DB5C
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r7, r0, #0
add r0, r5, #0
add r6, r2, #0
mov r4, #0
bl GetPartyCount
cmp r0, #0
ble _0222DB92
_0222DB70:
add r0, r5, #0
add r1, r4, #0
bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
add r0, r7, #0
add r1, r4, r6
bl BufferBoxMonNickname
add r0, r5, #0
add r4, r4, #1
bl GetPartyCount
cmp r4, r0
blt _0222DB70
_0222DB92:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD71_0222DB5C
thumb_func_start MOD71_0222DB94
MOD71_0222DB94: ; 0x0222DB94
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r0, r3, #0
str r1, [sp, #8]
str r2, [sp, #0xc]
str r3, [sp, #0x10]
ldr r6, [sp, #0x28]
mov r4, #0
bl GetPartyCount
cmp r0, #0
ble _0222DBE6
add r7, r6, #1
_0222DBB0:
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
add r2, r7, r4
mov r3, #0x1a
bl ReadMsgData_ExpandPlaceholders
add r6, r0, #0
mov r0, #1
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r0, r5, #0
add r1, r6, #0
mov r2, #8
mov r3, #0
bl MOD71_02230EFC
add r0, r6, #0
bl String_dtor
ldr r0, [sp, #0x10]
add r5, #0x10
add r4, r4, #1
bl GetPartyCount
cmp r4, r0
blt _0222DBB0
_0222DBE6:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD71_0222DB94
thumb_func_start MOD71_0222DBEC
MOD71_0222DBEC: ; 0x0222DBEC
push {r4, r5, r6, r7, lr}
sub sp, #0x24
str r0, [sp, #8]
str r1, [sp, #0xc]
str r2, [sp, #0x20]
mov r7, #0
bl GetPartyCount
cmp r0, #0
bgt _0222DC02
b _0222DD10
_0222DC02:
mov r1, #0x1f
ldr r0, [sp, #0x20]
lsl r1, r1, #6
add r0, r0, r1
str r0, [sp, #0x1c]
_0222DC0C:
ldr r0, [sp, #0xc]
ldr r2, _0222DD50 ; =0x00000696
add r0, r7, r0
str r0, [sp, #0x10]
lsl r0, r0, #2
str r0, [sp, #0x18]
ldr r0, [sp, #0x10]
lsl r1, r0, #4
ldr r0, [sp, #0x20]
add r4, r0, r1
ldr r1, [sp, #0x18]
ldrb r2, [r4, r2]
add r5, r0, r1
mov r0, #0x69
ldr r1, _0222DD54 ; =0x00000695
lsl r0, r0, #4
ldrh r0, [r4, r0]
ldrb r1, [r4, r1]
bl FUN_0206B6D4
add r1, r0, #0
mov r0, #0x1a
str r0, [sp]
ldr r6, [sp, #0x1c]
ldr r3, [sp, #0x18]
mov r0, #0x13
mov r2, #0
add r3, r6, r3
bl GfGfxLoader_GetCharData
mov r1, #0x79
lsl r1, r1, #4
str r0, [r5, r1]
add r0, r1, #0
add r0, #0x30
ldr r0, [r5, r0]
mov r1, #2
ldr r0, [r0, #0x14]
lsl r1, r1, #8
bl DC_FlushRange
ldr r0, [sp, #0x10]
mov r1, #0x69
str r0, [sp]
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r5, r0]
ldr r2, _0222DD50 ; =0x00000696
str r0, [sp, #4]
ldr r3, _0222DD54 ; =0x00000695
mov r0, #0x1f
lsl r1, r1, #4
lsl r0, r0, #6
ldrh r1, [r4, r1]
ldrb r2, [r4, r2]
ldrb r3, [r4, r3]
ldr r0, [r5, r0]
bl MOD71_0222D750
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
ldr r0, _0222DD58 ; =0x00000692
ldrh r0, [r4, r0]
cmp r0, #0
bne _0222DCA4
mov r0, #0x3a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
b _0222DCCC
_0222DCA4:
ldr r0, [sp, #0x10]
lsl r1, r0, #2
ldr r0, [sp, #0x20]
add r1, r0, r1
mov r0, #0x3a
lsl r0, r0, #4
ldr r0, [r1, r0]
str r1, [sp, #0x14]
mov r1, #1
bl FUN_020200A0
mov r0, #0x3a
ldr r1, [sp, #0x14]
lsl r0, r0, #4
ldr r0, [r1, r0]
ldr r1, _0222DD58 ; =0x00000692
ldrh r1, [r4, r1]
add r1, r1, #2
bl FUN_02020130
_0222DCCC:
ldr r0, _0222DD5C ; =0x0000069C
ldr r0, [r4, r0]
cmp r0, #0
bne _0222DCE2
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
b _0222DD02
_0222DCE2:
ldr r0, [sp, #0x10]
lsl r1, r0, #2
ldr r0, [sp, #0x20]
add r4, r0, r1
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x15
bl FUN_02020130
_0222DD02:
ldr r0, [sp, #8]
add r7, r7, #1
bl GetPartyCount
cmp r7, r0
bge _0222DD10
b _0222DC0C
_0222DD10:
cmp r7, #6
bge _0222DD4C
ldr r0, [sp, #0xc]
mov r6, #0x3a
lsl r1, r0, #2
ldr r0, [sp, #0x20]
lsl r6, r6, #4
add r1, r0, r1
lsl r0, r7, #2
add r5, r6, #0
add r4, r1, r0
add r5, #0x30
_0222DD28:
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
ldr r0, [r4, r6]
mov r1, #0
bl FUN_020200A0
ldr r0, [r4, r5]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r4, r4, #4
cmp r7, #6
blt _0222DD28
_0222DD4C:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0222DD50: .word 0x00000696
_0222DD54: .word 0x00000695
_0222DD58: .word 0x00000692
_0222DD5C: .word 0x0000069C
thumb_func_end MOD71_0222DBEC
thumb_func_start MOD71_0222DD60
MOD71_0222DD60: ; 0x0222DD60
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r0, #0
bl MOD71_02230C1C
ldr r0, [r4, #0x4c]
cmp r0, #0x13
bls _0222DD72
b _0222E0E8
_0222DD72:
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222DD7E: ; jump table
.short _0222DDA6 - _0222DD7E - 2 ; case 0
.short _0222DDC0 - _0222DD7E - 2 ; case 1
.short _0222DE12 - _0222DD7E - 2 ; case 2
.short _0222DE22 - _0222DD7E - 2 ; case 3
.short _0222DE38 - _0222DD7E - 2 ; case 4
.short _0222DE48 - _0222DD7E - 2 ; case 5
.short _0222DE60 - _0222DD7E - 2 ; case 6
.short _0222DE74 - _0222DD7E - 2 ; case 7
.short _0222DE86 - _0222DD7E - 2 ; case 8
.short _0222DEB2 - _0222DD7E - 2 ; case 9
.short _0222DEC0 - _0222DD7E - 2 ; case 10
.short _0222DECC - _0222DD7E - 2 ; case 11
.short _0222DF58 - _0222DD7E - 2 ; case 12
.short _0222DF74 - _0222DD7E - 2 ; case 13
.short _0222DF80 - _0222DD7E - 2 ; case 14
.short _0222DF92 - _0222DD7E - 2 ; case 15
.short _0222DFD6 - _0222DD7E - 2 ; case 16
.short _0222E010 - _0222DD7E - 2 ; case 17
.short _0222E054 - _0222DD7E - 2 ; case 18
.short _0222E094 - _0222DD7E - 2 ; case 19
_0222DDA6:
mov r0, #0x50
bl FUN_02031588
mov r0, #2
bl SetSoftResetDisableMask
add r0, r4, #0
bl MOD71_02230B88
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DDC0:
mov r0, #0x50
bl FUN_020315D8
cmp r0, #0
beq _0222DEB8
ldr r0, [r4, #8]
ldr r0, [r0, #0x34]
cmp r0, #0
bne _0222DDD6
mov r0, #6
b _0222DDD8
_0222DDD6:
mov r0, #2
_0222DDD8:
str r0, [r4, #0x4c]
bl FUN_02031190
cmp r0, #0
bne _0222DE04
bl LCRandom
ldr r1, _0222E0F0 ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x3c
blo _0222DDF8
bl GF_AssertFail
_0222DDF8:
bl FUN_02031190
mov r1, #0x1f
add r2, r5, #3
bl MOD71_0222F42C
_0222DE04:
ldr r0, [r4, #4]
bl MOD71_0222F4A8
add r0, r4, #0
bl MOD71_02230C08
b _0222E0E8
_0222DE12:
mov r1, #0x8b
lsl r1, r1, #6
ldr r1, [r4, r1]
cmp r1, #0
beq _0222DEB8
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE22:
mov r0, #0x8b
lsl r0, r0, #6
ldr r1, [r4, r0]
sub r1, r1, #1
str r1, [r4, r0]
ldr r0, [r4, r0]
cmp r0, #0
bne _0222DEB8
mov r0, #4
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE38:
ldr r0, _0222E0F4 ; =0x0000369C
add r0, r4, r0
bl FUN_020336C0
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE48:
ldr r2, _0222E0F4 ; =0x0000369C
ldr r0, [r4, #4]
mov r1, #2
add r2, r4, r2
bl FUN_020336C8
cmp r0, #0
beq _0222DEB8
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE60:
mov r0, #1
bl FUN_02031400
mov r0, #0x51
bl FUN_02031588
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE74:
mov r0, #0x51
bl FUN_020315D8
cmp r0, #0
beq _0222DEB8
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DE86:
mov r0, #0
str r0, [r4, #0x50]
str r0, [r4, #0x54]
str r0, [r4, #0x58]
bl FUN_02031190
cmp r0, #1
bne _0222DEAA
bl FUN_02031190
ldr r1, _0222E0F8 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
bl MOD71_0222F480
ldr r0, [r4, #0x50]
add r0, r0, #1
str r0, [r4, #0x50]
_0222DEAA:
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DEB2:
ldr r0, [r4, #0x54]
cmp r0, #0
bne _0222DEBA
_0222DEB8:
b _0222E0E8
_0222DEBA:
mov r0, #0xa
str r0, [r4, #0x4c]
b _0222E0E8
_0222DEC0:
add r0, r0, #1
str r0, [r4, #0x4c]
add r0, r4, #0
bl MOD71_0222D93C
b _0222E0E8
_0222DECC:
mov r1, #0
mov r0, #0x69
add r2, r4, #0
add r5, r1, #0
lsl r0, r0, #4
_0222DED6:
add r1, r1, #1
strh r5, [r2, r0]
add r2, #0x10
cmp r1, #0xd
blt _0222DED6
ldr r0, _0222E0F8 ; =0x00002218
ldr r0, [r4, r0]
bl GetPartyCount
cmp r0, #0
ble _0222DF12
mov r0, #0x69
lsl r0, r0, #4
ldr r7, _0222E0F8 ; =0x00002218
add r6, r4, r0
_0222DEF4:
ldr r0, _0222E0F8 ; =0x00002218
add r1, r5, #0
ldr r0, [r4, r0]
bl GetPartyMonByIndex
add r1, r6, #0
bl MOD71_0222E118
ldr r0, [r4, r7]
add r6, #0x10
add r5, r5, #1
bl GetPartyCount
cmp r5, r0
blt _0222DEF4
_0222DF12:
ldr r0, _0222E0FC ; =0x0000221C
mov r5, #0
ldr r0, [r4, r0]
bl GetPartyCount
cmp r0, #0
ble _0222DF48
mov r0, #0x69
lsl r0, r0, #4
ldr r7, _0222E0FC ; =0x0000221C
add r6, r4, r0
_0222DF28:
ldr r0, _0222E0FC ; =0x0000221C
add r1, r5, #0
ldr r0, [r4, r0]
bl GetPartyMonByIndex
add r1, r5, #6
lsl r1, r1, #4
add r1, r6, r1
bl MOD71_0222E118
ldr r0, [r4, r7]
add r5, r5, #1
bl GetPartyCount
cmp r5, r0
blt _0222DF28
_0222DF48:
mov r0, #0x75
mov r1, #1
lsl r0, r0, #4
strh r1, [r4, r0]
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DF58:
bl FUN_02031190
bl FUN_0202DFA4
ldr r2, _0222E100 ; =0x00002224
ldr r1, [r4, r2]
add r2, r2, #4
add r2, r4, r2
bl MOD71_0222F4BC
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DF74:
ldr r1, [r4, #0x54]
cmp r1, #3
bne _0222DFD4
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DF80:
ldr r0, [r4, #4]
bl Sav2_Chatot_get
bl MOD71_0222F528
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222DF92:
ldr r1, [r4, #0x54]
cmp r1, #4
bne _0222DFD4
add r0, r0, #1
str r0, [r4, #0x4c]
mov r0, #0x10
mov r1, #0
bl GX_EngineAToggleLayers
ldr r0, _0222E0F8 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
add r2, r4, #0
bl MOD71_0222DBEC
ldr r0, _0222E0FC ; =0x0000221C
mov r1, #6
ldr r0, [r4, r0]
add r2, r4, #0
bl MOD71_0222DBEC
mov r6, #0xce
mov r5, #0
mov r7, #1
lsl r6, r6, #2
_0222DFC4:
ldr r0, [r4, r6]
add r1, r7, #0
bl FUN_020200A0
add r5, r5, #1
add r4, r4, #4
cmp r5, #2
blt _0222DFC4
_0222DFD4:
b _0222E0E8
_0222DFD6:
mov r1, #0
mov r0, #1
add r2, r1, #0
str r0, [sp]
mov r0, #8
sub r2, #0x10
mov r3, #0x1e
bl FUN_0200A208
mov r0, #1
add r1, r0, #0
bl ToggleBgLayer
mov r0, #2
mov r1, #1
bl ToggleBgLayer
mov r0, #3
mov r1, #1
bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222E010:
mov r0, #1
bl FUN_0200A344
cmp r0, #0
beq _0222E0E8
ldr r0, _0222E0F8 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
bl GetPartyMonByIndex
mov r2, #0x7f
ldr r3, _0222E104 ; =0x000020F0
lsl r2, r2, #4
add r1, r0, #0
mov r0, #0
add r2, r4, r2
add r3, r4, r3
bl MOD71_0222EBFC
ldr r1, _0222E108 ; =0x00002110
ldr r2, _0222E0F8 ; =0x00002218
str r0, [r4, r1]
str r4, [sp]
ldr r0, _0222E10C ; =0x00000438
mov r1, #0
ldr r2, [r4, r2]
add r0, r4, r0
add r3, r1, #0
bl MOD71_0222ECD4
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
b _0222E0E8
_0222E054:
mov r1, #0
mov r0, #2
add r2, r1, #0
str r0, [sp]
mov r0, #8
sub r2, #0x10
mov r3, #0x17
bl FUN_0200A208
mov r0, #4
mov r1, #1
bl ToggleBgLayer
mov r0, #5
mov r1, #1
bl ToggleBgLayer
mov r0, #6
mov r1, #1
bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
add r0, r4, #0
bl MOD71_02230BA8
b _0222E0E8
_0222E094:
mov r0, #2
bl FUN_0200A344
cmp r0, #0
beq _0222E0E8
ldr r0, _0222E110 ; =0x000005A8
mov r1, #0
add r0, r4, r0
bl FUN_0200D0E0
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222E114 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
mov r0, #2
bl ClearSoftResetDisableMask
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0222E0E8:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_0222E0F0: .word 0x00000445
_0222E0F4: .word 0x0000369C
_0222E0F8: .word 0x00002218
_0222E0FC: .word 0x0000221C
_0222E100: .word 0x00002224
_0222E104: .word 0x000020F0
_0222E108: .word 0x00002110
_0222E10C: .word 0x00000438
_0222E110: .word 0x000005A8
_0222E114: .word 0x00000588
thumb_func_end MOD71_0222DD60
thumb_func_start MOD71_0222E118
MOD71_0222E118: ; 0x0222E118
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
bl AcquireMonLock
add r7, r0, #0
add r0, r5, #0
mov r1, #0x9a
mov r2, #0
bl GetMonData
strb r0, [r4, #4]
add r0, r5, #0
mov r1, #5
mov r2, #0
bl GetMonData
strh r0, [r4]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
bl GetMonData
strb r0, [r4, #6]
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
bl GetMonData
strb r0, [r4, #5]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
bl GetMonData
strh r0, [r4, #8]
add r0, r5, #0
mov r1, #0xa1
mov r2, #0
bl GetMonData
str r0, [r4, #0xc]
add r0, r5, #0
mov r1, #6
mov r2, #0
bl GetMonData
add r6, r0, #0
add r0, r5, #0
add r1, r7, #0
bl ReleaseMonLock
ldrh r0, [r4]
cmp r0, #0
beq _0222E18E
mov r1, #0x1c ; BASE_FLIP
bl GetMonBaseStat
strh r0, [r4, #0xa]
_0222E18E:
cmp r6, #0
beq _0222E19E
lsl r0, r6, #0x10
lsr r0, r0, #0x10
bl ItemIdIsMail
add r0, r0, #1
strh r0, [r4, #2]
_0222E19E:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD71_0222E118
thumb_func_start MOD71_0222E1A0
MOD71_0222E1A0: ; 0x0222E1A0
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
mov r1, #6
bl _s32_div_f
ldr r0, _0222E20C ; =0x0000221C
add r7, r1, #0
ldr r0, [r5, r0]
bl GetPartyMonByIndex
add r6, r0, #0
add r0, r4, #0
mov r1, #6
bl _s32_div_f
add r1, r6, #0
mov r2, #0x7f
mov r6, #0x32
add r3, r0, #0
lsl r2, r2, #4
lsl r6, r6, #6
mul r6, r3
add r2, r5, r2
add r2, r2, r6
ldr r6, _0222E210 ; =0x000020F0
lsl r3, r3, #4
add r6, r5, r6
mov r0, #1
add r3, r6, r3
bl MOD71_0222EBFC
ldr r1, _0222E214 ; =0x00002110
ldr r2, _0222E20C ; =0x0000221C
str r0, [r5, r1]
str r5, [sp]
ldr r0, _0222E218 ; =0x00000438
ldr r2, [r5, r2]
add r0, r5, r0
mov r1, #1
add r3, r7, #0
bl MOD71_0222ECD4
lsl r1, r4, #4
add r2, r5, r1
ldr r1, _0222E21C ; =0x00000694
ldr r0, _0222E220 ; =0x0000040C
ldrb r1, [r2, r1]
ldr r0, [r5, r0]
add r1, r1, #5
bl FUN_02020130
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222E20C: .word 0x0000221C
_0222E210: .word 0x000020F0
_0222E214: .word 0x00002110
_0222E218: .word 0x00000438
_0222E21C: .word 0x00000694
_0222E220: .word 0x0000040C
thumb_func_end MOD71_0222E1A0
thumb_func_start MOD71_0222E224
MOD71_0222E224: ; 0x0222E224
push {r3, r4, r5, lr}
add r5, r0, #0
add r1, r5, #0
add r1, #0x88
ldr r1, [r1]
cmp r1, #0xc
beq _0222E2B8
cmp r1, #6
bge _0222E29E
ldr r0, _0222E2BC ; =0x00002218
ldr r0, [r5, r0]
bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
add r0, #0x88
ldr r0, [r0]
mov r1, #6
bl _s32_div_f
mov r2, #0x7f
add r3, r0, #0
lsl r2, r2, #4
add r1, r4, #0
add r4, r5, r2
mov r2, #0x32
lsl r2, r2, #6
mul r2, r3
add r2, r4, r2
ldr r4, _0222E2C0 ; =0x000020F0
lsl r3, r3, #4
add r4, r5, r4
mov r0, #0
add r3, r4, r3
bl MOD71_0222EBFC
ldr r1, _0222E2C4 ; =0x00002110
add r3, r5, #0
str r0, [r5, r1]
ldr r0, _0222E2C8 ; =0x00000438
ldr r2, _0222E2BC ; =0x00002218
str r5, [sp]
add r3, #0x88
ldr r2, [r5, r2]
ldr r3, [r3]
add r0, r5, r0
mov r1, #0
bl MOD71_0222ECD4
ldr r0, _0222E2C8 ; =0x00000438
mov r1, #1
add r0, r5, r0
add r2, r5, #0
bl MOD71_0222EF24
ldr r0, _0222E2CC ; =0x0000040C
mov r1, #0
ldr r0, [r5, r0]
bl FUN_020200A0
pop {r3, r4, r5, pc}
_0222E29E:
bl MOD71_0222E1A0
ldr r0, _0222E2C8 ; =0x00000438
mov r1, #0
add r0, r5, r0
add r2, r5, #0
bl MOD71_0222EF24
ldr r0, _0222E2D0 ; =0x00000408
mov r1, #0
ldr r0, [r5, r0]
bl FUN_020200A0
_0222E2B8:
pop {r3, r4, r5, pc}
nop
_0222E2BC: .word 0x00002218
_0222E2C0: .word 0x000020F0
_0222E2C4: .word 0x00002110
_0222E2C8: .word 0x00000438
_0222E2CC: .word 0x0000040C
_0222E2D0: .word 0x00000408
thumb_func_end MOD71_0222E224
thumb_func_start MOD71_0222E2D4
MOD71_0222E2D4: ; 0x0222E2D4
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222E374 ; =0x00002214
add r4, r0, #0
ldr r1, [r4, r1]
cmp r1, #0
beq _0222E2EA
blx r1
mov r1, #5
lsl r1, r1, #6
str r0, [r4, r1]
_0222E2EA:
mov r0, #5
lsl r0, r0, #6
ldr r0, [r4, r0]
cmp r0, #3
bhi _0222E314
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222E300: ; jump table
.short _0222E314 - _0222E300 - 2 ; case 0
.short _0222E314 - _0222E300 - 2 ; case 1
.short _0222E308 - _0222E300 - 2 ; case 2
.short _0222E30E - _0222E300 - 2 ; case 3
_0222E308:
add sp, #4
mov r0, #2
pop {r3, r4, pc}
_0222E30E:
add sp, #4
mov r0, #3
pop {r3, r4, pc}
_0222E314:
mov r0, #0
mov r2, #0xce
str r0, [sp]
mov r0, #0x53
lsl r2, r2, #2
mov r3, #0x69
lsl r0, r0, #2
add r1, r4, #0
lsl r3, r3, #4
ldr r2, [r4, r2]
add r0, r4, r0
add r1, #0x88
add r3, r4, r3
bl MOD71_0222F3DC
cmp r0, #0
beq _0222E33C
add r0, r4, #0
bl MOD71_0222E224
_0222E33C:
mov r0, #1
mov r2, #0xcf
str r0, [sp]
mov r0, #0x15
lsl r2, r2, #2
mov r3, #0x69
lsl r0, r0, #4
add r1, r4, #0
lsl r3, r3, #4
ldr r2, [r4, r2]
add r0, r4, r0
add r1, #0x8c
add r3, r4, r3
bl MOD71_0222F3DC
add r0, r4, #0
add r0, #0x90
bl MOD71_0222F2D8
add r0, r4, #0
add r4, #0x88
ldr r2, [r4]
mov r1, #0x17
bl MOD71_0222F440
mov r0, #1
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222E374: .word 0x00002214
thumb_func_end MOD71_0222E2D4
thumb_func_start MOD71_0222E378
MOD71_0222E378: ; 0x0222E378
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x2d
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0x2e
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0xb5
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r0, #0xb9
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_02009E04
mov r7, #0xb
mov r4, #0
add r5, r6, #0
lsl r7, r7, #6
_0222E3AC:
ldr r0, [r5, r7]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0222E3AC
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r6, r0]
bl FUN_0201FD58
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD71_0222E378
thumb_func_start MOD71_0222E3D4
MOD71_0222E3D4: ; 0x0222E3D4
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, _0222E42C ; =0x00002218
mov r4, #0
ldr r0, [r6, r0]
bl GetPartyCount
cmp r0, #0
ble _0222E402
ldr r7, _0222E42C ; =0x00002218
add r5, r6, #0
_0222E3EA:
mov r0, #0x79
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FreeToHeap
ldr r0, [r6, r7]
add r5, r5, #4
add r4, r4, #1
bl GetPartyCount
cmp r4, r0
blt _0222E3EA
_0222E402:
ldr r0, _0222E430 ; =0x0000221C
mov r5, #0
ldr r0, [r6, r0]
bl GetPartyCount
cmp r0, #0
ble _0222E42A
ldr r7, _0222E430 ; =0x0000221C
add r4, r6, #0
_0222E414:
ldr r0, _0222E434 ; =0x000007A8
ldr r0, [r4, r0]
bl FreeToHeap
ldr r0, [r6, r7]
add r4, r4, #4
add r5, r5, #1
bl GetPartyCount
cmp r5, r0
blt _0222E414
_0222E42A:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222E42C: .word 0x00002218
_0222E430: .word 0x0000221C
_0222E434: .word 0x000007A8
thumb_func_end MOD71_0222E3D4
thumb_func_start MOD71_0222E438
MOD71_0222E438: ; 0x0222E438
push {r3, r4, r5, lr}
add r5, r0, #0
bl OverlayManager_GetData
add r4, r0, #0
add r0, r5, #0
bl OverlayManager_GetField18
ldr r1, [r4, #0x5c]
str r1, [r0, #0x28]
add r0, r4, #0
bl MOD71_0222E3D4
mov r0, #0x19
lsl r0, r0, #4
ldr r0, [r4, r0]
bl String_dtor
ldr r0, _0222E4D4 ; =0x0000221C
ldr r0, [r4, r0]
bl FreeToHeap
add r0, r4, #0
bl MOD71_0222E378
ldr r0, _0222E4D8 ; =0x00000438
add r0, r4, r0
bl MOD71_02230E88
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
bl MOD71_0222E848
mov r1, #0x5d
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r0, #0x1a
bl FreeToHeapExplicit
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
bl DestroyMsgData
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
bl ScrStrBufs_delete
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ScrStrBufs_delete
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ScrStrBufs_delete
mov r0, #0x63
lsl r0, r0, #2
ldr r0, [r4, r0]
bl String_dtor
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x1a
bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
nop
_0222E4D4: .word 0x0000221C
_0222E4D8: .word 0x00000438
thumb_func_end MOD71_0222E438
thumb_func_start MOD71_0222E4DC
MOD71_0222E4DC: ; 0x0222E4DC
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r5, r0]
bl DoScheduledBgGpuUpdates
ldr r0, _0222E548 ; =0x00002110
ldr r0, [r5, r0]
cmp r0, #0
beq _0222E52E
sub r4, r0, #1
mov r0, #0x7f
mov r2, #0x32
lsl r0, r0, #4
lsl r2, r2, #6
add r1, r4, #0
add r0, r5, r0
mul r1, r2
add r0, r0, r1
bl GXS_LoadOBJ
lsl r1, r4, #4
mov r0, #0x20
add r2, r5, r1
str r0, [sp]
mov r0, #0x1a
add r3, r4, #2
ldr r1, _0222E54C ; =0x000020F0
str r0, [sp, #4]
ldrh r0, [r2, r1]
add r1, r1, #4
ldrh r1, [r2, r1]
mov r2, #5
lsl r3, r3, #5
bl GfGfxLoader_GXLoadPal
ldr r0, _0222E548 ; =0x00002110
mov r1, #0
str r1, [r5, r0]
_0222E52E:
bl FUN_0201C30C
bl FUN_02009F80
ldr r3, _0222E550 ; =0x027E0000
ldr r1, _0222E554 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
add sp, #8
pop {r3, r4, r5, pc}
nop
_0222E548: .word 0x00002110
_0222E54C: .word 0x000020F0
_0222E550: .word 0x027E0000
_0222E554: .word 0x00003FF8
thumb_func_end MOD71_0222E4DC
thumb_func_start MOD71_0222E558
MOD71_0222E558: ; 0x0222E558
push {r4, lr}
sub sp, #0x28
ldr r4, _0222E574 ; =0x022311B0
add r3, sp, #0
mov r2, #5
_0222E562:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _0222E562
add r0, sp, #0
bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
_0222E574: .word MOD71_022311B0
thumb_func_end MOD71_0222E558
thumb_func_start MOD71_0222E578
MOD71_0222E578: ; 0x0222E578
push {r4, r5, r6, r7, lr}
sub sp, #0xd4
ldr r4, _0222E748 ; =0x022310B4
add r3, sp, #0xc4
add r5, r0, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl SetBothScreensModesAndDisable
ldr r4, _0222E74C ; =0x0223115C
add r3, sp, #0xa8
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #0
str r0, [r3]
add r0, r5, #0
add r3, r1, #0
bl InitBgFromTemplate
add r0, r5, #0
mov r1, #0
bl BgClearTilemapBufferAndCommit
ldr r4, _0222E750 ; =0x02231124
add r3, sp, #0x8c
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #1
str r0, [r3]
add r0, r5, #0
mov r3, #0
bl InitBgFromTemplate
add r0, r5, #0
mov r1, #1
bl BgClearTilemapBufferAndCommit
ldr r4, _0222E754 ; =0x02231178
add r3, sp, #0x70
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #2
str r0, [r3]
add r0, r5, #0
mov r3, #0
bl InitBgFromTemplate
add r0, r5, #0
mov r1, #2
bl BgClearTilemapBufferAndCommit
ldr r4, _0222E758 ; =0x02231194
add r3, sp, #0x54
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #3
str r0, [r3]
add r0, r5, #0
mov r3, #0
bl InitBgFromTemplate
ldr r4, _0222E75C ; =0x022310EC
add r3, sp, #0x38
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
str r0, [r3]
add r0, r5, #0
mov r1, #4
mov r3, #0
bl InitBgFromTemplate
add r0, r5, #0
mov r1, #4
bl BgClearTilemapBufferAndCommit
ldr r4, _0222E760 ; =0x02231108
add r3, sp, #0x1c
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #5
str r0, [r3]
add r0, r5, #0
mov r3, #0
bl InitBgFromTemplate
ldr r4, _0222E764 ; =0x02231140
add r3, sp, #0
ldmia r4!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r4]
mov r1, #6
str r0, [r3]
add r0, r5, #0
mov r3, #0
bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x1a
bl BG_ClearCharDataRange
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x1a
bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x1a
bl BG_ClearCharDataRange
mov r4, #0
mov r6, #3
add r7, r4, #0
_0222E6BC:
lsl r1, r4, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
bl BgSetPosTextAndCommit
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
add r2, r6, #0
add r3, r7, #0
bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
bl BgSetPosTextAndCommit
add r4, r4, #1
cmp r4, #4
blt _0222E6BC
mov r0, #0
add r1, r0, #0
bl ToggleBgLayer
mov r0, #1
mov r1, #0
bl ToggleBgLayer
mov r0, #2
mov r1, #0
bl ToggleBgLayer
mov r0, #3
mov r1, #0
bl ToggleBgLayer
mov r0, #4
mov r1, #0
bl ToggleBgLayer
mov r0, #5
mov r1, #0
bl ToggleBgLayer
mov r0, #6
mov r1, #0
bl ToggleBgLayer
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _0222E768 ; =0xFFFF1FFF
and r0, r1
str r0, [r2]
add sp, #0xd4
pop {r4, r5, r6, r7, pc}
nop
_0222E748: .word MOD71_022310B4
_0222E74C: .word MOD71_0223115C
_0222E750: .word MOD71_02231124
_0222E754: .word MOD71_02231178
_0222E758: .word MOD71_02231194
_0222E75C: .word MOD71_022310EC
_0222E760: .word MOD71_02231108
_0222E764: .word MOD71_02231140
_0222E768: .word 0xFFFF1FFF
thumb_func_end MOD71_0222E578
thumb_func_start MOD71_0222E76C
MOD71_0222E76C: ; 0x0222E76C
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, r1, #0
bl OverlayManager_GetField18
add r4, r0, #0
mov r2, #6
ldr r0, _0222E830 ; =0x00000668
str r4, [r5, #8]
mov r1, #4
str r1, [r5, r0]
mov r3, #0
str r3, [r5, #0x44]
sub r0, r0, #4
str r3, [r5, r0]
mov r0, #0x5b
lsl r0, r0, #2
str r2, [r5, r0]
add r1, r0, #4
str r2, [r5, r1]
add r1, r5, #0
add r1, #0x88
str r3, [r1]
add r1, r5, #0
add r1, #0x8c
str r2, [r1]
sub r0, #0x2c
str r3, [r5, r0]
str r3, [r5, #0x48]
ldr r0, _0222E834 ; =MOD71_0222F538
ldr r1, _0222E838 ; =0x00002214
str r3, [r5, #0x4c]
str r0, [r5, r1]
str r3, [r5, #0x60]
str r3, [r5, #0x64]
ldr r0, _0222E83C ; =0x00002110
str r3, [r5, #0x5c]
str r3, [r5, r0]
ldr r0, _0222E840 ; =0x000036A0
sub r6, r2, #7
str r6, [r5, r0]
add r2, r0, #4
str r6, [r5, r2]
add r2, r1, #0
add r2, #0xac
str r3, [r5, r2]
add r2, r0, #0
add r2, #0xc
str r3, [r5, r2]
add r0, #0x10
str r3, [r5, r0]
add r0, r1, #4
ldr r2, [r4, #8]
add r1, #0x10
str r2, [r5, r0]
ldr r0, [r4, #0xc]
str r0, [r5, r1]
ldr r0, [r4, #0x10]
str r0, [r5, #4]
bl SavArray_Party_sizeof
add r1, r0, #0
mov r0, #0x1a
bl AllocFromHeap
ldr r1, _0222E844 ; =0x0000221C
str r0, [r5, r1]
ldr r0, [r5, r1]
mov r1, #6
bl InitPartyWithMaxSize
bl SavArray_Party_sizeof
add r2, r0, #0
ldr r0, _0222E844 ; =0x0000221C
mov r1, #0xff
ldr r0, [r5, r0]
bl memset
ldr r0, [r4, #4]
mov r1, #0x1a
bl PlayerProfile_GetPlayerName_NewString
mov r1, #0x63
lsl r1, r1, #2
str r0, [r5, r1]
sub r1, #8
ldr r0, [r5, r1]
mov r1, #0x28
bl NewString_ReadMsgData
mov r1, #0x19
lsl r1, r1, #4
str r0, [r5, r1]
ldr r0, [r4, #0x14]
bl FUN_02033778
pop {r4, r5, r6, pc}
.align 2, 0
_0222E830: .word 0x00000668
_0222E834: .word MOD71_0222F538
_0222E838: .word 0x00002214
_0222E83C: .word 0x00002110
_0222E840: .word 0x000036A0
_0222E844: .word 0x0000221C
thumb_func_end MOD71_0222E76C
thumb_func_start MOD71_0222E848
MOD71_0222E848: ; 0x0222E848
push {r4, lr}
add r4, r0, #0
mov r1, #6
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD71_0222E848
thumb_func_start MOD71_0222E884
MOD71_0222E884: ; 0x0222E884
push {r4, r5, r6, lr}
sub sp, #8
add r5, r2, #0
mov r2, #1
add r4, r3, #0
str r2, [sp]
ldr r2, [sp, #0x20]
ldr r3, [sp, #0x24]
bl GfGfxLoader_LoadFromNarc
add r6, r0, #0
beq _0222E8D6
add r1, sp, #4
bl NNS_G2dGetUnpackedScreenData
cmp r0, #0
beq _0222E8D0
ldr r0, [sp, #0x1c]
cmp r0, #0
bne _0222E8B2
ldr r0, [sp, #4]
ldr r0, [r0, #8]
str r0, [sp, #0x1c]
_0222E8B2:
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl GetBgTilemapBuffer
cmp r0, #0
beq _0222E8D0
ldr r2, [sp, #4]
lsl r1, r4, #0x18
ldr r3, [sp, #0x1c]
add r0, r5, #0
lsr r1, r1, #0x18
add r2, #0xc
bl BG_LoadScreenTilemapData
_0222E8D0:
add r0, r6, #0
bl FreeToHeap
_0222E8D6:
add sp, #8
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD71_0222E884
thumb_func_start MOD71_0222E8DC
MOD71_0222E8DC: ; 0x0222E8DC
push {r3, r4, lr}
sub sp, #4
mov r1, #2
add r4, r0, #0
bl GetBgTilemapBuffer
add r2, r0, #0
mov r0, #0
mov r3, #6
str r0, [sp]
add r0, r4, #0
mov r1, #2
lsl r3, r3, #8
bl BgCopyOrUncompressTilemapBufferRangeToVram
add sp, #4
pop {r3, r4, pc}
.align 2, 0
thumb_func_end MOD71_0222E8DC
thumb_func_start MOD71_0222E900
MOD71_0222E900: ; 0x0222E900
push {r4, lr}
sub sp, #0x10
mov r1, #0x5d
lsl r1, r1, #2
ldr r4, [r0, r1]
sub r1, #0x54
str r1, [sp]
mov r0, #0x1a
mov r1, #0
str r0, [sp, #4]
mov r0, #0x36
mov r2, #4
add r3, r1, #0
bl GfGfxLoader_GXLoadPal
mov r1, #0
mov r0, #0x12
lsl r0, r0, #4
str r0, [sp]
mov r0, #0x1a
str r0, [sp, #4]
mov r0, #0x36
add r2, r1, #0
add r3, r1, #0
bl GfGfxLoader_GXLoadPal
mov r0, #0
add r1, r0, #0
bl BG_SetMaskColor
mov r0, #4
mov r1, #0
bl BG_SetMaskColor
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
mov r2, #0x1a
bl FUN_02002EEC
mov r0, #0
str r0, [sp]
mov r0, #9
lsl r0, r0, #0xa
str r0, [sp, #4]
mov r1, #1
str r1, [sp, #8]
mov r0, #0x1a
str r0, [sp, #0xc]
mov r0, #0x36
add r2, r4, #0
mov r3, #2
bl GfGfxLoader_LoadCharData
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x1a
str r0, [sp, #0xc]
mov r0, #0x36
mov r1, #3
add r2, r4, #0
mov r3, #2
bl MOD71_0222E884
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x1a
str r0, [sp, #0xc]
mov r0, #0x36
mov r1, #4
add r2, r4, #0
mov r3, #3
bl GfGfxLoader_LoadScrnData
mov r0, #0
mov r1, #0x40
mov r2, #0x1a
bl FUN_02002EEC
mov r0, #0
mov r1, #0x60
mov r2, #0x1a
bl FUN_02002ED0
mov r0, #0
str r0, [sp]
mov r0, #2
lsl r0, r0, #0xa
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x1a
str r0, [sp, #0xc]
mov r0, #0x36
mov r1, #2
add r2, r4, #0
mov r3, #5
bl GfGfxLoader_LoadCharData
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x1a
mov r1, #5
str r0, [sp, #0xc]
mov r0, #0x36
add r2, r4, #0
add r3, r1, #0
bl GfGfxLoader_LoadScrnData
mov r0, #0
str r0, [sp]
mov r0, #6
lsl r0, r0, #8
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #0x1a
mov r1, #6
str r0, [sp, #0xc]
mov r0, #0x36
add r2, r4, #0
add r3, r1, #0
bl GfGfxLoader_LoadScrnData
mov r0, #4
mov r1, #0x40
mov r2, #0x1a
bl FUN_02002EEC
mov r0, #4
mov r1, #0x60
mov r2, #0x1a
bl FUN_02002ED0
add r0, r4, #0
mov r1, #4
bl BgClearTilemapBufferAndCommit
add sp, #0x10
pop {r4, pc}
.align 2, 0
thumb_func_end MOD71_0222E900
thumb_func_start MOD71_0222EA38
MOD71_0222EA38: ; 0x0222EA38
push {r4, lr}
sub sp, #0x10
ldr r4, _0222EA64 ; =0x022310C4
add r3, sp, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_0201D040
mov r0, #0x14
mov r1, #0x1a
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_0222EA64: .word MOD71_022310C4
thumb_func_end MOD71_0222EA38
thumb_func_start MOD71_0222EA68
MOD71_0222EA68: ; 0x0222EA68
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
bl NNS_G2dInitOamManagerModule
mov r0, #0
str r0, [sp]
mov r1, #0x7f
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x1a
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
mov r1, #0x66
lsl r1, r1, #2
mov r0, #0x2d
add r1, r5, r1
mov r2, #0x1a
bl FUN_02008C9C
mov r1, #0x65
lsl r1, r1, #2
mov r7, #0xb
str r0, [r5, r1]
mov r6, #0
add r4, r5, #0
lsl r7, r7, #6
_0222EAA6:
mov r0, #2
add r1, r6, #0
mov r2, #0x1a
bl FUN_02008DEC
str r0, [r4, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, #4
blt _0222EAA6
mov r0, #0
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
mov r0, #0x1a
str r0, [sp, #8]
mov r0, #0xb
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #0x36
mov r2, #7
bl FUN_02008F34
mov r1, #0x2d
lsl r1, r1, #4
str r0, [r5, r1]
mov r2, #0
str r2, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #9
str r0, [sp, #8]
mov r0, #0x1a
sub r1, #0xc
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x36
add r3, r2, #0
bl FUN_02008FEC
mov r1, #0xb5
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x1a
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x36
mov r2, #8
mov r3, #1
bl FUN_020090AC
mov r1, #0xb6
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x1a
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x36
mov r2, #9
mov r3, #1
bl FUN_020090AC
mov r1, #0xb7
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x1a
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x36
mov r2, #0xa
bl FUN_02008F34
mov r1, #0x2e
lsl r1, r1, #4
str r0, [r5, r1]
mov r0, #1
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0x1a
mov r2, #0
sub r1, #0x1c
str r0, [sp, #0xc]
ldr r0, [r5, r1]
mov r1, #0x36
add r3, r2, #0
bl FUN_02008FEC
mov r1, #0xb9
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x1a
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x36
mov r2, #0xb
bl FUN_020090AC
mov r1, #0xba
lsl r1, r1, #2
str r0, [r5, r1]
mov r3, #1
str r3, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x1a
sub r1, #0x1c
str r0, [sp, #8]
ldr r0, [r5, r1]
mov r1, #0x36
mov r2, #0xc
bl FUN_020090AC
mov r1, #0xbb
lsl r1, r1, #2
str r0, [r5, r1]
sub r1, #0x1c
ldr r0, [r5, r1]
bl FUN_02009A50
mov r0, #0x2e
lsl r0, r0, #4
ldr r0, [r5, r0]
bl FUN_02009A50
mov r0, #0xb5
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
mov r0, #0xb9
lsl r0, r0, #2
ldr r0, [r5, r0]
bl FUN_02009CF0
bl FUN_0206B888
mov r3, #0x80
add r1, r0, #0
str r3, [sp]
mov r0, #0x1a
str r0, [sp, #4]
mov r0, #0x13
mov r2, #1
add r3, #0xc0
bl GfGfxLoader_GXLoadPal
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD71_0222EA68
thumb_func_start MOD71_0222EBFC
MOD71_0222EBFC: ; 0x0222EBFC
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
add r4, r2, #0
add r0, r3, #0
mov r2, #2
add r6, r1, #0
str r3, [sp, #0x20]
bl FUN_02068B68
mov r1, #0
add r0, r6, #0
add r2, r1, #0
bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #5
mov r2, #0
bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
str r1, [sp, #4]
str r1, [sp, #8]
str r4, [sp, #0xc]
str r7, [sp, #0x10]
str r3, [sp, #0x14]
mov r1, #2
str r1, [sp, #0x18]
str r0, [sp, #0x1c]
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x20]
ldrh r0, [r0]
ldrh r1, [r1, #2]
mov r2, #0x1a
bl FUN_020124B4
mov r1, #0x32
add r0, r4, #0
lsl r1, r1, #6
bl DC_FlushRange
add r0, r5, #1
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD71_0222EBFC
thumb_func_start MOD71_0222EC5C
MOD71_0222EC5C: ; 0x0222EC5C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
mov r0, #0x14
mov r1, #0x1a
str r3, [sp, #8]
bl String_ctor
add r4, r0, #0
add r0, r6, #0
add r1, r7, #0
bl GetPartyMonByIndex
mov r1, #0x76
add r2, r4, #0
bl GetMonData
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
ldr r0, [sp, #0x20]
ldr r2, [sp, #8]
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r3, #0
bl MOD71_02230EFC
add r0, r4, #0
bl String_dtor
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD71_0222EC5C
thumb_func_start MOD71_0222ECA8
MOD71_0222ECA8: ; 0x0222ECA8
push {r4, lr}
ldrh r0, [r0]
add r4, r3, #0
cmp r0, #0x1d
beq _0222ECB6
cmp r0, #0x20
bne _0222ECCE
_0222ECB6:
add r0, r1, #0
add r1, r2, #0
bl GetPartyMonByIndex
mov r1, #0x4d
mov r2, #0
bl GetMonData
cmp r0, #0
bne _0222ECCE
mov r0, #2
pop {r4, pc}
_0222ECCE:
add r0, r4, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD71_0222ECA8
thumb_func_start MOD71_0222ECD4
MOD71_0222ECD4: ; 0x0222ECD4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
add r6, r0, #0
add r5, r1, #0
add r0, r2, #0
add r1, r3, #0
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x50]
bl GetPartyMonByIndex
mov r1, #2
bl FUN_02068E14
str r0, [sp, #0x10]
mov r0, #1
lsl r0, r0, #0xa
add r7, r4, r0
lsl r0, r5, #2
str r0, [sp, #0x14]
ldr r0, [r7, r0]
mov r1, #1
bl FUN_020200A0
mov r0, #0xc
add r3, r5, #0
mul r3, r0
ldr r1, _0222EF10 ; =0x022311D8
ldr r0, [sp, #0x14]
ldr r2, _0222EF14 ; =0x022311DC
ldr r1, [r1, r3]
ldr r3, [r2, r3]
ldr r2, [sp, #0x10]
ldr r0, [r7, r0]
add r2, r2, r3
add r2, #0xc0
bl MOD71_02230B70
cmp r5, #0
bne _0222ED36
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x14]
lsl r1, r1, #4
add r2, r4, r1
ldr r1, _0222EF18 ; =0x0000069A
ldr r0, [r7, r0]
ldrh r1, [r2, r1]
bl FUN_02020100
_0222ED36:
ldr r1, [sp, #0xc]
mov r0, #1
lsl r1, r1, #4
add r2, r4, r1
ldr r1, _0222EF1C ; =0x00000694
lsl r0, r0, #0xa
add r7, r4, r0
add r0, r5, #2
ldrb r1, [r2, r1]
lsl r0, r0, #2
str r0, [sp, #0x18]
ldr r0, [r7, r0]
add r1, r1, #5
bl FUN_02020130
ldr r0, [sp, #0x18]
mov r1, #1
ldr r0, [r7, r0]
bl FUN_020200A0
mov r0, #6
str r0, [sp]
add r0, r5, #0
add r0, #0x1a
lsl r0, r0, #4
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
add r0, r6, r0
mov r3, #9
bl MOD71_0222EC5C
mov r7, #0x69
mov r0, #6
add r1, r5, #0
mul r1, r0
ldr r0, [sp, #0xc]
lsl r7, r7, #4
add r0, r0, r1
lsl r0, r0, #4
str r0, [sp, #0x34]
add r1, r4, r7
ldr r3, [sp, #0x34]
add r0, r1, r0
add r3, r4, r3
add r7, #8
ldrh r3, [r3, r7]
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
bl MOD71_0222ECA8
ldr r1, _0222EF20 ; =0x00000695
add r2, r4, r1
ldr r1, [sp, #0x34]
str r2, [sp, #0x1c]
ldrb r1, [r2, r1]
cmp r1, #0
beq _0222EDAA
mov r0, #2
_0222EDAA:
cmp r0, #0
beq _0222EDCA
cmp r0, #1
beq _0222EDF0
cmp r0, #2
bne _0222EE14
add r0, r5, #4
lsl r0, r0, #2
add r1, r4, r0
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r1, r0]
mov r1, #0
bl FUN_020200A0
b _0222EE14
_0222EDCA:
mov r0, #1
lsl r0, r0, #0xa
add r0, r4, r0
str r0, [sp, #0x20]
add r0, r5, #4
lsl r0, r0, #2
ldr r1, [sp, #0x20]
str r0, [sp, #0x24]
ldr r0, [r1, r0]
mov r1, #1
bl FUN_020200A0
ldr r1, [sp, #0x20]
ldr r0, [sp, #0x24]
ldr r0, [r1, r0]
mov r1, #0x17
bl FUN_02020130
b _0222EE14
_0222EDF0:
mov r0, #1
lsl r0, r0, #0xa
add r0, r4, r0
str r0, [sp, #0x28]
add r0, r5, #4
lsl r0, r0, #2
ldr r1, [sp, #0x28]
str r0, [sp, #0x2c]
ldr r0, [r1, r0]
mov r1, #1
bl FUN_020200A0
ldr r1, [sp, #0x28]
ldr r0, [sp, #0x2c]
ldr r0, [r1, r0]
mov r1, #0x16
bl FUN_02020130
_0222EE14:
ldr r1, [sp, #0x1c]
ldr r0, [sp, #0x34]
ldrb r0, [r1, r0]
cmp r0, #0
bne _0222EE9A
mov r0, #0xa
mov r1, #0x1a
bl String_ctor
add r7, r0, #0
add r0, r5, #0
add r0, #0x1c
lsl r0, r0, #4
str r0, [sp, #0x30]
add r0, r6, r0
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x27
add r2, r7, #0
bl ReadMsgDataIntoString
mov r0, #6
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, [sp, #0x30]
add r1, r7, #0
add r0, r6, r0
mov r2, #9
mov r3, #0xff
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
bl GetPartyMonByIndex
mov r1, #0xa0
mov r2, #0
bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #1
str r0, [sp]
add r0, r7, #0
mov r2, #3
mov r3, #0
bl String16_FormatInteger
mov r0, #0x1e
str r0, [sp]
ldr r0, [sp, #0x30]
mov r3, #0
add r0, r6, r0
add r1, r7, #0
mov r2, #9
str r3, [sp, #4]
bl MOD71_02230EFC
add r0, r7, #0
bl String_dtor
b _0222EEA6
_0222EE9A:
add r0, r5, #0
add r0, #0x1c
lsl r0, r0, #4
add r0, r6, r0
bl ClearWindowTilemapAndCopyToVram
_0222EEA6:
mov r0, #3
str r0, [sp]
mov r3, #0
add r0, r5, #0
mov r1, #0x19
add r0, #0x1e
lsl r0, r0, #4
str r3, [sp, #4]
lsl r1, r1, #4
ldr r1, [r4, r1]
add r0, r6, r0
mov r2, #7
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
bl GetPartyMonByIndex
mov r1, #6
mov r2, #0
bl GetMonData
add r5, #0x20
lsl r0, r0, #0x10
lsl r4, r5, #4
lsr r7, r0, #0x10
add r0, r6, r4
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x14
mov r1, #0x1a
bl String_ctor
add r1, r7, #0
mov r2, #0x1a
add r5, r0, #0
bl GetItemNameIntoString
mov r0, #3
str r0, [sp]
mov r3, #0
add r0, r6, r4
add r1, r5, #0
mov r2, #9
str r3, [sp, #4]
bl MOD71_02230EFC
add r0, r5, #0
bl String_dtor
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222EF10: .word MOD71_022311D8
_0222EF14: .word MOD71_022311DC
_0222EF18: .word 0x0000069A
_0222EF1C: .word 0x00000694
_0222EF20: .word 0x00000695
thumb_func_end MOD71_0222ECD4
thumb_func_start MOD71_0222EF24
MOD71_0222EF24: ; 0x0222EF24
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
lsl r0, r4, #2
add r1, r6, r0
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r1, r0]
mov r1, #0
bl FUN_020200A0
add r0, r4, #2
lsl r0, r0, #2
add r1, r6, r0
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r1, r0]
mov r1, #0
bl FUN_020200A0
add r0, r4, #4
lsl r0, r0, #2
add r1, r6, r0
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r1, r0]
mov r1, #0
bl FUN_020200A0
add r0, r4, #0
add r0, #0x1a
lsl r0, r0, #4
add r0, r5, r0
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x1c
lsl r0, r0, #4
add r0, r5, r0
bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x1e
lsl r0, r0, #4
add r0, r5, r0
bl ClearWindowTilemapAndCopyToVram
add r4, #0x20
lsl r0, r4, #4
add r0, r5, r0
bl ClearWindowTilemapAndCopyToVram
pop {r4, r5, r6, pc}
thumb_func_end MOD71_0222EF24
thumb_func_start MOD71_0222EF90
MOD71_0222EF90: ; 0x0222EF90
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
mov r1, #0
add r5, r0, #0
str r1, [sp]
sub r0, r1, #1
str r0, [sp, #4]
str r0, [sp, #8]
mov r2, #0xb
str r1, [sp, #0xc]
mov r0, #2
lsl r2, r2, #6
str r0, [sp, #0x10]
ldr r0, [r5, r2]
add r3, r1, #0
str r0, [sp, #0x14]
add r0, r2, #4
ldr r0, [r5, r0]
str r0, [sp, #0x18]
add r0, r2, #0
add r0, #8
ldr r0, [r5, r0]
str r0, [sp, #0x1c]
add r0, r2, #0
add r0, #0xc
ldr r0, [r5, r0]
add r2, #0x30
str r0, [sp, #0x20]
str r1, [sp, #0x24]
add r0, r5, r2
add r2, r1, #0
str r1, [sp, #0x28]
bl FUN_02008AA4
mov r1, #1
mov r3, #0xb
str r1, [sp]
sub r0, r1, #2
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
lsl r3, r3, #6
ldr r2, [r5, r3]
str r2, [sp, #0x14]
add r2, r3, #4
ldr r2, [r5, r2]
str r2, [sp, #0x18]
add r2, r3, #0
add r2, #8
ldr r2, [r5, r2]
str r2, [sp, #0x1c]
add r2, r3, #0
add r2, #0xc
ldr r2, [r5, r2]
add r3, #0x54
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, r5, r3
add r2, r1, #0
add r3, r1, #0
bl FUN_02008AA4
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #2
str r0, [sp, #0x2c]
mov r0, #0x2f
lsl r0, r0, #4
add r0, r5, r0
str r0, [sp, #0x30]
mov r0, #6
lsl r1, r1, #0x10
lsl r0, r0, #0x10
str r0, [sp, #0x38]
lsr r0, r1, #5
mov r7, #0
str r1, [sp, #0x34]
str r7, [sp, #0x3c]
str r0, [sp, #0x40]
str r0, [sp, #0x44]
str r0, [sp, #0x48]
add r0, sp, #0x2c
strh r7, [r0, #0x20]
mov r0, #1
str r0, [sp, #0x54]
mov r0, #0x1a
ldr r6, _0222F218 ; =0x02231220
str r7, [sp, #0x50]
str r0, [sp, #0x58]
add r4, r5, #0
_0222F04C:
ldr r0, [r6]
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldr r0, [r6, #4]
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0xce
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
add r0, r4, #0
mov r1, #0xce
add r0, #0x88
lsl r1, r1, #2
ldr r0, [r0]
ldr r1, [r4, r1]
add r2, r7, #0
bl MOD71_0222F350
mov r0, #0xce
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0x64
bl FUN_02020310
mov r0, #0xce
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r6, #8
add r4, r4, #4
cmp r7, #2
blt _0222F04C
ldr r6, _0222F218 ; =0x02231220
mov r7, #0
add r4, r5, #0
_0222F0A8:
ldr r0, [r6]
add r0, #0x10
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldr r0, [r6, #4]
sub r0, r0, #6
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x37
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #1
bl FUN_020200BC
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
add r1, r7, #5
bl FUN_02020130
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #5
bl FUN_02020310
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r6, #8
add r4, r4, #4
cmp r7, #0xc
blt _0222F0A8
ldr r6, _0222F218 ; =0x02231220
mov r7, #0
add r4, r5, #0
_0222F102:
ldr r0, [r6]
add r0, #0x24
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldr r0, [r6, #4]
add r0, #0x10
lsl r0, r0, #0xc
str r0, [sp, #0x38]
mov r0, #0
str r0, [sp, #0x50]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x3a
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #3
bl FUN_02020310
mov r0, #0x3a
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r6, #8
add r4, r4, #4
cmp r7, #0xc
blt _0222F102
ldr r6, _0222F218 ; =0x02231220
mov r7, #0
add r4, r5, #0
_0222F148:
ldr r0, [r6]
add r0, #0x2d
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldr r0, [r6, #4]
add r0, #0x10
lsl r0, r0, #0xc
str r0, [sp, #0x38]
mov r0, #0
str r0, [sp, #0x50]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #0x3d
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r1, #0
ldr r0, [r4, r0]
mov r1, #3
bl FUN_02020310
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
add r7, r7, #1
add r6, #8
add r4, r4, #4
cmp r7, #0xc
blt _0222F148
mov r0, #6
lsl r0, r0, #0x10
str r0, [sp, #0x34]
mov r0, #0x42
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
ldr r1, _0222F21C ; =0x00000418
str r0, [r5, r1]
ldr r0, [r5, r1]
mov r1, #1
bl FUN_020200BC
ldr r0, _0222F21C ; =0x00000418
mov r1, #0x14
ldr r0, [r5, r0]
bl FUN_02020130
ldr r0, _0222F21C ; =0x00000418
mov r1, #0
ldr r0, [r5, r0]
bl FUN_020200A0
mov r0, #0xc5
lsl r0, r0, #2
ldr r4, _0222F220 ; =0x022311D8
mov r6, #0
add r7, r5, r0
_0222F1C4:
ldr r0, [r4]
str r7, [sp, #0x30]
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldr r0, [r4, #4]
lsl r1, r0, #0xc
mov r0, #3
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x38]
mov r0, #2
str r0, [sp, #0x54]
add r0, sp, #0x2c
bl FUN_0201FE94
mov r1, #1
lsl r1, r1, #0xa
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r5, r0]
mov r1, #0
bl FUN_020200BC
mov r0, #1
lsl r0, r0, #0xa
ldr r0, [r5, r0]
ldr r1, [r4, #8]
bl FUN_02020130
add r6, r6, #1
add r4, #0xc
add r5, r5, #4
cmp r6, #6
blt _0222F1C4
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0222F218: .word MOD71_02231220
_0222F21C: .word 0x00000418
_0222F220: .word MOD71_022311D8
thumb_func_end MOD71_0222EF90
thumb_func_start MOD71_0222F224
MOD71_0222F224: ; 0x0222F224
push {r3, r4}
ldr r3, _0222F260 ; =gMain
mov r1, #0
ldr r3, [r3, #0x4c]
mov r4, #0x40
add r2, r1, #0
tst r4, r3
beq _0222F238
mov r2, #1
add r1, r1, #1
_0222F238:
mov r4, #0x80
tst r4, r3
beq _0222F242
mov r2, #2
add r1, r1, #1
_0222F242:
mov r4, #0x20
tst r4, r3
beq _0222F24C
mov r2, #3
add r1, r1, #1
_0222F24C:
mov r4, #0x10
tst r3, r4
beq _0222F256
mov r2, #4
add r1, r1, #1
_0222F256:
cmp r1, #0
beq _0222F25C
str r2, [r0]
_0222F25C:
pop {r3, r4}
bx lr
.align 2, 0
_0222F260: .word gMain
thumb_func_end MOD71_0222F224
thumb_func_start MOD71_0222F264
MOD71_0222F264: ; 0x0222F264
push {r4, r5, r6, lr}
add r4, r0, #0
add r0, #0x88
ldr r0, [r0]
cmp r0, #6
bge _0222F2CA
ldr r0, _0222F2CC ; =0x022310AC
bl FUN_02020988
add r5, r0, #0
mov r0, #0
mvn r0, r0
cmp r5, r0
beq _0222F2CA
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
lsl r0, r0, #4
add r2, r4, r0
ldr r0, _0222F2D0 ; =0x00000695
ldrb r1, [r2, r0]
cmp r1, #0
bne _0222F2CA
sub r0, r0, #5
ldrh r0, [r2, r0]
ldr r1, _0222F2D4 ; =0x000001B9
cmp r0, r1
bne _0222F2AE
ldr r0, [r4, #4]
bl Sav2_Chatot_get
mov r1, #0
mov r2, #0x64
add r3, r1, #0
bl FUN_02005E90
b _0222F2B2
_0222F2AE:
bl FUN_02005578
_0222F2B2:
mov r0, #1
lsl r0, r0, #0xa
add r4, r4, r0
lsl r6, r5, #2
ldr r0, [r4, r6]
mov r1, #1
bl FUN_020200BC
ldr r0, [r4, r6]
add r1, r5, #4
bl FUN_02020130
_0222F2CA:
pop {r4, r5, r6, pc}
.align 2, 0
_0222F2CC: .word MOD71_022310AC
_0222F2D0: .word 0x00000695
_0222F2D4: .word 0x000001B9
thumb_func_end MOD71_0222F264
thumb_func_start MOD71_0222F2D8
MOD71_0222F2D8: ; 0x0222F2D8
push {r3, lr}
ldrh r1, [r0]
add r1, #0x14
strh r1, [r0]
ldrh r2, [r0]
mov r1, #0x5a
lsl r1, r1, #2
cmp r2, r1
bls _0222F2EE
mov r1, #0
strh r1, [r0]
_0222F2EE:
ldrh r0, [r0]
bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
lsr r0, r0, #0x14
add r0, r1, r0
asr r0, r0, #0xc
add r0, #0xf
lsl r1, r0, #5
mov r0, #0x1d
orr r1, r0
add r0, sp, #0
strh r1, [r0]
add r0, sp, #0
mov r1, #0x3a
mov r2, #2
bl GX_LoadOBJPltt
pop {r3, pc}
thumb_func_end MOD71_0222F2D8
thumb_func_start MOD71_0222F318
MOD71_0222F318: ; 0x0222F318
push {r3, r4, r5, r6}
mov r5, #0x18
mul r5, r0
ldr r6, _0222F34C ; =0x02231288
mov r0, #6
mov r4, #0
add r5, r6, r5
mul r0, r1
add r5, r5, r0
add r3, r4, #0
add r1, r5, #0
_0222F32E:
ldrb r0, [r1]
lsl r0, r0, #4
ldrh r0, [r2, r0]
cmp r0, #0
beq _0222F33C
ldrb r4, [r5, r3]
b _0222F344
_0222F33C:
add r3, r3, #1
add r1, r1, #1
cmp r3, #6
blt _0222F32E
_0222F344:
add r0, r4, #0
pop {r3, r4, r5, r6}
bx lr
nop
_0222F34C: .word MOD71_02231288
thumb_func_end MOD71_0222F318
thumb_func_start MOD71_0222F350
MOD71_0222F350: ; 0x0222F350
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
add r6, r1, #0
add r4, r2, #0
cmp r5, #0xd
blt _0222F362
bl GF_AssertFail
_0222F362:
ldr r1, _0222F3C8 ; =0x02231220
lsl r0, r5, #3
ldr r1, [r1, r0]
lsl r1, r1, #0xc
str r1, [sp]
ldr r1, _0222F3CC ; =0x02231224
ldr r0, [r1, r0]
add r1, sp, #0
lsl r0, r0, #0xc
str r0, [sp, #4]
cmp r5, #0xc
bne _0222F394
add r0, r6, #0
bl FUN_02020044
mov r1, #0xc
add r2, r4, #0
mul r2, r1
ldr r1, _0222F3D0 ; =0x022310DC
add r0, r6, #0
ldr r1, [r1, r2]
bl FUN_02020130
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_0222F394:
add r0, r6, #0
bl FUN_02020044
cmp r5, #6
bge _0222F3B2
mov r1, #0xc
add r2, r4, #0
mul r2, r1
ldr r1, _0222F3D4 ; =0x022310D4
add r0, r6, #0
ldr r1, [r1, r2]
bl FUN_02020130
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_0222F3B2:
mov r1, #0xc
add r2, r4, #0
mul r2, r1
ldr r1, _0222F3D8 ; =0x022310D8
add r0, r6, #0
ldr r1, [r1, r2]
bl FUN_02020130
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_0222F3C8: .word MOD71_02231220
_0222F3CC: .word MOD71_02231224
_0222F3D0: .word MOD71_022310DC
_0222F3D4: .word MOD71_022310D4
_0222F3D8: .word MOD71_022310D8
thumb_func_end MOD71_0222F350
thumb_func_start MOD71_0222F3DC
MOD71_0222F3DC: ; 0x0222F3DC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
str r2, [sp]
ldr r0, [r5]
add r4, r1, #0
ldr r2, [sp, #0x18]
sub r1, r0, #1
mov r7, #0
cmp r2, #0
bne _0222F41C
cmp r0, #0
beq _0222F416
ldr r0, [r4]
add r2, r3, #0
bl MOD71_0222F318
ldr r1, [sp]
ldr r2, [sp, #0x18]
add r6, r0, #0
bl MOD71_0222F350
ldr r0, [r4]
cmp r0, r6
beq _0222F416
ldr r0, _0222F428 ; =0x000005DC
bl PlaySE
str r6, [r4]
mov r7, #1
_0222F416:
mov r0, #0
str r0, [r5]
b _0222F424
_0222F41C:
ldr r0, [r4]
ldr r1, [sp]
bl MOD71_0222F350
_0222F424:
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222F428: .word 0x000005DC
thumb_func_end MOD71_0222F3DC
thumb_func_start MOD71_0222F42C
MOD71_0222F42C: ; 0x0222F42C
push {r3, lr}
add r0, sp, #0
strb r2, [r0]
add r0, r1, #0
add r1, sp, #0
mov r2, #1
bl FUN_02030ADC
pop {r3, pc}
.align 2, 0
thumb_func_end MOD71_0222F42C
thumb_func_start MOD71_0222F440
MOD71_0222F440: ; 0x0222F440
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _0222F470 ; =0x000036A0
add r4, r1, #0
ldr r1, [r5, r0]
add r6, r2, #0
cmp r6, r1
bne _0222F458
add r0, r0, #4
ldr r0, [r5, r0]
cmp r4, r0
beq _0222F46C
_0222F458:
bl FUN_02031190
add r1, r4, #0
add r2, r6, #0
bl MOD71_0222F42C
ldr r0, _0222F470 ; =0x000036A0
str r6, [r5, r0]
add r0, r0, #4
str r4, [r5, r0]
_0222F46C:
pop {r4, r5, r6, pc}
nop
_0222F470: .word 0x000036A0
thumb_func_end MOD71_0222F440
thumb_func_start MOD71_0222F474
MOD71_0222F474: ; 0x0222F474
mov r2, #0x59
lsl r2, r2, #4
mul r2, r1
add r0, r0, r2
bx lr
.align 2, 0
thumb_func_end MOD71_0222F474
thumb_func_start MOD71_0222F480
MOD71_0222F480: ; 0x0222F480
push {r3, r4, r5, lr}
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r5, r1, #0
add r4, r2, #0
bl FUN_02030E7C
cmp r0, #0
beq _0222F4A6
add r0, r5, #0
add r1, r4, #0
bl MOD71_0222F474
mov r2, #0x59
add r1, r0, #0
mov r0, #0x16
lsl r2, r2, #4
bl FUN_02030A78
_0222F4A6:
pop {r3, r4, r5, pc}
thumb_func_end MOD71_0222F480
thumb_func_start MOD71_0222F4A8
MOD71_0222F4A8: ; 0x0222F4A8
push {r3, lr}
bl FUN_0202A918
add r1, r0, #0
mov r0, #0x20
mov r2, #0xe
bl FUN_02030ADC
pop {r3, pc}
.align 2, 0
thumb_func_end MOD71_0222F4A8
thumb_func_start MOD71_0222F4BC
MOD71_0222F4BC: ; 0x0222F4BC
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
bl PlayerProfile_GetNamePtr
add r1, r0, #0
add r0, r4, #0
bl CopyU16StringArray
add r0, r6, #0
bl PlayerProfile_GetTrainerID
str r0, [r4, #0x10]
add r0, r6, #0
bl PlayerProfile_GetLanguage
strb r0, [r4, #0x14]
add r0, r6, #0
bl PlayerProfile_GetVersion
strb r0, [r4, #0x15]
add r0, r6, #0
bl PlayerProfile_GetTrainerGender
strb r0, [r4, #0x16]
mov r0, #0
add r1, r4, #0
_0222F4F4:
ldr r2, [r5, #0x10]
str r2, [r1, #0x18]
ldrb r3, [r5, #0x15]
add r2, r4, r0
add r2, #0x58
strb r3, [r2]
add r2, r4, r0
ldrb r3, [r5, #0x14]
add r2, #0x68
add r1, r1, #4
strb r3, [r2]
add r2, r4, r0
ldrb r3, [r5, #0x16]
add r2, #0x78
add r0, r0, #1
add r5, #0x88
strb r3, [r2]
cmp r0, #0x10
blt _0222F4F4
mov r0, #0x1c
add r1, r4, #0
mov r2, #0x88
bl FUN_02030A78
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD71_0222F4BC
thumb_func_start MOD71_0222F528
MOD71_0222F528: ; 0x0222F528
ldr r3, _0222F534 ; =FUN_02030A78
mov r2, #0xfa
add r1, r0, #0
mov r0, #0x1d
lsl r2, r2, #2
bx r3
.align 2, 0
_0222F534: .word FUN_02030A78
thumb_func_end MOD71_0222F528
thumb_func_start MOD71_0222F538
MOD71_0222F538: ; 0x0222F538
push {r4, lr}
add r4, r0, #0
mov r0, #0x53
lsl r0, r0, #2
add r0, r4, r0
bl MOD71_0222F224
ldr r0, _0222F588 ; =gMain
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _0222F584
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r4, r0]
cmp r0, #0
bne _0222F584
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
cmp r0, #0xc
bne _0222F56C
ldr r1, _0222F58C ; =MOD71_0222F674
ldr r0, _0222F590 ; =0x00002214
str r1, [r4, r0]
b _0222F584
_0222F56C:
cmp r0, #6
bge _0222F578
ldr r1, _0222F594 ; =MOD71_0222FDD8
ldr r0, _0222F590 ; =0x00002214
str r1, [r4, r0]
b _0222F584
_0222F578:
blt _0222F584
cmp r0, #0xc
bge _0222F584
ldr r1, _0222F598 ; =MOD71_02230810
ldr r0, _0222F590 ; =0x00002214
str r1, [r4, r0]
_0222F584:
mov r0, #0
pop {r4, pc}
.align 2, 0
_0222F588: .word gMain
_0222F58C: .word MOD71_0222F674
_0222F590: .word 0x00002214
_0222F594: .word MOD71_0222FDD8
_0222F598: .word MOD71_02230810
thumb_func_end MOD71_0222F538
thumb_func_start MOD71_0222F59C
MOD71_0222F59C: ; 0x0222F59C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bne _0222F5CC
ldr r0, _0222F660 ; =0x00002218
ldr r0, [r5, r0]
str r0, [r5, #0xc]
ldr r0, [r5, #8]
ldr r0, [r0, #8]
bl GetPartyCount
strb r0, [r5, #0x1f]
mov r0, #0
str r0, [r5, #0x34]
bl FUN_02031190
bl FUN_0202DFA4
add r1, r0, #0
add r0, r5, #0
add r0, #0xc
bl FUN_0207C2A4
b _0222F606
_0222F5CC:
ldr r0, _0222F664 ; =0x0000221C
ldr r1, [r5, r0]
str r1, [r5, #0xc]
ldr r0, [r5, r0]
bl GetPartyCount
strb r0, [r5, #0x1f]
bl FUN_02031190
mov r2, #1
ldr r1, _0222F668 ; =0x00002E14
eor r2, r0
mov r0, #0xfb
lsl r0, r0, #2
add r1, r5, r1
mul r0, r2
add r0, r1, r0
str r0, [r5, #0x34]
bl FUN_02031190
mov r1, #1
eor r0, r1
bl FUN_0202DFA4
add r1, r0, #0
add r0, r5, #0
add r0, #0xc
bl FUN_0207C2A4
_0222F606:
mov r0, #1
strb r0, [r5, #0x1d]
add r0, r5, #0
add r0, #0x88
ldr r0, [r0]
mov r1, #6
bl _s32_div_f
add r0, r5, #0
add r0, #0x20
strb r1, [r0]
mov r0, #1
strb r0, [r5, #0x1e]
mov r0, #0
strh r0, [r5, #0x24]
ldr r0, [r5, #8]
ldr r0, [r0, #0x10]
bl FUN_02079C70
str r0, [r5, #0x38]
ldr r0, [r5, #8]
ldr r0, [r0, #0x30]
str r0, [r5, #0x28]
ldr r0, [r5, #8]
ldr r0, [r0, #0x18]
str r0, [r5, #0x10]
ldr r0, [r5, #8]
ldr r0, [r0, #0x10]
bl FUN_0202A918
str r0, [r5, #0x2c]
add r0, r5, #0
ldr r1, _0222F66C ; =0x022313C0
add r0, #0xc
bl FUN_0207B000
add r1, r5, #0
ldr r0, _0222F670 ; =UNK_020FA6E8
add r1, #0xc
mov r2, #0x1a
bl OverlayManager_new
str r0, [r5, #0x40]
str r4, [r5, #0x3c]
pop {r3, r4, r5, pc}
.align 2, 0
_0222F660: .word 0x00002218
_0222F664: .word 0x0000221C
_0222F668: .word 0x00002E14
_0222F66C: .word MOD71_022313C0
_0222F670: .word UNK_020FA6E8
thumb_func_end MOD71_0222F59C
thumb_func_start MOD71_0222F674
MOD71_0222F674: ; 0x0222F674
push {r4, lr}
sub sp, #0x10
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222F6BC ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x19
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222F6C0 ; =MOD71_0222F6C8
ldr r0, _0222F6C4 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_0222F6BC: .word 0x000005A8
_0222F6C0: .word MOD71_0222F6C8
_0222F6C4: .word 0x00002214
thumb_func_end MOD71_0222F674
thumb_func_start MOD71_0222F6C8
MOD71_0222F6C8: ; 0x0222F6C8
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0x5d
ldr r2, _0222F778 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0222F6EE
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222F738
b _0222F772
_0222F6EE:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222F77C ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x1c
mov r2, #1
bl MOD71_02230F40
add r0, r4, #0
mov r1, #0x18
mov r2, #1
bl MOD71_0222F440
ldr r1, _0222F780 ; =MOD71_0222FD9C
ldr r0, _0222F784 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
str r0, [r4, #0x5c]
b _0222F772
_0222F738:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222F788 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222F78C ; =MOD71_0222F538
ldr r0, _0222F784 ; =0x00002214
str r1, [r4, r0]
_0222F772:
mov r0, #0
add sp, #0x10
pop {r4, pc}
.align 2, 0
_0222F778: .word 0x00000658
_0222F77C: .word 0x000005A8
_0222F780: .word MOD71_0222FD9C
_0222F784: .word 0x00002214
_0222F788: .word 0x00000588
_0222F78C: .word MOD71_0222F538
thumb_func_end MOD71_0222F6C8
thumb_func_start MOD71_0222F790
MOD71_0222F790: ; 0x0222F790
push {r4, lr}
sub sp, #0x10
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222F7D8 ; =0x000005A8
ldr r1, [r4, #0x68]
ldr r3, [r4, r3]
add r0, r4, r0
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222F7DC ; =MOD71_0222F7E4
ldr r0, _0222F7E0 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_0222F7D8: .word 0x000005A8
_0222F7DC: .word MOD71_0222F7E4
_0222F7E0: .word 0x00002214
thumb_func_end MOD71_0222F790
thumb_func_start MOD71_0222F7E4
MOD71_0222F7E4: ; 0x0222F7E4
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
ldr r0, _0222F83C ; =gMain
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _0222F834
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222F840 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222F844 ; =MOD71_0222F538
ldr r0, _0222F848 ; =0x00002214
str r1, [r4, r0]
add r0, r4, #0
bl MOD71_02230390
_0222F834:
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_0222F83C: .word gMain
_0222F840: .word 0x00000588
_0222F844: .word MOD71_0222F538
_0222F848: .word 0x00002214
thumb_func_end MOD71_0222F7E4
thumb_func_start MOD71_0222F84C
MOD71_0222F84C: ; 0x0222F84C
push {r3, r4, lr}
sub sp, #4
ldr r4, _0222F86C ; =0x00003674
add r3, r0, #0
ldr r0, [r3, r4]
add r4, r4, #4
str r0, [sp]
ldr r0, _0222F870 ; =0x000005A8
mov r2, #1
add r0, r3, r0
ldr r3, [r3, r4]
bl MOD71_02230F40
add sp, #4
pop {r3, r4, pc}
nop
_0222F86C: .word 0x00003674
_0222F870: .word 0x000005A8
thumb_func_end MOD71_0222F84C
thumb_func_start MOD71_0222F874
MOD71_0222F874: ; 0x0222F874
push {r4, lr}
add r4, r0, #0
mov r0, #0x5d
ldr r2, _0222F8B4 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0222F898
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222F8A0
b _0222F8AE
_0222F898:
ldr r1, _0222F8B8 ; =MOD71_0222FBF0
ldr r0, _0222F8BC ; =0x00002214
str r1, [r4, r0]
b _0222F8AE
_0222F8A0:
add r0, r4, #0
mov r1, #0x22
bl MOD71_0222F84C
ldr r1, _0222F8C0 ; =MOD71_0222FADC
ldr r0, _0222F8BC ; =0x00002214
str r1, [r4, r0]
_0222F8AE:
mov r0, #0
pop {r4, pc}
nop
_0222F8B4: .word 0x00000658
_0222F8B8: .word MOD71_0222FBF0
_0222F8BC: .word 0x00002214
_0222F8C0: .word MOD71_0222FADC
thumb_func_end MOD71_0222F874
thumb_func_start MOD71_0222F8C4
MOD71_0222F8C4: ; 0x0222F8C4
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
mov r0, #0x5d
ldr r2, _0222F938 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0222F8EA
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222F910
b _0222F932
_0222F8EA:
ldr r1, _0222F93C ; =0x00003694
ldr r0, [r4, r1]
sub r1, #0x24
ldr r1, [r4, r1]
bl FUN_02028468
mov r0, #0
str r0, [sp]
ldr r1, _0222F940 ; =0x0000366C
ldr r0, [r4, #4]
ldr r1, [r4, r1]
mov r2, #0x1f
mov r3, #0x1a
bl FUN_02033A70
ldr r1, _0222F944 ; =MOD71_0222FBF0
ldr r0, _0222F948 ; =0x00002214
str r1, [r4, r0]
b _0222F932
_0222F910:
ldr r0, _0222F940 ; =0x0000366C
ldr r0, [r4, r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, _0222F94C ; =0x00003674
mov r1, #0
ldr r0, [r4, r0]
bl BufferPlayersName
add r0, r4, #0
mov r1, #0x23
bl MOD71_0222F84C
ldr r1, _0222F950 ; =MOD71_0222F874
ldr r0, _0222F948 ; =0x00002214
str r1, [r4, r0]
_0222F932:
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222F938: .word 0x00000658
_0222F93C: .word 0x00003694
_0222F940: .word 0x0000366C
_0222F944: .word MOD71_0222FBF0
_0222F948: .word 0x00002214
_0222F94C: .word 0x00003674
_0222F950: .word MOD71_0222F874
thumb_func_end MOD71_0222F8C4
thumb_func_start MOD71_0222F954
MOD71_0222F954: ; 0x0222F954
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0xda
lsl r0, r0, #6
ldr r0, [r5, r0]
bl ListMenu_ProcessInput
add r4, r0, #0
mov r0, #1
mvn r0, r0
cmp r4, r0
beq _0222F976
add r0, r0, #1
cmp r4, r0
bne _0222F9A0
mov r0, #0
pop {r4, r5, r6, pc}
_0222F976:
ldr r0, _0222FA10 ; =0x000005DC
bl PlaySE
ldr r0, _0222FA14 ; =0x0000366C
ldr r0, [r5, r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, _0222FA18 ; =0x00003674
mov r1, #0
ldr r0, [r5, r0]
bl BufferPlayersName
add r0, r5, #0
mov r1, #0x23
bl MOD71_0222F84C
ldr r1, _0222FA1C ; =MOD71_0222F874
ldr r0, _0222FA20 ; =0x00002214
str r1, [r5, r0]
b _0222F9E4
_0222F9A0:
ldr r0, _0222FA10 ; =0x000005DC
bl PlaySE
ldr r0, _0222FA24 ; =0x00003670
str r4, [r5, r0]
mov r0, #0x1a
bl PlayerProfile_new
add r6, r0, #0
ldr r0, _0222FA28 ; =0x00003694
add r1, r4, #0
ldr r0, [r5, r0]
bl FUN_020283A4
add r1, r0, #0
add r0, r6, #0
bl CopyPlayerName
ldr r0, _0222FA18 ; =0x00003674
mov r1, #0
ldr r0, [r5, r0]
add r2, r6, #0
bl BufferPlayersName
add r0, r6, #0
bl FreeToHeap
add r0, r5, #0
mov r1, #0x24
bl MOD71_0222F84C
ldr r1, _0222FA2C ; =MOD71_0222F8C4
ldr r0, _0222FA20 ; =0x00002214
str r1, [r5, r0]
_0222F9E4:
ldr r0, _0222FA30 ; =0x00003684
mov r1, #0
add r0, r5, r0
bl FUN_0200CCF8
ldr r0, _0222FA30 ; =0x00003684
add r0, r5, r0
bl RemoveWindow
mov r0, #0xda
lsl r0, r0, #6
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
bl DestroyListMenu
ldr r0, _0222FA34 ; =0x0000367C
ldr r0, [r5, r0]
bl ListMenuItems_dtor
mov r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
_0222FA10: .word 0x000005DC
_0222FA14: .word 0x0000366C
_0222FA18: .word 0x00003674
_0222FA1C: .word MOD71_0222F874
_0222FA20: .word 0x00002214
_0222FA24: .word 0x00003670
_0222FA28: .word 0x00003694
_0222FA2C: .word MOD71_0222F8C4
_0222FA30: .word 0x00003684
_0222FA34: .word 0x0000367C
thumb_func_end MOD71_0222F954
thumb_func_start MOD71_0222FA38
MOD71_0222FA38: ; 0x0222FA38
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0222FACC ; =0x00003694
ldr r0, [r5, r0]
bl FUN_02028448
str r0, [sp]
add r0, r0, #1
mov r1, #0x1a
bl ListMenuItems_ctor
ldr r1, _0222FAD0 ; =0x0000367C
str r0, [r5, r1]
mov r0, #0x64
mov r1, #0x1a
bl String_ctor
ldr r7, _0222FACC ; =0x00003694
add r6, r0, #0
mov r4, #0
_0222FA60:
ldr r0, [r5, r7]
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
beq _0222FA8A
ldr r0, _0222FACC ; =0x00003694
add r1, r4, #0
ldr r0, [r5, r0]
bl FUN_020283A4
add r1, r0, #0
add r0, r6, #0
bl CopyU16ArrayToString
ldr r0, _0222FAD0 ; =0x0000367C
add r1, r6, #0
ldr r0, [r5, r0]
add r2, r4, #0
bl ListMenuItems_AddItem
_0222FA8A:
add r4, r4, #1
cmp r4, #0x20
blt _0222FA60
ldr r1, _0222FAD0 ; =0x0000367C
mov r2, #0xb
ldr r0, [r5, r1]
sub r1, r1, #4
add r3, r2, #0
ldr r1, [r5, r1]
sub r3, #0xd
bl ListMenuItems_AppendFromMsgData
add r0, r6, #0
bl String_dtor
ldr r2, _0222FAD0 ; =0x0000367C
mov r3, #0x5d
lsl r3, r3, #2
ldr r0, [r5, r2]
add r2, #8
ldr r1, [sp]
ldr r3, [r5, r3]
add r2, r5, r2
bl MOD71_02231018
mov r1, #0xda
lsl r1, r1, #6
str r0, [r5, r1]
ldr r1, _0222FAD4 ; =MOD71_0222F954
ldr r0, _0222FAD8 ; =0x00002214
str r1, [r5, r0]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222FACC: .word 0x00003694
_0222FAD0: .word 0x0000367C
_0222FAD4: .word MOD71_0222F954
_0222FAD8: .word 0x00002214
thumb_func_end MOD71_0222FA38
thumb_func_start MOD71_0222FADC
MOD71_0222FADC: ; 0x0222FADC
push {r4, lr}
add r4, r0, #0
mov r0, #0x5d
ldr r2, _0222FB30 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0222FB00
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222FB08
b _0222FB2A
_0222FB00:
ldr r1, _0222FB34 ; =MOD71_0222FA38
ldr r0, _0222FB38 ; =0x00002214
str r1, [r4, r0]
b _0222FB2A
_0222FB08:
ldr r0, _0222FB3C ; =0x0000366C
ldr r0, [r4, r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, _0222FB40 ; =0x00003674
mov r1, #0
ldr r0, [r4, r0]
bl BufferPlayersName
add r0, r4, #0
mov r1, #0x23
bl MOD71_0222F84C
ldr r1, _0222FB44 ; =MOD71_0222F874
ldr r0, _0222FB38 ; =0x00002214
str r1, [r4, r0]
_0222FB2A:
mov r0, #0
pop {r4, pc}
nop
_0222FB30: .word 0x00000658
_0222FB34: .word MOD71_0222FA38
_0222FB38: .word 0x00002214
_0222FB3C: .word 0x0000366C
_0222FB40: .word 0x00003674
_0222FB44: .word MOD71_0222F874
thumb_func_end MOD71_0222FADC
thumb_func_start MOD71_0222FB48
MOD71_0222FB48: ; 0x0222FB48
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
mov r0, #0x5d
ldr r2, _0222FBC4 ; =0x00000658
lsl r0, r0, #2
add r1, r5, r2
add r2, #0xc
ldr r0, [r5, r0]
add r2, r5, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0222FB6E
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222FBB6
b _0222FBBC
_0222FB6E:
ldr r1, _0222FBC8 ; =MOD71_0222FBF0
ldr r0, _0222FBCC ; =0x00002214
ldr r6, _0222FBD0 ; =0x00003694
str r1, [r5, r0]
mov r4, #0
_0222FB78:
ldr r0, [r5, r6]
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
bne _0222FB98
mov r0, #0
str r0, [sp]
ldr r1, _0222FBD4 ; =0x0000366C
ldr r0, [r5, #4]
ldr r1, [r5, r1]
add r2, r4, #0
mov r3, #0x1a
bl FUN_02033A70
b _0222FB9E
_0222FB98:
add r4, r4, #1
cmp r4, #0x20
blt _0222FB78
_0222FB9E:
cmp r4, #0x20
bne _0222FBBC
add r0, r5, #0
mov r1, #0x22
bl MOD71_0222F84C
ldr r1, _0222FBD8 ; =MOD71_0222FADC
ldr r0, _0222FBCC ; =0x00002214
add sp, #4
str r1, [r5, r0]
mov r0, #0
pop {r3, r4, r5, r6, pc}
_0222FBB6:
ldr r1, _0222FBC8 ; =MOD71_0222FBF0
ldr r0, _0222FBCC ; =0x00002214
str r1, [r5, r0]
_0222FBBC:
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_0222FBC4: .word 0x00000658
_0222FBC8: .word MOD71_0222FBF0
_0222FBCC: .word 0x00002214
_0222FBD0: .word 0x00003694
_0222FBD4: .word 0x0000366C
_0222FBD8: .word MOD71_0222FADC
thumb_func_end MOD71_0222FB48
thumb_func_start MOD71_0222FBDC
MOD71_0222FBDC: ; 0x0222FBDC
push {r3, lr}
mov r0, #0x13
bl FUN_020315D8
cmp r0, #0
beq _0222FBEC
mov r0, #2
pop {r3, pc}
_0222FBEC:
mov r0, #0
pop {r3, pc}
thumb_func_end MOD71_0222FBDC
thumb_func_start MOD71_0222FBF0
MOD71_0222FBF0: ; 0x0222FBF0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r1, #0
ldr r0, _0222FCE4 ; =0x0000366C
mvn r1, r1
str r1, [r6, r0]
mov r4, #0
bl FUN_02030F20
cmp r0, #0
ble _0222FC2C
ldr r7, _0222FCE8 ; =0x000035EC
add r5, r6, #0
_0222FC0A:
ldr r0, [r5, r7]
cmp r0, #2
bne _0222FC20
ldr r0, _0222FCE4 ; =0x0000366C
lsl r1, r4, #2
str r4, [r6, r0]
mov r2, #0
add r1, r6, r1
sub r0, #0x80
str r2, [r1, r0]
b _0222FC2C
_0222FC20:
add r5, r5, #4
add r4, r4, #1
bl FUN_02030F20
cmp r4, r0
blt _0222FC0A
_0222FC2C:
ldr r0, _0222FCE4 ; =0x0000366C
mov r1, #0
ldr r2, [r6, r0]
mvn r1, r1
cmp r2, r1
bne _0222FC70
add r0, #0xc
ldr r0, [r6, r0]
bl DestroyMsgData
ldr r0, _0222FCEC ; =0x00003674
ldr r0, [r6, r0]
bl ScrStrBufs_delete
mov r0, #0x13
bl FUN_02031588
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r6, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222FCF0 ; =0x000005A8
ldr r3, [r6, r3]
add r0, r6, r0
mov r1, #0x1c
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222FCF4 ; =MOD71_0222FBDC
ldr r0, _0222FCF8 ; =0x00002214
str r1, [r6, r0]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0222FC70:
ldr r0, [r6, #4]
bl Sav2_Bag_get
ldr r1, _0222FCFC ; =0x000001B5
mov r2, #1
mov r3, #0x1a
bl Bag_HasItem
cmp r0, #1
bne _0222FCAA
ldr r0, _0222FCE4 ; =0x0000366C
ldr r0, [r6, r0]
bl FUN_0202DFA4
add r2, r0, #0
ldr r0, _0222FCEC ; =0x00003674
mov r1, #0
ldr r0, [r6, r0]
bl BufferPlayersName
add r0, r6, #0
mov r1, #0x21
bl MOD71_0222F84C
ldr r1, _0222FD00 ; =MOD71_0222FB48
ldr r0, _0222FCF8 ; =0x00002214
str r1, [r6, r0]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0222FCAA:
ldr r0, [r6, #4]
bl FUN_020286EC
add r5, r0, #0
mov r4, #0
_0222FCB4:
add r0, r5, #0
add r1, r4, #0
bl FUN_0202842C
cmp r0, #0
bne _0222FCD4
mov r0, #0
str r0, [sp]
ldr r1, _0222FCE4 ; =0x0000366C
ldr r0, [r6, #4]
ldr r1, [r6, r1]
add r2, r4, #0
mov r3, #0x1a
bl FUN_02033A70
b _0222FCDA
_0222FCD4:
add r4, r4, #1
cmp r4, #0x20
blt _0222FCB4
_0222FCDA:
ldr r1, _0222FD04 ; =MOD71_0222FBF0
ldr r0, _0222FCF8 ; =0x00002214
str r1, [r6, r0]
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222FCE4: .word 0x0000366C
_0222FCE8: .word 0x000035EC
_0222FCEC: .word 0x00003674
_0222FCF0: .word 0x000005A8
_0222FCF4: .word MOD71_0222FBDC
_0222FCF8: .word 0x00002214
_0222FCFC: .word 0x000001B5
_0222FD00: .word MOD71_0222FB48
_0222FD04: .word MOD71_0222FBF0
thumb_func_end MOD71_0222FBF0
thumb_func_start MOD71_0222FD08
MOD71_0222FD08: ; 0x0222FD08
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r1, _0222FD78 ; =0x000035EC
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0x1a
bl FUN_020339B4
cmp r0, #0
bne _0222FD48
mov r0, #0x13
bl FUN_02031588
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _0222FD7C ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x1c
mov r2, #1
bl MOD71_02230F40
ldr r1, _0222FD80 ; =MOD71_0222FBDC
ldr r0, _0222FD84 ; =0x00002214
add sp, #4
str r1, [r4, r0]
mov r0, #0
pop {r3, r4, pc}
_0222FD48:
mov r0, #0x1a
bl ScrStrBufs_new
ldr r1, _0222FD88 ; =0x00003674
ldr r2, _0222FD8C ; =0x00000251
str r0, [r4, r1]
mov r1, #0x1a
mov r0, #0
add r3, r1, #0
bl NewMsgDataFromNarc
ldr r1, _0222FD90 ; =0x00003678
str r0, [r4, r1]
ldr r0, [r4, #4]
bl FUN_020286EC
ldr r1, _0222FD94 ; =0x00003694
str r0, [r4, r1]
ldr r1, _0222FD98 ; =MOD71_0222FBF0
ldr r0, _0222FD84 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222FD78: .word 0x000035EC
_0222FD7C: .word 0x000005A8
_0222FD80: .word MOD71_0222FBDC
_0222FD84: .word 0x00002214
_0222FD88: .word 0x00003674
_0222FD8C: .word 0x00000251
_0222FD90: .word 0x00003678
_0222FD94: .word 0x00003694
_0222FD98: .word MOD71_0222FBF0
thumb_func_end MOD71_0222FD08
thumb_func_start MOD71_0222FD9C
MOD71_0222FD9C: ; 0x0222FD9C
ldr r2, [r0, #0x60]
cmp r2, #0
beq _0222FDC8
ldr r1, [r0, #0x64]
cmp r1, #0
beq _0222FDC8
cmp r2, #1
bne _0222FDB8
cmp r1, #1
bne _0222FDB8
ldr r2, _0222FDCC ; =MOD71_0222FD08
ldr r1, _0222FDD0 ; =0x00002214
str r2, [r0, r1]
b _0222FDBE
_0222FDB8:
ldr r2, _0222FDD4 ; =MOD71_0222F790
ldr r1, _0222FDD0 ; =0x00002214
str r2, [r0, r1]
_0222FDBE:
mov r1, #0
str r1, [r0, #0x60]
str r1, [r0, #0x64]
mov r1, #0x1d
str r1, [r0, #0x68]
_0222FDC8:
mov r0, #0
bx lr
.align 2, 0
_0222FDCC: .word MOD71_0222FD08
_0222FDD0: .word 0x00002214
_0222FDD4: .word MOD71_0222F790
thumb_func_end MOD71_0222FD9C
thumb_func_start MOD71_0222FDD8
MOD71_0222FDD8: ; 0x0222FDD8
push {r3, r4, lr}
sub sp, #0x1c
add r4, r0, #0
mov r0, #0
add r1, sp, #0x10
strb r0, [r1, #8]
mov r0, #1
strb r0, [r1, #9]
mov r0, #3
strb r0, [r1, #0xa]
ldrb r2, [r1, #0xb]
mov r0, #0xf
bic r2, r0
strb r2, [r1, #0xb]
ldrb r2, [r1, #0xb]
mov r0, #0x30
bic r2, r0
strb r2, [r1, #0xb]
ldrb r2, [r1, #0xb]
mov r0, #0xc0
bic r2, r0
strb r2, [r1, #0xb]
ldr r0, _0222FED0 ; =0x00002218
add r1, r4, #0
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl BufferBoxMonNickname
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #8
str r0, [sp]
ldr r0, _0222FED4 ; =0x00000598
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x10
mov r2, #1
bl MOD71_02230F40
mov r0, #3
mov r1, #0x1a
bl ListMenuItems_ctor
ldr r1, _0222FED8 ; =0x0000065C
mov r2, #0x11
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #0x61
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r3, #0
bl ListMenuItems_AppendFromMsgData
ldr r0, _0222FED8 ; =0x0000065C
mov r1, #0x61
lsl r1, r1, #2
ldr r0, [r4, r0]
ldr r1, [r4, r1]
mov r2, #0x12
mov r3, #1
bl ListMenuItems_AppendFromMsgData
ldr r0, _0222FED8 ; =0x0000065C
mov r1, #0x61
lsl r1, r1, #2
ldr r0, [r4, r0]
ldr r1, [r4, r1]
mov r2, #0x13
mov r3, #2
bl ListMenuItems_AppendFromMsgData
ldr r0, _0222FED8 ; =0x0000065C
ldr r1, [r4, r0]
str r1, [sp, #0x10]
sub r0, #0xa4
add r0, r4, r0
str r0, [sp, #0x14]
bl MOD71_02231004
mov r0, #0x1a
str r0, [sp]
mov r0, #2
mov r2, #0
str r0, [sp, #4]
add r0, sp, #0x10
mov r1, #8
add r3, r2, #0
bl FUN_02001C14
mov r1, #0x66
lsl r1, r1, #4
str r0, [r4, r1]
ldr r1, _0222FEDC ; =MOD71_0222FEE4
ldr r0, _0222FEE0 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x1c
pop {r3, r4, pc}
nop
_0222FED0: .word 0x00002218
_0222FED4: .word 0x00000598
_0222FED8: .word 0x0000065C
_0222FEDC: .word MOD71_0222FEE4
_0222FEE0: .word 0x00002214
thumb_func_end MOD71_0222FDD8
thumb_func_start MOD71_0222FEE4
MOD71_0222FEE4: ; 0x0222FEE4
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02001C78
cmp r0, #2
bhi _0222FF06
cmp r0, #0
beq _0222FF10
cmp r0, #1
beq _0222FF64
cmp r0, #2
beq _0222FFB4
b _02230002
_0222FF06:
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0222FFB4
b _02230002
_0222FF10:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230008 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02001C5C
ldr r0, _0223000C ; =0x0000065C
ldr r0, [r4, r0]
bl ListMenuItems_dtor
ldr r1, _02230010 ; =MOD71_0222F538
ldr r0, _02230014 ; =0x00002214
add sp, #0x10
str r1, [r4, r0]
mov r0, #3
pop {r4, pc}
_0222FF64:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230018 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02001C5C
ldr r0, _0223000C ; =0x0000065C
ldr r0, [r4, r0]
bl ListMenuItems_dtor
ldr r1, _0223001C ; =MOD71_02230020
ldr r0, _02230014 ; =0x00002214
str r1, [r4, r0]
b _02230002
_0222FFB4:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230008 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02001C5C
ldr r0, _0223000C ; =0x0000065C
ldr r0, [r4, r0]
bl ListMenuItems_dtor
ldr r1, _02230010 ; =MOD71_0222F538
ldr r0, _02230014 ; =0x00002214
str r1, [r4, r0]
_02230002:
mov r0, #0
add sp, #0x10
pop {r4, pc}
.align 2, 0
_02230008: .word 0x00000588
_0223000C: .word 0x0000065C
_02230010: .word MOD71_0222F538
_02230014: .word 0x00002214
_02230018: .word 0x000005A8
_0223001C: .word MOD71_02230020
thumb_func_end MOD71_0222FEE4
thumb_func_start MOD71_02230020
MOD71_02230020: ; 0x02230020
push {r4, lr}
sub sp, #0x10
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230070 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
add r0, r4, #0
mov r1, #0x18
mov r2, #2
bl MOD71_0222F440
ldr r1, _02230074 ; =MOD71_0223007C
ldr r0, _02230078 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x10
pop {r4, pc}
.align 2, 0
_02230070: .word 0x000005A8
_02230074: .word MOD71_0223007C
_02230078: .word 0x00002214
thumb_func_end MOD71_02230020
thumb_func_start MOD71_0223007C
MOD71_0223007C: ; 0x0223007C
ldr r2, [r0, #0x60]
cmp r2, #0
beq _022300A8
ldr r1, [r0, #0x64]
cmp r1, #0
beq _022300A8
cmp r2, #2
bne _02230098
cmp r1, #2
bne _02230098
ldr r2, _022300AC ; =MOD71_022300B8
ldr r1, _022300B0 ; =0x00002214
str r2, [r0, r1]
b _0223009E
_02230098:
ldr r2, _022300B4 ; =MOD71_0222F790
ldr r1, _022300B0 ; =0x00002214
str r2, [r0, r1]
_0223009E:
mov r1, #0x18
str r1, [r0, #0x68]
mov r1, #0
str r1, [r0, #0x60]
str r1, [r0, #0x64]
_022300A8:
mov r0, #0
bx lr
.align 2, 0
_022300AC: .word MOD71_022300B8
_022300B0: .word 0x00002214
_022300B4: .word MOD71_0222F790
thumb_func_end MOD71_0223007C
thumb_func_start MOD71_022300B8
MOD71_022300B8: ; 0x022300B8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, r0, #0
ldr r0, _022301D8 ; =0x00000438
mov r6, #0
add r0, r7, r0
add r4, r7, #0
add r5, r7, #0
str r0, [sp, #4]
_022300CA:
add r0, r7, #0
add r0, #0x88
ldr r0, [r0]
cmp r6, r0
beq _02230108
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
ldr r0, _022301DC ; =0x00000692
ldrh r0, [r5, r0]
cmp r0, #0
beq _022300F4
mov r0, #0x3a
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
_022300F4:
ldr r0, _022301E0 ; =0x0000069C
ldr r0, [r5, r0]
cmp r0, #0
beq _02230108
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
_02230108:
add r0, r6, #7
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
bl ClearWindowTilemapAndScheduleTransfer
add r0, r7, #0
add r0, #0x8c
ldr r0, [r0]
sub r0, r0, #6
cmp r6, r0
beq _02230154
mov r0, #0xe2
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
ldr r0, _022301E4 ; =0x000006F2
ldrh r0, [r5, r0]
cmp r0, #0
beq _02230140
mov r0, #0xee
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
_02230140:
ldr r0, _022301E8 ; =0x000006FC
ldr r0, [r5, r0]
cmp r0, #0
beq _02230154
mov r0, #0xfa
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl FUN_020200A0
_02230154:
add r0, r6, #0
add r0, #0xd
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
bl ClearWindowTilemapAndScheduleTransfer
add r6, r6, #1
add r4, r4, #4
add r5, #0x10
cmp r6, #6
blt _022300CA
mov r0, #0xce
lsl r0, r0, #2
ldr r0, [r7, r0]
mov r1, #0
bl FUN_020200A0
mov r0, #0xcf
lsl r0, r0, #2
ldr r0, [r7, r0]
mov r1, #0
bl FUN_020200A0
add r0, r7, #0
add r0, #0x88
ldr r0, [r0]
mov r3, #0x30
lsl r2, r0, #3
ldr r1, _022301EC ; =0x02231220
ldr r0, _022301F0 ; =0x000022C4
ldr r1, [r1, r2]
ldr r4, _022301F4 ; =0x02231224
add r0, r7, r0
ldr r2, [r4, r2]
add r1, #0x10
sub r2, r2, #6
str r3, [sp]
bl MOD71_02230204
add r0, r7, #0
add r0, #0x8c
ldr r0, [r0]
ldr r1, _022301EC ; =0x02231220
lsl r2, r0, #3
mov r0, #0x30
str r0, [sp]
ldr r0, _022301F8 ; =0x000022DC
ldr r1, [r1, r2]
add r3, r4, #0
ldr r2, [r3, r2]
add r0, r7, r0
add r1, #0x10
sub r2, r2, #6
mov r3, #0xb0
bl MOD71_02230204
ldr r1, _022301FC ; =0x000022BC
mov r0, #0
str r0, [r7, r1]
ldr r2, _02230200 ; =MOD71_0223029C
sub r1, #0xa8
str r2, [r7, r1]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_022301D8: .word 0x00000438
_022301DC: .word 0x00000692
_022301E0: .word 0x0000069C
_022301E4: .word 0x000006F2
_022301E8: .word 0x000006FC
_022301EC: .word MOD71_02231220
_022301F0: .word 0x000022C4
_022301F4: .word MOD71_02231224
_022301F8: .word 0x000022DC
_022301FC: .word 0x000022BC
_02230200: .word MOD71_0223029C
thumb_func_end MOD71_022300B8
thumb_func_start MOD71_02230204
MOD71_02230204: ; 0x02230204
lsl r1, r1, #0xc
str r1, [r0]
lsl r1, r2, #0xc
str r1, [r0, #4]
lsl r1, r3, #0xc
str r1, [r0, #0xc]
ldr r1, [sp]
lsl r1, r1, #0xc
str r1, [r0, #0x10]
bx lr
thumb_func_end MOD71_02230204
thumb_func_start MOD71_02230218
MOD71_02230218: ; 0x02230218
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
ldr r7, [sp, #0x48]
str r0, [sp]
ldr r4, [r7]
ldr r0, [r7, #0xc]
str r1, [sp, #4]
add r6, r3, #0
sub r0, r0, r4
mov r1, #0x14
str r2, [sp, #8]
ldr r5, [sp, #0x4c]
bl _s32_div_f
mul r0, r6
add r0, r4, r0
str r0, [sp, #0x24]
ldr r4, [r7, #4]
ldr r0, [r7, #0x10]
mov r1, #0x14
sub r0, r0, r4
bl _s32_div_f
mul r0, r6
add r0, r4, r0
str r0, [sp, #0x28]
ldr r0, [sp]
add r1, sp, #0x24
bl FUN_02020044
ldrh r0, [r5, #2]
cmp r0, #0
beq _02230276
mov r0, #5
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x18]
mov r0, #0x16
ldr r1, [sp, #0x28]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x1c]
ldr r0, [sp, #4]
add r1, sp, #0x18
bl FUN_02020044
_02230276:
ldr r0, [r5, #0xc]
cmp r0, #0
beq _02230298
mov r0, #7
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0xc]
mov r0, #0x16
ldr r1, [sp, #0x28]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x10]
ldr r0, [sp, #8]
add r1, sp, #0xc
bl FUN_02020044
_02230298:
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD71_02230218
thumb_func_start MOD71_0223029C
MOD71_0223029C: ; 0x0223029C
push {r3, r4, r5, lr}
sub sp, #8
ldr r3, _02230370 ; =0x000022BC
add r4, r0, #0
ldr r0, [r4, r3]
add r2, r3, #0
add r0, r0, #1
str r0, [r4, r3]
add r0, r4, #0
add r0, #0x88
ldr r1, [r0]
add r2, #8
add r2, r4, r2
lsl r0, r1, #2
str r2, [sp]
mov r2, #0x69
lsl r2, r2, #4
add r2, r4, r2
lsl r1, r1, #4
add r1, r2, r1
mov r2, #0x37
str r1, [sp, #4]
lsl r2, r2, #4
add r5, r4, r0
add r1, r2, #0
ldr r0, [r5, r2]
add r1, #0x30
add r2, #0x60
ldr r1, [r5, r1]
ldr r2, [r5, r2]
ldr r3, [r4, r3]
bl MOD71_02230218
add r0, r4, #0
add r0, #0x8c
ldr r3, _02230374 ; =0x000022DC
ldr r5, [r0]
add r1, r4, r3
str r1, [sp]
mov r1, #0x69
lsl r1, r1, #4
add r2, r4, r1
lsl r1, r5, #4
add r1, r2, r1
mov r2, #0x37
lsl r0, r5, #2
lsl r2, r2, #4
str r1, [sp, #4]
add r5, r4, r0
add r1, r2, #0
ldr r0, [r5, r2]
add r1, #0x30
add r2, #0x60
sub r3, #0x20
ldr r1, [r5, r1]
ldr r2, [r5, r2]
ldr r3, [r4, r3]
bl MOD71_02230218
ldr r1, _02230370 ; =0x000022BC
ldr r0, [r4, r1]
cmp r0, #0x15
bne _02230368
mov r0, #1
add r2, r4, #0
str r0, [sp]
ldr r0, _02230378 ; =0x00000568
sub r1, #0xa4
add r2, #0x88
ldr r1, [r4, r1]
ldr r2, [r2]
add r0, r4, r0
mov r3, #8
bl MOD71_0222EC5C
mov r0, #1
add r2, r4, #0
str r0, [sp]
ldr r1, _0223037C ; =0x0000221C
add r2, #0x8c
ldr r0, _02230380 ; =0x00000578
ldr r2, [r2]
ldr r1, [r4, r1]
add r0, r4, r0
sub r2, r2, #6
mov r3, #8
bl MOD71_0222EC5C
add r1, r4, #0
add r1, #0x8c
ldr r1, [r1]
add r0, r4, #0
bl MOD71_0222E1A0
ldr r1, _02230384 ; =MOD71_022304AC
ldr r0, _02230388 ; =0x00002214
str r1, [r4, r0]
ldr r0, _0223038C ; =0x00000418
mov r1, #1
ldr r0, [r4, r0]
bl FUN_020200A0
_02230368:
mov r0, #0
add sp, #8
pop {r3, r4, r5, pc}
nop
_02230370: .word 0x000022BC
_02230374: .word 0x000022DC
_02230378: .word 0x00000568
_0223037C: .word 0x0000221C
_02230380: .word 0x00000578
_02230384: .word MOD71_022304AC
_02230388: .word 0x00002214
_0223038C: .word 0x00000418
thumb_func_end MOD71_0223029C
thumb_func_start MOD71_02230390
MOD71_02230390: ; 0x02230390
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
ldr r1, _0223048C ; =0x00000568
str r0, [sp]
add r0, r0, r1
bl ClearWindowTilemapAndScheduleTransfer
ldr r1, _02230490 ; =0x00000578
ldr r0, [sp]
add r0, r0, r1
bl ClearWindowTilemapAndScheduleTransfer
ldr r6, [sp]
ldr r1, _02230494 ; =0x00000438
add r0, r6, #0
add r0, r0, r1
ldr r4, _02230498 ; =0x02231220
mov r7, #0
add r5, r6, #0
str r0, [sp, #4]
_022303B8:
mov r0, #0x69
lsl r0, r0, #4
ldrh r0, [r6, r0]
cmp r0, #0
beq _02230438
mov r0, #0x37
lsl r0, r0, #4
ldr r1, [r4]
ldr r2, [r4, #4]
ldr r0, [r5, r0]
add r1, #0x10
sub r2, r2, #6
bl MOD71_02230B70
mov r0, #0x37
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
ldr r0, _0223049C ; =0x00000692
ldrh r0, [r6, r0]
cmp r0, #0
beq _02230406
mov r0, #0x3a
lsl r0, r0, #4
ldr r1, [r4]
ldr r2, [r4, #4]
ldr r0, [r5, r0]
add r1, #0x24
add r2, #0x10
bl MOD71_02230B70
mov r0, #0x3a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
_02230406:
ldr r0, _022304A0 ; =0x0000069C
ldr r0, [r6, r0]
cmp r0, #0
beq _0223042C
mov r0, #0x3d
lsl r0, r0, #4
ldr r1, [r4]
ldr r2, [r4, #4]
ldr r0, [r5, r0]
add r1, #0x2c
add r2, #0x10
bl MOD71_02230B70
mov r0, #0x3d
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200A0
_0223042C:
add r0, r7, #7
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
bl ScheduleWindowCopyToVram
_02230438:
add r7, r7, #1
add r6, #0x10
add r4, #8
add r5, r5, #4
cmp r7, #0xc
blt _022303B8
mov r1, #0xce
ldr r0, [sp]
lsl r1, r1, #2
ldr r0, [r0, r1]
mov r1, #1
bl FUN_020200A0
mov r1, #0xcf
ldr r0, [sp]
lsl r1, r1, #2
ldr r0, [r0, r1]
mov r1, #1
bl FUN_020200A0
ldr r1, _02230494 ; =0x00000438
ldr r0, [sp]
ldr r2, [sp]
add r0, r0, r1
mov r1, #1
bl MOD71_0222EF24
ldr r1, _022304A4 ; =0x0000040C
ldr r0, [sp]
ldr r0, [r0, r1]
mov r1, #0
bl FUN_020200A0
ldr r1, _022304A8 ; =0x00000418
ldr r0, [sp]
ldr r0, [r0, r1]
mov r1, #0
bl FUN_020200A0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0223048C: .word 0x00000568
_02230490: .word 0x00000578
_02230494: .word 0x00000438
_02230498: .word MOD71_02231220
_0223049C: .word 0x00000692
_022304A0: .word 0x0000069C
_022304A4: .word 0x0000040C
_022304A8: .word 0x00000418
thumb_func_end MOD71_02230390
thumb_func_start MOD71_022304AC
MOD71_022304AC: ; 0x022304AC
push {r4, lr}
sub sp, #0x10
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
ldr r0, _02230534 ; =0x00002218
add r1, r4, #0
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl BufferBoxMonNickname
add r1, r4, #0
ldr r0, _02230538 ; =0x0000221C
add r1, #0x8c
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
bl BufferBoxMonNickname
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #8
str r0, [sp]
ldr r0, _0223053C ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x15
mov r2, #1
bl MOD71_02230F40
ldr r1, _02230540 ; =MOD71_02230548
ldr r0, _02230544 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x10
pop {r4, pc}
.align 2, 0
_02230534: .word 0x00002218
_02230538: .word 0x0000221C
_0223053C: .word 0x000005A8
_02230540: .word MOD71_02230548
_02230544: .word 0x00002214
thumb_func_end MOD71_022304AC
thumb_func_start MOD71_02230548
MOD71_02230548: ; 0x02230548
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0x5d
ldr r2, _02230638 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _0223056E
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _022305EE
b _02230632
_0223056E:
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
lsl r0, r0, #4
add r1, r4, r0
ldr r0, _0223063C ; =0x0000069C
ldr r0, [r1, r0]
cmp r0, #0
bne _022305E6
add r0, r4, #0
bl MOD71_02230BC4
cmp r0, #0
beq _022305D4
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230640 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
ldr r1, _02230644 ; =MOD71_02230770
ldr r0, _02230648 ; =0x00002214
mov r2, #3
str r1, [r4, r0]
add r0, r4, #0
mov r1, #0x18
bl MOD71_0222F440
mov r0, #1
str r0, [r4, #0x5c]
b _02230632
_022305D4:
ldr r1, _02230644 ; =MOD71_02230770
ldr r0, _02230648 ; =0x00002214
mov r2, #4
str r1, [r4, r0]
add r0, r4, #0
mov r1, #0x18
bl MOD71_0222F440
b _02230632
_022305E6:
ldr r1, _0223064C ; =MOD71_02230650
ldr r0, _02230648 ; =0x00002214
str r1, [r4, r0]
b _02230632
_022305EE:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230640 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
ldr r1, _02230644 ; =MOD71_02230770
ldr r0, _02230648 ; =0x00002214
mov r2, #4
str r1, [r4, r0]
add r0, r4, #0
mov r1, #0x18
bl MOD71_0222F440
_02230632:
mov r0, #0
add sp, #0x10
pop {r4, pc}
.align 2, 0
_02230638: .word 0x00000658
_0223063C: .word 0x0000069C
_02230640: .word 0x000005A8
_02230644: .word MOD71_02230770
_02230648: .word 0x00002214
_0223064C: .word MOD71_02230650
thumb_func_end MOD71_02230548
thumb_func_start MOD71_02230650
MOD71_02230650: ; 0x02230650
push {r4, lr}
sub sp, #0x10
mov r1, #0
add r4, r0, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #8
str r0, [sp]
ldr r0, _02230698 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x24
mov r2, #1
bl MOD71_02230F40
ldr r1, _0223069C ; =MOD71_022306A4
ldr r0, _022306A0 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_02230698: .word 0x000005A8
_0223069C: .word MOD71_022306A4
_022306A0: .word 0x00002214
thumb_func_end MOD71_02230650
thumb_func_start MOD71_022306A4
MOD71_022306A4: ; 0x022306A4
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0x5d
ldr r2, _02230760 ; =0x00000658
lsl r0, r0, #2
add r1, r4, r2
add r2, #0xc
ldr r0, [r4, r0]
add r2, r4, r2
bl MOD71_02230FB0
cmp r0, #0
beq _022306CA
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _02230714
b _02230758
_022306CA:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230764 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
ldr r1, _02230768 ; =MOD71_02230770
ldr r0, _0223076C ; =0x00002214
mov r2, #3
str r1, [r4, r0]
add r0, r4, #0
mov r1, #0x18
bl MOD71_0222F440
mov r0, #1
str r0, [r4, #0x5c]
b _02230758
_02230714:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _02230764 ; =0x000005A8
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x14
mov r2, #1
bl MOD71_02230F40
ldr r1, _02230768 ; =MOD71_02230770
ldr r0, _0223076C ; =0x00002214
mov r2, #4
str r1, [r4, r0]
add r0, r4, #0
mov r1, #0x18
bl MOD71_0222F440
_02230758:
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_02230760: .word 0x00000658
_02230764: .word 0x000005A8
_02230768: .word MOD71_02230770
_0223076C: .word 0x00002214
thumb_func_end MOD71_022306A4
thumb_func_start MOD71_02230770
MOD71_02230770: ; 0x02230770
push {r4, lr}
add r4, r0, #0
ldr r1, [r4, #0x60]
cmp r1, #0
beq _022307B8
ldr r0, [r4, #0x64]
cmp r0, #0
beq _022307B8
cmp r1, #3
bne _02230798
cmp r0, #3
bne _02230798
ldr r0, _022307BC ; =0x00003698
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
ldr r1, _022307C0 ; =MOD71_022307CC
ldr r0, _022307C4 ; =0x00002214
str r1, [r4, r0]
b _0223079E
_02230798:
ldr r1, _022307C8 ; =MOD71_0222F790
ldr r0, _022307C4 ; =0x00002214
str r1, [r4, r0]
_0223079E:
mov r0, #0
str r0, [r4, #0x60]
str r0, [r4, #0x64]
add r0, r4, #0
bl MOD71_02230BC4
cmp r0, #0
beq _022307B4
mov r0, #0x18
str r0, [r4, #0x68]
b _022307B8
_022307B4:
mov r0, #0x22
str r0, [r4, #0x68]
_022307B8:
mov r0, #0
pop {r4, pc}
.align 2, 0
_022307BC: .word 0x00003698
_022307C0: .word MOD71_022307CC
_022307C4: .word 0x00002214
_022307C8: .word MOD71_0222F790
thumb_func_end MOD71_02230770
thumb_func_start MOD71_022307CC
MOD71_022307CC: ; 0x022307CC
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl FUN_0202E288
ldr r0, [r4, #8]
add r3, r4, #0
add r2, r4, #0
ldr r1, _02230804 ; =0x00002218
str r0, [sp]
add r3, #0x8c
ldr r0, [r4, r1]
add r1, r1, #4
add r2, #0x88
ldr r3, [r3]
ldr r1, [r4, r1]
ldr r2, [r2]
sub r3, r3, #6
bl MOD71_022309E8
ldr r1, _02230808 ; =MOD71_0222F790
ldr r0, _0223080C ; =0x00002214
str r1, [r4, r0]
mov r0, #2
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_02230804: .word 0x00002218
_02230808: .word MOD71_0222F790
_0223080C: .word 0x00002214
thumb_func_end MOD71_022307CC
thumb_func_start MOD71_02230810
MOD71_02230810: ; 0x02230810
push {r3, r4, lr}
sub sp, #0x1c
add r4, r0, #0
mov r0, #0
add r1, sp, #0x10
strb r0, [r1, #8]
mov r0, #1
strb r0, [r1, #9]
mov r0, #2
strb r0, [r1, #0xa]
ldrb r2, [r1, #0xb]
mov r0, #0xf
bic r2, r0
strb r2, [r1, #0xb]
ldrb r2, [r1, #0xb]
mov r0, #0x30
bic r2, r0
strb r2, [r1, #0xb]
ldrb r2, [r1, #0xb]
mov r0, #0xc0
bic r2, r0
strb r2, [r1, #0xb]
add r1, r4, #0
ldr r0, _022308F8 ; =0x0000221C
add r1, #0x88
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #0
bl BufferBoxMonNickname
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #8
str r0, [sp]
ldr r0, _022308FC ; =0x00000598
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0x10
mov r2, #1
bl MOD71_02230F40
mov r0, #2
mov r1, #0x1a
bl ListMenuItems_ctor
ldr r1, _02230900 ; =0x0000065C
mov r2, #0x11
str r0, [r4, r1]
ldr r0, [r4, r1]
mov r1, #0x61
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r3, #0
bl ListMenuItems_AppendFromMsgData
ldr r0, _02230900 ; =0x0000065C
mov r1, #0x61
lsl r1, r1, #2
ldr r0, [r4, r0]
ldr r1, [r4, r1]
mov r2, #0x13
mov r3, #1
bl ListMenuItems_AppendFromMsgData
ldr r0, _02230900 ; =0x0000065C
ldr r1, [r4, r0]
sub r0, #0x94
add r0, r4, r0
str r1, [sp, #0x10]
str r0, [sp, #0x14]
bl MOD71_02231004
mov r0, #0x1a
str r0, [sp]
mov r0, #2
mov r2, #0
str r0, [sp, #4]
add r0, sp, #0x10
mov r1, #8
add r3, r2, #0
bl FUN_02001C14
mov r1, #0x66
lsl r1, r1, #4
str r0, [r4, r1]
ldr r1, _02230904 ; =MOD71_0223090C
ldr r0, _02230908 ; =0x00002214
str r1, [r4, r0]
mov r0, #0
add sp, #0x1c
pop {r3, r4, pc}
nop
_022308F8: .word 0x0000221C
_022308FC: .word 0x00000598
_02230900: .word 0x0000065C
_02230904: .word MOD71_0223090C
_02230908: .word 0x00002214
thumb_func_end MOD71_02230810
thumb_func_start MOD71_0223090C
MOD71_0223090C: ; 0x0223090C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02001C78
cmp r0, #0
beq _0223092E
cmp r0, #1
beq _02230982
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _02230982
b _022309D0
_0223092E:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _022309D8 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
ldr r1, _022309DC ; =MOD71_0222F538
ldr r0, _022309E0 ; =0x00002214
str r1, [r4, r0]
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02001C5C
ldr r0, _022309E4 ; =0x0000065C
ldr r0, [r4, r0]
bl ListMenuItems_dtor
add sp, #0x10
mov r0, #3
pop {r4, pc}
_02230982:
mov r1, #0
str r1, [sp]
mov r0, #0x20
str r0, [sp, #4]
mov r0, #0x18
str r0, [sp, #8]
mov r0, #0x5d
str r1, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
add r3, #0xc
str r0, [sp]
ldr r0, _022309D8 ; =0x00000588
ldr r3, [r4, r3]
add r0, r4, r0
mov r1, #0xf
mov r2, #1
bl MOD71_02230F40
mov r0, #0x66
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
bl FUN_02001C5C
ldr r0, _022309E4 ; =0x0000065C
ldr r0, [r4, r0]
bl ListMenuItems_dtor
ldr r1, _022309DC ; =MOD71_0222F538
ldr r0, _022309E0 ; =0x00002214
str r1, [r4, r0]
_022309D0:
mov r0, #0
add sp, #0x10
pop {r4, pc}
nop
_022309D8: .word 0x00000588
_022309DC: .word MOD71_0222F538
_022309E0: .word 0x00002214
_022309E4: .word 0x0000065C
thumb_func_end MOD71_0223090C
thumb_func_start MOD71_022309E8
MOD71_022309E8: ; 0x022309E8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp, #4]
mov r0, #0x1a
str r1, [sp, #8]
add r6, r2, #0
str r3, [sp, #0xc]
ldr r5, [sp, #0x28]
bl AllocMonZeroed
add r7, r0, #0
mov r0, #0x1a
bl AllocMonZeroed
add r4, r0, #0
ldr r0, [sp, #4]
add r1, r6, #0
bl GetPartyMonByIndex
add r1, r7, #0
bl CopyPokemonToPokemon
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
bl GetPartyMonByIndex
add r1, r4, #0
bl CopyPokemonToPokemon
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
bl GetMonData
cmp r0, #0
bne _02230A40
mov r1, #0x46
add r0, sp, #0x10
strb r1, [r0]
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
bl SetMonData
_02230A40:
bl FUN_02031190
bl FUN_0202DFA4
add r1, r0, #0
mov r0, #0xb
str r0, [sp]
add r0, r4, #0
mov r2, #5
mov r3, #0
bl FUN_0208089C
add r0, r4, #0
bl Pokemon_RemoveCapsule
ldr r1, [r5, #0x3c]
add r0, r7, #0
bl CopyPokemonToPokemon
ldr r1, [r5, #0x40]
add r0, r4, #0
bl CopyPokemonToPokemon
bl FUN_02031190
mov r1, #1
eor r0, r1
bl FUN_0202DFA4
ldr r1, [r5, #0x38]
bl PlayerProfile_Copy
ldr r0, [sp, #4]
ldr r1, _02230AE0 ; =0x000001B9
str r6, [r5, #0x2c]
bl PartyHasMon
cmp r0, #0
bne _02230A98
ldr r0, [r5, #0x10]
bl Sav2_Chatot_get
bl Chatot_invalidate
_02230A98:
ldr r0, [r5, #0x10]
add r1, r4, #0
bl FUN_0202C144
ldr r0, [sp, #4]
add r1, r6, #0
bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl CopyPokemonToPokemon
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
bl GetPartyMonByIndex
add r1, r0, #0
add r0, r7, #0
bl CopyPokemonToPokemon
ldr r0, [r5, #0x1c]
add r1, r4, #0
bl MOD71_02230AE4
ldr r0, [r5, #0x20]
mov r1, #0x13
bl FUN_0202A0E8
add r0, r7, #0
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
_02230AE0: .word 0x000001B9
thumb_func_end MOD71_022309E8
thumb_func_start MOD71_02230AE4
MOD71_02230AE4: ; 0x02230AE4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r6, r0, #0
add r4, r1, #0
bl FUN_02031190
mov r1, #1
eor r0, r1
bl FUN_0202DFA4
add r5, r0, #0
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
bl GetMonData
add r0, r5, #0
bl PlayerProfile_GetNamePtr
add r7, r0, #0
add r0, r5, #0
bl PlayerProfile_GetTrainerGender
add r5, r0, #0
add r0, r4, #0
bl GetMonGender
add r3, r0, #0
mov r0, #0x1a
lsl r1, r5, #0x18
str r0, [sp]
add r0, r7, #0
lsr r1, r1, #0x18
add r2, sp, #4
bl FUN_0202945C
add r1, r0, #0
add r0, r6, #0
mov r2, #4
bl FUN_02028AD4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD71_02230AE4
thumb_func_start MOD71_02230B3C
MOD71_02230B3C: ; 0x02230B3C
push {r4, lr}
ldr r3, _02230B6C ; =0x000022B8
add r4, r0, #0
ldr r0, [r4, r3]
mov r1, #6
add r0, r0, #2
str r0, [r4, r3]
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r3, [r4, r3]
mov r2, #0
bl BgSetPosTextAndCommit
mov r0, #0x5d
ldr r3, _02230B6C ; =0x000022B8
lsl r0, r0, #2
ldr r0, [r4, r0]
ldr r3, [r4, r3]
mov r1, #3
mov r2, #0
bl BgSetPosTextAndCommit
pop {r4, pc}
.align 2, 0
_02230B6C: .word 0x000022B8
thumb_func_end MOD71_02230B3C
thumb_func_start MOD71_02230B70
MOD71_02230B70: ; 0x02230B70
push {lr}
sub sp, #0xc
lsl r1, r1, #0xc
str r1, [sp]
lsl r1, r2, #0xc
str r1, [sp, #4]
add r1, sp, #0
bl FUN_02020044
add sp, #0xc
pop {pc}
.align 2, 0
thumb_func_end MOD71_02230B70
thumb_func_start MOD71_02230B88
MOD71_02230B88: ; 0x02230B88
push {r4, lr}
add r4, r0, #0
ldr r0, _02230B9C ; =0x000005A8
ldr r1, _02230BA0 ; =0x000001D9
add r0, r4, r0
bl FUN_0200D858
ldr r1, _02230BA4 ; =0x000036A8
str r0, [r4, r1]
pop {r4, pc}
.align 2, 0
_02230B9C: .word 0x000005A8
_02230BA0: .word 0x000001D9
_02230BA4: .word 0x000036A8
thumb_func_end MOD71_02230B88
thumb_func_start MOD71_02230BA8
MOD71_02230BA8: ; 0x02230BA8
push {r4, lr}
add r4, r0, #0
ldr r0, _02230BC0 ; =0x000036A8
ldr r0, [r4, r0]
cmp r0, #0
beq _02230BBE
bl FUN_0200DBFC
ldr r0, _02230BC0 ; =0x000036A8
mov r1, #0
str r1, [r4, r0]
_02230BBE:
pop {r4, pc}
.align 2, 0
_02230BC0: .word 0x000036A8
thumb_func_end MOD71_02230BA8
thumb_func_start MOD71_02230BC4
MOD71_02230BC4: ; 0x02230BC4
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _02230C00 ; =0x00002218
mov r4, #0
ldr r0, [r5, r0]
bl GetPartyCount
add r3, r4, #0
cmp r0, #0
ble _02230BF0
add r1, r5, #0
add r1, #0x88
ldr r6, [r1]
ldr r1, _02230C04 ; =0x00000695
_02230BE0:
cmp r3, r6
beq _02230BE8
ldrb r2, [r5, r1]
add r4, r4, r2
_02230BE8:
add r3, r3, #1
add r5, #0x10
cmp r3, r0
blt _02230BE0
_02230BF0:
sub r0, r0, #1
cmp r4, r0
bne _02230BFA
mov r0, #0
pop {r4, r5, r6, pc}
_02230BFA:
mov r0, #1
pop {r4, r5, r6, pc}
nop
_02230C00: .word 0x00002218
_02230C04: .word 0x00000695
thumb_func_end MOD71_02230BC4
thumb_func_start MOD71_02230C08
MOD71_02230C08: ; 0x02230C08
ldr r1, _02230C18 ; =0x000036AC
mov r2, #1
str r2, [r0, r1]
mov r2, #0
add r1, r1, #4
str r2, [r0, r1]
bx lr
nop
_02230C18: .word 0x000036AC
thumb_func_end MOD71_02230C08
thumb_func_start MOD71_02230C1C
MOD71_02230C1C: ; 0x02230C1C
push {r3, lr}
ldr r2, _02230C40 ; =0x000036AC
ldr r1, [r0, r2]
cmp r1, #0
beq _02230C3E
add r1, r2, #4
ldr r1, [r0, r1]
add r3, r1, #1
add r1, r2, #4
str r3, [r0, r1]
ldr r1, [r0, r1]
ldr r0, _02230C44 ; =0x00000708
cmp r1, r0
ble _02230C3E
mov r0, #4
bl FUN_020336A0
_02230C3E:
pop {r3, pc}
.align 2, 0
_02230C40: .word 0x000036AC
_02230C44: .word 0x00000708
thumb_func_end MOD71_02230C1C
thumb_func_start MOD71_02230C48
MOD71_02230C48: ; 0x02230C48
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r2, #0
mov r2, #1
str r2, [sp]
mov r3, #0xa
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r6, #8
str r6, [sp, #0xc]
add r5, r1, #0
str r0, [sp, #0x14]
str r2, [sp, #0x10]
bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
mov r2, #1
add r1, r5, #0
str r2, [sp]
mov r0, #0xa
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
add r0, r6, #0
str r0, [sp, #0xc]
mov r0, #0x15
str r0, [sp, #0x10]
ldr r0, [sp, #0x14]
add r1, #0x10
mov r3, #0x14
bl AddWindowParameterized
add r0, r5, #0
add r0, #0x10
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x15
str r0, [sp]
mov r0, #5
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
add r0, r6, #0
str r0, [sp, #0xc]
mov r0, #0x29
str r0, [sp, #0x10]
add r1, r5, #0
ldr r0, [sp, #0x14]
add r1, #0x60
mov r2, #1
mov r3, #0x1a
bl AddWindowParameterized
add r0, r5, #0
add r0, #0x60
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0x1a
str r0, [sp, #4]
ldr r0, [sp, #0x14]
ldr r2, _02230E78 ; =0x000001D9
mov r1, #0
mov r3, #0xa
bl FUN_0200CD68
mov r1, #0
str r1, [sp]
mov r0, #0x1a
str r0, [sp, #4]
ldr r0, [sp, #0x14]
ldr r2, _02230E7C ; =0x000001F7
mov r3, #0xb
bl FUN_0200CB00
mov r1, #0x15
str r1, [sp]
mov r0, #0x14
str r0, [sp, #4]
mov r3, #2
lsl r1, r1, #4
str r3, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
bl AddWindowParameterized
mov r0, #0x15
lsl r0, r0, #4
add r0, r5, r0
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x13
str r0, [sp]
mov r0, #0xe
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x28
mov r1, #0x16
str r0, [sp, #0x10]
lsl r1, r1, #4
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
mov r3, #2
bl AddWindowParameterized
mov r0, #0x16
lsl r0, r0, #4
add r0, r5, r0
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x38
mov r1, #0x17
str r0, [sp, #0x10]
lsl r1, r1, #4
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
mov r3, #2
bl AddWindowParameterized
mov r0, #0x17
lsl r0, r0, #4
add r0, r5, r0
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x11
str r0, [sp]
mov r0, #0xb
str r0, [sp, #4]
mov r0, #6
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r1, #0xa4
str r1, [sp, #0x10]
add r1, #0xdc
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
mov r3, #0x14
bl AddWindowParameterized
mov r0, #6
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #0x13
str r0, [sp]
mov r0, #0xb
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r1, #0xe6
str r1, [sp, #0x10]
add r1, #0xaa
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
mov r3, #0x14
bl AddWindowParameterized
mov r0, #0x19
lsl r0, r0, #4
add r0, r5, r0
mov r1, #0
bl FillWindowPixelBuffer
ldr r4, _02230E80 ; =0x022313F4
mov r7, #0
mov r6, #0x33
_02230DE2:
add r0, r7, #7
lsl r0, r0, #4
str r0, [sp, #0x18]
ldrh r0, [r4, #2]
ldr r1, [sp, #0x18]
mov r2, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #8
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
lsl r0, r6, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
ldrh r3, [r4]
ldr r0, [sp, #0x14]
add r1, r5, r1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
bl AddWindowParameterized
ldr r0, [sp, #0x18]
mov r1, #0
add r0, r5, r0
bl FillWindowPixelBuffer
add r7, r7, #1
add r6, #0x10
add r4, r4, #4
cmp r7, #0xe
blt _02230DE2
ldr r4, _02230E84 ; =0x0223142C
mov r6, #0
_02230E2C:
add r0, r6, #0
add r0, #0x1a
lsl r7, r0, #4
ldrh r0, [r4, #2]
add r1, r5, r7
mov r2, #4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
ldrh r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
ldrh r0, [r4, #6]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
ldrh r0, [r4, #8]
str r0, [sp, #0x10]
ldrh r3, [r4]
ldr r0, [sp, #0x14]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
bl AddWindowParameterized
add r0, r5, r7
mov r1, #0
bl FillWindowPixelBuffer
add r6, r6, #1
add r4, #0xa
cmp r6, #8
blt _02230E2C
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_02230E78: .word 0x000001D9
_02230E7C: .word 0x000001F7
_02230E80: .word MOD71_022313F4
_02230E84: .word MOD71_0223142C
thumb_func_end MOD71_02230C48
thumb_func_start MOD71_02230E88
MOD71_02230E88: ; 0x02230E88
push {r3, r4, r5, lr}
add r4, r0, #0
mov r5, #0
_02230E8E:
add r0, r5, #7
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
add r5, r5, #1
cmp r5, #0xe
blt _02230E8E
mov r5, #0
_02230EA0:
add r0, r5, #0
add r0, #0x1a
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
add r5, r5, #1
cmp r5, #8
blt _02230EA0
add r0, r4, #0
bl RemoveWindow
add r0, r4, #0
add r0, #0x10
bl RemoveWindow
add r0, r4, #0
add r0, #0x60
bl RemoveWindow
mov r0, #0x15
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
mov r0, #0x16
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
mov r0, #0x17
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
mov r0, #6
lsl r0, r0, #6
add r0, r4, r0
bl RemoveWindow
mov r0, #0x19
lsl r0, r0, #4
add r0, r4, r0
bl RemoveWindow
pop {r3, r4, r5, pc}
thumb_func_end MOD71_02230E88
thumb_func_start MOD71_02230EFC
MOD71_02230EFC: ; 0x02230EFC
push {r4, r5, r6, lr}
sub sp, #0x10
add r4, r3, #0
ldr r3, [sp, #0x20]
add r5, r0, #0
add r6, r1, #0
cmp r3, #1
bne _02230F20
mov r0, #0
add r2, r0, #0
bl FUN_02002E14
ldrb r1, [r5, #7]
lsl r1, r1, #3
sub r1, r1, r0
lsr r0, r1, #0x1f
add r0, r1, r0
asr r3, r0, #1
_02230F20:
ldr r0, [sp, #0x24]
mov r1, #0
str r0, [sp]
ldr r0, _02230F3C ; =0x000B0C00
str r4, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r2, r6, #0
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_02230F3C: .word 0x000B0C00
thumb_func_end MOD71_02230EFC
thumb_func_start MOD71_02230F40
MOD71_02230F40: ; 0x02230F40
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
add r6, r1, #0
add r4, r2, #0
add r1, r3, #0
ldr r0, [sp, #0x20]
add r2, r6, #0
mov r3, #0x1a
bl ReadMsgData_ExpandPlaceholders
add r6, r0, #0
cmp r4, #1
bne _02230F6A
ldr r2, _02230FA4 ; =0x000001D9
add r0, r5, #0
mov r1, #0
mov r3, #0xa
bl FUN_0200D0BC
b _02230F76
_02230F6A:
ldr r2, _02230FA8 ; =0x000001F7
add r0, r5, #0
mov r1, #0
mov r3, #0xb
bl FUN_0200CCA4
_02230F76:
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
mov r3, #0
str r3, [sp]
ldr r0, _02230FAC ; =0x0001020F
str r3, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
str r3, [sp, #0xc]
bl AddTextPrinterParameterized2
add r4, r0, #0
add r0, r6, #0
bl String_dtor
add r0, r4, #0
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_02230FA4: .word 0x000001D9
_02230FA8: .word 0x000001F7
_02230FAC: .word 0x0001020F
thumb_func_end MOD71_02230F40
thumb_func_start MOD71_02230FB0
MOD71_02230FB0: ; 0x02230FB0
push {r3, r4, r5, r6, lr}
sub sp, #4
add r4, r2, #0
add r5, r1, #0
mov r6, #0
ldr r1, [r4]
mvn r6, r6
cmp r1, #0
beq _02230FC8
cmp r1, #1
beq _02230FE0
b _02230FF6
_02230FC8:
mov r1, #0x1a
str r1, [sp]
ldr r1, _02230FFC ; =0x022313CC
ldr r2, _02231000 ; =0x000001F7
mov r3, #0xb
bl Std_CreateYesNoMenu
str r0, [r5]
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _02230FF6
_02230FE0:
ldr r0, [r5]
mov r1, #0x1a
bl FUN_020021AC
add r6, r0, #0
mov r0, #0
mvn r0, r0
cmp r6, r0
beq _02230FF6
mov r0, #0
str r0, [r4]
_02230FF6:
add r0, r6, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_02230FFC: .word MOD71_022313CC
_02231000: .word 0x000001F7
thumb_func_end MOD71_02230FB0
thumb_func_start MOD71_02231004
MOD71_02231004: ; 0x02231004
push {r3, lr}
ldr r2, _02231014 ; =0x000001F7
mov r1, #0
mov r3, #0xb
bl FUN_0200CCA4
pop {r3, pc}
nop
_02231014: .word 0x000001F7
thumb_func_end MOD71_02231004
thumb_func_start MOD71_02231018
MOD71_02231018: ; 0x02231018
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r5, r0, #0
mov r0, #1
str r0, [sp]
mov r0, #0xc
str r0, [sp, #4]
mov r0, #0xa
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
ldr r0, _02231088 ; =0x0000014D
add r4, r2, #0
add r6, r1, #0
str r0, [sp, #0x10]
add r0, r3, #0
add r1, r4, #0
mov r2, #0
mov r3, #0x13
bl AddWindowParameterized
ldr r2, _0223108C ; =0x000001F7
add r0, r4, #0
mov r1, #0
mov r3, #0xb
bl FUN_0200CCA4
ldr r3, _02231090 ; =0x022313D4
add r2, sp, #0x14
add r7, r2, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r1, r6, #1
add r0, sp, #0x14
strh r1, [r0, #0x10]
mov r1, #5
strh r1, [r0, #0x12]
ldr r0, _02231094 ; =MOD71_02231098
mov r1, #0
str r0, [sp, #0x18]
add r0, r7, #0
add r2, r1, #0
mov r3, #0x1a
str r5, [sp, #0x14]
str r4, [sp, #0x20]
bl ListMenuInit
add sp, #0x34
pop {r4, r5, r6, r7, pc}
nop
_02231088: .word 0x0000014D
_0223108C: .word 0x000001F7
_02231090: .word MOD71_022313D4
_02231094: .word MOD71_02231098
thumb_func_end MOD71_02231018
thumb_func_start MOD71_02231098
MOD71_02231098: ; 0x02231098
push {r3, lr}
cmp r2, #0
bne _022310A4
ldr r0, _022310A8 ; =0x000005DC
bl PlaySE
_022310A4:
pop {r3, pc}
nop
_022310A8: .word 0x000005DC
thumb_func_end MOD71_02231098
.rodata
.global MOD71_022310AC
MOD71_022310AC: ; 0x022310AC
.byte 0x38, 0x88, 0x18, 0x68, 0xFF, 0x00, 0x00, 0x00
.global MOD71_022310B4
MOD71_022310B4: ; 0x022310B4
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_022310C4
MOD71_022310C4: ; 0x022310C4
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00
.global MOD71_022310D4
MOD71_022310D4: ; 0x022310D4
.byte 0x00, 0x00, 0x00, 0x00
.global MOD71_022310D8
MOD71_022310D8: ; 0x022310D8
.byte 0x01, 0x00, 0x00, 0x00
.global MOD71_022310DC
MOD71_022310DC: ; 0x022310DC
.byte 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00
.global MOD71_022310EC
MOD71_022310EC: ; 0x022310EC
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_02231108
MOD71_02231108: ; 0x02231108
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_02231124
MOD71_02231124: ; 0x02231124
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1F, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_02231140
MOD71_02231140: ; 0x02231140
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_0223115C
MOD71_0223115C: ; 0x0223115C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_02231178
MOD71_02231178: ; 0x02231178
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1C, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_02231194
MOD71_02231194: ; 0x02231194
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_022311B0
MOD71_022311B0: ; 0x022311B0
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_022311D8
MOD71_022311D8: ; 0x022311D8
.byte 0x3F, 0x00, 0x00, 0x00
.global MOD71_022311DC
MOD71_022311DC: ; 0x022311DC
.byte 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x90, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00
.global MOD71_02231220
MOD71_02231220: ; 0x02231220
.byte 0x00, 0x00, 0x00, 0x00
.global MOD71_02231224
MOD71_02231224: ; 0x02231224
.byte 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x48, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x70, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x48, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
.byte 0x70, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
.byte 0xA0, 0x00, 0x00, 0x00
.global MOD71_02231288
MOD71_02231288: ; 0x02231288
.byte 0x04, 0x02, 0x0C, 0x0C, 0x00, 0x00, 0x02, 0x04, 0x0C, 0x0C, 0x00, 0x00, 0x07, 0x06, 0x01, 0x00
.byte 0x00, 0x00, 0x01, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05, 0x03, 0x0C, 0x0C, 0x00, 0x00, 0x03, 0x05
.byte 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x06, 0x01, 0x00, 0x00, 0x06, 0x07, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x08, 0x07, 0x06
.byte 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x05, 0x01
.byte 0x01, 0x01, 0x00, 0x00, 0x02, 0x09, 0x08, 0x07, 0x00, 0x00, 0x08, 0x09, 0x06, 0x06, 0x00, 0x00
.byte 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0A, 0x09, 0x08
.byte 0x07, 0x06, 0x05, 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01
.byte 0x01, 0x01, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x0A, 0x08, 0x06, 0x00, 0x00, 0x00
.byte 0x0A, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0C
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00
.byte 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0C
.byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x04, 0x03, 0x02
.byte 0x01, 0x00, 0x0B, 0x09, 0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x0B, 0x09, 0x07, 0x06, 0x00, 0x00, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_022313C0
MOD71_022313C0: ; 0x022313C0
.byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00
.global MOD71_022313CC
MOD71_022313CC: ; 0x022313CC
.byte 0x00, 0x19, 0x0D, 0x06, 0x04, 0x03, 0x12, 0x01
.global MOD71_022313D4
MOD71_022313D4: ; 0x022313D4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x20, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
.global MOD71_022313F4
MOD71_022313F4: ; 0x022313F4
.byte 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x0C, 0x00
.byte 0x00, 0x00, 0x11, 0x00, 0x08, 0x00, 0x11, 0x00, 0x10, 0x00, 0x07, 0x00, 0x18, 0x00, 0x07, 0x00
.byte 0x10, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x11, 0x00, 0x18, 0x00, 0x11, 0x00
.byte 0x04, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0A, 0x00
.global MOD71_0223142C
MOD71_0223142C: ; 0x0223142C
.byte 0x04, 0x00, 0x01, 0x00, 0x09, 0x00, 0x02, 0x00, 0x01, 0x00, 0x14, 0x00, 0x01, 0x00, 0x09, 0x00
.byte 0x02, 0x00, 0x13, 0x00, 0x04, 0x00, 0x03, 0x00, 0x08, 0x00, 0x02, 0x00, 0x25, 0x00, 0x14, 0x00
.byte 0x03, 0x00, 0x08, 0x00, 0x02, 0x00, 0x35, 0x00, 0x02, 0x00, 0x13, 0x00, 0x07, 0x00, 0x02, 0x00
.byte 0x45, 0x00, 0x12, 0x00, 0x13, 0x00, 0x07, 0x00, 0x02, 0x00, 0x53, 0x00, 0x02, 0x00, 0x15, 0x00
.byte 0x0C, 0x00, 0x02, 0x00, 0x61, 0x00, 0x12, 0x00, 0x15, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x79, 0x00
.data
.bss