mirror of
https://github.com/pret/pokeheartgold.git
synced 2025-02-16 11:28:16 +00:00
19304 lines
334 KiB
ArmAsm
19304 lines
334 KiB
ArmAsm
#include "constants/pokemon.h"
|
|
#include "constants/sndseq.h"
|
|
.include "asm/macros.inc"
|
|
.include "overlay_12_battle_controller_opponent.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov12_02258800
|
|
ov12_02258800: ; 0x02258800
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x94
|
|
str r1, [sp, #0x18]
|
|
add r7, r0, #0
|
|
bl ov12_0223A7E4
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x18]
|
|
lsl r0, r0, #0x18
|
|
lsr r4, r0, #0x18
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
bne _0225882C
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _02258830
|
|
_0225882C:
|
|
str r4, [sp, #0x44]
|
|
b _0225883E
|
|
_02258830:
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattlerIdPartner
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x44]
|
|
_0225883E:
|
|
ldr r2, [sp, #0x18]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov12_02253DA0
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r7, #0
|
|
bl BattleSys_GetPartySize
|
|
str r0, [sp, #0x40]
|
|
mov r0, #0
|
|
str r0, [sp, #0x50]
|
|
add r0, r5, r4
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [sp, #0x44]
|
|
add r0, r5, r0
|
|
str r0, [sp, #0x30]
|
|
_02258864:
|
|
mov r0, #0
|
|
str r0, [sp, #0x48]
|
|
mov r0, #6
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [sp, #0x40]
|
|
ldr r4, [sp, #0x48]
|
|
cmp r0, #0
|
|
ble _02258968
|
|
_02258874:
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r7, #0
|
|
add r2, r4, #0
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xae
|
|
mov r2, #0
|
|
str r0, [sp, #0x68]
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
beq _02258950
|
|
ldr r0, _02258B8C ; =0x000001EE
|
|
cmp r1, r0
|
|
beq _02258950
|
|
ldr r0, [sp, #0x68]
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _02258950
|
|
add r0, r4, #0
|
|
bl MaskOfFlagNo
|
|
ldr r1, [sp, #0x50]
|
|
tst r0, r1
|
|
bne _02258950
|
|
ldr r1, [sp, #0x34]
|
|
ldr r0, _02258B90 ; =0x0000219C
|
|
ldrb r0, [r1, r0]
|
|
cmp r4, r0
|
|
beq _02258950
|
|
ldr r1, [sp, #0x30]
|
|
ldr r0, _02258B90 ; =0x0000219C
|
|
ldrb r0, [r1, r0]
|
|
cmp r4, r0
|
|
beq _02258950
|
|
ldr r1, [sp, #0x34]
|
|
ldr r0, _02258B94 ; =0x000021A4
|
|
ldrb r0, [r1, r0]
|
|
cmp r4, r0
|
|
beq _02258950
|
|
ldr r1, [sp, #0x30]
|
|
ldr r0, _02258B94 ; =0x000021A4
|
|
ldrb r0, [r1, r0]
|
|
cmp r4, r0
|
|
beq _02258950
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x1b
|
|
mov r3, #0
|
|
bl GetBattlerVar
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x60]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x1c
|
|
mov r3, #0
|
|
bl GetBattlerVar
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x5c]
|
|
ldr r0, [sp, #0x68]
|
|
mov r1, #0xb1
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x58]
|
|
ldr r0, [sp, #0x68]
|
|
mov r1, #0xb2
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x54]
|
|
ldr r0, [sp, #0x58]
|
|
ldr r1, [sp, #0x60]
|
|
ldr r2, [sp, #0x5c]
|
|
bl CalculateTypeEffectiveness
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, [sp, #0x54]
|
|
ldr r1, [sp, #0x60]
|
|
ldr r2, [sp, #0x5c]
|
|
bl CalculateTypeEffectiveness
|
|
ldr r1, [sp, #0x4c]
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x4c]
|
|
ldr r1, [sp, #0x48]
|
|
cmp r1, r0
|
|
bhs _02258960
|
|
ldr r0, [sp, #0x4c]
|
|
str r0, [sp, #0x48]
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x38]
|
|
b _02258960
|
|
_02258950:
|
|
add r0, r4, #0
|
|
bl MaskOfFlagNo
|
|
ldr r1, [sp, #0x50]
|
|
orr r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x50]
|
|
_02258960:
|
|
ldr r0, [sp, #0x40]
|
|
add r4, r4, #1
|
|
cmp r4, r0
|
|
blt _02258874
|
|
_02258968:
|
|
ldr r0, [sp, #0x38]
|
|
cmp r0, #6
|
|
beq _02258A30
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [sp, #0x38]
|
|
add r0, r7, #0
|
|
bl BattleSystem_GetPartyMon
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
_0225897E:
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r4, #0
|
|
add r1, #0x36
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x3c]
|
|
ldr r3, [sp, #0x3c]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r4, #0
|
|
bl ov12_02258BB4
|
|
str r0, [sp, #0x6c]
|
|
ldr r0, [sp, #0x3c]
|
|
cmp r0, #0
|
|
beq _02258A08
|
|
mov r0, #0
|
|
str r0, [sp, #0x90]
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
mov r2, #0
|
|
bl GetMonData
|
|
str r0, [sp, #0x70]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl GetBattlerAbility
|
|
str r0, [sp, #0x74]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl GetBattlerHeldItemEffect
|
|
str r0, [sp, #0x78]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x1b
|
|
mov r3, #0
|
|
bl GetBattlerVar
|
|
str r0, [sp, #0x7c]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
mov r2, #0x1c
|
|
mov r3, #0
|
|
bl GetBattlerVar
|
|
ldr r1, [sp, #0x74]
|
|
ldr r2, [sp, #0x6c]
|
|
str r1, [sp]
|
|
ldr r1, [sp, #0x78]
|
|
ldr r3, [sp, #0x70]
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #0x7c]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0x90
|
|
str r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x3c]
|
|
add r0, r5, #0
|
|
bl ov12_02252054
|
|
ldr r1, [sp, #0x90]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
bne _02258A12
|
|
_02258A08:
|
|
ldr r0, [sp, #0x20]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x20]
|
|
cmp r0, #4
|
|
blt _0225897E
|
|
_02258A12:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #4
|
|
bne _02258A2A
|
|
ldr r0, [sp, #0x38]
|
|
bl MaskOfFlagNo
|
|
ldr r1, [sp, #0x50]
|
|
orr r0, r1
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x50]
|
|
b _02258A34
|
|
_02258A2A:
|
|
ldr r0, [sp, #0x38]
|
|
add sp, #0x94
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02258A30:
|
|
mov r0, #0x3f
|
|
str r0, [sp, #0x50]
|
|
_02258A34:
|
|
ldr r0, [sp, #0x50]
|
|
cmp r0, #0x3f
|
|
beq _02258A3C
|
|
b _02258864
|
|
_02258A3C:
|
|
mov r0, #0
|
|
str r0, [sp, #0x28]
|
|
mov r0, #6
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x40]
|
|
cmp r0, #0
|
|
bgt _02258A50
|
|
b _02258B84
|
|
_02258A50:
|
|
ldr r1, [sp, #0x18]
|
|
ldr r2, [sp, #0x24]
|
|
add r0, r7, #0
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xae
|
|
mov r2, #0
|
|
str r0, [sp, #0x1c]
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
beq _02258A70
|
|
ldr r0, _02258B8C ; =0x000001EE
|
|
cmp r1, r0
|
|
bne _02258A72
|
|
_02258A70:
|
|
b _02258B76
|
|
_02258A72:
|
|
ldr r0, [sp, #0x1c]
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _02258B76
|
|
ldr r0, _02258B90 ; =0x0000219C
|
|
ldr r1, [sp, #0x34]
|
|
ldrb r2, [r1, r0]
|
|
ldr r1, [sp, #0x24]
|
|
cmp r1, r2
|
|
beq _02258B76
|
|
ldr r1, [sp, #0x30]
|
|
ldrb r2, [r1, r0]
|
|
ldr r1, [sp, #0x24]
|
|
cmp r1, r2
|
|
beq _02258B76
|
|
add r2, r0, #0
|
|
ldr r1, [sp, #0x34]
|
|
add r2, #8
|
|
ldrb r2, [r1, r2]
|
|
ldr r1, [sp, #0x24]
|
|
cmp r1, r2
|
|
beq _02258B76
|
|
ldr r1, [sp, #0x30]
|
|
add r0, #8
|
|
ldrb r1, [r1, r0]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, r1
|
|
beq _02258B76
|
|
mov r0, #0
|
|
str r0, [sp, #0x64]
|
|
ldr r0, [sp, #0x18]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x84]
|
|
ldr r0, [sp, #0x24]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x88]
|
|
_02258AC4:
|
|
ldr r1, [sp, #0x64]
|
|
ldr r0, [sp, #0x1c]
|
|
add r1, #0x36
|
|
mov r2, #0
|
|
bl GetMonData
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x8c]
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r3, [sp, #0x8c]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov12_02258BB4
|
|
str r0, [sp, #0x80]
|
|
ldr r0, [sp, #0x8c]
|
|
cmp r0, #0
|
|
beq _02258B5E
|
|
lsl r0, r0, #4
|
|
add r1, r5, r0
|
|
ldr r0, _02258B98 ; =0x000003E1
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #1
|
|
beq _02258B5E
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl BattleSys_GetFieldSide
|
|
add r3, r0, #0
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r5, r0]
|
|
lsl r3, r3, #2
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x84]
|
|
add r4, r5, r3
|
|
str r0, [sp, #0xc]
|
|
mov r3, #0x6f
|
|
str r6, [sp, #0x10]
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
lsl r3, r3, #2
|
|
ldr r2, [sp, #0x8c]
|
|
ldr r3, [r4, r3]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl CalcMoveDamage
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x18
|
|
mov r0, #0
|
|
str r0, [sp, #0x90]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r3, [sp, #0x80]
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r0, sp, #0x90
|
|
str r0, [sp, #0xc]
|
|
ldr r2, [sp, #0x8c]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl ov12_02251D28
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp, #0x4c]
|
|
ldr r1, [sp, #0x90]
|
|
ldr r0, _02258B9C ; =0x00140808
|
|
tst r0, r1
|
|
beq _02258B5E
|
|
mov r0, #0
|
|
str r0, [sp, #0x4c]
|
|
_02258B5E:
|
|
ldr r1, [sp, #0x28]
|
|
ldr r0, [sp, #0x4c]
|
|
cmp r1, r0
|
|
bhs _02258B6C
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x88]
|
|
str r0, [sp, #0x2c]
|
|
_02258B6C:
|
|
ldr r0, [sp, #0x64]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x64]
|
|
cmp r0, #4
|
|
blt _02258AC4
|
|
_02258B76:
|
|
ldr r0, [sp, #0x24]
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #0x40]
|
|
str r1, [sp, #0x24]
|
|
cmp r1, r0
|
|
bge _02258B84
|
|
b _02258A50
|
|
_02258B84:
|
|
ldr r0, [sp, #0x2c]
|
|
add sp, #0x94
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02258B8C: .word 0x000001EE
|
|
_02258B90: .word 0x0000219C
|
|
_02258B94: .word 0x000021A4
|
|
_02258B98: .word 0x000003E1
|
|
_02258B9C: .word 0x00140808
|
|
thumb_func_end ov12_02258800
|
|
|
|
thumb_func_start ov12_02258BA0
|
|
ov12_02258BA0: ; 0x02258BA0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0223A7E4
|
|
add r1, r0, r4
|
|
ldr r0, _02258BB0 ; =0x000021A4
|
|
ldrb r0, [r1, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02258BB0: .word 0x000021A4
|
|
thumb_func_end ov12_02258BA0
|
|
|
|
thumb_func_start ov12_02258BB4
|
|
ov12_02258BB4: ; 0x02258BB4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r4, r2, #0
|
|
ldr r2, _02258D6C ; =0x00000137
|
|
add r7, r0, #0
|
|
add r6, r1, #0
|
|
cmp r3, r2
|
|
bgt _02258BCE
|
|
blt _02258BC8
|
|
b _02258D12
|
|
_02258BC8:
|
|
cmp r3, #0xed
|
|
beq _02258C90
|
|
b _02258D64
|
|
_02258BCE:
|
|
add r0, r2, #0
|
|
add r0, #0x34
|
|
cmp r3, r0
|
|
bgt _02258BDE
|
|
add r2, #0x34
|
|
cmp r3, r2
|
|
beq _02258BE6
|
|
b _02258D64
|
|
_02258BDE:
|
|
add r2, #0x8a
|
|
cmp r3, r2
|
|
beq _02258C02
|
|
b _02258D64
|
|
_02258BE6:
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x10
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x10
|
|
mov r2, #0xc
|
|
bl GetItemHoldEffect
|
|
add r5, r0, #0
|
|
b _02258D66
|
|
_02258C02:
|
|
add r0, r4, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x10
|
|
add r0, r6, #0
|
|
lsr r1, r1, #0x10
|
|
mov r2, #1
|
|
bl GetItemHoldEffect
|
|
sub r0, #0x7e
|
|
cmp r0, #0xf
|
|
bhi _02258C8C
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02258C2C: ; jump table
|
|
.short _02258C6C - _02258C2C - 2 ; case 0
|
|
.short _02258C70 - _02258C2C - 2 ; case 1
|
|
.short _02258C78 - _02258C2C - 2 ; case 2
|
|
.short _02258C74 - _02258C2C - 2 ; case 3
|
|
.short _02258C80 - _02258C2C - 2 ; case 4
|
|
.short _02258C4C - _02258C2C - 2 ; case 5
|
|
.short _02258C54 - _02258C2C - 2 ; case 6
|
|
.short _02258C58 - _02258C2C - 2 ; case 7
|
|
.short _02258C50 - _02258C2C - 2 ; case 8
|
|
.short _02258C7C - _02258C2C - 2 ; case 9
|
|
.short _02258C60 - _02258C2C - 2 ; case 10
|
|
.short _02258C5C - _02258C2C - 2 ; case 11
|
|
.short _02258C64 - _02258C2C - 2 ; case 12
|
|
.short _02258C84 - _02258C2C - 2 ; case 13
|
|
.short _02258C88 - _02258C2C - 2 ; case 14
|
|
.short _02258C68 - _02258C2C - 2 ; case 15
|
|
_02258C4C:
|
|
mov r5, #1
|
|
b _02258D66
|
|
_02258C50:
|
|
mov r5, #2
|
|
b _02258D66
|
|
_02258C54:
|
|
mov r5, #3
|
|
b _02258D66
|
|
_02258C58:
|
|
mov r5, #4
|
|
b _02258D66
|
|
_02258C5C:
|
|
mov r5, #5
|
|
b _02258D66
|
|
_02258C60:
|
|
mov r5, #6
|
|
b _02258D66
|
|
_02258C64:
|
|
mov r5, #7
|
|
b _02258D66
|
|
_02258C68:
|
|
mov r5, #8
|
|
b _02258D66
|
|
_02258C6C:
|
|
mov r5, #0xa
|
|
b _02258D66
|
|
_02258C70:
|
|
mov r5, #0xb
|
|
b _02258D66
|
|
_02258C74:
|
|
mov r5, #0xc
|
|
b _02258D66
|
|
_02258C78:
|
|
mov r5, #0xd
|
|
b _02258D66
|
|
_02258C7C:
|
|
mov r5, #0xe
|
|
b _02258D66
|
|
_02258C80:
|
|
mov r5, #0xf
|
|
b _02258D66
|
|
_02258C84:
|
|
mov r5, #0x10
|
|
b _02258D66
|
|
_02258C88:
|
|
mov r5, #0x11
|
|
b _02258D66
|
|
_02258C8C:
|
|
mov r5, #0
|
|
b _02258D66
|
|
_02258C90:
|
|
add r0, r4, #0
|
|
mov r1, #0x4b
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0x4a
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0x49
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #0x48
|
|
mov r2, #0
|
|
bl GetMonData
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0x46
|
|
mov r2, #0
|
|
bl GetMonData
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
mov r1, #0x47
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r0, #0
|
|
lsl r2, r6, #0x1f
|
|
lsl r0, r5, #0x1f
|
|
lsr r5, r2, #0x1b
|
|
lsl r2, r7, #0x1f
|
|
lsr r4, r2, #0x1c
|
|
ldr r2, [sp, #4]
|
|
lsl r1, r1, #0x1f
|
|
lsl r2, r2, #0x1f
|
|
lsr r3, r2, #0x1d
|
|
ldr r2, [sp, #8]
|
|
mov r6, #1
|
|
and r2, r6
|
|
lsr r1, r1, #0x1e
|
|
orr r1, r2
|
|
orr r1, r3
|
|
orr r1, r4
|
|
lsr r0, r0, #0x1a
|
|
orr r1, r5
|
|
orr r1, r0
|
|
mov r0, #0xf
|
|
mul r0, r1
|
|
mov r1, #0x3f
|
|
bl _s32_div_f
|
|
add r5, r0, #1
|
|
cmp r5, #9
|
|
blt _02258D66
|
|
add r5, r5, #1
|
|
b _02258D66
|
|
_02258D12:
|
|
mov r2, #0xd
|
|
str r2, [sp]
|
|
mov r2, #8
|
|
mov r3, #0
|
|
bl CheckAbilityActive
|
|
cmp r0, #0
|
|
bne _02258D66
|
|
mov r0, #0x4c
|
|
str r0, [sp]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
mov r2, #8
|
|
mov r3, #0
|
|
bl CheckAbilityActive
|
|
cmp r0, #0
|
|
bne _02258D66
|
|
mov r0, #6
|
|
lsl r0, r0, #6
|
|
ldr r0, [r6, r0]
|
|
ldr r1, _02258D70 ; =0x000080FF
|
|
tst r1, r0
|
|
beq _02258D66
|
|
mov r1, #3
|
|
tst r1, r0
|
|
beq _02258D4A
|
|
mov r5, #0xb
|
|
_02258D4A:
|
|
mov r1, #0xc
|
|
tst r1, r0
|
|
beq _02258D52
|
|
mov r5, #5
|
|
_02258D52:
|
|
mov r1, #0x30
|
|
tst r1, r0
|
|
beq _02258D5A
|
|
mov r5, #0xa
|
|
_02258D5A:
|
|
mov r1, #0xc0
|
|
tst r0, r1
|
|
beq _02258D66
|
|
mov r5, #0xf
|
|
b _02258D66
|
|
_02258D64:
|
|
mov r5, #0
|
|
_02258D66:
|
|
add r0, r5, #0
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02258D6C: .word 0x00000137
|
|
_02258D70: .word 0x000080FF
|
|
thumb_func_end ov12_02258BB4
|
|
|
|
thumb_func_start ov12_02258D74
|
|
ov12_02258D74: ; 0x02258D74
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r1, #0x6b
|
|
mov r0, #5
|
|
lsl r1, r1, #2
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r2, #0x6b
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl MIi_CpuClearFast
|
|
mov r0, #0x65
|
|
ldrb r1, [r5]
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
ldrb r1, [r5, #1]
|
|
add r0, r0, #1
|
|
strb r1, [r4, r0]
|
|
mov r0, #0xb4
|
|
mov r1, #5
|
|
bl NARC_New
|
|
mov r1, #0x69
|
|
lsl r1, r1, #2
|
|
str r0, [r4, r1]
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_02258D74
|
|
|
|
thumb_func_start ov12_02258DB0
|
|
ov12_02258DB0: ; 0x02258DB0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x22
|
|
lsl r1, r1, #4
|
|
tst r0, r1
|
|
bne _02258E48
|
|
sub r1, #0x8b
|
|
ldrb r1, [r4, r1]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _02258DDC
|
|
add r0, r5, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _02258E48
|
|
_02258DDC:
|
|
ldr r0, _02258E4C ; =0x00000195
|
|
ldr r1, _02258E50 ; =ov12_0226D120
|
|
ldrb r2, [r4, r0]
|
|
sub r0, r0, #1
|
|
ldrb r1, [r1, r2]
|
|
str r1, [sp]
|
|
mov r1, #5
|
|
str r1, [sp, #4]
|
|
mov r1, #4
|
|
str r1, [sp, #8]
|
|
ldrb r0, [r4, r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r5, #0
|
|
str r6, [sp, #0x10]
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0
|
|
str r0, [sp, #0x18]
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
add r0, sp, #0
|
|
bl ov07_02233DB8
|
|
add r1, r4, #0
|
|
add r1, #0x88
|
|
str r0, [r1]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0x64
|
|
bl ov07_022344C4
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #2
|
|
bl ov07_022344D0
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov07_0223449C
|
|
add r4, #0x88
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl ov07_022344C0
|
|
_02258E48:
|
|
add sp, #0x28
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02258E4C: .word 0x00000195
|
|
_02258E50: .word ov12_0226D120
|
|
thumb_func_end ov12_02258DB0
|
|
|
|
thumb_func_start ov12_02258E54
|
|
ov12_02258E54: ; 0x02258E54
|
|
push {r3, lr}
|
|
add r2, r1, #0
|
|
add r2, #0x94
|
|
ldrb r2, [r2]
|
|
cmp r2, #0
|
|
beq _02258E76
|
|
mov r2, #0x6a
|
|
mov r3, #0
|
|
lsl r2, r2, #2
|
|
strb r3, [r1, r2]
|
|
add r2, r1, #0
|
|
add r2, #0x94
|
|
ldrb r2, [r2]
|
|
lsl r3, r2, #2
|
|
ldr r2, _02258E78 ; =ov12_0226D010
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
_02258E76:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_02258E78: .word ov12_0226D010
|
|
thumb_func_end ov12_02258E54
|
|
|
|
thumb_func_start ov12_02258E7C
|
|
ov12_02258E7C: ; 0x02258E7C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
cmp r2, #2
|
|
beq _02258E8C
|
|
add r0, r4, #0
|
|
add r0, #0x28
|
|
bl ov12_02264C68
|
|
_02258E8C:
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _02258E96
|
|
bl sub_0200D9DC
|
|
_02258E96:
|
|
add r0, r4, #0
|
|
bl ov12_02262014
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
bl NARC_Delete
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02258E7C
|
|
|
|
thumb_func_start ov12_02258EB0
|
|
ov12_02258EB0: ; 0x02258EB0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02258EB0
|
|
|
|
thumb_func_start ov12_02258EB4
|
|
ov12_02258EB4: ; 0x02258EB4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r1, #0x98
|
|
ldr r1, [r1]
|
|
add r5, r0, #0
|
|
bl ov12_0223BDD0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov12_02259944
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #1
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_02258EB4
|
|
|
|
thumb_func_start ov12_02258EE0
|
|
ov12_02258EE0: ; 0x02258EE0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_02259968
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258EE0
|
|
|
|
thumb_func_start ov12_02258EF4
|
|
ov12_02258EF4: ; 0x02258EF4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_02259BA8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258EF4
|
|
|
|
thumb_func_start ov12_02258F08
|
|
ov12_02258F08: ; 0x02258F08
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_02259D48
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F08
|
|
|
|
thumb_func_start ov12_02258F1C
|
|
ov12_02258F1C: ; 0x02258F1C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_02259F30
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F1C
|
|
|
|
thumb_func_start ov12_02258F30
|
|
ov12_02258F30: ; 0x02258F30
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A018
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F30
|
|
|
|
thumb_func_start ov12_02258F44
|
|
ov12_02258F44: ; 0x02258F44
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
bl sub_02008780
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #7
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02258F44
|
|
|
|
thumb_func_start ov12_02258F68
|
|
ov12_02258F68: ; 0x02258F68
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A07C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F68
|
|
|
|
thumb_func_start ov12_02258F7C
|
|
ov12_02258F7C: ; 0x02258F7C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A2A0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F7C
|
|
|
|
thumb_func_start ov12_02258F90
|
|
ov12_02258F90: ; 0x02258F90
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225A334
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258F90
|
|
|
|
thumb_func_start ov12_02258FA0
|
|
ov12_02258FA0: ; 0x02258FA0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A37C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258FA0
|
|
|
|
thumb_func_start ov12_02258FB4
|
|
ov12_02258FB4: ; 0x02258FB4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A414
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258FB4
|
|
|
|
thumb_func_start ov12_02258FC8
|
|
ov12_02258FC8: ; 0x02258FC8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225A4DC
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02258FC8
|
|
|
|
thumb_func_start ov12_02258FD8
|
|
ov12_02258FD8: ; 0x02258FD8
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r6, r4, #0
|
|
add r6, #0x94
|
|
add r1, r6, #0
|
|
add r1, #0x29
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
bl ov12_0223BB6C
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov12_0225A524
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02258FD8
|
|
|
|
thumb_func_start ov12_02259000
|
|
ov12_02259000: ; 0x02259000
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A604
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259000
|
|
|
|
thumb_func_start ov12_02259014
|
|
ov12_02259014: ; 0x02259014
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A674
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259014
|
|
|
|
thumb_func_start ov12_02259028
|
|
ov12_02259028: ; 0x02259028
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A700
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259028
|
|
|
|
thumb_func_start ov12_0225903C
|
|
ov12_0225903C: ; 0x0225903C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A7AC
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_0225903C
|
|
|
|
thumb_func_start ov12_02259050
|
|
ov12_02259050: ; 0x02259050
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A818
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259050
|
|
|
|
thumb_func_start ov12_02259064
|
|
ov12_02259064: ; 0x02259064
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A85C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259064
|
|
|
|
thumb_func_start ov12_02259078
|
|
ov12_02259078: ; 0x02259078
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A8C4
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259078
|
|
|
|
thumb_func_start ov12_0225908C
|
|
ov12_0225908C: ; 0x0225908C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A914
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_0225908C
|
|
|
|
thumb_func_start ov12_022590A0
|
|
ov12_022590A0: ; 0x022590A0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
mov r1, #6
|
|
bl sub_02008A78
|
|
cmp r0, #1
|
|
bne _022590C2
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x17
|
|
bl ov12_0226430C
|
|
b _022590CA
|
|
_022590C2:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov12_0225A9B0
|
|
_022590CA:
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_022590A0
|
|
|
|
thumb_func_start ov12_022590D4
|
|
ov12_022590D4: ; 0x022590D4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225A9E0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022590D4
|
|
|
|
thumb_func_start ov12_022590E8
|
|
ov12_022590E8: ; 0x022590E8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AA6C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022590E8
|
|
|
|
thumb_func_start ov12_022590FC
|
|
ov12_022590FC: ; 0x022590FC
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AAE0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022590FC
|
|
|
|
thumb_func_start ov12_02259110
|
|
ov12_02259110: ; 0x02259110
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225ABB8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259110
|
|
|
|
thumb_func_start ov12_02259124
|
|
ov12_02259124: ; 0x02259124
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225ABE8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259124
|
|
|
|
thumb_func_start ov12_02259134
|
|
ov12_02259134: ; 0x02259134
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AC1C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259134
|
|
|
|
thumb_func_start ov12_02259148
|
|
ov12_02259148: ; 0x02259148
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225ACB0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259148
|
|
|
|
thumb_func_start ov12_0225915C
|
|
ov12_0225915C: ; 0x0225915C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225ACE8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_0225915C
|
|
|
|
thumb_func_start ov12_02259170
|
|
ov12_02259170: ; 0x02259170
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AD44
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259170
|
|
|
|
thumb_func_start ov12_02259184
|
|
ov12_02259184: ; 0x02259184
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AD9C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259184
|
|
|
|
thumb_func_start ov12_02259198
|
|
ov12_02259198: ; 0x02259198
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225ADF4
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259198
|
|
|
|
thumb_func_start ov12_022591A8
|
|
ov12_022591A8: ; 0x022591A8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AE48
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022591A8
|
|
|
|
thumb_func_start ov12_022591BC
|
|
ov12_022591BC: ; 0x022591BC
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225AEA0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022591BC
|
|
|
|
thumb_func_start ov12_022591CC
|
|
ov12_022591CC: ; 0x022591CC
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AED8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022591CC
|
|
|
|
thumb_func_start ov12_022591E0
|
|
ov12_022591E0: ; 0x022591E0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225AF74
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022591E0
|
|
|
|
thumb_func_start ov12_022591F4
|
|
ov12_022591F4: ; 0x022591F4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r6, r1, #0
|
|
mov r2, #0x65
|
|
add r6, #0x94
|
|
lsl r2, r2, #2
|
|
str r1, [sp, #4]
|
|
ldrb r1, [r1, r2]
|
|
ldrb r2, [r6, #1]
|
|
str r0, [sp]
|
|
lsl r2, r2, #0x1c
|
|
lsr r2, r2, #0x1c
|
|
bl BattleSystem_GetPartyMon
|
|
add r7, r0, #0
|
|
mov r0, #2
|
|
ldr r1, [r6, #0x1c]
|
|
lsl r0, r0, #0x14
|
|
tst r0, r1
|
|
bne _0225925C
|
|
add r0, r6, #0
|
|
add r5, r6, #0
|
|
str r0, [sp, #8]
|
|
add r0, #0x16
|
|
mov r4, #0
|
|
add r5, #0xe
|
|
str r0, [sp, #8]
|
|
_0225922A:
|
|
add r0, r4, #0
|
|
bl MaskOfFlagNo
|
|
ldrb r1, [r6, #1]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x1c
|
|
tst r0, r1
|
|
bne _02259254
|
|
add r1, r4, #0
|
|
add r0, r7, #0
|
|
add r1, #0x36
|
|
add r2, r5, #0
|
|
bl SetMonData
|
|
ldr r2, [sp, #8]
|
|
add r1, r4, #0
|
|
add r0, r7, #0
|
|
add r1, #0x3a
|
|
add r2, r2, r4
|
|
bl SetMonData
|
|
_02259254:
|
|
add r4, r4, #1
|
|
add r5, r5, #2
|
|
cmp r4, #4
|
|
blt _0225922A
|
|
_0225925C:
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
bl MaskOfFlagNo
|
|
ldr r1, [r6, #8]
|
|
tst r0, r1
|
|
bne _02259278
|
|
add r2, r6, #0
|
|
add r0, r7, #0
|
|
mov r1, #6
|
|
add r2, #0xc
|
|
bl SetMonData
|
|
_02259278:
|
|
add r0, r7, #0
|
|
mov r1, #0xa3
|
|
add r2, r6, #2
|
|
bl SetMonData
|
|
add r0, r7, #0
|
|
mov r1, #0xa0
|
|
add r2, r6, #4
|
|
bl SetMonData
|
|
ldrh r0, [r6, #0x2a]
|
|
cmp r0, #0
|
|
beq _0225929E
|
|
add r2, r6, #0
|
|
add r0, r7, #0
|
|
mov r1, #0x70
|
|
add r2, #0x20
|
|
bl SetMonData
|
|
_0225929E:
|
|
ldrh r0, [r6, #0x28]
|
|
cmp r0, #0
|
|
beq _022592B6
|
|
add r2, r6, #0
|
|
add r0, r7, #0
|
|
mov r1, #0xa
|
|
add r2, #0x24
|
|
bl SetMonData
|
|
add r0, r7, #0
|
|
bl CalcMonLevelAndStats
|
|
_022592B6:
|
|
mov r2, #0x65
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldrb r2, [r6]
|
|
ldr r0, [sp]
|
|
bl ov12_0226430C
|
|
ldr r0, [sp, #4]
|
|
bl ov12_02259928
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_022591F4
|
|
|
|
thumb_func_start ov12_022592D0
|
|
ov12_022592D0: ; 0x022592D0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl BattleSys_GetBattleType
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223A900
|
|
ldr r2, _02259320 ; =0x00000196
|
|
ldrb r1, [r4, r2]
|
|
cmp r1, #0
|
|
bne _02259304
|
|
mov r1, #8
|
|
and r1, r6
|
|
bne _022592FC
|
|
cmp r1, #0
|
|
bne _02259304
|
|
sub r1, r2, #1
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #4
|
|
beq _02259304
|
|
_022592FC:
|
|
ldr r1, _02259324 ; =0xFFFFF300
|
|
mov r2, #0
|
|
bl ov12_02266D98
|
|
_02259304:
|
|
mov r1, #0x65
|
|
add r2, r4, #0
|
|
lsl r1, r1, #2
|
|
add r2, #0x94
|
|
ldrb r1, [r4, r1]
|
|
ldrb r2, [r2]
|
|
add r0, r5, #0
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_02259320: .word 0x00000196
|
|
_02259324: .word 0xFFFFF300
|
|
thumb_func_end ov12_022592D0
|
|
|
|
thumb_func_start ov12_02259328
|
|
ov12_02259328: ; 0x02259328
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x28
|
|
bl ov12_02264EB4
|
|
add r0, r4, #0
|
|
bl ov12_02262014
|
|
mov r1, #0x65
|
|
add r2, r4, #0
|
|
lsl r1, r1, #2
|
|
add r2, #0x94
|
|
ldrb r1, [r4, r1]
|
|
ldrb r2, [r2]
|
|
add r0, r5, #0
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02259328
|
|
|
|
thumb_func_start ov12_02259358
|
|
ov12_02259358: ; 0x02259358
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r1, #0
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
add r4, r7, #0
|
|
ldrb r1, [r7, r1]
|
|
str r0, [sp]
|
|
add r4, #0x94
|
|
bl BattleSys_GetPartySize
|
|
mov r5, #0
|
|
str r0, [sp, #4]
|
|
cmp r0, #0
|
|
ble _022593BA
|
|
_0225937A:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r7, r1]
|
|
ldr r0, [sp]
|
|
add r2, r5, #0
|
|
bl BattleSystem_GetPartyMon
|
|
ldrb r1, [r4, #1]
|
|
add r6, r0, #0
|
|
cmp r1, #0x68
|
|
bne _02259394
|
|
mov r0, #0
|
|
b _0225939C
|
|
_02259394:
|
|
mov r1, #0xa
|
|
mov r2, #0
|
|
bl GetMonData
|
|
_0225939C:
|
|
ldrh r1, [r4, #2]
|
|
cmp r1, #0xd7
|
|
bne _022593A8
|
|
bne _022593B2
|
|
cmp r0, #0x2b
|
|
beq _022593B2
|
|
_022593A8:
|
|
add r0, r6, #0
|
|
mov r1, #0xa0
|
|
add r2, sp, #8
|
|
bl SetMonData
|
|
_022593B2:
|
|
ldr r0, [sp, #4]
|
|
add r5, r5, #1
|
|
cmp r5, r0
|
|
blt _0225937A
|
|
_022593BA:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r7, r1]
|
|
ldrb r2, [r4]
|
|
ldr r0, [sp]
|
|
bl ov12_0226430C
|
|
add r0, r7, #0
|
|
bl ov12_02259928
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02259358
|
|
|
|
thumb_func_start ov12_022593D4
|
|
ov12_022593D4: ; 0x022593D4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B028
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022593D4
|
|
|
|
thumb_func_start ov12_022593E8
|
|
ov12_022593E8: ; 0x022593E8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B060
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022593E8
|
|
|
|
thumb_func_start ov12_022593FC
|
|
ov12_022593FC: ; 0x022593FC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
str r0, [sp, #0x10]
|
|
add r5, r1, #0
|
|
ldr r0, _022594F0 ; =0x00000195
|
|
add r4, r5, #0
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #1
|
|
add r4, #0x94
|
|
tst r0, r1
|
|
beq _02259416
|
|
mov r6, #2
|
|
b _02259418
|
|
_02259416:
|
|
mov r6, #0
|
|
_02259418:
|
|
ldrb r0, [r4, #5]
|
|
lsl r3, r6, #0x18
|
|
lsr r3, r3, #0x18
|
|
str r0, [sp]
|
|
ldrb r0, [r4, #1]
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #8]
|
|
str r0, [sp, #8]
|
|
ldrh r1, [r4, #2]
|
|
ldrb r2, [r4, #4]
|
|
add r0, sp, #0x14
|
|
bl GetMonSpriteCharAndPlttNarcIdsEx
|
|
ldr r0, [r5, #0x20]
|
|
bl sub_02009414
|
|
add r7, r0, #0
|
|
add r2, sp, #0x14
|
|
add r3, r7, #0
|
|
ldmia r2!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r2!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r5, #0x20]
|
|
bl sub_02009324
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_0223A99C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
bl ov12_0223BB94
|
|
add r3, r0, #0
|
|
ldr r0, [r4, #8]
|
|
mov r2, #5
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r6, [sp, #8]
|
|
ldrh r0, [r7, #6]
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r7]
|
|
ldrh r1, [r7, #2]
|
|
bl sub_02014540
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_0223A99C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrh r2, [r7]
|
|
bl ov12_0223BBA8
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_0223A99C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrh r2, [r7, #4]
|
|
bl ov12_0223BBC0
|
|
ldr r0, [r4, #8]
|
|
lsl r2, r6, #0x18
|
|
str r0, [sp]
|
|
ldrh r0, [r4, #2]
|
|
ldrb r1, [r4, #4]
|
|
ldrb r3, [r4, #1]
|
|
lsr r2, r2, #0x18
|
|
bl sub_020708D8
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_0223A99C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
add r2, r6, #0
|
|
bl ov12_0223BBD8
|
|
ldr r0, _022594F0 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r0, [r5, r0]
|
|
bl ov07_02234B5C
|
|
add r2, r0, #0
|
|
ldr r0, [r5, #0x20]
|
|
mov r1, #1
|
|
add r2, r6, r2
|
|
bl sub_020087A4
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl ov12_02259928
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022594F0: .word 0x00000195
|
|
thumb_func_end ov12_022593FC
|
|
|
|
thumb_func_start ov12_022594F4
|
|
ov12_022594F4: ; 0x022594F4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov12_0223B874
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x2e
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_022594F4
|
|
|
|
thumb_func_start ov12_02259514
|
|
ov12_02259514: ; 0x02259514
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r0, #0
|
|
ldr r0, _022595B4 ; =0x00000196
|
|
add r4, r1, #0
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0
|
|
bne _0225959A
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r6, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223A900
|
|
str r0, [sp, #8]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r2, [sp, #8]
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
str r3, [sp, #4]
|
|
bl ov12_02266508
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
cmp r1, r0
|
|
beq _02259586
|
|
add r0, r5, #0
|
|
bl ov12_0223BC38
|
|
bl ov12_02265D74
|
|
_02259586:
|
|
add r0, r4, #0
|
|
add r0, #0x28
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #8]
|
|
bl ov12_02266B34
|
|
add r0, r4, #0
|
|
bl ov12_02262014
|
|
_0225959A:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x2f
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_022595B4: .word 0x00000196
|
|
thumb_func_end ov12_02259514
|
|
|
|
thumb_func_start ov12_022595B8
|
|
ov12_022595B8: ; 0x022595B8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B0A0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022595B8
|
|
|
|
thumb_func_start ov12_022595CC
|
|
ov12_022595CC: ; 0x022595CC
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B0E8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022595CC
|
|
|
|
thumb_func_start ov12_022595E0
|
|
ov12_022595E0: ; 0x022595E0
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r6, r4, #0
|
|
add r5, r0, #0
|
|
add r6, #0x94
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
beq _02259604
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov12_0225B120
|
|
b _02259612
|
|
_02259604:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x32
|
|
bl ov12_0226430C
|
|
_02259612:
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_022595E0
|
|
|
|
thumb_func_start ov12_0225961C
|
|
ov12_0225961C: ; 0x0225961C
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r6, r4, #0
|
|
add r5, r0, #0
|
|
add r6, #0x94
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
beq _02259640
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
bl ov12_0225B16C
|
|
b _0225964E
|
|
_02259640:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x33
|
|
bl ov12_0226430C
|
|
_0225964E:
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225961C
|
|
|
|
thumb_func_start ov12_02259658
|
|
ov12_02259658: ; 0x02259658
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov12_0223A8E4
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223A8EC
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223A938
|
|
add r2, r0, #0
|
|
add r0, r6, #0
|
|
add r1, r7, #0
|
|
bl ov12_0226ADE0
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x34
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02259658
|
|
|
|
thumb_func_start ov12_02259694
|
|
ov12_02259694: ; 0x02259694
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov12_0223A8EC
|
|
bl ov12_0226AE78
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x35
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_02259694
|
|
|
|
thumb_func_start ov12_022596B8
|
|
ov12_022596B8: ; 0x022596B8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r4, r5, #0
|
|
add r4, #0x94
|
|
ldrb r1, [r4, #1]
|
|
add r6, r0, #0
|
|
cmp r1, #0
|
|
ldr r1, _022596FC ; =0x00000196
|
|
bne _022596D8
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #0
|
|
bne _022596E4
|
|
ldrh r1, [r4, #2]
|
|
bl ov12_0223BB28
|
|
b _022596E4
|
|
_022596D8:
|
|
ldrb r1, [r5, r1]
|
|
cmp r1, #0
|
|
beq _022596E4
|
|
ldrh r1, [r4, #2]
|
|
bl ov12_0223BB28
|
|
_022596E4:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022596FC: .word 0x00000196
|
|
thumb_func_end ov12_022596B8
|
|
|
|
thumb_func_start ov12_02259700
|
|
ov12_02259700: ; 0x02259700
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
ldrh r1, [r2, #2]
|
|
add r5, r0, #0
|
|
add r2, r2, #4
|
|
bl ov12_0223BF14
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov12_0225B1A8
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02259700
|
|
|
|
thumb_func_start ov12_02259724
|
|
ov12_02259724: ; 0x02259724
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B200
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259724
|
|
|
|
thumb_func_start ov12_02259738
|
|
ov12_02259738: ; 0x02259738
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225B234
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259738
|
|
|
|
thumb_func_start ov12_02259748
|
|
ov12_02259748: ; 0x02259748
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225B26C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259748
|
|
|
|
thumb_func_start ov12_02259758
|
|
ov12_02259758: ; 0x02259758
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl ov12_0225B2A4
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259758
|
|
|
|
thumb_func_start ov12_02259768
|
|
ov12_02259768: ; 0x02259768
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r4, r6, #0
|
|
add r4, #0x94
|
|
ldrh r1, [r4, #2]
|
|
add r5, r0, #0
|
|
add r2, r4, #4
|
|
bl ov12_0223BF14
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl ov12_0225B2F8
|
|
add r0, r6, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_02259768
|
|
|
|
thumb_func_start ov12_0225978C
|
|
ov12_0225978C: ; 0x0225978C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
ldrh r1, [r2, #2]
|
|
add r5, r0, #0
|
|
add r2, r2, #4
|
|
bl ov12_0223BF14
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov12_0225B34C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225978C
|
|
|
|
thumb_func_start ov12_022597B0
|
|
ov12_022597B0: ; 0x022597B0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B3A0
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022597B0
|
|
|
|
thumb_func_start ov12_022597C4
|
|
ov12_022597C4: ; 0x022597C4
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B3D4
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022597C4
|
|
|
|
thumb_func_start ov12_022597D8
|
|
ov12_022597D8: ; 0x022597D8
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B434
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_022597D8
|
|
|
|
thumb_func_start ov12_022597EC
|
|
ov12_022597EC: ; 0x022597EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #0x10]
|
|
add r1, #0x94
|
|
str r1, [sp, #0x10]
|
|
ldr r2, [sp, #0x10]
|
|
mov r7, #0
|
|
ldrh r1, [r1, #2]
|
|
str r0, [sp]
|
|
add r2, #8
|
|
str r7, [sp, #8]
|
|
bl ov12_0223BF14
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x80
|
|
tst r0, r1
|
|
beq _02259824
|
|
ldr r1, [sp, #0x10]
|
|
ldr r0, [sp]
|
|
ldr r1, [r1, #4]
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
bl ov12_0223BD20
|
|
b _022598DC
|
|
_02259824:
|
|
add r0, r7, #0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetMaxBattlers
|
|
cmp r0, #0
|
|
ble _022598B2
|
|
_02259832:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #0xc]
|
|
bl BattleSys_GetParty
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
bl GetPartyCount
|
|
cmp r0, #0
|
|
ble _022598A0
|
|
_02259846:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
bl GetPartyMonByIndex
|
|
mov r1, #5
|
|
mov r2, #0
|
|
add r4, r0, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _02259894
|
|
add r0, r4, #0
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _02259894
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #0xc]
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
beq _02259888
|
|
add r0, r4, #0
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
ldr r1, [sp, #8]
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
b _02259894
|
|
_02259888:
|
|
add r0, r4, #0
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r7, r7, r0
|
|
_02259894:
|
|
add r0, r6, #0
|
|
add r5, r5, #1
|
|
bl GetPartyCount
|
|
cmp r5, r0
|
|
blt _02259846
|
|
_022598A0:
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetMaxBattlers
|
|
ldr r1, [sp, #0xc]
|
|
cmp r1, r0
|
|
blt _02259832
|
|
_022598B2:
|
|
cmp r7, #0
|
|
bne _022598C6
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _022598C6
|
|
ldr r0, [sp]
|
|
mov r1, #3
|
|
bl ov12_0223BD20
|
|
b _022598DC
|
|
_022598C6:
|
|
cmp r7, #0
|
|
bne _022598D4
|
|
ldr r0, [sp]
|
|
mov r1, #2
|
|
bl ov12_0223BD20
|
|
b _022598DC
|
|
_022598D4:
|
|
ldr r0, [sp]
|
|
mov r1, #1
|
|
bl ov12_0223BD20
|
|
_022598DC:
|
|
mov r2, #0x65
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r0, [sp]
|
|
ldrb r2, [r2]
|
|
bl ov12_0226430C
|
|
ldr r0, [sp, #4]
|
|
bl ov12_02259928
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_022597EC
|
|
|
|
thumb_func_start ov12_022598F8
|
|
ov12_022598F8: ; 0x022598F8
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
bl ov12_0223A7D8
|
|
add r6, r0, #0
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
add r0, r6, #0
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x42
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_022598F8
|
|
|
|
thumb_func_start ov12_02259928
|
|
ov12_02259928: ; 0x02259928
|
|
mov r1, #0
|
|
add r0, #0x94
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end ov12_02259928
|
|
|
|
thumb_func_start ov12_02259930
|
|
ov12_02259930: ; 0x02259930
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
add r2, r4, #0
|
|
add r2, #0x94
|
|
bl ov12_0225B454
|
|
add r0, r4, #0
|
|
bl ov12_02259928
|
|
pop {r4, pc}
|
|
thumb_func_end ov12_02259930
|
|
|
|
thumb_func_start ov12_02259944
|
|
ov12_02259944: ; 0x02259944
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #5
|
|
mov r1, #0x18
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
str r4, [r1]
|
|
mov r2, #0
|
|
strb r2, [r1, #0x14]
|
|
strb r2, [r1, #0x15]
|
|
ldr r0, _02259964 ; =ov12_02260668
|
|
strb r2, [r1, #0x16]
|
|
bl CreateSysTask
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02259964: .word ov12_02260668
|
|
thumb_func_end ov12_02259944
|
|
|
|
thumb_func_start ov12_02259968
|
|
ov12_02259968: ; 0x02259968
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x6c
|
|
str r0, [sp, #0x24]
|
|
add r6, r1, #0
|
|
add r5, r2, #0
|
|
bl ov12_0223A8D4
|
|
str r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x24]
|
|
bl BattleSys_GetBattleType
|
|
mov r0, #5
|
|
mov r1, #0x30
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
ldr r0, _02259B8C ; =0x00000195
|
|
strb r2, [r4, #0x12]
|
|
ldrb r0, [r6, r0]
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _022599BE
|
|
mov r0, #2
|
|
strb r0, [r4, #0x13]
|
|
ldr r0, [sp, #0x24]
|
|
bl ov12_0223A8F4
|
|
str r0, [r4, #0xc]
|
|
ldr r1, _02259B8C ; =0x00000195
|
|
ldr r0, [r0]
|
|
ldrb r2, [r6, r1]
|
|
mov r1, #1
|
|
and r2, r1
|
|
add r3, r2, #0
|
|
mov r1, #6
|
|
mul r3, r1
|
|
ldr r1, _02259B90 ; =ov07_022377F4
|
|
mov r2, #0x58
|
|
ldrsh r1, [r1, r3]
|
|
bl sub_0200DDB8
|
|
b _022599E4
|
|
_022599BE:
|
|
ldr r0, [sp, #0x24]
|
|
add r1, r2, #0
|
|
strb r2, [r4, #0x13]
|
|
bl ov12_0223A8F4
|
|
str r0, [r4, #0xc]
|
|
ldr r1, _02259B8C ; =0x00000195
|
|
ldr r0, [r0]
|
|
ldrb r2, [r6, r1]
|
|
mov r1, #1
|
|
and r2, r1
|
|
add r3, r2, #0
|
|
mov r1, #6
|
|
mul r3, r1
|
|
ldr r1, _02259B90 ; =ov07_022377F4
|
|
mov r2, #0x88
|
|
ldrsh r1, [r1, r3]
|
|
bl sub_0200DDB8
|
|
_022599E4:
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r0, r0, #0x1f
|
|
beq _022599F0
|
|
mov r0, #1
|
|
b _022599F2
|
|
_022599F0:
|
|
mov r0, #0
|
|
_022599F2:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1b
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #4]
|
|
str r0, [sp, #8]
|
|
ldrb r2, [r5, #1]
|
|
ldrh r1, [r5, #2]
|
|
ldrb r3, [r4, #0x13]
|
|
lsl r2, r2, #0x1e
|
|
add r0, sp, #0x5c
|
|
lsr r2, r2, #0x1e
|
|
bl GetMonSpriteCharAndPlttNarcIdsEx
|
|
ldr r0, [r5, #4]
|
|
str r0, [sp]
|
|
ldrb r3, [r5, #1]
|
|
ldrh r0, [r5, #2]
|
|
ldrb r2, [r4, #0x13]
|
|
lsl r1, r3, #0x1e
|
|
lsl r3, r3, #0x18
|
|
lsr r1, r1, #0x1e
|
|
lsr r3, r3, #0x1b
|
|
bl sub_020708D8
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
add r1, sp, #0x30
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, #2
|
|
bl sub_020729D8
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
add r1, sp, #0x30
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, #1
|
|
bl sub_020729FC
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, sp, #0x30
|
|
bl sub_02072A20
|
|
mov r3, #0x69
|
|
lsl r3, r3, #2
|
|
ldr r0, [r6, r3]
|
|
sub r3, #0xf
|
|
add r1, sp, #0x30
|
|
ldrh r2, [r5, #2]
|
|
ldrb r3, [r6, r3]
|
|
add r1, #3
|
|
bl sub_02072914
|
|
ldr r1, _02259B8C ; =0x00000195
|
|
mov r0, #6
|
|
ldrb r2, [r6, r1]
|
|
ldr r3, _02259B90 ; =ov07_022377F4
|
|
add r7, r2, #0
|
|
mul r7, r0
|
|
ldr r0, _02259B94 ; =ov07_022377F4 + 2
|
|
mov r2, #2
|
|
ldrsh r0, [r0, r7]
|
|
ldrsh r3, [r3, r7]
|
|
str r0, [sp]
|
|
ldr r0, _02259B98 ; =ov07_022377F4 + 4
|
|
ldrsh r0, [r0, r7]
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #8]
|
|
add r0, sp, #0x30
|
|
ldrsb r2, [r0, r2]
|
|
str r2, [sp, #0xc]
|
|
mov r2, #1
|
|
ldrsb r2, [r0, r2]
|
|
str r2, [sp, #0x10]
|
|
ldrb r0, [r0]
|
|
add r2, sp, #0x5c
|
|
str r0, [sp, #0x14]
|
|
sub r0, r1, #1
|
|
ldrb r0, [r6, r0]
|
|
ldr r1, [sp, #0x28]
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x30
|
|
add r0, #3
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp, #0x24]
|
|
bl ov12_022612A4
|
|
str r0, [r6, #0x20]
|
|
ldr r0, [r6, #0x20]
|
|
str r0, [r4, #8]
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r0, #2
|
|
bne _02259AD2
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r1, #8
|
|
ldr r0, [r4, #8]
|
|
add r2, r1, #0
|
|
bl sub_020090B4
|
|
_02259AD2:
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r0, #2
|
|
bne _02259B12
|
|
ldr r0, [sp, #0x24]
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x40
|
|
tst r0, r1
|
|
beq _02259B12
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl sub_02008A78
|
|
add r7, r0, #0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x2e
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
mov r2, #0xc0
|
|
bl sub_020087A4
|
|
add r2, r7, #0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
sub r2, #0x88
|
|
bl sub_020087A4
|
|
strh r7, [r4, #0x14]
|
|
b _02259B1E
|
|
_02259B12:
|
|
ldr r0, _02259B8C ; =0x00000195
|
|
ldrb r0, [r6, r0]
|
|
lsl r1, r0, #2
|
|
ldr r0, _02259B9C ; =ov07_022377DC
|
|
ldrsh r0, [r0, r1]
|
|
strh r0, [r4, #0x14]
|
|
_02259B1E:
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [r4]
|
|
str r6, [r4, #4]
|
|
ldrb r0, [r5]
|
|
strb r0, [r4, #0x10]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r6, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r4, #0x11]
|
|
ldrh r1, [r5, #2]
|
|
strh r1, [r4, #0x16]
|
|
ldrb r1, [r5, #1]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x1b
|
|
add r1, r4, #0
|
|
add r1, #0x2c
|
|
strb r2, [r1]
|
|
ldr r1, [r5, #8]
|
|
str r1, [r4, #0x18]
|
|
ldrb r0, [r6, r0]
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, [r5, #4]
|
|
bl GetNatureFromPersonality
|
|
str r0, [r4, #0x24]
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r0, r0, #0x1f
|
|
str r0, [r4, #0x28]
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r0, #2
|
|
bne _02259B78
|
|
ldr r0, [sp, #0x24]
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x40
|
|
tst r0, r1
|
|
beq _02259B78
|
|
ldr r0, _02259BA0 ; =ov12_0225B7B8
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
b _02259B82
|
|
_02259B78:
|
|
ldr r0, _02259BA4 ; =ov12_0225B494
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
_02259B82:
|
|
mov r0, #1
|
|
bl sub_02005B58
|
|
add sp, #0x6c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02259B8C: .word 0x00000195
|
|
_02259B90: .word ov07_022377F4
|
|
_02259B94: .word ov07_022377F4 + 2
|
|
_02259B98: .word ov07_022377F4 + 4
|
|
_02259B9C: .word ov07_022377DC
|
|
_02259BA0: .word ov12_0225B7B8
|
|
_02259BA4: .word ov12_0225B494
|
|
thumb_func_end ov12_02259968
|
|
|
|
thumb_func_start ov12_02259BA8
|
|
ov12_02259BA8: ; 0x02259BA8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
add r6, r1, #0
|
|
add r5, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r0, #5
|
|
mov r1, #0x9c
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
ldr r0, _02259D3C ; =0x00000195
|
|
ldrb r1, [r6, r0]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _02259BCE
|
|
mov r1, #2
|
|
b _02259BD0
|
|
_02259BCE:
|
|
mov r1, #0
|
|
_02259BD0:
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r0, r0, #0x1f
|
|
beq _02259BE2
|
|
mov r0, #1
|
|
b _02259BE4
|
|
_02259BE2:
|
|
mov r0, #0
|
|
_02259BE4:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldrb r0, [r5, #1]
|
|
add r3, r4, #0
|
|
add r3, #0x84
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1b
|
|
str r0, [sp, #4]
|
|
ldr r0, [r5, #4]
|
|
str r0, [sp, #8]
|
|
ldrb r2, [r5, #1]
|
|
add r0, r4, #0
|
|
ldrh r1, [r5, #2]
|
|
lsl r2, r2, #0x1e
|
|
ldrb r3, [r3]
|
|
add r0, #0x14
|
|
lsr r2, r2, #0x1e
|
|
bl GetMonSpriteCharAndPlttNarcIdsEx
|
|
ldr r0, [r5, #4]
|
|
add r2, r4, #0
|
|
str r0, [sp]
|
|
ldrb r3, [r5, #1]
|
|
add r2, #0x84
|
|
ldrh r0, [r5, #2]
|
|
lsl r1, r3, #0x1e
|
|
lsl r3, r3, #0x18
|
|
ldrb r2, [r2]
|
|
lsr r1, r1, #0x1e
|
|
lsr r3, r3, #0x1b
|
|
bl sub_020708D8
|
|
add r1, r4, #0
|
|
add r1, #0x85
|
|
strb r0, [r1]
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
add r1, r4, #0
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, #0x90
|
|
bl sub_020729D8
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
add r1, r4, #0
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, #0x91
|
|
bl sub_020729FC
|
|
mov r0, #0x69
|
|
lsl r0, r0, #2
|
|
add r1, r4, #0
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r6, r0]
|
|
add r1, #0x93
|
|
bl sub_02072A20
|
|
add r0, r6, #0
|
|
bl ov12_02261284
|
|
str r7, [r4]
|
|
add r0, r4, #0
|
|
str r6, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x83
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x80
|
|
strb r1, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r2, [r6, r0]
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
strb r2, [r1]
|
|
add r1, r4, #0
|
|
ldrh r2, [r5, #2]
|
|
add r1, #0x86
|
|
add r0, r0, #1
|
|
strh r2, [r1]
|
|
ldrb r1, [r5, #1]
|
|
lsl r1, r1, #0x18
|
|
lsr r2, r1, #0x1b
|
|
add r1, r4, #0
|
|
add r1, #0x97
|
|
strb r2, [r1]
|
|
ldrb r1, [r6, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #8]
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0xc]
|
|
add r0, #0x8c
|
|
strb r1, [r0]
|
|
ldr r0, [r5, #4]
|
|
bl GetNatureFromPersonality
|
|
add r1, r4, #0
|
|
add r1, #0x8d
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x10]
|
|
add r0, #0x8e
|
|
strh r1, [r0]
|
|
ldrb r0, [r5, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1f
|
|
add r0, r4, #0
|
|
add r0, #0x92
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x94
|
|
strh r1, [r0]
|
|
mov r0, #1
|
|
bl sub_02005B58
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
add r5, r0, #0
|
|
ldrb r1, [r6, r1]
|
|
add r0, r7, #0
|
|
bl ov12_0223C140
|
|
cmp r0, #0xff
|
|
beq _02259D2C
|
|
mov r0, #2
|
|
tst r0, r5
|
|
beq _02259D1E
|
|
mov r0, #8
|
|
tst r0, r5
|
|
bne _02259D1E
|
|
ldr r0, _02259D3C ; =0x00000195
|
|
ldrb r0, [r6, r0]
|
|
cmp r0, #3
|
|
bls _02259D1E
|
|
ldr r0, _02259D40 ; =ov12_0225B960
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02259D1E:
|
|
ldr r0, _02259D44 ; =ov12_0225BE38
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02259D2C:
|
|
ldr r0, _02259D40 ; =ov12_0225B960
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02259D3C: .word 0x00000195
|
|
_02259D40: .word ov12_0225B960
|
|
_02259D44: .word ov12_0225BE38
|
|
thumb_func_end ov12_02259BA8
|
|
|
|
thumb_func_start ov12_02259D48
|
|
ov12_02259D48: ; 0x02259D48
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
add r4, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r0, #5
|
|
mov r1, #0x9c
|
|
bl AllocFromHeap
|
|
add r5, r0, #0
|
|
add r1, r5, #0
|
|
mov r0, #0
|
|
add r1, #0x83
|
|
strb r0, [r1]
|
|
ldr r2, _02259F24 ; =0x00000195
|
|
ldr r1, [sp, #0x10]
|
|
ldrb r2, [r1, r2]
|
|
mov r1, #1
|
|
tst r1, r2
|
|
beq _02259D7E
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
add r0, #0x84
|
|
strb r1, [r0]
|
|
b _02259D84
|
|
_02259D7E:
|
|
add r1, r5, #0
|
|
add r1, #0x84
|
|
strb r0, [r1]
|
|
_02259D84:
|
|
ldrb r0, [r4, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r0, r0, #0x1f
|
|
beq _02259D90
|
|
mov r0, #1
|
|
b _02259D92
|
|
_02259D90:
|
|
mov r0, #0
|
|
_02259D92:
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
str r0, [sp]
|
|
ldrb r0, [r4, #1]
|
|
add r3, r5, #0
|
|
add r3, #0x84
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1b
|
|
str r0, [sp, #4]
|
|
ldr r0, [r4, #4]
|
|
str r0, [sp, #8]
|
|
ldrb r2, [r4, #1]
|
|
add r0, r5, #0
|
|
ldrh r1, [r4, #2]
|
|
lsl r2, r2, #0x1e
|
|
ldrb r3, [r3]
|
|
add r0, #0x14
|
|
lsr r2, r2, #0x1e
|
|
bl GetMonSpriteCharAndPlttNarcIdsEx
|
|
ldr r0, [r4, #4]
|
|
add r2, r5, #0
|
|
str r0, [sp]
|
|
ldrb r3, [r4, #1]
|
|
add r2, #0x84
|
|
ldrh r0, [r4, #2]
|
|
lsl r1, r3, #0x1e
|
|
lsl r3, r3, #0x18
|
|
ldrb r2, [r2]
|
|
lsr r1, r1, #0x1e
|
|
lsr r3, r3, #0x1b
|
|
bl sub_020708D8
|
|
add r1, r5, #0
|
|
add r1, #0x85
|
|
strb r0, [r1]
|
|
mov r1, #0x69
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
ldrh r2, [r4, #2]
|
|
add r1, #0x90
|
|
bl sub_020729D8
|
|
mov r1, #0x69
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
ldrh r2, [r4, #2]
|
|
add r1, #0x91
|
|
bl sub_020729FC
|
|
mov r1, #0x69
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldr r0, [r0, r1]
|
|
add r1, r5, #0
|
|
ldrh r2, [r4, #2]
|
|
add r1, #0x93
|
|
bl sub_02072A20
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_02261284
|
|
ldr r0, [sp, #0xc]
|
|
str r0, [r5]
|
|
ldr r0, [sp, #0x10]
|
|
str r0, [r5, #4]
|
|
add r0, r5, #0
|
|
ldrb r1, [r4]
|
|
add r0, #0x80
|
|
strb r1, [r0]
|
|
mov r1, #0x65
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r0, r1]
|
|
add r0, r5, #0
|
|
add r0, #0x81
|
|
strb r2, [r0]
|
|
add r0, r5, #0
|
|
ldrh r2, [r4, #2]
|
|
add r0, #0x86
|
|
add r1, r1, #1
|
|
strh r2, [r0]
|
|
ldrb r0, [r4, #1]
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x1b
|
|
add r0, r5, #0
|
|
add r0, #0x97
|
|
strb r2, [r0]
|
|
ldr r0, [sp, #0x10]
|
|
ldrb r1, [r0, r1]
|
|
add r0, r5, #0
|
|
add r0, #0x82
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r4, #8]
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r4, #0xc]
|
|
add r0, #0x8c
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
bl GetNatureFromPersonality
|
|
add r1, r5, #0
|
|
add r1, #0x8d
|
|
strb r0, [r1]
|
|
add r0, r5, #0
|
|
ldr r1, [r4, #0x10]
|
|
add r0, #0x8e
|
|
strh r1, [r0]
|
|
ldrb r0, [r4, #1]
|
|
lsl r0, r0, #0x1d
|
|
lsr r1, r0, #0x1f
|
|
add r0, r5, #0
|
|
add r0, #0x92
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r4, #0x14]
|
|
add r0, #0x94
|
|
strh r1, [r0]
|
|
add r1, r5, #0
|
|
mov r0, #0
|
|
add r1, #0x96
|
|
strb r0, [r1]
|
|
add r1, r5, #0
|
|
ldr r2, [r4, #0x4c]
|
|
add r1, #0x98
|
|
str r2, [r1]
|
|
mov ip, r4
|
|
add r7, r5, #0
|
|
add r6, r4, #0
|
|
add r1, r5, #0
|
|
_02259EA4:
|
|
mov r2, ip
|
|
add r2, #0x50
|
|
ldrh r3, [r2]
|
|
add r2, r7, #0
|
|
add r2, #0x40
|
|
strh r3, [r2]
|
|
add r2, r4, r0
|
|
add r2, #0x58
|
|
ldrb r3, [r2]
|
|
add r2, r5, r0
|
|
add r2, #0x48
|
|
strb r3, [r2]
|
|
add r2, r4, r0
|
|
add r2, #0x5c
|
|
ldrb r3, [r2]
|
|
add r2, r5, r0
|
|
add r2, #0x4c
|
|
strb r3, [r2]
|
|
add r2, r4, r0
|
|
add r2, #0x60
|
|
ldrb r3, [r2]
|
|
add r2, r5, r0
|
|
add r2, #0x50
|
|
strb r3, [r2]
|
|
ldr r2, [r6, #0x64]
|
|
add r0, r0, #1
|
|
str r2, [r1, #0x54]
|
|
mov r2, ip
|
|
add r2, r2, #2
|
|
mov ip, r2
|
|
add r7, r7, #2
|
|
add r6, r6, #4
|
|
add r1, r1, #4
|
|
cmp r0, #4
|
|
blt _02259EA4
|
|
mov r2, #0x65
|
|
ldr r1, [sp, #0x10]
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [sp, #0xc]
|
|
bl ov12_0223C140
|
|
cmp r0, #0xff
|
|
beq _02259F06
|
|
add r1, r5, #0
|
|
add r1, #0x8c
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _02259F14
|
|
_02259F06:
|
|
ldr r0, _02259F28 ; =ov12_0225C18C
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02259F14:
|
|
ldr r0, _02259F2C ; =ov12_0225C6C8
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02259F24: .word 0x00000195
|
|
_02259F28: .word ov12_0225C18C
|
|
_02259F2C: .word ov12_0225C6C8
|
|
thumb_func_end ov12_02259D48
|
|
|
|
thumb_func_start ov12_02259F30
|
|
ov12_02259F30: ; 0x02259F30
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
mov r0, #5
|
|
mov r1, #0x78
|
|
str r2, [sp, #8]
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
add r7, r4, #0
|
|
str r0, [r4]
|
|
ldr r0, [sp, #4]
|
|
str r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
str r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x68
|
|
strb r1, [r0]
|
|
mov r1, #0x65
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r0, r1]
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
strb r2, [r0]
|
|
ldr r0, [sp, #4]
|
|
add r1, r1, #1
|
|
ldrb r1, [r0, r1]
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
strb r1, [r0]
|
|
add r1, r4, #0
|
|
mov r0, #0
|
|
add r1, #0x6b
|
|
strb r0, [r1]
|
|
ldr r1, [sp, #8]
|
|
ldrb r2, [r1, #1]
|
|
add r1, r4, #0
|
|
add r1, #0x6c
|
|
strb r2, [r1]
|
|
ldr r1, [sp, #8]
|
|
ldrh r2, [r1, #2]
|
|
add r1, r4, #0
|
|
add r1, #0x6e
|
|
strh r2, [r1]
|
|
ldr r1, [sp, #8]
|
|
add r2, r4, #0
|
|
ldr r1, [r1, #4]
|
|
str r1, [r4, #0x70]
|
|
ldr r1, [sp, #8]
|
|
ldr r1, [r1, #0x2c]
|
|
str r1, [r4, #0x74]
|
|
ldr r1, [sp, #8]
|
|
mov ip, r1
|
|
_02259FA4:
|
|
mov r3, ip
|
|
ldrh r3, [r3, #8]
|
|
strh r3, [r7, #0x28]
|
|
ldr r3, [sp, #8]
|
|
add r7, r7, #2
|
|
add r6, r3, r0
|
|
add r3, r4, r0
|
|
ldrb r5, [r6, #0x10]
|
|
add r3, #0x30
|
|
strb r5, [r3]
|
|
add r3, r4, r0
|
|
ldrb r5, [r6, #0x14]
|
|
add r3, #0x34
|
|
strb r5, [r3]
|
|
add r3, r4, r0
|
|
ldrb r5, [r6, #0x18]
|
|
add r3, #0x38
|
|
add r0, r0, #1
|
|
strb r5, [r3]
|
|
ldr r3, [r1, #0x1c]
|
|
add r1, r1, #4
|
|
str r3, [r2, #0x3c]
|
|
mov r3, ip
|
|
add r3, r3, #2
|
|
add r2, r2, #4
|
|
mov ip, r3
|
|
cmp r0, #4
|
|
blt _02259FA4
|
|
mov r2, #0x65
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [sp]
|
|
bl ov12_0223C140
|
|
cmp r0, #0xff
|
|
beq _02259FF4
|
|
ldr r1, [r4, #0x74]
|
|
cmp r0, r1
|
|
beq _0225A002
|
|
_02259FF4:
|
|
ldr r0, _0225A010 ; =ov12_0225C9BC
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225A002:
|
|
ldr r0, _0225A014 ; =ov12_0225CC58
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A010: .word ov12_0225C9BC
|
|
_0225A014: .word ov12_0225CC58
|
|
thumb_func_end ov12_02259F30
|
|
|
|
thumb_func_start ov12_0225A018
|
|
ov12_0225A018: ; 0x0225A018
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r7, [r4]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [r4, #4]
|
|
ldrb r0, [r6]
|
|
strb r0, [r4, #8]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r4, #9]
|
|
ldrb r0, [r5, r0]
|
|
mov r1, #0
|
|
add r3, r1, #0
|
|
strb r0, [r4, #0xa]
|
|
strb r1, [r4, #0xb]
|
|
ldrb r0, [r6, #1]
|
|
strb r0, [r4, #0xc]
|
|
ldrh r0, [r6, #2]
|
|
lsl r2, r0, #1
|
|
ldr r0, _0225A074 ; =ov12_0226D15A
|
|
ldrh r0, [r0, r2]
|
|
mov r2, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
bl sub_020090B4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
mov r2, #1
|
|
bl sub_020087A4
|
|
ldr r0, _0225A078 ; =ov12_0225CDB8
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A074: .word ov12_0226D15A
|
|
_0225A078: .word ov12_0225CDB8
|
|
thumb_func_end ov12_0225A018
|
|
|
|
thumb_func_start ov12_0225A07C
|
|
ov12_0225A07C: ; 0x0225A07C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x50
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x24
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r2, #0
|
|
ldr r0, _0225A288 ; =0x00000195
|
|
strb r2, [r4, #0x12]
|
|
ldrb r0, [r5, r0]
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _0225A0C4
|
|
mov r0, #2
|
|
strb r0, [r4, #0x13]
|
|
add r0, r6, #0
|
|
bl ov12_0223A8F4
|
|
str r0, [r4, #8]
|
|
ldr r1, _0225A288 ; =0x00000195
|
|
ldr r0, [r0]
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #1
|
|
and r1, r2
|
|
mov r2, #6
|
|
mul r2, r1
|
|
ldr r1, _0225A28C ; =ov07_022377F4
|
|
ldrsh r1, [r1, r2]
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
b _0225A0E8
|
|
_0225A0C4:
|
|
add r0, r6, #0
|
|
add r1, r2, #0
|
|
strb r2, [r4, #0x13]
|
|
bl ov12_0223A8F4
|
|
str r0, [r4, #8]
|
|
ldr r1, _0225A288 ; =0x00000195
|
|
ldr r0, [r0]
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #1
|
|
and r1, r2
|
|
mov r2, #6
|
|
mul r2, r1
|
|
ldr r1, _0225A28C ; =ov07_022377F4
|
|
ldrsh r1, [r1, r2]
|
|
mov r2, #0x88
|
|
bl sub_0200DDB8
|
|
_0225A0E8:
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
bne _0225A10A
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _0225A112
|
|
ldr r0, _0225A288 ; =0x00000195
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
beq _0225A112
|
|
_0225A10A:
|
|
ldr r0, _0225A288 ; =0x00000195
|
|
ldrb r0, [r5, r0]
|
|
str r0, [sp, #0x10]
|
|
b _0225A11C
|
|
_0225A112:
|
|
ldr r0, _0225A288 ; =0x00000195
|
|
ldrb r1, [r5, r0]
|
|
mov r0, #1
|
|
and r0, r1
|
|
str r0, [sp, #0x10]
|
|
_0225A11C:
|
|
mov r1, #0x65
|
|
ldrh r2, [r7, #2]
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
lsl r2, r2, #0x18
|
|
add r0, r6, #0
|
|
lsr r2, r2, #0x18
|
|
bl ov12_02261EF0
|
|
strh r0, [r7, #2]
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #0x20]
|
|
mov r0, #0
|
|
str r0, [sp, #0x1c]
|
|
ldrb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl ov12_0223C140
|
|
cmp r0, #0xff
|
|
beq _0225A166
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _0225A162
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #8
|
|
tst r0, r1
|
|
bne _0225A162
|
|
mov r0, #0
|
|
str r0, [sp, #0x1c]
|
|
b _0225A166
|
|
_0225A162:
|
|
mov r0, #1
|
|
str r0, [sp, #0x1c]
|
|
_0225A166:
|
|
ldr r1, [sp, #0x10]
|
|
mov r0, #6
|
|
mul r0, r1
|
|
ldr r1, _0225A28C ; =ov07_022377F4
|
|
ldr r3, _0225A288 ; =0x00000195
|
|
ldrsh r1, [r1, r0]
|
|
str r1, [sp, #0x14]
|
|
ldr r1, _0225A290 ; =ov07_022377F4 + 2
|
|
ldrsh r0, [r1, r0]
|
|
ldr r1, [sp, #0x10]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x14]
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r7, #2]
|
|
ldrb r3, [r5, r3]
|
|
add r0, r6, #0
|
|
bl ov12_02261B2C
|
|
str r0, [r5, #0x18]
|
|
str r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r0, #0
|
|
bne _0225A23A
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0
|
|
beq _0225A1E8
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0x20
|
|
beq _0225A1E8
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
cmp r0, r1
|
|
beq _0225A1E8
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
cmp r0, r1
|
|
beq _0225A1E8
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
lsl r1, r1, #0xa
|
|
cmp r0, r1
|
|
beq _0225A1E8
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
cmp r0, r1
|
|
bne _0225A23A
|
|
_0225A1E8:
|
|
add r0, r6, #0
|
|
bl ov12_0223A8D4
|
|
str r0, [sp, #0x24]
|
|
ldrh r0, [r7, #2]
|
|
ldrb r1, [r4, #0x13]
|
|
add r2, sp, #0x28
|
|
bl sub_02070D84
|
|
ldr r1, [sp, #0x28]
|
|
add r0, sp, #0x28
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [sp, #0x3c]
|
|
ldr r2, [sp, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldr r1, [sp, #0x30]
|
|
add r3, sp, #0x40
|
|
strh r1, [r0, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #0x1e]
|
|
mov r0, #6
|
|
mul r0, r2
|
|
ldr r2, _0225A294 ; =ov07_022377F4 + 4
|
|
strb r1, [r3, #8]
|
|
ldrsh r0, [r2, r0]
|
|
str r1, [sp, #0x4c]
|
|
str r0, [sp]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
add r1, r3, #0
|
|
ldr r0, [sp, #0x24]
|
|
ldr r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x18]
|
|
bl sub_020085EC
|
|
str r0, [r4, #4]
|
|
b _0225A23E
|
|
_0225A23A:
|
|
mov r0, #0
|
|
str r0, [r4, #4]
|
|
_0225A23E:
|
|
ldr r0, [sp, #0x10]
|
|
lsl r1, r0, #2
|
|
ldr r0, _0225A298 ; =ov07_022377DC
|
|
ldrsh r0, [r0, r1]
|
|
strh r0, [r4, #0x14]
|
|
str r6, [r4]
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, #0x10]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r4, #0x11]
|
|
ldrb r0, [r5, r0]
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _0225A26A
|
|
cmp r0, #2
|
|
bne _0225A27A
|
|
_0225A26A:
|
|
add r0, r6, #0
|
|
bl ov12_0223A7D4
|
|
mov r1, #3
|
|
mov r2, #2
|
|
mov r3, #0x84
|
|
bl BgSetPosTextAndCommit
|
|
_0225A27A:
|
|
ldr r0, _0225A29C ; =ov12_0225CE28
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x50
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A288: .word 0x00000195
|
|
_0225A28C: .word ov07_022377F4
|
|
_0225A290: .word ov07_022377F4 + 2
|
|
_0225A294: .word ov07_022377F4 + 4
|
|
_0225A298: .word ov07_022377DC
|
|
_0225A29C: .word ov12_0225CE28
|
|
thumb_func_end ov12_0225A07C
|
|
|
|
thumb_func_start ov12_0225A2A0
|
|
ov12_0225A2A0: ; 0x0225A2A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x1c
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r4, #0xa]
|
|
str r6, [r4]
|
|
ldrb r1, [r7]
|
|
strb r1, [r4, #8]
|
|
ldrb r1, [r7, #1]
|
|
str r1, [r4, #0x10]
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r5, r1]
|
|
strb r2, [r4, #9]
|
|
str r5, [r4, #4]
|
|
add r2, r1, #1
|
|
ldrb r3, [r5, r2]
|
|
mov r2, #1
|
|
tst r2, r3
|
|
beq _0225A2DA
|
|
mov r1, #2
|
|
strb r1, [r4, #0xb]
|
|
b _0225A2FC
|
|
_0225A2DA:
|
|
ldrb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl ov12_0223A9F4
|
|
add r2, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r4, #0xb]
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r2, #1]
|
|
add r0, r6, #0
|
|
bl ov12_02261EF0
|
|
mov r1, #0
|
|
bl TrainerClassToBackpicID
|
|
_0225A2FC:
|
|
str r0, [r4, #0xc]
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl ov12_0223C140
|
|
cmp r0, #0xff
|
|
beq _0225A320
|
|
ldr r0, _0225A32C ; =ov12_0225D644
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225A320:
|
|
ldr r0, _0225A330 ; =ov12_0225D138
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A32C: .word ov12_0225D644
|
|
_0225A330: .word ov12_0225D138
|
|
thumb_func_end ov12_0225A2A0
|
|
|
|
thumb_func_start ov12_0225A334
|
|
ov12_0225A334: ; 0x0225A334
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r1, #0xa]
|
|
add r2, r4, #0
|
|
str r5, [r1]
|
|
add r2, #0x94
|
|
ldrb r2, [r2]
|
|
strb r2, [r1, #8]
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r3, [r4, r2]
|
|
add r2, r2, #1
|
|
strb r3, [r1, #9]
|
|
str r4, [r1, #4]
|
|
ldrb r3, [r4, r2]
|
|
mov r2, #1
|
|
tst r2, r3
|
|
beq _0225A36A
|
|
mov r0, #2
|
|
b _0225A36A
|
|
_0225A36A:
|
|
strb r0, [r1, #0xb]
|
|
ldr r0, _0225A378 ; =ov12_0225D890
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225A378: .word ov12_0225D890
|
|
thumb_func_end ov12_0225A334
|
|
|
|
thumb_func_start ov12_0225A37C
|
|
ov12_0225A37C: ; 0x0225A37C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r6, r2, #0
|
|
bl ov12_0223A8D4
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
ldr r1, _0225A400 ; =0x00000195
|
|
strb r0, [r4, #0xa]
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #1
|
|
tst r1, r2
|
|
beq _0225A3A6
|
|
mov r0, #2
|
|
b _0225A3A6
|
|
_0225A3A6:
|
|
strb r0, [r4, #0xb]
|
|
ldr r0, _0225A400 ; =0x00000195
|
|
mov r2, #0
|
|
ldrb r3, [r5, r0]
|
|
mov r0, #1
|
|
add r1, r3, #0
|
|
and r1, r0
|
|
mov r0, #6
|
|
str r2, [sp]
|
|
ldr r2, _0225A404 ; =ov07_022377F4 + 36
|
|
mul r0, r1
|
|
ldrsh r2, [r2, r0]
|
|
str r2, [sp, #4]
|
|
ldr r2, _0225A408 ; =ov07_022377F4 + 38
|
|
ldrsh r0, [r2, r0]
|
|
str r0, [sp, #8]
|
|
ldrh r2, [r6, #2]
|
|
add r0, r7, #0
|
|
bl ov12_02261B2C
|
|
str r0, [r5, #0x18]
|
|
str r0, [r4, #4]
|
|
ldr r3, _0225A400 ; =0x00000195
|
|
ldr r2, [r6, #4]
|
|
ldrb r0, [r5, r3]
|
|
lsl r2, r2, #1
|
|
lsl r0, r0, #0x1f
|
|
lsr r1, r0, #0x1d
|
|
ldr r0, _0225A40C ; =ov07_022377DC
|
|
add r0, r0, r1
|
|
ldrsh r0, [r2, r0]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
strh r0, [r4, #0xc]
|
|
str r7, [r4]
|
|
ldrb r0, [r6]
|
|
strb r0, [r4, #8]
|
|
sub r0, r3, #1
|
|
ldrb r0, [r5, r0]
|
|
strb r0, [r4, #9]
|
|
ldr r0, _0225A410 ; =ov12_0225D990
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A400: .word 0x00000195
|
|
_0225A404: .word ov07_022377F4 + 36
|
|
_0225A408: .word ov07_022377F4 + 38
|
|
_0225A40C: .word ov07_022377DC
|
|
_0225A410: .word ov12_0225D990
|
|
thumb_func_end ov12_0225A37C
|
|
|
|
thumb_func_start ov12_0225A414
|
|
ov12_0225A414: ; 0x0225A414
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r4, r6, #0
|
|
add r4, #0x28
|
|
add r7, r0, #0
|
|
add r5, r2, #0
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl MIi_CpuClearFast
|
|
mov r0, #0x65
|
|
str r7, [r4, #0xc]
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r6, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
add r1, r0, #0
|
|
ldr r0, _0225A4D4 ; =0x00000195
|
|
ldrb r0, [r6, r0]
|
|
bl ov12_02265B64
|
|
add r1, r4, #0
|
|
add r1, #0x25
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x4c
|
|
strb r1, [r0]
|
|
mov r0, #2
|
|
ldrsh r0, [r5, r0]
|
|
str r0, [r4, #0x28]
|
|
ldrh r0, [r5, #4]
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, #1]
|
|
add r0, #0x48
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x19
|
|
lsr r1, r0, #0x1e
|
|
add r0, r4, #0
|
|
add r0, #0x49
|
|
strb r1, [r0]
|
|
mov r1, #0
|
|
str r1, [r4, #0x30]
|
|
ldr r0, [r5, #8]
|
|
str r0, [r4, #0x38]
|
|
ldr r0, [r5, #0xc]
|
|
str r0, [r4, #0x3c]
|
|
add r0, r4, #0
|
|
ldrb r2, [r5, #6]
|
|
add r0, #0x26
|
|
strb r2, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x1b
|
|
lsr r2, r0, #0x1b
|
|
add r0, r4, #0
|
|
add r0, #0x4a
|
|
strb r2, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x1f
|
|
add r0, r4, #0
|
|
add r0, #0x4b
|
|
strb r2, [r0]
|
|
add r0, r4, #0
|
|
ldrb r2, [r5, #0x14]
|
|
add r0, #0x4d
|
|
strb r2, [r0]
|
|
add r0, r4, #0
|
|
ldr r2, [r5, #0x10]
|
|
add r0, #0x27
|
|
strb r2, [r0]
|
|
add r0, r4, #0
|
|
bl ov12_02264F28
|
|
mov r2, #0
|
|
ldr r1, [r4, #0x28]
|
|
add r0, r4, #0
|
|
mvn r2, r2
|
|
bl ov12_0226498C
|
|
mov r2, #0xfa
|
|
ldr r0, _0225A4D8 ; =ov12_0225DA18
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225A4D4: .word 0x00000195
|
|
_0225A4D8: .word ov12_0225DA18
|
|
thumb_func_end ov12_0225A414
|
|
|
|
thumb_func_start ov12_0225A4DC
|
|
ov12_0225A4DC: ; 0x0225A4DC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r4, r5, #0
|
|
add r4, #0x28
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl MIi_CpuClearFast
|
|
mov r0, #0x65
|
|
str r6, [r4, #0xc]
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
strb r1, [r0]
|
|
add r5, #0x94
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x4c
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov12_02264FB0
|
|
mov r2, #0xfa
|
|
ldr r0, _0225A520 ; =ov12_0225DA8C
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r4, #0x10]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225A520: .word ov12_0225DA8C
|
|
thumb_func_end ov12_0225A4DC
|
|
|
|
thumb_func_start ov12_0225A524
|
|
ov12_0225A524: ; 0x0225A524
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #5
|
|
mov r1, #0x3c
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
mov r2, #0x3c
|
|
bl MIi_CpuClearFast
|
|
mov r2, #0
|
|
strb r2, [r4, #0xa]
|
|
strb r2, [r4, #0xb]
|
|
str r5, [r4]
|
|
ldrb r0, [r7]
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
strb r0, [r4, #8]
|
|
ldr r0, [sp]
|
|
add r5, r7, #0
|
|
ldrb r0, [r0, r1]
|
|
add r1, r1, #1
|
|
add r6, r4, #0
|
|
strb r0, [r4, #9]
|
|
ldr r0, [sp]
|
|
ldrb r1, [r0, r1]
|
|
add r0, r4, #0
|
|
add r0, #0x34
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
add r0, #0x28
|
|
str r0, [r4, #4]
|
|
add r0, r4, #0
|
|
ldrb r1, [r7, #1]
|
|
add r0, #0x23
|
|
strb r1, [r0]
|
|
mov r0, #0x24
|
|
ldrsh r0, [r7, r0]
|
|
strh r0, [r4, #0x36]
|
|
ldrh r0, [r7, #0x26]
|
|
strh r0, [r4, #0x38]
|
|
add r0, r7, #0
|
|
add r0, #0x28
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x3a
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
add r0, #0x29
|
|
ldrb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x3b
|
|
strb r1, [r0]
|
|
_0225A596:
|
|
mov r3, #0
|
|
_0225A598:
|
|
add r0, r5, r3
|
|
ldrb r1, [r0, #8]
|
|
add r0, r6, r3
|
|
add r3, r3, #1
|
|
strb r1, [r0, #0x10]
|
|
cmp r3, #6
|
|
blt _0225A598
|
|
add r2, r2, #1
|
|
add r5, r5, #6
|
|
add r6, r6, #6
|
|
cmp r2, #2
|
|
blt _0225A596
|
|
mov r0, #0
|
|
add r3, r0, #0
|
|
_0225A5B4:
|
|
add r2, r7, r0
|
|
ldrb r1, [r2, #8]
|
|
cmp r1, #2
|
|
bne _0225A5C2
|
|
add r1, r4, r0
|
|
strb r3, [r1, #0x1c]
|
|
b _0225A5C8
|
|
_0225A5C2:
|
|
ldrb r2, [r2, #2]
|
|
add r1, r4, r0
|
|
strb r2, [r1, #0x1c]
|
|
_0225A5C8:
|
|
add r0, r0, #1
|
|
cmp r0, #6
|
|
blt _0225A5B4
|
|
mov r3, #0
|
|
add r5, r7, #0
|
|
add r6, r4, #0
|
|
_0225A5D4:
|
|
ldrh r0, [r5, #0x14]
|
|
add r2, r7, r3
|
|
add r5, r5, #2
|
|
strh r0, [r6, #0x24]
|
|
ldrb r1, [r2, #0x1c]
|
|
add r0, r4, r3
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
add r0, r4, r3
|
|
add r2, #0x20
|
|
ldrb r1, [r2]
|
|
add r0, #0x30
|
|
add r3, r3, #1
|
|
add r6, r6, #2
|
|
strb r1, [r0]
|
|
cmp r3, #4
|
|
blt _0225A5D4
|
|
ldr r0, [sp]
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_0225A524
|
|
|
|
thumb_func_start ov12_0225A604
|
|
ov12_0225A604: ; 0x0225A604
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #5
|
|
mov r1, #0x24
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r3, r0, #0
|
|
mov r1, #0x65
|
|
mov r4, #0
|
|
add r0, #0x20
|
|
strb r4, [r0]
|
|
ldr r0, [sp]
|
|
str r5, [r3]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
lsl r1, r1, #2
|
|
add r5, r7, #0
|
|
strb r0, [r3, #0x1c]
|
|
ldr r0, [sp]
|
|
add r6, r3, #0
|
|
ldrb r0, [r0, r1]
|
|
add r1, r1, #1
|
|
strb r0, [r3, #0x1d]
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, r1]
|
|
strb r0, [r3, #0x1e]
|
|
ldr r0, [sp]
|
|
add r0, #0x28
|
|
str r0, [r3, #4]
|
|
ldrb r0, [r7, #1]
|
|
strb r0, [r3, #0x1f]
|
|
_0225A646:
|
|
ldrh r0, [r5, #4]
|
|
add r2, r7, r4
|
|
add r1, r3, r4
|
|
strh r0, [r6, #0xc]
|
|
ldrb r0, [r2, #0xc]
|
|
add r4, r4, #1
|
|
add r5, r5, #2
|
|
strb r0, [r1, #0x14]
|
|
ldrb r0, [r2, #0x10]
|
|
add r6, r6, #2
|
|
cmp r4, #4
|
|
strb r0, [r1, #0x18]
|
|
blt _0225A646
|
|
ldrh r0, [r7, #2]
|
|
add r1, r3, #0
|
|
mov r2, #0
|
|
strh r0, [r3, #0x22]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #4]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225A604
|
|
|
|
thumb_func_start ov12_0225A674
|
|
ov12_0225A674: ; 0x0225A674
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
str r0, [sp]
|
|
add r7, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x34
|
|
add r5, r2, #0
|
|
bl AllocFromHeap
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r6, #0xf]
|
|
ldr r0, [sp]
|
|
str r0, [r6]
|
|
add r0, r7, #0
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
strb r0, [r6, #0xc]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r7, r0]
|
|
add r0, r0, #1
|
|
strb r1, [r6, #0xd]
|
|
ldrb r0, [r7, r0]
|
|
strb r0, [r6, #0xe]
|
|
ldrh r0, [r5, #2]
|
|
strh r0, [r6, #0x30]
|
|
add r0, r7, #0
|
|
add r0, #0x28
|
|
str r0, [r6, #4]
|
|
add r0, r6, #0
|
|
ldrb r1, [r5, #1]
|
|
add r0, #0x32
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
add r1, sp, #4
|
|
bl ov12_0223C1C4
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetMaxBattlers
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetBattleType
|
|
mov r0, #0
|
|
cmp r4, #0
|
|
ble _0225A6F0
|
|
add r1, r6, #0
|
|
_0225A6D6:
|
|
ldrh r2, [r5, #4]
|
|
add r0, r0, #1
|
|
strh r2, [r1, #0x10]
|
|
ldrh r2, [r5, #6]
|
|
strh r2, [r1, #0x12]
|
|
ldrh r2, [r5, #8]
|
|
strh r2, [r1, #0x14]
|
|
ldrh r2, [r5, #0xa]
|
|
add r5, #8
|
|
strh r2, [r1, #0x16]
|
|
add r1, #8
|
|
cmp r0, r4
|
|
blt _0225A6D6
|
|
_0225A6F0:
|
|
ldr r0, [r7, #8]
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225A674
|
|
|
|
thumb_func_start ov12_0225A700
|
|
ov12_0225A700: ; 0x0225A700
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #5
|
|
mov r1, #0x34
|
|
str r2, [sp, #4]
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
mov r0, #5
|
|
mov r1, #0x34
|
|
bl AllocFromHeap
|
|
str r0, [r4, #8]
|
|
mov r0, #5
|
|
mov r1, #0x38
|
|
bl AllocFromHeap
|
|
ldr r1, [r4, #8]
|
|
str r0, [r1, #4]
|
|
mov r0, #5
|
|
bl SaveArray_Party_Alloc
|
|
ldr r1, [r4, #8]
|
|
mov r6, #0
|
|
ldr r1, [r1, #4]
|
|
ldr r3, [sp, #4]
|
|
str r0, [r1]
|
|
strb r6, [r4, #0xe]
|
|
str r5, [r4]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #0x65
|
|
ldrb r0, [r0]
|
|
lsl r1, r1, #2
|
|
add r5, r4, #0
|
|
strb r0, [r4, #0xc]
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, r1]
|
|
add r1, r1, #1
|
|
strb r0, [r4, #0xd]
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, r1]
|
|
strb r0, [r4, #0xf]
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #1]
|
|
strb r0, [r4, #0x14]
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #2]
|
|
strb r0, [r4, #0x15]
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #3]
|
|
strb r0, [r4, #0x16]
|
|
_0225A76A:
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [r4, #8]
|
|
add r7, r0, r6
|
|
ldrb r0, [r7, #4]
|
|
add r1, r1, r6
|
|
mov r2, #0
|
|
strb r0, [r1, #0xc]
|
|
_0225A778:
|
|
add r0, r3, r2
|
|
ldrb r1, [r0, #8]
|
|
add r0, r5, r2
|
|
add r2, r2, #1
|
|
strb r1, [r0, #0x18]
|
|
cmp r2, #6
|
|
blt _0225A778
|
|
add r7, #0x20
|
|
ldrb r1, [r7]
|
|
add r0, r4, r6
|
|
add r0, #0x30
|
|
add r6, r6, #1
|
|
strb r1, [r0]
|
|
add r3, r3, #6
|
|
add r5, r5, #6
|
|
cmp r6, #4
|
|
blt _0225A76A
|
|
ldr r0, [sp]
|
|
add r1, r4, #0
|
|
ldr r0, [r0, #0xc]
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225A700
|
|
|
|
thumb_func_start ov12_0225A7AC
|
|
ov12_0225A7AC: ; 0x0225A7AC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
str r1, [sp]
|
|
mov r0, #5
|
|
mov r1, #0x34
|
|
add r7, r2, #0
|
|
bl AllocFromHeap
|
|
add r2, r0, #0
|
|
mov r3, #0
|
|
strb r3, [r2, #0xa]
|
|
str r4, [r2]
|
|
ldrb r0, [r7]
|
|
add r5, r7, #0
|
|
add r6, r2, #0
|
|
strb r0, [r2, #8]
|
|
ldrb r0, [r7, #1]
|
|
strb r0, [r2, #9]
|
|
ldrb r0, [r7, #2]
|
|
strb r0, [r2, #0xb]
|
|
ldr r0, [r7, #0x20]
|
|
str r0, [r2, #0x10]
|
|
ldrb r0, [r7, #3]
|
|
strb r0, [r2, #0x16]
|
|
add r0, r7, #0
|
|
strh r3, [r2, #0x14]
|
|
add r0, #0x24
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, #0x18]
|
|
_0225A7E6:
|
|
add r0, r7, r3
|
|
ldrb r1, [r0, #4]
|
|
add r0, r2, r3
|
|
mov r4, #0
|
|
strb r1, [r0, #0xc]
|
|
_0225A7F0:
|
|
add r0, r5, r4
|
|
ldrb r1, [r0, #8]
|
|
add r0, r6, r4
|
|
add r4, r4, #1
|
|
strb r1, [r0, #0x1c]
|
|
cmp r4, #6
|
|
blt _0225A7F0
|
|
add r3, r3, #1
|
|
add r5, r5, #6
|
|
add r6, r6, #6
|
|
cmp r3, #4
|
|
blt _0225A7E6
|
|
ldr r0, [sp]
|
|
add r1, r2, #0
|
|
ldr r0, [r0, #0x10]
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225A7AC
|
|
|
|
thumb_func_start ov12_0225A818
|
|
ov12_0225A818: ; 0x0225A818
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x1c
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xe]
|
|
str r6, [r1]
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #0xc]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
strb r0, [r1, #0xd]
|
|
add r0, r5, #0
|
|
add r0, #0x28
|
|
str r0, [r1, #4]
|
|
ldrh r0, [r4, #2]
|
|
str r0, [r1, #0x10]
|
|
ldrb r0, [r4, #1]
|
|
strb r0, [r1, #0xf]
|
|
ldr r0, [r4, #4]
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [r4, #8]
|
|
str r0, [r1, #0x14]
|
|
ldr r0, [r5, #0x14]
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225A818
|
|
|
|
thumb_func_start ov12_0225A85C
|
|
ov12_0225A85C: ; 0x0225A85C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
add r5, r2, #0
|
|
bl ov12_0223A934
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r6, [r4]
|
|
ldrb r0, [r5]
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r7, r1]
|
|
strb r0, [r4, #5]
|
|
ldrh r2, [r5, #2]
|
|
lsl r0, r2, #1
|
|
add r2, r2, r0
|
|
add r0, sp, #4
|
|
strh r2, [r0, #2]
|
|
mov r2, #2
|
|
strb r2, [r0, #1]
|
|
ldrb r0, [r5, #1]
|
|
ldrb r1, [r7, r1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [sp, #8]
|
|
add r0, r6, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r6, #0
|
|
add r2, sp, #4
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225A8C0 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225A8C0: .word ov12_022605D0
|
|
thumb_func_end ov12_0225A85C
|
|
|
|
thumb_func_start ov12_0225A8C4
|
|
ov12_0225A8C4: ; 0x0225A8C4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
bl ov12_0223A930
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
str r5, [r4]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
add r2, r7, #0
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225A910 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225A910: .word ov12_022605D0
|
|
thumb_func_end ov12_0225A8C4
|
|
|
|
thumb_func_start ov12_0225A914
|
|
ov12_0225A914: ; 0x0225A914
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x70
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r6, r0, #0
|
|
mov r1, #0
|
|
add r0, #0x6a
|
|
strb r1, [r0]
|
|
str r7, [r6]
|
|
add r0, r5, #0
|
|
str r5, [r6, #4]
|
|
add r0, #0x94
|
|
ldrb r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0x68
|
|
strb r1, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
add r0, r6, #0
|
|
add r0, #0x69
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
bl ov12_0223A8DC
|
|
add r3, r6, #0
|
|
str r0, [r6, #0xc]
|
|
add r7, r4, #0
|
|
add r3, #0x10
|
|
mov r2, #0xb
|
|
_0225A958:
|
|
ldmia r7!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _0225A958
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [r6, #8]
|
|
ldr r0, [r4, #0x4c]
|
|
cmp r0, #1
|
|
bne _0225A978
|
|
ldr r0, [r4, #0x50]
|
|
cmp r0, #0x19
|
|
bne _0225A978
|
|
mov r0, #0x1a
|
|
mov r1, #1
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_0225A978:
|
|
ldr r0, [r4, #0x4c]
|
|
cmp r0, #1
|
|
bne _0225A98C
|
|
ldr r0, [r4, #0x50]
|
|
cmp r0, #0x1a
|
|
bne _0225A98C
|
|
mov r0, #0x1a
|
|
mov r1, #0
|
|
lsl r0, r0, #4
|
|
str r1, [r5, r0]
|
|
_0225A98C:
|
|
ldrh r0, [r4, #2]
|
|
add r1, r6, #0
|
|
add r1, #0x6c
|
|
str r0, [sp]
|
|
add r0, r6, #0
|
|
ldr r2, [r4, #0x4c]
|
|
ldr r3, [r4, #0x50]
|
|
add r0, #0x6b
|
|
bl ov12_02261D30
|
|
ldr r0, _0225A9AC ; =ov12_0225FD14
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225A9AC: .word ov12_0225FD14
|
|
thumb_func_end ov12_0225A914
|
|
|
|
thumb_func_start ov12_0225A9B0
|
|
ov12_0225A9B0: ; 0x0225A9B0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #9]
|
|
str r5, [r1]
|
|
ldr r0, [r4, #0x20]
|
|
str r0, [r1, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #8]
|
|
ldr r0, _0225A9DC ; =ov12_0225FF80
|
|
strb r2, [r1, #0xa]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0225A9DC: .word ov12_0225FF80
|
|
thumb_func_end ov12_0225A9B0
|
|
|
|
thumb_func_start ov12_0225A9E0
|
|
ov12_0225A9E0: ; 0x0225A9E0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r7, r0, #0
|
|
ldr r0, [r6, #0x2c]
|
|
add r5, r2, #0
|
|
cmp r0, #0
|
|
bne _0225A9F2
|
|
bl GF_AssertFail
|
|
_0225A9F2:
|
|
add r4, r6, #0
|
|
add r4, #0x28
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl MI_CpuFill8
|
|
str r7, [r4, #0xc]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x4c
|
|
strb r1, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r6, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
add r1, r0, #0
|
|
ldr r0, _0225AA60 ; =0x00000195
|
|
ldrb r0, [r6, r0]
|
|
bl ov12_02265B64
|
|
add r1, r4, #0
|
|
add r1, #0x25
|
|
strb r0, [r1]
|
|
mov r0, #2
|
|
ldrsh r0, [r5, r0]
|
|
str r0, [r4, #0x28]
|
|
ldrh r0, [r5, #4]
|
|
str r0, [r4, #0x2c]
|
|
ldr r0, [r5, #8]
|
|
str r0, [r4, #0x30]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, #1]
|
|
add r0, #0x48
|
|
strb r1, [r0]
|
|
ldr r1, [r5, #8]
|
|
ldr r0, _0225AA64 ; =0x00007FFF
|
|
cmp r1, r0
|
|
bne _0225AA50
|
|
mov r0, #0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x30]
|
|
_0225AA50:
|
|
mov r2, #0xfa
|
|
ldr r0, _0225AA68 ; =ov12_0225FFDC
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225AA60: .word 0x00000195
|
|
_0225AA64: .word 0x00007FFF
|
|
_0225AA68: .word ov12_0225FFDC
|
|
thumb_func_end ov12_0225A9E0
|
|
|
|
thumb_func_start ov12_0225AA6C
|
|
ov12_0225AA6C: ; 0x0225AA6C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r7, r0, #0
|
|
ldr r0, [r6, #0x2c]
|
|
add r5, r2, #0
|
|
cmp r0, #0
|
|
bne _0225AA7E
|
|
bl GF_AssertFail
|
|
_0225AA7E:
|
|
add r4, r6, #0
|
|
add r4, #0x28
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl MI_CpuFill8
|
|
str r7, [r4, #0xc]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x4c
|
|
strb r1, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r2, [r6, r0]
|
|
add r1, r4, #0
|
|
add r1, #0x24
|
|
strb r2, [r1]
|
|
ldr r1, [r5, #4]
|
|
add r0, r0, #1
|
|
str r1, [r4, #0x38]
|
|
ldr r1, [r5, #0xc]
|
|
str r1, [r4, #0x3c]
|
|
ldr r2, [r5, #8]
|
|
ldr r1, [r4, #0x38]
|
|
sub r1, r2, r1
|
|
str r1, [r4, #0x40]
|
|
ldrb r0, [r6, r0]
|
|
cmp r0, #0
|
|
bne _0225AACA
|
|
mov r2, #0xfa
|
|
ldr r0, _0225AADC ; =ov12_02260030
|
|
add r1, r4, #0
|
|
lsl r2, r2, #2
|
|
bl CreateSysTask
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225AACA:
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x24
|
|
add r4, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r4]
|
|
bl ov12_0226430C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225AADC: .word ov12_02260030
|
|
thumb_func_end ov12_0225AA6C
|
|
|
|
thumb_func_start ov12_0225AAE0
|
|
ov12_0225AAE0: ; 0x0225AAE0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x74
|
|
str r2, [sp]
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
ldr r0, _0225ABB0 ; =0x00000195
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #1
|
|
tst r0, r2
|
|
beq _0225AB00
|
|
mov r2, #2
|
|
b _0225AB02
|
|
_0225AB00:
|
|
mov r2, #0
|
|
_0225AB02:
|
|
add r0, r1, #0
|
|
add r0, #0x67
|
|
strb r2, [r0]
|
|
add r2, r1, #0
|
|
mov r0, #0
|
|
add r2, #0x66
|
|
strb r0, [r2]
|
|
str r5, [r1]
|
|
ldr r2, [sp]
|
|
str r4, [r1, #4]
|
|
ldrb r3, [r2]
|
|
add r2, r1, #0
|
|
add r2, #0x64
|
|
strb r3, [r2]
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r3, [r4, r2]
|
|
add r2, r1, #0
|
|
add r2, #0x65
|
|
strb r3, [r2]
|
|
ldr r2, [r4, #0x20]
|
|
add r7, r1, #0
|
|
str r2, [r1, #8]
|
|
ldr r2, [sp]
|
|
ldrh r3, [r2, #2]
|
|
add r2, r1, #0
|
|
add r2, #0x68
|
|
strh r3, [r2]
|
|
ldr r2, [sp]
|
|
ldrb r3, [r2, #1]
|
|
add r2, r1, #0
|
|
add r2, #0x6a
|
|
strb r3, [r2]
|
|
ldr r2, [sp]
|
|
ldrb r3, [r2, #8]
|
|
add r2, r1, #0
|
|
add r2, #0x6b
|
|
strb r3, [r2]
|
|
ldr r2, [sp]
|
|
ldr r2, [r2, #4]
|
|
str r2, [r1, #0x6c]
|
|
ldr r2, [sp]
|
|
ldrb r3, [r2, #9]
|
|
add r2, r1, #0
|
|
add r2, #0x70
|
|
strh r3, [r2]
|
|
ldr r2, [sp]
|
|
ldrb r3, [r2, #0xa]
|
|
add r2, r1, #0
|
|
add r2, #0x72
|
|
strh r3, [r2]
|
|
ldr r2, [sp]
|
|
add r3, r1, #0
|
|
mov ip, r2
|
|
_0225AB6E:
|
|
mov r4, ip
|
|
ldrh r4, [r4, #0xc]
|
|
strh r4, [r7, #0x24]
|
|
ldr r4, [sp]
|
|
add r7, r7, #2
|
|
add r6, r4, r0
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0x14]
|
|
add r4, #0x2c
|
|
strb r5, [r4]
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0x18]
|
|
add r4, #0x30
|
|
strb r5, [r4]
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0x1c]
|
|
add r4, #0x34
|
|
add r0, r0, #1
|
|
strb r5, [r4]
|
|
ldr r4, [r2, #0x20]
|
|
add r2, r2, #4
|
|
str r4, [r3, #0x38]
|
|
mov r4, ip
|
|
add r4, r4, #2
|
|
add r3, r3, #4
|
|
mov ip, r4
|
|
cmp r0, #4
|
|
blt _0225AB6E
|
|
ldr r0, _0225ABB4 ; =ov12_022600F0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225ABB0: .word 0x00000195
|
|
_0225ABB4: .word ov12_022600F0
|
|
thumb_func_end ov12_0225AAE0
|
|
|
|
thumb_func_start ov12_0225ABB8
|
|
ov12_0225ABB8: ; 0x0225ABB8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r2, #0
|
|
ldr r2, _0225ABE4 ; =0x00000195
|
|
mov r4, #1
|
|
ldrb r2, [r1, r2]
|
|
tst r2, r4
|
|
beq _0225ABCA
|
|
mov r4, #0x75
|
|
b _0225ABCC
|
|
_0225ABCA:
|
|
sub r4, #0x76
|
|
_0225ABCC:
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldrb r2, [r5]
|
|
bl ov12_0226430C
|
|
ldrh r0, [r5, #2]
|
|
add r1, r4, #0
|
|
bl sub_0200602C
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225ABE4: .word 0x00000195
|
|
thumb_func_end ov12_0225ABB8
|
|
|
|
thumb_func_start ov12_0225ABE8
|
|
ov12_0225ABE8: ; 0x0225ABE8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #6]
|
|
add r0, r4, #0
|
|
str r5, [r1]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #5]
|
|
ldr r0, _0225AC18 ; =ov12_0226037C
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225AC18: .word ov12_0226037C
|
|
thumb_func_end ov12_0225ABE8
|
|
|
|
thumb_func_start ov12_0225AC1C
|
|
ov12_0225AC1C: ; 0x0225AC1C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x68
|
|
str r2, [sp]
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
str r5, [r1]
|
|
ldr r0, [sp]
|
|
str r4, [r1, #4]
|
|
ldrb r2, [r0]
|
|
add r0, r1, #0
|
|
add r0, #0x60
|
|
strb r2, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r2, [r4, r0]
|
|
add r0, r1, #0
|
|
add r0, #0x61
|
|
strb r2, [r0]
|
|
add r2, r1, #0
|
|
mov r0, #0
|
|
add r2, #0x62
|
|
strb r0, [r2]
|
|
ldr r2, [sp]
|
|
add r7, r1, #0
|
|
ldrb r3, [r2, #1]
|
|
add r2, r1, #0
|
|
add r2, #0x63
|
|
strb r3, [r2]
|
|
ldr r2, [sp]
|
|
add r3, r1, #0
|
|
ldrb r2, [r2, #2]
|
|
str r2, [r1, #0x64]
|
|
ldr r2, [sp]
|
|
mov ip, r2
|
|
_0225AC68:
|
|
mov r4, ip
|
|
ldrh r4, [r4, #4]
|
|
strh r4, [r7, #0x20]
|
|
ldr r4, [sp]
|
|
add r7, r7, #2
|
|
add r6, r4, r0
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0xc]
|
|
add r4, #0x28
|
|
strb r5, [r4]
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0x10]
|
|
add r4, #0x2c
|
|
strb r5, [r4]
|
|
add r4, r1, r0
|
|
ldrb r5, [r6, #0x14]
|
|
add r4, #0x30
|
|
add r0, r0, #1
|
|
strb r5, [r4]
|
|
ldr r4, [r2, #0x18]
|
|
add r2, r2, #4
|
|
str r4, [r3, #0x34]
|
|
mov r4, ip
|
|
add r4, r4, #2
|
|
add r3, r3, #4
|
|
mov ip, r4
|
|
cmp r0, #4
|
|
blt _0225AC68
|
|
ldr r0, _0225ACAC ; =ov12_02260418
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225ACAC: .word ov12_02260418
|
|
thumb_func_end ov12_0225AC1C
|
|
|
|
thumb_func_start ov12_0225ACB0
|
|
ov12_0225ACB0: ; 0x0225ACB0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #0x2c]
|
|
add r4, r2, #0
|
|
cmp r0, #0
|
|
bne _0225ACC2
|
|
bl GF_AssertFail
|
|
_0225ACC2:
|
|
ldrb r1, [r4, #1]
|
|
add r0, r5, #0
|
|
add r0, #0x72
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
mov r2, #1
|
|
ldr r1, [r5, #0x50]
|
|
add r0, #0x28
|
|
lsl r2, r2, #8
|
|
bl ov12_0226498C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225ACB0
|
|
|
|
thumb_func_start ov12_0225ACE8
|
|
ov12_0225ACE8: ; 0x0225ACE8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
add r6, r0, #0
|
|
add r7, r2, #0
|
|
bl BattleSys_GetTrainerIndex
|
|
str r0, [sp, #4]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r6, [r4]
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r6, #0
|
|
bl ov12_0223B718
|
|
str r0, [sp]
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r2, [r5, r2]
|
|
ldrb r3, [r7, #1]
|
|
ldr r1, [sp, #4]
|
|
add r0, r6, #0
|
|
bl ov12_0223C34C
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225AD40 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225AD40: .word ov12_022605D0
|
|
thumb_func_end ov12_0225ACE8
|
|
|
|
thumb_func_start ov12_0225AD44
|
|
ov12_0225AD44: ; 0x0225AD44
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
add r3, sp, #4
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
bl ov12_02261390
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
add r2, sp, #4
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225AD98 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225AD98: .word ov12_022605D0
|
|
thumb_func_end ov12_0225AD44
|
|
|
|
thumb_func_start ov12_0225AD9C
|
|
ov12_0225AD9C: ; 0x0225AD9C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
add r3, sp, #4
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
bl ov12_02261464
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
add r2, sp, #4
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225ADF0 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225ADF0: .word ov12_022605D0
|
|
thumb_func_end ov12_0225AD9C
|
|
|
|
thumb_func_start ov12_0225ADF4
|
|
ov12_0225ADF4: ; 0x0225ADF4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
add r2, sp, #0
|
|
add r6, r1, #0
|
|
bl ov12_02261544
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
add r7, r0, #0
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
mov r0, #0x22
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, sp, #0
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225AE44 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225AE44: .word ov12_022605D0
|
|
thumb_func_end ov12_0225ADF4
|
|
|
|
thumb_func_start ov12_0225AE48
|
|
ov12_0225AE48: ; 0x0225AE48
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r5, r0, #0
|
|
add r3, sp, #4
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
bl ov12_022615F0
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
add r2, sp, #4
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225AE9C ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225AE9C: .word ov12_022605D0
|
|
thumb_func_end ov12_0225AE48
|
|
|
|
thumb_func_start ov12_0225AEA0
|
|
ov12_0225AEA0: ; 0x0225AEA0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
str r5, [r1]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
mov r2, #0
|
|
strb r0, [r1, #8]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
add r4, #0x28
|
|
strb r0, [r1, #9]
|
|
strb r2, [r1, #0xa]
|
|
ldr r0, _0225AED4 ; =ov12_02260584
|
|
str r4, [r1, #4]
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0225AED4: .word ov12_02260584
|
|
thumb_func_end ov12_0225AEA0
|
|
|
|
thumb_func_start ov12_0225AED8
|
|
ov12_0225AED8: ; 0x0225AED8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _0225AF6C ; =0x00000196
|
|
add r4, r2, #0
|
|
ldrb r2, [r5, r1]
|
|
add r6, r0, #0
|
|
cmp r2, #0
|
|
bne _0225AF2A
|
|
bl ov12_0223A930
|
|
str r0, [sp]
|
|
mov r0, #5
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
add r7, r0, #0
|
|
str r6, [r7]
|
|
ldrb r0, [r4]
|
|
strb r0, [r7, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
strb r0, [r7, #5]
|
|
mov r0, #0
|
|
strb r0, [r7, #7]
|
|
add r0, r6, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r1, [sp]
|
|
add r0, r6, #0
|
|
add r2, r4, #4
|
|
bl ov12_0223C494
|
|
strb r0, [r7, #6]
|
|
ldr r0, _0225AF70 ; =ov12_02260614
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225AF2A:
|
|
cmp r2, #1
|
|
bne _0225AF46
|
|
sub r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
bl ov12_02263A00
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225AF46:
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
bne _0225AF5C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
add r0, r6, #0
|
|
bl ov12_02263A00
|
|
_0225AF5C:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225AF6C: .word 0x00000196
|
|
_0225AF70: .word ov12_02260614
|
|
thumb_func_end ov12_0225AED8
|
|
|
|
thumb_func_start ov12_0225AF74
|
|
ov12_0225AF74: ; 0x0225AF74
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r4, r6, #0
|
|
add r4, #0x28
|
|
add r7, r0, #0
|
|
add r5, r2, #0
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
mov r2, #1
|
|
bl MIi_CpuClearFast
|
|
mov r0, #0x65
|
|
str r7, [r4, #0xc]
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r6, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x24
|
|
strb r1, [r0]
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
add r1, r0, #0
|
|
ldr r0, _0225B024 ; =0x00000195
|
|
ldrb r0, [r6, r0]
|
|
bl ov12_02265B64
|
|
add r1, r4, #0
|
|
add r1, #0x25
|
|
strb r0, [r1]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5]
|
|
add r0, #0x4c
|
|
mov r2, #0
|
|
strb r1, [r0]
|
|
mov r0, #2
|
|
ldrsh r0, [r5, r0]
|
|
str r0, [r4, #0x28]
|
|
ldrh r0, [r5, #4]
|
|
str r0, [r4, #0x2c]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, #1]
|
|
add r0, #0x48
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x19
|
|
lsr r1, r0, #0x1e
|
|
add r0, r4, #0
|
|
add r0, #0x49
|
|
strb r1, [r0]
|
|
str r2, [r4, #0x30]
|
|
ldr r0, [r5, #8]
|
|
sub r2, #0x21
|
|
str r0, [r4, #0x38]
|
|
ldr r0, [r5, #0xc]
|
|
str r0, [r4, #0x3c]
|
|
add r0, r4, #0
|
|
ldrb r1, [r5, #6]
|
|
add r0, #0x26
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x1b
|
|
lsr r1, r0, #0x1b
|
|
add r0, r4, #0
|
|
add r0, #0x4a
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #7]
|
|
lsl r0, r0, #0x18
|
|
lsr r1, r0, #0x1f
|
|
add r0, r4, #0
|
|
add r0, #0x4b
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x10]
|
|
add r0, #0x27
|
|
strb r1, [r0]
|
|
ldr r1, [r4, #0x28]
|
|
add r0, r4, #0
|
|
bl ov12_0226498C
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #0x24
|
|
add r4, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r4]
|
|
bl ov12_0226430C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225B024: .word 0x00000195
|
|
thumb_func_end ov12_0225AF74
|
|
|
|
thumb_func_start ov12_0225B028
|
|
ov12_0225B028: ; 0x0225B028
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xa]
|
|
str r5, [r1]
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #8]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r1, #9]
|
|
ldrh r0, [r4, #2]
|
|
strh r0, [r1, #0xc]
|
|
ldrb r0, [r4, #1]
|
|
strb r0, [r1, #0xe]
|
|
ldr r0, _0225B05C ; =ov12_022609F8
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225B05C: .word ov12_022609F8
|
|
thumb_func_end ov12_0225B028
|
|
|
|
thumb_func_start ov12_0225B060
|
|
ov12_0225B060: ; 0x0225B060
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xa]
|
|
str r6, [r1]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [r1, #4]
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #8]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r5, r0]
|
|
strb r0, [r1, #9]
|
|
ldrb r0, [r4, #1]
|
|
strb r0, [r1, #0xb]
|
|
strb r2, [r1, #0xc]
|
|
ldrb r0, [r4, #2]
|
|
strb r0, [r1, #0xd]
|
|
ldr r0, _0225B09C ; =ov12_02260B30
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225B09C: .word ov12_02260B30
|
|
thumb_func_end ov12_0225B060
|
|
|
|
thumb_func_start ov12_0225B0A0
|
|
ov12_0225B0A0: ; 0x0225B0A0
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r1, #7]
|
|
str r6, [r1]
|
|
ldrb r2, [r4]
|
|
strb r2, [r1, #4]
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r3, [r5, r2]
|
|
add r2, r2, #1
|
|
strb r3, [r1, #5]
|
|
ldrb r2, [r5, r2]
|
|
strb r2, [r1, #6]
|
|
_0225B0CA:
|
|
add r2, r4, r0
|
|
ldrb r3, [r2, #2]
|
|
add r2, r1, r0
|
|
add r0, r0, #1
|
|
strb r3, [r2, #8]
|
|
cmp r0, #6
|
|
blt _0225B0CA
|
|
ldr r0, _0225B0E4 ; =ov12_02260BA0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xe]
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225B0E4: .word ov12_02260BA0
|
|
thumb_func_end ov12_0225B0A0
|
|
|
|
thumb_func_start ov12_0225B0E8
|
|
ov12_0225B0E8: ; 0x0225B0E8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #7]
|
|
str r5, [r1]
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r3, [r4, r0]
|
|
add r0, r0, #1
|
|
strb r3, [r1, #5]
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #6]
|
|
ldr r0, _0225B11C ; =ov12_02260C58
|
|
strb r2, [r1, #0xe]
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225B11C: .word ov12_02260C58
|
|
thumb_func_end ov12_0225B0E8
|
|
|
|
thumb_func_start ov12_0225B120
|
|
ov12_0225B120: ; 0x0225B120
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r4, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
strb r0, [r1, #7]
|
|
str r6, [r1]
|
|
ldrb r2, [r4]
|
|
strb r2, [r1, #4]
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r3, [r5, r2]
|
|
add r2, r2, #1
|
|
strb r3, [r1, #5]
|
|
ldrb r2, [r5, r2]
|
|
strb r2, [r1, #6]
|
|
_0225B14A:
|
|
add r2, r4, r0
|
|
ldrb r3, [r2, #2]
|
|
add r2, r1, r0
|
|
add r0, r0, #1
|
|
strb r3, [r2, #8]
|
|
cmp r0, #6
|
|
blt _0225B14A
|
|
mov r0, #1
|
|
strb r0, [r1, #0xe]
|
|
ldr r0, _0225B168 ; =ov12_02260BA0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225B168: .word ov12_02260BA0
|
|
thumb_func_end ov12_0225B120
|
|
|
|
thumb_func_start ov12_0225B16C
|
|
ov12_0225B16C: ; 0x0225B16C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
add r6, r2, #0
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #7]
|
|
str r5, [r1]
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r3, [r4, r0]
|
|
add r0, r0, #1
|
|
strb r3, [r1, #5]
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #6]
|
|
mov r0, #1
|
|
strb r0, [r1, #0xe]
|
|
ldr r0, _0225B1A4 ; =ov12_02260C58
|
|
bl CreateSysTask
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225B1A4: .word ov12_02260C58
|
|
thumb_func_end ov12_0225B16C
|
|
|
|
thumb_func_start ov12_0225B1A8
|
|
ov12_0225B1A8: ; 0x0225B1A8
|
|
push {r4, r5, lr}
|
|
sub sp, #0x24
|
|
add r4, r1, #0
|
|
ldr r1, _0225B1F8 ; =0x00000196
|
|
add r5, r0, #0
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0
|
|
bne _0225B1E6
|
|
bl ov12_0223A930
|
|
add r1, r0, #0
|
|
ldr r2, _0225B1FC ; =0x0000039B
|
|
add r0, sp, #0
|
|
strh r2, [r0, #2]
|
|
mov r3, #0
|
|
strb r3, [r0, #1]
|
|
add r0, r5, #0
|
|
add r2, sp, #0
|
|
bl ov12_0223C494
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov12_0223A7D8
|
|
mov r1, #1
|
|
bl WaitingIcon_New
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223BB80
|
|
_0225B1E6:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
add r0, r5, #0
|
|
mov r2, #0x37
|
|
bl ov12_0226430C
|
|
add sp, #0x24
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
_0225B1F8: .word 0x00000196
|
|
_0225B1FC: .word 0x0000039B
|
|
thumb_func_end ov12_0225B1A8
|
|
|
|
thumb_func_start ov12_0225B200
|
|
ov12_0225B200: ; 0x0225B200
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x50
|
|
mov r3, #0x65
|
|
add r4, r1, #0
|
|
lsl r3, r3, #2
|
|
add r6, r2, #0
|
|
ldrb r3, [r4, r3]
|
|
add r1, r6, #0
|
|
add r2, sp, #0
|
|
add r5, r0, #0
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0
|
|
mov r1, #5
|
|
bl ov07_0223494C
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
ldrb r2, [r6]
|
|
add r0, r5, #0
|
|
bl ov12_0226430C
|
|
add sp, #0x50
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225B200
|
|
|
|
thumb_func_start ov12_0225B234
|
|
ov12_0225B234: ; 0x0225B234
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xe]
|
|
str r5, [r1]
|
|
add r0, r4, #0
|
|
str r4, [r1, #4]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #0xc]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #0xd]
|
|
ldr r0, [r4, #0x20]
|
|
str r0, [r1, #8]
|
|
ldr r0, _0225B268 ; =ov12_02260CDC
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0225B268: .word ov12_02260CDC
|
|
thumb_func_end ov12_0225B234
|
|
|
|
thumb_func_start ov12_0225B26C
|
|
ov12_0225B26C: ; 0x0225B26C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
mov r2, #0
|
|
strb r2, [r1, #0xe]
|
|
str r5, [r1]
|
|
add r0, r4, #0
|
|
str r4, [r1, #4]
|
|
add r0, #0x94
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #0xc]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
strb r0, [r1, #0xd]
|
|
ldr r0, [r4, #0x20]
|
|
str r0, [r1, #8]
|
|
ldr r0, _0225B2A0 ; =ov12_02260D28
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0225B2A0: .word ov12_02260D28
|
|
thumb_func_end ov12_0225B26C
|
|
|
|
thumb_func_start ov12_0225B2A4
|
|
ov12_0225B2A4: ; 0x0225B2A4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
add r2, sp, #0
|
|
add r6, r1, #0
|
|
bl ov12_02261928
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
add r7, r0, #0
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
mov r0, #0x3b
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, sp, #0
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225B2F4 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225B2F4: .word ov12_022605D0
|
|
thumb_func_end ov12_0225B2A4
|
|
|
|
thumb_func_start ov12_0225B2F8
|
|
ov12_0225B2F8: ; 0x0225B2F8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
add r3, sp, #0
|
|
add r6, r1, #0
|
|
bl ov12_022619E4
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
add r7, r0, #0
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
mov r0, #0x3c
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, sp, #0
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225B348 ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225B348: .word ov12_022605D0
|
|
thumb_func_end ov12_0225B2F8
|
|
|
|
thumb_func_start ov12_0225B34C
|
|
ov12_0225B34C: ; 0x0225B34C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0
|
|
add r2, sp, #0
|
|
add r6, r1, #0
|
|
bl ov12_02261AD4
|
|
add r0, r5, #0
|
|
bl ov12_0223A930
|
|
add r7, r0, #0
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r4, r0, #0
|
|
str r5, [r4]
|
|
mov r0, #0x3d
|
|
strb r0, [r4, #4]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
strb r0, [r4, #5]
|
|
add r0, r5, #0
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, sp, #0
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #6]
|
|
ldr r0, _0225B39C ; =ov12_022605D0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl CreateSysTask
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225B39C: .word ov12_022605D0
|
|
thumb_func_end ov12_0225B34C
|
|
|
|
thumb_func_start ov12_0225B3A0
|
|
ov12_0225B3A0: ; 0x0225B3A0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x50
|
|
mov r3, #0x65
|
|
add r4, r1, #0
|
|
lsl r3, r3, #2
|
|
add r6, r2, #0
|
|
ldrb r3, [r4, r3]
|
|
add r1, r6, #0
|
|
add r2, sp, #0
|
|
add r5, r0, #0
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0
|
|
mov r1, #5
|
|
bl ov07_02234A20
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r4, r1]
|
|
ldrb r2, [r6]
|
|
add r0, r5, #0
|
|
bl ov12_0226430C
|
|
add sp, #0x50
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225B3A0
|
|
|
|
thumb_func_start ov12_0225B3D4
|
|
ov12_0225B3D4: ; 0x0225B3D4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
ldr r0, _0225B424 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r0, [r5, r0]
|
|
add r4, r2, #0
|
|
tst r0, r1
|
|
beq _0225B3EA
|
|
mov r1, #0x75
|
|
b _0225B3EC
|
|
_0225B3EA:
|
|
sub r1, #0x76
|
|
_0225B3EC:
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _0225B3FC
|
|
cmp r0, #1
|
|
beq _0225B40C
|
|
cmp r0, #2
|
|
beq _0225B404
|
|
b _0225B412
|
|
_0225B3FC:
|
|
ldr r0, _0225B428 ; =0x000006FE
|
|
bl sub_0200602C
|
|
b _0225B412
|
|
_0225B404:
|
|
ldr r0, _0225B42C ; =0x000006FC
|
|
bl sub_0200602C
|
|
b _0225B412
|
|
_0225B40C:
|
|
ldr r0, _0225B430 ; =0x000006FD
|
|
bl sub_0200602C
|
|
_0225B412:
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225B424: .word 0x00000195
|
|
_0225B428: .word 0x000006FE
|
|
_0225B42C: .word 0x000006FC
|
|
_0225B430: .word 0x000006FD
|
|
thumb_func_end ov12_0225B3D4
|
|
|
|
thumb_func_start ov12_0225B434
|
|
ov12_0225B434: ; 0x0225B434
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r6, r0, #0
|
|
ldrh r0, [r4, #2]
|
|
add r5, r1, #0
|
|
bl PlayBGM
|
|
mov r1, #0x65
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r5, r1]
|
|
ldrb r2, [r4]
|
|
add r0, r6, #0
|
|
bl ov12_0226430C
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225B434
|
|
|
|
thumb_func_start ov12_0225B454
|
|
ov12_0225B454: ; 0x0225B454
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
add r7, r1, #0
|
|
mov r0, #5
|
|
mov r1, #0xc
|
|
add r5, r2, #0
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0xc
|
|
add r4, r0, #0
|
|
bl MI_CpuFill8
|
|
mov r2, #0
|
|
strb r2, [r4, #6]
|
|
str r6, [r4]
|
|
ldrb r0, [r5]
|
|
add r1, r4, #0
|
|
strb r0, [r4, #4]
|
|
ldrb r0, [r5, #1]
|
|
strb r0, [r4, #7]
|
|
mov r0, #0x65
|
|
strb r2, [r4, #8]
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r7, r0]
|
|
strb r0, [r4, #5]
|
|
ldr r0, _0225B490 ; =ov12_02260D84
|
|
bl CreateSysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225B490: .word ov12_02260D84
|
|
thumb_func_end ov12_0225B454
|
|
|
|
thumb_func_start ov12_0225B494
|
|
ov12_0225B494: ; 0x0225B494
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x70
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
ldrb r1, [r4, #0x12]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bls _0225B4AC
|
|
b _0225B798
|
|
_0225B4AC:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225B4B8: ; jump table
|
|
.short _0225B4C2 - _0225B4B8 - 2 ; case 0
|
|
.short _0225B4CC - _0225B4B8 - 2 ; case 1
|
|
.short _0225B4DA - _0225B4B8 - 2 ; case 2
|
|
.short _0225B728 - _0225B4B8 - 2 ; case 3
|
|
.short _0225B77C - _0225B4B8 - 2 ; case 4
|
|
_0225B4C2:
|
|
mov r0, #0x1c
|
|
str r0, [r4, #0x20]
|
|
ldrb r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
_0225B4CC:
|
|
ldr r0, [r4, #0x20]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
bne _0225B5A0
|
|
ldrb r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
_0225B4DA:
|
|
ldrb r0, [r4, #0x13]
|
|
add r1, sp, #0x14
|
|
cmp r0, #2
|
|
ldr r0, [r4, #0xc]
|
|
beq _0225B4E6
|
|
b _0225B61A
|
|
_0225B4E6:
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #1
|
|
beq _0225B4FA
|
|
cmp r0, #3
|
|
bne _0225B51C
|
|
_0225B4FA:
|
|
add r1, sp, #0x14
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xc0
|
|
ldr r0, [r4, #0xc]
|
|
bge _0225B512
|
|
ldr r0, [r0]
|
|
mov r1, #8
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225B51C
|
|
_0225B512:
|
|
ldr r0, [r0]
|
|
mov r1, #0xc0
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
_0225B51C:
|
|
ldr r0, [r4, #0xc]
|
|
add r1, sp, #0x14
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #1
|
|
bne _0225B540
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_020087A4
|
|
b _0225B590
|
|
_0225B540:
|
|
cmp r0, #3
|
|
bne _0225B56A
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r1, [r3, r2]
|
|
sub r0, r0, r1
|
|
strh r0, [r3, #2]
|
|
ldrsh r0, [r3, r2]
|
|
mov r1, #0
|
|
sub r0, #0x18
|
|
strh r0, [r3, #2]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
neg r2, r2
|
|
bl sub_02008C2C
|
|
b _0225B590
|
|
_0225B56A:
|
|
cmp r0, #5
|
|
bne _0225B590
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r1, [r3, r2]
|
|
sub r0, r1, r0
|
|
strh r0, [r3, #2]
|
|
ldrsh r0, [r3, r2]
|
|
mov r1, #0
|
|
sub r0, #0x10
|
|
strh r0, [r3, #2]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
bl sub_02008C2C
|
|
_0225B590:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
mov r1, #0x14
|
|
ldrsh r1, [r4, r1]
|
|
cmp r0, r1
|
|
bge _0225B5A2
|
|
_0225B5A0:
|
|
b _0225B7B4
|
|
_0225B5A2:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x2c
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x2d
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
mov r2, #0x14
|
|
ldrsh r2, [r4, r2]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_020087A4
|
|
mov r0, #0x69
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
str r0, [sp]
|
|
ldrh r0, [r4, #0x16]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r4, #0x13]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r4, #0x11]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r3, [r4, #8]
|
|
bl ov12_02261F38
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #1
|
|
beq _0225B5F6
|
|
cmp r0, #3
|
|
bne _0225B602
|
|
_0225B5F6:
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0xc0
|
|
ldr r0, [r0]
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
_0225B602:
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl sub_020090B4
|
|
ldrb r0, [r4, #0x12]
|
|
add sp, #0x70
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B61A:
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
beq _0225B62E
|
|
cmp r0, #2
|
|
bne _0225B650
|
|
_0225B62E:
|
|
add r0, sp, #0x14
|
|
mov r1, #2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0x40
|
|
ldr r0, [r4, #0xc]
|
|
ble _0225B646
|
|
ldr r0, [r0]
|
|
sub r1, #0xa
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225B650
|
|
_0225B646:
|
|
ldr r0, [r0]
|
|
mov r1, #0x40
|
|
mov r2, #0x88
|
|
bl sub_0200DDB8
|
|
_0225B650:
|
|
ldr r0, [r4, #0xc]
|
|
add r1, sp, #0x14
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
bne _0225B674
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_020087A4
|
|
b _0225B6C4
|
|
_0225B674:
|
|
cmp r0, #2
|
|
bne _0225B69C
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r1, [r3, r2]
|
|
sub r0, r1, r0
|
|
strh r0, [r3, #2]
|
|
ldrsh r0, [r3, r2]
|
|
mov r1, #0
|
|
sub r0, #0x18
|
|
strh r0, [r3, #2]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
bl sub_02008C2C
|
|
b _0225B6C4
|
|
_0225B69C:
|
|
cmp r0, #4
|
|
bne _0225B6C4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
add r3, sp, #0x14
|
|
mov r2, #2
|
|
ldrsh r1, [r3, r2]
|
|
sub r0, r0, r1
|
|
strh r0, [r3, #2]
|
|
ldrsh r0, [r3, r2]
|
|
mov r1, #0
|
|
sub r0, #0x10
|
|
strh r0, [r3, #2]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #8]
|
|
neg r2, r2
|
|
bl sub_02008C2C
|
|
_0225B6C4:
|
|
mov r0, #0x14
|
|
ldrsh r5, [r4, r0]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02008A78
|
|
cmp r0, r5
|
|
bgt _0225B7B4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
add r2, r5, #0
|
|
bl sub_020087A4
|
|
mov r0, #0x69
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
str r0, [sp]
|
|
ldrh r0, [r4, #0x16]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r4, #0x13]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r4, #0x11]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r3, [r4, #8]
|
|
bl ov12_02261F38
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
beq _0225B712
|
|
cmp r0, #2
|
|
bne _0225B71E
|
|
_0225B712:
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0x40
|
|
ldr r0, [r0]
|
|
mov r2, #0x88
|
|
bl sub_0200DDB8
|
|
_0225B71E:
|
|
ldrb r0, [r4, #0x12]
|
|
add sp, #0x70
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B728:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
ldrb r1, [r4, #0x11]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225B7B4
|
|
ldr r0, [r4, #8]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
bne _0225B7B4
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0225B774
|
|
ldrb r1, [r4, #0x11]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x18
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x18
|
|
bl ov12_02261B80
|
|
mov r0, #4
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B774:
|
|
mov r0, #0xff
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B77C:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225B7B4
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
mov r0, #0xff
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B798:
|
|
mov r0, #0
|
|
bl sub_02005B58
|
|
ldrb r1, [r4, #0x11]
|
|
ldrb r2, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225B7B4:
|
|
add sp, #0x70
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225B494
|
|
|
|
thumb_func_start ov12_0225B7B8
|
|
ov12_0225B7B8: ; 0x0225B7B8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x70
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
ldrb r1, [r4, #0x12]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bls _0225B7D0
|
|
b _0225B940
|
|
_0225B7D0:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225B7DC: ; jump table
|
|
.short _0225B7E6 - _0225B7DC - 2 ; case 0
|
|
.short _0225B7F0 - _0225B7DC - 2 ; case 1
|
|
.short _0225B800 - _0225B7DC - 2 ; case 2
|
|
.short _0225B8D0 - _0225B7DC - 2 ; case 3
|
|
.short _0225B924 - _0225B7DC - 2 ; case 4
|
|
_0225B7E6:
|
|
mov r0, #0x1c
|
|
str r0, [r4, #0x20]
|
|
ldrb r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
_0225B7F0:
|
|
ldr r0, [r4, #0x20]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
beq _0225B7FA
|
|
b _0225B95C
|
|
_0225B7FA:
|
|
ldrb r0, [r4, #0x12]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
_0225B800:
|
|
ldr r0, [r4, #0xc]
|
|
add r1, sp, #0x14
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #1
|
|
beq _0225B818
|
|
cmp r0, #3
|
|
bne _0225B83A
|
|
_0225B818:
|
|
add r1, sp, #0x14
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xc0
|
|
ldr r0, [r4, #0xc]
|
|
bge _0225B830
|
|
ldr r0, [r0]
|
|
mov r1, #8
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225B83A
|
|
_0225B830:
|
|
ldr r0, [r0]
|
|
mov r1, #0xc0
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
_0225B83A:
|
|
ldr r0, [r4, #0xc]
|
|
add r1, sp, #0x14
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #0x14
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
mov r2, #4
|
|
bl sub_02008C2C
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl sub_02008A78
|
|
mov r1, #0x14
|
|
ldrsh r1, [r4, r1]
|
|
cmp r0, r1
|
|
blt _0225B95C
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x2c
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x2d
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
mov r2, #0x14
|
|
ldrsh r2, [r4, r2]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl sub_020087A4
|
|
mov r0, #0x69
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
str r0, [sp]
|
|
ldrh r0, [r4, #0x16]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r4, #0x13]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4, #0x18]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r4, #0x11]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r3, [r4, #8]
|
|
bl ov12_02261F38
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0xc0
|
|
ldr r0, [r0]
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #8
|
|
add r3, r2, #0
|
|
bl sub_020090B4
|
|
ldrb r0, [r4, #0x12]
|
|
add sp, #0x70
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B8D0:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
ldrb r1, [r4, #0x11]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225B95C
|
|
ldr r0, [r4, #8]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
bne _0225B95C
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0225B91C
|
|
ldrb r1, [r4, #0x11]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x18
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x18
|
|
bl ov12_02261B80
|
|
mov r0, #4
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B91C:
|
|
mov r0, #0xff
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B924:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225B95C
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
mov r0, #0xff
|
|
add sp, #0x70
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225B940:
|
|
mov r0, #0
|
|
bl sub_02005B58
|
|
ldrb r1, [r4, #0x11]
|
|
ldrb r2, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225B95C:
|
|
add sp, #0x70
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225B7B8
|
|
|
|
thumb_func_start ov12_0225B960
|
|
ov12_0225B960: ; 0x0225B960
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0xb0
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bls _0225B974
|
|
b _0225BDFC
|
|
_0225B974:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225B980: ; jump table
|
|
.short _0225B990 - _0225B980 - 2 ; case 0
|
|
.short _0225BA16 - _0225B980 - 2 ; case 1
|
|
.short _0225BA5A - _0225B980 - 2 ; case 2
|
|
.short _0225BBC0 - _0225B980 - 2 ; case 3
|
|
.short _0225BBDC - _0225B980 - 2 ; case 4
|
|
.short _0225BD3C - _0225B980 - 2 ; case 5
|
|
.short _0225BD50 - _0225B980 - 2 ; case 6
|
|
.short _0225BDD6 - _0225B980 - 2 ; case 7
|
|
_0225B990:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
str r1, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
ldr r0, [r4]
|
|
beq _0225B9C8
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
bne _0225BA06
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225BA06
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
b _0225BA06
|
|
_0225B9C8:
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
bne _0225BA06
|
|
ldr r0, [r4]
|
|
bl ov12_0223B688
|
|
cmp r0, #1
|
|
bne _0225B9F2
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225B9F2
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
b _0225BA06
|
|
_0225B9F2:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0225BA06
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
_0225BA06:
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BA16:
|
|
add r1, sp, #0x4c
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
str r0, [sp, #0x4c]
|
|
add r1, #0x81
|
|
add r2, #0x8c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl BattleSystem_GetPartyMon
|
|
str r0, [sp, #0x54]
|
|
mov r0, #5
|
|
add r1, sp, #0x4c
|
|
bl ov07_02232694
|
|
str r0, [r4, #8]
|
|
bl ov07_022329B0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BA5A:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233F20
|
|
cmp r0, #0
|
|
bne _0225BAA2
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A04
|
|
cmp r0, #1
|
|
bne _0225BAA2
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233EA0
|
|
cmp r0, #1
|
|
bne _0225BAA2
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
bne _0225BAAC
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xc
|
|
bhs _0225BAA4
|
|
_0225BAA2:
|
|
b _0225BE20
|
|
_0225BAA4:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
_0225BAAC:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x69
|
|
add r2, #0x86
|
|
add r3, #0x82
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3]
|
|
add r1, sp, #0x24
|
|
bl sub_02072914
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r3, [r0]
|
|
mov r0, #6
|
|
add r2, r4, #0
|
|
add r1, r3, #0
|
|
mul r1, r0
|
|
ldr r0, _0225BE24 ; =ov07_022377F4 + 2
|
|
add r2, #0x14
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp]
|
|
ldr r0, _0225BE28 ; =ov07_022377F4 + 4
|
|
ldrsh r0, [r0, r1]
|
|
add r1, r5, #0
|
|
lsl r5, r3, #2
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
ldr r3, _0225BE2C ; =ov07_022377DC
|
|
str r0, [sp, #8]
|
|
mov r0, #0x90
|
|
ldrsb r0, [r4, r0]
|
|
ldrsh r3, [r3, r5]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x91
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x93
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x14]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4]
|
|
bl ov12_022612A4
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2c
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #1
|
|
bl sub_020087A4
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r3, #0
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225BE30 ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
add r2, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A44
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
ldr r0, _0225BE34 ; =0x00000706
|
|
bne _0225BB9A
|
|
mov r1, #0x75
|
|
bl sub_0200602C
|
|
b _0225BBA2
|
|
_0225BB9A:
|
|
mov r1, #0x74
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
_0225BBA2:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0225BBB0
|
|
bl ov07_0221FE08
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
_0225BBB0:
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BBC0:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233E88
|
|
cmp r0, #1
|
|
beq _0225BBDC
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
strb r1, [r0]
|
|
_0225BBDC:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_02008A78
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
cmp r0, r1
|
|
bne _0225BC72
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A54
|
|
cmp r0, #0
|
|
bne _0225BC72
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225BC0E
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225BC0E:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r2, #0
|
|
add r3, r2, #0
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225BE30 ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BC72:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_02008A78
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
cmp r0, r2
|
|
ldr r0, [r4, #4]
|
|
blt _0225BD16
|
|
ldr r0, [r0, #0x20]
|
|
mov r1, #0xc
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf3
|
|
bl sub_020087A4
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225BCB2
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225BCB2:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r2, #0
|
|
mov r3, #1
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225BE30 ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BD16:
|
|
ldr r0, [r0, #0x20]
|
|
mov r1, #0xc
|
|
mov r2, #0x20
|
|
bl sub_02008C2C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0x20
|
|
bl sub_02008C2C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x90
|
|
ldrsb r1, [r4, r1]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_0200914C
|
|
add sp, #0xb0
|
|
pop {r3, r4, r5, pc}
|
|
_0225BD3C:
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A54
|
|
cmp r0, #0
|
|
bne _0225BE20
|
|
mov r0, #6
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BD50:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225BE20
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
bne _0225BE20
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233ECC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232AB8
|
|
add r0, r4, #0
|
|
add r0, #0x92
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225BDCC
|
|
mov r0, #5
|
|
bl ov07_0221BEDC
|
|
str r0, [r4, #0x24]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x58
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0x24]
|
|
add r3, sp, #0x58
|
|
bl ov12_02261B80
|
|
mov r0, #7
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BDCC:
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BDD6:
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C394
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225BE20
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3C0
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221BFE0
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0xb0
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225BDFC:
|
|
mov r0, #0
|
|
bl sub_02005B58
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
add r2, #0x80
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225BE20:
|
|
add sp, #0xb0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0225BE24: .word ov07_022377F4 + 2
|
|
_0225BE28: .word ov07_022377F4 + 4
|
|
_0225BE2C: .word ov07_022377DC
|
|
_0225BE30: .word ov12_0226D15A
|
|
_0225BE34: .word 0x00000706
|
|
thumb_func_end ov12_0225B960
|
|
|
|
thumb_func_start ov12_0225BE38
|
|
ov12_0225BE38: ; 0x0225BE38
|
|
push {r4, r5, lr}
|
|
sub sp, #0xfc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
bls _0225BE4C
|
|
b _0225C156
|
|
_0225BE4C:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225BE58: ; jump table
|
|
.short _0225BE66 - _0225BE58 - 2 ; case 0
|
|
.short _0225BEEC - _0225BE58 - 2 ; case 1
|
|
.short _0225BFE4 - _0225BE58 - 2 ; case 2
|
|
.short _0225C024 - _0225BE58 - 2 ; case 3
|
|
.short _0225C052 - _0225BE58 - 2 ; case 4
|
|
.short _0225C0B0 - _0225BE58 - 2 ; case 5
|
|
.short _0225C130 - _0225BE58 - 2 ; case 6
|
|
_0225BE66:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
str r1, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
ldr r0, [r4]
|
|
beq _0225BE9E
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
bne _0225BEDC
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225BEDC
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
b _0225BEDC
|
|
_0225BE9E:
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
bne _0225BEDC
|
|
ldr r0, [r4]
|
|
bl ov12_0223B688
|
|
cmp r0, #1
|
|
bne _0225BEC8
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225BEC8
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
b _0225BEDC
|
|
_0225BEC8:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0225BEDC
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
_0225BEDC:
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225BEEC:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
bne _0225BF18
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x96
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xc
|
|
bhs _0225BF10
|
|
b _0225C17A
|
|
_0225BF10:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x96
|
|
strb r1, [r0]
|
|
_0225BF18:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x69
|
|
add r2, #0x86
|
|
add r3, #0x82
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3]
|
|
add r1, sp, #0x24
|
|
bl sub_02072914
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r1, [r0]
|
|
mov r0, #6
|
|
add r2, r4, #0
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
ldr r0, _0225C180 ; =ov07_022377F4 + 38
|
|
add r1, r5, #0
|
|
ldrsh r0, [r0, r3]
|
|
ldr r5, _0225C184 ; =ov07_022377F4 + 36
|
|
add r2, #0x14
|
|
str r0, [sp]
|
|
ldr r0, _0225C188 ; =ov07_022377F4 + 4
|
|
ldrsh r0, [r0, r3]
|
|
ldrsh r3, [r5, r3]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x90
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x91
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x93
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x14]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4]
|
|
bl ov12_022612A4
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf4
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf3
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2c
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0225BFD4
|
|
bl ov07_0221FE08
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
_0225BFD4:
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225BFE4:
|
|
mov r0, #5
|
|
bl ov07_0221BEDC
|
|
str r0, [r4, #0x24]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0x29
|
|
add r2, sp, #0xa4
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0x24]
|
|
add r3, sp, #0xa4
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C024:
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C394
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
beq _0225C036
|
|
b _0225C17A
|
|
_0225C036:
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3C0
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221BFE0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C052:
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225C068
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225C068:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C0B0:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225C17A
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
bne _0225C17A
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233ECC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x92
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C126
|
|
mov r0, #5
|
|
bl ov07_0221BEDC
|
|
str r0, [r4, #0x24]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x4c
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0x24]
|
|
add r3, sp, #0x4c
|
|
bl ov12_02261B80
|
|
mov r0, #6
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C126:
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C130:
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C394
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225C17A
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221C3C0
|
|
ldr r0, [r4, #0x24]
|
|
bl ov07_0221BFE0
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0xfc
|
|
strb r0, [r4]
|
|
pop {r4, r5, pc}
|
|
_0225C156:
|
|
mov r0, #0
|
|
bl sub_02005B58
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
add r2, #0x80
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225C17A:
|
|
add sp, #0xfc
|
|
pop {r4, r5, pc}
|
|
nop
|
|
_0225C180: .word ov07_022377F4 + 38
|
|
_0225C184: .word ov07_022377F4 + 36
|
|
_0225C188: .word ov07_022377F4 + 4
|
|
thumb_func_end ov12_0225BE38
|
|
|
|
thumb_func_start ov12_0225C18C
|
|
ov12_0225C18C: ; 0x0225C18C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x1d8
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x83
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #0xb
|
|
bls _0225C1A8
|
|
b _0225C6A6
|
|
_0225C1A8:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225C1B4: ; jump table
|
|
.short _0225C1CC - _0225C1B4 - 2 ; case 0
|
|
.short _0225C2E6 - _0225C1B4 - 2 ; case 1
|
|
.short _0225C332 - _0225C1B4 - 2 ; case 2
|
|
.short _0225C3C0 - _0225C1B4 - 2 ; case 3
|
|
.short _0225C3D8 - _0225C1B4 - 2 ; case 4
|
|
.short _0225C552 - _0225C1B4 - 2 ; case 5
|
|
.short _0225C566 - _0225C1B4 - 2 ; case 6
|
|
.short _0225C5DA - _0225C1B4 - 2 ; case 7
|
|
.short _0225C5FE - _0225C1B4 - 2 ; case 8
|
|
.short _0225C5DA - _0225C1B4 - 2 ; case 9
|
|
.short _0225C64A - _0225C1B4 - 2 ; case 10
|
|
.short _0225C5DA - _0225C1B4 - 2 ; case 11
|
|
_0225C1CC:
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r1, [r0]
|
|
ldr r0, _0225C4FC ; =ov12_0226D120
|
|
ldrb r0, [r0, r1]
|
|
str r0, [sp, #0x58]
|
|
mov r0, #5
|
|
str r0, [sp, #0x5c]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x64]
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #0x68]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x74]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x78]
|
|
mov r2, #1
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
str r2, [sp, #0x6c]
|
|
str r1, [sp, #0x70]
|
|
add r0, #0x94
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bne _0225C212
|
|
str r2, [sp, #0x60]
|
|
b _0225C214
|
|
_0225C212:
|
|
str r1, [sp, #0x60]
|
|
_0225C214:
|
|
add r0, sp, #0x58
|
|
bl ov07_02233DB8
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x69
|
|
add r2, #0x86
|
|
add r3, #0x82
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3]
|
|
add r1, sp, #0x30
|
|
bl sub_02072914
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r3, [r0]
|
|
mov r0, #6
|
|
add r2, r4, #0
|
|
add r1, r3, #0
|
|
mul r1, r0
|
|
ldr r0, _0225C500 ; =ov07_022377F4 + 2
|
|
add r2, #0x14
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp]
|
|
ldr r0, _0225C504 ; =ov07_022377F4 + 4
|
|
ldrsh r0, [r0, r1]
|
|
add r1, r5, #0
|
|
lsl r5, r3, #2
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
ldr r3, _0225C508 ; =ov07_022377DC
|
|
str r0, [sp, #8]
|
|
mov r0, #0x90
|
|
ldrsb r0, [r4, r0]
|
|
ldrsh r3, [r3, r5]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x91
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x93
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x14]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x30
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4]
|
|
bl ov12_022612A4
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2c
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #1
|
|
bl sub_020087A4
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FDFC
|
|
str r0, [r4, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C2E6:
|
|
add r1, sp, #0x24
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r0, [r0]
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
str r0, [sp, #0x24]
|
|
add r1, #0x81
|
|
add r2, #0x8c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl BattleSystem_GetPartyMon
|
|
str r0, [sp, #0x2c]
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
add r1, sp, #0x24
|
|
str r0, [sp, #0x28]
|
|
mov r0, #5
|
|
bl ov07_02232694
|
|
str r0, [r4, #8]
|
|
bl ov07_022329B0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C332:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233F20
|
|
cmp r0, #0
|
|
beq _0225C346
|
|
add r0, r4, #0
|
|
add r0, #0x94
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C35A
|
|
_0225C346:
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A04
|
|
cmp r0, #1
|
|
bne _0225C35A
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233EA0
|
|
cmp r0, #1
|
|
beq _0225C35C
|
|
_0225C35A:
|
|
b _0225C6C4
|
|
_0225C35C:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0225C366
|
|
bl ov07_0221FE08
|
|
_0225C366:
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r3, #0
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225C50C ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
add r2, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A44
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
ldr r0, _0225C510 ; =0x00000706
|
|
bne _0225C3A8
|
|
mov r1, #0x75
|
|
bl sub_0200602C
|
|
b _0225C3B0
|
|
_0225C3A8:
|
|
mov r1, #0x74
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
_0225C3B0:
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C3C0:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233E88
|
|
cmp r0, #1
|
|
beq _0225C3D8
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
strb r1, [r0]
|
|
_0225C3D8:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_02008A78
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
cmp r0, r1
|
|
bne _0225C46E
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A54
|
|
cmp r0, #0
|
|
bne _0225C46E
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225C40A
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225C40A:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r2, #0
|
|
add r3, r2, #0
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225C50C ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C46E:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_02008A78
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
cmp r0, r2
|
|
ldr r0, [r4, #4]
|
|
blt _0225C52C
|
|
ldr r0, [r0, #0x20]
|
|
mov r1, #0xc
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf3
|
|
bl sub_020087A4
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225C4AE
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225C4AE:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
add r0, r4, #0
|
|
add r0, #0x8e
|
|
ldrh r0, [r0]
|
|
mov r2, #0
|
|
mov r3, #1
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225C50C ; =ov12_0226D15A
|
|
b _0225C514
|
|
.balign 4, 0
|
|
_0225C4FC: .word ov12_0226D120
|
|
_0225C500: .word ov07_022377F4 + 2
|
|
_0225C504: .word ov07_022377F4 + 4
|
|
_0225C508: .word ov07_022377DC
|
|
_0225C50C: .word ov12_0226D15A
|
|
_0225C510: .word 0x00000706
|
|
_0225C514:
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020090B4
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C52C:
|
|
ldr r0, [r0, #0x20]
|
|
mov r1, #0xc
|
|
mov r2, #0x20
|
|
bl sub_02008C2C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0x20
|
|
bl sub_02008C2C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x90
|
|
ldrsb r1, [r4, r1]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_0200914C
|
|
add sp, #0x1d8
|
|
pop {r4, r5, r6, pc}
|
|
_0225C552:
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232A54
|
|
cmp r0, #0
|
|
bne _0225C586
|
|
mov r0, #6
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C566:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225C586
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
beq _0225C588
|
|
_0225C586:
|
|
b _0225C6C4
|
|
_0225C588:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233ECC
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02232AB8
|
|
add r0, r4, #0
|
|
add r0, #0x92
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C5D0
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x180
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x180
|
|
bl ov12_02261B80
|
|
mov r0, #7
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C5D0:
|
|
mov r0, #8
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C5DA:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225C6C4
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C5FE:
|
|
add r0, r4, #0
|
|
add r0, #0x98
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C640
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0x128
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x128
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C640:
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C64A:
|
|
add r3, r4, #0
|
|
add r3, #0x81
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x28
|
|
add r2, sp, #0xd8
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0xd8
|
|
mov r1, #5
|
|
bl ov07_02234A20
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x80
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x80
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #1
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1d8
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225C6A6:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
add r2, #0x80
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225C6C4:
|
|
add sp, #0x1d8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225C18C
|
|
|
|
thumb_func_start ov12_0225C6C8
|
|
ov12_0225C6C8: ; 0x0225C6C8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x1fc
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x83
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #9
|
|
bls _0225C6E4
|
|
b _0225C98C
|
|
_0225C6E4:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225C6F0: ; jump table
|
|
.short _0225C704 - _0225C6F0 - 2 ; case 0
|
|
.short _0225C7C2 - _0225C6F0 - 2 ; case 1
|
|
.short _0225C8C0 - _0225C6F0 - 2 ; case 2
|
|
.short _0225C7FA - _0225C6F0 - 2 ; case 3
|
|
.short _0225C858 - _0225C6F0 - 2 ; case 4
|
|
.short _0225C8C0 - _0225C6F0 - 2 ; case 5
|
|
.short _0225C8E4 - _0225C6F0 - 2 ; case 6
|
|
.short _0225C8C0 - _0225C6F0 - 2 ; case 7
|
|
.short _0225C930 - _0225C6F0 - 2 ; case 8
|
|
.short _0225C8C0 - _0225C6F0 - 2 ; case 9
|
|
_0225C704:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
add r5, r0, #0
|
|
mov r0, #0x69
|
|
add r2, #0x86
|
|
add r3, #0x82
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3]
|
|
add r1, sp, #0x24
|
|
bl sub_02072914
|
|
add r0, r4, #0
|
|
add r0, #0x82
|
|
ldrb r1, [r0]
|
|
mov r0, #6
|
|
add r2, r4, #0
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
ldr r0, _0225C9B0 ; =ov07_022377F4 + 38
|
|
add r1, r5, #0
|
|
ldrsh r0, [r0, r3]
|
|
ldr r5, _0225C9B4 ; =ov07_022377F4 + 36
|
|
add r2, #0x14
|
|
str r0, [sp]
|
|
ldr r0, _0225C9B8 ; =ov07_022377F4 + 4
|
|
ldrsh r0, [r0, r3]
|
|
ldrsh r3, [r5, r3]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x90
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x91
|
|
ldrsb r0, [r4, r0]
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r0, #0x93
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x14]
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x18]
|
|
add r0, sp, #0x24
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4]
|
|
bl ov12_022612A4
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf4
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
add r2, #0xf3
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2c
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C7C2:
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0x29
|
|
add r2, sp, #0x1a4
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x1a4
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C7FA:
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _0225C810
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x2d
|
|
ldr r0, [r0, #0x20]
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
_0225C810:
|
|
mov r0, #0x69
|
|
ldr r3, [r4, #4]
|
|
lsl r0, r0, #2
|
|
ldr r0, [r3, r0]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r0, #0x97
|
|
ldrb r0, [r0]
|
|
add r2, #0x82
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
ldr r3, [r3, #0x20]
|
|
bl ov12_02261F38
|
|
mov r0, #4
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C858:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B750
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
ldrb r1, [r1]
|
|
bl sub_02017068
|
|
cmp r0, #1
|
|
bne _0225C878
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
bl sub_020085DC
|
|
cmp r0, #0
|
|
beq _0225C87A
|
|
_0225C878:
|
|
b _0225C9AA
|
|
_0225C87A:
|
|
add r0, r4, #0
|
|
add r0, #0x92
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C8B6
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xb
|
|
add r2, sp, #0x14c
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x14c
|
|
bl ov12_02261B80
|
|
mov r0, #5
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C8B6:
|
|
mov r0, #6
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C8C0:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225C9AA
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C8E4:
|
|
add r0, r4, #0
|
|
add r0, #0x98
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225C926
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0xf4
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0xf4
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C926:
|
|
mov r0, #0xff
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C930:
|
|
add r3, r4, #0
|
|
add r3, #0x81
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x28
|
|
add r2, sp, #0xa4
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0xa4
|
|
mov r1, #5
|
|
bl ov07_02234A20
|
|
add r0, r4, #0
|
|
add r0, #0x81
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x4c
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x4c
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #1
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x83
|
|
ldrb r0, [r0]
|
|
add r4, #0x83
|
|
add sp, #0x1fc
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225C98C:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x81
|
|
add r2, #0x80
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225C9AA:
|
|
add sp, #0x1fc
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_0225C9B0: .word ov07_022377F4 + 38
|
|
_0225C9B4: .word ov07_022377F4 + 36
|
|
_0225C9B8: .word ov07_022377F4 + 4
|
|
thumb_func_end ov12_0225C6C8
|
|
|
|
thumb_func_start ov12_0225C9BC
|
|
ov12_0225C9BC: ; 0x0225C9BC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x178
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #8
|
|
bhi _0225CAA6
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225C9E2: ; jump table
|
|
.short _0225C9F4 - _0225C9E2 - 2 ; case 0
|
|
.short _0225CA98 - _0225C9E2 - 2 ; case 1
|
|
.short _0225CA3C - _0225C9E2 - 2 ; case 2
|
|
.short _0225CA98 - _0225C9E2 - 2 ; case 3
|
|
.short _0225CABE - _0225C9E2 - 2 ; case 4
|
|
.short _0225CBB0 - _0225C9E2 - 2 ; case 5
|
|
.short _0225CBCA - _0225C9E2 - 2 ; case 6
|
|
.short _0225CC0A - _0225C9E2 - 2 ; case 7
|
|
.short _0225CC24 - _0225C9E2 - 2 ; case 8
|
|
_0225C9F4:
|
|
ldr r0, [r4, #0x70]
|
|
cmp r0, #0
|
|
beq _0225CA32
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0x120
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x120
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CA32:
|
|
mov r0, #4
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CA3C:
|
|
add r3, r4, #0
|
|
add r3, #0x69
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, sp, #0xd0
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0xd0
|
|
mov r1, #5
|
|
bl ov07_0223494C
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x78
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x78
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CA98:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
beq _0225CAA8
|
|
_0225CAA6:
|
|
b _0225CC42
|
|
_0225CAA8:
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CABE:
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r5, [r0]
|
|
mov r0, #1
|
|
tst r0, r5
|
|
beq _0225CB06
|
|
ldr r0, _0225CC48 ; =ov12_0226D120
|
|
ldrb r0, [r0, r5]
|
|
str r0, [sp, #0x50]
|
|
mov r0, #5
|
|
str r0, [sp, #0x54]
|
|
str r0, [sp, #0x58]
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x5c]
|
|
add r0, r4, #0
|
|
add r0, #0x6e
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x6c]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x70]
|
|
mov r0, #1
|
|
str r0, [sp, #0x64]
|
|
mov r0, #0
|
|
str r0, [sp, #0x68]
|
|
add r0, sp, #0x50
|
|
bl ov07_02233DB8
|
|
b _0225CB52
|
|
_0225CB06:
|
|
ldr r3, _0225CC4C ; =ov12_0226D128
|
|
add r2, sp, #0x10
|
|
add r6, 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}
|
|
lsl r0, r5, #2
|
|
ldr r0, [r6, r0]
|
|
str r0, [sp, #0x28]
|
|
mov r0, #5
|
|
str r0, [sp, #0x2c]
|
|
str r0, [sp, #0x30]
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0x34]
|
|
add r0, r4, #0
|
|
add r0, #0x6e
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x44]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x48]
|
|
mov r0, #1
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #0
|
|
str r0, [sp, #0x40]
|
|
add r0, sp, #0x28
|
|
bl ov07_02233DB8
|
|
_0225CB52:
|
|
str r0, [r4, #0xc]
|
|
add r0, r4, #0
|
|
mov r1, #5
|
|
add r0, #0x6b
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6e
|
|
ldrh r0, [r0]
|
|
mov r2, #0x10
|
|
lsl r1, r0, #1
|
|
ldr r0, _0225CC50 ; =ov12_0226D15A
|
|
ldrh r0, [r0, r1]
|
|
mov r1, #0
|
|
add r3, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r4, #8]
|
|
bl sub_020090B4
|
|
add r4, #0x6a
|
|
ldrb r0, [r4]
|
|
cmp r0, #5
|
|
bhi _0225CC42
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225CB8A: ; jump table
|
|
.short _0225CB96 - _0225CB8A - 2 ; case 0
|
|
.short _0225CBA4 - _0225CB8A - 2 ; case 1
|
|
.short _0225CB96 - _0225CB8A - 2 ; case 2
|
|
.short _0225CBA4 - _0225CB8A - 2 ; case 3
|
|
.short _0225CB96 - _0225CB8A - 2 ; case 4
|
|
.short _0225CBA4 - _0225CB8A - 2 ; case 5
|
|
_0225CB96:
|
|
mov r1, #0x74
|
|
ldr r0, _0225CC54 ; =0x00000706
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
add sp, #0x178
|
|
pop {r4, r5, r6, pc}
|
|
_0225CBA4:
|
|
ldr r0, _0225CC54 ; =0x00000706
|
|
mov r1, #0x75
|
|
bl sub_0200602C
|
|
add sp, #0x178
|
|
pop {r4, r5, r6, pc}
|
|
_0225CBB0:
|
|
ldr r0, [r4, #8]
|
|
bl sub_02009138
|
|
cmp r0, #0
|
|
bne _0225CC42
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CBCA:
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r4, #8]
|
|
sub r2, #0x2c
|
|
bl sub_02008C2C
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r4, #8]
|
|
sub r2, #0x2d
|
|
bl sub_02008C2C
|
|
add r1, r4, #0
|
|
add r1, #0x6c
|
|
ldrb r1, [r1]
|
|
ldr r0, [r4, #8]
|
|
bl sub_0200914C
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xc
|
|
bl sub_02008A78
|
|
cmp r0, #0
|
|
bgt _0225CC42
|
|
ldr r0, [r4, #8]
|
|
bl sub_02008780
|
|
mov r0, #7
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CC0A:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233E88
|
|
cmp r0, #0
|
|
bne _0225CC42
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02233ECC
|
|
mov r0, #8
|
|
add r4, #0x6b
|
|
add sp, #0x178
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CC24:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x69
|
|
add r2, #0x68
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225CC42:
|
|
add sp, #0x178
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0225CC48: .word ov12_0226D120
|
|
_0225CC4C: .word ov12_0226D128
|
|
_0225CC50: .word ov12_0226D15A
|
|
_0225CC54: .word 0x00000706
|
|
thumb_func_end ov12_0225C9BC
|
|
|
|
thumb_func_start ov12_0225CC58
|
|
ov12_0225CC58: ; 0x0225CC58
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x168
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x6b
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #7
|
|
bls _0225CC74
|
|
b _0225CDB4
|
|
_0225CC74:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225CC80: ; jump table
|
|
.short _0225CC90 - _0225CC80 - 2 ; case 0
|
|
.short _0225CD34 - _0225CC80 - 2 ; case 1
|
|
.short _0225CCD8 - _0225CC80 - 2 ; case 2
|
|
.short _0225CD34 - _0225CC80 - 2 ; case 3
|
|
.short _0225CD58 - _0225CC80 - 2 ; case 4
|
|
.short _0225CD34 - _0225CC80 - 2 ; case 5
|
|
.short _0225CD90 - _0225CC80 - 2 ; case 6
|
|
.short _0225CD96 - _0225CC80 - 2 ; case 7
|
|
_0225CC90:
|
|
ldr r0, [r4, #0x70]
|
|
cmp r0, #0
|
|
beq _0225CCCE
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0x110
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x110
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x168
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CCCE:
|
|
mov r0, #4
|
|
add r4, #0x6b
|
|
add sp, #0x168
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CCD8:
|
|
add r3, r4, #0
|
|
add r3, #0x69
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, sp, #0xc0
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0xc0
|
|
mov r1, #5
|
|
bl ov07_0223494C
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x68
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x68
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x168
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CD34:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225CDB4
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x168
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CD58:
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0x2a
|
|
add r2, sp, #0x10
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x10
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
add r4, #0x6b
|
|
add sp, #0x168
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CD90:
|
|
ldr r0, [r4, #8]
|
|
bl sub_02008780
|
|
_0225CD96:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x69
|
|
add r2, #0x68
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225CDB4:
|
|
add sp, #0x168
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225CC58
|
|
|
|
thumb_func_start ov12_0225CDB8
|
|
ov12_0225CDB8: ; 0x0225CDB8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0
|
|
beq _0225CDCA
|
|
cmp r0, #1
|
|
beq _0225CE10
|
|
pop {r3, r4, r5, pc}
|
|
_0225CDCA:
|
|
mov r1, #0xc
|
|
add r2, r1, #0
|
|
ldr r0, [r4, #4]
|
|
sub r2, #0x2c
|
|
bl sub_02008C2C
|
|
mov r1, #0xd
|
|
add r2, r1, #0
|
|
ldr r0, [r4, #4]
|
|
sub r2, #0x2d
|
|
bl sub_02008C2C
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
beq _0225CDF6
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #0xc]
|
|
mov r1, #1
|
|
ldr r0, [r4, #4]
|
|
sub r2, r1, #2
|
|
bl sub_02008C2C
|
|
_0225CDF6:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0xc
|
|
bl sub_02008A78
|
|
cmp r0, #0
|
|
bgt _0225CE26
|
|
ldr r0, [r4, #4]
|
|
bl sub_02008780
|
|
ldrb r0, [r4, #0xb]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xb]
|
|
pop {r3, r4, r5, pc}
|
|
_0225CE10:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225CE26:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225CDB8
|
|
|
|
thumb_func_start ov12_0225CE28
|
|
ov12_0225CE28: ; 0x0225CE28
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0x21
|
|
bge _0225CE64
|
|
ldrb r0, [r4, #0x12]
|
|
cmp r0, #2
|
|
blo _0225CE64
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _0225CE4E
|
|
cmp r0, #2
|
|
bne _0225CE64
|
|
_0225CE4E:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
mov r1, #3
|
|
mov r2, #1
|
|
mov r3, #4
|
|
bl BgSetPosTextAndCommit
|
|
ldr r0, [r4, #0x20]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
_0225CE64:
|
|
ldrb r0, [r4, #0x12]
|
|
cmp r0, #4
|
|
bls _0225CE6C
|
|
b _0225D132
|
|
_0225CE6C:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225CE78: ; jump table
|
|
.short _0225CE82 - _0225CE78 - 2 ; case 0
|
|
.short _0225CEA4 - _0225CE78 - 2 ; case 1
|
|
.short _0225CEB0 - _0225CE78 - 2 ; case 2
|
|
.short _0225D102 - _0225CE78 - 2 ; case 3
|
|
.short _0225D11C - _0225CE78 - 2 ; case 4
|
|
_0225CE82:
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DC40
|
|
cmp r0, #2
|
|
bls _0225CE9C
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0
|
|
bl sub_0200DCC0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #2
|
|
bl sub_0200DC4C
|
|
_0225CE9C:
|
|
mov r0, #0x1c
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #1
|
|
strb r0, [r4, #0x12]
|
|
_0225CEA4:
|
|
ldr r0, [r4, #0x1c]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x1c]
|
|
bne _0225CF9A
|
|
mov r0, #2
|
|
strb r0, [r4, #0x12]
|
|
_0225CEB0:
|
|
ldr r0, [r4, #8]
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
add r1, sp, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
ldrb r0, [r4, #0x13]
|
|
cmp r0, #2
|
|
ldr r0, [r4, #0x18]
|
|
beq _0225CED4
|
|
b _0225CFEE
|
|
_0225CED4:
|
|
cmp r0, #1
|
|
beq _0225CEDC
|
|
cmp r0, #3
|
|
bne _0225CEFE
|
|
_0225CEDC:
|
|
add r1, sp, #0
|
|
mov r0, #6
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xc0
|
|
ldr r0, [r4, #8]
|
|
bge _0225CEF4
|
|
ldr r0, [r0]
|
|
mov r1, #8
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225CEFE
|
|
_0225CEF4:
|
|
ldr r0, [r0]
|
|
mov r1, #0xc0
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
_0225CEFE:
|
|
ldr r0, [r4, #8]
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #1
|
|
beq _0225CF22
|
|
cmp r0, #3
|
|
bne _0225CF34
|
|
cmp r5, #3
|
|
beq _0225CF22
|
|
cmp r5, #0x83
|
|
beq _0225CF22
|
|
cmp r5, #7
|
|
bne _0225CF34
|
|
_0225CF22:
|
|
add r3, sp, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DDB8
|
|
b _0225CF80
|
|
_0225CF34:
|
|
cmp r0, #3
|
|
bne _0225CF5E
|
|
add r2, sp, #0
|
|
mov r0, #2
|
|
mov r1, #6
|
|
ldrsh r3, [r2, r0]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, r3, r0
|
|
strh r0, [r2, #6]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, #0x18
|
|
strh r0, [r2, #6]
|
|
ldrsh r1, [r2, r1]
|
|
ldr r0, [r4, #0xc]
|
|
mov r2, #0
|
|
neg r1, r1
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
bl sub_0200DED0
|
|
b _0225CF80
|
|
_0225CF5E:
|
|
cmp r0, #5
|
|
bne _0225CF80
|
|
add r2, sp, #0
|
|
mov r1, #6
|
|
mov r0, #2
|
|
ldrsh r3, [r2, r1]
|
|
ldrsh r0, [r2, r0]
|
|
sub r0, r3, r0
|
|
strh r0, [r2, #6]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, #0x10
|
|
strh r0, [r2, #6]
|
|
ldrsh r1, [r2, r1]
|
|
ldr r0, [r4, #0xc]
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
_0225CF80:
|
|
add r1, sp, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
mov r0, #0x14
|
|
ldrsh r1, [r4, r0]
|
|
add r3, sp, #0
|
|
mov r0, #2
|
|
ldrsh r0, [r3, r0]
|
|
cmp r0, r1
|
|
bge _0225CF9C
|
|
_0225CF9A:
|
|
b _0225D132
|
|
_0225CF9C:
|
|
mov r2, #0
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DDB8
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #1
|
|
beq _0225CFB0
|
|
cmp r0, #3
|
|
bne _0225CFBC
|
|
_0225CFB0:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xc0
|
|
ldr r0, [r0]
|
|
mov r2, #0x58
|
|
bl sub_0200DDB8
|
|
_0225CFBC:
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DC40
|
|
cmp r0, #1
|
|
bls _0225CFE6
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #0
|
|
bl sub_0200DCC0
|
|
ldr r0, [r4, #0xc]
|
|
mov r1, #1
|
|
bl sub_0200DC4C
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #1
|
|
add sp, #8
|
|
bic r1, r0
|
|
strh r1, [r4, #0x16]
|
|
mov r0, #3
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CFE6:
|
|
mov r0, #4
|
|
add sp, #8
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225CFEE:
|
|
cmp r0, #0
|
|
beq _0225CFF6
|
|
cmp r0, #2
|
|
bne _0225D018
|
|
_0225CFF6:
|
|
add r0, sp, #0
|
|
mov r1, #6
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0x40
|
|
ldr r0, [r4, #8]
|
|
ble _0225D00E
|
|
ldr r0, [r0]
|
|
sub r1, #0xe
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225D018
|
|
_0225D00E:
|
|
ldr r0, [r0]
|
|
mov r1, #0x40
|
|
mov r2, #0x88
|
|
bl sub_0200DDB8
|
|
_0225D018:
|
|
ldr r0, [r4, #8]
|
|
add r1, sp, #4
|
|
ldr r0, [r0]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _0225D040
|
|
cmp r0, #2
|
|
bne _0225D052
|
|
cmp r5, #3
|
|
beq _0225D040
|
|
cmp r5, #0x83
|
|
beq _0225D040
|
|
cmp r5, #0x13
|
|
beq _0225D040
|
|
cmp r5, #7
|
|
bne _0225D052
|
|
_0225D040:
|
|
add r3, sp, #0
|
|
mov r1, #6
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DDB8
|
|
b _0225D09E
|
|
_0225D052:
|
|
cmp r0, #2
|
|
bne _0225D076
|
|
add r2, sp, #0
|
|
mov r1, #6
|
|
mov r0, #2
|
|
ldrsh r3, [r2, r1]
|
|
ldrsh r0, [r2, r0]
|
|
sub r0, r3, r0
|
|
strh r0, [r2, #6]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, #0x18
|
|
strh r0, [r2, #6]
|
|
ldrsh r1, [r2, r1]
|
|
ldr r0, [r4, #0xc]
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
b _0225D09E
|
|
_0225D076:
|
|
cmp r0, #4
|
|
bne _0225D09E
|
|
add r2, sp, #0
|
|
mov r0, #2
|
|
mov r1, #6
|
|
ldrsh r3, [r2, r0]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, r3, r0
|
|
strh r0, [r2, #6]
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, #0x10
|
|
strh r0, [r2, #6]
|
|
ldrsh r1, [r2, r1]
|
|
ldr r0, [r4, #0xc]
|
|
mov r2, #0
|
|
neg r1, r1
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
bl sub_0200DED0
|
|
_0225D09E:
|
|
add r1, sp, #0
|
|
ldr r0, [r4, #0xc]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0225D0BC
|
|
add r3, sp, #0
|
|
mov r2, #2
|
|
ldrsh r2, [r3, r2]
|
|
mov r1, #0
|
|
bl sub_020087A4
|
|
_0225D0BC:
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
mov r0, #0x14
|
|
ldrsh r0, [r4, r0]
|
|
cmp r1, r0
|
|
bgt _0225D132
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0225D0D4
|
|
bl sub_02008780
|
|
_0225D0D4:
|
|
mov r1, #0x14
|
|
add r3, sp, #0
|
|
mov r2, #0
|
|
ldrsh r1, [r4, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DDB8
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0
|
|
beq _0225D0EE
|
|
cmp r0, #2
|
|
bne _0225D0FA
|
|
_0225D0EE:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x40
|
|
ldr r0, [r0]
|
|
mov r2, #0x88
|
|
bl sub_0200DDB8
|
|
_0225D0FA:
|
|
mov r0, #4
|
|
add sp, #8
|
|
strb r0, [r4, #0x12]
|
|
pop {r4, r5, r6, pc}
|
|
_0225D102:
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200DCA0
|
|
cmp r0, #1
|
|
bne _0225D118
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0
|
|
bl ov12_02261DC8
|
|
cmp r0, #0
|
|
beq _0225D132
|
|
_0225D118:
|
|
mov r0, #4
|
|
strb r0, [r4, #0x12]
|
|
_0225D11C:
|
|
ldrb r1, [r4, #0x11]
|
|
ldrb r2, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225D132:
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225CE28
|
|
|
|
thumb_func_start ov12_0225D138
|
|
ov12_0225D138: ; 0x0225D138
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
add r6, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #6
|
|
bls _0225D150
|
|
b _0225D62E
|
|
_0225D150:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225D15C: ; jump table
|
|
.short _0225D16A - _0225D15C - 2 ; case 0
|
|
.short _0225D244 - _0225D15C - 2 ; case 1
|
|
.short _0225D368 - _0225D15C - 2 ; case 2
|
|
.short _0225D522 - _0225D15C - 2 ; case 3
|
|
.short _0225D5D2 - _0225D15C - 2 ; case 4
|
|
.short _0225D5F0 - _0225D15C - 2 ; case 5
|
|
.short _0225D618 - _0225D15C - 2 ; case 6
|
|
_0225D16A:
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
bne _0225D178
|
|
mov r0, #1
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D178:
|
|
cmp r0, #4
|
|
bhi _0225D192
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225D188: ; jump table
|
|
.short _0225D192 - _0225D188 - 2 ; case 0
|
|
.short _0225D192 - _0225D188 - 2 ; case 1
|
|
.short _0225D1A0 - _0225D188 - 2 ; case 2
|
|
.short _0225D1AE - _0225D188 - 2 ; case 3
|
|
.short _0225D1BC - _0225D188 - 2 ; case 4
|
|
_0225D192:
|
|
mov r0, #0xf
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
str r0, [r4, #0x18]
|
|
mov r0, #5
|
|
str r0, [sp, #0x18]
|
|
b _0225D1CA
|
|
_0225D1A0:
|
|
mov r0, #0xc
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #0x18]
|
|
ldr r0, _0225D4F0 ; =0x00000401
|
|
str r0, [sp, #0x18]
|
|
b _0225D1CA
|
|
_0225D1AE:
|
|
mov r0, #0xd
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [r4, #0x18]
|
|
ldr r0, _0225D4F4 ; =0x00000402
|
|
str r0, [sp, #0x18]
|
|
b _0225D1CA
|
|
_0225D1BC:
|
|
mov r0, #0xf
|
|
str r0, [sp, #8]
|
|
mov r0, #3
|
|
str r0, [r4, #0x18]
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
str r0, [sp, #0x18]
|
|
_0225D1CA:
|
|
mov r0, #5
|
|
str r0, [sp, #0xc]
|
|
mov r0, #4
|
|
str r0, [sp, #0x10]
|
|
ldrb r0, [r4, #9]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x28]
|
|
mov r0, #0
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4]
|
|
str r0, [sp, #0x2c]
|
|
add r0, sp, #8
|
|
bl ov07_02233DB8
|
|
ldr r1, [r4, #4]
|
|
add r1, #0x88
|
|
str r0, [r1]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x64
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344C4
|
|
ldr r0, [r4, #4]
|
|
mov r1, #2
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344D0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344C0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DCC0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC4C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC78
|
|
mov r0, #3
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D244:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #2
|
|
ldr r0, [r4, #4]
|
|
bne _0225D344
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #4
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
add r1, sp, #4
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
cmp r0, #0xa0
|
|
blt _0225D2D6
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233F20
|
|
cmp r0, #0
|
|
beq _0225D2D6
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_0223449C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233EFC
|
|
mov r0, #2
|
|
tst r0, r6
|
|
beq _0225D2E4
|
|
mov r0, #8
|
|
tst r0, r6
|
|
bne _0225D2E4
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r4, r0, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl ov07_0223449C
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov07_02233EFC
|
|
add r4, #0x88
|
|
ldr r0, [r4]
|
|
mov r1, #0xc
|
|
bl ov07_022344DC
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D2D6:
|
|
add r1, sp, #4
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bge _0225D2E6
|
|
_0225D2E4:
|
|
b _0225D62E
|
|
_0225D2E6:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8EC
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200D9DC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D4FC ; =0x00004E2F
|
|
add r1, r2, r1
|
|
bl sub_0200D958
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D500 ; =0x00004E2A
|
|
add r1, r2, r1
|
|
bl sub_0200D968
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D504 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D978
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D504 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D988
|
|
mov r0, #6
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D344:
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #0
|
|
bl sub_0200DCC0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC4C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC78
|
|
mov r0, #2
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D368:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
ldr r0, [r0, #0x18]
|
|
mvn r1, r1
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #4
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
ldr r1, [r4, #4]
|
|
add r0, r1, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225D48E
|
|
ldr r0, [r1, #0x18]
|
|
bl sub_0200DCD4
|
|
ldr r1, [r4, #0xc]
|
|
str r0, [sp]
|
|
lsl r5, r0, #2
|
|
mov r0, #0x18
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, _0225D508 ; =ov12_0226D1E8
|
|
add r0, r0, r2
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, _0225D50C ; =0x00007FFF
|
|
cmp r1, r0
|
|
beq _0225D48E
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_0223449C
|
|
ldr r1, [r4, #0xc]
|
|
mov r0, #0x18
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
ldr r2, _0225D508 ; =ov12_0226D1E8
|
|
add r7, sp, #4
|
|
mov r1, #2
|
|
add r2, r2, r3
|
|
ldrsh r1, [r7, r1]
|
|
ldrsh r2, [r5, r2]
|
|
ldr r0, [r4, #4]
|
|
add r1, r1, r2
|
|
mov r2, #0
|
|
ldrsh r7, [r7, r2]
|
|
ldr r2, _0225D510 ; =ov12_0226D1EA
|
|
add r0, #0x88
|
|
add r2, r2, r3
|
|
ldrsh r2, [r5, r2]
|
|
lsl r1, r1, #0x10
|
|
ldr r0, [r0]
|
|
add r2, r7, r2
|
|
lsl r2, r2, #0x10
|
|
asr r1, r1, #0x10
|
|
asr r2, r2, #0x10
|
|
bl ov07_022344A8
|
|
ldr r0, [sp]
|
|
cmp r0, #3
|
|
bne _0225D48E
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233F20
|
|
cmp r0, #0
|
|
beq _0225D48E
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233EFC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344C0
|
|
mov r0, #2
|
|
tst r0, r6
|
|
beq _0225D48E
|
|
mov r0, #8
|
|
tst r0, r6
|
|
bne _0225D48E
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
ldr r1, [r4, #0xc]
|
|
add r6, r0, #0
|
|
add r3, r1, #0
|
|
mov r0, #0x18
|
|
mul r3, r0
|
|
ldr r2, _0225D508 ; =ov12_0226D1E8
|
|
add r0, r6, #0
|
|
add r2, r2, r3
|
|
add r0, #0x88
|
|
add r7, sp, #4
|
|
mov r1, #2
|
|
ldrsh r1, [r7, r1]
|
|
ldrsh r2, [r5, r2]
|
|
ldr r0, [r0]
|
|
add r1, r1, r2
|
|
mov r2, #0
|
|
ldrsh r7, [r7, r2]
|
|
ldr r2, _0225D510 ; =ov12_0226D1EA
|
|
lsl r1, r1, #0x10
|
|
add r2, r2, r3
|
|
ldrsh r2, [r5, r2]
|
|
asr r1, r1, #0x10
|
|
add r2, r7, r2
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
bl ov07_022344A8
|
|
add r0, r6, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl ov07_0223449C
|
|
add r0, r6, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov07_02233EFC
|
|
add r6, #0x88
|
|
ldr r0, [r6]
|
|
mov r1, #1
|
|
bl ov07_022344C0
|
|
_0225D48E:
|
|
add r1, sp, #4
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
sub r0, #0x2a
|
|
cmp r1, r0
|
|
ble _0225D49C
|
|
b _0225D62E
|
|
_0225D49C:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8EC
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200D9DC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D4FC ; =0x00004E2F
|
|
add r1, r2, r1
|
|
bl sub_0200D958
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D500 ; =0x00004E2A
|
|
add r1, r2, r1
|
|
bl sub_0200D968
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D504 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D978
|
|
ldr r2, [r4, #4]
|
|
ldr r1, _0225D4F8 ; =0x00000195
|
|
add r0, r5, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D504 ; =0x00004E27
|
|
b _0225D514
|
|
nop
|
|
_0225D4F0: .word 0x00000401
|
|
_0225D4F4: .word 0x00000402
|
|
_0225D4F8: .word 0x00000195
|
|
_0225D4FC: .word 0x00004E2F
|
|
_0225D500: .word 0x00004E2A
|
|
_0225D504: .word 0x00004E27
|
|
_0225D508: .word ov12_0226D1E8
|
|
_0225D50C: .word 0x00007FFF
|
|
_0225D510: .word ov12_0226D1EA
|
|
_0225D514:
|
|
add r1, r2, r1
|
|
bl sub_0200D988
|
|
mov r0, #6
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D522:
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #4
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #4
|
|
bl sub_0200DE44
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DCD4
|
|
add r7, r0, #0
|
|
cmp r7, #4
|
|
bne _0225D54A
|
|
mov r0, #8
|
|
str r0, [r4, #0x14]
|
|
mov r0, #4
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D54A:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225D62E
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x18
|
|
add r5, r2, #0
|
|
mul r5, r1
|
|
ldr r1, _0225D634 ; =ov12_0226D1E8
|
|
lsl r6, r7, #2
|
|
add r1, r1, r5
|
|
ldrsh r1, [r6, r1]
|
|
ldr r2, _0225D638 ; =0x00007FFF
|
|
cmp r1, r2
|
|
beq _0225D62E
|
|
add r3, sp, #4
|
|
mov r2, #2
|
|
ldrsh r2, [r3, r2]
|
|
add r1, r2, r1
|
|
mov r2, #0
|
|
ldrsh r3, [r3, r2]
|
|
ldr r2, _0225D63C ; =ov12_0226D1EA
|
|
lsl r1, r1, #0x10
|
|
add r2, r2, r5
|
|
ldrsh r2, [r6, r2]
|
|
asr r1, r1, #0x10
|
|
add r2, r3, r2
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
bl ov07_022344A8
|
|
cmp r7, #3
|
|
bne _0225D62E
|
|
ldr r0, [r4, #4]
|
|
ldr r5, [r4, #0x18]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233F20
|
|
cmp r5, r0
|
|
beq _0225D62E
|
|
ldr r0, [r4, #4]
|
|
add r1, r5, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233EFC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344D0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_022344C0
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #3
|
|
beq _0225D62E
|
|
ldr r0, _0225D640 ; =0x0000070A
|
|
bl PlaySE
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D5D2:
|
|
ldr r0, [r4, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x14]
|
|
bne _0225D62E
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #3
|
|
bne _0225D5E8
|
|
mov r0, #6
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D5E8:
|
|
mov r0, #5
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D5F0:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233E88
|
|
cmp r0, #1
|
|
beq _0225D62E
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233ECC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x88
|
|
str r1, [r0]
|
|
mov r0, #6
|
|
add sp, #0x30
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D618:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225D62E:
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225D634: .word ov12_0226D1E8
|
|
_0225D638: .word 0x00007FFF
|
|
_0225D63C: .word ov12_0226D1EA
|
|
_0225D640: .word 0x0000070A
|
|
thumb_func_end ov12_0225D138
|
|
|
|
thumb_func_start ov12_0225D644
|
|
ov12_0225D644: ; 0x0225D644
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetBattleType
|
|
add r4, r0, #0
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0
|
|
beq _0225D664
|
|
cmp r0, #1
|
|
beq _0225D71C
|
|
cmp r0, #2
|
|
bne _0225D662
|
|
b _0225D85A
|
|
_0225D662:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D664:
|
|
ldrb r0, [r5, #0xb]
|
|
cmp r0, #2
|
|
ldr r0, [r5, #4]
|
|
bne _0225D6F0
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bge _0225D694
|
|
b _0225D870
|
|
_0225D694:
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8EC
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200D9DC
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D878 ; =0x00004E2F
|
|
add r1, r2, r1
|
|
bl sub_0200D958
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D87C ; =0x00004E2A
|
|
add r1, r2, r1
|
|
bl sub_0200D968
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D880 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D978
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D880 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D988
|
|
mov r0, #2
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D6F0:
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #1
|
|
bl sub_0200DD54
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DCC0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC4C
|
|
ldr r0, [r5, #4]
|
|
mov r1, #1
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DC78
|
|
mov r0, #1
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D71C:
|
|
ldr r0, [r5, #4]
|
|
mov r1, #4
|
|
ldr r0, [r0, #0x18]
|
|
mvn r1, r1
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
ldr r0, [r5, #4]
|
|
add r1, r0, #0
|
|
add r1, #0x88
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
beq _0225D7F2
|
|
mov r1, #2
|
|
tst r1, r4
|
|
beq _0225D7F2
|
|
mov r1, #8
|
|
tst r1, r4
|
|
bne _0225D7F2
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200DCD4
|
|
add r7, r0, #0
|
|
ldr r1, [r5, #0xc]
|
|
mov r0, #0x18
|
|
add r2, r1, #0
|
|
mul r2, r0
|
|
ldr r0, _0225D884 ; =ov12_0226D1E8
|
|
lsl r6, r7, #2
|
|
add r0, r0, r2
|
|
ldrsh r1, [r6, r0]
|
|
ldr r0, _0225D888 ; =0x00007FFF
|
|
cmp r1, r0
|
|
beq _0225D7F2
|
|
ldrb r1, [r5, #9]
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r4, r0, #0
|
|
cmp r7, #3
|
|
bne _0225D7F2
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
bl ov07_02233F20
|
|
cmp r0, #0
|
|
beq _0225D7F2
|
|
ldr r1, [r5, #0xc]
|
|
mov r0, #0x18
|
|
add r3, r1, #0
|
|
mul r3, r0
|
|
ldr r2, _0225D884 ; =ov12_0226D1E8
|
|
add r7, sp, #0
|
|
mov r1, #2
|
|
add r2, r2, r3
|
|
ldrsh r1, [r7, r1]
|
|
ldrsh r2, [r6, r2]
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
add r1, r1, r2
|
|
mov r2, #0
|
|
ldrsh r7, [r7, r2]
|
|
ldr r2, _0225D88C ; =ov12_0226D1EA
|
|
lsl r1, r1, #0x10
|
|
add r2, r2, r3
|
|
ldrsh r2, [r6, r2]
|
|
ldr r0, [r0]
|
|
asr r1, r1, #0x10
|
|
add r2, r7, r2
|
|
lsl r2, r2, #0x10
|
|
asr r2, r2, #0x10
|
|
bl ov07_022344A8
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl ov07_0223449C
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #0
|
|
bl ov07_02233EFC
|
|
add r0, r4, #0
|
|
add r0, #0x88
|
|
ldr r0, [r0]
|
|
mov r1, #1
|
|
bl ov07_022344C0
|
|
add r4, #0x88
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl ov07_022344D0
|
|
_0225D7F2:
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
sub r0, #0x2a
|
|
cmp r1, r0
|
|
bgt _0225D870
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8EC
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200D9DC
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D878 ; =0x00004E2F
|
|
add r1, r2, r1
|
|
bl sub_0200D958
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D87C ; =0x00004E2A
|
|
add r1, r2, r1
|
|
bl sub_0200D968
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D880 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D978
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D874 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D880 ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D988
|
|
mov r0, #2
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225D85A:
|
|
ldrb r1, [r5, #9]
|
|
ldrb r2, [r5, #8]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225D870:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225D874: .word 0x00000195
|
|
_0225D878: .word 0x00004E2F
|
|
_0225D87C: .word 0x00004E2A
|
|
_0225D880: .word 0x00004E27
|
|
_0225D884: .word ov12_0226D1E8
|
|
_0225D888: .word 0x00007FFF
|
|
_0225D88C: .word ov12_0226D1EA
|
|
thumb_func_end ov12_0225D644
|
|
|
|
thumb_func_start ov12_0225D890
|
|
ov12_0225D890: ; 0x0225D890
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0
|
|
beq _0225D8A6
|
|
cmp r0, #1
|
|
beq _0225D90E
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225D8A6:
|
|
ldrb r0, [r5, #0xb]
|
|
cmp r0, #2
|
|
ldr r0, [r5, #4]
|
|
bne _0225D8DE
|
|
ldr r0, [r0, #0x18]
|
|
mov r1, #5
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
blt _0225D97A
|
|
ldrb r0, [r5, #0xa]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225D8DE:
|
|
mov r1, #4
|
|
ldr r0, [r0, #0x18]
|
|
mvn r1, r1
|
|
mov r2, #0
|
|
bl sub_0200DED0
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0
|
|
ldr r0, [r0, #0x18]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
add r1, sp, #0
|
|
mov r0, #2
|
|
ldrsh r1, [r1, r0]
|
|
sub r0, #0x2a
|
|
cmp r1, r0
|
|
bgt _0225D97A
|
|
ldrb r0, [r5, #0xa]
|
|
add sp, #4
|
|
add r0, r0, #1
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0225D90E:
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8EC
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
ldr r0, [r0, #0x18]
|
|
bl sub_0200D9DC
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x18]
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D980 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D984 ; =0x00004E2F
|
|
add r1, r2, r1
|
|
bl sub_0200D958
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D980 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D988 ; =0x00004E2A
|
|
add r1, r2, r1
|
|
bl sub_0200D968
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D980 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D98C ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D978
|
|
ldr r2, [r5, #4]
|
|
ldr r1, _0225D980 ; =0x00000195
|
|
add r0, r4, #0
|
|
ldrb r2, [r2, r1]
|
|
ldr r1, _0225D98C ; =0x00004E27
|
|
add r1, r2, r1
|
|
bl sub_0200D988
|
|
ldrb r1, [r5, #9]
|
|
ldrb r2, [r5, #8]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225D97A:
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_0225D980: .word 0x00000195
|
|
_0225D984: .word 0x00004E2F
|
|
_0225D988: .word 0x00004E2A
|
|
_0225D98C: .word 0x00004E27
|
|
thumb_func_end ov12_0225D890
|
|
|
|
thumb_func_start ov12_0225D990
|
|
ov12_0225D990: ; 0x0225D990
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
beq _0225D9A2
|
|
cmp r0, #1
|
|
beq _0225D9FE
|
|
pop {r3, r4, r5, pc}
|
|
_0225D9A2:
|
|
add r1, sp, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, #2
|
|
add r2, sp, #0
|
|
bl sub_0200DE44
|
|
ldrb r0, [r4, #0xb]
|
|
add r2, sp, #0
|
|
cmp r0, #0
|
|
bne _0225D9D2
|
|
mov r1, #2
|
|
ldrsh r0, [r2, r1]
|
|
add r0, r0, #5
|
|
strh r0, [r2, #2]
|
|
mov r0, #0xc
|
|
ldrsh r3, [r4, r0]
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r3
|
|
blt _0225D9EC
|
|
strh r3, [r2, #2]
|
|
ldrb r0, [r4, #0xa]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
b _0225D9EC
|
|
_0225D9D2:
|
|
mov r1, #2
|
|
ldrsh r0, [r2, r1]
|
|
sub r0, r0, #5
|
|
strh r0, [r2, #2]
|
|
mov r0, #0xc
|
|
ldrsh r3, [r4, r0]
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r3
|
|
bgt _0225D9EC
|
|
strh r3, [r2, #2]
|
|
ldrb r0, [r4, #0xa]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
_0225D9EC:
|
|
add r3, sp, #0
|
|
mov r1, #2
|
|
mov r2, #0
|
|
ldrsh r1, [r3, r1]
|
|
ldrsh r2, [r3, r2]
|
|
ldr r0, [r4, #4]
|
|
bl sub_0200DDB8
|
|
pop {r3, r4, r5, pc}
|
|
_0225D9FE:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225D990
|
|
|
|
thumb_func_start ov12_0225DA18
|
|
ov12_0225DA18: ; 0x0225DA18
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
beq _0225DA2A
|
|
cmp r1, #1
|
|
beq _0225DA5A
|
|
b _0225DA6E
|
|
_0225DA2A:
|
|
add r0, r4, #0
|
|
add r0, #0x4d
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225DA42
|
|
add r0, r4, #0
|
|
add r0, #0x4d
|
|
ldrb r0, [r0]
|
|
add r4, #0x4d
|
|
sub r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225DA42:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov12_02264FB0
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl ov12_02264F28
|
|
ldrb r0, [r4]
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225DA5A:
|
|
add r0, r4, #0
|
|
add r0, #0x4f
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #1
|
|
bne _0225DA8A
|
|
add r0, r1, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225DA6E:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x24
|
|
add r2, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl ov12_0226430C
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0225DA8A:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225DA18
|
|
|
|
thumb_func_start ov12_0225DA8C
|
|
ov12_0225DA8C: ; 0x0225DA8C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
bne _0225DAAC
|
|
add r0, r4, #0
|
|
add r0, #0x4f
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #0x1e
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #1
|
|
bne _0225DAD0
|
|
add r0, r1, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225DAAC:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x24
|
|
add r2, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl ov12_0226430C
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov12_02264F28
|
|
_0225DAD0:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225DA8C
|
|
|
|
thumb_func_start ov12_0225DAD4
|
|
ov12_0225DAD4: ; 0x0225DAD4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x58
|
|
add r4, r1, #0
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
add r6, r0, #0
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
add r5, r0, #0
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldrb r0, [r4, #9]
|
|
cmp r1, r0
|
|
beq _0225DB16
|
|
ldr r0, [r4]
|
|
bl ov12_0223BC38
|
|
str r0, [sp, #8]
|
|
b _0225DB1A
|
|
_0225DB16:
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
_0225DB1A:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #8
|
|
bls _0225DB22
|
|
b _0225E0FA
|
|
_0225DB22:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225DB2E: ; jump table
|
|
.short _0225DB40 - _0225DB2E - 2 ; case 0
|
|
.short _0225DB7C - _0225DB2E - 2 ; case 1
|
|
.short _0225DC6A - _0225DB2E - 2 ; case 2
|
|
.short _0225DC80 - _0225DB2E - 2 ; case 3
|
|
.short _0225DC92 - _0225DB2E - 2 ; case 4
|
|
.short _0225DED4 - _0225DB2E - 2 ; case 5
|
|
.short _0225DF40 - _0225DB2E - 2 ; case 6
|
|
.short _0225E06E - _0225DB2E - 2 ; case 7
|
|
.short _0225E0D0 - _0225DB2E - 2 ; case 8
|
|
_0225DB40:
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, sp, #0x40
|
|
_0225DB46:
|
|
ldrh r3, [r1, #0x24]
|
|
add r1, r1, #2
|
|
strh r3, [r2]
|
|
add r3, r4, r0
|
|
add r3, #0x2c
|
|
ldrb r3, [r3]
|
|
strh r3, [r2, #8]
|
|
add r3, r4, r0
|
|
add r3, #0x30
|
|
ldrb r3, [r3]
|
|
add r0, r0, #1
|
|
strh r3, [r2, #0x10]
|
|
add r2, r2, #2
|
|
cmp r0, #4
|
|
blt _0225DB46
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
add r1, r4, #0
|
|
add r1, #0x34
|
|
ldrb r1, [r1]
|
|
add r2, sp, #0x40
|
|
bl ov12_0226885C
|
|
ldrb r0, [r4, #0xa]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
_0225DB7C:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r6, r0, #0
|
|
mov r0, #1
|
|
lsl r0, r0, #0xa
|
|
add r1, r5, #0
|
|
tst r1, r0
|
|
beq _0225DC00
|
|
ldr r0, [r4]
|
|
bl ov12_0223BB04
|
|
cmp r0, #0
|
|
beq _0225DBA0
|
|
cmp r0, #1
|
|
beq _0225DBCC
|
|
add sp, #0x58
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DBA0:
|
|
mov r0, #2
|
|
add r1, sp, #0x10
|
|
strb r0, [r1, #0xd]
|
|
add r0, r4, #0
|
|
add r0, #0x23
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r4, #9]
|
|
mov r3, #0
|
|
lsl r0, r0, #8
|
|
orr r0, r2
|
|
str r0, [sp, #0x20]
|
|
ldr r0, _0225DED8 ; =0x00000399
|
|
add r2, sp, #0x1c
|
|
strh r0, [r1, #0xe]
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
bl ov12_0223C494
|
|
mov r0, #3
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DBCC:
|
|
mov r1, #0
|
|
add r0, sp, #0x10
|
|
strb r1, [r0, #0xd]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AAC8
|
|
ldr r1, _0225DEDC ; =0x000004CA
|
|
add r1, r0, r1
|
|
add r0, sp, #0x10
|
|
strh r1, [r0, #0xe]
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
add r2, sp, #0x1c
|
|
bl ov12_0223C494
|
|
add r1, r4, #0
|
|
add r1, #0x35
|
|
strb r0, [r1]
|
|
mov r0, #2
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DC00:
|
|
mov r1, #0x20
|
|
add r2, r5, #0
|
|
tst r2, r1
|
|
beq _0225DC20
|
|
mov r1, #8
|
|
add r0, sp, #0x10
|
|
strb r1, [r0, #0xd]
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetTrainerIndex
|
|
str r0, [sp, #0x20]
|
|
ldr r1, _0225DEE0 ; =0x0000039A
|
|
add r0, sp, #0x10
|
|
strh r1, [r0, #0xe]
|
|
b _0225DC56
|
|
_0225DC20:
|
|
lsl r1, r1, #4
|
|
tst r1, r5
|
|
beq _0225DC3E
|
|
mov r1, #8
|
|
add r0, sp, #0x10
|
|
strb r1, [r0, #0xd]
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetTrainerIndex
|
|
str r0, [sp, #0x20]
|
|
ldr r1, _0225DEE4 ; =0x000004C6
|
|
add r0, sp, #0x10
|
|
strh r1, [r0, #0xe]
|
|
b _0225DC56
|
|
_0225DC3E:
|
|
add r2, r4, #0
|
|
mov r1, #2
|
|
add r3, sp, #0x10
|
|
strb r1, [r3, #0xd]
|
|
add r2, #0x23
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r4, #9]
|
|
sub r0, #0x67
|
|
lsl r2, r2, #8
|
|
orr r1, r2
|
|
str r1, [sp, #0x20]
|
|
strh r0, [r3, #0xe]
|
|
_0225DC56:
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
add r2, sp, #0x1c
|
|
mov r3, #0
|
|
bl ov12_0223C494
|
|
mov r0, #3
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DC6A:
|
|
add r0, r4, #0
|
|
add r0, #0x35
|
|
ldrb r0, [r0]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _0225DC9C
|
|
mov r0, #3
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DC80:
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264E84
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [r4]
|
|
bl ov12_02261FD4
|
|
mov r0, #4
|
|
strb r0, [r4, #0xa]
|
|
_0225DC92:
|
|
add r0, r6, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #0
|
|
bne _0225DC9E
|
|
_0225DC9C:
|
|
b _0225E0FA
|
|
_0225DC9E:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
ldrb r1, [r4, #9]
|
|
add r0, sp, #0x10
|
|
add r2, r4, #0
|
|
strb r1, [r0, #1]
|
|
add r1, r4, #0
|
|
add r1, #0x34
|
|
ldrb r1, [r1]
|
|
add r2, #0x3b
|
|
strb r1, [r0]
|
|
add r1, r4, #0
|
|
add r1, #0x23
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, #2]
|
|
mov r1, #0x36
|
|
ldrsh r1, [r4, r1]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #0x38]
|
|
strh r1, [r0, #6]
|
|
add r1, r4, #0
|
|
add r1, #0x3a
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, #3]
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0223B580
|
|
add r1, sp, #0x10
|
|
strb r0, [r1, #8]
|
|
ldr r1, _0225DEE8 ; =0x00000197
|
|
ldr r0, [sp, #0xc]
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
beq _0225DDD2
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl ov12_022698AC
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _0225DD20
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #6
|
|
bl ov12_02266508
|
|
b _0225DDC8
|
|
_0225DD20:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
tst r0, r1
|
|
beq _0225DD44
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #0xa
|
|
bl ov12_02266508
|
|
b _0225DDC8
|
|
_0225DD44:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
beq _0225DD66
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #8
|
|
bl ov12_02266508
|
|
b _0225DDC8
|
|
_0225DD66:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
tst r0, r1
|
|
beq _0225DD8A
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #0x14
|
|
bl ov12_02266508
|
|
b _0225DDC8
|
|
_0225DD8A:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
bne _0225DDB4
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
bne _0225DDB4
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #4
|
|
bl ov12_02266508
|
|
b _0225DDC8
|
|
_0225DDB4:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #3
|
|
bl ov12_02266508
|
|
_0225DDC8:
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl ov12_0223BB64
|
|
b _0225DE98
|
|
_0225DDD2:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _0225DDF4
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #5
|
|
bl ov12_02266508
|
|
b _0225DE90
|
|
_0225DDF4:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
lsl r1, r1, #8
|
|
tst r0, r1
|
|
beq _0225DE18
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #9
|
|
bl ov12_02266508
|
|
b _0225DE90
|
|
_0225DE18:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x20
|
|
tst r0, r1
|
|
beq _0225DE3A
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #7
|
|
bl ov12_02266508
|
|
b _0225DE90
|
|
_0225DE3A:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
lsl r1, r1, #0xc
|
|
tst r0, r1
|
|
beq _0225DE5E
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #0x13
|
|
bl ov12_02266508
|
|
b _0225DE90
|
|
_0225DE5E:
|
|
add r0, sp, #0x10
|
|
ldrb r0, [r0]
|
|
cmp r0, #4
|
|
beq _0225DE7C
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #1
|
|
bl ov12_02266508
|
|
b _0225DE90
|
|
_0225DE7C:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
mov r3, #2
|
|
bl ov12_02266508
|
|
_0225DE90:
|
|
ldr r1, _0225DEE8 ; =0x00000197
|
|
ldr r0, [sp, #0xc]
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
_0225DE98:
|
|
add r1, r4, #0
|
|
add r0, r6, #0
|
|
add r1, #0x1c
|
|
bl ov12_02266A50
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r0, r6, #0
|
|
add r1, #0x10
|
|
add r2, #0x16
|
|
bl ov12_02266A6C
|
|
add r0, r6, #0
|
|
bl ov12_02266AC0
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _0225DECC
|
|
bl ov12_02265D70
|
|
_0225DECC:
|
|
mov r0, #5
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DED4:
|
|
ldr r0, _0225DEEC ; =gSystem
|
|
b _0225DEF0
|
|
.balign 4, 0
|
|
_0225DED8: .word 0x00000399
|
|
_0225DEDC: .word 0x000004CA
|
|
_0225DEE0: .word 0x0000039A
|
|
_0225DEE4: .word 0x000004C6
|
|
_0225DEE8: .word 0x00000197
|
|
_0225DEEC: .word gSystem
|
|
_0225DEF0:
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #8
|
|
tst r0, r1
|
|
beq _0225DF1E
|
|
ldr r0, [r4]
|
|
mov r5, #0
|
|
bl BattleSys_GetMaxBattlers
|
|
cmp r0, #0
|
|
ble _0225DF1E
|
|
_0225DF04:
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r0, #0x28
|
|
bl ov12_02264C84
|
|
ldr r0, [r4]
|
|
add r5, r5, #1
|
|
bl BattleSys_GetMaxBattlers
|
|
cmp r5, r0
|
|
blt _0225DF04
|
|
_0225DF1E:
|
|
add r0, r6, #0
|
|
bl ov12_02266B78
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [r4, #0xc]
|
|
cmp r0, r1
|
|
beq _0225DF50
|
|
mov r0, #0xa
|
|
strb r0, [r4, #0xb]
|
|
ldr r0, _0225E100 ; =0x000005DD
|
|
bl PlaySE
|
|
mov r0, #6
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225DF40:
|
|
add r0, r6, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #1
|
|
beq _0225DF52
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0225DF52
|
|
_0225DF50:
|
|
b _0225E0FA
|
|
_0225DF52:
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #4
|
|
bls _0225DF5A
|
|
b _0225E062
|
|
_0225DF5A:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225DF66: ; jump table
|
|
.short _0225E062 - _0225DF66 - 2 ; case 0
|
|
.short _0225DF70 - _0225DF66 - 2 ; case 1
|
|
.short _0225DF84 - _0225DF66 - 2 ; case 2
|
|
.short _0225DFD0 - _0225DF66 - 2 ; case 3
|
|
.short _0225E01C - _0225DF66 - 2 ; case 4
|
|
_0225DF70:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x22
|
|
lsl r1, r1, #4
|
|
tst r0, r1
|
|
beq _0225E066
|
|
mov r0, #7
|
|
strb r0, [r4, #0xa]
|
|
b _0225E066
|
|
_0225DF84:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
str r3, [sp, #4]
|
|
bl ov12_02266508
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
ldr r0, [sp, #8]
|
|
bl ov12_02265D74
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #0xc]
|
|
bl ov12_02262014
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
b _0225E066
|
|
_0225DFD0:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
str r3, [sp, #4]
|
|
bl ov12_02266508
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
ldr r0, [sp, #8]
|
|
bl ov12_02265D74
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #0xc]
|
|
bl ov12_02262014
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
b _0225E066
|
|
_0225E01C:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
add r0, r6, #0
|
|
bl ov12_0226AC64
|
|
cmp r0, #1
|
|
bne _0225E044
|
|
ldr r0, [sp, #8]
|
|
bl ov12_02265D74
|
|
mov r0, #0xff
|
|
str r0, [r4, #0xc]
|
|
_0225E044:
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
str r3, [sp, #4]
|
|
bl ov12_02266508
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
b _0225E066
|
|
_0225E062:
|
|
bl GF_AssertFail
|
|
_0225E066:
|
|
mov r0, #8
|
|
add sp, #0x58
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E06E:
|
|
add r0, r6, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #1
|
|
bne _0225E0FA
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
add r2, r6, #0
|
|
str r3, [sp, #4]
|
|
bl ov12_02266508
|
|
add r0, r6, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
ldr r0, [sp, #8]
|
|
bl ov12_02265D74
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #0xc]
|
|
bl ov12_02262014
|
|
add r0, r6, #0
|
|
bl ov12_02266B34
|
|
mov r0, #8
|
|
strb r0, [r4, #0xa]
|
|
add r0, r5, #0
|
|
bl NARC_Delete
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
add sp, #0x58
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E0D0:
|
|
add r0, r6, #0
|
|
bl ov12_022698B0
|
|
cmp r0, #1
|
|
bne _0225E0FA
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #0xc]
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r7, #0
|
|
bl DestroySysTask
|
|
_0225E0FA:
|
|
add sp, #0x58
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225E100: .word 0x000005DD
|
|
thumb_func_end ov12_0225DAD4
|
|
|
|
thumb_func_start ov12_0225E104
|
|
ov12_0225E104: ; 0x0225E104
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov10_022205BC
|
|
add r2, r0, #0
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225E104
|
|
|
|
thumb_func_start ov12_0225E134
|
|
ov12_0225E134: ; 0x0225E134
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225E134
|
|
|
|
thumb_func_start ov12_0225E154
|
|
ov12_0225E154: ; 0x0225E154
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223B694
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7E4
|
|
mov r2, #0
|
|
ldrb r1, [r4, #9]
|
|
add r3, r2, #0
|
|
bl GetBattlerVar
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
mov r1, #0x1a
|
|
bl GetMonBaseStat
|
|
ldr r2, _0225E1CC ; =ov12_0226D140
|
|
lsl r1, r5, #1
|
|
ldrb r2, [r2, r1]
|
|
mul r2, r0
|
|
add r0, r2, #0
|
|
ldr r2, _0225E1D0 ; =ov12_0226D141
|
|
ldrb r1, [r2, r1]
|
|
bl _s32_div_f
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_Random
|
|
mov r1, #0xff
|
|
bl _s32_div_f
|
|
cmp r1, r5
|
|
ldr r0, [r4]
|
|
bgt _0225E1AC
|
|
ldrb r1, [r4, #9]
|
|
mov r2, #4
|
|
bl ov12_02262F24
|
|
b _0225E1B4
|
|
_0225E1AC:
|
|
ldrb r1, [r4, #9]
|
|
mov r2, #5
|
|
bl ov12_02262F24
|
|
_0225E1B4:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225E1CC: .word ov12_0226D140
|
|
_0225E1D0: .word ov12_0226D141
|
|
thumb_func_end ov12_0225E154
|
|
|
|
thumb_func_start ov12_0225E1D4
|
|
ov12_0225E1D4: ; 0x0225E1D4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
mov r2, #4
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225E1D4
|
|
|
|
thumb_func_start ov12_0225E1FC
|
|
ov12_0225E1FC: ; 0x0225E1FC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225E216
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225E216:
|
|
add r0, sp, #0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225E226
|
|
cmp r0, #4
|
|
bhi _0225E226
|
|
cmp r0, #2
|
|
bne _0225E22C
|
|
_0225E226:
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
_0225E22C:
|
|
add r2, sp, #0
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225E1FC
|
|
|
|
thumb_func_start ov12_0225E250
|
|
ov12_0225E250: ; 0x0225E250
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x4c
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
add r7, r0, #0
|
|
ldrb r1, [r4, #0x1d]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
str r0, [sp, #0x10]
|
|
ldrb r1, [r4, #0x1d]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldrb r0, [r4, #0x1d]
|
|
cmp r1, r0
|
|
beq _0225E28A
|
|
ldr r0, [r4]
|
|
bl ov12_0223BC38
|
|
add r5, r0, #0
|
|
b _0225E28C
|
|
_0225E28A:
|
|
mov r5, #0
|
|
_0225E28C:
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bls _0225E298
|
|
b _0225E3D0
|
|
_0225E298:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225E2A4: ; jump table
|
|
.short _0225E2AC - _0225E2A4 - 2 ; case 0
|
|
.short _0225E350 - _0225E2A4 - 2 ; case 1
|
|
.short _0225E376 - _0225E2A4 - 2 ; case 2
|
|
.short _0225E3C2 - _0225E2A4 - 2 ; case 3
|
|
_0225E2AC:
|
|
add r0, r7, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #0
|
|
bne _0225E2B8
|
|
b _0225E3F8
|
|
_0225E2B8:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r1, r0, #0
|
|
mov r2, #2
|
|
add r0, sp, #0x14
|
|
strb r2, [r0, #0x15]
|
|
ldrb r2, [r4, #0x1f]
|
|
ldrb r3, [r4, #0x1d]
|
|
lsl r2, r2, #8
|
|
orr r2, r3
|
|
str r2, [sp, #0x2c]
|
|
ldr r2, _0225E3FC ; =0x00000399
|
|
mov r3, #0
|
|
strh r2, [r0, #0x16]
|
|
ldr r0, [r4]
|
|
add r2, sp, #0x28
|
|
bl ov12_0223C494
|
|
add r0, r7, #0
|
|
bl ov12_02266AC0
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
str r0, [sp, #0xc]
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r5, sp, #0x14
|
|
str r0, [sp, #8]
|
|
mov r2, #0
|
|
add r3, r4, #0
|
|
add r6, r5, #0
|
|
_0225E300:
|
|
ldrh r0, [r3, #0xc]
|
|
add r1, r4, r2
|
|
add r2, r2, #1
|
|
strh r0, [r5]
|
|
ldrb r0, [r1, #0x14]
|
|
add r3, r3, #2
|
|
add r5, r5, #2
|
|
strb r0, [r6, #8]
|
|
ldrb r0, [r1, #0x18]
|
|
strb r0, [r6, #0xc]
|
|
add r6, r6, #1
|
|
cmp r2, #4
|
|
blt _0225E300
|
|
ldrb r1, [r4, #0x1e]
|
|
add r0, sp, #0x14
|
|
add r2, r7, #0
|
|
strb r1, [r0, #0x10]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x14
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #8]
|
|
mov r3, #0xb
|
|
bl ov12_02266508
|
|
ldr r0, [sp, #0xc]
|
|
bl NARC_Delete
|
|
ldr r0, [sp, #8]
|
|
bl NARC_Delete
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
add r4, #0x20
|
|
add sp, #0x4c
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E350:
|
|
add r0, r7, #0
|
|
bl ov12_02266B78
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [r4, #8]
|
|
cmp r0, r1
|
|
beq _0225E3F8
|
|
ldr r0, _0225E400 ; =0x000005DD
|
|
bl PlaySE
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
add r4, #0x20
|
|
add sp, #0x4c
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E376:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0xff
|
|
beq _0225E3A8
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
bne _0225E3A2
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
add r0, r5, #0
|
|
bl ov12_02265D74
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #0x10]
|
|
bl ov12_02262014
|
|
_0225E3A2:
|
|
add r0, r7, #0
|
|
bl ov12_02266B34
|
|
_0225E3A8:
|
|
ldrb r1, [r4, #0x1d]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #8]
|
|
bl ov12_02262FE0
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
add r4, #0x20
|
|
add sp, #0x4c
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E3C2:
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
strb r1, [r0]
|
|
_0225E3D0:
|
|
add r0, r7, #0
|
|
bl ov12_022698B0
|
|
cmp r0, #1
|
|
bne _0225E3F8
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl ov12_0223BB10
|
|
ldrb r1, [r4, #0x1d]
|
|
ldrb r2, [r4, #0x1c]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225E3F8:
|
|
add sp, #0x4c
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225E3FC: .word 0x00000399
|
|
_0225E400: .word 0x000005DD
|
|
thumb_func_end ov12_0225E250
|
|
|
|
thumb_func_start ov12_0225E404
|
|
ov12_0225E404: ; 0x0225E404
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r6, r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r6]
|
|
bl BattleSys_GetBattleType
|
|
add r4, r0, #0
|
|
ldr r0, [r6]
|
|
bl ov12_0223A7E4
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _0225E4C8 ; =0x00000101
|
|
tst r0, r4
|
|
bne _0225E43A
|
|
ldr r0, [r6]
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #1
|
|
tst r0, r1
|
|
bne _0225E43A
|
|
ldrb r1, [r6, #0x1d]
|
|
ldr r0, [r6]
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
bne _0225E44A
|
|
_0225E43A:
|
|
ldrb r1, [r6, #0x1d]
|
|
ldr r0, [r6]
|
|
bl ov10_0221BEF4
|
|
cmp r0, #0xff
|
|
beq _0225E4C2
|
|
add r4, r0, #1
|
|
b _0225E4A2
|
|
_0225E44A:
|
|
mov r7, #0
|
|
add r4, r7, #0
|
|
add r5, sp, #0x10
|
|
_0225E450:
|
|
add r0, r4, #0
|
|
bl MaskOfFlagNo
|
|
ldrh r1, [r6, #0x22]
|
|
tst r0, r1
|
|
bne _0225E462
|
|
add r0, r4, #1
|
|
stmia r5!, {r0}
|
|
add r7, r7, #1
|
|
_0225E462:
|
|
add r4, r4, #1
|
|
cmp r4, #4
|
|
blt _0225E450
|
|
ldr r0, [r6]
|
|
bl BattleSys_Random
|
|
add r1, r7, #0
|
|
bl _s32_div_f
|
|
lsl r1, r1, #2
|
|
add r0, sp, #0x10
|
|
ldr r4, [r0, r1]
|
|
mov r0, #1
|
|
sub r3, r4, #1
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
lsl r3, r3, #1
|
|
add r3, r6, r3
|
|
ldrb r2, [r6, #0x1d]
|
|
ldrh r3, [r3, #0xc]
|
|
ldr r0, [r6]
|
|
ldr r1, [sp, #0xc]
|
|
bl ov12_022506D4
|
|
str r0, [sp]
|
|
ldrb r3, [r6, #0x1d]
|
|
ldr r0, [r6]
|
|
ldr r1, [sp, #0xc]
|
|
mov r2, #0xb
|
|
bl ov12_022582B8
|
|
_0225E4A2:
|
|
ldrb r1, [r6, #0x1d]
|
|
ldr r0, [r6]
|
|
add r2, r4, #0
|
|
bl ov12_02262FE0
|
|
ldrb r1, [r6, #0x1d]
|
|
ldrb r2, [r6, #0x1c]
|
|
ldr r0, [r6]
|
|
bl ov12_0226430C
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #8]
|
|
bl DestroySysTask
|
|
_0225E4C2:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225E4C8: .word 0x00000101
|
|
thumb_func_end ov12_0225E404
|
|
|
|
thumb_func_start ov12_0225E4CC
|
|
ov12_0225E4CC: ; 0x0225E4CC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0x1d]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #0x1c]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225E4CC
|
|
|
|
thumb_func_start ov12_0225E4EC
|
|
ov12_0225E4EC: ; 0x0225E4EC
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r1, #0
|
|
ldrb r1, [r5, #0x1d]
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225E508
|
|
ldr r0, [r5]
|
|
bl ov12_02261ED4
|
|
_0225E508:
|
|
add r0, sp, #0
|
|
ldrb r4, [r0]
|
|
cmp r4, #0
|
|
beq _0225E514
|
|
cmp r4, #4
|
|
bls _0225E51C
|
|
_0225E514:
|
|
ldr r0, [r5]
|
|
bl ov12_02261EB8
|
|
b _0225E53E
|
|
_0225E51C:
|
|
ldr r0, [r5]
|
|
bl ov12_0223A7E4
|
|
ldrb r1, [r5, #0x1d]
|
|
add r2, r4, #5
|
|
mov r3, #0
|
|
bl GetBattlerVar
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
beq _0225E538
|
|
ldr r0, _0225E564 ; =0x000001D3
|
|
cmp r1, r0
|
|
bls _0225E53E
|
|
_0225E538:
|
|
ldr r0, [r5]
|
|
bl ov12_02261EB8
|
|
_0225E53E:
|
|
add r2, sp, #0
|
|
ldrb r1, [r5, #0x1d]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r5]
|
|
bl ov12_02262FE0
|
|
ldrb r1, [r5, #0x1d]
|
|
ldrb r2, [r5, #0x1c]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0225E564: .word 0x000001D3
|
|
thumb_func_end ov12_0225E4EC
|
|
|
|
thumb_func_start ov12_0225E568
|
|
ov12_0225E568: ; 0x0225E568
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
add r4, r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
add r5, r0, #0
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r1, r0
|
|
beq _0225E5A2
|
|
ldr r0, [r4]
|
|
bl ov12_0223BC38
|
|
add r6, r0, #0
|
|
b _0225E5A4
|
|
_0225E5A2:
|
|
mov r6, #0
|
|
_0225E5A4:
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #3
|
|
bhi _0225E69A
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225E5B6: ; jump table
|
|
.short _0225E5BE - _0225E5B6 - 2 ; case 0
|
|
.short _0225E642 - _0225E5B6 - 2 ; case 1
|
|
.short _0225E662 - _0225E5B6 - 2 ; case 2
|
|
.short _0225E696 - _0225E5B6 - 2 ; case 3
|
|
_0225E5BE:
|
|
add r0, r5, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #0
|
|
bne _0225E5CA
|
|
b _0225E6F4
|
|
_0225E5CA:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r2, sp, #0x10
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
add r1, r4, #0
|
|
add r2, #2
|
|
_0225E5E6:
|
|
ldrh r3, [r1, #0x10]
|
|
add r0, r0, #1
|
|
strh r3, [r2]
|
|
ldrh r3, [r1, #0x12]
|
|
strh r3, [r2, #2]
|
|
ldrh r3, [r1, #0x14]
|
|
strh r3, [r2, #4]
|
|
ldrh r3, [r1, #0x16]
|
|
add r1, #8
|
|
strh r3, [r2, #6]
|
|
add r2, #8
|
|
cmp r0, #4
|
|
blt _0225E5E6
|
|
ldrb r1, [r4, #0xe]
|
|
add r0, sp, #0x30
|
|
add r0, #2
|
|
strb r1, [r0]
|
|
ldrh r0, [r4, #0x30]
|
|
ldrb r1, [r4, #0xe]
|
|
bl ov12_02266C84
|
|
add r1, sp, #0x30
|
|
add r1, #2
|
|
strb r0, [r1, #1]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
add r0, #2
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0xc
|
|
bl ov12_02266508
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
ldrb r0, [r4, #0xf]
|
|
add sp, #0x34
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E642:
|
|
add r0, r5, #0
|
|
bl ov12_02266B78
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [r4, #8]
|
|
cmp r0, r1
|
|
beq _0225E6F4
|
|
ldr r0, _0225E6F8 ; =0x000005DD
|
|
bl PlaySE
|
|
ldrb r0, [r4, #0xf]
|
|
add sp, #0x34
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E662:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0xff
|
|
beq _0225E68C
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
add r0, r7, #0
|
|
bl ov12_02262014
|
|
add r0, r6, #0
|
|
bl ov12_02265D74
|
|
add r0, r4, #0
|
|
add r0, #0x32
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _0225E68C
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
_0225E68C:
|
|
ldrb r0, [r4, #0xf]
|
|
add sp, #0x34
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225E696:
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xf]
|
|
_0225E69A:
|
|
add r0, r5, #0
|
|
bl ov12_022698B0
|
|
cmp r0, #1
|
|
bne _0225E6F4
|
|
ldr r0, [r4]
|
|
ldr r5, [r4, #8]
|
|
bl BattleSys_GetBattleType
|
|
add r6, r0, #0
|
|
cmp r5, #0xff
|
|
beq _0225E6D4
|
|
ldr r0, [r4]
|
|
add r1, sp, #0xc
|
|
bl ov12_0223C1A0
|
|
mov r0, #2
|
|
tst r0, r6
|
|
ldr r0, [r4, #8]
|
|
beq _0225E6CC
|
|
add r1, r0, #1
|
|
add r0, sp, #0xc
|
|
ldrb r0, [r0, r1]
|
|
add r5, r0, #1
|
|
b _0225E6D4
|
|
_0225E6CC:
|
|
sub r1, r0, #1
|
|
add r0, sp, #0xc
|
|
ldrb r0, [r0, r1]
|
|
add r5, r0, #1
|
|
_0225E6D4:
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
add r2, r5, #0
|
|
bl ov12_0226311C
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
ldr r0, [sp, #8]
|
|
bl DestroySysTask
|
|
_0225E6F4:
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225E6F8: .word 0x000005DD
|
|
thumb_func_end ov12_0225E568
|
|
|
|
thumb_func_start ov12_0225E6FC
|
|
ov12_0225E6FC: ; 0x0225E6FC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A7E4
|
|
add r1, r0, #0
|
|
ldrb r3, [r5, #0xd]
|
|
ldr r0, [r5]
|
|
mov r2, #0xb
|
|
bl ov12_022581D4
|
|
add r4, r0, #1
|
|
cmp r4, #5
|
|
blt _0225E71E
|
|
bl GF_AssertFail
|
|
_0225E71E:
|
|
ldrb r1, [r5, #0xd]
|
|
ldr r0, [r5]
|
|
add r2, r4, #0
|
|
bl ov12_0226311C
|
|
ldrb r1, [r5, #0xd]
|
|
ldrb r2, [r5, #0xc]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225E6FC
|
|
|
|
thumb_func_start ov12_0225E740
|
|
ov12_0225E740: ; 0x0225E740
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225E740
|
|
|
|
thumb_func_start ov12_0225E760
|
|
ov12_0225E760: ; 0x0225E760
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225E77A
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225E77A:
|
|
add r0, sp, #0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225E786
|
|
cmp r0, #4
|
|
bls _0225E78E
|
|
_0225E786:
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
b _0225E80C
|
|
_0225E78E:
|
|
sub r5, r0, #1
|
|
ldrh r0, [r4, #0x30]
|
|
cmp r0, #0x40
|
|
bgt _0225E7C4
|
|
bge _0225E80C
|
|
cmp r0, #0x10
|
|
bgt _0225E7C0
|
|
bge _0225E80C
|
|
cmp r0, #8
|
|
bhi _0225E80C
|
|
add r1, r0, r0
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225E7AE: ; jump table
|
|
.short _0225E7E2 - _0225E7AE - 2 ; case 0
|
|
.short _0225E80C - _0225E7AE - 2 ; case 1
|
|
.short _0225E80C - _0225E7AE - 2 ; case 2
|
|
.short _0225E80C - _0225E7AE - 2 ; case 3
|
|
.short _0225E80C - _0225E7AE - 2 ; case 4
|
|
.short _0225E80C - _0225E7AE - 2 ; case 5
|
|
.short _0225E80C - _0225E7AE - 2 ; case 6
|
|
.short _0225E80C - _0225E7AE - 2 ; case 7
|
|
.short _0225E80C - _0225E7AE - 2 ; case 8
|
|
_0225E7C0:
|
|
cmp r0, #0x20
|
|
b _0225E80C
|
|
_0225E7C4:
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
cmp r0, r2
|
|
bgt _0225E7D2
|
|
bge _0225E80C
|
|
cmp r0, #0x80
|
|
b _0225E80C
|
|
_0225E7D2:
|
|
lsl r1, r2, #1
|
|
cmp r0, r1
|
|
bgt _0225E7DC
|
|
beq _0225E7F0
|
|
b _0225E80C
|
|
_0225E7DC:
|
|
lsl r1, r2, #2
|
|
cmp r0, r1
|
|
b _0225E80C
|
|
_0225E7E2:
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, r5
|
|
bne _0225E80C
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
b _0225E80C
|
|
_0225E7F0:
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetFieldSide
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
bl BattleSys_GetFieldSide
|
|
cmp r6, r0
|
|
beq _0225E80C
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
_0225E80C:
|
|
add r2, sp, #0
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226311C
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r7, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_0225E760
|
|
|
|
thumb_func_start ov12_0225E830
|
|
ov12_0225E830: ; 0x0225E830
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x1fc
|
|
sub sp, #0x14
|
|
add r4, r1, #0
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
ldrb r1, [r4, #0xe]
|
|
add r5, r0, #0
|
|
cmp r1, #0x1e
|
|
bls _0225E84C
|
|
bl _0225F376
|
|
_0225E84C:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225E858: ; jump table
|
|
.short _0225E896 - _0225E858 - 2 ; case 0
|
|
.short _0225E8EC - _0225E858 - 2 ; case 1
|
|
.short _0225E978 - _0225E858 - 2 ; case 2
|
|
.short _0225E98C - _0225E858 - 2 ; case 3
|
|
.short _0225E9EA - _0225E858 - 2 ; case 4
|
|
.short _0225EB32 - _0225E858 - 2 ; case 5
|
|
.short _0225EB6E - _0225E858 - 2 ; case 6
|
|
.short _0225EBBE - _0225E858 - 2 ; case 7
|
|
.short _0225ED62 - _0225E858 - 2 ; case 8
|
|
.short _0225EDE0 - _0225E858 - 2 ; case 9
|
|
.short _0225EE1C - _0225E858 - 2 ; case 10
|
|
.short _0225EE3E - _0225E858 - 2 ; case 11
|
|
.short _0225F326 - _0225E858 - 2 ; case 12
|
|
.short _0225EEC4 - _0225E858 - 2 ; case 13
|
|
.short _0225F326 - _0225E858 - 2 ; case 14
|
|
.short _0225EF78 - _0225E858 - 2 ; case 15
|
|
.short _0225F354 - _0225E858 - 2 ; case 16
|
|
.short _0225EE7E - _0225E858 - 2 ; case 17
|
|
.short _0225F326 - _0225E858 - 2 ; case 18
|
|
.short _0225F02A - _0225E858 - 2 ; case 19
|
|
.short _0225F326 - _0225E858 - 2 ; case 20
|
|
.short _0225F070 - _0225E858 - 2 ; case 21
|
|
.short _0225F10A - _0225E858 - 2 ; case 22
|
|
.short _0225F140 - _0225E858 - 2 ; case 23
|
|
.short _0225F354 - _0225E858 - 2 ; case 24
|
|
.short _0225EE7E - _0225E858 - 2 ; case 25
|
|
.short _0225F326 - _0225E858 - 2 ; case 26
|
|
.short _0225F02A - _0225E858 - 2 ; case 27
|
|
.short _0225F326 - _0225E858 - 2 ; case 28
|
|
.short _0225F1B2 - _0225E858 - 2 ; case 29
|
|
.short _0225F354 - _0225E858 - 2 ; case 30
|
|
_0225E896:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
bl ov12_0226A8E4
|
|
strb r0, [r4, #0x10]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB34
|
|
mov r1, #1
|
|
bl sub_0201649C
|
|
mov r1, #0
|
|
mov r2, #3
|
|
str r1, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #5
|
|
add r3, r1, #0
|
|
add r0, r5, #0
|
|
lsl r2, r2, #0xa
|
|
sub r3, #0xd
|
|
bl sub_02003370
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0xa
|
|
add r3, r1, #0
|
|
ldr r2, _0225EC14 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E8EC:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
bne _0225E9B4
|
|
ldr r0, [r4]
|
|
bl ov12_02237B0C
|
|
mov r0, #5
|
|
mov r1, #0x34
|
|
bl AllocFromHeap
|
|
str r0, [r4, #4]
|
|
mov r1, #0
|
|
mov r2, #0x34
|
|
bl memset
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetPlayerProfile
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1, #4]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #5
|
|
str r1, [r0, #0xc]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x26
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AA80
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1, #8]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0, #0x10]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x10]
|
|
add r0, #0x25
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x14]
|
|
add r0, #0x22
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x15]
|
|
add r0, #0x23
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x16]
|
|
add r0, #0x24
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, #0xd]
|
|
add r0, r4, r0
|
|
add r0, #0x30
|
|
ldrb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0, #0x18]
|
|
ldr r0, [r4, #4]
|
|
bl ov08_022225D4
|
|
add sp, #0x1fc
|
|
mov r0, #3
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E978:
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x10]
|
|
add r0, #0x25
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
bl ov08_022225D4
|
|
ldrb r0, [r4, #0xe]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
_0225E98C:
|
|
ldr r1, [r4, #4]
|
|
add r0, r1, #0
|
|
add r0, #0x26
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225E9B4
|
|
mov r0, #0
|
|
add r1, #0x26
|
|
strb r0, [r1]
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x25
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #0x10]
|
|
ldr r1, [r4, #4]
|
|
ldrh r0, [r1, #0x1c]
|
|
cmp r0, #0
|
|
beq _0225E9E0
|
|
ldrb r0, [r1, #0x1e]
|
|
cmp r0, #3
|
|
bls _0225E9B8
|
|
_0225E9B4:
|
|
bl _0225F376
|
|
_0225E9B8:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225E9C4: ; jump table
|
|
.short _0225E9CC - _0225E9C4 - 2 ; case 0
|
|
.short _0225E9CC - _0225E9C4 - 2 ; case 1
|
|
.short _0225E9D6 - _0225E9C4 - 2 ; case 2
|
|
.short _0225E9D6 - _0225E9C4 - 2 ; case 3
|
|
_0225E9CC:
|
|
add sp, #0x1fc
|
|
mov r0, #4
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E9D6:
|
|
add sp, #0x1fc
|
|
mov r0, #6
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E9E0:
|
|
add sp, #0x1fc
|
|
mov r0, #6
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225E9EA:
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetParty
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _0225EA16
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
bne _0225EA16
|
|
ldrb r1, [r4, #0xd]
|
|
mov r0, #1
|
|
add r7, r1, #0
|
|
and r7, r0
|
|
b _0225EA18
|
|
_0225EA16:
|
|
ldrb r7, [r4, #0xd]
|
|
_0225EA18:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #6
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl InitPartyWithMaxSize
|
|
ldr r0, [sp, #0x14]
|
|
mov r6, #0
|
|
bl GetPartyCount
|
|
cmp r0, #0
|
|
ble _0225EA66
|
|
mov r0, #6
|
|
mul r0, r7
|
|
add r5, r4, r0
|
|
_0225EA36:
|
|
ldrb r2, [r5, #0x18]
|
|
ldr r0, [r4]
|
|
add r1, r7, #0
|
|
bl BattleSystem_GetPartyMon
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl AddMonToParty
|
|
ldr r1, [r4, #8]
|
|
ldrb r0, [r5, #0x18]
|
|
ldr r1, [r1, #4]
|
|
add r5, r5, #1
|
|
add r1, r1, r6
|
|
add r1, #0x2c
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0x14]
|
|
add r6, r6, #1
|
|
bl GetPartyCount
|
|
cmp r6, r0
|
|
blt _0225EA36
|
|
_0225EA66:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #8]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #5
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0xc]
|
|
ldr r1, [r4, #8]
|
|
mov r0, #0
|
|
ldr r1, [r1, #4]
|
|
strb r0, [r1, #0x11]
|
|
ldr r1, [r4, #8]
|
|
ldr r1, [r1, #4]
|
|
add r1, #0x36
|
|
strb r0, [r1]
|
|
ldr r1, [r4, #8]
|
|
ldr r1, [r1, #4]
|
|
strh r0, [r1, #0x24]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #2
|
|
ldr r0, [r0, #4]
|
|
add r0, #0x35
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldrh r1, [r0, #0x1c]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
strh r1, [r0, #0x22]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, #0x1e]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
add r0, #0x33
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [r0, #0x10]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0x28]
|
|
ldr r0, [r4, #8]
|
|
ldrb r1, [r4, #0x10]
|
|
ldr r0, [r0, #4]
|
|
add r0, #0x32
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, #0xd]
|
|
ldr r2, [r4, #8]
|
|
add r0, r2, r0
|
|
ldrb r1, [r0, #0xc]
|
|
ldr r0, [r2, #4]
|
|
strb r1, [r0, #0x14]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r5, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r0, r5, r0
|
|
ldrb r1, [r0, #0xc]
|
|
ldr r0, [r5, #4]
|
|
strb r1, [r0, #0x15]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #4
|
|
bne _0225EAFC
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r0, r4, r0
|
|
add r0, #0x30
|
|
ldrb r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0x18]
|
|
ldrb r0, [r4, #0xd]
|
|
b _0225EB12
|
|
_0225EAFC:
|
|
ldrb r0, [r4, #0xd]
|
|
add r0, r4, r0
|
|
add r0, #0x30
|
|
ldrb r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0x18]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
_0225EB12:
|
|
add r0, r4, r0
|
|
add r0, #0x30
|
|
ldrb r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r0, #0x1c]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
bl ov10_0221BE20
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EB32:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r0, #4]
|
|
add r0, r1, #0
|
|
add r0, #0x36
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225EBC6
|
|
add r1, #0x32
|
|
ldrb r0, [r1]
|
|
mov r1, #0
|
|
strb r0, [r4, #0x10]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
add r0, #0x36
|
|
strb r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #6
|
|
bne _0225EB64
|
|
add sp, #0x1fc
|
|
mov r0, #2
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EB64:
|
|
add sp, #0x1fc
|
|
mov r0, #6
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EB6E:
|
|
ldr r0, [r4]
|
|
bl ov12_02237BB8
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
ldrb r1, [r4, #0x10]
|
|
bl ov12_0226A8EC
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r1, #5
|
|
str r0, [sp, #4]
|
|
mov r2, #3
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
lsl r2, r2, #0xa
|
|
sub r3, #0xd
|
|
bl sub_02003370
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r1, #0xa
|
|
str r0, [sp, #4]
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _0225EC14 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EBBE:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
beq _0225EBC8
|
|
_0225EBC6:
|
|
b _0225F376
|
|
_0225EBC8:
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB34
|
|
mov r1, #0
|
|
bl sub_0201649C
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x1c]
|
|
cmp r0, #0
|
|
bne _0225EBDE
|
|
b _0225ED4A
|
|
_0225EBDE:
|
|
mov r0, #9
|
|
strb r0, [r4, #0xe]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r0, #0x1e]
|
|
cmp r1, #3
|
|
bls _0225EBEC
|
|
b _0225ED4E
|
|
_0225EBEC:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225EBF8: ; jump table
|
|
.short _0225EC90 - _0225EBF8 - 2 ; case 0
|
|
.short _0225EC00 - _0225EBF8 - 2 ; case 1
|
|
.short _0225ED44 - _0225EBF8 - 2 ; case 2
|
|
.short _0225ECEE - _0225EBF8 - 2 ; case 3
|
|
_0225EC00:
|
|
ldrh r1, [r0, #0x1c]
|
|
ldr r0, _0225EC18 ; =0x0000FFE4
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #1
|
|
bhi _0225EC1C
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _0225ED4E
|
|
.balign 4, 0
|
|
_0225EC14: .word 0x0000FFFF
|
|
_0225EC18: .word 0x0000FFE4
|
|
_0225EC1C:
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #2
|
|
bhs _0225EC3A
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #3
|
|
beq _0225EC44
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0x13
|
|
beq _0225EC44
|
|
_0225EC3A:
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #1
|
|
bhs _0225EC8A
|
|
_0225EC44:
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x1c]
|
|
cmp r0, #0x17
|
|
ldr r0, [r4]
|
|
bne _0225EC6C
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _0225EC5C
|
|
mov r0, #0x11
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225EC5C:
|
|
mov r1, #0x74
|
|
ldr r0, _0225EF7C ; =0x000005EC
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
mov r0, #0x15
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225EC6C:
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _0225EC7A
|
|
mov r0, #0x19
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225EC7A:
|
|
mov r1, #0x74
|
|
ldr r0, _0225EF7C ; =0x000005EC
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
mov r0, #0x1d
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225EC8A:
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _0225ED4E
|
|
_0225EC90:
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #2
|
|
bhs _0225ECAE
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #3
|
|
beq _0225ECB8
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0x13
|
|
beq _0225ECB8
|
|
_0225ECAE:
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
cmp r0, #1
|
|
bhs _0225ECE8
|
|
_0225ECB8:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x26
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225ECE8
|
|
ldr r0, [r4]
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _0225ECD8
|
|
mov r0, #0x11
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ECD8:
|
|
mov r1, #0x74
|
|
ldr r0, _0225EF7C ; =0x000005EC
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
mov r0, #0x15
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ECE8:
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _0225ED4E
|
|
_0225ECEE:
|
|
ldrh r1, [r0, #0x1c]
|
|
ldr r0, _0225EF80 ; =0x0000FFC1
|
|
add r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #1
|
|
bhi _0225ED02
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _0225ED4E
|
|
_0225ED02:
|
|
cmp r1, #0x37
|
|
ldr r0, [r4]
|
|
bne _0225ED26
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _0225ED16
|
|
mov r0, #0xd
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ED16:
|
|
mov r1, #0x74
|
|
ldr r0, _0225EF7C ; =0x000005EC
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
mov r0, #0xf
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ED26:
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _0225ED34
|
|
mov r0, #0xb
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ED34:
|
|
mov r1, #0x74
|
|
ldr r0, _0225EF7C ; =0x000005EC
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
mov r0, #0xf
|
|
strh r0, [r4, #0x12]
|
|
b _0225ED4E
|
|
_0225ED44:
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _0225ED4E
|
|
_0225ED4A:
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
_0225ED4E:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #8
|
|
beq _0225EE32
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl ov12_02237ED0
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225ED62:
|
|
ldr r2, [r4, #4]
|
|
ldrh r0, [r2, #0x1c]
|
|
cmp r0, #0
|
|
bne _0225ED72
|
|
mov r1, #0xff
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0]
|
|
b _0225ED8E
|
|
_0225ED72:
|
|
add r1, sp, #0x1c
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, #0x1e]
|
|
strb r0, [r1, #2]
|
|
cmp r0, #1
|
|
bhi _0225ED8E
|
|
ldr r0, [r4, #8]
|
|
ldr r2, [r0, #4]
|
|
ldrb r0, [r2, #0x11]
|
|
add r0, r2, r0
|
|
add r0, #0x2c
|
|
ldrb r0, [r0]
|
|
add r0, r0, #1
|
|
strb r0, [r1, #3]
|
|
_0225ED8E:
|
|
add r3, sp, #0x1c
|
|
ldrb r1, [r4, #0xd]
|
|
mov r2, sp
|
|
ldrh r5, [r3]
|
|
ldr r0, [r4]
|
|
sub r2, r2, #4
|
|
strh r5, [r2]
|
|
ldrh r3, [r3, #2]
|
|
strh r3, [r2, #2]
|
|
ldr r2, [r2]
|
|
bl ov12_022632C0
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r7, #0
|
|
bl DestroySysTask
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EDE0:
|
|
ldr r1, _0225EF84 ; =0x000004B6
|
|
add r0, sp, #0x8c
|
|
strh r1, [r0, #2]
|
|
mov r1, #5
|
|
strb r1, [r0, #1]
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x1c]
|
|
str r0, [sp, #0x90]
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r2, sp, #0x8c
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #0x11]
|
|
mov r0, #0x1e
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EE1C:
|
|
ldrb r0, [r4, #0x11]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _0225EE32
|
|
ldrb r0, [r4, #0x17]
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0x17]
|
|
cmp r0, #0
|
|
beq _0225EE34
|
|
_0225EE32:
|
|
b _0225F376
|
|
_0225EE34:
|
|
ldrh r0, [r4, #0x12]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EE3E:
|
|
ldrb r1, [r4, #0xd]
|
|
mov r0, #9
|
|
add r2, sp, #0x1b8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0x1b8
|
|
bl ov12_02261B80
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EE7E:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
add r2, sp, #0x160
|
|
ldrb r0, [r0, #0x11]
|
|
mov r3, #1
|
|
lsl r5, r0, #1
|
|
mov r0, #9
|
|
str r0, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0x160
|
|
bl ov12_02261B80
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EEC4:
|
|
ldr r0, [r4, #4]
|
|
add r2, sp, #0x108
|
|
ldrh r0, [r0, #0x1c]
|
|
cmp r0, #0x37
|
|
bne _0225EF02
|
|
ldrb r0, [r4, #0xd]
|
|
mov r1, #0
|
|
add r3, r1, #0
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x36
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_022643C8
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0x108
|
|
bl ov12_02261B80
|
|
b _0225EF6C
|
|
_0225EF02:
|
|
cmp r0, #0x38
|
|
bne _0225EF3A
|
|
ldrb r0, [r4, #0xd]
|
|
mov r1, #0
|
|
add r3, r1, #0
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
str r0, [sp, #8]
|
|
mov r0, #0x74
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_022643C8
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0x108
|
|
bl ov12_02261B80
|
|
b _0225EF6C
|
|
_0225EF3A:
|
|
ldrb r1, [r4, #0xd]
|
|
mov r0, #0xc
|
|
mov r3, #1
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_022643C8
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0x108
|
|
bl ov12_02261B80
|
|
_0225EF6C:
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225EF78:
|
|
ldr r2, _0225EF88 ; =0x000004B3
|
|
b _0225EF8C
|
|
.balign 4, 0
|
|
_0225EF7C: .word 0x000005EC
|
|
_0225EF80: .word 0x0000FFC1
|
|
_0225EF84: .word 0x000004B6
|
|
_0225EF88: .word 0x000004B3
|
|
_0225EF8C:
|
|
add r0, sp, #0x68
|
|
strh r2, [r0, #2]
|
|
mov r1, #0xc
|
|
strb r1, [r0, #1]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r3, [r4, #8]
|
|
add r3, r3, r1
|
|
ldrb r3, [r3, #0xc]
|
|
lsl r3, r3, #8
|
|
orr r1, r3
|
|
str r1, [sp, #0x6c]
|
|
ldr r1, [r4, #4]
|
|
ldrh r1, [r1, #0x1c]
|
|
sub r1, #0x37
|
|
cmp r1, #7
|
|
bhi _0225EFFE
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225EFB8: ; jump table
|
|
.short _0225EFEC - _0225EFB8 - 2 ; case 0
|
|
.short _0225EFF6 - _0225EFB8 - 2 ; case 1
|
|
.short _0225EFC8 - _0225EFB8 - 2 ; case 2
|
|
.short _0225EFCE - _0225EFB8 - 2 ; case 3
|
|
.short _0225EFD4 - _0225EFB8 - 2 ; case 4
|
|
.short _0225EFDA - _0225EFB8 - 2 ; case 5
|
|
.short _0225EFE0 - _0225EFB8 - 2 ; case 6
|
|
.short _0225EFE6 - _0225EFB8 - 2 ; case 7
|
|
_0225EFC8:
|
|
mov r0, #1
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFCE:
|
|
mov r0, #2
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFD4:
|
|
mov r0, #3
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFDA:
|
|
mov r0, #6
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFE0:
|
|
mov r0, #4
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFE6:
|
|
mov r0, #5
|
|
str r0, [sp, #0x70]
|
|
b _0225EFFE
|
|
_0225EFEC:
|
|
add r1, r2, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strb r1, [r0, #1]
|
|
b _0225EFFE
|
|
_0225EFF6:
|
|
add r1, r2, #2
|
|
strh r1, [r0, #2]
|
|
mov r1, #2
|
|
strb r1, [r0, #1]
|
|
_0225EFFE:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r2, sp, #0x68
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #0x11]
|
|
mov r0, #0x1e
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F02A:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
add r2, sp, #0xb0
|
|
ldrb r0, [r0, #0x11]
|
|
mov r3, #1
|
|
lsl r5, r0, #1
|
|
mov r0, #0xe
|
|
str r0, [sp]
|
|
str r5, [sp, #4]
|
|
str r5, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r2, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r3, sp, #0xb0
|
|
bl ov12_02261B80
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F070:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r0, #4]
|
|
ldrb r0, [r1, #0x11]
|
|
lsl r6, r0, #1
|
|
add r0, r1, r0
|
|
add r0, #0x2c
|
|
ldrb r7, [r0]
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
bl ov12_0223BC38
|
|
mov r1, #0
|
|
mov r2, #1
|
|
add r5, r0, #0
|
|
bl MI_CpuFill8
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
bl ov12_0223AB0C
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x18]
|
|
bl ov12_02265B64
|
|
add r1, r5, #0
|
|
add r1, #0x25
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
add r1, r6, #0
|
|
add r2, r7, #0
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
add r6, r0, #0
|
|
bl GetMonData
|
|
ldr r1, [r4, #8]
|
|
mov r2, #0
|
|
ldr r1, [r1, #4]
|
|
ldrh r1, [r1, #0x20]
|
|
sub r0, r0, r1
|
|
str r0, [r5, #0x28]
|
|
add r0, r6, #0
|
|
mov r1, #0xa4
|
|
bl GetMonData
|
|
str r0, [r5, #0x2c]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xa0
|
|
ldr r0, [r0, #4]
|
|
mov r2, #0
|
|
ldrh r0, [r0, #0x20]
|
|
str r0, [r5, #0x30]
|
|
add r0, r6, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0225F0F6
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
add r0, #0x4a
|
|
strb r1, [r0]
|
|
_0225F0F6:
|
|
ldr r1, [r5, #0x30]
|
|
add r0, r5, #0
|
|
bl ov12_02264DCC
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F10A:
|
|
ldr r1, [r4, #8]
|
|
ldr r0, [r4]
|
|
ldr r1, [r1, #4]
|
|
ldrb r1, [r1, #0x11]
|
|
lsl r1, r1, #1
|
|
bl ov12_0223BC38
|
|
add r5, r0, #0
|
|
bl ov12_02264E00
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0225F128
|
|
b _0225F376
|
|
_0225F128:
|
|
mov r2, #1
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #8
|
|
bl ov12_0226498C
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F140:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r0, #4]
|
|
ldrb r0, [r1, #0x11]
|
|
ldrh r1, [r1, #0x20]
|
|
lsl r0, r0, #1
|
|
cmp r1, #0
|
|
add r1, sp, #0x1c
|
|
beq _0225F178
|
|
ldr r2, _0225F37C ; =0x000004BE
|
|
strh r2, [r1, #0x2a]
|
|
mov r2, #0x11
|
|
add r1, sp, #0x44
|
|
strb r2, [r1, #1]
|
|
ldr r1, [r4, #8]
|
|
add r1, r1, r0
|
|
ldrb r1, [r1, #0xc]
|
|
lsl r1, r1, #8
|
|
orr r0, r1
|
|
str r0, [sp, #0x48]
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldrh r0, [r0, #0x20]
|
|
str r0, [sp, #0x4c]
|
|
b _0225F18E
|
|
_0225F178:
|
|
ldr r2, _0225F380 ; =0x000004E2
|
|
strh r2, [r1, #0x2a]
|
|
mov r2, #2
|
|
add r1, sp, #0x44
|
|
strb r2, [r1, #1]
|
|
ldr r1, [r4, #8]
|
|
add r1, r1, r0
|
|
ldrb r1, [r1, #0xc]
|
|
lsl r1, r1, #8
|
|
orr r0, r1
|
|
str r0, [sp, #0x48]
|
|
_0225F18E:
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r2, sp, #0x44
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #0x11]
|
|
mov r0, #0x1e
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F1B2:
|
|
ldr r0, [r4, #8]
|
|
mov r5, #0
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #0x11]
|
|
lsl r7, r0, #1
|
|
ldr r0, [r4]
|
|
add r1, r7, #0
|
|
bl ov12_0223BC38
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r4, #8]
|
|
add r1, r7, #0
|
|
ldr r3, [r0, #4]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r3, #0x11]
|
|
add r2, r3, r2
|
|
add r2, #0x2c
|
|
ldrb r2, [r2]
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xa0
|
|
add r2, r5, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0225F1EE
|
|
ldr r0, [sp, #0x10]
|
|
add r1, r5, #0
|
|
add r0, #0x4a
|
|
strb r1, [r0]
|
|
_0225F1EE:
|
|
ldr r0, [sp, #0x10]
|
|
mov r2, #1
|
|
add r1, r0, #0
|
|
ldr r1, [r1, #0x28]
|
|
lsl r2, r2, #8
|
|
bl ov12_0226498C
|
|
mov r1, #2
|
|
add r0, sp, #0x1c
|
|
strb r1, [r0, #5]
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0xf
|
|
add r0, r0, r7
|
|
ldrb r0, [r0, #0xc]
|
|
mov r2, #5
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [r4, #4]
|
|
ldrh r0, [r0, #0x1c]
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F222
|
|
mov r6, #0
|
|
add r5, r5, #1
|
|
_0225F222:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x10
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F236
|
|
mov r6, #1
|
|
add r5, r5, #1
|
|
_0225F236:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x11
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F24A
|
|
mov r6, #2
|
|
add r5, r5, #1
|
|
_0225F24A:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x12
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F25E
|
|
mov r6, #3
|
|
add r5, r5, #1
|
|
_0225F25E:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x13
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F272
|
|
mov r6, #4
|
|
add r5, r5, #1
|
|
_0225F272:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x14
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F286
|
|
mov r6, #5
|
|
add r5, r5, #1
|
|
_0225F286:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x15
|
|
ldrh r0, [r0, #0x1c]
|
|
mov r2, #5
|
|
bl GetItemAttr
|
|
cmp r0, #0
|
|
beq _0225F29A
|
|
mov r6, #6
|
|
add r5, r5, #1
|
|
_0225F29A:
|
|
cmp r5, #1
|
|
beq _0225F2A6
|
|
ldr r1, _0225F384 ; =0x000004CD
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2A6:
|
|
cmp r6, #6
|
|
bhi _0225F2FA
|
|
add r0, r6, r6
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225F2B6: ; jump table
|
|
.short _0225F2C4 - _0225F2B6 - 2 ; case 0
|
|
.short _0225F2CC - _0225F2B6 - 2 ; case 1
|
|
.short _0225F2D4 - _0225F2B6 - 2 ; case 2
|
|
.short _0225F2DC - _0225F2B6 - 2 ; case 3
|
|
.short _0225F2E4 - _0225F2B6 - 2 ; case 4
|
|
.short _0225F2EC - _0225F2B6 - 2 ; case 5
|
|
.short _0225F2F4 - _0225F2B6 - 2 ; case 6
|
|
_0225F2C4:
|
|
ldr r1, _0225F388 ; =0x000004BA
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2CC:
|
|
ldr r1, _0225F38C ; =0x000004B7
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2D4:
|
|
ldr r1, _0225F390 ; =0x000004B9
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2DC:
|
|
ldr r1, _0225F394 ; =0x000004BB
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2E4:
|
|
ldr r1, _0225F398 ; =0x000004B8
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2EC:
|
|
ldr r1, _0225F39C ; =0x000004BC
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
b _0225F2FA
|
|
_0225F2F4:
|
|
ldr r1, _0225F3A0 ; =0x000004BD
|
|
add r0, sp, #0x1c
|
|
strh r1, [r0, #6]
|
|
_0225F2FA:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r2, sp, #0x20
|
|
bl ov12_0223C494
|
|
strb r0, [r4, #0x11]
|
|
mov r0, #0x1e
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F326:
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
bl ov07_0221C394
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225F376
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
bl ov07_0221C3C0
|
|
ldrb r0, [r4, #0xe]
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225F354:
|
|
ldrb r0, [r4, #0x11]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _0225F376
|
|
ldrb r0, [r4, #0x17]
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0x17]
|
|
cmp r0, #0
|
|
bne _0225F376
|
|
ldr r0, [r4]
|
|
mov r1, #1
|
|
bl ov12_02237ED0
|
|
mov r0, #8
|
|
strb r0, [r4, #0xe]
|
|
_0225F376:
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0225F37C: .word 0x000004BE
|
|
_0225F380: .word 0x000004E2
|
|
_0225F384: .word 0x000004CD
|
|
_0225F388: .word 0x000004BA
|
|
_0225F38C: .word 0x000004B7
|
|
_0225F390: .word 0x000004B9
|
|
_0225F394: .word 0x000004BB
|
|
_0225F398: .word 0x000004B8
|
|
_0225F39C: .word 0x000004BC
|
|
_0225F3A0: .word 0x000004BD
|
|
thumb_func_end ov12_0225E830
|
|
|
|
thumb_func_start ov12_0225F3A4
|
|
ov12_0225F3A4: ; 0x0225F3A4
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r5, r0, #0
|
|
mov r0, #1
|
|
add r3, sp, #0
|
|
strh r0, [r3]
|
|
add r4, r1, #0
|
|
mov r2, sp
|
|
ldrb r1, [r4, #0xd]
|
|
ldrh r6, [r3]
|
|
ldr r0, [r4]
|
|
sub r2, r2, #4
|
|
strh r6, [r2]
|
|
ldrh r3, [r3, #2]
|
|
strh r3, [r2, #2]
|
|
ldr r2, [r2]
|
|
bl ov12_022632C0
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225F3A4
|
|
|
|
thumb_func_start ov12_0225F3FC
|
|
ov12_0225F3FC: ; 0x0225F3FC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225F3FC
|
|
|
|
thumb_func_start ov12_0225F434
|
|
ov12_0225F434: ; 0x0225F434
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225F450
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225F450:
|
|
add r0, sp, #0
|
|
ldrb r1, [r0]
|
|
add r2, sp, #0
|
|
strh r1, [r0, #2]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225F46A
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225F46A:
|
|
add r0, sp, #0
|
|
ldrb r1, [r0]
|
|
ldrh r2, [r0, #2]
|
|
lsl r1, r1, #8
|
|
orr r1, r2
|
|
strh r1, [r0, #2]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225F48A
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225F48A:
|
|
add r3, sp, #0
|
|
ldrb r1, [r3]
|
|
mov r0, #0xf
|
|
mov r2, sp
|
|
and r0, r1
|
|
strb r0, [r3, #4]
|
|
mov r0, #0
|
|
strb r0, [r3, #5]
|
|
ldrb r1, [r4, #0xd]
|
|
ldrh r6, [r3, #2]
|
|
ldr r0, [r4]
|
|
sub r2, r2, #4
|
|
strh r6, [r2]
|
|
ldrh r3, [r3, #4]
|
|
strh r3, [r2, #2]
|
|
ldr r2, [r2]
|
|
bl ov12_022632C0
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
ldr r0, [r0, #4]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #8]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_0225F434
|
|
|
|
thumb_func_start ov12_0225F4E0
|
|
ov12_0225F4E0: ; 0x0225F4E0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
ldrb r1, [r4, #0xa]
|
|
add r5, r0, #0
|
|
cmp r1, #3
|
|
bhi _0225F57C
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0225F502: ; jump table
|
|
.short _0225F50A - _0225F502 - 2 ; case 0
|
|
.short _0225F574 - _0225F502 - 2 ; case 1
|
|
.short _0225F7EA - _0225F502 - 2 ; case 2
|
|
.short _0225F846 - _0225F502 - 2 ; case 3
|
|
_0225F50A:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl ov12_0223A7D8
|
|
add r6, r0, #0
|
|
mov r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
add r0, r6, #0
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
bl ov12_0226A8E4
|
|
strb r0, [r4, #0x17]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB34
|
|
mov r1, #1
|
|
bl sub_0201649C
|
|
mov r1, #0
|
|
mov r2, #3
|
|
str r1, [sp]
|
|
mov r0, #7
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #5
|
|
add r3, r1, #0
|
|
add r0, r5, #0
|
|
lsl r2, r2, #0xa
|
|
sub r3, #0xd
|
|
bl sub_02003370
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0xa
|
|
add r3, r1, #0
|
|
ldr r2, _0225F870 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0x24
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225F574:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
beq _0225F57E
|
|
_0225F57C:
|
|
b _0225F8A6
|
|
_0225F57E:
|
|
ldr r0, [r4]
|
|
bl ov12_02237B0C
|
|
mov r0, #5
|
|
mov r1, #0x38
|
|
bl AllocFromHeap
|
|
str r0, [r4, #4]
|
|
mov r0, #5
|
|
bl SaveArray_Party_Alloc
|
|
ldr r1, [r4, #4]
|
|
str r0, [r1]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0xc
|
|
and r0, r1
|
|
cmp r0, #0xc
|
|
beq _0225F5B2
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0xcb
|
|
beq _0225F5B2
|
|
b _0225F6C6
|
|
_0225F5B2:
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB0C
|
|
cmp r0, #2
|
|
bne _0225F5CE
|
|
ldrb r0, [r4, #9]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x18]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
str r0, [sp, #0x14]
|
|
b _0225F5DC
|
|
_0225F5CE:
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
str r0, [sp, #0x18]
|
|
ldrb r0, [r4, #9]
|
|
str r0, [sp, #0x14]
|
|
_0225F5DC:
|
|
mov r0, #5
|
|
bl AllocMonZeroed
|
|
add r6, r0, #0
|
|
mov r5, #0
|
|
_0225F5E6:
|
|
ldr r0, [r4, #4]
|
|
add r1, r6, #0
|
|
ldr r0, [r0]
|
|
bl AddMonToParty
|
|
add r5, r5, #1
|
|
cmp r5, #6
|
|
blt _0225F5E6
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x18]
|
|
mov r7, #0
|
|
bl BattleSys_GetPartySize
|
|
cmp r0, #0
|
|
ble _0225F64E
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #6
|
|
mul r1, r0
|
|
add r5, r4, r1
|
|
add r6, r7, #0
|
|
_0225F614:
|
|
ldrb r2, [r5, #0x1c]
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x18]
|
|
bl BattleSystem_GetPartyMon
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [r4, #4]
|
|
add r1, r6, #0
|
|
ldr r0, [r0]
|
|
bl GetPartyMonByIndex
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x1c]
|
|
bl CopyPokemonToPokemon
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r5, #0x1c]
|
|
add r0, r0, r6
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x18]
|
|
add r5, r5, #1
|
|
add r6, r6, #2
|
|
add r7, r7, #1
|
|
bl BattleSys_GetPartySize
|
|
cmp r7, r0
|
|
blt _0225F614
|
|
_0225F64E:
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x14]
|
|
mov r6, #0
|
|
bl BattleSys_GetPartySize
|
|
cmp r0, #0
|
|
ble _0225F6AA
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #6
|
|
mul r1, r0
|
|
mov r0, #1
|
|
add r5, r4, r1
|
|
str r0, [sp, #0xc]
|
|
add r7, r6, #0
|
|
_0225F66A:
|
|
ldrb r2, [r5, #0x1c]
|
|
ldr r0, [r4]
|
|
ldr r1, [sp, #0x14]
|
|
bl BattleSystem_GetPartyMon
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [r0]
|
|
bl GetPartyMonByIndex
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x20]
|
|
bl CopyPokemonToPokemon
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r5, #0x1c]
|
|
add r0, r0, r7
|
|
add r0, #0x2d
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x14]
|
|
add r0, r0, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
add r5, r5, #1
|
|
add r7, r7, #2
|
|
add r6, r6, #1
|
|
bl BattleSys_GetPartySize
|
|
cmp r6, r0
|
|
blt _0225F66A
|
|
_0225F6AA:
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB0C
|
|
cmp r0, #4
|
|
bne _0225F6BE
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
strb r1, [r0, #0x11]
|
|
b _0225F746
|
|
_0225F6BE:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x11]
|
|
b _0225F746
|
|
_0225F6C6:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _0225F6E8
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
bne _0225F6E8
|
|
ldrb r1, [r4, #9]
|
|
mov r0, #1
|
|
add r7, r1, #0
|
|
and r7, r0
|
|
b _0225F6EC
|
|
_0225F6E8:
|
|
ldrb r1, [r4, #9]
|
|
add r7, r1, #0
|
|
_0225F6EC:
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB0C
|
|
cmp r0, #4
|
|
bne _0225F6FA
|
|
mov r1, #1
|
|
b _0225F6FC
|
|
_0225F6FA:
|
|
mov r1, #0
|
|
_0225F6FC:
|
|
ldr r0, [r4, #4]
|
|
strb r1, [r0, #0x11]
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetParty
|
|
str r0, [sp, #0x10]
|
|
mov r6, #0
|
|
bl GetPartyCount
|
|
cmp r0, #0
|
|
ble _0225F746
|
|
mov r0, #6
|
|
mul r0, r7
|
|
add r5, r4, r0
|
|
_0225F71A:
|
|
ldrb r2, [r5, #0x1c]
|
|
ldr r0, [r4]
|
|
add r1, r7, #0
|
|
bl BattleSystem_GetPartyMon
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0]
|
|
bl AddMonToParty
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r5, #0x1c]
|
|
add r0, r0, r6
|
|
add r0, #0x2c
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #0x10]
|
|
add r5, r5, #1
|
|
add r6, r6, #1
|
|
bl GetPartyCount
|
|
cmp r6, r0
|
|
blt _0225F71A
|
|
_0225F746:
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0, #8]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #5
|
|
str r1, [r0, #0xc]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x36
|
|
strb r1, [r0]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r0, [r4, #4]
|
|
strh r1, [r0, #0x24]
|
|
ldrb r1, [r4, #0x16]
|
|
ldr r0, [r4, #4]
|
|
strb r1, [r0, #0x12]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0xb]
|
|
add r0, #0x35
|
|
strb r1, [r0]
|
|
ldrh r1, [r4, #0x14]
|
|
ldr r0, [r4, #4]
|
|
strh r1, [r0, #0x22]
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0, #0x28]
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0x17]
|
|
add r0, #0x32
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, #9]
|
|
bl MaskOfFlagNo
|
|
ldrb r1, [r4, #0x18]
|
|
tst r0, r1
|
|
bne _0225F796
|
|
ldrb r0, [r4, #9]
|
|
add r0, r4, r0
|
|
ldrb r1, [r0, #0xc]
|
|
b _0225F798
|
|
_0225F796:
|
|
mov r1, #6
|
|
_0225F798:
|
|
ldr r0, [r4, #4]
|
|
strb r1, [r0, #0x14]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _0225F7B0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
strb r1, [r0, #0x15]
|
|
b _0225F7DA
|
|
_0225F7B0:
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
bl MaskOfFlagNo
|
|
ldrb r1, [r4, #0x18]
|
|
tst r0, r1
|
|
bne _0225F7D4
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r0, r4, r0
|
|
ldrb r1, [r0, #0xc]
|
|
ldr r0, [r4, #4]
|
|
strb r1, [r0, #0x15]
|
|
b _0225F7DA
|
|
_0225F7D4:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
strb r1, [r0, #0x15]
|
|
_0225F7DA:
|
|
ldr r0, [r4, #4]
|
|
bl ov10_0221BE20
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0x24
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225F7EA:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x36
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225F8A6
|
|
ldr r0, [r4]
|
|
bl ov12_02237BB8
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
ldr r1, [r4, #4]
|
|
add r1, #0x32
|
|
ldrb r1, [r1]
|
|
bl ov12_0226A8EC
|
|
mov r0, #7
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r1, #5
|
|
str r0, [sp, #4]
|
|
mov r2, #3
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
add r0, r5, #0
|
|
lsl r2, r2, #0xa
|
|
sub r3, #0xd
|
|
bl sub_02003370
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r1, #0xa
|
|
str r0, [sp, #4]
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _0225F870 ; =0x0000FFFF
|
|
add r0, r5, #0
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0x24
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0225F846:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
bne _0225F8A6
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB34
|
|
mov r1, #0
|
|
bl sub_0201649C
|
|
ldr r3, [r4, #4]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r3, #0x11]
|
|
cmp r2, #6
|
|
bne _0225F874
|
|
ldrb r1, [r4, #9]
|
|
mov r2, #0xff
|
|
bl ov12_02263360
|
|
b _0225F882
|
|
nop
|
|
_0225F870: .word 0x0000FFFF
|
|
_0225F874:
|
|
add r2, r3, r2
|
|
add r2, #0x2c
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r4, #9]
|
|
add r2, r2, #1
|
|
bl ov12_02263360
|
|
_0225F882:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, [r4, #4]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225F8A6:
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225F4E0
|
|
|
|
thumb_func_start ov12_0225F8AC
|
|
ov12_0225F8AC: ; 0x0225F8AC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #0x10
|
|
ldrb r6, [r5, #9]
|
|
tst r1, r0
|
|
bne _0225F8C8
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _0225F8CC
|
|
_0225F8C8:
|
|
str r6, [sp, #4]
|
|
b _0225F8D6
|
|
_0225F8CC:
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
bl BattleSys_GetBattlerIdPartner
|
|
str r0, [sp, #4]
|
|
_0225F8D6:
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
bl ov12_02258BA0
|
|
add r4, r0, #0
|
|
cmp r4, #6
|
|
bne _0225F93A
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
bl ov12_02258800
|
|
add r4, r0, #0
|
|
cmp r4, #6
|
|
bne _0225F93A
|
|
ldrb r1, [r5, #9]
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetParty
|
|
str r0, [sp, #8]
|
|
mov r4, #0
|
|
bl GetPartyCount
|
|
cmp r0, #0
|
|
ble _0225F93A
|
|
ldr r0, [sp, #4]
|
|
add r7, r5, r6
|
|
add r6, r5, r0
|
|
_0225F90C:
|
|
ldrb r1, [r5, #9]
|
|
ldr r0, [r5]
|
|
add r2, r4, #0
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0225F92E
|
|
ldrb r0, [r7, #0xc]
|
|
cmp r4, r0
|
|
beq _0225F92E
|
|
ldrb r0, [r6, #0xc]
|
|
cmp r4, r0
|
|
bne _0225F93A
|
|
_0225F92E:
|
|
ldr r0, [sp, #8]
|
|
add r4, r4, #1
|
|
bl GetPartyCount
|
|
cmp r4, r0
|
|
blt _0225F90C
|
|
_0225F93A:
|
|
ldrb r1, [r5, #9]
|
|
ldr r0, [r5]
|
|
add r2, r4, #1
|
|
bl ov12_02263360
|
|
ldrb r1, [r5, #9]
|
|
ldrb r2, [r5, #8]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
ldr r0, [sp]
|
|
bl DestroySysTask
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225F8AC
|
|
|
|
thumb_func_start ov12_0225F960
|
|
ov12_0225F960: ; 0x0225F960
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225F960
|
|
|
|
thumb_func_start ov12_0225F980
|
|
ov12_0225F980: ; 0x0225F980
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #4
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #9]
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225F99C
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225F99C:
|
|
add r0, sp, #0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225F9A8
|
|
cmp r0, #6
|
|
bls _0225F9B0
|
|
_0225F9A8:
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
b _0225FA18
|
|
_0225F9B0:
|
|
ldrb r1, [r4, #9]
|
|
sub r5, r0, #1
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetParty
|
|
ldrb r1, [r4, #9]
|
|
add r1, r4, r1
|
|
ldrb r1, [r1, #0xc]
|
|
cmp r5, r1
|
|
beq _0225F9CA
|
|
ldrb r1, [r4, #0x16]
|
|
cmp r5, r1
|
|
bne _0225F9D2
|
|
_0225F9CA:
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
b _0225FA18
|
|
_0225F9D2:
|
|
add r1, sp, #0
|
|
ldrb r5, [r1]
|
|
bl GetPartyCount
|
|
cmp r5, r0
|
|
ldr r0, [r4]
|
|
ble _0225F9E6
|
|
bl ov12_02261EB8
|
|
b _0225FA18
|
|
_0225F9E6:
|
|
ldrb r1, [r4, #9]
|
|
sub r2, r5, #1
|
|
bl BattleSystem_GetPartyMon
|
|
mov r1, #0xa3
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0225FA02
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
_0225FA02:
|
|
add r0, r5, #0
|
|
mov r1, #0xae
|
|
mov r2, #0
|
|
bl GetMonData
|
|
ldr r1, _0225FA40 ; =0x000001EE
|
|
cmp r0, r1
|
|
bne _0225FA18
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
_0225FA18:
|
|
add r2, sp, #0
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_02263360
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
add sp, #4
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_0225FA40: .word 0x000001EE
|
|
thumb_func_end ov12_0225F980
|
|
|
|
thumb_func_start ov12_0225FA44
|
|
ov12_0225FA44: ; 0x0225FA44
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
ldr r0, [r4]
|
|
bl ov12_0223A900
|
|
add r5, r0, #0
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetOpponentDataByBattlerId
|
|
str r0, [sp, #0xc]
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r1, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r1, r0
|
|
beq _0225FA7E
|
|
ldr r0, [r4]
|
|
bl ov12_0223BC38
|
|
add r7, r0, #0
|
|
b _0225FA80
|
|
_0225FA7E:
|
|
mov r7, #0
|
|
_0225FA80:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #4
|
|
bhi _0225FB00
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225FA92: ; jump table
|
|
.short _0225FA9C - _0225FA92 - 2 ; case 0
|
|
.short _0225FAEC - _0225FA92 - 2 ; case 1
|
|
.short _0225FBC6 - _0225FA92 - 2 ; case 2
|
|
.short _0225FBE4 - _0225FA92 - 2 ; case 3
|
|
.short _0225FC4C - _0225FA92 - 2 ; case 4
|
|
_0225FA9C:
|
|
add r0, r5, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #0
|
|
beq _0225FB00
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0225FAE4
|
|
ldr r0, [r4]
|
|
bl ov12_0223A930
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #5
|
|
add r0, sp, #0x10
|
|
bne _0225FAC6
|
|
mov r1, #0x82
|
|
strb r1, [r0, #5]
|
|
ldr r0, [r4, #0x14]
|
|
str r0, [sp, #0x18]
|
|
b _0225FACA
|
|
_0225FAC6:
|
|
mov r1, #0
|
|
strb r1, [r0, #5]
|
|
_0225FACA:
|
|
ldr r1, [r4, #0x10]
|
|
add r0, sp, #0x10
|
|
strh r1, [r0, #6]
|
|
ldr r0, [r4]
|
|
bl ov12_0223B718
|
|
add r3, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
add r2, sp, #0x14
|
|
bl ov12_0223C494
|
|
strh r0, [r4, #0x1a]
|
|
_0225FAE4:
|
|
mov r0, #1
|
|
add sp, #0x38
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225FAEC:
|
|
ldrh r0, [r4, #0x1a]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
beq _0225FB02
|
|
ldr r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0225FB02
|
|
_0225FB00:
|
|
b _0225FC76
|
|
_0225FB02:
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r7, r0, #0
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_02266B34
|
|
ldrh r1, [r4, #0x18]
|
|
add r0, sp, #0x10
|
|
strh r1, [r0]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #5
|
|
bhi _0225FBAE
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225FB34: ; jump table
|
|
.short _0225FB40 - _0225FB34 - 2 ; case 0
|
|
.short _0225FB56 - _0225FB34 - 2 ; case 1
|
|
.short _0225FB6C - _0225FB34 - 2 ; case 2
|
|
.short _0225FB82 - _0225FB34 - 2 ; case 3
|
|
.short _0225FB98 - _0225FB34 - 2 ; case 4
|
|
.short _0225FB40 - _0225FB34 - 2 ; case 5
|
|
_0225FB40:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0xd
|
|
bl ov12_02266508
|
|
b _0225FBB2
|
|
_0225FB56:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0xe
|
|
bl ov12_02266508
|
|
b _0225FBB2
|
|
_0225FB6C:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0xf
|
|
bl ov12_02266508
|
|
b _0225FBB2
|
|
_0225FB82:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0x10
|
|
bl ov12_02266508
|
|
b _0225FBB2
|
|
_0225FB98:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
str r0, [sp, #4]
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
mov r3, #0x11
|
|
bl ov12_02266508
|
|
b _0225FBB2
|
|
_0225FBAE:
|
|
bl GF_AssertFail
|
|
_0225FBB2:
|
|
mov r0, #2
|
|
strb r0, [r4, #0xe]
|
|
add r0, r7, #0
|
|
bl NARC_Delete
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225FBC6:
|
|
add r0, r5, #0
|
|
bl ov12_02266B78
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
str r0, [r4, #8]
|
|
cmp r0, r1
|
|
beq _0225FC76
|
|
ldr r0, _0225FC7C ; =0x000005DD
|
|
bl PlaySE
|
|
mov r0, #3
|
|
add sp, #0x38
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225FBE4:
|
|
add r0, r5, #0
|
|
bl ov12_02266C64
|
|
cmp r0, #1
|
|
bne _0225FC76
|
|
mov r0, #7
|
|
mov r1, #5
|
|
bl NARC_New
|
|
str r0, [sp, #8]
|
|
mov r0, #8
|
|
mov r1, #5
|
|
bl NARC_New
|
|
add r6, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov12_02264EB4
|
|
ldr r0, [sp, #0xc]
|
|
bl ov12_02262014
|
|
add r0, r7, #0
|
|
bl ov12_02265D74
|
|
add r0, r5, #0
|
|
bl ov12_02266B34
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, [sp, #8]
|
|
str r3, [sp, #4]
|
|
add r1, r6, #0
|
|
add r2, r5, #0
|
|
bl ov12_02266508
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #1
|
|
bne _0225FC38
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
bl ov12_022698AC
|
|
_0225FC38:
|
|
mov r0, #4
|
|
strb r0, [r4, #0xe]
|
|
ldr r0, [sp, #8]
|
|
bl NARC_Delete
|
|
add r0, r6, #0
|
|
bl NARC_Delete
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0225FC4C:
|
|
add r0, r5, #0
|
|
bl ov12_022698B0
|
|
cmp r0, #1
|
|
bne _0225FC76
|
|
ldrb r1, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
ldr r2, [r4, #8]
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0225FC76:
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0225FC7C: .word 0x000005DD
|
|
thumb_func_end ov12_0225FA44
|
|
|
|
thumb_func_start ov12_0225FC80
|
|
ov12_0225FC80: ; 0x0225FC80
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225FC80
|
|
|
|
thumb_func_start ov12_0225FCA0
|
|
ov12_0225FCA0: ; 0x0225FCA0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225FCA0
|
|
|
|
thumb_func_start ov12_0225FCC0
|
|
ov12_0225FCC0: ; 0x0225FCC0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
ldrb r1, [r4, #0xd]
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
add r2, sp, #0
|
|
bl ov12_0223BE0C
|
|
cmp r0, #1
|
|
bne _0225FCDA
|
|
ldr r0, [r4]
|
|
bl ov12_02261ED4
|
|
_0225FCDA:
|
|
add r0, sp, #0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225FCEA
|
|
cmp r0, #0xff
|
|
beq _0225FCF0
|
|
cmp r0, #1
|
|
beq _0225FCF0
|
|
_0225FCEA:
|
|
ldr r0, [r4]
|
|
bl ov12_02261EB8
|
|
_0225FCF0:
|
|
add r2, sp, #0
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_02262F24
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225FCC0
|
|
|
|
thumb_func_start ov12_0225FD14
|
|
ov12_0225FD14: ; 0x0225FD14
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x1fc
|
|
sub sp, #0x14
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
bls _0225FD2A
|
|
b _0225FF78
|
|
_0225FD2A:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0225FD36: ; jump table
|
|
.short _0225FD4C - _0225FD36 - 2 ; case 0
|
|
.short _0225FF56 - _0225FD36 - 2 ; case 1
|
|
.short _0225FDA6 - _0225FD36 - 2 ; case 2
|
|
.short _0225FF56 - _0225FD36 - 2 ; case 3
|
|
.short _0225FE02 - _0225FD36 - 2 ; case 4
|
|
.short _0225FF56 - _0225FD36 - 2 ; case 5
|
|
.short _0225FE50 - _0225FD36 - 2 ; case 6
|
|
.short _0225FF56 - _0225FD36 - 2 ; case 7
|
|
.short _0225FED8 - _0225FD36 - 2 ; case 8
|
|
.short _0225FF56 - _0225FD36 - 2 ; case 9
|
|
.short _0225FF34 - _0225FD36 - 2 ; case 10
|
|
_0225FD4C:
|
|
ldrh r0, [r4, #0x1e]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
beq _0225FD9A
|
|
ldr r0, [r4, #0x5c]
|
|
cmp r0, #0
|
|
bne _0225FD9A
|
|
ldr r0, [r4, #8]
|
|
mov r1, #6
|
|
bl sub_02008A78
|
|
cmp r0, #0
|
|
bne _0225FD9A
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0x1b8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0xc]
|
|
add r3, sp, #0x1b8
|
|
bl ov12_02261B80
|
|
add sp, #0x1fc
|
|
mov r0, #1
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FD9A:
|
|
add sp, #0x1fc
|
|
mov r0, #4
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FDA6:
|
|
add r3, r4, #0
|
|
add r3, #0x69
|
|
ldrb r3, [r3]
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, sp, #0x168
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0x168
|
|
mov r1, #5
|
|
bl ov07_0223494C
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x110
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0xc]
|
|
add r3, sp, #0x110
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
add sp, #0x1fc
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r0, [r0]
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FE02:
|
|
ldr r0, [r4]
|
|
mov r1, #2
|
|
bl ov12_0223BD3C
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225FE1A
|
|
ldr r0, [r4]
|
|
bl ov12_0223BCC8
|
|
_0225FE1A:
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225FE30
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
mov r1, #1
|
|
bl sub_020094D8
|
|
_0225FE30:
|
|
add r3, r4, #0
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0xc]
|
|
add r3, #0x10
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r0, [r0]
|
|
add sp, #0x1fc
|
|
add r4, #0x6a
|
|
add r0, r0, #1
|
|
add sp, #0x14
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FE50:
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl ov12_0223BD3C
|
|
add r0, r4, #0
|
|
add r0, #0x6b
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225FE68
|
|
ldr r0, [r4]
|
|
bl ov12_0223BC98
|
|
_0225FE68:
|
|
add r0, r4, #0
|
|
add r0, #0x6c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0225FE7E
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8D4
|
|
mov r1, #1
|
|
bl sub_020094E4
|
|
_0225FE7E:
|
|
ldrh r0, [r4, #0x1e]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
beq _0225FECC
|
|
ldr r0, [r4, #0x5c]
|
|
cmp r0, #0
|
|
bne _0225FECC
|
|
ldr r0, [r4, #8]
|
|
mov r1, #6
|
|
bl sub_02008A78
|
|
cmp r0, #0
|
|
bne _0225FECC
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0xb8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0xc]
|
|
add r3, sp, #0xb8
|
|
bl ov12_02261B80
|
|
add sp, #0x1fc
|
|
mov r0, #7
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FECC:
|
|
add sp, #0x1fc
|
|
mov r0, #0xa
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FED8:
|
|
add r3, r4, #0
|
|
add r3, #0x69
|
|
ldrb r3, [r3]
|
|
ldr r0, [r4]
|
|
add r1, #0x10
|
|
add r2, sp, #0x68
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0x68
|
|
mov r1, #5
|
|
bl ov07_02234A20
|
|
add r0, r4, #0
|
|
add r0, #0x69
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x10
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4, #0xc]
|
|
add r3, sp, #0x10
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
add sp, #0x1fc
|
|
ldr r1, [r4, #4]
|
|
mov r2, #1
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r0, [r0]
|
|
add r4, #0x6a
|
|
add sp, #0x14
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FF34:
|
|
add r2, r4, #0
|
|
add r1, #0x69
|
|
add r2, #0x68
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, pc}
|
|
_0225FF56:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_0221C394
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0225FF78
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x6a
|
|
ldrb r0, [r0]
|
|
add r4, #0x6a
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
_0225FF78:
|
|
add sp, #0x1fc
|
|
add sp, #0x14
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225FD14
|
|
|
|
thumb_func_start ov12_0225FF80
|
|
ov12_0225FF80: ; 0x0225FF80
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #9]
|
|
cmp r0, #6
|
|
bhs _0225FFBA
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _0225FFB4
|
|
mov r0, #2
|
|
strb r0, [r4, #0xa]
|
|
ldrb r0, [r4, #9]
|
|
mov r1, #6
|
|
add r0, r0, #1
|
|
strb r0, [r4, #9]
|
|
ldr r0, [r4, #4]
|
|
bl sub_02008A78
|
|
add r3, r0, #0
|
|
mov r2, #1
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
eor r2, r3
|
|
bl sub_020087A4
|
|
pop {r3, r4, r5, pc}
|
|
_0225FFB4:
|
|
sub r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, pc}
|
|
_0225FFBA:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
mov r2, #0
|
|
bl sub_020087A4
|
|
ldrb r1, [r4, #8]
|
|
ldr r0, [r4]
|
|
mov r2, #0x17
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_0225FF80
|
|
|
|
thumb_func_start ov12_0225FFDC
|
|
ov12_0225FFDC: ; 0x0225FFDC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
beq _0225FFEE
|
|
cmp r0, #1
|
|
beq _0225FFFC
|
|
b _02260012
|
|
_0225FFEE:
|
|
ldr r1, [r4, #0x30]
|
|
add r0, r4, #0
|
|
bl ov12_02264DCC
|
|
ldrb r0, [r4]
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
_0225FFFC:
|
|
add r0, r4, #0
|
|
bl ov12_02264E00
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0226002C
|
|
ldrb r0, [r4]
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_02260012:
|
|
add r2, r4, #0
|
|
add r1, #0x24
|
|
add r2, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl ov12_0226430C
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_0226002C:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_0225FFDC
|
|
|
|
thumb_func_start ov12_02260030
|
|
ov12_02260030: ; 0x02260030
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
beq _02260046
|
|
cmp r0, #1
|
|
beq _02260062
|
|
cmp r0, #2
|
|
beq _022600A8
|
|
b _022600CE
|
|
_02260046:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r0, #0x4e
|
|
strb r1, [r0]
|
|
ldr r0, _022600EC ; =0x0000070B
|
|
bl PlaySE
|
|
ldr r1, [r4, #0x40]
|
|
add r0, r4, #0
|
|
bl ov12_02264E34
|
|
ldrb r0, [r4]
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
_02260062:
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
bhs _0226007A
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
strb r1, [r0]
|
|
_0226007A:
|
|
add r0, r4, #0
|
|
bl ov12_02264E68
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _022600E8
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
blo _022600A0
|
|
ldr r0, _022600EC ; =0x0000070B
|
|
mov r1, #0
|
|
bl StopSE
|
|
mov r0, #0x64
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_022600A0:
|
|
ldrb r0, [r4]
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_022600A8:
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
strb r1, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0x4e
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
blo _022600E8
|
|
ldr r0, _022600EC ; =0x0000070B
|
|
mov r1, #0
|
|
bl StopSE
|
|
mov r0, #0x64
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_022600CE:
|
|
add r2, r4, #0
|
|
add r1, #0x24
|
|
add r2, #0x4c
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4, #0xc]
|
|
bl ov12_0226430C
|
|
mov r0, #0
|
|
str r0, [r4, #0x10]
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_022600E8:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022600EC: .word 0x0000070B
|
|
thumb_func_end ov12_02260030
|
|
|
|
thumb_func_start ov12_022600F0
|
|
ov12_022600F0: ; 0x022600F0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x114
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x66
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #0xa
|
|
bls _0226010C
|
|
b _02260374
|
|
_0226010C:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02260118: ; jump table
|
|
.short _0226012E - _02260118 - 2 ; case 0
|
|
.short _022601D6 - _02260118 - 2 ; case 1
|
|
.short _0226017A - _02260118 - 2 ; case 2
|
|
.short _022601D6 - _02260118 - 2 ; case 3
|
|
.short _022601FA - _02260118 - 2 ; case 4
|
|
.short _0226024C - _02260118 - 2 ; case 5
|
|
.short _02260266 - _02260118 - 2 ; case 6
|
|
.short _022602A2 - _02260118 - 2 ; case 7
|
|
.short _022602CE - _02260118 - 2 ; case 8
|
|
.short _0226030E - _02260118 - 2 ; case 9
|
|
.short _02260356 - _02260118 - 2 ; case 10
|
|
_0226012E:
|
|
add r0, r4, #0
|
|
add r0, #0x70
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _02260170
|
|
add r0, r4, #0
|
|
add r0, #0x65
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0xbc
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0xbc
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260170:
|
|
mov r0, #4
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0226017A:
|
|
add r3, r4, #0
|
|
add r3, #0x65
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #0xc
|
|
add r2, sp, #0x6c
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0x6c
|
|
mov r1, #5
|
|
bl ov07_0223494C
|
|
add r0, r4, #0
|
|
add r0, #0x65
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x14
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x14
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_022601D6:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _02260254
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_022601FA:
|
|
add r0, r4, #0
|
|
add r0, #0x67
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _02260208
|
|
mov r5, #0x75
|
|
b _0226020C
|
|
_02260208:
|
|
mov r5, #0x74
|
|
mvn r5, r5
|
|
_0226020C:
|
|
add r1, r4, #0
|
|
add r1, #0x65
|
|
ldrb r1, [r1]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetChatotVoice
|
|
str r5, [sp]
|
|
mov r1, #0x7f
|
|
str r1, [sp, #4]
|
|
add r1, r4, #0
|
|
add r1, #0x72
|
|
ldrh r1, [r1]
|
|
add r3, r4, #0
|
|
mov r2, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #5
|
|
str r1, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
add r2, r4, #0
|
|
add r2, #0x68
|
|
add r3, #0x6b
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3]
|
|
bl sub_0207204C
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
strb r1, [r0]
|
|
_0226024C:
|
|
bl IsCryFinished
|
|
cmp r0, #0
|
|
beq _02260256
|
|
_02260254:
|
|
b _02260374
|
|
_02260256:
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260266:
|
|
add r0, r4, #0
|
|
add r0, #0x67
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
ldr r0, _02260378 ; =0x00000703
|
|
bne _0226027A
|
|
mov r1, #0x75
|
|
bl sub_0200602C
|
|
b _02260282
|
|
_0226027A:
|
|
mov r1, #0x74
|
|
mvn r1, r1
|
|
bl sub_0200602C
|
|
_02260282:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x29
|
|
bl sub_02008A78
|
|
cmp r0, #0
|
|
ble _02260298
|
|
mov r0, #7
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260298:
|
|
mov r0, #8
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_022602A2:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x29
|
|
bl sub_02008A78
|
|
add r5, r0, #0
|
|
sub r5, #8
|
|
bpl _022602B2
|
|
mov r5, #0
|
|
_022602B2:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x29
|
|
add r2, r5, #0
|
|
bl sub_020087A4
|
|
cmp r5, #0
|
|
bne _02260374
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r1, r0, #1
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
strb r1, [r0]
|
|
_022602CE:
|
|
ldr r0, [r4, #0x6c]
|
|
add r1, r4, #0
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r2, r4, #0
|
|
add r3, r4, #0
|
|
add r0, #0x68
|
|
add r1, #0x6a
|
|
add r2, #0x67
|
|
add r3, #0x6b
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldrb r3, [r3]
|
|
bl sub_020708D8
|
|
mov r3, #0x50
|
|
sub r0, r3, r0
|
|
str r0, [sp]
|
|
mov r1, #0
|
|
ldr r0, [r4, #8]
|
|
add r2, r1, #0
|
|
bl sub_0200908C
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0226030E:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl sub_02008A78
|
|
add r2, r0, #0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
add r2, #8
|
|
bl sub_020087A4
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x12
|
|
bl sub_02008A78
|
|
add r5, r0, #0
|
|
sub r5, #8
|
|
bpl _02260332
|
|
mov r5, #0
|
|
_02260332:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x12
|
|
add r2, r5, #0
|
|
bl sub_020087A4
|
|
cmp r5, #0
|
|
bne _02260374
|
|
ldr r0, [r4, #8]
|
|
bl sub_02008780
|
|
add r0, r4, #0
|
|
add r0, #0x66
|
|
ldrb r0, [r0]
|
|
add r4, #0x66
|
|
add sp, #0x114
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260356:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x65
|
|
add r2, #0x64
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_02260374:
|
|
add sp, #0x114
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02260378: .word 0x00000703
|
|
thumb_func_end ov12_022600F0
|
|
|
|
thumb_func_start ov12_0226037C
|
|
ov12_0226037C: ; 0x0226037C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A938
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8D4
|
|
add r7, r0, #0
|
|
ldrb r0, [r5, #6]
|
|
cmp r0, #0
|
|
beq _022603A6
|
|
cmp r0, #1
|
|
beq _022603E4
|
|
cmp r0, #2
|
|
beq _022603F8
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
_022603A6:
|
|
ldr r0, [r5]
|
|
bl ov12_0223AB34
|
|
mov r1, #1
|
|
bl sub_0201649C
|
|
mov r1, #0
|
|
str r1, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r2, _02260414 ; =0x0000FFFF
|
|
add r0, r4, #0
|
|
mov r1, #0xf
|
|
mov r3, #1
|
|
bl sub_02003370
|
|
mov r1, #0
|
|
add r0, r7, #0
|
|
mov r2, #0x10
|
|
add r3, r1, #0
|
|
str r1, [sp]
|
|
bl sub_020090E4
|
|
mov r0, #0
|
|
mov r1, #0x10
|
|
bl GF_SndStartFadeOutBGM
|
|
ldrb r0, [r5, #6]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #6]
|
|
_022603E4:
|
|
add r0, r4, #0
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
bne _0226040E
|
|
ldrb r0, [r5, #6]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r5, #6]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_022603F8:
|
|
ldrb r1, [r5, #5]
|
|
ldrb r2, [r5, #4]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0226040E:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_02260414: .word 0x0000FFFF
|
|
thumb_func_end ov12_0226037C
|
|
|
|
thumb_func_start ov12_02260418
|
|
ov12_02260418: ; 0x02260418
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x110
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A8DC
|
|
add r1, r4, #0
|
|
add r1, #0x62
|
|
ldrb r1, [r1]
|
|
add r5, r0, #0
|
|
cmp r1, #4
|
|
bls _02260434
|
|
b _02260560
|
|
_02260434:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02260440: ; jump table
|
|
.short _0226044A - _02260440 - 2 ; case 0
|
|
.short _0226048C - _02260440 - 2 ; case 1
|
|
.short _0226053C - _02260440 - 2 ; case 2
|
|
.short _022604E0 - _02260440 - 2 ; case 3
|
|
.short _0226053C - _02260440 - 2 ; case 4
|
|
_0226044A:
|
|
ldr r0, [r4, #4]
|
|
ldr r0, [r0, #0x20]
|
|
cmp r0, #0
|
|
beq _02260482
|
|
add r2, r4, #0
|
|
add r2, #0x63
|
|
ldrb r2, [r2]
|
|
mov r1, #6
|
|
bl sub_020087A4
|
|
add r0, r4, #0
|
|
add r0, #0x63
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _02260472
|
|
mov r0, #0xff
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_02260472:
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
ldrb r0, [r0]
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_02260482:
|
|
mov r0, #0xff
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0226048C:
|
|
ldr r0, [r4, #0x64]
|
|
cmp r0, #0
|
|
beq _022604D6
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
lsl r0, r0, #4
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _022604D6
|
|
add r0, r4, #0
|
|
add r0, #0x61
|
|
ldrb r1, [r0]
|
|
mov r0, #0xf
|
|
add r2, sp, #0xb8
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0xb8
|
|
bl ov12_02261B80
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
ldrb r0, [r0]
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_022604D6:
|
|
mov r0, #0xff
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_022604E0:
|
|
add r3, r4, #0
|
|
add r3, #0x61
|
|
ldrb r3, [r3]
|
|
add r1, r4, #0
|
|
ldr r0, [r4]
|
|
add r1, #8
|
|
add r2, sp, #0x68
|
|
bl ov12_02261CA8
|
|
add r0, sp, #0x68
|
|
mov r1, #5
|
|
bl ov07_02234A20
|
|
add r0, r4, #0
|
|
add r0, #0x61
|
|
ldrb r1, [r0]
|
|
mov r0, #0x10
|
|
add r2, sp, #0x10
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
ldr r0, [r4]
|
|
mov r3, #1
|
|
bl ov12_022643C8
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
add r2, r5, #0
|
|
add r3, sp, #0x10
|
|
bl ov12_02261B80
|
|
mov r0, #0x1a
|
|
ldr r1, [r4, #4]
|
|
mov r2, #1
|
|
lsl r0, r0, #4
|
|
str r2, [r1, r0]
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
ldrb r0, [r0]
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_0226053C:
|
|
bl ov07_0221C394
|
|
add r0, r5, #0
|
|
bl ov07_0221C3B0
|
|
cmp r0, #0
|
|
bne _0226057E
|
|
add r0, r5, #0
|
|
bl ov07_0221C3C0
|
|
add r0, r4, #0
|
|
add r0, #0x62
|
|
ldrb r0, [r0]
|
|
add r4, #0x62
|
|
add sp, #0x110
|
|
add r0, r0, #1
|
|
strb r0, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
_02260560:
|
|
add r1, r4, #0
|
|
add r2, r4, #0
|
|
add r1, #0x61
|
|
add r2, #0x60
|
|
ldrb r1, [r1]
|
|
ldrb r2, [r2]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_0226057E:
|
|
add sp, #0x110
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260418
|
|
|
|
thumb_func_start ov12_02260584
|
|
ov12_02260584: ; 0x02260584
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
beq _02260596
|
|
cmp r0, #1
|
|
beq _022605AC
|
|
pop {r3, r4, r5, pc}
|
|
_02260596:
|
|
ldr r0, [r4, #4]
|
|
add r1, #0xb
|
|
bl ov12_02265C54
|
|
ldr r0, _022605CC ; =0x0000070C
|
|
bl PlaySE
|
|
ldrb r0, [r4, #0xa]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, pc}
|
|
_022605AC:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #1
|
|
bne _022605C8
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_022605C8:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_022605CC: .word 0x0000070C
|
|
thumb_func_end ov12_02260584
|
|
|
|
thumb_func_start ov12_022605D0
|
|
ov12_022605D0: ; 0x022605D0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BB78
|
|
cmp r0, #0
|
|
beq _022605F2
|
|
ldr r0, [r4]
|
|
bl ov12_0223BB78
|
|
bl sub_0200F450
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
bl ov12_0223BB80
|
|
_022605F2:
|
|
ldrb r0, [r4, #6]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _02260612
|
|
ldrb r1, [r4, #5]
|
|
ldrb r2, [r4, #4]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02260612:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_022605D0
|
|
|
|
thumb_func_start ov12_02260614
|
|
ov12_02260614: ; 0x02260614
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #7]
|
|
cmp r0, #0
|
|
beq _02260626
|
|
cmp r0, #1
|
|
beq _0226063C
|
|
pop {r3, r4, r5, pc}
|
|
_02260626:
|
|
ldrb r0, [r4, #6]
|
|
bl TextPrinterCheckActive
|
|
cmp r0, #0
|
|
bne _02260666
|
|
ldrb r0, [r4, #7]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #7]
|
|
mov r0, #0
|
|
strb r0, [r4, #8]
|
|
pop {r3, r4, r5, pc}
|
|
_0226063C:
|
|
ldrb r0, [r4, #8]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #8]
|
|
ldrb r0, [r4, #8]
|
|
cmp r0, #0x28
|
|
bne _02260666
|
|
ldrb r1, [r4, #5]
|
|
ldr r0, [r4]
|
|
bl ov12_02263A00
|
|
ldrb r1, [r4, #5]
|
|
ldrb r2, [r4, #4]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02260666:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_02260614
|
|
|
|
thumb_func_start ov12_02260668
|
|
ov12_02260668: ; 0x02260668
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A7D4
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
add r7, r0, #0
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetTerrainId
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB54
|
|
lsl r1, r0, #2
|
|
ldr r0, _022609DC ; =ov12_0226D18C
|
|
ldr r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
ldrb r0, [r4, #0x15]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x15]
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r0, #5
|
|
bls _022606A2
|
|
b _022609D8
|
|
_022606A2:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_022606AE: ; jump table
|
|
.short _022606BA - _022606AE - 2 ; case 0
|
|
.short _022606FA - _022606AE - 2 ; case 1
|
|
.short _022608B0 - _022606AE - 2 ; case 2
|
|
.short _022608CC - _022606AE - 2 ; case 3
|
|
.short _022608E8 - _022606AE - 2 ; case 4
|
|
.short _022608FA - _022606AE - 2 ; case 5
|
|
_022606BA:
|
|
mov r0, #5
|
|
mov r1, #0
|
|
bl ov07_0223458C
|
|
str r0, [r4, #4]
|
|
ldr r0, _022609E0 ; =ov12_0226D350
|
|
add r1, sp, #0x10
|
|
ldrb r5, [r0, r5]
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
str r5, [sp, #0x10]
|
|
ldr r0, [r4, #4]
|
|
bl ov07_022345C8
|
|
str r0, [r4, #8]
|
|
add r0, r5, #1
|
|
str r0, [sp, #0x10]
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0x10
|
|
bl ov07_022345C8
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
bl ov07_02234694
|
|
ldr r0, _022609E4 ; =0x0000084F
|
|
bl PlaySE
|
|
mov r0, #1
|
|
strb r0, [r4, #0x14]
|
|
_022606FA:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0xa
|
|
bne _02260734
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, _022609E8 ; =0x0000F3FF
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl sub_02003370
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r0, #0x10
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0xc]
|
|
ldr r2, _022609EC ; =0x00003FFF
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
add r0, r7, #0
|
|
mov r1, #4
|
|
bl sub_02003370
|
|
_02260734:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0xa
|
|
blo _0226077E
|
|
ldrb r0, [r4, #0x16]
|
|
cmp r0, #0x10
|
|
bhs _0226077E
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x16]
|
|
ldrb r0, [r4, #0x16]
|
|
cmp r0, #0x10
|
|
bls _0226074E
|
|
mov r0, #0x10
|
|
strb r0, [r4, #0x16]
|
|
_0226074E:
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl PaletteData_GetFadedBuf
|
|
add r6, r0, #0
|
|
mov r0, #1
|
|
mov r5, #0
|
|
lsl r0, r0, #8
|
|
_0226075E:
|
|
ldrb r2, [r4, #0x16]
|
|
mov r1, #0x1f
|
|
mul r1, r2
|
|
lsl r1, r1, #0xc
|
|
lsr r3, r1, #0x10
|
|
lsl r1, r3, #5
|
|
lsl r2, r3, #0xa
|
|
orr r1, r3
|
|
orr r2, r1
|
|
lsl r1, r5, #1
|
|
strh r2, [r6, r1]
|
|
add r1, r5, #1
|
|
lsl r1, r1, #0x10
|
|
lsr r5, r1, #0x10
|
|
cmp r5, r0
|
|
blo _0226075E
|
|
_0226077E:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0x14
|
|
bne _0226078A
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_02234694
|
|
_0226078A:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0x17
|
|
bne _02260798
|
|
mov r0, #0x85
|
|
lsl r0, r0, #4
|
|
bl PlaySE
|
|
_02260798:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0x1c
|
|
bne _0226088A
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAE0
|
|
add r1, r5, #0
|
|
mov r2, #0xe0
|
|
bl MIi_CpuCopy16
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0x4a
|
|
bne _022607DA
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xa0
|
|
bl MIi_CpuCopy16
|
|
b _0226083C
|
|
_022607DA:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _022607FE
|
|
add r0, r7, #0
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xe0
|
|
bl MIi_CpuCopy16
|
|
b _0226083C
|
|
_022607FE:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _02260824
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xa0
|
|
bl MIi_CpuCopy16
|
|
b _0226083C
|
|
_02260824:
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0x80
|
|
bl MIi_CpuCopy16
|
|
_0226083C:
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
mov r3, #0
|
|
lsl r0, r0, #0x10
|
|
str r3, [sp, #4]
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
ldr r2, _022609E8 ; =0x0000F3FF
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl sub_02003370
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
mov r3, #0
|
|
lsl r0, r0, #0x10
|
|
str r3, [sp, #4]
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
ldr r2, _022609EC ; =0x00003FFF
|
|
add r0, r7, #0
|
|
mov r1, #4
|
|
bl sub_02003370
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
mov r3, #0
|
|
lsl r0, r0, #0x10
|
|
str r3, [sp, #4]
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #8]
|
|
ldr r2, _022609F0 ; =0x0000FFFF
|
|
add r0, r7, #0
|
|
mov r1, #0xa
|
|
bl sub_02003370
|
|
_0226088A:
|
|
ldrb r0, [r4, #0x15]
|
|
cmp r0, #0x32
|
|
blo _022608BA
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
mov r2, #3
|
|
str r3, [sp, #8]
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
lsl r2, r2, #0xa
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0x14]
|
|
add sp, #0x18
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x14]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022608B0:
|
|
ldr r0, [r4, #0xc]
|
|
bl ov07_022346BC
|
|
cmp r0, #0
|
|
beq _022608BC
|
|
_022608BA:
|
|
b _022609D8
|
|
_022608BC:
|
|
ldr r0, [r4, #4]
|
|
bl ov07_02234604
|
|
ldrb r0, [r4, #0x14]
|
|
add sp, #0x18
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x14]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022608CC:
|
|
ldr r0, [r4]
|
|
bl ov12_0223AB34
|
|
mov r1, #0
|
|
bl sub_0201649C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022608E8:
|
|
ldr r0, [r4, #4]
|
|
bl ov07_02234628
|
|
ldr r0, [r4, #4]
|
|
bl ov07_02234604
|
|
ldrb r0, [r4, #0x14]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0x14]
|
|
_022608FA:
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAE0
|
|
add r1, r5, #0
|
|
mov r2, #0xe0
|
|
bl MIi_CpuCopy16
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
cmp r0, #0x4a
|
|
bne _02260936
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xa0
|
|
bl MIi_CpuCopy16
|
|
b _02260998
|
|
_02260936:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _0226095A
|
|
add r0, r7, #0
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xe0
|
|
bl MIi_CpuCopy16
|
|
b _02260998
|
|
_0226095A:
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #1
|
|
tst r0, r1
|
|
beq _02260980
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0xa0
|
|
bl MIi_CpuCopy16
|
|
b _02260998
|
|
_02260980:
|
|
add r0, r7, #0
|
|
mov r1, #2
|
|
bl PaletteData_GetUnfadedBuf
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223BAEC
|
|
add r1, r5, #0
|
|
mov r2, #0x80
|
|
bl MIi_CpuCopy16
|
|
_02260998:
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, _022609F4 ; =0x00007FFF
|
|
str r3, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r2, _022609F0 ; =0x0000FFFF
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl sub_02003370
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r2, _022609F0 ; =0x0000FFFF
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
add r0, r7, #0
|
|
mov r1, #4
|
|
lsr r2, r2, #2
|
|
bl sub_02003370
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
ldr r0, _022609F4 ; =0x00007FFF
|
|
str r3, [sp, #4]
|
|
str r0, [sp, #8]
|
|
ldr r2, _022609F0 ; =0x0000FFFF
|
|
add r0, r7, #0
|
|
mov r1, #0xa
|
|
bl sub_02003370
|
|
mov r0, #3
|
|
strb r0, [r4, #0x14]
|
|
_022609D8:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_022609DC: .word ov12_0226D18C
|
|
_022609E0: .word ov12_0226D350
|
|
_022609E4: .word 0x0000084F
|
|
_022609E8: .word 0x0000F3FF
|
|
_022609EC: .word 0x00003FFF
|
|
_022609F0: .word 0x0000FFFF
|
|
_022609F4: .word 0x00007FFF
|
|
thumb_func_end ov12_02260668
|
|
|
|
thumb_func_start ov12_022609F8
|
|
ov12_022609F8: ; 0x022609F8
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov12_0223A938
|
|
ldrb r1, [r4, #0xa]
|
|
add r6, r0, #0
|
|
cmp r1, #3
|
|
bls _02260A10
|
|
b _02260B28
|
|
_02260A10:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_02260A1C: ; jump table
|
|
.short _02260A24 - _02260A1C - 2 ; case 0
|
|
.short _02260A44 - _02260A1C - 2 ; case 1
|
|
.short _02260AB4 - _02260A1C - 2 ; case 2
|
|
.short _02260AE6 - _02260A1C - 2 ; case 3
|
|
_02260A24:
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r1, #0x10
|
|
str r1, [sp, #4]
|
|
mov r1, #0xa
|
|
str r2, [sp, #8]
|
|
add r3, r1, #0
|
|
ldr r2, _02260B2C ; =0x0000FFFF
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260A44:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
bne _02260B28
|
|
ldr r0, [r4]
|
|
bl ov12_02237B0C
|
|
mov r0, #5
|
|
mov r1, #0x38
|
|
bl AllocFromHeap
|
|
str r0, [r4, #4]
|
|
ldrb r1, [r4, #9]
|
|
ldr r0, [r4]
|
|
bl BattleSys_GetParty
|
|
ldr r1, [r4, #4]
|
|
mov r2, #3
|
|
str r0, [r1]
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, #4]
|
|
str r1, [r0, #8]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #5
|
|
str r1, [r0, #0xc]
|
|
ldrb r1, [r4, #0xe]
|
|
ldr r0, [r4, #4]
|
|
strb r1, [r0, #0x11]
|
|
ldrh r1, [r4, #0xc]
|
|
ldr r0, [r4, #4]
|
|
strh r1, [r0, #0x24]
|
|
ldr r1, [r4, #4]
|
|
mov r0, #0
|
|
add r1, #0x36
|
|
strb r0, [r1]
|
|
ldr r1, [r4, #4]
|
|
strb r0, [r1, #0x12]
|
|
ldr r1, [r4, #4]
|
|
add r1, #0x35
|
|
strb r2, [r1]
|
|
ldr r1, [r4, #4]
|
|
strh r0, [r1, #0x22]
|
|
ldrb r2, [r4, #9]
|
|
ldr r1, [r4, #4]
|
|
str r2, [r1, #0x28]
|
|
ldr r1, [r4, #4]
|
|
add r1, #0x32
|
|
strb r0, [r1]
|
|
ldr r0, [r4, #4]
|
|
bl ov10_0221BE20
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260AB4:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x36
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _02260B28
|
|
ldr r0, [r4]
|
|
bl ov12_02237BB8
|
|
mov r0, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mov r1, #0xa
|
|
str r0, [sp, #4]
|
|
add r3, r1, #0
|
|
str r0, [sp, #8]
|
|
ldr r2, _02260B2C ; =0x0000FFFF
|
|
add r0, r6, #0
|
|
sub r3, #0x12
|
|
bl sub_02003370
|
|
ldrb r0, [r4, #0xa]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xa]
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02260AE6:
|
|
bl sub_02003B44
|
|
cmp r0, #0
|
|
bne _02260B28
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x34
|
|
ldrb r2, [r0]
|
|
ldr r0, [r4]
|
|
cmp r2, #4
|
|
bne _02260B04
|
|
ldrb r1, [r4, #9]
|
|
mov r2, #0xff
|
|
bl ov12_02263360
|
|
b _02260B0C
|
|
_02260B04:
|
|
ldrb r1, [r4, #9]
|
|
add r2, r2, #1
|
|
bl ov12_02263360
|
|
_02260B0C:
|
|
ldrb r1, [r4, #9]
|
|
ldrb r2, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
ldr r0, [r4, #4]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02260B28:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02260B2C: .word 0x0000FFFF
|
|
thumb_func_end ov12_022609F8
|
|
|
|
thumb_func_start ov12_02260B30
|
|
ov12_02260B30: ; 0x02260B30
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0
|
|
beq _02260B42
|
|
cmp r0, #1
|
|
beq _02260B86
|
|
pop {r3, r4, r5, pc}
|
|
_02260B42:
|
|
ldrb r1, [r5, #0xc]
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r1, r0
|
|
bne _02260B80
|
|
mov r0, #0
|
|
strb r0, [r5, #0xc]
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0x28
|
|
bl sub_02008A78
|
|
add r4, r0, #0
|
|
ldrb r0, [r5, #0xb]
|
|
cmp r4, r0
|
|
ble _02260B62
|
|
sub r4, r4, #1
|
|
b _02260B68
|
|
_02260B62:
|
|
cmp r4, r0
|
|
bge _02260B68
|
|
add r4, r4, #1
|
|
_02260B68:
|
|
ldr r0, [r5, #4]
|
|
mov r1, #0x28
|
|
add r2, r4, #0
|
|
bl sub_020087A4
|
|
ldrb r0, [r5, #0xb]
|
|
cmp r4, r0
|
|
bne _02260B9C
|
|
ldrb r0, [r5, #0xa]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #0xa]
|
|
pop {r3, r4, r5, pc}
|
|
_02260B80:
|
|
add r0, r1, #1
|
|
strb r0, [r5, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
_02260B86:
|
|
ldrb r1, [r5, #9]
|
|
ldrb r2, [r5, #8]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl DestroySysTask
|
|
_02260B9C:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260B30
|
|
|
|
thumb_func_start ov12_02260BA0
|
|
ov12_02260BA0: ; 0x02260BA0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
ldrb r1, [r5, #5]
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
bne _02260BB8
|
|
mov r6, #0
|
|
b _02260BBA
|
|
_02260BB8:
|
|
mov r6, #1
|
|
_02260BBA:
|
|
ldrb r0, [r5, #7]
|
|
cmp r0, #0
|
|
beq _02260BC6
|
|
cmp r0, #1
|
|
beq _02260C22
|
|
b _02260C3C
|
|
_02260BC6:
|
|
ldrb r0, [r5, #0xe]
|
|
cmp r0, #0
|
|
bne _02260BD4
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
mov r7, #1
|
|
b _02260BEE
|
|
_02260BD4:
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
ldrb r0, [r5, #6]
|
|
cmp r0, #3
|
|
beq _02260BE4
|
|
cmp r0, #5
|
|
beq _02260BE8
|
|
b _02260BEC
|
|
_02260BE4:
|
|
mov r7, #0
|
|
b _02260BEE
|
|
_02260BE8:
|
|
mov r7, #2
|
|
b _02260BEE
|
|
_02260BEC:
|
|
ldr r7, [sp, #8]
|
|
_02260BEE:
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8E4
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8EC
|
|
str r4, [sp]
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
ldr r2, [sp, #8]
|
|
add r0, #8
|
|
add r1, r6, #0
|
|
add r3, r7, #0
|
|
bl ov12_0226AEE0
|
|
add r2, r0, #0
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
bl ov12_0223A914
|
|
ldrb r0, [r5, #7]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r5, #7]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02260C22:
|
|
ldr r0, [r5]
|
|
add r1, r6, #0
|
|
bl ov12_0223A908
|
|
bl ov12_0226AF48
|
|
cmp r0, #1
|
|
bne _02260C52
|
|
ldrb r0, [r5, #7]
|
|
add sp, #0xc
|
|
add r0, r0, #1
|
|
strb r0, [r5, #7]
|
|
pop {r4, r5, r6, r7, pc}
|
|
_02260C3C:
|
|
ldrb r1, [r5, #5]
|
|
ldrb r2, [r5, #4]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl DestroySysTask
|
|
_02260C52:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260BA0
|
|
|
|
thumb_func_start ov12_02260C58
|
|
ov12_02260C58: ; 0x02260C58
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
ldrb r1, [r5, #5]
|
|
add r7, r0, #0
|
|
ldr r0, [r5]
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
bne _02260C6E
|
|
mov r4, #0
|
|
b _02260C70
|
|
_02260C6E:
|
|
mov r4, #1
|
|
_02260C70:
|
|
ldr r0, [r5]
|
|
add r1, r4, #0
|
|
bl ov12_0223A908
|
|
ldrb r1, [r5, #7]
|
|
add r6, r0, #0
|
|
cmp r1, #0
|
|
beq _02260C86
|
|
cmp r1, #1
|
|
beq _02260CA2
|
|
b _02260CC2
|
|
_02260C86:
|
|
ldrb r0, [r5, #0xe]
|
|
cmp r0, #0
|
|
bne _02260C90
|
|
mov r1, #0
|
|
b _02260C92
|
|
_02260C90:
|
|
mov r1, #1
|
|
_02260C92:
|
|
add r0, r6, #0
|
|
add r2, r1, #0
|
|
bl ov12_0226AF6C
|
|
ldrb r0, [r5, #7]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #7]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02260CA2:
|
|
bl ov12_0226AFA4
|
|
cmp r0, #1
|
|
bne _02260CD8
|
|
add r0, r6, #0
|
|
bl ov12_0226AFC8
|
|
ldr r0, [r5]
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl ov12_0223A914
|
|
ldrb r0, [r5, #7]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #7]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02260CC2:
|
|
ldrb r1, [r5, #5]
|
|
ldrb r2, [r5, #4]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r7, #0
|
|
bl DestroySysTask
|
|
_02260CD8:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260C58
|
|
|
|
thumb_func_start ov12_02260CDC
|
|
ov12_02260CDC: ; 0x02260CDC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
bne _02260D0E
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _02260CF6
|
|
bl GF_AssertFail
|
|
_02260CF6:
|
|
ldrb r2, [r4, #0xd]
|
|
ldr r0, [r4]
|
|
mov r1, #5
|
|
bl ov07_0221FB90
|
|
ldr r1, [r4, #4]
|
|
add r1, #0x8c
|
|
str r0, [r1]
|
|
ldrb r0, [r4, #0xe]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, pc}
|
|
_02260D0E:
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260CDC
|
|
|
|
thumb_func_start ov12_02260D28
|
|
ov12_02260D28: ; 0x02260D28
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _02260D3C
|
|
bl GF_AssertFail
|
|
_02260D3C:
|
|
ldr r0, [r4, #4]
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
bl ov07_0221FE70
|
|
cmp r0, #3
|
|
bne _02260D56
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #5
|
|
bhs _02260D56
|
|
add r0, r0, #1
|
|
strb r0, [r4, #0xe]
|
|
pop {r3, r4, r5, pc}
|
|
_02260D56:
|
|
ldr r0, [r4, #4]
|
|
ldrb r1, [r4, #0xd]
|
|
add r0, #0x8c
|
|
ldr r0, [r0]
|
|
bl ov07_0221FE3C
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
add r0, #0x8c
|
|
str r1, [r0]
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
bl ov12_0226430C
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02260D28
|
|
|
|
thumb_func_start ov12_02260D84
|
|
ov12_02260D84: ; 0x02260D84
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A938
|
|
add r4, r0, #0
|
|
ldr r0, [r5]
|
|
bl ov12_0223A8D4
|
|
add r7, r0, #0
|
|
ldrb r0, [r5, #6]
|
|
cmp r0, #0
|
|
beq _02260DAE
|
|
cmp r0, #1
|
|
beq _02260DE0
|
|
cmp r0, #2
|
|
beq _02260E84
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02260DAE:
|
|
ldrb r0, [r5, #7]
|
|
cmp r0, #0
|
|
bne _02260DD2
|
|
ldr r0, [r5]
|
|
bl ov12_0223AB34
|
|
mov r1, #1
|
|
bl sub_0201649C
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
add r0, r7, #0
|
|
mov r2, #0x10
|
|
add r3, r1, #0
|
|
bl sub_020090E4
|
|
b _02260DDA
|
|
_02260DD2:
|
|
mov r0, #0
|
|
mov r1, #0x10
|
|
bl GF_SndStartFadeOutBGM
|
|
_02260DDA:
|
|
ldrb r0, [r5, #6]
|
|
add r0, r0, #1
|
|
strb r0, [r5, #6]
|
|
_02260DE0:
|
|
ldrb r0, [r5, #7]
|
|
cmp r0, #0
|
|
ldrb r0, [r5, #8]
|
|
bne _02260E24
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
mov r3, #0xa0
|
|
bl sub_02003E5C
|
|
ldrb r0, [r5, #8]
|
|
mov r1, #0
|
|
mov r2, #0xc0
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r3, #0x40
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
bl sub_02003E5C
|
|
ldrb r0, [r5, #8]
|
|
mov r1, #2
|
|
mov r2, #0
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r3, #0xe0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
bl sub_02003E5C
|
|
b _02260E62
|
|
_02260E24:
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r1, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
mov r2, #0xa0
|
|
mov r3, #0x20
|
|
bl sub_02003E5C
|
|
ldrb r0, [r5, #8]
|
|
mov r1, #1
|
|
add r3, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r3, #0xff
|
|
bl sub_02003E5C
|
|
ldrb r0, [r5, #8]
|
|
mov r1, #3
|
|
add r3, r1, #0
|
|
str r0, [sp]
|
|
ldr r0, _02260EA0 ; =0x0000FFFF
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
add r3, #0xfd
|
|
bl sub_02003E5C
|
|
_02260E62:
|
|
ldrb r1, [r5, #8]
|
|
add r0, r1, #1
|
|
strb r0, [r5, #8]
|
|
cmp r1, #0x10
|
|
bne _02260E9A
|
|
ldrb r0, [r5, #7]
|
|
cmp r0, #0
|
|
bne _02260E7A
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl ToggleBgLayer
|
|
_02260E7A:
|
|
ldrb r0, [r5, #6]
|
|
add sp, #8
|
|
add r0, r0, #1
|
|
strb r0, [r5, #6]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02260E84:
|
|
ldrb r1, [r5, #5]
|
|
ldrb r2, [r5, #4]
|
|
ldr r0, [r5]
|
|
bl ov12_0226430C
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
add r0, r6, #0
|
|
bl DestroySysTask
|
|
_02260E9A:
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02260EA0: .word 0x0000FFFF
|
|
thumb_func_end ov12_02260D84
|
|
|
|
thumb_func_start ov12_02260EA4
|
|
ov12_02260EA4: ; 0x02260EA4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
bl BattleSys_GetBattleType
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
bl BattleSys_GetBattleFlags
|
|
mov r1, #0x40
|
|
tst r1, r4
|
|
beq _02260F2C
|
|
mov r2, #0x65
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r5, r2]
|
|
cmp r1, #0
|
|
beq _02260EE6
|
|
ldr r0, _022611E8 ; =ov12_0225E104
|
|
mov r1, #1
|
|
str r0, [r5]
|
|
ldr r0, _022611EC ; =ov12_0225E404
|
|
str r0, [r5, #4]
|
|
ldr r0, _022611F0 ; =ov12_0225E6FC
|
|
str r0, [r5, #8]
|
|
ldr r0, _022611F4 ; =ov12_0225F3A4
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _022611F8 ; =ov12_0225F8AC
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _022611FC ; =ov12_0225FC80
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #2
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260EE6:
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _02260F0C
|
|
ldr r0, _02261200 ; =ov12_0225E1FC
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _02261204 ; =ov12_0225E4EC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261208 ; =ov12_0225E760
|
|
str r0, [r5, #8]
|
|
ldr r0, _0226120C ; =ov12_0225F434
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261210 ; =ov12_0225F980
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _02261214 ; =ov12_0225FCC0
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #2
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260F0C:
|
|
ldr r0, _02261218 ; =ov12_0225DAD4
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _0226121C ; =ov12_0225E250
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261220 ; =ov12_0225E568
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261224 ; =ov12_0225E830
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261228 ; =ov12_0225F4E0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226122C ; =ov12_0225FA44
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #2
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260F2C:
|
|
mov r1, #0x88
|
|
and r1, r4
|
|
cmp r1, #0x88
|
|
bne _02261006
|
|
ldr r2, _02261230 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r3, [r5, r2]
|
|
tst r1, r3
|
|
beq _02260F88
|
|
add r0, r6, #0
|
|
bl ov12_0223B688
|
|
cmp r0, #0
|
|
beq _02260F68
|
|
ldr r0, _022611E8 ; =ov12_0225E104
|
|
mov r1, #1
|
|
str r0, [r5]
|
|
ldr r0, _022611EC ; =ov12_0225E404
|
|
str r0, [r5, #4]
|
|
ldr r0, _022611F0 ; =ov12_0225E6FC
|
|
str r0, [r5, #8]
|
|
ldr r0, _022611F4 ; =ov12_0225F3A4
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _022611F8 ; =ov12_0225F8AC
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _022611FC ; =ov12_0225FC80
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _02261234 ; =0x00000196
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260F68:
|
|
ldr r0, _02261238 ; =ov12_0225E134
|
|
mov r1, #2
|
|
str r0, [r5]
|
|
ldr r0, _0226123C ; =ov12_0225E4CC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261240 ; =ov12_0225E740
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261244 ; =ov12_0225F3FC
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261248 ; =ov12_0225F960
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226124C ; =ov12_0225FCA0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _02261234 ; =0x00000196
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260F88:
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _02260FAE
|
|
ldr r0, _02261200 ; =ov12_0225E1FC
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _02261204 ; =ov12_0225E4EC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261208 ; =ov12_0225E760
|
|
str r0, [r5, #8]
|
|
ldr r0, _0226120C ; =ov12_0225F434
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261210 ; =ov12_0225F980
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _02261214 ; =ov12_0225FCC0
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #1
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260FAE:
|
|
add r0, r6, #0
|
|
bl ov12_0223BFC0
|
|
add r1, r0, #0
|
|
add r0, r6, #0
|
|
lsl r1, r1, #1
|
|
bl ov12_0223AB0C
|
|
ldr r1, _02261230 ; =0x00000195
|
|
ldrb r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _02260FE6
|
|
ldr r0, _02261238 ; =ov12_0225E134
|
|
mov r2, #2
|
|
str r0, [r5]
|
|
ldr r0, _0226123C ; =ov12_0225E4CC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261240 ; =ov12_0225E740
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261244 ; =ov12_0225F3FC
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261248 ; =ov12_0225F960
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226124C ; =ov12_0225FCA0
|
|
str r0, [r5, #0x14]
|
|
add r0, r1, #1
|
|
strb r2, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02260FE6:
|
|
ldr r0, _02261218 ; =ov12_0225DAD4
|
|
mov r2, #0
|
|
str r0, [r5]
|
|
ldr r0, _0226121C ; =ov12_0225E250
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261220 ; =ov12_0225E568
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261224 ; =ov12_0225E830
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261228 ; =ov12_0225F4E0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226122C ; =ov12_0225FA44
|
|
str r0, [r5, #0x14]
|
|
add r0, r1, #1
|
|
strb r2, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261006:
|
|
mov r1, #8
|
|
tst r1, r4
|
|
beq _02261088
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _02261032
|
|
ldr r0, _02261200 ; =ov12_0225E1FC
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _02261204 ; =ov12_0225E4EC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261208 ; =ov12_0225E760
|
|
str r0, [r5, #8]
|
|
ldr r0, _0226120C ; =ov12_0225F434
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261210 ; =ov12_0225F980
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _02261214 ; =ov12_0225FCC0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _02261234 ; =0x00000196
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261032:
|
|
add r0, r6, #0
|
|
bl ov12_0223BFC0
|
|
add r1, r0, #0
|
|
add r0, r6, #0
|
|
bl ov12_0223AB0C
|
|
ldr r1, _02261230 ; =0x00000195
|
|
ldrb r2, [r5, r1]
|
|
cmp r2, r0
|
|
beq _02261068
|
|
ldr r0, _02261238 ; =ov12_0225E134
|
|
mov r2, #2
|
|
str r0, [r5]
|
|
ldr r0, _0226123C ; =ov12_0225E4CC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261240 ; =ov12_0225E740
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261244 ; =ov12_0225F3FC
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261248 ; =ov12_0225F960
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226124C ; =ov12_0225FCA0
|
|
str r0, [r5, #0x14]
|
|
add r0, r1, #1
|
|
strb r2, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261068:
|
|
ldr r0, _02261218 ; =ov12_0225DAD4
|
|
mov r2, #0
|
|
str r0, [r5]
|
|
ldr r0, _0226121C ; =ov12_0225E250
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261220 ; =ov12_0225E568
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261224 ; =ov12_0225E830
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261228 ; =ov12_0225F4E0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226122C ; =ov12_0225FA44
|
|
str r0, [r5, #0x14]
|
|
add r0, r1, #1
|
|
strb r2, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261088:
|
|
mov r1, #4
|
|
add r2, r4, #0
|
|
tst r2, r1
|
|
beq _02261100
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _022610B6
|
|
ldr r0, _02261200 ; =ov12_0225E1FC
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _02261204 ; =ov12_0225E4EC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261208 ; =ov12_0225E760
|
|
str r0, [r5, #8]
|
|
ldr r0, _0226120C ; =ov12_0225F434
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261210 ; =ov12_0225F980
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _02261214 ; =ov12_0225FCC0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _02261234 ; =0x00000196
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_022610B6:
|
|
ldr r0, _02261230 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r2, [r5, r0]
|
|
tst r1, r2
|
|
beq _022610E0
|
|
ldr r1, _02261238 ; =ov12_0225E134
|
|
add r0, r0, #1
|
|
str r1, [r5]
|
|
ldr r1, _0226123C ; =ov12_0225E4CC
|
|
str r1, [r5, #4]
|
|
ldr r1, _02261240 ; =ov12_0225E740
|
|
str r1, [r5, #8]
|
|
ldr r1, _02261244 ; =ov12_0225F3FC
|
|
str r1, [r5, #0xc]
|
|
ldr r1, _02261248 ; =ov12_0225F960
|
|
str r1, [r5, #0x10]
|
|
ldr r1, _0226124C ; =ov12_0225FCA0
|
|
str r1, [r5, #0x14]
|
|
mov r1, #2
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_022610E0:
|
|
ldr r1, _02261218 ; =ov12_0225DAD4
|
|
add r0, r0, #1
|
|
str r1, [r5]
|
|
ldr r1, _0226121C ; =ov12_0225E250
|
|
str r1, [r5, #4]
|
|
ldr r1, _02261220 ; =ov12_0225E568
|
|
str r1, [r5, #8]
|
|
ldr r1, _02261224 ; =ov12_0225E830
|
|
str r1, [r5, #0xc]
|
|
ldr r1, _02261228 ; =ov12_0225F4E0
|
|
str r1, [r5, #0x10]
|
|
ldr r1, _0226122C ; =ov12_0225FA44
|
|
str r1, [r5, #0x14]
|
|
mov r1, #0
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261100:
|
|
lsl r1, r1, #7
|
|
tst r1, r4
|
|
beq _0226113C
|
|
ldr r0, _02261230 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r2, [r5, r0]
|
|
tst r2, r1
|
|
beq _02261126
|
|
ldr r2, _02261250 ; =ov12_0225E1D4
|
|
add r0, r0, #1
|
|
str r2, [r5]
|
|
mov r2, #0
|
|
str r2, [r5, #4]
|
|
str r2, [r5, #8]
|
|
str r2, [r5, #0xc]
|
|
str r2, [r5, #0x10]
|
|
str r2, [r5, #0x14]
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261126:
|
|
ldr r1, _02261218 ; =ov12_0225DAD4
|
|
add r0, r0, #1
|
|
str r1, [r5]
|
|
mov r1, #0
|
|
str r1, [r5, #4]
|
|
str r1, [r5, #8]
|
|
str r1, [r5, #0xc]
|
|
str r1, [r5, #0x10]
|
|
str r1, [r5, #0x14]
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_0226113C:
|
|
mov r1, #0x20
|
|
tst r1, r4
|
|
beq _0226117A
|
|
ldr r0, _02261230 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r2, [r5, r0]
|
|
tst r2, r1
|
|
beq _02261162
|
|
ldr r2, _02261254 ; =ov12_0225E154
|
|
add r0, r0, #1
|
|
str r2, [r5]
|
|
mov r2, #0
|
|
str r2, [r5, #4]
|
|
str r2, [r5, #8]
|
|
str r2, [r5, #0xc]
|
|
str r2, [r5, #0x10]
|
|
str r2, [r5, #0x14]
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_02261162:
|
|
ldr r1, _02261218 ; =ov12_0225DAD4
|
|
mov r2, #0
|
|
str r1, [r5]
|
|
str r2, [r5, #4]
|
|
str r2, [r5, #8]
|
|
str r2, [r5, #0xc]
|
|
ldr r1, _0226122C ; =ov12_0225FA44
|
|
str r2, [r5, #0x10]
|
|
str r1, [r5, #0x14]
|
|
add r0, r0, #1
|
|
strb r2, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_0226117A:
|
|
ldr r2, _02261230 ; =0x00000195
|
|
mov r1, #1
|
|
ldrb r3, [r5, r2]
|
|
tst r3, r1
|
|
beq _022611A2
|
|
ldr r0, _022611E8 ; =ov12_0225E104
|
|
str r0, [r5]
|
|
ldr r0, _022611EC ; =ov12_0225E404
|
|
str r0, [r5, #4]
|
|
ldr r0, _022611F0 ; =ov12_0225E6FC
|
|
str r0, [r5, #8]
|
|
ldr r0, _022611F4 ; =ov12_0225F3A4
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _022611F8 ; =ov12_0225F8AC
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _022611FC ; =ov12_0225FC80
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #1
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_022611A2:
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
beq _022611C8
|
|
ldr r0, _02261200 ; =ov12_0225E1FC
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _02261204 ; =ov12_0225E4EC
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261208 ; =ov12_0225E760
|
|
str r0, [r5, #8]
|
|
ldr r0, _0226120C ; =ov12_0225F434
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261210 ; =ov12_0225F980
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _02261214 ; =ov12_0225FCC0
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #1
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_022611C8:
|
|
ldr r0, _02261218 ; =ov12_0225DAD4
|
|
mov r1, #0
|
|
str r0, [r5]
|
|
ldr r0, _0226121C ; =ov12_0225E250
|
|
str r0, [r5, #4]
|
|
ldr r0, _02261220 ; =ov12_0225E568
|
|
str r0, [r5, #8]
|
|
ldr r0, _02261224 ; =ov12_0225E830
|
|
str r0, [r5, #0xc]
|
|
ldr r0, _02261228 ; =ov12_0225F4E0
|
|
str r0, [r5, #0x10]
|
|
ldr r0, _0226122C ; =ov12_0225FA44
|
|
str r0, [r5, #0x14]
|
|
add r0, r2, #1
|
|
strb r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_022611E8: .word ov12_0225E104
|
|
_022611EC: .word ov12_0225E404
|
|
_022611F0: .word ov12_0225E6FC
|
|
_022611F4: .word ov12_0225F3A4
|
|
_022611F8: .word ov12_0225F8AC
|
|
_022611FC: .word ov12_0225FC80
|
|
_02261200: .word ov12_0225E1FC
|
|
_02261204: .word ov12_0225E4EC
|
|
_02261208: .word ov12_0225E760
|
|
_0226120C: .word ov12_0225F434
|
|
_02261210: .word ov12_0225F980
|
|
_02261214: .word ov12_0225FCC0
|
|
_02261218: .word ov12_0225DAD4
|
|
_0226121C: .word ov12_0225E250
|
|
_02261220: .word ov12_0225E568
|
|
_02261224: .word ov12_0225E830
|
|
_02261228: .word ov12_0225F4E0
|
|
_0226122C: .word ov12_0225FA44
|
|
_02261230: .word 0x00000195
|
|
_02261234: .word 0x00000196
|
|
_02261238: .word ov12_0225E134
|
|
_0226123C: .word ov12_0225E4CC
|
|
_02261240: .word ov12_0225E740
|
|
_02261244: .word ov12_0225F3FC
|
|
_02261248: .word ov12_0225F960
|
|
_0226124C: .word ov12_0225FCA0
|
|
_02261250: .word ov12_0225E1D4
|
|
_02261254: .word ov12_0225E154
|
|
thumb_func_end ov12_02260EA4
|
|
|
|
thumb_func_start ov12_02261258
|
|
ov12_02261258: ; 0x02261258
|
|
ldr r1, _02261260 ; =0x00000195
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_02261260: .word 0x00000195
|
|
thumb_func_end ov12_02261258
|
|
|
|
thumb_func_start ov12_02261264
|
|
ov12_02261264: ; 0x02261264
|
|
ldr r1, _0226126C ; =0x00000196
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0226126C: .word 0x00000196
|
|
thumb_func_end ov12_02261264
|
|
|
|
thumb_func_start ov12_02261270
|
|
ov12_02261270: ; 0x02261270
|
|
ldr r1, [r0, #0x20]
|
|
cmp r1, #0
|
|
bne _02261278
|
|
ldr r1, [r0, #0x1c]
|
|
_02261278:
|
|
add r0, r1, #0
|
|
bx lr
|
|
thumb_func_end ov12_02261270
|
|
|
|
thumb_func_start ov12_0226127C
|
|
ov12_0226127C: ; 0x0226127C
|
|
add r0, #0x28
|
|
bx lr
|
|
thumb_func_end ov12_0226127C
|
|
|
|
thumb_func_start ov12_02261280
|
|
ov12_02261280: ; 0x02261280
|
|
add r0, #0x80
|
|
bx lr
|
|
thumb_func_end ov12_02261280
|
|
|
|
thumb_func_start ov12_02261284
|
|
ov12_02261284: ; 0x02261284
|
|
ldr r3, _02261290 ; =MI_CpuFill8
|
|
add r0, #0x80
|
|
mov r1, #0
|
|
mov r2, #8
|
|
bx r3
|
|
nop
|
|
_02261290: .word MI_CpuFill8
|
|
thumb_func_end ov12_02261284
|
|
|
|
thumb_func_start ov12_02261294
|
|
ov12_02261294: ; 0x02261294
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #0
|
|
beq _022612A0
|
|
bl sub_0200DCE8
|
|
_022612A0:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261294
|
|
|
|
thumb_func_start ov12_022612A4
|
|
ov12_022612A4: ; 0x022612A4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x24
|
|
ldr r4, [sp, #0x50]
|
|
add r7, r0, #0
|
|
str r1, [sp, #0x14]
|
|
add r5, r2, #0
|
|
str r3, [sp, #0x18]
|
|
bl ov12_0223A99C
|
|
add r1, r4, #0
|
|
bl ov12_0223BB94
|
|
str r0, [sp, #0x20]
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl ov12_0223AB0C
|
|
add r6, r0, #0
|
|
mov r0, #1
|
|
and r0, r6
|
|
str r0, [sp, #0x1c]
|
|
beq _022612D4
|
|
mov r1, #2
|
|
b _022612D6
|
|
_022612D4:
|
|
mov r1, #0
|
|
_022612D6:
|
|
ldr r0, [r5, #0xc]
|
|
ldr r3, [sp, #0x20]
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldrh r0, [r5, #6]
|
|
mov r2, #5
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r5, #2]
|
|
bl sub_02014540
|
|
add r0, r7, #0
|
|
bl ov12_0223A99C
|
|
ldrh r2, [r5]
|
|
add r1, r4, #0
|
|
bl ov12_0223BBA8
|
|
add r0, r7, #0
|
|
bl ov12_0223A99C
|
|
ldrh r2, [r5, #4]
|
|
add r1, r4, #0
|
|
bl ov12_0223BBC0
|
|
add r0, r7, #0
|
|
bl ov12_0223A99C
|
|
ldr r2, [sp, #0x40]
|
|
add r1, r4, #0
|
|
bl ov12_0223BBD8
|
|
ldr r0, [sp, #0x3c]
|
|
ldr r3, [sp, #0x40]
|
|
str r0, [sp]
|
|
str r4, [sp, #4]
|
|
str r4, [sp, #8]
|
|
ldr r0, [sp, #0x54]
|
|
ldr r4, [sp, #0x38]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x58]
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r5, #0
|
|
add r3, r4, r3
|
|
bl sub_02008634
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
beq _0226138A
|
|
cmp r6, #1
|
|
ble _02261348
|
|
asr r6, r6, #1
|
|
_02261348:
|
|
add r0, r4, #0
|
|
mov r1, #0x2a
|
|
add r2, r6, #0
|
|
bl sub_020087A4
|
|
ldr r2, [sp, #0x4c]
|
|
add r0, r4, #0
|
|
mov r1, #0x2e
|
|
bl sub_020087A4
|
|
ldr r2, [sp, #0x38]
|
|
add r0, r4, #0
|
|
mov r1, #0x14
|
|
add r2, #0x24
|
|
bl sub_020087A4
|
|
ldr r2, [sp, #0x48]
|
|
add r0, r4, #0
|
|
mov r1, #0x15
|
|
bl sub_020087A4
|
|
ldr r3, [sp, #0x40]
|
|
mov r2, #0x24
|
|
add r0, r4, #0
|
|
mov r1, #0x16
|
|
sub r2, r2, r3
|
|
bl sub_020087A4
|
|
ldr r2, [sp, #0x44]
|
|
add r0, r4, #0
|
|
mov r1, #0x29
|
|
bl sub_020087A4
|
|
_0226138A:
|
|
add r0, r4, #0
|
|
add sp, #0x24
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_022612A4
|
|
|
|
thumb_func_start ov12_02261390
|
|
ov12_02261390: ; 0x02261390
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _0226144C ; =0x00000195
|
|
add r6, r2, #0
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #1
|
|
add r7, r0, #0
|
|
add r4, r3, #0
|
|
tst r1, r2
|
|
beq _022613EA
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
beq _022613CA
|
|
ldr r0, _02261450 ; =0x000003DE
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x1b
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #4]
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022613CA:
|
|
ldr r0, _02261454 ; =0x000003DD
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x32
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #4]
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #8]
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022613EA:
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
bne _02261434
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
bne _02261434
|
|
ldrh r0, [r6, #2]
|
|
cmp r0, #0
|
|
bne _0226140E
|
|
mov r0, #0xf6
|
|
lsl r0, r0, #2
|
|
strh r0, [r4, #2]
|
|
b _02261438
|
|
_0226140E:
|
|
cmp r0, #0x19
|
|
bhs _02261418
|
|
ldr r0, _02261458 ; =0x000003D9
|
|
strh r0, [r4, #2]
|
|
b _02261438
|
|
_02261418:
|
|
cmp r0, #0x32
|
|
bhs _02261424
|
|
mov r0, #0xf7
|
|
lsl r0, r0, #2
|
|
strh r0, [r4, #2]
|
|
b _02261438
|
|
_02261424:
|
|
cmp r0, #0x4b
|
|
bhs _0226142E
|
|
ldr r0, _0226145C ; =0x000003DA
|
|
strh r0, [r4, #2]
|
|
b _02261438
|
|
_0226142E:
|
|
ldr r0, _02261460 ; =0x000003DB
|
|
strh r0, [r4, #2]
|
|
b _02261438
|
|
_02261434:
|
|
ldr r0, _02261458 ; =0x000003D9
|
|
strh r0, [r4, #2]
|
|
_02261438:
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0226144C: .word 0x00000195
|
|
_02261450: .word 0x000003DE
|
|
_02261454: .word 0x000003DD
|
|
_02261458: .word 0x000003D9
|
|
_0226145C: .word 0x000003DA
|
|
_02261460: .word 0x000003DB
|
|
thumb_func_end ov12_02261390
|
|
|
|
thumb_func_start ov12_02261464
|
|
ov12_02261464: ; 0x02261464
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _02261524 ; =0x00000195
|
|
add r6, r2, #0
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #1
|
|
add r7, r0, #0
|
|
add r4, r3, #0
|
|
tst r1, r2
|
|
beq _022614C0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
bne _022614A4
|
|
mov r0, #0xf3
|
|
lsl r0, r0, #2
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x32
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #4]
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #8]
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022614A4:
|
|
ldr r0, _02261528 ; =0x000003CE
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x1b
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
str r1, [r4, #4]
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022614C0:
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
bne _0226150C
|
|
add r0, r7, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
bne _0226150C
|
|
ldrh r1, [r6, #2]
|
|
cmp r1, #0x64
|
|
bhs _022614E2
|
|
ldr r0, _0226152C ; =0x000003D6
|
|
strh r0, [r4, #2]
|
|
b _02261510
|
|
_022614E2:
|
|
ldr r0, _02261530 ; =0x00000145
|
|
cmp r1, r0
|
|
bhs _022614EE
|
|
ldr r0, _02261534 ; =0x000003D7
|
|
strh r0, [r4, #2]
|
|
b _02261510
|
|
_022614EE:
|
|
add r0, #0xe1
|
|
cmp r1, r0
|
|
bhs _022614FA
|
|
ldr r0, _02261538 ; =0x000003D5
|
|
strh r0, [r4, #2]
|
|
b _02261510
|
|
_022614FA:
|
|
ldr r0, _0226153C ; =0x00000307
|
|
cmp r1, r0
|
|
bhs _02261506
|
|
add r0, #0xcd
|
|
strh r0, [r4, #2]
|
|
b _02261510
|
|
_02261506:
|
|
add r0, #0xcc
|
|
strh r0, [r4, #2]
|
|
b _02261510
|
|
_0226150C:
|
|
ldr r0, _02261540 ; =0x000003D3
|
|
strh r0, [r4, #2]
|
|
_02261510:
|
|
mov r0, #2
|
|
strb r0, [r4, #1]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r5, r0]
|
|
ldrb r0, [r6, #1]
|
|
lsl r0, r0, #8
|
|
orr r0, r1
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02261524: .word 0x00000195
|
|
_02261528: .word 0x000003CE
|
|
_0226152C: .word 0x000003D6
|
|
_02261530: .word 0x00000145
|
|
_02261534: .word 0x000003D7
|
|
_02261538: .word 0x000003D5
|
|
_0226153C: .word 0x00000307
|
|
_02261540: .word 0x000003D3
|
|
thumb_func_end ov12_02261464
|
|
|
|
thumb_func_start ov12_02261544
|
|
ov12_02261544: ; 0x02261544
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
add r4, r0, #0
|
|
mov r0, #2
|
|
tst r0, r4
|
|
beq _0226156A
|
|
add r0, r7, #0
|
|
mov r1, #3
|
|
bl ov12_0223AAD8
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
mov r1, #5
|
|
bl ov12_0223AAD8
|
|
b _02261574
|
|
_0226156A:
|
|
add r0, r7, #0
|
|
mov r1, #1
|
|
bl ov12_0223AAD8
|
|
add r6, r0, #0
|
|
_02261574:
|
|
mov r1, #4
|
|
tst r1, r4
|
|
beq _022615B4
|
|
mov r1, #0x80
|
|
tst r1, r4
|
|
beq _02261594
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #4
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x3b
|
|
strb r1, [r5, #1]
|
|
str r6, [r5, #4]
|
|
str r6, [r5, #8]
|
|
str r0, [r5, #0xc]
|
|
str r0, [r5, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261594:
|
|
mov r1, #8
|
|
add r2, r4, #0
|
|
tst r2, r1
|
|
beq _022615AA
|
|
ldr r1, _022615E4 ; =0x000003CB
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x1a
|
|
strb r1, [r5, #1]
|
|
str r6, [r5, #4]
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022615AA:
|
|
ldr r0, _022615E8 ; =0x000003CA
|
|
strh r0, [r5, #2]
|
|
strb r1, [r5, #1]
|
|
str r6, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022615B4:
|
|
mov r1, #0x10
|
|
tst r1, r4
|
|
bne _022615C0
|
|
mov r1, #8
|
|
tst r1, r4
|
|
beq _022615D4
|
|
_022615C0:
|
|
mov r1, #0x3e
|
|
lsl r1, r1, #4
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x3b
|
|
strb r1, [r5, #1]
|
|
str r6, [r5, #4]
|
|
str r6, [r5, #8]
|
|
str r0, [r5, #0xc]
|
|
str r0, [r5, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022615D4:
|
|
ldr r0, _022615EC ; =0x000003C9
|
|
strh r0, [r5, #2]
|
|
mov r0, #0x1e
|
|
strb r0, [r5, #1]
|
|
str r6, [r5, #4]
|
|
str r6, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_022615E4: .word 0x000003CB
|
|
_022615E8: .word 0x000003CA
|
|
_022615EC: .word 0x000003C9
|
|
thumb_func_end ov12_02261544
|
|
|
|
thumb_func_start ov12_022615F0
|
|
ov12_022615F0: ; 0x022615F0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
str r1, [sp, #4]
|
|
str r0, [sp]
|
|
add r6, r2, #0
|
|
add r4, r3, #0
|
|
bl BattleSys_GetBattleType
|
|
str r0, [sp, #0x14]
|
|
ldr r2, _02261904 ; =0x00000195
|
|
ldr r0, [sp, #4]
|
|
ldrb r1, [r0, r2]
|
|
mov r0, #1
|
|
tst r0, r1
|
|
bne _02261610
|
|
b _02261758
|
|
_02261610:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #2
|
|
and r0, r1
|
|
str r0, [sp, #0x10]
|
|
beq _0226162C
|
|
ldr r0, [sp, #4]
|
|
sub r1, r2, #1
|
|
ldrb r5, [r0, r1]
|
|
ldr r0, [sp]
|
|
add r1, r5, #0
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r7, r0, #0
|
|
b _02261634
|
|
_0226162C:
|
|
ldr r0, [sp, #4]
|
|
sub r1, r2, #1
|
|
ldrb r5, [r0, r1]
|
|
add r7, r5, #0
|
|
_02261634:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #4
|
|
tst r0, r1
|
|
beq _022616DA
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0x80
|
|
tst r0, r1
|
|
beq _0226166C
|
|
ldr r0, _02261908 ; =0x000003DF
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x3c
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
str r5, [r4, #8]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #0xc]
|
|
str r7, [r4, #0x10]
|
|
str r7, [r4, #0x14]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0x18]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226166C:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _0226169A
|
|
mov r0, #0x3d
|
|
lsl r0, r0, #4
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x38
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
add sp, #0x18
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #8]
|
|
str r7, [r4, #0xc]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226169A:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
beq _022616C2
|
|
ldr r0, _0226190C ; =0x000003CF
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x31
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #8]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022616C2:
|
|
ldr r0, _02261910 ; =0x000003CE
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x1b
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022616DA:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0x10
|
|
tst r0, r1
|
|
bne _022616EA
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _02261712
|
|
_022616EA:
|
|
ldr r0, _02261908 ; =0x000003DF
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x3c
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
str r5, [r4, #8]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #0xc]
|
|
str r7, [r4, #0x10]
|
|
str r7, [r4, #0x14]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0x18]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261712:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
beq _0226173C
|
|
ldr r0, _02261914 ; =0x000003CD
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x39
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
str r5, [r4, #8]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #0xc]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226173C:
|
|
mov r0, #0xf3
|
|
lsl r0, r0, #2
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x32
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
str r5, [r4, #8]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
add sp, #0x18
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261758:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #4
|
|
and r0, r1
|
|
str r0, [sp, #0xc]
|
|
beq _022617EC
|
|
ldr r0, [sp]
|
|
bl ov12_0223BFC0
|
|
lsl r0, r0, #0x18
|
|
lsr r2, r0, #0x18
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #8
|
|
and r0, r1
|
|
str r0, [sp, #8]
|
|
beq _022617C2
|
|
ldr r0, [sp]
|
|
add r1, r2, #0
|
|
bl ov12_0223BFCC
|
|
cmp r0, #3
|
|
bhi _02261832
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0226178E: ; jump table
|
|
.short _02261796 - _0226178E - 2 ; case 0
|
|
.short _022617AC - _0226178E - 2 ; case 1
|
|
.short _022617AC - _0226178E - 2 ; case 2
|
|
.short _02261796 - _0226178E - 2 ; case 3
|
|
_02261796:
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl ov12_0223AAD8
|
|
add r5, r0, #0
|
|
ldr r0, [sp]
|
|
mov r1, #2
|
|
bl ov12_0223AAD8
|
|
add r7, r0, #0
|
|
b _02261832
|
|
_022617AC:
|
|
ldr r0, [sp]
|
|
mov r1, #2
|
|
bl ov12_0223AAD8
|
|
add r5, r0, #0
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl ov12_0223AAD8
|
|
add r7, r0, #0
|
|
b _02261832
|
|
_022617C2:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _022617DE
|
|
ldr r0, [sp]
|
|
bl ov12_0223AAD8
|
|
add r5, r0, #0
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl ov12_0223AAD8
|
|
add r7, r0, #0
|
|
b _02261832
|
|
_022617DE:
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
bl ov12_0223AAD8
|
|
add r5, r0, #0
|
|
add r7, r5, #0
|
|
b _02261832
|
|
_022617EC:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #8
|
|
and r0, r1
|
|
str r0, [sp, #8]
|
|
beq _0226180E
|
|
ldr r1, [sp, #4]
|
|
sub r2, r2, #1
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetBattlerIdPartner
|
|
add r5, r0, #0
|
|
mov r1, #0x65
|
|
ldr r0, [sp, #4]
|
|
lsl r1, r1, #2
|
|
ldrb r7, [r0, r1]
|
|
b _02261832
|
|
_0226180E:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _0226182A
|
|
ldr r0, [sp]
|
|
bl ov12_0223AAD8
|
|
add r5, r0, #0
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl ov12_0223AAD8
|
|
add r7, r0, #0
|
|
b _02261832
|
|
_0226182A:
|
|
ldr r0, [sp, #4]
|
|
sub r1, r2, #1
|
|
ldrb r5, [r0, r1]
|
|
add r7, r5, #0
|
|
_02261832:
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
beq _0226189C
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _02261860
|
|
ldr r0, _02261918 ; =0x000003D1
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x31
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #8]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0xc]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261860:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _02261888
|
|
ldr r0, _0226191C ; =0x000003D2
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strb r0, [r4, #1]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #4]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261888:
|
|
ldr r0, _02261920 ; =0x000003D3
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
strb r1, [r4, #1]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226189C:
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _022618C6
|
|
ldr r0, _02261924 ; =0x000003E1
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x39
|
|
strb r0, [r4, #1]
|
|
str r5, [r4, #4]
|
|
str r5, [r4, #8]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #0xc]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #0x10]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022618C6:
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #2
|
|
tst r0, r1
|
|
beq _022618EE
|
|
ldr r0, _0226191C ; =0x000003D2
|
|
add sp, #0x18
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strb r0, [r4, #1]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #4]
|
|
add r0, r6, r7
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r7
|
|
str r0, [r4, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022618EE:
|
|
ldr r0, _02261920 ; =0x000003D3
|
|
strh r0, [r4, #2]
|
|
strb r1, [r4, #1]
|
|
add r0, r6, r5
|
|
ldrb r0, [r0, #4]
|
|
lsl r0, r0, #8
|
|
orr r0, r5
|
|
str r0, [r4, #4]
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02261904: .word 0x00000195
|
|
_02261908: .word 0x000003DF
|
|
_0226190C: .word 0x000003CF
|
|
_02261910: .word 0x000003CE
|
|
_02261914: .word 0x000003CD
|
|
_02261918: .word 0x000003D1
|
|
_0226191C: .word 0x000003D2
|
|
_02261920: .word 0x000003D3
|
|
_02261924: .word 0x000003E1
|
|
thumb_func_end ov12_022615F0
|
|
|
|
thumb_func_start ov12_02261928
|
|
ov12_02261928: ; 0x02261928
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
add r5, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
add r6, r0, #0
|
|
ldr r0, [sp]
|
|
bl BattleSystem_GetWinLoseFlags
|
|
add r7, r0, #0
|
|
mov r0, #2
|
|
tst r0, r6
|
|
beq _02261956
|
|
ldr r0, [sp]
|
|
mov r1, #3
|
|
bl ov12_0223AAD8
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
mov r1, #5
|
|
bl ov12_0223AAD8
|
|
b _02261960
|
|
_02261956:
|
|
ldr r0, [sp]
|
|
mov r1, #1
|
|
bl ov12_0223AAD8
|
|
add r4, r0, #0
|
|
_02261960:
|
|
cmp r7, #1
|
|
beq _0226196E
|
|
cmp r7, #2
|
|
beq _0226198E
|
|
cmp r7, #3
|
|
beq _022619B0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226196E:
|
|
mov r1, #8
|
|
add r2, r6, #0
|
|
tst r2, r1
|
|
beq _02261984
|
|
ldr r1, _022619D0 ; =0x00000312
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x1a
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261984:
|
|
ldr r0, _022619D4 ; =0x00000311
|
|
strh r0, [r5, #2]
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0226198E:
|
|
mov r1, #8
|
|
add r2, r6, #0
|
|
tst r2, r1
|
|
beq _022619A6
|
|
mov r1, #0xc5
|
|
lsl r1, r1, #2
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x1a
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022619A6:
|
|
ldr r0, _022619D8 ; =0x00000313
|
|
strh r0, [r5, #2]
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022619B0:
|
|
mov r1, #8
|
|
add r2, r6, #0
|
|
tst r2, r1
|
|
beq _022619C6
|
|
ldr r1, _022619DC ; =0x00000316
|
|
strh r1, [r5, #2]
|
|
mov r1, #0x1a
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_022619C6:
|
|
ldr r0, _022619E0 ; =0x00000315
|
|
strh r0, [r5, #2]
|
|
strb r1, [r5, #1]
|
|
str r4, [r5, #4]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_022619D0: .word 0x00000312
|
|
_022619D4: .word 0x00000311
|
|
_022619D8: .word 0x00000313
|
|
_022619DC: .word 0x00000316
|
|
_022619E0: .word 0x00000315
|
|
thumb_func_end ov12_02261928
|
|
|
|
thumb_func_start ov12_022619E4
|
|
ov12_022619E4: ; 0x022619E4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
mov r6, #0
|
|
add r5, r0, #0
|
|
str r2, [sp]
|
|
add r7, r3, #0
|
|
str r6, [sp, #4]
|
|
add r4, r6, #0
|
|
bl BattleSys_GetMaxBattlers
|
|
cmp r0, #0
|
|
ble _02261A2C
|
|
_022619FC:
|
|
add r0, r4, #0
|
|
bl MaskOfFlagNo
|
|
ldr r1, [sp]
|
|
ldrb r1, [r1, #1]
|
|
tst r0, r1
|
|
beq _02261A20
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl BattleSys_GetFieldSide
|
|
cmp r0, #0
|
|
beq _02261A1E
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
b _02261A20
|
|
_02261A1E:
|
|
add r6, r6, #1
|
|
_02261A20:
|
|
add r0, r5, #0
|
|
add r4, r4, #1
|
|
bl BattleSys_GetMaxBattlers
|
|
cmp r4, r0
|
|
blt _022619FC
|
|
_02261A2C:
|
|
cmp r6, #0
|
|
beq _02261A4A
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
beq _02261A4A
|
|
ldr r0, _02261ACC ; =0x0000030D
|
|
mov r1, #0xc3
|
|
strh r0, [r7, #2]
|
|
mov r0, #0
|
|
strb r0, [r7, #1]
|
|
add r0, r5, #0
|
|
bl ov12_0223BD20
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261A4A:
|
|
cmp r6, #0
|
|
beq _02261A62
|
|
ldr r0, _02261ACC ; =0x0000030D
|
|
mov r1, #0xc2
|
|
strh r0, [r7, #2]
|
|
mov r0, #0
|
|
strb r0, [r7, #1]
|
|
add r0, r5, #0
|
|
bl ov12_0223BD20
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_02261A62:
|
|
add r0, r5, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #8
|
|
tst r0, r1
|
|
beq _02261A8E
|
|
mov r0, #0xc6
|
|
lsl r0, r0, #2
|
|
strh r0, [r7, #2]
|
|
mov r0, #0x1a
|
|
strb r0, [r7, #1]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl ov12_0223AAD8
|
|
str r0, [r7, #4]
|
|
add r0, r5, #0
|
|
mov r1, #5
|
|
bl ov12_0223AAD8
|
|
str r0, [r7, #8]
|
|
b _02261ABE
|
|
_02261A8E:
|
|
add r0, r5, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #2
|
|
tst r0, r1
|
|
ldr r0, _02261AD0 ; =0x00000317
|
|
beq _02261AAE
|
|
strh r0, [r7, #2]
|
|
mov r0, #8
|
|
strb r0, [r7, #1]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
bl ov12_0223AAD8
|
|
str r0, [r7, #4]
|
|
b _02261ABE
|
|
_02261AAE:
|
|
strh r0, [r7, #2]
|
|
mov r0, #8
|
|
strb r0, [r7, #1]
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov12_0223AAD8
|
|
str r0, [r7, #4]
|
|
_02261ABE:
|
|
add r0, r5, #0
|
|
mov r1, #0xc1
|
|
bl ov12_0223BD20
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_02261ACC: .word 0x0000030D
|
|
_02261AD0: .word 0x00000317
|
|
thumb_func_end ov12_022619E4
|
|
|
|
thumb_func_start ov12_02261AD4
|
|
ov12_02261AD4: ; 0x02261AD4
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
mov r1, #0xef
|
|
add r4, r2, #0
|
|
lsl r1, r1, #2
|
|
strh r1, [r4, #2]
|
|
mov r1, #8
|
|
add r5, r0, #0
|
|
strb r1, [r4, #1]
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
beq _02261B1A
|
|
add r0, r5, #0
|
|
bl ov12_0223BFC0
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
bl ov12_0223BFCC
|
|
cmp r0, #0
|
|
beq _02261B0E
|
|
add r0, r5, #0
|
|
mov r1, #4
|
|
bl ov12_0223AAD8
|
|
str r0, [r4, #4]
|
|
b _02261B22
|
|
_02261B0E:
|
|
add r0, r5, #0
|
|
mov r1, #2
|
|
bl ov12_0223AAD8
|
|
str r0, [r4, #4]
|
|
b _02261B22
|
|
_02261B1A:
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r6, r0]
|
|
str r0, [r4, #4]
|
|
_02261B22:
|
|
add r0, r5, #0
|
|
mov r1, #0xc2
|
|
bl ov12_0223BD20
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov12_02261AD4
|
|
|
|
thumb_func_start ov12_02261B2C
|
|
ov12_02261B2C: ; 0x02261B2C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x20
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
bl ov12_0223A8E4
|
|
str r0, [sp, #0x1c]
|
|
add r0, r5, #0
|
|
bl ov12_0223A8EC
|
|
str r0, [sp, #0x18]
|
|
add r0, r5, #0
|
|
bl ov12_0223A938
|
|
add r2, r0, #0
|
|
mov r0, #1
|
|
tst r0, r4
|
|
beq _02261B58
|
|
mov r1, #2
|
|
b _02261B5A
|
|
_02261B58:
|
|
mov r1, #0
|
|
_02261B5A:
|
|
add r3, sp, #0x28
|
|
mov r0, #0x18
|
|
ldrsh r0, [r3, r0]
|
|
mov r4, #0x14
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r0, [sp, #0x38]
|
|
ldr r1, [sp, #0x18]
|
|
str r0, [sp, #0xc]
|
|
str r7, [sp, #0x10]
|
|
mov r0, #5
|
|
str r0, [sp, #0x14]
|
|
ldrsh r3, [r3, r4]
|
|
ldr r0, [sp, #0x1c]
|
|
bl sub_02070C24
|
|
add sp, #0x20
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_02261B2C
|
|
|
|
thumb_func_start ov12_02261B80
|
|
ov12_02261B80: ; 0x02261B80
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xac
|
|
str r0, [sp]
|
|
ldr r0, [r3, #0x4c]
|
|
str r1, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
cmp r0, #0
|
|
bne _02261B9E
|
|
mov r0, #0xa
|
|
str r0, [sp, #0x84]
|
|
add r0, r3, #0
|
|
ldrh r0, [r0, #2]
|
|
str r0, [sp, #0x18]
|
|
b _02261BA8
|
|
_02261B9E:
|
|
mov r0, #0x3d
|
|
str r0, [sp, #0x84]
|
|
add r0, r3, #0
|
|
ldr r0, [r0, #0x50]
|
|
str r0, [sp, #0x18]
|
|
_02261BA8:
|
|
ldr r0, [sp]
|
|
bl ov12_0223A7D4
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp]
|
|
bl ov12_0223A938
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp]
|
|
bl ov12_0223A8E4
|
|
add r5, sp, #0x1c
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0xc]
|
|
mov r4, #0
|
|
str r0, [sp, #0x14]
|
|
str r5, [sp, #0x10]
|
|
add r6, r5, #0
|
|
add r7, r0, #0
|
|
_02261BCE:
|
|
ldr r0, [sp]
|
|
add r1, r4, #0
|
|
bl ov12_0223BB88
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
ldrh r1, [r0, #0x18]
|
|
ldr r0, [sp, #0x10]
|
|
strh r1, [r0, #0x34]
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, r4
|
|
add r0, #0x20
|
|
ldrb r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0x3c
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, r4
|
|
add r0, #0x24
|
|
ldrb r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0x40
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, r4
|
|
add r0, #0x28
|
|
ldrb r1, [r0]
|
|
add r0, r6, #0
|
|
add r0, #0x44
|
|
strb r1, [r0]
|
|
ldr r0, [r7, #0x2c]
|
|
add r4, r4, #1
|
|
str r0, [r5, #0x48]
|
|
ldr r0, [r7, #0x3c]
|
|
add r6, r6, #1
|
|
str r0, [r5, #0x58]
|
|
ldr r0, [sp, #0x14]
|
|
add r5, r5, #4
|
|
add r0, r0, #2
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
add r7, r7, #4
|
|
add r0, r0, #2
|
|
str r0, [sp, #0x10]
|
|
cmp r4, #4
|
|
blt _02261BCE
|
|
ldr r0, [sp]
|
|
add r1, sp, #0x38
|
|
bl ov12_0223C1C4
|
|
ldr r0, [sp]
|
|
add r1, sp, #0x3c
|
|
bl ov12_0223C1F4
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetBattleType
|
|
mov r2, #0x65
|
|
str r0, [sp, #0x4c]
|
|
ldr r1, [sp, #4]
|
|
lsl r2, r2, #2
|
|
ldrb r1, [r1, r2]
|
|
ldr r0, [sp]
|
|
bl BattleSys_GetChatotVoice
|
|
str r0, [sp, #0xa0]
|
|
ldr r0, [sp]
|
|
bl ov12_0223BAD0
|
|
str r0, [sp, #0xa4]
|
|
ldr r0, [sp]
|
|
bl ov12_0223BAD8
|
|
str r0, [sp, #0xa8]
|
|
mov r0, #7
|
|
str r0, [sp, #0x88]
|
|
ldr r0, [sp]
|
|
bl ov12_0223AB54
|
|
add r0, r0, #3
|
|
str r0, [sp, #0x8c]
|
|
ldr r0, [sp]
|
|
bl ov12_0223B52C
|
|
add r4, r0, #0
|
|
ldr r0, [sp]
|
|
bl ov12_0223AB54
|
|
lsl r1, r0, #1
|
|
add r0, r0, r1
|
|
add r0, #0xb0
|
|
add r0, r4, r0
|
|
str r0, [sp, #0x90]
|
|
mov r0, #2
|
|
str r0, [sp, #0x94]
|
|
mov r0, #0
|
|
ldr r2, [sp, #0x18]
|
|
str r0, [sp, #0x98]
|
|
mov r0, #8
|
|
str r0, [sp, #0x9c]
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
lsr r2, r2, #0x10
|
|
add r3, sp, #0x1c
|
|
bl ov07_0221C01C
|
|
add sp, #0xac
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_02261B80
|
|
|
|
thumb_func_start ov12_02261CA8
|
|
ov12_02261CA8: ; 0x02261CA8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r2, #0
|
|
add r7, r1, #0
|
|
str r3, [r6]
|
|
str r0, [sp]
|
|
str r3, [r6, #4]
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
str r7, [sp, #0xc]
|
|
str r6, [sp, #8]
|
|
str r7, [sp, #4]
|
|
_02261CC0:
|
|
ldr r0, [sp]
|
|
add r1, r4, #0
|
|
bl ov12_0223BB88
|
|
str r0, [r5, #8]
|
|
ldr r0, [sp, #0xc]
|
|
ldrh r1, [r0, #0x18]
|
|
ldr r0, [sp, #8]
|
|
strh r1, [r0, #0x28]
|
|
add r0, r7, r4
|
|
add r0, #0x20
|
|
ldrb r1, [r0]
|
|
add r0, r6, r4
|
|
add r0, #0x30
|
|
strb r1, [r0]
|
|
add r0, r7, r4
|
|
add r0, #0x24
|
|
ldrb r1, [r0]
|
|
add r0, r6, r4
|
|
add r0, #0x34
|
|
strb r1, [r0]
|
|
add r0, r7, r4
|
|
add r0, #0x28
|
|
ldrb r1, [r0]
|
|
add r0, r6, r4
|
|
add r0, #0x38
|
|
strb r1, [r0]
|
|
ldr r0, [sp, #4]
|
|
add r4, r4, #1
|
|
ldr r0, [r0, #0x2c]
|
|
str r0, [r5, #0x3c]
|
|
ldr r0, [sp, #0xc]
|
|
add r5, r5, #4
|
|
add r0, r0, #2
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #2
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #4]
|
|
add r0, r0, #4
|
|
str r0, [sp, #4]
|
|
cmp r4, #4
|
|
blt _02261CC0
|
|
add r1, r6, #0
|
|
ldr r0, [sp]
|
|
add r1, #0x4c
|
|
bl ov12_0223C1C4
|
|
add r6, #0x18
|
|
ldr r0, [sp]
|
|
add r1, r6, #0
|
|
bl ov12_0223C1F4
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261CA8
|
|
|
|
thumb_func_start ov12_02261D30
|
|
ov12_02261D30: ; 0x02261D30
|
|
push {r4, r5, r6, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
cmp r2, #0
|
|
bne _02261D6E
|
|
add r0, sp, #0
|
|
ldrh r6, [r0, #0x10]
|
|
mov r1, #9
|
|
add r0, r6, #0
|
|
bl GetMoveAttr
|
|
mov r1, #0x40
|
|
tst r0, r1
|
|
bne _02261D50
|
|
mov r0, #1
|
|
b _02261D52
|
|
_02261D50:
|
|
mov r0, #0
|
|
_02261D52:
|
|
strb r0, [r4]
|
|
add r0, r6, #0
|
|
mov r1, #9
|
|
bl GetMoveAttr
|
|
mov r1, #0x80
|
|
tst r0, r1
|
|
beq _02261D68
|
|
mov r0, #1
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
_02261D68:
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
_02261D6E:
|
|
sub r3, #0x12
|
|
cmp r3, #0x15
|
|
bhi _02261DBE
|
|
add r0, r3, r3
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02261D80: ; jump table
|
|
.short _02261DAC - _02261D80 - 2 ; case 0
|
|
.short _02261DAC - _02261D80 - 2 ; case 1
|
|
.short _02261DAC - _02261D80 - 2 ; case 2
|
|
.short _02261DAC - _02261D80 - 2 ; case 3
|
|
.short _02261DAC - _02261D80 - 2 ; case 4
|
|
.short _02261DBE - _02261D80 - 2 ; case 5
|
|
.short _02261DBE - _02261D80 - 2 ; case 6
|
|
.short _02261DBE - _02261D80 - 2 ; case 7
|
|
.short _02261DBE - _02261D80 - 2 ; case 8
|
|
.short _02261DBE - _02261D80 - 2 ; case 9
|
|
.short _02261DBE - _02261D80 - 2 ; case 10
|
|
.short _02261DBE - _02261D80 - 2 ; case 11
|
|
.short _02261DBE - _02261D80 - 2 ; case 12
|
|
.short _02261DAC - _02261D80 - 2 ; case 13
|
|
.short _02261DAC - _02261D80 - 2 ; case 14
|
|
.short _02261DBE - _02261D80 - 2 ; case 15
|
|
.short _02261DAC - _02261D80 - 2 ; case 16
|
|
.short _02261DAC - _02261D80 - 2 ; case 17
|
|
.short _02261DB6 - _02261D80 - 2 ; case 18
|
|
.short _02261DAC - _02261D80 - 2 ; case 19
|
|
.short _02261DB6 - _02261D80 - 2 ; case 20
|
|
.short _02261DAC - _02261D80 - 2 ; case 21
|
|
_02261DAC:
|
|
mov r0, #1
|
|
strb r0, [r4]
|
|
mov r0, #0
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
_02261DB6:
|
|
mov r0, #1
|
|
strb r0, [r4]
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
_02261DBE:
|
|
mov r0, #0
|
|
strb r0, [r4]
|
|
strb r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261D30
|
|
|
|
thumb_func_start ov12_02261DC8
|
|
ov12_02261DC8: ; 0x02261DC8
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0xc]
|
|
mov r4, #0
|
|
bl sub_0200E11C
|
|
cmp r0, #1
|
|
beq _02261DE0
|
|
ldr r1, _02261E38 ; =0x00000FFF
|
|
cmp r0, r1
|
|
beq _02261E0A
|
|
b _02261E0E
|
|
_02261DE0:
|
|
ldrh r1, [r5, #0x16]
|
|
lsl r0, r1, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
bne _02261E34
|
|
mov r0, #1
|
|
bic r1, r0
|
|
mov r0, #1
|
|
orr r0, r1
|
|
strh r0, [r5, #0x16]
|
|
mov r0, #5
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
add r1, r0, #0
|
|
add r2, r4, #0
|
|
str r2, [r1]
|
|
ldr r0, _02261E3C ; =ov12_02261E40
|
|
str r2, [r1, #4]
|
|
bl CreateSysTask
|
|
b _02261E34
|
|
_02261E0A:
|
|
mov r4, #1
|
|
b _02261E34
|
|
_02261E0E:
|
|
sub r1, #0xff
|
|
add r2, r0, #0
|
|
and r2, r1
|
|
mov r1, #1
|
|
lsl r1, r1, #8
|
|
cmp r2, r1
|
|
bne _02261E34
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
beq _02261E34
|
|
ldr r0, [r5, #0xc]
|
|
add r1, r4, #0
|
|
bl sub_0200DCC0
|
|
ldr r0, [r5, #0xc]
|
|
sub r1, r6, #1
|
|
bl sub_0200DC4C
|
|
mov r4, #1
|
|
_02261E34:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02261E38: .word 0x00000FFF
|
|
_02261E3C: .word ov12_02261E40
|
|
thumb_func_end ov12_02261DC8
|
|
|
|
thumb_func_start ov12_02261E40
|
|
ov12_02261E40: ; 0x02261E40
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _02261E56
|
|
cmp r0, #1
|
|
beq _02261E7E
|
|
cmp r0, #2
|
|
beq _02261EA0
|
|
pop {r3, r4, r5, pc}
|
|
_02261E56:
|
|
mov r0, #1
|
|
bl sub_0200B5C0
|
|
cmp r0, #0
|
|
bne _02261E66
|
|
mov r0, #2
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_02261E66:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
mov r1, #0x10
|
|
mov r2, #0
|
|
mov r3, #0x3d
|
|
bl sub_0200B484
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_02261E7E:
|
|
mov r0, #1
|
|
bl sub_0200B5C0
|
|
cmp r0, #1
|
|
bne _02261EB6
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
mov r0, #4
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
mov r3, #0x3d
|
|
bl sub_0200B484
|
|
ldr r0, [r4]
|
|
add r0, r0, #1
|
|
str r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
_02261EA0:
|
|
mov r0, #1
|
|
bl sub_0200B5C0
|
|
cmp r0, #1
|
|
bne _02261EB6
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
add r0, r5, #0
|
|
bl DestroySysTask
|
|
_02261EB6:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov12_02261E40
|
|
|
|
thumb_func_start ov12_02261EB8
|
|
ov12_02261EB8: ; 0x02261EB8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #1
|
|
bl ov12_0223BFFC
|
|
add r0, r4, #0
|
|
bl ov12_0223A7E4
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov12_022581BC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261EB8
|
|
|
|
thumb_func_start ov12_02261ED4
|
|
ov12_02261ED4: ; 0x02261ED4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #2
|
|
bl ov12_0223BFFC
|
|
add r0, r4, #0
|
|
bl ov12_0223A7E4
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov12_022581BC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261ED4
|
|
|
|
thumb_func_start ov12_02261EF0
|
|
ov12_02261EF0: ; 0x02261EF0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r4, r2, #0
|
|
bl BattleSys_GetBattleType
|
|
mov r1, #4
|
|
tst r0, r1
|
|
beq _02261F0A
|
|
cmp r4, #0
|
|
beq _02261F0E
|
|
cmp r4, #1
|
|
beq _02261F0E
|
|
_02261F0A:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
_02261F0E:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl BattleSys_GetPlayerProfile
|
|
bl PlayerProfile_GetVersion
|
|
cmp r0, #0
|
|
beq _02261F24
|
|
cmp r0, #0xc
|
|
beq _02261F2C
|
|
b _02261F32
|
|
_02261F24:
|
|
add r4, #0x7d
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
b _02261F32
|
|
_02261F2C:
|
|
add r4, #0x7f
|
|
lsl r0, r4, #0x18
|
|
lsr r4, r0, #0x18
|
|
_02261F32:
|
|
add r0, r4, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov12_02261EF0
|
|
|
|
thumb_func_start ov12_02261F38
|
|
ov12_02261F38: ; 0x02261F38
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
mov r2, #0
|
|
add r1, sp, #0x14
|
|
add r7, r0, #0
|
|
add r6, r3, #0
|
|
strb r2, [r1]
|
|
bl BattleSys_AreBattleAnimationsOn
|
|
cmp r0, #1
|
|
bne _02261F8C
|
|
add r0, r6, #0
|
|
mov r1, #1
|
|
bl sub_02008550
|
|
add r0, r7, #0
|
|
bl ov12_0223B750
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0x3c]
|
|
ldr r3, [sp, #0x34]
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
lsl r3, r3, #0x10
|
|
ldr r0, [sp, #0x30]
|
|
add r2, r6, #0
|
|
lsr r3, r3, #0x10
|
|
str r5, [sp, #8]
|
|
bl sub_0207294C
|
|
ldr r2, [sp, #0x34]
|
|
lsl r3, r4, #0x10
|
|
lsl r2, r2, #0x10
|
|
ldr r0, [sp, #0x30]
|
|
add r1, sp, #0x14
|
|
lsr r2, r2, #0x10
|
|
lsr r3, r3, #0x10
|
|
bl sub_020729A4
|
|
_02261F8C:
|
|
ldr r0, [sp, #0x3c]
|
|
cmp r0, #2
|
|
bne _02261F96
|
|
mov r4, #0x75
|
|
b _02261F9A
|
|
_02261F96:
|
|
mov r4, #0x74
|
|
mvn r4, r4
|
|
_02261F9A:
|
|
add r0, sp, #0x14
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _02261FA6
|
|
mov r1, #8
|
|
strb r1, [r0]
|
|
_02261FA6:
|
|
add r0, r7, #0
|
|
add r1, r5, #0
|
|
bl BattleSys_GetChatotVoice
|
|
ldr r2, [sp, #0x34]
|
|
str r4, [sp]
|
|
mov r1, #0x7f
|
|
str r1, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
mov r1, #5
|
|
str r1, [sp, #0xc]
|
|
add r1, sp, #0x14
|
|
ldrb r1, [r1]
|
|
lsl r2, r2, #0x10
|
|
ldr r3, [sp, #0x38]
|
|
str r1, [sp, #0x10]
|
|
ldr r1, [sp, #0x40]
|
|
lsr r2, r2, #0x10
|
|
bl sub_0207204C
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov12_02261F38
|
|
|
|
.rodata
|
|
|
|
ov12_0226D010: ; 0x0226D010
|
|
.word ov12_02258EB0
|
|
.word ov12_02258EB4
|
|
.word ov12_02258EE0
|
|
.word ov12_02258EF4
|
|
.word ov12_02258F08
|
|
.word ov12_02258F1C
|
|
.word ov12_02258F30
|
|
.word ov12_02258F44
|
|
.word ov12_02258F68
|
|
.word ov12_02258F7C
|
|
.word ov12_02258F90
|
|
.word ov12_02258FA0
|
|
.word ov12_02258FB4
|
|
.word ov12_02258FC8
|
|
.word ov12_02258FD8
|
|
.word ov12_02259000
|
|
.word ov12_02259014
|
|
.word ov12_02259028
|
|
.word ov12_0225903C
|
|
.word ov12_02259050
|
|
.word ov12_02259064
|
|
.word ov12_02259078
|
|
.word ov12_0225908C
|
|
.word ov12_022590A0
|
|
.word ov12_022590D4
|
|
.word ov12_022590E8
|
|
.word ov12_022590FC
|
|
.word ov12_02259110
|
|
.word ov12_02259124
|
|
.word ov12_02259134
|
|
.word ov12_02259148
|
|
.word ov12_0225915C
|
|
.word ov12_02259170
|
|
.word ov12_02259184
|
|
.word ov12_02259198
|
|
.word ov12_022591A8
|
|
.word ov12_022591BC
|
|
.word ov12_022591CC
|
|
.word ov12_022591E0
|
|
.word ov12_022591F4
|
|
.word ov12_022592D0
|
|
.word ov12_02259328
|
|
.word ov12_02259358
|
|
.word ov12_022593D4
|
|
.word ov12_022593E8
|
|
.word ov12_022593FC
|
|
.word ov12_022594F4
|
|
.word ov12_02259514
|
|
.word ov12_022595B8
|
|
.word ov12_022595CC
|
|
.word ov12_022595E0
|
|
.word ov12_0225961C
|
|
.word ov12_02259658
|
|
.word ov12_02259694
|
|
.word ov12_022596B8
|
|
.word ov12_02259700
|
|
.word ov12_02259724
|
|
.word ov12_02259738
|
|
.word ov12_02259748
|
|
.word ov12_02259758
|
|
.word ov12_02259768
|
|
.word ov12_0225978C
|
|
.word ov12_022597B0
|
|
.word ov12_022597C4
|
|
.word ov12_022597D8
|
|
.word ov12_022597EC
|
|
.word ov12_022598F8
|
|
.word ov12_02259930
|
|
|
|
ov12_0226D120: ; 0x0226D120
|
|
.byte 0x06, 0x01, 0x08, 0x03, 0x07, 0x05, 0x00, 0x00
|
|
|
|
ov12_0226D128: ; 0x0226D128
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
|
|
|
|
ov12_0226D140: ; 0x0226D140
|
|
.byte 0x0A
|
|
|
|
ov12_0226D141: ; 0x0226D141
|
|
.byte 0x28, 0x0A, 0x23, 0x0A, 0x1E, 0x0A, 0x19, 0x0A, 0x14, 0x0A, 0x0F, 0x0A, 0x0A, 0x0F, 0x0A
|
|
.byte 0x14, 0x0A, 0x19, 0x0A, 0x1E, 0x0A, 0x23, 0x0A, 0x28, 0x0A
|
|
|
|
ov12_0226D15A: ; 0x0226D15A
|
|
.byte 0x00, 0x00, 0x97, 0x72, 0xFF, 0x3F
|
|
.byte 0xF0, 0x7A, 0xDF, 0x7A, 0xD7, 0x53, 0xF5, 0x67, 0x2C, 0x7B, 0x7E, 0x2B, 0x1F, 0x43, 0xDD, 0x7B
|
|
.byte 0x3F, 0x2A, 0x3F, 0x29, 0xCE, 0x45, 0x1F, 0x73, 0x51, 0x7F, 0x1E, 0x15, 0xDF, 0x7A, 0xDF, 0x7A
|
|
.byte 0xDF, 0x7A, 0xDF, 0x7A, 0xDF, 0x7A, 0xDF, 0x7A, 0xDF, 0x7A, 0xDF, 0x7A
|
|
|
|
ov12_0226D18C: ; 0x0226D18C
|
|
.byte 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
.byte 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00
|
|
|
|
ov12_0226D1E8: ; 0x0226D1E8
|
|
.byte 0x00, 0x00
|
|
|
|
ov12_0226D1EA: ; 0x0226D1EA
|
|
.byte 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDF, 0xFF, 0xFA, 0xFF
|
|
.byte 0xE4, 0xFF, 0xEE, 0xFF, 0x32, 0x00, 0xDC, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDF, 0xFF, 0xFE, 0xFF, 0xE4, 0xFF, 0xEE, 0xFF, 0x32, 0x00, 0xE4, 0xFF
|
|
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE9, 0xFF, 0xFF, 0xFF, 0x32, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00, 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF
|
|
.byte 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0x00, 0x80, 0x00, 0xDE, 0xFF, 0x04, 0x00
|
|
.byte 0xE4, 0xFF, 0xF5, 0xFF, 0x32, 0x00, 0xF4, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
|
|
|
|
ov12_0226D350: ; 0x0226D350
|
|
.byte 0x09, 0x17, 0x05, 0x13, 0x0D, 0x11, 0x0F, 0x07, 0x15, 0x0B, 0x19, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
|
|
.byte 0x0B, 0x15, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
|
|
|