mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-27 13:41:50 -04:00
33950 lines
570 KiB
ArmAsm
33950 lines
570 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start atk00_attackcanceler
|
|
atk00_attackcanceler: @ 0x08045C3C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
ldr r0, _08045C58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08045C60
|
|
ldr r1, _08045C5C
|
|
movs r0, #0xc
|
|
strb r0, [r1]
|
|
b _08045FD8
|
|
.align 2, 0
|
|
_08045C58: .4byte 0x02023FDE
|
|
_08045C5C: .4byte 0x02023D27
|
|
_08045C60:
|
|
ldr r2, _08045C90
|
|
ldr r0, _08045C94
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _08045CA4
|
|
ldr r2, _08045C98
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08045CA4
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xc
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, _08045C9C
|
|
ldr r0, _08045CA0
|
|
b _08045FD6
|
|
.align 2, 0
|
|
_08045C90: .4byte 0x02023D28
|
|
_08045C94: .4byte 0x02023EAF
|
|
_08045C98: .4byte 0x02023F24
|
|
_08045C9C: .4byte 0x02023EB8
|
|
_08045CA0: .4byte 0x08286FD6
|
|
_08045CA4:
|
|
bl sub_080416AC
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0
|
|
beq _08045CB2
|
|
b _08045FD8
|
|
_08045CB2:
|
|
ldr r0, _08045D20
|
|
ldrb r1, [r0]
|
|
str r2, [sp]
|
|
movs r0, #2
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08045CCA
|
|
b _08045FD8
|
|
_08045CCA:
|
|
ldr r4, _08045D24
|
|
ldr r0, _08045D28
|
|
ldrb r1, [r0]
|
|
ldr r3, _08045D2C
|
|
ldrb r2, [r3]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, r1, r2
|
|
adds r0, r4, #0
|
|
adds r0, #0x24
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
ldr r5, _08045D30
|
|
cmp r0, #0
|
|
bne _08045D48
|
|
ldr r0, _08045D34
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xa5
|
|
beq _08045D48
|
|
ldr r0, [r5]
|
|
ldr r1, _08045D38
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08045D48
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08045D48
|
|
ldr r1, _08045D3C
|
|
ldr r0, _08045D40
|
|
str r0, [r1]
|
|
ldr r2, _08045D44
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _08045FD8
|
|
.align 2, 0
|
|
_08045D20: .4byte 0x02023EB0
|
|
_08045D24: .4byte 0x02023D28
|
|
_08045D28: .4byte 0x02023E8C
|
|
_08045D2C: .4byte 0x02023EAF
|
|
_08045D30: .4byte 0x02023F24
|
|
_08045D34: .4byte 0x02023E8E
|
|
_08045D38: .4byte 0x00800200
|
|
_08045D3C: .4byte 0x02023EB8
|
|
_08045D40: .4byte 0x08289602
|
|
_08045D44: .4byte 0x02023F20
|
|
_08045D48:
|
|
ldr r0, [r5]
|
|
ldr r1, _08045D8C
|
|
ands r0, r1
|
|
str r0, [r5]
|
|
movs r6, #0x80
|
|
lsls r6, r6, #0x12
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
bne _08045DA0
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r4, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08045DA0
|
|
bl IsMonDisobedient
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0
|
|
beq _08045DA0
|
|
cmp r2, #2
|
|
bne _08045D90
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
b _08045FD8
|
|
.align 2, 0
|
|
_08045D8C: .4byte 0xFF7FFFFF
|
|
_08045D90:
|
|
ldr r0, _08045D9C
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08045FD8
|
|
.align 2, 0
|
|
_08045D9C: .4byte 0x02023F20
|
|
_08045DA0:
|
|
ldr r2, _08045E04
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _08045E08
|
|
ldr r1, _08045E0C
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1b
|
|
mov r8, r1
|
|
mov sb, r2
|
|
cmp r0, #0
|
|
bge _08045E28
|
|
ldr r2, _08045E10
|
|
ldr r0, _08045E14
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08045E28
|
|
ldr r0, _08045E18
|
|
ldrb r0, [r0]
|
|
ldr r2, _08045E1C
|
|
adds r1, r3, #0
|
|
bl PressurePPLose
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #4
|
|
add r1, sb
|
|
ldrb r2, [r1]
|
|
movs r0, #0x11
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08045E20
|
|
ldr r0, _08045E24
|
|
b _08045FD6
|
|
.align 2, 0
|
|
_08045E04: .4byte 0x02023F24
|
|
_08045E08: .4byte 0x02023FE0
|
|
_08045E0C: .4byte 0x02023EB0
|
|
_08045E10: .4byte 0x082ED220
|
|
_08045E14: .4byte 0x02023E8E
|
|
_08045E18: .4byte 0x02023EAF
|
|
_08045E1C: .4byte 0x00000115
|
|
_08045E20: .4byte 0x02023EB8
|
|
_08045E24: .4byte 0x0828971C
|
|
_08045E28:
|
|
movs r2, #0
|
|
ldr r0, _08045EA4
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bge _08045E6A
|
|
ldr r6, _08045EA8
|
|
ldr r1, _08045EAC
|
|
mov ip, r1
|
|
adds r5, r0, #0
|
|
ldr r7, _08045EB0
|
|
_08045E3C:
|
|
adds r4, r2, r7
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1a
|
|
cmp r0, #0
|
|
bge _08045E64
|
|
ldr r0, _08045EB4
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08045E64
|
|
b _08045F90
|
|
_08045E64:
|
|
adds r2, #1
|
|
cmp r2, r5
|
|
blt _08045E3C
|
|
_08045E6A:
|
|
ldr r0, _08045EB8
|
|
mov r1, r8
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #0x1e
|
|
cmp r0, #0
|
|
bge _08045EC8
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r4, _08045EBC
|
|
movs r0, #0x1f
|
|
strb r0, [r4]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08045EC0
|
|
ldr r0, _08045EC4
|
|
str r0, [r1]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r4]
|
|
bl RecordAbilityBattle
|
|
b _08045FD8
|
|
.align 2, 0
|
|
_08045EA4: .4byte 0x02023D10
|
|
_08045EA8: .4byte 0x02023FE0
|
|
_08045EAC: .4byte 0x082ED220
|
|
_08045EB0: .4byte 0x02023D22
|
|
_08045EB4: .4byte 0x02023E8E
|
|
_08045EB8: .4byte 0x02024020
|
|
_08045EBC: .4byte 0x02023EAE
|
|
_08045EC0: .4byte 0x02023EB8
|
|
_08045EC4: .4byte 0x08289AC6
|
|
_08045EC8:
|
|
lsls r0, r2, #4
|
|
add r0, sb
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
bne _08045ED6
|
|
b _08045FD0
|
|
_08045ED6:
|
|
ldr r1, _08045F6C
|
|
ldr r2, _08045F70
|
|
ldrh r3, [r2]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
adds r4, r2, #0
|
|
cmp r0, #0
|
|
beq _08045FD0
|
|
cmp r3, #0xae
|
|
bne _08045F14
|
|
ldr r2, _08045F74
|
|
ldr r0, _08045F78
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r0, r2
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
beq _08045F14
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bne _08045FD0
|
|
_08045F14:
|
|
ldrh r0, [r4]
|
|
bl IsTwoTurnsMove
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08045F3A
|
|
ldr r1, _08045F74
|
|
ldr r0, _08045F78
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08045FD0
|
|
_08045F3A:
|
|
ldr r0, _08045F78
|
|
ldrb r0, [r0]
|
|
bl CancelMultiTurnMoves
|
|
ldr r2, _08045F7C
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08045F80
|
|
ldr r3, _08045F84
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _08045F88
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r2, [r0]
|
|
ldr r1, _08045F8C
|
|
movs r0, #1
|
|
strb r0, [r1, #6]
|
|
b _08045FD0
|
|
.align 2, 0
|
|
_08045F6C: .4byte 0x082ED220
|
|
_08045F70: .4byte 0x02023E8E
|
|
_08045F74: .4byte 0x02023D28
|
|
_08045F78: .4byte 0x02023EAF
|
|
_08045F7C: .4byte 0x02023F20
|
|
_08045F80: .4byte 0x02023EF4
|
|
_08045F84: .4byte 0x02023EB0
|
|
_08045F88: .4byte 0x02023EFC
|
|
_08045F8C: .4byte 0x02023FD6
|
|
_08045F90:
|
|
ldr r0, _08045FBC
|
|
ldrb r0, [r0]
|
|
ldr r2, _08045FC0
|
|
adds r1, r3, #0
|
|
bl PressurePPLose
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r6
|
|
ldrb r2, [r1]
|
|
movs r0, #0x21
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _08045FC4
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #0x17]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08045FC8
|
|
ldr r0, _08045FCC
|
|
b _08045FD6
|
|
.align 2, 0
|
|
_08045FBC: .4byte 0x02023EAF
|
|
_08045FC0: .4byte 0x00000121
|
|
_08045FC4: .4byte 0x02024118
|
|
_08045FC8: .4byte 0x02023EB8
|
|
_08045FCC: .4byte 0x08289734
|
|
_08045FD0:
|
|
ldr r1, _08045FE8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
_08045FD6:
|
|
str r0, [r1]
|
|
_08045FD8:
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08045FE8: .4byte 0x02023EB8
|
|
thumb_func_end atk00_attackcanceler
|
|
|
|
thumb_func_start JumpIfMoveFailed
|
|
JumpIfMoveFailed: @ 0x08045FEC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r1, #0x10
|
|
lsrs r6, r1, #0x10
|
|
ldr r1, _08046038
|
|
ldr r5, [r1]
|
|
adds r4, r5, r0
|
|
ldr r0, _0804603C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804604C
|
|
ldr r1, _08046040
|
|
ldr r3, _08046044
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _08046048
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r2, [r0]
|
|
ldrb r4, [r5, #1]
|
|
ldrb r0, [r5, #2]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r5, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r5, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
b _08046066
|
|
.align 2, 0
|
|
_08046038: .4byte 0x02023EB8
|
|
_0804603C: .4byte 0x02023F20
|
|
_08046040: .4byte 0x02023EF4
|
|
_08046044: .4byte 0x02023EB0
|
|
_08046048: .4byte 0x02023EFC
|
|
_0804604C:
|
|
bl TrySetDestinyBondToHappen
|
|
ldr r0, _08046074
|
|
ldrb r1, [r0]
|
|
str r6, [sp]
|
|
movs r0, #3
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804606A
|
|
_08046066:
|
|
ldr r0, _08046078
|
|
str r4, [r0]
|
|
_0804606A:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046074: .4byte 0x02023EB0
|
|
_08046078: .4byte 0x02023EB8
|
|
thumb_func_end JumpIfMoveFailed
|
|
|
|
thumb_func_start atk40_jumpifaffectedbyprotect
|
|
atk40_jumpifaffectedbyprotect: @ 0x0804607C
|
|
push {lr}
|
|
ldr r1, _080460C4
|
|
ldr r0, _080460C8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
beq _080460DC
|
|
ldr r2, _080460CC
|
|
ldr r0, _080460D0
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080460DC
|
|
ldr r2, _080460D4
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, #5
|
|
movs r1, #0
|
|
bl JumpIfMoveFailed
|
|
ldr r1, _080460D8
|
|
movs r0, #1
|
|
strb r0, [r1, #6]
|
|
b _080460E4
|
|
.align 2, 0
|
|
_080460C4: .4byte 0x02023FE0
|
|
_080460C8: .4byte 0x02023EB0
|
|
_080460CC: .4byte 0x082ED220
|
|
_080460D0: .4byte 0x02023E8E
|
|
_080460D4: .4byte 0x02023F20
|
|
_080460D8: .4byte 0x02023FD6
|
|
_080460DC:
|
|
ldr r1, _080460E8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080460E4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080460E8: .4byte 0x02023EB8
|
|
thumb_func_end atk40_jumpifaffectedbyprotect
|
|
|
|
thumb_func_start JumpIfMoveAffectedByProtect
|
|
JumpIfMoveAffectedByProtect: @ 0x080460EC
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
movs r4, #0
|
|
ldr r1, _08046140
|
|
ldr r0, _08046144
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
beq _08046138
|
|
ldr r2, _08046148
|
|
ldr r0, _0804614C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046138
|
|
ldr r2, _08046150
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, #7
|
|
adds r1, r3, #0
|
|
bl JumpIfMoveFailed
|
|
ldr r1, _08046154
|
|
movs r0, #1
|
|
strb r0, [r1, #6]
|
|
movs r4, #1
|
|
_08046138:
|
|
adds r0, r4, #0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08046140: .4byte 0x02023FE0
|
|
_08046144: .4byte 0x02023EB0
|
|
_08046148: .4byte 0x082ED220
|
|
_0804614C: .4byte 0x02023E8E
|
|
_08046150: .4byte 0x02023F20
|
|
_08046154: .4byte 0x02023FD6
|
|
thumb_func_end JumpIfMoveAffectedByProtect
|
|
|
|
thumb_func_start AccuracyCalcHelper
|
|
AccuracyCalcHelper: @ 0x08046158
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
ldr r2, _080461B8
|
|
ldr r3, _080461BC
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, #0x18
|
|
ands r1, r0
|
|
adds r6, r2, #0
|
|
cmp r1, #0
|
|
beq _0804618A
|
|
ldr r1, _080461C0
|
|
lsls r0, r4, #3
|
|
subs r0, r0, r4
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080461C4
|
|
ldrb r0, [r0, #0x15]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08046274
|
|
_0804618A:
|
|
ldr r0, _080461C8
|
|
ldr r1, [r0]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #9
|
|
ands r1, r2
|
|
adds r2, r0, #0
|
|
cmp r1, #0
|
|
bne _080461D0
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080461D0
|
|
_080461AA:
|
|
ldr r0, _080461CC
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08046274
|
|
.align 2, 0
|
|
_080461B8: .4byte 0x02023F50
|
|
_080461BC: .4byte 0x02023EB0
|
|
_080461C0: .4byte 0x02023F60
|
|
_080461C4: .4byte 0x02023EAF
|
|
_080461C8: .4byte 0x02023F24
|
|
_080461CC: .4byte 0x02023F20
|
|
_080461D0:
|
|
ldr r0, [r2]
|
|
ldr r1, _08046280
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xa
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080461F2
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080461AA
|
|
_080461F2:
|
|
ldr r0, [r2]
|
|
ldr r1, _08046284
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08046212
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080461AA
|
|
_08046212:
|
|
ldr r0, [r2]
|
|
ldr r1, _08046288
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r4, r5, #1
|
|
cmp r0, #0
|
|
bne _08046262
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08046262
|
|
ldr r0, _0804628C
|
|
ldrh r1, [r0]
|
|
movs r0, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046262
|
|
ldr r0, _08046290
|
|
adds r1, r4, r5
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x98
|
|
beq _08046274
|
|
_08046262:
|
|
ldr r1, _08046290
|
|
adds r0, r4, r5
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x11
|
|
beq _08046274
|
|
cmp r0, #0x4e
|
|
bne _08046294
|
|
_08046274:
|
|
movs r0, #7
|
|
adds r1, r5, #0
|
|
bl JumpIfMoveFailed
|
|
movs r0, #1
|
|
b _08046296
|
|
.align 2, 0
|
|
_08046280: .4byte 0xFFFEFFFF
|
|
_08046284: .4byte 0xFFFDFFFF
|
|
_08046288: .4byte 0xFFFBFFFF
|
|
_0804628C: .4byte 0x02024070
|
|
_08046290: .4byte 0x082ED220
|
|
_08046294:
|
|
movs r0, #0
|
|
_08046296:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end AccuracyCalcHelper
|
|
|
|
thumb_func_start atk01_accuracycheck
|
|
atk01_accuracycheck: @ 0x080462A0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
ldr r0, _080462F8
|
|
ldr r5, [r0]
|
|
ldrb r6, [r5, #5]
|
|
ldrb r1, [r5, #6]
|
|
lsls r1, r1, #8
|
|
orrs r6, r1
|
|
adds r1, r6, #2
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
adds r7, r0, #0
|
|
cmp r1, #1
|
|
bhi _0804635C
|
|
ldr r2, _080462FC
|
|
ldr r3, _08046300
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, #0x18
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08046310
|
|
ldr r0, _08046304
|
|
cmp r6, r0
|
|
bne _08046310
|
|
ldr r1, _08046308
|
|
lsls r0, r4, #3
|
|
subs r0, r0, r4
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0804630C
|
|
ldrb r0, [r0, #0x15]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _08046310
|
|
adds r0, r5, #7
|
|
str r0, [r7]
|
|
b _08046612
|
|
.align 2, 0
|
|
_080462F8: .4byte 0x02023EB8
|
|
_080462FC: .4byte 0x02023F50
|
|
_08046300: .4byte 0x02023EB0
|
|
_08046304: .4byte 0x0000FFFF
|
|
_08046308: .4byte 0x02023F60
|
|
_0804630C: .4byte 0x02023EAF
|
|
_08046310:
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ldr r1, _0804633C
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046340
|
|
ldr r2, [r7]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
b _08046612
|
|
.align 2, 0
|
|
_0804633C: .4byte 0x000400C0
|
|
_08046340:
|
|
movs r0, #0
|
|
bl JumpIfMoveAffectedByProtect
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804634E
|
|
b _08046612
|
|
_0804634E:
|
|
ldr r1, _08046358
|
|
ldr r0, [r1]
|
|
adds r0, #7
|
|
str r0, [r1]
|
|
b _08046612
|
|
.align 2, 0
|
|
_08046358: .4byte 0x02023EB8
|
|
_0804635C:
|
|
cmp r6, #0
|
|
bne _08046364
|
|
ldr r0, _0804637C
|
|
ldrh r6, [r0]
|
|
_08046364:
|
|
ldr r0, _08046380
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #0
|
|
beq _08046384
|
|
movs r1, #0x3f
|
|
mov sl, r1
|
|
mov r2, sl
|
|
ands r2, r0
|
|
mov sl, r2
|
|
b _08046392
|
|
.align 2, 0
|
|
_0804637C: .4byte 0x02023E8E
|
|
_08046380: .4byte 0x02024140
|
|
_08046384:
|
|
ldr r1, _080463D8
|
|
lsls r0, r6, #1
|
|
adds r0, r0, r6
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #2]
|
|
mov sl, r0
|
|
_08046392:
|
|
adds r0, r6, #0
|
|
bl JumpIfMoveAffectedByProtect
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080463A0
|
|
b _08046612
|
|
_080463A0:
|
|
adds r0, r6, #0
|
|
bl AccuracyCalcHelper
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080463AE
|
|
b _08046612
|
|
_080463AE:
|
|
ldr r3, _080463DC
|
|
ldr r0, _080463E0
|
|
ldrb r0, [r0]
|
|
movs r2, #0x58
|
|
adds r4, r0, #0
|
|
muls r4, r2, r4
|
|
adds r0, r3, #0
|
|
adds r0, #0x50
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080463E8
|
|
ldr r0, _080463E4
|
|
ldrb r0, [r0]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
ldrb r5, [r0, #0x1e]
|
|
b _080463FE
|
|
.align 2, 0
|
|
_080463D8: .4byte 0x082ED220
|
|
_080463DC: .4byte 0x02023D28
|
|
_080463E0: .4byte 0x02023EB0
|
|
_080463E4: .4byte 0x02023EAF
|
|
_080463E8:
|
|
ldr r0, _0804654C
|
|
ldrb r0, [r0]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0, #0x1e]
|
|
adds r0, #6
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1, #0x1f]
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
_080463FE:
|
|
lsls r0, r5, #0x18
|
|
cmp r0, #0
|
|
bge _08046406
|
|
movs r5, #0
|
|
_08046406:
|
|
lsls r0, r5, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0xc
|
|
ble _08046410
|
|
movs r5, #0xc
|
|
_08046410:
|
|
ldr r1, _08046550
|
|
lsls r4, r6, #1
|
|
adds r0, r4, r6
|
|
lsls r0, r0, #2
|
|
adds r7, r0, r1
|
|
ldrb r3, [r7, #3]
|
|
mov r8, r3
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
str r4, [sp, #4]
|
|
cmp r0, #0
|
|
bne _08046462
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08046462
|
|
ldr r0, _08046554
|
|
ldrh r1, [r0]
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046462
|
|
ldrb r0, [r7]
|
|
cmp r0, #0x98
|
|
bne _08046462
|
|
movs r0, #0x32
|
|
mov r8, r0
|
|
_08046462:
|
|
ldr r1, _08046558
|
|
lsls r0, r5, #0x18
|
|
asrs r0, r0, #0x16
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
mov r4, r8
|
|
muls r4, r1, r4
|
|
ldrb r1, [r0, #1]
|
|
adds r0, r4, #0
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
ldr r7, _0804655C
|
|
ldr r0, _0804654C
|
|
ldrb r0, [r0]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xe
|
|
bne _080464A0
|
|
lsls r0, r4, #6
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #1
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
_080464A0:
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080464F8
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080464F8
|
|
ldr r0, _08046560
|
|
ldrb r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
bne _080464F8
|
|
ldr r0, _08046554
|
|
ldrh r1, [r0]
|
|
movs r0, #0x18
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080464F8
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #4
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
_080464F8:
|
|
ldr r2, _0804655C
|
|
ldr r0, _0804654C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
mov sb, r2
|
|
cmp r0, #0x37
|
|
bne _08046524
|
|
mov r1, sl
|
|
cmp r1, #8
|
|
bhi _08046524
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #4
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
_08046524:
|
|
ldr r2, _08046560
|
|
mov r8, r2
|
|
ldrb r2, [r2]
|
|
movs r7, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r7, r0
|
|
mov r3, sb
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _08046568
|
|
ldr r1, _08046564
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r5, [r0, #7]
|
|
ldrb r2, [r0, #0x1a]
|
|
b _08046584
|
|
.align 2, 0
|
|
_0804654C: .4byte 0x02023EAF
|
|
_08046550: .4byte 0x082ED220
|
|
_08046554: .4byte 0x02024070
|
|
_08046558: .4byte 0x082ECA78
|
|
_0804655C: .4byte 0x02023D28
|
|
_08046560: .4byte 0x02023EB0
|
|
_08046564: .4byte 0x020240A8
|
|
_08046568:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
muls r0, r7, r0
|
|
add r0, sb
|
|
ldrh r0, [r0, #0x2e]
|
|
bl sub_080D6D1C
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
_08046584:
|
|
ldr r0, _080465E8
|
|
ldr r1, _080465EC
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
cmp r5, #0x16
|
|
bne _080465A0
|
|
movs r0, #0x64
|
|
subs r0, r0, r2
|
|
muls r0, r4, r0
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
_080465A0:
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
adds r0, #1
|
|
cmp r0, r4
|
|
ble _0804660A
|
|
ldr r2, _080465F0
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080465F4
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046600
|
|
ldr r1, _080465F8
|
|
ldr r2, [sp, #4]
|
|
adds r0, r2, r6
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #8
|
|
beq _080465E2
|
|
cmp r0, #0x20
|
|
bne _08046600
|
|
_080465E2:
|
|
ldr r1, _080465FC
|
|
movs r0, #2
|
|
b _08046604
|
|
.align 2, 0
|
|
_080465E8: .4byte 0x02023EB3
|
|
_080465EC: .4byte 0x02023EB0
|
|
_080465F0: .4byte 0x02023F20
|
|
_080465F4: .4byte 0x02022C90
|
|
_080465F8: .4byte 0x082ED220
|
|
_080465FC: .4byte 0x02023FD6
|
|
_08046600:
|
|
ldr r1, _08046624
|
|
movs r0, #0
|
|
_08046604:
|
|
strb r0, [r1, #6]
|
|
bl CheckWonderGuardAndLevitate
|
|
_0804660A:
|
|
movs r0, #7
|
|
adds r1, r6, #0
|
|
bl JumpIfMoveFailed
|
|
_08046612:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046624: .4byte 0x02023FD6
|
|
thumb_func_end atk01_accuracycheck
|
|
|
|
thumb_func_start atk02_attackstring
|
|
atk02_attackstring: @ 0x08046628
|
|
push {r4, r5, lr}
|
|
ldr r0, _08046668
|
|
ldr r5, [r0]
|
|
cmp r5, #0
|
|
bne _08046660
|
|
ldr r4, _0804666C
|
|
ldr r0, [r4]
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08046654
|
|
ldr r0, _08046670
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
bl PrepareStringBattle
|
|
ldr r0, [r4]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #3
|
|
orrs r0, r1
|
|
str r0, [r4]
|
|
_08046654:
|
|
ldr r0, _08046674
|
|
ldr r1, [r0]
|
|
adds r1, #1
|
|
str r1, [r0]
|
|
ldr r0, _08046678
|
|
strb r5, [r0, #7]
|
|
_08046660:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046668: .4byte 0x02023D0C
|
|
_0804666C: .4byte 0x02023F24
|
|
_08046670: .4byte 0x02023EAF
|
|
_08046674: .4byte 0x02023EB8
|
|
_08046678: .4byte 0x02023FD6
|
|
thumb_func_end atk02_attackstring
|
|
|
|
thumb_func_start atk03_ppreduce
|
|
atk03_ppreduce: @ 0x0804667C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
movs r6, #1
|
|
ldr r0, _080466CC
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08046694
|
|
b _0804682E
|
|
_08046694:
|
|
ldr r1, _080466D0
|
|
ldr r2, _080466D4
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r4, r0, #0x1f
|
|
mov sb, r2
|
|
cmp r4, #0
|
|
bne _08046736
|
|
ldr r2, _080466D8
|
|
ldr r0, _080466DC
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #0x20
|
|
beq _080466E6
|
|
cmp r0, #0x20
|
|
bgt _080466E0
|
|
cmp r0, #8
|
|
beq _080466FC
|
|
b _08046716
|
|
.align 2, 0
|
|
_080466CC: .4byte 0x02023D0C
|
|
_080466D0: .4byte 0x02024020
|
|
_080466D4: .4byte 0x02023EAF
|
|
_080466D8: .4byte 0x082ED220
|
|
_080466DC: .4byte 0x02023E8E
|
|
_080466E0:
|
|
cmp r0, #0x40
|
|
beq _080466FC
|
|
b _08046716
|
|
_080466E6:
|
|
str r4, [sp]
|
|
movs r0, #0x12
|
|
adds r1, r3, #0
|
|
movs r2, #0x2e
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r6, r0, #1
|
|
b _08046736
|
|
_080466FC:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x10
|
|
movs r2, #0x2e
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r6, r6, r0
|
|
b _08046736
|
|
_08046716:
|
|
ldr r1, _08046798
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
ldrb r7, [r1]
|
|
cmp r0, r7
|
|
beq _08046736
|
|
ldr r2, _0804679C
|
|
ldrb r1, [r1]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x2e
|
|
bne _08046736
|
|
adds r6, #1
|
|
_08046736:
|
|
ldr r0, _080467A0
|
|
ldr r4, [r0]
|
|
movs r0, #0xa0
|
|
lsls r0, r0, #4
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
bne _0804681C
|
|
ldr r2, _0804679C
|
|
ldr r3, _080467A4
|
|
ldr r1, _080467A8
|
|
ldrb r5, [r1]
|
|
movs r0, #0x58
|
|
mov r8, r0
|
|
mov r0, r8
|
|
muls r0, r5, r0
|
|
ldrb r7, [r3]
|
|
adds r0, r0, r7
|
|
movs r7, #0x24
|
|
adds r7, r7, r2
|
|
mov ip, r7
|
|
add r0, ip
|
|
ldrb r0, [r0]
|
|
mov sb, r1
|
|
mov sl, r2
|
|
adds r7, r3, #0
|
|
cmp r0, #0
|
|
beq _0804681C
|
|
ldr r0, _080467AC
|
|
lsls r1, r5, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #2]
|
|
movs r2, #8
|
|
orrs r0, r2
|
|
strb r0, [r1, #2]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r2, r8
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
ldrb r1, [r7]
|
|
adds r0, r0, r1
|
|
mov r1, ip
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, r6
|
|
ble _080467B0
|
|
subs r0, r0, r6
|
|
strb r0, [r2]
|
|
b _080467B2
|
|
.align 2, 0
|
|
_08046798: .4byte 0x02023EB0
|
|
_0804679C: .4byte 0x02023D28
|
|
_080467A0: .4byte 0x02023F24
|
|
_080467A4: .4byte 0x02023E8C
|
|
_080467A8: .4byte 0x02023EAF
|
|
_080467AC: .4byte 0x02023FE0
|
|
_080467B0:
|
|
strb r4, [r2]
|
|
_080467B2:
|
|
mov r2, sb
|
|
ldrb r3, [r2]
|
|
movs r4, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r4, r0
|
|
mov r1, sl
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804681C
|
|
ldr r1, _08046840
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #0x18]
|
|
lsrs r1, r1, #4
|
|
ldr r2, _08046844
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804681C
|
|
ldr r0, _08046848
|
|
strb r3, [r0]
|
|
ldrb r1, [r7]
|
|
adds r1, #9
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
muls r0, r4, r0
|
|
mov r2, sl
|
|
adds r2, #0x24
|
|
adds r0, r0, r2
|
|
ldrb r7, [r7]
|
|
adds r0, r0, r7
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r2, #0
|
|
movs r3, #1
|
|
bl BtlController_EmitSetMonData
|
|
mov r7, sb
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
_0804681C:
|
|
ldr r2, _0804684C
|
|
ldr r0, [r2]
|
|
ldr r1, _08046850
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08046854
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804682E:
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046840: .4byte 0x02023F60
|
|
_08046844: .4byte 0x082FACB4
|
|
_08046848: .4byte 0x02023D08
|
|
_0804684C: .4byte 0x02023F24
|
|
_08046850: .4byte 0xFFFFF7FF
|
|
_08046854: .4byte 0x02023EB8
|
|
thumb_func_end atk03_ppreduce
|
|
|
|
thumb_func_start atk04_critcalc
|
|
atk04_critcalc: @ 0x08046858
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r1, _0804687C
|
|
ldr r0, _08046880
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _08046888
|
|
ldr r1, _08046884
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r6, [r0, #7]
|
|
b _08046890
|
|
.align 2, 0
|
|
_0804687C: .4byte 0x02023D28
|
|
_08046880: .4byte 0x02023EAF
|
|
_08046884: .4byte 0x020240A8
|
|
_08046888:
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_08046890:
|
|
ldr r1, _0804691C
|
|
ldr r3, _08046920
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r4, _08046924
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
adds r7, r1, #0
|
|
muls r7, r0, r7
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r0, r7, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xd
|
|
ands r0, r1
|
|
rsbs r0, r0, #0
|
|
asrs r5, r0, #0x1f
|
|
movs r0, #2
|
|
ands r5, r0
|
|
ldr r2, _08046928
|
|
ldr r0, _0804692C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
mov ip, r3
|
|
cmp r1, #0x2b
|
|
bne _080468D0
|
|
adds r5, #1
|
|
_080468D0:
|
|
adds r0, r5, #0
|
|
cmp r1, #0x4b
|
|
bne _080468D8
|
|
adds r0, #1
|
|
_080468D8:
|
|
cmp r1, #0xc8
|
|
bne _080468DE
|
|
adds r0, #1
|
|
_080468DE:
|
|
adds r2, r0, #0
|
|
cmp r1, #0xd1
|
|
bne _080468E6
|
|
adds r2, #1
|
|
_080468E6:
|
|
movs r1, #0
|
|
cmp r6, #0x3f
|
|
bne _080468F6
|
|
adds r0, r7, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, #0x71
|
|
bne _080468F6
|
|
movs r1, #1
|
|
_080468F6:
|
|
lsls r5, r1, #1
|
|
movs r3, #0
|
|
cmp r6, #0x42
|
|
bne _08046910
|
|
mov r0, ip
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, #0x53
|
|
bne _08046910
|
|
movs r3, #1
|
|
_08046910:
|
|
lsls r1, r3, #1
|
|
cmp r6, #0x29
|
|
bne _08046930
|
|
adds r0, r5, #1
|
|
adds r0, r2, r0
|
|
b _08046932
|
|
.align 2, 0
|
|
_0804691C: .4byte 0x02023EB3
|
|
_08046920: .4byte 0x02023EAF
|
|
_08046924: .4byte 0x02023D28
|
|
_08046928: .4byte 0x082ED220
|
|
_0804692C: .4byte 0x02023E8E
|
|
_08046930:
|
|
adds r0, r2, r5
|
|
_08046932:
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
adds r5, r0, #0
|
|
cmp r5, #4
|
|
bls _08046940
|
|
movs r5, #4
|
|
_08046940:
|
|
ldr r0, _0804699C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r4
|
|
adds r0, #0x20
|
|
ldrb r4, [r0]
|
|
cmp r4, #4
|
|
beq _080469B0
|
|
cmp r4, #0x4b
|
|
beq _080469B0
|
|
ldr r1, _080469A0
|
|
mov r2, ip
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080469B0
|
|
ldr r0, _080469A4
|
|
ldr r0, [r0]
|
|
movs r1, #0x84
|
|
lsls r1, r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080469B0
|
|
bl Random
|
|
ldr r2, _080469A8
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r2
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldrh r1, [r1]
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _080469B0
|
|
ldr r1, _080469AC
|
|
movs r0, #2
|
|
b _080469B4
|
|
.align 2, 0
|
|
_0804699C: .4byte 0x02023EB0
|
|
_080469A0: .4byte 0x02023F50
|
|
_080469A4: .4byte 0x02022C90
|
|
_080469A8: .4byte 0x082ECAAC
|
|
_080469AC: .4byte 0x02023EB5
|
|
_080469B0:
|
|
ldr r1, _080469C4
|
|
movs r0, #1
|
|
_080469B4:
|
|
strb r0, [r1]
|
|
ldr r1, _080469C8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080469C4: .4byte 0x02023EB5
|
|
_080469C8: .4byte 0x02023EB8
|
|
thumb_func_end atk04_critcalc
|
|
|
|
thumb_func_start atk05_damagecalc
|
|
atk05_damagecalc: @ 0x080469CC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
ldr r4, _08046A84
|
|
ldr r5, _08046A88
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r3, [r1]
|
|
ldr r6, _08046A8C
|
|
ldrb r0, [r6]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
ldr r2, _08046A90
|
|
adds r0, r0, r2
|
|
ldrb r1, [r5]
|
|
muls r1, r4, r1
|
|
adds r1, r1, r2
|
|
ldr r7, _08046A94
|
|
ldrh r2, [r7]
|
|
ldr r4, _08046A98
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
ldr r4, _08046A9C
|
|
ldr r4, [r4]
|
|
ldrb r4, [r4, #0x13]
|
|
str r4, [sp, #4]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, #8]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, #0xc]
|
|
bl CalculateBaseDamage
|
|
ldr r4, _08046AA0
|
|
ldr r1, _08046AA4
|
|
ldrb r1, [r1]
|
|
muls r1, r0, r1
|
|
ldr r0, _08046AA8
|
|
ldrb r0, [r0, #0xe]
|
|
adds r3, r1, #0
|
|
muls r3, r0, r3
|
|
str r3, [r4]
|
|
ldr r1, _08046AAC
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046A50
|
|
ldr r2, _08046AB0
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0xd
|
|
bne _08046A50
|
|
lsls r0, r3, #1
|
|
str r0, [r4]
|
|
_08046A50:
|
|
ldr r1, _08046AB4
|
|
ldr r0, _08046A8C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
bge _08046A72
|
|
ldr r4, _08046AA0
|
|
ldr r1, [r4]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_08046A72:
|
|
ldr r1, _08046AB8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046A84: .4byte 0x02023F32
|
|
_08046A88: .4byte 0x02023EB0
|
|
_08046A8C: .4byte 0x02023EAF
|
|
_08046A90: .4byte 0x02023D28
|
|
_08046A94: .4byte 0x02023E8E
|
|
_08046A98: .4byte 0x020240A4
|
|
_08046A9C: .4byte 0x02024140
|
|
_08046AA0: .4byte 0x02023E94
|
|
_08046AA4: .4byte 0x02023EB5
|
|
_08046AA8: .4byte 0x02024118
|
|
_08046AAC: .4byte 0x02023F50
|
|
_08046AB0: .4byte 0x082ED220
|
|
_08046AB4: .4byte 0x02023FE0
|
|
_08046AB8: .4byte 0x02023EB8
|
|
thumb_func_end atk05_damagecalc
|
|
|
|
thumb_func_start AI_CalcDmg
|
|
AI_CalcDmg: @ 0x08046ABC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #0x10
|
|
adds r5, r1, #0
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
ldr r4, _08046B74
|
|
adds r0, r5, #0
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r3, [r1]
|
|
movs r1, #0x58
|
|
adds r0, r7, #0
|
|
muls r0, r1, r0
|
|
ldr r2, _08046B78
|
|
adds r0, r0, r2
|
|
muls r1, r5, r1
|
|
adds r1, r1, r2
|
|
ldr r2, _08046B7C
|
|
mov r8, r2
|
|
ldrh r2, [r2]
|
|
ldr r6, _08046B80
|
|
ldrh r4, [r6]
|
|
str r4, [sp]
|
|
ldr r4, _08046B84
|
|
ldr r4, [r4]
|
|
ldrb r4, [r4, #0x13]
|
|
str r4, [sp, #4]
|
|
str r7, [sp, #8]
|
|
str r5, [sp, #0xc]
|
|
bl CalculateBaseDamage
|
|
ldr r4, _08046B88
|
|
movs r1, #0
|
|
strh r1, [r6]
|
|
ldr r1, _08046B8C
|
|
ldrb r1, [r1]
|
|
muls r1, r0, r1
|
|
ldr r0, _08046B90
|
|
ldrb r0, [r0, #0xe]
|
|
adds r3, r1, #0
|
|
muls r3, r0, r3
|
|
str r3, [r4]
|
|
ldr r1, _08046B94
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046B4A
|
|
ldr r2, _08046B98
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0xd
|
|
bne _08046B4A
|
|
lsls r0, r3, #1
|
|
str r0, [r4]
|
|
_08046B4A:
|
|
ldr r0, _08046B9C
|
|
lsls r1, r7, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
bge _08046B68
|
|
ldr r4, _08046B88
|
|
ldr r1, [r4]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_08046B68:
|
|
add sp, #0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046B74: .4byte 0x02023F32
|
|
_08046B78: .4byte 0x02023D28
|
|
_08046B7C: .4byte 0x02023E8E
|
|
_08046B80: .4byte 0x020240A4
|
|
_08046B84: .4byte 0x02024140
|
|
_08046B88: .4byte 0x02023E94
|
|
_08046B8C: .4byte 0x02023EB5
|
|
_08046B90: .4byte 0x02024118
|
|
_08046B94: .4byte 0x02023F50
|
|
_08046B98: .4byte 0x082ED220
|
|
_08046B9C: .4byte 0x02023FE0
|
|
thumb_func_end AI_CalcDmg
|
|
|
|
thumb_func_start ModulateDmgByType
|
|
ModulateDmgByType: @ 0x08046BA0
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r5, _08046BD0
|
|
ldr r0, [r5]
|
|
muls r0, r4, r0
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _08046BC0
|
|
cmp r4, #0
|
|
beq _08046BC0
|
|
movs r0, #1
|
|
str r0, [r5]
|
|
_08046BC0:
|
|
cmp r4, #5
|
|
beq _08046BF0
|
|
cmp r4, #5
|
|
bgt _08046BD4
|
|
cmp r4, #0
|
|
beq _08046BDA
|
|
b _08046C72
|
|
.align 2, 0
|
|
_08046BD0: .4byte 0x02023E94
|
|
_08046BD4:
|
|
cmp r4, #0x14
|
|
beq _08046C30
|
|
b _08046C72
|
|
_08046BDA:
|
|
ldr r2, _08046BEC
|
|
ldrb r0, [r2]
|
|
movs r1, #8
|
|
orrs r0, r1
|
|
movs r1, #0xfb
|
|
ands r0, r1
|
|
movs r1, #0xfd
|
|
ands r0, r1
|
|
b _08046C70
|
|
.align 2, 0
|
|
_08046BEC: .4byte 0x02023F20
|
|
_08046BF0:
|
|
ldr r2, _08046C20
|
|
ldr r0, _08046C24
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _08046C72
|
|
ldr r2, _08046C28
|
|
ldrb r1, [r2]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08046C72
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046C2C
|
|
movs r0, #0xfd
|
|
ands r0, r1
|
|
b _08046C70
|
|
.align 2, 0
|
|
_08046C20: .4byte 0x082ED220
|
|
_08046C24: .4byte 0x02023E8E
|
|
_08046C28: .4byte 0x02023F20
|
|
_08046C2C:
|
|
movs r0, #4
|
|
b _08046C6E
|
|
_08046C30:
|
|
ldr r2, _08046C60
|
|
ldr r0, _08046C64
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _08046C72
|
|
ldr r2, _08046C68
|
|
ldrb r1, [r2]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08046C72
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046C6C
|
|
movs r0, #0xfb
|
|
ands r0, r1
|
|
b _08046C70
|
|
.align 2, 0
|
|
_08046C60: .4byte 0x082ED220
|
|
_08046C64: .4byte 0x02023E8E
|
|
_08046C68: .4byte 0x02023F20
|
|
_08046C6C:
|
|
movs r0, #2
|
|
_08046C6E:
|
|
orrs r0, r1
|
|
_08046C70:
|
|
strb r0, [r2]
|
|
_08046C72:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ModulateDmgByType
|
|
|
|
thumb_func_start atk06_typecalc
|
|
atk06_typecalc: @ 0x08046C78
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #8
|
|
movs r3, #0
|
|
ldr r1, _08046CA0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0xa5
|
|
bne _08046C8C
|
|
b _08046EA0
|
|
_08046C8C:
|
|
ldr r0, _08046CA4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #0
|
|
beq _08046CA8
|
|
movs r1, #0x3f
|
|
mov r8, r1
|
|
ands r1, r0
|
|
mov r8, r1
|
|
b _08046CB8
|
|
.align 2, 0
|
|
_08046CA0: .4byte 0x02023E8E
|
|
_08046CA4: .4byte 0x02024140
|
|
_08046CA8:
|
|
ldr r2, _08046D40
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
mov r8, r0
|
|
_08046CB8:
|
|
ldr r2, _08046D44
|
|
ldr r0, _08046D48
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r0, r2
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
adds r5, r2, #0
|
|
cmp r0, r8
|
|
beq _08046CDA
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _08046CF0
|
|
_08046CDA:
|
|
ldr r4, _08046D4C
|
|
ldr r1, [r4]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
str r0, [r4]
|
|
movs r1, #0xa
|
|
str r3, [sp, #4]
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
ldr r3, [sp, #4]
|
|
_08046CF0:
|
|
ldr r2, _08046D50
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
adds r4, r2, #0
|
|
cmp r0, #0x1a
|
|
bne _08046D68
|
|
mov r1, r8
|
|
cmp r1, #4
|
|
bne _08046D68
|
|
ldr r3, _08046D54
|
|
strb r0, [r3]
|
|
ldr r2, _08046D58
|
|
ldrb r0, [r2]
|
|
movs r1, #9
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08046D5C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _08046D60
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r2, [r0]
|
|
ldr r0, _08046D64
|
|
mov r1, r8
|
|
strb r1, [r0, #6]
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r3]
|
|
bl RecordAbilityBattle
|
|
b _08046E04
|
|
.align 2, 0
|
|
_08046D40: .4byte 0x082ED220
|
|
_08046D44: .4byte 0x02023D28
|
|
_08046D48: .4byte 0x02023EAF
|
|
_08046D4C: .4byte 0x02023E94
|
|
_08046D50: .4byte 0x02023EB0
|
|
_08046D54: .4byte 0x02023EAE
|
|
_08046D58: .4byte 0x02023F20
|
|
_08046D5C: .4byte 0x02023EF4
|
|
_08046D60: .4byte 0x02023EFC
|
|
_08046D64: .4byte 0x02023FD6
|
|
_08046D68:
|
|
ldr r1, _08046D74
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
b _08046DE4
|
|
.align 2, 0
|
|
_08046D74: .4byte 0x082EBB38
|
|
_08046D78:
|
|
adds r3, #3
|
|
b _08046DE0
|
|
_08046D7C:
|
|
ldr r5, _08046EB4
|
|
adds r0, r3, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _08046DD8
|
|
adds r1, r3, #1
|
|
adds r1, r1, r5
|
|
ldr r2, _08046EB8
|
|
ldr r7, _08046EBC
|
|
ldrb r0, [r7]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x21
|
|
ldrb r4, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _08046DB2
|
|
adds r0, r3, #2
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl ModulateDmgByType
|
|
ldr r3, [sp, #4]
|
|
ldr r2, [sp]
|
|
_08046DB2:
|
|
ldrb r0, [r7]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r2
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r1, [r1]
|
|
cmp r4, r1
|
|
bne _08046DD8
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _08046DD8
|
|
adds r0, r3, #2
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
str r3, [sp, #4]
|
|
bl ModulateDmgByType
|
|
ldr r3, [sp, #4]
|
|
_08046DD8:
|
|
adds r3, #3
|
|
ldr r5, _08046EB8
|
|
ldr r4, _08046EBC
|
|
ldr r2, _08046EB4
|
|
_08046DE0:
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
_08046DE4:
|
|
cmp r0, #0xff
|
|
beq _08046E04
|
|
cmp r0, #0xfe
|
|
bne _08046D7C
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r5, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046D78
|
|
_08046E04:
|
|
ldr r2, _08046EB8
|
|
ldr r5, _08046EBC
|
|
ldrb r1, [r5]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r6, [r0]
|
|
cmp r6, #0x19
|
|
bne _08046E82
|
|
ldr r0, _08046EC0
|
|
ldrb r0, [r0]
|
|
ldr r7, _08046EC4
|
|
ldrh r1, [r7]
|
|
bl AttacksThisTurn
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #2
|
|
bne _08046E82
|
|
ldr r1, _08046EC8
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _08046E40
|
|
movs r0, #6
|
|
ands r0, r4
|
|
cmp r0, #6
|
|
bne _08046E82
|
|
_08046E40:
|
|
ldr r2, _08046ECC
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _08046E82
|
|
ldr r3, _08046ED0
|
|
strb r6, [r3]
|
|
movs r0, #1
|
|
orrs r0, r4
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r1, _08046ED4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _08046ED8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r2, [r0]
|
|
ldr r1, _08046EDC
|
|
movs r0, #3
|
|
strb r0, [r1, #6]
|
|
ldrb r0, [r5]
|
|
ldrb r1, [r3]
|
|
bl RecordAbilityBattle
|
|
_08046E82:
|
|
ldr r0, _08046EC8
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08046EA0
|
|
ldr r2, _08046EE0
|
|
ldr r0, _08046EC0
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1, #1]
|
|
movs r2, #2
|
|
orrs r0, r2
|
|
strb r0, [r1, #1]
|
|
_08046EA0:
|
|
ldr r1, _08046EE4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08046EB4: .4byte 0x082EBB38
|
|
_08046EB8: .4byte 0x02023D28
|
|
_08046EBC: .4byte 0x02023EB0
|
|
_08046EC0: .4byte 0x02023EAF
|
|
_08046EC4: .4byte 0x02023E8E
|
|
_08046EC8: .4byte 0x02023F20
|
|
_08046ECC: .4byte 0x082ED220
|
|
_08046ED0: .4byte 0x02023EAE
|
|
_08046ED4: .4byte 0x02023EF4
|
|
_08046ED8: .4byte 0x02023EFC
|
|
_08046EDC: .4byte 0x02023FD6
|
|
_08046EE0: .4byte 0x02023FE0
|
|
_08046EE4: .4byte 0x02023EB8
|
|
thumb_func_end atk06_typecalc
|
|
|
|
thumb_func_start CheckWonderGuardAndLevitate
|
|
CheckWonderGuardAndLevitate: @ 0x08046EE8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r6, #0
|
|
movs r5, #0
|
|
ldr r0, _08046F28
|
|
ldrh r1, [r0]
|
|
mov sb, r0
|
|
cmp r1, #0xa5
|
|
bne _08046F00
|
|
b _08047148
|
|
_08046F00:
|
|
ldr r2, _08046F2C
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
bne _08046F12
|
|
b _08047148
|
|
_08046F12:
|
|
ldr r0, _08046F30
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #0
|
|
beq _08046F34
|
|
movs r1, #0x3f
|
|
mov ip, r1
|
|
mov r2, ip
|
|
ands r2, r0
|
|
mov ip, r2
|
|
b _08046F38
|
|
.align 2, 0
|
|
_08046F28: .4byte 0x02023E8E
|
|
_08046F2C: .4byte 0x082ED220
|
|
_08046F30: .4byte 0x02024140
|
|
_08046F34:
|
|
ldrb r1, [r1, #2]
|
|
mov ip, r1
|
|
_08046F38:
|
|
ldr r2, _08046F6C
|
|
ldr r3, _08046F70
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
adds r7, r2, #0
|
|
mov r8, r3
|
|
cmp r1, #0x1a
|
|
bne _08046F7C
|
|
mov r0, ip
|
|
cmp r0, #4
|
|
bne _08046F7C
|
|
ldr r0, _08046F74
|
|
strb r1, [r0]
|
|
ldr r0, _08046F78
|
|
mov r1, ip
|
|
strb r1, [r0, #6]
|
|
ldrb r0, [r3]
|
|
movs r1, #0x1a
|
|
bl RecordAbilityBattle
|
|
b _08047148
|
|
.align 2, 0
|
|
_08046F6C: .4byte 0x02023D28
|
|
_08046F70: .4byte 0x02023EB0
|
|
_08046F74: .4byte 0x02023EAE
|
|
_08046F78: .4byte 0x02023FD6
|
|
_08046F7C:
|
|
ldr r1, _08046F88
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r4, r1, #0
|
|
b _080470CE
|
|
.align 2, 0
|
|
_08046F88: .4byte 0x082EBB38
|
|
_08046F8C:
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, ip
|
|
beq _08046F96
|
|
b _080470C8
|
|
_08046F96:
|
|
adds r2, r5, #1
|
|
adds r3, r2, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x21
|
|
ldrb r1, [r3]
|
|
adds r3, r2, #0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08046FD6
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08046FD6
|
|
ldr r2, _08047154
|
|
ldrb r0, [r2]
|
|
movs r1, #8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08047158
|
|
ldr r0, _0804715C
|
|
ldrb r2, [r0]
|
|
lsls r2, r2, #4
|
|
adds r2, r2, r1
|
|
ldrb r0, [r2, #1]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
_08046FD6:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804701C
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _0804701C
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804701C
|
|
ldr r2, _08047154
|
|
ldrb r0, [r2]
|
|
movs r1, #8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08047158
|
|
ldr r0, _0804715C
|
|
ldrb r2, [r0]
|
|
lsls r2, r2, #4
|
|
adds r2, r2, r1
|
|
ldrb r0, [r2, #1]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
_0804701C:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x21
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08047040
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x14
|
|
bne _08047040
|
|
movs r0, #1
|
|
orrs r6, r0
|
|
_08047040:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804706E
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _0804706E
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x14
|
|
bne _0804706E
|
|
movs r0, #1
|
|
orrs r6, r0
|
|
_0804706E:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x21
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08047096
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bne _08047096
|
|
movs r0, #2
|
|
orrs r6, r0
|
|
lsls r0, r6, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_08047096:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _080470C8
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _080470C8
|
|
adds r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bne _080470C8
|
|
movs r0, #2
|
|
orrs r6, r0
|
|
lsls r0, r6, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_080470C8:
|
|
adds r5, #3
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
_080470CE:
|
|
cmp r0, #0xff
|
|
beq _080470F2
|
|
cmp r0, #0xfe
|
|
beq _080470D8
|
|
b _08046F8C
|
|
_080470D8:
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r7, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080470C8
|
|
_080470F2:
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x20
|
|
ldrb r4, [r0]
|
|
cmp r4, #0x19
|
|
bne _08047148
|
|
ldr r0, _0804715C
|
|
ldrb r0, [r0]
|
|
mov r2, sb
|
|
ldrh r1, [r2]
|
|
bl AttacksThisTurn
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #2
|
|
bne _08047148
|
|
movs r0, #3
|
|
ands r6, r0
|
|
cmp r6, #1
|
|
beq _08047148
|
|
ldr r2, _08047160
|
|
mov r0, sb
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _08047148
|
|
ldr r0, _08047164
|
|
strb r4, [r0]
|
|
ldr r1, _08047168
|
|
movs r0, #3
|
|
strb r0, [r1, #6]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, #0x19
|
|
bl RecordAbilityBattle
|
|
_08047148:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047154: .4byte 0x02023F20
|
|
_08047158: .4byte 0x02023FE0
|
|
_0804715C: .4byte 0x02023EAF
|
|
_08047160: .4byte 0x082ED220
|
|
_08047164: .4byte 0x02023EAE
|
|
_08047168: .4byte 0x02023FD6
|
|
thumb_func_end CheckWonderGuardAndLevitate
|
|
|
|
thumb_func_start ModulateDmgByType2
|
|
ModulateDmgByType2: @ 0x0804716C
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r6, r2, #0
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
lsls r1, r1, #0x10
|
|
lsrs r5, r1, #0x10
|
|
ldr r7, _080471A0
|
|
ldr r0, [r7]
|
|
muls r0, r4, r0
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r7]
|
|
cmp r0, #0
|
|
bne _08047192
|
|
cmp r4, #0
|
|
beq _08047192
|
|
movs r0, #1
|
|
str r0, [r7]
|
|
_08047192:
|
|
cmp r4, #5
|
|
beq _080471BA
|
|
cmp r4, #5
|
|
bgt _080471A4
|
|
cmp r4, #0
|
|
beq _080471AA
|
|
b _0804721E
|
|
.align 2, 0
|
|
_080471A0: .4byte 0x02023E94
|
|
_080471A4:
|
|
cmp r4, #0x14
|
|
beq _080471EC
|
|
b _0804721E
|
|
_080471AA:
|
|
ldrb r0, [r6]
|
|
movs r1, #8
|
|
orrs r0, r1
|
|
movs r1, #0xfb
|
|
ands r0, r1
|
|
movs r1, #0xfd
|
|
ands r0, r1
|
|
b _0804721C
|
|
_080471BA:
|
|
ldr r0, _080471E4
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
beq _0804721E
|
|
ldrb r1, [r6]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804721E
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080471E8
|
|
movs r0, #0xfd
|
|
ands r0, r1
|
|
b _0804721C
|
|
.align 2, 0
|
|
_080471E4: .4byte 0x082ED220
|
|
_080471E8:
|
|
movs r0, #4
|
|
b _0804721A
|
|
_080471EC:
|
|
ldr r0, _08047214
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
beq _0804721E
|
|
ldrb r1, [r6]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804721E
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047218
|
|
movs r0, #0xfb
|
|
ands r0, r1
|
|
b _0804721C
|
|
.align 2, 0
|
|
_08047214: .4byte 0x082ED220
|
|
_08047218:
|
|
movs r0, #2
|
|
_0804721A:
|
|
orrs r0, r1
|
|
_0804721C:
|
|
strb r0, [r6]
|
|
_0804721E:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ModulateDmgByType2
|
|
|
|
thumb_func_start TypeCalc
|
|
TypeCalc: @ 0x08047224
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sl, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
str r1, [sp, #4]
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
mov sb, r2
|
|
movs r0, #0
|
|
mov r8, r0
|
|
mov r0, sp
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
mov r2, sl
|
|
cmp r2, #0xa5
|
|
bne _08047256
|
|
movs r0, #0
|
|
b _080473DE
|
|
_08047256:
|
|
ldr r1, _080472C4
|
|
mov r3, sl
|
|
lsls r2, r3, #1
|
|
adds r0, r2, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #2]
|
|
str r0, [sp, #8]
|
|
ldr r1, _080472C8
|
|
movs r0, #0x58
|
|
ldr r3, [sp, #4]
|
|
muls r0, r3, r0
|
|
adds r3, r0, r1
|
|
adds r0, r3, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
str r2, [sp, #0xc]
|
|
adds r5, r1, #0
|
|
ldr r1, [sp, #8]
|
|
cmp r0, r1
|
|
beq _0804728A
|
|
adds r0, r3, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
bne _0804729C
|
|
_0804728A:
|
|
ldr r4, _080472CC
|
|
ldr r1, [r4]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
str r0, [r4]
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0804729C:
|
|
movs r0, #0x58
|
|
mov r2, sb
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1a
|
|
bne _080472D0
|
|
ldr r3, [sp, #8]
|
|
cmp r3, #4
|
|
bne _080472D0
|
|
movs r1, #9
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
orrs r0, r1
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
b _08047380
|
|
.align 2, 0
|
|
_080472C4: .4byte 0x082ED220
|
|
_080472C8: .4byte 0x02023D28
|
|
_080472CC: .4byte 0x02023E94
|
|
_080472D0:
|
|
ldr r1, _080472EC
|
|
mov r2, r8
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
cmp r0, #0xff
|
|
beq _08047380
|
|
cmp r0, #0xfe
|
|
bne _080472F6
|
|
movs r0, #0x58
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
b _0804736E
|
|
.align 2, 0
|
|
_080472EC: .4byte 0x082EBB38
|
|
_080472F0:
|
|
movs r0, #3
|
|
add r8, r0
|
|
b _08047358
|
|
_080472F6:
|
|
ldr r7, _080473F0
|
|
mov r1, r8
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, #8]
|
|
cmp r0, r2
|
|
bne _08047350
|
|
adds r1, #1
|
|
adds r1, r1, r7
|
|
ldr r2, _080473F4
|
|
movs r0, #0x58
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r5, r0, r2
|
|
adds r6, r5, #0
|
|
adds r6, #0x21
|
|
ldrb r4, [r1]
|
|
ldrb r0, [r6]
|
|
cmp r4, r0
|
|
bne _08047330
|
|
mov r0, r8
|
|
adds r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r0, [r0]
|
|
mov r1, sl
|
|
mov r2, sp
|
|
bl ModulateDmgByType2
|
|
_08047330:
|
|
adds r0, r5, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _08047350
|
|
ldrb r0, [r6]
|
|
cmp r0, r4
|
|
beq _08047350
|
|
mov r0, r8
|
|
adds r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r0, [r0]
|
|
mov r1, sl
|
|
mov r2, sp
|
|
bl ModulateDmgByType2
|
|
_08047350:
|
|
movs r1, #3
|
|
add r8, r1
|
|
ldr r5, _080473F4
|
|
ldr r2, _080473F0
|
|
_08047358:
|
|
mov r3, r8
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
beq _08047380
|
|
cmp r0, #0xfe
|
|
bne _080472F6
|
|
movs r0, #0x58
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
_0804736E:
|
|
adds r1, r5, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080472F0
|
|
_08047380:
|
|
movs r0, #0x58
|
|
mov r2, sb
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x19
|
|
bne _080473DA
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080473DA
|
|
ldr r0, [sp, #4]
|
|
mov r1, sl
|
|
bl AttacksThisTurn
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #2
|
|
bne _080473DA
|
|
mov r0, sp
|
|
ldrb r3, [r0]
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _080473C2
|
|
movs r0, #6
|
|
ands r0, r3
|
|
cmp r0, #6
|
|
bne _080473DA
|
|
_080473C2:
|
|
ldr r0, _080473F8
|
|
ldr r1, [sp, #0xc]
|
|
add r1, sl
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
beq _080473DA
|
|
mov r0, sp
|
|
movs r1, #1
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
_080473DA:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_080473DE:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080473F0: .4byte 0x082EBB38
|
|
_080473F4: .4byte 0x02023D28
|
|
_080473F8: .4byte 0x082ED220
|
|
thumb_func_end TypeCalc
|
|
|
|
thumb_func_start AI_TypeCalc
|
|
AI_TypeCalc: @ 0x080473FC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
str r2, [sp, #4]
|
|
movs r7, #0
|
|
mov r0, sp
|
|
strb r7, [r0]
|
|
ldr r2, _08047438
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #6]
|
|
mov sb, r1
|
|
ldrb r0, [r0, #7]
|
|
mov r8, r0
|
|
cmp r6, #0xa5
|
|
bne _0804743C
|
|
movs r0, #0
|
|
b _080474E0
|
|
.align 2, 0
|
|
_08047438: .4byte 0x082F0D54
|
|
_0804743C:
|
|
ldr r2, _08047460
|
|
lsls r1, r6, #1
|
|
adds r0, r1, r6
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
mov sl, r0
|
|
str r1, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0x1a
|
|
bne _08047464
|
|
cmp r0, #4
|
|
bne _08047464
|
|
movs r1, #9
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
b _080474AA
|
|
.align 2, 0
|
|
_08047460: .4byte 0x082ED220
|
|
_08047464:
|
|
ldr r0, _080474F0
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xff
|
|
beq _080474AA
|
|
adds r4, r1, #0
|
|
_08047470:
|
|
ldrb r0, [r4]
|
|
cmp r0, #0xfe
|
|
beq _0804749C
|
|
cmp r0, sl
|
|
bne _0804749C
|
|
ldrb r5, [r4, #1]
|
|
cmp r5, sb
|
|
bne _0804748A
|
|
ldrb r0, [r4, #2]
|
|
adds r1, r6, #0
|
|
mov r2, sp
|
|
bl ModulateDmgByType2
|
|
_0804748A:
|
|
cmp r5, r8
|
|
bne _0804749C
|
|
cmp sb, r8
|
|
beq _0804749C
|
|
ldrb r0, [r4, #2]
|
|
adds r1, r6, #0
|
|
mov r2, sp
|
|
bl ModulateDmgByType2
|
|
_0804749C:
|
|
adds r4, #3
|
|
adds r7, #3
|
|
ldr r1, _080474F0
|
|
adds r0, r7, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
bne _08047470
|
|
_080474AA:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0x19
|
|
bne _080474DC
|
|
mov r0, sp
|
|
ldrb r2, [r0]
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080474C4
|
|
movs r0, #6
|
|
ands r0, r2
|
|
cmp r0, #6
|
|
bne _080474DC
|
|
_080474C4:
|
|
ldr r0, _080474F4
|
|
ldr r3, [sp, #8]
|
|
adds r1, r3, r6
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
beq _080474DC
|
|
mov r0, sp
|
|
movs r1, #8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080474DC:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_080474E0:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080474F0: .4byte 0x082EBB38
|
|
_080474F4: .4byte 0x082ED220
|
|
thumb_func_end AI_TypeCalc
|
|
|
|
thumb_func_start Unused_ApplyRandomDmgMultiplier
|
|
Unused_ApplyRandomDmgMultiplier: @ 0x080474F8
|
|
push {r4, lr}
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
movs r1, #0x64
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r4, _08047530
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0804752A
|
|
muls r0, r1, r0
|
|
str r0, [r4]
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bne _0804752A
|
|
movs r0, #1
|
|
str r0, [r4]
|
|
_0804752A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047530: .4byte 0x02023E94
|
|
thumb_func_end Unused_ApplyRandomDmgMultiplier
|
|
|
|
thumb_func_start atk07_adjustnormaldamage
|
|
atk07_adjustnormaldamage: @ 0x08047534
|
|
push {r4, r5, r6, r7, lr}
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
movs r1, #0x64
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r4, _0804758C
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _08047566
|
|
muls r0, r1, r0
|
|
str r0, [r4]
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bne _08047566
|
|
movs r0, #1
|
|
str r0, [r4]
|
|
_08047566:
|
|
ldr r7, _08047590
|
|
ldr r6, _08047594
|
|
ldrb r2, [r6]
|
|
movs r5, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r5, r0
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _0804759C
|
|
ldr r1, _08047598
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #7]
|
|
ldrb r6, [r0, #0x1a]
|
|
b _080475B6
|
|
.align 2, 0
|
|
_0804758C: .4byte 0x02023E94
|
|
_08047590: .4byte 0x02023D28
|
|
_08047594: .4byte 0x02023EB0
|
|
_08047598: .4byte 0x020240A8
|
|
_0804759C:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2e]
|
|
bl sub_080D6D1C
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_080475B6:
|
|
ldr r1, _08047678
|
|
ldr r5, _0804767C
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, #0x27
|
|
bne _080475F4
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r6
|
|
bhs _080475F4
|
|
ldrb r0, [r5]
|
|
movs r1, #0x27
|
|
bl RecordItemEffectBattle
|
|
ldr r2, _08047680
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080475F4:
|
|
ldr r2, _08047684
|
|
ldr r3, _0804767C
|
|
ldrb r4, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r1, r2, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
ands r1, r0
|
|
adds r5, r2, #0
|
|
cmp r1, #0
|
|
bne _080476C4
|
|
ldr r2, _08047688
|
|
ldr r0, _0804768C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x65
|
|
beq _08047646
|
|
ldr r0, _08047690
|
|
lsls r1, r4, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
blt _08047646
|
|
ldr r0, _08047680
|
|
lsls r1, r4, #2
|
|
adds r1, r1, r4
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _080476C4
|
|
_08047646:
|
|
ldrb r0, [r3]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0, #0x28]
|
|
ldr r2, _08047694
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _080476C4
|
|
subs r0, r1, #1
|
|
str r0, [r2]
|
|
ldr r1, _08047690
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
bge _0804769C
|
|
ldr r0, _08047698
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _080476C4
|
|
.align 2, 0
|
|
_08047678: .4byte 0x02023EB3
|
|
_0804767C: .4byte 0x02023EB0
|
|
_08047680: .4byte 0x02024020
|
|
_08047684: .4byte 0x02023D28
|
|
_08047688: .4byte 0x082ED220
|
|
_0804768C: .4byte 0x02023E8E
|
|
_08047690: .4byte 0x02023FE0
|
|
_08047694: .4byte 0x02023E94
|
|
_08047698: .4byte 0x02023F20
|
|
_0804769C:
|
|
ldr r0, _080476D4
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _080476C4
|
|
ldr r2, _080476D8
|
|
ldrb r0, [r2]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080476DC
|
|
adds r0, r3, #0
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
_080476C4:
|
|
ldr r1, _080476E0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080476D4: .4byte 0x02024020
|
|
_080476D8: .4byte 0x02023F20
|
|
_080476DC: .4byte 0x02023EAC
|
|
_080476E0: .4byte 0x02023EB8
|
|
thumb_func_end atk07_adjustnormaldamage
|
|
|
|
thumb_func_start atk08_adjustnormaldamage2
|
|
atk08_adjustnormaldamage2: @ 0x080476E4
|
|
push {r4, r5, r6, r7, lr}
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
movs r1, #0x64
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
ldr r4, _0804773C
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _08047716
|
|
muls r0, r1, r0
|
|
str r0, [r4]
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bne _08047716
|
|
movs r0, #1
|
|
str r0, [r4]
|
|
_08047716:
|
|
ldr r7, _08047740
|
|
ldr r6, _08047744
|
|
ldrb r2, [r6]
|
|
movs r5, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r5, r0
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _0804774C
|
|
ldr r1, _08047748
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #7]
|
|
ldrb r6, [r0, #0x1a]
|
|
b _08047766
|
|
.align 2, 0
|
|
_0804773C: .4byte 0x02023E94
|
|
_08047740: .4byte 0x02023D28
|
|
_08047744: .4byte 0x02023EB0
|
|
_08047748: .4byte 0x020240A8
|
|
_0804774C:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2e]
|
|
bl sub_080D6D1C
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_08047766:
|
|
ldr r1, _0804780C
|
|
ldr r5, _08047810
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, #0x27
|
|
bne _080477A4
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r6
|
|
bhs _080477A4
|
|
ldrb r0, [r5]
|
|
movs r1, #0x27
|
|
bl RecordItemEffectBattle
|
|
ldr r2, _08047814
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080477A4:
|
|
ldr r4, _08047818
|
|
ldr r6, _08047810
|
|
ldrb r2, [r6]
|
|
movs r7, #0x58
|
|
adds r3, r2, #0
|
|
muls r3, r7, r3
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047850
|
|
ldr r5, _0804781C
|
|
lsls r0, r2, #4
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
blt _080477E2
|
|
ldr r0, _08047814
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _08047850
|
|
_080477E2:
|
|
adds r0, r3, r4
|
|
ldrh r1, [r0, #0x28]
|
|
ldr r2, _08047820
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _08047850
|
|
subs r0, r1, #1
|
|
str r0, [r2]
|
|
ldrb r3, [r6]
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
bge _08047828
|
|
ldr r0, _08047824
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08047850
|
|
.align 2, 0
|
|
_0804780C: .4byte 0x02023EB3
|
|
_08047810: .4byte 0x02023EB0
|
|
_08047814: .4byte 0x02024020
|
|
_08047818: .4byte 0x02023D28
|
|
_0804781C: .4byte 0x02023FE0
|
|
_08047820: .4byte 0x02023E94
|
|
_08047824: .4byte 0x02023F20
|
|
_08047828:
|
|
ldr r0, _08047860
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _08047850
|
|
ldr r2, _08047864
|
|
ldrb r0, [r2]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08047868
|
|
adds r0, r3, #0
|
|
muls r0, r7, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
_08047850:
|
|
ldr r1, _0804786C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047860: .4byte 0x02024020
|
|
_08047864: .4byte 0x02023F20
|
|
_08047868: .4byte 0x02023EAC
|
|
_0804786C: .4byte 0x02023EB8
|
|
thumb_func_end atk08_adjustnormaldamage2
|
|
|
|
thumb_func_start atk09_attackanimation
|
|
atk09_attackanimation: @ 0x08047870
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
ldr r0, _080478B4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804787E
|
|
b _080479F6
|
|
_0804787E:
|
|
ldr r0, _080478B8
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
ldr r5, _080478BC
|
|
cmp r0, #0
|
|
beq _080478CC
|
|
ldrh r0, [r5]
|
|
cmp r0, #0x90
|
|
beq _080478CC
|
|
cmp r0, #0xa4
|
|
beq _080478CC
|
|
ldr r4, _080478C0
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080478C4
|
|
str r0, [r4]
|
|
ldr r1, _080478C8
|
|
ldrb r0, [r1, #0x18]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x18]
|
|
ldrb r0, [r1, #0x19]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x19]
|
|
b _080479F6
|
|
.align 2, 0
|
|
_080478B4: .4byte 0x02023D0C
|
|
_080478B8: .4byte 0x02023F24
|
|
_080478BC: .4byte 0x02023E8E
|
|
_080478C0: .4byte 0x02023EB8
|
|
_080478C4: .4byte 0x08289141
|
|
_080478C8: .4byte 0x02024118
|
|
_080478CC:
|
|
ldr r2, _08047938
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #6]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080478F2
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080478F2
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080478FA
|
|
_080478F2:
|
|
ldr r0, _0804793C
|
|
ldrb r0, [r0, #0x19]
|
|
cmp r0, #0
|
|
bne _080479C8
|
|
_080478FA:
|
|
ldr r0, _08047940
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080479E8
|
|
ldr r1, _08047944
|
|
ldr r3, _08047948
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, _0804794C
|
|
ldr r0, _08047950
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r4, r1, #0
|
|
muls r4, r0, r4
|
|
adds r0, r2, #0
|
|
adds r0, #0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
ands r1, r0
|
|
adds r7, r3, #0
|
|
mov ip, r2
|
|
cmp r1, #0
|
|
beq _08047958
|
|
ldr r0, _08047954
|
|
ldrb r6, [r0]
|
|
b _08047982
|
|
.align 2, 0
|
|
_08047938: .4byte 0x082ED220
|
|
_0804793C: .4byte 0x02024118
|
|
_08047940: .4byte 0x02023F20
|
|
_08047944: .4byte 0x02023D08
|
|
_08047948: .4byte 0x02023EAF
|
|
_0804794C: .4byte 0x02023D28
|
|
_08047950: .4byte 0x02023EB0
|
|
_08047954: .4byte 0x02023EB6
|
|
_08047958:
|
|
ldr r3, _08047978
|
|
ldrb r0, [r3]
|
|
cmp r0, #1
|
|
bls _08047980
|
|
mov r1, ip
|
|
adds r0, r4, r1
|
|
ldrh r2, [r0, #0x28]
|
|
ldr r0, _0804797C
|
|
ldr r1, [r0]
|
|
movs r6, #1
|
|
adds r4, r0, #0
|
|
cmp r2, r1
|
|
ble _08047984
|
|
ldrb r6, [r3]
|
|
b _08047984
|
|
.align 2, 0
|
|
_08047978: .4byte 0x02023EB6
|
|
_0804797C: .4byte 0x02023E94
|
|
_08047980:
|
|
ldrb r6, [r3]
|
|
_08047982:
|
|
ldr r4, _080479D4
|
|
_08047984:
|
|
ldrh r1, [r5]
|
|
ldr r5, _080479D8
|
|
ldrb r2, [r5, #0x18]
|
|
ldr r0, _080479DC
|
|
ldrh r3, [r0]
|
|
ldr r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r4, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
add r0, ip
|
|
adds r0, #0x2b
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #4]
|
|
ldrb r4, [r7]
|
|
lsls r0, r4, #3
|
|
subs r0, r0, r4
|
|
lsls r0, r0, #2
|
|
ldr r4, _080479E0
|
|
adds r0, r0, r4
|
|
str r0, [sp, #8]
|
|
str r6, [sp, #0xc]
|
|
movs r0, #0
|
|
bl BtlController_EmitMoveAnimation
|
|
ldrb r0, [r5, #0x18]
|
|
adds r0, #1
|
|
strb r0, [r5, #0x18]
|
|
ldrb r0, [r5, #0x19]
|
|
adds r0, #1
|
|
strb r0, [r5, #0x19]
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
_080479C8:
|
|
ldr r1, _080479E4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
b _080479F6
|
|
.align 2, 0
|
|
_080479D4: .4byte 0x02023E94
|
|
_080479D8: .4byte 0x02024118
|
|
_080479DC: .4byte 0x02024184
|
|
_080479E0: .4byte 0x02023F60
|
|
_080479E4: .4byte 0x02023EB8
|
|
_080479E8:
|
|
ldr r4, _08047A00
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _08047A04
|
|
str r0, [r4]
|
|
_080479F6:
|
|
add sp, #0x10
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047A00: .4byte 0x02023EB8
|
|
_08047A04: .4byte 0x08289141
|
|
thumb_func_end atk09_attackanimation
|
|
|
|
thumb_func_start atk3A_waitstate
|
|
atk3A_waitstate: @ 0x08047A08
|
|
push {lr}
|
|
ldr r0, _08047A20
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08047A1A
|
|
ldr r1, _08047A24
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_08047A1A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047A20: .4byte 0x02023D0C
|
|
_08047A24: .4byte 0x02023EB8
|
|
thumb_func_end atk3A_waitstate
|
|
|
|
thumb_func_start atk0B_healthbarupdate
|
|
atk0B_healthbarupdate: @ 0x08047A28
|
|
push {r4, lr}
|
|
ldr r0, _08047A8C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08047AEA
|
|
ldr r0, _08047A90
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047AE2
|
|
ldr r0, _08047A94
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r2, _08047A98
|
|
strb r0, [r2]
|
|
ldr r1, _08047A9C
|
|
ldrb r2, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047AA8
|
|
ldr r0, _08047AA0
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
beq _08047AA8
|
|
ldr r0, _08047AA4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047AA8
|
|
movs r0, #0x80
|
|
adds r1, r2, #0
|
|
bl PrepareStringBattle
|
|
b _08047AE2
|
|
.align 2, 0
|
|
_08047A8C: .4byte 0x02023D0C
|
|
_08047A90: .4byte 0x02023F20
|
|
_08047A94: .4byte 0x02023EB8
|
|
_08047A98: .4byte 0x02023D08
|
|
_08047A9C: .4byte 0x02023D28
|
|
_08047AA0: .4byte 0x02023F60
|
|
_08047AA4: .4byte 0x02023F24
|
|
_08047AA8:
|
|
ldr r0, _08047AF0
|
|
ldr r0, [r0]
|
|
ldr r1, _08047AF4
|
|
cmp r0, r1
|
|
bgt _08047AB6
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
_08047AB6:
|
|
movs r0, #0
|
|
bl BtlController_EmitHealthBarUpdate
|
|
ldr r4, _08047AF8
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08047AE2
|
|
ldr r0, _08047AF0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ble _08047AE2
|
|
ldr r0, _08047AFC
|
|
ldrb r1, [r0, #5]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0, #5]
|
|
_08047AE2:
|
|
ldr r1, _08047B00
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_08047AEA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047AF0: .4byte 0x02023E94
|
|
_08047AF4: .4byte 0x00002710
|
|
_08047AF8: .4byte 0x02023D08
|
|
_08047AFC: .4byte 0x03005A70
|
|
_08047B00: .4byte 0x02023EB8
|
|
thumb_func_end atk0B_healthbarupdate
|
|
|
|
thumb_func_start atk0C_datahpupdate
|
|
atk0C_datahpupdate: @ 0x08047B04
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
ldr r0, _08047B2C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08047B12
|
|
b _08047EE2
|
|
_08047B12:
|
|
ldr r0, _08047B30
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x13]
|
|
cmp r1, #0
|
|
beq _08047B34
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047B34
|
|
movs r6, #0x3f
|
|
ands r6, r1
|
|
b _08047B44
|
|
.align 2, 0
|
|
_08047B2C: .4byte 0x02023D0C
|
|
_08047B30: .4byte 0x02024140
|
|
_08047B34:
|
|
ldr r2, _08047BD0
|
|
ldr r0, _08047BD4
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r6, [r0, #2]
|
|
_08047B44:
|
|
ldr r0, _08047BD8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047B52
|
|
b _08047EB4
|
|
_08047B52:
|
|
ldr r0, _08047BDC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r7, _08047BE0
|
|
strb r0, [r7]
|
|
ldr r1, _08047BE4
|
|
ldrb r2, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047C68
|
|
ldr r0, _08047BE8
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4, #0xa]
|
|
mov ip, r0
|
|
cmp r1, #0
|
|
beq _08047C68
|
|
ldr r0, _08047BEC
|
|
ldr r3, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
ands r3, r0
|
|
cmp r3, #0
|
|
bne _08047C68
|
|
adds r5, r1, #0
|
|
ldr r6, _08047BF0
|
|
ldr r4, [r6]
|
|
cmp r5, r4
|
|
blt _08047BFC
|
|
ldr r0, _08047BF4
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r0, #4
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _08047BB6
|
|
str r4, [r1]
|
|
_08047BB6:
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
add r1, ip
|
|
ldr r2, [r6]
|
|
ldrb r0, [r1, #0xa]
|
|
subs r0, r0, r2
|
|
strb r0, [r1, #0xa]
|
|
ldr r1, _08047BF8
|
|
ldr r0, [r6]
|
|
str r0, [r1]
|
|
b _08047C2C
|
|
.align 2, 0
|
|
_08047BD0: .4byte 0x082ED220
|
|
_08047BD4: .4byte 0x02023E8E
|
|
_08047BD8: .4byte 0x02023F20
|
|
_08047BDC: .4byte 0x02023EB8
|
|
_08047BE0: .4byte 0x02023D08
|
|
_08047BE4: .4byte 0x02023D28
|
|
_08047BE8: .4byte 0x02023F60
|
|
_08047BEC: .4byte 0x02023F24
|
|
_08047BF0: .4byte 0x02023E94
|
|
_08047BF4: .4byte 0x02024020
|
|
_08047BF8: .4byte 0x02023E98
|
|
_08047BFC:
|
|
ldr r0, _08047C54
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r0, #4
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _08047C10
|
|
str r5, [r1]
|
|
_08047C10:
|
|
ldr r2, _08047C58
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldrb r0, [r0, #0xa]
|
|
str r0, [r2]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
strb r3, [r0, #0xa]
|
|
_08047C2C:
|
|
ldr r0, _08047C5C
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldrb r0, [r0, #0xa]
|
|
cmp r0, #0
|
|
beq _08047C40
|
|
b _08047EDA
|
|
_08047C40:
|
|
ldr r4, _08047C60
|
|
ldr r0, [r4]
|
|
adds r0, #2
|
|
str r0, [r4]
|
|
bl BattleScriptPushCursor
|
|
ldr r0, _08047C64
|
|
str r0, [r4]
|
|
b _08047EE2
|
|
.align 2, 0
|
|
_08047C54: .4byte 0x02024020
|
|
_08047C58: .4byte 0x02023E98
|
|
_08047C5C: .4byte 0x02023D08
|
|
_08047C60: .4byte 0x02023EB8
|
|
_08047C64: .4byte 0x08289C83
|
|
_08047C68:
|
|
ldr r0, _08047CA8
|
|
ldr r2, [r0]
|
|
ldr r1, _08047CAC
|
|
ands r2, r1
|
|
str r2, [r0]
|
|
ldr r1, _08047CB0
|
|
ldr r5, [r1]
|
|
mov ip, r0
|
|
adds r7, r1, #0
|
|
cmp r5, #0
|
|
bge _08047CBC
|
|
ldr r4, _08047CB4
|
|
ldr r2, _08047CB8
|
|
ldrb r0, [r2]
|
|
movs r3, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r3, r1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1, #0x28]
|
|
subs r0, r0, r5
|
|
strh r0, [r1, #0x28]
|
|
ldrb r0, [r2]
|
|
muls r0, r3, r0
|
|
adds r1, r0, r4
|
|
ldrh r3, [r1, #0x2c]
|
|
ldrh r0, [r1, #0x28]
|
|
adds r5, r2, #0
|
|
cmp r0, r3
|
|
bhi _08047CA4
|
|
b _08047E7A
|
|
_08047CA4:
|
|
strh r3, [r1, #0x28]
|
|
b _08047E7A
|
|
.align 2, 0
|
|
_08047CA8: .4byte 0x02023F24
|
|
_08047CAC: .4byte 0xFFFFFEFF
|
|
_08047CB0: .4byte 0x02023E94
|
|
_08047CB4: .4byte 0x02023D28
|
|
_08047CB8: .4byte 0x02023D08
|
|
_08047CBC:
|
|
movs r0, #0x20
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08047CD8
|
|
movs r0, #0x21
|
|
rsbs r0, r0, #0
|
|
ands r2, r0
|
|
mov r0, ip
|
|
str r2, [r0]
|
|
ldr r5, _08047CD4
|
|
b _08047D20
|
|
.align 2, 0
|
|
_08047CD4: .4byte 0x02023D08
|
|
_08047CD8:
|
|
ldr r0, _08047D00
|
|
ldr r2, _08047D04
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, r0, r5
|
|
str r0, [r1]
|
|
ldr r0, _08047D08
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
adds r5, r2, #0
|
|
cmp r0, #0
|
|
bne _08047D14
|
|
ldr r1, _08047D0C
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
ldr r1, _08047D10
|
|
b _08047D1C
|
|
.align 2, 0
|
|
_08047D00: .4byte 0x02023E9C
|
|
_08047D04: .4byte 0x02023D08
|
|
_08047D08: .4byte 0x02023EB8
|
|
_08047D0C: .4byte 0x02023F2C
|
|
_08047D10: .4byte 0x02023EAF
|
|
_08047D14:
|
|
ldr r1, _08047D40
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
ldr r1, _08047D44
|
|
_08047D1C:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_08047D20:
|
|
ldr r4, _08047D48
|
|
ldrb r0, [r5]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
adds r2, r0, r4
|
|
ldrh r0, [r2, #0x28]
|
|
ldr r1, [r7]
|
|
cmp r0, r1
|
|
ble _08047D50
|
|
subs r0, r0, r1
|
|
strh r0, [r2, #0x28]
|
|
ldr r0, _08047D4C
|
|
str r1, [r0]
|
|
adds r7, r0, #0
|
|
b _08047D60
|
|
.align 2, 0
|
|
_08047D40: .4byte 0x02023F2C
|
|
_08047D44: .4byte 0x02023EB0
|
|
_08047D48: .4byte 0x02023D28
|
|
_08047D4C: .4byte 0x02023E98
|
|
_08047D50:
|
|
ldr r2, _08047DD4
|
|
str r0, [r2]
|
|
ldrb r0, [r5]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0
|
|
strh r1, [r0, #0x28]
|
|
adds r7, r2, #0
|
|
_08047D60:
|
|
ldr r2, _08047DD8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r2, #4
|
|
adds r3, r0, r1
|
|
ldr r0, [r3]
|
|
adds r4, r2, #0
|
|
cmp r0, #0
|
|
bne _08047D88
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xd
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047D88
|
|
ldr r0, [r7]
|
|
str r0, [r3]
|
|
_08047D88:
|
|
cmp r6, #8
|
|
bhi _08047E10
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xd
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047E0C
|
|
ldr r0, _08047DDC
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xdc
|
|
beq _08047E0C
|
|
ldr r3, _08047DE0
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r1, r3, #4
|
|
adds r0, r0, r1
|
|
ldr r2, [r7]
|
|
str r2, [r0]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #8
|
|
adds r0, r0, r1
|
|
str r2, [r0]
|
|
ldr r0, _08047DE4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _08047DEC
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r3
|
|
ldr r2, _08047DE8
|
|
b _08047DF4
|
|
.align 2, 0
|
|
_08047DD4: .4byte 0x02023E98
|
|
_08047DD8: .4byte 0x02024020
|
|
_08047DDC: .4byte 0x02023E8E
|
|
_08047DE0: .4byte 0x02023FE0
|
|
_08047DE4: .4byte 0x02023EB8
|
|
_08047DE8: .4byte 0x02023EAF
|
|
_08047DEC:
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r3
|
|
ldr r2, _08047E08
|
|
_08047DF4:
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, #0xc]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, #0x10]
|
|
b _08047E7A
|
|
.align 2, 0
|
|
_08047E08: .4byte 0x02023EB0
|
|
_08047E0C:
|
|
cmp r6, #8
|
|
bls _08047E7A
|
|
_08047E10:
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xd
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047E7A
|
|
ldr r3, _08047E54
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r1, r3, #0
|
|
adds r1, #8
|
|
adds r0, r0, r1
|
|
ldr r2, [r7]
|
|
str r2, [r0]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #0xc
|
|
adds r0, r0, r1
|
|
str r2, [r0]
|
|
ldr r0, _08047E58
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _08047E60
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r3
|
|
ldr r2, _08047E5C
|
|
b _08047E68
|
|
.align 2, 0
|
|
_08047E54: .4byte 0x02023FE0
|
|
_08047E58: .4byte 0x02023EB8
|
|
_08047E5C: .4byte 0x02023EAF
|
|
_08047E60:
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r3
|
|
ldr r2, _08047EA8
|
|
_08047E68:
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, #0xd]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, #0x11]
|
|
_08047E7A:
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
ldr r1, _08047EAC
|
|
ands r0, r1
|
|
mov r1, ip
|
|
str r0, [r1]
|
|
ldrb r1, [r5]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
ldr r1, _08047EB0
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x2a
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
b _08047EDA
|
|
.align 2, 0
|
|
_08047EA8: .4byte 0x02023EB0
|
|
_08047EAC: .4byte 0xFFEFFFFF
|
|
_08047EB0: .4byte 0x02023D50
|
|
_08047EB4:
|
|
ldr r0, _08047EEC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _08047EF0
|
|
strb r0, [r1]
|
|
ldr r2, _08047EF4
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #4
|
|
adds r1, r0, r2
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _08047EDA
|
|
ldr r0, _08047EF8
|
|
str r0, [r1]
|
|
_08047EDA:
|
|
ldr r1, _08047EEC
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_08047EE2:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047EEC: .4byte 0x02023EB8
|
|
_08047EF0: .4byte 0x02023D08
|
|
_08047EF4: .4byte 0x02024020
|
|
_08047EF8: .4byte 0x0000FFFF
|
|
thumb_func_end atk0C_datahpupdate
|
|
|
|
thumb_func_start atk0D_critmessage
|
|
atk0D_critmessage: @ 0x08047EFC
|
|
push {lr}
|
|
ldr r0, _08047F38
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08047F32
|
|
ldr r0, _08047F3C
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _08047F2A
|
|
ldr r0, _08047F40
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08047F2A
|
|
ldr r0, _08047F44
|
|
ldrb r1, [r0]
|
|
movs r0, #0xd9
|
|
bl PrepareStringBattle
|
|
ldr r1, _08047F48
|
|
movs r0, #1
|
|
strb r0, [r1, #7]
|
|
_08047F2A:
|
|
ldr r1, _08047F4C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_08047F32:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08047F38: .4byte 0x02023D0C
|
|
_08047F3C: .4byte 0x02023EB5
|
|
_08047F40: .4byte 0x02023F20
|
|
_08047F44: .4byte 0x02023EAF
|
|
_08047F48: .4byte 0x02023FD6
|
|
_08047F4C: .4byte 0x02023EB8
|
|
thumb_func_end atk0D_critmessage
|
|
|
|
thumb_func_start atk0E_effectivenesssound
|
|
atk0E_effectivenesssound: @ 0x08047F50
|
|
push {r4, lr}
|
|
ldr r0, _08047F88
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08048010
|
|
ldr r4, _08047F8C
|
|
ldr r0, _08047F90
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, _08047F94
|
|
ldrb r2, [r1]
|
|
movs r0, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08048008
|
|
movs r0, #0xfe
|
|
ands r0, r2
|
|
cmp r0, #0x10
|
|
beq _08047FC2
|
|
cmp r0, #0x10
|
|
bgt _08047F9E
|
|
cmp r0, #4
|
|
beq _08047FB2
|
|
cmp r0, #4
|
|
bgt _08047F98
|
|
cmp r0, #2
|
|
beq _08047FAC
|
|
b _08047FC2
|
|
.align 2, 0
|
|
_08047F88: .4byte 0x02023D0C
|
|
_08047F8C: .4byte 0x02023D08
|
|
_08047F90: .4byte 0x02023EB0
|
|
_08047F94: .4byte 0x02023F20
|
|
_08047F98:
|
|
cmp r0, #8
|
|
beq _08048008
|
|
b _08047FC2
|
|
_08047F9E:
|
|
cmp r0, #0x40
|
|
beq _08047FC2
|
|
cmp r0, #0x40
|
|
bgt _08047FC2
|
|
cmp r0, #0x20
|
|
beq _08048008
|
|
b _08047FC2
|
|
_08047FAC:
|
|
movs r0, #0
|
|
movs r1, #0xe
|
|
b _08047FB6
|
|
_08047FB2:
|
|
movs r0, #0
|
|
movs r1, #0xc
|
|
_08047FB6:
|
|
bl BtlController_EmitPlaySE
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _08048008
|
|
_08047FC2:
|
|
ldrb r1, [r1]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047FD2
|
|
movs r0, #0
|
|
movs r1, #0xe
|
|
b _08047FDE
|
|
_08047FD2:
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08047FF0
|
|
movs r0, #0
|
|
movs r1, #0xc
|
|
_08047FDE:
|
|
bl BtlController_EmitPlaySE
|
|
ldr r0, _08047FEC
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
b _08048008
|
|
.align 2, 0
|
|
_08047FEC: .4byte 0x02023D08
|
|
_08047FF0:
|
|
movs r0, #0x28
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08048008
|
|
movs r0, #0
|
|
movs r1, #0xd
|
|
bl BtlController_EmitPlaySE
|
|
ldr r0, _08048018
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
_08048008:
|
|
ldr r1, _0804801C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_08048010:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048018: .4byte 0x02023D08
|
|
_0804801C: .4byte 0x02023EB8
|
|
thumb_func_end atk0E_effectivenesssound
|
|
|
|
thumb_func_start atk0F_resultmessage
|
|
atk0F_resultmessage: @ 0x08048020
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r3, #0
|
|
ldr r0, _0804805C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804802E
|
|
b _080481C0
|
|
_0804802E:
|
|
ldr r1, _08048060
|
|
ldrb r2, [r1]
|
|
movs r4, #1
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
adds r6, r1, #0
|
|
ldr r7, _08048064
|
|
cmp r0, #0
|
|
beq _0804806C
|
|
movs r0, #8
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0804804E
|
|
ldrb r0, [r7, #6]
|
|
cmp r0, #2
|
|
bls _0804806C
|
|
_0804804E:
|
|
ldr r1, _08048068
|
|
ldrb r0, [r7, #6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r3, [r0]
|
|
strb r4, [r7, #7]
|
|
b _080481AA
|
|
.align 2, 0
|
|
_0804805C: .4byte 0x02023D0C
|
|
_08048060: .4byte 0x02023F20
|
|
_08048064: .4byte 0x02023FD6
|
|
_08048068: .4byte 0x085AB9A0
|
|
_0804806C:
|
|
movs r0, #1
|
|
strb r0, [r7, #7]
|
|
ldrb r5, [r6]
|
|
movs r0, #0xfe
|
|
ands r0, r5
|
|
cmp r0, #0x10
|
|
beq _080480B0
|
|
cmp r0, #0x10
|
|
bgt _08048092
|
|
cmp r0, #4
|
|
beq _080480AC
|
|
cmp r0, #4
|
|
bgt _0804808C
|
|
cmp r0, #2
|
|
beq _080480A8
|
|
b _080480F8
|
|
_0804808C:
|
|
cmp r0, #8
|
|
beq _08048104
|
|
b _080480F8
|
|
_08048092:
|
|
cmp r0, #0x40
|
|
beq _080480B4
|
|
cmp r0, #0x40
|
|
bgt _080480A2
|
|
cmp r0, #0x20
|
|
bne _080480A0
|
|
b _080481A4
|
|
_080480A0:
|
|
b _080480F8
|
|
_080480A2:
|
|
cmp r0, #0x80
|
|
beq _080480B8
|
|
b _080480F8
|
|
_080480A8:
|
|
movs r3, #0xde
|
|
b _080481AE
|
|
_080480AC:
|
|
movs r3, #0xdd
|
|
b _080481AE
|
|
_080480B0:
|
|
movs r3, #0xda
|
|
b _080481AE
|
|
_080480B4:
|
|
movs r3, #0x99
|
|
b _080481AE
|
|
_080480B8:
|
|
ldr r4, _080480E0
|
|
ldr r2, _080480E4
|
|
ldr r3, _080480E8
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r4]
|
|
ldr r1, _080480EC
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
movs r0, #0x3f
|
|
ands r0, r5
|
|
strb r0, [r6]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _080480F0
|
|
ldr r0, _080480F4
|
|
b _080481BE
|
|
.align 2, 0
|
|
_080480E0: .4byte 0x02023EAC
|
|
_080480E4: .4byte 0x02023D28
|
|
_080480E8: .4byte 0x02023EB0
|
|
_080480EC: .4byte 0x02023EB3
|
|
_080480F0: .4byte 0x02023EB8
|
|
_080480F4: .4byte 0x08289D9E
|
|
_080480F8:
|
|
adds r2, r6, #0
|
|
ldrb r5, [r2]
|
|
movs r0, #8
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08048108
|
|
_08048104:
|
|
movs r3, #0x1b
|
|
b _080481AE
|
|
_08048108:
|
|
movs r0, #0x10
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08048130
|
|
movs r0, #0xef
|
|
ands r0, r5
|
|
movs r1, #0xfd
|
|
ands r0, r1
|
|
movs r1, #0xfb
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08048128
|
|
ldr r0, _0804812C
|
|
b _080481BE
|
|
.align 2, 0
|
|
_08048128: .4byte 0x02023EB8
|
|
_0804812C: .4byte 0x08289756
|
|
_08048130:
|
|
movs r0, #0x40
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08048150
|
|
movs r0, #0x3f
|
|
ands r0, r5
|
|
strb r0, [r2]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08048148
|
|
ldr r0, _0804814C
|
|
b _080481BE
|
|
.align 2, 0
|
|
_08048148: .4byte 0x02023EB8
|
|
_0804814C: .4byte 0x0828974F
|
|
_08048150:
|
|
movs r0, #0x80
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08048198
|
|
ldr r4, _08048180
|
|
ldr r2, _08048184
|
|
ldr r3, _08048188
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r4]
|
|
ldr r1, _0804818C
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
movs r0, #0x3f
|
|
ands r0, r5
|
|
strb r0, [r6]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08048190
|
|
ldr r0, _08048194
|
|
b _080481BE
|
|
.align 2, 0
|
|
_08048180: .4byte 0x02023EAC
|
|
_08048184: .4byte 0x02023D28
|
|
_08048188: .4byte 0x02023EB0
|
|
_0804818C: .4byte 0x02023EB3
|
|
_08048190: .4byte 0x02023EB8
|
|
_08048194: .4byte 0x08289D9E
|
|
_08048198:
|
|
movs r0, #0x20
|
|
ands r0, r5
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080481A8
|
|
_080481A4:
|
|
movs r3, #0xe5
|
|
b _080481AE
|
|
_080481A8:
|
|
strb r0, [r7, #7]
|
|
_080481AA:
|
|
cmp r3, #0
|
|
beq _080481B8
|
|
_080481AE:
|
|
adds r0, r3, #0
|
|
ldr r1, _080481C8
|
|
ldrb r1, [r1]
|
|
bl PrepareStringBattle
|
|
_080481B8:
|
|
ldr r1, _080481CC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
_080481BE:
|
|
str r0, [r1]
|
|
_080481C0:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080481C8: .4byte 0x02023EAF
|
|
_080481CC: .4byte 0x02023EB8
|
|
thumb_func_end atk0F_resultmessage
|
|
|
|
thumb_func_start atk10_printstring
|
|
atk10_printstring: @ 0x080481D0
|
|
push {r4, lr}
|
|
ldr r0, _08048200
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _080481FA
|
|
ldr r4, _08048204
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, #1]
|
|
ldrb r1, [r1, #2]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
ldr r1, _08048208
|
|
ldrb r1, [r1]
|
|
bl PrepareStringBattle
|
|
ldr r0, [r4]
|
|
adds r0, #3
|
|
str r0, [r4]
|
|
ldr r1, _0804820C
|
|
movs r0, #1
|
|
strb r0, [r1, #7]
|
|
_080481FA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048200: .4byte 0x02023D0C
|
|
_08048204: .4byte 0x02023EB8
|
|
_08048208: .4byte 0x02023EAF
|
|
_0804820C: .4byte 0x02023FD6
|
|
thumb_func_end atk10_printstring
|
|
|
|
thumb_func_start atk11_printselectionstring
|
|
atk11_printselectionstring: @ 0x08048210
|
|
push {r4, r5, lr}
|
|
ldr r5, _08048244
|
|
ldr r0, _08048248
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, _0804824C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #1]
|
|
ldrb r0, [r0, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
movs r0, #0
|
|
bl BtlController_EmitPrintSelectionString
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r4]
|
|
adds r0, #3
|
|
str r0, [r4]
|
|
ldr r1, _08048250
|
|
movs r0, #1
|
|
strb r0, [r1, #7]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048244: .4byte 0x02023D08
|
|
_08048248: .4byte 0x02023EAF
|
|
_0804824C: .4byte 0x02023EB8
|
|
_08048250: .4byte 0x02023FD6
|
|
thumb_func_end atk11_printselectionstring
|
|
|
|
thumb_func_start atk12_waitmessage
|
|
atk12_waitmessage: @ 0x08048254
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _08048270
|
|
ldr r4, [r0]
|
|
cmp r4, #0
|
|
bne _080482A2
|
|
ldr r6, _08048274
|
|
ldrb r0, [r6, #7]
|
|
cmp r0, #0
|
|
bne _0804827C
|
|
ldr r1, _08048278
|
|
ldr r0, [r1]
|
|
adds r0, #3
|
|
str r0, [r1]
|
|
b _080482A2
|
|
.align 2, 0
|
|
_08048270: .4byte 0x02023D0C
|
|
_08048274: .4byte 0x02023FD6
|
|
_08048278: .4byte 0x02023EB8
|
|
_0804827C:
|
|
ldr r5, _080482A8
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldr r3, _080482AC
|
|
ldrh r0, [r3]
|
|
adds r0, #1
|
|
strh r0, [r3]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r1
|
|
blo _080482A2
|
|
movs r1, #0
|
|
strh r4, [r3]
|
|
adds r0, r2, #3
|
|
str r0, [r5]
|
|
strb r1, [r6, #7]
|
|
_080482A2:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080482A8: .4byte 0x02023EB8
|
|
_080482AC: .4byte 0x02023FD0
|
|
thumb_func_end atk12_waitmessage
|
|
|
|
thumb_func_start atk13_printfromtable
|
|
atk13_printfromtable: @ 0x080482B0
|
|
push {r4, r5, lr}
|
|
ldr r0, _080482F4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _080482EE
|
|
ldr r4, _080482F8
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
ldr r5, _080482FC
|
|
ldrb r0, [r5, #5]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r1, _08048300
|
|
ldrb r1, [r1]
|
|
bl PrepareStringBattle
|
|
ldr r0, [r4]
|
|
adds r0, #5
|
|
str r0, [r4]
|
|
movs r0, #1
|
|
strb r0, [r5, #7]
|
|
_080482EE:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080482F4: .4byte 0x02023D0C
|
|
_080482F8: .4byte 0x02023EB8
|
|
_080482FC: .4byte 0x02023FD6
|
|
_08048300: .4byte 0x02023EAF
|
|
thumb_func_end atk13_printfromtable
|
|
|
|
thumb_func_start atk14_printselectionstringfromtable
|
|
atk14_printselectionstringfromtable: @ 0x08048304
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _08048354
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804834E
|
|
ldr r5, _08048358
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
ldr r6, _0804835C
|
|
ldrb r0, [r6, #5]
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
ldr r4, _08048360
|
|
ldr r0, _08048364
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrh r1, [r1]
|
|
movs r0, #0
|
|
bl BtlController_EmitPrintSelectionString
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #5
|
|
str r0, [r5]
|
|
movs r0, #1
|
|
strb r0, [r6, #7]
|
|
_0804834E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08048354: .4byte 0x02023D0C
|
|
_08048358: .4byte 0x02023EB8
|
|
_0804835C: .4byte 0x02023FD6
|
|
_08048360: .4byte 0x02023D08
|
|
_08048364: .4byte 0x02023EAF
|
|
thumb_func_end atk14_printselectionstringfromtable
|
|
|
|
thumb_func_start GetBattlerTurnOrderNum
|
|
GetBattlerTurnOrderNum: @ 0x08048368
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
movs r1, #0
|
|
ldr r0, _08048398
|
|
ldrb r3, [r0]
|
|
cmp r1, r3
|
|
bge _0804838E
|
|
ldr r4, _0804839C
|
|
ldrb r0, [r4]
|
|
cmp r0, r2
|
|
beq _0804838E
|
|
_08048380:
|
|
adds r1, #1
|
|
cmp r1, r3
|
|
bge _0804838E
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _08048380
|
|
_0804838E:
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08048398: .4byte 0x02023D10
|
|
_0804839C: .4byte 0x02023D22
|
|
thumb_func_end GetBattlerTurnOrderNum
|
|
|
|
thumb_func_start SetMoveEffect
|
|
SetMoveEffect: @ 0x080483A0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r6, r1, #0x18
|
|
movs r0, #0
|
|
mov sl, r0
|
|
movs r7, #0
|
|
movs r1, #1
|
|
str r1, [sp, #4]
|
|
ldr r1, _080483E4
|
|
ldrb r3, [r1, #3]
|
|
movs r0, #0x40
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _080483F8
|
|
ldr r2, _080483E8
|
|
ldr r0, _080483EC
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
movs r0, #0xbf
|
|
ands r0, r3
|
|
adds r3, r1, #0
|
|
strb r0, [r3, #3]
|
|
movs r7, #0x40
|
|
ldr r1, _080483F0
|
|
ldr r0, _080483F4
|
|
b _08048404
|
|
.align 2, 0
|
|
_080483E4: .4byte 0x02023FD6
|
|
_080483E8: .4byte 0x02023EB2
|
|
_080483EC: .4byte 0x02023EAF
|
|
_080483F0: .4byte 0x02024118
|
|
_080483F4: .4byte 0x02023EB0
|
|
_080483F8:
|
|
ldr r2, _08048448
|
|
ldr r0, _0804844C
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, _08048450
|
|
ldr r0, _08048454
|
|
_08048404:
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #0x17]
|
|
mov sb, r2
|
|
ldr r2, _08048458
|
|
mov r4, sb
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x13
|
|
bne _08048468
|
|
ldr r0, _0804845C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08048468
|
|
cmp r5, #0
|
|
bne _08048468
|
|
ldr r1, _08048460
|
|
ldrb r0, [r1, #3]
|
|
cmp r0, #9
|
|
bhi _08048468
|
|
ldr r1, _08048464
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
ldr r2, _08048460
|
|
strb r5, [r2, #3]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_08048448: .4byte 0x02023EB2
|
|
_0804844C: .4byte 0x02023EB0
|
|
_08048450: .4byte 0x02024118
|
|
_08048454: .4byte 0x02023EAF
|
|
_08048458: .4byte 0x02023D28
|
|
_0804845C: .4byte 0x02023F24
|
|
_08048460: .4byte 0x02023FD6
|
|
_08048464: .4byte 0x02023EB8
|
|
_08048468:
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
bl GetBattlerPosition
|
|
ldr r2, _080484B0
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r1, [r1]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080484C0
|
|
ldr r0, _080484B4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080484C0
|
|
cmp r5, #0
|
|
bne _080484C0
|
|
ldr r0, _080484B8
|
|
ldrb r1, [r0, #3]
|
|
cmp r1, #7
|
|
bhi _080484C0
|
|
ldr r1, _080484BC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
ldr r4, _080484B8
|
|
strb r5, [r4, #3]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_080484B0: .4byte 0x02023F32
|
|
_080484B4: .4byte 0x02023F24
|
|
_080484B8: .4byte 0x02023FD6
|
|
_080484BC: .4byte 0x02023EB8
|
|
_080484C0:
|
|
ldr r3, _080484F4
|
|
ldr r2, _080484F8
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r3
|
|
ldrh r4, [r0, #0x28]
|
|
mov sb, r2
|
|
mov r8, r3
|
|
cmp r4, #0
|
|
bne _08048504
|
|
ldr r1, _080484FC
|
|
ldrb r0, [r1, #3]
|
|
cmp r0, #0xb
|
|
beq _08048504
|
|
cmp r0, #0x1f
|
|
beq _08048504
|
|
ldr r1, _08048500
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
ldr r2, _080484FC
|
|
strb r4, [r2, #3]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_080484F4: .4byte 0x02023D28
|
|
_080484F8: .4byte 0x02023EB2
|
|
_080484FC: .4byte 0x02023FD6
|
|
_08048500: .4byte 0x02023EB8
|
|
_08048504:
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, r8
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804853C
|
|
cmp r7, #0x40
|
|
beq _0804853C
|
|
ldr r0, _08048534
|
|
ldr r1, [r0]
|
|
adds r1, #1
|
|
str r1, [r0]
|
|
movs r0, #0
|
|
ldr r4, _08048538
|
|
strb r0, [r4, #3]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_08048534: .4byte 0x02023EB8
|
|
_08048538: .4byte 0x02023FD6
|
|
_0804853C:
|
|
ldr r1, _08048568
|
|
ldrb r0, [r1, #3]
|
|
cmp r0, #6
|
|
bls _08048546
|
|
b _08048B80
|
|
_08048546:
|
|
ldr r1, _0804856C
|
|
ldr r2, _08048568
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, #0x10
|
|
bne _08048558
|
|
b _0804873C
|
|
_08048558:
|
|
cmp r0, #0x10
|
|
bhi _08048570
|
|
cmp r0, #7
|
|
beq _0804858A
|
|
cmp r0, #8
|
|
beq _08048640
|
|
b _08048A34
|
|
.align 2, 0
|
|
_08048568: .4byte 0x02023FD6
|
|
_0804856C: .4byte 0x082ECAB8
|
|
_08048570:
|
|
cmp r0, #0x40
|
|
bne _08048576
|
|
b _080488C4
|
|
_08048576:
|
|
cmp r0, #0x40
|
|
bhi _08048582
|
|
cmp r0, #0x20
|
|
bne _08048580
|
|
b _0804882A
|
|
_08048580:
|
|
b _08048A34
|
|
_08048582:
|
|
cmp r0, #0x80
|
|
bne _08048588
|
|
b _08048942
|
|
_08048588:
|
|
b _08048A34
|
|
_0804858A:
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x2b
|
|
beq _080485EC
|
|
ldr r0, _080485E4
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r1, _080485E8
|
|
ldrb r3, [r1]
|
|
adds r7, r0, #0
|
|
mov ip, r1
|
|
cmp r3, #0
|
|
beq _080485F8
|
|
mov r4, r8
|
|
ldr r0, [r4, #0x50]
|
|
movs r1, #0x70
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080485F8
|
|
adds r1, r7, #0
|
|
mov r6, r8
|
|
adds r6, #0x50
|
|
movs r5, #0x58
|
|
movs r4, #0x70
|
|
_080485C4:
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r3
|
|
bhs _080485F8
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _080485C4
|
|
b _080485F8
|
|
.align 2, 0
|
|
_080485E4: .4byte 0x02023D08
|
|
_080485E8: .4byte 0x02023D10
|
|
_080485EC:
|
|
ldr r0, _08048638
|
|
ldr r2, _0804863C
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
adds r7, r0, #0
|
|
mov ip, r2
|
|
_080485F8:
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
adds r1, r2, #0
|
|
muls r1, r0, r1
|
|
mov r0, r8
|
|
adds r0, #0x4c
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08048610
|
|
b _08048A34
|
|
_08048610:
|
|
ldrb r0, [r7]
|
|
mov r3, ip
|
|
ldrb r3, [r3]
|
|
cmp r0, r3
|
|
beq _0804861C
|
|
b _08048A34
|
|
_0804861C:
|
|
mov r4, r8
|
|
adds r0, r1, r4
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x48
|
|
bne _0804862A
|
|
b _08048A34
|
|
_0804862A:
|
|
cmp r0, #0xf
|
|
bne _08048630
|
|
b _08048A34
|
|
_08048630:
|
|
adds r0, r2, #0
|
|
bl CancelMultiTurnMoves
|
|
b _08048A24
|
|
.align 2, 0
|
|
_08048638: .4byte 0x02023D08
|
|
_0804863C: .4byte 0x02023D10
|
|
_08048640:
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, #0x11
|
|
bne _080486B0
|
|
cmp r5, #1
|
|
beq _0804865A
|
|
cmp r6, #0x80
|
|
bne _080486B0
|
|
_0804865A:
|
|
ldr r0, _08048698
|
|
strb r1, [r0]
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
movs r1, #0x11
|
|
bl RecordAbilityBattle
|
|
ldr r4, _0804869C
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080486A0
|
|
str r0, [r4]
|
|
ldr r2, _080486A4
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08048686
|
|
b _08048960
|
|
_08048686:
|
|
movs r0, #1
|
|
ldr r4, _080486A8
|
|
strb r0, [r4, #5]
|
|
_0804868C:
|
|
ldr r0, _080486AC
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl _080495F2
|
|
.align 2, 0
|
|
_08048698: .4byte 0x02023EAE
|
|
_0804869C: .4byte 0x02023EB8
|
|
_080486A0: .4byte 0x08289B71
|
|
_080486A4: .4byte 0x02023F24
|
|
_080486A8: .4byte 0x02023FD6
|
|
_080486AC: .4byte 0xFFFFDFFF
|
|
_080486B0:
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, #3
|
|
beq _080486D4
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
beq _080486D4
|
|
cmp r1, #8
|
|
beq _080486D4
|
|
cmp r0, #8
|
|
bne _080486EE
|
|
_080486D4:
|
|
ldr r0, _08048738
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080486EE
|
|
cmp r5, #1
|
|
bne _080486E8
|
|
b _080489A6
|
|
_080486E8:
|
|
cmp r6, #0x80
|
|
bne _080486EE
|
|
b _080489A6
|
|
_080486EE:
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
mov r4, r8
|
|
adds r3, r1, r4
|
|
adds r0, r3, #0
|
|
adds r0, #0x21
|
|
ldrb r4, [r0]
|
|
cmp r4, #3
|
|
bne _08048706
|
|
b _08048A34
|
|
_08048706:
|
|
adds r0, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bne _08048710
|
|
b _08048A34
|
|
_08048710:
|
|
cmp r4, #8
|
|
bne _08048716
|
|
b _08048A34
|
|
_08048716:
|
|
cmp r0, #8
|
|
bne _0804871C
|
|
b _08048A34
|
|
_0804871C:
|
|
mov r0, r8
|
|
adds r0, #0x4c
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804872A
|
|
b _08048A34
|
|
_0804872A:
|
|
adds r0, r3, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x11
|
|
bne _08048736
|
|
b _08048A34
|
|
_08048736:
|
|
b _08048A24
|
|
.align 2, 0
|
|
_08048738: .4byte 0x02023F24
|
|
_0804873C:
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, #0x29
|
|
bne _08048794
|
|
cmp r5, #1
|
|
beq _08048756
|
|
cmp r6, #0x80
|
|
bne _08048794
|
|
_08048756:
|
|
ldr r0, _08048784
|
|
strb r1, [r0]
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
movs r1, #0x29
|
|
bl RecordAbilityBattle
|
|
ldr r4, _08048788
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0804878C
|
|
str r0, [r4]
|
|
ldr r2, _08048790
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048782
|
|
b _08048686
|
|
_08048782:
|
|
b _08048960
|
|
.align 2, 0
|
|
_08048784: .4byte 0x02023EAE
|
|
_08048788: .4byte 0x02023EB8
|
|
_0804878C: .4byte 0x08289B59
|
|
_08048790: .4byte 0x02023F24
|
|
_08048794:
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
beq _080487B4
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _080487E4
|
|
_080487B4:
|
|
ldr r0, _080487D8
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080487E4
|
|
cmp r5, #1
|
|
beq _080487CA
|
|
cmp r6, #0x80
|
|
bne _080487E4
|
|
_080487CA:
|
|
ldr r4, _080487DC
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080487E0
|
|
b _080489B2
|
|
.align 2, 0
|
|
_080487D8: .4byte 0x02023F24
|
|
_080487DC: .4byte 0x02023EB8
|
|
_080487E0: .4byte 0x08289B59
|
|
_080487E4:
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
movs r1, #0x58
|
|
adds r2, r0, #0
|
|
muls r2, r1, r2
|
|
mov r0, r8
|
|
adds r1, r2, r0
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _080487FE
|
|
b _08048A34
|
|
_080487FE:
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _0804880A
|
|
b _08048A34
|
|
_0804880A:
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x29
|
|
bne _08048816
|
|
b _08048A34
|
|
_08048816:
|
|
mov r0, r8
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08048824
|
|
b _08048A34
|
|
_08048824:
|
|
movs r1, #1
|
|
mov sl, r1
|
|
b _08048A34
|
|
_0804882A:
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08048866
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08048866
|
|
ldr r0, _080488B8
|
|
ldrh r1, [r0]
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048866
|
|
movs r2, #0
|
|
str r2, [sp, #4]
|
|
_08048866:
|
|
ldr r4, _080488BC
|
|
ldr r0, _080488C0
|
|
ldrb r3, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r0, r2
|
|
adds r1, r2, r4
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf
|
|
bne _08048880
|
|
b _08048A34
|
|
_08048880:
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf
|
|
bne _0804888C
|
|
b _08048A34
|
|
_0804888C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804889A
|
|
b _08048A34
|
|
_0804889A:
|
|
ldr r4, [sp, #4]
|
|
cmp r4, #0
|
|
bne _080488A2
|
|
b _08048A34
|
|
_080488A2:
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x28
|
|
bne _080488AE
|
|
b _08048A34
|
|
_080488AE:
|
|
adds r0, r3, #0
|
|
bl CancelMultiTurnMoves
|
|
b _08048A24
|
|
.align 2, 0
|
|
_080488B8: .4byte 0x02024070
|
|
_080488BC: .4byte 0x02023D28
|
|
_080488C0: .4byte 0x02023EB2
|
|
_080488C4:
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
mov r3, r8
|
|
adds r0, r1, r3
|
|
adds r0, #0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, #7
|
|
bne _08048934
|
|
cmp r5, #1
|
|
beq _080488E2
|
|
cmp r6, #0x80
|
|
beq _080488E2
|
|
b _08048A34
|
|
_080488E2:
|
|
ldr r0, _08048914
|
|
strb r2, [r0]
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
movs r1, #7
|
|
bl RecordAbilityBattle
|
|
ldr r4, _08048918
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0804891C
|
|
str r0, [r4]
|
|
ldr r2, _08048920
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048928
|
|
movs r0, #1
|
|
ldr r3, _08048924
|
|
strb r0, [r3, #5]
|
|
b _0804868C
|
|
.align 2, 0
|
|
_08048914: .4byte 0x02023EAE
|
|
_08048918: .4byte 0x02023EB8
|
|
_0804891C: .4byte 0x08289B65
|
|
_08048920: .4byte 0x02023F24
|
|
_08048924: .4byte 0x02023FD6
|
|
_08048928:
|
|
ldr r4, _08048930
|
|
strb r0, [r4, #5]
|
|
bl _080495F2
|
|
.align 2, 0
|
|
_08048930: .4byte 0x02023FD6
|
|
_08048934:
|
|
mov r0, r8
|
|
adds r0, #0x4c
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08048A34
|
|
b _08048A24
|
|
_08048942:
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, #0x11
|
|
bne _0804896C
|
|
cmp r5, #1
|
|
bne _0804895A
|
|
b _0804865A
|
|
_0804895A:
|
|
cmp r6, #0x80
|
|
bne _0804896C
|
|
b _0804865A
|
|
_08048960:
|
|
ldr r1, _08048968
|
|
strb r0, [r1, #5]
|
|
bl _080495F2
|
|
.align 2, 0
|
|
_08048968: .4byte 0x02023FD6
|
|
_0804896C:
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, #3
|
|
beq _08048990
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
beq _08048990
|
|
cmp r1, #8
|
|
beq _08048990
|
|
cmp r0, #8
|
|
bne _080489D4
|
|
_08048990:
|
|
ldr r0, _080489C4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080489D4
|
|
cmp r5, #1
|
|
beq _080489A6
|
|
cmp r6, #0x80
|
|
bne _080489D4
|
|
_080489A6:
|
|
ldr r4, _080489C8
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080489CC
|
|
_080489B2:
|
|
str r0, [r4]
|
|
ldr r1, _080489D0
|
|
movs r2, #0
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
strb r2, [r1, #3]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_080489C4: .4byte 0x02023F24
|
|
_080489C8: .4byte 0x02023EB8
|
|
_080489CC: .4byte 0x08289B71
|
|
_080489D0: .4byte 0x02023FD6
|
|
_080489D4:
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
mov r2, r8
|
|
adds r2, #0x4c
|
|
adds r5, r0, r2
|
|
ldr r4, [r5]
|
|
cmp r4, #0
|
|
bne _08048A34
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r3, [r0]
|
|
cmp r3, #3
|
|
beq _08048A2A
|
|
adds r0, #1
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
beq _08048A2A
|
|
cmp r3, #8
|
|
beq _08048A2A
|
|
cmp r0, #8
|
|
beq _08048A2A
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x11
|
|
beq _08048A34
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #9
|
|
rsbs r2, r2, #0
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_08048A24:
|
|
movs r0, #1
|
|
mov sl, r0
|
|
b _08048A34
|
|
_08048A2A:
|
|
ldr r0, _08048A78
|
|
ldrb r1, [r0]
|
|
movs r2, #8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08048A34:
|
|
mov r1, sl
|
|
cmp r1, #1
|
|
beq _08048A3C
|
|
b _08048B5C
|
|
_08048A3C:
|
|
ldr r0, _08048A7C
|
|
ldr r0, [r0]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _08048A80
|
|
ldr r0, _08048A84
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r3, [r0]
|
|
cmp r3, #7
|
|
bne _08048A90
|
|
bl Random
|
|
ldr r2, _08048A88
|
|
ldr r1, _08048A8C
|
|
ldrb r3, [r1]
|
|
movs r1, #0x58
|
|
muls r3, r1, r3
|
|
adds r2, #0x4c
|
|
adds r3, r3, r2
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, #2
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
b _08048AA4
|
|
.align 2, 0
|
|
_08048A78: .4byte 0x02023F20
|
|
_08048A7C: .4byte 0x02023EB8
|
|
_08048A80: .4byte 0x082ECAB8
|
|
_08048A84: .4byte 0x02023FD6
|
|
_08048A88: .4byte 0x02023D28
|
|
_08048A8C: .4byte 0x02023EB2
|
|
_08048A90:
|
|
ldr r2, _08048AF4
|
|
ldr r0, _08048AF8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
adds r2, #0x4c
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
orrs r0, r3
|
|
str r0, [r1]
|
|
_08048AA4:
|
|
ldr r2, _08048AFC
|
|
ldr r1, _08048B00
|
|
ldr r5, _08048B04
|
|
ldrb r0, [r5, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r4, _08048B08
|
|
ldr r1, _08048AF8
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
ldrb r1, [r1]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
ldr r1, _08048B0C
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r2, _08048B10
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048B18
|
|
movs r0, #1
|
|
strb r0, [r5, #5]
|
|
ldr r0, _08048B14
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
b _08048B1A
|
|
.align 2, 0
|
|
_08048AF4: .4byte 0x02023D28
|
|
_08048AF8: .4byte 0x02023EB2
|
|
_08048AFC: .4byte 0x02023EB8
|
|
_08048B00: .4byte 0x082ECBA8
|
|
_08048B04: .4byte 0x02023FD6
|
|
_08048B08: .4byte 0x02023D08
|
|
_08048B0C: .4byte 0x02023D74
|
|
_08048B10: .4byte 0x02023F24
|
|
_08048B14: .4byte 0xFFFFDFFF
|
|
_08048B18:
|
|
strb r0, [r5, #5]
|
|
_08048B1A:
|
|
ldr r0, _08048B50
|
|
ldrb r2, [r0, #3]
|
|
cmp r2, #2
|
|
beq _08048B32
|
|
cmp r2, #6
|
|
beq _08048B32
|
|
cmp r2, #5
|
|
beq _08048B32
|
|
cmp r2, #3
|
|
beq _08048B32
|
|
bl _080495F8
|
|
_08048B32:
|
|
ldr r0, _08048B54
|
|
ldr r0, [r0]
|
|
adds r0, #0xb2
|
|
ldr r2, _08048B50
|
|
ldrb r1, [r2, #3]
|
|
strb r1, [r0]
|
|
ldr r2, _08048B58
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #7
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_08048B50: .4byte 0x02023FD6
|
|
_08048B54: .4byte 0x02024140
|
|
_08048B58: .4byte 0x02023F24
|
|
_08048B5C:
|
|
mov r3, sl
|
|
cmp r3, #0
|
|
beq _08048B66
|
|
bl _080495F8
|
|
_08048B66:
|
|
ldr r0, _08048B78
|
|
strb r3, [r0, #3]
|
|
ldr r1, _08048B7C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bl _080495F8
|
|
.align 2, 0
|
|
_08048B78: .4byte 0x02023FD6
|
|
_08048B7C: .4byte 0x02023EB8
|
|
_08048B80:
|
|
mov r4, sb
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r1, r1, r0
|
|
ldr r2, _08048BBC
|
|
ldr r0, _08048BC0
|
|
ldrb r3, [r0, #3]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08048BA6
|
|
bl _080495D4
|
|
_08048BA6:
|
|
subs r0, r3, #7
|
|
cmp r0, #0x34
|
|
bls _08048BB0
|
|
bl _080495F2
|
|
_08048BB0:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08048BC4
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08048BBC: .4byte 0x082ECAB8
|
|
_08048BC0: .4byte 0x02023FD6
|
|
_08048BC4: .4byte 0x08048BC8
|
|
_08048BC8: @ jump table
|
|
.4byte _08048C9C @ case 0
|
|
.4byte _08048D10 @ case 1
|
|
.4byte _08048E84 @ case 2
|
|
.4byte _08048D9C @ case 3
|
|
.4byte _08048E18 @ case 4
|
|
.4byte _08048EBC @ case 5
|
|
.4byte _08048F04 @ case 6
|
|
.4byte _08048FD0 @ case 7
|
|
.4byte _08049014 @ case 8
|
|
.4byte _08049014 @ case 9
|
|
.4byte _08049014 @ case 10
|
|
.4byte _08049014 @ case 11
|
|
.4byte _08049014 @ case 12
|
|
.4byte _08049014 @ case 13
|
|
.4byte _08049014 @ case 14
|
|
.4byte _0804905C @ case 15
|
|
.4byte _0804905C @ case 16
|
|
.4byte _0804905C @ case 17
|
|
.4byte _0804905C @ case 18
|
|
.4byte _0804905C @ case 19
|
|
.4byte _0804905C @ case 20
|
|
.4byte _0804905C @ case 21
|
|
.4byte _0804913C @ case 22
|
|
.4byte _08049184 @ case 23
|
|
.4byte _080491A4 @ case 24
|
|
.4byte _08049360 @ case 25
|
|
.4byte _0804939C @ case 26
|
|
.4byte _080493B8 @ case 27
|
|
.4byte _080493D0 @ case 28
|
|
.4byte _080493E8 @ case 29
|
|
.4byte _08049448 @ case 30
|
|
.4byte _08049460 @ case 31
|
|
.4byte _080490A8 @ case 32
|
|
.4byte _080490A8 @ case 33
|
|
.4byte _080490A8 @ case 34
|
|
.4byte _080490A8 @ case 35
|
|
.4byte _080490A8 @ case 36
|
|
.4byte _080490A8 @ case 37
|
|
.4byte _080490A8 @ case 38
|
|
.4byte _080490F0 @ case 39
|
|
.4byte _080490F0 @ case 40
|
|
.4byte _080490F0 @ case 41
|
|
.4byte _080490F0 @ case 42
|
|
.4byte _080490F0 @ case 43
|
|
.4byte _080490F0 @ case 44
|
|
.4byte _080490F0 @ case 45
|
|
.4byte _080494A4 @ case 46
|
|
.4byte _08049500 @ case 47
|
|
.4byte _080495F2 @ case 48
|
|
.4byte _080495F2 @ case 49
|
|
.4byte _080495F2 @ case 50
|
|
.4byte _080495F2 @ case 51
|
|
.4byte _080495E4 @ case 52
|
|
_08048C9C:
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
movs r5, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
mov r2, r8
|
|
adds r0, r1, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x14
|
|
bne _08048CB6
|
|
bl _080495D4
|
|
_08048CB6:
|
|
mov r4, r8
|
|
adds r4, #0x50
|
|
adds r0, r1, r4
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048CCA
|
|
bl _080495D4
|
|
_08048CCA:
|
|
bl Random
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
adds r2, r1, #0
|
|
muls r2, r5, r2
|
|
adds r2, r2, r4
|
|
lsls r0, r0, #0x10
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0xa
|
|
ands r1, r0
|
|
lsrs r1, r1, #0x10
|
|
adds r1, #2
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r4, _08048D04
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _08048D08
|
|
ldr r0, _08048D0C
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl _080495F0
|
|
.align 2, 0
|
|
_08048D04: .4byte 0x02023EB8
|
|
_08048D08: .4byte 0x082ECBA8
|
|
_08048D0C: .4byte 0x02023FD6
|
|
_08048D10:
|
|
mov r4, sb
|
|
ldrb r2, [r4]
|
|
movs r4, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r4, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, #0x27
|
|
bne _08048D54
|
|
cmp r5, #1
|
|
beq _08048D30
|
|
cmp r6, #0x80
|
|
beq _08048D30
|
|
bl _080495D4
|
|
_08048D30:
|
|
ldr r0, _08048D48
|
|
strb r1, [r0]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
movs r1, #0x27
|
|
bl RecordAbilityBattle
|
|
ldr r1, _08048D4C
|
|
ldr r0, _08048D50
|
|
str r0, [r1]
|
|
bl _080495F2
|
|
.align 2, 0
|
|
_08048D48: .4byte 0x02023EAE
|
|
_08048D4C: .4byte 0x02023EB8
|
|
_08048D50: .4byte 0x08289B8B
|
|
_08048D54:
|
|
adds r0, r2, #0
|
|
bl GetBattlerTurnOrderNum
|
|
ldr r1, _08048D90
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhi _08048D6A
|
|
bl _080495D4
|
|
_08048D6A:
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
adds r2, r0, #0
|
|
muls r2, r4, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r1, _08048D94
|
|
ldr r0, _08048D98
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
bl _080495D4
|
|
.align 2, 0
|
|
_08048D90: .4byte 0x02023D26
|
|
_08048D94: .4byte 0x082ECAB8
|
|
_08048D98: .4byte 0x02023FD6
|
|
_08048D9C:
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
mov r4, r8
|
|
adds r4, #0x50
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r0, #0x70
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08048DB8
|
|
bl _080495D4
|
|
_08048DB8:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, _08048E04
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _08048E08
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bl Random
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
adds r2, r1, #0
|
|
muls r2, r5, r2
|
|
adds r2, r2, r4
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, #2
|
|
lsls r1, r1, #4
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r4, _08048E0C
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _08048E10
|
|
ldr r0, _08048E14
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl _080495F0
|
|
.align 2, 0
|
|
_08048E04: .4byte 0x02023F0C
|
|
_08048E08: .4byte 0x02023E8E
|
|
_08048E0C: .4byte 0x02023EB8
|
|
_08048E10: .4byte 0x082ECBA8
|
|
_08048E14: .4byte 0x02023FD6
|
|
_08048E18:
|
|
ldr r5, _08048E68
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08048E50
|
|
ldr r4, _08048E6C
|
|
ldrh r3, [r4]
|
|
ldr r2, _08048E70
|
|
ldrb r1, [r5]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2a
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
adds r0, r3, r0
|
|
strh r0, [r4]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r3, r0
|
|
bls _08048E50
|
|
ldr r3, _08048E74
|
|
adds r0, r3, #0
|
|
strh r0, [r4]
|
|
_08048E50:
|
|
ldr r4, _08048E78
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _08048E7C
|
|
ldr r0, _08048E80
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08048E68: .4byte 0x02023EAF
|
|
_08048E6C: .4byte 0x02023FD2
|
|
_08048E70: .4byte 0x02023D28
|
|
_08048E74: .4byte 0x0000FFFF
|
|
_08048E78: .4byte 0x02023EB8
|
|
_08048E7C: .4byte 0x082ECBA8
|
|
_08048E80: .4byte 0x02023FD6
|
|
_08048E84:
|
|
mov r4, sb
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, r8
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08048E9A
|
|
b _080495D4
|
|
_08048E9A:
|
|
bl Random
|
|
ldr r4, _08048EB8
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #3
|
|
bl __umodsi3
|
|
adds r0, #3
|
|
strb r0, [r4, #3]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl SetMoveEffect
|
|
b _080495F2
|
|
.align 2, 0
|
|
_08048EB8: .4byte 0x02023FD6
|
|
_08048EBC:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08048EF8
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _08048EFC
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
ldr r0, _08048F00
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #1]
|
|
movs r2, #4
|
|
orrs r0, r2
|
|
strb r0, [r1, #1]
|
|
b _080495D4
|
|
.align 2, 0
|
|
_08048EF8: .4byte 0x02023F0C
|
|
_08048EFC: .4byte 0x02023E8E
|
|
_08048F00: .4byte 0x02023FE0
|
|
_08048F04:
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
mov r4, r8
|
|
adds r4, #0x50
|
|
adds r0, r0, r4
|
|
ldr r5, [r0]
|
|
movs r0, #0xe0
|
|
lsls r0, r0, #8
|
|
ands r5, r0
|
|
cmp r5, #0
|
|
beq _08048F20
|
|
b _080495D4
|
|
_08048F20:
|
|
bl Random
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
adds r2, r1, #0
|
|
muls r2, r6, r2
|
|
adds r2, r2, r4
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, #3
|
|
lsls r1, r1, #0xd
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
ldr r2, _08048FB4
|
|
ldr r0, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldr r6, _08048FB8
|
|
ldrh r0, [r6]
|
|
strb r0, [r1, #4]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r6]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #5]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
adds r1, r1, r0
|
|
ldr r0, _08048FBC
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #0x14]
|
|
ldr r4, _08048FC0
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _08048FC4
|
|
ldr r2, _08048FC8
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
strb r5, [r2, #5]
|
|
ldr r3, _08048FCC
|
|
ldrh r0, [r3]
|
|
ldrh r4, [r6]
|
|
cmp r0, r4
|
|
bne _08048F8E
|
|
b _080495F2
|
|
_08048F8E:
|
|
adds r1, r2, #0
|
|
adds r2, r6, #0
|
|
_08048F92:
|
|
ldrb r0, [r1, #5]
|
|
adds r0, #1
|
|
strb r0, [r1, #5]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #4
|
|
bls _08048FA2
|
|
b _080495F2
|
|
_08048FA2:
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
ldrh r4, [r2]
|
|
cmp r0, r4
|
|
bne _08048F92
|
|
b _080495F2
|
|
.align 2, 0
|
|
_08048FB4: .4byte 0x02024140
|
|
_08048FB8: .4byte 0x02023E8E
|
|
_08048FBC: .4byte 0x02023EAF
|
|
_08048FC0: .4byte 0x02023EB8
|
|
_08048FC4: .4byte 0x082ECBA8
|
|
_08048FC8: .4byte 0x02023FD6
|
|
_08048FCC: .4byte 0x085ABAEE
|
|
_08048FD0:
|
|
ldr r1, _08049000
|
|
ldr r0, _08049004
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bge _08048FDC
|
|
adds r0, #3
|
|
_08048FDC:
|
|
asrs r0, r0, #2
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _08048FE8
|
|
movs r0, #1
|
|
str r0, [r1]
|
|
_08048FE8:
|
|
ldr r4, _08049008
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _0804900C
|
|
ldr r0, _08049010
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08049000: .4byte 0x02023E94
|
|
_08049004: .4byte 0x02023E98
|
|
_08049008: .4byte 0x02023EB8
|
|
_0804900C: .4byte 0x082ECBA8
|
|
_08049010: .4byte 0x02023FD6
|
|
_08049014:
|
|
ldr r4, _0804904C
|
|
ldrb r1, [r4, #3]
|
|
adds r1, #0xf2
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
movs r0, #0x10
|
|
adds r2, r7, #0
|
|
movs r3, #0
|
|
bl ChangeStatBuffs
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _08049032
|
|
b _080495D4
|
|
_08049032:
|
|
ldr r2, _08049050
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
strb r0, [r2, #0x10]
|
|
strb r3, [r2, #0x11]
|
|
ldr r4, _08049054
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _08049058
|
|
b _080495F0
|
|
.align 2, 0
|
|
_0804904C: .4byte 0x02023FD6
|
|
_08049050: .4byte 0x02024118
|
|
_08049054: .4byte 0x02023EB8
|
|
_08049058: .4byte 0x0828725C
|
|
_0804905C:
|
|
movs r0, #0x70
|
|
rsbs r0, r0, #0
|
|
ldr r4, _08049098
|
|
ldrb r1, [r4, #3]
|
|
adds r1, #0xeb
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r2, r7, #0
|
|
movs r3, #0
|
|
bl ChangeStatBuffs
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _0804907C
|
|
b _080495D4
|
|
_0804907C:
|
|
ldr r2, _0804909C
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
strb r0, [r2, #0x10]
|
|
strb r3, [r2, #0x11]
|
|
ldr r4, _080490A0
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080490A4
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08049098: .4byte 0x02023FD6
|
|
_0804909C: .4byte 0x02024118
|
|
_080490A0: .4byte 0x02023EB8
|
|
_080490A4: .4byte 0x082872ED
|
|
_080490A8:
|
|
ldr r4, _080490E0
|
|
ldrb r1, [r4, #3]
|
|
adds r1, #0xda
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
movs r0, #0x20
|
|
adds r2, r7, #0
|
|
movs r3, #0
|
|
bl ChangeStatBuffs
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _080490C6
|
|
b _080495D4
|
|
_080490C6:
|
|
ldr r2, _080490E4
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
strb r0, [r2, #0x10]
|
|
strb r3, [r2, #0x11]
|
|
ldr r4, _080490E8
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080490EC
|
|
b _080495F0
|
|
.align 2, 0
|
|
_080490E0: .4byte 0x02023FD6
|
|
_080490E4: .4byte 0x02024118
|
|
_080490E8: .4byte 0x02023EB8
|
|
_080490EC: .4byte 0x0828725C
|
|
_080490F0:
|
|
movs r0, #0x60
|
|
rsbs r0, r0, #0
|
|
ldr r4, _0804912C
|
|
ldrb r1, [r4, #3]
|
|
adds r1, #0xd3
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r2, r7, #0
|
|
movs r3, #0
|
|
bl ChangeStatBuffs
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _08049110
|
|
b _080495D4
|
|
_08049110:
|
|
ldr r2, _08049130
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
strb r0, [r2, #0x10]
|
|
strb r3, [r2, #0x11]
|
|
ldr r4, _08049134
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _08049138
|
|
b _080495F0
|
|
.align 2, 0
|
|
_0804912C: .4byte 0x02023FD6
|
|
_08049130: .4byte 0x02024118
|
|
_08049134: .4byte 0x02023EB8
|
|
_08049138: .4byte 0x082872ED
|
|
_0804913C:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _08049178
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #2
|
|
strb r1, [r0, #0x19]
|
|
ldr r1, _0804917C
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _08049180
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _080495D4
|
|
.align 2, 0
|
|
_08049178: .4byte 0x02023F60
|
|
_0804917C: .4byte 0x02023F0C
|
|
_08049180: .4byte 0x02023E8E
|
|
_08049184:
|
|
ldr r0, _080491A0
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x10
|
|
_0804919A:
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _080495D4
|
|
.align 2, 0
|
|
_080491A0: .4byte 0x02023EAF
|
|
_080491A4:
|
|
ldr r5, _080491DC
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x13
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080491B4
|
|
b _080495D4
|
|
_080491B4:
|
|
ldr r6, _080491E0
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _080491E8
|
|
ldr r0, [r5]
|
|
ldr r1, _080491E4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08049214
|
|
b _080495D4
|
|
.align 2, 0
|
|
_080491DC: .4byte 0x02022C90
|
|
_080491E0: .4byte 0x02023EAF
|
|
_080491E4: .4byte 0x0A3F0902
|
|
_080491E8:
|
|
ldr r0, [r5]
|
|
ldr r1, _08049258
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08049214
|
|
ldr r0, _0804925C
|
|
adds r0, #0x29
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
ldr r3, _08049260
|
|
ldr r2, _08049264
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08049214
|
|
b _080495D4
|
|
_08049214:
|
|
ldr r2, _08049268
|
|
ldr r1, _0804926C
|
|
ldrb r0, [r1]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, #0x2e]
|
|
adds r7, r1, #0
|
|
mov r8, r2
|
|
cmp r0, #0
|
|
beq _0804927C
|
|
adds r0, r4, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x3c
|
|
bne _0804927C
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08049270
|
|
ldr r0, _08049274
|
|
str r0, [r1]
|
|
ldr r1, _08049278
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
b _080495F2
|
|
.align 2, 0
|
|
_08049258: .4byte 0x0A3F0902
|
|
_0804925C: .4byte 0x02024074
|
|
_08049260: .4byte 0x082FACB4
|
|
_08049264: .4byte 0x02023D12
|
|
_08049268: .4byte 0x02023D28
|
|
_0804926C: .4byte 0x02023EB0
|
|
_08049270: .4byte 0x02023EB8
|
|
_08049274: .4byte 0x08289C0A
|
|
_08049278: .4byte 0x02023EAE
|
|
_0804927C:
|
|
ldr r4, _08049348
|
|
mov sl, r4
|
|
ldrb r2, [r4]
|
|
movs r0, #0x58
|
|
mov sb, r0
|
|
mov r0, sb
|
|
muls r0, r2, r0
|
|
add r0, r8
|
|
ldrh r4, [r0, #0x2e]
|
|
cmp r4, #0
|
|
beq _08049294
|
|
b _080495D4
|
|
_08049294:
|
|
ldrb r0, [r7]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
add r0, r8
|
|
ldrh r3, [r0, #0x2e]
|
|
adds r1, r3, #0
|
|
cmp r1, #0xaf
|
|
bne _080492A8
|
|
b _080495D4
|
|
_080492A8:
|
|
adds r0, r3, #0
|
|
subs r0, #0x79
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0xb
|
|
bhi _080492B6
|
|
b _080495D4
|
|
_080492B6:
|
|
cmp r1, #0
|
|
bne _080492BC
|
|
b _080495D4
|
|
_080492BC:
|
|
ldr r5, _0804934C
|
|
lsls r0, r2, #1
|
|
adds r0, #0xd0
|
|
ldr r1, [r5]
|
|
adds r1, r1, r0
|
|
ldr r2, _08049350
|
|
strh r3, [r1]
|
|
strh r3, [r2]
|
|
ldrb r0, [r7]
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
add r0, r8
|
|
movs r6, #0
|
|
strh r4, [r0, #0x2e]
|
|
ldr r4, _08049354
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
str r2, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldrb r0, [r7]
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
mov r1, r8
|
|
adds r1, #0x2e
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r4, _08049358
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0804935C
|
|
str r0, [r4]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc8
|
|
strb r6, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc9
|
|
strb r6, [r0]
|
|
b _080495F2
|
|
.align 2, 0
|
|
_08049348: .4byte 0x02023EAF
|
|
_0804934C: .4byte 0x02024140
|
|
_08049350: .4byte 0x02023EAC
|
|
_08049354: .4byte 0x02023D08
|
|
_08049358: .4byte 0x02023EB8
|
|
_0804935C: .4byte 0x082899AA
|
|
_08049360:
|
|
ldr r3, _08049390
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x13
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _08049394
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r1, _08049398
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, #0x14]
|
|
b _080495D4
|
|
.align 2, 0
|
|
_08049390: .4byte 0x02023EB0
|
|
_08049394: .4byte 0x02023F60
|
|
_08049398: .4byte 0x02023EAF
|
|
_0804939C:
|
|
ldr r0, _080493B4
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
mov r0, r8
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x14
|
|
b _0804919A
|
|
.align 2, 0
|
|
_080493B4: .4byte 0x02023EB0
|
|
_080493B8:
|
|
ldr r4, _080493C8
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080493CC
|
|
b _080495F0
|
|
.align 2, 0
|
|
_080493C8: .4byte 0x02023EB8
|
|
_080493CC: .4byte 0x082894AF
|
|
_080493D0:
|
|
ldr r4, _080493E0
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080493E4
|
|
b _080495F0
|
|
.align 2, 0
|
|
_080493E0: .4byte 0x02023EB8
|
|
_080493E4: .4byte 0x0828954B
|
|
_080493E8:
|
|
ldr r6, _08049438
|
|
ldrb r0, [r6]
|
|
movs r2, #0x58
|
|
muls r0, r2, r0
|
|
mov r1, r8
|
|
adds r1, #0x4c
|
|
adds r5, r0, r1
|
|
ldr r4, [r5]
|
|
movs r0, #0x40
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _08049402
|
|
b _080495D4
|
|
_08049402:
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r4, r0
|
|
str r4, [r5]
|
|
ldr r4, _0804943C
|
|
ldrb r0, [r6]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r4, _08049440
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _08049444
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08049438: .4byte 0x02023EB0
|
|
_0804943C: .4byte 0x02023D08
|
|
_08049440: .4byte 0x02023EB8
|
|
_08049444: .4byte 0x082898E9
|
|
_08049448:
|
|
ldr r4, _08049458
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0804945C
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08049458: .4byte 0x02023EB8
|
|
_0804945C: .4byte 0x0828969F
|
|
_08049460:
|
|
ldr r4, _08049490
|
|
ldr r0, _08049494
|
|
ldr r0, [r0]
|
|
movs r1, #3
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, #0
|
|
bne _08049476
|
|
movs r0, #1
|
|
str r0, [r4]
|
|
_08049476:
|
|
ldr r4, _08049498
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r1, _0804949C
|
|
ldr r0, _080494A0
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
b _080495F0
|
|
.align 2, 0
|
|
_08049490: .4byte 0x02023E94
|
|
_08049494: .4byte 0x02023E98
|
|
_08049498: .4byte 0x02023EB8
|
|
_0804949C: .4byte 0x082ECBA8
|
|
_080494A0: .4byte 0x02023FD6
|
|
_080494A4:
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
mov r4, r8
|
|
adds r4, #0x50
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080494C0
|
|
b _080495D4
|
|
_080494C0:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, _080494F8
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _080494FC
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bl Random
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
adds r2, r1, #0
|
|
muls r2, r5, r2
|
|
adds r2, r2, r4
|
|
movs r1, #1
|
|
ands r1, r0
|
|
adds r1, #2
|
|
lsls r1, r1, #0xa
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _080495F2
|
|
.align 2, 0
|
|
_080494F8: .4byte 0x02023F0C
|
|
_080494FC: .4byte 0x02023E8E
|
|
_08049500:
|
|
mov r4, sb
|
|
ldrb r3, [r4]
|
|
movs r5, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r5, r0
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, #0x3c
|
|
bne _08049540
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0
|
|
beq _080495D4
|
|
ldr r0, _08049534
|
|
strb r2, [r0]
|
|
ldr r1, _08049538
|
|
ldr r0, _0804953C
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
movs r1, #0x3c
|
|
bl RecordAbilityBattle
|
|
b _080495F2
|
|
.align 2, 0
|
|
_08049534: .4byte 0x02023EAE
|
|
_08049538: .4byte 0x02023EB8
|
|
_0804953C: .4byte 0x08289BC7
|
|
_08049540:
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0
|
|
beq _080495D4
|
|
adds r0, r3, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r1, _080495B8
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
ldrb r0, [r3]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
movs r5, #0
|
|
movs r1, #0
|
|
strh r1, [r0, #0x2e]
|
|
ldr r2, _080495BC
|
|
adds r2, #0x29
|
|
adds r2, r4, r2
|
|
ldr r3, _080495C0
|
|
ldr r1, _080495C4
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r4, _080495C8
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _080495CC
|
|
str r0, [r4]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r2, _080495D0
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc8
|
|
strb r5, [r0]
|
|
mov r3, sb
|
|
ldrb r0, [r3]
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc9
|
|
strb r5, [r0]
|
|
b _080495F2
|
|
.align 2, 0
|
|
_080495B8: .4byte 0x02023EAC
|
|
_080495BC: .4byte 0x02024074
|
|
_080495C0: .4byte 0x082FACB4
|
|
_080495C4: .4byte 0x02023D12
|
|
_080495C8: .4byte 0x02023EB8
|
|
_080495CC: .4byte 0x082896F0
|
|
_080495D0: .4byte 0x02024140
|
|
_080495D4:
|
|
ldr r1, _080495E0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
b _080495F2
|
|
.align 2, 0
|
|
_080495E0: .4byte 0x02023EB8
|
|
_080495E4:
|
|
ldr r4, _08049608
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0804960C
|
|
_080495F0:
|
|
str r0, [r4]
|
|
_080495F2:
|
|
ldr r1, _08049610
|
|
movs r0, #0
|
|
strb r0, [r1, #3]
|
|
_080495F8:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049608: .4byte 0x02023EB8
|
|
_0804960C: .4byte 0x0828975D
|
|
_08049610: .4byte 0x02023FD6
|
|
thumb_func_end SetMoveEffect
|
|
|
|
thumb_func_start atk15_seteffectwithchance
|
|
atk15_seteffectwithchance: @ 0x08049614
|
|
push {r4, lr}
|
|
ldr r2, _08049640
|
|
ldr r0, _08049644
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x20
|
|
bne _08049650
|
|
ldr r2, _08049648
|
|
ldr r0, _0804964C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #5]
|
|
lsls r4, r0, #1
|
|
b _08049660
|
|
.align 2, 0
|
|
_08049640: .4byte 0x02023D28
|
|
_08049644: .4byte 0x02023EAF
|
|
_08049648: .4byte 0x082ED220
|
|
_0804964C: .4byte 0x02023E8E
|
|
_08049650:
|
|
ldr r2, _08049680
|
|
ldr r0, _08049684
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r4, [r0, #5]
|
|
_08049660:
|
|
ldr r3, _08049688
|
|
ldrb r2, [r3, #3]
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08049690
|
|
ldr r0, _0804968C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08049690
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
strb r0, [r3, #3]
|
|
b _080496BE
|
|
.align 2, 0
|
|
_08049680: .4byte 0x082ED220
|
|
_08049684: .4byte 0x02023E8E
|
|
_08049688: .4byte 0x02023FD6
|
|
_0804968C: .4byte 0x02023F20
|
|
_08049690:
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r4
|
|
bhs _080496DA
|
|
ldr r0, _080496C8
|
|
ldrb r0, [r0, #3]
|
|
cmp r0, #0
|
|
beq _080496DA
|
|
ldr r0, _080496CC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080496DA
|
|
cmp r4, #0x63
|
|
bls _080496D0
|
|
_080496BE:
|
|
movs r0, #0
|
|
movs r1, #0x80
|
|
bl SetMoveEffect
|
|
b _080496E2
|
|
.align 2, 0
|
|
_080496C8: .4byte 0x02023FD6
|
|
_080496CC: .4byte 0x02023F20
|
|
_080496D0:
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl SetMoveEffect
|
|
b _080496E2
|
|
_080496DA:
|
|
ldr r1, _080496F4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_080496E2:
|
|
ldr r0, _080496F8
|
|
movs r1, #0
|
|
strb r1, [r0, #3]
|
|
ldr r0, _080496FC
|
|
strb r1, [r0, #0x16]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080496F4: .4byte 0x02023EB8
|
|
_080496F8: .4byte 0x02023FD6
|
|
_080496FC: .4byte 0x02024118
|
|
thumb_func_end atk15_seteffectwithchance
|
|
|
|
thumb_func_start atk16_seteffectprimary
|
|
atk16_seteffectprimary: @ 0x08049700
|
|
push {lr}
|
|
movs r0, #1
|
|
movs r1, #0
|
|
bl SetMoveEffect
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk16_seteffectprimary
|
|
|
|
thumb_func_start atk17_seteffectsecondary
|
|
atk17_seteffectsecondary: @ 0x08049710
|
|
push {lr}
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl SetMoveEffect
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk17_seteffectsecondary
|
|
|
|
thumb_func_start atk18_clearstatusfromeffect
|
|
atk18_clearstatusfromeffect: @ 0x08049720
|
|
push {lr}
|
|
ldr r0, _08049744
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r2, _08049748
|
|
strb r0, [r2]
|
|
ldr r3, _0804974C
|
|
ldrb r0, [r3, #3]
|
|
cmp r0, #6
|
|
bhi _08049754
|
|
ldr r1, _08049750
|
|
ldrb r2, [r2]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, #0x4c
|
|
b _0804975E
|
|
.align 2, 0
|
|
_08049744: .4byte 0x02023EB8
|
|
_08049748: .4byte 0x02023D08
|
|
_0804974C: .4byte 0x02023FD6
|
|
_08049750: .4byte 0x02023D28
|
|
_08049754:
|
|
ldr r1, _08049788
|
|
ldrb r2, [r2]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, #0x50
|
|
_0804975E:
|
|
adds r2, r2, r1
|
|
ldr r1, _0804978C
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _08049790
|
|
movs r2, #0
|
|
strb r2, [r0, #3]
|
|
ldr r1, _08049794
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
ldr r0, _08049798
|
|
strb r2, [r0, #0x16]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049788: .4byte 0x02023D28
|
|
_0804978C: .4byte 0x082ECAB8
|
|
_08049790: .4byte 0x02023FD6
|
|
_08049794: .4byte 0x02023EB8
|
|
_08049798: .4byte 0x02024118
|
|
thumb_func_end atk18_clearstatusfromeffect
|
|
|
|
thumb_func_start atk19_tryfaintmon
|
|
atk19_tryfaintmon: @ 0x0804979C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
ldr r0, _08049808
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #2]
|
|
adds r6, r0, #0
|
|
cmp r1, #0
|
|
beq _08049820
|
|
ldrb r0, [r2, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _0804980C
|
|
strb r0, [r5]
|
|
ldr r2, _08049810
|
|
ldr r1, _08049814
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080497D4
|
|
b _08049A6C
|
|
_080497D4:
|
|
ldr r1, [r6]
|
|
ldrb r4, [r1, #3]
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #6]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
bl HandleAction_RunBattleScript
|
|
str r4, [r6]
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
ldr r1, _08049818
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
ldr r1, _0804981C
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
b _08049A72
|
|
.align 2, 0
|
|
_08049808: .4byte 0x02023EB8
|
|
_0804980C: .4byte 0x02023D08
|
|
_08049810: .4byte 0x02023F24
|
|
_08049814: .4byte 0x082FACB4
|
|
_08049818: .4byte 0x02023F32
|
|
_0804981C: .4byte 0x0000FDFF
|
|
_08049820:
|
|
ldrb r0, [r2, #1]
|
|
cmp r0, #1
|
|
bne _08049848
|
|
ldr r1, _08049838
|
|
ldr r0, _0804983C
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _08049840
|
|
ldrb r0, [r0]
|
|
mov sb, r0
|
|
ldr r4, _08049844
|
|
b _08049858
|
|
.align 2, 0
|
|
_08049838: .4byte 0x02023D08
|
|
_0804983C: .4byte 0x02023EAF
|
|
_08049840: .4byte 0x02023EB0
|
|
_08049844: .4byte 0x08288D32
|
|
_08049848:
|
|
ldr r1, _080498C0
|
|
ldr r0, _080498C4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _080498C8
|
|
ldrb r0, [r0]
|
|
mov sb, r0
|
|
ldr r4, _080498CC
|
|
_08049858:
|
|
mov r8, r1
|
|
ldr r0, _080498D0
|
|
ldrb r1, [r0]
|
|
ldr r2, _080498D4
|
|
mov r7, r8
|
|
ldrb r3, [r7]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r2, [r0]
|
|
ands r1, r2
|
|
cmp r1, #0
|
|
beq _08049872
|
|
b _08049A6C
|
|
_08049872:
|
|
ldr r1, _080498D8
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08049882
|
|
b _08049A6C
|
|
_08049882:
|
|
ldr r5, _080498DC
|
|
lsls r1, r2, #0x1c
|
|
ldr r0, [r5]
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
ldr r0, [r6]
|
|
adds r0, #7
|
|
bl BattleScriptPush
|
|
str r4, [r6]
|
|
ldrb r0, [r7]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080498E4
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
ldr r1, _080498E0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xfe
|
|
bhi _080498B8
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
_080498B8:
|
|
ldrb r0, [r7]
|
|
bl AdjustFriendshipOnBattleFaint
|
|
b _0804990E
|
|
.align 2, 0
|
|
_080498C0: .4byte 0x02023D08
|
|
_080498C4: .4byte 0x02023EB0
|
|
_080498C8: .4byte 0x02023EAF
|
|
_080498CC: .4byte 0x08288D3F
|
|
_080498D0: .4byte 0x02023EB4
|
|
_080498D4: .4byte 0x082FACB4
|
|
_080498D8: .4byte 0x02023D28
|
|
_080498DC: .4byte 0x02023F24
|
|
_080498E0: .4byte 0x03005A70
|
|
_080498E4:
|
|
ldr r4, _08049A2C
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0xfe
|
|
bhi _080498F0
|
|
adds r0, #1
|
|
strb r0, [r4, #1]
|
|
_080498F0:
|
|
ldr r1, _08049A30
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08049A34
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
movs r2, #0
|
|
bl GetMonData
|
|
strh r0, [r4, #0x20]
|
|
_0804990E:
|
|
ldr r2, _08049A38
|
|
ldr r1, [r2]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804994C
|
|
ldr r6, _08049A3C
|
|
ldr r0, _08049A40
|
|
ldrb r0, [r0]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0804994C
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldr r4, _08049A44
|
|
ldr r0, [r4]
|
|
bl BattleScriptPush
|
|
ldr r1, _08049A48
|
|
mov r0, sb
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
str r0, [r1]
|
|
ldr r0, _08049A4C
|
|
str r0, [r4]
|
|
_0804994C:
|
|
ldr r1, _08049A50
|
|
ldr r6, _08049A54
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08049964
|
|
b _08049A72
|
|
_08049964:
|
|
ldr r0, _08049A38
|
|
ldr r5, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
ands r5, r0
|
|
cmp r5, #0
|
|
beq _08049974
|
|
b _08049A72
|
|
_08049974:
|
|
ldr r3, _08049A40
|
|
mov r8, r3
|
|
ldrb r0, [r3]
|
|
bl GetBattlerSide
|
|
adds r4, r0, #0
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r4, r4, #0x18
|
|
lsls r0, r0, #0x18
|
|
cmp r4, r0
|
|
beq _08049A72
|
|
ldr r0, _08049A3C
|
|
mov sb, r0
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r7, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r7, r2
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08049A72
|
|
ldr r0, _08049A58
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xa5
|
|
beq _08049A72
|
|
ldr r0, _08049A5C
|
|
ldr r0, [r0]
|
|
adds r0, r1, r0
|
|
adds r0, #0x80
|
|
ldrb r4, [r0]
|
|
adds r0, r4, r2
|
|
mov r6, sb
|
|
adds r6, #0x24
|
|
adds r0, r0, r6
|
|
strb r5, [r0]
|
|
ldr r5, _08049A44
|
|
ldr r0, [r5]
|
|
bl BattleScriptPush
|
|
ldr r0, _08049A60
|
|
str r0, [r5]
|
|
ldr r5, _08049A64
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
strb r0, [r5]
|
|
adds r1, r4, #0
|
|
adds r1, #9
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
ldrb r0, [r5]
|
|
muls r0, r7, r0
|
|
adds r0, r0, r6
|
|
adds r0, r0, r4
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r2, #0
|
|
movs r3, #1
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08049A68
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
lsls r4, r4, #1
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
muls r0, r7, r0
|
|
adds r0, r4, r0
|
|
mov r2, sb
|
|
adds r2, #0xc
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
muls r0, r7, r0
|
|
adds r4, r4, r0
|
|
adds r4, r4, r2
|
|
ldrh r0, [r4]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
b _08049A72
|
|
.align 2, 0
|
|
_08049A2C: .4byte 0x03005A70
|
|
_08049A30: .4byte 0x02023D12
|
|
_08049A34: .4byte 0x020243E8
|
|
_08049A38: .4byte 0x02023F24
|
|
_08049A3C: .4byte 0x02023D28
|
|
_08049A40: .4byte 0x02023EAF
|
|
_08049A44: .4byte 0x02023EB8
|
|
_08049A48: .4byte 0x02023E94
|
|
_08049A4C: .4byte 0x082893C6
|
|
_08049A50: .4byte 0x02023F50
|
|
_08049A54: .4byte 0x02023EB0
|
|
_08049A58: .4byte 0x02023E8E
|
|
_08049A5C: .4byte 0x02024140
|
|
_08049A60: .4byte 0x08289715
|
|
_08049A64: .4byte 0x02023D08
|
|
_08049A68: .4byte 0x02022C0C
|
|
_08049A6C:
|
|
ldr r0, [r6]
|
|
adds r0, #7
|
|
str r0, [r6]
|
|
_08049A72:
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk19_tryfaintmon
|
|
|
|
thumb_func_start atk1A_dofaintanimation
|
|
atk1A_dofaintanimation: @ 0x08049A80
|
|
push {r4, r5, lr}
|
|
ldr r0, _08049AB0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08049AAA
|
|
ldr r5, _08049AB4
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _08049AB8
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitFaintAnimation
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
_08049AAA:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049AB0: .4byte 0x02023D0C
|
|
_08049AB4: .4byte 0x02023EB8
|
|
_08049AB8: .4byte 0x02023D08
|
|
thumb_func_end atk1A_dofaintanimation
|
|
|
|
thumb_func_start atk1B_cleareffectsonfaint
|
|
atk1B_cleareffectsonfaint: @ 0x08049ABC
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
ldr r0, _08049B30
|
|
ldr r5, [r0]
|
|
cmp r5, #0
|
|
bne _08049B28
|
|
ldr r0, _08049B34
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _08049B38
|
|
strb r0, [r4]
|
|
ldr r0, _08049B3C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08049AF4
|
|
ldr r2, _08049B40
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _08049B1C
|
|
_08049AF4:
|
|
ldr r1, _08049B40
|
|
ldrb r0, [r4]
|
|
movs r2, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
str r5, [r0]
|
|
ldrb r0, [r4]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_08049B1C:
|
|
bl FaintClearSetData
|
|
ldr r1, _08049B34
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_08049B28:
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049B30: .4byte 0x02023D0C
|
|
_08049B34: .4byte 0x02023EB8
|
|
_08049B38: .4byte 0x02023D08
|
|
_08049B3C: .4byte 0x02022C90
|
|
_08049B40: .4byte 0x02023D28
|
|
thumb_func_end atk1B_cleareffectsonfaint
|
|
|
|
thumb_func_start atk1C_jumpifstatus
|
|
atk1C_jumpifstatus: @ 0x08049B44
|
|
push {r4, r5, lr}
|
|
ldr r5, _08049BA0
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, [r5]
|
|
ldrb r4, [r2, #2]
|
|
ldrb r1, [r2, #3]
|
|
lsls r1, r1, #8
|
|
adds r4, r4, r1
|
|
ldrb r1, [r2, #4]
|
|
lsls r1, r1, #0x10
|
|
adds r4, r4, r1
|
|
ldrb r1, [r2, #5]
|
|
lsls r1, r1, #0x18
|
|
adds r4, r4, r1
|
|
ldrb r3, [r2, #6]
|
|
ldrb r1, [r2, #7]
|
|
lsls r1, r1, #8
|
|
adds r3, r3, r1
|
|
ldrb r1, [r2, #8]
|
|
lsls r1, r1, #0x10
|
|
adds r3, r3, r1
|
|
ldrb r1, [r2, #9]
|
|
lsls r1, r1, #0x18
|
|
adds r3, r3, r1
|
|
ldr r2, _08049BA4
|
|
movs r1, #0x58
|
|
muls r1, r0, r1
|
|
adds r0, r2, #0
|
|
adds r0, #0x4c
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _08049BA8
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08049BA8
|
|
str r3, [r5]
|
|
b _08049BB0
|
|
.align 2, 0
|
|
_08049BA0: .4byte 0x02023EB8
|
|
_08049BA4: .4byte 0x02023D28
|
|
_08049BA8:
|
|
ldr r1, _08049BB8
|
|
ldr r0, [r1]
|
|
adds r0, #0xa
|
|
str r0, [r1]
|
|
_08049BB0:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049BB8: .4byte 0x02023EB8
|
|
thumb_func_end atk1C_jumpifstatus
|
|
|
|
thumb_func_start atk1D_jumpifstatus2
|
|
atk1D_jumpifstatus2: @ 0x08049BBC
|
|
push {r4, r5, lr}
|
|
ldr r5, _08049C18
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, [r5]
|
|
ldrb r4, [r2, #2]
|
|
ldrb r1, [r2, #3]
|
|
lsls r1, r1, #8
|
|
adds r4, r4, r1
|
|
ldrb r1, [r2, #4]
|
|
lsls r1, r1, #0x10
|
|
adds r4, r4, r1
|
|
ldrb r1, [r2, #5]
|
|
lsls r1, r1, #0x18
|
|
adds r4, r4, r1
|
|
ldrb r3, [r2, #6]
|
|
ldrb r1, [r2, #7]
|
|
lsls r1, r1, #8
|
|
adds r3, r3, r1
|
|
ldrb r1, [r2, #8]
|
|
lsls r1, r1, #0x10
|
|
adds r3, r3, r1
|
|
ldrb r1, [r2, #9]
|
|
lsls r1, r1, #0x18
|
|
adds r3, r3, r1
|
|
ldr r2, _08049C1C
|
|
movs r1, #0x58
|
|
muls r1, r0, r1
|
|
adds r0, r2, #0
|
|
adds r0, #0x50
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _08049C20
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08049C20
|
|
str r3, [r5]
|
|
b _08049C28
|
|
.align 2, 0
|
|
_08049C18: .4byte 0x02023EB8
|
|
_08049C1C: .4byte 0x02023D28
|
|
_08049C20:
|
|
ldr r1, _08049C30
|
|
ldr r0, [r1]
|
|
adds r0, #0xa
|
|
str r0, [r1]
|
|
_08049C28:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049C30: .4byte 0x02023EB8
|
|
thumb_func_end atk1D_jumpifstatus2
|
|
|
|
thumb_func_start atk1E_jumpifability
|
|
atk1E_jumpifability: @ 0x08049C34
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #4
|
|
ldr r6, _08049C88
|
|
ldr r2, [r6]
|
|
ldrb r5, [r2, #2]
|
|
mov r8, r5
|
|
ldrb r1, [r2, #3]
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #0x18
|
|
adds r7, r1, r0
|
|
ldrb r0, [r2, #1]
|
|
cmp r0, #8
|
|
bne _08049C94
|
|
ldr r0, _08049C8C
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0xd
|
|
adds r2, r5, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _08049D08
|
|
ldr r1, _08049C90
|
|
strb r5, [r1]
|
|
str r7, [r6]
|
|
subs r4, #1
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
b _08049CF0
|
|
.align 2, 0
|
|
_08049C88: .4byte 0x02023EB8
|
|
_08049C8C: .4byte 0x02023EAF
|
|
_08049C90: .4byte 0x02023EAE
|
|
_08049C94:
|
|
cmp r0, #9
|
|
bne _08049CCC
|
|
ldr r0, _08049CC4
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0xc
|
|
adds r2, r5, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _08049D08
|
|
ldr r1, _08049CC8
|
|
strb r5, [r1]
|
|
str r7, [r6]
|
|
subs r4, #1
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
b _08049CF0
|
|
.align 2, 0
|
|
_08049CC4: .4byte 0x02023EAF
|
|
_08049CC8: .4byte 0x02023EAE
|
|
_08049CCC:
|
|
ldrb r0, [r2, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r1, _08049CFC
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r1
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, r8
|
|
bne _08049D08
|
|
ldr r0, _08049D00
|
|
strb r1, [r0]
|
|
str r7, [r6]
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
_08049CF0:
|
|
bl RecordAbilityBattle
|
|
ldr r0, _08049D04
|
|
strb r4, [r0, #0x15]
|
|
b _08049D0E
|
|
.align 2, 0
|
|
_08049CFC: .4byte 0x02023D28
|
|
_08049D00: .4byte 0x02023EAE
|
|
_08049D04: .4byte 0x02024118
|
|
_08049D08:
|
|
ldr r0, [r6]
|
|
adds r0, #7
|
|
str r0, [r6]
|
|
_08049D0E:
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk1E_jumpifability
|
|
|
|
thumb_func_start atk1F_jumpifsideaffecting
|
|
atk1F_jumpifsideaffecting: @ 0x08049D1C
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _08049D34
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, #1]
|
|
cmp r4, #1
|
|
bne _08049D3C
|
|
ldr r0, _08049D38
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
b _08049D46
|
|
.align 2, 0
|
|
_08049D34: .4byte 0x02023EB8
|
|
_08049D38: .4byte 0x02023EAF
|
|
_08049D3C:
|
|
ldr r0, _08049D7C
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
movs r4, #1
|
|
_08049D46:
|
|
ands r4, r0
|
|
ldr r6, _08049D80
|
|
ldr r3, [r6]
|
|
ldrb r2, [r3, #2]
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrb r1, [r3, #4]
|
|
ldrb r0, [r3, #5]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #6]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #7]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r1, r0
|
|
ldr r1, _08049D84
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08049D88
|
|
str r5, [r6]
|
|
b _08049D8E
|
|
.align 2, 0
|
|
_08049D7C: .4byte 0x02023EB0
|
|
_08049D80: .4byte 0x02023EB8
|
|
_08049D84: .4byte 0x02023F32
|
|
_08049D88:
|
|
adds r0, r3, #0
|
|
adds r0, #8
|
|
str r0, [r6]
|
|
_08049D8E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk1F_jumpifsideaffecting
|
|
|
|
thumb_func_start atk20_jumpifstat
|
|
atk20_jumpifstat: @ 0x08049D94
|
|
push {r4, r5, lr}
|
|
movs r5, #0
|
|
ldr r4, _08049DC8
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _08049DCC
|
|
ldr r3, [r4]
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
ldrb r1, [r3, #3]
|
|
adds r0, r0, r1
|
|
adds r2, #0x18
|
|
adds r0, r0, r2
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r3, #2]
|
|
cmp r0, #5
|
|
bhi _08049E52
|
|
lsls r0, r0, #2
|
|
ldr r1, _08049DD0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08049DC8: .4byte 0x02023EB8
|
|
_08049DCC: .4byte 0x02023D28
|
|
_08049DD0: .4byte 0x08049DD4
|
|
_08049DD4: @ jump table
|
|
.4byte _08049DEC @ case 0
|
|
.4byte _08049DFC @ case 1
|
|
.4byte _08049E0C @ case 2
|
|
.4byte _08049E1C @ case 3
|
|
.4byte _08049E2C @ case 4
|
|
.4byte _08049E40 @ case 5
|
|
_08049DEC:
|
|
ldr r0, _08049DF8
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
cmp r2, r0
|
|
bne _08049E52
|
|
b _08049E4C
|
|
.align 2, 0
|
|
_08049DF8: .4byte 0x02023EB8
|
|
_08049DFC:
|
|
ldr r0, _08049E08
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
cmp r2, r0
|
|
beq _08049E52
|
|
b _08049E4C
|
|
.align 2, 0
|
|
_08049E08: .4byte 0x02023EB8
|
|
_08049E0C:
|
|
ldr r0, _08049E18
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
cmp r2, r0
|
|
bls _08049E52
|
|
b _08049E4C
|
|
.align 2, 0
|
|
_08049E18: .4byte 0x02023EB8
|
|
_08049E1C:
|
|
ldr r0, _08049E28
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
cmp r2, r0
|
|
bhs _08049E52
|
|
b _08049E4C
|
|
.align 2, 0
|
|
_08049E28: .4byte 0x02023EB8
|
|
_08049E2C:
|
|
ldr r0, _08049E3C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08049E52
|
|
b _08049E4C
|
|
.align 2, 0
|
|
_08049E3C: .4byte 0x02023EB8
|
|
_08049E40:
|
|
ldr r0, _08049E74
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
bne _08049E52
|
|
_08049E4C:
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
_08049E52:
|
|
cmp r5, #0
|
|
beq _08049E78
|
|
ldr r3, _08049E74
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #5]
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
str r1, [r3]
|
|
b _08049E80
|
|
.align 2, 0
|
|
_08049E74: .4byte 0x02023EB8
|
|
_08049E78:
|
|
ldr r1, _08049E88
|
|
ldr r0, [r1]
|
|
adds r0, #9
|
|
str r0, [r1]
|
|
_08049E80:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08049E88: .4byte 0x02023EB8
|
|
thumb_func_end atk20_jumpifstat
|
|
|
|
thumb_func_start atk21_jumpifstatus3condition
|
|
atk21_jumpifstatus3condition: @ 0x08049E8C
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _08049EE0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _08049EE4
|
|
strb r0, [r5]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
adds r6, r1, r0
|
|
ldrb r1, [r2, #7]
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #9]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #0xa]
|
|
lsls r0, r0, #0x18
|
|
adds r3, r1, r0
|
|
ldrb r0, [r2, #6]
|
|
cmp r0, #0
|
|
beq _08049EEC
|
|
ldr r0, _08049EE8
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
bne _08049F04
|
|
b _08049EFC
|
|
.align 2, 0
|
|
_08049EE0: .4byte 0x02023EB8
|
|
_08049EE4: .4byte 0x02023D08
|
|
_08049EE8: .4byte 0x02023F50
|
|
_08049EEC:
|
|
ldr r0, _08049F00
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
beq _08049F04
|
|
_08049EFC:
|
|
str r3, [r4]
|
|
b _08049F0A
|
|
.align 2, 0
|
|
_08049F00: .4byte 0x02023F50
|
|
_08049F04:
|
|
adds r0, r2, #0
|
|
adds r0, #0xb
|
|
str r0, [r4]
|
|
_08049F0A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk21_jumpifstatus3condition
|
|
|
|
thumb_func_start atk22_jumpiftype
|
|
atk22_jumpiftype: @ 0x08049F10
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _08049F58
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r3, [r4]
|
|
ldrb r5, [r3, #2]
|
|
ldrb r2, [r3, #3]
|
|
ldrb r1, [r3, #4]
|
|
lsls r1, r1, #8
|
|
adds r2, r2, r1
|
|
ldrb r1, [r3, #5]
|
|
lsls r1, r1, #0x10
|
|
adds r2, r2, r1
|
|
ldrb r1, [r3, #6]
|
|
lsls r1, r1, #0x18
|
|
adds r6, r2, r1
|
|
ldr r2, _08049F5C
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r0, r2
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
beq _08049F54
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _08049F60
|
|
_08049F54:
|
|
str r6, [r4]
|
|
b _08049F64
|
|
.align 2, 0
|
|
_08049F58: .4byte 0x02023EB8
|
|
_08049F5C: .4byte 0x02023D28
|
|
_08049F60:
|
|
adds r0, r3, #7
|
|
str r0, [r4]
|
|
_08049F64:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk22_jumpiftype
|
|
|
|
thumb_func_start atk23_getexp
|
|
atk23_getexp: @ 0x08049F6C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r6, #0
|
|
ldr r0, _08049FB4
|
|
ldr r0, [r0]
|
|
adds r0, #0x50
|
|
mov sb, r0
|
|
ldr r0, _08049FB8
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _08049FBC
|
|
strb r0, [r1]
|
|
ldr r2, _08049FC0
|
|
movs r1, #2
|
|
ands r1, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x19
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r0, _08049FC4
|
|
ldrb r0, [r0, #0x1c]
|
|
cmp r0, #6
|
|
bls _08049FA8
|
|
bl _0804A8E2
|
|
_08049FA8:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08049FC8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08049FB4: .4byte 0x02024140
|
|
_08049FB8: .4byte 0x02023EB8
|
|
_08049FBC: .4byte 0x02023EB1
|
|
_08049FC0: .4byte 0x020240A2
|
|
_08049FC4: .4byte 0x02024118
|
|
_08049FC8: .4byte 0x08049FCC
|
|
_08049FCC: @ jump table
|
|
.4byte _08049FE8 @ case 0
|
|
.4byte _0804A054 @ case 1
|
|
.4byte _0804A16E @ case 2
|
|
.4byte _0804A480 @ case 3
|
|
.4byte _0804A584 @ case 4
|
|
.4byte _0804A870 @ case 5
|
|
.4byte _0804A8B8 @ case 6
|
|
_08049FE8:
|
|
ldr r4, _0804A038
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _08049FFC
|
|
bl _0804A8AC
|
|
_08049FFC:
|
|
ldr r0, _0804A03C
|
|
ldr r0, [r0]
|
|
ldr r1, _0804A040
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A00C
|
|
bl _0804A8AC
|
|
_0804A00C:
|
|
ldr r1, _0804A044
|
|
ldrb r0, [r1, #0x1c]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x1c]
|
|
ldr r0, _0804A048
|
|
ldr r2, [r0]
|
|
adds r2, #0xdf
|
|
ldr r3, _0804A04C
|
|
ldr r1, _0804A050
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bl _0804A8E2
|
|
.align 2, 0
|
|
_0804A038: .4byte 0x02023EB1
|
|
_0804A03C: .4byte 0x02022C90
|
|
_0804A040: .4byte 0x063F0982
|
|
_0804A044: .4byte 0x02024118
|
|
_0804A048: .4byte 0x02024140
|
|
_0804A04C: .4byte 0x082FACB4
|
|
_0804A050: .4byte 0x02023D12
|
|
_0804A054:
|
|
movs r5, #0
|
|
movs r7, #0
|
|
_0804A058:
|
|
movs r0, #0x64
|
|
adds r1, r7, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0804A0A8
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804A0C6
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804A0C6
|
|
ldr r0, _0804A0AC
|
|
lsls r1, r7, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A08C
|
|
adds r5, #1
|
|
_0804A08C:
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0xaf
|
|
bne _0804A0B8
|
|
ldr r0, _0804A0B0
|
|
ldr r0, [r0]
|
|
ldr r2, _0804A0B4
|
|
adds r0, r0, r2
|
|
ldrb r4, [r0]
|
|
b _0804A0C0
|
|
.align 2, 0
|
|
_0804A0A8: .4byte 0x02024190
|
|
_0804A0AC: .4byte 0x082FACB4
|
|
_0804A0B0: .4byte 0x03005AEC
|
|
_0804A0B4: .4byte 0x00003226
|
|
_0804A0B8:
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0804A0C0:
|
|
cmp r4, #0x19
|
|
bne _0804A0C6
|
|
adds r6, #1
|
|
_0804A0C6:
|
|
adds r7, #1
|
|
cmp r7, #5
|
|
ble _0804A058
|
|
ldr r3, _0804A12C
|
|
ldr r2, _0804A130
|
|
ldr r0, _0804A134
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r2, [r0, #9]
|
|
adds r1, #0x2a
|
|
ldrb r0, [r1]
|
|
muls r0, r2, r0
|
|
movs r1, #7
|
|
bl __divsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
cmp r6, #0
|
|
beq _0804A13C
|
|
lsrs r4, r0, #0x11
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl __divsi3
|
|
mov r3, sb
|
|
strh r0, [r3]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0804A112
|
|
movs r0, #1
|
|
strh r0, [r3]
|
|
_0804A112:
|
|
ldr r5, _0804A138
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
bl __divsi3
|
|
strh r0, [r5]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0804A156
|
|
movs r0, #1
|
|
strh r0, [r5]
|
|
b _0804A156
|
|
.align 2, 0
|
|
_0804A12C: .4byte 0x082F0D54
|
|
_0804A130: .4byte 0x02023D28
|
|
_0804A134: .4byte 0x02023EB1
|
|
_0804A138: .4byte 0x020240A6
|
|
_0804A13C:
|
|
adds r0, r1, #0
|
|
adds r1, r5, #0
|
|
bl __divsi3
|
|
mov r1, sb
|
|
strh r0, [r1]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0804A152
|
|
movs r0, #1
|
|
strh r0, [r1]
|
|
_0804A152:
|
|
ldr r0, _0804A1A0
|
|
strh r6, [r0]
|
|
_0804A156:
|
|
ldr r1, _0804A1A4
|
|
ldrb r0, [r1, #0x1c]
|
|
adds r0, #1
|
|
movs r2, #0
|
|
strb r0, [r1, #0x1c]
|
|
ldr r1, _0804A1A8
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x10]
|
|
ldr r0, [r1]
|
|
adds r0, #0x53
|
|
mov r2, r8
|
|
strb r2, [r0]
|
|
_0804A16E:
|
|
ldr r0, _0804A1AC
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804A178
|
|
b _0804A8E2
|
|
_0804A178:
|
|
ldr r0, _0804A1A8
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A1B0
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0xaf
|
|
bne _0804A1BC
|
|
ldr r0, _0804A1B4
|
|
ldr r0, [r0]
|
|
ldr r3, _0804A1B8
|
|
adds r0, r0, r3
|
|
ldrb r4, [r0]
|
|
b _0804A1C4
|
|
.align 2, 0
|
|
_0804A1A0: .4byte 0x020240A6
|
|
_0804A1A4: .4byte 0x02024118
|
|
_0804A1A8: .4byte 0x02024140
|
|
_0804A1AC: .4byte 0x02023D0C
|
|
_0804A1B0: .4byte 0x02024190
|
|
_0804A1B4: .4byte 0x03005AEC
|
|
_0804A1B8: .4byte 0x00003226
|
|
_0804A1BC:
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0804A1C4:
|
|
ldr r5, _0804A1E4
|
|
cmp r4, #0x19
|
|
beq _0804A1EC
|
|
ldr r0, [r5]
|
|
adds r1, r0, #0
|
|
adds r1, #0x53
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
bne _0804A1EC
|
|
lsrs r0, r0, #1
|
|
strb r0, [r1]
|
|
ldr r1, _0804A1E8
|
|
b _0804A210
|
|
.align 2, 0
|
|
_0804A1E4: .4byte 0x02024140
|
|
_0804A1E8: .4byte 0x02024118
|
|
_0804A1EC:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A21C
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
cmp r0, #0x64
|
|
bne _0804A228
|
|
ldr r1, [r5]
|
|
adds r1, #0x53
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #1
|
|
strb r0, [r1]
|
|
ldr r1, _0804A220
|
|
movs r2, #0
|
|
_0804A210:
|
|
movs r0, #5
|
|
strb r0, [r1, #0x1c]
|
|
ldr r0, _0804A224
|
|
str r2, [r0]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A21C: .4byte 0x02024190
|
|
_0804A220: .4byte 0x02024118
|
|
_0804A224: .4byte 0x02023E94
|
|
_0804A228:
|
|
ldr r0, _0804A28C
|
|
ldr r0, [r0]
|
|
movs r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804A256
|
|
ldr r0, _0804A290
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0804A256
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #0x12]
|
|
cmp r0, #0
|
|
bne _0804A256
|
|
bl BattleStopLowHpSound
|
|
ldr r0, _0804A294
|
|
bl PlayBGM
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, #0x12]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x12]
|
|
_0804A256:
|
|
ldr r5, _0804A298
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A29C
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804A270
|
|
b _0804A45A
|
|
_0804A270:
|
|
ldr r0, [r5]
|
|
adds r0, #0x53
|
|
ldrb r0, [r0]
|
|
movs r3, #1
|
|
ands r3, r0
|
|
cmp r3, #0
|
|
beq _0804A2A4
|
|
ldr r1, _0804A2A0
|
|
mov r2, sb
|
|
ldrh r0, [r2]
|
|
str r0, [r1]
|
|
mov sb, r1
|
|
b _0804A2AA
|
|
.align 2, 0
|
|
_0804A28C: .4byte 0x02022C90
|
|
_0804A290: .4byte 0x02023D28
|
|
_0804A294: .4byte 0x00000161
|
|
_0804A298: .4byte 0x02024140
|
|
_0804A29C: .4byte 0x02024190
|
|
_0804A2A0: .4byte 0x02023E94
|
|
_0804A2A4:
|
|
ldr r0, _0804A320
|
|
str r3, [r0]
|
|
mov sb, r0
|
|
_0804A2AA:
|
|
cmp r4, #0x19
|
|
bne _0804A2BA
|
|
ldr r0, _0804A324
|
|
ldrh r1, [r0]
|
|
mov r3, sb
|
|
ldr r0, [r3]
|
|
adds r0, r0, r1
|
|
str r0, [r3]
|
|
_0804A2BA:
|
|
cmp r4, #0x28
|
|
bne _0804A2D0
|
|
mov r0, sb
|
|
ldr r1, [r0]
|
|
movs r0, #0x96
|
|
muls r0, r1, r0
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
mov r1, sb
|
|
str r0, [r1]
|
|
_0804A2D0:
|
|
ldr r5, _0804A328
|
|
ldr r0, [r5]
|
|
movs r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A2EC
|
|
ldr r4, _0804A320
|
|
ldr r1, [r4]
|
|
movs r0, #0x96
|
|
muls r0, r1, r0
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0804A2EC:
|
|
ldr r4, _0804A32C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A330
|
|
adds r0, r0, r1
|
|
bl IsTradedMon
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804A354
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A338
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r0, #2
|
|
bls _0804A338
|
|
ldr r7, _0804A334
|
|
ldr r2, _0804A320
|
|
mov sb, r2
|
|
b _0804A35A
|
|
.align 2, 0
|
|
_0804A320: .4byte 0x02023E94
|
|
_0804A324: .4byte 0x020240A6
|
|
_0804A328: .4byte 0x02022C90
|
|
_0804A32C: .4byte 0x02024140
|
|
_0804A330: .4byte 0x02024190
|
|
_0804A334: .4byte 0x00000149
|
|
_0804A338:
|
|
ldr r4, _0804A350
|
|
ldr r1, [r4]
|
|
movs r0, #0x96
|
|
muls r0, r1, r0
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
movs r7, #0xa5
|
|
lsls r7, r7, #1
|
|
mov sb, r4
|
|
b _0804A35A
|
|
.align 2, 0
|
|
_0804A350: .4byte 0x02023E94
|
|
_0804A354:
|
|
ldr r7, _0804A390
|
|
ldr r3, _0804A394
|
|
mov sb, r3
|
|
_0804A35A:
|
|
ldr r0, _0804A398
|
|
ldr r1, [r0]
|
|
movs r0, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804A3C6
|
|
ldr r0, _0804A39C
|
|
ldr r1, _0804A3A0
|
|
ldr r4, [r1]
|
|
ldrh r0, [r0, #4]
|
|
adds r5, r1, #0
|
|
ldr r3, _0804A3A4
|
|
ldr r2, _0804A3A8
|
|
ldrb r1, [r4, #0x10]
|
|
cmp r0, r1
|
|
bne _0804A3AC
|
|
ldrb r1, [r2]
|
|
ldr r0, [r3, #8]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804A3AC
|
|
adds r1, r4, #0
|
|
adds r1, #0x8f
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
b _0804A3CE
|
|
.align 2, 0
|
|
_0804A390: .4byte 0x00000149
|
|
_0804A394: .4byte 0x02023E94
|
|
_0804A398: .4byte 0x02022C90
|
|
_0804A39C: .4byte 0x02023D12
|
|
_0804A3A0: .4byte 0x02024140
|
|
_0804A3A4: .4byte 0x082FACB4
|
|
_0804A3A8: .4byte 0x02023EB4
|
|
_0804A3AC:
|
|
ldrb r2, [r2]
|
|
ldr r0, [r3]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
bne _0804A3BE
|
|
ldr r0, [r5]
|
|
adds r0, #0x8f
|
|
strb r2, [r0]
|
|
b _0804A3CE
|
|
_0804A3BE:
|
|
ldr r0, [r5]
|
|
adds r0, #0x8f
|
|
movs r1, #2
|
|
b _0804A3CC
|
|
_0804A3C6:
|
|
ldr r0, _0804A468
|
|
ldr r0, [r0]
|
|
adds r0, #0x8f
|
|
_0804A3CC:
|
|
strb r1, [r0]
|
|
_0804A3CE:
|
|
ldr r1, _0804A46C
|
|
movs r2, #0
|
|
mov ip, r2
|
|
movs r4, #0xfd
|
|
strb r4, [r1]
|
|
movs r5, #4
|
|
strb r5, [r1, #1]
|
|
ldr r6, _0804A468
|
|
ldr r2, [r6]
|
|
movs r3, #0x8f
|
|
adds r3, r3, r2
|
|
mov r8, r3
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r2, #0x10]
|
|
strb r0, [r1, #3]
|
|
mov r0, ip
|
|
strb r0, [r1, #4]
|
|
strb r7, [r1, #5]
|
|
movs r3, #0xff
|
|
lsls r3, r3, #8
|
|
ands r7, r3
|
|
asrs r0, r7, #8
|
|
strb r0, [r1, #6]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #7]
|
|
ldr r1, _0804A470
|
|
strb r4, [r1]
|
|
movs r0, #1
|
|
strb r0, [r1, #1]
|
|
strb r5, [r1, #2]
|
|
movs r0, #5
|
|
strb r0, [r1, #3]
|
|
mov r0, sb
|
|
ldr r2, [r0]
|
|
strb r2, [r1, #4]
|
|
adds r0, r2, #0
|
|
ands r0, r3
|
|
asrs r0, r0, #8
|
|
strb r0, [r1, #5]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r2
|
|
asrs r0, r0, #0x10
|
|
strb r0, [r1, #6]
|
|
lsrs r2, r2, #0x18
|
|
strb r2, [r1, #7]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
strb r0, [r1, #8]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r0, #0xd
|
|
bl PrepareStringBattle
|
|
ldr r0, [r6]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A474
|
|
adds r0, r0, r1
|
|
ldr r3, _0804A478
|
|
ldr r1, _0804A47C
|
|
ldrb r2, [r1]
|
|
movs r1, #0x58
|
|
muls r1, r2, r1
|
|
adds r1, r1, r3
|
|
ldrh r1, [r1]
|
|
bl MonGainEVs
|
|
_0804A45A:
|
|
ldr r0, _0804A468
|
|
ldr r1, [r0]
|
|
adds r1, #0x53
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #1
|
|
strb r0, [r1]
|
|
b _0804A55A
|
|
.align 2, 0
|
|
_0804A468: .4byte 0x02024140
|
|
_0804A46C: .4byte 0x02022C0C
|
|
_0804A470: .4byte 0x02022C1C
|
|
_0804A474: .4byte 0x02024190
|
|
_0804A478: .4byte 0x02023D28
|
|
_0804A47C: .4byte 0x02023EB1
|
|
_0804A480:
|
|
ldr r0, _0804A564
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _0804A48A
|
|
b _0804A8E2
|
|
_0804A48A:
|
|
ldr r1, _0804A568
|
|
ldr r7, _0804A56C
|
|
ldr r0, [r7]
|
|
adds r0, #0x8f
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _0804A570
|
|
adds r0, r0, r5
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804A55A
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
cmp r0, #0x64
|
|
beq _0804A55A
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
ldr r4, _0804A574
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3b
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3c
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1, #4]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1, #6]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3e
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1, #8]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x3f
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strh r0, [r1, #0xa]
|
|
ldr r4, _0804A578
|
|
ldr r1, [r7]
|
|
adds r0, r1, #0
|
|
adds r0, #0x8f
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r1, [r1, #0x10]
|
|
ldr r0, _0804A57C
|
|
ldrh r2, [r0]
|
|
movs r0, #0
|
|
bl BtlController_EmitExpUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804A55A:
|
|
ldr r1, _0804A580
|
|
ldrb r0, [r1, #0x1c]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x1c]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A564: .4byte 0x02023D0C
|
|
_0804A568: .4byte 0x02023508
|
|
_0804A56C: .4byte 0x02024140
|
|
_0804A570: .4byte 0x02024190
|
|
_0804A574: .4byte 0x0202414C
|
|
_0804A578: .4byte 0x02023D08
|
|
_0804A57C: .4byte 0x02023E94
|
|
_0804A580: .4byte 0x02024118
|
|
_0804A584:
|
|
ldr r0, _0804A81C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804A58E
|
|
b _0804A8E2
|
|
_0804A58E:
|
|
ldr r1, _0804A820
|
|
ldr r0, _0804A824
|
|
ldr r4, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x8f
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r3, _0804A828
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, #9
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x21
|
|
beq _0804A5AC
|
|
b _0804A858
|
|
_0804A5AC:
|
|
adds r0, r3, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xb
|
|
beq _0804A5B8
|
|
b _0804A858
|
|
_0804A5B8:
|
|
ldr r0, _0804A82C
|
|
ldr r0, [r0]
|
|
movs r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A5E2
|
|
ldr r0, _0804A830
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
ldrb r4, [r4, #0x10]
|
|
cmp r0, r4
|
|
bne _0804A5E2
|
|
adds r1, r0, #0
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804A834
|
|
adds r0, r0, r1
|
|
adds r1, r2, #0
|
|
bl HandleLowHpMusicChange
|
|
_0804A5E2:
|
|
ldr r1, _0804A838
|
|
movs r3, #0xfd
|
|
strb r3, [r1]
|
|
movs r0, #4
|
|
strb r0, [r1, #1]
|
|
ldr r6, _0804A820
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #2]
|
|
ldr r0, _0804A824
|
|
mov sb, r0
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, #0x10]
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r4, _0804A83C
|
|
strb r3, [r4]
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
strb r0, [r4, #2]
|
|
movs r0, #3
|
|
strb r0, [r4, #3]
|
|
ldrb r0, [r2, #0x10]
|
|
movs r1, #0x64
|
|
mov r8, r1
|
|
mov r2, r8
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
ldr r7, _0804A834
|
|
adds r0, r0, r7
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
strb r0, [r4, #4]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
strb r0, [r4, #5]
|
|
bl BattleScriptPushCursor
|
|
ldr r2, _0804A840
|
|
ldr r1, _0804A844
|
|
mov r3, sb
|
|
ldr r5, [r3]
|
|
ldrb r0, [r5, #0x10]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804A848
|
|
ldr r0, _0804A84C
|
|
str r0, [r1]
|
|
ldr r4, _0804A850
|
|
ldr r2, _0804A828
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #9
|
|
adds r0, r2, #2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, #3
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
str r3, [r4]
|
|
ldrb r0, [r5, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0
|
|
bl AdjustFriendship
|
|
ldr r1, _0804A830
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldrb r2, [r0, #0x10]
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
bne _0804A74E
|
|
ldr r4, _0804A854
|
|
ldrh r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _0804A74E
|
|
mov r0, r8
|
|
muls r0, r2, r0
|
|
adds r0, r0, r7
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r1, r4, #0
|
|
adds r1, #0x2a
|
|
strb r0, [r1]
|
|
mov r3, sb
|
|
ldr r0, [r3]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
strh r0, [r4, #0x28]
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r3, r8
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
strh r0, [r4, #0x2c]
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r2, r8
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3b
|
|
bl GetMonData
|
|
strh r0, [r4, #2]
|
|
mov r3, sb
|
|
ldr r0, [r3]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3c
|
|
bl GetMonData
|
|
strh r0, [r4, #4]
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r3, r8
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
strh r0, [r4, #6]
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r2, r8
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
strh r0, [r4, #6]
|
|
mov r3, sb
|
|
ldr r0, [r3]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3e
|
|
bl GetMonData
|
|
strh r0, [r4, #8]
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r3, r8
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r0, r7
|
|
movs r1, #0x3f
|
|
bl GetMonData
|
|
strh r0, [r4, #0xa]
|
|
_0804A74E:
|
|
ldr r0, _0804A830
|
|
ldr r7, _0804A824
|
|
ldr r1, [r7]
|
|
ldrb r2, [r1, #0x10]
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, r2
|
|
beq _0804A75E
|
|
b _0804A85E
|
|
_0804A75E:
|
|
ldr r6, _0804A854
|
|
movs r0, #0xd8
|
|
adds r0, r0, r6
|
|
mov r8, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804A85E
|
|
ldr r0, _0804A82C
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A85E
|
|
movs r5, #0x64
|
|
adds r0, r2, #0
|
|
muls r0, r5, r0
|
|
ldr r4, _0804A834
|
|
adds r0, r0, r4
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r1, r6, #0
|
|
adds r1, #0xda
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
adds r1, r6, #0
|
|
adds r1, #0xdc
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3b
|
|
bl GetMonData
|
|
adds r1, r6, #0
|
|
adds r1, #0xb2
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3c
|
|
bl GetMonData
|
|
adds r1, r6, #0
|
|
adds r1, #0xb4
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
movs r2, #0xb6
|
|
adds r2, r2, r6
|
|
mov r8, r2
|
|
strh r0, [r2]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
mov r3, r8
|
|
strh r0, [r3]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x3e
|
|
bl GetMonData
|
|
adds r1, r6, #0
|
|
adds r1, #0xb8
|
|
strh r0, [r1]
|
|
b _0804A85E
|
|
.align 2, 0
|
|
_0804A81C: .4byte 0x02023D0C
|
|
_0804A820: .4byte 0x02023D08
|
|
_0804A824: .4byte 0x02024140
|
|
_0804A828: .4byte 0x02023508
|
|
_0804A82C: .4byte 0x02022C90
|
|
_0804A830: .4byte 0x02023D12
|
|
_0804A834: .4byte 0x02024190
|
|
_0804A838: .4byte 0x02022C0C
|
|
_0804A83C: .4byte 0x02022C1C
|
|
_0804A840: .4byte 0x03005AB4
|
|
_0804A844: .4byte 0x082FACB4
|
|
_0804A848: .4byte 0x02023EB8
|
|
_0804A84C: .4byte 0x08289145
|
|
_0804A850: .4byte 0x02023E94
|
|
_0804A854: .4byte 0x02023D28
|
|
_0804A858:
|
|
ldr r1, _0804A868
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
_0804A85E:
|
|
ldr r1, _0804A86C
|
|
movs r0, #5
|
|
strb r0, [r1, #0x1c]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A868: .4byte 0x02023E94
|
|
_0804A86C: .4byte 0x02024118
|
|
_0804A870:
|
|
ldr r0, _0804A880
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804A888
|
|
ldr r1, _0804A884
|
|
movs r0, #3
|
|
strb r0, [r1, #0x1c]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A880: .4byte 0x02023E94
|
|
_0804A884: .4byte 0x02024118
|
|
_0804A888:
|
|
ldr r2, _0804A8A4
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, #0x10]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x10]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r0, #5
|
|
bhi _0804A8AC
|
|
ldr r1, _0804A8A8
|
|
movs r0, #2
|
|
strb r0, [r1, #0x1c]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A8A4: .4byte 0x02024140
|
|
_0804A8A8: .4byte 0x02024118
|
|
_0804A8AC:
|
|
ldr r1, _0804A8B4
|
|
movs r0, #6
|
|
strb r0, [r1, #0x1c]
|
|
b _0804A8E2
|
|
.align 2, 0
|
|
_0804A8B4: .4byte 0x02024118
|
|
_0804A8B8:
|
|
ldr r0, _0804A8F0
|
|
ldr r5, [r0]
|
|
cmp r5, #0
|
|
bne _0804A8E2
|
|
ldr r4, _0804A8F4
|
|
ldr r2, _0804A8F8
|
|
ldrb r0, [r2]
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r4
|
|
movs r3, #0
|
|
strh r5, [r0, #0x2e]
|
|
ldrb r0, [r2]
|
|
muls r0, r1, r0
|
|
adds r0, r0, r4
|
|
adds r0, #0x20
|
|
strb r3, [r0]
|
|
ldr r1, _0804A8FC
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_0804A8E2:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804A8F0: .4byte 0x02023D0C
|
|
_0804A8F4: .4byte 0x02023D28
|
|
_0804A8F8: .4byte 0x02023EB1
|
|
_0804A8FC: .4byte 0x02023EB8
|
|
thumb_func_end atk23_getexp
|
|
|
|
thumb_func_start atk24
|
|
atk24: @ 0x0804A900
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, #0
|
|
ldr r0, _0804A964
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804A912
|
|
b _0804AB52
|
|
_0804A912:
|
|
ldr r0, _0804A968
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A978
|
|
ldr r0, _0804A96C
|
|
ldrh r1, [r0]
|
|
ldr r0, _0804A970
|
|
cmp r1, r0
|
|
bne _0804A978
|
|
movs r5, #0
|
|
_0804A92C:
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0804A974
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804A95C
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804A95C
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
_0804A95C:
|
|
adds r5, #1
|
|
cmp r5, #2
|
|
ble _0804A92C
|
|
b _0804A9D8
|
|
.align 2, 0
|
|
_0804A964: .4byte 0x02023D0C
|
|
_0804A968: .4byte 0x02022C90
|
|
_0804A96C: .4byte 0x0203886E
|
|
_0804A970: .4byte 0x00000C03
|
|
_0804A974: .4byte 0x02024190
|
|
_0804A978:
|
|
movs r5, #0
|
|
_0804A97A:
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0804AAF0
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804A9D2
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804A9D2
|
|
ldr r0, _0804AAF4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804A9C4
|
|
ldr r0, _0804AAF8
|
|
ldr r0, [r0]
|
|
movs r1, #0xa8
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, _0804AAFC
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804A9D2
|
|
_0804A9C4:
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
_0804A9D2:
|
|
adds r5, #1
|
|
cmp r5, #5
|
|
ble _0804A97A
|
|
_0804A9D8:
|
|
cmp r6, #0
|
|
bne _0804A9E6
|
|
ldr r0, _0804AB00
|
|
ldrb r1, [r0]
|
|
movs r2, #2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804A9E6:
|
|
movs r6, #0
|
|
movs r5, #0
|
|
_0804A9EA:
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0804AB04
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804AA40
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804AA40
|
|
ldr r0, _0804AAF4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804AA32
|
|
ldr r0, _0804AAF8
|
|
ldr r0, [r0]
|
|
ldr r1, _0804AB08
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, _0804AAFC
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804AA40
|
|
_0804AA32:
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
_0804AA40:
|
|
adds r5, #1
|
|
cmp r5, #5
|
|
ble _0804A9EA
|
|
ldr r2, _0804AB00
|
|
cmp r6, #0
|
|
bne _0804AA54
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804AA54:
|
|
ldrb r0, [r2]
|
|
cmp r0, #0
|
|
bne _0804AB4A
|
|
ldr r0, _0804AAF4
|
|
ldr r1, [r0]
|
|
ldr r2, _0804AB0C
|
|
ands r1, r2
|
|
mov r8, r0
|
|
cmp r1, #0
|
|
beq _0804AB4A
|
|
movs r3, #0
|
|
movs r5, #0
|
|
ldr r0, _0804AB10
|
|
ldrb r1, [r0]
|
|
mov ip, r0
|
|
ldr r7, _0804AB14
|
|
cmp r3, r1
|
|
bge _0804AAA0
|
|
ldr r0, _0804AB18
|
|
movs r6, #0x80
|
|
lsls r6, r6, #0x15
|
|
ldr r4, [r0]
|
|
adds r2, r1, #0
|
|
ldr r1, _0804AB1C
|
|
_0804AA84:
|
|
adds r0, r6, #0
|
|
lsls r0, r5
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0804AA98
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804AA98
|
|
adds r3, #1
|
|
_0804AA98:
|
|
adds r1, #0x28
|
|
adds r5, #2
|
|
cmp r5, r2
|
|
blt _0804AA84
|
|
_0804AAA0:
|
|
movs r2, #0
|
|
movs r5, #1
|
|
mov r4, ip
|
|
ldrb r1, [r4]
|
|
cmp r5, r1
|
|
bge _0804AADA
|
|
ldr r0, _0804AB18
|
|
movs r4, #0x80
|
|
lsls r4, r4, #0x15
|
|
mov ip, r4
|
|
ldr r6, [r0]
|
|
ldr r0, _0804AB1C
|
|
adds r4, r1, #0
|
|
adds r1, r0, #0
|
|
adds r1, #0x14
|
|
_0804AABE:
|
|
mov r0, ip
|
|
lsls r0, r5
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
beq _0804AAD2
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804AAD2
|
|
adds r2, #1
|
|
_0804AAD2:
|
|
adds r1, #0x28
|
|
adds r5, #2
|
|
cmp r5, r4
|
|
blt _0804AABE
|
|
_0804AADA:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804AB20
|
|
adds r0, r2, r3
|
|
cmp r0, #1
|
|
bgt _0804AB28
|
|
b _0804AB42
|
|
.align 2, 0
|
|
_0804AAF0: .4byte 0x02024190
|
|
_0804AAF4: .4byte 0x02022C90
|
|
_0804AAF8: .4byte 0x02024140
|
|
_0804AAFC: .4byte 0x082FACB4
|
|
_0804AB00: .4byte 0x02023FDE
|
|
_0804AB04: .4byte 0x020243E8
|
|
_0804AB08: .4byte 0x000002A1
|
|
_0804AB0C: .4byte 0x02000002
|
|
_0804AB10: .4byte 0x02023D10
|
|
_0804AB14: .4byte 0x02023EB8
|
|
_0804AB18: .4byte 0x02023F24
|
|
_0804AB1C: .4byte 0x02024020
|
|
_0804AB20:
|
|
cmp r2, #0
|
|
beq _0804AB42
|
|
cmp r3, #0
|
|
beq _0804AB42
|
|
_0804AB28:
|
|
ldr r2, [r7]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
str r1, [r7]
|
|
b _0804AB52
|
|
_0804AB42:
|
|
ldr r0, [r7]
|
|
adds r0, #5
|
|
str r0, [r7]
|
|
b _0804AB52
|
|
_0804AB4A:
|
|
ldr r1, _0804AB5C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0804AB52:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AB5C: .4byte 0x02023EB8
|
|
thumb_func_end atk24
|
|
|
|
thumb_func_start MoveValuesCleanUp
|
|
MoveValuesCleanUp: @ 0x0804AB60
|
|
ldr r1, _0804AB88
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r0, _0804AB8C
|
|
movs r2, #0
|
|
movs r1, #1
|
|
strb r1, [r0, #0xe]
|
|
ldr r0, _0804AB90
|
|
strb r1, [r0]
|
|
ldr r0, _0804AB94
|
|
strb r2, [r0, #3]
|
|
strb r2, [r0, #6]
|
|
ldr r2, _0804AB98
|
|
ldr r0, [r2]
|
|
subs r1, #0x42
|
|
ands r0, r1
|
|
ldr r1, _0804AB9C
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804AB88: .4byte 0x02023F20
|
|
_0804AB8C: .4byte 0x02024118
|
|
_0804AB90: .4byte 0x02023EB5
|
|
_0804AB94: .4byte 0x02023FD6
|
|
_0804AB98: .4byte 0x02023F24
|
|
_0804AB9C: .4byte 0xFFFFBFFF
|
|
thumb_func_end MoveValuesCleanUp
|
|
|
|
thumb_func_start atk25_movevaluescleanup
|
|
atk25_movevaluescleanup: @ 0x0804ABA0
|
|
push {lr}
|
|
bl MoveValuesCleanUp
|
|
ldr r1, _0804ABB4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ABB4: .4byte 0x02023EB8
|
|
thumb_func_end atk25_movevaluescleanup
|
|
|
|
thumb_func_start atk26_setmultihit
|
|
atk26_setmultihit: @ 0x0804ABB8
|
|
ldr r3, _0804ABC8
|
|
ldr r2, _0804ABCC
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, #1]
|
|
strb r1, [r3]
|
|
adds r0, #2
|
|
str r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804ABC8: .4byte 0x02023EB6
|
|
_0804ABCC: .4byte 0x02023EB8
|
|
thumb_func_end atk26_setmultihit
|
|
|
|
thumb_func_start atk27_decrementmultihit
|
|
atk27_decrementmultihit: @ 0x0804ABD0
|
|
push {lr}
|
|
ldr r1, _0804ABEC
|
|
ldrb r0, [r1]
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804ABF4
|
|
ldr r1, _0804ABF0
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0804AC0E
|
|
.align 2, 0
|
|
_0804ABEC: .4byte 0x02023EB6
|
|
_0804ABF0: .4byte 0x02023EB8
|
|
_0804ABF4:
|
|
ldr r3, _0804AC14
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
str r1, [r3]
|
|
_0804AC0E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804AC14: .4byte 0x02023EB8
|
|
thumb_func_end atk27_decrementmultihit
|
|
|
|
thumb_func_start atk28_goto
|
|
atk28_goto: @ 0x0804AC18
|
|
ldr r3, _0804AC34
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
str r1, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804AC34: .4byte 0x02023EB8
|
|
thumb_func_end atk28_goto
|
|
|
|
thumb_func_start atk29_jumpifbyte
|
|
atk29_jumpifbyte: @ 0x0804AC38
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0804AC7C
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, #1]
|
|
ldrb r2, [r1, #2]
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, #6]
|
|
ldrb r2, [r1, #7]
|
|
ldrb r0, [r1, #8]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #9]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xa]
|
|
lsls r0, r0, #0x18
|
|
adds r2, r2, r0
|
|
adds r1, #0xb
|
|
str r1, [r3]
|
|
cmp r6, #5
|
|
bhi _0804ACD0
|
|
lsls r0, r6, #2
|
|
ldr r1, _0804AC80
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804AC7C: .4byte 0x02023EB8
|
|
_0804AC80: .4byte 0x0804AC84
|
|
_0804AC84: @ jump table
|
|
.4byte _0804AC9C @ case 0
|
|
.4byte _0804ACA4 @ case 1
|
|
.4byte _0804ACAC @ case 2
|
|
.4byte _0804ACB4 @ case 3
|
|
.4byte _0804ACBC @ case 4
|
|
.4byte _0804ACC6 @ case 5
|
|
_0804AC9C:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804ACD0
|
|
b _0804ACCE
|
|
_0804ACA4:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804ACD0
|
|
b _0804ACCE
|
|
_0804ACAC:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804ACD0
|
|
b _0804ACCE
|
|
_0804ACB4:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bhs _0804ACD0
|
|
b _0804ACCE
|
|
_0804ACBC:
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
beq _0804ACD0
|
|
b _0804ACCE
|
|
_0804ACC6:
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
bne _0804ACD0
|
|
_0804ACCE:
|
|
str r2, [r3]
|
|
_0804ACD0:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk29_jumpifbyte
|
|
|
|
thumb_func_start atk2A_jumpifhalfword
|
|
atk2A_jumpifhalfword: @ 0x0804ACD8
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0804AD24
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, #1]
|
|
ldrb r2, [r1, #2]
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, #6]
|
|
ldrb r0, [r1, #7]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r2, [r1, #8]
|
|
ldrb r0, [r1, #9]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xa]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xb]
|
|
lsls r0, r0, #0x18
|
|
adds r2, r2, r0
|
|
adds r1, #0xc
|
|
str r1, [r3]
|
|
cmp r6, #5
|
|
bhi _0804AD78
|
|
lsls r0, r6, #2
|
|
ldr r1, _0804AD28
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804AD24: .4byte 0x02023EB8
|
|
_0804AD28: .4byte 0x0804AD2C
|
|
_0804AD2C: @ jump table
|
|
.4byte _0804AD44 @ case 0
|
|
.4byte _0804AD4C @ case 1
|
|
.4byte _0804AD54 @ case 2
|
|
.4byte _0804AD5C @ case 3
|
|
.4byte _0804AD64 @ case 4
|
|
.4byte _0804AD6E @ case 5
|
|
_0804AD44:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804AD78
|
|
b _0804AD76
|
|
_0804AD4C:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804AD78
|
|
b _0804AD76
|
|
_0804AD54:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804AD78
|
|
b _0804AD76
|
|
_0804AD5C:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bhs _0804AD78
|
|
b _0804AD76
|
|
_0804AD64:
|
|
ldrh r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
beq _0804AD78
|
|
b _0804AD76
|
|
_0804AD6E:
|
|
ldrh r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
bne _0804AD78
|
|
_0804AD76:
|
|
str r2, [r3]
|
|
_0804AD78:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk2A_jumpifhalfword
|
|
|
|
thumb_func_start atk2B_jumpifword
|
|
atk2B_jumpifword: @ 0x0804AD80
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0804ADD8
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, #1]
|
|
ldrb r2, [r1, #2]
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, #6]
|
|
ldrb r0, [r1, #7]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #8]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #9]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
ldrb r2, [r1, #0xa]
|
|
ldrb r0, [r1, #0xb]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xc]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xd]
|
|
lsls r0, r0, #0x18
|
|
adds r2, r2, r0
|
|
adds r1, #0xe
|
|
str r1, [r3]
|
|
cmp r6, #5
|
|
bhi _0804AE2C
|
|
lsls r0, r6, #2
|
|
ldr r1, _0804ADDC
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804ADD8: .4byte 0x02023EB8
|
|
_0804ADDC: .4byte 0x0804ADE0
|
|
_0804ADE0: @ jump table
|
|
.4byte _0804ADF8 @ case 0
|
|
.4byte _0804AE00 @ case 1
|
|
.4byte _0804AE08 @ case 2
|
|
.4byte _0804AE10 @ case 3
|
|
.4byte _0804AE18 @ case 4
|
|
.4byte _0804AE22 @ case 5
|
|
_0804ADF8:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804AE2C
|
|
b _0804AE2A
|
|
_0804AE00:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804AE2C
|
|
b _0804AE2A
|
|
_0804AE08:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804AE2C
|
|
b _0804AE2A
|
|
_0804AE10:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bhs _0804AE2C
|
|
b _0804AE2A
|
|
_0804AE18:
|
|
ldr r0, [r5]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0804AE2C
|
|
b _0804AE2A
|
|
_0804AE22:
|
|
ldr r0, [r5]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _0804AE2C
|
|
_0804AE2A:
|
|
str r2, [r3]
|
|
_0804AE2C:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk2B_jumpifword
|
|
|
|
thumb_func_start atk2C_jumpifarrayequal
|
|
atk2C_jumpifarrayequal: @ 0x0804AE34
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r2, _0804AE8C
|
|
ldr r3, [r2]
|
|
ldrb r1, [r3, #1]
|
|
ldrb r0, [r3, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r1, r0
|
|
ldrb r1, [r3, #5]
|
|
ldrb r0, [r3, #6]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r4, r1, r0
|
|
ldrb r6, [r3, #9]
|
|
ldrb r1, [r3, #0xa]
|
|
ldrb r0, [r3, #0xb]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #0xc]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #0xd]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
mov ip, r1
|
|
movs r1, #0
|
|
cmp r1, r6
|
|
bhs _0804AEAC
|
|
ldrb r0, [r5]
|
|
ldrb r7, [r4]
|
|
cmp r0, r7
|
|
beq _0804AE90
|
|
adds r0, r3, #0
|
|
b _0804AEA8
|
|
.align 2, 0
|
|
_0804AE8C: .4byte 0x02023EB8
|
|
_0804AE90:
|
|
adds r5, #1
|
|
adds r4, #1
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, r6
|
|
bhs _0804AEAC
|
|
ldrb r0, [r5]
|
|
ldrb r3, [r4]
|
|
cmp r0, r3
|
|
beq _0804AE90
|
|
ldr r0, [r2]
|
|
_0804AEA8:
|
|
adds r0, #0xe
|
|
str r0, [r2]
|
|
_0804AEAC:
|
|
cmp r1, r6
|
|
bne _0804AEB4
|
|
mov r7, ip
|
|
str r7, [r2]
|
|
_0804AEB4:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk2C_jumpifarrayequal
|
|
|
|
thumb_func_start atk2D_jumpifarraynotequal
|
|
atk2D_jumpifarraynotequal: @ 0x0804AEBC
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r7, #0
|
|
ldr r3, _0804AF30
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r2, [r1, #5]
|
|
ldrb r0, [r1, #6]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r4, r2, r0
|
|
ldrb r6, [r1, #9]
|
|
ldrb r2, [r1, #0xa]
|
|
ldrb r0, [r1, #0xb]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xc]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xd]
|
|
lsls r0, r0, #0x18
|
|
adds r2, r2, r0
|
|
mov ip, r2
|
|
movs r1, #0
|
|
cmp r7, r6
|
|
bhs _0804AF26
|
|
_0804AF0A:
|
|
ldrb r0, [r5]
|
|
ldrb r2, [r4]
|
|
cmp r0, r2
|
|
bne _0804AF18
|
|
adds r0, r7, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
_0804AF18:
|
|
adds r5, #1
|
|
adds r4, #1
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, r6
|
|
blo _0804AF0A
|
|
_0804AF26:
|
|
cmp r7, r6
|
|
beq _0804AF34
|
|
mov r0, ip
|
|
b _0804AF38
|
|
.align 2, 0
|
|
_0804AF30: .4byte 0x02023EB8
|
|
_0804AF34:
|
|
ldr r0, [r3]
|
|
adds r0, #0xe
|
|
_0804AF38:
|
|
str r0, [r3]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk2D_jumpifarraynotequal
|
|
|
|
thumb_func_start atk2E_setbyte
|
|
atk2E_setbyte: @ 0x0804AF40
|
|
ldr r3, _0804AF64
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, #6
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804AF64: .4byte 0x02023EB8
|
|
thumb_func_end atk2E_setbyte
|
|
|
|
thumb_func_start atk2F_addbyte
|
|
atk2F_addbyte: @ 0x0804AF68
|
|
ldr r3, _0804AF90
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
ldrb r2, [r1]
|
|
adds r0, r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, #6
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804AF90: .4byte 0x02023EB8
|
|
thumb_func_end atk2F_addbyte
|
|
|
|
thumb_func_start atk30_subbyte
|
|
atk30_subbyte: @ 0x0804AF94
|
|
ldr r3, _0804AFBC
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r2, #5]
|
|
subs r0, r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, #6
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804AFBC: .4byte 0x02023EB8
|
|
thumb_func_end atk30_subbyte
|
|
|
|
thumb_func_start atk31_copyarray
|
|
atk31_copyarray: @ 0x0804AFC0
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _0804B010
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r6, r2, r0
|
|
ldrb r2, [r1, #5]
|
|
ldrb r0, [r1, #6]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, #9]
|
|
movs r2, #0
|
|
cmp r2, r4
|
|
bge _0804B004
|
|
_0804AFF6:
|
|
adds r0, r6, r2
|
|
adds r1, r5, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, #1
|
|
cmp r2, r4
|
|
blt _0804AFF6
|
|
_0804B004:
|
|
ldr r0, [r3]
|
|
adds r0, #0xa
|
|
str r0, [r3]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B010: .4byte 0x02023EB8
|
|
thumb_func_end atk31_copyarray
|
|
|
|
thumb_func_start atk32_copyarraywithindex
|
|
atk32_copyarraywithindex: @ 0x0804B014
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r3, _0804B07C
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r7, r2, r0
|
|
ldrb r2, [r1, #5]
|
|
ldrb r0, [r1, #6]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r6, r2, r0
|
|
ldrb r2, [r1, #9]
|
|
ldrb r0, [r1, #0xa]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xb]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r1, #0xc]
|
|
lsls r0, r0, #0x18
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, #0xd]
|
|
movs r2, #0
|
|
cmp r2, r4
|
|
bge _0804B070
|
|
_0804B05E:
|
|
adds r0, r7, r2
|
|
ldrb r1, [r5]
|
|
adds r1, r2, r1
|
|
adds r1, r6, r1
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, #1
|
|
cmp r2, r4
|
|
blt _0804B05E
|
|
_0804B070:
|
|
ldr r0, [r3]
|
|
adds r0, #0xe
|
|
str r0, [r3]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B07C: .4byte 0x02023EB8
|
|
thumb_func_end atk32_copyarraywithindex
|
|
|
|
thumb_func_start atk33_orbyte
|
|
atk33_orbyte: @ 0x0804B080
|
|
ldr r3, _0804B0A8
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r2, #5]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, #6
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804B0A8: .4byte 0x02023EB8
|
|
thumb_func_end atk33_orbyte
|
|
|
|
thumb_func_start atk34_orhalfword
|
|
atk34_orhalfword: @ 0x0804B0AC
|
|
push {r4, lr}
|
|
ldr r4, _0804B0E0
|
|
ldr r3, [r4]
|
|
ldrb r2, [r3, #1]
|
|
ldrb r0, [r3, #2]
|
|
lsls r0, r0, #8
|
|
adds r2, r2, r0
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r2, r2, r0
|
|
ldrb r0, [r3, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r2, r2, r0
|
|
ldrb r1, [r3, #5]
|
|
ldrb r0, [r3, #6]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrh r0, [r2]
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
ldr r0, [r4]
|
|
adds r0, #7
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B0E0: .4byte 0x02023EB8
|
|
thumb_func_end atk34_orhalfword
|
|
|
|
thumb_func_start atk35_orword
|
|
atk35_orword: @ 0x0804B0E4
|
|
push {r4, lr}
|
|
ldr r4, _0804B124
|
|
ldr r2, [r4]
|
|
ldrb r3, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r3, r3, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r3, r3, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r3, r3, r0
|
|
ldrb r1, [r2, #5]
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r4]
|
|
adds r0, #9
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B124: .4byte 0x02023EB8
|
|
thumb_func_end atk35_orword
|
|
|
|
thumb_func_start atk36_bicbyte
|
|
atk36_bicbyte: @ 0x0804B128
|
|
ldr r3, _0804B150
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r2, [r2, #5]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, #6
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804B150: .4byte 0x02023EB8
|
|
thumb_func_end atk36_bicbyte
|
|
|
|
thumb_func_start atk37_bichalfword
|
|
atk37_bichalfword: @ 0x0804B154
|
|
push {r4, lr}
|
|
ldr r4, _0804B188
|
|
ldr r3, [r4]
|
|
ldrb r1, [r3, #1]
|
|
ldrb r0, [r3, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r3, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldrb r2, [r3, #5]
|
|
ldrb r0, [r3, #6]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrh r0, [r1]
|
|
bics r0, r2
|
|
strh r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, #7
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B188: .4byte 0x02023EB8
|
|
thumb_func_end atk37_bichalfword
|
|
|
|
thumb_func_start atk38_bicword
|
|
atk38_bicword: @ 0x0804B18C
|
|
push {r4, lr}
|
|
ldr r4, _0804B1CC
|
|
ldr r2, [r4]
|
|
ldrb r3, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r3, r3, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
adds r3, r3, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
adds r3, r3, r0
|
|
ldrb r1, [r2, #5]
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #0x18
|
|
adds r1, r1, r0
|
|
ldr r0, [r3]
|
|
bics r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r4]
|
|
adds r0, #9
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B1CC: .4byte 0x02023EB8
|
|
thumb_func_end atk38_bicword
|
|
|
|
thumb_func_start atk39_pause
|
|
atk39_pause: @ 0x0804B1D0
|
|
push {r4, r5, lr}
|
|
ldr r0, _0804B204
|
|
ldr r4, [r0]
|
|
cmp r4, #0
|
|
bne _0804B1FC
|
|
ldr r5, _0804B208
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldr r3, _0804B20C
|
|
ldrh r0, [r3]
|
|
adds r0, #1
|
|
strh r0, [r3]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r1
|
|
blo _0804B1FC
|
|
strh r4, [r3]
|
|
adds r0, r2, #3
|
|
str r0, [r5]
|
|
_0804B1FC:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B204: .4byte 0x02023D0C
|
|
_0804B208: .4byte 0x02023EB8
|
|
_0804B20C: .4byte 0x02023FD0
|
|
thumb_func_end atk39_pause
|
|
|
|
thumb_func_start atk0A_waitanimation
|
|
atk0A_waitanimation: @ 0x0804B210
|
|
push {lr}
|
|
ldr r0, _0804B228
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804B222
|
|
ldr r1, _0804B22C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804B222:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B228: .4byte 0x02023D0C
|
|
_0804B22C: .4byte 0x02023EB8
|
|
thumb_func_end atk0A_waitanimation
|
|
|
|
thumb_func_start atk3B_healthbar_update
|
|
atk3B_healthbar_update: @ 0x0804B230
|
|
push {lr}
|
|
ldr r0, _0804B244
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0804B250
|
|
ldr r0, _0804B248
|
|
ldr r1, _0804B24C
|
|
b _0804B254
|
|
.align 2, 0
|
|
_0804B244: .4byte 0x02023EB8
|
|
_0804B248: .4byte 0x02023D08
|
|
_0804B24C: .4byte 0x02023EB0
|
|
_0804B250:
|
|
ldr r0, _0804B278
|
|
ldr r1, _0804B27C
|
|
_0804B254:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r0, _0804B280
|
|
ldrh r1, [r0]
|
|
movs r0, #0
|
|
bl BtlController_EmitHealthBarUpdate
|
|
ldr r0, _0804B278
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804B284
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B278: .4byte 0x02023D08
|
|
_0804B27C: .4byte 0x02023EAF
|
|
_0804B280: .4byte 0x02023E94
|
|
_0804B284: .4byte 0x02023EB8
|
|
thumb_func_end atk3B_healthbar_update
|
|
|
|
thumb_func_start atk3C_return
|
|
atk3C_return: @ 0x0804B288
|
|
push {lr}
|
|
bl HandleAction_RunBattleScript
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk3C_return
|
|
|
|
thumb_func_start atk3D_end
|
|
atk3D_end: @ 0x0804B294
|
|
push {lr}
|
|
ldr r0, _0804B2C0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B2AC
|
|
ldr r0, _0804B2C4
|
|
ldrb r0, [r0]
|
|
bl BattleArena_AddSkillPoints
|
|
_0804B2AC:
|
|
ldr r0, _0804B2C8
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r0, _0804B2CC
|
|
strb r1, [r0]
|
|
ldr r1, _0804B2D0
|
|
movs r0, #0xb
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B2C0: .4byte 0x02022C90
|
|
_0804B2C4: .4byte 0x02023EAF
|
|
_0804B2C8: .4byte 0x02023F20
|
|
_0804B2CC: .4byte 0x02023D08
|
|
_0804B2D0: .4byte 0x02023D27
|
|
thumb_func_end atk3D_end
|
|
|
|
thumb_func_start atk3E_end2
|
|
atk3E_end2: @ 0x0804B2D4
|
|
ldr r1, _0804B2E4
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r1, _0804B2E8
|
|
movs r0, #0xb
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804B2E4: .4byte 0x02023D08
|
|
_0804B2E8: .4byte 0x02023D27
|
|
thumb_func_end atk3E_end2
|
|
|
|
thumb_func_start atk3F_end3
|
|
atk3F_end3: @ 0x0804B2EC
|
|
push {lr}
|
|
bl HandleAction_RunBattleScript
|
|
ldr r3, _0804B320
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, #0xc]
|
|
adds r1, r0, #0
|
|
adds r1, #0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _0804B306
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
_0804B306:
|
|
ldr r2, _0804B324
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, #0xc]
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B320: .4byte 0x0202414C
|
|
_0804B324: .4byte 0x03005A64
|
|
thumb_func_end atk3F_end3
|
|
|
|
thumb_func_start atk41_call
|
|
atk41_call: @ 0x0804B328
|
|
push {r4, lr}
|
|
ldr r4, _0804B354
|
|
ldr r0, [r4]
|
|
adds r0, #5
|
|
bl BattleScriptPush
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B354: .4byte 0x02023EB8
|
|
thumb_func_end atk41_call
|
|
|
|
thumb_func_start atk42_jumpiftype2
|
|
atk42_jumpiftype2: @ 0x0804B358
|
|
push {r4, lr}
|
|
ldr r4, _0804B3A0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r3, [r4]
|
|
ldr r2, _0804B3A4
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r2, [r3, #2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _0804B386
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _0804B3A8
|
|
_0804B386:
|
|
ldrb r1, [r3, #3]
|
|
ldrb r0, [r3, #4]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r3, #5]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r3, #6]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804B3AC
|
|
.align 2, 0
|
|
_0804B3A0: .4byte 0x02023EB8
|
|
_0804B3A4: .4byte 0x02023D28
|
|
_0804B3A8:
|
|
adds r0, r3, #7
|
|
str r0, [r4]
|
|
_0804B3AC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk42_jumpiftype2
|
|
|
|
thumb_func_start atk43_jumpifabilitypresent
|
|
atk43_jumpifabilitypresent: @ 0x0804B3B4
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r4, _0804B3EC
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, #1]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804B3F0
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804B3F6
|
|
.align 2, 0
|
|
_0804B3EC: .4byte 0x02023EB8
|
|
_0804B3F0:
|
|
ldr r0, [r4]
|
|
adds r0, #6
|
|
str r0, [r4]
|
|
_0804B3F6:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk43_jumpifabilitypresent
|
|
|
|
thumb_func_start atk44_endselectionscript
|
|
atk44_endselectionscript: @ 0x0804B400
|
|
ldr r0, _0804B414
|
|
ldrb r0, [r0]
|
|
ldr r1, _0804B418
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r0, #0x54
|
|
movs r1, #1
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804B414: .4byte 0x02023EAF
|
|
_0804B418: .4byte 0x02024140
|
|
thumb_func_end atk44_endselectionscript
|
|
|
|
thumb_func_start atk45_playanimation
|
|
atk45_playanimation: @ 0x0804B41C
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _0804B470
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r6, _0804B474
|
|
strb r0, [r6]
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, #3]
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #0x18
|
|
adds r3, r1, r0
|
|
ldrb r4, [r2, #2]
|
|
adds r0, r4, #0
|
|
cmp r0, #1
|
|
beq _0804B452
|
|
cmp r0, #0x11
|
|
beq _0804B452
|
|
cmp r0, #2
|
|
bne _0804B478
|
|
_0804B452:
|
|
ldr r4, _0804B470
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #2]
|
|
ldrh r2, [r3]
|
|
movs r0, #0
|
|
bl BtlController_EmitBattleAnimation
|
|
ldr r0, _0804B474
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r4]
|
|
adds r0, #7
|
|
str r0, [r4]
|
|
b _0804B4DA
|
|
.align 2, 0
|
|
_0804B470: .4byte 0x02023EB8
|
|
_0804B474: .4byte 0x02023D08
|
|
_0804B478:
|
|
ldr r0, _0804B490
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B498
|
|
adds r0, r2, #7
|
|
bl BattleScriptPush
|
|
ldr r0, _0804B494
|
|
b _0804B4D8
|
|
.align 2, 0
|
|
_0804B490: .4byte 0x02023F24
|
|
_0804B494: .4byte 0x08289141
|
|
_0804B498:
|
|
adds r0, r4, #0
|
|
subs r0, #0xa
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _0804B4C4
|
|
ldr r1, _0804B4BC
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804B4C0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B4C4
|
|
adds r0, r2, #7
|
|
b _0804B4D8
|
|
.align 2, 0
|
|
_0804B4BC: .4byte 0x02023F50
|
|
_0804B4C0: .4byte 0x000400C0
|
|
_0804B4C4:
|
|
ldrb r1, [r2, #2]
|
|
ldrh r2, [r3]
|
|
movs r0, #0
|
|
bl BtlController_EmitBattleAnimation
|
|
ldrb r0, [r6]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #7
|
|
_0804B4D8:
|
|
str r0, [r5]
|
|
_0804B4DA:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk45_playanimation
|
|
|
|
thumb_func_start atk46_playanimation2
|
|
atk46_playanimation2: @ 0x0804B4E0
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r6, _0804B548
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r7, _0804B54C
|
|
strb r0, [r7]
|
|
ldr r2, [r6]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
adds r3, r1, r0
|
|
ldrb r1, [r2, #6]
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #9]
|
|
lsls r0, r0, #0x18
|
|
adds r4, r1, r0
|
|
ldrb r5, [r3]
|
|
adds r0, r5, #0
|
|
cmp r0, #1
|
|
beq _0804B52A
|
|
cmp r0, #0x11
|
|
beq _0804B52A
|
|
cmp r0, #2
|
|
bne _0804B550
|
|
_0804B52A:
|
|
ldrb r1, [r3]
|
|
ldrh r2, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitBattleAnimation
|
|
ldr r0, _0804B54C
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804B548
|
|
ldr r0, [r1]
|
|
adds r0, #0xa
|
|
str r0, [r1]
|
|
b _0804B5A6
|
|
.align 2, 0
|
|
_0804B548: .4byte 0x02023EB8
|
|
_0804B54C: .4byte 0x02023D08
|
|
_0804B550:
|
|
ldr r0, _0804B560
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B564
|
|
adds r0, r2, #0
|
|
b _0804B5A2
|
|
.align 2, 0
|
|
_0804B560: .4byte 0x02023F24
|
|
_0804B564:
|
|
adds r0, r5, #0
|
|
subs r0, #0xa
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _0804B590
|
|
ldr r1, _0804B588
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804B58C
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B590
|
|
adds r0, r2, #0
|
|
b _0804B5A2
|
|
.align 2, 0
|
|
_0804B588: .4byte 0x02023F50
|
|
_0804B58C: .4byte 0x000400C0
|
|
_0804B590:
|
|
ldrb r1, [r3]
|
|
ldrh r2, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitBattleAnimation
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r6]
|
|
_0804B5A2:
|
|
adds r0, #0xa
|
|
str r0, [r6]
|
|
_0804B5A6:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk46_playanimation2
|
|
|
|
thumb_func_start atk47_setgraphicalstatchangevalues
|
|
atk47_setgraphicalstatchangevalues: @ 0x0804B5AC
|
|
push {r4, lr}
|
|
movs r3, #0
|
|
ldr r1, _0804B5C8
|
|
ldrb r0, [r1, #0x1a]
|
|
movs r2, #0xf0
|
|
ands r2, r0
|
|
adds r4, r1, #0
|
|
cmp r2, #0x20
|
|
beq _0804B5DA
|
|
cmp r2, #0x20
|
|
bgt _0804B5CC
|
|
cmp r2, #0x10
|
|
beq _0804B5D6
|
|
b _0804B5E4
|
|
.align 2, 0
|
|
_0804B5C8: .4byte 0x02024118
|
|
_0804B5CC:
|
|
cmp r2, #0x90
|
|
beq _0804B5DE
|
|
cmp r2, #0xa0
|
|
beq _0804B5E2
|
|
b _0804B5E4
|
|
_0804B5D6:
|
|
movs r3, #0xf
|
|
b _0804B5E4
|
|
_0804B5DA:
|
|
movs r3, #0x27
|
|
b _0804B5E4
|
|
_0804B5DE:
|
|
movs r3, #0x16
|
|
b _0804B5E4
|
|
_0804B5E2:
|
|
movs r3, #0x2e
|
|
_0804B5E4:
|
|
ldrb r1, [r4, #0x1a]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
adds r0, r3, r0
|
|
subs r0, #1
|
|
movs r1, #0
|
|
strb r0, [r4, #0x10]
|
|
strb r1, [r4, #0x11]
|
|
ldr r1, _0804B604
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804B604: .4byte 0x02023EB8
|
|
thumb_func_end atk47_setgraphicalstatchangevalues
|
|
|
|
thumb_func_start atk48_playstatchangeanimation
|
|
atk48_playstatchangeanimation: @ 0x0804B608
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
movs r7, #0
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r3, #0
|
|
ldr r5, _0804B67C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
str r3, [sp]
|
|
bl GetBattlerForBattleScript
|
|
ldr r2, _0804B680
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldrb r4, [r0, #2]
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
ldr r3, [sp]
|
|
cmp r0, #0
|
|
beq _0804B71C
|
|
movs r0, #2
|
|
ands r0, r1
|
|
movs r1, #0x15
|
|
cmp r0, #0
|
|
beq _0804B648
|
|
movs r1, #0x2d
|
|
_0804B648:
|
|
cmp r4, #0
|
|
beq _0804B6F0
|
|
movs r0, #1
|
|
mov sl, r0
|
|
ldr r0, _0804B684
|
|
mov sb, r0
|
|
lsls r5, r1, #0x10
|
|
_0804B656:
|
|
adds r0, r4, #0
|
|
mov r1, sl
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B6E2
|
|
ldr r0, _0804B67C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B688
|
|
ldr r0, _0804B680
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r7, r0
|
|
b _0804B6D0
|
|
.align 2, 0
|
|
_0804B67C: .4byte 0x02023EB8
|
|
_0804B680: .4byte 0x02023D08
|
|
_0804B684: .4byte 0x02023D40
|
|
_0804B688:
|
|
ldr r6, _0804B70C
|
|
ldrb r0, [r6]
|
|
str r3, [sp]
|
|
bl GetBattlerPosition
|
|
mov r1, sl
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _0804B710
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #4]
|
|
ldr r3, [sp]
|
|
cmp r0, #0
|
|
bne _0804B6E2
|
|
ldr r0, _0804B714
|
|
ldrb r2, [r6]
|
|
movs r1, #0x58
|
|
muls r2, r1, r2
|
|
adds r0, r2, r0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1d
|
|
beq _0804B6E2
|
|
cmp r0, #0x49
|
|
beq _0804B6E2
|
|
cmp r0, #0x33
|
|
bne _0804B6C6
|
|
cmp r7, #6
|
|
beq _0804B6E2
|
|
_0804B6C6:
|
|
cmp r0, #0x34
|
|
bne _0804B6CE
|
|
cmp r7, #1
|
|
beq _0804B6E2
|
|
_0804B6CE:
|
|
adds r0, r7, r2
|
|
_0804B6D0:
|
|
add r0, sb
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
ble _0804B6E2
|
|
lsrs r0, r5, #0x10
|
|
mov r8, r0
|
|
adds r3, #1
|
|
_0804B6E2:
|
|
lsrs r4, r4, #1
|
|
movs r1, #0x80
|
|
lsls r1, r1, #9
|
|
adds r5, r5, r1
|
|
adds r7, #1
|
|
cmp r4, #0
|
|
bne _0804B656
|
|
_0804B6F0:
|
|
ldr r0, _0804B718
|
|
mov sb, r0
|
|
cmp r3, #1
|
|
ble _0804B77E
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
movs r1, #0x39
|
|
mov r8, r1
|
|
cmp r0, #0
|
|
beq _0804B77E
|
|
movs r0, #0x3a
|
|
b _0804B77C
|
|
.align 2, 0
|
|
_0804B70C: .4byte 0x02023D08
|
|
_0804B710: .4byte 0x02023F38
|
|
_0804B714: .4byte 0x02023D28
|
|
_0804B718: .4byte 0x02023EB8
|
|
_0804B71C:
|
|
movs r0, #2
|
|
ands r0, r1
|
|
movs r1, #0xe
|
|
cmp r0, #0
|
|
beq _0804B728
|
|
movs r1, #0x26
|
|
_0804B728:
|
|
mov sb, r5
|
|
cmp r4, #0
|
|
beq _0804B764
|
|
ldr r6, _0804B798
|
|
adds r5, r2, #0
|
|
lsls r2, r1, #0x10
|
|
_0804B734:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0804B756
|
|
ldrb r1, [r5]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r7, r0
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0xb
|
|
bgt _0804B756
|
|
lsrs r1, r2, #0x10
|
|
mov r8, r1
|
|
adds r3, #1
|
|
_0804B756:
|
|
lsrs r4, r4, #1
|
|
movs r0, #0x80
|
|
lsls r0, r0, #9
|
|
adds r2, r2, r0
|
|
adds r7, #1
|
|
cmp r4, #0
|
|
bne _0804B734
|
|
_0804B764:
|
|
cmp r3, #1
|
|
ble _0804B77E
|
|
mov r1, sb
|
|
ldr r0, [r1]
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
movs r1, #0x37
|
|
mov r8, r1
|
|
cmp r0, #0
|
|
beq _0804B77E
|
|
movs r0, #0x38
|
|
_0804B77C:
|
|
mov r8, r0
|
|
_0804B77E:
|
|
mov r1, sb
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, #3]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804B79C
|
|
cmp r3, #1
|
|
bgt _0804B79C
|
|
adds r0, r2, #4
|
|
mov r1, sb
|
|
b _0804B7EA
|
|
.align 2, 0
|
|
_0804B798: .4byte 0x02023D40
|
|
_0804B79C:
|
|
cmp r3, #0
|
|
beq _0804B7E4
|
|
ldr r4, _0804B7D8
|
|
ldrb r0, [r4, #0x1b]
|
|
cmp r0, #0
|
|
bne _0804B7E4
|
|
movs r0, #0
|
|
movs r1, #1
|
|
mov r2, r8
|
|
str r3, [sp]
|
|
bl BtlController_EmitBattleAnimation
|
|
ldr r0, _0804B7DC
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, _0804B7E0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
ldr r3, [sp]
|
|
cmp r0, #0
|
|
beq _0804B7D4
|
|
cmp r3, #1
|
|
ble _0804B7D4
|
|
movs r0, #1
|
|
strb r0, [r4, #0x1b]
|
|
_0804B7D4:
|
|
ldr r1, _0804B7E0
|
|
b _0804B7E6
|
|
.align 2, 0
|
|
_0804B7D8: .4byte 0x02024118
|
|
_0804B7DC: .4byte 0x02023D08
|
|
_0804B7E0: .4byte 0x02023EB8
|
|
_0804B7E4:
|
|
mov r1, sb
|
|
_0804B7E6:
|
|
ldr r0, [r1]
|
|
adds r0, #4
|
|
_0804B7EA:
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk48_playstatchangeanimation
|
|
|
|
thumb_func_start sub_0804B7FC
|
|
sub_0804B7FC: @ 0x0804B7FC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x1c
|
|
movs r0, #0
|
|
mov sl, r0
|
|
ldr r2, _0804B84C
|
|
ldrh r1, [r2]
|
|
ldr r0, _0804B850
|
|
movs r3, #0
|
|
str r3, [sp, #0x18]
|
|
cmp r1, r0
|
|
beq _0804B81E
|
|
ldrh r2, [r2]
|
|
str r2, [sp, #0x18]
|
|
_0804B81E:
|
|
ldr r0, _0804B854
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, #1]
|
|
str r4, [sp, #0x10]
|
|
ldrb r0, [r0, #2]
|
|
str r0, [sp, #0x14]
|
|
ldr r1, _0804B858
|
|
ldr r0, _0804B85C
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _0804B864
|
|
ldr r1, _0804B860
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #7]
|
|
b _0804B86E
|
|
.align 2, 0
|
|
_0804B84C: .4byte 0x02023E90
|
|
_0804B850: .4byte 0x0000FFFF
|
|
_0804B854: .4byte 0x02023EB8
|
|
_0804B858: .4byte 0x02023D28
|
|
_0804B85C: .4byte 0x02023EAF
|
|
_0804B860: .4byte 0x020240A8
|
|
_0804B864:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
_0804B86E:
|
|
str r0, [sp, #8]
|
|
ldr r1, _0804B890
|
|
ldr r0, _0804B894
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, #0xc8
|
|
ldr r1, [r1]
|
|
adds r0, r1, r0
|
|
str r0, [sp, #0xc]
|
|
ldrb r0, [r1, #0x13]
|
|
cmp r0, #0
|
|
beq _0804B920
|
|
movs r5, #0x3f
|
|
ands r5, r0
|
|
str r5, [sp, #4]
|
|
b _0804B932
|
|
.align 2, 0
|
|
_0804B890: .4byte 0x02024140
|
|
_0804B894: .4byte 0x02023EAF
|
|
_0804B898:
|
|
ldr r4, _0804B8AC
|
|
strb r2, [r4]
|
|
movs r0, #0
|
|
movs r1, #1
|
|
bl BtlController_EmitSpriteInvisibility
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804BD8A
|
|
.align 2, 0
|
|
_0804B8AC: .4byte 0x02023D08
|
|
_0804B8B0:
|
|
ldr r4, _0804B8D4
|
|
strb r2, [r4]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitSpriteInvisibility
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldr r0, [r1]
|
|
ldr r2, _0804B8D8
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
b _0804BD8A
|
|
.align 2, 0
|
|
_0804B8D4: .4byte 0x02023D08
|
|
_0804B8D8: .4byte 0xFFFBFF3F
|
|
thumb_func_end sub_0804B7FC
|
|
|
|
thumb_func_start sub_0804B8DC
|
|
sub_0804B8DC: @ 0x0804B8DC
|
|
strb r2, [r7]
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
ldr r0, _0804B910
|
|
strb r4, [r0, #0x14]
|
|
bl MoveValuesCleanUp
|
|
ldr r2, _0804B914
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, sb
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
bl BattleScriptPush
|
|
ldr r1, _0804B918
|
|
ldr r0, _0804B91C
|
|
bl _0804C1E8
|
|
.align 2, 0
|
|
_0804B910: .4byte 0x02024118
|
|
_0804B914: .4byte 0x08286C30
|
|
_0804B918: .4byte 0x02023EB8
|
|
_0804B91C: .4byte 0x08289E05
|
|
_0804B920:
|
|
ldr r2, _0804B938
|
|
ldr r0, _0804B93C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
str r0, [sp, #4]
|
|
_0804B932:
|
|
ldr r1, _0804B940
|
|
mov ip, r1
|
|
b _0804B94E
|
|
.align 2, 0
|
|
_0804B938: .4byte 0x082ED220
|
|
_0804B93C: .4byte 0x02023E8E
|
|
_0804B940: .4byte 0x02024118
|
|
thumb_func_end sub_0804B8DC
|
|
|
|
thumb_func_start atk49_moveend
|
|
atk49_moveend: @ 0x0804B944
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
beq _0804B94E
|
|
bl _0804C1D4
|
|
_0804B94E:
|
|
mov r3, ip
|
|
ldrb r0, [r3, #0x14]
|
|
cmp r0, #0x11
|
|
bls _0804B95A
|
|
bl _0804C1A0
|
|
_0804B95A:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0804B964
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804B964: .4byte 0x0804B968
|
|
_0804B968: @ jump table
|
|
.4byte _0804B9B0 @ case 0
|
|
.4byte _0804BA8C @ case 1
|
|
.4byte _0804BB48 @ case 2
|
|
.4byte _0804BB6C @ case 3
|
|
.4byte _0804BB84 @ case 4
|
|
.4byte _0804BBAC @ case 5
|
|
.4byte _0804BBD0 @ case 6
|
|
.4byte _0804BC78 @ case 7
|
|
.4byte _0804BCEE @ case 8
|
|
.4byte _0804BD24 @ case 9
|
|
.4byte _0804BDC4 @ case 10
|
|
.4byte _0804BCB8 @ case 11
|
|
.4byte _0804BCD8 @ case 12
|
|
.4byte _0804BE08 @ case 13
|
|
.4byte _0804BE4C @ case 14
|
|
.4byte _0804C02C @ case 15
|
|
.4byte _0804C114 @ case 16
|
|
.4byte _0804C1A0 @ case 17
|
|
_0804B9B0:
|
|
ldr r6, _0804BA68
|
|
ldr r5, _0804BA6C
|
|
ldrb r3, [r5]
|
|
movs r7, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r7, r2
|
|
adds r0, r6, #0
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804B9D0
|
|
b _0804BDB4
|
|
_0804B9D0:
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _0804B9DA
|
|
b _0804BDB4
|
|
_0804B9DA:
|
|
ldr r0, _0804BA70
|
|
ldrb r1, [r0]
|
|
cmp r1, r3
|
|
bne _0804B9E4
|
|
b _0804BDB4
|
|
_0804B9E4:
|
|
adds r0, r1, #0
|
|
bl GetBattlerSide
|
|
adds r4, r0, #0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r4, r4, #0x18
|
|
lsls r0, r0, #0x18
|
|
cmp r4, r0
|
|
bne _0804B9FC
|
|
b _0804BDB4
|
|
_0804B9FC:
|
|
ldr r0, _0804BA74
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BA0A
|
|
b _0804BDB4
|
|
_0804BA0A:
|
|
ldr r2, _0804BA78
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r1, r0, #2
|
|
adds r0, r2, #0
|
|
adds r0, #8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804BA2E
|
|
adds r0, r2, #0
|
|
adds r0, #0xc
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804BA2E
|
|
b _0804BDB4
|
|
_0804BA2E:
|
|
ldr r2, _0804BA7C
|
|
ldr r0, _0804BA80
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0804BA44
|
|
b _0804BDB4
|
|
_0804BA44:
|
|
adds r0, r3, #0
|
|
muls r0, r7, r0
|
|
adds r1, r0, r6
|
|
ldrb r2, [r1, #0x19]
|
|
movs r0, #0x19
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0xb
|
|
ble _0804BA56
|
|
b _0804BDB4
|
|
_0804BA56:
|
|
adds r0, r2, #1
|
|
strb r0, [r1, #0x19]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _0804BA84
|
|
ldr r0, _0804BA88
|
|
str r0, [r1]
|
|
b _0804BCE8
|
|
.align 2, 0
|
|
_0804BA68: .4byte 0x02023D28
|
|
_0804BA6C: .4byte 0x02023EB0
|
|
_0804BA70: .4byte 0x02023EAF
|
|
_0804BA74: .4byte 0x02023F20
|
|
_0804BA78: .4byte 0x02024020
|
|
_0804BA7C: .4byte 0x082ED220
|
|
_0804BA80: .4byte 0x02023E8E
|
|
_0804BA84: .4byte 0x02023EB8
|
|
_0804BA88: .4byte 0x08289395
|
|
_0804BA8C:
|
|
ldr r4, _0804BB28
|
|
ldr r6, _0804BB2C
|
|
ldrb r2, [r6]
|
|
movs r5, #0x58
|
|
mov ip, r5
|
|
mov r1, ip
|
|
muls r1, r2, r1
|
|
adds r7, r4, #0
|
|
adds r7, #0x4c
|
|
adds r5, r1, r7
|
|
ldr r3, [r5]
|
|
movs r0, #0x20
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
bne _0804BAAC
|
|
b _0804BDB4
|
|
_0804BAAC:
|
|
adds r0, r1, r4
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _0804BAB6
|
|
b _0804BDB4
|
|
_0804BAB6:
|
|
ldr r0, _0804BB30
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _0804BAC0
|
|
b _0804BDB4
|
|
_0804BAC0:
|
|
ldr r0, _0804BB34
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r0, #0xc
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _0804BAD4
|
|
b _0804BDB4
|
|
_0804BAD4:
|
|
ldr r0, _0804BB38
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BAE2
|
|
b _0804BDB4
|
|
_0804BAE2:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0xa
|
|
beq _0804BAEA
|
|
b _0804BDB4
|
|
_0804BAEA:
|
|
movs r0, #0x21
|
|
rsbs r0, r0, #0
|
|
ands r3, r0
|
|
str r3, [r5]
|
|
ldr r4, _0804BB3C
|
|
ldrb r0, [r6]
|
|
strb r0, [r4]
|
|
ldrb r0, [r6]
|
|
mov r1, ip
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _0804BB40
|
|
ldr r0, _0804BB44
|
|
str r0, [r1]
|
|
movs r2, #1
|
|
mov sl, r2
|
|
b _0804BDB4
|
|
.align 2, 0
|
|
_0804BB28: .4byte 0x02023D28
|
|
_0804BB2C: .4byte 0x02023EB0
|
|
_0804BB30: .4byte 0x02023EAF
|
|
_0804BB34: .4byte 0x02024020
|
|
_0804BB38: .4byte 0x02023F20
|
|
_0804BB3C: .4byte 0x02023D08
|
|
_0804BB40: .4byte 0x02023EB8
|
|
_0804BB44: .4byte 0x0828980A
|
|
_0804BB48:
|
|
ldr r0, _0804BB68
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #7
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804BB62
|
|
b _0804BDB4
|
|
_0804BB62:
|
|
movs r3, #1
|
|
mov sl, r3
|
|
b _0804BDB4
|
|
.align 2, 0
|
|
_0804BB68: .4byte 0x02023EB0
|
|
_0804BB6C:
|
|
ldr r0, _0804BB80
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #4
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
b _0804BCE2
|
|
.align 2, 0
|
|
_0804BB80: .4byte 0x02023EB0
|
|
_0804BB84:
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #5
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804BB9C
|
|
b _0804BDB4
|
|
_0804BB9C:
|
|
movs r5, #1
|
|
mov sl, r5
|
|
ldr r0, _0804BBA8
|
|
mov ip, r0
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804BBA8: .4byte 0x02024118
|
|
_0804BBAC:
|
|
ldr r0, _0804BBCC
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #8
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804BBC6
|
|
b _0804BDB4
|
|
_0804BBC6:
|
|
movs r1, #1
|
|
mov sl, r1
|
|
b _0804BDB4
|
|
.align 2, 0
|
|
_0804BBCC: .4byte 0x02023EAF
|
|
_0804BBD0:
|
|
ldr r0, _0804BC60
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BC14
|
|
ldr r2, [sp, #8]
|
|
cmp r2, #0x1d
|
|
bne _0804BC14
|
|
ldr r0, _0804BC64
|
|
ldrh r2, [r0]
|
|
adds r3, r0, #0
|
|
cmp r2, #0xa5
|
|
beq _0804BC14
|
|
ldr r4, [sp, #0xc]
|
|
ldrh r1, [r4]
|
|
cmp r1, #0
|
|
beq _0804BBFC
|
|
ldr r0, _0804BC68
|
|
cmp r1, r0
|
|
bne _0804BC14
|
|
_0804BBFC:
|
|
cmp r2, #0xe2
|
|
bne _0804BC0E
|
|
ldr r0, _0804BC6C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804BC0E
|
|
b _0804C0E6
|
|
_0804BC0E:
|
|
ldrh r0, [r3]
|
|
ldr r1, [sp, #0xc]
|
|
strh r0, [r1]
|
|
_0804BC14:
|
|
movs r4, #0
|
|
ldr r2, _0804BC70
|
|
ldr r3, _0804BC74
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r2, #0xc
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
ldr r5, [sp, #0xc]
|
|
ldrh r1, [r5]
|
|
mov sb, r3
|
|
cmp r0, r1
|
|
beq _0804BC4C
|
|
mov r6, sb
|
|
movs r3, #0x58
|
|
adds r5, r1, #0
|
|
_0804BC36:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
bgt _0804BC4C
|
|
lsls r0, r4, #1
|
|
ldrb r1, [r6]
|
|
muls r1, r3, r1
|
|
adds r0, r0, r1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
bne _0804BC36
|
|
_0804BC4C:
|
|
cmp r4, #4
|
|
bne _0804BC56
|
|
movs r0, #0
|
|
ldr r1, [sp, #0xc]
|
|
strh r0, [r1]
|
|
_0804BC56:
|
|
mov r2, ip
|
|
ldrb r0, [r2, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r2, #0x14]
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804BC60: .4byte 0x02023F24
|
|
_0804BC64: .4byte 0x02023E90
|
|
_0804BC68: .4byte 0x0000FFFF
|
|
_0804BC6C: .4byte 0x02023F20
|
|
_0804BC70: .4byte 0x02023D28
|
|
_0804BC74: .4byte 0x02023EAF
|
|
_0804BC78:
|
|
movs r4, #0
|
|
ldr r0, _0804BCAC
|
|
ldrb r3, [r0]
|
|
cmp r4, r3
|
|
blt _0804BC84
|
|
b _0804BE32
|
|
_0804BC84:
|
|
ldr r7, _0804BCB0
|
|
movs r6, #0
|
|
movs r3, #0xd0
|
|
adds r5, r0, #0
|
|
ldr r2, _0804BCB4
|
|
_0804BC8E:
|
|
ldr r0, [r7]
|
|
adds r0, r0, r3
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _0804BC9C
|
|
strh r1, [r2, #0x2e]
|
|
strh r6, [r0]
|
|
_0804BC9C:
|
|
adds r3, #2
|
|
adds r2, #0x58
|
|
adds r4, #1
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
blt _0804BC8E
|
|
b _0804BE32
|
|
.align 2, 0
|
|
_0804BCAC: .4byte 0x02023D10
|
|
_0804BCB0: .4byte 0x02024140
|
|
_0804BCB4: .4byte 0x02023D28
|
|
_0804BCB8:
|
|
movs r0, #3
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ItemBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804BDB4
|
|
movs r2, #1
|
|
mov sl, r2
|
|
ldr r3, _0804BCD4
|
|
mov ip, r3
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804BCD4: .4byte 0x02024118
|
|
_0804BCD8:
|
|
movs r0, #4
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ItemBattleEffects
|
|
_0804BCE2:
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804BDB4
|
|
_0804BCE8:
|
|
movs r4, #1
|
|
mov sl, r4
|
|
b _0804BDB4
|
|
_0804BCEE:
|
|
ldr r1, _0804BD14
|
|
ldr r0, _0804BD18
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804BD1C
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804BD04
|
|
b _0804C0E6
|
|
_0804BD04:
|
|
ldr r0, _0804BD20
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BD12
|
|
b _0804B898
|
|
_0804BD12:
|
|
b _0804C0E6
|
|
.align 2, 0
|
|
_0804BD14: .4byte 0x02023F50
|
|
_0804BD18: .4byte 0x02023EAF
|
|
_0804BD1C: .4byte 0x000400C0
|
|
_0804BD20: .4byte 0x02023F24
|
|
_0804BD24:
|
|
ldr r0, _0804BD94
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804BD50
|
|
ldr r1, _0804BD98
|
|
ldr r0, _0804BD9C
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804BDA0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BD50
|
|
adds r0, r2, #0
|
|
bl WasUnableToUseMove
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804BDB4
|
|
_0804BD50:
|
|
ldr r4, _0804BDA4
|
|
ldr r5, _0804BD9C
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitSpriteInvisibility
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, _0804BD98
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _0804BDA8
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _0804BDAC
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804BD8A:
|
|
ldr r1, _0804BDB0
|
|
ldrb r0, [r1, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x14]
|
|
b _0804C1EA
|
|
.align 2, 0
|
|
_0804BD94: .4byte 0x02023F20
|
|
_0804BD98: .4byte 0x02023F50
|
|
_0804BD9C: .4byte 0x02023EAF
|
|
_0804BDA0: .4byte 0x000400C0
|
|
_0804BDA4: .4byte 0x02023D08
|
|
_0804BDA8: .4byte 0xFFFBFF3F
|
|
_0804BDAC: .4byte 0x02024020
|
|
_0804BDB0: .4byte 0x02024118
|
|
_0804BDB4:
|
|
ldr r1, _0804BDC0
|
|
ldrb r0, [r1, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x14]
|
|
mov ip, r1
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804BDC0: .4byte 0x02024118
|
|
_0804BDC4:
|
|
ldr r0, _0804BDF4
|
|
ldr r6, _0804BDF8
|
|
ldrb r2, [r6]
|
|
lsls r3, r2, #2
|
|
adds r1, r3, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1d
|
|
cmp r0, #0
|
|
blt _0804BE32
|
|
ldr r0, _0804BDFC
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bhs _0804BE32
|
|
ldr r5, _0804BE00
|
|
adds r0, r3, r5
|
|
ldr r0, [r0]
|
|
ldr r1, _0804BE04
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804BDF2
|
|
b _0804B8B0
|
|
_0804BDF2:
|
|
b _0804BE32
|
|
.align 2, 0
|
|
_0804BDF4: .4byte 0x02024020
|
|
_0804BDF8: .4byte 0x02023EB0
|
|
_0804BDFC: .4byte 0x02023D10
|
|
_0804BE00: .4byte 0x02023F50
|
|
_0804BE04: .4byte 0x000400C0
|
|
_0804BE08:
|
|
movs r4, #0
|
|
ldr r0, _0804BE3C
|
|
ldrb r2, [r0]
|
|
cmp r4, r2
|
|
bge _0804BE32
|
|
ldr r2, _0804BE40
|
|
ldr r5, _0804BE44
|
|
adds r3, r0, #0
|
|
ldr r1, _0804BE48
|
|
_0804BE1A:
|
|
ldrb r0, [r2, #0xa]
|
|
cmp r0, #0
|
|
bne _0804BE26
|
|
ldr r0, [r1]
|
|
ands r0, r5
|
|
str r0, [r1]
|
|
_0804BE26:
|
|
adds r2, #0x1c
|
|
adds r1, #0x58
|
|
adds r4, #1
|
|
ldrb r0, [r3]
|
|
cmp r4, r0
|
|
blt _0804BE1A
|
|
_0804BE32:
|
|
mov r1, ip
|
|
ldrb r0, [r1, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x14]
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804BE3C: .4byte 0x02023D10
|
|
_0804BE40: .4byte 0x02023F60
|
|
_0804BE44: .4byte 0xFEFFFFFF
|
|
_0804BE48: .4byte 0x02023D78
|
|
_0804BE4C:
|
|
ldr r1, _0804BF00
|
|
ldr r3, [r1]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
ands r0, r3
|
|
ldr r2, _0804BF04
|
|
mov sb, r2
|
|
adds r5, r1, #0
|
|
cmp r0, #0
|
|
beq _0804BE76
|
|
ldr r0, _0804BF08
|
|
ldrb r2, [r2]
|
|
strb r2, [r0]
|
|
ldr r1, _0804BF0C
|
|
ldrb r0, [r1]
|
|
mov r4, sb
|
|
strb r0, [r4]
|
|
strb r2, [r1]
|
|
ldr r0, _0804BF10
|
|
ands r3, r0
|
|
str r3, [r5]
|
|
_0804BE76:
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BE92
|
|
ldr r0, _0804BF14
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldr r0, _0804BF18
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
_0804BE92:
|
|
ldr r0, _0804BF1C
|
|
ldrb r1, [r0]
|
|
ldr r2, _0804BF20
|
|
mov r3, sb
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r2
|
|
ldr r3, [r0]
|
|
ands r1, r3
|
|
adds r6, r2, #0
|
|
cmp r1, #0
|
|
beq _0804BEAC
|
|
b _0804C018
|
|
_0804BEAC:
|
|
ldr r0, _0804BF24
|
|
ldr r1, [r0]
|
|
adds r1, #0x91
|
|
ldrb r1, [r1]
|
|
ands r1, r3
|
|
adds r7, r0, #0
|
|
cmp r1, #0
|
|
beq _0804BEBE
|
|
b _0804C018
|
|
_0804BEBE:
|
|
ldr r0, _0804BF28
|
|
ldr r2, [sp, #0x18]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r1, [r1]
|
|
mov r8, r0
|
|
cmp r1, #0x7f
|
|
bne _0804BED4
|
|
b _0804C018
|
|
_0804BED4:
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804BF38
|
|
ldr r0, _0804BF2C
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldr r0, _0804BF18
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r0, _0804BF30
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldr r0, _0804BF34
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
b _0804BF52
|
|
.align 2, 0
|
|
_0804BF00: .4byte 0x02023F24
|
|
_0804BF04: .4byte 0x02023EAF
|
|
_0804BF08: .4byte 0x02023D08
|
|
_0804BF0C: .4byte 0x02023EB0
|
|
_0804BF10: .4byte 0xFFFFEFFF
|
|
_0804BF14: .4byte 0x02023EE4
|
|
_0804BF18: .4byte 0x02023E90
|
|
_0804BF1C: .4byte 0x02023EB4
|
|
_0804BF20: .4byte 0x082FACB4
|
|
_0804BF24: .4byte 0x02024140
|
|
_0804BF28: .4byte 0x082ED220
|
|
_0804BF2C: .4byte 0x02023EEC
|
|
_0804BF30: .4byte 0x02023F04
|
|
_0804BF34: .4byte 0x02023E8E
|
|
_0804BF38:
|
|
ldr r1, _0804BFA0
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _0804BFA4
|
|
strh r1, [r0]
|
|
ldr r1, _0804BFA8
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
rsbs r1, r1, #0
|
|
strh r1, [r0]
|
|
_0804BF52:
|
|
ldr r2, _0804BFAC
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
ldr r1, [r5]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804BF70
|
|
ldr r0, _0804BFB0
|
|
adds r0, r3, r0
|
|
mov r3, sb
|
|
ldrb r1, [r3]
|
|
strb r1, [r0]
|
|
_0804BF70:
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C00C
|
|
ldr r0, _0804BFB4
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C00C
|
|
ldr r0, _0804BFB8
|
|
ldrh r3, [r0]
|
|
ldr r0, _0804BFA4
|
|
cmp r3, r0
|
|
bne _0804BFC0
|
|
ldr r1, _0804BFBC
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r3, [r0]
|
|
b _0804C018
|
|
.align 2, 0
|
|
_0804BFA0: .4byte 0x02023EEC
|
|
_0804BFA4: .4byte 0x0000FFFF
|
|
_0804BFA8: .4byte 0x02023F04
|
|
_0804BFAC: .4byte 0x02023EB0
|
|
_0804BFB0: .4byte 0x02023F14
|
|
_0804BFB4: .4byte 0x02023F20
|
|
_0804BFB8: .4byte 0x02023E90
|
|
_0804BFBC: .4byte 0x02023EF4
|
|
_0804BFC0:
|
|
ldr r0, _0804BFE4
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldr r4, _0804BFE8
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r3, [r0, #0x13]
|
|
cmp r3, #0
|
|
beq _0804BFF0
|
|
ldr r0, _0804BFEC
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
movs r0, #0x3f
|
|
ands r0, r3
|
|
b _0804C016
|
|
.align 2, 0
|
|
_0804BFE4: .4byte 0x02023EF4
|
|
_0804BFE8: .4byte 0x02023E8E
|
|
_0804BFEC: .4byte 0x02023EFC
|
|
_0804BFF0:
|
|
ldr r0, _0804C008
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #1
|
|
adds r2, r2, r0
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #2]
|
|
strh r0, [r2]
|
|
b _0804C018
|
|
.align 2, 0
|
|
_0804C008: .4byte 0x02023EFC
|
|
_0804C00C:
|
|
ldr r0, _0804C024
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldr r0, _0804C028
|
|
_0804C016:
|
|
strh r0, [r1]
|
|
_0804C018:
|
|
mov r4, ip
|
|
ldrb r0, [r4, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r4, #0x14]
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804C024: .4byte 0x02023EF4
|
|
_0804C028: .4byte 0x0000FFFF
|
|
_0804C02C:
|
|
ldr r0, _0804C0F0
|
|
ldrb r1, [r0]
|
|
ldr r7, _0804C0F4
|
|
ldr r2, _0804C0F8
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r7
|
|
ldr r4, [r0]
|
|
ands r1, r4
|
|
mov sb, r2
|
|
cmp r1, #0
|
|
bne _0804C0E6
|
|
ldr r6, _0804C0FC
|
|
ldr r5, [r6]
|
|
adds r0, r5, #0
|
|
adds r0, #0x91
|
|
ldrb r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _0804C0E6
|
|
ldr r1, _0804C100
|
|
ldr r2, [sp, #0x18]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #8]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C0E6
|
|
ldr r0, _0804C104
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C0E6
|
|
ldr r4, _0804C108
|
|
ldrb r0, [r4]
|
|
cmp r3, r0
|
|
beq _0804C0E6
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r7
|
|
ldr r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804C0E6
|
|
ldr r0, _0804C10C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C0E6
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r5
|
|
adds r1, #0x98
|
|
ldr r3, _0804C110
|
|
ldrh r0, [r3]
|
|
strb r0, [r1]
|
|
ldrb r1, [r4]
|
|
ldr r0, [r6]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
adds r1, #0x99
|
|
ldrh r0, [r3]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
ldr r2, [r6]
|
|
lsls r0, r0, #3
|
|
lsls r1, r1, #1
|
|
adds r0, r0, r1
|
|
adds r0, r0, r2
|
|
adds r0, #0xe0
|
|
ldrh r1, [r3]
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
ldr r2, [r6]
|
|
lsls r1, r1, #3
|
|
lsls r0, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
adds r1, #0xe1
|
|
ldrh r0, [r3]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1]
|
|
_0804C0E6:
|
|
mov r5, ip
|
|
ldrb r0, [r5, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r5, #0x14]
|
|
b _0804C1A0
|
|
.align 2, 0
|
|
_0804C0F0: .4byte 0x02023EB4
|
|
_0804C0F4: .4byte 0x082FACB4
|
|
_0804C0F8: .4byte 0x02023EAF
|
|
_0804C0FC: .4byte 0x02024140
|
|
_0804C100: .4byte 0x082ED220
|
|
_0804C104: .4byte 0x02023F24
|
|
_0804C108: .4byte 0x02023EB0
|
|
_0804C10C: .4byte 0x02023F20
|
|
_0804C110: .4byte 0x02023E90
|
|
_0804C114:
|
|
ldr r5, _0804C1FC
|
|
ldr r2, [r5]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xc
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _0804C198
|
|
ldr r0, _0804C200
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C198
|
|
ldr r1, _0804C204
|
|
ldr r0, _0804C208
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #1]
|
|
lsls r0, r0, #0x1d
|
|
cmp r0, #0
|
|
blt _0804C198
|
|
ldr r0, _0804C20C
|
|
mov sb, r0
|
|
ldr r1, _0804C210
|
|
mov r8, r1
|
|
ldrh r0, [r1]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
add r1, sb
|
|
ldrb r0, [r1, #6]
|
|
cmp r0, #8
|
|
bne _0804C198
|
|
movs r6, #0x80
|
|
lsls r6, r6, #2
|
|
adds r4, r6, #0
|
|
ands r4, r2
|
|
cmp r4, #0
|
|
bne _0804C198
|
|
ldr r7, _0804C214
|
|
ldrb r0, [r7]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldr r1, _0804C218
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0804C18E
|
|
bl sub_0804B8DC
|
|
_0804C18E:
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
ldr r2, _0804C21C
|
|
mov ip, r2
|
|
_0804C198:
|
|
mov r3, ip
|
|
ldrb r0, [r3, #0x14]
|
|
adds r0, #1
|
|
strb r0, [r3, #0x14]
|
|
_0804C1A0:
|
|
ldr r4, [sp, #0x10]
|
|
cmp r4, #1
|
|
bne _0804C1B2
|
|
mov r5, sl
|
|
cmp r5, #0
|
|
bne _0804C1B2
|
|
movs r0, #0x11
|
|
mov r1, ip
|
|
strb r0, [r1, #0x14]
|
|
_0804C1B2:
|
|
ldr r2, [sp, #0x10]
|
|
cmp r2, #2
|
|
bne _0804C1C8
|
|
ldr r4, [sp, #0x14]
|
|
mov r3, ip
|
|
ldrb r3, [r3, #0x14]
|
|
cmp r4, r3
|
|
bne _0804C1C8
|
|
movs r0, #0x11
|
|
mov r4, ip
|
|
strb r0, [r4, #0x14]
|
|
_0804C1C8:
|
|
mov r5, ip
|
|
ldrb r0, [r5, #0x14]
|
|
cmp r0, #0x11
|
|
beq _0804C1D4
|
|
bl atk49_moveend
|
|
_0804C1D4:
|
|
mov r1, ip
|
|
ldrb r0, [r1, #0x14]
|
|
cmp r0, #0x11
|
|
bne _0804C1EA
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
bne _0804C1EA
|
|
ldr r1, _0804C220
|
|
ldr r0, [r1]
|
|
adds r0, #3
|
|
_0804C1E8:
|
|
str r0, [r1]
|
|
_0804C1EA:
|
|
add sp, #0x1c
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C1FC: .4byte 0x02023F24
|
|
_0804C200: .4byte 0x02022C90
|
|
_0804C204: .4byte 0x02023FE0
|
|
_0804C208: .4byte 0x02023EAF
|
|
_0804C20C: .4byte 0x082ED220
|
|
_0804C210: .4byte 0x02023E8E
|
|
_0804C214: .4byte 0x02023EB0
|
|
_0804C218: .4byte 0x02023D28
|
|
_0804C21C: .4byte 0x02024118
|
|
_0804C220: .4byte 0x02023EB8
|
|
thumb_func_end atk49_moveend
|
|
|
|
thumb_func_start atk4A_typecalc2
|
|
atk4A_typecalc2: @ 0x0804C224
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r4, #0
|
|
movs r5, #0
|
|
ldr r2, _0804C288
|
|
ldr r0, _0804C28C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #2]
|
|
mov r8, r0
|
|
ldr r2, _0804C290
|
|
ldr r3, _0804C294
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
mov ip, r2
|
|
adds r7, r3, #0
|
|
cmp r0, #0x1a
|
|
bne _0804C2B8
|
|
mov r1, r8
|
|
cmp r1, #4
|
|
bne _0804C2B8
|
|
ldr r3, _0804C298
|
|
strb r0, [r3]
|
|
ldr r2, _0804C29C
|
|
ldrb r0, [r2]
|
|
movs r1, #9
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804C2A0
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r4, [r0]
|
|
ldr r0, _0804C2A4
|
|
mov r2, r8
|
|
strb r2, [r0, #6]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r3]
|
|
bl RecordAbilityBattle
|
|
b _0804C39A
|
|
.align 2, 0
|
|
_0804C288: .4byte 0x082ED220
|
|
_0804C28C: .4byte 0x02023E8E
|
|
_0804C290: .4byte 0x02023D28
|
|
_0804C294: .4byte 0x02023EB0
|
|
_0804C298: .4byte 0x02023EAE
|
|
_0804C29C: .4byte 0x02023F20
|
|
_0804C2A0: .4byte 0x02023EF4
|
|
_0804C2A4: .4byte 0x02023FD6
|
|
_0804C2A8:
|
|
ldr r0, _0804C2B4
|
|
ldrb r1, [r0]
|
|
movs r2, #8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804C39A
|
|
.align 2, 0
|
|
_0804C2B4: .4byte 0x02023F20
|
|
_0804C2B8:
|
|
ldr r1, _0804C2C4
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r6, r1, #0
|
|
b _0804C37A
|
|
.align 2, 0
|
|
_0804C2C4: .4byte 0x082EBB38
|
|
_0804C2C8:
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _0804C374
|
|
adds r2, r5, #1
|
|
adds r3, r2, r6
|
|
ldrb r1, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, ip
|
|
adds r0, #0x21
|
|
ldrb r1, [r3]
|
|
adds r3, r2, #0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _0804C306
|
|
adds r0, r5, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
beq _0804C2A8
|
|
cmp r1, #5
|
|
bne _0804C2FA
|
|
movs r0, #4
|
|
orrs r4, r0
|
|
_0804C2FA:
|
|
cmp r1, #0x14
|
|
bne _0804C306
|
|
movs r0, #2
|
|
orrs r4, r0
|
|
lsls r0, r4, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0804C306:
|
|
adds r2, r3, r6
|
|
ldrb r1, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, ip
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804C374
|
|
adds r0, #0x21
|
|
ldrb r1, [r0]
|
|
cmp r1, r2
|
|
beq _0804C32E
|
|
adds r0, r5, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804C2A8
|
|
_0804C32E:
|
|
cmp r1, r2
|
|
beq _0804C344
|
|
adds r0, r5, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bne _0804C344
|
|
movs r0, #4
|
|
orrs r4, r0
|
|
lsls r0, r4, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0804C344:
|
|
adds r2, r3, r6
|
|
ldrb r1, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, ip
|
|
adds r1, r0, #0
|
|
adds r1, #0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804C374
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _0804C374
|
|
adds r0, r5, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x14
|
|
bne _0804C374
|
|
movs r0, #2
|
|
orrs r4, r0
|
|
lsls r0, r4, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0804C374:
|
|
adds r5, #3
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
_0804C37A:
|
|
cmp r0, #0xff
|
|
beq _0804C39A
|
|
cmp r0, #0xfe
|
|
bne _0804C2C8
|
|
ldrb r1, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, ip
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C374
|
|
_0804C39A:
|
|
ldr r2, _0804C448
|
|
ldr r0, _0804C44C
|
|
mov r8, r0
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r6, [r0]
|
|
cmp r6, #0x19
|
|
bne _0804C416
|
|
movs r5, #0x29
|
|
ands r5, r4
|
|
cmp r5, #0
|
|
bne _0804C416
|
|
ldr r0, _0804C450
|
|
ldrb r0, [r0]
|
|
ldr r7, _0804C454
|
|
ldrh r1, [r7]
|
|
bl AttacksThisTurn
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #2
|
|
bne _0804C416
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C3DC
|
|
movs r0, #6
|
|
ands r4, r0
|
|
cmp r4, #6
|
|
bne _0804C416
|
|
_0804C3DC:
|
|
ldr r2, _0804C458
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _0804C416
|
|
ldr r3, _0804C45C
|
|
strb r6, [r3]
|
|
ldr r2, _0804C460
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804C464
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
strh r5, [r0]
|
|
ldr r1, _0804C468
|
|
movs r0, #3
|
|
strb r0, [r1, #6]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r3]
|
|
bl RecordAbilityBattle
|
|
_0804C416:
|
|
ldr r0, _0804C460
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C434
|
|
ldr r2, _0804C46C
|
|
ldr r0, _0804C450
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1, #1]
|
|
movs r2, #2
|
|
orrs r0, r2
|
|
strb r0, [r1, #1]
|
|
_0804C434:
|
|
ldr r1, _0804C470
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C448: .4byte 0x02023D28
|
|
_0804C44C: .4byte 0x02023EB0
|
|
_0804C450: .4byte 0x02023EAF
|
|
_0804C454: .4byte 0x02023E8E
|
|
_0804C458: .4byte 0x082ED220
|
|
_0804C45C: .4byte 0x02023EAE
|
|
_0804C460: .4byte 0x02023F20
|
|
_0804C464: .4byte 0x02023EF4
|
|
_0804C468: .4byte 0x02023FD6
|
|
_0804C46C: .4byte 0x02023FE0
|
|
_0804C470: .4byte 0x02023EB8
|
|
thumb_func_end atk4A_typecalc2
|
|
|
|
thumb_func_start atk4B_returnatktoball
|
|
atk4B_returnatktoball: @ 0x0804C474
|
|
push {r4, lr}
|
|
ldr r4, _0804C4B0
|
|
ldr r0, _0804C4B4
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r2, _0804C4B8
|
|
ldr r1, _0804C4BC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C4A2
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitReturnMonToBall
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804C4A2:
|
|
ldr r1, _0804C4C0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C4B0: .4byte 0x02023D08
|
|
_0804C4B4: .4byte 0x02023EAF
|
|
_0804C4B8: .4byte 0x02023F24
|
|
_0804C4BC: .4byte 0x082FACB4
|
|
_0804C4C0: .4byte 0x02023EB8
|
|
thumb_func_end atk4B_returnatktoball
|
|
|
|
thumb_func_start atk4C_getswitchedmondata
|
|
atk4C_getswitchedmondata: @ 0x0804C4C4
|
|
push {r4, r5, lr}
|
|
ldr r0, _0804C51C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804C514
|
|
ldr r5, _0804C520
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804C524
|
|
strb r0, [r4]
|
|
ldr r3, _0804C528
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r3
|
|
ldr r1, _0804C52C
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldr r1, _0804C530
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitGetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
_0804C514:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C51C: .4byte 0x02023D0C
|
|
_0804C520: .4byte 0x02023EB8
|
|
_0804C524: .4byte 0x02023D08
|
|
_0804C528: .4byte 0x02023D12
|
|
_0804C52C: .4byte 0x02024140
|
|
_0804C530: .4byte 0x082FACB4
|
|
thumb_func_end atk4C_getswitchedmondata
|
|
|
|
thumb_func_start atk4D_switchindataupdate
|
|
atk4D_switchindataupdate: @ 0x0804C534
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x58
|
|
ldr r0, _0804C6DC
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804C542
|
|
b _0804C6D4
|
|
_0804C542:
|
|
ldr r0, _0804C6E0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804C6E4
|
|
strb r0, [r4]
|
|
ldr r6, _0804C6E8
|
|
ldrb r0, [r4]
|
|
movs r5, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r6
|
|
mov r0, sp
|
|
movs r2, #0x58
|
|
bl memcpy
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r3, r0, r6
|
|
movs r2, #0
|
|
ldr r5, _0804C6EC
|
|
_0804C56E:
|
|
adds r0, r3, r2
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #9
|
|
adds r1, #4
|
|
adds r1, r2, r1
|
|
adds r1, r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, #1
|
|
cmp r2, #0x57
|
|
bls _0804C56E
|
|
ldr r4, _0804C6E8
|
|
ldr r6, _0804C6E4
|
|
ldrb r0, [r6]
|
|
movs r7, #0x58
|
|
adds r2, r0, #0
|
|
muls r2, r7, r2
|
|
adds r2, r2, r4
|
|
ldr r3, _0804C6F0
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0, #6]
|
|
adds r2, #0x21
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r7, r1
|
|
adds r1, r1, r4
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0, #7]
|
|
adds r1, #0x22
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r7, r1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
ldrb r1, [r1, #0x17]
|
|
lsrs r1, r1, #7
|
|
bl GetAbilityBySpecies
|
|
ldrb r1, [r6]
|
|
muls r1, r7, r1
|
|
adds r1, r1, r4
|
|
adds r1, #0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldr r0, _0804C6F4
|
|
adds r0, #0x29
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
ldr r3, _0804C6F8
|
|
ldr r2, _0804C6FC
|
|
ldrb r5, [r6]
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
mov ip, r4
|
|
cmp r1, #0
|
|
beq _0804C60E
|
|
adds r0, r5, #0
|
|
muls r0, r7, r0
|
|
add r0, ip
|
|
movs r1, #0
|
|
strh r1, [r0, #0x2e]
|
|
_0804C60E:
|
|
ldr r2, _0804C700
|
|
ldr r0, _0804C704
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x7f
|
|
bne _0804C656
|
|
movs r2, #0
|
|
adds r4, r6, #0
|
|
movs r6, #0x58
|
|
mov r5, ip
|
|
adds r5, #0x18
|
|
add r3, sp, #0x18
|
|
_0804C62E:
|
|
ldrb r0, [r4]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
adds r1, r2, r1
|
|
adds r1, r1, r5
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, #1
|
|
cmp r2, #7
|
|
ble _0804C62E
|
|
ldr r0, _0804C6E4
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, ip
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r1, [sp, #0x50]
|
|
str r1, [r0]
|
|
_0804C656:
|
|
bl SwitchInClearSetData
|
|
ldr r0, _0804C708
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xa
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C6A8
|
|
ldr r4, _0804C6E8
|
|
ldr r0, _0804C6E4
|
|
ldrb r3, [r0]
|
|
movs r0, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r0, r2
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1, #0x2c]
|
|
lsrs r0, r0, #1
|
|
ldrh r1, [r1, #0x28]
|
|
cmp r0, r1
|
|
blo _0804C6A8
|
|
cmp r1, #0
|
|
beq _0804C6A8
|
|
adds r0, r4, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C6A8
|
|
ldr r0, _0804C70C
|
|
ldr r2, [r0]
|
|
adds r2, #0x92
|
|
ldr r1, _0804C6F8
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804C6A8:
|
|
ldr r0, _0804C710
|
|
ldr r3, _0804C6E4
|
|
ldrb r2, [r3]
|
|
strb r2, [r0, #0x17]
|
|
ldr r1, _0804C714
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #7
|
|
strb r0, [r1, #1]
|
|
strb r2, [r1, #2]
|
|
ldr r2, _0804C6FC
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _0804C6E0
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_0804C6D4:
|
|
add sp, #0x58
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C6DC: .4byte 0x02023D0C
|
|
_0804C6E0: .4byte 0x02023EB8
|
|
_0804C6E4: .4byte 0x02023D08
|
|
_0804C6E8: .4byte 0x02023D28
|
|
_0804C6EC: .4byte 0x02023508
|
|
_0804C6F0: .4byte 0x082F0D54
|
|
_0804C6F4: .4byte 0x02024074
|
|
_0804C6F8: .4byte 0x082FACB4
|
|
_0804C6FC: .4byte 0x02023D12
|
|
_0804C700: .4byte 0x082ED220
|
|
_0804C704: .4byte 0x02023E8E
|
|
_0804C708: .4byte 0x02022C90
|
|
_0804C70C: .4byte 0x02024140
|
|
_0804C710: .4byte 0x02024118
|
|
_0804C714: .4byte 0x02022C0C
|
|
thumb_func_end atk4D_switchindataupdate
|
|
|
|
thumb_func_start atk4E_switchinanim
|
|
atk4E_switchinanim: @ 0x0804C718
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _0804C7BC
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804C7B6
|
|
ldr r0, _0804C7C0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r6, _0804C7C4
|
|
strb r0, [r6]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _0804C76E
|
|
ldr r0, _0804C7C8
|
|
ldr r0, [r0]
|
|
ldr r1, _0804C7CC
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C76E
|
|
ldr r4, _0804C7D0
|
|
ldrb r0, [r6]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldrb r1, [r6]
|
|
muls r1, r5, r1
|
|
adds r4, #0x48
|
|
adds r1, r1, r4
|
|
ldr r2, [r1]
|
|
movs r1, #2
|
|
bl HandleSetPokedexFlag
|
|
_0804C76E:
|
|
ldr r2, _0804C7D4
|
|
ldr r1, _0804C7D8
|
|
ldr r5, _0804C7C4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804C7DC
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r4, _0804C7C0
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, #2]
|
|
movs r0, #0
|
|
bl BtlController_EmitSwitchInAnim
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r4]
|
|
adds r0, #3
|
|
str r0, [r4]
|
|
ldr r0, _0804C7C8
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C7B6
|
|
bl BattleArena_InitPoints
|
|
_0804C7B6:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804C7BC: .4byte 0x02023D0C
|
|
_0804C7C0: .4byte 0x02023EB8
|
|
_0804C7C4: .4byte 0x02023D08
|
|
_0804C7C8: .4byte 0x02022C90
|
|
_0804C7CC: .4byte 0x063F0902
|
|
_0804C7D0: .4byte 0x02023D28
|
|
_0804C7D4: .4byte 0x02023EB4
|
|
_0804C7D8: .4byte 0x082FACB4
|
|
_0804C7DC: .4byte 0x02023D12
|
|
thumb_func_end atk4E_switchinanim
|
|
|
|
thumb_func_start atk4F_jumpifcantswitch
|
|
atk4F_jumpifcantswitch: @ 0x0804C7E0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0804C844
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
bl GetBattlerForBattleScript
|
|
ldr r3, _0804C848
|
|
strb r0, [r3]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #1]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C858
|
|
ldr r1, _0804C84C
|
|
ldrb r3, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804C850
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804C82C
|
|
ldr r1, _0804C854
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C858
|
|
_0804C82C:
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804CB30
|
|
.align 2, 0
|
|
_0804C844: .4byte 0x02023EB8
|
|
_0804C848: .4byte 0x02023D08
|
|
_0804C84C: .4byte 0x02023D28
|
|
_0804C850: .4byte 0x0400E000
|
|
_0804C854: .4byte 0x02023F50
|
|
_0804C858:
|
|
ldr r0, _0804C8DC
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C8F0
|
|
ldr r5, _0804C8E0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _0804C8E4
|
|
mov r8, r1
|
|
cmp r0, #1
|
|
bne _0804C87E
|
|
ldr r0, _0804C8E8
|
|
mov r8, r0
|
|
_0804C87E:
|
|
movs r4, #0
|
|
ldrb r1, [r5]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C88C
|
|
movs r4, #3
|
|
_0804C88C:
|
|
adds r6, r4, #3
|
|
cmp r4, r6
|
|
bge _0804C8D4
|
|
ldr r7, _0804C8EC
|
|
_0804C894:
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804C8CE
|
|
adds r0, r5, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804C8CE
|
|
adds r0, r5, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804C8CE
|
|
ldr r0, _0804C8E0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0804C8D4
|
|
_0804C8CE:
|
|
adds r4, #1
|
|
cmp r4, r6
|
|
blt _0804C894
|
|
_0804C8D4:
|
|
cmp r4, r6
|
|
bne _0804C8DA
|
|
b _0804CB00
|
|
_0804C8DA:
|
|
b _0804CB28
|
|
.align 2, 0
|
|
_0804C8DC: .4byte 0x02022C90
|
|
_0804C8E0: .4byte 0x02023D08
|
|
_0804C8E4: .4byte 0x02024190
|
|
_0804C8E8: .4byte 0x020243E8
|
|
_0804C8EC: .4byte 0x02023D12
|
|
_0804C8F0:
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804C9BC
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x10
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804C930
|
|
ldr r5, _0804C914
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804C91C
|
|
ldr r0, _0804C918
|
|
b _0804C946
|
|
.align 2, 0
|
|
_0804C914: .4byte 0x02023D08
|
|
_0804C918: .4byte 0x02024190
|
|
_0804C91C:
|
|
ldr r1, _0804C92C
|
|
mov r8, r1
|
|
ldrb r0, [r5]
|
|
movs r4, #3
|
|
cmp r0, #1
|
|
bne _0804C962
|
|
movs r4, #0
|
|
b _0804C962
|
|
.align 2, 0
|
|
_0804C92C: .4byte 0x020243E8
|
|
_0804C930:
|
|
ldr r5, _0804C9AC
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _0804C9B0
|
|
mov r8, r1
|
|
cmp r0, #1
|
|
bne _0804C948
|
|
ldr r0, _0804C9B4
|
|
_0804C946:
|
|
mov r8, r0
|
|
_0804C948:
|
|
movs r4, #0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetLinkTrainerFlankId
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #1
|
|
bne _0804C962
|
|
movs r4, #3
|
|
_0804C962:
|
|
adds r6, r4, #3
|
|
cmp r4, r6
|
|
bge _0804C8D4
|
|
ldr r7, _0804C9B8
|
|
_0804C96A:
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804C9A4
|
|
adds r0, r5, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804C9A4
|
|
adds r0, r5, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804C9A4
|
|
ldr r0, _0804C9AC
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0804C8D4
|
|
_0804C9A4:
|
|
adds r4, #1
|
|
cmp r4, r6
|
|
blt _0804C96A
|
|
b _0804C8D4
|
|
.align 2, 0
|
|
_0804C9AC: .4byte 0x02023D08
|
|
_0804C9B0: .4byte 0x02024190
|
|
_0804C9B4: .4byte 0x020243E8
|
|
_0804C9B8: .4byte 0x02023D12
|
|
_0804C9BC:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804CA40
|
|
ldr r5, _0804CA34
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _0804CA40
|
|
ldr r0, _0804CA38
|
|
mov r8, r0
|
|
movs r4, #0
|
|
ldrb r0, [r5]
|
|
cmp r0, #3
|
|
bne _0804C9E4
|
|
movs r4, #3
|
|
_0804C9E4:
|
|
adds r6, r4, #3
|
|
cmp r4, r6
|
|
blt _0804C9EC
|
|
b _0804C8D4
|
|
_0804C9EC:
|
|
ldr r7, _0804CA3C
|
|
_0804C9EE:
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804CA2A
|
|
adds r0, r5, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804CA2A
|
|
adds r0, r5, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804CA2A
|
|
ldr r0, _0804CA34
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
beq _0804CA2A
|
|
b _0804C8D4
|
|
_0804CA2A:
|
|
adds r4, #1
|
|
cmp r4, r6
|
|
blt _0804C9EE
|
|
b _0804C8D4
|
|
.align 2, 0
|
|
_0804CA34: .4byte 0x02023D08
|
|
_0804CA38: .4byte 0x020243E8
|
|
_0804CA3C: .4byte 0x02023D12
|
|
_0804CA40:
|
|
ldr r0, _0804CA70
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #1
|
|
bne _0804CA84
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r0, _0804CA74
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0804CA78
|
|
movs r0, #3
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
b _0804CA7A
|
|
.align 2, 0
|
|
_0804CA70: .4byte 0x02023D08
|
|
_0804CA74: .4byte 0x02022C90
|
|
_0804CA78:
|
|
adds r6, r7, #0
|
|
_0804CA7A:
|
|
ldr r0, _0804CA80
|
|
mov r8, r0
|
|
b _0804CAB2
|
|
.align 2, 0
|
|
_0804CA80: .4byte 0x020243E8
|
|
_0804CA84:
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r0, _0804CAA8
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804CAAC
|
|
movs r0, #2
|
|
bl GetBattlerAtPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
b _0804CAAE
|
|
.align 2, 0
|
|
_0804CAA8: .4byte 0x02022C90
|
|
_0804CAAC:
|
|
adds r6, r7, #0
|
|
_0804CAAE:
|
|
ldr r1, _0804CB1C
|
|
mov r8, r1
|
|
_0804CAB2:
|
|
movs r4, #0
|
|
_0804CAB4:
|
|
movs r0, #0x64
|
|
muls r0, r4, r0
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804CAF6
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804CAF6
|
|
adds r0, r5, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _0804CAF6
|
|
ldr r1, _0804CB20
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _0804CAF6
|
|
lsls r0, r6, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _0804CAFC
|
|
_0804CAF6:
|
|
adds r4, #1
|
|
cmp r4, #5
|
|
ble _0804CAB4
|
|
_0804CAFC:
|
|
cmp r4, #6
|
|
bne _0804CB28
|
|
_0804CB00:
|
|
ldr r3, _0804CB24
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804CB30
|
|
.align 2, 0
|
|
_0804CB1C: .4byte 0x02024190
|
|
_0804CB20: .4byte 0x02023D12
|
|
_0804CB24: .4byte 0x02023EB8
|
|
_0804CB28:
|
|
ldr r1, _0804CB3C
|
|
ldr r0, [r1]
|
|
adds r0, #6
|
|
str r0, [r1]
|
|
_0804CB30:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804CB3C: .4byte 0x02023EB8
|
|
thumb_func_end atk4F_jumpifcantswitch
|
|
|
|
thumb_func_start sub_0804CB40
|
|
sub_0804CB40: @ 0x0804CB40
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
ldr r5, _0804CBA8
|
|
ldrb r0, [r5]
|
|
ldr r4, _0804CBAC
|
|
ldr r1, [r4]
|
|
adds r1, r0, r1
|
|
adds r1, #0x58
|
|
ldr r3, _0804CBB0
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
ldr r1, [r4]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
movs r1, #6
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
adds r1, #0x93
|
|
ldr r3, _0804CBB4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r3, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r3
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, #0x60
|
|
ldr r0, [r4]
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #1
|
|
movs r3, #0
|
|
bl BtlController_EmitChoosePokemon
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804CBA8: .4byte 0x02023D08
|
|
_0804CBAC: .4byte 0x02024140
|
|
_0804CBB0: .4byte 0x02023D12
|
|
_0804CBB4: .4byte 0x082FACB4
|
|
thumb_func_end sub_0804CB40
|
|
|
|
thumb_func_start atk50_openpartyscreen
|
|
atk50_openpartyscreen: @ 0x0804CBB8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
movs r7, #0
|
|
movs r0, #0
|
|
mov sb, r0
|
|
ldr r6, _0804CC68
|
|
ldr r2, [r6]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
mov r8, r1
|
|
ldrb r1, [r2, #1]
|
|
adds r0, r1, #0
|
|
mov ip, r6
|
|
cmp r0, #5
|
|
beq _0804CBEE
|
|
b _0804D094
|
|
_0804CBEE:
|
|
ldr r0, _0804CC6C
|
|
ldr r0, [r0]
|
|
movs r1, #0x41
|
|
ands r1, r0
|
|
cmp r1, #1
|
|
beq _0804CCE0
|
|
ldr r1, _0804CC70
|
|
strb r7, [r1]
|
|
ldr r0, _0804CC74
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blo _0804CC08
|
|
b _0804D080
|
|
_0804CC08:
|
|
ldr r7, _0804CC78
|
|
ldr r6, _0804CC7C
|
|
adds r4, r1, #0
|
|
ldr r2, _0804CC80
|
|
mov r8, r2
|
|
_0804CC12:
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r7]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804CCB8
|
|
adds r0, r2, #0
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804CC84
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r7]
|
|
bics r0, r1
|
|
str r0, [r7]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804CCC8
|
|
.align 2, 0
|
|
_0804CC68: .4byte 0x02023EB8
|
|
_0804CC6C: .4byte 0x02022C90
|
|
_0804CC70: .4byte 0x02023D08
|
|
_0804CC74: .4byte 0x02023D10
|
|
_0804CC78: .4byte 0x02023F24
|
|
_0804CC7C: .4byte 0x082FACB4
|
|
_0804CC80: .4byte 0x02023EB4
|
|
_0804CC84:
|
|
ldr r5, _0804CCB4
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804CCC8
|
|
movs r0, #6
|
|
bl sub_0804CB40
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804CCC8
|
|
.align 2, 0
|
|
_0804CCB4: .4byte 0x02024020
|
|
_0804CCB8:
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804CCC8:
|
|
ldrb r0, [r4]
|
|
adds r0, #1
|
|
strb r0, [r4]
|
|
ldr r1, _0804CCDC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
blo _0804CC12
|
|
b _0804D080
|
|
.align 2, 0
|
|
_0804CCDC: .4byte 0x02023D10
|
|
_0804CCE0:
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804CCE8
|
|
b _0804D080
|
|
_0804CCE8:
|
|
ldr r0, _0804CD40
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
lsrs r5, r0, #0x1c
|
|
ldr r6, _0804CD44
|
|
ldr r0, [r6]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804CDA0
|
|
ldr r4, _0804CD48
|
|
strb r7, [r4]
|
|
movs r0, #0
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804CD50
|
|
ldr r2, _0804CD4C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804CDA0
|
|
.align 2, 0
|
|
_0804CD40: .4byte 0x02023F24
|
|
_0804CD44: .4byte 0x082FACB4
|
|
_0804CD48: .4byte 0x02023D08
|
|
_0804CD4C: .4byte 0x02023EB4
|
|
_0804CD50:
|
|
ldr r6, _0804CD84
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804CD8C
|
|
ldr r0, _0804CD88
|
|
ldr r0, [r0]
|
|
adds r0, #0x5e
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804CDA0
|
|
.align 2, 0
|
|
_0804CD84: .4byte 0x02024020
|
|
_0804CD88: .4byte 0x02024140
|
|
_0804CD8C:
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
movs r0, #1
|
|
mov sb, r0
|
|
_0804CDA0:
|
|
ldr r6, _0804CDF8
|
|
ldr r0, [r6, #8]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804CE5E
|
|
ldr r0, [r6]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _0804CE5E
|
|
ldr r4, _0804CDFC
|
|
movs r0, #2
|
|
strb r0, [r4]
|
|
movs r0, #2
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804CE08
|
|
ldr r2, _0804CE00
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _0804CE04
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804CE5E
|
|
.align 2, 0
|
|
_0804CDF8: .4byte 0x082FACB4
|
|
_0804CDFC: .4byte 0x02023D08
|
|
_0804CE00: .4byte 0x02023EB4
|
|
_0804CE04: .4byte 0x02023F24
|
|
_0804CE08:
|
|
ldr r6, _0804CE3C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804CE44
|
|
ldr r0, _0804CE40
|
|
ldr r0, [r0]
|
|
adds r0, #0x5c
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804CE5E
|
|
.align 2, 0
|
|
_0804CE3C: .4byte 0x02024020
|
|
_0804CE40: .4byte 0x02024140
|
|
_0804CE44:
|
|
movs r0, #1
|
|
mov r1, sb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804CE5E
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804CE5E:
|
|
ldr r6, _0804CEB0
|
|
ldr r0, [r6, #4]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804CF14
|
|
ldr r4, _0804CEB4
|
|
movs r0, #1
|
|
strb r0, [r4]
|
|
movs r0, #1
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804CEC0
|
|
ldr r2, _0804CEB8
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _0804CEBC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804CF14
|
|
.align 2, 0
|
|
_0804CEB0: .4byte 0x082FACB4
|
|
_0804CEB4: .4byte 0x02023D08
|
|
_0804CEB8: .4byte 0x02023EB4
|
|
_0804CEBC: .4byte 0x02023F24
|
|
_0804CEC0:
|
|
ldr r6, _0804CEF4
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804CEFC
|
|
ldr r0, _0804CEF8
|
|
ldr r0, [r0]
|
|
adds r0, #0x5f
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804CF14
|
|
.align 2, 0
|
|
_0804CEF4: .4byte 0x02024020
|
|
_0804CEF8: .4byte 0x02024140
|
|
_0804CEFC:
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
movs r0, #2
|
|
mov r2, sb
|
|
orrs r2, r0
|
|
mov sb, r2
|
|
_0804CF14:
|
|
ldr r6, _0804CF6C
|
|
ldr r0, [r6, #0xc]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804CFD2
|
|
ldr r0, [r6, #4]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _0804CFD2
|
|
ldr r4, _0804CF70
|
|
movs r0, #3
|
|
strb r0, [r4]
|
|
movs r0, #3
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804CF7C
|
|
ldr r2, _0804CF74
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _0804CF78
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804CFD2
|
|
.align 2, 0
|
|
_0804CF6C: .4byte 0x082FACB4
|
|
_0804CF70: .4byte 0x02023D08
|
|
_0804CF74: .4byte 0x02023EB4
|
|
_0804CF78: .4byte 0x02023F24
|
|
_0804CF7C:
|
|
ldr r6, _0804CFB0
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804CFB8
|
|
ldr r0, _0804CFB4
|
|
ldr r0, [r0]
|
|
adds r0, #0x5d
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804CFD2
|
|
.align 2, 0
|
|
_0804CFB0: .4byte 0x02024020
|
|
_0804CFB4: .4byte 0x02024140
|
|
_0804CFB8:
|
|
movs r0, #2
|
|
mov r1, sb
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804CFD2
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804CFD2:
|
|
ldr r1, _0804D004
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D02A
|
|
adds r0, r1, #0
|
|
adds r0, #0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D02A
|
|
cmp r5, #0
|
|
beq _0804D02A
|
|
ldr r0, _0804D008
|
|
ldrb r1, [r0]
|
|
ldr r0, _0804D00C
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804D014
|
|
ldr r1, _0804D010
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
b _0804D018
|
|
.align 2, 0
|
|
_0804D004: .4byte 0x02024020
|
|
_0804D008: .4byte 0x02023EB4
|
|
_0804D00C: .4byte 0x082FACB4
|
|
_0804D010: .4byte 0x02023D08
|
|
_0804D014:
|
|
ldr r0, _0804D058
|
|
strb r1, [r0]
|
|
_0804D018:
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldr r0, _0804D058
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
_0804D02A:
|
|
ldr r1, _0804D05C
|
|
ldrb r0, [r1, #0x14]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D080
|
|
adds r0, r1, #0
|
|
adds r0, #0x3c
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D080
|
|
cmp r5, #0
|
|
beq _0804D080
|
|
ldr r0, _0804D060
|
|
ldrb r0, [r0]
|
|
ldr r1, _0804D064
|
|
ldr r1, [r1, #4]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804D068
|
|
ldr r1, _0804D058
|
|
movs r0, #3
|
|
b _0804D06C
|
|
.align 2, 0
|
|
_0804D058: .4byte 0x02023D08
|
|
_0804D05C: .4byte 0x02024020
|
|
_0804D060: .4byte 0x02023EB4
|
|
_0804D064: .4byte 0x082FACB4
|
|
_0804D068:
|
|
ldr r1, _0804D08C
|
|
movs r0, #1
|
|
_0804D06C:
|
|
strb r0, [r1]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldr r0, _0804D08C
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
_0804D080:
|
|
ldr r1, _0804D090
|
|
ldr r0, [r1]
|
|
adds r0, #6
|
|
str r0, [r1]
|
|
b _0804D434
|
|
.align 2, 0
|
|
_0804D08C: .4byte 0x02023D08
|
|
_0804D090: .4byte 0x02023EB8
|
|
_0804D094:
|
|
cmp r0, #6
|
|
beq _0804D09A
|
|
b _0804D288
|
|
_0804D09A:
|
|
ldr r0, _0804D110
|
|
ldr r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804D0A8
|
|
b _0804D224
|
|
_0804D0A8:
|
|
movs r0, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804D0B2
|
|
b _0804D224
|
|
_0804D0B2:
|
|
ldr r7, _0804D114
|
|
ldr r0, [r7]
|
|
lsrs r5, r0, #0x1c
|
|
ldr r4, _0804D118
|
|
ldr r0, [r4, #8]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804D15A
|
|
ldr r0, [r4]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804D15A
|
|
ldr r6, _0804D11C
|
|
movs r0, #2
|
|
strb r0, [r6]
|
|
ldr r0, _0804D120
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #2
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804D128
|
|
ldr r2, _0804D124
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r7]
|
|
bics r0, r1
|
|
str r0, [r7]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r6]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804D15A
|
|
.align 2, 0
|
|
_0804D110: .4byte 0x02022C90
|
|
_0804D114: .4byte 0x02023F24
|
|
_0804D118: .4byte 0x082FACB4
|
|
_0804D11C: .4byte 0x02023D08
|
|
_0804D120: .4byte 0x02023508
|
|
_0804D124: .4byte 0x02023EB4
|
|
_0804D128:
|
|
ldr r4, _0804D1B8
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D15A
|
|
ldr r0, _0804D1BC
|
|
ldr r0, [r0]
|
|
adds r0, #0x5c
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804D15A:
|
|
ldr r4, _0804D1C0
|
|
ldr r0, [r4, #0xc]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804D20A
|
|
ldr r0, [r4, #4]
|
|
ands r5, r0
|
|
cmp r5, #0
|
|
beq _0804D20A
|
|
ldr r5, _0804D1C4
|
|
movs r0, #3
|
|
strb r0, [r5]
|
|
ldr r0, _0804D1C8
|
|
ldr r2, _0804D1CC
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #3
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804D1D8
|
|
ldr r2, _0804D1D0
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _0804D1D4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd42
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804D20A
|
|
.align 2, 0
|
|
_0804D1B8: .4byte 0x02024020
|
|
_0804D1BC: .4byte 0x02024140
|
|
_0804D1C0: .4byte 0x082FACB4
|
|
_0804D1C4: .4byte 0x02023D08
|
|
_0804D1C8: .4byte 0x02023508
|
|
_0804D1CC: .4byte 0x00000201
|
|
_0804D1D0: .4byte 0x02023EB4
|
|
_0804D1D4: .4byte 0x02023F24
|
|
_0804D1D8:
|
|
ldr r4, _0804D218
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0804D20A
|
|
ldr r0, _0804D21C
|
|
ldr r0, [r0]
|
|
adds r0, #0x5d
|
|
ldrb r0, [r0]
|
|
bl sub_0804CB40
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804D20A:
|
|
ldr r1, _0804D220
|
|
ldr r0, [r1]
|
|
adds r0, #6
|
|
str r0, [r1]
|
|
mov ip, r1
|
|
b _0804D228
|
|
.align 2, 0
|
|
_0804D218: .4byte 0x02024020
|
|
_0804D21C: .4byte 0x02024140
|
|
_0804D220: .4byte 0x02023EB8
|
|
_0804D224:
|
|
adds r0, r2, #6
|
|
str r0, [r6]
|
|
_0804D228:
|
|
ldr r0, _0804D278
|
|
ldr r0, [r0]
|
|
lsrs r5, r0, #0x1c
|
|
ldr r1, _0804D27C
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r4, _0804D280
|
|
ldr r2, [r4]
|
|
ands r2, r5
|
|
ldr r6, _0804D284
|
|
cmp r2, #0
|
|
bne _0804D264
|
|
adds r7, r6, #0
|
|
ldrb r0, [r6]
|
|
cmp r2, r0
|
|
bhs _0804D264
|
|
adds r3, r1, #0
|
|
_0804D24A:
|
|
ldrb r0, [r3]
|
|
adds r0, #1
|
|
strb r0, [r3]
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _0804D264
|
|
ldrb r0, [r7]
|
|
cmp r2, r0
|
|
blo _0804D24A
|
|
_0804D264:
|
|
ldrb r0, [r1]
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
beq _0804D26E
|
|
b _0804D434
|
|
_0804D26E:
|
|
mov r1, r8
|
|
mov r2, ip
|
|
str r1, [r2]
|
|
b _0804D434
|
|
.align 2, 0
|
|
_0804D278: .4byte 0x02023F24
|
|
_0804D27C: .4byte 0x02023EB1
|
|
_0804D280: .4byte 0x082FACB4
|
|
_0804D284: .4byte 0x02023D10
|
|
_0804D288:
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
movs r5, #1
|
|
cmp r0, #0
|
|
beq _0804D294
|
|
movs r5, #0
|
|
_0804D294:
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
bl GetBattlerForBattleScript
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r1, _0804D2BC
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
bge _0804D2C0
|
|
ldr r0, [r6]
|
|
adds r0, #6
|
|
str r0, [r6]
|
|
b _0804D434
|
|
.align 2, 0
|
|
_0804D2BC: .4byte 0x02024020
|
|
_0804D2C0:
|
|
adds r0, r7, #0
|
|
movs r1, #6
|
|
movs r2, #6
|
|
bl HasNoMonsToSwitch
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804D310
|
|
ldr r2, _0804D300
|
|
strb r7, [r2]
|
|
ldr r3, _0804D304
|
|
ldr r4, _0804D308
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r3]
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r3, _0804D30C
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r3]
|
|
bics r0, r1
|
|
str r0, [r3]
|
|
mov r0, r8
|
|
str r0, [r6]
|
|
b _0804D434
|
|
.align 2, 0
|
|
_0804D300: .4byte 0x02023D08
|
|
_0804D304: .4byte 0x02023EB4
|
|
_0804D308: .4byte 0x082FACB4
|
|
_0804D30C: .4byte 0x02023F24
|
|
_0804D310:
|
|
ldr r4, _0804D3D8
|
|
strb r7, [r4]
|
|
ldrb r0, [r4]
|
|
ldr r3, _0804D3DC
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, #0x58
|
|
ldr r2, _0804D3E0
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
ldr r1, [r3]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
movs r1, #6
|
|
strb r1, [r0]
|
|
ldr r1, [r3]
|
|
adds r1, #0x93
|
|
ldr r2, _0804D3E4
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, #2
|
|
eors r0, r1
|
|
ldr r3, [r3]
|
|
adds r0, r0, r3
|
|
adds r0, #0x5c
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0x60
|
|
adds r3, r3, r0
|
|
str r3, [sp]
|
|
movs r0, #0
|
|
adds r1, r5, #0
|
|
movs r3, #0
|
|
bl BtlController_EmitChoosePokemon
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r6]
|
|
adds r0, #6
|
|
str r0, [r6]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804D390
|
|
ldr r1, _0804D3E8
|
|
ldrb r0, [r1, #2]
|
|
cmp r0, #0xfe
|
|
bhi _0804D390
|
|
adds r0, #1
|
|
strb r0, [r1, #2]
|
|
_0804D390:
|
|
ldr r0, _0804D3EC
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804D3F4
|
|
ldr r1, _0804D3D8
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r0, _0804D3F0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804D434
|
|
adds r4, r1, #0
|
|
_0804D3AC:
|
|
ldrb r0, [r4]
|
|
cmp r0, r7
|
|
beq _0804D3C2
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804D3C2:
|
|
ldrb r0, [r4]
|
|
adds r0, #1
|
|
strb r0, [r4]
|
|
ldr r1, _0804D3F0
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
blo _0804D3AC
|
|
b _0804D434
|
|
.align 2, 0
|
|
_0804D3D8: .4byte 0x02023D08
|
|
_0804D3DC: .4byte 0x02024140
|
|
_0804D3E0: .4byte 0x02023D12
|
|
_0804D3E4: .4byte 0x082FACB4
|
|
_0804D3E8: .4byte 0x03005A70
|
|
_0804D3EC: .4byte 0x02022C90
|
|
_0804D3F0: .4byte 0x02023D10
|
|
_0804D3F4:
|
|
adds r0, r7, #0
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _0804D444
|
|
strb r0, [r4]
|
|
ldr r0, _0804D448
|
|
ldrb r1, [r0]
|
|
ldr r2, _0804D44C
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804D424
|
|
movs r0, #2
|
|
eors r3, r0
|
|
strb r3, [r4]
|
|
_0804D424:
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl BtlController_EmitLinkStandbyMsg
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804D434:
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D444: .4byte 0x02023D08
|
|
_0804D448: .4byte 0x02023EB4
|
|
_0804D44C: .4byte 0x082FACB4
|
|
thumb_func_end atk50_openpartyscreen
|
|
|
|
thumb_func_start atk51_switchhandleorder
|
|
atk51_switchhandleorder: @ 0x0804D450
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _0804D47C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _0804D45C
|
|
b _0804D6BA
|
|
_0804D45C:
|
|
ldr r4, _0804D480
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _0804D484
|
|
strb r0, [r5]
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #1
|
|
beq _0804D4FC
|
|
cmp r0, #1
|
|
bgt _0804D488
|
|
cmp r0, #0
|
|
beq _0804D492
|
|
b _0804D6B2
|
|
.align 2, 0
|
|
_0804D47C: .4byte 0x02023D0C
|
|
_0804D480: .4byte 0x02023EB8
|
|
_0804D484: .4byte 0x02023D08
|
|
_0804D488:
|
|
cmp r0, #2
|
|
beq _0804D518
|
|
cmp r0, #3
|
|
beq _0804D552
|
|
b _0804D6B2
|
|
_0804D492:
|
|
movs r6, #0
|
|
ldr r0, _0804D4EC
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804D49E
|
|
b _0804D6B2
|
|
_0804D49E:
|
|
ldr r7, _0804D4F0
|
|
_0804D4A0:
|
|
ldrb r0, [r7]
|
|
cmp r0, #0x22
|
|
bne _0804D4DA
|
|
ldr r5, _0804D4F4
|
|
ldr r0, [r5]
|
|
adds r0, r6, r0
|
|
adds r0, #0x5c
|
|
ldrb r1, [r7, #1]
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, #0x93
|
|
ldrb r1, [r0]
|
|
ldr r2, _0804D4F8
|
|
lsls r0, r6, #2
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
ands r1, r4
|
|
cmp r1, #0
|
|
bne _0804D4DA
|
|
lsls r0, r6, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r7, #1]
|
|
bl RecordedBattle_SetBattlerAction
|
|
ldr r1, [r5]
|
|
adds r1, #0x93
|
|
ldrb r0, [r1]
|
|
orrs r4, r0
|
|
strb r4, [r1]
|
|
_0804D4DA:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
adds r7, r7, r0
|
|
adds r6, #1
|
|
ldr r0, _0804D4EC
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804D4A0
|
|
b _0804D6B2
|
|
.align 2, 0
|
|
_0804D4EC: .4byte 0x02023D10
|
|
_0804D4F0: .4byte 0x02023508
|
|
_0804D4F4: .4byte 0x02024140
|
|
_0804D4F8: .4byte 0x082FACB4
|
|
_0804D4FC:
|
|
ldr r0, _0804D514
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804D50A
|
|
b _0804D6B2
|
|
_0804D50A:
|
|
ldrb r0, [r5]
|
|
bl sub_0803B9E4
|
|
b _0804D6B2
|
|
.align 2, 0
|
|
_0804D514: .4byte 0x02022C90
|
|
_0804D518:
|
|
ldr r4, _0804D62C
|
|
ldr r0, [r4]
|
|
adds r0, #0x93
|
|
ldrb r1, [r0]
|
|
ldr r6, _0804D630
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804D552
|
|
ldr r0, _0804D634
|
|
lsls r1, r2, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r2, #0
|
|
bl RecordedBattle_SetBattlerAction
|
|
ldr r2, [r4]
|
|
adds r2, #0x93
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804D552:
|
|
ldr r1, _0804D638
|
|
ldr r6, _0804D634
|
|
ldr r7, _0804D63C
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
adds r2, r6, #1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldr r1, _0804D62C
|
|
mov ip, r1
|
|
ldr r1, [r1]
|
|
adds r1, r0, r1
|
|
adds r1, #0x5c
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _0804D640
|
|
ldr r1, [r0]
|
|
movs r0, #0x42
|
|
ands r0, r1
|
|
cmp r0, #0x42
|
|
bne _0804D644
|
|
ldrb r0, [r7]
|
|
mov r3, ip
|
|
ldr r2, [r3]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
adds r1, #0x60
|
|
ldrb r2, [r1]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldr r2, [r3]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
adds r1, #0x60
|
|
lsls r0, r0, #9
|
|
adds r5, r6, #2
|
|
adds r0, r0, r5
|
|
ldrb r2, [r0]
|
|
movs r3, #0xf0
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
ldrb r2, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
mov r0, ip
|
|
ldr r2, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
adds r0, r0, r2
|
|
adds r0, #0x61
|
|
lsls r1, r1, #9
|
|
adds r6, #3
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
movs r4, #2
|
|
eors r0, r4
|
|
mov r1, ip
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
adds r1, #0x60
|
|
ldrb r2, [r1]
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
eors r0, r4
|
|
mov r1, ip
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
adds r1, #0x60
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
ands r3, r0
|
|
lsrs r3, r3, #4
|
|
ldrb r0, [r1]
|
|
orrs r3, r0
|
|
strb r3, [r1]
|
|
ldrb r0, [r7]
|
|
eors r4, r0
|
|
mov r2, ip
|
|
ldr r0, [r2]
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r4
|
|
adds r1, r1, r0
|
|
adds r1, #0x62
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
b _0804D666
|
|
.align 2, 0
|
|
_0804D62C: .4byte 0x02024140
|
|
_0804D630: .4byte 0x082FACB4
|
|
_0804D634: .4byte 0x02023508
|
|
_0804D638: .4byte 0x02023FD6
|
|
_0804D63C: .4byte 0x02023D08
|
|
_0804D640: .4byte 0x02022C90
|
|
_0804D644:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804D660
|
|
ldrb r0, [r7]
|
|
mov r3, ip
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, #0x5c
|
|
ldrb r1, [r1]
|
|
bl sub_08056DEC
|
|
b _0804D666
|
|
_0804D660:
|
|
ldrb r0, [r7]
|
|
bl sub_0803B9E4
|
|
_0804D666:
|
|
ldr r1, _0804D6C0
|
|
movs r5, #0xfd
|
|
strb r5, [r1]
|
|
movs r0, #6
|
|
strb r0, [r1, #1]
|
|
ldr r4, _0804D6C4
|
|
ldr r3, _0804D6C8
|
|
ldrb r0, [r3]
|
|
movs r2, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r3]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r2, _0804D6CC
|
|
strb r5, [r2]
|
|
movs r0, #7
|
|
strb r0, [r2, #1]
|
|
ldr r3, _0804D6D0
|
|
ldrb r0, [r3]
|
|
strb r0, [r2, #2]
|
|
ldr r1, _0804D6D4
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, #3]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
strb r0, [r2, #4]
|
|
_0804D6B2:
|
|
ldr r1, _0804D6D8
|
|
ldr r0, [r1]
|
|
adds r0, #3
|
|
str r0, [r1]
|
|
_0804D6BA:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D6C0: .4byte 0x02022C0C
|
|
_0804D6C4: .4byte 0x02023D28
|
|
_0804D6C8: .4byte 0x02023EAF
|
|
_0804D6CC: .4byte 0x02022C1C
|
|
_0804D6D0: .4byte 0x02023D08
|
|
_0804D6D4: .4byte 0x02023508
|
|
_0804D6D8: .4byte 0x02023EB8
|
|
thumb_func_end atk51_switchhandleorder
|
|
|
|
thumb_func_start atk52_switchineffects
|
|
atk52_switchineffects: @ 0x0804D6DC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
ldr r0, _0804D814
|
|
mov sb, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804D818
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
bl sub_0803F6B0
|
|
ldr r1, _0804D81C
|
|
mov r8, r1
|
|
ldr r1, _0804D820
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x1c
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
ldr r2, _0804D824
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
ldr r5, _0804D828
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0]
|
|
movs r7, #0x80
|
|
lsls r7, r7, #2
|
|
mov sl, r7
|
|
mov r0, sl
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804D74C
|
|
b _0804D860
|
|
_0804D74C:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804D764
|
|
b _0804D860
|
|
_0804D764:
|
|
ldr r7, _0804D82C
|
|
ldrb r2, [r4]
|
|
movs r6, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r6, r0
|
|
adds r1, r0, r7
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
beq _0804D860
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
beq _0804D860
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1a
|
|
beq _0804D860
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r5
|
|
ldrh r2, [r0]
|
|
mov r1, sl
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r2, r0, #0
|
|
muls r2, r6, r2
|
|
adds r0, r7, #0
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _0804D830
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r2, #0x41
|
|
rsbs r2, r2, #0
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
ldr r2, _0804D834
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1, #0xa]
|
|
movs r1, #5
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x19
|
|
lsrs r1, r1, #0x18
|
|
ldr r5, _0804D838
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2c]
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _0804D7F8
|
|
movs r0, #1
|
|
str r0, [r5]
|
|
_0804D7F8:
|
|
ldr r0, _0804D83C
|
|
ldrb r1, [r4]
|
|
strb r1, [r0, #0x17]
|
|
bl BattleScriptPushCursor
|
|
mov r7, sb
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
bne _0804D844
|
|
ldr r0, _0804D840
|
|
str r0, [r7]
|
|
b _0804D9BE
|
|
.align 2, 0
|
|
_0804D814: .4byte 0x02023EB8
|
|
_0804D818: .4byte 0x02023D08
|
|
_0804D81C: .4byte 0x02023F24
|
|
_0804D820: .4byte 0x082FACB4
|
|
_0804D824: .4byte 0x02024020
|
|
_0804D828: .4byte 0x02023F32
|
|
_0804D82C: .4byte 0x02023D28
|
|
_0804D830: .4byte 0xFDFFFFFF
|
|
_0804D834: .4byte 0x02023F38
|
|
_0804D838: .4byte 0x02023E94
|
|
_0804D83C: .4byte 0x02024118
|
|
_0804D840: .4byte 0x08289418
|
|
_0804D844:
|
|
cmp r0, #1
|
|
bne _0804D854
|
|
ldr r0, _0804D850
|
|
mov r1, sb
|
|
str r0, [r1]
|
|
b _0804D9BE
|
|
.align 2, 0
|
|
_0804D850: .4byte 0x082893E1
|
|
_0804D854:
|
|
ldr r0, _0804D85C
|
|
mov r2, sb
|
|
str r0, [r2]
|
|
b _0804D9BE
|
|
.align 2, 0
|
|
_0804D85C: .4byte 0x0828944F
|
|
_0804D860:
|
|
ldr r2, _0804D95C
|
|
ldr r1, _0804D960
|
|
ldrb r3, [r1]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
adds r5, r1, #0
|
|
ldr r4, _0804D964
|
|
cmp r0, #0x36
|
|
bne _0804D88E
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2, #0x18]
|
|
lsls r0, r1, #0x1e
|
|
cmp r0, #0
|
|
blt _0804D88E
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
_0804D88E:
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r2, [r1, #0x18]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #0x18]
|
|
ldrb r1, [r5]
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804D8B8
|
|
b _0804D9BE
|
|
_0804D8B8:
|
|
ldrb r1, [r5]
|
|
movs r0, #0
|
|
movs r2, #0
|
|
bl ItemBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804D9BE
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
ldr r1, _0804D968
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
ldr r1, _0804D96C
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
movs r4, #0
|
|
ldr r0, _0804D970
|
|
ldrb r7, [r0]
|
|
cmp r4, r7
|
|
bge _0804D908
|
|
ldr r6, _0804D974
|
|
adds r1, r5, #0
|
|
ldr r5, _0804D978
|
|
movs r3, #0xc
|
|
adds r2, r0, #0
|
|
_0804D8F2:
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r1]
|
|
cmp r0, r7
|
|
bne _0804D900
|
|
adds r0, r4, r5
|
|
strb r3, [r0]
|
|
_0804D900:
|
|
adds r4, #1
|
|
ldrb r0, [r2]
|
|
cmp r4, r0
|
|
blt _0804D8F2
|
|
_0804D908:
|
|
movs r4, #0
|
|
ldr r0, _0804D970
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _0804D93C
|
|
ldr r6, _0804D97C
|
|
ldr r5, _0804D95C
|
|
_0804D916:
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, #0xa8
|
|
ldr r1, [r6]
|
|
adds r1, r1, r0
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0, #0x28]
|
|
strh r0, [r1]
|
|
adds r4, #1
|
|
ldr r0, _0804D970
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804D916
|
|
_0804D93C:
|
|
ldr r0, _0804D980
|
|
ldr r1, [r0]
|
|
ldrb r1, [r1, #1]
|
|
adds r5, r0, #0
|
|
cmp r1, #5
|
|
bne _0804D9B8
|
|
ldr r0, _0804D984
|
|
ldr r0, [r0]
|
|
lsrs r4, r0, #0x1c
|
|
ldr r1, _0804D988
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
ldr r2, _0804D98C
|
|
b _0804D99E
|
|
.align 2, 0
|
|
_0804D95C: .4byte 0x02023D28
|
|
_0804D960: .4byte 0x02023D08
|
|
_0804D964: .4byte 0x02023F60
|
|
_0804D968: .4byte 0x02023F32
|
|
_0804D96C: .4byte 0x0000FDFF
|
|
_0804D970: .4byte 0x02023D10
|
|
_0804D974: .4byte 0x02023D22
|
|
_0804D978: .4byte 0x02023D1E
|
|
_0804D97C: .4byte 0x02024140
|
|
_0804D980: .4byte 0x02023EB8
|
|
_0804D984: .4byte 0x02023F24
|
|
_0804D988: .4byte 0x02023EB1
|
|
_0804D98C: .4byte 0x082FACB4
|
|
_0804D990:
|
|
ldr r0, _0804D9D0
|
|
ldrb r3, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bhs _0804D9B8
|
|
adds r0, r3, #1
|
|
strb r0, [r1]
|
|
_0804D99E:
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r3, [r0]
|
|
adds r0, r4, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _0804D990
|
|
ldr r0, _0804D9D4
|
|
ldrb r0, [r0]
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
bne _0804D990
|
|
_0804D9B8:
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
_0804D9BE:
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804D9D0: .4byte 0x02023D10
|
|
_0804D9D4: .4byte 0x02023EB4
|
|
thumb_func_end atk52_switchineffects
|
|
|
|
thumb_func_start atk53_trainerslidein
|
|
atk53_trainerslidein: @ 0x0804D9D8
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804DA00
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _0804DA04
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitTrainerSlide
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DA00: .4byte 0x02023EB8
|
|
_0804DA04: .4byte 0x02023D08
|
|
thumb_func_end atk53_trainerslidein
|
|
|
|
thumb_func_start atk54_playse
|
|
atk54_playse: @ 0x0804DA08
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804DA38
|
|
ldr r0, _0804DA3C
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, _0804DA40
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #1]
|
|
ldrb r0, [r0, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
movs r0, #0
|
|
bl BtlController_EmitPlaySE
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r4]
|
|
adds r0, #3
|
|
str r0, [r4]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DA38: .4byte 0x02023D08
|
|
_0804DA3C: .4byte 0x02023EAF
|
|
_0804DA40: .4byte 0x02023EB8
|
|
thumb_func_end atk54_playse
|
|
|
|
thumb_func_start atk55_fanfare
|
|
atk55_fanfare: @ 0x0804DA44
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804DA74
|
|
ldr r0, _0804DA78
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, _0804DA7C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #1]
|
|
ldrb r0, [r0, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
movs r0, #0
|
|
movs r2, #0
|
|
bl BtlController_EmitPlayFanfareOrBGM
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r4]
|
|
adds r0, #3
|
|
str r0, [r4]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DA74: .4byte 0x02023D08
|
|
_0804DA78: .4byte 0x02023EAF
|
|
_0804DA7C: .4byte 0x02023EB8
|
|
thumb_func_end atk55_fanfare
|
|
|
|
thumb_func_start atk56_playfaintcry
|
|
atk56_playfaintcry: @ 0x0804DA80
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804DAA8
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804DAAC
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitFaintingCry
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DAA8: .4byte 0x02023EB8
|
|
_0804DAAC: .4byte 0x02023D08
|
|
thumb_func_end atk56_playfaintcry
|
|
|
|
thumb_func_start atk57
|
|
atk57: @ 0x0804DAB0
|
|
push {r4, lr}
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _0804DADC
|
|
strb r0, [r4]
|
|
ldr r0, _0804DAE0
|
|
ldrb r1, [r0]
|
|
movs r0, #0
|
|
bl BtlController_EmitCmd55
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804DAE4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DADC: .4byte 0x02023D08
|
|
_0804DAE0: .4byte 0x02023FDE
|
|
_0804DAE4: .4byte 0x02023EB8
|
|
thumb_func_end atk57
|
|
|
|
thumb_func_start atk58_returntoball
|
|
atk58_returntoball: @ 0x0804DAE8
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804DB14
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804DB18
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
movs r1, #1
|
|
bl BtlController_EmitReturnMonToBall
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DB14: .4byte 0x02023EB8
|
|
_0804DB18: .4byte 0x02023D08
|
|
thumb_func_end atk58_returntoball
|
|
|
|
thumb_func_start atk59_handlelearnnewmove
|
|
atk59_handlelearnnewmove: @ 0x0804DB1C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _0804DB90
|
|
ldr r2, [r0]
|
|
ldrb r6, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r6, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r6, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r6, r0
|
|
ldrb r4, [r2, #5]
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r2, #8]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
ldr r0, _0804DB94
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804DB98
|
|
adds r0, r0, r1
|
|
ldrb r1, [r2, #9]
|
|
bl MonTryLearningNewMove
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
ldr r0, _0804DB9C
|
|
cmp r5, r0
|
|
bne _0804DB86
|
|
adds r7, r5, #0
|
|
_0804DB6A:
|
|
ldr r0, _0804DB94
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804DB98
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
bl MonTryLearningNewMove
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
cmp r5, r7
|
|
beq _0804DB6A
|
|
_0804DB86:
|
|
cmp r5, #0
|
|
bne _0804DBA0
|
|
ldr r0, _0804DB90
|
|
str r4, [r0]
|
|
b _0804DC48
|
|
.align 2, 0
|
|
_0804DB90: .4byte 0x02023EB8
|
|
_0804DB94: .4byte 0x02024140
|
|
_0804DB98: .4byte 0x02024190
|
|
_0804DB9C: .4byte 0x0000FFFE
|
|
_0804DBA0:
|
|
ldr r0, _0804DBB0
|
|
cmp r5, r0
|
|
bne _0804DBB8
|
|
ldr r1, _0804DBB4
|
|
ldr r0, [r1]
|
|
adds r0, #0xa
|
|
str r0, [r1]
|
|
b _0804DC48
|
|
.align 2, 0
|
|
_0804DBB0: .4byte 0x0000FFFF
|
|
_0804DBB4: .4byte 0x02023EB8
|
|
_0804DBB8:
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _0804DC50
|
|
strb r0, [r1]
|
|
ldr r2, _0804DC54
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r2
|
|
ldr r1, _0804DC58
|
|
ldr r1, [r1]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, #0x10]
|
|
cmp r0, r1
|
|
bne _0804DBF8
|
|
ldr r4, _0804DC5C
|
|
movs r0, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r0, r2
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804DBF8
|
|
adds r0, r2, r4
|
|
adds r1, r5, #0
|
|
bl GiveMoveToBattleMon
|
|
_0804DBF8:
|
|
ldr r0, _0804DC60
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DC44
|
|
movs r0, #2
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _0804DC50
|
|
strb r0, [r1]
|
|
ldr r2, _0804DC54
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r2
|
|
ldr r1, _0804DC58
|
|
ldr r1, [r1]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, #0x10]
|
|
cmp r0, r1
|
|
bne _0804DC44
|
|
ldr r4, _0804DC5C
|
|
movs r0, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r0, r2
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804DC44
|
|
adds r0, r2, r4
|
|
adds r1, r5, #0
|
|
bl GiveMoveToBattleMon
|
|
_0804DC44:
|
|
ldr r0, _0804DC64
|
|
str r6, [r0]
|
|
_0804DC48:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DC50: .4byte 0x02023D08
|
|
_0804DC54: .4byte 0x02023D12
|
|
_0804DC58: .4byte 0x02024140
|
|
_0804DC5C: .4byte 0x02023D28
|
|
_0804DC60: .4byte 0x02022C90
|
|
_0804DC64: .4byte 0x02023EB8
|
|
thumb_func_end atk59_handlelearnnewmove
|
|
|
|
thumb_func_start atk5A_yesnoboxlearnmove
|
|
atk5A_yesnoboxlearnmove: @ 0x0804DC68
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #4
|
|
ldr r0, _0804DC8C
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r0, _0804DC90
|
|
ldrb r1, [r0, #0x1f]
|
|
adds r2, r0, #0
|
|
cmp r1, #6
|
|
bls _0804DC82
|
|
b _0804DFE8
|
|
_0804DC82:
|
|
lsls r0, r1, #2
|
|
ldr r1, _0804DC94
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804DC8C: .4byte 0x02023D08
|
|
_0804DC90: .4byte 0x02024118
|
|
_0804DC94: .4byte 0x0804DC98
|
|
_0804DC98: @ jump table
|
|
.4byte _0804DCB4 @ case 0
|
|
.4byte _0804DCEC @ case 1
|
|
.4byte _0804DD92 @ case 2
|
|
.4byte _0804DDE8 @ case 3
|
|
.4byte _0804DE14 @ case 4
|
|
.4byte _0804DFBC @ case 5
|
|
.4byte _0804DFDC @ case 6
|
|
_0804DCB4:
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _0804DCE0
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldr r1, _0804DCE4
|
|
ldrb r0, [r1, #0x1f]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x1f]
|
|
ldr r0, _0804DCE8
|
|
strb r4, [r0, #1]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DCE0: .4byte 0x085ABBC9
|
|
_0804DCE4: .4byte 0x02024118
|
|
_0804DCE8: .4byte 0x02023FD6
|
|
_0804DCEC:
|
|
ldr r0, _0804DD78
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DD14
|
|
ldr r4, _0804DD7C
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _0804DD14
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804DD14:
|
|
ldr r0, _0804DD78
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DD3C
|
|
ldr r4, _0804DD7C
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _0804DD3C
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804DD3C:
|
|
ldr r0, _0804DD78
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r5, #1
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DD80
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _0804DD7C
|
|
ldrb r4, [r0, #1]
|
|
cmp r4, #0
|
|
bne _0804DE3A
|
|
str r5, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
str r4, [sp]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0804DDC2
|
|
.align 2, 0
|
|
_0804DD78: .4byte 0x03002360
|
|
_0804DD7C: .4byte 0x02023FD6
|
|
_0804DD80:
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804DD8A
|
|
b _0804DFE8
|
|
_0804DD8A:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
b _0804DE3A
|
|
_0804DD92:
|
|
ldr r0, _0804DDCC
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DDA0
|
|
b _0804DFE8
|
|
_0804DDA0:
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _0804DDD0
|
|
ldr r1, _0804DDD4
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, #0x10]
|
|
ldr r2, _0804DDD8
|
|
ldrb r2, [r2]
|
|
subs r2, #1
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
ldr r3, _0804DDDC
|
|
ldr r4, _0804DDE0
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
bl ShowSelectMovePokemonSummaryScreen
|
|
_0804DDC2:
|
|
ldr r1, _0804DDE4
|
|
ldrb r0, [r1, #0x1f]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x1f]
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DDCC: .4byte 0x02037C74
|
|
_0804DDD0: .4byte 0x02024190
|
|
_0804DDD4: .4byte 0x02024140
|
|
_0804DDD8: .4byte 0x0202418D
|
|
_0804DDDC: .4byte 0x080A8BC1
|
|
_0804DDE0: .4byte 0x02024186
|
|
_0804DDE4: .4byte 0x02024118
|
|
_0804DDE8:
|
|
ldr r0, _0804DE08
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DDF6
|
|
b _0804DFE8
|
|
_0804DDF6:
|
|
ldr r0, _0804DE0C
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _0804DE10
|
|
cmp r1, r0
|
|
beq _0804DE02
|
|
b _0804DFE8
|
|
_0804DE02:
|
|
ldrb r0, [r2, #0x1f]
|
|
adds r0, #1
|
|
b _0804DFE6
|
|
.align 2, 0
|
|
_0804DE08: .4byte 0x02037C74
|
|
_0804DE0C: .4byte 0x03002360
|
|
_0804DE10: .4byte 0x080380FD
|
|
_0804DE14:
|
|
ldr r0, _0804DE44
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DE22
|
|
b _0804DFE8
|
|
_0804DE22:
|
|
ldr r0, _0804DE48
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _0804DE4C
|
|
cmp r1, r0
|
|
beq _0804DE2E
|
|
b _0804DFE8
|
|
_0804DE2E:
|
|
bl sub_081C14C8
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #4
|
|
bne _0804DE54
|
|
_0804DE3A:
|
|
ldr r1, _0804DE50
|
|
movs r0, #5
|
|
strb r0, [r1, #0x1f]
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DE44: .4byte 0x02037C74
|
|
_0804DE48: .4byte 0x03002360
|
|
_0804DE4C: .4byte 0x080380FD
|
|
_0804DE50: .4byte 0x02024118
|
|
_0804DE54:
|
|
ldr r6, _0804DE90
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
movs r1, #0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
ldr r7, _0804DE94
|
|
adds r0, r0, r7
|
|
adds r1, r5, #0
|
|
adds r1, #0xd
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
adds r0, r4, #0
|
|
bl IsHMMove2
|
|
cmp r0, #0
|
|
beq _0804DEA4
|
|
ldr r0, _0804DE98
|
|
ldr r1, _0804DE9C
|
|
ldrb r1, [r1]
|
|
bl PrepareStringBattle
|
|
ldr r1, _0804DEA0
|
|
movs r0, #6
|
|
strb r0, [r1, #0x1f]
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DE90: .4byte 0x02024140
|
|
_0804DE94: .4byte 0x02024190
|
|
_0804DE98: .4byte 0x0000013F
|
|
_0804DE9C: .4byte 0x02023D08
|
|
_0804DEA0: .4byte 0x02024118
|
|
_0804DEA4:
|
|
ldr r3, _0804DF98
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
ldr r1, _0804DF9C
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
strb r4, [r1, #2]
|
|
lsrs r0, r4, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
adds r1, r5, #0
|
|
bl RemoveMonPPBonus
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r7
|
|
ldr r7, _0804DFA0
|
|
ldrh r1, [r7]
|
|
adds r2, r5, #0
|
|
bl SetMonMoveSlot
|
|
ldr r0, _0804DFA4
|
|
ldr r1, [r6]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, #0x10]
|
|
cmp r0, r1
|
|
bne _0804DF3A
|
|
ldr r4, _0804DFA8
|
|
ldr r0, [r4, #0x50]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804DF3A
|
|
ldr r0, _0804DFAC
|
|
ldrb r1, [r0, #0x18]
|
|
lsrs r1, r1, #4
|
|
ldr r2, _0804DFB0
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804DF3A
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl RemoveBattleMonPPBonus
|
|
ldrh r1, [r7]
|
|
adds r0, r4, #0
|
|
adds r2, r5, #0
|
|
bl SetBattleMonMoveSlot
|
|
_0804DF3A:
|
|
ldr r0, _0804DFB4
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804DFE8
|
|
ldr r2, _0804DFA4
|
|
ldr r0, _0804DFB8
|
|
ldr r1, [r0]
|
|
ldrh r0, [r2, #4]
|
|
ldrb r1, [r1, #0x10]
|
|
cmp r0, r1
|
|
bne _0804DFE8
|
|
ldr r4, _0804DFA8
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804DFE8
|
|
ldr r0, _0804DFAC
|
|
adds r0, #0x50
|
|
ldrb r1, [r0]
|
|
lsrs r1, r1, #4
|
|
ldr r2, _0804DFB0
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0804DFE8
|
|
adds r4, #0xb0
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl RemoveBattleMonPPBonus
|
|
ldr r0, _0804DFA0
|
|
ldrh r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r2, r5, #0
|
|
bl SetBattleMonMoveSlot
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DF98: .4byte 0x02023EB8
|
|
_0804DF9C: .4byte 0x02022C1C
|
|
_0804DFA0: .4byte 0x02024186
|
|
_0804DFA4: .4byte 0x02023D12
|
|
_0804DFA8: .4byte 0x02023D28
|
|
_0804DFAC: .4byte 0x02023F60
|
|
_0804DFB0: .4byte 0x082FACB4
|
|
_0804DFB4: .4byte 0x02022C90
|
|
_0804DFB8: .4byte 0x02024140
|
|
_0804DFBC:
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r1, _0804DFD8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0804DFE8
|
|
.align 2, 0
|
|
_0804DFD8: .4byte 0x02023EB8
|
|
_0804DFDC:
|
|
ldr r0, _0804DFF4
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804DFE8
|
|
movs r0, #2
|
|
_0804DFE6:
|
|
strb r0, [r2, #0x1f]
|
|
_0804DFE8:
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804DFF4: .4byte 0x02023D0C
|
|
thumb_func_end atk5A_yesnoboxlearnmove
|
|
|
|
thumb_func_start atk5B_yesnoboxstoplearningmove
|
|
atk5B_yesnoboxstoplearningmove: @ 0x0804DFF8
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
ldr r5, _0804E00C
|
|
ldrb r4, [r5, #0x1f]
|
|
cmp r4, #0
|
|
beq _0804E010
|
|
cmp r4, #1
|
|
beq _0804E040
|
|
b _0804E12A
|
|
.align 2, 0
|
|
_0804E00C: .4byte 0x02024118
|
|
_0804E010:
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _0804E038
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldrb r0, [r5, #0x1f]
|
|
adds r0, #1
|
|
strb r0, [r5, #0x1f]
|
|
ldr r0, _0804E03C
|
|
strb r4, [r0, #1]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
b _0804E12A
|
|
.align 2, 0
|
|
_0804E038: .4byte 0x085ABBC9
|
|
_0804E03C: .4byte 0x02023FD6
|
|
_0804E040:
|
|
ldr r0, _0804E0C8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E068
|
|
ldr r4, _0804E0CC
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _0804E068
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804E068:
|
|
ldr r0, _0804E0C8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E090
|
|
ldr r4, _0804E0CC
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _0804E090
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804E090:
|
|
ldr r0, _0804E0C8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r4, #1
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E0F4
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _0804E0CC
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0
|
|
beq _0804E0D4
|
|
ldr r3, _0804E0D0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804E0DC
|
|
.align 2, 0
|
|
_0804E0C8: .4byte 0x03002360
|
|
_0804E0CC: .4byte 0x02023FD6
|
|
_0804E0D0: .4byte 0x02023EB8
|
|
_0804E0D4:
|
|
ldr r1, _0804E0F0
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0804E0DC:
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
b _0804E12A
|
|
.align 2, 0
|
|
_0804E0F0: .4byte 0x02023EB8
|
|
_0804E0F4:
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E12A
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r3, _0804E134
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
_0804E12A:
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E134: .4byte 0x02023EB8
|
|
thumb_func_end atk5B_yesnoboxstoplearningmove
|
|
|
|
thumb_func_start atk5C_hitanimation
|
|
atk5C_hitanimation: @ 0x0804E138
|
|
push {r4, lr}
|
|
ldr r4, _0804E1A4
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r2, _0804E1A8
|
|
strb r0, [r2]
|
|
ldr r0, _0804E1AC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E1BC
|
|
ldr r0, _0804E1B0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E18A
|
|
ldr r1, _0804E1B4
|
|
ldrb r2, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E18A
|
|
ldr r0, _0804E1B8
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
bne _0804E1BC
|
|
_0804E18A:
|
|
movs r0, #0
|
|
bl BtlController_EmitHitAnimation
|
|
ldr r0, _0804E1A8
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804E1A4
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
b _0804E1C2
|
|
.align 2, 0
|
|
_0804E1A4: .4byte 0x02023EB8
|
|
_0804E1A8: .4byte 0x02023D08
|
|
_0804E1AC: .4byte 0x02023F20
|
|
_0804E1B0: .4byte 0x02023F24
|
|
_0804E1B4: .4byte 0x02023D28
|
|
_0804E1B8: .4byte 0x02023F60
|
|
_0804E1BC:
|
|
ldr r0, [r4]
|
|
adds r0, #2
|
|
str r0, [r4]
|
|
_0804E1C2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk5C_hitanimation
|
|
|
|
thumb_func_start GetTrainerMoneyToGive
|
|
GetTrainerMoneyToGive: @ 0x0804E1C8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
movs r6, #0
|
|
movs r5, #0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #3
|
|
cmp r1, r0
|
|
bne _0804E204
|
|
ldr r0, _0804E1FC
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, #0x94
|
|
ldrb r2, [r0]
|
|
ldr r0, _0804E200
|
|
ldr r0, [r0]
|
|
adds r0, #0x4a
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
muls r0, r2, r0
|
|
b _0804E2E4
|
|
.align 2, 0
|
|
_0804E1FC: .4byte 0x0202414C
|
|
_0804E200: .4byte 0x02024140
|
|
_0804E204:
|
|
ldr r0, _0804E220
|
|
lsls r1, r1, #5
|
|
adds r3, r1, r0
|
|
ldrb r2, [r3]
|
|
mov ip, r0
|
|
adds r4, r1, #0
|
|
cmp r2, #1
|
|
beq _0804E252
|
|
cmp r2, #1
|
|
bgt _0804E224
|
|
cmp r2, #0
|
|
beq _0804E22E
|
|
b _0804E264
|
|
.align 2, 0
|
|
_0804E220: .4byte 0x082E383C
|
|
_0804E224:
|
|
cmp r2, #2
|
|
beq _0804E240
|
|
cmp r2, #3
|
|
beq _0804E252
|
|
b _0804E264
|
|
_0804E22E:
|
|
mov r0, ip
|
|
adds r0, #0x1c
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r3, #0x18]
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
subs r0, #8
|
|
b _0804E262
|
|
_0804E240:
|
|
mov r0, ip
|
|
adds r0, #0x1c
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r3, #0x18]
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
subs r0, #8
|
|
b _0804E262
|
|
_0804E252:
|
|
mov r0, ip
|
|
adds r0, #0x1c
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
ldrb r0, [r3, #0x18]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
subs r0, #0x10
|
|
_0804E262:
|
|
ldrb r5, [r0, #2]
|
|
_0804E264:
|
|
ldr r1, _0804E2C4
|
|
lsls r0, r6, #2
|
|
adds r3, r0, r1
|
|
ldrb r2, [r3]
|
|
ldr r7, _0804E2C8
|
|
mov sb, r1
|
|
ldr r0, _0804E2CC
|
|
mov r8, r0
|
|
cmp r2, #0xff
|
|
beq _0804E296
|
|
mov r1, ip
|
|
adds r0, r4, r1
|
|
ldrb r1, [r0, #1]
|
|
cmp r2, r1
|
|
beq _0804E296
|
|
adds r1, r0, #0
|
|
adds r0, r3, #0
|
|
_0804E286:
|
|
adds r0, #4
|
|
adds r6, #1
|
|
ldrb r2, [r0]
|
|
cmp r2, #0xff
|
|
beq _0804E296
|
|
ldrb r3, [r1, #1]
|
|
cmp r2, r3
|
|
bne _0804E286
|
|
_0804E296:
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E2D0
|
|
movs r0, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804E2D0
|
|
ldr r0, [r7]
|
|
adds r0, #0x4a
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
lsls r0, r6, #2
|
|
add r0, sb
|
|
ldrb r0, [r0, #1]
|
|
lsls r0, r0, #1
|
|
b _0804E2E2
|
|
.align 2, 0
|
|
_0804E2C4: .4byte 0x082EBCE4
|
|
_0804E2C8: .4byte 0x02024140
|
|
_0804E2CC: .4byte 0x02022C90
|
|
_0804E2D0:
|
|
ldr r0, [r7]
|
|
adds r0, #0x4a
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
lsls r0, r6, #2
|
|
add r0, sb
|
|
ldrb r0, [r0, #1]
|
|
_0804E2E2:
|
|
muls r0, r1, r0
|
|
_0804E2E4:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetTrainerMoneyToGive
|
|
|
|
thumb_func_start atk5D_getmoneyreward
|
|
atk5D_getmoneyreward: @ 0x0804E2F0
|
|
push {r4, lr}
|
|
ldr r0, _0804E364
|
|
ldrh r0, [r0]
|
|
bl GetTrainerMoneyToGive
|
|
adds r4, r0, #0
|
|
ldr r0, _0804E368
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E314
|
|
ldr r0, _0804E36C
|
|
ldrh r0, [r0]
|
|
bl GetTrainerMoneyToGive
|
|
adds r4, r4, r0
|
|
_0804E314:
|
|
ldr r0, _0804E370
|
|
ldr r0, [r0]
|
|
movs r1, #0x92
|
|
lsls r1, r1, #3
|
|
adds r0, r0, r1
|
|
adds r1, r4, #0
|
|
bl AddMoney
|
|
ldr r1, _0804E374
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
strb r0, [r1, #1]
|
|
movs r0, #4
|
|
strb r0, [r1, #2]
|
|
movs r0, #5
|
|
strb r0, [r1, #3]
|
|
strb r4, [r1, #4]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r4
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #5]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r4
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r1, #6]
|
|
lsrs r0, r4, #0x18
|
|
strb r0, [r1, #7]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #8]
|
|
ldr r1, _0804E378
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E364: .4byte 0x0203886A
|
|
_0804E368: .4byte 0x02022C90
|
|
_0804E36C: .4byte 0x0203886C
|
|
_0804E370: .4byte 0x03005AEC
|
|
_0804E374: .4byte 0x02022C0C
|
|
_0804E378: .4byte 0x02023EB8
|
|
thumb_func_end atk5D_getmoneyreward
|
|
|
|
thumb_func_start atk5E
|
|
atk5E: @ 0x0804E37C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0804E3A0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r6, _0804E3A4
|
|
strb r0, [r6]
|
|
ldr r5, _0804E3A8
|
|
ldrb r0, [r5]
|
|
mov r8, r4
|
|
cmp r0, #0
|
|
beq _0804E3AC
|
|
cmp r0, #1
|
|
beq _0804E3C4
|
|
b _0804E418
|
|
.align 2, 0
|
|
_0804E3A0: .4byte 0x02023EB8
|
|
_0804E3A4: .4byte 0x02023D08
|
|
_0804E3A8: .4byte 0x02023FD6
|
|
_0804E3AC:
|
|
movs r0, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl BtlController_EmitGetMonData
|
|
ldrb r0, [r6]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r0, [r5]
|
|
adds r0, #1
|
|
strb r0, [r5]
|
|
b _0804E418
|
|
_0804E3C4:
|
|
ldr r0, _0804E424
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804E418
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #9
|
|
ldr r1, _0804E428
|
|
adds r0, r0, r1
|
|
mov ip, r0
|
|
movs r2, #0
|
|
adds r4, r6, #0
|
|
movs r5, #0x58
|
|
ldr r6, _0804E42C
|
|
adds r7, r6, #0
|
|
subs r7, #0x18
|
|
mov r3, ip
|
|
adds r3, #0xc
|
|
_0804E3E6:
|
|
lsls r1, r2, #1
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r7
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r2, r1
|
|
adds r1, r1, r6
|
|
mov r0, ip
|
|
adds r0, #0x24
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, #2
|
|
adds r2, #1
|
|
cmp r2, #3
|
|
ble _0804E3E6
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_0804E418:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E424: .4byte 0x02023D0C
|
|
_0804E428: .4byte 0x0202350C
|
|
_0804E42C: .4byte 0x02023D4C
|
|
thumb_func_end atk5E
|
|
|
|
thumb_func_start atk5F_swapattackerwithtarget
|
|
atk5F_swapattackerwithtarget: @ 0x0804E430
|
|
push {lr}
|
|
ldr r0, _0804E458
|
|
ldr r2, _0804E45C
|
|
ldrb r3, [r2]
|
|
strb r3, [r0]
|
|
ldr r1, _0804E460
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
strb r3, [r1]
|
|
ldr r2, _0804E464
|
|
ldr r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #5
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _0804E46C
|
|
ldr r0, _0804E468
|
|
ands r1, r0
|
|
b _0804E46E
|
|
.align 2, 0
|
|
_0804E458: .4byte 0x02023D08
|
|
_0804E45C: .4byte 0x02023EAF
|
|
_0804E460: .4byte 0x02023EB0
|
|
_0804E464: .4byte 0x02023F24
|
|
_0804E468: .4byte 0xFFFFEFFF
|
|
_0804E46C:
|
|
orrs r1, r3
|
|
_0804E46E:
|
|
str r1, [r2]
|
|
ldr r1, _0804E47C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E47C: .4byte 0x02023EB8
|
|
thumb_func_end atk5F_swapattackerwithtarget
|
|
|
|
thumb_func_start atk60_incrementgamestat
|
|
atk60_incrementgamestat: @ 0x0804E480
|
|
push {lr}
|
|
ldr r0, _0804E4A8
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804E49A
|
|
ldr r0, _0804E4AC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl IncrementGameStat
|
|
_0804E49A:
|
|
ldr r1, _0804E4AC
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E4A8: .4byte 0x02023EAF
|
|
_0804E4AC: .4byte 0x02023EB8
|
|
thumb_func_end atk60_incrementgamestat
|
|
|
|
thumb_func_start atk61_drawpartystatussummary
|
|
atk61_drawpartystatussummary: @ 0x0804E4B0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #0x30
|
|
ldr r0, _0804E514
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804E564
|
|
ldr r0, _0804E518
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _0804E51C
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _0804E520
|
|
mov r8, r1
|
|
cmp r0, #0
|
|
bne _0804E4E2
|
|
ldr r0, _0804E524
|
|
mov r8, r0
|
|
_0804E4E2:
|
|
movs r7, #0
|
|
add r6, sp, #4
|
|
mov r5, sp
|
|
_0804E4E8:
|
|
movs r0, #0x64
|
|
muls r0, r7, r0
|
|
mov r1, r8
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0804E50C
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
movs r1, #0xce
|
|
lsls r1, r1, #1
|
|
cmp r0, r1
|
|
bne _0804E52C
|
|
_0804E50C:
|
|
ldr r0, _0804E528
|
|
strh r0, [r5]
|
|
movs r0, #0
|
|
b _0804E53E
|
|
.align 2, 0
|
|
_0804E514: .4byte 0x02023D0C
|
|
_0804E518: .4byte 0x02023EB8
|
|
_0804E51C: .4byte 0x02023D08
|
|
_0804E520: .4byte 0x020243E8
|
|
_0804E524: .4byte 0x02024190
|
|
_0804E528: .4byte 0x0000FFFF
|
|
_0804E52C:
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, #0
|
|
movs r1, #0x37
|
|
bl GetMonData
|
|
_0804E53E:
|
|
str r0, [r6]
|
|
adds r6, #8
|
|
adds r5, #8
|
|
adds r7, #1
|
|
cmp r7, #5
|
|
ble _0804E4E8
|
|
movs r0, #0
|
|
mov r1, sp
|
|
movs r2, #1
|
|
bl BtlController_EmitDrawPartyStatusSummary
|
|
ldr r0, _0804E570
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804E574
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_0804E564:
|
|
add sp, #0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E570: .4byte 0x02023D08
|
|
_0804E574: .4byte 0x02023EB8
|
|
thumb_func_end atk61_drawpartystatussummary
|
|
|
|
thumb_func_start atk62_hidepartystatussummary
|
|
atk62_hidepartystatussummary: @ 0x0804E578
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804E5A0
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804E5A4
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitHidePartyStatusSummary
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E5A0: .4byte 0x02023EB8
|
|
_0804E5A4: .4byte 0x02023D08
|
|
thumb_func_end atk62_hidepartystatussummary
|
|
|
|
thumb_func_start atk63_jumptocalledmove
|
|
atk63_jumptocalledmove: @ 0x0804E5A8
|
|
push {r4, lr}
|
|
ldr r0, _0804E5C0
|
|
ldr r1, [r0]
|
|
ldrb r1, [r1, #1]
|
|
adds r4, r0, #0
|
|
cmp r1, #0
|
|
beq _0804E5CC
|
|
ldr r0, _0804E5C4
|
|
ldr r1, _0804E5C8
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _0804E5DA
|
|
.align 2, 0
|
|
_0804E5C0: .4byte 0x02023EB8
|
|
_0804E5C4: .4byte 0x02023E8E
|
|
_0804E5C8: .4byte 0x02023E92
|
|
_0804E5CC:
|
|
ldr r2, _0804E5F8
|
|
ldr r1, _0804E5FC
|
|
ldr r0, _0804E600
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r0, r1, #0
|
|
_0804E5DA:
|
|
ldr r3, _0804E604
|
|
ldr r2, _0804E608
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E5F8: .4byte 0x02023E90
|
|
_0804E5FC: .4byte 0x02023E8E
|
|
_0804E600: .4byte 0x02023E92
|
|
_0804E604: .4byte 0x08286C30
|
|
_0804E608: .4byte 0x082ED220
|
|
thumb_func_end atk63_jumptocalledmove
|
|
|
|
thumb_func_start atk64_statusanimation
|
|
atk64_statusanimation: @ 0x0804E60C
|
|
push {r4, lr}
|
|
ldr r0, _0804E67C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804E674
|
|
ldr r0, _0804E680
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804E684
|
|
strb r0, [r4]
|
|
ldr r1, _0804E688
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804E68C
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E66C
|
|
ldr r0, _0804E690
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
bne _0804E66C
|
|
ldr r0, _0804E694
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E66C
|
|
ldr r1, _0804E698
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitStatusAnimation
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_0804E66C:
|
|
ldr r1, _0804E680
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_0804E674:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E67C: .4byte 0x02023D0C
|
|
_0804E680: .4byte 0x02023EB8
|
|
_0804E684: .4byte 0x02023D08
|
|
_0804E688: .4byte 0x02023F50
|
|
_0804E68C: .4byte 0x000400C0
|
|
_0804E690: .4byte 0x02023F60
|
|
_0804E694: .4byte 0x02023F24
|
|
_0804E698: .4byte 0x02023D28
|
|
thumb_func_end atk64_statusanimation
|
|
|
|
thumb_func_start atk65_status2animation
|
|
atk65_status2animation: @ 0x0804E69C
|
|
push {r4, r5, lr}
|
|
ldr r0, _0804E724
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804E71C
|
|
ldr r4, _0804E728
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _0804E72C
|
|
strb r0, [r5]
|
|
ldr r1, [r4]
|
|
ldrb r3, [r1, #2]
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r3, r0
|
|
ldrb r0, [r1, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r3, r0
|
|
ldr r1, _0804E730
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804E734
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E714
|
|
ldr r0, _0804E738
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
bne _0804E714
|
|
ldr r0, _0804E73C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E714
|
|
ldr r1, _0804E740
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r2, [r0]
|
|
ands r2, r3
|
|
movs r0, #0
|
|
movs r1, #1
|
|
bl BtlController_EmitStatusAnimation
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
_0804E714:
|
|
ldr r1, _0804E728
|
|
ldr r0, [r1]
|
|
adds r0, #6
|
|
str r0, [r1]
|
|
_0804E71C:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E724: .4byte 0x02023D0C
|
|
_0804E728: .4byte 0x02023EB8
|
|
_0804E72C: .4byte 0x02023D08
|
|
_0804E730: .4byte 0x02023F50
|
|
_0804E734: .4byte 0x000400C0
|
|
_0804E738: .4byte 0x02023F60
|
|
_0804E73C: .4byte 0x02023F24
|
|
_0804E740: .4byte 0x02023D28
|
|
thumb_func_end atk65_status2animation
|
|
|
|
thumb_func_start atk66_chosenstatusanimation
|
|
atk66_chosenstatusanimation: @ 0x0804E744
|
|
push {r4, r5, lr}
|
|
ldr r0, _0804E7BC
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804E7B6
|
|
ldr r4, _0804E7C0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _0804E7C4
|
|
strb r0, [r5]
|
|
ldr r4, [r4]
|
|
ldrb r2, [r4, #3]
|
|
ldrb r0, [r4, #4]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrb r0, [r4, #5]
|
|
lsls r0, r0, #0x10
|
|
orrs r2, r0
|
|
ldrb r0, [r4, #6]
|
|
lsls r0, r0, #0x18
|
|
orrs r2, r0
|
|
ldr r1, _0804E7C8
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0804E7CC
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E7AE
|
|
ldr r0, _0804E7D0
|
|
lsls r1, r3, #3
|
|
subs r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
bne _0804E7AE
|
|
ldr r0, _0804E7D4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804E7AE
|
|
ldrb r1, [r4, #2]
|
|
movs r0, #0
|
|
bl BtlController_EmitStatusAnimation
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
_0804E7AE:
|
|
ldr r1, _0804E7C0
|
|
ldr r0, [r1]
|
|
adds r0, #7
|
|
str r0, [r1]
|
|
_0804E7B6:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E7BC: .4byte 0x02023D0C
|
|
_0804E7C0: .4byte 0x02023EB8
|
|
_0804E7C4: .4byte 0x02023D08
|
|
_0804E7C8: .4byte 0x02023F50
|
|
_0804E7CC: .4byte 0x000400C0
|
|
_0804E7D0: .4byte 0x02023F60
|
|
_0804E7D4: .4byte 0x02023F24
|
|
thumb_func_end atk66_chosenstatusanimation
|
|
|
|
thumb_func_start atk67_yesnobox
|
|
atk67_yesnobox: @ 0x0804E7D8
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
ldr r5, _0804E7EC
|
|
ldrb r4, [r5]
|
|
cmp r4, #0
|
|
beq _0804E7F0
|
|
cmp r4, #1
|
|
beq _0804E81C
|
|
b _0804E8AE
|
|
.align 2, 0
|
|
_0804E7EC: .4byte 0x02023FD6
|
|
_0804E7F0:
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _0804E818
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldrb r0, [r5]
|
|
adds r0, #1
|
|
strb r0, [r5]
|
|
strb r4, [r5, #1]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
b _0804E8AE
|
|
.align 2, 0
|
|
_0804E818: .4byte 0x085ABBC9
|
|
_0804E81C:
|
|
ldr r0, _0804E880
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E842
|
|
ldrb r0, [r5, #1]
|
|
cmp r0, #0
|
|
beq _0804E842
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r5, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r5, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804E842:
|
|
ldr r0, _0804E880
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E86A
|
|
ldr r4, _0804E884
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _0804E86A
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0804E86A:
|
|
ldr r0, _0804E880
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E888
|
|
ldr r0, _0804E884
|
|
movs r4, #1
|
|
strb r4, [r0, #1]
|
|
b _0804E892
|
|
.align 2, 0
|
|
_0804E880: .4byte 0x03002360
|
|
_0804E884: .4byte 0x02023FD6
|
|
_0804E888:
|
|
movs r4, #1
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804E8AE
|
|
_0804E892:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r1, _0804E8B8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804E8AE:
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E8B8: .4byte 0x02023EB8
|
|
thumb_func_end atk67_yesnobox
|
|
|
|
thumb_func_start atk68_cancelallactions
|
|
atk68_cancelallactions: @ 0x0804E8BC
|
|
push {r4, r5, lr}
|
|
movs r1, #0
|
|
ldr r2, _0804E8E8
|
|
ldr r5, _0804E8EC
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bge _0804E8DA
|
|
ldr r4, _0804E8F0
|
|
movs r3, #0xc
|
|
_0804E8CE:
|
|
adds r0, r1, r4
|
|
strb r3, [r0]
|
|
adds r1, #1
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
blt _0804E8CE
|
|
_0804E8DA:
|
|
ldr r0, [r5]
|
|
adds r0, #1
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804E8E8: .4byte 0x02023D10
|
|
_0804E8EC: .4byte 0x02023EB8
|
|
_0804E8F0: .4byte 0x02023D1E
|
|
thumb_func_end atk68_cancelallactions
|
|
|
|
thumb_func_start atk69_adjustsetdamage
|
|
atk69_adjustsetdamage: @ 0x0804E8F4
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r7, _0804E91C
|
|
ldr r6, _0804E920
|
|
ldrb r2, [r6]
|
|
movs r5, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r5, r0
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _0804E928
|
|
ldr r1, _0804E924
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #7]
|
|
ldrb r6, [r0, #0x1a]
|
|
b _0804E942
|
|
.align 2, 0
|
|
_0804E91C: .4byte 0x02023D28
|
|
_0804E920: .4byte 0x02023EB0
|
|
_0804E924: .4byte 0x020240A8
|
|
_0804E928:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2e]
|
|
bl sub_080D6D1C
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_0804E942:
|
|
ldr r1, _0804EA04
|
|
ldr r5, _0804EA08
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, #0x27
|
|
bne _0804E980
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r6
|
|
bhs _0804E980
|
|
ldrb r0, [r5]
|
|
movs r1, #0x27
|
|
bl RecordItemEffectBattle
|
|
ldr r2, _0804EA0C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804E980:
|
|
ldr r2, _0804EA10
|
|
ldr r3, _0804EA08
|
|
ldrb r4, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r1, r2, #0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
ands r1, r0
|
|
adds r5, r2, #0
|
|
cmp r1, #0
|
|
bne _0804EA50
|
|
ldr r2, _0804EA14
|
|
ldr r0, _0804EA18
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x65
|
|
beq _0804E9D2
|
|
ldr r0, _0804EA1C
|
|
lsls r1, r4, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
blt _0804E9D2
|
|
ldr r0, _0804EA0C
|
|
lsls r1, r4, #2
|
|
adds r1, r1, r4
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _0804EA50
|
|
_0804E9D2:
|
|
ldrb r0, [r3]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0, #0x28]
|
|
ldr r2, _0804EA20
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _0804EA50
|
|
subs r0, r1, #1
|
|
str r0, [r2]
|
|
ldr r1, _0804EA1C
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
bge _0804EA28
|
|
ldr r0, _0804EA24
|
|
ldrb r1, [r0]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804EA50
|
|
.align 2, 0
|
|
_0804EA04: .4byte 0x02023EB3
|
|
_0804EA08: .4byte 0x02023EB0
|
|
_0804EA0C: .4byte 0x02024020
|
|
_0804EA10: .4byte 0x02023D28
|
|
_0804EA14: .4byte 0x082ED220
|
|
_0804EA18: .4byte 0x02023E8E
|
|
_0804EA1C: .4byte 0x02023FE0
|
|
_0804EA20: .4byte 0x02023E94
|
|
_0804EA24: .4byte 0x02023F20
|
|
_0804EA28:
|
|
ldr r0, _0804EA60
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _0804EA50
|
|
ldr r2, _0804EA64
|
|
ldrb r0, [r2]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804EA68
|
|
adds r0, r3, #0
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
_0804EA50:
|
|
ldr r1, _0804EA6C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804EA60: .4byte 0x02024020
|
|
_0804EA64: .4byte 0x02023F20
|
|
_0804EA68: .4byte 0x02023EAC
|
|
_0804EA6C: .4byte 0x02023EB8
|
|
thumb_func_end atk69_adjustsetdamage
|
|
|
|
thumb_func_start atk6A_removeitem
|
|
atk6A_removeitem: @ 0x0804EA70
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r6, _0804EAD0
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r5, _0804EAD4
|
|
strb r0, [r5]
|
|
ldr r1, _0804EAD8
|
|
ldrb r4, [r5]
|
|
lsls r0, r4, #1
|
|
adds r0, #0xb8
|
|
ldr r1, [r1]
|
|
adds r1, r1, r0
|
|
ldr r2, _0804EADC
|
|
movs r3, #0x58
|
|
adds r0, r4, #0
|
|
muls r0, r3, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r5]
|
|
muls r0, r3, r0
|
|
adds r2, #0x2e
|
|
adds r0, r0, r2
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r6]
|
|
adds r0, #2
|
|
str r0, [r6]
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804EAD0: .4byte 0x02023EB8
|
|
_0804EAD4: .4byte 0x02023D08
|
|
_0804EAD8: .4byte 0x02024140
|
|
_0804EADC: .4byte 0x02023D28
|
|
thumb_func_end atk6A_removeitem
|
|
|
|
thumb_func_start atk6B_atknameinbuff1
|
|
atk6B_atknameinbuff1: @ 0x0804EAE0
|
|
ldr r1, _0804EB0C
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #7
|
|
strb r0, [r1, #1]
|
|
ldr r2, _0804EB10
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, #2]
|
|
ldr r3, _0804EB14
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _0804EB18
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804EB0C: .4byte 0x02022C0C
|
|
_0804EB10: .4byte 0x02023EAF
|
|
_0804EB14: .4byte 0x02023D12
|
|
_0804EB18: .4byte 0x02023EB8
|
|
thumb_func_end atk6B_atknameinbuff1
|
|
|
|
thumb_func_start atk6C_drawlvlupbox
|
|
atk6C_drawlvlupbox: @ 0x0804EB1C
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r0, _0804EB38
|
|
ldrb r1, [r0, #0x1e]
|
|
adds r4, r0, #0
|
|
cmp r1, #0
|
|
bne _0804EB40
|
|
bl IsMonGettingExpSentOut
|
|
cmp r0, #0
|
|
beq _0804EB3C
|
|
movs r0, #3
|
|
b _0804EB3E
|
|
.align 2, 0
|
|
_0804EB38: .4byte 0x02024118
|
|
_0804EB3C:
|
|
movs r0, #1
|
|
_0804EB3E:
|
|
strb r0, [r4, #0x1e]
|
|
_0804EB40:
|
|
ldrb r0, [r4, #0x1e]
|
|
subs r0, #1
|
|
cmp r0, #9
|
|
bls _0804EB4A
|
|
b _0804ED0A
|
|
_0804EB4A:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0804EB54
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804EB54: .4byte 0x0804EB58
|
|
_0804EB58: @ jump table
|
|
.4byte _0804EB80 @ case 0
|
|
.4byte _0804EBAC @ case 1
|
|
.4byte _0804EBC4 @ case 2
|
|
.4byte _0804EC18 @ case 3
|
|
.4byte _0804EC2C @ case 4
|
|
.4byte _0804EC44 @ case 5
|
|
.4byte _0804EC2C @ case 6
|
|
.4byte _0804EC64 @ case 7
|
|
.4byte _0804EC94 @ case 8
|
|
.4byte _0804ECD8 @ case 9
|
|
_0804EB80:
|
|
ldr r1, _0804EBA4
|
|
movs r0, #0x60
|
|
strh r0, [r1]
|
|
movs r0, #2
|
|
movs r1, #7
|
|
movs r2, #0
|
|
bl SetBgAttribute
|
|
movs r0, #2
|
|
bl ShowBg
|
|
bl sub_0804ED94
|
|
ldr r1, _0804EBA8
|
|
movs r0, #2
|
|
strb r0, [r1, #0x1e]
|
|
b _0804ED0A
|
|
.align 2, 0
|
|
_0804EBA4: .4byte 0x02022AD2
|
|
_0804EBA8: .4byte 0x02024118
|
|
_0804EBAC:
|
|
bl sub_0804EDE4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804EBB8
|
|
b _0804ED0A
|
|
_0804EBB8:
|
|
ldr r1, _0804EBC0
|
|
movs r0, #3
|
|
strb r0, [r1, #0x1e]
|
|
b _0804ED0A
|
|
.align 2, 0
|
|
_0804EBC0: .4byte 0x02024118
|
|
_0804EBC4:
|
|
ldr r1, _0804EC0C
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
ldr r1, _0804EC10
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
movs r0, #0
|
|
movs r1, #7
|
|
movs r2, #1
|
|
bl SetBgAttribute
|
|
movs r0, #1
|
|
movs r1, #7
|
|
movs r2, #0
|
|
bl SetBgAttribute
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
movs r0, #0x80
|
|
str r0, [sp]
|
|
movs r0, #0x12
|
|
movs r1, #7
|
|
movs r2, #0x1d
|
|
movs r3, #0x13
|
|
bl HandleBattleWindow
|
|
ldr r1, _0804EC14
|
|
movs r0, #4
|
|
strb r0, [r1, #0x1e]
|
|
b _0804ED0A
|
|
.align 2, 0
|
|
_0804EC0C: .4byte 0x02022ACC
|
|
_0804EC10: .4byte 0x02022ACE
|
|
_0804EC14: .4byte 0x02024118
|
|
_0804EC18:
|
|
bl DrawLevelUpWindow1
|
|
movs r0, #0xd
|
|
bl PutWindowTilemap
|
|
movs r0, #0xd
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
b _0804EC82
|
|
_0804EC2C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0804ED0A
|
|
ldr r0, _0804EC40
|
|
strh r1, [r0]
|
|
b _0804EC82
|
|
.align 2, 0
|
|
_0804EC40: .4byte 0x02022ACE
|
|
_0804EC44:
|
|
ldr r0, _0804EC60
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #0
|
|
beq _0804ED0A
|
|
movs r0, #5
|
|
bl PlaySE
|
|
bl DrawLevelUpWindow2
|
|
movs r0, #0xd
|
|
movs r1, #2
|
|
bl CopyWindowToVram
|
|
b _0804EC82
|
|
.align 2, 0
|
|
_0804EC60: .4byte 0x03002360
|
|
_0804EC64:
|
|
ldr r0, _0804EC8C
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #0
|
|
beq _0804ED0A
|
|
movs r0, #5
|
|
bl PlaySE
|
|
movs r0, #0x81
|
|
str r0, [sp]
|
|
movs r0, #0x12
|
|
movs r1, #7
|
|
movs r2, #0x1d
|
|
movs r3, #0x13
|
|
bl HandleBattleWindow
|
|
_0804EC82:
|
|
ldr r1, _0804EC90
|
|
ldrb r0, [r1, #0x1e]
|
|
adds r0, #1
|
|
strb r0, [r1, #0x1e]
|
|
b _0804ED0A
|
|
.align 2, 0
|
|
_0804EC8C: .4byte 0x03002360
|
|
_0804EC90: .4byte 0x02024118
|
|
_0804EC94:
|
|
bl sub_0804EF50
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804ED0A
|
|
movs r0, #0xe
|
|
bl ClearWindowTilemap
|
|
movs r0, #0xe
|
|
movs r1, #1
|
|
bl CopyWindowToVram
|
|
movs r0, #0xd
|
|
bl ClearWindowTilemap
|
|
movs r0, #0xd
|
|
movs r1, #1
|
|
bl CopyWindowToVram
|
|
movs r0, #2
|
|
movs r1, #7
|
|
movs r2, #2
|
|
bl SetBgAttribute
|
|
movs r0, #2
|
|
bl ShowBg
|
|
ldr r1, _0804ECD4
|
|
movs r0, #0xa
|
|
strb r0, [r1, #0x1e]
|
|
b _0804ED0A
|
|
.align 2, 0
|
|
_0804ECD4: .4byte 0x02024118
|
|
_0804ECD8:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804ED0A
|
|
movs r0, #0
|
|
movs r1, #7
|
|
movs r2, #0
|
|
bl SetBgAttribute
|
|
movs r0, #1
|
|
movs r1, #7
|
|
movs r2, #1
|
|
bl SetBgAttribute
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
ldr r1, _0804ED14
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804ED0A:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ED14: .4byte 0x02023EB8
|
|
thumb_func_end atk6C_drawlvlupbox
|
|
|
|
thumb_func_start DrawLevelUpWindow1
|
|
DrawLevelUpWindow1: @ 0x0804ED18
|
|
push {lr}
|
|
sub sp, #0x14
|
|
ldr r0, _0804ED50
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804ED54
|
|
adds r0, r0, r1
|
|
add r1, sp, #8
|
|
bl GetMonLevelUpWindowStats
|
|
ldr r0, _0804ED58
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x10]
|
|
movs r0, #0xd
|
|
str r0, [sp]
|
|
movs r0, #0xf
|
|
str r0, [sp, #4]
|
|
movs r0, #0xd
|
|
add r2, sp, #8
|
|
movs r3, #0xe
|
|
bl DrawLevelUpWindowPg1
|
|
add sp, #0x14
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ED50: .4byte 0x02024140
|
|
_0804ED54: .4byte 0x02024190
|
|
_0804ED58: .4byte 0x0202414C
|
|
thumb_func_end DrawLevelUpWindow1
|
|
|
|
thumb_func_start DrawLevelUpWindow2
|
|
DrawLevelUpWindow2: @ 0x0804ED5C
|
|
push {lr}
|
|
sub sp, #0x10
|
|
ldr r0, _0804ED8C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #0x10]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0804ED90
|
|
adds r0, r0, r1
|
|
add r1, sp, #4
|
|
bl GetMonLevelUpWindowStats
|
|
movs r0, #0xf
|
|
str r0, [sp]
|
|
movs r0, #0xd
|
|
add r1, sp, #4
|
|
movs r2, #0xe
|
|
movs r3, #0xd
|
|
bl DrawLevelUpWindowPg2
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804ED8C: .4byte 0x02024140
|
|
_0804ED90: .4byte 0x02024190
|
|
thumb_func_end DrawLevelUpWindow2
|
|
|
|
thumb_func_start sub_0804ED94
|
|
sub_0804ED94: @ 0x0804ED94
|
|
push {lr}
|
|
ldr r1, _0804EDD4
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
ldr r1, _0804EDD8
|
|
movs r2, #0xd0
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r0, _0804EDDC
|
|
movs r1, #0x60
|
|
movs r2, #0x20
|
|
bl LoadPalette
|
|
ldr r1, _0804EDE0
|
|
movs r0, #0xe
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl CopyToWindowPixelBuffer
|
|
movs r0, #0xe
|
|
bl PutWindowTilemap
|
|
movs r0, #0xe
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
bl PutMonIconOnLvlUpBox
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804EDD4: .4byte 0x02022AD2
|
|
_0804EDD8: .4byte 0x02022AD0
|
|
_0804EDDC: .4byte 0x082ECC4C
|
|
_0804EDE0: .4byte 0x082ECC6C
|
|
thumb_func_end sub_0804ED94
|
|
|
|
thumb_func_start sub_0804EDE4
|
|
sub_0804EDE4: @ 0x0804EDE4
|
|
push {r4, r5, lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804EDF4
|
|
movs r0, #1
|
|
b _0804EE2E
|
|
_0804EDF4:
|
|
ldr r4, _0804EE04
|
|
ldrh r1, [r4]
|
|
movs r5, #0x80
|
|
lsls r5, r5, #2
|
|
cmp r1, r5
|
|
bne _0804EE08
|
|
movs r0, #0
|
|
b _0804EE2E
|
|
.align 2, 0
|
|
_0804EE04: .4byte 0x02022AD0
|
|
_0804EE08:
|
|
movs r0, #0xd0
|
|
lsls r0, r0, #1
|
|
cmp r1, r0
|
|
bne _0804EE14
|
|
bl PutLevelAndGenderOnLvlUpBox
|
|
_0804EE14:
|
|
ldrh r0, [r4]
|
|
adds r0, #8
|
|
strh r0, [r4]
|
|
lsls r0, r0, #0x10
|
|
ldr r1, _0804EE34
|
|
cmp r0, r1
|
|
bls _0804EE24
|
|
strh r5, [r4]
|
|
_0804EE24:
|
|
ldrh r1, [r4]
|
|
eors r1, r5
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r0, r0, #0x1f
|
|
_0804EE2E:
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804EE34: .4byte 0x01FF0000
|
|
thumb_func_end sub_0804EDE4
|
|
|
|
thumb_func_start PutLevelAndGenderOnLvlUpBox
|
|
PutLevelAndGenderOnLvlUpBox: @ 0x0804EE38
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #0x10
|
|
ldr r6, _0804EF00
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _0804EF04
|
|
adds r0, r0, r4
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
bl GetMonGender
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
ldr r5, _0804EF08
|
|
adds r1, r5, #0
|
|
bl GetMonNickname
|
|
str r5, [sp]
|
|
mov r2, sp
|
|
movs r1, #0
|
|
movs r0, #0xe
|
|
strb r0, [r2, #4]
|
|
mov r0, sp
|
|
strb r1, [r0, #5]
|
|
movs r4, #0x20
|
|
strb r4, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
strb r4, [r0, #8]
|
|
strb r1, [r0, #9]
|
|
strb r1, [r0, #0xa]
|
|
strb r1, [r0, #0xb]
|
|
mov r3, sp
|
|
ldrb r2, [r3, #0xc]
|
|
subs r1, #0x10
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
strb r0, [r3, #0xc]
|
|
mov r2, sp
|
|
movs r0, #0x10
|
|
strb r0, [r2, #0xc]
|
|
ldrb r0, [r2, #0xd]
|
|
ands r1, r0
|
|
strb r1, [r2, #0xd]
|
|
mov r0, sp
|
|
strb r4, [r0, #0xd]
|
|
movs r1, #0xff
|
|
movs r2, #0
|
|
bl AddTextPrinter
|
|
movs r0, #0xf9
|
|
strb r0, [r5]
|
|
adds r5, #1
|
|
movs r0, #5
|
|
strb r0, [r5]
|
|
adds r5, #1
|
|
adds r0, r5, #0
|
|
mov r1, r8
|
|
movs r2, #1
|
|
movs r3, #3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, #0
|
|
movs r1, #0
|
|
movs r2, #1
|
|
bl StringFill
|
|
adds r5, r0, #0
|
|
cmp r7, #0xff
|
|
beq _0804EF2C
|
|
cmp r7, #0
|
|
bne _0804EF0C
|
|
movs r1, #0
|
|
movs r2, #0xc
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, #0
|
|
movs r1, #1
|
|
movs r2, #0xd
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, #0
|
|
movs r0, #0xb5
|
|
b _0804EF24
|
|
.align 2, 0
|
|
_0804EF00: .4byte 0x02024140
|
|
_0804EF04: .4byte 0x02024190
|
|
_0804EF08: .4byte 0x02021C7C
|
|
_0804EF0C:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
movs r2, #0xe
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, #0
|
|
movs r1, #1
|
|
movs r2, #0xf
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, #0
|
|
movs r0, #0xb6
|
|
_0804EF24:
|
|
strb r0, [r5]
|
|
adds r5, #1
|
|
movs r0, #0xff
|
|
strb r0, [r5]
|
|
_0804EF2C:
|
|
mov r0, sp
|
|
movs r1, #0xa
|
|
strb r1, [r0, #7]
|
|
strb r1, [r0, #9]
|
|
movs r1, #0xff
|
|
movs r2, #0
|
|
bl AddTextPrinter
|
|
movs r0, #0xe
|
|
movs r1, #2
|
|
bl CopyWindowToVram
|
|
add sp, #0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PutLevelAndGenderOnLvlUpBox
|
|
|
|
thumb_func_start sub_0804EF50
|
|
sub_0804EF50: @ 0x0804EF50
|
|
push {lr}
|
|
ldr r0, _0804EF64
|
|
ldrh r1, [r0]
|
|
movs r3, #0xd0
|
|
lsls r3, r3, #1
|
|
adds r2, r0, #0
|
|
cmp r1, r3
|
|
bne _0804EF68
|
|
movs r0, #0
|
|
b _0804EF8C
|
|
.align 2, 0
|
|
_0804EF64: .4byte 0x02022AD0
|
|
_0804EF68:
|
|
ldrh r0, [r2]
|
|
adds r1, r0, #0
|
|
subs r1, #0x10
|
|
ldr r0, _0804EF78
|
|
cmp r1, r0
|
|
bgt _0804EF7C
|
|
strh r3, [r2]
|
|
b _0804EF7E
|
|
.align 2, 0
|
|
_0804EF78: .4byte 0x0000019F
|
|
_0804EF7C:
|
|
strh r1, [r2]
|
|
_0804EF7E:
|
|
ldrh r1, [r2]
|
|
movs r0, #0xd0
|
|
lsls r0, r0, #1
|
|
eors r1, r0
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r0, r0, #0x1f
|
|
_0804EF8C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_0804EF50
|
|
|
|
thumb_func_start PutMonIconOnLvlUpBox
|
|
PutMonIconOnLvlUpBox: @ 0x0804EF90
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, #0x10
|
|
ldr r0, _0804F038
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x10]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _0804F03C
|
|
adds r0, r0, r5
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x10]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
movs r2, #1
|
|
bl GetMonIconPtr
|
|
str r0, [sp]
|
|
ldr r5, _0804F040
|
|
ldr r0, [sp, #4]
|
|
ands r0, r5
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
orrs r0, r1
|
|
ldr r1, _0804F044
|
|
ands r0, r1
|
|
ldr r1, _0804F048
|
|
orrs r0, r1
|
|
str r0, [sp, #4]
|
|
adds r0, r4, #0
|
|
bl GetValidMonIconPalettePtr
|
|
str r0, [sp, #8]
|
|
add r4, sp, #8
|
|
ldr r0, [r4, #4]
|
|
ands r0, r5
|
|
ldr r1, _0804F04C
|
|
orrs r0, r1
|
|
str r0, [r4, #4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, #0
|
|
bl LoadSpritePalette
|
|
ldr r0, _0804F050
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
movs r2, #0xa
|
|
movs r3, #0
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0804F054
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
movs r0, #0
|
|
strh r0, [r1, #0x2e]
|
|
ldr r0, _0804F058
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, #0x30]
|
|
add sp, #0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F038: .4byte 0x02024140
|
|
_0804F03C: .4byte 0x02024190
|
|
_0804F040: .4byte 0xFFFF0000
|
|
_0804F044: .4byte 0x0000FFFF
|
|
_0804F048: .4byte 0xD75A0000
|
|
_0804F04C: .4byte 0x0000D75A
|
|
_0804F050: .4byte 0x082ECD44
|
|
_0804F054: .4byte 0x020205AC
|
|
_0804F058: .4byte 0x02022AD0
|
|
thumb_func_end PutMonIconOnLvlUpBox
|
|
|
|
thumb_func_start SpriteCB_MonIconOnLvlUpBox
|
|
SpriteCB_MonIconOnLvlUpBox: @ 0x0804F05C
|
|
push {r4, lr}
|
|
adds r2, r0, #0
|
|
ldr r0, _0804F078
|
|
ldrh r1, [r2, #0x30]
|
|
ldrh r0, [r0]
|
|
subs r1, r1, r0
|
|
strh r1, [r2, #0x24]
|
|
lsls r1, r1, #0x10
|
|
cmp r1, #0
|
|
beq _0804F07C
|
|
movs r0, #1
|
|
strh r0, [r2, #0x2e]
|
|
b _0804F098
|
|
.align 2, 0
|
|
_0804F078: .4byte 0x02022AD0
|
|
_0804F07C:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, #0
|
|
beq _0804F098
|
|
adds r0, r2, #0
|
|
bl DestroySprite
|
|
ldr r4, _0804F0A0
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
_0804F098:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F0A0: .4byte 0x0000D75A
|
|
thumb_func_end SpriteCB_MonIconOnLvlUpBox
|
|
|
|
thumb_func_start IsMonGettingExpSentOut
|
|
IsMonGettingExpSentOut: @ 0x0804F0A4
|
|
push {lr}
|
|
ldr r3, _0804F0CC
|
|
ldr r0, _0804F0D0
|
|
ldr r0, [r0]
|
|
ldrh r1, [r3]
|
|
ldrb r2, [r0, #0x10]
|
|
cmp r1, r2
|
|
beq _0804F0C6
|
|
ldr r0, _0804F0D4
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804F0D8
|
|
ldrh r0, [r3, #4]
|
|
cmp r0, r2
|
|
bne _0804F0D8
|
|
_0804F0C6:
|
|
movs r0, #1
|
|
b _0804F0DA
|
|
.align 2, 0
|
|
_0804F0CC: .4byte 0x02023D12
|
|
_0804F0D0: .4byte 0x02024140
|
|
_0804F0D4: .4byte 0x02022C90
|
|
_0804F0D8:
|
|
movs r0, #0
|
|
_0804F0DA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end IsMonGettingExpSentOut
|
|
|
|
thumb_func_start atk6D_resetsentmonsvalue
|
|
atk6D_resetsentmonsvalue: @ 0x0804F0E0
|
|
push {lr}
|
|
bl ResetSentPokesToOpponentValue
|
|
ldr r1, _0804F0F4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F0F4: .4byte 0x02023EB8
|
|
thumb_func_end atk6D_resetsentmonsvalue
|
|
|
|
thumb_func_start atk6E_setatktoplayer0
|
|
atk6E_setatktoplayer0: @ 0x0804F0F8
|
|
push {lr}
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _0804F110
|
|
strb r0, [r1]
|
|
ldr r1, _0804F114
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F110: .4byte 0x02023EAF
|
|
_0804F114: .4byte 0x02023EB8
|
|
thumb_func_end atk6E_setatktoplayer0
|
|
|
|
thumb_func_start atk6F_makevisible
|
|
atk6F_makevisible: @ 0x0804F118
|
|
push {r4, r5, lr}
|
|
ldr r5, _0804F144
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _0804F148
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitSpriteInvisibility
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F144: .4byte 0x02023EB8
|
|
_0804F148: .4byte 0x02023D08
|
|
thumb_func_end atk6F_makevisible
|
|
|
|
thumb_func_start atk70_recordlastability
|
|
atk70_recordlastability: @ 0x0804F14C
|
|
push {r4, lr}
|
|
ldr r4, _0804F174
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _0804F178
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
ldr r1, _0804F17C
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F174: .4byte 0x02023EB8
|
|
_0804F178: .4byte 0x02023D08
|
|
_0804F17C: .4byte 0x02023EAE
|
|
thumb_func_end atk70_recordlastability
|
|
|
|
thumb_func_start BufferMoveToLearnIntoBattleTextBuff2
|
|
BufferMoveToLearnIntoBattleTextBuff2: @ 0x0804F180
|
|
ldr r2, _0804F1A0
|
|
movs r0, #0xfd
|
|
strb r0, [r2]
|
|
movs r0, #2
|
|
strb r0, [r2, #1]
|
|
ldr r0, _0804F1A4
|
|
ldrh r1, [r0]
|
|
strb r1, [r2, #2]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
lsrs r0, r0, #8
|
|
strb r0, [r2, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r2, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0804F1A0: .4byte 0x02022C1C
|
|
_0804F1A4: .4byte 0x02024186
|
|
thumb_func_end BufferMoveToLearnIntoBattleTextBuff2
|
|
|
|
thumb_func_start atk71_buffermovetolearn
|
|
atk71_buffermovetolearn: @ 0x0804F1A8
|
|
push {lr}
|
|
bl BufferMoveToLearnIntoBattleTextBuff2
|
|
ldr r1, _0804F1BC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F1BC: .4byte 0x02023EB8
|
|
thumb_func_end atk71_buffermovetolearn
|
|
|
|
thumb_func_start atk72_jumpifplayerran
|
|
atk72_jumpifplayerran: @ 0x0804F1C0
|
|
push {lr}
|
|
ldr r0, _0804F1EC
|
|
ldrb r0, [r0]
|
|
bl TryRunFromBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0804F1F4
|
|
ldr r3, _0804F1F0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804F1FC
|
|
.align 2, 0
|
|
_0804F1EC: .4byte 0x02023EB1
|
|
_0804F1F0: .4byte 0x02023EB8
|
|
_0804F1F4:
|
|
ldr r1, _0804F200
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0804F1FC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F200: .4byte 0x02023EB8
|
|
thumb_func_end atk72_jumpifplayerran
|
|
|
|
thumb_func_start atk73_hpthresholds
|
|
atk73_hpthresholds: @ 0x0804F204
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _0804F254
|
|
ldr r4, [r0]
|
|
movs r6, #1
|
|
ands r4, r6
|
|
cmp r4, #0
|
|
bne _0804F29A
|
|
ldr r0, _0804F258
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _0804F25C
|
|
strb r0, [r1]
|
|
movs r1, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0804F260
|
|
movs r1, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r2
|
|
ldrh r5, [r1, #0x28]
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldrh r1, [r1, #0x2c]
|
|
bl __divsi3
|
|
cmp r0, #0
|
|
bne _0804F242
|
|
movs r0, #1
|
|
_0804F242:
|
|
cmp r0, #0x45
|
|
bgt _0804F24A
|
|
cmp r5, #0
|
|
bne _0804F268
|
|
_0804F24A:
|
|
ldr r0, _0804F264
|
|
ldr r0, [r0]
|
|
adds r0, #0xb1
|
|
strb r4, [r0]
|
|
b _0804F29A
|
|
.align 2, 0
|
|
_0804F254: .4byte 0x02022C90
|
|
_0804F258: .4byte 0x02023EB8
|
|
_0804F25C: .4byte 0x02023D08
|
|
_0804F260: .4byte 0x02023D28
|
|
_0804F264: .4byte 0x02024140
|
|
_0804F268:
|
|
cmp r0, #0x27
|
|
ble _0804F27C
|
|
ldr r0, _0804F278
|
|
ldr r0, [r0]
|
|
adds r0, #0xb1
|
|
strb r6, [r0]
|
|
b _0804F29A
|
|
.align 2, 0
|
|
_0804F278: .4byte 0x02024140
|
|
_0804F27C:
|
|
cmp r0, #9
|
|
ble _0804F290
|
|
ldr r0, _0804F28C
|
|
ldr r0, [r0]
|
|
adds r0, #0xb1
|
|
movs r1, #2
|
|
b _0804F298
|
|
.align 2, 0
|
|
_0804F28C: .4byte 0x02024140
|
|
_0804F290:
|
|
ldr r0, _0804F2A8
|
|
ldr r0, [r0]
|
|
adds r0, #0xb1
|
|
movs r1, #3
|
|
_0804F298:
|
|
strb r1, [r0]
|
|
_0804F29A:
|
|
ldr r1, _0804F2AC
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F2A8: .4byte 0x02024140
|
|
_0804F2AC: .4byte 0x02023EB8
|
|
thumb_func_end atk73_hpthresholds
|
|
|
|
thumb_func_start atk74_hpthresholds2
|
|
atk74_hpthresholds2: @ 0x0804F2B0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _0804F314
|
|
ldr r7, [r0]
|
|
movs r0, #1
|
|
mov r8, r0
|
|
ands r7, r0
|
|
cmp r7, #0
|
|
bne _0804F34A
|
|
ldr r0, _0804F318
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
adds r4, r0, #0
|
|
ldr r0, _0804F31C
|
|
strb r4, [r0]
|
|
movs r0, #1
|
|
eors r4, r0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r4, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _0804F320
|
|
ldr r6, [r1]
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r6
|
|
adds r0, #0xa8
|
|
ldrb r5, [r0]
|
|
ldr r1, _0804F324
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r1
|
|
ldrh r4, [r0, #0x28]
|
|
subs r1, r5, r4
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
adds r1, r5, #0
|
|
bl __divsi3
|
|
adds r1, r0, #0
|
|
cmp r4, r5
|
|
blo _0804F328
|
|
adds r0, r6, #0
|
|
adds r0, #0xb1
|
|
strb r7, [r0]
|
|
b _0804F34A
|
|
.align 2, 0
|
|
_0804F314: .4byte 0x02022C90
|
|
_0804F318: .4byte 0x02023EB8
|
|
_0804F31C: .4byte 0x02023D08
|
|
_0804F320: .4byte 0x02024140
|
|
_0804F324: .4byte 0x02023D28
|
|
_0804F328:
|
|
cmp r0, #0x1d
|
|
bgt _0804F336
|
|
adds r0, r6, #0
|
|
adds r0, #0xb1
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
b _0804F34A
|
|
_0804F336:
|
|
cmp r1, #0x45
|
|
bgt _0804F342
|
|
adds r1, r6, #0
|
|
adds r1, #0xb1
|
|
movs r0, #2
|
|
b _0804F348
|
|
_0804F342:
|
|
adds r1, r6, #0
|
|
adds r1, #0xb1
|
|
movs r0, #3
|
|
_0804F348:
|
|
strb r0, [r1]
|
|
_0804F34A:
|
|
ldr r1, _0804F35C
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F35C: .4byte 0x02023EB8
|
|
thumb_func_end atk74_hpthresholds2
|
|
|
|
thumb_func_start atk75_useitemonopponent
|
|
atk75_useitemonopponent: @ 0x0804F360
|
|
push {lr}
|
|
sub sp, #4
|
|
ldr r2, _0804F3A0
|
|
ldr r1, _0804F3A4
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
ldr r2, _0804F3A8
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r1, _0804F3AC
|
|
adds r0, r0, r1
|
|
ldr r1, _0804F3B0
|
|
ldrh r1, [r1]
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
movs r3, #1
|
|
str r3, [sp]
|
|
movs r3, #0
|
|
bl sub_0806B7EC
|
|
ldr r1, _0804F3B4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F3A0: .4byte 0x0202415C
|
|
_0804F3A4: .4byte 0x02023EAF
|
|
_0804F3A8: .4byte 0x02023D12
|
|
_0804F3AC: .4byte 0x020243E8
|
|
_0804F3B0: .4byte 0x02023EAC
|
|
_0804F3B4: .4byte 0x02023EB8
|
|
thumb_func_end atk75_useitemonopponent
|
|
|
|
thumb_func_start atk76_various
|
|
atk76_various: @ 0x0804F3B8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0804F3E0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _0804F3E4
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0x1a
|
|
bls _0804F3D6
|
|
b _0804F97C
|
|
_0804F3D6:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0804F3E8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0804F3E0: .4byte 0x02023EB8
|
|
_0804F3E4: .4byte 0x02023D08
|
|
_0804F3E8: .4byte 0x0804F3EC
|
|
_0804F3EC: @ jump table
|
|
.4byte _0804F458 @ case 0
|
|
.4byte _0804F468 @ case 1
|
|
.4byte _0804F4C8 @ case 2
|
|
.4byte _0804F4D8 @ case 3
|
|
.4byte _0804F4F0 @ case 4
|
|
.4byte _0804F52C @ case 5
|
|
.4byte _0804F564 @ case 6
|
|
.4byte _0804F5EC @ case 7
|
|
.4byte _0804F62C @ case 8
|
|
.4byte _0804F6D8 @ case 9
|
|
.4byte _0804F6F4 @ case 10
|
|
.4byte _0804F748 @ case 11
|
|
.4byte _0804F7A0 @ case 12
|
|
.4byte _0804F824 @ case 13
|
|
.4byte _0804F838 @ case 14
|
|
.4byte _0804F83E @ case 15
|
|
.4byte _0804F844 @ case 16
|
|
.4byte _0804F86C @ case 17
|
|
.4byte _0804F876 @ case 18
|
|
.4byte _0804F884 @ case 19
|
|
.4byte _0804F898 @ case 20
|
|
.4byte _0804F8D0 @ case 21
|
|
.4byte _0804F8E4 @ case 22
|
|
.4byte _0804F8FC @ case 23
|
|
.4byte _0804F928 @ case 24
|
|
.4byte _0804F93C @ case 25
|
|
.4byte _0804F968 @ case 26
|
|
_0804F458:
|
|
ldr r0, _0804F464
|
|
ldrb r0, [r0]
|
|
bl CancelMultiTurnMoves
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F464: .4byte 0x02023D08
|
|
_0804F468:
|
|
ldr r1, _0804F4A4
|
|
ldr r4, _0804F4A8
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
bl GetBattlerSide
|
|
movs r1, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0804F4AC
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r2, r1, r2
|
|
ldrb r0, [r2, #8]
|
|
cmp r0, #0
|
|
beq _0804F4B4
|
|
ldr r1, _0804F4B0
|
|
ldrb r2, [r2, #9]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0804F4B4
|
|
strb r2, [r4]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F4A4: .4byte 0x02023EAF
|
|
_0804F4A8: .4byte 0x02023EB0
|
|
_0804F4AC: .4byte 0x02023F38
|
|
_0804F4B0: .4byte 0x02023D28
|
|
_0804F4B4:
|
|
ldr r0, _0804F4C0
|
|
ldr r1, _0804F4C4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F4C0: .4byte 0x02023EB0
|
|
_0804F4C4: .4byte 0x02023D08
|
|
_0804F4C8:
|
|
bl IsRunningFromBattleImpossible
|
|
ldr r1, _0804F4D4
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F4D4: .4byte 0x02023FD6
|
|
_0804F4D8:
|
|
ldr r0, _0804F4E8
|
|
ldrh r0, [r0]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _0804F4EC
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F4E8: .4byte 0x02023E8E
|
|
_0804F4EC: .4byte 0x02023EB0
|
|
_0804F4F0:
|
|
ldr r2, _0804F510
|
|
ldr r1, _0804F514
|
|
ldr r0, _0804F518
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
ldr r2, [r2]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _0804F520
|
|
ldr r1, _0804F51C
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F510: .4byte 0x02023F24
|
|
_0804F514: .4byte 0x082FACB4
|
|
_0804F518: .4byte 0x02023D08
|
|
_0804F51C: .4byte 0x02023FD6
|
|
_0804F520:
|
|
ldr r0, _0804F528
|
|
strb r2, [r0]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F528: .4byte 0x02023FD6
|
|
_0804F52C:
|
|
ldr r4, _0804F55C
|
|
ldr r3, _0804F560
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r2, [r1]
|
|
movs r0, #9
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r2, [r1]
|
|
movs r0, #0x11
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F55C: .4byte 0x02024020
|
|
_0804F560: .4byte 0x02023D08
|
|
_0804F564:
|
|
ldr r4, _0804F588
|
|
ldr r1, _0804F58C
|
|
ldr r0, [r1]
|
|
ldrh r3, [r4]
|
|
ldrb r2, [r0, #0x10]
|
|
adds r6, r1, #0
|
|
cmp r3, r2
|
|
beq _0804F580
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, r2
|
|
beq _0804F57C
|
|
b _0804F97C
|
|
_0804F57C:
|
|
cmp r3, r0
|
|
bne _0804F594
|
|
_0804F580:
|
|
ldr r1, _0804F590
|
|
movs r0, #0
|
|
b _0804F598
|
|
.align 2, 0
|
|
_0804F588: .4byte 0x02023D12
|
|
_0804F58C: .4byte 0x02024140
|
|
_0804F590: .4byte 0x02023D08
|
|
_0804F594:
|
|
ldr r1, _0804F5E4
|
|
movs r0, #2
|
|
_0804F598:
|
|
strb r0, [r1]
|
|
adds r5, r1, #0
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, #1
|
|
adds r0, #0xc8
|
|
ldr r1, [r6]
|
|
adds r4, r1, r0
|
|
movs r3, #0
|
|
ldr r1, _0804F5E8
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0xc
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4]
|
|
cmp r0, r2
|
|
beq _0804F5D8
|
|
adds r6, r5, #0
|
|
movs r5, #0x58
|
|
adds r2, r1, #0
|
|
_0804F5C0:
|
|
adds r3, #1
|
|
cmp r3, #3
|
|
bgt _0804F5D8
|
|
lsls r1, r3, #1
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrh r0, [r1]
|
|
ldrh r1, [r4]
|
|
cmp r0, r1
|
|
bne _0804F5C0
|
|
_0804F5D8:
|
|
cmp r3, #4
|
|
beq _0804F5DE
|
|
b _0804F97C
|
|
_0804F5DE:
|
|
movs r0, #0
|
|
strh r0, [r4]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F5E4: .4byte 0x02023D08
|
|
_0804F5E8: .4byte 0x02023D28
|
|
_0804F5EC:
|
|
ldr r0, _0804F61C
|
|
ldr r0, [r0]
|
|
movs r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #8
|
|
beq _0804F5FA
|
|
b _0804F97C
|
|
_0804F5FA:
|
|
ldr r1, _0804F620
|
|
ldrh r0, [r1, #0x28]
|
|
cmp r0, #0
|
|
bne _0804F604
|
|
b _0804F97C
|
|
_0804F604:
|
|
adds r0, r1, #0
|
|
adds r0, #0x80
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _0804F610
|
|
b _0804F97C
|
|
_0804F610:
|
|
ldr r0, _0804F624
|
|
ldr r1, [r0]
|
|
ldr r2, _0804F628
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F61C: .4byte 0x02022C90
|
|
_0804F620: .4byte 0x02023D28
|
|
_0804F624: .4byte 0x02023F24
|
|
_0804F628: .4byte 0xFFBFFFFF
|
|
_0804F62C:
|
|
ldr r2, _0804F6BC
|
|
mov r8, r2
|
|
movs r0, #0
|
|
strb r0, [r2]
|
|
ldr r1, _0804F6C0
|
|
ldr r6, _0804F6C4
|
|
ldrb r0, [r2, #1]
|
|
strb r0, [r6]
|
|
strb r0, [r1, #0x17]
|
|
ldr r0, _0804F6C8
|
|
ldr r0, [r0]
|
|
adds r7, r0, #0
|
|
adds r7, #0x92
|
|
ldrb r3, [r7]
|
|
ldr r1, _0804F6CC
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r3, #0
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804F65C
|
|
b _0804F97C
|
|
_0804F65C:
|
|
ldr r4, _0804F6D0
|
|
movs r0, #0x58
|
|
mov ip, r0
|
|
mov r1, ip
|
|
muls r1, r2, r1
|
|
adds r2, r1, #0
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1, #0x2c]
|
|
lsrs r0, r0, #1
|
|
ldrh r1, [r1, #0x28]
|
|
cmp r0, r1
|
|
bhs _0804F676
|
|
b _0804F97C
|
|
_0804F676:
|
|
cmp r1, #0
|
|
bne _0804F67C
|
|
b _0804F97C
|
|
_0804F67C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804F68E
|
|
b _0804F97C
|
|
_0804F68E:
|
|
orrs r3, r5
|
|
strb r3, [r7]
|
|
movs r0, #1
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
mov r1, ip
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x48
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl GetNatureFromPersonality
|
|
ldr r1, _0804F6D4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
strb r0, [r2, #5]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F6BC: .4byte 0x02023FD6
|
|
_0804F6C0: .4byte 0x02024118
|
|
_0804F6C4: .4byte 0x02023D08
|
|
_0804F6C8: .4byte 0x02024140
|
|
_0804F6CC: .4byte 0x082FACB4
|
|
_0804F6D0: .4byte 0x02023D28
|
|
_0804F6D4: .4byte 0x082ECE7C
|
|
_0804F6D8:
|
|
ldr r4, _0804F6F0
|
|
adds r0, r4, #0
|
|
bl BattleArena_ShowJudgmentWindow
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
bne _0804F6EA
|
|
b _0804F984
|
|
_0804F6EA:
|
|
strb r3, [r4, #1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F6F0: .4byte 0x02023FD6
|
|
_0804F6F4:
|
|
ldr r0, _0804F72C
|
|
adds r0, #0x80
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r2, _0804F730
|
|
ldr r3, _0804F734
|
|
ldr r1, [r3, #4]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _0804F738
|
|
ldr r2, [r0]
|
|
ldr r0, _0804F73C
|
|
adds r2, r2, r0
|
|
ldr r0, _0804F740
|
|
ldrh r0, [r0, #2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804F744
|
|
adds r1, #0x34
|
|
ldrb r0, [r1]
|
|
movs r2, #2
|
|
b _0804F800
|
|
.align 2, 0
|
|
_0804F72C: .4byte 0x02023D28
|
|
_0804F730: .4byte 0x02023F24
|
|
_0804F734: .4byte 0x082FACB4
|
|
_0804F738: .4byte 0x02024140
|
|
_0804F73C: .4byte 0x000002A1
|
|
_0804F740: .4byte 0x02023D12
|
|
_0804F744: .4byte 0x02023F60
|
|
_0804F748:
|
|
ldr r1, _0804F788
|
|
movs r0, #0
|
|
strh r0, [r1, #0x28]
|
|
ldr r2, _0804F78C
|
|
ldr r3, _0804F790
|
|
ldr r1, [r3]
|
|
lsls r1, r1, #0x1c
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _0804F794
|
|
ldr r2, [r0]
|
|
movs r1, #0xa8
|
|
lsls r1, r1, #2
|
|
adds r2, r2, r1
|
|
ldr r0, _0804F798
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _0804F79C
|
|
ldrb r0, [r2, #0x18]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F788: .4byte 0x02023D28
|
|
_0804F78C: .4byte 0x02023F24
|
|
_0804F790: .4byte 0x082FACB4
|
|
_0804F794: .4byte 0x02024140
|
|
_0804F798: .4byte 0x02023D12
|
|
_0804F79C: .4byte 0x02023F60
|
|
_0804F7A0:
|
|
ldr r0, _0804F808
|
|
movs r1, #0
|
|
strh r1, [r0, #0x28]
|
|
adds r0, #0x80
|
|
strh r1, [r0]
|
|
ldr r2, _0804F80C
|
|
ldr r3, _0804F810
|
|
ldr r0, [r3]
|
|
lsls r0, r0, #0x1c
|
|
ldr r1, [r2]
|
|
orrs r1, r0
|
|
ldr r0, [r3, #4]
|
|
lsls r0, r0, #0x1c
|
|
orrs r1, r0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r5, _0804F814
|
|
ldr r2, [r5]
|
|
movs r0, #0xa8
|
|
lsls r0, r0, #2
|
|
adds r2, r2, r0
|
|
ldr r4, _0804F818
|
|
ldrh r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, [r5]
|
|
ldr r1, _0804F81C
|
|
adds r2, r2, r1
|
|
ldrh r0, [r4, #2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804F820
|
|
ldrb r0, [r1, #0x18]
|
|
movs r2, #2
|
|
orrs r0, r2
|
|
strb r0, [r1, #0x18]
|
|
adds r1, #0x34
|
|
ldrb r0, [r1]
|
|
_0804F800:
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F808: .4byte 0x02023D28
|
|
_0804F80C: .4byte 0x02023F24
|
|
_0804F810: .4byte 0x082FACB4
|
|
_0804F814: .4byte 0x02024140
|
|
_0804F818: .4byte 0x02023D12
|
|
_0804F81C: .4byte 0x000002A1
|
|
_0804F820: .4byte 0x02023F60
|
|
_0804F824:
|
|
movs r0, #0
|
|
bl BtlController_EmitUnknownYesNoBox
|
|
ldr r0, _0804F834
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F834: .4byte 0x02023D08
|
|
_0804F838:
|
|
bl DrawArenaRefereeTextBox
|
|
b _0804F97C
|
|
_0804F83E:
|
|
bl RemoveArenaRefereeTextBox
|
|
b _0804F97C
|
|
_0804F844:
|
|
ldr r1, _0804F860
|
|
ldr r0, _0804F864
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r0, _0804F868
|
|
movs r1, #0x16
|
|
bl sub_0814FA04
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F860: .4byte 0x085AC04C
|
|
_0804F864: .4byte 0x02023EB8
|
|
_0804F868: .4byte 0x02022AE0
|
|
_0804F86C:
|
|
movs r0, #0x16
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
b _0804F930
|
|
_0804F876:
|
|
bl IsCryFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804F882
|
|
b _0804F984
|
|
_0804F882:
|
|
b _0804F97C
|
|
_0804F884:
|
|
ldr r4, _0804F890
|
|
movs r0, #1
|
|
strb r0, [r4]
|
|
ldr r0, _0804F894
|
|
adds r0, #0x58
|
|
b _0804F8AE
|
|
.align 2, 0
|
|
_0804F890: .4byte 0x02023D08
|
|
_0804F894: .4byte 0x02023D28
|
|
_0804F898:
|
|
ldr r0, _0804F8C4
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bls _0804F97C
|
|
ldr r4, _0804F8C8
|
|
movs r0, #3
|
|
strb r0, [r4]
|
|
ldr r0, _0804F8CC
|
|
movs r2, #0x84
|
|
lsls r2, r2, #1
|
|
adds r0, r0, r2
|
|
_0804F8AE:
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _0804F97C
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitReturnMonToBall
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F8C4: .4byte 0x02023D10
|
|
_0804F8C8: .4byte 0x02023D08
|
|
_0804F8CC: .4byte 0x02023D28
|
|
_0804F8D0:
|
|
ldr r0, _0804F8DC
|
|
ldr r1, _0804F8E0
|
|
movs r2, #0x55
|
|
bl m4aMPlayVolumeControl
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F8DC: .4byte 0x030074D0
|
|
_0804F8E0: .4byte 0x0000FFFF
|
|
_0804F8E4:
|
|
ldr r0, _0804F8F4
|
|
ldr r1, _0804F8F8
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F8F4: .4byte 0x030074D0
|
|
_0804F8F8: .4byte 0x0000FFFF
|
|
_0804F8FC:
|
|
ldr r0, _0804F918
|
|
ldr r2, [r0]
|
|
ldr r0, _0804F91C
|
|
adds r2, r2, r0
|
|
ldr r1, _0804F920
|
|
ldr r0, _0804F924
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F918: .4byte 0x02024140
|
|
_0804F91C: .4byte 0x000002A2
|
|
_0804F920: .4byte 0x082FACB4
|
|
_0804F924: .4byte 0x02023D08
|
|
_0804F928:
|
|
ldr r0, _0804F938
|
|
ldrb r0, [r0]
|
|
bl sub_08056E6C
|
|
_0804F930:
|
|
cmp r0, #0
|
|
bne _0804F984
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F938: .4byte 0x02023D08
|
|
_0804F93C:
|
|
ldr r0, _0804F954
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0804F95C
|
|
ldr r1, _0804F958
|
|
movs r0, #5
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F954: .4byte 0x02023D08
|
|
_0804F958: .4byte 0x02023FDE
|
|
_0804F95C:
|
|
ldr r1, _0804F964
|
|
movs r0, #0xa
|
|
strb r0, [r1]
|
|
b _0804F97C
|
|
.align 2, 0
|
|
_0804F964: .4byte 0x02023FDE
|
|
_0804F968:
|
|
movs r1, #0xce
|
|
lsls r1, r1, #1
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl BtlController_EmitPlayFanfareOrBGM
|
|
ldr r0, _0804F990
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
_0804F97C:
|
|
ldr r1, _0804F994
|
|
ldr r0, [r1]
|
|
adds r0, #3
|
|
str r0, [r1]
|
|
_0804F984:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804F990: .4byte 0x02023D08
|
|
_0804F994: .4byte 0x02023EB8
|
|
thumb_func_end atk76_various
|
|
|
|
thumb_func_start atk77_setprotectlike
|
|
atk77_setprotectlike: @ 0x0804F998
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, #1
|
|
ldr r2, _0804FA64
|
|
ldr r1, _0804FA68
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
mov r8, r1
|
|
ldr r7, _0804FA6C
|
|
cmp r0, #0xb6
|
|
beq _0804F9C8
|
|
cmp r0, #0xc5
|
|
beq _0804F9C8
|
|
cmp r0, #0xcb
|
|
beq _0804F9C8
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
movs r1, #0
|
|
strb r1, [r0, #8]
|
|
_0804F9C8:
|
|
ldr r0, _0804FA70
|
|
ldrb r1, [r0]
|
|
ldr r0, _0804FA74
|
|
ldrb r0, [r0]
|
|
subs r0, #1
|
|
cmp r1, r0
|
|
bne _0804F9D8
|
|
movs r6, #0
|
|
_0804F9D8:
|
|
ldr r2, _0804FA78
|
|
mov r5, r8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r4, [r0, #8]
|
|
lsls r4, r4, #1
|
|
adds r4, r4, r2
|
|
bl Random
|
|
ldrh r1, [r4]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r1, r0
|
|
blo _0804FA8C
|
|
cmp r6, #0
|
|
beq _0804FA8C
|
|
ldr r4, _0804FA7C
|
|
ldr r3, _0804FA80
|
|
ldrh r0, [r3]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x6f
|
|
bne _0804FA28
|
|
ldr r0, _0804FA84
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _0804FA88
|
|
movs r0, #0
|
|
strb r0, [r1, #5]
|
|
_0804FA28:
|
|
ldrh r0, [r3]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x74
|
|
bne _0804FA4E
|
|
ldr r0, _0804FA84
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, #2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _0804FA88
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
_0804FA4E:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r7
|
|
ldrb r0, [r1, #8]
|
|
adds r0, #1
|
|
strb r0, [r1, #8]
|
|
b _0804FAAE
|
|
.align 2, 0
|
|
_0804FA64: .4byte 0x02023F04
|
|
_0804FA68: .4byte 0x02023EAF
|
|
_0804FA6C: .4byte 0x02023F60
|
|
_0804FA70: .4byte 0x02023D26
|
|
_0804FA74: .4byte 0x02023D10
|
|
_0804FA78: .4byte 0x082ECD5C
|
|
_0804FA7C: .4byte 0x082ED220
|
|
_0804FA80: .4byte 0x02023E8E
|
|
_0804FA84: .4byte 0x02023FE0
|
|
_0804FA88: .4byte 0x02023FD6
|
|
_0804FA8C:
|
|
ldr r2, _0804FAC0
|
|
ldr r0, _0804FAC4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #8]
|
|
ldr r1, _0804FAC8
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
ldr r2, _0804FACC
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804FAAE:
|
|
ldr r1, _0804FAD0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FAC0: .4byte 0x02023F60
|
|
_0804FAC4: .4byte 0x02023EAF
|
|
_0804FAC8: .4byte 0x02023FD6
|
|
_0804FACC: .4byte 0x02023F20
|
|
_0804FAD0: .4byte 0x02023EB8
|
|
thumb_func_end atk77_setprotectlike
|
|
|
|
thumb_func_start atk78_faintifabilitynotdamp
|
|
atk78_faintifabilitynotdamp: @ 0x0804FAD4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _0804FB90
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
bne _0804FBD8
|
|
ldr r1, _0804FB94
|
|
strb r2, [r1]
|
|
ldr r0, _0804FB98
|
|
ldrb r3, [r0]
|
|
adds r5, r1, #0
|
|
mov r8, r0
|
|
ldr r6, _0804FB9C
|
|
cmp r2, r3
|
|
bhs _0804FB20
|
|
adds r0, r6, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
beq _0804FB20
|
|
adds r2, r3, #0
|
|
adds r4, r6, #0
|
|
movs r3, #0x58
|
|
_0804FB04:
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r2
|
|
bhs _0804FB20
|
|
ldrb r0, [r5]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r4
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
bne _0804FB04
|
|
_0804FB20:
|
|
ldrb r0, [r5]
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0804FBBC
|
|
ldr r4, _0804FBA0
|
|
ldr r7, _0804FBA4
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldr r2, _0804FBA8
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
str r0, [r2]
|
|
ldr r1, _0804FBAC
|
|
movs r0, #0
|
|
bl BtlController_EmitHealthBarUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804FBB0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
movs r0, #0
|
|
strb r0, [r5]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
cmp r0, #0
|
|
beq _0804FBD8
|
|
adds r3, r5, #0
|
|
ldrb r5, [r7]
|
|
ldr r7, _0804FBB4
|
|
adds r4, r0, #0
|
|
ldr r6, _0804FBB8
|
|
_0804FB6C:
|
|
ldrb r2, [r3]
|
|
cmp r2, r5
|
|
beq _0804FB82
|
|
ldrb r0, [r6]
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r7
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804FBD8
|
|
_0804FB82:
|
|
adds r0, r2, #1
|
|
strb r0, [r3]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r4
|
|
blo _0804FB6C
|
|
b _0804FBD8
|
|
.align 2, 0
|
|
_0804FB90: .4byte 0x02023D0C
|
|
_0804FB94: .4byte 0x02023EB0
|
|
_0804FB98: .4byte 0x02023D10
|
|
_0804FB9C: .4byte 0x02023D28
|
|
_0804FBA0: .4byte 0x02023D08
|
|
_0804FBA4: .4byte 0x02023EAF
|
|
_0804FBA8: .4byte 0x02023E94
|
|
_0804FBAC: .4byte 0x00007FFF
|
|
_0804FBB0: .4byte 0x02023EB8
|
|
_0804FBB4: .4byte 0x082FACB4
|
|
_0804FBB8: .4byte 0x02023EB4
|
|
_0804FBBC:
|
|
ldr r1, _0804FBE4
|
|
movs r0, #6
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
movs r1, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r6
|
|
adds r1, #0x20
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
ldr r1, _0804FBE8
|
|
ldr r0, _0804FBEC
|
|
str r0, [r1]
|
|
_0804FBD8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FBE4: .4byte 0x02023EAE
|
|
_0804FBE8: .4byte 0x02023EB8
|
|
_0804FBEC: .4byte 0x08289AE8
|
|
thumb_func_end atk78_faintifabilitynotdamp
|
|
|
|
thumb_func_start atk79_setatkhptozero
|
|
atk79_setatkhptozero: @ 0x0804FBF0
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r0, _0804FC3C
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
bne _0804FC34
|
|
ldr r4, _0804FC40
|
|
ldr r0, _0804FC44
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, _0804FC48
|
|
ldrb r0, [r4]
|
|
movs r2, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r1
|
|
strh r3, [r0, #0x28]
|
|
ldrb r0, [r4]
|
|
muls r0, r2, r0
|
|
adds r1, #0x28
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x2a
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _0804FC4C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804FC34:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FC3C: .4byte 0x02023D0C
|
|
_0804FC40: .4byte 0x02023D08
|
|
_0804FC44: .4byte 0x02023EAF
|
|
_0804FC48: .4byte 0x02023D28
|
|
_0804FC4C: .4byte 0x02023EB8
|
|
thumb_func_end atk79_setatkhptozero
|
|
|
|
thumb_func_start atk7A_jumpifnexttargetvalid
|
|
atk7A_jumpifnexttargetvalid: @ 0x0804FC50
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r3, _0804FCC8
|
|
ldr r2, [r3]
|
|
ldrb r4, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
ldr r0, _0804FCCC
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
adds r7, r3, #0
|
|
cmp r0, #0
|
|
beq _0804FCE8
|
|
ldr r0, _0804FCD0
|
|
ldrb r1, [r0]
|
|
adds r1, #1
|
|
strb r1, [r0]
|
|
ldr r2, _0804FCD4
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r3, r0, #0
|
|
ldr r6, _0804FCD8
|
|
ldr r5, _0804FCDC
|
|
ldr r0, _0804FCE0
|
|
mov ip, r0
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bne _0804FCA6
|
|
_0804FC96:
|
|
ldrb r0, [r3]
|
|
adds r0, #1
|
|
strb r0, [r3]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
beq _0804FC96
|
|
_0804FCA6:
|
|
ldrb r0, [r6]
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0804FC96
|
|
ldrb r0, [r3]
|
|
mov r2, ip
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
blo _0804FCE4
|
|
ldr r0, [r7]
|
|
adds r0, #5
|
|
str r0, [r7]
|
|
b _0804FCEC
|
|
.align 2, 0
|
|
_0804FCC8: .4byte 0x02023EB8
|
|
_0804FCCC: .4byte 0x02022C90
|
|
_0804FCD0: .4byte 0x02023EB0
|
|
_0804FCD4: .4byte 0x02023EAF
|
|
_0804FCD8: .4byte 0x02023EB4
|
|
_0804FCDC: .4byte 0x082FACB4
|
|
_0804FCE0: .4byte 0x02023D10
|
|
_0804FCE4:
|
|
str r4, [r7]
|
|
b _0804FCEC
|
|
_0804FCE8:
|
|
adds r0, r2, #5
|
|
str r0, [r3]
|
|
_0804FCEC:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk7A_jumpifnexttargetvalid
|
|
|
|
thumb_func_start atk7B_tryhealhalfhealth
|
|
atk7B_tryhealhalfhealth: @ 0x0804FCF4
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _0804FD50
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #5]
|
|
ldr r3, _0804FD54
|
|
cmp r0, #1
|
|
bne _0804FD1C
|
|
ldr r0, _0804FD58
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
_0804FD1C:
|
|
ldr r1, _0804FD5C
|
|
ldr r6, _0804FD60
|
|
ldrb r0, [r3]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #1
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _0804FD36
|
|
movs r0, #1
|
|
str r0, [r1]
|
|
_0804FD36:
|
|
ldr r0, [r1]
|
|
rsbs r0, r0, #0
|
|
str r0, [r1]
|
|
ldrb r0, [r3]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r1, [r0, #0x28]
|
|
ldrh r0, [r0, #0x2c]
|
|
cmp r1, r0
|
|
bne _0804FD64
|
|
str r2, [r4]
|
|
b _0804FD6A
|
|
.align 2, 0
|
|
_0804FD50: .4byte 0x02023EB8
|
|
_0804FD54: .4byte 0x02023EB0
|
|
_0804FD58: .4byte 0x02023EAF
|
|
_0804FD5C: .4byte 0x02023E94
|
|
_0804FD60: .4byte 0x02023D28
|
|
_0804FD64:
|
|
ldr r0, [r4]
|
|
adds r0, #6
|
|
str r0, [r4]
|
|
_0804FD6A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk7B_tryhealhalfhealth
|
|
|
|
thumb_func_start atk7C_trymirrormove
|
|
atk7C_trymirrormove: @ 0x0804FD70
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
ldr r2, _0804FE10
|
|
ldr r0, _0804FE14
|
|
mov sl, r0
|
|
movs r1, #0
|
|
add r0, sp, #4
|
|
_0804FD86:
|
|
strh r1, [r0]
|
|
subs r0, #2
|
|
cmp r0, sp
|
|
bge _0804FD86
|
|
movs r1, #0
|
|
mov r8, r1
|
|
movs r5, #0
|
|
ldrb r1, [r2]
|
|
cmp r5, r1
|
|
bge _0804FDDC
|
|
ldr r0, _0804FE18
|
|
ldrb r6, [r0]
|
|
ldr r2, _0804FE1C
|
|
mov sb, r2
|
|
lsls r4, r6, #3
|
|
mov r2, sp
|
|
ldr r0, _0804FE14
|
|
mov ip, r0
|
|
adds r7, r1, #0
|
|
_0804FDAC:
|
|
cmp r5, r6
|
|
beq _0804FDD4
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
adds r0, r4, r0
|
|
adds r1, r0, #0
|
|
adds r1, #0xe0
|
|
ldrb r3, [r1]
|
|
adds r0, #0xe1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
cmp r3, #0
|
|
beq _0804FDD4
|
|
cmp r3, sb
|
|
beq _0804FDD4
|
|
strh r3, [r2]
|
|
adds r2, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
_0804FDD4:
|
|
adds r4, #2
|
|
adds r5, #1
|
|
cmp r5, r7
|
|
blt _0804FDAC
|
|
_0804FDDC:
|
|
ldr r1, _0804FE18
|
|
ldrb r0, [r1]
|
|
mov r2, sl
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r1, r0, #0
|
|
adds r1, #0x98
|
|
ldrb r3, [r1]
|
|
adds r0, #0x99
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
cmp r3, #0
|
|
beq _0804FE2C
|
|
ldr r0, _0804FE1C
|
|
cmp r3, r0
|
|
beq _0804FE2C
|
|
ldr r2, _0804FE20
|
|
ldr r0, [r2]
|
|
ldr r1, _0804FE24
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, _0804FE28
|
|
strh r3, [r4]
|
|
b _0804FE56
|
|
.align 2, 0
|
|
_0804FE10: .4byte 0x02023D10
|
|
_0804FE14: .4byte 0x02024140
|
|
_0804FE18: .4byte 0x02023EAF
|
|
_0804FE1C: .4byte 0x0000FFFF
|
|
_0804FE20: .4byte 0x02023F24
|
|
_0804FE24: .4byte 0xFFFFFBFF
|
|
_0804FE28: .4byte 0x02023E8E
|
|
_0804FE2C:
|
|
mov r0, r8
|
|
cmp r0, #0
|
|
beq _0804FE9C
|
|
ldr r2, _0804FE80
|
|
ldr r0, [r2]
|
|
ldr r1, _0804FE84
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r1, r8
|
|
bl __modsi3
|
|
adds r5, r0, #0
|
|
ldr r4, _0804FE88
|
|
lsls r0, r5, #1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
_0804FE56:
|
|
ldrh r0, [r4]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _0804FE8C
|
|
strb r0, [r1]
|
|
ldr r5, _0804FE90
|
|
ldr r3, _0804FE94
|
|
ldr r2, _0804FE98
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0804FEBA
|
|
.align 2, 0
|
|
_0804FE80: .4byte 0x02023F24
|
|
_0804FE84: .4byte 0xFFFFFBFF
|
|
_0804FE88: .4byte 0x02023E8E
|
|
_0804FE8C: .4byte 0x02023EB0
|
|
_0804FE90: .4byte 0x02023EB8
|
|
_0804FE94: .4byte 0x08286C30
|
|
_0804FE98: .4byte 0x082ED220
|
|
_0804FE9C:
|
|
ldr r2, _0804FECC
|
|
ldr r0, _0804FED0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, _0804FED4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0804FEBA:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FECC: .4byte 0x02024020
|
|
_0804FED0: .4byte 0x02023EAF
|
|
_0804FED4: .4byte 0x02023EB8
|
|
thumb_func_end atk7C_trymirrormove
|
|
|
|
thumb_func_start atk7D_setrain
|
|
atk7D_setrain: @ 0x0804FED8
|
|
push {lr}
|
|
ldr r2, _0804FEF8
|
|
ldrh r0, [r2]
|
|
movs r1, #7
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0804FF04
|
|
ldr r2, _0804FEFC
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804FF00
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
b _0804FF14
|
|
.align 2, 0
|
|
_0804FEF8: .4byte 0x02024070
|
|
_0804FEFC: .4byte 0x02023F20
|
|
_0804FF00: .4byte 0x02023FD6
|
|
_0804FF04:
|
|
movs r0, #1
|
|
strh r0, [r2]
|
|
ldr r0, _0804FF20
|
|
strb r1, [r0, #5]
|
|
ldr r0, _0804FF24
|
|
adds r0, #0x28
|
|
movs r1, #5
|
|
strb r1, [r0]
|
|
_0804FF14:
|
|
ldr r1, _0804FF28
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FF20: .4byte 0x02023FD6
|
|
_0804FF24: .4byte 0x02024074
|
|
_0804FF28: .4byte 0x02023EB8
|
|
thumb_func_end atk7D_setrain
|
|
|
|
thumb_func_start atk7E_setreflect
|
|
atk7E_setreflect: @ 0x0804FF2C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0804FF5C
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
ldr r4, _0804FF60
|
|
movs r5, #1
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r1, [r1]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0804FF6C
|
|
ldr r2, _0804FF64
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0804FF68
|
|
movs r0, #0
|
|
b _0804FFE0
|
|
.align 2, 0
|
|
_0804FF5C: .4byte 0x02023EAF
|
|
_0804FF60: .4byte 0x02023F32
|
|
_0804FF64: .4byte 0x02023F20
|
|
_0804FF68: .4byte 0x02023FD6
|
|
_0804FF6C:
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, #1
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
ldr r4, _0804FFD0
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #5
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r6]
|
|
strb r1, [r0, #1]
|
|
ldr r0, _0804FFD4
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0804FFDC
|
|
movs r0, #1
|
|
bl CountAliveMonsInBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #2
|
|
bne _0804FFDC
|
|
ldr r0, _0804FFD8
|
|
strb r1, [r0, #5]
|
|
b _0804FFE2
|
|
.align 2, 0
|
|
_0804FFD0: .4byte 0x02023F38
|
|
_0804FFD4: .4byte 0x02022C90
|
|
_0804FFD8: .4byte 0x02023FD6
|
|
_0804FFDC:
|
|
ldr r1, _0804FFF0
|
|
movs r0, #1
|
|
_0804FFE0:
|
|
strb r0, [r1, #5]
|
|
_0804FFE2:
|
|
ldr r1, _0804FFF4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0804FFF0: .4byte 0x02023FD6
|
|
_0804FFF4: .4byte 0x02023EB8
|
|
thumb_func_end atk7E_setreflect
|
|
|
|
thumb_func_start atk7F_setseeded
|
|
atk7F_setseeded: @ 0x0804FFF8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r7, _08050038
|
|
ldrb r5, [r7]
|
|
movs r0, #0x29
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _0805002A
|
|
ldr r0, _0805003C
|
|
mov sb, r0
|
|
ldr r1, _08050040
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
lsls r0, r4, #2
|
|
mov r2, sb
|
|
adds r6, r0, r2
|
|
ldr r2, [r6]
|
|
movs r0, #4
|
|
mov ip, r0
|
|
adds r3, r2, #0
|
|
ands r3, r0
|
|
cmp r3, #0
|
|
beq _08050048
|
|
_0805002A:
|
|
movs r0, #1
|
|
orrs r0, r5
|
|
strb r0, [r7]
|
|
ldr r1, _08050044
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _08050098
|
|
.align 2, 0
|
|
_08050038: .4byte 0x02023F20
|
|
_0805003C: .4byte 0x02023F50
|
|
_08050040: .4byte 0x02023EB0
|
|
_08050044: .4byte 0x02023FD6
|
|
_08050048:
|
|
ldr r1, _08050074
|
|
movs r0, #0x58
|
|
muls r0, r4, r0
|
|
adds r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xc
|
|
beq _08050064
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xc
|
|
bne _0805007C
|
|
_08050064:
|
|
movs r0, #1
|
|
orrs r0, r5
|
|
strb r0, [r7]
|
|
ldr r1, _08050078
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
b _08050098
|
|
.align 2, 0
|
|
_08050074: .4byte 0x02023D28
|
|
_08050078: .4byte 0x02023FD6
|
|
_0805007C:
|
|
ldr r0, _080500AC
|
|
ldrb r0, [r0]
|
|
orrs r2, r0
|
|
str r2, [r6]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #2
|
|
add r1, sb
|
|
ldr r0, [r1]
|
|
mov r2, ip
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r0, _080500B0
|
|
strb r3, [r0, #5]
|
|
_08050098:
|
|
ldr r1, _080500B4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080500AC: .4byte 0x02023EAF
|
|
_080500B0: .4byte 0x02023FD6
|
|
_080500B4: .4byte 0x02023EB8
|
|
thumb_func_end atk7F_setseeded
|
|
|
|
thumb_func_start atk80_manipulatedamage
|
|
atk80_manipulatedamage: @ 0x080500B8
|
|
push {r4, lr}
|
|
ldr r1, _080500D0
|
|
ldr r0, [r1]
|
|
ldrb r2, [r0, #1]
|
|
adds r4, r1, #0
|
|
cmp r2, #1
|
|
beq _080500E8
|
|
cmp r2, #1
|
|
bgt _080500D4
|
|
cmp r2, #0
|
|
beq _080500DA
|
|
b _08050128
|
|
.align 2, 0
|
|
_080500D0: .4byte 0x02023EB8
|
|
_080500D4:
|
|
cmp r2, #2
|
|
beq _08050120
|
|
b _08050128
|
|
_080500DA:
|
|
ldr r1, _080500E4
|
|
ldr r0, [r1]
|
|
rsbs r0, r0, #0
|
|
b _08050126
|
|
.align 2, 0
|
|
_080500E4: .4byte 0x02023E94
|
|
_080500E8:
|
|
ldr r3, _08050114
|
|
ldr r0, [r3]
|
|
lsrs r1, r0, #0x1f
|
|
adds r0, r0, r1
|
|
asrs r0, r0, #1
|
|
str r0, [r3]
|
|
cmp r0, #0
|
|
bne _080500FA
|
|
str r2, [r3]
|
|
_080500FA:
|
|
ldr r2, _08050118
|
|
ldr r0, _0805011C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r1, r0, #1
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bge _08050128
|
|
str r1, [r3]
|
|
b _08050128
|
|
.align 2, 0
|
|
_08050114: .4byte 0x02023E94
|
|
_08050118: .4byte 0x02023D28
|
|
_0805011C: .4byte 0x02023EB0
|
|
_08050120:
|
|
ldr r1, _08050134
|
|
ldr r0, [r1]
|
|
lsls r0, r0, #1
|
|
_08050126:
|
|
str r0, [r1]
|
|
_08050128:
|
|
ldr r0, [r4]
|
|
adds r0, #2
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050134: .4byte 0x02023E94
|
|
thumb_func_end atk80_manipulatedamage
|
|
|
|
thumb_func_start atk81_trysetrest
|
|
atk81_trysetrest: @ 0x08050138
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
ldr r0, _08050190
|
|
mov ip, r0
|
|
ldr r1, [r0]
|
|
ldrb r6, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
orrs r6, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r6, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r6, r0
|
|
ldr r5, _08050194
|
|
ldr r2, _08050198
|
|
ldr r0, _0805019C
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
strb r0, [r5]
|
|
ldr r4, _080501A0
|
|
ldr r1, _080501A4
|
|
ldrb r0, [r2]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0, #0x2c]
|
|
rsbs r0, r0, #0
|
|
str r0, [r4]
|
|
ldrb r0, [r2]
|
|
adds r4, r0, #0
|
|
muls r4, r3, r4
|
|
adds r0, r4, r1
|
|
ldrh r3, [r0, #0x28]
|
|
adds r7, r5, #0
|
|
adds r5, r2, #0
|
|
adds r2, r1, #0
|
|
ldrh r0, [r0, #0x2c]
|
|
cmp r3, r0
|
|
bne _080501A8
|
|
mov r0, ip
|
|
str r6, [r0]
|
|
b _080501F8
|
|
.align 2, 0
|
|
_08050190: .4byte 0x02023EB8
|
|
_08050194: .4byte 0x02023D08
|
|
_08050198: .4byte 0x02023EB0
|
|
_0805019C: .4byte 0x02023EAF
|
|
_080501A0: .4byte 0x02023E94
|
|
_080501A4: .4byte 0x02023D28
|
|
_080501A8:
|
|
adds r0, r2, #0
|
|
adds r0, #0x4c
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, #0xf8
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _080501C4
|
|
ldr r1, _080501C0
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _080501C8
|
|
.align 2, 0
|
|
_080501C0: .4byte 0x02023FD6
|
|
_080501C4:
|
|
ldr r0, _08050200
|
|
strb r1, [r0, #5]
|
|
_080501C8:
|
|
ldrb r0, [r5]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
adds r2, #0x4c
|
|
adds r0, r0, r2
|
|
movs r1, #3
|
|
str r1, [r0]
|
|
ldrb r0, [r7]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r2
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08050204
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080501F8:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050200: .4byte 0x02023FD6
|
|
_08050204: .4byte 0x02023EB8
|
|
thumb_func_end atk81_trysetrest
|
|
|
|
thumb_func_start atk82_jumpifnotfirstturn
|
|
atk82_jumpifnotfirstturn: @ 0x08050208
|
|
push {r4, r5, lr}
|
|
ldr r5, _0805023C
|
|
ldr r4, [r5]
|
|
ldrb r3, [r4, #1]
|
|
ldrb r0, [r4, #2]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
ldrb r0, [r4, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r3, r0
|
|
ldrb r0, [r4, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r3, r0
|
|
ldr r2, _08050240
|
|
ldr r0, _08050244
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #0x16]
|
|
cmp r0, #0
|
|
beq _08050248
|
|
adds r0, r4, #5
|
|
str r0, [r5]
|
|
b _0805024A
|
|
.align 2, 0
|
|
_0805023C: .4byte 0x02023EB8
|
|
_08050240: .4byte 0x02023F60
|
|
_08050244: .4byte 0x02023EAF
|
|
_08050248:
|
|
str r3, [r5]
|
|
_0805024A:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk82_jumpifnotfirstturn
|
|
|
|
thumb_func_start atk83_nop
|
|
atk83_nop: @ 0x08050250
|
|
ldr r1, _0805025C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805025C: .4byte 0x02023EB8
|
|
thumb_func_end atk83_nop
|
|
|
|
thumb_func_start UproarWakeUpCheck
|
|
UproarWakeUpCheck: @ 0x08050260
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
movs r2, #0
|
|
ldr r0, _080502B8
|
|
ldrb r1, [r0]
|
|
mov r8, r0
|
|
cmp r2, r1
|
|
bge _080502D4
|
|
ldr r0, _080502BC
|
|
mov ip, r0
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
add r0, ip
|
|
adds r5, r0, #0
|
|
adds r5, #0x20
|
|
adds r4, r1, #0
|
|
movs r3, #0
|
|
ldr r6, _080502C0
|
|
ldr r7, _080502C4
|
|
_0805028C:
|
|
mov r0, ip
|
|
adds r0, #0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x70
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080502CC
|
|
ldrb r0, [r5]
|
|
cmp r0, #0x2b
|
|
beq _080502CC
|
|
movs r3, #0
|
|
strb r2, [r6, #0x17]
|
|
ldr r1, _080502C8
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xff
|
|
beq _080502EC
|
|
cmp r0, r2
|
|
beq _080502E0
|
|
movs r0, #1
|
|
strb r0, [r7, #5]
|
|
b _080502D4
|
|
.align 2, 0
|
|
_080502B8: .4byte 0x02023D10
|
|
_080502BC: .4byte 0x02023D28
|
|
_080502C0: .4byte 0x02024118
|
|
_080502C4: .4byte 0x02023FD6
|
|
_080502C8: .4byte 0x02023EB0
|
|
_080502CC:
|
|
adds r3, #0x58
|
|
adds r2, #1
|
|
cmp r2, r4
|
|
blt _0805028C
|
|
_080502D4:
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _080502F0
|
|
movs r0, #1
|
|
b _080502F2
|
|
_080502E0:
|
|
ldr r0, _080502E8
|
|
strb r3, [r0, #5]
|
|
b _080502D4
|
|
.align 2, 0
|
|
_080502E8: .4byte 0x02023FD6
|
|
_080502EC:
|
|
strb r2, [r1]
|
|
b _080502D4
|
|
_080502F0:
|
|
movs r0, #0
|
|
_080502F2:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end UproarWakeUpCheck
|
|
|
|
thumb_func_start atk84_jumpifcantmakeasleep
|
|
atk84_jumpifcantmakeasleep: @ 0x080502FC
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _08050328
|
|
ldr r1, [r5]
|
|
ldrb r4, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r4, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r4, r0
|
|
ldr r6, _0805032C
|
|
ldrb r0, [r6]
|
|
bl UproarWakeUpCheck
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08050330
|
|
str r4, [r5]
|
|
b _08050372
|
|
.align 2, 0
|
|
_08050328: .4byte 0x02023EB8
|
|
_0805032C: .4byte 0x02023EB0
|
|
_08050330:
|
|
ldr r1, _08050360
|
|
ldrb r3, [r6]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r0, r0, r1
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
adds r1, r0, #0
|
|
cmp r1, #0xf
|
|
beq _08050348
|
|
cmp r1, #0x48
|
|
bne _0805036C
|
|
_08050348:
|
|
ldr r2, _08050364
|
|
strb r0, [r2]
|
|
ldr r1, _08050368
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
str r4, [r5]
|
|
ldrb r1, [r2]
|
|
adds r0, r3, #0
|
|
bl RecordAbilityBattle
|
|
b _08050372
|
|
.align 2, 0
|
|
_08050360: .4byte 0x02023D28
|
|
_08050364: .4byte 0x02023EAE
|
|
_08050368: .4byte 0x02023FD6
|
|
_0805036C:
|
|
ldr r0, [r5]
|
|
adds r0, #5
|
|
str r0, [r5]
|
|
_08050372:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk84_jumpifcantmakeasleep
|
|
|
|
thumb_func_start atk85_stockpile
|
|
atk85_stockpile: @ 0x08050378
|
|
push {r4, r5, lr}
|
|
ldr r5, _080503A0
|
|
ldr r4, _080503A4
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1, #9]
|
|
cmp r0, #3
|
|
bne _080503B0
|
|
ldr r2, _080503A8
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080503AC
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _080503DA
|
|
.align 2, 0
|
|
_080503A0: .4byte 0x02023F60
|
|
_080503A4: .4byte 0x02023EAF
|
|
_080503A8: .4byte 0x02023F20
|
|
_080503AC: .4byte 0x02023FD6
|
|
_080503B0:
|
|
adds r0, #1
|
|
movs r3, #0
|
|
strb r0, [r1, #9]
|
|
ldr r2, _080503E8
|
|
movs r0, #0xfd
|
|
strb r0, [r2]
|
|
movs r0, #1
|
|
strb r0, [r2, #1]
|
|
strb r0, [r2, #2]
|
|
strb r0, [r2, #3]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #9]
|
|
strb r0, [r2, #4]
|
|
movs r0, #0xff
|
|
strb r0, [r2, #5]
|
|
ldr r0, _080503EC
|
|
strb r3, [r0, #5]
|
|
_080503DA:
|
|
ldr r1, _080503F0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080503E8: .4byte 0x02022C0C
|
|
_080503EC: .4byte 0x02023FD6
|
|
_080503F0: .4byte 0x02023EB8
|
|
thumb_func_end atk85_stockpile
|
|
|
|
thumb_func_start atk86_stockpiletobasedamage
|
|
atk86_stockpiletobasedamage: @ 0x080503F4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #0x10
|
|
ldr r3, _0805042C
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r2, r0
|
|
ldr r7, _08050430
|
|
ldr r6, _08050434
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r0, [r0, #9]
|
|
cmp r0, #0
|
|
bne _08050438
|
|
str r2, [r3]
|
|
b _080504DA
|
|
.align 2, 0
|
|
_0805042C: .4byte 0x02023EB8
|
|
_08050430: .4byte 0x02023F60
|
|
_08050434: .4byte 0x02023EAF
|
|
_08050438:
|
|
ldr r0, _080504E8
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #1
|
|
beq _080504C0
|
|
ldr r0, _080504EC
|
|
mov r8, r0
|
|
ldr r4, _080504F0
|
|
ldr r5, _080504F4
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r3, [r1]
|
|
ldrb r0, [r6]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
ldr r2, _080504F8
|
|
adds r0, r0, r2
|
|
ldrb r1, [r5]
|
|
muls r1, r4, r1
|
|
adds r1, r1, r2
|
|
ldr r2, _080504FC
|
|
ldrh r2, [r2]
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
str r4, [sp, #4]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, #8]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, #0xc]
|
|
bl CalculateBaseDamage
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r7
|
|
ldrb r1, [r1, #9]
|
|
adds r3, r0, #0
|
|
muls r3, r1, r3
|
|
mov r1, r8
|
|
str r3, [r1]
|
|
ldr r2, _08050500
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r0, [r0, #9]
|
|
strb r0, [r2, #0x18]
|
|
ldr r1, _08050504
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
bge _080504C0
|
|
lsls r0, r3, #4
|
|
subs r0, r0, r3
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
_080504C0:
|
|
ldr r2, _08050508
|
|
ldr r0, _0805050C
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #9]
|
|
ldr r1, _08050510
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080504DA:
|
|
add sp, #0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080504E8: .4byte 0x02023FD6
|
|
_080504EC: .4byte 0x02023E94
|
|
_080504F0: .4byte 0x02023F32
|
|
_080504F4: .4byte 0x02023EB0
|
|
_080504F8: .4byte 0x02023D28
|
|
_080504FC: .4byte 0x02023E8E
|
|
_08050500: .4byte 0x02024118
|
|
_08050504: .4byte 0x02023FE0
|
|
_08050508: .4byte 0x02023F60
|
|
_0805050C: .4byte 0x02023EAF
|
|
_08050510: .4byte 0x02023EB8
|
|
thumb_func_end atk86_stockpiletobasedamage
|
|
|
|
thumb_func_start atk87_stockpiletohpheal
|
|
atk87_stockpiletohpheal: @ 0x08050514
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r7, _08050554
|
|
ldr r1, [r7]
|
|
ldrb r2, [r1, #1]
|
|
ldrb r0, [r1, #2]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r2, r0
|
|
ldrb r0, [r1, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r2, r0
|
|
ldr r0, _08050558
|
|
mov r8, r0
|
|
ldr r6, _0805055C
|
|
ldrb r3, [r6]
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
mov r1, r8
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4, #9]
|
|
cmp r1, #0
|
|
bne _08050564
|
|
str r2, [r7]
|
|
ldr r0, _08050560
|
|
strb r1, [r0, #5]
|
|
b _080505E0
|
|
.align 2, 0
|
|
_08050554: .4byte 0x02023EB8
|
|
_08050558: .4byte 0x02023F60
|
|
_0805055C: .4byte 0x02023EAF
|
|
_08050560: .4byte 0x02023FD6
|
|
_08050564:
|
|
ldr r1, _08050588
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, #0x2c]
|
|
ldrh r3, [r1, #0x28]
|
|
cmp r0, r3
|
|
bne _08050594
|
|
movs r0, #0
|
|
strb r0, [r4, #9]
|
|
str r2, [r7]
|
|
ldr r1, _0805058C
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
ldr r1, _08050590
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _080505E0
|
|
.align 2, 0
|
|
_08050588: .4byte 0x02023D28
|
|
_0805058C: .4byte 0x02023EB0
|
|
_08050590: .4byte 0x02023FD6
|
|
_08050594:
|
|
ldr r5, _080505EC
|
|
ldrh r0, [r1, #0x2c]
|
|
ldrb r1, [r4, #9]
|
|
movs r2, #3
|
|
subs r2, r2, r1
|
|
movs r4, #1
|
|
adds r1, r4, #0
|
|
lsls r1, r2
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, #0
|
|
bne _080505B0
|
|
str r4, [r5]
|
|
_080505B0:
|
|
ldr r0, [r5]
|
|
rsbs r0, r0, #0
|
|
str r0, [r5]
|
|
ldr r3, _080505F0
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #9]
|
|
movs r2, #0
|
|
strb r0, [r3, #0x18]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
strb r2, [r0, #9]
|
|
ldr r0, [r7]
|
|
adds r0, #5
|
|
str r0, [r7]
|
|
ldr r1, _080505F4
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
_080505E0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080505EC: .4byte 0x02023E94
|
|
_080505F0: .4byte 0x02024118
|
|
_080505F4: .4byte 0x02023EB0
|
|
thumb_func_end atk87_stockpiletohpheal
|
|
|
|
thumb_func_start atk88_negativedamage
|
|
atk88_negativedamage: @ 0x080505F8
|
|
push {lr}
|
|
ldr r2, _08050620
|
|
ldr r0, _08050624
|
|
ldr r0, [r0]
|
|
lsrs r1, r0, #0x1f
|
|
adds r0, r0, r1
|
|
asrs r0, r0, #1
|
|
rsbs r0, r0, #0
|
|
str r0, [r2]
|
|
cmp r0, #0
|
|
bne _08050614
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
str r0, [r2]
|
|
_08050614:
|
|
ldr r1, _08050628
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050620: .4byte 0x02023E94
|
|
_08050624: .4byte 0x02023E98
|
|
_08050628: .4byte 0x02023EB8
|
|
thumb_func_end atk88_negativedamage
|
|
|
|
thumb_func_start ChangeStatBuffs
|
|
ChangeStatBuffs: @ 0x0805062C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
mov r8, r3
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r7, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r5, r2, #0x18
|
|
movs r0, #0
|
|
mov sb, r0
|
|
mov sl, r0
|
|
movs r0, #0x40
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08050660
|
|
ldr r0, _08050658
|
|
ldr r1, _0805065C
|
|
b _08050664
|
|
.align 2, 0
|
|
_08050658: .4byte 0x02023D08
|
|
_0805065C: .4byte 0x02023EAF
|
|
_08050660:
|
|
ldr r0, _08050704
|
|
ldr r1, _08050708
|
|
_08050664:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
movs r0, #0xbf
|
|
ands r5, r0
|
|
movs r0, #0x80
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0805067E
|
|
mov r0, sb
|
|
adds r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sb, r0
|
|
_0805067E:
|
|
movs r0, #0x7f
|
|
ands r5, r0
|
|
movs r0, #0x20
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08050694
|
|
mov r0, sl
|
|
adds r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sl, r0
|
|
_08050694:
|
|
movs r0, #0xdf
|
|
ands r5, r0
|
|
ldr r1, _0805070C
|
|
movs r4, #0
|
|
movs r2, #0xfd
|
|
strb r2, [r1]
|
|
movs r0, #5
|
|
strb r0, [r1, #1]
|
|
strb r7, [r1, #2]
|
|
movs r3, #1
|
|
rsbs r3, r3, #0
|
|
mov ip, r3
|
|
movs r0, #0xff
|
|
strb r0, [r1, #3]
|
|
lsls r0, r6, #0x18
|
|
cmp r0, #0
|
|
blt _080506B8
|
|
b _0805099C
|
|
_080506B8:
|
|
ldr r4, _08050710
|
|
ldr r1, _08050704
|
|
ldrb r0, [r1]
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _08050758
|
|
mov r2, sb
|
|
cmp r2, #0
|
|
bne _08050758
|
|
ldr r0, _08050714
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xae
|
|
beq _08050788
|
|
cmp r5, #1
|
|
bne _08050778
|
|
ldr r4, _08050718
|
|
ldr r3, _08050704
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
beq _08050720
|
|
ldr r0, _0805071C
|
|
mov r4, r8
|
|
str r4, [r0]
|
|
b _08050778
|
|
.align 2, 0
|
|
_08050704: .4byte 0x02023D08
|
|
_08050708: .4byte 0x02023EB0
|
|
_0805070C: .4byte 0x02022C0C
|
|
_08050710: .4byte 0x02023F38
|
|
_08050714: .4byte 0x02023E8E
|
|
_08050718: .4byte 0x02024020
|
|
_0805071C: .4byte 0x02023EB8
|
|
_08050720:
|
|
mov r0, r8
|
|
bl BattleScriptPush
|
|
ldr r1, _08050748
|
|
ldr r6, _0805074C
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #0x17]
|
|
ldr r1, _08050750
|
|
ldr r0, _08050754
|
|
str r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08050778
|
|
.align 2, 0
|
|
_08050748: .4byte 0x02024118
|
|
_0805074C: .4byte 0x02023D08
|
|
_08050750: .4byte 0x02023EB8
|
|
_08050754: .4byte 0x0828938B
|
|
_08050758:
|
|
ldr r0, _0805077C
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xae
|
|
beq _08050788
|
|
mov r0, sl
|
|
cmp r0, #1
|
|
beq _08050788
|
|
movs r0, #0
|
|
bl JumpIfMoveAffectedByProtect
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08050788
|
|
ldr r1, _08050780
|
|
ldr r0, _08050784
|
|
str r0, [r1]
|
|
_08050778:
|
|
movs r0, #1
|
|
b _08050A90
|
|
.align 2, 0
|
|
_0805077C: .4byte 0x02023E8E
|
|
_08050780: .4byte 0x02023EB8
|
|
_08050784: .4byte 0x082884A4
|
|
_08050788:
|
|
ldr r2, _080507D0
|
|
ldr r1, _080507D4
|
|
ldrb r3, [r1]
|
|
movs r4, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r4, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
mov sl, r2
|
|
cmp r0, #0x1d
|
|
beq _080507A4
|
|
cmp r0, #0x49
|
|
bne _0805083C
|
|
_080507A4:
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
bne _0805083C
|
|
ldr r0, _080507D8
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xae
|
|
beq _0805083C
|
|
cmp r5, #1
|
|
bne _08050778
|
|
ldr r4, _080507DC
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
beq _080507E4
|
|
ldr r0, _080507E0
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
b _08050778
|
|
.align 2, 0
|
|
_080507D0: .4byte 0x02023D28
|
|
_080507D4: .4byte 0x02023D08
|
|
_080507D8: .4byte 0x02023E8E
|
|
_080507DC: .4byte 0x02024020
|
|
_080507E0: .4byte 0x02023EB8
|
|
_080507E4:
|
|
mov r0, r8
|
|
bl BattleScriptPush
|
|
ldr r1, _08050828
|
|
ldr r2, _0805082C
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, #0x17]
|
|
ldr r1, _08050830
|
|
ldr r0, _08050834
|
|
str r0, [r1]
|
|
ldr r1, _08050838
|
|
ldrb r0, [r2]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
ldr r6, _0805082C
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08050778
|
|
.align 2, 0
|
|
_08050828: .4byte 0x02024118
|
|
_0805082C: .4byte 0x02023D08
|
|
_08050830: .4byte 0x02023EB8
|
|
_08050834: .4byte 0x08289B4F
|
|
_08050838: .4byte 0x02023EAE
|
|
_0805083C:
|
|
ldr r1, _08050888
|
|
ldrb r0, [r1]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x33
|
|
bne _0805089C
|
|
mov r2, sb
|
|
cmp r2, #0
|
|
bne _0805089C
|
|
cmp r7, #6
|
|
bne _0805089C
|
|
cmp r5, #1
|
|
bne _08050778
|
|
mov r0, r8
|
|
bl BattleScriptPush
|
|
ldr r1, _0805088C
|
|
ldr r3, _08050888
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, #0x17]
|
|
ldr r1, _08050890
|
|
ldr r0, _08050894
|
|
str r0, [r1]
|
|
ldr r1, _08050898
|
|
ldrb r0, [r3]
|
|
muls r0, r4, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
b _08050778
|
|
.align 2, 0
|
|
_08050888: .4byte 0x02023D08
|
|
_0805088C: .4byte 0x02024118
|
|
_08050890: .4byte 0x02023EB8
|
|
_08050894: .4byte 0x08289BB7
|
|
_08050898: .4byte 0x02023EAE
|
|
_0805089C:
|
|
ldr r4, _080508EC
|
|
ldrb r0, [r4]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x34
|
|
bne _08050900
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
bne _08050900
|
|
cmp r7, #1
|
|
bne _08050900
|
|
cmp r5, #1
|
|
beq _080508BE
|
|
b _08050778
|
|
_080508BE:
|
|
mov r0, r8
|
|
bl BattleScriptPush
|
|
ldr r1, _080508F0
|
|
ldr r2, _080508EC
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, #0x17]
|
|
ldr r1, _080508F4
|
|
ldr r0, _080508F8
|
|
str r0, [r1]
|
|
ldr r1, _080508FC
|
|
ldrb r0, [r2]
|
|
muls r0, r4, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
b _08050778
|
|
.align 2, 0
|
|
_080508EC: .4byte 0x02023D08
|
|
_080508F0: .4byte 0x02024118
|
|
_080508F4: .4byte 0x02023EB8
|
|
_080508F8: .4byte 0x08289BB7
|
|
_080508FC: .4byte 0x02023EAE
|
|
_08050900:
|
|
ldr r3, _0805098C
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, sl
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x13
|
|
bne _08050918
|
|
cmp r5, #0
|
|
bne _08050918
|
|
b _08050778
|
|
_08050918:
|
|
lsls r0, r6, #0x18
|
|
asrs r0, r0, #0x1c
|
|
movs r1, #7
|
|
ands r0, r1
|
|
rsbs r0, r0, #0
|
|
lsls r0, r0, #0x18
|
|
ldr r3, _08050990
|
|
movs r4, #0
|
|
movs r1, #0xfd
|
|
strb r1, [r3]
|
|
movs r2, #1
|
|
lsrs r6, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
subs r1, #0xff
|
|
cmp r0, r1
|
|
bne _08050942
|
|
strb r4, [r3, #1]
|
|
movs r0, #0xd3
|
|
strb r0, [r3, #2]
|
|
strb r4, [r3, #3]
|
|
movs r2, #4
|
|
_08050942:
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, #1
|
|
adds r1, r2, r3
|
|
movs r0, #0xd4
|
|
strb r0, [r1]
|
|
adds r2, #1
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, #1
|
|
adds r1, r2, r3
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
ldr r4, _0805098C
|
|
ldrb r2, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r7, r0
|
|
mov r1, sl
|
|
adds r1, #0x18
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080509F2
|
|
movs r1, #0
|
|
ldr r0, _08050994
|
|
ldrb r0, [r0]
|
|
ldr r3, _08050998
|
|
mov r8, r3
|
|
cmp r0, r2
|
|
bne _08050986
|
|
movs r1, #1
|
|
_08050986:
|
|
mov r4, r8
|
|
strb r1, [r4, #5]
|
|
b _08050A20
|
|
.align 2, 0
|
|
_0805098C: .4byte 0x02023D08
|
|
_08050990: .4byte 0x02022C1C
|
|
_08050994: .4byte 0x02023EB0
|
|
_08050998: .4byte 0x02023FD6
|
|
_0805099C:
|
|
asrs r6, r0, #0x1c
|
|
movs r0, #7
|
|
ands r6, r0
|
|
ldr r3, _080509FC
|
|
strb r2, [r3]
|
|
movs r2, #1
|
|
cmp r6, #2
|
|
bne _080509B6
|
|
strb r4, [r3, #1]
|
|
movs r0, #0xd1
|
|
strb r0, [r3, #2]
|
|
strb r4, [r3, #3]
|
|
movs r2, #4
|
|
_080509B6:
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, #1
|
|
adds r1, r2, r3
|
|
movs r0, #0xd2
|
|
strb r0, [r1]
|
|
adds r2, #1
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, #1
|
|
adds r1, r2, r3
|
|
ldrb r0, [r1]
|
|
mov r2, ip
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, _08050A00
|
|
ldr r4, _08050A04
|
|
ldrb r3, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r0, r7, r0
|
|
adds r1, r2, #0
|
|
adds r1, #0x18
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
mov sl, r2
|
|
cmp r0, #0xc
|
|
bne _08050A0C
|
|
_080509F2:
|
|
ldr r1, _08050A08
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
mov r8, r1
|
|
b _08050A20
|
|
.align 2, 0
|
|
_080509FC: .4byte 0x02022C1C
|
|
_08050A00: .4byte 0x02023D28
|
|
_08050A04: .4byte 0x02023D08
|
|
_08050A08: .4byte 0x02023FD6
|
|
_08050A0C:
|
|
movs r1, #0
|
|
ldr r0, _08050AA0
|
|
ldrb r0, [r0]
|
|
ldr r2, _08050AA4
|
|
mov r8, r2
|
|
cmp r0, r3
|
|
bne _08050A1C
|
|
movs r1, #1
|
|
_08050A1C:
|
|
mov r3, r8
|
|
strb r1, [r3, #5]
|
|
_08050A20:
|
|
ldr r2, _08050AA8
|
|
ldrb r0, [r2]
|
|
movs r4, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r4, r1
|
|
adds r1, r7, r1
|
|
mov r3, sl
|
|
adds r3, #0x18
|
|
adds r1, r1, r3
|
|
lsls r0, r6, #0x18
|
|
asrs r0, r0, #0x18
|
|
ldrb r6, [r1]
|
|
adds r0, r0, r6
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
muls r0, r4, r0
|
|
adds r0, r7, r0
|
|
adds r1, r0, r3
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bge _08050A50
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
_08050A50:
|
|
ldr r1, _08050AA8
|
|
ldrb r0, [r1]
|
|
muls r0, r4, r0
|
|
adds r0, r7, r0
|
|
adds r1, r0, r3
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0xc
|
|
ble _08050A66
|
|
movs r0, #0xc
|
|
strb r0, [r1]
|
|
_08050A66:
|
|
mov r2, r8
|
|
ldrb r0, [r2, #5]
|
|
cmp r0, #2
|
|
bne _08050A8E
|
|
movs r3, #1
|
|
ands r3, r5
|
|
cmp r3, #0
|
|
beq _08050A80
|
|
ldr r0, _08050AAC
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08050A80:
|
|
mov r4, r8
|
|
ldrb r0, [r4, #5]
|
|
cmp r0, #2
|
|
bne _08050A8E
|
|
cmp r3, #0
|
|
bne _08050A8E
|
|
b _08050778
|
|
_08050A8E:
|
|
movs r0, #0
|
|
_08050A90:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08050AA0: .4byte 0x02023EB0
|
|
_08050AA4: .4byte 0x02023FD6
|
|
_08050AA8: .4byte 0x02023D08
|
|
_08050AAC: .4byte 0x02023F20
|
|
thumb_func_end ChangeStatBuffs
|
|
|
|
thumb_func_start atk89_statbuffchange
|
|
atk89_statbuffchange: @ 0x08050AB0
|
|
push {r4, r5, lr}
|
|
ldr r5, _08050AF4
|
|
ldr r2, [r5]
|
|
ldrb r3, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r3, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r3, r0
|
|
ldr r0, _08050AF8
|
|
ldrb r4, [r0, #0x1a]
|
|
movs r0, #0xf0
|
|
ands r0, r4
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
movs r1, #0xf
|
|
ands r1, r4
|
|
ldrb r2, [r2, #1]
|
|
bl ChangeStatBuffs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08050AEC
|
|
ldr r0, [r5]
|
|
adds r0, #6
|
|
str r0, [r5]
|
|
_08050AEC:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050AF4: .4byte 0x02023EB8
|
|
_08050AF8: .4byte 0x02024118
|
|
thumb_func_end atk89_statbuffchange
|
|
|
|
thumb_func_start atk8A_normalisebuffs
|
|
atk8A_normalisebuffs: @ 0x08050AFC
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r2, #0
|
|
ldr r0, _08050B44
|
|
ldrb r1, [r0]
|
|
ldr r0, _08050B48
|
|
mov ip, r0
|
|
cmp r2, r1
|
|
bge _08050B34
|
|
ldr r0, _08050B4C
|
|
movs r4, #6
|
|
adds r5, r1, #0
|
|
movs r7, #0x58
|
|
adds r6, r0, #0
|
|
adds r6, #0x18
|
|
_08050B18:
|
|
adds r3, r2, #1
|
|
movs r1, #7
|
|
adds r0, r2, #0
|
|
muls r0, r7, r0
|
|
adds r0, r0, r6
|
|
adds r0, #7
|
|
_08050B24:
|
|
strb r4, [r0]
|
|
subs r0, #1
|
|
subs r1, #1
|
|
cmp r1, #0
|
|
bge _08050B24
|
|
adds r2, r3, #0
|
|
cmp r2, r5
|
|
blt _08050B18
|
|
_08050B34:
|
|
mov r1, ip
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050B44: .4byte 0x02023D10
|
|
_08050B48: .4byte 0x02023EB8
|
|
_08050B4C: .4byte 0x02023D28
|
|
thumb_func_end atk8A_normalisebuffs
|
|
|
|
thumb_func_start atk8B_setbide
|
|
atk8B_setbide: @ 0x08050B50
|
|
push {r4, r5, lr}
|
|
ldr r4, _08050BA8
|
|
ldr r3, _08050BAC
|
|
ldrb r0, [r3]
|
|
movs r5, #0x58
|
|
adds r2, r0, #0
|
|
muls r2, r5, r2
|
|
adds r4, #0x50
|
|
adds r2, r2, r4
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08050BB0
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldr r1, _08050BB4
|
|
ldrh r1, [r1]
|
|
movs r2, #0
|
|
strh r1, [r0]
|
|
ldr r1, _08050BB8
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
str r2, [r0]
|
|
ldrb r0, [r3]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #2
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r1, _08050BBC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050BA8: .4byte 0x02023D28
|
|
_08050BAC: .4byte 0x02023EAF
|
|
_08050BB0: .4byte 0x02023F0C
|
|
_08050BB4: .4byte 0x02023E8E
|
|
_08050BB8: .4byte 0x02023E9C
|
|
_08050BBC: .4byte 0x02023EB8
|
|
thumb_func_end atk8B_setbide
|
|
|
|
thumb_func_start atk8C_confuseifrepeatingattackends
|
|
atk8C_confuseifrepeatingattackends: @ 0x08050BC0
|
|
push {lr}
|
|
ldr r1, _08050BF0
|
|
ldr r0, _08050BF4
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08050BE2
|
|
ldr r1, _08050BF8
|
|
movs r0, #0x75
|
|
strb r0, [r1, #3]
|
|
_08050BE2:
|
|
ldr r1, _08050BFC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050BF0: .4byte 0x02023D28
|
|
_08050BF4: .4byte 0x02023EAF
|
|
_08050BF8: .4byte 0x02023FD6
|
|
_08050BFC: .4byte 0x02023EB8
|
|
thumb_func_end atk8C_confuseifrepeatingattackends
|
|
|
|
thumb_func_start atk8D_setmultihitcounter
|
|
atk8D_setmultihitcounter: @ 0x08050C00
|
|
push {r4, r5, lr}
|
|
ldr r0, _08050C14
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #1]
|
|
cmp r1, #0
|
|
beq _08050C1C
|
|
ldr r0, _08050C18
|
|
strb r1, [r0]
|
|
b _08050C36
|
|
.align 2, 0
|
|
_08050C14: .4byte 0x02023EB8
|
|
_08050C18: .4byte 0x02023EB6
|
|
_08050C1C:
|
|
ldr r4, _08050C44
|
|
bl Random
|
|
movs r5, #3
|
|
ands r0, r5
|
|
strb r0, [r4]
|
|
cmp r0, #1
|
|
bls _08050C32
|
|
bl Random
|
|
ands r0, r5
|
|
_08050C32:
|
|
adds r0, #2
|
|
strb r0, [r4]
|
|
_08050C36:
|
|
ldr r1, _08050C48
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08050C44: .4byte 0x02023EB6
|
|
_08050C48: .4byte 0x02023EB8
|
|
thumb_func_end atk8D_setmultihitcounter
|
|
|
|
thumb_func_start atk8E_initmultihitstring
|
|
atk8E_initmultihitstring: @ 0x08050C4C
|
|
ldr r1, _08050C6C
|
|
movs r2, #0
|
|
movs r0, #0xfd
|
|
strb r0, [r1, #8]
|
|
movs r0, #1
|
|
strb r0, [r1, #9]
|
|
strb r0, [r1, #0xa]
|
|
strb r0, [r1, #0xb]
|
|
strb r2, [r1, #0xc]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #0xd]
|
|
ldr r1, _08050C70
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08050C6C: .4byte 0x02024118
|
|
_08050C70: .4byte 0x02023EB8
|
|
thumb_func_end atk8E_initmultihitstring
|
|
|
|
thumb_func_start TryDoForceSwitchOut
|
|
TryDoForceSwitchOut: @ 0x08050C74
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r6, _08050CA8
|
|
ldr r7, _08050CAC
|
|
ldrb r0, [r7]
|
|
movs r5, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r6
|
|
adds r1, #0x2a
|
|
ldr r4, _08050CB0
|
|
ldrb r3, [r4]
|
|
adds r0, r3, #0
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
blo _08050CBC
|
|
ldr r0, _08050CB4
|
|
ldr r1, [r0]
|
|
adds r1, r3, r1
|
|
adds r1, #0x58
|
|
ldr r2, _08050CB8
|
|
lsls r0, r3, #1
|
|
b _08050D18
|
|
.align 2, 0
|
|
_08050CA8: .4byte 0x02023D28
|
|
_08050CAC: .4byte 0x02023EAF
|
|
_08050CB0: .4byte 0x02023EB0
|
|
_08050CB4: .4byte 0x02024140
|
|
_08050CB8: .4byte 0x02023D12
|
|
_08050CBC:
|
|
bl Random
|
|
movs r3, #0xff
|
|
ands r3, r0
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r2, [r0]
|
|
ldrb r4, [r4]
|
|
adds r0, r4, #0
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r1, [r0]
|
|
adds r2, r2, r1
|
|
adds r0, r3, #0
|
|
muls r0, r2, r0
|
|
asrs r0, r0, #8
|
|
adds r0, #1
|
|
lsrs r1, r1, #2
|
|
cmp r0, r1
|
|
bhi _08050D0C
|
|
ldr r3, _08050D08
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
movs r0, #0
|
|
b _08050D26
|
|
.align 2, 0
|
|
_08050D08: .4byte 0x02023EB8
|
|
_08050D0C:
|
|
ldr r0, _08050D2C
|
|
ldr r1, [r0]
|
|
adds r1, r4, r1
|
|
adds r1, #0x58
|
|
ldr r2, _08050D30
|
|
lsls r0, r4, #1
|
|
_08050D18:
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, _08050D34
|
|
ldr r0, _08050D38
|
|
str r0, [r1]
|
|
movs r0, #1
|
|
_08050D26:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08050D2C: .4byte 0x02024140
|
|
_08050D30: .4byte 0x02023D12
|
|
_08050D34: .4byte 0x02023EB8
|
|
_08050D38: .4byte 0x08289360
|
|
thumb_func_end TryDoForceSwitchOut
|
|
|
|
thumb_func_start atk8F_forcerandomswitch
|
|
atk8F_forcerandomswitch: @ 0x08050D3C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
movs r0, #0
|
|
str r0, [sp, #4]
|
|
ldr r5, _08050DA8
|
|
ldr r0, [r5]
|
|
movs r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08050D5A
|
|
b _08051020
|
|
_08050D5A:
|
|
ldr r4, _08050DAC
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _08050DB0
|
|
str r1, [sp]
|
|
cmp r0, #0
|
|
bne _08050D70
|
|
ldr r0, _08050DB4
|
|
str r0, [sp]
|
|
_08050D70:
|
|
ldr r2, [r5]
|
|
movs r1, #0x81
|
|
lsls r1, r1, #1
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08050D92
|
|
ldr r1, _08050DB8
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08050D92
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08050DD8
|
|
_08050D92:
|
|
ldr r2, _08050DAC
|
|
ldrb r1, [r2]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
adds r1, r2, #0
|
|
cmp r0, #0
|
|
beq _08050DBC
|
|
movs r0, #3
|
|
mov sb, r0
|
|
movs r0, #6
|
|
b _08050DC2
|
|
.align 2, 0
|
|
_08050DA8: .4byte 0x02022C90
|
|
_08050DAC: .4byte 0x02023EB0
|
|
_08050DB0: .4byte 0x020243E8
|
|
_08050DB4: .4byte 0x02024190
|
|
_08050DB8: .4byte 0x02000100
|
|
_08050DBC:
|
|
movs r0, #0
|
|
mov sb, r0
|
|
movs r0, #3
|
|
_08050DC2:
|
|
mov r8, r0
|
|
movs r0, #3
|
|
mov sl, r0
|
|
movs r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r2, _08050DD4
|
|
ldrb r1, [r1]
|
|
b _08050E9E
|
|
.align 2, 0
|
|
_08050DD4: .4byte 0x02023D12
|
|
_08050DD8:
|
|
movs r0, #0x42
|
|
ands r0, r2
|
|
cmp r0, #0x42
|
|
beq _08050DEA
|
|
ldr r1, _08050E08
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
bne _08050E2C
|
|
_08050DEA:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetLinkTrainerFlankId
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #1
|
|
bne _08050E0C
|
|
movs r1, #3
|
|
mov sb, r1
|
|
movs r0, #6
|
|
b _08050E12
|
|
.align 2, 0
|
|
_08050E08: .4byte 0x02000040
|
|
_08050E0C:
|
|
movs r1, #0
|
|
mov sb, r1
|
|
movs r0, #3
|
|
_08050E12:
|
|
mov r8, r0
|
|
movs r1, #3
|
|
mov sl, r1
|
|
movs r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r2, _08050E24
|
|
ldr r0, _08050E28
|
|
ldrb r1, [r0]
|
|
b _08050E9E
|
|
.align 2, 0
|
|
_08050E24: .4byte 0x02023D12
|
|
_08050E28: .4byte 0x02023EB0
|
|
_08050E2C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #8
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08050E84
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08050E50
|
|
movs r1, #0
|
|
mov sb, r1
|
|
movs r0, #6
|
|
mov r8, r0
|
|
mov sl, r0
|
|
movs r1, #2
|
|
b _08050E70
|
|
_08050E50:
|
|
ldrb r1, [r4]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08050E62
|
|
movs r0, #3
|
|
mov sb, r0
|
|
movs r1, #6
|
|
b _08050E68
|
|
_08050E62:
|
|
movs r0, #0
|
|
mov sb, r0
|
|
movs r1, #3
|
|
_08050E68:
|
|
mov r8, r1
|
|
movs r0, #3
|
|
mov sl, r0
|
|
movs r1, #1
|
|
_08050E70:
|
|
str r1, [sp, #8]
|
|
ldr r2, _08050E7C
|
|
ldr r0, _08050E80
|
|
ldrb r1, [r0]
|
|
b _08050E9E
|
|
.align 2, 0
|
|
_08050E7C: .4byte 0x02023D12
|
|
_08050E80: .4byte 0x02023EB0
|
|
_08050E84:
|
|
movs r0, #1
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08050EB4
|
|
movs r0, #0
|
|
mov sb, r0
|
|
movs r1, #6
|
|
mov r8, r1
|
|
mov sl, r1
|
|
movs r0, #2
|
|
str r0, [sp, #8]
|
|
ldr r2, _08050EB0
|
|
ldrb r1, [r4]
|
|
_08050E9E:
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r7, [r0]
|
|
movs r0, #2
|
|
eors r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r5, [r1]
|
|
b _08050ECE
|
|
.align 2, 0
|
|
_08050EB0: .4byte 0x02023D12
|
|
_08050EB4:
|
|
movs r1, #0
|
|
mov sb, r1
|
|
movs r0, #6
|
|
mov r8, r0
|
|
mov sl, r0
|
|
movs r1, #1
|
|
str r1, [sp, #8]
|
|
ldr r1, _08050F30
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r5, [r0]
|
|
adds r7, r5, #0
|
|
_08050ECE:
|
|
mov r6, sb
|
|
cmp r6, r8
|
|
bge _08050F0C
|
|
_08050ED4:
|
|
movs r0, #0x64
|
|
muls r0, r6, r0
|
|
ldr r1, [sp]
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08050F06
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _08050F06
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08050F06
|
|
ldr r0, [sp, #4]
|
|
adds r0, #1
|
|
str r0, [sp, #4]
|
|
_08050F06:
|
|
adds r6, #1
|
|
cmp r6, r8
|
|
blt _08050ED4
|
|
_08050F0C:
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
cmp r1, r0
|
|
bgt _08050F38
|
|
ldr r3, _08050F34
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08051024
|
|
.align 2, 0
|
|
_08050F30: .4byte 0x02023D12
|
|
_08050F34: .4byte 0x02023EB8
|
|
_08050F38:
|
|
bl TryDoForceSwitchOut
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08050F88
|
|
_08050F42:
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r1, sl
|
|
bl __modsi3
|
|
adds r6, r0, #0
|
|
add r6, sb
|
|
cmp r6, r7
|
|
beq _08050F42
|
|
cmp r6, r5
|
|
beq _08050F42
|
|
movs r0, #0x64
|
|
muls r0, r6, r0
|
|
ldr r1, [sp]
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08050F42
|
|
adds r0, r4, #0
|
|
movs r1, #0x2d
|
|
bl GetMonData
|
|
cmp r0, #1
|
|
beq _08050F42
|
|
adds r0, r4, #0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08050F42
|
|
_08050F88:
|
|
ldr r4, _0805100C
|
|
ldrb r0, [r4]
|
|
ldr r1, _08051010
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r0, #0x5c
|
|
strb r6, [r0]
|
|
bl IsMultiBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08050FA6
|
|
ldrb r0, [r4]
|
|
bl sub_0803B9E4
|
|
_08050FA6:
|
|
ldr r0, _08051014
|
|
ldr r2, [r0]
|
|
movs r1, #0x81
|
|
lsls r1, r1, #1
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08050FD0
|
|
movs r0, #0x42
|
|
ands r0, r2
|
|
cmp r0, #0x42
|
|
beq _08050FD0
|
|
ldr r1, _08051018
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08050FD0
|
|
ldr r0, _0805101C
|
|
ands r2, r0
|
|
cmp r2, r0
|
|
bne _08050FEE
|
|
_08050FD0:
|
|
ldr r5, _0805100C
|
|
ldrb r0, [r5]
|
|
lsls r4, r6, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r1, r4, #0
|
|
movs r2, #0
|
|
bl sub_081B8B20
|
|
ldrb r1, [r5]
|
|
movs r0, #2
|
|
eors r0, r1
|
|
adds r1, r4, #0
|
|
movs r2, #1
|
|
bl sub_081B8B20
|
|
_08050FEE:
|
|
ldr r0, _08051014
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08051024
|
|
ldr r0, _0805100C
|
|
ldrb r0, [r0]
|
|
lsls r1, r6, #0x18
|
|
lsrs r1, r1, #0x18
|
|
bl sub_08056DEC
|
|
b _08051024
|
|
.align 2, 0
|
|
_0805100C: .4byte 0x02023EB0
|
|
_08051010: .4byte 0x02024140
|
|
_08051014: .4byte 0x02022C90
|
|
_08051018: .4byte 0x02000100
|
|
_0805101C: .4byte 0x02000040
|
|
_08051020:
|
|
bl TryDoForceSwitchOut
|
|
_08051024:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk8F_forcerandomswitch
|
|
|
|
thumb_func_start atk90_tryconversiontypechange
|
|
atk90_tryconversiontypechange: @ 0x08051034
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
movs r6, #0
|
|
ldr r2, _080510C8
|
|
ldr r3, _080510CC
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r2, #0
|
|
adds r1, #0xc
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, #0
|
|
beq _08051076
|
|
movs r5, #0x58
|
|
adds r2, r1, #0
|
|
_0805105C:
|
|
adds r0, r6, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #3
|
|
bhi _08051076
|
|
lsls r1, r6, #1
|
|
ldrb r0, [r3]
|
|
muls r0, r5, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0805105C
|
|
_08051076:
|
|
movs r3, #0
|
|
cmp r3, r6
|
|
bhs _080510F8
|
|
ldr r0, _080510D0
|
|
mov sl, r0
|
|
ldr r5, _080510C8
|
|
mov ip, r5
|
|
ldr r7, _080510CC
|
|
ldrb r0, [r7]
|
|
movs r4, #0x58
|
|
adds r5, r0, #0
|
|
muls r5, r4, r5
|
|
movs r0, #0xc
|
|
add r0, ip
|
|
mov sb, r0
|
|
_08051094:
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r5
|
|
add r0, sb
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, sl
|
|
ldrb r2, [r0, #2]
|
|
cmp r2, #9
|
|
bne _080510D6
|
|
mov r0, r8
|
|
adds r1, r5, r0
|
|
adds r0, r1, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
beq _080510C2
|
|
adds r0, r1, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bne _080510D4
|
|
_080510C2:
|
|
movs r2, #7
|
|
b _080510D6
|
|
.align 2, 0
|
|
_080510C8: .4byte 0x02023D28
|
|
_080510CC: .4byte 0x02023EAF
|
|
_080510D0: .4byte 0x082ED220
|
|
_080510D4:
|
|
movs r2, #0
|
|
_080510D6:
|
|
ldrb r0, [r7]
|
|
muls r0, r4, r0
|
|
add r0, ip
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _080510EE
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _080510F8
|
|
_080510EE:
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, r6
|
|
blo _08051094
|
|
_080510F8:
|
|
cmp r3, r6
|
|
bne _0805111C
|
|
ldr r3, _08051118
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080511C0
|
|
.align 2, 0
|
|
_08051118: .4byte 0x02023EB8
|
|
_0805111C:
|
|
movs r7, #3
|
|
ldr r5, _08051174
|
|
mov sb, r5
|
|
_08051122:
|
|
bl Random
|
|
adds r3, r0, #0
|
|
ands r3, r7
|
|
cmp r3, r6
|
|
bhs _08051122
|
|
ldr r4, _08051178
|
|
lsls r1, r3, #1
|
|
ldr r3, _0805117C
|
|
ldrb r2, [r3]
|
|
movs r0, #0x58
|
|
adds r5, r2, #0
|
|
muls r5, r0, r5
|
|
adds r1, r1, r5
|
|
adds r0, r4, #0
|
|
adds r0, #0xc
|
|
adds r1, r1, r0
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, sb
|
|
ldrb r2, [r0, #2]
|
|
mov r8, r4
|
|
adds r4, r3, #0
|
|
cmp r2, #9
|
|
bne _08051182
|
|
mov r0, r8
|
|
adds r2, r5, r0
|
|
adds r0, r2, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
beq _08051170
|
|
adds r0, r2, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bne _08051180
|
|
_08051170:
|
|
movs r2, #7
|
|
b _08051182
|
|
.align 2, 0
|
|
_08051174: .4byte 0x082ED220
|
|
_08051178: .4byte 0x02023D28
|
|
_0805117C: .4byte 0x02023EAF
|
|
_08051180:
|
|
movs r2, #0
|
|
_08051182:
|
|
ldrb r0, [r4]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
add r0, r8
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
beq _08051122
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
beq _08051122
|
|
strb r2, [r1]
|
|
ldrb r0, [r4]
|
|
muls r0, r3, r0
|
|
add r0, r8
|
|
adds r0, #0x22
|
|
strb r2, [r0]
|
|
ldr r1, _080511D0
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #3
|
|
strb r0, [r1, #1]
|
|
strb r2, [r1, #2]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #3]
|
|
ldr r1, _080511D4
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080511C0:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080511D0: .4byte 0x02022C0C
|
|
_080511D4: .4byte 0x02023EB8
|
|
thumb_func_end atk90_tryconversiontypechange
|
|
|
|
thumb_func_start atk91_givepaydaymoney
|
|
atk91_givepaydaymoney: @ 0x080511D8
|
|
push {r4, lr}
|
|
ldr r0, _08051240
|
|
ldr r0, [r0]
|
|
ldr r1, _08051244
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08051260
|
|
ldr r1, _08051248
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _08051260
|
|
adds r1, r0, #0
|
|
ldr r0, _0805124C
|
|
ldr r0, [r0]
|
|
adds r0, #0x4a
|
|
ldrb r0, [r0]
|
|
adds r4, r1, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08051250
|
|
ldr r0, [r0]
|
|
movs r1, #0x92
|
|
lsls r1, r1, #3
|
|
adds r0, r0, r1
|
|
adds r1, r4, #0
|
|
bl AddMoney
|
|
ldr r1, _08051254
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
strb r0, [r1, #1]
|
|
movs r0, #2
|
|
strb r0, [r1, #2]
|
|
movs r0, #5
|
|
strb r0, [r1, #3]
|
|
strb r4, [r1, #4]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r4, r0
|
|
lsrs r4, r4, #8
|
|
strb r4, [r1, #5]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #6]
|
|
ldr r4, _08051258
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
bl BattleScriptPush
|
|
ldr r0, _0805125C
|
|
str r0, [r4]
|
|
b _08051268
|
|
.align 2, 0
|
|
_08051240: .4byte 0x02022C90
|
|
_08051244: .4byte 0x02000002
|
|
_08051248: .4byte 0x02023FD2
|
|
_0805124C: .4byte 0x02024140
|
|
_08051250: .4byte 0x03005AEC
|
|
_08051254: .4byte 0x02022C0C
|
|
_08051258: .4byte 0x02023EB8
|
|
_0805125C: .4byte 0x0828988F
|
|
_08051260:
|
|
ldr r1, _08051270
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_08051268:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051270: .4byte 0x02023EB8
|
|
thumb_func_end atk91_givepaydaymoney
|
|
|
|
thumb_func_start atk92_setlightscreen
|
|
atk92_setlightscreen: @ 0x08051274
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _080512A4
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
ldr r4, _080512A8
|
|
movs r6, #1
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r1, [r1]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080512B4
|
|
ldr r2, _080512AC
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080512B0
|
|
movs r0, #0
|
|
b _08051328
|
|
.align 2, 0
|
|
_080512A4: .4byte 0x02023EAF
|
|
_080512A8: .4byte 0x02023F32
|
|
_080512AC: .4byte 0x02023F20
|
|
_080512B0: .4byte 0x02023FD6
|
|
_080512B4:
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, #2
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
ldr r4, _08051318
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #5
|
|
strb r1, [r0, #2]
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r1, [r5]
|
|
strb r1, [r0, #3]
|
|
ldr r0, _0805131C
|
|
ldr r0, [r0]
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
beq _08051324
|
|
movs r0, #1
|
|
bl CountAliveMonsInBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #2
|
|
bne _08051324
|
|
ldr r1, _08051320
|
|
movs r0, #4
|
|
b _08051328
|
|
.align 2, 0
|
|
_08051318: .4byte 0x02023F38
|
|
_0805131C: .4byte 0x02022C90
|
|
_08051320: .4byte 0x02023FD6
|
|
_08051324:
|
|
ldr r1, _08051338
|
|
movs r0, #3
|
|
_08051328:
|
|
strb r0, [r1, #5]
|
|
ldr r1, _0805133C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051338: .4byte 0x02023FD6
|
|
_0805133C: .4byte 0x02023EB8
|
|
thumb_func_end atk92_setlightscreen
|
|
|
|
thumb_func_start atk93_tryKO
|
|
atk93_tryKO: @ 0x08051340
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r7, _0805136C
|
|
ldr r6, _08051370
|
|
ldrb r2, [r6]
|
|
movs r5, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r5, r0
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, #0x2e]
|
|
cmp r0, #0xaf
|
|
bne _08051378
|
|
ldr r1, _08051374
|
|
lsls r0, r2, #3
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #7]
|
|
ldrb r6, [r0, #0x1a]
|
|
b _08051392
|
|
.align 2, 0
|
|
_0805136C: .4byte 0x02023D28
|
|
_08051370: .4byte 0x02023EB0
|
|
_08051374: .4byte 0x020240A8
|
|
_08051378:
|
|
ldrh r0, [r1, #0x2e]
|
|
bl sub_080D6CF8
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2e]
|
|
bl sub_080D6D1C
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_08051392:
|
|
ldr r1, _0805140C
|
|
ldr r5, _08051410
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, #0x27
|
|
bne _080513D0
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r6
|
|
bhs _080513D0
|
|
ldrb r0, [r5]
|
|
movs r1, #0x27
|
|
bl RecordItemEffectBattle
|
|
ldr r2, _08051414
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080513D0:
|
|
ldr r1, _08051418
|
|
ldr r2, _08051410
|
|
ldrb r3, [r2]
|
|
movs r6, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r6, r0
|
|
adds r5, r0, r1
|
|
adds r0, r5, #0
|
|
adds r0, #0x20
|
|
ldrb r4, [r0]
|
|
mov r8, r1
|
|
mov sb, r2
|
|
cmp r4, #5
|
|
bne _0805142C
|
|
ldr r2, _0805141C
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08051420
|
|
strb r4, [r0]
|
|
ldr r1, _08051424
|
|
ldr r0, _08051428
|
|
str r0, [r1]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
movs r1, #5
|
|
bl RecordAbilityBattle
|
|
b _08051680
|
|
.align 2, 0
|
|
_0805140C: .4byte 0x02023EB3
|
|
_08051410: .4byte 0x02023EB0
|
|
_08051414: .4byte 0x02024020
|
|
_08051418: .4byte 0x02023D28
|
|
_0805141C: .4byte 0x02023F20
|
|
_08051420: .4byte 0x02023EAE
|
|
_08051424: .4byte 0x02023EB8
|
|
_08051428: .4byte 0x08289ADA
|
|
_0805142C:
|
|
ldr r1, _080514A0
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080514B0
|
|
ldr r1, _080514A4
|
|
ldr r0, _080514A8
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r1
|
|
ldr r7, _080514AC
|
|
ldrb r0, [r7]
|
|
muls r0, r6, r0
|
|
add r0, r8
|
|
adds r0, #0x2a
|
|
ldrb r0, [r0]
|
|
adds r1, r5, #0
|
|
adds r1, #0x2a
|
|
ldrb r1, [r1]
|
|
subs r0, r0, r1
|
|
ldrb r2, [r2, #3]
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
adds r0, #1
|
|
cmp r0, r4
|
|
blt _08051480
|
|
b _08051618
|
|
_08051480:
|
|
ldrb r0, [r7]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
add r1, r8
|
|
adds r1, #0x2a
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
muls r0, r6, r0
|
|
add r0, r8
|
|
adds r0, #0x2a
|
|
ldrb r1, [r1]
|
|
movs r4, #1
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bhs _08051546
|
|
b _08051618
|
|
.align 2, 0
|
|
_080514A0: .4byte 0x02023F50
|
|
_080514A4: .4byte 0x082ED220
|
|
_080514A8: .4byte 0x02023E8E
|
|
_080514AC: .4byte 0x02023EAF
|
|
_080514B0:
|
|
ldr r1, _0805157C
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08051580
|
|
ldrb r0, [r0, #0x15]
|
|
adds r7, r1, #0
|
|
ldrb r3, [r7]
|
|
cmp r0, r3
|
|
bne _080514DA
|
|
ldrb r0, [r7]
|
|
muls r0, r6, r0
|
|
add r0, r8
|
|
adds r0, #0x2a
|
|
adds r1, r5, #0
|
|
adds r1, #0x2a
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _08051552
|
|
_080514DA:
|
|
ldr r1, _08051584
|
|
ldr r0, _08051588
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r1
|
|
ldr r6, _0805158C
|
|
ldrb r0, [r7]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r1, [r0]
|
|
ldr r0, _08051590
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r0, [r0]
|
|
subs r1, r1, r0
|
|
ldrb r2, [r2, #3]
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #0x10
|
|
lsrs r4, r1, #0x10
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
adds r0, #1
|
|
cmp r0, r4
|
|
bge _08051544
|
|
ldrb r0, [r7]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r6
|
|
adds r1, #0x2a
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
adds r0, #0x2a
|
|
ldrb r1, [r1]
|
|
movs r4, #1
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bhs _08051546
|
|
_08051544:
|
|
movs r4, #0
|
|
_08051546:
|
|
ldr r3, _0805158C
|
|
mov r8, r3
|
|
ldr r0, _08051590
|
|
mov sb, r0
|
|
cmp r4, #0
|
|
beq _08051618
|
|
_08051552:
|
|
ldr r0, _08051594
|
|
mov r1, sb
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
bge _080515A0
|
|
ldr r1, _08051598
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x28]
|
|
subs r0, #1
|
|
str r0, [r1]
|
|
ldr r2, _0805159C
|
|
ldrb r0, [r2]
|
|
movs r1, #0x40
|
|
b _080515FE
|
|
.align 2, 0
|
|
_0805157C: .4byte 0x02023F60
|
|
_08051580: .4byte 0x02023EAF
|
|
_08051584: .4byte 0x082ED220
|
|
_08051588: .4byte 0x02023E8E
|
|
_0805158C: .4byte 0x02023D28
|
|
_08051590: .4byte 0x02023EB0
|
|
_08051594: .4byte 0x02023FE0
|
|
_08051598: .4byte 0x02023E94
|
|
_0805159C: .4byte 0x02023F20
|
|
_080515A0:
|
|
ldr r0, _080515DC
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, r0, #7
|
|
cmp r0, #0
|
|
beq _080515EC
|
|
ldr r1, _080515E0
|
|
movs r3, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r3, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x28]
|
|
subs r0, #1
|
|
str r0, [r1]
|
|
ldr r2, _080515E4
|
|
ldrb r0, [r2]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080515E8
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
muls r0, r3, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r1]
|
|
b _08051602
|
|
.align 2, 0
|
|
_080515DC: .4byte 0x02024020
|
|
_080515E0: .4byte 0x02023E94
|
|
_080515E4: .4byte 0x02023F20
|
|
_080515E8: .4byte 0x02023EAC
|
|
_080515EC:
|
|
ldr r1, _0805160C
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x28]
|
|
str r0, [r1]
|
|
ldr r2, _08051610
|
|
ldrb r0, [r2]
|
|
movs r1, #0x10
|
|
_080515FE:
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08051602:
|
|
ldr r1, _08051614
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08051680
|
|
.align 2, 0
|
|
_0805160C: .4byte 0x02023E94
|
|
_08051610: .4byte 0x02023F20
|
|
_08051614: .4byte 0x02023EB8
|
|
_08051618:
|
|
ldr r2, _0805164C
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r3, _08051650
|
|
ldr r0, _08051654
|
|
ldrb r0, [r0]
|
|
movs r2, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r2, r1
|
|
adds r1, r1, r3
|
|
adds r1, #0x2a
|
|
ldr r0, _08051658
|
|
ldrb r0, [r0]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
adds r0, #0x2a
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
blo _08051660
|
|
ldr r1, _0805165C
|
|
movs r0, #0
|
|
b _08051664
|
|
.align 2, 0
|
|
_0805164C: .4byte 0x02023F20
|
|
_08051650: .4byte 0x02023D28
|
|
_08051654: .4byte 0x02023EAF
|
|
_08051658: .4byte 0x02023EB0
|
|
_0805165C: .4byte 0x02023FD6
|
|
_08051660:
|
|
ldr r1, _0805168C
|
|
movs r0, #1
|
|
_08051664:
|
|
strb r0, [r1, #5]
|
|
ldr r3, _08051690
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08051680:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805168C: .4byte 0x02023FD6
|
|
_08051690: .4byte 0x02023EB8
|
|
thumb_func_end atk93_tryKO
|
|
|
|
thumb_func_start atk94_damagetohalftargethp
|
|
atk94_damagetohalftargethp: @ 0x08051694
|
|
push {lr}
|
|
ldr r3, _080516C0
|
|
ldr r2, _080516C4
|
|
ldr r0, _080516C8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x28]
|
|
lsrs r0, r0, #1
|
|
str r0, [r3]
|
|
cmp r0, #0
|
|
bne _080516B2
|
|
movs r0, #1
|
|
str r0, [r3]
|
|
_080516B2:
|
|
ldr r1, _080516CC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080516C0: .4byte 0x02023E94
|
|
_080516C4: .4byte 0x02023D28
|
|
_080516C8: .4byte 0x02023EB0
|
|
_080516CC: .4byte 0x02023EB8
|
|
thumb_func_end atk94_damagetohalftargethp
|
|
|
|
thumb_func_start atk95_setsandstorm
|
|
atk95_setsandstorm: @ 0x080516D0
|
|
push {lr}
|
|
ldr r2, _080516F0
|
|
ldrh r1, [r2]
|
|
movs r0, #0x18
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080516FC
|
|
ldr r2, _080516F4
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080516F8
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
b _0805170E
|
|
.align 2, 0
|
|
_080516F0: .4byte 0x02024070
|
|
_080516F4: .4byte 0x02023F20
|
|
_080516F8: .4byte 0x02023FD6
|
|
_080516FC:
|
|
movs r0, #8
|
|
strh r0, [r2]
|
|
ldr r1, _0805171C
|
|
movs r0, #3
|
|
strb r0, [r1, #5]
|
|
ldr r0, _08051720
|
|
adds r0, #0x28
|
|
movs r1, #5
|
|
strb r1, [r0]
|
|
_0805170E:
|
|
ldr r1, _08051724
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805171C: .4byte 0x02023FD6
|
|
_08051720: .4byte 0x02024074
|
|
_08051724: .4byte 0x02023EB8
|
|
thumb_func_end atk95_setsandstorm
|
|
|
|
thumb_func_start atk96_weatherdamage
|
|
atk96_weatherdamage: @ 0x08051728
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08051746
|
|
b _08051858
|
|
_08051746:
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805175C
|
|
b _08051858
|
|
_0805175C:
|
|
ldr r2, _080517D0
|
|
ldrh r1, [r2]
|
|
movs r0, #0x18
|
|
ands r0, r1
|
|
adds r4, r2, #0
|
|
ldr r5, _080517D4
|
|
cmp r0, #0
|
|
beq _080517EA
|
|
ldr r0, _080517D8
|
|
ldrb r2, [r5]
|
|
movs r1, #0x58
|
|
muls r1, r2, r1
|
|
adds r3, r1, r0
|
|
adds r0, r3, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
beq _080517E4
|
|
cmp r0, #8
|
|
beq _080517E4
|
|
cmp r0, #4
|
|
beq _080517E4
|
|
adds r0, r3, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
beq _080517E4
|
|
cmp r0, #8
|
|
beq _080517E4
|
|
cmp r0, #4
|
|
beq _080517E4
|
|
adds r0, r3, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
beq _080517E4
|
|
ldr r0, _080517DC
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080517E4
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xb
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080517E4
|
|
ldr r1, _080517E0
|
|
ldrh r0, [r3, #0x2c]
|
|
lsrs r0, r0, #4
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _080517EA
|
|
movs r0, #1
|
|
b _080517E8
|
|
.align 2, 0
|
|
_080517D0: .4byte 0x02024070
|
|
_080517D4: .4byte 0x02023EAF
|
|
_080517D8: .4byte 0x02023D28
|
|
_080517DC: .4byte 0x02023F50
|
|
_080517E0: .4byte 0x02023E94
|
|
_080517E4:
|
|
ldr r1, _08051840
|
|
movs r0, #0
|
|
_080517E8:
|
|
str r0, [r1]
|
|
_080517EA:
|
|
ldrh r1, [r4]
|
|
movs r4, #0x80
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08051860
|
|
ldr r1, _08051844
|
|
ldrb r3, [r5]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r2, r0, r1
|
|
adds r0, r2, #0
|
|
adds r0, #0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf
|
|
beq _0805184C
|
|
adds r0, r2, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf
|
|
beq _0805184C
|
|
ldr r0, _08051848
|
|
lsls r1, r3, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r1, #0
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _0805184C
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xb
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0805184C
|
|
ldr r1, _08051840
|
|
ldrh r0, [r2, #0x2c]
|
|
lsrs r0, r0, #4
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _08051860
|
|
movs r0, #1
|
|
str r0, [r1]
|
|
b _08051860
|
|
.align 2, 0
|
|
_08051840: .4byte 0x02023E94
|
|
_08051844: .4byte 0x02023D28
|
|
_08051848: .4byte 0x02023F50
|
|
_0805184C:
|
|
ldr r1, _08051854
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
b _08051860
|
|
.align 2, 0
|
|
_08051854: .4byte 0x02023E94
|
|
_08051858:
|
|
ldr r1, _0805188C
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
ldr r5, _08051890
|
|
_08051860:
|
|
ldr r0, _08051894
|
|
ldrb r1, [r0]
|
|
ldr r2, _08051898
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0805187A
|
|
ldr r1, _0805188C
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
_0805187A:
|
|
ldr r1, _0805189C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805188C: .4byte 0x02023E94
|
|
_08051890: .4byte 0x02023EAF
|
|
_08051894: .4byte 0x02023EB4
|
|
_08051898: .4byte 0x082FACB4
|
|
_0805189C: .4byte 0x02023EB8
|
|
thumb_func_end atk96_weatherdamage
|
|
|
|
thumb_func_start atk97_tryinfatuating
|
|
atk97_tryinfatuating: @ 0x080518A0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r4, _080518CC
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080518D8
|
|
ldr r1, _080518D0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _080518D4
|
|
b _080518E8
|
|
.align 2, 0
|
|
_080518CC: .4byte 0x02023EAF
|
|
_080518D0: .4byte 0x02023D12
|
|
_080518D4: .4byte 0x02024190
|
|
_080518D8:
|
|
ldr r1, _0805190C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _08051910
|
|
_080518E8:
|
|
adds r5, r1, r0
|
|
ldr r4, _08051914
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805191C
|
|
ldr r1, _0805190C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _08051918
|
|
b _0805192C
|
|
.align 2, 0
|
|
_0805190C: .4byte 0x02023D12
|
|
_08051910: .4byte 0x020243E8
|
|
_08051914: .4byte 0x02023EB0
|
|
_08051918: .4byte 0x02024190
|
|
_0805191C:
|
|
ldr r1, _08051988
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0805198C
|
|
_0805192C:
|
|
adds r4, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sl, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
mov sb, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r7, r0, #0
|
|
ldr r5, _08051990
|
|
ldrb r0, [r5]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
ldr r1, _08051994
|
|
adds r0, r0, r1
|
|
adds r0, #0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, #0xc
|
|
bne _080519A4
|
|
ldr r1, _08051998
|
|
ldr r0, _0805199C
|
|
str r0, [r1]
|
|
ldr r0, _080519A0
|
|
strb r2, [r0]
|
|
ldrb r0, [r5]
|
|
movs r1, #0xc
|
|
bl RecordAbilityBattle
|
|
b _08051A3C
|
|
.align 2, 0
|
|
_08051988: .4byte 0x02023D12
|
|
_0805198C: .4byte 0x020243E8
|
|
_08051990: .4byte 0x02023EB0
|
|
_08051994: .4byte 0x02023D28
|
|
_08051998: .4byte 0x02023EB8
|
|
_0805199C: .4byte 0x08289B7D
|
|
_080519A0: .4byte 0x02023EAE
|
|
_080519A4:
|
|
mov r0, sl
|
|
mov r1, sb
|
|
bl GetGenderFromSpeciesAndPersonality
|
|
adds r4, r0, #0
|
|
mov r0, r8
|
|
adds r1, r7, #0
|
|
bl GetGenderFromSpeciesAndPersonality
|
|
lsls r4, r4, #0x18
|
|
lsls r0, r0, #0x18
|
|
cmp r4, r0
|
|
beq _080519F4
|
|
ldrb r0, [r5]
|
|
muls r0, r6, r0
|
|
ldr r4, _08051A10
|
|
adds r4, #0x50
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, #0xf0
|
|
lsls r1, r1, #0xc
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080519F4
|
|
mov r0, sl
|
|
mov r1, sb
|
|
bl GetGenderFromSpeciesAndPersonality
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
beq _080519F4
|
|
mov r0, r8
|
|
adds r1, r7, #0
|
|
bl GetGenderFromSpeciesAndPersonality
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _08051A18
|
|
_080519F4:
|
|
ldr r3, _08051A14
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08051A3C
|
|
.align 2, 0
|
|
_08051A10: .4byte 0x02023D28
|
|
_08051A14: .4byte 0x02023EB8
|
|
_08051A18:
|
|
ldrb r0, [r5]
|
|
adds r2, r0, #0
|
|
muls r2, r6, r2
|
|
adds r2, r2, r4
|
|
ldr r1, _08051A4C
|
|
ldr r0, _08051A50
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, r1, #0x10
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08051A54
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08051A3C:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051A4C: .4byte 0x082FACB4
|
|
_08051A50: .4byte 0x02023EAF
|
|
_08051A54: .4byte 0x02023EB8
|
|
thumb_func_end atk97_tryinfatuating
|
|
|
|
thumb_func_start atk98_updatestatusicon
|
|
atk98_updatestatusicon: @ 0x08051A58
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r0, _08051AA0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _08051B44
|
|
ldr r5, _08051AA4
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #4
|
|
beq _08051AB0
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _08051AA8
|
|
strb r0, [r4]
|
|
ldr r3, _08051AAC
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
adds r0, r3, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, #0x50
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitStatusIconUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
b _08051B44
|
|
.align 2, 0
|
|
_08051AA0: .4byte 0x02023D0C
|
|
_08051AA4: .4byte 0x02023EB8
|
|
_08051AA8: .4byte 0x02023D08
|
|
_08051AAC: .4byte 0x02023D28
|
|
_08051AB0:
|
|
ldr r4, _08051B4C
|
|
ldr r5, _08051B50
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
ldr r6, _08051B54
|
|
ldrb r1, [r6]
|
|
ldr r7, _08051B58
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08051AEC
|
|
ldr r3, _08051B5C
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r0, r3, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, #0x50
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitStatusIconUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_08051AEC:
|
|
ldr r0, _08051B60
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08051B3C
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r4]
|
|
ldrb r1, [r6]
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08051B3C
|
|
ldr r3, _08051B5C
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r0, r3, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, #0x50
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, #0
|
|
bl BtlController_EmitStatusIconUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_08051B3C:
|
|
ldr r1, _08051B64
|
|
ldr r0, [r1]
|
|
adds r0, #2
|
|
str r0, [r1]
|
|
_08051B44:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051B4C: .4byte 0x02023D08
|
|
_08051B50: .4byte 0x02023EAF
|
|
_08051B54: .4byte 0x02023EB4
|
|
_08051B58: .4byte 0x082FACB4
|
|
_08051B5C: .4byte 0x02023D28
|
|
_08051B60: .4byte 0x02022C90
|
|
_08051B64: .4byte 0x02023EB8
|
|
thumb_func_end atk98_updatestatusicon
|
|
|
|
thumb_func_start atk99_setmist
|
|
atk99_setmist: @ 0x08051B68
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08051B98
|
|
ldr r4, _08051B9C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
movs r5, #1
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _08051BA8
|
|
ldr r2, _08051BA0
|
|
ldrb r0, [r2]
|
|
movs r1, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08051BA4
|
|
strb r5, [r0, #5]
|
|
b _08051BF6
|
|
.align 2, 0
|
|
_08051B98: .4byte 0x02023F38
|
|
_08051B9C: .4byte 0x02023EAF
|
|
_08051BA0: .4byte 0x02023F20
|
|
_08051BA4: .4byte 0x02023FD6
|
|
_08051BA8:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
movs r1, #5
|
|
strb r1, [r0, #4]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r1, [r4]
|
|
strb r1, [r0, #5]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
ldr r2, _08051C04
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #1
|
|
adds r0, r3, #0
|
|
movs r3, #0
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldr r0, _08051C08
|
|
strb r3, [r0, #5]
|
|
_08051BF6:
|
|
ldr r1, _08051C0C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051C04: .4byte 0x02023F32
|
|
_08051C08: .4byte 0x02023FD6
|
|
_08051C0C: .4byte 0x02023EB8
|
|
thumb_func_end atk99_setmist
|
|
|
|
thumb_func_start atk9A_setfocusenergy
|
|
atk9A_setfocusenergy: @ 0x08051C10
|
|
push {lr}
|
|
ldr r1, _08051C40
|
|
ldr r0, _08051C44
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #0xd
|
|
adds r2, r1, #0
|
|
ands r2, r3
|
|
cmp r2, #0
|
|
beq _08051C50
|
|
ldr r2, _08051C48
|
|
ldrb r0, [r2]
|
|
movs r1, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08051C4C
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _08051C58
|
|
.align 2, 0
|
|
_08051C40: .4byte 0x02023D28
|
|
_08051C44: .4byte 0x02023EAF
|
|
_08051C48: .4byte 0x02023F20
|
|
_08051C4C: .4byte 0x02023FD6
|
|
_08051C50:
|
|
orrs r1, r3
|
|
str r1, [r0]
|
|
ldr r0, _08051C64
|
|
strb r2, [r0, #5]
|
|
_08051C58:
|
|
ldr r1, _08051C68
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051C64: .4byte 0x02023FD6
|
|
_08051C68: .4byte 0x02023EB8
|
|
thumb_func_end atk9A_setfocusenergy
|
|
|
|
thumb_func_start atk9B_transformdataexecution
|
|
atk9B_transformdataexecution: @ 0x08051C6C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, _08051CC4
|
|
ldr r2, _08051CC8
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r1, _08051CCC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
ldr r7, _08051CD0
|
|
ldr r0, _08051CD4
|
|
mov ip, r0
|
|
ldrb r1, [r0]
|
|
movs r6, #0x58
|
|
adds r0, r1, #0
|
|
muls r0, r6, r0
|
|
adds r5, r7, #0
|
|
adds r5, #0x50
|
|
adds r0, r0, r5
|
|
ldr r0, [r0]
|
|
movs r4, #0x80
|
|
lsls r4, r4, #0xe
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _08051CB2
|
|
ldr r0, _08051CD8
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r2, [r1]
|
|
ldr r0, _08051CDC
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08051CE8
|
|
_08051CB2:
|
|
ldr r2, _08051CE0
|
|
ldrb r0, [r2]
|
|
movs r1, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08051CE4
|
|
movs r0, #1
|
|
b _08051DFC
|
|
.align 2, 0
|
|
_08051CC4: .4byte 0x02023E90
|
|
_08051CC8: .4byte 0x0000FFFF
|
|
_08051CCC: .4byte 0x02023EB8
|
|
_08051CD0: .4byte 0x02023D28
|
|
_08051CD4: .4byte 0x02023EB0
|
|
_08051CD8: .4byte 0x02023F50
|
|
_08051CDC: .4byte 0x000400C0
|
|
_08051CE0: .4byte 0x02023F20
|
|
_08051CE4: .4byte 0x02023FD6
|
|
_08051CE8:
|
|
ldr r3, _08051DBC
|
|
ldrb r0, [r3]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
adds r1, r1, r5
|
|
ldr r0, [r1]
|
|
orrs r0, r4
|
|
str r0, [r1]
|
|
ldr r4, _08051DC0
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
strh r2, [r0, #4]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r2, [r1, #0xb]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #0xb]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
mov r2, ip
|
|
ldrb r1, [r2]
|
|
muls r1, r6, r1
|
|
adds r2, r7, #0
|
|
adds r2, #0x48
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldrb r2, [r1, #0x18]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
strb r0, [r1, #0x18]
|
|
ldr r1, _08051DC4
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #6
|
|
strb r0, [r1, #1]
|
|
mov r2, ip
|
|
ldrb r0, [r2]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r2]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldrb r0, [r3]
|
|
muls r0, r6, r0
|
|
adds r5, r0, r7
|
|
ldrb r0, [r2]
|
|
muls r0, r6, r0
|
|
adds r2, r0, r7
|
|
movs r4, #0
|
|
adds r6, r3, #0
|
|
ldr r0, _08051DC8
|
|
mov r8, r0
|
|
_08051D80:
|
|
adds r0, r5, r4
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r4, #1
|
|
cmp r4, #0x23
|
|
bls _08051D80
|
|
movs r4, #0
|
|
ldr r7, _08051DCC
|
|
ldr r3, _08051DD0
|
|
adds r5, r3, #0
|
|
adds r5, #0x18
|
|
_08051D98:
|
|
lsls r1, r4, #1
|
|
ldrb r2, [r6]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, r1, r2
|
|
adds r1, r1, r3
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r7
|
|
ldrb r1, [r0, #4]
|
|
cmp r1, #4
|
|
bhi _08051DD4
|
|
adds r0, r4, r2
|
|
adds r0, r0, r5
|
|
b _08051DDA
|
|
.align 2, 0
|
|
_08051DBC: .4byte 0x02023EAF
|
|
_08051DC0: .4byte 0x02023F60
|
|
_08051DC4: .4byte 0x02022C0C
|
|
_08051DC8: .4byte 0x02023D08
|
|
_08051DCC: .4byte 0x082ED220
|
|
_08051DD0: .4byte 0x02023D34
|
|
_08051DD4:
|
|
adds r0, r4, r2
|
|
adds r0, r0, r5
|
|
movs r1, #5
|
|
_08051DDA:
|
|
strb r1, [r0]
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
ble _08051D98
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
bl BtlController_EmitResetActionMoveSelection
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08051E08
|
|
movs r0, #0
|
|
_08051DFC:
|
|
strb r0, [r1, #5]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051E08: .4byte 0x02023FD6
|
|
thumb_func_end atk9B_transformdataexecution
|
|
|
|
thumb_func_start atk9C_setsubstitute
|
|
atk9C_setsubstitute: @ 0x08051E0C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r7, _08051E3C
|
|
ldr r6, _08051E40
|
|
ldrb r0, [r6]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r3, r0, r7
|
|
ldrh r0, [r3, #0x2c]
|
|
lsrs r1, r0, #2
|
|
adds r2, r1, #0
|
|
cmp r1, #0
|
|
bne _08051E26
|
|
movs r2, #1
|
|
_08051E26:
|
|
ldrh r0, [r3, #0x28]
|
|
cmp r0, r2
|
|
bhi _08051E4C
|
|
ldr r1, _08051E44
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
ldr r1, _08051E48
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _08051EA0
|
|
.align 2, 0
|
|
_08051E3C: .4byte 0x02023D28
|
|
_08051E40: .4byte 0x02023EAF
|
|
_08051E44: .4byte 0x02023E94
|
|
_08051E48: .4byte 0x02023FD6
|
|
_08051E4C:
|
|
ldr r4, _08051EB0
|
|
str r1, [r4]
|
|
cmp r1, #0
|
|
bne _08051E58
|
|
movs r0, #1
|
|
str r0, [r4]
|
|
_08051E58:
|
|
ldrb r0, [r6]
|
|
adds r2, r0, #0
|
|
muls r2, r5, r2
|
|
adds r3, r7, #0
|
|
adds r3, #0x50
|
|
adds r2, r2, r3
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r3
|
|
ldr r0, [r1]
|
|
ldr r2, _08051EB4
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldr r2, _08051EB8
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r1, [r4]
|
|
movs r2, #0
|
|
strb r1, [r0, #0xa]
|
|
ldr r0, _08051EBC
|
|
strb r2, [r0, #5]
|
|
ldr r2, _08051EC0
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_08051EA0:
|
|
ldr r1, _08051EC4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08051EB0: .4byte 0x02023E94
|
|
_08051EB4: .4byte 0xFFFF1FFF
|
|
_08051EB8: .4byte 0x02023F60
|
|
_08051EBC: .4byte 0x02023FD6
|
|
_08051EC0: .4byte 0x02023F24
|
|
_08051EC4: .4byte 0x02023EB8
|
|
thumb_func_end atk9C_setsubstitute
|
|
|
|
thumb_func_start IsMoveUncopyableByMimic
|
|
IsMoveUncopyableByMimic: @ 0x08051EC8
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x10
|
|
lsrs r2, r0, #0x10
|
|
movs r3, #0
|
|
ldr r0, _08051F08
|
|
ldrh r1, [r0]
|
|
ldr r4, _08051F0C
|
|
adds r5, r0, #0
|
|
cmp r1, r4
|
|
beq _08051EF0
|
|
cmp r1, r2
|
|
beq _08051EF0
|
|
adds r1, r5, #0
|
|
_08051EE2:
|
|
adds r1, #2
|
|
adds r3, #1
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
beq _08051EF0
|
|
cmp r0, r2
|
|
bne _08051EE2
|
|
_08051EF0:
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0]
|
|
ldr r0, _08051F0C
|
|
eors r1, r0
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r0, r0, #0x1f
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08051F08: .4byte 0x082ECD64
|
|
_08051F0C: .4byte 0x0000FFFE
|
|
thumb_func_end IsMoveUncopyableByMimic
|
|
|
|
thumb_func_start atk9D_mimicattackcopy
|
|
atk9D_mimicattackcopy: @ 0x08051F10
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r0, _08051F88
|
|
ldr r1, _08051F8C
|
|
adds r7, r1, #0
|
|
strh r7, [r0]
|
|
ldr r5, _08051F90
|
|
ldr r6, _08051F94
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
bl IsMoveUncopyableByMimic
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08051F6A
|
|
ldr r3, _08051F98
|
|
ldr r2, _08051F9C
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
adds r4, r1, #0
|
|
muls r4, r0, r4
|
|
adds r0, r3, #0
|
|
adds r0, #0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xe
|
|
ands r1, r0
|
|
mov ip, r3
|
|
mov sb, r2
|
|
cmp r1, #0
|
|
bne _08051F6A
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _08051F6A
|
|
cmp r1, r7
|
|
bne _08051FA4
|
|
_08051F6A:
|
|
ldr r3, _08051FA0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080520DC
|
|
.align 2, 0
|
|
_08051F88: .4byte 0x02023E90
|
|
_08051F8C: .4byte 0x0000FFFF
|
|
_08051F90: .4byte 0x02023EEC
|
|
_08051F94: .4byte 0x02023EB0
|
|
_08051F98: .4byte 0x02023D28
|
|
_08051F9C: .4byte 0x02023EAF
|
|
_08051FA0: .4byte 0x02023EB8
|
|
_08051FA4:
|
|
movs r2, #0
|
|
mov r3, ip
|
|
adds r3, #0xc
|
|
adds r0, r4, r3
|
|
ldrh r0, [r0]
|
|
ldr r4, _08052034
|
|
mov sl, r4
|
|
cmp r0, r1
|
|
beq _08051FDE
|
|
mov r8, r3
|
|
adds r7, r5, #0
|
|
adds r5, r6, #0
|
|
mov r4, sb
|
|
movs r3, #0x58
|
|
_08051FC0:
|
|
adds r2, #1
|
|
cmp r2, #3
|
|
bgt _08051FDE
|
|
lsls r1, r2, #1
|
|
ldrb r0, [r4]
|
|
muls r0, r3, r0
|
|
adds r1, r1, r0
|
|
add r1, r8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r1, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08051FC0
|
|
_08051FDE:
|
|
cmp r2, #4
|
|
bne _080520C0
|
|
ldr r5, _08052038
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #1
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
adds r1, r1, r0
|
|
mov r0, ip
|
|
adds r0, #0xc
|
|
adds r1, r1, r0
|
|
ldr r2, _0805203C
|
|
ldr r3, _08052040
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r4, _08052044
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r4, [r0, #4]
|
|
cmp r4, #4
|
|
bhi _08052048
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
muls r0, r6, r0
|
|
ldrb r1, [r5]
|
|
adds r0, r0, r1
|
|
mov r1, ip
|
|
adds r1, #0x24
|
|
adds r0, r0, r1
|
|
strb r4, [r0]
|
|
b _0805205C
|
|
.align 2, 0
|
|
_08052034: .4byte 0x02023EB8
|
|
_08052038: .4byte 0x02023E8C
|
|
_0805203C: .4byte 0x02023EEC
|
|
_08052040: .4byte 0x02023EB0
|
|
_08052044: .4byte 0x082ED220
|
|
_08052048:
|
|
mov r4, sb
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
ldrb r1, [r5]
|
|
adds r0, r0, r1
|
|
mov r1, ip
|
|
adds r1, #0x24
|
|
adds r0, r0, r1
|
|
movs r1, #5
|
|
strb r1, [r0]
|
|
_0805205C:
|
|
ldr r1, _080520B4
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _080520B8
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r2, r0, #3
|
|
subs r2, r2, r0
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r1
|
|
ldrb r4, [r2, #0x18]
|
|
lsrs r3, r4, #4
|
|
ldr r1, _080520BC
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
orrs r1, r3
|
|
lsls r1, r1, #4
|
|
movs r0, #0xf
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
mov r4, sl
|
|
ldr r0, [r4]
|
|
adds r0, #5
|
|
str r0, [r4]
|
|
b _080520DC
|
|
.align 2, 0
|
|
_080520B4: .4byte 0x02022C0C
|
|
_080520B8: .4byte 0x02023F60
|
|
_080520BC: .4byte 0x082FACB4
|
|
_080520C0:
|
|
mov r0, sl
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
mov r2, sl
|
|
str r1, [r2]
|
|
_080520DC:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atk9D_mimicattackcopy
|
|
|
|
thumb_func_start atk9E_metronome
|
|
atk9E_metronome: @ 0x080520EC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r7, _0805216C
|
|
movs r6, #0xb1
|
|
lsls r6, r6, #1
|
|
ldr r5, _08052170
|
|
ldr r0, _08052174
|
|
mov r8, r0
|
|
_080520FE:
|
|
bl Random
|
|
ldr r2, _08052178
|
|
adds r1, r2, #0
|
|
ands r0, r1
|
|
adds r0, #1
|
|
strh r0, [r7]
|
|
cmp r0, r6
|
|
bhi _080520FE
|
|
movs r0, #3
|
|
_08052112:
|
|
subs r0, #1
|
|
cmp r0, #0
|
|
bge _08052112
|
|
ldr r4, _0805216C
|
|
ldrh r2, [r4]
|
|
ldr r3, _0805217C
|
|
subs r0, r5, #2
|
|
_08052120:
|
|
adds r0, #2
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
beq _0805212C
|
|
cmp r1, r3
|
|
bne _08052120
|
|
_0805212C:
|
|
ldr r0, _0805217C
|
|
cmp r1, r0
|
|
bne _080520FE
|
|
ldr r2, _08052180
|
|
ldr r0, [r2]
|
|
ldr r1, _08052184
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r3, _08052188
|
|
ldr r2, _0805218C
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldrh r0, [r4]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _08052190
|
|
strb r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805216C: .4byte 0x02023E8E
|
|
_08052170: .4byte 0x082ECD64
|
|
_08052174: .4byte 0x02023EB8
|
|
_08052178: .4byte 0x000001FF
|
|
_0805217C: .4byte 0x0000FFFF
|
|
_08052180: .4byte 0x02023F24
|
|
_08052184: .4byte 0xFFFFFBFF
|
|
_08052188: .4byte 0x08286C30
|
|
_0805218C: .4byte 0x082ED220
|
|
_08052190: .4byte 0x02023EB0
|
|
thumb_func_end atk9E_metronome
|
|
|
|
thumb_func_start atk9F_dmgtolevel
|
|
atk9F_dmgtolevel: @ 0x08052194
|
|
ldr r3, _080521B4
|
|
ldr r2, _080521B8
|
|
ldr r0, _080521BC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2a
|
|
ldrb r0, [r0]
|
|
str r0, [r3]
|
|
ldr r1, _080521C0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080521B4: .4byte 0x02023E94
|
|
_080521B8: .4byte 0x02023D28
|
|
_080521BC: .4byte 0x02023EAF
|
|
_080521C0: .4byte 0x02023EB8
|
|
thumb_func_end atk9F_dmgtolevel
|
|
|
|
thumb_func_start atkA0_psywavedamageeffect
|
|
atkA0_psywavedamageeffect: @ 0x080521C4
|
|
push {r4, lr}
|
|
movs r4, #0xf
|
|
_080521C8:
|
|
bl Random
|
|
adds r3, r4, #0
|
|
ands r3, r0
|
|
cmp r3, #0xa
|
|
bgt _080521C8
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r3, r0, #1
|
|
ldr r4, _08052208
|
|
ldr r2, _0805220C
|
|
ldr r0, _08052210
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2a
|
|
ldrb r1, [r0]
|
|
adds r0, r3, #0
|
|
adds r0, #0x32
|
|
muls r0, r1, r0
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
ldr r1, _08052214
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052208: .4byte 0x02023E94
|
|
_0805220C: .4byte 0x02023D28
|
|
_08052210: .4byte 0x02023EAF
|
|
_08052214: .4byte 0x02023EB8
|
|
thumb_func_end atkA0_psywavedamageeffect
|
|
|
|
thumb_func_start atkA1_counterdamagecalculator
|
|
atkA1_counterdamagecalculator: @ 0x08052218
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _08052288
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r5, _0805228C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #0xc]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #4
|
|
adds r0, r5, #4
|
|
adds r0, r1, r0
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _080522CC
|
|
cmp r6, r2
|
|
beq _080522CC
|
|
ldr r6, _08052290
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0, #0xc]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _080522CC
|
|
ldr r1, _08052294
|
|
lsls r0, r3, #1
|
|
str r0, [r1]
|
|
ldr r1, _08052298
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, #8]
|
|
cmp r0, #0
|
|
beq _080522A0
|
|
ldrb r1, [r1, #9]
|
|
adds r0, r1, #0
|
|
muls r0, r4, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _080522A0
|
|
ldr r0, _0805229C
|
|
strb r1, [r0]
|
|
b _080522B0
|
|
.align 2, 0
|
|
_08052288: .4byte 0x02023EAF
|
|
_0805228C: .4byte 0x02023FE0
|
|
_08052290: .4byte 0x02023D28
|
|
_08052294: .4byte 0x02023E94
|
|
_08052298: .4byte 0x02023F38
|
|
_0805229C: .4byte 0x02023EB0
|
|
_080522A0:
|
|
ldr r2, _080522BC
|
|
ldr r1, _080522C0
|
|
ldr r0, _080522C4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #0xc]
|
|
strb r0, [r2]
|
|
_080522B0:
|
|
ldr r1, _080522C8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _080522FC
|
|
.align 2, 0
|
|
_080522BC: .4byte 0x02023EB0
|
|
_080522C0: .4byte 0x02023FE0
|
|
_080522C4: .4byte 0x02023EAF
|
|
_080522C8: .4byte 0x02023EB8
|
|
_080522CC:
|
|
ldr r2, _08052304
|
|
ldr r0, _08052308
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, _0805230C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080522FC:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052304: .4byte 0x02024020
|
|
_08052308: .4byte 0x02023EAF
|
|
_0805230C: .4byte 0x02023EB8
|
|
thumb_func_end atkA1_counterdamagecalculator
|
|
|
|
thumb_func_start atkA2_mirrorcoatdamagecalculator
|
|
atkA2_mirrorcoatdamagecalculator: @ 0x08052310
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _08052380
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r5, _08052384
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #0xd]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #4
|
|
adds r0, r5, #0
|
|
adds r0, #8
|
|
adds r0, r1, r0
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _080523C4
|
|
cmp r6, r2
|
|
beq _080523C4
|
|
ldr r6, _08052388
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0, #0xd]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _080523C4
|
|
ldr r1, _0805238C
|
|
lsls r0, r3, #1
|
|
str r0, [r1]
|
|
ldr r1, _08052390
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, #8]
|
|
cmp r0, #0
|
|
beq _08052398
|
|
ldrb r1, [r1, #9]
|
|
adds r0, r1, #0
|
|
muls r0, r4, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08052398
|
|
ldr r0, _08052394
|
|
strb r1, [r0]
|
|
b _080523A8
|
|
.align 2, 0
|
|
_08052380: .4byte 0x02023EAF
|
|
_08052384: .4byte 0x02023FE0
|
|
_08052388: .4byte 0x02023D28
|
|
_0805238C: .4byte 0x02023E94
|
|
_08052390: .4byte 0x02023F38
|
|
_08052394: .4byte 0x02023EB0
|
|
_08052398:
|
|
ldr r2, _080523B4
|
|
ldr r1, _080523B8
|
|
ldr r0, _080523BC
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #0xd]
|
|
strb r0, [r2]
|
|
_080523A8:
|
|
ldr r1, _080523C0
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _080523F4
|
|
.align 2, 0
|
|
_080523B4: .4byte 0x02023EB0
|
|
_080523B8: .4byte 0x02023FE0
|
|
_080523BC: .4byte 0x02023EAF
|
|
_080523C0: .4byte 0x02023EB8
|
|
_080523C4:
|
|
ldr r2, _080523FC
|
|
ldr r0, _08052400
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, _08052404
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080523F4:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080523FC: .4byte 0x02024020
|
|
_08052400: .4byte 0x02023EAF
|
|
_08052404: .4byte 0x02023EB8
|
|
thumb_func_end atkA2_mirrorcoatdamagecalculator
|
|
|
|
thumb_func_start atkA3_disablelastusedattack
|
|
atkA3_disablelastusedattack: @ 0x08052408
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r4, #0
|
|
ldr r2, _08052508
|
|
ldr r3, _0805250C
|
|
ldrb r1, [r3]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r7, r2, #0
|
|
adds r7, #0xc
|
|
adds r0, r0, r7
|
|
ldr r5, _08052510
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r5
|
|
ldrh r0, [r0]
|
|
mov sb, r2
|
|
adds r6, r3, #0
|
|
ldr r2, _08052514
|
|
mov r8, r2
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _0805245C
|
|
mov ip, r6
|
|
movs r3, #0x58
|
|
_0805243C:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
bgt _0805245C
|
|
lsls r2, r4, #1
|
|
mov r0, ip
|
|
ldrb r1, [r0]
|
|
adds r0, r1, #0
|
|
muls r0, r3, r0
|
|
adds r2, r2, r0
|
|
adds r2, r2, r7
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r5
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _0805243C
|
|
_0805245C:
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _08052520
|
|
cmp r4, #4
|
|
beq _08052520
|
|
movs r5, #0x58
|
|
adds r0, r1, #0
|
|
muls r0, r5, r0
|
|
adds r0, r4, r0
|
|
mov r1, sb
|
|
adds r1, #0x24
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08052520
|
|
ldr r1, _08052518
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
lsls r2, r4, #1
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r2, r0
|
|
mov r3, sb
|
|
adds r3, #0xc
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r2, r0
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
muls r1, r5, r1
|
|
adds r2, r2, r1
|
|
adds r2, r2, r3
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, #4]
|
|
bl Random
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
movs r2, #3
|
|
ands r2, r0
|
|
adds r2, #2
|
|
ldrb r3, [r1, #0xb]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, #0xb]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
ldrb r3, [r1, #0xb]
|
|
lsls r2, r3, #0x1c
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #0xf
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, #0xb]
|
|
ldr r1, _0805251C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0805253A
|
|
.align 2, 0
|
|
_08052508: .4byte 0x02023D28
|
|
_0805250C: .4byte 0x02023EB0
|
|
_08052510: .4byte 0x02023EEC
|
|
_08052514: .4byte 0x02023F60
|
|
_08052518: .4byte 0x02022C0C
|
|
_0805251C: .4byte 0x02023EB8
|
|
_08052520:
|
|
ldr r3, _08052548
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805253A:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052548: .4byte 0x02023EB8
|
|
thumb_func_end atkA3_disablelastusedattack
|
|
|
|
thumb_func_start atkA4_trysetencore
|
|
atkA4_trysetencore: @ 0x0805254C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
movs r5, #0
|
|
ldr r3, _08052640
|
|
ldr r4, _08052644
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r6, r3, #0
|
|
adds r6, #0xc
|
|
adds r0, r0, r6
|
|
ldr r2, _08052648
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r0, [r0]
|
|
mov sl, r3
|
|
mov r8, r2
|
|
ldr r2, _0805264C
|
|
mov sb, r2
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _080525A6
|
|
mov ip, r4
|
|
adds r7, r6, #0
|
|
mov r6, r8
|
|
movs r3, #0x58
|
|
_08052586:
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
bgt _080525A6
|
|
lsls r2, r5, #1
|
|
mov r0, ip
|
|
ldrb r1, [r0]
|
|
adds r0, r1, #0
|
|
muls r0, r3, r0
|
|
adds r2, r2, r0
|
|
adds r2, r2, r7
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r6
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _08052586
|
|
_080525A6:
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
add r0, r8
|
|
ldrh r2, [r0]
|
|
cmp r2, #0xa5
|
|
beq _080525BA
|
|
cmp r2, #0xe3
|
|
beq _080525BA
|
|
cmp r2, #0x77
|
|
bne _080525BC
|
|
_080525BA:
|
|
movs r5, #4
|
|
_080525BC:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
mov r2, sb
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, #6]
|
|
cmp r0, #0
|
|
bne _08052654
|
|
cmp r5, #4
|
|
beq _08052654
|
|
movs r0, #0x58
|
|
adds r2, r1, #0
|
|
muls r2, r0, r2
|
|
adds r0, r5, r2
|
|
mov r1, sl
|
|
adds r1, #0x24
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08052654
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r2
|
|
subs r1, #0x18
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r3, #6]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, sb
|
|
strb r5, [r0, #0xc]
|
|
bl Random
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, sb
|
|
movs r2, #3
|
|
ands r2, r0
|
|
adds r2, #3
|
|
ldrb r3, [r1, #0xe]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, #0xe]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
add r1, sb
|
|
ldrb r3, [r1, #0xe]
|
|
lsls r2, r3, #0x1c
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #0xf
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, #0xe]
|
|
ldr r1, _08052650
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0805266E
|
|
.align 2, 0
|
|
_08052640: .4byte 0x02023D28
|
|
_08052644: .4byte 0x02023EB0
|
|
_08052648: .4byte 0x02023EEC
|
|
_0805264C: .4byte 0x02023F60
|
|
_08052650: .4byte 0x02023EB8
|
|
_08052654:
|
|
ldr r3, _0805267C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805266E:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805267C: .4byte 0x02023EB8
|
|
thumb_func_end atkA4_trysetencore
|
|
|
|
thumb_func_start atkA5_painsplitdmgcalc
|
|
atkA5_painsplitdmgcalc: @ 0x08052680
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r6, _08052700
|
|
ldr r0, _08052704
|
|
mov ip, r0
|
|
ldrb r0, [r0]
|
|
movs r7, #0x58
|
|
adds r2, r0, #0
|
|
muls r2, r7, r2
|
|
adds r0, r6, #0
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08052720
|
|
ldr r5, _08052708
|
|
ldrb r0, [r5]
|
|
muls r0, r7, r0
|
|
adds r0, r0, r6
|
|
ldrh r3, [r0, #0x28]
|
|
adds r0, r2, r6
|
|
ldrh r1, [r0, #0x28]
|
|
adds r3, r3, r1
|
|
asrs r3, r3, #1
|
|
ldr r4, _0805270C
|
|
subs r1, r1, r3
|
|
str r1, [r4]
|
|
ldr r2, _08052710
|
|
strb r1, [r2]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
asrs r0, r0, #8
|
|
strb r0, [r2, #1]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r1
|
|
asrs r0, r0, #0x10
|
|
strb r0, [r2, #2]
|
|
lsrs r1, r1, #0x18
|
|
strb r1, [r2, #3]
|
|
ldrb r0, [r5]
|
|
muls r0, r7, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x28]
|
|
subs r0, r0, r3
|
|
str r0, [r4]
|
|
ldr r2, _08052714
|
|
mov r0, ip
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #4
|
|
adds r0, r0, r2
|
|
ldr r1, _08052718
|
|
str r1, [r0]
|
|
ldr r1, _0805271C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0805273A
|
|
.align 2, 0
|
|
_08052700: .4byte 0x02023D28
|
|
_08052704: .4byte 0x02023EB0
|
|
_08052708: .4byte 0x02023EAF
|
|
_0805270C: .4byte 0x02023E94
|
|
_08052710: .4byte 0x02024118
|
|
_08052714: .4byte 0x02024020
|
|
_08052718: .4byte 0x0000FFFF
|
|
_0805271C: .4byte 0x02023EB8
|
|
_08052720:
|
|
ldr r3, _08052740
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805273A:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052740: .4byte 0x02023EB8
|
|
thumb_func_end atkA5_painsplitdmgcalc
|
|
|
|
thumb_func_start atkA6_settypetorandomresistance
|
|
atkA6_settypetorandomresistance: @ 0x08052744
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r1, _080527AC
|
|
ldr r4, _080527B0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
adds r2, r0, r1
|
|
ldrh r1, [r2]
|
|
cmp r1, #0
|
|
beq _0805278E
|
|
ldr r0, _080527B4
|
|
cmp r1, r0
|
|
beq _0805278E
|
|
ldrh r0, [r2]
|
|
bl IsTwoTurnsMove
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805282C
|
|
ldr r1, _080527B8
|
|
ldr r2, _080527BC
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r2
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805282C
|
|
_0805278E:
|
|
ldr r3, _080527C0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08052918
|
|
.align 2, 0
|
|
_080527AC: .4byte 0x02023EF4
|
|
_080527B0: .4byte 0x02023EAF
|
|
_080527B4: .4byte 0x0000FFFF
|
|
_080527B8: .4byte 0x02023D28
|
|
_080527BC: .4byte 0x02023F14
|
|
_080527C0: .4byte 0x02023EB8
|
|
_080527C4:
|
|
mov r0, ip
|
|
strb r5, [r0]
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r7
|
|
adds r0, #0x22
|
|
strb r5, [r0]
|
|
ldr r1, _080527E8
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #3
|
|
strb r0, [r1, #1]
|
|
strb r5, [r1, #2]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #3]
|
|
ldr r1, _080527EC
|
|
b _0805281A
|
|
.align 2, 0
|
|
_080527E8: .4byte 0x02022C0C
|
|
_080527EC: .4byte 0x02023EB8
|
|
_080527F0:
|
|
mov r0, r8
|
|
adds r0, #1
|
|
adds r0, r0, r3
|
|
ldrb r2, [r0]
|
|
strb r2, [r4]
|
|
mov r4, sl
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
ldr r7, _08052824
|
|
adds r0, r0, r7
|
|
adds r0, #0x22
|
|
strb r2, [r0]
|
|
ldr r1, _08052828
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #3
|
|
strb r0, [r1, #1]
|
|
strb r2, [r1, #2]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #3]
|
|
mov r1, ip
|
|
_0805281A:
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08052918
|
|
.align 2, 0
|
|
_08052824: .4byte 0x02023D28
|
|
_08052828: .4byte 0x02022C0C
|
|
_0805282C:
|
|
movs r4, #0
|
|
mov r8, r4
|
|
movs r7, #0x7f
|
|
mov sb, r7
|
|
_08052834:
|
|
bl Random
|
|
mov r4, sb
|
|
ands r4, r0
|
|
cmp r4, #0x70
|
|
bhi _08052834
|
|
lsls r0, r4, #1
|
|
adds r4, r0, r4
|
|
ldr r6, _08052928
|
|
adds r3, r4, r6
|
|
ldr r1, _0805292C
|
|
ldr r2, _08052930
|
|
ldrb r5, [r2]
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r3]
|
|
mov sl, r2
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08052890
|
|
adds r0, r4, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bhi _08052890
|
|
ldr r7, _08052934
|
|
movs r2, #0x58
|
|
adds r0, r5, #0
|
|
muls r0, r2, r0
|
|
adds r3, r0, r7
|
|
movs r0, #0x21
|
|
adds r0, r0, r3
|
|
mov ip, r0
|
|
adds r0, r4, #1
|
|
adds r0, r0, r6
|
|
ldrb r5, [r0]
|
|
mov r1, ip
|
|
ldrb r0, [r1]
|
|
adds r1, r5, #0
|
|
cmp r0, r1
|
|
beq _08052890
|
|
adds r0, r3, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
bne _080527C4
|
|
_08052890:
|
|
movs r7, #1
|
|
add r8, r7
|
|
ldr r0, _08052938
|
|
cmp r8, r0
|
|
ble _08052834
|
|
movs r0, #0
|
|
mov r8, r0
|
|
ldr r1, _0805293C
|
|
mov ip, r1
|
|
ldr r3, _08052928
|
|
adds r0, r4, #1
|
|
adds r0, r0, r3
|
|
mov sb, r0
|
|
adds r5, r3, #0
|
|
_080528AC:
|
|
ldrb r1, [r5]
|
|
cmp r1, #0xff
|
|
bgt _080528B6
|
|
cmp r1, #0xfe
|
|
bge _080528F0
|
|
_080528B6:
|
|
mov r4, sl
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #1
|
|
ldr r7, _0805292C
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080528F0
|
|
ldrb r0, [r5, #2]
|
|
cmp r0, #5
|
|
bhi _080528F0
|
|
movs r6, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r6, r0
|
|
ldr r1, _08052934
|
|
adds r2, r0, r1
|
|
adds r4, r2, #0
|
|
adds r4, #0x21
|
|
ldrb r0, [r4]
|
|
mov r7, sb
|
|
ldrb r1, [r7]
|
|
cmp r0, r1
|
|
beq _080528F0
|
|
adds r0, r2, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _080528F0
|
|
b _080527F0
|
|
_080528F0:
|
|
adds r5, #3
|
|
movs r0, #3
|
|
add r8, r0
|
|
ldr r0, _08052940
|
|
cmp r8, r0
|
|
bls _080528AC
|
|
mov r1, ip
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
mov r4, ip
|
|
str r1, [r4]
|
|
_08052918:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052928: .4byte 0x082EBB38
|
|
_0805292C: .4byte 0x02023EFC
|
|
_08052930: .4byte 0x02023EAF
|
|
_08052934: .4byte 0x02023D28
|
|
_08052938: .4byte 0x000003E7
|
|
_0805293C: .4byte 0x02023EB8
|
|
_08052940: .4byte 0x0000014F
|
|
thumb_func_end atkA6_settypetorandomresistance
|
|
|
|
thumb_func_start atkA7_setalwayshitflag
|
|
atkA7_setalwayshitflag: @ 0x08052944
|
|
push {r4, lr}
|
|
ldr r4, _08052988
|
|
ldr r3, _0805298C
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, #0x19
|
|
rsbs r2, r2, #0
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, #0x10
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r2, _08052990
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r1, _08052994
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, #0x15]
|
|
ldr r1, _08052998
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052988: .4byte 0x02023F50
|
|
_0805298C: .4byte 0x02023EB0
|
|
_08052990: .4byte 0x02023F60
|
|
_08052994: .4byte 0x02023EAF
|
|
_08052998: .4byte 0x02023EB8
|
|
thumb_func_end atkA7_setalwayshitflag
|
|
|
|
thumb_func_start atkA8_copymovepermanently
|
|
atkA8_copymovepermanently: @ 0x0805299C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x14
|
|
ldr r0, _08052AFC
|
|
ldr r1, _08052B00
|
|
adds r5, r1, #0
|
|
strh r5, [r0]
|
|
ldr r3, _08052B04
|
|
ldr r2, _08052B08
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
adds r4, r1, #0
|
|
muls r4, r0, r4
|
|
adds r0, r3, #0
|
|
adds r0, #0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xe
|
|
ands r1, r0
|
|
mov ip, r3
|
|
mov sl, r2
|
|
cmp r1, #0
|
|
beq _080529D4
|
|
b _08052B28
|
|
_080529D4:
|
|
ldr r0, _08052B0C
|
|
ldr r2, _08052B10
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r1, [r1]
|
|
mov sb, r0
|
|
mov r8, r2
|
|
cmp r1, #0xa5
|
|
bne _080529EA
|
|
b _08052B28
|
|
_080529EA:
|
|
cmp r1, #0
|
|
bne _080529F0
|
|
b _08052B28
|
|
_080529F0:
|
|
cmp r1, r5
|
|
bne _080529F6
|
|
b _08052B28
|
|
_080529F6:
|
|
cmp r1, #0xa6
|
|
bne _080529FC
|
|
b _08052B28
|
|
_080529FC:
|
|
movs r7, #0
|
|
mov r5, sb
|
|
mov r0, ip
|
|
adds r0, #0xc
|
|
adds r1, r4, r0
|
|
mov r3, r8
|
|
_08052A08:
|
|
ldrh r2, [r1]
|
|
cmp r2, #0xa6
|
|
beq _08052A1A
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
beq _08052A22
|
|
_08052A1A:
|
|
adds r1, #2
|
|
adds r7, #1
|
|
cmp r7, #3
|
|
ble _08052A08
|
|
_08052A22:
|
|
cmp r7, #4
|
|
beq _08052A28
|
|
b _08052B28
|
|
_08052A28:
|
|
ldr r4, _08052B14
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #1
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
adds r1, r1, r0
|
|
mov r6, ip
|
|
adds r6, #0xc
|
|
adds r1, r1, r6
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
mov r1, sl
|
|
ldrb r0, [r1]
|
|
adds r2, r0, #0
|
|
muls r2, r3, r2
|
|
ldrb r4, [r4]
|
|
adds r2, r2, r4
|
|
mov r5, ip
|
|
adds r5, #0x24
|
|
adds r2, r2, r5
|
|
ldr r4, _08052B18
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0, #4]
|
|
strb r0, [r2]
|
|
ldr r1, _08052B1C
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r7, #0
|
|
ldrb r0, [r2]
|
|
muls r0, r3, r0
|
|
adds r4, r0, r5
|
|
adds r3, r0, #0
|
|
add r2, sp, #4
|
|
add r5, sp, #0xc
|
|
_08052A8A:
|
|
adds r0, r3, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
adds r1, r5, r7
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
adds r4, #1
|
|
adds r3, #2
|
|
adds r2, #2
|
|
adds r7, #1
|
|
cmp r7, #3
|
|
ble _08052A8A
|
|
add r2, sp, #4
|
|
mov r0, sl
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, ip
|
|
adds r0, #0x3b
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, #0xc]
|
|
str r2, [sp]
|
|
movs r0, #0
|
|
movs r1, #3
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BtlController_EmitSetMonData
|
|
ldr r0, _08052B1C
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08052B20
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
ldr r3, _08052B0C
|
|
ldr r2, _08052B10
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _08052B24
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08052B42
|
|
.align 2, 0
|
|
_08052AFC: .4byte 0x02023E90
|
|
_08052B00: .4byte 0x0000FFFF
|
|
_08052B04: .4byte 0x02023D28
|
|
_08052B08: .4byte 0x02023EAF
|
|
_08052B0C: .4byte 0x02023EE4
|
|
_08052B10: .4byte 0x02023EB0
|
|
_08052B14: .4byte 0x02023E8C
|
|
_08052B18: .4byte 0x082ED220
|
|
_08052B1C: .4byte 0x02023D08
|
|
_08052B20: .4byte 0x02022C0C
|
|
_08052B24: .4byte 0x02023EB8
|
|
_08052B28:
|
|
ldr r3, _08052B54
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08052B42:
|
|
add sp, #0x14
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052B54: .4byte 0x02023EB8
|
|
thumb_func_end atkA8_copymovepermanently
|
|
|
|
thumb_func_start IsTwoTurnsMove
|
|
IsTwoTurnsMove: @ 0x08052B58
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldr r2, _08052B88
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x91
|
|
beq _08052B82
|
|
cmp r0, #0x27
|
|
beq _08052B82
|
|
cmp r0, #0x4b
|
|
beq _08052B82
|
|
cmp r0, #0x97
|
|
beq _08052B82
|
|
cmp r0, #0x9b
|
|
beq _08052B82
|
|
cmp r0, #0x1a
|
|
bne _08052B8C
|
|
_08052B82:
|
|
movs r0, #1
|
|
b _08052B8E
|
|
.align 2, 0
|
|
_08052B88: .4byte 0x082ED220
|
|
_08052B8C:
|
|
movs r0, #0
|
|
_08052B8E:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end IsTwoTurnsMove
|
|
|
|
thumb_func_start IsInvalidForSleepTalkOrAssist
|
|
IsInvalidForSleepTalkOrAssist: @ 0x08052B94
|
|
push {lr}
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
cmp r1, #0
|
|
beq _08052BB2
|
|
cmp r1, #0xd6
|
|
beq _08052BB2
|
|
movs r0, #0x89
|
|
lsls r0, r0, #1
|
|
cmp r1, r0
|
|
beq _08052BB2
|
|
cmp r1, #0x77
|
|
beq _08052BB2
|
|
cmp r1, #0x76
|
|
bne _08052BB6
|
|
_08052BB2:
|
|
movs r0, #1
|
|
b _08052BB8
|
|
_08052BB6:
|
|
movs r0, #0
|
|
_08052BB8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsInvalidForSleepTalkOrAssist
|
|
|
|
thumb_func_start AttacksThisTurn
|
|
AttacksThisTurn: @ 0x08052BBC
|
|
push {lr}
|
|
lsls r1, r1, #0x10
|
|
lsrs r2, r1, #0x10
|
|
ldr r1, _08052C14
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r3, r1, #0
|
|
cmp r0, #0x97
|
|
bne _08052BE0
|
|
ldr r0, _08052C18
|
|
ldrh r1, [r0]
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08052C20
|
|
_08052BE0:
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x91
|
|
beq _08052C02
|
|
cmp r0, #0x27
|
|
beq _08052C02
|
|
cmp r0, #0x4b
|
|
beq _08052C02
|
|
cmp r0, #0x97
|
|
beq _08052C02
|
|
cmp r0, #0x9b
|
|
beq _08052C02
|
|
cmp r0, #0x1a
|
|
bne _08052C20
|
|
_08052C02:
|
|
ldr r0, _08052C1C
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x14
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08052C20
|
|
movs r0, #1
|
|
b _08052C22
|
|
.align 2, 0
|
|
_08052C14: .4byte 0x082ED220
|
|
_08052C18: .4byte 0x02024070
|
|
_08052C1C: .4byte 0x02023F24
|
|
_08052C20:
|
|
movs r0, #2
|
|
_08052C22:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end AttacksThisTurn
|
|
|
|
thumb_func_start atkA9_trychoosesleeptalkmove
|
|
atkA9_trychoosesleeptalkmove: @ 0x08052C28
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
movs r6, #0
|
|
movs r5, #0
|
|
ldr r0, _08052CB8
|
|
mov sb, r0
|
|
movs r1, #0x58
|
|
mov r8, r1
|
|
ldr r7, _08052CBC
|
|
movs r0, #0x84
|
|
lsls r0, r0, #1
|
|
mov sl, r0
|
|
_08052C46:
|
|
lsls r4, r5, #1
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r4, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
bl IsInvalidForSleepTalkOrAssist
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08052C86
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r4, r0
|
|
adds r0, r0, r7
|
|
ldrh r1, [r0]
|
|
cmp r1, sl
|
|
beq _08052C86
|
|
cmp r1, #0xfd
|
|
beq _08052C86
|
|
adds r0, r1, #0
|
|
bl IsTwoTurnsMove
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08052C94
|
|
_08052C86:
|
|
ldr r1, _08052CC0
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
orrs r6, r0
|
|
lsls r0, r6, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_08052C94:
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
ble _08052C46
|
|
ldr r0, _08052CB8
|
|
ldrb r0, [r0]
|
|
adds r1, r6, #0
|
|
movs r2, #0xfd
|
|
bl CheckMoveLimitations
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #0xf
|
|
bne _08052CC8
|
|
ldr r1, _08052CC4
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08052D2C
|
|
.align 2, 0
|
|
_08052CB8: .4byte 0x02023EAF
|
|
_08052CBC: .4byte 0x02023D34
|
|
_08052CC0: .4byte 0x082FACB4
|
|
_08052CC4: .4byte 0x02023EB8
|
|
_08052CC8:
|
|
movs r7, #3
|
|
ldr r4, _08052D3C
|
|
_08052CCC:
|
|
bl Random
|
|
adds r5, r7, #0
|
|
ands r5, r0
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
bne _08052CCC
|
|
ldr r4, _08052D40
|
|
ldr r2, _08052D44
|
|
lsls r1, r5, #1
|
|
ldr r0, _08052D48
|
|
ldrb r3, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r1, r1, r0
|
|
adds r2, #0xc
|
|
adds r1, r1, r2
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
ldr r0, _08052D4C
|
|
strb r5, [r0]
|
|
ldr r2, _08052D50
|
|
ldr r0, [r2]
|
|
ldr r1, _08052D54
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldrh r0, [r4]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _08052D58
|
|
strb r0, [r1]
|
|
ldr r3, _08052D5C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08052D2C:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052D3C: .4byte 0x082FACB4
|
|
_08052D40: .4byte 0x02023E92
|
|
_08052D44: .4byte 0x02023D28
|
|
_08052D48: .4byte 0x02023EAF
|
|
_08052D4C: .4byte 0x02023E8C
|
|
_08052D50: .4byte 0x02023F24
|
|
_08052D54: .4byte 0xFFFFFBFF
|
|
_08052D58: .4byte 0x02023EB0
|
|
_08052D5C: .4byte 0x02023EB8
|
|
thumb_func_end atkA9_trychoosesleeptalkmove
|
|
|
|
thumb_func_start atkAA_setdestinybond
|
|
atkAA_setdestinybond: @ 0x08052D60
|
|
ldr r1, _08052D84
|
|
ldr r0, _08052D88
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, #0x50
|
|
adds r2, r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08052D8C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08052D84: .4byte 0x02023D28
|
|
_08052D88: .4byte 0x02023EAF
|
|
_08052D8C: .4byte 0x02023EB8
|
|
thumb_func_end atkAA_setdestinybond
|
|
|
|
thumb_func_start TrySetDestinyBondToHappen
|
|
TrySetDestinyBondToHappen: @ 0x08052D90
|
|
push {r4, r5, lr}
|
|
ldr r0, _08052DE0
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r4, _08052DE4
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
ldr r1, _08052DE8
|
|
ldrb r2, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08052DDA
|
|
cmp r5, r3
|
|
beq _08052DDA
|
|
ldr r2, _08052DEC
|
|
ldr r1, [r2]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08052DDA
|
|
movs r0, #0x40
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_08052DDA:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052DE0: .4byte 0x02023EAF
|
|
_08052DE4: .4byte 0x02023EB0
|
|
_08052DE8: .4byte 0x02023D28
|
|
_08052DEC: .4byte 0x02023F24
|
|
thumb_func_end TrySetDestinyBondToHappen
|
|
|
|
thumb_func_start atkAB_trysetdestinybondtohappen
|
|
atkAB_trysetdestinybondtohappen: @ 0x08052DF0
|
|
push {lr}
|
|
bl TrySetDestinyBondToHappen
|
|
ldr r1, _08052E04
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052E04: .4byte 0x02023EB8
|
|
thumb_func_end atkAB_trysetdestinybondtohappen
|
|
|
|
thumb_func_start atkAC_remaininghptopower
|
|
atkAC_remaininghptopower: @ 0x08052E08
|
|
push {lr}
|
|
ldr r2, _08052E5C
|
|
ldr r0, _08052E60
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r2
|
|
movs r2, #0x28
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, #0x2c
|
|
ldrsh r1, [r1, r2]
|
|
movs r2, #0x30
|
|
bl GetScaledHPFraction
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
movs r3, #0
|
|
ldr r0, _08052E64
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
ble _08052E42
|
|
adds r2, r0, #0
|
|
_08052E34:
|
|
adds r3, #2
|
|
cmp r3, #0xb
|
|
bgt _08052E42
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bgt _08052E34
|
|
_08052E42:
|
|
ldr r2, _08052E68
|
|
ldr r1, _08052E64
|
|
adds r0, r3, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldr r1, _08052E6C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08052E5C: .4byte 0x02023D28
|
|
_08052E60: .4byte 0x02023EAF
|
|
_08052E64: .4byte 0x082ECD8C
|
|
_08052E68: .4byte 0x020240A4
|
|
_08052E6C: .4byte 0x02023EB8
|
|
thumb_func_end atkAC_remaininghptopower
|
|
|
|
thumb_func_start atkAD_tryspiteppreduce
|
|
atkAD_tryspiteppreduce: @ 0x08052E70
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
ldr r4, _08052FF0
|
|
ldr r1, _08052FF4
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r4
|
|
ldrh r2, [r0]
|
|
mov r8, r1
|
|
cmp r2, #0
|
|
bne _08052E90
|
|
b _08053018
|
|
_08052E90:
|
|
ldr r0, _08052FF8
|
|
cmp r2, r0
|
|
bne _08052E98
|
|
b _08053018
|
|
_08052E98:
|
|
movs r7, #0
|
|
ldr r0, _08052FFC
|
|
movs r1, #0x58
|
|
muls r1, r3, r1
|
|
adds r3, r0, #0
|
|
adds r3, #0xc
|
|
adds r1, r1, r3
|
|
ldrh r1, [r1]
|
|
cmp r2, r1
|
|
beq _08052ED0
|
|
adds r6, r4, #0
|
|
mov r5, r8
|
|
adds r4, r3, #0
|
|
movs r3, #0x58
|
|
_08052EB4:
|
|
adds r7, #1
|
|
cmp r7, #3
|
|
bgt _08052ED0
|
|
ldrb r0, [r5]
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r6
|
|
lsls r1, r7, #1
|
|
muls r0, r3, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _08052EB4
|
|
_08052ED0:
|
|
cmp r7, #4
|
|
bne _08052ED6
|
|
b _08053018
|
|
_08052ED6:
|
|
mov r4, r8
|
|
ldrb r0, [r4]
|
|
movs r1, #0x58
|
|
mov sb, r1
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r7, r0
|
|
ldr r1, _08052FFC
|
|
adds r1, #0x24
|
|
mov sl, r1
|
|
add r0, sl
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bhi _08052EF6
|
|
b _08053018
|
|
_08052EF6:
|
|
bl Random
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r6, r1, #2
|
|
ldrb r0, [r4]
|
|
mov r3, sb
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r7, r0
|
|
add r0, sl
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bge _08052F14
|
|
adds r6, r0, #0
|
|
_08052F14:
|
|
ldr r1, _08053000
|
|
movs r5, #0xfd
|
|
strb r5, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
ldr r2, _08052FF0
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r4, _08053004
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
movs r2, #0
|
|
movs r3, #1
|
|
bl ConvertIntToDecimalStringN
|
|
strb r5, [r4]
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
strb r0, [r4, #2]
|
|
strb r0, [r4, #3]
|
|
strb r6, [r4, #4]
|
|
subs r0, #2
|
|
strb r0, [r4, #5]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r1, r7, r1
|
|
add r1, sl
|
|
ldrb r0, [r1]
|
|
subs r0, r0, r6
|
|
strb r0, [r1]
|
|
ldr r4, _08053008
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
ldr r1, _0805300C
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #0x18]
|
|
lsrs r1, r1, #4
|
|
ldr r2, _08053010
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08052FC8
|
|
mov r2, sb
|
|
muls r2, r3, r2
|
|
ldr r0, _08052FFC
|
|
adds r0, #0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08052FC8
|
|
adds r1, r7, #0
|
|
adds r1, #9
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r3, sl
|
|
adds r0, r2, r3
|
|
adds r0, r0, r7
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r2, #0
|
|
movs r3, #1
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_08052FC8:
|
|
ldr r1, _08053014
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
ldr r1, _08052FFC
|
|
ldr r0, _08052FF4
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r7, r0
|
|
adds r1, #0x24
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08053032
|
|
adds r0, r2, #0
|
|
bl CancelMultiTurnMoves
|
|
b _08053032
|
|
.align 2, 0
|
|
_08052FF0: .4byte 0x02023EEC
|
|
_08052FF4: .4byte 0x02023EB0
|
|
_08052FF8: .4byte 0x0000FFFF
|
|
_08052FFC: .4byte 0x02023D28
|
|
_08053000: .4byte 0x02022C0C
|
|
_08053004: .4byte 0x02022C1C
|
|
_08053008: .4byte 0x02023D08
|
|
_0805300C: .4byte 0x02023F60
|
|
_08053010: .4byte 0x082FACB4
|
|
_08053014: .4byte 0x02023EB8
|
|
_08053018:
|
|
ldr r3, _08053044
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08053032:
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053044: .4byte 0x02023EB8
|
|
thumb_func_end atkAD_tryspiteppreduce
|
|
|
|
thumb_func_start atkAE_healpartystatus
|
|
atkAE_healpartystatus: @ 0x08053048
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
mov r8, r4
|
|
ldr r0, _080530B8
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xd7
|
|
beq _08053064
|
|
b _0805324E
|
|
_08053064:
|
|
ldr r6, _080530BC
|
|
mov r0, r8
|
|
strb r0, [r6, #5]
|
|
ldr r5, _080530C0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
ldr r1, _080530C4
|
|
mov sl, r1
|
|
cmp r0, #0
|
|
bne _08053080
|
|
ldr r2, _080530C8
|
|
mov sl, r2
|
|
_08053080:
|
|
ldr r4, _080530CC
|
|
ldrb r3, [r5]
|
|
movs r7, #0x58
|
|
adds r2, r3, #0
|
|
muls r2, r7, r2
|
|
adds r0, r2, r4
|
|
adds r1, r0, #0
|
|
adds r1, #0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x2b
|
|
beq _080530D4
|
|
adds r0, r4, #0
|
|
adds r0, #0x4c
|
|
adds r0, r2, r0
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
ldrb r0, [r5]
|
|
adds r2, r0, #0
|
|
muls r2, r7, r2
|
|
adds r0, r4, #0
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _080530D0
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _080530E4
|
|
.align 2, 0
|
|
_080530B8: .4byte 0x02023E8E
|
|
_080530BC: .4byte 0x02023FD6
|
|
_080530C0: .4byte 0x02023EAF
|
|
_080530C4: .4byte 0x020243E8
|
|
_080530C8: .4byte 0x02024190
|
|
_080530CC: .4byte 0x02023D28
|
|
_080530D0: .4byte 0xF7FFFFFF
|
|
_080530D4:
|
|
ldrb r1, [r1]
|
|
adds r0, r3, #0
|
|
bl RecordAbilityBattle
|
|
ldrb r0, [r6, #5]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r6, #5]
|
|
_080530E4:
|
|
ldr r7, _08053158
|
|
ldr r0, _0805315C
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
movs r2, #2
|
|
mov sb, r2
|
|
mov r1, sb
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08053160
|
|
strb r0, [r1, #0x17]
|
|
strb r0, [r7]
|
|
ldr r0, _08053164
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805318A
|
|
ldr r0, _08053168
|
|
ldrb r2, [r0]
|
|
ldr r1, _0805316C
|
|
ldrb r3, [r7]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
bne _0805318A
|
|
ldr r5, _08053170
|
|
movs r6, #0x58
|
|
adds r4, r3, #0
|
|
muls r4, r6, r4
|
|
adds r0, r4, r5
|
|
adds r1, r0, #0
|
|
adds r1, #0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x2b
|
|
beq _08053178
|
|
adds r0, r5, #0
|
|
adds r0, #0x4c
|
|
adds r0, r4, r0
|
|
str r2, [r0]
|
|
ldrb r0, [r7]
|
|
adds r2, r0, #0
|
|
muls r2, r6, r2
|
|
adds r0, r5, #0
|
|
adds r0, #0x50
|
|
adds r2, r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _08053174
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _0805318A
|
|
.align 2, 0
|
|
_08053158: .4byte 0x02023D08
|
|
_0805315C: .4byte 0x02023EAF
|
|
_08053160: .4byte 0x02024118
|
|
_08053164: .4byte 0x02022C90
|
|
_08053168: .4byte 0x02023EB4
|
|
_0805316C: .4byte 0x082FACB4
|
|
_08053170: .4byte 0x02023D28
|
|
_08053174: .4byte 0xF7FFFFFF
|
|
_08053178:
|
|
ldrb r1, [r1]
|
|
adds r0, r3, #0
|
|
bl RecordAbilityBattle
|
|
ldr r1, _080531D0
|
|
ldrb r0, [r1, #5]
|
|
mov r2, sb
|
|
orrs r0, r2
|
|
strb r0, [r1, #5]
|
|
_0805318A:
|
|
movs r6, #0
|
|
ldr r7, _080531D4
|
|
_0805318E:
|
|
movs r0, #0x64
|
|
adds r4, r6, #0
|
|
muls r4, r0, r4
|
|
add r4, sl
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0x2e
|
|
bl GetMonData
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r5, #0
|
|
beq _08053246
|
|
movs r0, #0xce
|
|
lsls r0, r0, #1
|
|
cmp r5, r0
|
|
beq _08053246
|
|
ldr r2, _080531D8
|
|
ldr r0, _080531DC
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _080531E0
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
b _08053210
|
|
.align 2, 0
|
|
_080531D0: .4byte 0x02023FD6
|
|
_080531D4: .4byte 0x02023D28
|
|
_080531D8: .4byte 0x02023D12
|
|
_080531DC: .4byte 0x02023EAF
|
|
_080531E0:
|
|
ldr r0, _08053218
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053228
|
|
ldr r0, _0805321C
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _08053228
|
|
ldr r0, _08053220
|
|
ldrb r1, [r0]
|
|
ldr r2, _08053224
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08053228
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
_08053210:
|
|
adds r0, r0, r7
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
b _08053234
|
|
.align 2, 0
|
|
_08053218: .4byte 0x02022C90
|
|
_0805321C: .4byte 0x02023D08
|
|
_08053220: .4byte 0x02023EB4
|
|
_08053224: .4byte 0x082FACB4
|
|
_08053228:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl GetAbilityBySpecies
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
_08053234:
|
|
cmp r0, #0x2b
|
|
beq _08053246
|
|
movs r0, #1
|
|
lsls r0, r6
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
_08053246:
|
|
adds r6, #1
|
|
cmp r6, #5
|
|
ble _0805318E
|
|
b _080532CC
|
|
_0805324E:
|
|
ldr r1, _08053308
|
|
movs r0, #4
|
|
strb r0, [r1, #5]
|
|
movs r2, #0x3f
|
|
mov r8, r2
|
|
ldr r3, _0805330C
|
|
ldr r2, _08053310
|
|
ldrb r0, [r2]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
movs r1, #0x4c
|
|
adds r1, r1, r3
|
|
mov sb, r1
|
|
add r0, sb
|
|
str r4, [r0]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r7, r3, #0
|
|
adds r7, #0x50
|
|
adds r1, r1, r7
|
|
ldr r0, [r1]
|
|
ldr r6, _08053314
|
|
ands r0, r6
|
|
str r0, [r1]
|
|
ldrb r0, [r2]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _08053318
|
|
strb r0, [r4]
|
|
ldr r0, _0805331C
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080532CC
|
|
ldr r0, _08053320
|
|
ldrb r2, [r0]
|
|
ldr r1, _08053324
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
bne _080532CC
|
|
adds r0, r3, #0
|
|
muls r0, r5, r0
|
|
add r0, sb
|
|
str r2, [r0]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r7
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
str r0, [r1]
|
|
_080532CC:
|
|
mov r2, r8
|
|
cmp r2, #0
|
|
beq _080532EE
|
|
ldr r4, _08053318
|
|
ldr r0, _08053310
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_080532EE:
|
|
ldr r1, _08053328
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053308: .4byte 0x02023FD6
|
|
_0805330C: .4byte 0x02023D28
|
|
_08053310: .4byte 0x02023EAF
|
|
_08053314: .4byte 0xF7FFFFFF
|
|
_08053318: .4byte 0x02023D08
|
|
_0805331C: .4byte 0x02022C90
|
|
_08053320: .4byte 0x02023EB4
|
|
_08053324: .4byte 0x082FACB4
|
|
_08053328: .4byte 0x02023EB8
|
|
thumb_func_end atkAE_healpartystatus
|
|
|
|
thumb_func_start atkAF_cursetarget
|
|
atkAF_cursetarget: @ 0x0805332C
|
|
push {r4, r5, lr}
|
|
ldr r5, _0805336C
|
|
ldr r0, _08053370
|
|
ldrb r0, [r0]
|
|
movs r4, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r4, r1
|
|
adds r0, r5, #0
|
|
adds r0, #0x50
|
|
adds r1, r1, r0
|
|
ldr r2, [r1]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #0x15
|
|
adds r0, r2, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _08053378
|
|
ldr r3, _08053374
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805339C
|
|
.align 2, 0
|
|
_0805336C: .4byte 0x02023D28
|
|
_08053370: .4byte 0x02023EB0
|
|
_08053374: .4byte 0x02023EB8
|
|
_08053378:
|
|
orrs r2, r3
|
|
str r2, [r1]
|
|
ldr r1, _080533A4
|
|
ldr r0, _080533A8
|
|
ldrb r0, [r0]
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #1
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _08053394
|
|
movs r0, #1
|
|
str r0, [r1]
|
|
_08053394:
|
|
ldr r1, _080533AC
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805339C:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080533A4: .4byte 0x02023E94
|
|
_080533A8: .4byte 0x02023EAF
|
|
_080533AC: .4byte 0x02023EB8
|
|
thumb_func_end atkAF_cursetarget
|
|
|
|
thumb_func_start atkB0_trysetspikes
|
|
atkB0_trysetspikes: @ 0x080533B0
|
|
push {r4, lr}
|
|
ldr r4, _08053404
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
movs r1, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _08053408
|
|
lsls r2, r0, #1
|
|
adds r0, r2, r0
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, #0xa]
|
|
cmp r0, #3
|
|
bne _08053414
|
|
ldr r2, _0805340C
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, _08053410
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805342E
|
|
.align 2, 0
|
|
_08053404: .4byte 0x02023EAF
|
|
_08053408: .4byte 0x02023F38
|
|
_0805340C: .4byte 0x02024020
|
|
_08053410: .4byte 0x02023EB8
|
|
_08053414:
|
|
ldr r1, _08053434
|
|
adds r1, r2, r1
|
|
ldrh r2, [r1]
|
|
movs r0, #0x10
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r3, #0xa]
|
|
adds r0, #1
|
|
strb r0, [r3, #0xa]
|
|
ldr r1, _08053438
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805342E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053434: .4byte 0x02023F32
|
|
_08053438: .4byte 0x02023EB8
|
|
thumb_func_end atkB0_trysetspikes
|
|
|
|
thumb_func_start atkB1_setforesight
|
|
atkB1_setforesight: @ 0x0805343C
|
|
ldr r1, _08053460
|
|
ldr r0, _08053464
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, #0x50
|
|
adds r2, r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x16
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08053468
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08053460: .4byte 0x02023D28
|
|
_08053464: .4byte 0x02023EB0
|
|
_08053468: .4byte 0x02023EB8
|
|
thumb_func_end atkB1_setforesight
|
|
|
|
thumb_func_start atkB2_trysetperishsong
|
|
atkB2_trysetperishsong: @ 0x0805346C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r6, #0
|
|
movs r3, #0
|
|
ldr r0, _080534B0
|
|
adds r7, r0, #0
|
|
ldr r0, _080534B4
|
|
mov r8, r0
|
|
ldrb r1, [r7]
|
|
cmp r6, r1
|
|
bge _080534D8
|
|
movs r5, #0x20
|
|
ldr r0, _080534B8
|
|
mov ip, r0
|
|
ldr r0, _080534BC
|
|
adds r4, r0, #0
|
|
adds r4, #0xf
|
|
ldr r2, _080534C0
|
|
_08053494:
|
|
ldr r1, [r2]
|
|
adds r0, r1, #0
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _080534AC
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
add r0, ip
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x2b
|
|
bne _080534C4
|
|
_080534AC:
|
|
adds r6, #1
|
|
b _080534CC
|
|
.align 2, 0
|
|
_080534B0: .4byte 0x02023D10
|
|
_080534B4: .4byte 0x02023EAF
|
|
_080534B8: .4byte 0x02023D28
|
|
_080534BC: .4byte 0x02023F60
|
|
_080534C0: .4byte 0x02023F50
|
|
_080534C4:
|
|
orrs r1, r5
|
|
str r1, [r2]
|
|
movs r0, #0x33
|
|
strb r0, [r4]
|
|
_080534CC:
|
|
adds r4, #0x1c
|
|
adds r2, #4
|
|
adds r3, #1
|
|
ldrb r0, [r7]
|
|
cmp r3, r0
|
|
blt _08053494
|
|
_080534D8:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
bl PressurePPLoseOnUsingPerishSong
|
|
ldr r0, _08053504
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bne _0805350C
|
|
ldr r3, _08053508
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08053514
|
|
.align 2, 0
|
|
_08053504: .4byte 0x02023D10
|
|
_08053508: .4byte 0x02023EB8
|
|
_0805350C:
|
|
ldr r1, _08053520
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08053514:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053520: .4byte 0x02023EB8
|
|
thumb_func_end atkB2_trysetperishsong
|
|
|
|
thumb_func_start atkB3_rolloutdamagecalculation
|
|
atkB3_rolloutdamagecalculation: @ 0x08053524
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r0, _08053548
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053558
|
|
ldr r0, _0805354C
|
|
ldrb r0, [r0]
|
|
bl CancelMultiTurnMoves
|
|
ldr r1, _08053550
|
|
ldr r0, _08053554
|
|
str r0, [r1]
|
|
b _08053670
|
|
.align 2, 0
|
|
_08053548: .4byte 0x02023F20
|
|
_0805354C: .4byte 0x02023EAF
|
|
_08053550: .4byte 0x02023EB8
|
|
_08053554: .4byte 0x08286FE8
|
|
_08053558:
|
|
ldr r2, _0805367C
|
|
ldr r1, _08053680
|
|
ldrb r3, [r1]
|
|
movs r5, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r5, r0
|
|
adds r4, r2, #0
|
|
adds r4, #0x50
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
movs r7, #0x80
|
|
lsls r7, r7, #5
|
|
ands r0, r7
|
|
adds r6, r1, #0
|
|
mov sb, r2
|
|
ldr r1, _08053684
|
|
mov ip, r1
|
|
ldr r2, _08053688
|
|
mov r8, r2
|
|
cmp r0, #0
|
|
bne _080535CA
|
|
lsls r0, r3, #3
|
|
subs r0, r0, r3
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldrb r2, [r0, #0x11]
|
|
movs r1, #0x10
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
movs r2, #5
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x11]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldrb r2, [r0, #0x11]
|
|
movs r1, #0xf
|
|
ands r1, r2
|
|
movs r2, #0x50
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x11]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
orrs r0, r7
|
|
str r0, [r1]
|
|
ldr r1, _0805368C
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
mov r2, r8
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
_080535CA:
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, #3
|
|
subs r2, r2, r0
|
|
lsls r2, r2, #2
|
|
add r2, ip
|
|
ldrb r3, [r2, #0x11]
|
|
lsls r1, r3, #0x1c
|
|
lsrs r1, r1, #0x1c
|
|
subs r1, #1
|
|
movs r0, #0xf
|
|
ands r1, r0
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x11]
|
|
cmp r1, #0
|
|
bne _080535FE
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r5, r1
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
ldr r2, _08053690
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_080535FE:
|
|
ldr r3, _08053694
|
|
ldr r2, _08053698
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
strh r0, [r3]
|
|
movs r2, #1
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
mov r1, ip
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x1c
|
|
movs r1, #5
|
|
subs r1, r1, r0
|
|
ldr r7, _0805369C
|
|
adds r5, r3, #0
|
|
cmp r2, r1
|
|
bge _0805364C
|
|
adds r1, r5, #0
|
|
adds r3, r4, #0
|
|
movs r4, #5
|
|
_08053638:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
strh r0, [r1]
|
|
adds r2, #1
|
|
ldrb r0, [r3, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x1c
|
|
subs r0, r4, r0
|
|
cmp r2, r0
|
|
blt _08053638
|
|
_0805364C:
|
|
ldrb r1, [r6]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, sb
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x17
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805366A
|
|
ldrh r0, [r5]
|
|
lsls r0, r0, #1
|
|
strh r0, [r5]
|
|
_0805366A:
|
|
ldr r0, [r7]
|
|
adds r0, #1
|
|
str r0, [r7]
|
|
_08053670:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805367C: .4byte 0x02023D28
|
|
_08053680: .4byte 0x02023EAF
|
|
_08053684: .4byte 0x02023F60
|
|
_08053688: .4byte 0x02023E8E
|
|
_0805368C: .4byte 0x02023F0C
|
|
_08053690: .4byte 0xFFFFEFFF
|
|
_08053694: .4byte 0x020240A4
|
|
_08053698: .4byte 0x082ED220
|
|
_0805369C: .4byte 0x02023EB8
|
|
thumb_func_end atkB3_rolloutdamagecalculation
|
|
|
|
thumb_func_start atkB4_jumpifconfusedandstatmaxed
|
|
atkB4_jumpifconfusedandstatmaxed: @ 0x080536A0
|
|
push {r4, r5, lr}
|
|
ldr r5, _080536F0
|
|
ldr r0, _080536F4
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r3, r1, #0
|
|
muls r3, r0, r3
|
|
adds r0, r5, #0
|
|
adds r0, #0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
ands r0, r1
|
|
ldr r4, _080536F8
|
|
cmp r0, #0
|
|
beq _080536FC
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2, #1]
|
|
adds r0, r0, r3
|
|
adds r1, r5, #0
|
|
adds r1, #0x18
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0xc
|
|
bne _080536FC
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _08053702
|
|
.align 2, 0
|
|
_080536F0: .4byte 0x02023D28
|
|
_080536F4: .4byte 0x02023EB0
|
|
_080536F8: .4byte 0x02023EB8
|
|
_080536FC:
|
|
ldr r0, [r4]
|
|
adds r0, #6
|
|
str r0, [r4]
|
|
_08053702:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atkB4_jumpifconfusedandstatmaxed
|
|
|
|
thumb_func_start atkB5_furycuttercalc
|
|
atkB5_furycuttercalc: @ 0x08053708
|
|
push {r4, r5, lr}
|
|
ldr r0, _08053730
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053744
|
|
ldr r2, _08053734
|
|
ldr r0, _08053738
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #0x10]
|
|
ldr r1, _0805373C
|
|
ldr r0, _08053740
|
|
str r0, [r1]
|
|
b _0805379C
|
|
.align 2, 0
|
|
_08053730: .4byte 0x02023F20
|
|
_08053734: .4byte 0x02023F60
|
|
_08053738: .4byte 0x02023EAF
|
|
_0805373C: .4byte 0x02023EB8
|
|
_08053740: .4byte 0x08286FE8
|
|
_08053744:
|
|
ldr r5, _080537A4
|
|
ldr r4, _080537A8
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1, #0x10]
|
|
cmp r0, #5
|
|
beq _0805375C
|
|
adds r0, #1
|
|
strb r0, [r1, #0x10]
|
|
_0805375C:
|
|
ldr r3, _080537AC
|
|
ldr r2, _080537B0
|
|
ldr r0, _080537B4
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
strh r0, [r3]
|
|
movs r2, #1
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r4, _080537B8
|
|
ldrb r1, [r0, #0x10]
|
|
cmp r2, r1
|
|
bge _08053796
|
|
adds r1, r3, #0
|
|
adds r3, r0, #0
|
|
_08053788:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
strh r0, [r1]
|
|
adds r2, #1
|
|
ldrb r0, [r3, #0x10]
|
|
cmp r2, r0
|
|
blt _08053788
|
|
_08053796:
|
|
ldr r0, [r4]
|
|
adds r0, #1
|
|
str r0, [r4]
|
|
_0805379C:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080537A4: .4byte 0x02023F60
|
|
_080537A8: .4byte 0x02023EAF
|
|
_080537AC: .4byte 0x020240A4
|
|
_080537B0: .4byte 0x082ED220
|
|
_080537B4: .4byte 0x02023E8E
|
|
_080537B8: .4byte 0x02023EB8
|
|
thumb_func_end atkB5_furycuttercalc
|
|
|
|
thumb_func_start atkB6_happinesstodamagecalculation
|
|
atkB6_happinesstodamagecalculation: @ 0x080537BC
|
|
push {r4, lr}
|
|
ldr r2, _080537E8
|
|
ldr r0, _080537EC
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x79
|
|
bne _080537FC
|
|
ldr r4, _080537F0
|
|
ldr r2, _080537F4
|
|
ldr r0, _080537F8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2b
|
|
ldrb r1, [r0]
|
|
b _08053812
|
|
.align 2, 0
|
|
_080537E8: .4byte 0x082ED220
|
|
_080537EC: .4byte 0x02023E8E
|
|
_080537F0: .4byte 0x020240A4
|
|
_080537F4: .4byte 0x02023D28
|
|
_080537F8: .4byte 0x02023EAF
|
|
_080537FC:
|
|
ldr r4, _08053830
|
|
ldr r2, _08053834
|
|
ldr r0, _08053838
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2b
|
|
ldrb r0, [r0]
|
|
movs r1, #0xff
|
|
subs r1, r1, r0
|
|
_08053812:
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #1
|
|
movs r1, #0x19
|
|
bl __divsi3
|
|
strh r0, [r4]
|
|
ldr r1, _0805383C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053830: .4byte 0x020240A4
|
|
_08053834: .4byte 0x02023D28
|
|
_08053838: .4byte 0x02023EAF
|
|
_0805383C: .4byte 0x02023EB8
|
|
thumb_func_end atkB6_happinesstodamagecalculation
|
|
|
|
thumb_func_start atkB7_presentdamagecalculation
|
|
atkB7_presentdamagecalculation: @ 0x08053840
|
|
push {r4, lr}
|
|
bl Random
|
|
movs r4, #0xff
|
|
ands r4, r0
|
|
cmp r4, #0x65
|
|
bgt _0805385C
|
|
ldr r1, _08053858
|
|
movs r0, #0x28
|
|
strh r0, [r1]
|
|
b _0805389E
|
|
.align 2, 0
|
|
_08053858: .4byte 0x020240A4
|
|
_0805385C:
|
|
cmp r4, #0xb1
|
|
bgt _0805386C
|
|
ldr r1, _08053868
|
|
movs r0, #0x50
|
|
strh r0, [r1]
|
|
b _0805389E
|
|
.align 2, 0
|
|
_08053868: .4byte 0x020240A4
|
|
_0805386C:
|
|
cmp r4, #0xcb
|
|
bgt _0805387C
|
|
ldr r1, _08053878
|
|
movs r0, #0x78
|
|
strh r0, [r1]
|
|
b _0805389E
|
|
.align 2, 0
|
|
_08053878: .4byte 0x020240A4
|
|
_0805387C:
|
|
ldr r3, _080538A8
|
|
ldr r2, _080538AC
|
|
ldr r0, _080538B0
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #2
|
|
str r0, [r3]
|
|
cmp r0, #0
|
|
bne _08053898
|
|
movs r0, #1
|
|
str r0, [r3]
|
|
_08053898:
|
|
ldr r0, [r3]
|
|
rsbs r0, r0, #0
|
|
str r0, [r3]
|
|
_0805389E:
|
|
cmp r4, #0xcb
|
|
bgt _080538BC
|
|
ldr r1, _080538B4
|
|
ldr r0, _080538B8
|
|
b _080538F6
|
|
.align 2, 0
|
|
_080538A8: .4byte 0x02023E94
|
|
_080538AC: .4byte 0x02023D28
|
|
_080538B0: .4byte 0x02023EB0
|
|
_080538B4: .4byte 0x02023EB8
|
|
_080538B8: .4byte 0x08286FB8
|
|
_080538BC:
|
|
ldr r2, _080538D8
|
|
ldr r0, _080538DC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0, #0x2c]
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r1, r0
|
|
bne _080538E8
|
|
ldr r1, _080538E0
|
|
ldr r0, _080538E4
|
|
b _080538F6
|
|
.align 2, 0
|
|
_080538D8: .4byte 0x02023D28
|
|
_080538DC: .4byte 0x02023EB0
|
|
_080538E0: .4byte 0x02023EB8
|
|
_080538E4: .4byte 0x08288483
|
|
_080538E8:
|
|
ldr r2, _08053900
|
|
ldrb r1, [r2]
|
|
movs r0, #0xf7
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08053904
|
|
ldr r0, _08053908
|
|
_080538F6:
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053900: .4byte 0x02023F20
|
|
_08053904: .4byte 0x02023EB8
|
|
_08053908: .4byte 0x08288469
|
|
thumb_func_end atkB7_presentdamagecalculation
|
|
|
|
thumb_func_start atkB8_setsafeguard
|
|
atkB8_setsafeguard: @ 0x0805390C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r7, _08053940
|
|
ldrb r0, [r7]
|
|
bl GetBattlerPosition
|
|
ldr r4, _08053944
|
|
movs r6, #1
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r1, [r1]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053950
|
|
ldr r2, _08053948
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _0805394C
|
|
movs r0, #0
|
|
strb r0, [r1, #5]
|
|
b _08053998
|
|
.align 2, 0
|
|
_08053940: .4byte 0x02023EAF
|
|
_08053944: .4byte 0x02023F32
|
|
_08053948: .4byte 0x02023F20
|
|
_0805394C: .4byte 0x02023FD6
|
|
_08053950:
|
|
ldrb r0, [r7]
|
|
bl GetBattlerPosition
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, #0x20
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r7]
|
|
bl GetBattlerPosition
|
|
ldr r5, _080539A8
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r4, #5
|
|
strb r4, [r0, #6]
|
|
ldrb r0, [r7]
|
|
bl GetBattlerPosition
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r1, [r7]
|
|
strb r1, [r0, #7]
|
|
ldr r0, _080539AC
|
|
strb r4, [r0, #5]
|
|
_08053998:
|
|
ldr r1, _080539B0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080539A8: .4byte 0x02023F38
|
|
_080539AC: .4byte 0x02023FD6
|
|
_080539B0: .4byte 0x02023EB8
|
|
thumb_func_end atkB8_setsafeguard
|
|
|
|
thumb_func_start atkB9_magnitudedamagecalculation
|
|
atkB9_magnitudedamagecalculation: @ 0x080539B4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r3, r0, #0x10
|
|
cmp r3, #4
|
|
bgt _080539E0
|
|
ldr r1, _080539DC
|
|
movs r0, #0xa
|
|
strh r0, [r1]
|
|
movs r3, #4
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_080539DC: .4byte 0x020240A4
|
|
_080539E0:
|
|
cmp r3, #0xe
|
|
bgt _080539F4
|
|
ldr r1, _080539F0
|
|
movs r0, #0x1e
|
|
strh r0, [r1]
|
|
movs r3, #5
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_080539F0: .4byte 0x020240A4
|
|
_080539F4:
|
|
cmp r3, #0x22
|
|
bgt _08053A08
|
|
ldr r1, _08053A04
|
|
movs r0, #0x32
|
|
strh r0, [r1]
|
|
movs r3, #6
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_08053A04: .4byte 0x020240A4
|
|
_08053A08:
|
|
cmp r3, #0x40
|
|
bgt _08053A1C
|
|
ldr r1, _08053A18
|
|
movs r0, #0x46
|
|
strh r0, [r1]
|
|
movs r3, #7
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_08053A18: .4byte 0x020240A4
|
|
_08053A1C:
|
|
cmp r3, #0x54
|
|
bgt _08053A30
|
|
ldr r1, _08053A2C
|
|
movs r0, #0x5a
|
|
strh r0, [r1]
|
|
movs r3, #8
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_08053A2C: .4byte 0x020240A4
|
|
_08053A30:
|
|
cmp r3, #0x5e
|
|
bgt _08053A44
|
|
ldr r1, _08053A40
|
|
movs r0, #0x6e
|
|
strh r0, [r1]
|
|
movs r3, #9
|
|
b _08053A4C
|
|
.align 2, 0
|
|
_08053A40: .4byte 0x020240A4
|
|
_08053A44:
|
|
ldr r1, _08053AB8
|
|
movs r0, #0x96
|
|
strh r0, [r1]
|
|
movs r3, #0xa
|
|
_08053A4C:
|
|
ldr r1, _08053ABC
|
|
movs r2, #0
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
strb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
movs r0, #2
|
|
strb r0, [r1, #3]
|
|
strb r3, [r1, #4]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #5]
|
|
ldr r1, _08053AC0
|
|
strb r2, [r1]
|
|
ldr r0, _08053AC4
|
|
ldrb r3, [r0]
|
|
adds r6, r1, #0
|
|
ldr r0, _08053AC8
|
|
mov r8, r0
|
|
cmp r2, r3
|
|
bhs _08053AA4
|
|
adds r4, r6, #0
|
|
ldr r0, _08053ACC
|
|
ldrb r5, [r0]
|
|
ldr r1, _08053AD0
|
|
mov ip, r1
|
|
ldr r7, _08053AD4
|
|
_08053A82:
|
|
ldrb r2, [r4]
|
|
cmp r2, r5
|
|
beq _08053A98
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
add r1, ip
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053AA4
|
|
_08053A98:
|
|
adds r0, r2, #1
|
|
strb r0, [r4]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r3
|
|
blo _08053A82
|
|
_08053AA4:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053AB8: .4byte 0x020240A4
|
|
_08053ABC: .4byte 0x02022C0C
|
|
_08053AC0: .4byte 0x02023EB0
|
|
_08053AC4: .4byte 0x02023D10
|
|
_08053AC8: .4byte 0x02023EB8
|
|
_08053ACC: .4byte 0x02023EAF
|
|
_08053AD0: .4byte 0x082FACB4
|
|
_08053AD4: .4byte 0x02023EB4
|
|
thumb_func_end atkB9_magnitudedamagecalculation
|
|
|
|
thumb_func_start atkBA_jumpifnopursuitswitchdmg
|
|
atkBA_jumpifnopursuitswitchdmg: @ 0x08053AD8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r0, _08053AFC
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08053B08
|
|
ldr r0, _08053B00
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08053B04
|
|
movs r0, #1
|
|
b _08053B22
|
|
.align 2, 0
|
|
_08053AFC: .4byte 0x02023EB6
|
|
_08053B00: .4byte 0x02023EAF
|
|
_08053B04:
|
|
movs r0, #0
|
|
b _08053B22
|
|
_08053B08:
|
|
ldr r0, _08053B1C
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08053B20
|
|
movs r0, #3
|
|
b _08053B22
|
|
.align 2, 0
|
|
_08053B1C: .4byte 0x02023EAF
|
|
_08053B20:
|
|
movs r0, #2
|
|
_08053B22:
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08053BFC
|
|
strb r0, [r1]
|
|
ldr r0, _08053C00
|
|
ldr r1, _08053BFC
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08053B3A
|
|
b _08053C40
|
|
_08053B3A:
|
|
ldr r5, _08053C04
|
|
ldr r0, _08053C08
|
|
ldr r1, [r0]
|
|
adds r1, r3, r1
|
|
ldrb r2, [r5]
|
|
ldrb r1, [r1, #0xc]
|
|
cmp r2, r1
|
|
bne _08053C40
|
|
ldr r4, _08053C0C
|
|
movs r2, #0x58
|
|
adds r0, r3, #0
|
|
muls r0, r2, r0
|
|
adds r1, r4, #0
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x27
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08053C40
|
|
ldrb r0, [r5]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
beq _08053C40
|
|
ldr r0, _08053C10
|
|
lsls r1, r3, #3
|
|
subs r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1, #0x18]
|
|
lsls r0, r0, #0x1f
|
|
cmp r0, #0
|
|
bne _08053C40
|
|
ldr r0, _08053C14
|
|
lsls r1, r3, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0xe4
|
|
bne _08053C40
|
|
movs r1, #0
|
|
ldr r0, _08053C18
|
|
ldr r2, _08053C1C
|
|
mov r8, r2
|
|
ldr r7, _08053C20
|
|
mov sl, r7
|
|
ldr r2, _08053C24
|
|
mov sb, r2
|
|
ldr r7, _08053C28
|
|
mov ip, r7
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
bge _08053BC6
|
|
ldr r6, _08053C2C
|
|
ldr r5, _08053BFC
|
|
ldr r4, _08053C30
|
|
movs r3, #0xb
|
|
adds r2, r0, #0
|
|
_08053BB0:
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r5]
|
|
cmp r0, r7
|
|
bne _08053BBE
|
|
adds r0, r1, r4
|
|
strb r3, [r0]
|
|
_08053BBE:
|
|
adds r1, #1
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
blt _08053BB0
|
|
_08053BC6:
|
|
movs r0, #0xe4
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r2, _08053BFC
|
|
ldrb r0, [r2]
|
|
ldr r7, _08053C08
|
|
ldr r1, [r7]
|
|
adds r0, r0, r1
|
|
adds r0, #0x80
|
|
ldrb r0, [r0]
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
mov r2, sl
|
|
strb r0, [r2]
|
|
ldr r7, _08053C34
|
|
ldr r0, [r7]
|
|
adds r0, #5
|
|
str r0, [r7]
|
|
movs r0, #1
|
|
ldr r1, _08053C38
|
|
strb r0, [r1, #0x18]
|
|
mov r2, ip
|
|
ldr r0, [r2]
|
|
ldr r1, _08053C3C
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _08053C5A
|
|
.align 2, 0
|
|
_08053BFC: .4byte 0x02023EB0
|
|
_08053C00: .4byte 0x02023EC0
|
|
_08053C04: .4byte 0x02023EAF
|
|
_08053C08: .4byte 0x02024140
|
|
_08053C0C: .4byte 0x02023D28
|
|
_08053C10: .4byte 0x02023F60
|
|
_08053C14: .4byte 0x02023F18
|
|
_08053C18: .4byte 0x02023D10
|
|
_08053C1C: .4byte 0x02023E8E
|
|
_08053C20: .4byte 0x02023E8C
|
|
_08053C24: .4byte 0x02023E8D
|
|
_08053C28: .4byte 0x02023F24
|
|
_08053C2C: .4byte 0x02023D22
|
|
_08053C30: .4byte 0x02023D1E
|
|
_08053C34: .4byte 0x02023EB8
|
|
_08053C38: .4byte 0x02024118
|
|
_08053C3C: .4byte 0xFFFFFBFF
|
|
_08053C40:
|
|
ldr r3, _08053C68
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08053C5A:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053C68: .4byte 0x02023EB8
|
|
thumb_func_end atkBA_jumpifnopursuitswitchdmg
|
|
|
|
thumb_func_start atkBB_setsunny
|
|
atkBB_setsunny: @ 0x08053C6C
|
|
push {lr}
|
|
ldr r2, _08053C8C
|
|
ldrh r1, [r2]
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053C98
|
|
ldr r2, _08053C90
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08053C94
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
b _08053CAA
|
|
.align 2, 0
|
|
_08053C8C: .4byte 0x02024070
|
|
_08053C90: .4byte 0x02023F20
|
|
_08053C94: .4byte 0x02023FD6
|
|
_08053C98:
|
|
movs r0, #0x20
|
|
strh r0, [r2]
|
|
ldr r1, _08053CB8
|
|
movs r0, #4
|
|
strb r0, [r1, #5]
|
|
ldr r0, _08053CBC
|
|
adds r0, #0x28
|
|
movs r1, #5
|
|
strb r1, [r0]
|
|
_08053CAA:
|
|
ldr r1, _08053CC0
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053CB8: .4byte 0x02023FD6
|
|
_08053CBC: .4byte 0x02024074
|
|
_08053CC0: .4byte 0x02023EB8
|
|
thumb_func_end atkBB_setsunny
|
|
|
|
thumb_func_start atkBC_maxattackhalvehp
|
|
atkBC_maxattackhalvehp: @ 0x08053CC4
|
|
push {r4, r5, lr}
|
|
ldr r5, _08053D10
|
|
ldr r4, _08053D14
|
|
ldrb r0, [r4]
|
|
movs r3, #0x58
|
|
muls r0, r3, r0
|
|
adds r2, r0, r5
|
|
ldrh r0, [r2, #0x2c]
|
|
lsrs r1, r0, #1
|
|
cmp r1, #0
|
|
bne _08053CDC
|
|
movs r1, #1
|
|
_08053CDC:
|
|
movs r0, #0x19
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, #0xb
|
|
bgt _08053D20
|
|
ldrh r0, [r2, #0x28]
|
|
cmp r0, r1
|
|
bls _08053D20
|
|
movs r0, #0xc
|
|
strb r0, [r2, #0x19]
|
|
ldr r1, _08053D18
|
|
ldrb r0, [r4]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #1
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _08053D04
|
|
movs r0, #1
|
|
str r0, [r1]
|
|
_08053D04:
|
|
ldr r1, _08053D1C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08053D3A
|
|
.align 2, 0
|
|
_08053D10: .4byte 0x02023D28
|
|
_08053D14: .4byte 0x02023EAF
|
|
_08053D18: .4byte 0x02023E94
|
|
_08053D1C: .4byte 0x02023EB8
|
|
_08053D20:
|
|
ldr r3, _08053D40
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08053D3A:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053D40: .4byte 0x02023EB8
|
|
thumb_func_end atkBC_maxattackhalvehp
|
|
|
|
thumb_func_start atkBD_copyfoestats
|
|
atkBD_copyfoestats: @ 0x08053D44
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r2, #0
|
|
ldr r7, _08053D7C
|
|
ldr r6, _08053D80
|
|
movs r4, #0x58
|
|
ldr r3, _08053D84
|
|
ldr r5, _08053D88
|
|
_08053D52:
|
|
ldrb r0, [r6]
|
|
adds r1, r0, #0
|
|
muls r1, r4, r1
|
|
adds r1, r2, r1
|
|
adds r1, r1, r3
|
|
ldrb r0, [r5]
|
|
muls r0, r4, r0
|
|
adds r0, r2, r0
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, #1
|
|
cmp r2, #7
|
|
ble _08053D52
|
|
ldr r0, [r7]
|
|
adds r0, #5
|
|
str r0, [r7]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053D7C: .4byte 0x02023EB8
|
|
_08053D80: .4byte 0x02023EAF
|
|
_08053D84: .4byte 0x02023D40
|
|
_08053D88: .4byte 0x02023EB0
|
|
thumb_func_end atkBD_copyfoestats
|
|
|
|
thumb_func_start atkBE_rapidspinfree
|
|
atkBE_rapidspinfree: @ 0x08053D8C
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _08053DFC
|
|
ldr r5, _08053E00
|
|
ldrb r2, [r5]
|
|
movs r6, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r6, r0
|
|
adds r4, r1, #0
|
|
adds r4, #0x50
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053E20
|
|
ldr r1, _08053E04
|
|
ldr r3, _08053E08
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, #0x17]
|
|
ldrb r0, [r5]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
ldr r2, _08053E0C
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r5]
|
|
ldr r1, _08053E10
|
|
ldr r2, [r1]
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #0x14]
|
|
strb r0, [r3]
|
|
ldr r1, _08053E14
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #4]
|
|
strb r0, [r1, #2]
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #5]
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08053E18
|
|
ldr r0, _08053E1C
|
|
b _08053ECA
|
|
.align 2, 0
|
|
_08053DFC: .4byte 0x02023D28
|
|
_08053E00: .4byte 0x02023EAF
|
|
_08053E04: .4byte 0x02024118
|
|
_08053E08: .4byte 0x02023EB0
|
|
_08053E0C: .4byte 0xFFFF1FFF
|
|
_08053E10: .4byte 0x02024140
|
|
_08053E14: .4byte 0x02022C0C
|
|
_08053E18: .4byte 0x02023EB8
|
|
_08053E1C: .4byte 0x0828954D
|
|
_08053E20:
|
|
ldr r4, _08053E54
|
|
lsls r0, r2, #2
|
|
adds r3, r0, r4
|
|
ldr r1, [r3]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053E60
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, #4
|
|
rsbs r2, r2, #0
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08053E58
|
|
ldr r0, _08053E5C
|
|
b _08053ECA
|
|
.align 2, 0
|
|
_08053E54: .4byte 0x02023F50
|
|
_08053E58: .4byte 0x02023EB8
|
|
_08053E5C: .4byte 0x0828955E
|
|
_08053E60:
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
ldr r4, _08053EB0
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r4
|
|
ldrh r1, [r0]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053EC4
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x17
|
|
adds r0, r0, r4
|
|
ldrh r2, [r0]
|
|
ldr r1, _08053EB4
|
|
ands r1, r2
|
|
movs r4, #0
|
|
strh r1, [r0]
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
ldr r2, _08053EB8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
strb r4, [r1, #0xa]
|
|
bl BattleScriptPushCursor
|
|
ldr r1, _08053EBC
|
|
ldr r0, _08053EC0
|
|
b _08053ECA
|
|
.align 2, 0
|
|
_08053EB0: .4byte 0x02023F32
|
|
_08053EB4: .4byte 0x0000FFEF
|
|
_08053EB8: .4byte 0x02023F38
|
|
_08053EBC: .4byte 0x02023EB8
|
|
_08053EC0: .4byte 0x08289565
|
|
_08053EC4:
|
|
ldr r1, _08053ED4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
_08053ECA:
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08053ED4: .4byte 0x02023EB8
|
|
thumb_func_end atkBE_rapidspinfree
|
|
|
|
thumb_func_start atkBF_setdefensecurlbit
|
|
atkBF_setdefensecurlbit: @ 0x08053ED8
|
|
ldr r1, _08053EFC
|
|
ldr r0, _08053F00
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r2, r0, r2
|
|
adds r1, #0x50
|
|
adds r2, r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x17
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08053F04
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08053EFC: .4byte 0x02023D28
|
|
_08053F00: .4byte 0x02023EAF
|
|
_08053F04: .4byte 0x02023EB8
|
|
thumb_func_end atkBF_setdefensecurlbit
|
|
|
|
thumb_func_start atkC0_recoverbasedonsunlight
|
|
atkC0_recoverbasedonsunlight: @ 0x08053F08
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
ldr r1, _08053F74
|
|
ldr r5, _08053F78
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
ldr r7, _08053F7C
|
|
ldrb r0, [r5]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r1, [r0, #0x28]
|
|
ldrh r0, [r0, #0x2c]
|
|
cmp r1, r0
|
|
beq _08053FE8
|
|
ldr r4, _08053F80
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _08053F5A
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08053F5A
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08053F88
|
|
_08053F5A:
|
|
ldr r3, _08053F84
|
|
ldr r2, _08053F7C
|
|
ldr r0, _08053F78
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #1
|
|
str r0, [r3]
|
|
adds r1, r3, #0
|
|
b _08053FC2
|
|
.align 2, 0
|
|
_08053F74: .4byte 0x02023EB0
|
|
_08053F78: .4byte 0x02023EAF
|
|
_08053F7C: .4byte 0x02023D28
|
|
_08053F80: .4byte 0x02024070
|
|
_08053F84: .4byte 0x02023E94
|
|
_08053F88:
|
|
ldrh r1, [r4]
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08053FB4
|
|
ldr r4, _08053FB0
|
|
ldrb r0, [r5]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r1, [r0, #0x2c]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
movs r1, #0x1e
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
adds r1, r4, #0
|
|
b _08053FC2
|
|
.align 2, 0
|
|
_08053FB0: .4byte 0x02023E94
|
|
_08053FB4:
|
|
ldr r1, _08053FE0
|
|
ldrb r0, [r5]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #2
|
|
str r0, [r1]
|
|
_08053FC2:
|
|
adds r2, r1, #0
|
|
ldr r0, [r2]
|
|
cmp r0, #0
|
|
bne _08053FCE
|
|
movs r0, #1
|
|
str r0, [r2]
|
|
_08053FCE:
|
|
ldr r0, [r1]
|
|
rsbs r0, r0, #0
|
|
str r0, [r1]
|
|
ldr r1, _08053FE4
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08054002
|
|
.align 2, 0
|
|
_08053FE0: .4byte 0x02023E94
|
|
_08053FE4: .4byte 0x02023EB8
|
|
_08053FE8:
|
|
ldr r3, _0805400C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054002:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805400C: .4byte 0x02023EB8
|
|
thumb_func_end atkC0_recoverbasedonsunlight
|
|
|
|
thumb_func_start atkC1_hiddenpowercalc
|
|
atkC1_hiddenpowercalc: @ 0x08054010
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r2, _08054120
|
|
ldr r0, _08054124
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
adds r4, r1, #0
|
|
muls r4, r0, r4
|
|
adds r4, r4, r2
|
|
ldrb r0, [r4, #0x14]
|
|
mov sl, r0
|
|
mov r7, sl
|
|
lsls r7, r7, #0x1b
|
|
adds r0, r7, #0
|
|
lsrs r0, r0, #0x1b
|
|
mov sl, r0
|
|
movs r1, #2
|
|
mov r2, sl
|
|
ands r2, r1
|
|
asrs r2, r2, #1
|
|
ldrh r7, [r4, #0x14]
|
|
mov sb, r7
|
|
mov r0, sb
|
|
lsls r0, r0, #0x16
|
|
mov sb, r0
|
|
lsrs r3, r0, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
orrs r2, r0
|
|
ldrb r7, [r4, #0x15]
|
|
mov r8, r7
|
|
mov r0, r8
|
|
lsls r0, r0, #0x19
|
|
mov r8, r0
|
|
lsrs r3, r0, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
lsls r0, r0, #1
|
|
orrs r2, r0
|
|
ldr r6, [r4, #0x14]
|
|
lsls r6, r6, #0xc
|
|
lsrs r3, r6, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
lsls r0, r0, #2
|
|
orrs r2, r0
|
|
ldrh r5, [r4, #0x16]
|
|
lsls r5, r5, #0x17
|
|
lsrs r3, r5, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
lsls r0, r0, #3
|
|
orrs r2, r0
|
|
ldrb r3, [r4, #0x17]
|
|
lsls r3, r3, #0x1a
|
|
lsrs r0, r3, #0x1b
|
|
ands r1, r0
|
|
lsls r1, r1, #4
|
|
orrs r2, r1
|
|
movs r1, #1
|
|
adds r4, r1, #0
|
|
mov r7, sl
|
|
ands r4, r7
|
|
mov r0, sb
|
|
lsrs r0, r0, #0x1b
|
|
mov sb, r0
|
|
adds r0, r1, #0
|
|
mov r7, sb
|
|
ands r0, r7
|
|
lsls r0, r0, #1
|
|
orrs r4, r0
|
|
mov r0, r8
|
|
lsrs r0, r0, #0x1b
|
|
mov r8, r0
|
|
adds r0, r1, #0
|
|
mov r7, r8
|
|
ands r0, r7
|
|
lsls r0, r0, #2
|
|
orrs r4, r0
|
|
lsrs r6, r6, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r6
|
|
lsls r0, r0, #3
|
|
orrs r4, r0
|
|
lsrs r5, r5, #0x1b
|
|
adds r0, r1, #0
|
|
ands r0, r5
|
|
lsls r0, r0, #4
|
|
orrs r4, r0
|
|
lsrs r3, r3, #0x1b
|
|
ands r1, r3
|
|
lsls r1, r1, #5
|
|
orrs r4, r1
|
|
ldr r5, _08054128
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #3
|
|
movs r1, #0x3f
|
|
bl __divsi3
|
|
adds r0, #0x1e
|
|
strh r0, [r5]
|
|
ldr r6, _0805412C
|
|
ldr r5, [r6]
|
|
lsls r0, r4, #4
|
|
subs r0, r0, r4
|
|
movs r1, #0x3f
|
|
bl __divsi3
|
|
adds r0, #1
|
|
strb r0, [r5, #0x13]
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, #0x13]
|
|
cmp r0, #8
|
|
bls _08054100
|
|
adds r0, #1
|
|
strb r0, [r1, #0x13]
|
|
_08054100:
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, #0x13]
|
|
movs r1, #0xc0
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x13]
|
|
ldr r1, _08054130
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054120: .4byte 0x02023D28
|
|
_08054124: .4byte 0x02023EAF
|
|
_08054128: .4byte 0x020240A4
|
|
_0805412C: .4byte 0x02024140
|
|
_08054130: .4byte 0x02023EB8
|
|
thumb_func_end atkC1_hiddenpowercalc
|
|
|
|
thumb_func_start atkC2_selectfirstvalidtarget
|
|
atkC2_selectfirstvalidtarget: @ 0x08054134
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _08054190
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r1, _08054194
|
|
ldrb r1, [r1]
|
|
adds r6, r0, #0
|
|
ldr r0, _08054198
|
|
mov r8, r0
|
|
cmp r1, #0
|
|
beq _0805417E
|
|
adds r3, r6, #0
|
|
ldr r0, _0805419C
|
|
ldrb r5, [r0]
|
|
ldr r0, _080541A0
|
|
mov ip, r0
|
|
adds r4, r1, #0
|
|
ldr r7, _080541A4
|
|
_0805415C:
|
|
ldrb r2, [r3]
|
|
cmp r2, r5
|
|
beq _08054172
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
add r1, ip
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805417E
|
|
_08054172:
|
|
adds r0, r2, #1
|
|
strb r0, [r3]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r4
|
|
blo _0805415C
|
|
_0805417E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054190: .4byte 0x02023EB0
|
|
_08054194: .4byte 0x02023D10
|
|
_08054198: .4byte 0x02023EB8
|
|
_0805419C: .4byte 0x02023EAF
|
|
_080541A0: .4byte 0x082FACB4
|
|
_080541A4: .4byte 0x02023EB4
|
|
thumb_func_end atkC2_selectfirstvalidtarget
|
|
|
|
thumb_func_start atkC3_trysetfutureattack
|
|
atkC3_trysetfutureattack: @ 0x080541A8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x14
|
|
ldr r0, _080541E0
|
|
mov r8, r0
|
|
ldr r6, _080541E4
|
|
ldrb r1, [r6]
|
|
adds r0, r1, r0
|
|
ldrb r7, [r0]
|
|
cmp r7, #0
|
|
beq _080541EC
|
|
ldr r3, _080541E8
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080542DC
|
|
.align 2, 0
|
|
_080541E0: .4byte 0x02024074
|
|
_080541E4: .4byte 0x02023EB0
|
|
_080541E8: .4byte 0x02023EB8
|
|
_080541EC:
|
|
adds r0, r1, #0
|
|
bl GetBattlerPosition
|
|
ldr r4, _080542B0
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #1
|
|
mov sl, r1
|
|
ands r0, r1
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r4
|
|
ldrh r2, [r0]
|
|
movs r1, #0x40
|
|
movs r5, #0
|
|
mov r3, sp
|
|
strh r5, [r3, #0x10]
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
mov r1, r8
|
|
adds r1, #0x18
|
|
adds r0, r0, r1
|
|
ldr r1, _080542B4
|
|
mov sb, r1
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
mov r0, r8
|
|
adds r0, #4
|
|
ldrb r2, [r6]
|
|
adds r0, r0, r2
|
|
ldr r5, _080542B8
|
|
ldrb r1, [r5]
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
add r0, r8
|
|
movs r1, #3
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
mov r1, sl
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r3, [r1]
|
|
ldrb r0, [r5]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
ldr r2, _080542BC
|
|
adds r0, r0, r2
|
|
ldrb r1, [r6]
|
|
muls r1, r4, r1
|
|
adds r1, r1, r2
|
|
mov r4, sb
|
|
ldrh r2, [r4]
|
|
str r7, [sp]
|
|
str r7, [sp, #4]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, #8]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, #0xc]
|
|
bl CalculateBaseDamage
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
mov r2, r8
|
|
adds r2, #8
|
|
adds r1, r1, r2
|
|
str r0, [r1]
|
|
ldr r1, _080542C0
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
bge _0805429C
|
|
ldrb r4, [r6]
|
|
lsls r4, r4, #2
|
|
adds r4, r4, r2
|
|
ldr r1, [r4]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0805429C:
|
|
mov r5, sb
|
|
ldrh r1, [r5]
|
|
ldr r0, _080542C4
|
|
cmp r1, r0
|
|
bne _080542CC
|
|
ldr r0, _080542C8
|
|
mov r1, sl
|
|
strb r1, [r0, #5]
|
|
b _080542D4
|
|
.align 2, 0
|
|
_080542B0: .4byte 0x02023F32
|
|
_080542B4: .4byte 0x02023E8E
|
|
_080542B8: .4byte 0x02023EAF
|
|
_080542BC: .4byte 0x02023D28
|
|
_080542C0: .4byte 0x02023FE0
|
|
_080542C4: .4byte 0x00000161
|
|
_080542C8: .4byte 0x02023FD6
|
|
_080542CC:
|
|
ldr r0, _080542EC
|
|
mov r2, sp
|
|
ldrb r2, [r2, #0x10]
|
|
strb r2, [r0, #5]
|
|
_080542D4:
|
|
ldr r1, _080542F0
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080542DC:
|
|
add sp, #0x14
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080542EC: .4byte 0x02023FD6
|
|
_080542F0: .4byte 0x02023EB8
|
|
thumb_func_end atkC3_trysetfutureattack
|
|
|
|
thumb_func_start atkC4_trydobeatup
|
|
atkC4_trydobeatup: @ 0x080542F4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r0, _08054338
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
ldr r7, _0805433C
|
|
cmp r0, #0
|
|
bne _0805430E
|
|
ldr r7, _08054340
|
|
_0805430E:
|
|
ldr r2, _08054344
|
|
ldr r0, _08054348
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _08054350
|
|
ldr r3, _0805434C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
b _080544EC
|
|
.align 2, 0
|
|
_08054338: .4byte 0x02023EAF
|
|
_0805433C: .4byte 0x020243E8
|
|
_08054340: .4byte 0x02024190
|
|
_08054344: .4byte 0x02023D28
|
|
_08054348: .4byte 0x02023EB0
|
|
_0805434C: .4byte 0x02023EB8
|
|
_08054350:
|
|
ldr r6, _0805448C
|
|
ldrb r0, [r6]
|
|
mov r8, r0
|
|
cmp r0, #5
|
|
bls _0805435C
|
|
b _080544B8
|
|
_0805435C:
|
|
adds r4, r6, #0
|
|
movs r5, #0x64
|
|
_08054360:
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _080543A4
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _080543A4
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
movs r1, #0xce
|
|
lsls r1, r1, #1
|
|
cmp r0, r1
|
|
beq _080543A4
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0x37
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _080543B4
|
|
_080543A4:
|
|
ldrb r0, [r4]
|
|
adds r0, #1
|
|
strb r0, [r4]
|
|
adds r6, r4, #0
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #5
|
|
bls _08054360
|
|
_080543B4:
|
|
ldr r1, _0805448C
|
|
mov sb, r1
|
|
ldrb r2, [r1]
|
|
cmp r2, #5
|
|
bhi _080544B8
|
|
ldr r1, _08054490
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #4
|
|
strb r0, [r1, #1]
|
|
ldr r6, _08054494
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #2]
|
|
strb r2, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _08054498
|
|
ldr r0, [r1]
|
|
adds r0, #9
|
|
str r0, [r1]
|
|
ldr r2, _0805449C
|
|
mov r8, r2
|
|
ldr r5, _080544A0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
movs r4, #0x64
|
|
muls r0, r4, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r3, [r1, #1]
|
|
mov r2, r8
|
|
str r3, [r2]
|
|
ldr r2, _080544A4
|
|
ldr r0, _080544A8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #1]
|
|
muls r0, r3, r0
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
muls r0, r4, r0
|
|
adds r0, r7, r0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
lsls r0, r0, #1
|
|
movs r1, #5
|
|
bl __udivsi3
|
|
adds r0, #2
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
muls r0, r1, r0
|
|
str r0, [r2]
|
|
ldr r3, _080544AC
|
|
ldr r1, _080544B0
|
|
ldrb r2, [r1]
|
|
movs r1, #0x58
|
|
muls r1, r2, r1
|
|
adds r1, r1, r3
|
|
ldrh r2, [r1]
|
|
lsls r1, r2, #3
|
|
subs r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r1, [r1, #2]
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r1, #0x32
|
|
bl __divsi3
|
|
adds r2, r0, #2
|
|
mov r0, r8
|
|
str r2, [r0]
|
|
ldr r1, _080544B4
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
bge _08054480
|
|
lsls r0, r2, #4
|
|
subs r0, r0, r2
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
_08054480:
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
adds r0, #1
|
|
strb r0, [r2]
|
|
b _080544F2
|
|
.align 2, 0
|
|
_0805448C: .4byte 0x02023FD6
|
|
_08054490: .4byte 0x02022C0C
|
|
_08054494: .4byte 0x02023EAF
|
|
_08054498: .4byte 0x02023EB8
|
|
_0805449C: .4byte 0x02023E94
|
|
_080544A0: .4byte 0x082F0D54
|
|
_080544A4: .4byte 0x082ED220
|
|
_080544A8: .4byte 0x02023E8E
|
|
_080544AC: .4byte 0x02023D28
|
|
_080544B0: .4byte 0x02023EB0
|
|
_080544B4: .4byte 0x02023FE0
|
|
_080544B8:
|
|
mov r0, r8
|
|
cmp r0, #0
|
|
beq _080544D8
|
|
ldr r3, _080544D4
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
b _080544EC
|
|
.align 2, 0
|
|
_080544D4: .4byte 0x02023EB8
|
|
_080544D8:
|
|
ldr r3, _08054500
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #5]
|
|
ldrb r0, [r2, #6]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #7]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #8]
|
|
_080544EC:
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080544F2:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054500: .4byte 0x02023EB8
|
|
thumb_func_end atkC4_trydobeatup
|
|
|
|
thumb_func_start atkC5_setsemiinvulnerablebit
|
|
atkC5_setsemiinvulnerablebit: @ 0x08054504
|
|
push {lr}
|
|
ldr r0, _08054518
|
|
ldrh r1, [r0]
|
|
cmp r1, #0x5b
|
|
beq _08054544
|
|
cmp r1, #0x5b
|
|
bgt _0805451C
|
|
cmp r1, #0x13
|
|
beq _08054528
|
|
b _08054570
|
|
.align 2, 0
|
|
_08054518: .4byte 0x02023E8E
|
|
_0805451C:
|
|
ldr r0, _08054538
|
|
cmp r1, r0
|
|
beq _0805455C
|
|
adds r0, #0x31
|
|
cmp r1, r0
|
|
bne _08054570
|
|
_08054528:
|
|
ldr r2, _0805453C
|
|
ldr r0, _08054540
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x40
|
|
b _0805456C
|
|
.align 2, 0
|
|
_08054538: .4byte 0x00000123
|
|
_0805453C: .4byte 0x02023F50
|
|
_08054540: .4byte 0x02023EAF
|
|
_08054544:
|
|
ldr r2, _08054554
|
|
ldr r0, _08054558
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
b _0805456C
|
|
.align 2, 0
|
|
_08054554: .4byte 0x02023F50
|
|
_08054558: .4byte 0x02023EAF
|
|
_0805455C:
|
|
ldr r2, _0805457C
|
|
ldr r0, _08054580
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0xb
|
|
_0805456C:
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
_08054570:
|
|
ldr r1, _08054584
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805457C: .4byte 0x02023F50
|
|
_08054580: .4byte 0x02023EAF
|
|
_08054584: .4byte 0x02023EB8
|
|
thumb_func_end atkC5_setsemiinvulnerablebit
|
|
|
|
thumb_func_start sub_08054588
|
|
sub_08054588: @ 0x08054588
|
|
push {lr}
|
|
ldr r0, _0805459C
|
|
ldrh r1, [r0]
|
|
cmp r1, #0x5b
|
|
beq _080545CC
|
|
cmp r1, #0x5b
|
|
bgt _080545A0
|
|
cmp r1, #0x13
|
|
beq _080545AC
|
|
b _080545FA
|
|
.align 2, 0
|
|
_0805459C: .4byte 0x02023E8E
|
|
_080545A0:
|
|
ldr r0, _080545C0
|
|
cmp r1, r0
|
|
beq _080545E8
|
|
adds r0, #0x31
|
|
cmp r1, r0
|
|
bne _080545FA
|
|
_080545AC:
|
|
ldr r2, _080545C4
|
|
ldr r0, _080545C8
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x41
|
|
rsbs r2, r2, #0
|
|
b _080545F6
|
|
.align 2, 0
|
|
_080545C0: .4byte 0x00000123
|
|
_080545C4: .4byte 0x02023F50
|
|
_080545C8: .4byte 0x02023EAF
|
|
_080545CC:
|
|
ldr r2, _080545E0
|
|
ldr r0, _080545E4
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x81
|
|
rsbs r2, r2, #0
|
|
b _080545F6
|
|
.align 2, 0
|
|
_080545E0: .4byte 0x02023F50
|
|
_080545E4: .4byte 0x02023EAF
|
|
_080545E8:
|
|
ldr r2, _08054608
|
|
ldr r0, _0805460C
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
ldr r2, _08054610
|
|
_080545F6:
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_080545FA:
|
|
ldr r1, _08054614
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054608: .4byte 0x02023F50
|
|
_0805460C: .4byte 0x02023EAF
|
|
_08054610: .4byte 0xFFFBFFFF
|
|
_08054614: .4byte 0x02023EB8
|
|
thumb_func_end sub_08054588
|
|
|
|
thumb_func_start atkC7_setminimize
|
|
atkC7_setminimize: @ 0x08054618
|
|
push {lr}
|
|
ldr r0, _08054648
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x12
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805463C
|
|
ldr r2, _0805464C
|
|
ldr r0, _08054650
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
_0805463C:
|
|
ldr r1, _08054654
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054648: .4byte 0x02023F24
|
|
_0805464C: .4byte 0x02023F50
|
|
_08054650: .4byte 0x02023EAF
|
|
_08054654: .4byte 0x02023EB8
|
|
thumb_func_end atkC7_setminimize
|
|
|
|
thumb_func_start atkC8_sethail
|
|
atkC8_sethail: @ 0x08054658
|
|
push {lr}
|
|
ldr r3, _0805467C
|
|
ldrh r1, [r3]
|
|
movs r2, #0x80
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08054688
|
|
ldr r2, _08054680
|
|
ldrb r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08054684
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
b _08054696
|
|
.align 2, 0
|
|
_0805467C: .4byte 0x02024070
|
|
_08054680: .4byte 0x02023F20
|
|
_08054684: .4byte 0x02023FD6
|
|
_08054688:
|
|
strh r2, [r3]
|
|
ldr r0, _080546A4
|
|
movs r1, #5
|
|
strb r1, [r0, #5]
|
|
ldr r0, _080546A8
|
|
adds r0, #0x28
|
|
strb r1, [r0]
|
|
_08054696:
|
|
ldr r1, _080546AC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080546A4: .4byte 0x02023FD6
|
|
_080546A8: .4byte 0x02024074
|
|
_080546AC: .4byte 0x02023EB8
|
|
thumb_func_end atkC8_sethail
|
|
|
|
thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
|
|
atkC9_jumpifattackandspecialattackcannotfall: @ 0x080546B0
|
|
push {r4, lr}
|
|
ldr r2, _080546F4
|
|
ldr r0, _080546F8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r1, r0, r2
|
|
movs r0, #0x19
|
|
ldrsb r0, [r1, r0]
|
|
adds r3, r2, #0
|
|
cmp r0, #0
|
|
bne _08054704
|
|
movs r0, #0x1c
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _08054704
|
|
ldr r0, _080546FC
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #1
|
|
beq _08054704
|
|
ldr r3, _08054700
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054730
|
|
.align 2, 0
|
|
_080546F4: .4byte 0x02023D28
|
|
_080546F8: .4byte 0x02023EB0
|
|
_080546FC: .4byte 0x02023FD6
|
|
_08054700: .4byte 0x02023EB8
|
|
_08054704:
|
|
ldr r4, _08054738
|
|
ldr r0, _0805473C
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r2, _08054740
|
|
ldrb r1, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0, #0x28]
|
|
str r0, [r2]
|
|
ldr r1, _08054744
|
|
movs r0, #0
|
|
bl BtlController_EmitHealthBarUpdate
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08054748
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08054730:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054738: .4byte 0x02023D08
|
|
_0805473C: .4byte 0x02023EAF
|
|
_08054740: .4byte 0x02023E94
|
|
_08054744: .4byte 0x00007FFF
|
|
_08054748: .4byte 0x02023EB8
|
|
thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
|
|
|
|
thumb_func_start atkCA_setforcedtarget
|
|
atkCA_setforcedtarget: @ 0x0805474C
|
|
push {r4, r5, lr}
|
|
ldr r4, _0805478C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
ldr r5, _08054790
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
movs r0, #1
|
|
strb r0, [r1, #8]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #9]
|
|
ldr r1, _08054794
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805478C: .4byte 0x02023EAF
|
|
_08054790: .4byte 0x02023F38
|
|
_08054794: .4byte 0x02023EB8
|
|
thumb_func_end atkCA_setforcedtarget
|
|
|
|
thumb_func_start atkCB_setcharge
|
|
atkCB_setcharge: @ 0x08054798
|
|
push {r4, lr}
|
|
ldr r0, _080547EC
|
|
ldr r3, _080547F0
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #2
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r4, _080547F4
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r2, [r0, #0x12]
|
|
movs r1, #0x10
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
movs r2, #2
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x12]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r2, [r0, #0x12]
|
|
movs r1, #0xf
|
|
ands r1, r2
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x12]
|
|
ldr r1, _080547F8
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080547EC: .4byte 0x02023F50
|
|
_080547F0: .4byte 0x02023EAF
|
|
_080547F4: .4byte 0x02023F60
|
|
_080547F8: .4byte 0x02023EB8
|
|
thumb_func_end atkCB_setcharge
|
|
|
|
thumb_func_start atkCC_callterrainattack
|
|
atkCC_callterrainattack: @ 0x080547FC
|
|
push {r4, lr}
|
|
ldr r2, _0805484C
|
|
ldr r0, [r2]
|
|
ldr r1, _08054850
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, _08054854
|
|
ldr r1, _08054858
|
|
ldr r0, _0805485C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _08054860
|
|
strb r0, [r1]
|
|
ldr r3, _08054864
|
|
ldr r2, _08054868
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
bl BattleScriptPush
|
|
ldr r1, _0805486C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805484C: .4byte 0x02023F24
|
|
_08054850: .4byte 0xFFFFFBFF
|
|
_08054854: .4byte 0x02023E8E
|
|
_08054858: .4byte 0x082ECD98
|
|
_0805485C: .4byte 0x02022C94
|
|
_08054860: .4byte 0x02023EB0
|
|
_08054864: .4byte 0x08286C30
|
|
_08054868: .4byte 0x082ED220
|
|
_0805486C: .4byte 0x02023EB8
|
|
thumb_func_end atkCC_callterrainattack
|
|
|
|
thumb_func_start atkCD_cureifburnedparalysedorpoisoned
|
|
atkCD_cureifburnedparalysedorpoisoned: @ 0x08054870
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r1, _080548BC
|
|
ldr r3, _080548C0
|
|
ldrb r0, [r3]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
adds r5, r1, #0
|
|
adds r5, #0x4c
|
|
adds r2, r0, r5
|
|
ldr r0, [r2]
|
|
movs r1, #0xd8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080548CC
|
|
movs r0, #0
|
|
str r0, [r2]
|
|
ldr r1, _080548C4
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
ldr r4, _080548C8
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r2, #0
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
b _080548E6
|
|
.align 2, 0
|
|
_080548BC: .4byte 0x02023D28
|
|
_080548C0: .4byte 0x02023EAF
|
|
_080548C4: .4byte 0x02023EB8
|
|
_080548C8: .4byte 0x02023D08
|
|
_080548CC:
|
|
ldr r3, _080548F0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080548E6:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080548F0: .4byte 0x02023EB8
|
|
thumb_func_end atkCD_cureifburnedparalysedorpoisoned
|
|
|
|
thumb_func_start atkCE_settorment
|
|
atkCE_settorment: @ 0x080548F4
|
|
push {lr}
|
|
ldr r1, _0805492C
|
|
ldr r0, _08054930
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0x18
|
|
cmp r1, #0
|
|
bge _08054938
|
|
ldr r3, _08054934
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054944
|
|
.align 2, 0
|
|
_0805492C: .4byte 0x02023D28
|
|
_08054930: .4byte 0x02023EB0
|
|
_08054934: .4byte 0x02023EB8
|
|
_08054938:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
ldr r1, _08054948
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08054944:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054948: .4byte 0x02023EB8
|
|
thumb_func_end atkCE_settorment
|
|
|
|
thumb_func_start atkCF_jumpifnodamage
|
|
atkCF_jumpifnodamage: @ 0x0805494C
|
|
push {lr}
|
|
ldr r2, _08054978
|
|
ldr r0, _0805497C
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r0, r2, #4
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0805496C
|
|
adds r0, r2, #0
|
|
adds r0, #8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08054984
|
|
_0805496C:
|
|
ldr r1, _08054980
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _0805499E
|
|
.align 2, 0
|
|
_08054978: .4byte 0x02023FE0
|
|
_0805497C: .4byte 0x02023EAF
|
|
_08054980: .4byte 0x02023EB8
|
|
_08054984:
|
|
ldr r3, _080549A4
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805499E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080549A4: .4byte 0x02023EB8
|
|
thumb_func_end atkCF_jumpifnodamage
|
|
|
|
thumb_func_start atkD0_settaunt
|
|
atkD0_settaunt: @ 0x080549A8
|
|
push {r4, lr}
|
|
ldr r4, _080549EC
|
|
ldr r3, _080549F0
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r2, r1, r4
|
|
ldrb r1, [r2, #0x13]
|
|
lsls r0, r1, #0x1c
|
|
cmp r0, #0
|
|
bne _080549F8
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x13]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrb r2, [r0, #0x13]
|
|
movs r1, #0xf
|
|
ands r1, r2
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x13]
|
|
ldr r1, _080549F4
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08054A12
|
|
.align 2, 0
|
|
_080549EC: .4byte 0x02023F60
|
|
_080549F0: .4byte 0x02023EB0
|
|
_080549F4: .4byte 0x02023EB8
|
|
_080549F8:
|
|
ldr r3, _08054A18
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054A12:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054A18: .4byte 0x02023EB8
|
|
thumb_func_end atkD0_settaunt
|
|
|
|
thumb_func_start atkD1_trysethelpinghand
|
|
atkD1_trysethelpinghand: @ 0x08054A1C
|
|
push {r4, lr}
|
|
ldr r4, _08054A84
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
ldr r3, _08054A88
|
|
strb r0, [r3]
|
|
ldr r0, _08054A8C
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08054AA0
|
|
ldr r0, _08054A90
|
|
ldrb r1, [r0]
|
|
ldr r2, _08054A94
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08054AA0
|
|
ldr r1, _08054A98
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1c
|
|
cmp r0, #0
|
|
blt _08054AA0
|
|
lsls r0, r3, #4
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, #0x1c
|
|
cmp r0, #0
|
|
blt _08054AA0
|
|
movs r0, #8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08054A9C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08054ABA
|
|
.align 2, 0
|
|
_08054A84: .4byte 0x02023EAF
|
|
_08054A88: .4byte 0x02023EB0
|
|
_08054A8C: .4byte 0x02022C90
|
|
_08054A90: .4byte 0x02023EB4
|
|
_08054A94: .4byte 0x082FACB4
|
|
_08054A98: .4byte 0x02023FE0
|
|
_08054A9C: .4byte 0x02023EB8
|
|
_08054AA0:
|
|
ldr r3, _08054AC0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054ABA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054AC0: .4byte 0x02023EB8
|
|
thumb_func_end atkD1_trysethelpinghand
|
|
|
|
thumb_func_start atkD2_tryswapitems
|
|
atkD2_tryswapitems: @ 0x08054AC4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
ldr r4, _08054BC8
|
|
ldr r0, [r4]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x13
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08054BAA
|
|
ldr r0, _08054BCC
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _08054AF8
|
|
ldr r0, [r4]
|
|
ldr r1, _08054BD0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08054BAA
|
|
_08054AF8:
|
|
ldr r6, _08054BCC
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r7, _08054BD4
|
|
ldrb r0, [r7]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _08054BC8
|
|
ldr r0, [r0]
|
|
ldr r1, _08054BD0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08054B56
|
|
ldr r0, _08054BD8
|
|
adds r2, r0, #0
|
|
adds r2, #0x29
|
|
adds r0, r4, r2
|
|
ldrb r1, [r0]
|
|
ldr r4, _08054BDC
|
|
ldr r3, _08054BE0
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08054BAA
|
|
adds r0, r5, r2
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08054BAA
|
|
_08054B56:
|
|
ldr r0, _08054BE4
|
|
mov r8, r0
|
|
ldr r1, _08054BCC
|
|
ldrb r4, [r1]
|
|
movs r5, #0x58
|
|
adds r0, r4, #0
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
mov sb, r0
|
|
ldrh r3, [r0, #0x2e]
|
|
adds r1, r3, #0
|
|
cmp r1, #0
|
|
bne _08054B7E
|
|
ldr r0, _08054BD4
|
|
ldrb r0, [r0]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #0
|
|
beq _08054BAA
|
|
_08054B7E:
|
|
cmp r1, #0xaf
|
|
beq _08054BAA
|
|
ldr r7, _08054BD4
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, #0x2e]
|
|
cmp r2, #0xaf
|
|
beq _08054BAA
|
|
adds r0, r3, #0
|
|
subs r0, #0x79
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0xb
|
|
bls _08054BAA
|
|
adds r0, r2, #0
|
|
subs r0, #0x79
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0xb
|
|
bhi _08054BEC
|
|
_08054BAA:
|
|
ldr r3, _08054BE8
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054D42
|
|
.align 2, 0
|
|
_08054BC8: .4byte 0x02022C90
|
|
_08054BCC: .4byte 0x02023EAF
|
|
_08054BD0: .4byte 0x0A3F0902
|
|
_08054BD4: .4byte 0x02023EB0
|
|
_08054BD8: .4byte 0x02024074
|
|
_08054BDC: .4byte 0x082FACB4
|
|
_08054BE0: .4byte 0x02023D12
|
|
_08054BE4: .4byte 0x02023D28
|
|
_08054BE8: .4byte 0x02023EB8
|
|
_08054BEC:
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x3c
|
|
bne _08054C20
|
|
ldr r1, _08054C14
|
|
ldr r0, _08054C18
|
|
str r0, [r1]
|
|
ldr r1, _08054C1C
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r1]
|
|
bl RecordAbilityBattle
|
|
b _08054D42
|
|
.align 2, 0
|
|
_08054C14: .4byte 0x02023EB8
|
|
_08054C18: .4byte 0x08289BC7
|
|
_08054C1C: .4byte 0x02023EAE
|
|
_08054C20:
|
|
ldr r3, _08054D0C
|
|
mov sl, r3
|
|
lsls r0, r4, #1
|
|
adds r0, #0xd0
|
|
ldr r1, [r3]
|
|
adds r6, r1, r0
|
|
mov r0, sb
|
|
ldrh r0, [r0, #0x2e]
|
|
mov sb, r0
|
|
strh r2, [r6]
|
|
ldr r1, _08054D10
|
|
ldrb r0, [r1]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
movs r1, #0
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
add r0, r8
|
|
mov r2, sb
|
|
strh r2, [r0, #0x2e]
|
|
ldr r4, _08054D14
|
|
ldr r3, _08054D10
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
str r6, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldr r1, _08054D10
|
|
ldrb r0, [r1]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldrb r0, [r7]
|
|
muls r0, r5, r0
|
|
mov r1, r8
|
|
adds r1, #0x2e
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
ldrb r0, [r7]
|
|
mov r2, sl
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc8
|
|
movs r3, #0
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc9
|
|
strb r3, [r0]
|
|
ldr r1, _08054D10
|
|
ldrb r0, [r1]
|
|
ldr r1, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc8
|
|
strb r3, [r0]
|
|
ldr r2, _08054D10
|
|
ldrb r0, [r2]
|
|
mov r3, sl
|
|
ldr r1, [r3]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r0, #0xc9
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r1, _08054D18
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
ldr r1, _08054D1C
|
|
movs r3, #0xfd
|
|
strb r3, [r1]
|
|
movs r2, #0xa
|
|
strb r2, [r1, #1]
|
|
ldrh r0, [r6]
|
|
strb r0, [r1, #2]
|
|
ldrh r0, [r6]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _08054D20
|
|
strb r3, [r1]
|
|
strb r2, [r1, #1]
|
|
mov r2, sb
|
|
strb r2, [r1, #2]
|
|
mov r3, sb
|
|
lsrs r0, r3, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
strb r0, [r1, #4]
|
|
cmp r3, #0
|
|
beq _08054D28
|
|
ldrh r0, [r6]
|
|
cmp r0, #0
|
|
beq _08054D3C
|
|
ldr r1, _08054D24
|
|
movs r0, #2
|
|
b _08054D40
|
|
.align 2, 0
|
|
_08054D0C: .4byte 0x02024140
|
|
_08054D10: .4byte 0x02023EAF
|
|
_08054D14: .4byte 0x02023D08
|
|
_08054D18: .4byte 0x02023EB8
|
|
_08054D1C: .4byte 0x02022C0C
|
|
_08054D20: .4byte 0x02022C1C
|
|
_08054D24: .4byte 0x02023FD6
|
|
_08054D28:
|
|
ldrh r0, [r6]
|
|
cmp r0, #0
|
|
beq _08054D3C
|
|
ldr r0, _08054D38
|
|
movs r1, #0
|
|
strb r1, [r0, #5]
|
|
b _08054D42
|
|
.align 2, 0
|
|
_08054D38: .4byte 0x02023FD6
|
|
_08054D3C:
|
|
ldr r1, _08054D54
|
|
movs r0, #1
|
|
_08054D40:
|
|
strb r0, [r1, #5]
|
|
_08054D42:
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054D54: .4byte 0x02023FD6
|
|
thumb_func_end atkD2_tryswapitems
|
|
|
|
thumb_func_start atkD3_trycopyability
|
|
atkD3_trycopyability: @ 0x08054D58
|
|
push {r4, lr}
|
|
ldr r3, _08054D98
|
|
ldr r4, _08054D9C
|
|
ldrb r0, [r4]
|
|
movs r2, #0x58
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
adds r0, #0x20
|
|
ldrb r1, [r0]
|
|
adds r0, r1, #0
|
|
cmp r0, #0
|
|
beq _08054DAC
|
|
cmp r0, #0x19
|
|
beq _08054DAC
|
|
ldr r0, _08054DA0
|
|
ldrb r0, [r0]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
adds r0, #0x20
|
|
strb r1, [r0]
|
|
ldr r1, _08054DA4
|
|
ldrb r0, [r4]
|
|
muls r0, r2, r0
|
|
adds r0, r0, r3
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, _08054DA8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08054DC6
|
|
.align 2, 0
|
|
_08054D98: .4byte 0x02023D28
|
|
_08054D9C: .4byte 0x02023EB0
|
|
_08054DA0: .4byte 0x02023EAF
|
|
_08054DA4: .4byte 0x02023EAE
|
|
_08054DA8: .4byte 0x02023EB8
|
|
_08054DAC:
|
|
ldr r3, _08054DCC
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054DC6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054DCC: .4byte 0x02023EB8
|
|
thumb_func_end atkD3_trycopyability
|
|
|
|
thumb_func_start atkD4_trywish
|
|
atkD4_trywish: @ 0x08054DD0
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r7, _08054DE4
|
|
ldr r2, [r7]
|
|
ldrb r3, [r2, #1]
|
|
cmp r3, #0
|
|
beq _08054DE8
|
|
cmp r3, #1
|
|
beq _08054E20
|
|
b _08054E9C
|
|
.align 2, 0
|
|
_08054DE4: .4byte 0x02023EB8
|
|
_08054DE8:
|
|
ldr r1, _08054E14
|
|
ldr r4, _08054E18
|
|
adds r0, r1, #0
|
|
adds r0, #0x20
|
|
ldrb r5, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r0, [r3]
|
|
cmp r0, #0
|
|
bne _08054E6C
|
|
movs r0, #2
|
|
strb r0, [r3]
|
|
ldrb r0, [r4]
|
|
adds r1, #0x24
|
|
adds r1, r0, r1
|
|
ldr r2, _08054E1C
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, #6
|
|
b _08054E9A
|
|
.align 2, 0
|
|
_08054E14: .4byte 0x02024074
|
|
_08054E18: .4byte 0x02023EAF
|
|
_08054E1C: .4byte 0x02023D12
|
|
_08054E20:
|
|
ldr r1, _08054E84
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #4
|
|
strb r0, [r1, #1]
|
|
ldr r4, _08054E88
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #2]
|
|
ldr r0, _08054E8C
|
|
adds r0, #0x24
|
|
ldrb r5, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
ldr r1, _08054E90
|
|
ldr r6, _08054E94
|
|
ldrb r0, [r4]
|
|
movs r5, #0x58
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0, #0x2c]
|
|
lsrs r0, r0, #1
|
|
str r0, [r1]
|
|
cmp r0, #0
|
|
bne _08054E58
|
|
str r3, [r1]
|
|
_08054E58:
|
|
ldr r0, [r1]
|
|
rsbs r0, r0, #0
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r6
|
|
ldrh r1, [r0, #0x28]
|
|
ldrh r0, [r0, #0x2c]
|
|
cmp r1, r0
|
|
bne _08054E98
|
|
_08054E6C:
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
b _08054E9C
|
|
.align 2, 0
|
|
_08054E84: .4byte 0x02022C0C
|
|
_08054E88: .4byte 0x02023EB0
|
|
_08054E8C: .4byte 0x02024074
|
|
_08054E90: .4byte 0x02023E94
|
|
_08054E94: .4byte 0x02023D28
|
|
_08054E98:
|
|
adds r0, r2, #6
|
|
_08054E9A:
|
|
str r0, [r7]
|
|
_08054E9C:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end atkD4_trywish
|
|
|
|
thumb_func_start atkD5_trysetroots
|
|
atkD5_trysetroots: @ 0x08054EA4
|
|
push {lr}
|
|
ldr r1, _08054EDC
|
|
ldr r0, _08054EE0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #3
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _08054EE8
|
|
ldr r3, _08054EE4
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054EF4
|
|
.align 2, 0
|
|
_08054EDC: .4byte 0x02023F50
|
|
_08054EE0: .4byte 0x02023EAF
|
|
_08054EE4: .4byte 0x02023EB8
|
|
_08054EE8:
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, _08054EF8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08054EF4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054EF8: .4byte 0x02023EB8
|
|
thumb_func_end atkD5_trysetroots
|
|
|
|
thumb_func_start atkD6_doubledamagedealtifdamaged
|
|
atkD6_doubledamagedealtifdamaged: @ 0x08054EFC
|
|
push {lr}
|
|
ldr r3, _08054F48
|
|
ldr r0, _08054F4C
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, #4
|
|
adds r0, r3, #4
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08054F1C
|
|
adds r0, r2, r3
|
|
ldr r1, _08054F50
|
|
ldrb r0, [r0, #0xc]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08054F34
|
|
_08054F1C:
|
|
adds r0, r3, #0
|
|
adds r0, #8
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08054F3A
|
|
adds r0, r2, r3
|
|
ldr r1, _08054F50
|
|
ldrb r0, [r0, #0xd]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _08054F3A
|
|
_08054F34:
|
|
ldr r1, _08054F54
|
|
movs r0, #2
|
|
strb r0, [r1, #0xe]
|
|
_08054F3A:
|
|
ldr r1, _08054F58
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054F48: .4byte 0x02023FE0
|
|
_08054F4C: .4byte 0x02023EAF
|
|
_08054F50: .4byte 0x02023EB0
|
|
_08054F54: .4byte 0x02024118
|
|
_08054F58: .4byte 0x02023EB8
|
|
thumb_func_end atkD6_doubledamagedealtifdamaged
|
|
|
|
thumb_func_start atkD7_setyawn
|
|
atkD7_setyawn: @ 0x08054F5C
|
|
push {r4, lr}
|
|
ldr r1, _08054FA0
|
|
ldr r0, _08054FA4
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, #2
|
|
adds r4, r0, r1
|
|
ldr r2, [r4]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #5
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08054F84
|
|
ldr r1, _08054FA8
|
|
movs r0, #0x58
|
|
muls r0, r3, r0
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08054FB0
|
|
_08054F84:
|
|
ldr r3, _08054FAC
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054FC0
|
|
.align 2, 0
|
|
_08054FA0: .4byte 0x02023F50
|
|
_08054FA4: .4byte 0x02023EB0
|
|
_08054FA8: .4byte 0x02023D28
|
|
_08054FAC: .4byte 0x02023EB8
|
|
_08054FB0:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
orrs r2, r0
|
|
str r2, [r4]
|
|
ldr r1, _08054FC8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08054FC0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054FC8: .4byte 0x02023EB8
|
|
thumb_func_end atkD7_setyawn
|
|
|
|
thumb_func_start atkD8_setdamagetohealthdifference
|
|
atkD8_setdamagetohealthdifference: @ 0x08054FCC
|
|
push {lr}
|
|
ldr r2, _08055008
|
|
ldr r0, _0805500C
|
|
ldrb r0, [r0]
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
adds r3, r0, r2
|
|
ldr r0, _08055010
|
|
ldrb r0, [r0]
|
|
muls r0, r1, r0
|
|
adds r1, r0, r2
|
|
ldrh r0, [r3, #0x28]
|
|
ldrh r2, [r1, #0x28]
|
|
cmp r0, r2
|
|
bhi _08055018
|
|
ldr r3, _08055014
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805502A
|
|
.align 2, 0
|
|
_08055008: .4byte 0x02023D28
|
|
_0805500C: .4byte 0x02023EB0
|
|
_08055010: .4byte 0x02023EAF
|
|
_08055014: .4byte 0x02023EB8
|
|
_08055018:
|
|
ldr r2, _08055030
|
|
ldrh r0, [r3, #0x28]
|
|
ldrh r1, [r1, #0x28]
|
|
subs r0, r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _08055034
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805502A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055030: .4byte 0x02023E94
|
|
_08055034: .4byte 0x02023EB8
|
|
thumb_func_end atkD8_setdamagetohealthdifference
|
|
|
|
thumb_func_start atkD9_scaledamagebyhealthratio
|
|
atkD9_scaledamagebyhealthratio: @ 0x08055038
|
|
push {r4, lr}
|
|
ldr r4, _08055084
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
bne _08055074
|
|
ldr r2, _08055088
|
|
ldr r0, _0805508C
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r3, [r0, #1]
|
|
ldr r2, _08055090
|
|
ldr r0, _08055094
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r2
|
|
ldrh r0, [r1, #0x28]
|
|
muls r0, r3, r0
|
|
ldrh r1, [r1, #0x2c]
|
|
bl __divsi3
|
|
strh r0, [r4]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _08055074
|
|
movs r0, #1
|
|
strh r0, [r4]
|
|
_08055074:
|
|
ldr r1, _08055098
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055084: .4byte 0x020240A4
|
|
_08055088: .4byte 0x082ED220
|
|
_0805508C: .4byte 0x02023E8E
|
|
_08055090: .4byte 0x02023D28
|
|
_08055094: .4byte 0x02023EAF
|
|
_08055098: .4byte 0x02023EB8
|
|
thumb_func_end atkD9_scaledamagebyhealthratio
|
|
|
|
thumb_func_start atkDA_tryswapabilities
|
|
atkDA_tryswapabilities: @ 0x0805509C
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _08055100
|
|
ldr r0, _08055104
|
|
ldrb r0, [r0]
|
|
movs r4, #0x58
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
adds r2, r0, #0
|
|
adds r2, #0x20
|
|
ldrb r1, [r2]
|
|
cmp r1, #0
|
|
bne _080550C4
|
|
ldr r0, _08055108
|
|
ldrb r0, [r0]
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _080550E4
|
|
_080550C4:
|
|
cmp r1, #0x19
|
|
beq _080550E4
|
|
ldr r6, _08055108
|
|
ldrb r0, [r6]
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
ldrb r3, [r0]
|
|
cmp r3, #0x19
|
|
beq _080550E4
|
|
ldr r0, _0805510C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x29
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055114
|
|
_080550E4:
|
|
ldr r3, _08055110
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805512A
|
|
.align 2, 0
|
|
_08055100: .4byte 0x02023D28
|
|
_08055104: .4byte 0x02023EAF
|
|
_08055108: .4byte 0x02023EB0
|
|
_0805510C: .4byte 0x02023F20
|
|
_08055110: .4byte 0x02023EB8
|
|
_08055114:
|
|
ldrb r1, [r2]
|
|
strb r3, [r2]
|
|
ldrb r0, [r6]
|
|
muls r0, r4, r0
|
|
adds r0, r0, r5
|
|
adds r0, #0x20
|
|
strb r1, [r0]
|
|
ldr r1, _08055130
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805512A:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055130: .4byte 0x02023EB8
|
|
thumb_func_end atkDA_tryswapabilities
|
|
|
|
thumb_func_start atkDB_tryimprison
|
|
atkDB_tryimprison: @ 0x08055134
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r1, _08055154
|
|
ldr r4, _08055158
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055184
|
|
b _08055206
|
|
.align 2, 0
|
|
_08055154: .4byte 0x02023F50
|
|
_08055158: .4byte 0x02023EAF
|
|
_0805515C:
|
|
ldr r0, _0805517C
|
|
mov r2, sb
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #6
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r1, _08055180
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _080551FE
|
|
.align 2, 0
|
|
_0805517C: .4byte 0x02023F50
|
|
_08055180: .4byte 0x02023EB8
|
|
_08055184:
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
bl PressurePPLoseOnUsingImprison
|
|
movs r6, #0
|
|
b _080551F6
|
|
_0805519A:
|
|
adds r0, r6, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r8, r0
|
|
beq _080551F0
|
|
movs r4, #0
|
|
ldr r7, _0805522C
|
|
mov sb, r7
|
|
ldr r0, _08055230
|
|
mov ip, r0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
mov r2, ip
|
|
adds r2, #0xc
|
|
movs r1, #0x58
|
|
muls r0, r1, r0
|
|
adds r3, r0, r2
|
|
adds r5, r6, #0
|
|
muls r5, r1, r5
|
|
_080551C4:
|
|
movs r2, #0
|
|
ldrh r1, [r3]
|
|
mov r0, ip
|
|
adds r0, #0xc
|
|
adds r0, r5, r0
|
|
_080551CE:
|
|
ldrh r7, [r0]
|
|
cmp r1, r7
|
|
bne _080551D8
|
|
cmp r1, #0
|
|
bne _080551E0
|
|
_080551D8:
|
|
adds r0, #2
|
|
adds r2, #1
|
|
cmp r2, #3
|
|
ble _080551CE
|
|
_080551E0:
|
|
cmp r2, #4
|
|
bne _080551EC
|
|
adds r3, #2
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
ble _080551C4
|
|
_080551EC:
|
|
cmp r4, #4
|
|
bne _0805515C
|
|
_080551F0:
|
|
adds r0, r6, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_080551F6:
|
|
ldr r0, _08055234
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blo _0805519A
|
|
_080551FE:
|
|
ldr r0, _08055234
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bne _08055220
|
|
_08055206:
|
|
ldr r3, _08055238
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055220:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805522C: .4byte 0x02023EAF
|
|
_08055230: .4byte 0x02023D28
|
|
_08055234: .4byte 0x02023D10
|
|
_08055238: .4byte 0x02023EB8
|
|
thumb_func_end atkDB_tryimprison
|
|
|
|
thumb_func_start atkDC_trysetgrudge
|
|
atkDC_trysetgrudge: @ 0x0805523C
|
|
push {lr}
|
|
ldr r1, _08055274
|
|
ldr r0, _08055278
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #7
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _08055280
|
|
ldr r3, _0805527C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805528C
|
|
.align 2, 0
|
|
_08055274: .4byte 0x02023F50
|
|
_08055278: .4byte 0x02023EAF
|
|
_0805527C: .4byte 0x02023EB8
|
|
_08055280:
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, _08055290
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805528C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055290: .4byte 0x02023EB8
|
|
thumb_func_end atkDC_trysetgrudge
|
|
|
|
thumb_func_start atkDD_weightdamagecalculation
|
|
atkDD_weightdamagecalculation: @ 0x08055294
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r5, #0
|
|
ldr r2, _080552F8
|
|
ldrh r0, [r2]
|
|
ldr r1, _080552FC
|
|
cmp r0, r1
|
|
beq _0805530C
|
|
adds r6, r2, #0
|
|
ldr r0, _08055300
|
|
mov r8, r0
|
|
adds r7, r1, #0
|
|
adds r4, r6, #0
|
|
_080552B0:
|
|
ldr r0, _08055304
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #1
|
|
bl GetPokedexHeightWeight
|
|
ldrh r1, [r4]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r1, r0
|
|
bhi _080552DE
|
|
adds r4, #4
|
|
adds r5, #2
|
|
ldrh r0, [r4]
|
|
cmp r0, r7
|
|
bne _080552B0
|
|
_080552DE:
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r6
|
|
ldrh r1, [r0]
|
|
ldr r0, _080552FC
|
|
cmp r1, r0
|
|
beq _0805530C
|
|
ldr r0, _08055308
|
|
adds r1, r5, #1
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r6
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _08055312
|
|
.align 2, 0
|
|
_080552F8: .4byte 0x082ECDAC
|
|
_080552FC: .4byte 0x0000FFFF
|
|
_08055300: .4byte 0x02023D28
|
|
_08055304: .4byte 0x02023EB0
|
|
_08055308: .4byte 0x020240A4
|
|
_0805530C:
|
|
ldr r1, _08055324
|
|
movs r0, #0x78
|
|
strh r0, [r1]
|
|
_08055312:
|
|
ldr r1, _08055328
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055324: .4byte 0x020240A4
|
|
_08055328: .4byte 0x02023EB8
|
|
thumb_func_end atkDD_weightdamagecalculation
|
|
|
|
thumb_func_start atkDE_assistattackselect
|
|
atkDE_assistattackselect: @ 0x0805532C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
movs r0, #0
|
|
mov sl, r0
|
|
ldr r0, _0805544C
|
|
ldr r0, [r0]
|
|
adds r0, #0x18
|
|
str r0, [sp, #4]
|
|
ldr r0, _08055450
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
movs r1, #1
|
|
ands r1, r0
|
|
ldr r0, _08055454
|
|
str r0, [sp]
|
|
cmp r1, #0
|
|
beq _0805535C
|
|
ldr r1, _08055458
|
|
str r1, [sp]
|
|
_0805535C:
|
|
movs r2, #0
|
|
_0805535E:
|
|
ldr r1, _0805545C
|
|
ldr r0, _08055450
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
adds r1, r2, #1
|
|
str r1, [sp, #8]
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
beq _08055404
|
|
movs r0, #0x64
|
|
adds r6, r2, #0
|
|
muls r6, r0, r6
|
|
ldr r0, [sp]
|
|
adds r4, r0, r6
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08055404
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
movs r1, #0xce
|
|
lsls r1, r1, #1
|
|
cmp r0, r1
|
|
beq _08055404
|
|
movs r5, #0
|
|
ldr r1, _08055460
|
|
mov r8, r1
|
|
mov sb, r6
|
|
mov r1, sl
|
|
lsls r0, r1, #1
|
|
ldr r1, [sp, #4]
|
|
adds r6, r0, r1
|
|
_080553A8:
|
|
movs r7, #0
|
|
adds r1, r5, #0
|
|
adds r1, #0xd
|
|
ldr r0, [sp]
|
|
add r0, sb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
adds r0, r4, #0
|
|
bl IsInvalidForSleepTalkOrAssist
|
|
lsls r0, r0, #0x18
|
|
adds r1, r5, #1
|
|
cmp r0, #0
|
|
bne _080553FE
|
|
ldr r0, _08055464
|
|
ldrh r2, [r0]
|
|
adds r3, r0, #0
|
|
cmp r2, r8
|
|
beq _080553F2
|
|
cmp r4, r2
|
|
beq _080553E8
|
|
ldr r5, _08055460
|
|
adds r2, r3, #0
|
|
_080553DA:
|
|
adds r2, #2
|
|
adds r7, #1
|
|
ldrh r0, [r2]
|
|
cmp r0, r5
|
|
beq _080553F2
|
|
cmp r4, r0
|
|
bne _080553DA
|
|
_080553E8:
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r8
|
|
bne _080553FE
|
|
_080553F2:
|
|
cmp r4, #0
|
|
beq _080553FE
|
|
strh r4, [r6]
|
|
adds r6, #2
|
|
movs r0, #1
|
|
add sl, r0
|
|
_080553FE:
|
|
adds r5, r1, #0
|
|
cmp r5, #3
|
|
ble _080553A8
|
|
_08055404:
|
|
ldr r2, [sp, #8]
|
|
cmp r2, #5
|
|
ble _0805535E
|
|
mov r1, sl
|
|
cmp r1, #0
|
|
beq _0805547C
|
|
ldr r2, _08055468
|
|
ldr r0, [r2]
|
|
ldr r1, _0805546C
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, _08055470
|
|
bl Random
|
|
movs r1, #0xff
|
|
ands r1, r0
|
|
mov r0, sl
|
|
muls r0, r1, r0
|
|
asrs r0, r0, #8
|
|
lsls r0, r0, #1
|
|
ldr r1, [sp, #4]
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, #0
|
|
bl GetMoveTarget
|
|
ldr r1, _08055474
|
|
strb r0, [r1]
|
|
ldr r1, _08055478
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08055496
|
|
.align 2, 0
|
|
_0805544C: .4byte 0x02024140
|
|
_08055450: .4byte 0x02023EAF
|
|
_08055454: .4byte 0x02024190
|
|
_08055458: .4byte 0x020243E8
|
|
_0805545C: .4byte 0x02023D12
|
|
_08055460: .4byte 0x0000FFFF
|
|
_08055464: .4byte 0x082ECD64
|
|
_08055468: .4byte 0x02023F24
|
|
_0805546C: .4byte 0xFFFFFBFF
|
|
_08055470: .4byte 0x02023E92
|
|
_08055474: .4byte 0x02023EB0
|
|
_08055478: .4byte 0x02023EB8
|
|
_0805547C:
|
|
ldr r3, _080554A8
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055496:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080554A8: .4byte 0x02023EB8
|
|
thumb_func_end atkDE_assistattackselect
|
|
|
|
thumb_func_start atkDF_trysetmagiccoat
|
|
atkDF_trysetmagiccoat: @ 0x080554AC
|
|
push {lr}
|
|
ldr r1, _080554F4
|
|
ldr r3, _080554F8
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, _080554FC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _08055500
|
|
ldrb r1, [r0]
|
|
ldr r0, _08055504
|
|
ldrb r0, [r0]
|
|
subs r0, #1
|
|
cmp r1, r0
|
|
bne _0805550C
|
|
ldr r3, _08055508
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08055524
|
|
.align 2, 0
|
|
_080554F4: .4byte 0x02023EB0
|
|
_080554F8: .4byte 0x02023EAF
|
|
_080554FC: .4byte 0x02024020
|
|
_08055500: .4byte 0x02023D26
|
|
_08055504: .4byte 0x02023D10
|
|
_08055508: .4byte 0x02023EB8
|
|
_0805550C:
|
|
ldr r0, _08055528
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, #0x10
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _0805552C
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_08055524:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055528: .4byte 0x02023FE0
|
|
_0805552C: .4byte 0x02023EB8
|
|
thumb_func_end atkDF_trysetmagiccoat
|
|
|
|
thumb_func_start atkE0_trysetsnatch
|
|
atkE0_trysetsnatch: @ 0x08055530
|
|
push {lr}
|
|
ldr r2, _08055574
|
|
ldr r3, _08055578
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _0805557C
|
|
ldrb r1, [r0]
|
|
ldr r0, _08055580
|
|
ldrb r0, [r0]
|
|
subs r0, #1
|
|
cmp r1, r0
|
|
bne _08055588
|
|
ldr r3, _08055584
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805559E
|
|
.align 2, 0
|
|
_08055574: .4byte 0x02024020
|
|
_08055578: .4byte 0x02023EAF
|
|
_0805557C: .4byte 0x02023D26
|
|
_08055580: .4byte 0x02023D10
|
|
_08055584: .4byte 0x02023EB8
|
|
_08055588:
|
|
ldr r0, _080555A4
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _080555A8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805559E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080555A4: .4byte 0x02023FE0
|
|
_080555A8: .4byte 0x02023EB8
|
|
thumb_func_end atkE0_trysetsnatch
|
|
|
|
thumb_func_start atkE1_trygetintimidatetarget
|
|
atkE1_trygetintimidatetarget: @ 0x080555AC
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, _08055650
|
|
ldr r0, _08055654
|
|
ldr r0, [r0]
|
|
adds r0, #0xd8
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #0x17]
|
|
ldrb r0, [r4, #0x17]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r2, _08055658
|
|
movs r0, #0xfd
|
|
strb r0, [r2]
|
|
movs r0, #9
|
|
strb r0, [r2, #1]
|
|
ldr r3, _0805565C
|
|
ldrb r1, [r4, #0x17]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r3
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, #2]
|
|
movs r0, #0xff
|
|
strb r0, [r2, #3]
|
|
ldr r2, _08055660
|
|
ldr r1, _08055664
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _08055632
|
|
adds r4, r2, #0
|
|
ldr r6, _08055668
|
|
_080555F2:
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, r5
|
|
beq _08055614
|
|
ldr r0, _0805566C
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r2, _08055664
|
|
cmp r1, #0
|
|
beq _08055628
|
|
_08055614:
|
|
ldrb r0, [r4]
|
|
adds r0, #1
|
|
strb r0, [r4]
|
|
ldr r1, _08055664
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r2, r1, #0
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
blo _080555F2
|
|
_08055628:
|
|
ldr r0, _08055660
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
blo _08055674
|
|
_08055632:
|
|
ldr r3, _08055670
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805567C
|
|
.align 2, 0
|
|
_08055650: .4byte 0x02024118
|
|
_08055654: .4byte 0x02024140
|
|
_08055658: .4byte 0x02022C0C
|
|
_0805565C: .4byte 0x02023D28
|
|
_08055660: .4byte 0x02023EB0
|
|
_08055664: .4byte 0x02023D10
|
|
_08055668: .4byte 0x082FACB4
|
|
_0805566C: .4byte 0x02023EB4
|
|
_08055670: .4byte 0x02023EB8
|
|
_08055674:
|
|
ldr r1, _08055684
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_0805567C:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055684: .4byte 0x02023EB8
|
|
thumb_func_end atkE1_trygetintimidatetarget
|
|
|
|
thumb_func_start atkE2_switchoutabilities
|
|
atkE2_switchoutabilities: @ 0x08055688
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r5, _080556F0
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r4, _080556F4
|
|
strb r0, [r4]
|
|
ldr r3, _080556F8
|
|
ldrb r0, [r4]
|
|
movs r6, #0x58
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
adds r0, r1, r3
|
|
adds r0, #0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1e
|
|
bne _080556E2
|
|
adds r3, #0x4c
|
|
adds r1, r1, r3
|
|
movs r0, #0
|
|
str r0, [r1]
|
|
ldr r2, _080556FC
|
|
ldrb r1, [r4]
|
|
ldr r0, _08055700
|
|
ldr r0, [r0]
|
|
adds r0, r1, r0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r2, [r0]
|
|
adds r0, r1, #0
|
|
muls r0, r6, r0
|
|
adds r0, r0, r3
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #0x28
|
|
movs r3, #4
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
_080556E2:
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080556F0: .4byte 0x02023EB8
|
|
_080556F4: .4byte 0x02023D08
|
|
_080556F8: .4byte 0x02023D28
|
|
_080556FC: .4byte 0x082FACB4
|
|
_08055700: .4byte 0x02024140
|
|
thumb_func_end atkE2_switchoutabilities
|
|
|
|
thumb_func_start atkE3_jumpifhasnohp
|
|
atkE3_jumpifhasnohp: @ 0x08055704
|
|
push {r4, lr}
|
|
ldr r4, _08055740
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerForBattleScript
|
|
ldr r1, _08055744
|
|
strb r0, [r1]
|
|
ldr r2, _08055748
|
|
ldrb r1, [r1]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0, #0x28]
|
|
cmp r0, #0
|
|
bne _0805574C
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #2]
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #5]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _08055752
|
|
.align 2, 0
|
|
_08055740: .4byte 0x02023EB8
|
|
_08055744: .4byte 0x02023D08
|
|
_08055748: .4byte 0x02023D28
|
|
_0805574C:
|
|
ldr r0, [r4]
|
|
adds r0, #6
|
|
str r0, [r4]
|
|
_08055752:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atkE3_jumpifhasnohp
|
|
|
|
thumb_func_start atkE4_getsecretpowereffect
|
|
atkE4_getsecretpowereffect: @ 0x08055758
|
|
push {lr}
|
|
ldr r0, _0805576C
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bhi _080557F4
|
|
lsls r0, r0, #2
|
|
ldr r1, _08055770
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0805576C: .4byte 0x02022C94
|
|
_08055770: .4byte 0x08055774
|
|
_08055774: @ jump table
|
|
.4byte _08055794 @ case 0
|
|
.4byte _080557A0 @ case 1
|
|
.4byte _080557AC @ case 2
|
|
.4byte _080557B8 @ case 3
|
|
.4byte _080557C4 @ case 4
|
|
.4byte _080557D0 @ case 5
|
|
.4byte _080557DC @ case 6
|
|
.4byte _080557E8 @ case 7
|
|
_08055794:
|
|
ldr r1, _0805579C
|
|
movs r0, #2
|
|
b _080557F8
|
|
.align 2, 0
|
|
_0805579C: .4byte 0x02023FD6
|
|
_080557A0:
|
|
ldr r1, _080557A8
|
|
movs r0, #1
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557A8: .4byte 0x02023FD6
|
|
_080557AC:
|
|
ldr r1, _080557B4
|
|
movs r0, #0x1b
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557B4: .4byte 0x02023FD6
|
|
_080557B8:
|
|
ldr r1, _080557C0
|
|
movs r0, #0x17
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557C0: .4byte 0x02023FD6
|
|
_080557C4:
|
|
ldr r1, _080557CC
|
|
movs r0, #0x16
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557CC: .4byte 0x02023FD6
|
|
_080557D0:
|
|
ldr r1, _080557D8
|
|
movs r0, #0x18
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557D8: .4byte 0x02023FD6
|
|
_080557DC:
|
|
ldr r1, _080557E4
|
|
movs r0, #7
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557E4: .4byte 0x02023FD6
|
|
_080557E8:
|
|
ldr r1, _080557F0
|
|
movs r0, #8
|
|
b _080557F8
|
|
.align 2, 0
|
|
_080557F0: .4byte 0x02023FD6
|
|
_080557F4:
|
|
ldr r1, _08055808
|
|
movs r0, #5
|
|
_080557F8:
|
|
strb r0, [r1, #3]
|
|
ldr r1, _0805580C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055808: .4byte 0x02023FD6
|
|
_0805580C: .4byte 0x02023EB8
|
|
thumb_func_end atkE4_getsecretpowereffect
|
|
|
|
thumb_func_start atkE5_pickup
|
|
atkE5_pickup: @ 0x08055810
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #4
|
|
bl InBattlePike
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08055828
|
|
b _080559E8
|
|
_08055828:
|
|
bl InBattlePyramid
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080558D4
|
|
movs r6, #0
|
|
mov r7, sp
|
|
ldr r0, _08055874
|
|
mov r8, r0
|
|
_0805583A:
|
|
movs r0, #0x64
|
|
adds r4, r6, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08055878
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
strh r0, [r7]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2e
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _0805587C
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #0x17]
|
|
b _08055886
|
|
.align 2, 0
|
|
_08055874: .4byte 0x082F0D54
|
|
_08055878: .4byte 0x02024190
|
|
_0805587C:
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #0x16]
|
|
_08055886:
|
|
cmp r0, #0x35
|
|
bne _080558C6
|
|
cmp r5, #0
|
|
beq _080558C6
|
|
movs r0, #0xce
|
|
lsls r0, r0, #1
|
|
cmp r5, r0
|
|
beq _080558C6
|
|
ldrh r0, [r7]
|
|
cmp r0, #0
|
|
bne _080558C6
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0xa
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _080558C6
|
|
bl GetBattlePyramidPickupItemId
|
|
strh r0, [r7]
|
|
movs r0, #0x64
|
|
muls r0, r6, r0
|
|
ldr r1, _080558D0
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
mov r2, sp
|
|
bl SetMonData
|
|
_080558C6:
|
|
adds r6, #1
|
|
cmp r6, #5
|
|
ble _0805583A
|
|
b _080559E8
|
|
.align 2, 0
|
|
_080558D0: .4byte 0x02024190
|
|
_080558D4:
|
|
movs r6, #0
|
|
movs r1, #0x64
|
|
mov r8, r1
|
|
ldr r7, _08055918
|
|
mov sl, sp
|
|
_080558DE:
|
|
mov r4, r8
|
|
muls r4, r6, r4
|
|
adds r4, r4, r7
|
|
adds r0, r4, #0
|
|
movs r1, #0x41
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl GetMonData
|
|
mov r1, sl
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2e
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
beq _08055940
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805591C
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #0x17]
|
|
b _0805594C
|
|
.align 2, 0
|
|
_08055918: .4byte 0x02024190
|
|
_0805591C: .4byte 0x082F0D54
|
|
_08055920:
|
|
mov r0, r8
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
adds r2, r1, #0
|
|
adds r2, #0x63
|
|
subs r2, r2, r4
|
|
lsls r2, r2, #1
|
|
ldr r1, _0805593C
|
|
adds r2, r2, r1
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
b _080559E0
|
|
.align 2, 0
|
|
_0805593C: .4byte 0x082ECDE8
|
|
_08055940:
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
ldr r1, _080559B0
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #0x16]
|
|
_0805594C:
|
|
adds r1, r6, #1
|
|
mov sb, r1
|
|
cmp r0, #0x35
|
|
bne _080559E0
|
|
cmp r5, #0
|
|
beq _080559E0
|
|
movs r0, #0xce
|
|
lsls r0, r0, #1
|
|
cmp r5, r0
|
|
beq _080559E0
|
|
mov r1, sl
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _080559E0
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0xa
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _080559E0
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x64
|
|
bl __umodsi3
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
mov r0, r8
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
subs r0, #1
|
|
movs r1, #0xa
|
|
bl __udivsi3
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #9
|
|
bls _080559AC
|
|
movs r1, #9
|
|
_080559AC:
|
|
movs r2, #0
|
|
b _080559BE
|
|
.align 2, 0
|
|
_080559B0: .4byte 0x082F0D54
|
|
_080559B4:
|
|
adds r0, r4, #0
|
|
subs r0, #0x62
|
|
cmp r0, #1
|
|
bls _08055920
|
|
adds r2, #1
|
|
_080559BE:
|
|
cmp r2, #8
|
|
bgt _080559E0
|
|
ldr r0, _08055A00
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
ble _080559B4
|
|
mov r0, r8
|
|
muls r0, r6, r0
|
|
adds r0, r0, r7
|
|
adds r2, r1, r2
|
|
lsls r2, r2, #1
|
|
ldr r1, _08055A04
|
|
adds r2, r2, r1
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
_080559E0:
|
|
mov r6, sb
|
|
cmp r6, #5
|
|
bgt _080559E8
|
|
b _080558DE
|
|
_080559E8:
|
|
ldr r1, _08055A08
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055A00: .4byte 0x082ECDFE
|
|
_08055A04: .4byte 0x082ECDC4
|
|
_08055A08: .4byte 0x02023EB8
|
|
thumb_func_end atkE5_pickup
|
|
|
|
thumb_func_start atkE6_docastformchangeanimation
|
|
atkE6_docastformchangeanimation: @ 0x08055A0C
|
|
push {r4, lr}
|
|
ldr r4, _08055A60
|
|
ldr r0, _08055A64
|
|
ldrb r0, [r0, #0x17]
|
|
strb r0, [r4]
|
|
ldr r1, _08055A68
|
|
ldrb r2, [r4]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x11
|
|
ands r0, r1
|
|
ldr r3, _08055A6C
|
|
cmp r0, #0
|
|
beq _08055A3C
|
|
ldr r0, [r3]
|
|
adds r0, #0x7f
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08055A3C:
|
|
ldr r0, [r3]
|
|
adds r0, #0x7f
|
|
ldrb r2, [r0]
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl BtlController_EmitBattleAnimation
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08055A70
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055A60: .4byte 0x02023D08
|
|
_08055A64: .4byte 0x02024118
|
|
_08055A68: .4byte 0x02023D28
|
|
_08055A6C: .4byte 0x02024140
|
|
_08055A70: .4byte 0x02023EB8
|
|
thumb_func_end atkE6_docastformchangeanimation
|
|
|
|
thumb_func_start atkE7_trycastformdatachange
|
|
atkE7_trycastformdatachange: @ 0x08055A74
|
|
push {r4, lr}
|
|
ldr r1, _08055AA4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
ldr r0, _08055AA8
|
|
ldrb r0, [r0, #0x17]
|
|
bl CastformDataTypeChange
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _08055A9E
|
|
ldr r0, _08055AAC
|
|
bl BattleScriptPushCursorAndCallback
|
|
ldr r0, _08055AB0
|
|
ldr r0, [r0]
|
|
adds r0, #0x7f
|
|
subs r1, r4, #1
|
|
strb r1, [r0]
|
|
_08055A9E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055AA4: .4byte 0x02023EB8
|
|
_08055AA8: .4byte 0x02024118
|
|
_08055AAC: .4byte 0x08289A31
|
|
_08055AB0: .4byte 0x02024140
|
|
thumb_func_end atkE7_trycastformdatachange
|
|
|
|
thumb_func_start atkE8_settypebasedhalvers
|
|
atkE8_settypebasedhalvers: @ 0x08055AB4
|
|
push {r4, lr}
|
|
movs r4, #0
|
|
ldr r2, _08055AF0
|
|
ldr r0, _08055AF4
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xc9
|
|
bne _08055B04
|
|
ldr r1, _08055AF8
|
|
ldr r0, _08055AFC
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #9
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
bne _08055B28
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r0, _08055B00
|
|
strb r4, [r0, #5]
|
|
b _08055B2C
|
|
.align 2, 0
|
|
_08055AF0: .4byte 0x082ED220
|
|
_08055AF4: .4byte 0x02023E8E
|
|
_08055AF8: .4byte 0x02023F50
|
|
_08055AFC: .4byte 0x02023EAF
|
|
_08055B00: .4byte 0x02023FD6
|
|
_08055B04:
|
|
ldr r1, _08055B38
|
|
ldr r0, _08055B3C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #0xa
|
|
adds r0, r1, #0
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
bne _08055B28
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, _08055B40
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
movs r4, #1
|
|
_08055B28:
|
|
cmp r4, #0
|
|
beq _08055B48
|
|
_08055B2C:
|
|
ldr r1, _08055B44
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08055B62
|
|
.align 2, 0
|
|
_08055B38: .4byte 0x02023F50
|
|
_08055B3C: .4byte 0x02023EAF
|
|
_08055B40: .4byte 0x02023FD6
|
|
_08055B44: .4byte 0x02023EB8
|
|
_08055B48:
|
|
ldr r3, _08055B68
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055B62:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055B68: .4byte 0x02023EB8
|
|
thumb_func_end atkE8_settypebasedhalvers
|
|
|
|
thumb_func_start atkE9_setweatherballtype
|
|
atkE9_setweatherballtype: @ 0x08055B6C
|
|
push {lr}
|
|
sub sp, #4
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0xd
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08055C0C
|
|
str r0, [sp]
|
|
movs r0, #0x13
|
|
movs r1, #0
|
|
movs r2, #0x4d
|
|
movs r3, #0
|
|
bl AbilityBattleEffects
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08055C0C
|
|
ldr r2, _08055BBC
|
|
ldrb r0, [r2]
|
|
cmp r0, #0
|
|
beq _08055BAA
|
|
ldr r1, _08055BC0
|
|
movs r0, #2
|
|
strb r0, [r1, #0xe]
|
|
_08055BAA:
|
|
ldrh r1, [r2]
|
|
movs r0, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055BC8
|
|
ldr r0, _08055BC4
|
|
ldr r1, [r0]
|
|
movs r0, #0x8b
|
|
b _08055C0A
|
|
.align 2, 0
|
|
_08055BBC: .4byte 0x02024070
|
|
_08055BC0: .4byte 0x02024118
|
|
_08055BC4: .4byte 0x02024140
|
|
_08055BC8:
|
|
movs r0, #0x18
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055BDC
|
|
ldr r0, _08055BD8
|
|
ldr r1, [r0]
|
|
movs r0, #0x85
|
|
b _08055C0A
|
|
.align 2, 0
|
|
_08055BD8: .4byte 0x02024140
|
|
_08055BDC:
|
|
movs r0, #0x60
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055BF0
|
|
ldr r0, _08055BEC
|
|
ldr r1, [r0]
|
|
movs r0, #0x8a
|
|
b _08055C0A
|
|
.align 2, 0
|
|
_08055BEC: .4byte 0x02024140
|
|
_08055BF0:
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055C04
|
|
ldr r0, _08055C00
|
|
ldr r1, [r0]
|
|
movs r0, #0x8f
|
|
b _08055C0A
|
|
.align 2, 0
|
|
_08055C00: .4byte 0x02024140
|
|
_08055C04:
|
|
ldr r0, _08055C1C
|
|
ldr r1, [r0]
|
|
movs r0, #0x80
|
|
_08055C0A:
|
|
strb r0, [r1, #0x13]
|
|
_08055C0C:
|
|
ldr r1, _08055C20
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055C1C: .4byte 0x02024140
|
|
_08055C20: .4byte 0x02023EB8
|
|
thumb_func_end atkE9_setweatherballtype
|
|
|
|
thumb_func_start atkEA_tryrecycleitem
|
|
atkEA_tryrecycleitem: @ 0x08055C24
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
ldr r7, _08055C8C
|
|
ldr r0, _08055C90
|
|
ldrb r0, [r0]
|
|
strb r0, [r7]
|
|
ldr r1, _08055C94
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, #1
|
|
adds r0, #0xb8
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
ldrh r5, [r6]
|
|
cmp r5, #0
|
|
beq _08055CA4
|
|
ldr r4, _08055C98
|
|
movs r3, #0x58
|
|
adds r0, r2, #0
|
|
muls r0, r3, r0
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #0
|
|
bne _08055CA4
|
|
ldr r1, _08055C9C
|
|
strh r5, [r1]
|
|
strh r0, [r6]
|
|
ldrb r0, [r7]
|
|
muls r0, r3, r0
|
|
adds r0, r0, r4
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r7]
|
|
muls r0, r3, r0
|
|
adds r1, r4, #0
|
|
adds r1, #0x2e
|
|
adds r0, r0, r1
|
|
str r0, [sp]
|
|
movs r0, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl BtlController_EmitSetMonData
|
|
ldrb r0, [r7]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08055CA0
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08055CBE
|
|
.align 2, 0
|
|
_08055C8C: .4byte 0x02023D08
|
|
_08055C90: .4byte 0x02023EAF
|
|
_08055C94: .4byte 0x02024140
|
|
_08055C98: .4byte 0x02023D28
|
|
_08055C9C: .4byte 0x02023EAC
|
|
_08055CA0: .4byte 0x02023EB8
|
|
_08055CA4:
|
|
ldr r3, _08055CC8
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055CBE:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055CC8: .4byte 0x02023EB8
|
|
thumb_func_end atkEA_tryrecycleitem
|
|
|
|
thumb_func_start atkEB_settypetoterrain
|
|
atkEB_settypetoterrain: @ 0x08055CCC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _08055D3C
|
|
mov r8, r0
|
|
ldr r7, _08055D40
|
|
ldrb r0, [r7]
|
|
movs r6, #0x58
|
|
muls r0, r6, r0
|
|
mov r1, r8
|
|
adds r3, r0, r1
|
|
movs r0, #0x21
|
|
adds r0, r0, r3
|
|
mov ip, r0
|
|
ldr r5, _08055D44
|
|
ldr r4, _08055D48
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r2, [r0]
|
|
mov r1, ip
|
|
ldrb r0, [r1]
|
|
adds r1, r2, #0
|
|
cmp r0, r1
|
|
beq _08055D54
|
|
adds r0, r3, #0
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _08055D54
|
|
mov r0, ip
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
adds r1, r0, #0
|
|
muls r1, r6, r1
|
|
add r1, r8
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
adds r1, #0x22
|
|
strb r0, [r1]
|
|
ldr r1, _08055D4C
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #3
|
|
strb r0, [r1, #1]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #2]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #3]
|
|
ldr r1, _08055D50
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08055D6E
|
|
.align 2, 0
|
|
_08055D3C: .4byte 0x02023D28
|
|
_08055D40: .4byte 0x02023EAF
|
|
_08055D44: .4byte 0x082ECE07
|
|
_08055D48: .4byte 0x02022C94
|
|
_08055D4C: .4byte 0x02022C0C
|
|
_08055D50: .4byte 0x02023EB8
|
|
_08055D54:
|
|
ldr r3, _08055D78
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055D6E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055D78: .4byte 0x02023EB8
|
|
thumb_func_end atkEB_settypetoterrain
|
|
|
|
thumb_func_start atkEC_pursuitrelated
|
|
atkEC_pursuitrelated: @ 0x08055D7C
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _08055DF0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _08055DF4
|
|
strb r0, [r4]
|
|
ldr r0, _08055DF8
|
|
ldr r0, [r0]
|
|
movs r6, #1
|
|
ands r0, r6
|
|
cmp r0, #0
|
|
beq _08055E1C
|
|
ldr r0, _08055DFC
|
|
ldrb r1, [r0]
|
|
ldr r2, _08055E00
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08055E1C
|
|
ldr r0, _08055E04
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08055E1C
|
|
ldr r1, _08055E08
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r1
|
|
ldrh r2, [r0]
|
|
cmp r2, #0xe4
|
|
bne _08055E1C
|
|
ldr r0, _08055E0C
|
|
adds r0, r3, r0
|
|
movs r1, #0xb
|
|
strb r1, [r0]
|
|
ldr r0, _08055E10
|
|
strh r2, [r0]
|
|
ldr r1, _08055E14
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
ldr r0, _08055E18
|
|
strb r6, [r0, #0x18]
|
|
ldrb r1, [r5]
|
|
adds r0, #0x20
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
strb r0, [r5]
|
|
b _08055E36
|
|
.align 2, 0
|
|
_08055DF0: .4byte 0x02023EAF
|
|
_08055DF4: .4byte 0x02023D08
|
|
_08055DF8: .4byte 0x02022C90
|
|
_08055DFC: .4byte 0x02023EB4
|
|
_08055E00: .4byte 0x082FACB4
|
|
_08055E04: .4byte 0x02023EC0
|
|
_08055E08: .4byte 0x02023F18
|
|
_08055E0C: .4byte 0x02023D1E
|
|
_08055E10: .4byte 0x02023E8E
|
|
_08055E14: .4byte 0x02023EB8
|
|
_08055E18: .4byte 0x02024118
|
|
_08055E1C:
|
|
ldr r3, _08055E3C
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055E36:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055E3C: .4byte 0x02023EB8
|
|
thumb_func_end atkEC_pursuitrelated
|
|
|
|
thumb_func_start atkEF_snatchsetbattlers
|
|
atkEF_snatchsetbattlers: @ 0x08055E40
|
|
push {r4, lr}
|
|
ldr r1, _08055E64
|
|
ldr r3, _08055E68
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, _08055E6C
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r4, r1, #0
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
bne _08055E74
|
|
ldr r1, _08055E70
|
|
ldrb r0, [r1, #0x17]
|
|
strb r0, [r2]
|
|
strb r0, [r3]
|
|
b _08055E7A
|
|
.align 2, 0
|
|
_08055E64: .4byte 0x02023EB2
|
|
_08055E68: .4byte 0x02023EAF
|
|
_08055E6C: .4byte 0x02023EB0
|
|
_08055E70: .4byte 0x02024118
|
|
_08055E74:
|
|
ldr r1, _08055E8C
|
|
ldrb r0, [r1, #0x17]
|
|
strb r0, [r2]
|
|
_08055E7A:
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, #0x17]
|
|
ldr r1, _08055E90
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055E8C: .4byte 0x02024118
|
|
_08055E90: .4byte 0x02023EB8
|
|
thumb_func_end atkEF_snatchsetbattlers
|
|
|
|
thumb_func_start atkEE_removelightscreenreflect
|
|
atkEE_removelightscreenreflect: @ 0x08055E94
|
|
push {r4, lr}
|
|
ldr r0, _08055EDC
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
movs r1, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _08055EE0
|
|
lsls r3, r0, #1
|
|
adds r0, r3, r0
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _08055EBC
|
|
ldrb r1, [r4, #2]
|
|
cmp r1, #0
|
|
beq _08055EF4
|
|
_08055EBC:
|
|
ldr r2, _08055EE4
|
|
adds r2, r3, r2
|
|
ldrh r1, [r2]
|
|
ldr r0, _08055EE8
|
|
ands r0, r1
|
|
movs r3, #0
|
|
ldr r1, _08055EEC
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
strb r3, [r4]
|
|
strb r3, [r4, #2]
|
|
ldr r1, _08055EF0
|
|
movs r0, #1
|
|
strb r0, [r1, #0x18]
|
|
strb r0, [r1, #0x19]
|
|
b _08055EFA
|
|
.align 2, 0
|
|
_08055EDC: .4byte 0x02023EAF
|
|
_08055EE0: .4byte 0x02023F38
|
|
_08055EE4: .4byte 0x02023F32
|
|
_08055EE8: .4byte 0x0000FFFE
|
|
_08055EEC: .4byte 0x0000FFFD
|
|
_08055EF0: .4byte 0x02024118
|
|
_08055EF4:
|
|
ldr r0, _08055F08
|
|
strb r1, [r0, #0x18]
|
|
strb r1, [r0, #0x19]
|
|
_08055EFA:
|
|
ldr r1, _08055F0C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08055F08: .4byte 0x02024118
|
|
_08055F0C: .4byte 0x02023EB8
|
|
thumb_func_end atkEE_removelightscreenreflect
|
|
|
|
thumb_func_start atkEF_handleballthrow
|
|
atkEF_handleballthrow: @ 0x08055F10
|
|
push {r4, r5, r6, lr}
|
|
movs r4, #0
|
|
ldr r0, _08055F50
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _08055F1E
|
|
b _080562A6
|
|
_08055F1E:
|
|
ldr r5, _08055F54
|
|
ldr r0, _08055F58
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r6, _08055F5C
|
|
movs r1, #1
|
|
eors r0, r1
|
|
strb r0, [r6]
|
|
ldr r0, _08055F60
|
|
ldr r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08055F6C
|
|
movs r0, #0
|
|
movs r1, #5
|
|
bl BtlController_EmitBallThrowAnim
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08055F64
|
|
ldr r0, _08055F68
|
|
b _080562A4
|
|
.align 2, 0
|
|
_08055F50: .4byte 0x02023D0C
|
|
_08055F54: .4byte 0x02023D08
|
|
_08055F58: .4byte 0x02023EAF
|
|
_08055F5C: .4byte 0x02023EB0
|
|
_08055F60: .4byte 0x02022C90
|
|
_08055F64: .4byte 0x02023EB8
|
|
_08055F68: .4byte 0x0828A38A
|
|
_08055F6C:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08055F94
|
|
movs r0, #0
|
|
movs r1, #4
|
|
bl BtlController_EmitBallThrowAnim
|
|
ldrb r0, [r5]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _08055F8C
|
|
ldr r0, _08055F90
|
|
b _080562A4
|
|
.align 2, 0
|
|
_08055F8C: .4byte 0x02023EB8
|
|
_08055F90: .4byte 0x0828A352
|
|
_08055F94:
|
|
ldr r0, _08055FB8
|
|
ldrh r0, [r0]
|
|
cmp r0, #5
|
|
bne _08055FC0
|
|
ldr r0, _08055FBC
|
|
ldr r0, [r0]
|
|
adds r0, #0x7c
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r0, r1, #8
|
|
subs r0, r0, r1
|
|
movs r1, #0x64
|
|
bl __divsi3
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
b _08055FD8
|
|
.align 2, 0
|
|
_08055FB8: .4byte 0x02023EAC
|
|
_08055FBC: .4byte 0x02024140
|
|
_08055FC0:
|
|
ldr r3, _08055FF4
|
|
ldr r2, _08055FF8
|
|
ldrb r1, [r6]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r5, [r0, #8]
|
|
_08055FD8:
|
|
ldr r2, _08055FFC
|
|
ldrh r0, [r2]
|
|
cmp r0, #5
|
|
bhi _08055FE2
|
|
b _080560D8
|
|
_08055FE2:
|
|
subs r0, #6
|
|
cmp r0, #6
|
|
bls _08055FEA
|
|
b _080560E2
|
|
_08055FEA:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08056000
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08055FF4: .4byte 0x082F0D54
|
|
_08055FF8: .4byte 0x02023D28
|
|
_08055FFC: .4byte 0x02023EAC
|
|
_08056000: .4byte 0x08056004
|
|
_08056004: @ jump table
|
|
.4byte _08056020 @ case 0
|
|
.4byte _08056050 @ case 1
|
|
.4byte _08056062 @ case 2
|
|
.4byte _08056090 @ case 3
|
|
.4byte _080560C0 @ case 4
|
|
.4byte _08056082 @ case 5
|
|
.4byte _08056082 @ case 6
|
|
_08056020:
|
|
ldr r2, _08056048
|
|
ldr r0, _0805604C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r1, r0, #0
|
|
adds r1, #0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, #0xb
|
|
beq _080560B4
|
|
adds r0, #0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xb
|
|
beq _080560B4
|
|
cmp r1, #6
|
|
beq _080560B4
|
|
cmp r0, #6
|
|
beq _080560B4
|
|
b _08056082
|
|
.align 2, 0
|
|
_08056048: .4byte 0x02023D28
|
|
_0805604C: .4byte 0x02023EB0
|
|
_08056050:
|
|
bl GetCurrentMapType
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r4, #0xa
|
|
cmp r0, #5
|
|
bne _080560E2
|
|
movs r4, #0x23
|
|
b _080560E2
|
|
_08056062:
|
|
ldr r2, _08056088
|
|
ldr r0, _0805608C
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r0, #0x2a
|
|
ldrb r1, [r0]
|
|
cmp r1, #0x27
|
|
bhi _08056082
|
|
movs r0, #0x28
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #9
|
|
bhi _080560E2
|
|
_08056082:
|
|
movs r4, #0xa
|
|
b _080560E2
|
|
.align 2, 0
|
|
_08056088: .4byte 0x02023D28
|
|
_0805608C: .4byte 0x02023EB0
|
|
_08056090:
|
|
ldr r2, _080560B8
|
|
ldr r0, _080560BC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #1
|
|
bl GetSetPokedexFlag
|
|
lsls r0, r0, #0x18
|
|
movs r4, #0xa
|
|
cmp r0, #0
|
|
beq _080560E2
|
|
_080560B4:
|
|
movs r4, #0x1e
|
|
b _080560E2
|
|
.align 2, 0
|
|
_080560B8: .4byte 0x02023D28
|
|
_080560BC: .4byte 0x02023EB0
|
|
_080560C0:
|
|
ldr r0, _080560D4
|
|
ldrb r0, [r0, #0x13]
|
|
adds r0, #0xa
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0x28
|
|
bls _080560E2
|
|
movs r4, #0x28
|
|
b _080560E2
|
|
.align 2, 0
|
|
_080560D4: .4byte 0x03005A70
|
|
_080560D8:
|
|
ldr r1, _0805614C
|
|
ldrh r0, [r2]
|
|
subs r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0]
|
|
_080560E2:
|
|
adds r0, r5, #0
|
|
muls r0, r4, r0
|
|
movs r1, #0xa
|
|
bl __divsi3
|
|
ldr r5, _08056150
|
|
ldr r1, _08056154
|
|
ldrb r2, [r1]
|
|
movs r1, #0x58
|
|
adds r4, r2, #0
|
|
muls r4, r1, r4
|
|
adds r3, r4, r5
|
|
ldrh r2, [r3, #0x2c]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r3, #0x28]
|
|
lsls r2, r2, #1
|
|
subs r2, r1, r2
|
|
muls r0, r2, r0
|
|
bl __divsi3
|
|
adds r6, r0, #0
|
|
adds r5, #0x4c
|
|
adds r4, r4, r5
|
|
ldr r4, [r4]
|
|
movs r0, #0x27
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0805611E
|
|
lsls r6, r6, #1
|
|
_0805611E:
|
|
movs r0, #0xd8
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
beq _08056132
|
|
lsls r0, r6, #4
|
|
subs r0, r0, r6
|
|
movs r1, #0xa
|
|
bl __udivsi3
|
|
adds r6, r0, #0
|
|
_08056132:
|
|
ldr r1, _08056158
|
|
ldrh r0, [r1]
|
|
cmp r0, #5
|
|
beq _08056174
|
|
cmp r0, #1
|
|
bne _08056160
|
|
ldr r0, _0805615C
|
|
ldrb r1, [r0, #5]
|
|
movs r2, #2
|
|
orrs r1, r2
|
|
strb r1, [r0, #5]
|
|
b _08056174
|
|
.align 2, 0
|
|
_0805614C: .4byte 0x082ECE11
|
|
_08056150: .4byte 0x02023D28
|
|
_08056154: .4byte 0x02023EB0
|
|
_08056158: .4byte 0x02023EAC
|
|
_0805615C: .4byte 0x03005A70
|
|
_08056160:
|
|
ldr r0, _080561B8
|
|
ldrh r1, [r1]
|
|
adds r0, r0, r1
|
|
adds r1, r0, #0
|
|
adds r1, #0x34
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xfe
|
|
bhi _08056174
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
_08056174:
|
|
cmp r6, #0xfe
|
|
bls _080561D8
|
|
movs r0, #0
|
|
movs r1, #4
|
|
bl BtlController_EmitBallThrowAnim
|
|
ldr r0, _080561BC
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r1, _080561C0
|
|
ldr r0, _080561C4
|
|
str r0, [r1]
|
|
ldr r1, _080561C8
|
|
ldr r0, _080561CC
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080561D0
|
|
adds r0, r0, r1
|
|
ldr r2, _080561D4
|
|
movs r1, #0x26
|
|
bl SetMonData
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #6
|
|
beq _08056266
|
|
b _08056290
|
|
.align 2, 0
|
|
_080561B8: .4byte 0x03005A70
|
|
_080561BC: .4byte 0x02023D08
|
|
_080561C0: .4byte 0x02023EB8
|
|
_080561C4: .4byte 0x0828A30C
|
|
_080561C8: .4byte 0x02023D12
|
|
_080561CC: .4byte 0x02023EB0
|
|
_080561D0: .4byte 0x020243E8
|
|
_080561D4: .4byte 0x02023EAC
|
|
_080561D8:
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
adds r1, r6, #0
|
|
bl __udivsi3
|
|
bl Sqrt
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
bl Sqrt
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
ldr r0, _08056200
|
|
adds r1, r6, #0
|
|
bl __udivsi3
|
|
adds r6, r0, #0
|
|
movs r4, #0
|
|
b _0805620A
|
|
.align 2, 0
|
|
_08056200: .4byte 0x000FFFF0
|
|
_08056204:
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
_0805620A:
|
|
cmp r4, #3
|
|
bhi _0805621A
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, r6
|
|
blo _08056204
|
|
_0805621A:
|
|
ldr r5, _08056270
|
|
ldrh r0, [r5]
|
|
cmp r0, #1
|
|
bne _08056224
|
|
movs r4, #4
|
|
_08056224:
|
|
movs r0, #0
|
|
adds r1, r4, #0
|
|
bl BtlController_EmitBallThrowAnim
|
|
ldr r0, _08056274
|
|
ldrb r0, [r0]
|
|
bl MarkBattlerForControllerExec
|
|
cmp r4, #4
|
|
bne _0805629C
|
|
ldr r1, _08056278
|
|
ldr r0, _0805627C
|
|
str r0, [r1]
|
|
ldr r1, _08056280
|
|
ldr r0, _08056284
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08056288
|
|
adds r0, r0, r1
|
|
movs r1, #0x26
|
|
adds r2, r5, #0
|
|
bl SetMonData
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #6
|
|
bne _08056290
|
|
_08056266:
|
|
ldr r1, _0805628C
|
|
movs r0, #0
|
|
strb r0, [r1, #5]
|
|
b _080562A6
|
|
.align 2, 0
|
|
_08056270: .4byte 0x02023EAC
|
|
_08056274: .4byte 0x02023D08
|
|
_08056278: .4byte 0x02023EB8
|
|
_0805627C: .4byte 0x0828A30C
|
|
_08056280: .4byte 0x02023D12
|
|
_08056284: .4byte 0x02023EB0
|
|
_08056288: .4byte 0x020243E8
|
|
_0805628C: .4byte 0x02023FD6
|
|
_08056290:
|
|
ldr r1, _08056298
|
|
movs r0, #1
|
|
strb r0, [r1, #5]
|
|
b _080562A6
|
|
.align 2, 0
|
|
_08056298: .4byte 0x02023FD6
|
|
_0805629C:
|
|
ldr r0, _080562AC
|
|
strb r4, [r0, #5]
|
|
ldr r1, _080562B0
|
|
ldr r0, _080562B4
|
|
_080562A4:
|
|
str r0, [r1]
|
|
_080562A6:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080562AC: .4byte 0x02023FD6
|
|
_080562B0: .4byte 0x02023EB8
|
|
_080562B4: .4byte 0x0828A35C
|
|
thumb_func_end atkEF_handleballthrow
|
|
|
|
thumb_func_start atkF0_givecaughtmon
|
|
atkF0_givecaughtmon: @ 0x080562B8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r0, _08056328
|
|
mov sb, r0
|
|
ldr r5, _0805632C
|
|
ldrb r0, [r5]
|
|
movs r6, #1
|
|
eors r0, r6
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
movs r7, #0x64
|
|
muls r0, r7, r0
|
|
ldr r1, _08056330
|
|
mov r8, r1
|
|
add r0, r8
|
|
bl GiveMonToPlayer
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080563A2
|
|
bl sub_0813B254
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _08056344
|
|
ldr r0, _08056334
|
|
strb r1, [r0, #5]
|
|
ldr r4, _08056338
|
|
ldr r0, _0805633C
|
|
bl VarGet
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBoxNamePtr
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
add r0, r8
|
|
ldr r2, _08056340
|
|
movs r1, #2
|
|
bl GetMonData
|
|
b _0805638E
|
|
.align 2, 0
|
|
_08056328: .4byte 0x02023D12
|
|
_0805632C: .4byte 0x02023EAF
|
|
_08056330: .4byte 0x020243E8
|
|
_08056334: .4byte 0x02023FD6
|
|
_08056338: .4byte 0x02021C40
|
|
_0805633C: .4byte 0x00004036
|
|
_08056340: .4byte 0x02021C54
|
|
_08056344:
|
|
ldr r4, _08056434
|
|
ldr r0, _08056438
|
|
bl VarGet
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBoxNamePtr
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
add r0, r8
|
|
ldr r2, _0805643C
|
|
movs r1, #2
|
|
bl GetMonData
|
|
ldr r4, _08056440
|
|
bl get_unknown_box_id
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl GetBoxNamePtr
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
ldr r1, _08056444
|
|
movs r0, #2
|
|
strb r0, [r1, #5]
|
|
_0805638E:
|
|
ldr r0, _08056448
|
|
bl FlagGet
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080563A2
|
|
ldr r1, _08056444
|
|
ldrb r0, [r1, #5]
|
|
adds r0, #1
|
|
strb r0, [r1, #5]
|
|
_080563A2:
|
|
ldr r0, _0805644C
|
|
mov sl, r0
|
|
ldr r1, _08056450
|
|
mov sb, r1
|
|
ldrb r0, [r1]
|
|
movs r4, #1
|
|
eors r0, r4
|
|
lsls r0, r0, #1
|
|
add r0, sl
|
|
ldrh r0, [r0]
|
|
movs r1, #0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
ldr r6, _08056454
|
|
adds r0, r0, r6
|
|
movs r1, #0xb
|
|
movs r2, #0
|
|
bl GetMonData
|
|
ldr r5, _08056458
|
|
strh r0, [r5, #0x28]
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
eors r0, r4
|
|
lsls r0, r0, #1
|
|
add r0, sl
|
|
ldrh r0, [r0]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r6
|
|
adds r2, r5, #0
|
|
adds r2, #0x2a
|
|
movs r1, #2
|
|
bl GetMonData
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
eors r4, r0
|
|
lsls r4, r4, #1
|
|
add r4, sl
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
adds r0, r0, r6
|
|
movs r1, #0x26
|
|
movs r2, #0
|
|
bl GetMonData
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
lsls r0, r0, #2
|
|
ldrb r2, [r5, #5]
|
|
movs r1, #0x3d
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, #5]
|
|
ldr r1, _0805645C
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056434: .4byte 0x02021C40
|
|
_08056438: .4byte 0x00004036
|
|
_0805643C: .4byte 0x02021C54
|
|
_08056440: .4byte 0x02021C68
|
|
_08056444: .4byte 0x02023FD6
|
|
_08056448: .4byte 0x000008AB
|
|
_0805644C: .4byte 0x02023D12
|
|
_08056450: .4byte 0x02023EAF
|
|
_08056454: .4byte 0x020243E8
|
|
_08056458: .4byte 0x03005A70
|
|
_0805645C: .4byte 0x02023EB8
|
|
thumb_func_end atkF0_givecaughtmon
|
|
|
|
thumb_func_start atkF1_trysetcaughtmondexflags
|
|
atkF1_trysetcaughtmondexflags: @ 0x08056460
|
|
push {r4, r5, lr}
|
|
ldr r4, _080564B0
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
movs r2, #0
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
adds r0, r5, #0
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #1
|
|
bl GetSetPokedexFlag
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080564B8
|
|
ldr r3, _080564B4
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080564D2
|
|
.align 2, 0
|
|
_080564B0: .4byte 0x020243E8
|
|
_080564B4: .4byte 0x02023EB8
|
|
_080564B8:
|
|
adds r0, r5, #0
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #3
|
|
adds r2, r4, #0
|
|
bl HandleSetPokedexFlag
|
|
ldr r1, _080564D8
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
_080564D2:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080564D8: .4byte 0x02023EB8
|
|
thumb_func_end atkF1_trysetcaughtmondexflags
|
|
|
|
thumb_func_start atkF2_displaydexinfo
|
|
atkF2_displaydexinfo: @ 0x080564DC
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r0, _08056504
|
|
movs r1, #0xb
|
|
movs r2, #0
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
ldr r0, _08056508
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bls _080564F8
|
|
b _0805663C
|
|
_080564F8:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805650C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056504: .4byte 0x020243E8
|
|
_08056508: .4byte 0x02023FD6
|
|
_0805650C: .4byte 0x08056510
|
|
_08056510: @ jump table
|
|
.4byte _08056528 @ case 0
|
|
.4byte _0805653A @ case 1
|
|
.4byte _08056588 @ case 2
|
|
.4byte _080565D8 @ case 3
|
|
.4byte _080565F0 @ case 4
|
|
.4byte _08056628 @ case 5
|
|
_08056528:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
b _08056616
|
|
_0805653A:
|
|
ldr r0, _08056578
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08056548
|
|
b _0805663C
|
|
_08056548:
|
|
bl FreeAllWindowBuffers
|
|
adds r0, r4, #0
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldr r3, _0805657C
|
|
ldr r1, _08056580
|
|
ldrb r2, [r1]
|
|
movs r1, #0x58
|
|
muls r2, r1, r2
|
|
adds r1, r3, #0
|
|
adds r1, #0x54
|
|
adds r1, r2, r1
|
|
ldr r1, [r1]
|
|
adds r3, #0x48
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
bl CreateDexDisplayMonDataTask
|
|
ldr r1, _08056584
|
|
strb r0, [r1, #1]
|
|
b _08056618
|
|
.align 2, 0
|
|
_08056578: .4byte 0x02037C74
|
|
_0805657C: .4byte 0x02023D28
|
|
_08056580: .4byte 0x02023EB0
|
|
_08056584: .4byte 0x02023FD6
|
|
_08056588:
|
|
ldr r0, _080565C0
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805663C
|
|
ldr r0, _080565C4
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _080565C8
|
|
cmp r1, r0
|
|
bne _0805663C
|
|
ldr r2, _080565CC
|
|
ldr r4, _080565D0
|
|
ldrb r1, [r4, #1]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0805663C
|
|
ldr r0, _080565D4
|
|
bl SetVBlankCallback
|
|
ldrb r0, [r4]
|
|
adds r0, #1
|
|
strb r0, [r4]
|
|
b _0805663C
|
|
.align 2, 0
|
|
_080565C0: .4byte 0x02037C74
|
|
_080565C4: .4byte 0x03002360
|
|
_080565C8: .4byte 0x080380FD
|
|
_080565CC: .4byte 0x03005B60
|
|
_080565D0: .4byte 0x02023FD6
|
|
_080565D4: .4byte 0x080386DD
|
|
_080565D8:
|
|
bl sub_08035528
|
|
bl LoadBattleTextboxAndBackground
|
|
ldr r1, _080565EC
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
b _08056616
|
|
.align 2, 0
|
|
_080565EC: .4byte 0x02022AD4
|
|
_080565F0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0805663C
|
|
ldr r0, _08056620
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #3
|
|
bl ShowBg
|
|
_08056616:
|
|
ldr r1, _08056624
|
|
_08056618:
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
b _0805663C
|
|
.align 2, 0
|
|
_08056620: .4byte 0x0000FFFF
|
|
_08056624: .4byte 0x02023FD6
|
|
_08056628:
|
|
ldr r0, _08056644
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805663C
|
|
ldr r1, _08056648
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
_0805663C:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056644: .4byte 0x02037C74
|
|
_08056648: .4byte 0x02023EB8
|
|
thumb_func_end atkF2_displaydexinfo
|
|
|
|
thumb_func_start HandleBattleWindow
|
|
HandleBattleWindow: @ 0x0805664C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x20
|
|
ldr r4, [sp, #0x40]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
str r1, [sp, #0x10]
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
str r2, [sp, #0x1c]
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
str r3, [sp, #0x14]
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
mov sl, r4
|
|
movs r1, #0
|
|
add r0, sp, #0xc
|
|
strh r1, [r0]
|
|
ldr r6, [sp, #0x10]
|
|
cmp r6, r3
|
|
ble _08056686
|
|
b _08056772
|
|
_08056686:
|
|
mov r4, r8
|
|
adds r0, r6, #1
|
|
str r0, [sp, #0x18]
|
|
ldr r2, [sp, #0x1c]
|
|
cmp r4, r2
|
|
bgt _08056768
|
|
add r5, sp, #0xc
|
|
lsls r7, r6, #0x18
|
|
mov sb, r7
|
|
_08056698:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r6, r0
|
|
bne _080566C4
|
|
cmp r4, r8
|
|
bne _080566AC
|
|
ldr r0, _080566A8
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566A8: .4byte 0x00001022
|
|
_080566AC:
|
|
ldr r2, [sp, #0x1c]
|
|
cmp r4, r2
|
|
bne _080566BC
|
|
ldr r0, _080566B8
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566B8: .4byte 0x00001024
|
|
_080566BC:
|
|
ldr r0, _080566C0
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566C0: .4byte 0x00001023
|
|
_080566C4:
|
|
ldr r7, [sp, #0x14]
|
|
cmp r6, r7
|
|
bne _080566F0
|
|
cmp r4, r8
|
|
bne _080566D8
|
|
ldr r0, _080566D4
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566D4: .4byte 0x00001028
|
|
_080566D8:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r4, r0
|
|
bne _080566E8
|
|
ldr r0, _080566E4
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566E4: .4byte 0x0000102A
|
|
_080566E8:
|
|
ldr r0, _080566EC
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566EC: .4byte 0x00001029
|
|
_080566F0:
|
|
cmp r4, r8
|
|
bne _080566FC
|
|
ldr r0, _080566F8
|
|
b _0805670E
|
|
.align 2, 0
|
|
_080566F8: .4byte 0x00001025
|
|
_080566FC:
|
|
ldr r2, [sp, #0x1c]
|
|
cmp r4, r2
|
|
bne _0805670C
|
|
ldr r0, _08056708
|
|
b _0805670E
|
|
.align 2, 0
|
|
_08056708: .4byte 0x00001027
|
|
_0805670C:
|
|
ldr r0, _08056744
|
|
_0805670E:
|
|
strh r0, [r5]
|
|
movs r1, #1
|
|
mov r0, sl
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805671E
|
|
movs r0, #0
|
|
strh r0, [r5]
|
|
_0805671E:
|
|
movs r0, #0x80
|
|
mov r7, sl
|
|
ands r0, r7
|
|
cmp r0, #0
|
|
beq _08056748
|
|
lsls r2, r4, #0x18
|
|
lsrs r2, r2, #0x18
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #1
|
|
add r1, sp, #0xc
|
|
mov r7, sb
|
|
lsrs r3, r7, #0x18
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
b _08056760
|
|
.align 2, 0
|
|
_08056744: .4byte 0x00001026
|
|
_08056748:
|
|
lsls r2, r4, #0x18
|
|
lsrs r2, r2, #0x18
|
|
str r1, [sp]
|
|
str r1, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
mov r7, sb
|
|
lsrs r3, r7, #0x18
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
_08056760:
|
|
adds r4, #1
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r4, r0
|
|
ble _08056698
|
|
_08056768:
|
|
ldr r6, [sp, #0x18]
|
|
ldr r2, [sp, #0x14]
|
|
cmp r6, r2
|
|
bgt _08056772
|
|
b _08056686
|
|
_08056772:
|
|
add sp, #0x20
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end HandleBattleWindow
|
|
|
|
thumb_func_start BattleCreateYesNoCursorAt
|
|
BattleCreateYesNoCursorAt: @ 0x08056784
|
|
push {lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
add r0, sp, #0xc
|
|
movs r2, #1
|
|
strh r2, [r0]
|
|
movs r1, #2
|
|
strh r1, [r0, #2]
|
|
lsls r3, r3, #0x19
|
|
movs r0, #0x90
|
|
lsls r0, r0, #0x14
|
|
adds r3, r3, r0
|
|
lsrs r3, r3, #0x18
|
|
str r2, [sp]
|
|
str r1, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
movs r2, #0x19
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end BattleCreateYesNoCursorAt
|
|
|
|
thumb_func_start BattleDestroyYesNoCursorAt
|
|
BattleDestroyYesNoCursorAt: @ 0x080567BC
|
|
push {lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
add r0, sp, #0xc
|
|
ldr r1, _080567F8
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
lsls r3, r3, #0x19
|
|
movs r0, #0x90
|
|
lsls r0, r0, #0x14
|
|
adds r3, r3, r0
|
|
lsrs r3, r3, #0x18
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
movs r0, #2
|
|
str r0, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
movs r2, #0x19
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080567F8: .4byte 0x00001016
|
|
thumb_func_end BattleDestroyYesNoCursorAt
|
|
|
|
thumb_func_start atkF3_trygivecaughtmonnick
|
|
atkF3_trygivecaughtmonnick: @ 0x080567FC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
ldr r0, _08056820
|
|
ldrb r1, [r0]
|
|
adds r4, r0, #0
|
|
cmp r1, #4
|
|
bls _08056814
|
|
b _08056A72
|
|
_08056814:
|
|
lsls r0, r1, #2
|
|
ldr r1, _08056824
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08056820: .4byte 0x02023FD6
|
|
_08056824: .4byte 0x08056828
|
|
_08056828: @ jump table
|
|
.4byte _0805683C @ case 0
|
|
.4byte _08056870 @ case 1
|
|
.4byte _0805690C @ case 2
|
|
.4byte _080569E4 @ case 3
|
|
.4byte _08056A3C @ case 4
|
|
_0805683C:
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _08056868
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldr r1, _0805686C
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
strb r4, [r1, #1]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
b _08056A72
|
|
.align 2, 0
|
|
_08056868: .4byte 0x085ABBC9
|
|
_0805686C: .4byte 0x02023FD6
|
|
_08056870:
|
|
ldr r0, _080568E8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08056896
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _08056896
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_08056896:
|
|
ldr r0, _080568E8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080568BE
|
|
ldr r4, _080568EC
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _080568BE
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_080568BE:
|
|
ldr r0, _080568E8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080568F0
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _080568EC
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0
|
|
bne _08056902
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
movs r0, #3
|
|
bl BeginFastPaletteFade
|
|
b _08056A72
|
|
.align 2, 0
|
|
_080568E8: .4byte 0x03002360
|
|
_080568EC: .4byte 0x02023FD6
|
|
_080568F0:
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080568FA
|
|
b _08056A72
|
|
_080568FA:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _08056908
|
|
_08056902:
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
b _08056A72
|
|
.align 2, 0
|
|
_08056908: .4byte 0x02023FD6
|
|
_0805690C:
|
|
ldr r0, _080569C8
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805691A
|
|
b _08056A72
|
|
_0805691A:
|
|
ldr r7, _080569CC
|
|
ldr r0, _080569D0
|
|
mov sl, r0
|
|
ldrb r0, [r0]
|
|
movs r4, #1
|
|
eors r0, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
movs r1, #0x64
|
|
mov sb, r1
|
|
mov r2, sb
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
ldr r1, _080569D4
|
|
mov r8, r1
|
|
add r0, r8
|
|
ldr r1, _080569D8
|
|
ldr r2, [r1]
|
|
adds r2, #0x6d
|
|
movs r1, #2
|
|
bl GetMonData
|
|
bl FreeAllWindowBuffers
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
eors r0, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
add r0, r8
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r6, r0, #0
|
|
lsls r6, r6, #0x10
|
|
lsrs r6, r6, #0x10
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
eors r0, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
add r0, r8
|
|
bl GetMonGender
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
eors r4, r0
|
|
lsls r4, r4, #1
|
|
adds r4, r4, r7
|
|
ldrh r0, [r4]
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
add r0, r8
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl GetMonData
|
|
ldr r2, _080569D8
|
|
ldr r1, [r2]
|
|
adds r1, #0x6d
|
|
str r0, [sp]
|
|
ldr r0, _080569DC
|
|
str r0, [sp, #4]
|
|
movs r0, #2
|
|
adds r2, r6, #0
|
|
adds r3, r5, #0
|
|
bl DoNamingScreen
|
|
ldr r1, _080569E0
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
b _08056A72
|
|
.align 2, 0
|
|
_080569C8: .4byte 0x02037C74
|
|
_080569CC: .4byte 0x02023D12
|
|
_080569D0: .4byte 0x02023EAF
|
|
_080569D4: .4byte 0x020243E8
|
|
_080569D8: .4byte 0x02024140
|
|
_080569DC: .4byte 0x080380FD
|
|
_080569E0: .4byte 0x02023FD6
|
|
_080569E4:
|
|
ldr r0, _08056A20
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _08056A24
|
|
cmp r1, r0
|
|
bne _08056A72
|
|
ldr r0, _08056A28
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08056A72
|
|
ldr r2, _08056A2C
|
|
ldr r0, _08056A30
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
eors r0, r1
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08056A34
|
|
adds r0, r0, r1
|
|
ldr r1, _08056A38
|
|
ldr r2, [r1]
|
|
adds r2, #0x6d
|
|
movs r1, #2
|
|
bl SetMonData
|
|
b _08056A58
|
|
.align 2, 0
|
|
_08056A20: .4byte 0x03002360
|
|
_08056A24: .4byte 0x080380FD
|
|
_08056A28: .4byte 0x02037C74
|
|
_08056A2C: .4byte 0x02023D12
|
|
_08056A30: .4byte 0x02023EAF
|
|
_08056A34: .4byte 0x020243E8
|
|
_08056A38: .4byte 0x02024140
|
|
_08056A3C:
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #6
|
|
bne _08056A58
|
|
ldr r1, _08056A54
|
|
ldr r0, [r1]
|
|
adds r0, #5
|
|
str r0, [r1]
|
|
b _08056A72
|
|
.align 2, 0
|
|
_08056A54: .4byte 0x02023EB8
|
|
_08056A58:
|
|
ldr r3, _08056A84
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, #1]
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #3]
|
|
lsls r0, r0, #0x10
|
|
orrs r1, r0
|
|
ldrb r0, [r2, #4]
|
|
lsls r0, r0, #0x18
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08056A72:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056A84: .4byte 0x02023EB8
|
|
thumb_func_end atkF3_trygivecaughtmonnick
|
|
|
|
thumb_func_start atkF4_subattackerhpbydmg
|
|
atkF4_subattackerhpbydmg: @ 0x08056A88
|
|
ldr r2, _08056AA8
|
|
ldr r0, _08056AAC
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r1, r0, r1
|
|
adds r1, r1, r2
|
|
ldr r0, _08056AB0
|
|
ldr r2, [r0]
|
|
ldrh r0, [r1, #0x28]
|
|
subs r0, r0, r2
|
|
strh r0, [r1, #0x28]
|
|
ldr r1, _08056AB4
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08056AA8: .4byte 0x02023D28
|
|
_08056AAC: .4byte 0x02023EAF
|
|
_08056AB0: .4byte 0x02023E94
|
|
_08056AB4: .4byte 0x02023EB8
|
|
thumb_func_end atkF4_subattackerhpbydmg
|
|
|
|
thumb_func_start atkF5_removeattackerstatus1
|
|
atkF5_removeattackerstatus1: @ 0x08056AB8
|
|
ldr r1, _08056AD4
|
|
ldr r0, _08056AD8
|
|
ldrb r2, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r2, r0
|
|
adds r1, #0x4c
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
str r1, [r0]
|
|
ldr r1, _08056ADC
|
|
ldr r0, [r1]
|
|
adds r0, #1
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08056AD4: .4byte 0x02023D28
|
|
_08056AD8: .4byte 0x02023EAF
|
|
_08056ADC: .4byte 0x02023EB8
|
|
thumb_func_end atkF5_removeattackerstatus1
|
|
|
|
thumb_func_start atkF6_finishaction
|
|
atkF6_finishaction: @ 0x08056AE0
|
|
ldr r1, _08056AE8
|
|
movs r0, #0xc
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08056AE8: .4byte 0x02023D27
|
|
thumb_func_end atkF6_finishaction
|
|
|
|
thumb_func_start atkF7_finishturn
|
|
atkF7_finishturn: @ 0x08056AEC
|
|
ldr r1, _08056AFC
|
|
movs r0, #0xc
|
|
strb r0, [r1]
|
|
ldr r1, _08056B00
|
|
ldr r0, _08056B04
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08056AFC: .4byte 0x02023D27
|
|
_08056B00: .4byte 0x02023D26
|
|
_08056B04: .4byte 0x02023D10
|
|
thumb_func_end atkF7_finishturn
|
|
|
|
thumb_func_start atkF8_trainerslideout
|
|
atkF8_trainerslideout: @ 0x08056B08
|
|
push {r4, r5, lr}
|
|
ldr r5, _08056B30
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
bl GetBattlerAtPosition
|
|
ldr r4, _08056B34
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BtlController_EmitTrainerSlideBack
|
|
ldrb r0, [r4]
|
|
bl MarkBattlerForControllerExec
|
|
ldr r0, [r5]
|
|
adds r0, #2
|
|
str r0, [r5]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08056B30: .4byte 0x02023EB8
|
|
_08056B34: .4byte 0x02023D08
|
|
thumb_func_end atkF8_trainerslideout
|
|
|