92400 lines
1.4 MiB
92400 lines
1.4 MiB
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8034C54
|
|
sub_8034C54: @ 8034C54
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, =gUnknown_02022E10
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08034C64
|
|
bl sub_8034CC8
|
|
_08034C64:
|
|
movs r0, 0x8
|
|
bl Alloc
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _08034C78
|
|
movs r0, 0
|
|
b _08034CC0
|
|
.pool
|
|
_08034C78:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
bl Alloc
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _08034C94
|
|
adds r0, r1, 0
|
|
bl Free
|
|
movs r0, 0
|
|
b _08034CC0
|
|
_08034C94:
|
|
str r4, [r1]
|
|
movs r3, 0
|
|
cmp r3, r4
|
|
bcs _08034CBE
|
|
movs r7, 0
|
|
movs r6, 0xFF
|
|
movs r2, 0
|
|
_08034CA2:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r2, r0
|
|
strb r7, [r0]
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r2, r1
|
|
ldrb r0, [r1, 0x1]
|
|
orrs r0, r6
|
|
strb r0, [r1, 0x1]
|
|
adds r2, 0x1C
|
|
adds r3, 0x1
|
|
cmp r3, r4
|
|
bcc _08034CA2
|
|
_08034CBE:
|
|
movs r0, 0x1
|
|
_08034CC0:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8034C54
|
|
|
|
thumb_func_start sub_8034CC8
|
|
sub_8034CC8: @ 8034CC8
|
|
push {r4,r5,lr}
|
|
ldr r2, =gUnknown_02022E10
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
beq _08034D08
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _08034CFC
|
|
movs r4, 0
|
|
ldr r0, [r1]
|
|
cmp r4, r0
|
|
bcs _08034CF2
|
|
adds r5, r2, 0
|
|
_08034CE2:
|
|
adds r0, r4, 0
|
|
bl sub_80353DC
|
|
adds r4, 0x1
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08034CE2
|
|
_08034CF2:
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
bl Free
|
|
_08034CFC:
|
|
ldr r4, =gUnknown_02022E10
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08034D08:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8034CC8
|
|
|
|
thumb_func_start sub_8034D14
|
|
sub_8034D14: @ 8034D14
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r8, r0
|
|
mov r10, r1
|
|
adds r5, r2, 0
|
|
ldr r6, =gUnknown_02022E10
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
beq _08034DD4
|
|
ldr r1, [r0, 0x4]
|
|
mov r0, r8
|
|
lsls r2, r0, 3
|
|
subs r0, r2, r0
|
|
lsls r4, r0, 2
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1]
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _08034DD4
|
|
ldrb r0, [r5, 0x1]
|
|
bl sub_8035518
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0xFF
|
|
beq _08034DD4
|
|
ldr r0, [r5, 0x8]
|
|
ldrh r0, [r0, 0x6]
|
|
bl GetObjectTileRangeStartByTag
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
adds r1, r4, r1
|
|
strh r0, [r1, 0xA]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r1, [r0, 0xA]
|
|
ldr r7, =0xffff0000
|
|
lsrs r0, r7, 16
|
|
cmp r1, r0
|
|
bne _08034DE0
|
|
ldr r2, [r5, 0x8]
|
|
ldrh r0, [r2, 0x4]
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _08034D94
|
|
adds r0, r1, 0
|
|
bl LoadObjectPic
|
|
b _08034DB4
|
|
.pool
|
|
_08034D94:
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
bl sub_8034974
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r7
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadCompressedObjectPic
|
|
_08034DB4:
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r4, r1
|
|
strh r0, [r1, 0xA]
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
mov r2, r9
|
|
mov r3, r8
|
|
subs r0, r2, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0xA]
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _08034DE0
|
|
_08034DD4:
|
|
movs r0, 0
|
|
b _08034EE8
|
|
.pool
|
|
_08034DE0:
|
|
ldr r0, [r5, 0xC]
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldr r6, =gUnknown_02022E10
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
mov r4, r9
|
|
mov r3, r8
|
|
subs r2, r4, r3
|
|
lsls r4, r2, 2
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0xFF
|
|
bne _08034E14
|
|
ldr r0, [r5, 0xC]
|
|
bl LoadTaggedObjectPalette
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x4]
|
|
_08034E14:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r5]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r5, 0x1]
|
|
strb r1, [r0, 0x3]
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r1, [r5, 0x4]
|
|
strh r1, [r0, 0xC]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldrh r1, [r5, 0x6]
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, [r2, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r5]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
strb r0, [r1, 0x6]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r5]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r5]
|
|
lsrs r0, 6
|
|
strb r0, [r1, 0x7]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r5, 0x2]
|
|
strb r1, [r0, 0x8]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 28
|
|
lsrs r0, 30
|
|
lsls r1, 26
|
|
lsrs r1, 30
|
|
bl sub_80355F8
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
adds r1, r4, r1
|
|
strb r0, [r1, 0x9]
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldr r1, [r5, 0x8]
|
|
ldrh r1, [r1, 0x6]
|
|
strh r1, [r0, 0x10]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
ldr r1, [r5, 0xC]
|
|
ldrh r1, [r1, 0x4]
|
|
strh r1, [r0, 0x12]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4, r0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4, r0
|
|
str r1, [r0, 0x14]
|
|
movs r3, 0x1
|
|
ldrb r0, [r5, 0x1]
|
|
cmp r3, r0
|
|
bcs _08034ECA
|
|
_08034EB2:
|
|
ldr r0, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r4, r2
|
|
ldr r1, [r2, 0x14]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
str r0, [r2, 0x14]
|
|
adds r3, 0x1
|
|
ldrb r2, [r5, 0x1]
|
|
cmp r3, r2
|
|
bcc _08034EB2
|
|
_08034ECA:
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
mov r3, r9
|
|
mov r4, r8
|
|
subs r1, r3, r4
|
|
lsls r1, 2
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r1
|
|
bl sub_8034EFC
|
|
mov r0, r8
|
|
mov r1, r10
|
|
bl sub_8035044
|
|
movs r0, 0x1
|
|
_08034EE8:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8034D14
|
|
|
|
thumb_func_start sub_8034EFC
|
|
sub_8034EFC: @ 8034EFC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldrb r5, [r4, 0x1]
|
|
movs r0, 0xC
|
|
ldrsh r7, [r4, r0]
|
|
ldrb r0, [r4, 0x3]
|
|
adds r0, 0x1
|
|
mov r8, r0
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
lsls r1, r5, 3
|
|
ldr r2, =gUnknown_030022F8
|
|
mov r9, r2
|
|
add r1, r9
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r6, 0
|
|
ldrb r5, [r4, 0x1]
|
|
cmp r6, r8
|
|
bcs _08034FCE
|
|
movs r1, 0x3F
|
|
mov r10, r1
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
mov r9, r2
|
|
_08034F46:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMain
|
|
adds r3, r0, r1
|
|
ldrh r1, [r4, 0xE]
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
strb r1, [r0]
|
|
ldr r2, =0x000001ff
|
|
adds r0, r2, 0
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
ldrh r2, [r3, 0x3A]
|
|
ldr r0, =0xfffffe00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x3A]
|
|
ldrb r1, [r4, 0x6]
|
|
movs r0, 0x39
|
|
adds r0, r3
|
|
mov r12, r0
|
|
lsls r1, 6
|
|
ldrb r2, [r0]
|
|
mov r0, r10
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0x3B
|
|
adds r2, r3
|
|
mov r12, r2
|
|
lsls r1, 6
|
|
ldrb r2, [r2]
|
|
mov r0, r10
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0xA]
|
|
ldr r1, =0x000003ff
|
|
ands r1, r0
|
|
ldrh r2, [r3, 0x3C]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x3C]
|
|
adds r3, 0x3D
|
|
movs r0, 0x3
|
|
ldrb r1, [r4, 0x7]
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrb r2, [r4, 0x4]
|
|
lsls r2, 4
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
ldrb r0, [r4, 0x8]
|
|
adds r7, r0
|
|
adds r6, 0x1
|
|
adds r5, 0x1
|
|
cmp r6, r8
|
|
bcc _08034F46
|
|
_08034FCE:
|
|
subs r5, 0x1
|
|
ldr r0, =gMain
|
|
lsls r3, r5, 3
|
|
adds r3, r0
|
|
movs r2, 0xC
|
|
ldrsh r1, [r4, r2]
|
|
ldrb r0, [r4, 0x8]
|
|
subs r1, r0
|
|
ldr r2, =0x000001ff
|
|
adds r0, r2, 0
|
|
ands r1, r0
|
|
ldrh r2, [r3, 0x3A]
|
|
ldr r0, =0xfffffe00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x3A]
|
|
adds r2, r3, 0
|
|
adds r2, 0x39
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, 0x9]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
ldrh r4, [r4, 0xA]
|
|
adds r1, r4
|
|
ldr r2, =0x000003ff
|
|
adds r0, r2, 0
|
|
ands r1, r0
|
|
ldrh r2, [r3, 0x3C]
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x3C]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8034EFC
|
|
|
|
thumb_func_start sub_8035044
|
|
sub_8035044: @ 8035044
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r1, [r0]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _080350A8
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r3, 3
|
|
subs r0, r1, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _080350A8
|
|
str r4, [r2, 0x18]
|
|
cmp r4, 0
|
|
bge _08035078
|
|
movs r2, 0x1
|
|
negs r4, r4
|
|
b _0803507A
|
|
.pool
|
|
_08035078:
|
|
movs r2, 0
|
|
_0803507A:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r5, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r3, [r0, 0x2]
|
|
cmp r3, 0x1
|
|
beq _0803509A
|
|
cmp r3, 0x1
|
|
ble _08035092
|
|
cmp r3, 0x2
|
|
beq _080350A2
|
|
_08035092:
|
|
adds r1, r4, 0
|
|
bl sub_80350B0
|
|
b _080350A8
|
|
_0803509A:
|
|
adds r1, r4, 0
|
|
bl sub_8035164
|
|
b _080350A8
|
|
_080350A2:
|
|
adds r1, r4, 0
|
|
bl sub_80352C0
|
|
_080350A8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8035044
|
|
|
|
thumb_func_start sub_80350B0
|
|
sub_80350B0: @ 80350B0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
mov r9, r1
|
|
str r2, [sp]
|
|
ldr r5, [r0, 0x14]
|
|
ldrb r7, [r0, 0x1]
|
|
ldr r0, =gMain
|
|
mov r10, r0
|
|
cmp r5, 0
|
|
beq _0803511A
|
|
lsls r0, r7, 3
|
|
adds r0, 0x3C
|
|
mov r1, r10
|
|
adds r6, r0, r1
|
|
_080350D6:
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl __udivsi3
|
|
adds r4, r0, 0
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
mov r2, r9
|
|
subs r2, r0
|
|
mov r9, r2
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r5, r0, 0
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x9]
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
mov r2, r8
|
|
ldrh r2, [r2, 0xA]
|
|
adds r1, r2
|
|
ldr r2, =0x000003ff
|
|
adds r0, r2, 0
|
|
ands r1, r0
|
|
ldrh r0, [r6]
|
|
ldr r2, =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r6]
|
|
adds r6, 0x8
|
|
adds r7, 0x1
|
|
cmp r5, 0
|
|
bne _080350D6
|
|
_0803511A:
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
beq _08035140
|
|
lsls r0, r7, 3
|
|
add r0, r10
|
|
adds r0, 0x39
|
|
ldrb r2, [r0]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
b _08035154
|
|
.pool
|
|
_08035140:
|
|
lsls r2, r7, 3
|
|
add r2, r10
|
|
adds r2, 0x39
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08035154:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80350B0
|
|
|
|
thumb_func_start sub_8035164
|
|
sub_8035164: @ 8035164
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
str r2, [sp]
|
|
ldr r5, [r6, 0x14]
|
|
ldr r3, =gUnknown_03000DD4
|
|
ldrb r0, [r6, 0x1]
|
|
str r0, [r3]
|
|
ldr r2, =gUnknown_03000DD8
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_03000DDC
|
|
subs r0, 0x1
|
|
str r0, [r1]
|
|
adds r7, r3, 0
|
|
mov r10, r1
|
|
ldr r0, =gMain
|
|
mov r9, r0
|
|
cmp r5, 0
|
|
beq _0803524C
|
|
_08035196:
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl __udivsi3
|
|
adds r4, r0, 0
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
mov r1, r8
|
|
subs r1, r0
|
|
mov r8, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r5, r0, 0
|
|
cmp r4, 0
|
|
bne _080351C8
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080351C8
|
|
cmp r5, 0
|
|
bne _08035224
|
|
_080351C8:
|
|
ldr r2, [r7]
|
|
lsls r2, 3
|
|
add r2, r9
|
|
ldrb r0, [r6, 0x9]
|
|
adds r3, r4, 0
|
|
muls r3, r0
|
|
ldrh r4, [r6, 0xA]
|
|
adds r3, r4
|
|
ldr r1, =0x000003ff
|
|
adds r0, r1, 0
|
|
ands r3, r0
|
|
ldrh r0, [r2, 0x3C]
|
|
ldr r4, =0xfffffc00
|
|
adds r1, r4, 0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strh r0, [r2, 0x3C]
|
|
adds r2, 0x39
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0803523A
|
|
ldr r4, =gUnknown_03000DD8
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
b _0803523A
|
|
.pool
|
|
_08035224:
|
|
ldr r0, [r7]
|
|
lsls r0, 3
|
|
add r0, r9
|
|
adds r0, 0x39
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
ands r1, r2
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0803523A:
|
|
ldr r0, [r7]
|
|
adds r0, 0x1
|
|
str r0, [r7]
|
|
ldr r4, =gUnknown_03000DD8
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
str r0, [r4]
|
|
cmp r5, 0
|
|
bne _08035196
|
|
_0803524C:
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
beq _08035298
|
|
ldr r1, [r7]
|
|
lsls r1, 3
|
|
add r1, r9
|
|
adds r1, 0x39
|
|
ldrb r2, [r1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r3, [r7]
|
|
lsls r3, 3
|
|
add r3, r9
|
|
movs r1, 0xC
|
|
ldrsh r2, [r6, r1]
|
|
mov r4, r10
|
|
ldr r0, [r4]
|
|
subs r0, 0x1
|
|
ldrb r1, [r6, 0x8]
|
|
muls r0, r1
|
|
adds r2, r0
|
|
ldr r1, =0x000001ff
|
|
adds r0, r1, 0
|
|
ands r2, r0
|
|
ldrh r1, [r3, 0x3A]
|
|
ldr r0, =0xfffffe00
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3, 0x3A]
|
|
b _080352AE
|
|
.pool
|
|
_08035298:
|
|
ldr r0, [r7]
|
|
lsls r0, 3
|
|
add r0, r9
|
|
adds r0, 0x39
|
|
ldrb r2, [r0]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080352AE:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8035164
|
|
|
|
thumb_func_start sub_80352C0
|
|
sub_80352C0: @ 80352C0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
mov r8, r0
|
|
mov r10, r1
|
|
str r2, [sp]
|
|
ldr r5, [r0, 0x14]
|
|
ldrb r3, [r0, 0x1]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
mov r9, r0
|
|
cmp r5, 0
|
|
beq _0803535A
|
|
_080352E0:
|
|
lsls r0, r3, 3
|
|
adds r1, r0, 0
|
|
adds r1, 0x39
|
|
ldr r2, =gMain
|
|
adds r7, r1, r2
|
|
adds r0, 0x3C
|
|
adds r6, r0, r2
|
|
_080352EE:
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
str r3, [sp, 0x8]
|
|
bl __udivsi3
|
|
adds r4, r0, 0
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
mov r1, r10
|
|
subs r1, r0
|
|
mov r10, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r5, r0, 0
|
|
ldr r3, [sp, 0x8]
|
|
cmp r4, 0
|
|
bne _0803531E
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
bne _0803531E
|
|
cmp r5, 0
|
|
bne _080352E0
|
|
_0803531E:
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x9]
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
ldrh r4, [r1, 0xA]
|
|
adds r2, r4
|
|
ldr r1, =0x000003ff
|
|
adds r0, r1, 0
|
|
ands r2, r0
|
|
ldrh r0, [r6]
|
|
ldr r4, =0xfffffc00
|
|
adds r1, r4, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r6]
|
|
ldrb r0, [r7]
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
strb r0, [r7]
|
|
adds r7, 0x8
|
|
adds r6, 0x8
|
|
adds r3, 0x1
|
|
movs r4, 0x1
|
|
add r9, r4
|
|
cmp r5, 0
|
|
bne _080352EE
|
|
_0803535A:
|
|
mov r0, r8
|
|
ldrb r0, [r0, 0x3]
|
|
cmp r9, r0
|
|
bge _0803538A
|
|
ldr r1, =gMain
|
|
movs r5, 0x4
|
|
negs r5, r5
|
|
movs r4, 0x2
|
|
lsls r0, r3, 3
|
|
adds r0, 0x39
|
|
adds r2, r0, r1
|
|
_08035370:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strb r0, [r2]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r0, r8
|
|
ldrb r0, [r0, 0x3]
|
|
cmp r9, r0
|
|
blt _08035370
|
|
_0803538A:
|
|
ldr r1, [sp]
|
|
cmp r1, 0
|
|
beq _080353B0
|
|
lsls r0, r3, 3
|
|
ldr r2, =gMain
|
|
adds r0, r2
|
|
adds r0, 0x39
|
|
ldrb r2, [r0]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
b _080353C6
|
|
.pool
|
|
_080353B0:
|
|
lsls r2, r3, 3
|
|
ldr r4, =gMain
|
|
adds r2, r4
|
|
adds r2, 0x39
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080353C6:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80352C0
|
|
|
|
thumb_func_start sub_80353DC
|
|
sub_80353DC: @ 80353DC
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803546E
|
|
ldr r2, [r0, 0x4]
|
|
lsls r1, r4, 3
|
|
subs r0, r1, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0803546E
|
|
ldrb r3, [r2, 0x3]
|
|
adds r0, r3, 0x1
|
|
ldrb r2, [r2, 0x1]
|
|
cmp r0, 0
|
|
beq _08035426
|
|
ldr r1, =gMain
|
|
movs r7, 0x4
|
|
negs r7, r7
|
|
movs r6, 0x2
|
|
adds r3, r0, 0
|
|
lsls r0, r2, 3
|
|
adds r0, 0x39
|
|
adds r2, r0, r1
|
|
_08035414:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
orrs r0, r6
|
|
strb r0, [r2]
|
|
subs r3, 0x1
|
|
adds r2, 0x8
|
|
cmp r3, 0
|
|
bne _08035414
|
|
_08035426:
|
|
adds r0, r4, 0
|
|
bl sub_8035570
|
|
cmp r0, 0
|
|
bne _08035442
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r5, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x10]
|
|
bl FreeObjectTilesByTag
|
|
_08035442:
|
|
adds r0, r4, 0
|
|
bl sub_80355B4
|
|
cmp r0, 0
|
|
bne _0803545E
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r5, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x12]
|
|
bl FreeObjectPaletteByTag
|
|
_0803545E:
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r5, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0803546E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80353DC
|
|
|
|
thumb_func_start sub_803547C
|
|
sub_803547C: @ 803547C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r1, [r0]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
beq _0803550C
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r4, 3
|
|
subs r0, r1, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
beq _0803550C
|
|
ldrb r3, [r2, 0x3]
|
|
adds r1, r3, 0x1
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r5, 0
|
|
beq _080354D8
|
|
cmp r1, 0
|
|
beq _0803550C
|
|
ldr r1, =gMain
|
|
movs r5, 0x4
|
|
negs r5, r5
|
|
movs r4, 0x2
|
|
adds r3, 0x1
|
|
lsls r0, 3
|
|
adds r0, 0x39
|
|
adds r2, r0, r1
|
|
_080354BC:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strb r0, [r2]
|
|
subs r3, 0x1
|
|
adds r2, 0x8
|
|
cmp r3, 0
|
|
bne _080354BC
|
|
b _0803550C
|
|
.pool
|
|
_080354D8:
|
|
cmp r1, 0
|
|
beq _080354FA
|
|
ldr r1, =gMain
|
|
movs r5, 0x4
|
|
negs r5, r5
|
|
adds r3, 0x1
|
|
lsls r0, 3
|
|
adds r0, 0x39
|
|
adds r2, r0, r1
|
|
_080354EA:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
subs r3, 0x1
|
|
adds r2, 0x8
|
|
cmp r3, 0
|
|
bne _080354EA
|
|
_080354FA:
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
subs r0, r6, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x18]
|
|
adds r0, r4, 0
|
|
bl sub_8035044
|
|
_0803550C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803547C
|
|
|
|
thumb_func_start sub_8035518
|
|
sub_8035518: @ 8035518
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0x40
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
cmp r3, r2
|
|
bcs _0803555A
|
|
ldr r1, [r0, 0x4]
|
|
_0803552E:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08035548
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xFF
|
|
beq _08035552
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, r4
|
|
bhi _08035552
|
|
ldrb r0, [r1, 0x1]
|
|
b _0803556A
|
|
.pool
|
|
_08035548:
|
|
adds r0, r5, 0x1
|
|
ldrb r5, [r1, 0x3]
|
|
adds r0, r5
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_08035552:
|
|
adds r1, 0x1C
|
|
adds r3, 0x1
|
|
cmp r3, r2
|
|
bcc _0803552E
|
|
_0803555A:
|
|
adds r0, r5, r4
|
|
adds r0, 0x1
|
|
cmp r0, 0x80
|
|
bgt _08035568
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
b _0803556A
|
|
_08035568:
|
|
movs r0, 0xFF
|
|
_0803556A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8035518
|
|
|
|
thumb_func_start sub_8035570
|
|
sub_8035570: @ 8035570
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r4, [r0]
|
|
cmp r2, r4
|
|
bcs _080355AC
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
_0803558A:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080355A4
|
|
cmp r2, r3
|
|
beq _080355A4
|
|
ldrh r0, [r1, 0x10]
|
|
ldrh r6, [r5, 0x10]
|
|
cmp r0, r6
|
|
bne _080355A4
|
|
movs r0, 0x1
|
|
b _080355AE
|
|
.pool
|
|
_080355A4:
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bcc _0803558A
|
|
_080355AC:
|
|
movs r0, 0
|
|
_080355AE:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8035570
|
|
|
|
thumb_func_start sub_80355B4
|
|
sub_80355B4: @ 80355B4
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_02022E10
|
|
ldr r0, [r0]
|
|
ldr r4, [r0]
|
|
cmp r2, r4
|
|
bcs _080355F0
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
_080355CE:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080355E8
|
|
cmp r2, r3
|
|
beq _080355E8
|
|
ldrh r0, [r1, 0x12]
|
|
ldrh r6, [r5, 0x12]
|
|
cmp r0, r6
|
|
bne _080355E8
|
|
movs r0, 0x1
|
|
b _080355F2
|
|
.pool
|
|
_080355E8:
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bcc _080355CE
|
|
_080355F0:
|
|
movs r0, 0
|
|
_080355F2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80355B4
|
|
|
|
thumb_func_start sub_80355F8
|
|
sub_80355F8: @ 80355F8
|
|
ldr r2, =gUnknown_082FF1C8
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80355F8
|
|
|
|
thumb_func_start sub_8035608
|
|
sub_8035608: @ 8035608
|
|
push {lr}
|
|
bl ResetAllObjectData
|
|
ldr r0, =gUnknown_0831AC88
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =sub_8035648
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8035608
|
|
|
|
thumb_func_start sub_8035648
|
|
sub_8035648: @ 8035648
|
|
push {lr}
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8035648
|
|
|
|
thumb_func_start trs_config
|
|
trs_config: @ 8035658
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_0831AA08
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080356A4
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x24
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r4, =gUnknown_02023060
|
|
ldr r1, [r4]
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
b _080356AA
|
|
.pool
|
|
_080356A4:
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x24
|
|
strb r1, [r0]
|
|
_080356AA:
|
|
ldr r1, =gUnknown_0831ABA0
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end trs_config
|
|
|
|
thumb_func_start c2_berry_program_update_menu
|
|
c2_berry_program_update_menu: @ 80356D0
|
|
push {lr}
|
|
movs r0, 0x2
|
|
bl DisableInterrupts
|
|
movs r0, 0xC5
|
|
bl EnableInterrupts
|
|
bl trs_config
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x0000b040
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_berry_program_update_menu
|
|
|
|
thumb_func_start sub_803570C
|
|
sub_803570C: @ 803570C
|
|
push {lr}
|
|
movs r0, 0x2
|
|
movs r1, 0x12
|
|
movs r2, 0x10
|
|
bl sub_809882C
|
|
movs r0, 0x2
|
|
movs r1, 0x22
|
|
movs r2, 0x10
|
|
bl sub_809882C
|
|
ldr r0, =gUnknown_08D85600
|
|
movs r1, 0x50
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803575A
|
|
movs r0, 0x70
|
|
bl sub_81978B0
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
movs r2, 0x70
|
|
bl copy_textbox_border_tile_patterns_to_vram
|
|
ldr r0, =gPlttBufferUnfaded
|
|
adds r0, 0xEC
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r1, =gPlttBufferFaded + 0xEC
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
_0803575A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803570C
|
|
|
|
thumb_func_start load_battle_oval_graphics
|
|
load_battle_oval_graphics: @ 8035770
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x023f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080357B0
|
|
ldr r0, =gUnknown_08D7C440
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7CA28
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7C9EC
|
|
b _08035A52
|
|
.pool
|
|
_080357B0:
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080357E4
|
|
ldr r0, =gUnknown_08D7BB14
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7C154
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7DF30
|
|
b _08035A52
|
|
.pool
|
|
_080357E4:
|
|
movs r0, 0x80
|
|
lsls r0, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035818
|
|
ldr r0, =gUnknown_08D7A108
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7A720
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7DEF4
|
|
b _08035A52
|
|
.pool
|
|
_08035818:
|
|
movs r0, 0x80
|
|
lsls r0, 23
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803584C
|
|
ldr r0, =gUnknown_08D7D590
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7DC04
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E234
|
|
b _08035A52
|
|
.pool
|
|
_0803584C:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080358C4
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x20
|
|
bne _08035898
|
|
ldr r0, =gUnknown_08D7C440
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7CA28
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7DFC4
|
|
b _08035A52
|
|
.pool
|
|
_08035898:
|
|
cmp r0, 0x26
|
|
bne _080358C4
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E1F8
|
|
b _08035A52
|
|
.pool
|
|
_080358C4:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bhi _08035904
|
|
lsls r0, 2
|
|
ldr r1, =_080358E0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080358E0:
|
|
.4byte _08035904
|
|
.4byte _08035950
|
|
.4byte _08035978
|
|
.4byte _080359A0
|
|
.4byte _080359C8
|
|
.4byte _080359F0
|
|
.4byte _08035A18
|
|
.4byte _08035A40
|
|
.4byte _08035A70
|
|
_08035904:
|
|
ldr r4, =gUnknown_0831ABA8
|
|
ldr r5, =gUnknown_02022FF0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0x4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x10
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
b _08035A52
|
|
.pool
|
|
_08035950:
|
|
ldr r0, =gUnknown_08D7C440
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7CA28
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7DF88
|
|
b _08035A52
|
|
.pool
|
|
_08035978:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E060
|
|
b _08035A52
|
|
.pool
|
|
_080359A0:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E000
|
|
b _08035A52
|
|
.pool
|
|
_080359C8:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E0CC
|
|
b _08035A52
|
|
.pool
|
|
_080359F0:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E11C
|
|
b _08035A52
|
|
.pool
|
|
_08035A18:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E164
|
|
b _08035A52
|
|
.pool
|
|
_08035A40:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7E1A8
|
|
_08035A52:
|
|
movs r1, 0x20
|
|
movs r2, 0x60
|
|
bl LoadCompressedPalette
|
|
b _08035A8A
|
|
.pool
|
|
_08035A70:
|
|
ldr r0, =gUnknown_08D7C440
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7CA28
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7C9EC
|
|
movs r1, 0x20
|
|
movs r2, 0x60
|
|
bl LoadCompressedPalette
|
|
_08035A8A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end load_battle_oval_graphics
|
|
|
|
thumb_func_start sub_8035AA4
|
|
sub_8035AA4: @ 8035AA4
|
|
push {lr}
|
|
ldr r0, =gUnknown_08C00000
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r1, =gUnknown_08C00524
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_08C004E0
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
bl sub_803570C
|
|
bl load_battle_oval_graphics
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8035AA4
|
|
|
|
thumb_func_start sub_8035AE4
|
|
sub_8035AE4: @ 8035AE4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
ldr r4, [sp, 0x34]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r7, r6, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r12, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r9, r4
|
|
movs r4, 0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035BCC
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x12
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _08035B56
|
|
cmp r5, 0x1
|
|
beq _08035B7E
|
|
cmp r5, 0x1
|
|
bgt _08035B44
|
|
cmp r5, 0
|
|
beq _08035B4E
|
|
b _08035B88
|
|
.pool
|
|
_08035B44:
|
|
cmp r5, 0x2
|
|
beq _08035B52
|
|
cmp r5, 0x3
|
|
beq _08035B72
|
|
b _08035B88
|
|
_08035B4E:
|
|
ldrh r0, [r1, 0xE]
|
|
b _08035B74
|
|
_08035B52:
|
|
ldrh r1, [r1, 0xE]
|
|
b _08035B80
|
|
_08035B56:
|
|
cmp r5, 0x1
|
|
beq _08035B72
|
|
cmp r5, 0x1
|
|
bgt _08035B64
|
|
cmp r5, 0
|
|
beq _08035B6E
|
|
b _08035B88
|
|
_08035B64:
|
|
cmp r5, 0x2
|
|
beq _08035B7A
|
|
cmp r5, 0x3
|
|
beq _08035B7E
|
|
b _08035B88
|
|
_08035B6E:
|
|
ldrh r0, [r1, 0xE]
|
|
b _08035B74
|
|
_08035B72:
|
|
ldrh r0, [r1, 0x10]
|
|
_08035B74:
|
|
movs r4, 0x3F
|
|
ands r4, r0
|
|
b _08035B88
|
|
_08035B7A:
|
|
ldrh r1, [r1, 0xE]
|
|
b _08035B80
|
|
_08035B7E:
|
|
ldrh r1, [r1, 0x10]
|
|
_08035B80:
|
|
movs r0, 0xFC
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
lsrs r4, r0, 6
|
|
_08035B88:
|
|
movs r2, 0
|
|
movs r6, 0x3
|
|
ldr r0, =0x00006001
|
|
adds r5, r0, 0
|
|
add r3, sp, 0xC
|
|
_08035B92:
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
lsls r0, r1
|
|
ands r0, r4
|
|
asrs r0, r1
|
|
adds r0, r5
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _08035B92
|
|
movs r0, 0x3
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
add r1, sp, 0xC
|
|
mov r2, r12
|
|
mov r3, r9
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r0, r8
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08035C36
|
|
.pool
|
|
_08035BCC:
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bne _08035BEC
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0xE]
|
|
b _08035BF8
|
|
.pool
|
|
_08035BEC:
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x10]
|
|
_08035BF8:
|
|
movs r2, 0
|
|
movs r6, 0x3
|
|
ldr r0, =0x00006001
|
|
adds r5, r0, 0
|
|
add r3, sp, 0xC
|
|
_08035C02:
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
lsls r0, r1
|
|
ands r0, r4
|
|
asrs r0, r1
|
|
adds r0, r5
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _08035C02
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
add r1, sp, 0xC
|
|
mov r2, r12
|
|
mov r3, r9
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r0, r8
|
|
bl CopyBgTilemapBufferToVram
|
|
_08035C36:
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8035AE4
|
|
|
|
thumb_func_start sub_8035C4C
|
|
sub_8035C4C: @ 8035C4C
|
|
push {lr}
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x3
|
|
bne _08035C68
|
|
ldr r0, =gUnknown_085CCBAD
|
|
movs r1, 0x15
|
|
bl battle_show_message_maybe
|
|
b _08035D68
|
|
.pool
|
|
_08035C68:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035CE2
|
|
cmp r2, 0x1
|
|
bne _08035CAE
|
|
ldr r2, =gUnknown_020229E8
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08035CFC
|
|
cmp r0, 0x1
|
|
bgt _08035CA4
|
|
cmp r0, 0
|
|
beq _08035D36
|
|
b _08035D68
|
|
.pool
|
|
_08035CA4:
|
|
cmp r0, 0x2
|
|
beq _08035D36
|
|
cmp r0, 0x3
|
|
bne _08035D68
|
|
b _08035CFC
|
|
_08035CAE:
|
|
ldr r2, =gUnknown_020229E8
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08035D36
|
|
cmp r0, 0x1
|
|
bgt _08035CD8
|
|
cmp r0, 0
|
|
beq _08035CFC
|
|
b _08035D68
|
|
.pool
|
|
_08035CD8:
|
|
cmp r0, 0x2
|
|
beq _08035CFC
|
|
cmp r0, 0x3
|
|
bne _08035D68
|
|
b _08035D36
|
|
_08035CE2:
|
|
cmp r2, 0x1
|
|
bne _08035D20
|
|
ldr r2, =gUnknown_020229E8
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _08035D36
|
|
_08035CFC:
|
|
ldr r0, =gUnknown_085CCB9E
|
|
movs r1, 0x17
|
|
bl battle_show_message_maybe
|
|
ldr r0, =gUnknown_085CCBA5
|
|
movs r1, 0x16
|
|
bl battle_show_message_maybe
|
|
b _08035D68
|
|
.pool
|
|
_08035D20:
|
|
ldr r2, =gUnknown_020229E8
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _08035D58
|
|
_08035D36:
|
|
ldr r0, =gUnknown_085CCB9E
|
|
movs r1, 0x16
|
|
bl battle_show_message_maybe
|
|
ldr r0, =gUnknown_085CCBA5
|
|
movs r1, 0x17
|
|
bl battle_show_message_maybe
|
|
b _08035D68
|
|
.pool
|
|
_08035D58:
|
|
ldr r0, =gUnknown_085CCB9E
|
|
movs r1, 0x17
|
|
bl battle_show_message_maybe
|
|
ldr r0, =gUnknown_085CCBA5
|
|
movs r1, 0x16
|
|
bl battle_show_message_maybe
|
|
_08035D68:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8035C4C
|
|
|
|
thumb_func_start task00_0800F6FC
|
|
task00_0800F6FC: @ 8035D74
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
mov r8, r0
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _08035D96
|
|
b _08035EC4
|
|
_08035D96:
|
|
cmp r0, 0x1
|
|
bgt _08035DA4
|
|
cmp r0, 0
|
|
beq _08035DAC
|
|
b _08036138
|
|
.pool
|
|
_08035DA4:
|
|
cmp r0, 0x2
|
|
bne _08035DAA
|
|
b _08035F64
|
|
_08035DAA:
|
|
b _08036138
|
|
_08035DAC:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08035E44
|
|
movs r5, 0
|
|
movs r6, 0x3
|
|
_08035DBC:
|
|
ldr r0, =gUnknown_020229F0
|
|
adds r1, r5, r0
|
|
subs r0, 0x8
|
|
adds r4, r5, r0
|
|
ldrh r0, [r4, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08035DF4
|
|
cmp r0, 0x1
|
|
bgt _08035DDC
|
|
cmp r0, 0
|
|
beq _08035DE6
|
|
b _08035E3A
|
|
.pool
|
|
_08035DDC:
|
|
cmp r0, 0x2
|
|
beq _08035E08
|
|
cmp r0, 0x3
|
|
beq _08035E22
|
|
b _08035E3A
|
|
_08035DE6:
|
|
adds r0, r1, 0
|
|
movs r1, 0x11
|
|
bl battle_show_message_maybe
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x4
|
|
b _08035E14
|
|
_08035DF4:
|
|
adds r0, r1, 0
|
|
movs r1, 0x12
|
|
bl battle_show_message_maybe
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x2
|
|
b _08035E1A
|
|
_08035E08:
|
|
adds r0, r1, 0
|
|
movs r1, 0x13
|
|
bl battle_show_message_maybe
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x8
|
|
_08035E14:
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
_08035E1A:
|
|
movs r3, 0x2
|
|
bl sub_8035AE4
|
|
b _08035E3A
|
|
_08035E22:
|
|
adds r0, r1, 0
|
|
movs r1, 0x14
|
|
bl battle_show_message_maybe
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl sub_8035AE4
|
|
_08035E3A:
|
|
adds r5, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08035DBC
|
|
b _08035EA6
|
|
_08035E44:
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r5, [r0]
|
|
movs r0, 0x1
|
|
adds r6, r5, 0
|
|
eors r6, r0
|
|
adds r1, r6, 0
|
|
ldr r4, =gUnknown_020229E8
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _08035E66
|
|
adds r6, r5, 0
|
|
adds r5, r1, 0
|
|
_08035E66:
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r1, r0, r4
|
|
adds r0, r1, 0
|
|
movs r1, 0xF
|
|
bl battle_show_message_maybe
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
adds r0, r1, 0
|
|
movs r1, 0x10
|
|
bl battle_show_message_maybe
|
|
movs r4, 0x7
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl sub_8035AE4
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl sub_8035AE4
|
|
_08035EA6:
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _08036138
|
|
.pool
|
|
_08035EC4:
|
|
ldr r0, =0x00002710
|
|
bl AllocObjectPalette
|
|
lsls r0, 24
|
|
ldr r2, =gPlttBufferUnfaded
|
|
lsrs r0, 19
|
|
ldr r3, =0x0000021e
|
|
adds r0, r3
|
|
adds r2, r0, r2
|
|
ldr r1, =gPlttBufferFaded
|
|
adds r0, r1
|
|
ldr r1, =0x00007fff
|
|
strh r1, [r0]
|
|
strh r1, [r2]
|
|
ldr r0, =gUnknown_0831A9D0
|
|
movs r1, 0x6F
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r1, [r4]
|
|
adds r1, 0x7D
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0831A9E8
|
|
movs r1, 0x81
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
ldr r1, [r4]
|
|
adds r1, 0x7E
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r0, [r4]
|
|
adds r0, 0x7D
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _08036138
|
|
.pool
|
|
_08035F64:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08035FCC
|
|
ldr r4, =gUnknown_02022E18
|
|
ldrh r0, [r5, 0xA]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08035F7E
|
|
adds r0, 0x1F
|
|
_08035F7E:
|
|
asrs r1, r0, 5
|
|
movs r2, 0x14
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, =gUnknown_02022E1C
|
|
ldrh r0, [r5, 0xC]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08035F9C
|
|
adds r0, 0x1F
|
|
_08035F9C:
|
|
asrs r1, r0, 5
|
|
movs r3, 0x8C
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r0, =gUnknown_02022E1A
|
|
ldr r2, =0x0000ffdc
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
b _08036038
|
|
.pool
|
|
_08035FCC:
|
|
ldr r4, =gUnknown_02022E18
|
|
ldrh r0, [r5, 0xA]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08035FDE
|
|
adds r0, 0x1F
|
|
_08035FDE:
|
|
asrs r1, r0, 5
|
|
movs r3, 0x14
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, =gUnknown_02022E1A
|
|
ldrh r0, [r5, 0xA]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08035FFC
|
|
adds r0, 0x1F
|
|
_08035FFC:
|
|
asrs r0, 5
|
|
subs r0, 0xA4
|
|
strh r0, [r4]
|
|
ldr r4, =gUnknown_02022E1C
|
|
ldrh r0, [r5, 0xC]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08036014
|
|
adds r0, 0x1F
|
|
_08036014:
|
|
asrs r1, r0, 5
|
|
movs r2, 0x8C
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, =gUnknown_02022E1E
|
|
ldrh r0, [r5, 0xC]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _08036032
|
|
adds r0, 0x1F
|
|
_08036032:
|
|
asrs r0, 5
|
|
subs r0, 0xA4
|
|
strh r0, [r4]
|
|
_08036038:
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r3, [r1, r2]
|
|
mov r8, r3
|
|
cmp r3, 0
|
|
beq _08036070
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r1, 0xA]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0xA]
|
|
b _08036138
|
|
.pool
|
|
_08036070:
|
|
movs r3, 0x12
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _0803607C
|
|
bl sub_8035C4C
|
|
_0803607C:
|
|
movs r0, 0x78
|
|
bl audio_play
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
adds r0, 0x7D
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
ldr r5, [r5]
|
|
adds r6, r5, 0
|
|
adds r6, 0x7E
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x40
|
|
ldr r7, =0x000003ff
|
|
adds r0, r7, 0
|
|
ands r1, r0
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
adds r5, 0x7D
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x30]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x30]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r2, r8
|
|
strh r2, [r0, 0x32]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x32]
|
|
_08036138:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task00_0800F6FC
|
|
|
|
thumb_func_start sub_8036154
|
|
sub_8036154: @ 8036154
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036208
|
|
ldr r0, =gUnknown_08D778F0
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D77B0C
|
|
ldr r1, =0x06010000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D77AE4
|
|
movs r1, 0x60
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r1, =0x00005c04
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
ldr r4, =gUnknown_08D779D8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x48
|
|
movs r1, 0x36
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0x36
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1A
|
|
ldr r2, =0x0000ff5c
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_0831AA00
|
|
bl LoadCompressedObjectPicUsingHeap
|
|
b _080363AC
|
|
.pool
|
|
_08036208:
|
|
ldr r0, =0x023f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803628C
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08036224
|
|
ldr r0, =gUnknown_02038BCE
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c03
|
|
cmp r1, r0
|
|
bne _08036248
|
|
_08036224:
|
|
ldr r0, =gUnknown_08D820D4
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D824E4
|
|
b _08036382
|
|
.pool
|
|
_08036248:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0x2
|
|
bl SetBgAttribute
|
|
ldr r1, =gUnknown_08D857A8
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, =gUnknown_08D85A1C
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
b _080363AC
|
|
.pool
|
|
_0803628C:
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080362B0
|
|
ldr r0, =gUnknown_08D81610
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D81E2C
|
|
b _08036382
|
|
.pool
|
|
_080362B0:
|
|
movs r0, 0x80
|
|
lsls r0, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080362D4
|
|
ldr r0, =gUnknown_08D7F9F8
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D7FEC4
|
|
b _08036382
|
|
.pool
|
|
_080362D4:
|
|
movs r0, 0x80
|
|
lsls r0, 23
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080362F8
|
|
ldr r0, =gUnknown_08D82608
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D82C70
|
|
b _08036382
|
|
.pool
|
|
_080362F8:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08036350
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x20
|
|
bne _08036334
|
|
ldr r0, =gUnknown_08D820D4
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D824E4
|
|
b _08036382
|
|
.pool
|
|
_08036334:
|
|
cmp r0, 0x26
|
|
bne _08036350
|
|
ldr r0, =gUnknown_08D820D4
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D824E4
|
|
b _08036382
|
|
.pool
|
|
_08036350:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803639C
|
|
ldr r4, =gUnknown_0831ABA8
|
|
ldr r5, =gUnknown_02022FF0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0xC
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
_08036382:
|
|
ldr r1, =0x0600e000
|
|
bl LZDecompressVram
|
|
b _080363AC
|
|
.pool
|
|
_0803639C:
|
|
ldr r0, =gUnknown_08D820D4
|
|
ldr r1, =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, =gUnknown_08D824E4
|
|
ldr r1, =0x0600e000
|
|
bl LZDecompressVram
|
|
_080363AC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8036154
|
|
|
|
thumb_func_start sub_80363C4
|
|
sub_80363C4: @ 80363C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0
|
|
cmp r0, 0x6
|
|
bls _080363D2
|
|
b _08036756
|
|
_080363D2:
|
|
lsls r0, 2
|
|
ldr r1, =_080363E0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080363E0:
|
|
.4byte _080363FC
|
|
.4byte _0803640C
|
|
.4byte _08036424
|
|
.4byte _08036434
|
|
.4byte _0803652C
|
|
.4byte _08036638
|
|
.4byte _08036750
|
|
_080363FC:
|
|
ldr r0, =gUnknown_08C00000
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
b _08036758
|
|
.pool
|
|
_0803640C:
|
|
ldr r1, =gUnknown_08C00524
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08036758
|
|
.pool
|
|
_08036424:
|
|
ldr r0, =gUnknown_08C004E0
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
b _08036758
|
|
.pool
|
|
_08036434:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x023f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08036518
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803645C
|
|
ldr r0, =gUnknown_08D7BB14
|
|
b _0803651A
|
|
.pool
|
|
_0803645C:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803648C
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x20
|
|
beq _08036518
|
|
cmp r0, 0x26
|
|
bne _0803648C
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_0803648C:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bhi _080364CC
|
|
lsls r0, 2
|
|
ldr r1, =_080364A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080364A8:
|
|
.4byte _080364CC
|
|
.4byte _08036518
|
|
.4byte _080364E8
|
|
.4byte _080364F0
|
|
.4byte _080364F8
|
|
.4byte _08036500
|
|
.4byte _08036508
|
|
.4byte _08036510
|
|
.4byte _08036518
|
|
_080364CC:
|
|
ldr r2, =gUnknown_0831ABA8
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
b _0803651A
|
|
.pool
|
|
_080364E8:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_080364F0:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_080364F8:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_08036500:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_08036508:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_08036510:
|
|
ldr r0, =gUnknown_08D7CCD8
|
|
b _0803651A
|
|
.pool
|
|
_08036518:
|
|
ldr r0, =gUnknown_08D7C440
|
|
_0803651A:
|
|
ldr r1, =0x06008000
|
|
bl LZDecompressVram
|
|
b _08036758
|
|
.pool
|
|
_0803652C:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x023f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803653A
|
|
b _08036624
|
|
_0803653A:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036568
|
|
ldr r0, =gGameVersion
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08036560
|
|
ldr r0, =gUnknown_08D7C154
|
|
b _08036626
|
|
.pool
|
|
_08036560:
|
|
ldr r0, =gUnknown_08D7A720
|
|
b _08036626
|
|
.pool
|
|
_08036568:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08036598
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x20
|
|
beq _08036624
|
|
cmp r0, 0x26
|
|
bne _08036598
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_08036598:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bhi _080365D8
|
|
lsls r0, 2
|
|
ldr r1, =_080365B4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080365B4:
|
|
.4byte _080365D8
|
|
.4byte _08036624
|
|
.4byte _080365F4
|
|
.4byte _080365FC
|
|
.4byte _08036604
|
|
.4byte _0803660C
|
|
.4byte _08036614
|
|
.4byte _0803661C
|
|
.4byte _08036624
|
|
_080365D8:
|
|
ldr r2, =gUnknown_0831ABA8
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
b _08036626
|
|
.pool
|
|
_080365F4:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_080365FC:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_08036604:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_0803660C:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_08036614:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_0803661C:
|
|
ldr r0, =gUnknown_08D7D2E0
|
|
b _08036626
|
|
.pool
|
|
_08036624:
|
|
ldr r0, =gUnknown_08D7CA28
|
|
_08036626:
|
|
ldr r1, =0x0600d000
|
|
bl LZDecompressVram
|
|
b _08036758
|
|
.pool
|
|
_08036638:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x023f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036646
|
|
b _08036740
|
|
_08036646:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036674
|
|
ldr r0, =gGameVersion
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0803666C
|
|
ldr r0, =gUnknown_08D7DF30
|
|
b _08036742
|
|
.pool
|
|
_0803666C:
|
|
ldr r0, =gUnknown_08D7DEF4
|
|
b _08036742
|
|
.pool
|
|
_08036674:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080366AC
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x20
|
|
bne _080366A0
|
|
ldr r0, =gUnknown_08D7DFC4
|
|
b _08036742
|
|
.pool
|
|
_080366A0:
|
|
cmp r0, 0x26
|
|
bne _080366AC
|
|
ldr r0, =gUnknown_08D7E1F8
|
|
b _08036742
|
|
.pool
|
|
_080366AC:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bhi _080366EC
|
|
lsls r0, 2
|
|
ldr r1, =_080366C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080366C8:
|
|
.4byte _080366EC
|
|
.4byte _08036708
|
|
.4byte _08036710
|
|
.4byte _08036718
|
|
.4byte _08036720
|
|
.4byte _08036728
|
|
.4byte _08036730
|
|
.4byte _08036738
|
|
.4byte _08036740
|
|
_080366EC:
|
|
ldr r2, =gUnknown_0831ABA8
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x10
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
b _08036742
|
|
.pool
|
|
_08036708:
|
|
ldr r0, =gUnknown_08D7DF88
|
|
b _08036742
|
|
.pool
|
|
_08036710:
|
|
ldr r0, =gUnknown_08D7E060
|
|
b _08036742
|
|
.pool
|
|
_08036718:
|
|
ldr r0, =gUnknown_08D7E000
|
|
b _08036742
|
|
.pool
|
|
_08036720:
|
|
ldr r0, =gUnknown_08D7E0CC
|
|
b _08036742
|
|
.pool
|
|
_08036728:
|
|
ldr r0, =gUnknown_08D7E11C
|
|
b _08036742
|
|
.pool
|
|
_08036730:
|
|
ldr r0, =gUnknown_08D7E164
|
|
b _08036742
|
|
.pool
|
|
_08036738:
|
|
ldr r0, =gUnknown_08D7E1A8
|
|
b _08036742
|
|
.pool
|
|
_08036740:
|
|
ldr r0, =gUnknown_08D7C9EC
|
|
_08036742:
|
|
movs r1, 0x20
|
|
movs r2, 0x60
|
|
bl LoadCompressedPalette
|
|
b _08036758
|
|
.pool
|
|
_08036750:
|
|
bl sub_803570C
|
|
b _08036758
|
|
_08036756:
|
|
movs r4, 0x1
|
|
_08036758:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80363C4
|
|
|
|
thumb_func_start sub_8036760
|
|
sub_8036760: @ 8036760
|
|
push {lr}
|
|
bl saveblock_randomize_and_relocate
|
|
bl sub_8056F28
|
|
bl dp11_init
|
|
bl init_uns_table_pokemon_copy
|
|
bl sub_8185F84
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080367CC
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036798
|
|
bl sub_80367D4
|
|
b _080367BA
|
|
.pool
|
|
_08036798:
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080367B4
|
|
bl battle_wireless_setup_if_required_maybe
|
|
ldr r0, =sub_8037ADC
|
|
bl SetMainCallback2
|
|
b _080367BA
|
|
.pool
|
|
_080367B4:
|
|
ldr r0, =intro_end
|
|
bl SetMainCallback2
|
|
_080367BA:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
b _080367D0
|
|
.pool
|
|
_080367CC:
|
|
bl sub_80367D4
|
|
_080367D0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8036760
|
|
|
|
thumb_func_start sub_80367D4
|
|
sub_80367D4: @ 80367D4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, =0x05006000
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00005051
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E24
|
|
movs r2, 0xF0
|
|
strh r2, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036870
|
|
ldr r0, =gUnknown_02038BCE
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c03
|
|
cmp r1, r0
|
|
beq _08036870
|
|
ldr r1, =gUnknown_02022E26
|
|
movs r0, 0x9F
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_02022E28
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02022E2A
|
|
movs r0, 0x20
|
|
strh r0, [r1]
|
|
b _080368BE
|
|
.pool
|
|
_08036870:
|
|
ldr r0, =gUnknown_02022E26
|
|
ldr r2, =0x00005051
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
bl dp12_8087EA4
|
|
ldr r0, =gUnknown_02038C28
|
|
movs r3, 0xF0
|
|
movs r5, 0xF0
|
|
lsls r5, 3
|
|
adds r2, r0, r5
|
|
movs r1, 0x4F
|
|
_08036888:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08036888
|
|
movs r1, 0x50
|
|
ldr r4, =gUnknown_0831AC70
|
|
ldr r0, =gUnknown_02038C28
|
|
ldr r3, =0x0000ff10
|
|
movs r5, 0x82
|
|
lsls r5, 4
|
|
adds r2, r0, r5
|
|
adds r0, 0xA0
|
|
_080368A6:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
adds r1, 0x1
|
|
cmp r1, 0x9F
|
|
ble _080368A6
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x4]
|
|
ldr r2, [r4, 0x8]
|
|
bl sub_80BA038
|
|
_080368BE:
|
|
bl ResetPaletteFade
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1C
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E20
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E22
|
|
strh r1, [r0]
|
|
bl sub_80B0BD0
|
|
ldr r2, =gUnknown_02022FF0
|
|
strb r0, [r2]
|
|
ldr r4, =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080368FE
|
|
movs r0, 0x8
|
|
strb r0, [r2]
|
|
_080368FE:
|
|
bl c2_berry_program_update_menu
|
|
bl sub_8035AA4
|
|
bl ResetAllObjectData
|
|
bl ResetTasks
|
|
bl sub_8036154
|
|
bl ResetObjectPaletteAllocator
|
|
ldr r1, =gUnknown_0300301C
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, =vblank_cb_08078BB4
|
|
bl SetVBlankCallback
|
|
bl sub_803269C
|
|
ldr r2, [r4]
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _0803693E
|
|
ldr r1, =0x00400040
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
bne _08036994
|
|
_0803693E:
|
|
ldr r0, =sub_8037458
|
|
bl SetMainCallback2
|
|
b _080369AE
|
|
.pool
|
|
_08036994:
|
|
movs r0, 0x40
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080369A8
|
|
ldr r0, =sub_8037DF4
|
|
bl SetMainCallback2
|
|
b _080369AE
|
|
.pool
|
|
_080369A8:
|
|
ldr r0, =sub_8036FAC
|
|
bl SetMainCallback2
|
|
_080369AE:
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
ldr r1, =0x01000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080369E8
|
|
ldr r4, =gEnemyParty
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl LoadTrainerParty
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080369E4
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r1, =gUnknown_02038BCC
|
|
ldrh r1, [r1]
|
|
movs r2, 0
|
|
bl LoadTrainerParty
|
|
_080369E4:
|
|
bl sub_806EA68
|
|
_080369E8:
|
|
ldr r1, =gMain
|
|
ldr r2, =0x00000439
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r5, =0x00000ca9
|
|
adds r1, r5
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r4, =gPlayerParty
|
|
movs r0, 0xFA
|
|
lsls r0, 1
|
|
adds r5, r4, r0
|
|
_08036A10:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl happiness_algorithm
|
|
adds r4, 0x64
|
|
cmp r4, r5
|
|
ble _08036A10
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80367D4
|
|
|
|
thumb_func_start sub_8036A5C
|
|
sub_8036A5C: @ 8036A5C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
mov r9, r6
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
mov r10, r0
|
|
mov r8, r6
|
|
_08036A72:
|
|
movs r0, 0x64
|
|
mov r4, r9
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _08036AEE
|
|
cmp r5, r10
|
|
beq _08036ABA
|
|
cmp r7, 0
|
|
beq _08036ABA
|
|
cmp r1, 0
|
|
bne _08036ABA
|
|
movs r0, 0x1
|
|
mov r2, r8
|
|
lsls r0, r2
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_08036ABA:
|
|
cmp r5, 0
|
|
beq _08036AEE
|
|
cmp r7, 0
|
|
beq _08036AD6
|
|
cmp r5, r10
|
|
beq _08036ACA
|
|
cmp r1, 0
|
|
beq _08036AD6
|
|
_08036ACA:
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
lsls r0, r1
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_08036AD6:
|
|
cmp r5, 0
|
|
beq _08036AEE
|
|
cmp r5, r10
|
|
beq _08036AEE
|
|
cmp r7, 0
|
|
bne _08036AEE
|
|
movs r0, 0x3
|
|
mov r2, r8
|
|
lsls r0, r2
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
lsrs r6, r0, 16
|
|
_08036AEE:
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r2, r9
|
|
cmp r2, 0x5
|
|
ble _08036A72
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
movs r1, 0xC1
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
ldr r0, [r4]
|
|
ldr r5, =0x00000183
|
|
adds r0, r5
|
|
lsrs r1, r6, 8
|
|
strb r1, [r0]
|
|
ldr r0, =0x000008d2
|
|
bl FlagGet
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
lsls r0, 7
|
|
ldrb r2, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8036A5C
|
|
|
|
thumb_func_start sub_8036B44
|
|
sub_8036B44: @ 8036B44
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r5, [r0]
|
|
movs r0, 0xC2
|
|
lsls r0, 1
|
|
adds r4, r5, r0
|
|
bl sub_80E162C
|
|
cmp r0, 0x1
|
|
bne _08036BC0
|
|
movs r2, 0
|
|
ldr r7, =gSaveBlock1Ptr
|
|
movs r1, 0xC6
|
|
lsls r1, 1
|
|
adds r5, r1
|
|
adds r6, r7, 0
|
|
ldr r3, =0x000031f8
|
|
_08036B66:
|
|
adds r0, r4, r2
|
|
ldr r1, [r6]
|
|
adds r1, r3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _08036B66
|
|
adds r1, r4, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
ldr r6, =gSaveBlock1Ptr
|
|
ldr r5, =0x00003214
|
|
_08036B86:
|
|
adds r0, r3, r2
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x11
|
|
ble _08036B86
|
|
ldr r0, [r7]
|
|
ldr r1, =0x00003226
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x7]
|
|
ldr r0, [r7]
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _08036C00
|
|
.pool
|
|
_08036BC0:
|
|
movs r0, 0xAF
|
|
bl ItemIdToBerryType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBerryInfo
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
movs r0, 0xC6
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
_08036BD8:
|
|
adds r0, r4, r2
|
|
adds r1, r3, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _08036BD8
|
|
adds r1, r4, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0x11
|
|
_08036BF4:
|
|
strb r2, [r1]
|
|
subs r1, 0x1
|
|
cmp r1, r0
|
|
bge _08036BF4
|
|
movs r0, 0
|
|
strb r0, [r4, 0x7]
|
|
_08036C00:
|
|
strb r0, [r4, 0x1A]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8036B44
|
|
|
|
thumb_func_start berry_801017C
|
|
berry_801017C: @ 8036C08
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036C20
|
|
b _08036D4C
|
|
_08036C20:
|
|
bl sub_80E162C
|
|
cmp r0, 0x1
|
|
bne _08036CDC
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02024404
|
|
ldr r0, =gSaveBlock1Ptr
|
|
mov r8, r0
|
|
adds r6, r3, 0
|
|
mov r4, r8
|
|
ldr r2, =0x000031f8
|
|
adds r7, r3, 0
|
|
adds r7, 0x38
|
|
_08036C3A:
|
|
adds r1, r5, r6
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r5, r7
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08036C3A
|
|
adds r1, r5, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0]
|
|
movs r5, 0
|
|
adds r7, r3, 0
|
|
adds r7, 0x8
|
|
ldr r4, =gSaveBlock1Ptr
|
|
ldr r2, =0x00003214
|
|
adds r6, r3, 0
|
|
adds r6, 0x40
|
|
_08036C78:
|
|
adds r1, r5, r7
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r5, r6
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x11
|
|
ble _08036C78
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, =0x00003226
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
strb r1, [r3, 0x7]
|
|
ldrb r0, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x3F
|
|
strb r0, [r1]
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003227
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
strb r1, [r3, 0x1A]
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x52
|
|
strb r1, [r0]
|
|
b _08036EA0
|
|
.pool
|
|
_08036CDC:
|
|
movs r0, 0xAF
|
|
bl ItemIdToBerryType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetBerryInfo
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
ldr r4, =gUnknown_02024404
|
|
adds r7, r4, 0
|
|
adds r7, 0x38
|
|
adds r3, r4, 0
|
|
_08036CF6:
|
|
adds r1, r5, r4
|
|
adds r2, r6, r5
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r1, r5, r7
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08036CF6
|
|
adds r1, r5, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
adds r0, r5, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strb r1, [r0]
|
|
movs r5, 0
|
|
adds r4, r3, 0
|
|
adds r4, 0x8
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
adds r2, 0x40
|
|
_08036D28:
|
|
adds r0, r5, r4
|
|
strb r1, [r0]
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x11
|
|
ble _08036D28
|
|
movs r1, 0
|
|
strb r1, [r3, 0x7]
|
|
adds r0, r3, 0
|
|
adds r0, 0x3F
|
|
strb r1, [r0]
|
|
strb r1, [r3, 0x1A]
|
|
adds r0, 0x13
|
|
strb r1, [r0]
|
|
b _08036EA0
|
|
.pool
|
|
_08036D4C:
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08036DF0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r1, r0
|
|
movs r2, 0x4
|
|
mov r8, r2
|
|
cmp r1, 0
|
|
beq _08036D66
|
|
movs r4, 0x2
|
|
mov r8, r4
|
|
_08036D66:
|
|
movs r5, 0
|
|
cmp r5, r8
|
|
blt _08036D6E
|
|
b _08036EA0
|
|
_08036D6E:
|
|
ldr r0, =gUnknown_020229E8
|
|
mov r12, r0
|
|
ldr r3, =gUnknown_02024404
|
|
adds r6, r3, 0
|
|
movs r1, 0x8
|
|
adds r1, r6
|
|
mov r9, r1
|
|
_08036D7C:
|
|
lsls r1, r5, 8
|
|
ldr r0, =gUnknown_020223C8
|
|
adds r7, r1, r0
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r3, [r0, 0x18]
|
|
movs r4, 0
|
|
adds r5, 0x1
|
|
mov r10, r5
|
|
lsls r1, r3, 3
|
|
subs r0, r1, r3
|
|
adds r5, r1, 0
|
|
lsls r0, 2
|
|
adds r1, r0, r6
|
|
_08036D9C:
|
|
adds r0, r7, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _08036D9C
|
|
subs r0, r5, r3
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
adds r1, r6
|
|
movs r2, 0xFF
|
|
strb r2, [r1]
|
|
movs r4, 0
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
adds r2, r7, 0
|
|
adds r2, 0x8
|
|
_08036DC0:
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x11
|
|
ble _08036DC0
|
|
subs r0, r5, r3
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r7, 0x7]
|
|
strb r1, [r0, 0x7]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r0, 0x1A]
|
|
mov r5, r10
|
|
cmp r5, r8
|
|
blt _08036D7C
|
|
b _08036EA0
|
|
.pool
|
|
_08036DF0:
|
|
movs r5, 0
|
|
ldr r4, =gUnknown_02024404
|
|
mov r9, r4
|
|
_08036DF6:
|
|
lsls r0, r5, 8
|
|
ldr r1, =gUnknown_020223C8
|
|
adds r7, r0, r1
|
|
movs r4, 0
|
|
adds r2, r5, 0x1
|
|
mov r10, r2
|
|
lsls r0, r5, 3
|
|
mov r8, r0
|
|
adds r1, r5, 0x2
|
|
mov r12, r1
|
|
subs r1, r0, r5
|
|
mov r2, r12
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
mov r2, r9
|
|
adds r3, r0, r2
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
_08036E1C:
|
|
adds r0, r7, r4
|
|
ldrb r1, [r0]
|
|
strb r1, [r2]
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _08036E1C
|
|
mov r0, r8
|
|
subs r3, r0, r5
|
|
lsls r3, 2
|
|
adds r1, r4, r3
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
movs r2, 0xFF
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
mov r0, r12
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r1, r4, r2
|
|
add r1, r9
|
|
ldrb r0, [r1]
|
|
movs r4, 0xFF
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_02024404
|
|
adds r0, 0x8
|
|
adds r2, r0
|
|
adds r3, r0
|
|
adds r6, r7, 0
|
|
adds r6, 0x8
|
|
_08036E64:
|
|
adds r0, r6, r4
|
|
ldrb r1, [r0]
|
|
strb r1, [r3]
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x11
|
|
ble _08036E64
|
|
mov r0, r8
|
|
subs r2, r0, r5
|
|
lsls r2, 2
|
|
add r2, r9
|
|
ldrb r0, [r7, 0x7]
|
|
strb r0, [r2, 0x7]
|
|
mov r1, r12
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r1, [r7, 0x7]
|
|
strb r1, [r0, 0x7]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r2, 0x1A]
|
|
ldrb r1, [r7, 0x1A]
|
|
strb r1, [r0, 0x1A]
|
|
mov r5, r10
|
|
cmp r5, 0x1
|
|
ble _08036DF6
|
|
_08036EA0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end berry_801017C
|
|
|
|
thumb_func_start sub_8036EB8
|
|
sub_8036EB8: @ 8036EB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_020223C4
|
|
ldrh r2, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r0
|
|
cmp r2, r1
|
|
bne _08036EFC
|
|
cmp r3, 0
|
|
bne _08036EEC
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0xC
|
|
b _08036EF2
|
|
.pool
|
|
_08036EEC:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
_08036EF2:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08036EFC:
|
|
cmp r6, 0
|
|
bne _08036FA0
|
|
movs r2, 0
|
|
cmp r2, r4
|
|
bge _08036F20
|
|
ldr r1, =gUnknown_020223C4
|
|
mov r8, r1
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
_08036F0E:
|
|
adds r1, r5
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bge _08036F20
|
|
mov r7, r8
|
|
ldrh r0, [r7]
|
|
ldrh r7, [r1]
|
|
cmp r0, r7
|
|
beq _08036F0E
|
|
_08036F20:
|
|
cmp r2, r4
|
|
bne _08036F48
|
|
cmp r3, 0
|
|
bne _08036F38
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0xC
|
|
b _08036F3E
|
|
.pool
|
|
_08036F38:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
_08036F3E:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08036F48:
|
|
cmp r6, 0
|
|
bne _08036FA0
|
|
movs r2, 0
|
|
ldr r5, =gBattleTypeFlags
|
|
cmp r2, r4
|
|
bge _08036F8A
|
|
mov r0, r12
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _08036F82
|
|
_08036F60:
|
|
lsls r0, r2, 8
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bls _08036F72
|
|
cmp r2, r3
|
|
bne _08036F8A
|
|
_08036F72:
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bge _08036F8A
|
|
lsls r0, r2, 8
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
bne _08036F60
|
|
_08036F82:
|
|
cmp r2, r3
|
|
beq _08036F60
|
|
cmp r2, r3
|
|
bge _08036F60
|
|
_08036F8A:
|
|
cmp r2, r4
|
|
bne _08036F98
|
|
ldr r0, [r5]
|
|
movs r1, 0xC
|
|
b _08036F9C
|
|
.pool
|
|
_08036F98:
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
_08036F9C:
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
_08036FA0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8036EB8
|
|
|
|
thumb_func_start sub_8036FAC
|
|
sub_8036FAC: @ 8036FAC
|
|
push {r4-r6,lr}
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
strb r6, [r0]
|
|
movs r0, 0x1
|
|
adds r5, r6, 0
|
|
eors r5, r0
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x12
|
|
bls _08036FD8
|
|
b _0803744C
|
|
_08036FD8:
|
|
lsls r0, 2
|
|
ldr r1, =_08036FF0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08036FF0:
|
|
.4byte _0803703C
|
|
.4byte _08037080
|
|
.4byte _08037144
|
|
.4byte _080371D8
|
|
.4byte _08037200
|
|
.4byte _0803742C
|
|
.4byte _08037438
|
|
.4byte _08037230
|
|
.4byte _08037258
|
|
.4byte _0803742C
|
|
.4byte _08037438
|
|
.4byte _08037288
|
|
.4byte _080372B0
|
|
.4byte _0803742C
|
|
.4byte _08037438
|
|
.4byte _08037318
|
|
.4byte _08037378
|
|
.4byte _080373A0
|
|
.4byte _080373E0
|
|
_0803703C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037068
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_805EF14
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08037068:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037072
|
|
b _0803744C
|
|
_08037072:
|
|
bl sub_800E0E8
|
|
b _0803744C
|
|
.pool
|
|
_08037080:
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r6, 0x2
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08037124
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037098
|
|
b _0803744C
|
|
_08037098:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080370EE
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
movs r5, 0xC0
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000181
|
|
adds r1, r0, r2
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
bl sub_8036A5C
|
|
bl sub_8036B44
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
bne _080370D8
|
|
ldr r0, =gUnknown_020229E8
|
|
movs r1, 0
|
|
strh r1, [r0, 0x18]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x34]
|
|
_080370D8:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
movs r2, 0x20
|
|
bl link_0800A448
|
|
ldr r0, =gUnknown_02024332
|
|
strb r6, [r0]
|
|
_080370EE:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080370F8
|
|
b _0803744C
|
|
_080370F8:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800DFB4
|
|
b _0803744C
|
|
.pool
|
|
_08037124:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08037134
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_08037134:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0xF
|
|
strb r0, [r1]
|
|
bl berry_801017C
|
|
b _0803744C
|
|
.pool
|
|
_08037144:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08037152
|
|
b _0803744C
|
|
_08037152:
|
|
bl sub_800A5B4
|
|
movs r0, 0x2
|
|
adds r1, r6, 0
|
|
bl sub_8036EB8
|
|
bl berry_801017C
|
|
ldr r0, =task00_0800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
movs r1, 0
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
strh r0, [r2, 0xA]
|
|
movs r0, 0x5A
|
|
strh r0, [r2, 0xC]
|
|
strh r1, [r2, 0x12]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r3, [r0]
|
|
movs r4, 0xC1
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldrb r1, [r0]
|
|
adds r4, 0x1
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
strh r1, [r2, 0xE]
|
|
ldr r1, =gUnknown_020223C4
|
|
lsls r4, r5, 8
|
|
adds r1, 0x2
|
|
adds r4, r1
|
|
ldrh r0, [r4]
|
|
strh r0, [r2, 0x10]
|
|
lsls r0, r6, 8
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_8185F90
|
|
ldrh r0, [r4]
|
|
bl sub_8185F90
|
|
bl sub_8068AA4
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_080371D8:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080371E4
|
|
b _0803744C
|
|
_080371E4:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gPlayerParty
|
|
movs r2, 0xC8
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_08037200:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _0803720E
|
|
b _0803744C
|
|
_0803720E:
|
|
bl sub_800A5B4
|
|
ldr r0, =gEnemyParty
|
|
lsls r1, r5, 8
|
|
ldr r2, =gUnknown_020223C4
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_08037230:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803723C
|
|
b _0803744C
|
|
_0803723C:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_020245B4
|
|
movs r2, 0xC8
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_08037258:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08037266
|
|
b _0803744C
|
|
_08037266:
|
|
bl sub_800A5B4
|
|
ldr r0, =gUnknown_0202480C
|
|
lsls r1, r5, 8
|
|
ldr r2, =gUnknown_020223C4
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_08037288:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037294
|
|
b _0803744C
|
|
_08037294:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202467C
|
|
movs r2, 0xC8
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_080372B0:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _080372BE
|
|
b _0803744C
|
|
_080372BE:
|
|
bl sub_800A5B4
|
|
ldr r4, =gUnknown_020248D4
|
|
lsls r1, r5, 8
|
|
ldr r0, =gUnknown_020223C4
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
ldr r1, =0xfffffe70
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
ldr r2, =0xfffffed4
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
subs r0, 0xC8
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
subs r0, 0x64
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl shedinja_something
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_08037318:
|
|
bl sub_8032768
|
|
bl sub_8184E58
|
|
ldr r2, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r2, 0x1]
|
|
strb r0, [r2, 0x2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037372
|
|
movs r3, 0
|
|
ldr r1, =gUnknown_020229E8
|
|
ldrb r0, [r1]
|
|
adds r5, r2, 0
|
|
cmp r0, 0x3
|
|
bne _08037356
|
|
movs r4, 0xFF
|
|
adds r2, r1, 0
|
|
_08037344:
|
|
adds r2, 0x1C
|
|
adds r3, 0x1
|
|
cmp r3, 0x1
|
|
bgt _08037356
|
|
ldrh r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x3
|
|
beq _08037344
|
|
_08037356:
|
|
cmp r3, 0x2
|
|
bne _0803736C
|
|
movs r0, 0x10
|
|
strb r0, [r5]
|
|
b _0803744C
|
|
.pool
|
|
_0803736C:
|
|
movs r0, 0x12
|
|
strb r0, [r5]
|
|
b _0803744C
|
|
_08037372:
|
|
movs r0, 0x12
|
|
strb r0, [r2]
|
|
b _0803744C
|
|
_08037378:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803744C
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0203BD2C
|
|
movs r2, 0x4
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_080373A0:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
bne _0803744C
|
|
bl sub_800A5B4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080373CA
|
|
ldr r0, =gUnknown_0203BD2C
|
|
lsls r1, r5, 8
|
|
ldr r2, =gUnknown_020223C4
|
|
adds r1, r2
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
_080373CA:
|
|
ldr r1, =gUnknown_02024332
|
|
b _08037446
|
|
.pool
|
|
_080373E0:
|
|
ldr r0, =gUnknown_02024333
|
|
adds r1, r0, 0x1
|
|
bl battle_load_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803744C
|
|
ldr r2, =gUnknown_03005D00
|
|
ldr r1, =gMain
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, =sub_8039EF0
|
|
str r0, [r1]
|
|
ldr r0, =sub_8038420
|
|
bl SetMainCallback2
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803744C
|
|
movs r0, 0x20
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
b _0803744C
|
|
.pool
|
|
_0803742C:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x1]
|
|
_08037438:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803744C
|
|
_08037446:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0803744C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8036FAC
|
|
|
|
thumb_func_start sub_8037458
|
|
sub_8037458: @ 8037458
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
strb r6, [r0]
|
|
movs r0, 0x1
|
|
adds r7, r6, 0
|
|
eors r7, r0
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x10
|
|
bls _08037486
|
|
b _080379D6
|
|
_08037486:
|
|
lsls r0, 2
|
|
ldr r1, =_0803749C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803749C:
|
|
.4byte _080374E0
|
|
.4byte _08037518
|
|
.4byte _0803761C
|
|
.4byte _08037670
|
|
.4byte _08037694
|
|
.4byte _08037710
|
|
.4byte _08037734
|
|
.4byte _080377B0
|
|
.4byte _080377CC
|
|
.4byte _080377FC
|
|
.4byte _08037818
|
|
.4byte _08037848
|
|
.4byte _08037864
|
|
.4byte _08037908
|
|
.4byte _0803793A
|
|
.4byte _0803795C
|
|
.4byte _080379A0
|
|
_080374E0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803750C
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_805EF14
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0803750C:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08037518
|
|
bl sub_800E0E8
|
|
_08037518:
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r3, 0x2
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080375FC
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037530
|
|
b _080379D6
|
|
_08037530:
|
|
ldr r6, =gUnknown_020229E8
|
|
movs r0, 0
|
|
strh r0, [r6, 0x18]
|
|
strh r3, [r6, 0x34]
|
|
adds r1, r6, 0
|
|
adds r1, 0x50
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r1, 0x1C
|
|
movs r0, 0x3
|
|
strh r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r0, 0x40
|
|
ldr r4, =gUnknown_02038BCA
|
|
ldrh r1, [r4]
|
|
bl sub_8162E20
|
|
adds r0, r6, 0
|
|
adds r0, 0x5C
|
|
ldr r5, =gUnknown_02038BCC
|
|
ldrh r1, [r5]
|
|
bl sub_8162E20
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
bl sub_8165B88
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
adds r1, r6, 0
|
|
adds r1, 0x52
|
|
strh r0, [r1]
|
|
ldrh r1, [r5]
|
|
mov r0, sp
|
|
bl sub_8165B88
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r0, 0x6E
|
|
strh r1, [r0]
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080375C4
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
movs r5, 0xC0
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000181
|
|
adds r1, r0, r2
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
bl sub_8036A5C
|
|
bl sub_8036B44
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
movs r2, 0x20
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_080375C4:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080375CE
|
|
b _080379D6
|
|
_080375CE:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800DFB4
|
|
b _080379D6
|
|
.pool
|
|
_080375FC:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803760C
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_0803760C:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0xD
|
|
strb r0, [r1]
|
|
bl berry_801017C
|
|
b _080379D6
|
|
.pool
|
|
_0803761C:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _0803762A
|
|
b _080379D6
|
|
_0803762A:
|
|
bl sub_800A5B4
|
|
movs r0, 0x2
|
|
adds r1, r6, 0
|
|
bl sub_8036EB8
|
|
bl berry_801017C
|
|
ldr r0, =task00_0800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0x5A
|
|
strh r0, [r1, 0xC]
|
|
strh r2, [r1, 0x12]
|
|
adds r0, 0xEB
|
|
strh r0, [r1, 0xE]
|
|
strh r0, [r1, 0x10]
|
|
b _08037986
|
|
.pool
|
|
_08037670:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803767C
|
|
b _080379D6
|
|
_0803767C:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gPlayerParty
|
|
_08037686:
|
|
movs r2, 0xC8
|
|
bl link_0800A448
|
|
b _08037986
|
|
.pool
|
|
_08037694:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _080376A2
|
|
b _080379D6
|
|
_080376A2:
|
|
bl sub_800A5B4
|
|
ldr r0, =gUnknown_020229E8
|
|
lsls r1, r6, 3
|
|
subs r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, 0
|
|
beq _080376E8
|
|
ldr r4, =gPlayerParty
|
|
lsls r1, r7, 8
|
|
ldr r5, =gUnknown_020223C4
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
lsls r1, r6, 8
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
b _08037986
|
|
.pool
|
|
_080376E8:
|
|
ldr r4, =gPlayerParty
|
|
lsls r1, r6, 8
|
|
ldr r5, =gUnknown_020223C4
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
lsls r1, r7, 8
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
b _08037982
|
|
.pool
|
|
_08037710:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803771C
|
|
b _080379D6
|
|
_0803771C:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_020245B4
|
|
movs r2, 0x64
|
|
bl link_0800A448
|
|
b _08037986
|
|
.pool
|
|
_08037734:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08037742
|
|
b _080379D6
|
|
_08037742:
|
|
bl sub_800A5B4
|
|
ldr r0, =gUnknown_020229E8
|
|
lsls r1, r6, 3
|
|
subs r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, 0
|
|
beq _08037788
|
|
ldr r4, =gUnknown_020245B4
|
|
lsls r1, r7, 8
|
|
ldr r5, =gUnknown_020223C4
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
lsls r1, r6, 8
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
b _08037986
|
|
.pool
|
|
_08037788:
|
|
ldr r4, =gUnknown_020245B4
|
|
lsls r1, r6, 8
|
|
ldr r5, =gUnknown_020223C4
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
lsls r1, r7, 8
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
movs r2, 0x64
|
|
b _08037982
|
|
.pool
|
|
_080377B0:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080377BC
|
|
b _080379D6
|
|
_080377BC:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gEnemyParty
|
|
b _08037686
|
|
.pool
|
|
_080377CC:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _080377DA
|
|
b _080379D6
|
|
_080377DA:
|
|
bl sub_800A5B4
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080377EA
|
|
b _08037986
|
|
_080377EA:
|
|
ldr r0, =gEnemyParty
|
|
ldr r1, =gUnknown_020223C4
|
|
movs r2, 0xC8
|
|
b _08037982
|
|
.pool
|
|
_080377FC:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037808
|
|
b _080379D6
|
|
_08037808:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202480C
|
|
b _08037686
|
|
.pool
|
|
_08037818:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08037826
|
|
b _080379D6
|
|
_08037826:
|
|
bl sub_800A5B4
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037836
|
|
b _08037986
|
|
_08037836:
|
|
ldr r0, =gUnknown_0202480C
|
|
ldr r1, =gUnknown_020223C4
|
|
movs r2, 0xC8
|
|
b _08037982
|
|
.pool
|
|
_08037848:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037854
|
|
b _080379D6
|
|
_08037854:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_020248D4
|
|
b _08037686
|
|
.pool
|
|
_08037864:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
beq _08037872
|
|
b _080379D6
|
|
_08037872:
|
|
bl sub_800A5B4
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803788A
|
|
ldr r0, =gUnknown_020248D4
|
|
ldr r1, =gUnknown_020223C4
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
_0803788A:
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4, 0
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl shedinja_something
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
movs r2, 0xC8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
ldr r4, =gEnemyParty
|
|
adds r0, r4, 0
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl shedinja_something
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
movs r2, 0xFA
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
b _08037986
|
|
.pool
|
|
_08037908:
|
|
bl sub_8032768
|
|
bl sub_8184E58
|
|
ldr r2, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r2, 0x1]
|
|
strb r0, [r2, 0x2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037934
|
|
movs r0, 0xE
|
|
strb r0, [r2]
|
|
b _080379D6
|
|
.pool
|
|
_08037934:
|
|
movs r0, 0x10
|
|
strb r0, [r2]
|
|
b _080379D6
|
|
_0803793A:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080379D6
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0203BD2C
|
|
movs r2, 0x4
|
|
bl link_0800A448
|
|
b _08037986
|
|
.pool
|
|
_0803795C:
|
|
bl sub_800A550
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x3
|
|
bne _080379D6
|
|
bl sub_800A5B4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08037986
|
|
ldr r0, =gUnknown_0203BD2C
|
|
lsls r1, r7, 8
|
|
ldr r2, =gUnknown_020223C4
|
|
adds r1, r2
|
|
movs r2, 0x4
|
|
_08037982:
|
|
bl memcpy
|
|
_08037986:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080379D6
|
|
.pool
|
|
_080379A0:
|
|
ldr r0, =gUnknown_02024333
|
|
adds r1, r0, 0x1
|
|
bl battle_load_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080379D6
|
|
bl sub_8166188
|
|
ldr r2, =gUnknown_03005D00
|
|
ldr r1, =gMain
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, =sub_8039EF0
|
|
str r0, [r1]
|
|
ldr r0, =sub_8038420
|
|
bl SetMainCallback2
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080379D6
|
|
movs r0, 0x20
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_080379D6:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8037458
|
|
|
|
thumb_func_start sub_80379F8
|
|
sub_80379F8: @ 80379F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r6, =gUnknown_02022FF8
|
|
mov r10, r6
|
|
_08037A12:
|
|
ldr r1, [sp]
|
|
add r1, r8
|
|
movs r0, 0x64
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r1, r8
|
|
lsls r5, r1, 5
|
|
strh r0, [r6]
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
strh r0, [r6, 0x2]
|
|
movs r0, 0x4
|
|
add r0, r10
|
|
mov r9, r0
|
|
adds r7, r5, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
adds r2, r7, 0
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
strb r0, [r6, 0xF]
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r6, 0x10]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
strh r0, [r6, 0x12]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
mov r1, r10
|
|
adds r1, 0x14
|
|
adds r5, r1
|
|
str r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [r6, 0x18]
|
|
adds r0, r4, 0
|
|
bl pokemon_get_gender
|
|
strb r0, [r6, 0x1C]
|
|
adds r0, r7, 0
|
|
bl StripExtCtrlCodes
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
cmp r0, 0x1
|
|
beq _08037AA4
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_81DB4DC
|
|
_08037AA4:
|
|
adds r6, 0x20
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
ble _08037A12
|
|
ldr r0, =gUnknown_02023058
|
|
ldr r0, [r0]
|
|
mov r1, r9
|
|
subs r1, 0x4
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80379F8
|
|
|
|
thumb_func_start sub_8037ADC
|
|
sub_8037ADC: @ 8037ADC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0x4
|
|
mov r9, r0
|
|
movs r4, 0xF
|
|
ldr r6, =gBattleTypeFlags
|
|
ldr r0, [r6]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037B02
|
|
movs r1, 0x2
|
|
mov r9, r1
|
|
movs r4, 0x3
|
|
_08037B02:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
movs r2, 0
|
|
mov r8, r2
|
|
strb r7, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xB4
|
|
str r1, [sp]
|
|
adds r0, 0xAC
|
|
mov r10, r0
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
beq _08037BA4
|
|
cmp r0, 0x1
|
|
bgt _08037B50
|
|
cmp r0, 0
|
|
beq _08037B5E
|
|
b _08037D0A
|
|
.pool
|
|
_08037B50:
|
|
cmp r0, 0x2
|
|
bne _08037B56
|
|
b _08037C64
|
|
_08037B56:
|
|
cmp r0, 0x3
|
|
bne _08037B5C
|
|
b _08037C9E
|
|
_08037B5C:
|
|
b _08037D0A
|
|
_08037B5E:
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037B68
|
|
b _08037D0A
|
|
_08037B68:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037B74
|
|
b _08037D0A
|
|
_08037B74:
|
|
ldr r4, =gUnknown_02023058
|
|
movs r0, 0x60
|
|
bl Alloc
|
|
str r0, [r4]
|
|
movs r0, 0
|
|
bl sub_80379F8
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r2, 0x60
|
|
bl link_0800A448
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _08037D0A
|
|
.pool
|
|
_08037BA4:
|
|
bl sub_800A550
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, r4
|
|
beq _08037BB2
|
|
b _08037D0A
|
|
_08037BB2:
|
|
bl sub_800A5B4
|
|
movs r5, 0
|
|
cmp r8, r9
|
|
bge _08037C2E
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r6, r0, 2
|
|
mov r8, r5
|
|
ldr r4, =gUnknown_020223C4
|
|
_08037BC6:
|
|
cmp r5, r7
|
|
beq _08037C1E
|
|
mov r2, r9
|
|
cmp r2, 0x4
|
|
bne _08037C14
|
|
ldr r2, =gUnknown_020229E8
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08037BF8
|
|
adds r0, r6, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037C04
|
|
b _08037C1E
|
|
.pool
|
|
_08037BF8:
|
|
adds r0, r6, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037C1E
|
|
_08037C04:
|
|
ldr r0, =gUnknown_02022FF8
|
|
adds r1, r4, 0
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
b _08037C1E
|
|
.pool
|
|
_08037C14:
|
|
ldr r0, =gUnknown_02022FF8
|
|
adds r1, r4, 0
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
_08037C1E:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
movs r0, 0x1C
|
|
add r8, r0
|
|
adds r5, 0x1
|
|
cmp r5, r9
|
|
blt _08037BC6
|
|
_08037C2E:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gMain
|
|
ldr r0, [r1, 0x8]
|
|
ldr r2, [sp]
|
|
str r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
mov r2, r10
|
|
str r0, [r2]
|
|
ldr r0, =sub_8037ADC
|
|
str r0, [r1, 0x8]
|
|
bl sub_81B9150
|
|
b _08037D0A
|
|
.pool
|
|
_08037C64:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08037D0A
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08037D0A
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08037C98
|
|
bl sub_800ADF8
|
|
b _08037D0A
|
|
.pool
|
|
_08037C98:
|
|
bl sub_800AC34
|
|
b _08037D0A
|
|
_08037C9E:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08037CE4
|
|
bl sub_8010500
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08037D0A
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
str r0, [r6]
|
|
ldr r1, =gMain
|
|
ldr r2, [sp]
|
|
ldr r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
ldr r0, =sub_80367D4
|
|
bl SetMainCallback2
|
|
ldr r4, =gUnknown_02023058
|
|
ldr r0, [r4]
|
|
bl Free
|
|
mov r0, r8
|
|
str r0, [r4]
|
|
b _08037D0A
|
|
.pool
|
|
_08037CE4:
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _08037D0A
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
str r0, [r6]
|
|
ldr r1, =gMain
|
|
ldr r2, [sp]
|
|
ldr r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
ldr r0, =sub_80367D4
|
|
bl SetMainCallback2
|
|
ldr r4, =gUnknown_02023058
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
_08037D0A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8037ADC
|
|
|
|
thumb_func_start intro_end
|
|
intro_end: @ 8037D2C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
movs r1, 0xB4
|
|
adds r1, r0
|
|
mov r8, r1
|
|
adds r7, r0, 0
|
|
adds r7, 0xAC
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08037D64
|
|
cmp r0, 0x1
|
|
beq _08037DA4
|
|
b _08037DD6
|
|
.pool
|
|
_08037D64:
|
|
ldr r4, =gUnknown_02023058
|
|
movs r0, 0x60
|
|
bl Alloc
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
bl sub_80379F8
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r1, =gMain
|
|
ldr r0, [r1, 0x8]
|
|
mov r2, r8
|
|
str r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
str r0, [r7]
|
|
ldr r0, =intro_end
|
|
str r0, [r1, 0x8]
|
|
bl sub_81B9150
|
|
b _08037DD6
|
|
.pool
|
|
_08037DA4:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
bne _08037DD6
|
|
movs r0, 0x2
|
|
strb r0, [r5]
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r0, [r7]
|
|
str r0, [r1]
|
|
ldr r1, =gMain
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
ldr r0, =sub_80367D4
|
|
bl SetMainCallback2
|
|
ldr r4, =gUnknown_02023058
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r6, [r4]
|
|
_08037DD6:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end intro_end
|
|
|
|
thumb_func_start sub_8037DF4
|
|
sub_8037DF4: @ 8037DF4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
strb r7, [r0]
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bls _08037E20
|
|
b _080383F8
|
|
_08037E20:
|
|
lsls r0, 2
|
|
ldr r1, =_08037E38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08037E38:
|
|
.4byte _08037E64
|
|
.4byte _08037EA8
|
|
.4byte _08037F50
|
|
.4byte _08038026
|
|
.4byte _0803804C
|
|
.4byte _08038140
|
|
.4byte _08038164
|
|
.4byte _080382CC
|
|
.4byte _0803832C
|
|
.4byte _0803836C
|
|
.4byte _080383BC
|
|
_08037E64:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08037E90
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
bl sub_805EF14
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08037E90:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037E9A
|
|
b _080383F8
|
|
_08037E9A:
|
|
bl sub_800E0E8
|
|
b _080383F8
|
|
.pool
|
|
_08037EA8:
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08037F30
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037EBE
|
|
b _080383F8
|
|
_08037EBE:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08037F02
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
movs r5, 0xC0
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00000181
|
|
adds r1, r0, r2
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
bl sub_8036A5C
|
|
bl sub_8036B44
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, r5
|
|
movs r2, 0x20
|
|
bl link_0800A448
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08037F02:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08037F0C
|
|
b _080383F8
|
|
_08037F0C:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800DFB4
|
|
b _080383F8
|
|
.pool
|
|
_08037F30:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08037F40
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_08037F40:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
bl berry_801017C
|
|
b _080383F8
|
|
.pool
|
|
_08037F50:
|
|
bl sub_800A550
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08037F5E
|
|
b _080383F8
|
|
_08037F5E:
|
|
bl sub_800A5B4
|
|
movs r0, 0x4
|
|
adds r1, r7, 0
|
|
bl sub_8036EB8
|
|
bl berry_801017C
|
|
bl sub_8068AA4
|
|
ldr r0, =task00_0800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x87
|
|
lsls r1, 1
|
|
strh r1, [r0, 0xA]
|
|
movs r1, 0x5A
|
|
strh r1, [r0, 0xC]
|
|
strh r2, [r0, 0x12]
|
|
strh r2, [r0, 0xE]
|
|
strh r2, [r0, 0x10]
|
|
ldr r1, =gUnknown_020223C4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0x2
|
|
movs r7, 0x3F
|
|
movs r6, 0x3
|
|
_08037FA4:
|
|
ldrh r0, [r5]
|
|
str r2, [sp]
|
|
bl sub_8185F90
|
|
ldr r0, =gUnknown_020229E8
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08037FE6
|
|
cmp r0, 0x1
|
|
bgt _08037FD4
|
|
cmp r0, 0
|
|
beq _08037FDE
|
|
b _0803800C
|
|
.pool
|
|
_08037FD4:
|
|
cmp r0, 0x2
|
|
beq _08037FEE
|
|
cmp r0, 0x3
|
|
beq _08037FFE
|
|
b _0803800C
|
|
_08037FDE:
|
|
ldrh r0, [r5]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
b _08037FF6
|
|
_08037FE6:
|
|
ldrh r0, [r5]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
b _08038006
|
|
_08037FEE:
|
|
ldrh r0, [r5]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
_08037FF6:
|
|
ldrh r0, [r4, 0xE]
|
|
orrs r1, r0
|
|
strh r1, [r4, 0xE]
|
|
b _0803800C
|
|
_08037FFE:
|
|
ldrh r0, [r5]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
_08038006:
|
|
ldrh r0, [r4, 0x10]
|
|
orrs r1, r0
|
|
strh r1, [r4, 0x10]
|
|
_0803800C:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
adds r2, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08037FA4
|
|
bl zero_enemy_party_data
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08038026:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08038032
|
|
b _080383F8
|
|
_08038032:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gPlayerParty
|
|
movs r2, 0xC8
|
|
bl link_0800A448
|
|
b _080383A6
|
|
.pool
|
|
_0803804C:
|
|
bl sub_800A550
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _0803805A
|
|
b _080383F8
|
|
_0803805A:
|
|
bl sub_800A5B4
|
|
movs r6, 0
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_020223C4
|
|
movs r5, 0
|
|
_0803806C:
|
|
cmp r6, r7
|
|
bne _080380A0
|
|
ldr r0, =gUnknown_020229E8
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _0803808C
|
|
cmp r0, 0x1
|
|
bge _08038098
|
|
cmp r0, 0
|
|
beq _08038090
|
|
b _0803812A
|
|
.pool
|
|
_0803808C:
|
|
cmp r0, 0x3
|
|
bne _0803812A
|
|
_08038090:
|
|
ldr r0, =gPlayerParty
|
|
b _08038110
|
|
.pool
|
|
_08038098:
|
|
ldr r0, =gUnknown_02024618
|
|
b _08038110
|
|
.pool
|
|
_080380A0:
|
|
ldr r2, =gUnknown_020229E8
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080380C4
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080380D2
|
|
b _080380F8
|
|
.pool
|
|
_080380C4:
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080380F8
|
|
_080380D2:
|
|
adds r0, r5, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _080380E4
|
|
cmp r0, 0x1
|
|
bge _080380F0
|
|
cmp r0, 0
|
|
beq _080380E8
|
|
b _0803812A
|
|
_080380E4:
|
|
cmp r0, 0x3
|
|
bne _0803812A
|
|
_080380E8:
|
|
ldr r0, =gPlayerParty
|
|
b _08038110
|
|
.pool
|
|
_080380F0:
|
|
ldr r0, =gUnknown_02024618
|
|
b _08038110
|
|
.pool
|
|
_080380F8:
|
|
adds r0, r5, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _0803810A
|
|
cmp r0, 0x1
|
|
bge _08038120
|
|
cmp r0, 0
|
|
beq _0803810E
|
|
b _0803812A
|
|
_0803810A:
|
|
cmp r0, 0x3
|
|
bne _0803812A
|
|
_0803810E:
|
|
ldr r0, =gEnemyParty
|
|
_08038110:
|
|
adds r1, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
b _0803812A
|
|
.pool
|
|
_08038120:
|
|
ldr r0, =gUnknown_02024870
|
|
adds r1, r4, 0
|
|
movs r2, 0xC8
|
|
bl memcpy
|
|
_0803812A:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r5, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0803806C
|
|
b _080383A6
|
|
.pool
|
|
_08038140:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803814C
|
|
b _080383F8
|
|
_0803814C:
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_020245B4
|
|
movs r2, 0x64
|
|
bl link_0800A448
|
|
b _080383A6
|
|
.pool
|
|
_08038164:
|
|
bl sub_800A550
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
beq _08038172
|
|
b _080383F8
|
|
_08038172:
|
|
bl sub_800A5B4
|
|
movs r6, 0
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_020223C4
|
|
movs r5, 0
|
|
_08038184:
|
|
cmp r6, r7
|
|
bne _080381B8
|
|
ldr r0, =gUnknown_020229E8
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _080381A4
|
|
cmp r0, 0x1
|
|
bge _080381B0
|
|
cmp r0, 0
|
|
beq _080381A8
|
|
b _08038242
|
|
.pool
|
|
_080381A4:
|
|
cmp r0, 0x3
|
|
bne _08038242
|
|
_080381A8:
|
|
ldr r0, =gUnknown_020245B4
|
|
b _08038228
|
|
.pool
|
|
_080381B0:
|
|
ldr r0, =gUnknown_020246E0
|
|
b _08038228
|
|
.pool
|
|
_080381B8:
|
|
ldr r2, =gUnknown_020229E8
|
|
adds r0, r5, r2
|
|
ldrh r1, [r0, 0x18]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080381DC
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080381EA
|
|
b _08038210
|
|
.pool
|
|
_080381DC:
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
ldrh r1, [r0, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038210
|
|
_080381EA:
|
|
adds r0, r5, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _080381FC
|
|
cmp r0, 0x1
|
|
bge _08038208
|
|
cmp r0, 0
|
|
beq _08038200
|
|
b _08038242
|
|
_080381FC:
|
|
cmp r0, 0x3
|
|
bne _08038242
|
|
_08038200:
|
|
ldr r0, =gUnknown_020245B4
|
|
b _08038228
|
|
.pool
|
|
_08038208:
|
|
ldr r0, =gUnknown_020246E0
|
|
b _08038228
|
|
.pool
|
|
_08038210:
|
|
adds r0, r5, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _08038222
|
|
cmp r0, 0x1
|
|
bge _08038238
|
|
cmp r0, 0
|
|
beq _08038226
|
|
b _08038242
|
|
_08038222:
|
|
cmp r0, 0x3
|
|
bne _08038242
|
|
_08038226:
|
|
ldr r0, =gUnknown_0202480C
|
|
_08038228:
|
|
adds r1, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
b _08038242
|
|
.pool
|
|
_08038238:
|
|
ldr r0, =gUnknown_02024938
|
|
adds r1, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
_08038242:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r5, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08038184
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4, 0
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl shedinja_something
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
movs r2, 0xC8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
ldr r4, =gEnemyParty
|
|
adds r0, r4, 0
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
bl shedinja_something
|
|
adds r0, r4, 0
|
|
adds r0, 0xC8
|
|
bl shedinja_something
|
|
movs r2, 0x96
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl shedinja_something
|
|
movs r2, 0xFA
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl shedinja_something
|
|
b _080383A6
|
|
.pool
|
|
_080382CC:
|
|
bl sub_8032768
|
|
bl sub_8184E58
|
|
ldr r3, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r3, 0x1]
|
|
strb r0, [r3, 0x2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038326
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_020229E8
|
|
ldrb r1, [r0]
|
|
adds r4, r3, 0
|
|
adds r2, r0, 0
|
|
cmp r1, 0x3
|
|
bne _0803830A
|
|
movs r3, 0xFF
|
|
_080382F8:
|
|
adds r2, 0x1C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
bgt _0803830A
|
|
ldrh r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0x3
|
|
beq _080382F8
|
|
_0803830A:
|
|
cmp r6, 0x4
|
|
bne _08038320
|
|
movs r0, 0x8
|
|
strb r0, [r4]
|
|
b _080383F8
|
|
.pool
|
|
_08038320:
|
|
movs r0, 0xA
|
|
strb r0, [r4]
|
|
b _080383F8
|
|
_08038326:
|
|
movs r0, 0xA
|
|
strb r0, [r3]
|
|
b _080383F8
|
|
_0803832C:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080383F8
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r4, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_0203BD2C
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x4]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
movs r2, 0x8
|
|
bl link_0800A448
|
|
b _080383A6
|
|
.pool
|
|
_0803836C:
|
|
bl sub_800A550
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0xF
|
|
bne _080383F8
|
|
bl sub_800A5B4
|
|
movs r2, 0
|
|
b _08038386
|
|
_08038380:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_08038386:
|
|
cmp r2, 0x3
|
|
bhi _080383A6
|
|
ldr r4, =gUnknown_020223C4
|
|
lsls r3, r2, 8
|
|
adds r0, r3, r4
|
|
ldrh r0, [r0]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038380
|
|
adds r1, r4, 0x4
|
|
adds r1, r3, r1
|
|
ldr r0, =gUnknown_0203BD2C
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
_080383A6:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080383F8
|
|
.pool
|
|
_080383BC:
|
|
ldr r0, =gUnknown_02024333
|
|
adds r1, r0, 0x1
|
|
bl battle_load_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080383F8
|
|
ldr r2, =gUnknown_03005D00
|
|
ldr r1, =gMain
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, =sub_8039EF0
|
|
str r0, [r1]
|
|
ldr r0, =sub_8038420
|
|
bl SetMainCallback2
|
|
ldr r3, =gBattleTypeFlags
|
|
ldr r2, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080383F8
|
|
ldr r0, =gUnknown_02038BCA
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r1, r4, 0
|
|
strh r1, [r0]
|
|
movs r0, 0x20
|
|
orrs r2, r0
|
|
str r2, [r3]
|
|
_080383F8:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8037DF4
|
|
|
|
thumb_func_start sub_8038420
|
|
sub_8038420: @ 8038420
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2C]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038482
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038482
|
|
bl rfu_lacks_rfufunc
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08038482
|
|
ldr r2, =gUnknown_020375F0
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
strh r0, [r2]
|
|
bl ResetPaletteFadeControl
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =sub_80384E4
|
|
bl SetMainCallback2
|
|
_08038482:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038420
|
|
|
|
thumb_func_start sub_803849C
|
|
sub_803849C: @ 803849C
|
|
push {lr}
|
|
ldr r1, =gMain
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02039B28
|
|
movs r0, 0x3
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, =0x00000439
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl zero_enemy_party_data
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
bl sub_805F094
|
|
bl dp11_free
|
|
bl sub_8057028
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803849C
|
|
|
|
thumb_func_start sub_80384E4
|
|
sub_80384E4: @ 80384E4
|
|
push {lr}
|
|
bl UpdatePaletteFade
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08038512
|
|
ldr r0, =gMPlay_SE1
|
|
bl m4aMPlayStop
|
|
ldr r0, =gMPlay_SE2
|
|
bl m4aMPlayStop
|
|
bl sub_803849C
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_08038512:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80384E4
|
|
|
|
thumb_func_start sub_8038528
|
|
sub_8038528: @ 8038528
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, =sub_8038538
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8038528
|
|
|
|
thumb_func_start sub_8038538
|
|
sub_8038538: @ 8038538
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
ldr r5, =0x0201c000
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0x1
|
|
beq _0803856C
|
|
cmp r1, 0x1
|
|
bgt _08038554
|
|
cmp r1, 0
|
|
beq _0803855A
|
|
b _080385DC
|
|
.pool
|
|
_08038554:
|
|
cmp r1, 0x2
|
|
beq _080385C8
|
|
b _080385DC
|
|
_0803855A:
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
strh r1, [r3, 0x30]
|
|
ldr r0, =0x00000281
|
|
strh r0, [r3, 0x32]
|
|
strh r1, [r3, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x36]
|
|
_0803856C:
|
|
ldrh r0, [r3, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080385DC
|
|
movs r0, 0x2
|
|
strh r0, [r3, 0x36]
|
|
movs r4, 0x30
|
|
ldrsh r2, [r3, r4]
|
|
movs r0, 0x34
|
|
ldrsh r1, [r3, r0]
|
|
lsls r1, 5
|
|
adds r2, r1
|
|
movs r4, 0x32
|
|
ldrsh r0, [r3, r4]
|
|
subs r0, r1
|
|
movs r4, 0x3D
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
lsls r2, 1
|
|
adds r2, r5
|
|
movs r1, 0x1C
|
|
_0803859A:
|
|
strh r4, [r2]
|
|
strh r4, [r0]
|
|
adds r0, 0x4
|
|
adds r2, 0x4
|
|
subs r1, 0x2
|
|
cmp r1, 0
|
|
bge _0803859A
|
|
ldrh r0, [r3, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080385DC
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
movs r0, 0x20
|
|
strh r0, [r3, 0x30]
|
|
b _080385DC
|
|
.pool
|
|
_080385C8:
|
|
ldrh r0, [r3, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _080385DC
|
|
ldr r0, =sub_8036760
|
|
bl SetMainCallback2
|
|
_080385DC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038538
|
|
|
|
thumb_func_start LoadTrainerParty
|
|
LoadTrainerParty: @ 80385E8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
str r0, [sp, 0x10]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x14]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _08038610
|
|
movs r0, 0
|
|
b _080389E2
|
|
_08038610:
|
|
ldr r4, =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
ldr r1, =0x043f0908
|
|
ands r0, r1
|
|
ldr r1, [sp, 0x14]
|
|
lsls r1, 2
|
|
str r1, [sp, 0x20]
|
|
cmp r0, 0x8
|
|
beq _08038624
|
|
b _080389D2
|
|
_08038624:
|
|
cmp r2, 0x1
|
|
bne _0803862C
|
|
bl zero_enemy_party_data
|
|
_0803862C:
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038668
|
|
ldr r0, =gTrainers
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
adds r2, r1, 0
|
|
adds r2, 0x20
|
|
ldrb r1, [r2]
|
|
movs r4, 0x3
|
|
str r4, [sp, 0x1C]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x3
|
|
bhi _0803867C
|
|
adds r2, r1, 0
|
|
str r2, [sp, 0x1C]
|
|
b _0803867C
|
|
.pool
|
|
_08038668:
|
|
ldr r1, =gTrainers
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x1C]
|
|
adds r4, r1, 0
|
|
_0803867C:
|
|
movs r0, 0
|
|
str r0, [sp, 0x18]
|
|
b _080389B4
|
|
.pool
|
|
_08038688:
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, 0x1
|
|
bne _0803869E
|
|
movs r0, 0x80
|
|
mov r10, r0
|
|
b _080386B0
|
|
_0803869E:
|
|
ldrb r1, [r1, 0x2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
movs r1, 0x88
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
beq _080386B0
|
|
movs r2, 0x78
|
|
mov r10, r2
|
|
_080386B0:
|
|
movs r6, 0
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r1, r4, 0x4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r3, [sp, 0x18]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x24]
|
|
cmp r0, 0xFF
|
|
beq _080386E6
|
|
adds r3, r1, 0
|
|
_080386CC:
|
|
ldr r0, [sp, 0x14]
|
|
adds r1, r2, r0
|
|
lsls r1, 3
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080386CC
|
|
_080386E6:
|
|
ldr r1, [sp, 0x20]
|
|
ldr r2, [sp, 0x14]
|
|
adds r0, r1, r2
|
|
lsls r1, r0, 3
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08038794
|
|
cmp r0, 0x1
|
|
bgt _08038700
|
|
cmp r0, 0
|
|
beq _0803870E
|
|
b _080389AC
|
|
_08038700:
|
|
cmp r0, 0x2
|
|
bne _08038706
|
|
b _08038854
|
|
_08038706:
|
|
cmp r0, 0x3
|
|
bne _0803870C
|
|
b _080388E8
|
|
_0803870C:
|
|
b _080389AC
|
|
_0803870E:
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
ldr r3, [sp, 0x18]
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r4
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r5, r2, 0
|
|
cmp r0, 0xFF
|
|
beq _08038750
|
|
adds r3, r1, 0
|
|
movs r7, 0xB
|
|
_08038734:
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _08038734
|
|
_08038750:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
adds r4, r5, r4
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r3, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r0, r3, 0
|
|
muls r0, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r4, 0x4]
|
|
ldrb r2, [r4, 0x2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x2
|
|
str r3, [sp, 0x8]
|
|
movs r3, 0
|
|
str r3, [sp, 0xC]
|
|
adds r3, r6, 0
|
|
bl create_pokemon_set_level
|
|
b _080389AC
|
|
.pool
|
|
_08038794:
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r7, [r0]
|
|
movs r6, 0
|
|
ldr r4, [sp, 0x18]
|
|
lsls r2, r4, 4
|
|
adds r0, r2, r7
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0xFF
|
|
beq _080387D6
|
|
adds r3, r1, 0
|
|
movs r4, 0xB
|
|
_080387BA:
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _080387BA
|
|
_080387D6:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
mov r3, r8
|
|
adds r4, r3, r7
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r5, r0, 0
|
|
muls r5, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r5, r2, r5
|
|
ldrh r1, [r4, 0x4]
|
|
ldrb r2, [r4, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
adds r3, r6, 0
|
|
bl create_pokemon_set_level
|
|
movs r6, 0
|
|
mov r0, r8
|
|
adds r0, 0x6
|
|
adds r4, r7, r0
|
|
_08038820:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
ldrh r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, =gBattleMoves + 0x4 @ PP offset
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
bl pokemon_setattr
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08038820
|
|
b _080389AC
|
|
.pool
|
|
_08038854:
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
ldr r0, [sp, 0x18]
|
|
lsls r2, r0, 3
|
|
adds r0, r2, r4
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r5, r2, 0
|
|
cmp r0, 0xFF
|
|
beq _08038896
|
|
adds r3, r1, 0
|
|
movs r7, 0xB
|
|
_0803887A:
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0803887A
|
|
_08038896:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
adds r5, r4
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r3, [sp, 0x18]
|
|
movs r0, 0x64
|
|
adds r4, r3, 0
|
|
muls r4, r0
|
|
ldr r1, [sp, 0x10]
|
|
adds r4, r1, r4
|
|
ldrh r1, [r5, 0x4]
|
|
ldrb r2, [r5, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl create_pokemon_set_level
|
|
adds r5, 0x6
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
b _080389AC
|
|
.pool
|
|
_080388E8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r7, [r0]
|
|
movs r6, 0
|
|
ldr r4, [sp, 0x18]
|
|
lsls r2, r4, 4
|
|
adds r0, r2, r7
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0xB
|
|
muls r0, r1
|
|
ldr r1, =gSpeciesNames
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0xFF
|
|
beq _0803892A
|
|
adds r3, r1, 0
|
|
movs r4, 0xB
|
|
_0803890E:
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r0, r6, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r9, r0
|
|
adds r6, 0x1
|
|
adds r1, r6, r1
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
bne _0803890E
|
|
_0803892A:
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
add r10, r0
|
|
mov r3, r8
|
|
adds r5, r3, r7
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, [sp, 0x18]
|
|
movs r1, 0x64
|
|
adds r4, r0, 0
|
|
muls r4, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r4, r2, r4
|
|
ldrh r1, [r5, 0x4]
|
|
ldrb r2, [r5, 0x2]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl create_pokemon_set_level
|
|
adds r5, 0x6
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
movs r6, 0
|
|
adds r5, r4, 0
|
|
mov r0, r8
|
|
adds r0, 0x8
|
|
adds r4, r7, r0
|
|
_08038982:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
ldrh r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, =gBattleMoves + 0x4 @ PP offset
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
bl pokemon_setattr
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08038982
|
|
_080389AC:
|
|
ldr r4, [sp, 0x24]
|
|
str r4, [sp, 0x18]
|
|
ldr r4, =gTrainers
|
|
ldr r0, [sp, 0x18]
|
|
_080389B4:
|
|
ldr r1, [sp, 0x1C]
|
|
cmp r0, r1
|
|
bge _080389BC
|
|
b _08038688
|
|
_080389BC:
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r1, =gTrainers
|
|
ldr r3, [sp, 0x20]
|
|
ldr r4, [sp, 0x14]
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_080389D2:
|
|
ldr r0, =gTrainers
|
|
ldr r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x14]
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
_080389E2:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end LoadTrainerParty
|
|
|
|
thumb_func_start sub_8038A04
|
|
sub_8038A04: @ 8038A04
|
|
push {lr}
|
|
ldr r0, =0x04000006
|
|
ldrh r0, [r0]
|
|
subs r0, 0x6F
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x30
|
|
bhi _08038A1E
|
|
movs r1, 0x98
|
|
lsls r1, 8
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
_08038A1E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038A04
|
|
|
|
thumb_func_start vblank_cb_08078BB4
|
|
vblank_cb_08078BB4: @ 8038A28
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x013f0102
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08038A3A
|
|
bl Random
|
|
_08038A3A:
|
|
ldr r0, =gUnknown_02022E14
|
|
ldrh r1, [r0]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E16
|
|
ldrh r1, [r0]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E18
|
|
ldrh r1, [r0]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x18
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E1E
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1A
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E20
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E22
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1E
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E24
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E26
|
|
ldrh r1, [r0]
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E28
|
|
ldrh r1, [r0]
|
|
movs r0, 0x42
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_02022E2A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x46
|
|
bl SetGpuReg
|
|
bl LoadOamFromSprites
|
|
bl ProcessObjectCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl sub_80BA0A8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end vblank_cb_08078BB4
|
|
|
|
thumb_func_start nullsub_17
|
|
nullsub_17: @ 8038B00
|
|
bx lr
|
|
thumb_func_end nullsub_17
|
|
|
|
thumb_func_start sub_8038B04
|
|
sub_8038B04: @ 8038B04
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08038B24
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
b _08038B36
|
|
_08038B24:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
asrs r0, 8
|
|
ldrh r1, [r5, 0x30]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x20]
|
|
_08038B36:
|
|
movs r1, 0xC0
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r1, [r5, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038B6A
|
|
ldr r4, =0x00002710
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
adds r0, r5, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r5, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_08038B6A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038B04
|
|
|
|
thumb_func_start sub_8038B74
|
|
sub_8038B74: @ 8038B74
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
ldr r0, =sub_8038B04
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x68
|
|
bl audio_play
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038B74
|
|
|
|
thumb_func_start sub_8038B94
|
|
sub_8038B94: @ 8038B94
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
ldr r0, =gUnknown_02024474
|
|
adds r0, 0x25
|
|
ldrb r2, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038C04
|
|
ldr r1, =gUnknown_020229E8
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _08038BF0
|
|
cmp r0, 0x1
|
|
bgt _08038BE8
|
|
cmp r0, 0
|
|
beq _08038C04
|
|
b _08038C0C
|
|
.pool
|
|
_08038BE8:
|
|
cmp r0, 0x2
|
|
beq _08038C04
|
|
cmp r0, 0x3
|
|
bne _08038C0C
|
|
_08038BF0:
|
|
ldr r0, =gEnemyParty
|
|
str r0, [sp, 0x4]
|
|
ldr r1, =gPlayerParty
|
|
str r1, [sp, 0x8]
|
|
b _08038C0C
|
|
.pool
|
|
_08038C04:
|
|
ldr r2, =gPlayerParty
|
|
str r2, [sp, 0x4]
|
|
ldr r3, =gEnemyParty
|
|
str r3, [sp, 0x8]
|
|
_08038C0C:
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, [sp]
|
|
lsls r1, 2
|
|
str r1, [sp, 0xC]
|
|
movs r2, 0xCE
|
|
lsls r2, 1
|
|
mov r10, r2
|
|
mov r9, r0
|
|
_08038C20:
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r3, [sp, 0x4]
|
|
adds r4, r3, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _08038C90
|
|
cmp r5, r10
|
|
beq _08038C64
|
|
cmp r6, 0
|
|
beq _08038C64
|
|
cmp r1, 0
|
|
bne _08038C64
|
|
movs r0, 0x1
|
|
mov r2, r9
|
|
lsls r0, r2
|
|
orrs r7, r0
|
|
_08038C64:
|
|
cmp r5, 0
|
|
beq _08038C90
|
|
cmp r6, 0
|
|
beq _08038C7C
|
|
cmp r5, r10
|
|
beq _08038C74
|
|
cmp r1, 0
|
|
beq _08038C7C
|
|
_08038C74:
|
|
movs r0, 0x2
|
|
mov r3, r9
|
|
lsls r0, r3
|
|
orrs r7, r0
|
|
_08038C7C:
|
|
cmp r5, 0
|
|
beq _08038C90
|
|
cmp r5, r10
|
|
beq _08038C90
|
|
cmp r6, 0
|
|
bne _08038C90
|
|
movs r0, 0x3
|
|
mov r1, r9
|
|
lsls r0, r1
|
|
orrs r7, r0
|
|
_08038C90:
|
|
movs r2, 0x2
|
|
add r9, r2
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
mov r0, r8
|
|
cmp r0, 0x5
|
|
ble _08038C20
|
|
ldr r1, =gTasks
|
|
ldr r2, [sp, 0xC]
|
|
ldr r3, [sp]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0xE]
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
mov r10, r1
|
|
mov r9, r0
|
|
_08038CBA:
|
|
movs r0, 0x64
|
|
mov r4, r8
|
|
muls r4, r0
|
|
ldr r2, [sp, 0x8]
|
|
adds r4, r2, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _08038D2A
|
|
cmp r5, r10
|
|
beq _08038CFE
|
|
cmp r6, 0
|
|
beq _08038CFE
|
|
cmp r1, 0
|
|
bne _08038CFE
|
|
movs r0, 0x1
|
|
mov r3, r9
|
|
lsls r0, r3
|
|
orrs r7, r0
|
|
_08038CFE:
|
|
cmp r5, 0
|
|
beq _08038D2A
|
|
cmp r6, 0
|
|
beq _08038D16
|
|
cmp r5, r10
|
|
beq _08038D0E
|
|
cmp r1, 0
|
|
beq _08038D16
|
|
_08038D0E:
|
|
movs r0, 0x2
|
|
mov r1, r9
|
|
lsls r0, r1
|
|
orrs r7, r0
|
|
_08038D16:
|
|
cmp r5, 0
|
|
beq _08038D2A
|
|
cmp r5, r10
|
|
beq _08038D2A
|
|
cmp r6, 0
|
|
bne _08038D2A
|
|
movs r0, 0x3
|
|
mov r2, r9
|
|
lsls r0, r2
|
|
orrs r7, r0
|
|
_08038D2A:
|
|
movs r3, 0x2
|
|
add r9, r3
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x5
|
|
ble _08038CBA
|
|
ldr r1, =gTasks
|
|
ldr r2, [sp, 0xC]
|
|
ldr r3, [sp]
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r7, [r0, 0x10]
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038B94
|
|
|
|
thumb_func_start sub_8038D64
|
|
sub_8038D64: @ 8038D64
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x21
|
|
negs r2, r2
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
ldr r0, =0x003f0100
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038DAC
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
bl sub_8057028
|
|
bl dp11_free
|
|
bl sub_805F094
|
|
b _08038EB6
|
|
.pool
|
|
_08038DAC:
|
|
str r0, [sp]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, =0x05006000
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x4C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0xF0
|
|
bl SetGpuReg
|
|
ldr r4, =0x00005051
|
|
movs r0, 0x44
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, =gUnknown_02022E24
|
|
movs r0, 0xF0
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_02022E26
|
|
strh r4, [r0]
|
|
bl dp12_8087EA4
|
|
ldr r0, =gUnknown_02038C28
|
|
movs r3, 0xF0
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r1, 0x4F
|
|
_08038DFE:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08038DFE
|
|
movs r1, 0x50
|
|
ldr r0, =gUnknown_02038C28
|
|
ldr r3, =0x0000ff10
|
|
movs r4, 0x82
|
|
lsls r4, 4
|
|
adds r2, r0, r4
|
|
adds r0, 0xA0
|
|
_08038E1A:
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r0, 0x2
|
|
adds r1, 0x1
|
|
cmp r1, 0x9F
|
|
ble _08038E1A
|
|
bl ResetPaletteFade
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1C
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E20
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E22
|
|
strh r4, [r0]
|
|
bl c2_berry_program_update_menu
|
|
ldr r0, =gUnknown_08C004E0
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
bl sub_803570C
|
|
bl ResetAllObjectData
|
|
bl ResetTasks
|
|
bl sub_8036154
|
|
movs r0, 0x4A
|
|
movs r1, 0x37
|
|
bl SetGpuReg
|
|
bl ResetObjectPaletteAllocator
|
|
ldr r1, =gUnknown_0300301C
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, =vblank_cb_08078BB4
|
|
bl SetVBlankCallback
|
|
ldr r0, =task00_0800F6FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0x87
|
|
lsls r2, 1
|
|
strh r2, [r1, 0xA]
|
|
movs r2, 0x5A
|
|
strh r2, [r1, 0xC]
|
|
movs r2, 0x1
|
|
strh r2, [r1, 0x12]
|
|
bl sub_8038B94
|
|
ldr r0, =sub_8038F14
|
|
bl SetMainCallback2
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0]
|
|
_08038EB6:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038D64
|
|
|
|
thumb_func_start sub_8038F14
|
|
sub_8038F14: @ 8038F14
|
|
push {lr}
|
|
bl sub_8038F34
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8038F14
|
|
|
|
thumb_func_start sub_8038F34
|
|
sub_8038F34: @ 8038F34
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x9
|
|
bls _08038F44
|
|
b _080391C6
|
|
_08038F44:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_08038F58
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08038F58:
|
|
.4byte _08038F80
|
|
.4byte _08038FA0
|
|
.4byte _08038FC2
|
|
.4byte _080390C8
|
|
.4byte _08039100
|
|
.4byte _08039118
|
|
.4byte _0803912C
|
|
.4byte _0803914C
|
|
.4byte _08039166
|
|
.4byte _08039184
|
|
_08038F80:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x1]
|
|
b _08039174
|
|
.pool
|
|
_08038FA0:
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08038FB0
|
|
b _080391C6
|
|
_08038FB0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0803910C
|
|
_08038FC2:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08038FD0
|
|
b _080391C6
|
|
_08038FD0:
|
|
bl sub_8185FAC
|
|
ldr r2, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r2, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
movs r3, 0x2
|
|
cmp r0, 0
|
|
beq _08038FFC
|
|
movs r3, 0x4
|
|
_08038FFC:
|
|
movs r4, 0
|
|
ldr r6, =gSaveBlock2Ptr
|
|
cmp r4, r3
|
|
bge _08039022
|
|
ldr r1, =gUnknown_020229E8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _08039022
|
|
movs r5, 0xFF
|
|
adds r2, r1, 0
|
|
_08039010:
|
|
adds r2, 0x1C
|
|
adds r4, 0x1
|
|
cmp r4, r3
|
|
bge _08039022
|
|
ldrh r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0x3
|
|
beq _08039010
|
|
_08039022:
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00000ca9
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080390AC
|
|
cmp r4, r3
|
|
bne _080390AC
|
|
ldr r0, =0x000008d2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08039074
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =sub_80392A8
|
|
bl SetMainCallback2
|
|
b _080391C6
|
|
.pool
|
|
_08039074:
|
|
ldr r2, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08039090
|
|
ldr r0, [r2, 0x8]
|
|
b _080390B0
|
|
.pool
|
|
_08039090:
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08039172
|
|
ldr r0, =sub_80B3AF8
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
b _08039172
|
|
.pool
|
|
_080390AC:
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x8]
|
|
_080390B0:
|
|
bl SetMainCallback2
|
|
bl sub_8057028
|
|
bl dp11_free
|
|
bl sub_805F094
|
|
b _080391C6
|
|
.pool
|
|
_080390C8:
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, =0x05006000
|
|
add r0, sp, 0x4
|
|
bl CpuSet
|
|
movs r4, 0
|
|
_080390DA:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80363C4
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _080390DA
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _08039172
|
|
.pool
|
|
_08039100:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080391C6
|
|
_0803910C:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _080391C6
|
|
.pool
|
|
_08039118:
|
|
ldr r0, =sub_80B3AF8
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080391C6
|
|
b _08039172
|
|
.pool
|
|
_0803912C:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080391C6
|
|
bl sub_800ADF8
|
|
ldr r0, =gUnknown_0824978D
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
b _08039172
|
|
.pool
|
|
_0803914C:
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080391C6
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080391C6
|
|
b _08039172
|
|
_08039166:
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08039172
|
|
bl sub_800AC34
|
|
_08039172:
|
|
ldr r1, =gUnknown_02024332
|
|
_08039174:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080391C6
|
|
.pool
|
|
_08039184:
|
|
ldr r2, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
adds r3, r2, 0
|
|
cmp r0, 0
|
|
beq _080391A6
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080391A6
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080391C6
|
|
_080391A6:
|
|
ldr r0, =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3, 0x8]
|
|
bl SetMainCallback2
|
|
bl sub_8057028
|
|
bl dp11_free
|
|
bl sub_805F094
|
|
_080391C6:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8038F34
|
|
|
|
thumb_func_start sub_80391E0
|
|
sub_80391E0: @ 80391E0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0
|
|
cmp r1, 0x6
|
|
bhi _080392A0
|
|
lsls r0, r1, 2
|
|
ldr r1, =_08039200
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08039200:
|
|
.4byte _0803921C
|
|
.4byte _08039230
|
|
.4byte _08039244
|
|
.4byte _08039258
|
|
.4byte _0803926C
|
|
.4byte _08039280
|
|
.4byte _08039294
|
|
_0803921C:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
b _080392A0
|
|
.pool
|
|
_08039230:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
b _080392A0
|
|
.pool
|
|
_08039244:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
lsls r0, 23
|
|
lsrs r0, 27
|
|
b _080392A0
|
|
.pool
|
|
_08039258:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 29
|
|
lsrs r0, 30
|
|
b _080392A0
|
|
.pool
|
|
_0803926C:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 28
|
|
lsrs r0, 31
|
|
b _080392A0
|
|
.pool
|
|
_08039280:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
b _080392A0
|
|
.pool
|
|
_08039294:
|
|
ldr r0, =gUnknown_0831AA08
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
lsls r0, 8
|
|
lsrs r0, 22
|
|
_080392A0:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80391E0
|
|
|
|
thumb_func_start sub_80392A8
|
|
sub_80392A8: @ 80392A8
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, =0x05006000
|
|
add r0, sp, 0x4
|
|
bl CpuSet
|
|
bl ResetPaletteFade
|
|
ldr r0, =gUnknown_02022E14
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E18
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1C
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E1E
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E20
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E22
|
|
strh r4, [r0]
|
|
bl c2_berry_program_update_menu
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
bl sub_803570C
|
|
_080392FE:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80363C4
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _080392FE
|
|
bl ResetAllObjectData
|
|
bl ResetTasks
|
|
bl ResetObjectPaletteAllocator
|
|
ldr r1, =gUnknown_0300301C
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r0, =vblank_cb_08078BB4
|
|
bl SetVBlankCallback
|
|
ldr r0, =sub_803937C
|
|
bl SetMainCallback2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80392A8
|
|
|
|
thumb_func_start sub_803937C
|
|
sub_803937C: @ 803937C
|
|
push {lr}
|
|
bl sub_803939C
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_803937C
|
|
|
|
thumb_func_start sub_803939C
|
|
sub_803939C: @ 803939C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0xC
|
|
bls _080393AC
|
|
b _0803975E
|
|
_080393AC:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_080393C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080393C0:
|
|
.4byte _080393F4
|
|
.4byte _08039414
|
|
.4byte _08039450
|
|
.4byte _08039470
|
|
.4byte _0803949C
|
|
.4byte _080394D8
|
|
.4byte _0803957C
|
|
.4byte _08039704
|
|
.4byte _080395CC
|
|
.4byte _08039610
|
|
.4byte _08039678
|
|
.4byte _080396A8
|
|
.4byte _08039704
|
|
_080393F4:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_08039414:
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039434
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08039434
|
|
ldr r0, =sub_80B3AF8
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
_08039434:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_08039450:
|
|
ldr r0, =sub_80B3AF8
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803945E
|
|
b _0803975E
|
|
_0803945E:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_08039470:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803947E
|
|
b _0803975E
|
|
_0803947E:
|
|
ldr r0, =gUnknown_085CD28F
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_0803949C:
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _080394AC
|
|
b _0803975E
|
|
_080394AC:
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldr r4, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
b _080396EA
|
|
.pool
|
|
_080394D8:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039500
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _080394EC
|
|
b _0803975E
|
|
_080394EC:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
b _0803951E
|
|
.pool
|
|
_08039500:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039526
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _08039510
|
|
b _0803975E
|
|
_08039510:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
_0803951E:
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
b _0803975E
|
|
_08039526:
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039560
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _08039540
|
|
b _080396EA
|
|
_08039540:
|
|
str r5, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
bl sub_8185338
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0xA
|
|
strb r0, [r4]
|
|
b _0803975E
|
|
.pool
|
|
_08039560:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803956A
|
|
b _0803975E
|
|
_0803956A:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_0803957C:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0803958A
|
|
b _0803975E
|
|
_0803958A:
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080395B4
|
|
bl sub_800ADF8
|
|
ldr r0, =gUnknown_0824978D
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
_080395B4:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_080395CC:
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080395DA
|
|
b _0803975E
|
|
_080395DA:
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080395F6
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080395F6
|
|
bl sub_800AC34
|
|
_080395F6:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _0803975C
|
|
.pool
|
|
_08039610:
|
|
ldr r2, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
adds r3, r2, 0
|
|
cmp r0, 0
|
|
beq _08039634
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08039634
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08039634
|
|
b _0803975E
|
|
_08039634:
|
|
ldr r0, =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039650
|
|
b _0803975E
|
|
_08039650:
|
|
ldr r0, [r3, 0x8]
|
|
bl SetMainCallback2
|
|
bl sub_8057028
|
|
bl dp11_free
|
|
bl sub_805F094
|
|
b _0803975E
|
|
.pool
|
|
_08039678:
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x1
|
|
bne _080396A0
|
|
movs r0, 0x37
|
|
bl audio_play
|
|
ldr r0, =gUnknown_085CD2CB
|
|
_08039686:
|
|
bl get_battle_strings_
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
movs r0, 0x80
|
|
strb r0, [r4, 0x1]
|
|
b _080396EA
|
|
.pool
|
|
_080396A0:
|
|
ldr r0, =gUnknown_08242481
|
|
b _08039686
|
|
.pool
|
|
_080396A8:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803975E
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0803975E
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803975E
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080396EA
|
|
bl sub_800ADF8
|
|
ldr r0, =gUnknown_0824978D
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
_080396EA:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0803975E
|
|
.pool
|
|
_08039704:
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
bne _0803975E
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08039744
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803975E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
b _0803974A
|
|
.pool
|
|
_08039744:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
_0803974A:
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x20
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x8
|
|
_0803975C:
|
|
strb r0, [r1]
|
|
_0803975E:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803939C
|
|
|
|
thumb_func_start shedinja_something
|
|
shedinja_something: @ 803976C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
add r5, sp, 0xC
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r1, =0x0000012f
|
|
cmp r0, r1
|
|
bne _080397B4
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
beq _080397B4
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r1, =gUnknown_0831ACA0
|
|
mov r0, sp
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
bne _080397B4
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
_080397B4:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end shedinja_something
|
|
|
|
thumb_func_start sub_80397C4
|
|
sub_80397C4: @ 80397C4
|
|
ldr r2, =gUnknown_0831ABA0
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 3
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80397C4
|
|
|
|
thumb_func_start oac_poke_opponent
|
|
oac_poke_opponent: @ 80397DC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r1, =sub_803980C
|
|
str r1, [r0, 0x1C]
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ldr r1, =0x00002108
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0xA
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end oac_poke_opponent
|
|
|
|
thumb_func_start sub_803980C
|
|
sub_803980C: @ 803980C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gUnknown_020243FC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803982C
|
|
ldrh r0, [r2, 0x24]
|
|
adds r0, 0x2
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0803982C
|
|
ldr r0, =sub_8039838
|
|
str r0, [r2, 0x1C]
|
|
_0803982C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803980C
|
|
|
|
thumb_func_start sub_8039838
|
|
sub_8039838: @ 8039838
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039880
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076918
|
|
ldr r1, =gUnknown_03005D70
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
ldr r0, =sub_8039894
|
|
str r0, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ldr r1, =0x00002108
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_08039880:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039838
|
|
|
|
thumb_func_start sub_8039894
|
|
sub_8039894: @ 8039894
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080398B0
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_806ECEC
|
|
_080398B0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039894
|
|
|
|
thumb_func_start nullsub_18
|
|
nullsub_18: @ 80398B8
|
|
bx lr
|
|
thumb_func_end nullsub_18
|
|
|
|
thumb_func_start sub_80398BC
|
|
sub_80398BC: @ 80398BC
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x34]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, =sub_80398D0
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80398BC
|
|
|
|
thumb_func_start sub_80398D0
|
|
sub_80398D0: @ 80398D0
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08039924
|
|
movs r0, 0x8
|
|
strh r0, [r3, 0x36]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r4, 0x5
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0
|
|
bne _08039924
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldr r0, =nullsub_18
|
|
str r0, [r3, 0x1C]
|
|
ldr r0, =gUnknown_02022F88
|
|
str r2, [r0]
|
|
_08039924:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80398D0
|
|
|
|
thumb_func_start sub_8039934
|
|
sub_8039934: @ 8039934
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r6, 2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _0803995C
|
|
adds r4, r0, 0
|
|
b _08039960
|
|
.pool
|
|
_0803995C:
|
|
mov r0, r9
|
|
ldrh r4, [r0, 0x32]
|
|
_08039960:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r6, 1
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r7, =gEnemyParty
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl GetMonData
|
|
cmp r4, 0xC9
|
|
bne _080399E4
|
|
ldrh r0, [r5]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 18
|
|
ands r0, r2
|
|
lsrs r0, 18
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r2
|
|
lsrs r1, 12
|
|
orrs r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 2
|
|
ands r1, r2
|
|
lsrs r1, 6
|
|
orrs r0, r1
|
|
movs r1, 0x3
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
movs r1, 0x1C
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
bne _080399D0
|
|
movs r0, 0xC9
|
|
b _080399DA
|
|
.pool
|
|
_080399D0:
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_080399DA:
|
|
ldr r1, =gUnknown_08300D38
|
|
lsls r0, 2
|
|
b _08039A1C
|
|
.pool
|
|
_080399E4:
|
|
ldr r0, =0x00000181
|
|
cmp r4, r0
|
|
bne _08039A08
|
|
ldr r0, =gUnknown_08525F78
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r1, r6, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
b _08039A20
|
|
.pool
|
|
_08039A08:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bls _08039A18
|
|
ldr r0, =gUnknown_08300D38
|
|
b _08039A1E
|
|
.pool
|
|
_08039A18:
|
|
ldr r1, =gUnknown_08300D38
|
|
lsls r0, r4, 2
|
|
_08039A1C:
|
|
adds r0, r1
|
|
_08039A1E:
|
|
ldrb r0, [r0, 0x1]
|
|
_08039A20:
|
|
lsrs r1, r0, 3
|
|
movs r0, 0x8
|
|
subs r0, r1
|
|
mov r1, r9
|
|
strh r0, [r1, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x36]
|
|
ldr r0, =sub_8039A48
|
|
str r0, [r1, 0x1C]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039934
|
|
|
|
thumb_func_start sub_8039A48
|
|
sub_8039A48: @ 8039A48
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x36]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08039AC8
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08039A7C
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _08039AC8
|
|
_08039A7C:
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r2, =gUnknown_020244E4
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 11
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
movs r2, 0
|
|
movs r0, 0xFF
|
|
_08039AAE:
|
|
strb r2, [r1]
|
|
adds r1, 0x1
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _08039AAE
|
|
ldr r0, =gUnknown_020244E4
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
bl StartObjectImageAnim
|
|
_08039AC8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039A48
|
|
|
|
thumb_func_start sub_8039AD8
|
|
sub_8039AD8: @ 8039AD8
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x34]
|
|
adds r1, r0, 0
|
|
adds r1, 0x3E
|
|
ldrb r1, [r1]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, =sub_8039AF4
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8039AD8
|
|
|
|
thumb_func_start sub_8039AF4
|
|
sub_8039AF4: @ 8039AF4
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08039B26
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strh r0, [r3, 0x34]
|
|
_08039B26:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8039AF4
|
|
|
|
thumb_func_start sub_8039B2C
|
|
sub_8039B2C: @ 8039B2C
|
|
movs r1, 0x3E
|
|
adds r1, r0
|
|
mov r12, r1
|
|
movs r1, 0x1
|
|
ldrh r2, [r0, 0x36]
|
|
ands r2, r1
|
|
lsls r2, 2
|
|
mov r1, r12
|
|
ldrb r3, [r1]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
mov r2, r12
|
|
strb r1, [r2]
|
|
movs r1, 0
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, =nullsub_18
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8039B2C
|
|
|
|
thumb_func_start sub_8039B58
|
|
sub_8039B58: @ 8039B58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039BA0
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039B80
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x02000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039B94
|
|
_08039B80:
|
|
ldrh r0, [r4, 0x32]
|
|
bl sub_806F0D4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08039B94
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
_08039B94:
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_806ECEC
|
|
_08039BA0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039B58
|
|
|
|
thumb_func_start sub_8039BB4
|
|
sub_8039BB4: @ 8039BB4
|
|
ldr r1, =oac_poke_ally_
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8039BB4
|
|
|
|
thumb_func_start oac_poke_ally_
|
|
oac_poke_ally_: @ 8039BC0
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gUnknown_020243FC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08039BE4
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, 0x2
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _08039BE4
|
|
ldr r0, =nullsub_19
|
|
str r0, [r2, 0x1C]
|
|
strh r1, [r2, 0x30]
|
|
_08039BE4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end oac_poke_ally_
|
|
|
|
thumb_func_start sub_8039BF0
|
|
sub_8039BF0: @ 8039BF0
|
|
ldr r1, =nullsub_19
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8039BF0
|
|
|
|
thumb_func_start nullsub_19
|
|
nullsub_19: @ 8039BFC
|
|
bx lr
|
|
thumb_func_end nullsub_19
|
|
|
|
thumb_func_start sub_8039C00
|
|
sub_8039C00: @ 8039C00
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gUnknown_020243FC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08039C20
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x32]
|
|
ldrh r1, [r2, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x26]
|
|
_08039C20:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039C00
|
|
|
|
thumb_func_start dp11b_obj_instanciate
|
|
dp11b_obj_instanciate: @ 8039C28
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
cmp r1, 0
|
|
beq _08039C64
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r2, r4, 1
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
b _08039C76
|
|
.pool
|
|
_08039C64:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r2, r4, 1
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
_08039C76:
|
|
ands r0, r1
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
bne _08039D2C
|
|
ldr r0, =objc_dp11b_pingpong
|
|
bl CreateInvisibleSpriteWithCallback
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bne _08039CD0
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r4, r0
|
|
ldrb r7, [r0]
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r6, r4
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
strb r5, [r0, 0x2]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x80
|
|
b _08039CFE
|
|
.pool
|
|
_08039CD0:
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r4, r0
|
|
ldrb r7, [r0]
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r6, r4
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
strb r5, [r0, 0x3]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0xC0
|
|
_08039CFE:
|
|
strh r1, [r0, 0x2E]
|
|
adds r4, r2, 0
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
mov r2, r9
|
|
lsls r0, r2, 24
|
|
asrs r0, 24
|
|
movs r2, 0
|
|
strh r0, [r1, 0x30]
|
|
mov r3, r10
|
|
lsls r0, r3, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x32]
|
|
strh r7, [r1, 0x34]
|
|
mov r0, r8
|
|
strh r0, [r1, 0x36]
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x24]
|
|
strh r2, [r0, 0x26]
|
|
_08039D2C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp11b_obj_instanciate
|
|
|
|
thumb_func_start dp11b_obj_free
|
|
dp11b_obj_free: @ 8039D48
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x1
|
|
bne _08039D9C
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r5, r0, 2
|
|
adds r3, r5, r1
|
|
ldrb r1, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039DEA
|
|
ldr r2, =gUnknown_02020630
|
|
ldrb r1, [r3, 0x2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x34]
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
b _08039DD6
|
|
.pool
|
|
_08039D9C:
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r5, r0, 2
|
|
adds r3, r5, r1
|
|
ldrb r1, [r3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039DEA
|
|
ldr r2, =gUnknown_02020630
|
|
ldrb r1, [r3, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x34]
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
_08039DD6:
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x24]
|
|
strh r0, [r1, 0x26]
|
|
_08039DEA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp11b_obj_free
|
|
|
|
thumb_func_start objc_dp11b_pingpong
|
|
objc_dp11b_pingpong: @ 8039DF8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _08039E10
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
b _08039E14
|
|
_08039E10:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
_08039E14:
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r4, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end objc_dp11b_pingpong
|
|
|
|
thumb_func_start sub_8039E44
|
|
sub_8039E44: @ 8039E44
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039E5C
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r2, 0
|
|
bl sub_806EEB4
|
|
_08039E5C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8039E44
|
|
|
|
thumb_func_start sub_8039E60
|
|
sub_8039E60: @ 8039E60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8039E9C
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08039E7A
|
|
ldr r0, =nullsub_19
|
|
str r0, [r4, 0x1C]
|
|
_08039E7A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039E60
|
|
|
|
thumb_func_start sub_8039E84
|
|
sub_8039E84: @ 8039E84
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
ldr r0, =sub_8039E60
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039E84
|
|
|
|
thumb_func_start sub_8039E9C
|
|
sub_8039E9C: @ 8039E9C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08039EBE
|
|
ldr r1, =gUnknown_0831ACE0
|
|
adds r0, r2, 0
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
strb r1, [r0]
|
|
_08039EBE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039E9C
|
|
|
|
thumb_func_start nullsub_20
|
|
nullsub_20: @ 8039EC8
|
|
bx lr
|
|
thumb_func_end nullsub_20
|
|
|
|
thumb_func_start sub_8039ECC
|
|
sub_8039ECC: @ 8039ECC
|
|
push {lr}
|
|
bl sub_8039F40
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_8012FAC
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039ECC
|
|
|
|
thumb_func_start sub_8039EF0
|
|
sub_8039EF0: @ 8039EF0
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_03005D04
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08039F2A
|
|
ldr r5, =gUnknown_03005D60
|
|
adds r4, r1, 0
|
|
_08039F0C:
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08039F0C
|
|
_08039F2A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039EF0
|
|
|
|
thumb_func_start sub_8039F40
|
|
sub_8039F40: @ 8039F40
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
bl sub_803D580
|
|
bl sub_803D6A0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02024260
|
|
mov r10, r0
|
|
ldr r1, =gUnknown_02024258
|
|
mov r9, r1
|
|
ldr r0, =gUnknown_02024250
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_02024248
|
|
mov r12, r1
|
|
ldr r5, =gUnknown_020242BC
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_02024240
|
|
ldr r6, =gUnknown_02024268
|
|
_08039F70:
|
|
ldr r0, =gUnknown_020242AC
|
|
adds r0, r4, r0
|
|
str r3, [r0]
|
|
movs r1, 0
|
|
_08039F78:
|
|
adds r0, r5, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x1B
|
|
bls _08039F78
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x16]
|
|
ldr r1, =gUnknown_02024284
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
mov r0, r12
|
|
strh r3, [r0]
|
|
mov r1, r8
|
|
strh r3, [r1]
|
|
mov r0, r9
|
|
strh r3, [r0]
|
|
mov r1, r10
|
|
strh r3, [r1]
|
|
ldr r0, =gUnknown_02024270
|
|
adds r1, r2, r0
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
strh r3, [r6]
|
|
strh r3, [r7]
|
|
ldr r1, =gUnknown_020244A8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r4
|
|
str r3, [r0]
|
|
ldr r1, =gUnknown_02024230
|
|
adds r0, r4, r1
|
|
str r3, [r0]
|
|
movs r0, 0x2
|
|
add r10, r0
|
|
add r9, r0
|
|
add r8, r0
|
|
add r12, r0
|
|
adds r5, 0x1C
|
|
adds r4, 0x4
|
|
adds r7, 0x2
|
|
adds r6, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _08039F70
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02024294
|
|
ldr r4, =gUnknown_0202428E
|
|
movs r2, 0x1
|
|
_08039FD8:
|
|
strh r5, [r4]
|
|
movs r1, 0
|
|
_08039FDC:
|
|
adds r0, r3, r1
|
|
strb r5, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0xB
|
|
bls _08039FDC
|
|
adds r3, 0xC
|
|
adds r4, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08039FD8
|
|
movs r1, 0
|
|
ldr r2, =gUnknown_0202420B
|
|
strb r1, [r2]
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r1, [r0]
|
|
ldr r2, =gBattleWeather
|
|
strh r1, [r2]
|
|
ldr r1, =gUnknown_020243D0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
_0803A004:
|
|
adds r0, r1, r2
|
|
strb r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2B
|
|
bls _0803A004
|
|
ldr r2, =gUnknown_02024280
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803A090
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803A0AE
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A0AE
|
|
movs r0, 0x80
|
|
b _0803A0AC
|
|
.pool
|
|
_0803A090:
|
|
ldr r0, =0x02000002
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803A0AE
|
|
bl sub_8185FB8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803A0AE
|
|
ldr r1, =gUnknown_02024280
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
ldr r2, =gUnknown_02024280
|
|
_0803A0AC:
|
|
str r0, [r2]
|
|
_0803A0AE:
|
|
ldr r3, =gUnknown_02024474
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x15]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
movs r1, 0
|
|
strb r0, [r3, 0x1D]
|
|
ldr r0, =gUnknown_02024212
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0202433A
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024068
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_0202432E
|
|
movs r2, 0
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_020244A8
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0xC]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
ldr r5, =gUnknown_0202432C
|
|
ldr r6, =gBattleMoveDamage
|
|
ldr r7, =gUnknown_020243FC
|
|
ldr r0, =gUnknown_03005D54
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_02024210
|
|
mov r9, r1
|
|
ldr r2, =gEnemyParty
|
|
mov r10, r2
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_0803A0FA:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0803A0FA
|
|
movs r4, 0
|
|
strh r4, [r5]
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
strh r0, [r7]
|
|
strb r4, [r3, 0x18]
|
|
strb r4, [r3, 0x19]
|
|
mov r0, r8
|
|
strb r4, [r0]
|
|
mov r1, r9
|
|
strb r4, [r1]
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
adds r0, 0x6C
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x79
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7A
|
|
strb r4, [r0]
|
|
mov r0, r10
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r6, [r5]
|
|
adds r6, 0x7C
|
|
ldr r2, =gBaseStats
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x8]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =0x000004fb
|
|
bl __divsi3
|
|
strb r0, [r6]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
strb r4, [r0, 0x12]
|
|
ldr r0, [r5]
|
|
adds r0, 0x4A
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r2, 0
|
|
movs r1, 0
|
|
adds r6, r5, 0
|
|
_0803A16A:
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0x98
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xB8
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xC8
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xD0
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xE0
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xE8
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xF0
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
adds r0, 0xF8
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _0803A16A
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_0202449C
|
|
movs r3, 0xA5
|
|
lsls r3, 2
|
|
movs r1, 0x6
|
|
_0803A1BA:
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _0803A1BA
|
|
ldr r0, [r6]
|
|
adds r0, 0xDF
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x92
|
|
strb r1, [r0]
|
|
bl Random
|
|
ldr r1, =gUnknown_02024330
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_03005D10
|
|
movs r2, 0
|
|
movs r3, 0
|
|
_0803A1E4:
|
|
adds r0, r1, r2
|
|
strb r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x43
|
|
bls _0803A1E4
|
|
ldr r0, =gEnemyParty
|
|
bl sub_806EBA4
|
|
ldr r3, =gUnknown_03005D10
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
ldrb r2, [r3, 0x5]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x5]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
movs r1, 0xA8
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r2, =0x000002a1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8039F40
|
|
|
|
thumb_func_start sub_803A284
|
|
sub_803A284: @ 803A284
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
ldr r4, =gUnknown_020242BC
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r0, r4
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoves
|
|
ldr r3, =gUnknown_020241EA
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
mov r12, r4
|
|
mov r9, r5
|
|
ldr r6, =gUnknown_020242AC
|
|
mov r10, r6
|
|
cmp r0, 0x7F
|
|
beq _0803A35C
|
|
movs r5, 0
|
|
mov r6, r9
|
|
movs r4, 0x58
|
|
ldr r2, =gBattleMons
|
|
adds r2, 0x18
|
|
movs r1, 0x6
|
|
_0803A2D4:
|
|
ldrb r0, [r6]
|
|
muls r0, r4
|
|
adds r0, r5, r0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0803A2D4
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_0202406C
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _0803A348
|
|
ldr r0, =gUnknown_020240D4
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_020242BC
|
|
ldr r3, =gUnknown_020242AC
|
|
_0803A2F6:
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
mov r1, r8
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A31A
|
|
ldrb r0, [r4, 0x14]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
bne _0803A31A
|
|
ldr r0, =0xfbffffff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
_0803A31A:
|
|
ldr r1, [r3]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A33A
|
|
ldrb r0, [r4, 0x15]
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r7, [r7]
|
|
cmp r0, r7
|
|
bne _0803A33A
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
movs r0, 0
|
|
strb r0, [r4, 0x15]
|
|
_0803A33A:
|
|
adds r4, 0x1C
|
|
adds r3, 0x4
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803A2F6
|
|
_0803A348:
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r0, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, =gBattleMoves
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7F
|
|
bne _0803A414
|
|
_0803A35C:
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
ldr r0, =gBattleMons
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0x15100007
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
add r1, r10
|
|
ldr r0, [r1]
|
|
ldr r2, =0x0003043f
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_0202406C
|
|
ldrb r6, [r6]
|
|
cmp r5, r6
|
|
bge _0803A430
|
|
mov r7, r9
|
|
movs r6, 0
|
|
_0803A390:
|
|
ldrb r0, [r7]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0803A3D0
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r5, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A3D0
|
|
ldr r0, =gUnknown_020242BC
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0, 0x15]
|
|
ldrb r3, [r7]
|
|
cmp r0, r3
|
|
bne _0803A3D0
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_0803A3D0:
|
|
adds r6, 0x1C
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803A390
|
|
ldr r6, =gUnknown_020242BC
|
|
mov r12, r6
|
|
ldr r7, =gUnknown_02024064
|
|
mov r9, r7
|
|
b _0803A430
|
|
.pool
|
|
_0803A414:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gBattleMons
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
add r0, r10
|
|
str r1, [r0]
|
|
_0803A430:
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_0202449C
|
|
mov r8, r3
|
|
ldr r6, =gUnknown_020244AC
|
|
mov r10, r6
|
|
ldr r7, =gUnknown_0202406C
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _0803A490
|
|
ldr r3, =gUnknown_020240D4
|
|
ldr r7, =gBitTable
|
|
ldr r6, =gUnknown_02024064
|
|
_0803A448:
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
adds r4, r0, r3
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
lsls r2, r0, 16
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803A466
|
|
bics r1, r2
|
|
str r1, [r4]
|
|
_0803A466:
|
|
ldr r1, [r4]
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A486
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0, 0x14]
|
|
ldrb r2, [r6]
|
|
cmp r0, r2
|
|
bne _0803A486
|
|
ldr r0, =0xffff1fff
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
_0803A486:
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803A448
|
|
_0803A490:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
add r0, r10
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
ldr r3, =gUnknown_020244B0
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r6, r12
|
|
adds r1, r0, r6
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_0803A4B4:
|
|
adds r0, r1, r5
|
|
strb r2, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x1B
|
|
bls _0803A4B4
|
|
ldr r7, =gUnknown_020241EA
|
|
ldrh r0, [r7]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gBattleMoves
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7F
|
|
bne _0803A540
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0xA]
|
|
strb r1, [r0, 0xA]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x15]
|
|
strb r1, [r0, 0x15]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
mov r0, sp
|
|
ldrb r2, [r0, 0xF]
|
|
lsls r2, 28
|
|
movs r4, 0xF
|
|
lsrs r2, 28
|
|
ldrb r3, [r1, 0xF]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xF]
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0xF]
|
|
lsrs r1, 4
|
|
lsls r1, 4
|
|
ldrb r2, [r0, 0xF]
|
|
ands r4, r2
|
|
orrs r4, r1
|
|
strb r4, [r0, 0xF]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x14]
|
|
strb r1, [r0, 0x14]
|
|
_0803A540:
|
|
movs r0, 0
|
|
ldr r6, =gBattleMoveFlags
|
|
strb r0, [r6]
|
|
mov r7, r9
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
movs r4, 0
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x16]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x18]
|
|
movs r2, 0x2
|
|
ands r2, r0
|
|
ldrb r3, [r1, 0x18]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x18]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_02024248
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r4, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r3, =gUnknown_02024250
|
|
adds r0, r3
|
|
strh r4, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r6, =gUnknown_02024258
|
|
adds r0, r6
|
|
strh r4, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
ldr r7, =gUnknown_02024260
|
|
adds r0, r7
|
|
strh r4, [r0]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r3, =gUnknown_02024240
|
|
adds r0, r3
|
|
strh r4, [r0]
|
|
ldrb r0, [r1]
|
|
ldr r6, =gUnknown_02024270
|
|
adds r0, r6
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
mov r7, r9
|
|
ldrb r0, [r7]
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x98
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x99
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE2
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE3
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE4
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE5
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE6
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r3]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE7
|
|
strb r2, [r0]
|
|
ldr r1, [r3]
|
|
adds r1, 0x92
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
ldr r6, =gBitTable
|
|
adds r0, r6
|
|
ldr r2, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_0202406C
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _0803A6B4
|
|
mov r3, r9
|
|
mov r7, r8
|
|
movs r6, 0
|
|
_0803A656:
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
beq _0803A68C
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
str r3, [sp, 0x1C]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldr r3, [sp, 0x1C]
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x1C]
|
|
cmp r4, r0
|
|
beq _0803A68C
|
|
ldr r0, [r7]
|
|
lsls r1, r5, 1
|
|
adds r0, r1, r0
|
|
adds r0, 0x98
|
|
strb r6, [r0]
|
|
ldr r0, [r7]
|
|
adds r1, r0
|
|
adds r1, 0x99
|
|
strb r6, [r1]
|
|
_0803A68C:
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
lsls r2, r5, 3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r6, [r0]
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r6, [r0]
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803A656
|
|
_0803A6B4:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
mov r6, r8
|
|
ldr r1, [r6]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0xDA
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldrb r0, [r3]
|
|
bl sub_81310F0
|
|
mov r7, r9
|
|
ldrb r0, [r7]
|
|
bl sub_8131130
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803A284
|
|
|
|
thumb_func_start sub_803A75C
|
|
sub_803A75C: @ 803A75C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r5, 0
|
|
ldr r6, =gBattleMons
|
|
ldr r0, =gUnknown_020242AC
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_0202449C
|
|
mov r12, r1
|
|
ldr r2, =gUnknown_020244AC
|
|
mov r9, r2
|
|
ldr r3, =gUnknown_020244B0
|
|
mov r10, r3
|
|
ldr r7, =gUnknown_0202433C
|
|
ldr r4, =gUnknown_02024064
|
|
movs r3, 0x58
|
|
adds r2, r6, 0
|
|
adds r2, 0x18
|
|
movs r1, 0x6
|
|
_0803A788:
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r0, r5, r0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0803A788
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r2, r6, 0
|
|
adds r2, 0x50
|
|
adds r0, r2
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
add r0, r8
|
|
str r1, [r0]
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_0202406C
|
|
ldrb r6, [r6]
|
|
cmp r5, r6
|
|
bge _0803A830
|
|
adds r3, r2, 0
|
|
movs r4, 0
|
|
ldr r0, =gBitTable
|
|
mov r8, r0
|
|
_0803A7C6:
|
|
ldr r1, [r3]
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A7E6
|
|
ldr r2, =gUnknown_020242BC
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0, 0x14]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
bne _0803A7E6
|
|
ldr r0, =0xfbffffff
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
_0803A7E6:
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r0, [r0]
|
|
lsls r2, r0, 16
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803A800
|
|
bics r1, r2
|
|
str r1, [r3]
|
|
_0803A800:
|
|
ldr r1, [r3]
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803A822
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0, 0x14]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
bne _0803A822
|
|
ldr r0, =0xffff1fff
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
_0803A822:
|
|
adds r3, 0x58
|
|
adds r4, 0x1C
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803A7C6
|
|
_0803A830:
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
add r0, r9
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
add r0, r10
|
|
strb r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r3, =gUnknown_020242BC
|
|
adds r1, r0, r3
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_0803A852:
|
|
adds r0, r1, r5
|
|
strb r2, [r0]
|
|
adds r5, 0x1
|
|
cmp r5, 0x1B
|
|
bls _0803A852
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r9, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r3, 0x3
|
|
negs r3, r3
|
|
mov r8, r3
|
|
mov r0, r8
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
subs r3, 0x6
|
|
mov r10, r3
|
|
mov r0, r10
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r5, 0x21
|
|
negs r5, r5
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r4, 0x41
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r3, 0x7F
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x1]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x1]
|
|
ands r5, r1
|
|
strb r5, [r0, 0x1]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x1]
|
|
ands r4, r1
|
|
strb r4, [r0, 0x1]
|
|
ldrb r0, [r2]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x1]
|
|
ands r3, r1
|
|
strb r3, [r0, 0x1]
|
|
ldrb r0, [r2]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x2]
|
|
mov r3, r9
|
|
ands r3, r1
|
|
strb r3, [r0, 0x2]
|
|
ldrb r0, [r2]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x2]
|
|
mov r2, r8
|
|
ands r2, r1
|
|
strb r2, [r0, 0x2]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x2]
|
|
ands r6, r1
|
|
strb r6, [r0, 0x2]
|
|
ldrb r0, [r3]
|
|
lsls r0, 4
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x2]
|
|
mov r6, r10
|
|
ands r6, r1
|
|
strb r6, [r0, 0x2]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_020242BC
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x16]
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
ldr r3, =gUnknown_02024248
|
|
adds r0, r3
|
|
movs r3, 0
|
|
strh r2, [r0]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_02024250
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
ldr r6, =gUnknown_02024258
|
|
adds r0, r6
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r6, =gUnknown_02024260
|
|
adds r0, r6
|
|
strh r2, [r0]
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_02024240
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
ldr r6, =gUnknown_02024270
|
|
adds r0, r6
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
mov r2, r12
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
strb r3, [r0]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x98
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0x99
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE2
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE3
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE4
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE5
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE6
|
|
strb r3, [r0]
|
|
ldrb r0, [r6]
|
|
ldr r1, [r2]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
adds r0, 0xE7
|
|
strb r3, [r0]
|
|
ldr r1, [r2]
|
|
adds r1, 0x92
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
ldr r2, =gBitTable
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_0202406C
|
|
ldrb r3, [r3]
|
|
cmp r5, r3
|
|
bge _0803AB02
|
|
adds r3, r6, 0
|
|
mov r7, r12
|
|
movs r6, 0
|
|
_0803AAA4:
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
beq _0803AADA
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
str r3, [sp]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldr r3, [sp]
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
ldr r3, [sp]
|
|
cmp r4, r0
|
|
beq _0803AADA
|
|
ldr r0, [r7]
|
|
lsls r1, r5, 1
|
|
adds r0, r1, r0
|
|
adds r0, 0x98
|
|
strb r6, [r0]
|
|
ldr r0, [r7]
|
|
adds r1, r0
|
|
adds r1, 0x99
|
|
strb r6, [r1]
|
|
_0803AADA:
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
lsls r2, r5, 3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE0
|
|
strb r6, [r0]
|
|
ldrb r0, [r3]
|
|
ldr r1, [r7]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
adds r0, r1
|
|
adds r0, 0xE1
|
|
strb r6, [r0]
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803AAA4
|
|
_0803AB02:
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r4, =gBattleMons
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
adds r2, r0, 0
|
|
muls r2, r3
|
|
b _0803AB6C
|
|
.pool
|
|
_0803AB6C:
|
|
adds r2, r4
|
|
ldr r5, =gBaseStats
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x6]
|
|
adds r2, 0x21
|
|
strb r0, [r2]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
adds r1, r4
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x7]
|
|
adds r1, 0x22
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl sub_81310F0
|
|
ldrb r0, [r6]
|
|
bl sub_8131130
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803A75C
|
|
|
|
thumb_func_start bc_8012FAC
|
|
bc_8012FAC: @ 803ABC0
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _0803ABD4
|
|
cmp r0, 0x1
|
|
beq _0803ABF8
|
|
b _0803AC2E
|
|
.pool
|
|
_0803ABD4:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r5, 0x1]
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x00_a_b_0
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _0803AC2E
|
|
.pool
|
|
_0803ABF8:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0803AC2E
|
|
ldrb r0, [r5, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x1]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0803AC2C
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_load_battlefield
|
|
str r0, [r1]
|
|
b _0803AC2E
|
|
.pool
|
|
_0803AC2C:
|
|
strb r2, [r5]
|
|
_0803AC2E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bc_8012FAC
|
|
|
|
thumb_func_start bc_load_battlefield
|
|
bc_load_battlefield: @ 803AC34
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _0803AC64
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2E_a
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803AC84
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r5, [r0]
|
|
strb r5, [r0, 0x1]
|
|
_0803AC64:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_load_battlefield
|
|
|
|
thumb_func_start sub_803AC84
|
|
sub_803AC84: @ 803AC84
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _0803AC98
|
|
b _0803AF4E
|
|
_0803AC98:
|
|
ldr r2, =gUnknown_02024064
|
|
strb r1, [r2]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _0803ACA6
|
|
b _0803AF48
|
|
_0803ACA6:
|
|
movs r7, 0x58
|
|
ldr r0, =gBattleMons
|
|
mov r8, r0
|
|
mov r9, r2
|
|
movs r1, 0x48
|
|
add r1, r8
|
|
mov r10, r1
|
|
_0803ACB4:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803ACFC
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803ACFC
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
mov r2, r8
|
|
adds r3, r0, r2
|
|
movs r2, 0
|
|
movs r1, 0
|
|
_0803ACDA:
|
|
adds r0, r3, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x57
|
|
bls _0803ACDA
|
|
b _0803ADCA
|
|
.pool
|
|
_0803ACFC:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
muls r0, r7
|
|
mov r2, r8
|
|
adds r3, r0, r2
|
|
movs r2, 0
|
|
ldr r6, =gBaseStats
|
|
ldr r5, =gUnknown_02023864
|
|
ldr r4, =gUnknown_02024064
|
|
_0803AD0E:
|
|
adds r0, r3, r2
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x57
|
|
bls _0803AD0E
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
add r2, r8
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x6]
|
|
adds r2, 0x21
|
|
strb r0, [r2]
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
add r2, r8
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x7]
|
|
adds r2, 0x22
|
|
strb r0, [r2]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
add r1, r8
|
|
ldrh r0, [r1]
|
|
ldrb r1, [r1, 0x17]
|
|
lsrs r1, 7
|
|
bl sub_806B694
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
muls r1, r7
|
|
add r1, r8
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
bl battle_side_get_owner
|
|
ldr r1, =gUnknown_0202449C
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, 0xA8
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x28]
|
|
strh r0, [r1]
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_02024064
|
|
movs r5, 0x58
|
|
ldr r1, =gUnknown_0202409C
|
|
adds r6, r4, 0
|
|
movs r0, 0x18
|
|
negs r0, r0
|
|
adds r0, r1
|
|
mov r12, r0
|
|
movs r3, 0x6
|
|
_0803ADAA:
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r2, r0
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _0803ADAA
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
mov r0, r12
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_0803ADCA:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803ADE4
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x07_7_7_7
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803ADE4:
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803AE60
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803AE0A
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x07_7_7_7
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803AE0A:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803AEC0
|
|
ldr r0, [r5]
|
|
ldr r1, =0x063f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803AEC0
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r7
|
|
add r1, r10
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl SetPokedexFlag
|
|
b _0803AEC0
|
|
.pool
|
|
_0803AE60:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803AEC0
|
|
ldr r0, [r5]
|
|
ldr r1, =0x063f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803AE96
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r7
|
|
add r1, r10
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl SetPokedexFlag
|
|
_0803AE96:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x04_4_4_4
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
ldr r1, =gUnknown_03005D10
|
|
strh r0, [r1, 0x20]
|
|
_0803AEC0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803AEF6
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _0803AEEA
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0803AEF6
|
|
_0803AEEA:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x07_7_7_7
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803AEF6:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803AF20
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0803AF20
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x07_7_7_7
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803AF20:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803AF32
|
|
bl sub_81A56B4
|
|
_0803AF32:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0803AF48
|
|
b _0803ACB4
|
|
_0803AF48:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_801333C
|
|
str r0, [r1]
|
|
_0803AF4E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803AC84
|
|
|
|
thumb_func_start bc_801333C
|
|
bc_801333C: @ 803AF80
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x30
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803AF92
|
|
b _0803B10C
|
|
_0803AF92:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803AFA0
|
|
b _0803B0AC
|
|
_0803AFA0:
|
|
movs r7, 0
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r6, r8
|
|
mov r5, sp
|
|
_0803AFAA:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0803AFD0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0803AFE8
|
|
_0803AFD0:
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _0803AFFA
|
|
.pool
|
|
_0803AFE8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_0803AFFA:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0803AFAA
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x80
|
|
bl dp01_build_cmdbuf_x30_TODO
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
movs r7, 0
|
|
mov r6, r8
|
|
mov r5, sp
|
|
_0803B026:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0803B04C
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0803B060
|
|
_0803B04C:
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _0803B072
|
|
.pool
|
|
_0803B060:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_0803B072:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0803B026
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x80
|
|
bl dp01_build_cmdbuf_x30_TODO
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_battle_begin_message
|
|
b _0803B10A
|
|
.pool
|
|
_0803B0AC:
|
|
movs r7, 0
|
|
add r6, sp, 0x4
|
|
mov r5, sp
|
|
_0803B0B2:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0803B0D8
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0803B0E8
|
|
_0803B0D8:
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _0803B0FA
|
|
.pool
|
|
_0803B0E8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_0803B0FA:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0803B0B2
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_8013568
|
|
_0803B10A:
|
|
str r0, [r1]
|
|
_0803B10C:
|
|
add sp, 0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_801333C
|
|
|
|
thumb_func_start bc_battle_begin_message
|
|
bc_battle_begin_message: @ 803B120
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B142
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
movs r0, 0
|
|
bl b_std_message
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B180
|
|
str r0, [r1]
|
|
_0803B142:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_battle_begin_message
|
|
|
|
thumb_func_start bc_8013568
|
|
bc_8013568: @ 803B158
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B170
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B3CC
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl b_std_message
|
|
_0803B170:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_8013568
|
|
|
|
thumb_func_start sub_803B180
|
|
sub_803B180: @ 803B180
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B1D0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B1B8
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B1B8
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
ands r1, r2
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
b _0803B1BA
|
|
.pool
|
|
_0803B1B8:
|
|
movs r0, 0x1
|
|
_0803B1BA:
|
|
bl battle_get_side_with_given_state
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
bl b_std_message
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B25C
|
|
str r0, [r1]
|
|
_0803B1D0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B180
|
|
|
|
thumb_func_start sub_803B1DC
|
|
sub_803B1DC: @ 803B1DC
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B1FC
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B1FC
|
|
movs r5, 0x2
|
|
cmp r1, 0
|
|
bge _0803B1FE
|
|
_0803B1FC:
|
|
movs r5, 0x3
|
|
_0803B1FE:
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803B23A
|
|
adds r4, r1, 0
|
|
_0803B20E:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
bne _0803B228
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2F_2F_2F_2F
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803B228:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B20E
|
|
_0803B23A:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_801362C
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B1DC
|
|
|
|
thumb_func_start sub_803B25C
|
|
sub_803B25C: @ 803B25C
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B298
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B298
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
ands r1, r2
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r5, r0, 31
|
|
b _0803B29A
|
|
.pool
|
|
_0803B288:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B1DC
|
|
b _0803B2F0
|
|
.pool
|
|
_0803B298:
|
|
movs r5, 0x1
|
|
_0803B29A:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0803B2F2
|
|
ldr r0, =gUnknown_02024064
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_0202406C
|
|
adds r4, r0, 0
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcs _0803B2EC
|
|
adds r6, r4, 0
|
|
_0803B2B2:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
bne _0803B2D8
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2F_2F_2F_2F
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00008040
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803B288
|
|
_0803B2D8:
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B2B2
|
|
_0803B2EC:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_801362C
|
|
_0803B2F0:
|
|
str r0, [r1]
|
|
_0803B2F2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B25C
|
|
|
|
thumb_func_start bc_801362C
|
|
bc_801362C: @ 803B314
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _0803B384
|
|
ldr r2, =gUnknown_02024064
|
|
strb r1, [r2]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0803B37E
|
|
adds r4, r2, 0
|
|
ldr r6, =gBattleMons
|
|
movs r5, 0x58
|
|
adds r7, r6, 0
|
|
adds r7, 0x48
|
|
_0803B334:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803B36C
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x063f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803B36C
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r4]
|
|
muls r1, r5
|
|
adds r1, r7
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl SetPokedexFlag
|
|
_0803B36C:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B334
|
|
_0803B37E:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B3CC
|
|
str r0, [r1]
|
|
_0803B384:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_801362C
|
|
|
|
thumb_func_start sub_803B3AC
|
|
sub_803B3AC: @ 803B3AC
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B3BC
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B3CC
|
|
str r0, [r1]
|
|
_0803B3BC:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B3AC
|
|
|
|
thumb_func_start sub_803B3CC
|
|
sub_803B3CC: @ 803B3CC
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B418
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r2, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B3F4
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803B3F4
|
|
movs r3, 0x1
|
|
cmp r2, 0
|
|
bge _0803B3F6
|
|
_0803B3F4:
|
|
movs r3, 0
|
|
_0803B3F6:
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803B412
|
|
adds r0, r3, 0
|
|
bl battle_get_side_with_given_state
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
bl b_std_message
|
|
_0803B412:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B4C8
|
|
str r0, [r1]
|
|
_0803B418:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B3CC
|
|
|
|
thumb_func_start sub_803B42C
|
|
sub_803B42C: @ 803B42C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B44C
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B44C
|
|
movs r5, 0x3
|
|
cmp r1, 0
|
|
bge _0803B44E
|
|
_0803B44C:
|
|
movs r5, 0x2
|
|
_0803B44E:
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803B48A
|
|
adds r4, r1, 0
|
|
_0803B45E:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
bne _0803B478
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2F_2F_2F_2F
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803B478:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B45E
|
|
_0803B48A:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
movs r2, 0xD1
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B628
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B42C
|
|
|
|
thumb_func_start sub_803B4C8
|
|
sub_803B4C8: @ 803B4C8
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B500
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B500
|
|
movs r6, 0x1
|
|
cmp r1, 0
|
|
bge _0803B502
|
|
b _0803B500
|
|
.pool
|
|
_0803B4F0:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B42C
|
|
b _0803B572
|
|
.pool
|
|
_0803B500:
|
|
movs r6, 0
|
|
_0803B502:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0803B574
|
|
ldr r0, =gUnknown_02024064
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_0202406C
|
|
adds r4, r0, 0
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcs _0803B554
|
|
adds r5, r4, 0
|
|
_0803B51A:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r6
|
|
bne _0803B540
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2F_2F_2F_2F
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803B4F0
|
|
_0803B540:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B51A
|
|
_0803B554:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
movs r2, 0xD1
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B628
|
|
_0803B572:
|
|
str r0, [r1]
|
|
_0803B574:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B4C8
|
|
|
|
thumb_func_start sub_803B598
|
|
sub_803B598: @ 803B598
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _0803B606
|
|
ldr r2, =gUnknown_02024064
|
|
strb r1, [r2]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0803B5E6
|
|
adds r4, r2, 0
|
|
ldr r5, =gUnknown_0202406E
|
|
_0803B5B2:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803B5D4
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x05_a_b_c
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803B5D4:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B5B2
|
|
_0803B5E6:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
movs r2, 0xD1
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B628
|
|
str r0, [r1]
|
|
_0803B606:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B598
|
|
|
|
thumb_func_start sub_803B628
|
|
sub_803B628: @ 803B628
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803B642
|
|
b _0803B8B2
|
|
_0803B642:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B6C2
|
|
movs r5, 0
|
|
ldr r1, =gUnknown_0202406C
|
|
mov r10, r1
|
|
ldrb r3, [r1]
|
|
cmp r5, r3
|
|
bge _0803B668
|
|
ldr r2, =gUnknown_0202407E
|
|
_0803B65C:
|
|
adds r0, r5, r2
|
|
strb r5, [r0]
|
|
adds r5, 0x1
|
|
ldrb r0, [r1]
|
|
cmp r5, r0
|
|
blt _0803B65C
|
|
_0803B668:
|
|
movs r5, 0
|
|
b _0803B6B8
|
|
.pool
|
|
_0803B67C:
|
|
adds r4, r5, 0x1
|
|
mov r8, r4
|
|
ldrb r1, [r1]
|
|
cmp r8, r1
|
|
bge _0803B6B6
|
|
ldr r6, =gUnknown_0202407E
|
|
ldr r1, =gUnknown_0202406C
|
|
mov r10, r1
|
|
lsls r7, r5, 24
|
|
_0803B68E:
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
adds r1, r4, r6
|
|
ldrb r1, [r1]
|
|
movs r2, 0x1
|
|
bl b_first_side
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B6AC
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
lsrs r0, r7, 24
|
|
bl sub_803CEDC
|
|
_0803B6AC:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0803B68E
|
|
_0803B6B6:
|
|
mov r5, r8
|
|
_0803B6B8:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _0803B67C
|
|
_0803B6C2:
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
movs r4, 0xD1
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B6FC
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0xFF
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B6FC
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0803B8B2
|
|
.pool
|
|
_0803B6FC:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0x4C
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0803B756
|
|
ldr r5, =gUnknown_0202407E
|
|
adds r4, r2, 0
|
|
_0803B710:
|
|
ldr r0, [r4]
|
|
adds r0, 0x4C
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B736
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0803B736:
|
|
ldr r1, [r4]
|
|
adds r1, 0x4C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _0803B748
|
|
b _0803B8B2
|
|
_0803B748:
|
|
ldr r0, [r4]
|
|
adds r0, 0x4C
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B710
|
|
_0803B756:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0803B770
|
|
b _0803B8B2
|
|
_0803B770:
|
|
str r0, [sp]
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B786
|
|
b _0803B8B2
|
|
_0803B786:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0xD9
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0803B7DA
|
|
ldr r5, =gUnknown_0202407E
|
|
adds r4, r2, 0
|
|
_0803B79A:
|
|
ldr r0, [r4]
|
|
adds r0, 0xD9
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B7BC
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0803B7BC:
|
|
ldr r1, [r4]
|
|
adds r1, 0xD9
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _0803B8B2
|
|
ldr r0, [r4]
|
|
adds r0, 0xD9
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803B79A
|
|
_0803B7DA:
|
|
movs r5, 0
|
|
ldr r1, =gUnknown_0202449C
|
|
mov r8, r1
|
|
movs r7, 0x6
|
|
ldr r6, =gUnknown_0202421C
|
|
ldr r2, =gUnknown_02024274
|
|
movs r4, 0xFF
|
|
movs r3, 0
|
|
_0803B7EA:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r5, r0
|
|
adds r0, 0x5C
|
|
strb r7, [r0]
|
|
adds r1, r5, r6
|
|
ldrb r0, [r1]
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0803B7EA
|
|
movs r0, 0
|
|
bl sub_803D580
|
|
bl sub_803D6A0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x91
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_085CC23E
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803BE74
|
|
str r0, [r1]
|
|
bl sub_803F988
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_0803B834:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0803B834
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_0202406C
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r6, =gUnknown_02024474
|
|
ldr r7, =gBattleMoveFlags
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bge _0803B866
|
|
ldr r0, =gBattleMons
|
|
movs r4, 0x9
|
|
negs r4, r4
|
|
adds r1, r0, 0
|
|
adds r1, 0x50
|
|
_0803B856:
|
|
ldr r0, [r1]
|
|
ands r0, r4
|
|
str r0, [r1]
|
|
adds r1, 0x58
|
|
adds r5, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
blt _0803B856
|
|
_0803B866:
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r2]
|
|
movs r3, 0xD0
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r3, 0x1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
movs r1, 0
|
|
strb r1, [r6, 0x14]
|
|
ldr r0, [r2]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x3]
|
|
strb r1, [r7]
|
|
bl Random
|
|
ldr r1, =gUnknown_02024330
|
|
strh r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B8B2
|
|
bl sub_80A369C
|
|
ldr r0, =gUnknown_082DB8BE
|
|
bl b_call_bc_move_exec
|
|
_0803B8B2:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B628
|
|
|
|
thumb_func_start bc_8013B1C
|
|
bc_8013B1C: @ 803B904
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B994
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803B9BC
|
|
str r0, [r1]
|
|
ldr r3, =gUnknown_0202406C
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_0803B91C:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0803B91C
|
|
movs r4, 0
|
|
ldrb r3, [r3]
|
|
cmp r4, r3
|
|
bge _0803B96E
|
|
ldr r5, =gBattleMons
|
|
adds r6, r5, 0
|
|
adds r6, 0x4C
|
|
_0803B932:
|
|
movs r0, 0x58
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
adds r1, r2, r1
|
|
ldr r3, [r1]
|
|
subs r0, 0x61
|
|
ands r3, r0
|
|
str r3, [r1]
|
|
adds r2, r6
|
|
ldr r0, [r2]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803B964
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _0803B964
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl b_cancel_multi_turn_move_maybe
|
|
_0803B964:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0803B932
|
|
_0803B96E:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r2]
|
|
movs r3, 0xD0
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r3, 0x1
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, =gBattleMoveFlags
|
|
strb r1, [r0]
|
|
_0803B994:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_8013B1C
|
|
|
|
thumb_func_start sub_803B9BC
|
|
sub_803B9BC: @ 803B9BC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r0, 0x1
|
|
bl sub_803D580
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803B9EA
|
|
bl sub_80401D0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B9DE
|
|
b _0803BB78
|
|
_0803B9DE:
|
|
bl sub_8040924
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803B9EA
|
|
b _0803BB78
|
|
_0803B9EA:
|
|
bl sub_8041728
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0803B9F8
|
|
b _0803BB78
|
|
_0803B9F8:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
bl sub_8041364
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0803BA0E
|
|
b _0803BB78
|
|
_0803BA0E:
|
|
movs r0, 0
|
|
bl sub_803D580
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffdff
|
|
ands r0, r1
|
|
ldr r1, =0xfff7ffff
|
|
ands r0, r1
|
|
ldr r1, =0xffbfffff
|
|
ands r0, r1
|
|
ldr r1, =0xffefffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x18]
|
|
strb r4, [r0, 0x19]
|
|
strb r4, [r0, 0x14]
|
|
ldr r0, =gBattleMoveDamage
|
|
str r4, [r0]
|
|
ldr r0, =gBattleMoveFlags
|
|
strb r4, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
adds r0, r1, 0x4
|
|
_0803BA40:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0803BA40
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803BA98
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_bs_exec
|
|
str r0, [r1]
|
|
b _0803BB78
|
|
.pool
|
|
_0803BA98:
|
|
ldr r1, =gUnknown_03005D10
|
|
ldrb r0, [r1, 0x13]
|
|
ldr r2, =gUnknown_0202449C
|
|
mov r8, r2
|
|
cmp r0, 0xFE
|
|
bhi _0803BAB2
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x13]
|
|
ldr r1, [r2]
|
|
adds r1, 0xDA
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0803BAB2:
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_0202406C
|
|
ldr r0, =gUnknown_02024210
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_085CC23E
|
|
mov r9, r1
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
bge _0803BAE0
|
|
ldr r7, =gUnknown_0202421C
|
|
movs r6, 0xFF
|
|
movs r5, 0
|
|
ldr r3, =gUnknown_02024274
|
|
_0803BACC:
|
|
adds r1, r2, r7
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
strh r5, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
ldrb r1, [r4]
|
|
cmp r2, r1
|
|
blt _0803BACC
|
|
_0803BAE0:
|
|
movs r2, 0
|
|
ldr r3, =gUnknown_0202449C
|
|
movs r1, 0x6
|
|
_0803BAE6:
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
adds r0, 0x5C
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _0803BAE6
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, 0x91
|
|
mov r2, r12
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803BE74
|
|
str r0, [r1]
|
|
bl Random
|
|
ldr r1, =gUnknown_02024330
|
|
strh r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803BB5C
|
|
ldr r0, =gUnknown_082DB881
|
|
bl b_call_bc_move_exec
|
|
b _0803BB78
|
|
.pool
|
|
_0803BB5C:
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803BB78
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xDA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803BB78
|
|
ldr r0, =gUnknown_082DB8BE
|
|
bl b_call_bc_move_exec
|
|
_0803BB78:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803B9BC
|
|
|
|
thumb_func_start sub_803BB88
|
|
sub_803BB88: @ 803BB88
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803BBB8
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x7]
|
|
b _0803BBC2
|
|
.pool
|
|
_0803BBB8:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_0803BBC2:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
cmp r2, 0x25
|
|
bne _0803BBD0
|
|
b _0803BD4C
|
|
_0803BBD0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803BBDE
|
|
b _0803BD4C
|
|
_0803BBDE:
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x32
|
|
bne _0803BBF2
|
|
b _0803BD4C
|
|
_0803BBF2:
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _0803BC86
|
|
movs r7, 0
|
|
_0803BC08:
|
|
lsrs r4, r7, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _0803BC2C
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
adds r0, r1
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x17
|
|
bne _0803BC2C
|
|
b _0803BD54
|
|
_0803BC2C:
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _0803BC76
|
|
ldr r3, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
beq _0803BC76
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0803BC76
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0803BC76
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x47
|
|
bne _0803BC76
|
|
b _0803BD70
|
|
_0803BC76:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r7, r0
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0803BC08
|
|
_0803BC86:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
movs r2, 0x2A
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _0803BCF8
|
|
ldr r6, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r1, r0, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
beq _0803BCBE
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _0803BCF8
|
|
_0803BCBE:
|
|
ldr r0, =gUnknown_02024474
|
|
subs r1, r5, 0x1
|
|
strb r1, [r0, 0x17]
|
|
ldr r2, =gUnknown_0202420A
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r0, r6
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _0803BD90
|
|
.pool
|
|
_0803BCF8:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803BD22
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803BD40
|
|
_0803BD22:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x1
|
|
b _0803BD92
|
|
.pool
|
|
_0803BD40:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803BD8C
|
|
_0803BD4C:
|
|
movs r0, 0
|
|
b _0803BD92
|
|
.pool
|
|
_0803BD54:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r5, [r0, 0x17]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _0803BD90
|
|
.pool
|
|
_0803BD70:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r5, [r0, 0x17]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _0803BD90
|
|
.pool
|
|
_0803BD8C:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
_0803BD90:
|
|
strb r0, [r1, 0x5]
|
|
_0803BD92:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_803BB88
|
|
|
|
thumb_func_start sub_803BDA0
|
|
sub_803BDA0: @ 803BDA0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0202406E
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_0203CF00
|
|
mov r12, r1
|
|
ldr r7, =gUnknown_0202449C
|
|
lsls r0, r5, 1
|
|
adds r4, r0, r5
|
|
adds r6, r0, 0
|
|
_0803BDBC:
|
|
mov r0, r12
|
|
adds r2, r3, r0
|
|
ldr r1, [r7]
|
|
adds r0, r4, r3
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0803BDBC
|
|
mov r1, r8
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r7, =gUnknown_0202449C
|
|
ldr r0, [r7]
|
|
adds r0, r5, r0
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_81B8FB0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803BE4C
|
|
movs r3, 0
|
|
adds r4, r7, 0
|
|
adds r6, r5
|
|
movs r0, 0x2
|
|
adds r1, r5, 0
|
|
eors r1, r0
|
|
ldr r7, =gUnknown_0203CF00
|
|
lsls r0, r1, 1
|
|
adds r5, r0, r1
|
|
_0803BE1A:
|
|
ldr r0, [r4]
|
|
adds r1, r6, r3
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
adds r2, r3, r7
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r0, r5, r3
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0803BE1A
|
|
b _0803BE66
|
|
.pool
|
|
_0803BE4C:
|
|
movs r3, 0
|
|
adds r2, r6, r5
|
|
ldr r4, =gUnknown_0203CF00
|
|
_0803BE52:
|
|
ldr r0, [r7]
|
|
adds r1, r2, r3
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0803BE52
|
|
_0803BE66:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803BDA0
|
|
|
|
thumb_func_start sub_803BE74
|
|
sub_803BE74: @ 803BE74
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r0, =gUnknown_02024332
|
|
movs r1, 0
|
|
strb r1, [r0, 0x4]
|
|
ldr r0, =gUnknown_02024064
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
bl _0803CD12
|
|
.pool
|
|
_0803BE9C:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bls _0803BEB8
|
|
bl _0803CD04
|
|
_0803BEB8:
|
|
lsls r0, 2
|
|
ldr r1, =_0803BED0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803BED0:
|
|
.4byte _0803BEF4
|
|
.4byte _0803BF0C
|
|
.4byte _0803C02C
|
|
.4byte _0803C7D8
|
|
.4byte _0803CAD0
|
|
.4byte _0803CB84
|
|
.4byte _0803CBC8
|
|
.4byte _0803CBF4
|
|
.4byte _0803CC38
|
|
_0803BEF4:
|
|
bl sub_8185FD0
|
|
ldr r1, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
bl _0803CC20
|
|
.pool
|
|
_0803BF0C:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
adds r1, 0x5C
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803BF68
|
|
movs r1, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0803BF68
|
|
eors r5, r1
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, [r4]
|
|
adds r1, 0x91
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803BF68
|
|
ldr r4, =gUnknown_02024332
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _0803BF68
|
|
bl _0803CD04
|
|
_0803BF68:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x91
|
|
ldrb r3, [r0]
|
|
ldr r1, =gBitTable
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _0803BFD0
|
|
ldr r0, =gUnknown_0202421C
|
|
adds r0, r2, r0
|
|
movs r1, 0xD
|
|
strb r1, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803BFBC
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
bl _0803CD04
|
|
.pool
|
|
_0803BFBC:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
bl _0803CD04
|
|
.pool
|
|
_0803BFD0:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803BFF0
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803C00C
|
|
_0803BFF0:
|
|
ldr r0, =gUnknown_0202421C
|
|
adds r0, r2, r0
|
|
strb r3, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r4]
|
|
bl _0803CC72
|
|
.pool
|
|
_0803C00C:
|
|
ldr r0, =gUnknown_0202421C
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_02023864
|
|
ldrb r2, [r0, 0x1]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x12_a_bb
|
|
bl _0803CB68
|
|
.pool
|
|
_0803C02C:
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r5, [r6]
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803C058
|
|
bl _0803CD04
|
|
_0803C058:
|
|
ldr r4, =gUnknown_02023864
|
|
lsls r0, r5, 9
|
|
adds r4, 0x1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8184FBC
|
|
ldr r1, =gUnknown_0202421C
|
|
ldrb r0, [r6]
|
|
adds r1, r0, r1
|
|
lsls r0, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
lsls r0, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bls _0803C084
|
|
b _0803C6C4
|
|
_0803C084:
|
|
lsls r0, 2
|
|
ldr r1, =_0803C0A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803C0A8:
|
|
.4byte _0803C0DC
|
|
.4byte _0803C230
|
|
.4byte _0803C268
|
|
.4byte _0803C6C4
|
|
.4byte _0803C6C4
|
|
.4byte _0803C440
|
|
.4byte _0803C48C
|
|
.4byte _0803C6C4
|
|
.4byte _0803C6C4
|
|
.4byte _0803C6C4
|
|
.4byte _0803C6C4
|
|
.4byte _0803C6C4
|
|
.4byte _0803C4B4
|
|
_0803C0DC:
|
|
bl sub_80400C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803C134
|
|
ldr r0, =gUnknown_02024332
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
adds r1, r0
|
|
movs r4, 0
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r4, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x84
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r2]
|
|
adds r2, r1, r2
|
|
ldr r0, =gUnknown_02023864
|
|
lsls r1, 9
|
|
adds r0, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strb r0, [r2, 0xC]
|
|
bl _0803CD70
|
|
.pool
|
|
_0803C134:
|
|
ldr r3, =gUnknown_020242BC
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r2, [r0, 0x6]
|
|
cmp r2, 0
|
|
beq _0803C188
|
|
ldr r1, =gUnknown_02024274
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r2, [r5]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, r2, r1
|
|
adds r1, 0x80
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
bl _0803CD70
|
|
.pool
|
|
_0803C188:
|
|
add r2, sp, 0x4
|
|
ldr r3, =gBattleMons
|
|
movs r1, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x10]
|
|
ldrb r0, [r5]
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x12]
|
|
ldrb r0, [r5]
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x13]
|
|
movs r4, 0
|
|
mov r1, sp
|
|
adds r1, 0xC
|
|
str r1, [sp, 0x18]
|
|
add r2, sp, 0x10
|
|
mov r10, r2
|
|
mov r8, r3
|
|
adds r7, r5, 0
|
|
movs r6, 0x58
|
|
movs r0, 0xC
|
|
add r0, r8
|
|
mov r9, r0
|
|
add r5, sp, 0x4
|
|
_0803C1CA:
|
|
lsls r2, r4, 1
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
adds r0, r2, r0
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
ldr r1, [sp, 0x18]
|
|
adds r3, r1, r4
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
adds r0, r4, r0
|
|
mov r1, r8
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r2, r1
|
|
add r2, r9
|
|
ldrh r0, [r2]
|
|
add r1, r8
|
|
adds r1, 0x3B
|
|
ldrb r1, [r1]
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
bl CalcPPWithPPUps
|
|
mov r2, r10
|
|
adds r1, r2, r4
|
|
strb r0, [r1]
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0803C1CA
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
movs r0, 0
|
|
movs r2, 0
|
|
add r3, sp, 0x4
|
|
bl sub_8033E30
|
|
b _0803C42E
|
|
.pool
|
|
_0803C230:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x021f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803C23E
|
|
b _0803C48C
|
|
_0803C23E:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8185008
|
|
ldr r1, =gUnknown_02024220
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB879
|
|
b _0803C784
|
|
.pool
|
|
_0803C268:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r7, =gBattleMons
|
|
ldrb r2, [r5]
|
|
movs r6, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r6
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, =0x0400e000
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803C2B8
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803C2B8
|
|
ldr r0, =gUnknown_020242AC
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803C2EC
|
|
_0803C2B8:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x6
|
|
b _0803C400
|
|
.pool
|
|
_0803C2EC:
|
|
str r1, [sp]
|
|
movs r0, 0xC
|
|
adds r1, r2, 0
|
|
movs r2, 0x17
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0803C374
|
|
ldrb r1, [r5]
|
|
str r4, [sp]
|
|
movs r0, 0xC
|
|
movs r2, 0x47
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0803C33C
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0803C33C
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0803C33C
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
bne _0803C374
|
|
_0803C33C:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
movs r2, 0x2A
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0803C3B0
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
beq _0803C374
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _0803C3B0
|
|
_0803C374:
|
|
subs r1, r4, 0x1
|
|
lsls r1, 4
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, =gUnknown_0202420A
|
|
ldrb r3, [r0]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
adds r2, 0x60
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0x6
|
|
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
|
|
b _0803C42E
|
|
.pool
|
|
_0803C3B0:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x2
|
|
bne _0803C3D8
|
|
ldr r0, =gUnknown_0202421C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0803C3D8
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5C
|
|
b _0803C3EE
|
|
.pool
|
|
_0803C3D8:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x3
|
|
bne _0803C410
|
|
ldr r0, =gUnknown_0202421C
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x2
|
|
bne _0803C410
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5D
|
|
_0803C3EE:
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
adds r3, r0
|
|
str r3, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
_0803C400:
|
|
movs r3, 0
|
|
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
|
|
b _0803C42E
|
|
.pool
|
|
_0803C410:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x6
|
|
movs r3, 0
|
|
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
|
|
_0803C42E:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0803C6C4
|
|
.pool
|
|
_0803C440:
|
|
bl sub_806B8B0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803C44C
|
|
b _0803C6C4
|
|
_0803C44C:
|
|
ldr r1, =gUnknown_02024220
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DAB11
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r3]
|
|
adds r1, r0
|
|
movs r4, 0
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldrb r1, [r3]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r4, [r1]
|
|
ldrb r1, [r3]
|
|
b _0803C7A0
|
|
.pool
|
|
_0803C48C:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl sub_8033E6C
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0803C6C4
|
|
.pool
|
|
_0803C4B4:
|
|
ldr r4, =gUnknown_02024332
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x7
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r6, 0x2
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
bl sub_8185008
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gBattleMons
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r7, 0x58
|
|
muls r0, r7
|
|
adds r4, r1, 0
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803C532
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
muls r0, r7
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803C550
|
|
_0803C532:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x32_32_32_32
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
bl _0803CD70
|
|
.pool
|
|
_0803C550:
|
|
ldr r4, =gUnknown_0202421C
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0803C590
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
bl sub_8185008
|
|
b _0803C6AE
|
|
.pool
|
|
_0803C590:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0803C5B6
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
b _0803C668
|
|
_0803C5B6:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803C628
|
|
ldr r4, =gUnknown_0202433C
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _0803C616
|
|
ldr r4, =gUnknown_020242BC
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
beq _0803C628
|
|
_0803C616:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r6
|
|
b _0803C668
|
|
.pool
|
|
_0803C628:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803C690
|
|
ldr r4, =gUnknown_0202421C
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803C690
|
|
ldr r1, =gRngValue
|
|
ldr r0, =gUnknown_0203BD30
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
eors r0, r5
|
|
_0803C668:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_8185008
|
|
b _0803C6AE
|
|
.pool
|
|
_0803C690:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl sub_8185008
|
|
_0803C6AE:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x32_32_32_32
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0803CD70
|
|
.pool
|
|
_0803C6C4:
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r2, [r1]
|
|
movs r5, 0x8
|
|
adds r0, r2, 0
|
|
ands r0, r5
|
|
adds r3, r1, 0
|
|
cmp r0, 0
|
|
beq _0803C720
|
|
ldr r0, =0x043f0100
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0803C720
|
|
ldr r0, =gUnknown_02023864
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _0803C720
|
|
ldr r1, =gUnknown_02024220
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB9BA
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
movs r3, 0
|
|
strb r5, [r0]
|
|
b _0803C792
|
|
.pool
|
|
_0803C720:
|
|
ldr r0, [r3]
|
|
ldr r1, =0x0200000a
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
bne _0803C760
|
|
ldr r0, =gUnknown_02023864
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _0803C760
|
|
ldr r0, =gUnknown_082DAAFE
|
|
bl b_call_bc_move_exec
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
b _0803CC20
|
|
.pool
|
|
_0803C760:
|
|
bl sub_803BB88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803C7C4
|
|
ldr r0, =gUnknown_02023864
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _0803C7C4
|
|
ldr r1, =gUnknown_02024220
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DAB0B
|
|
_0803C784:
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r4]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
_0803C792:
|
|
ldrb r1, [r4]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r3, [r1]
|
|
ldrb r1, [r4]
|
|
_0803C7A0:
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x84
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0803CD70
|
|
.pool
|
|
_0803C7C4:
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803C7D8:
|
|
ldr r4, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r5, [r3]
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r0, r2, 4
|
|
movs r1, 0xF0
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
lsls r1, r2, 8
|
|
orrs r0, r1
|
|
lsls r2, 12
|
|
orrs r0, r2
|
|
ldr r1, [r4]
|
|
ands r1, r0
|
|
adds r4, r3, 0
|
|
cmp r1, 0
|
|
beq _0803C804
|
|
b _0803CD04
|
|
_0803C804:
|
|
ldr r1, =gUnknown_0202421C
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x9
|
|
bls _0803C812
|
|
b _0803CD04
|
|
_0803C812:
|
|
lsls r0, 2
|
|
ldr r1, =_0803C830
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803C830:
|
|
.4byte _0803C858
|
|
.4byte _0803C99C
|
|
.4byte _0803C9D4
|
|
.4byte _0803CA0A
|
|
.4byte _0803CA2C
|
|
.4byte _0803CA40
|
|
.4byte _0803CA54
|
|
.4byte _0803CA84
|
|
.4byte _0803CA98
|
|
.4byte _0803CABC
|
|
_0803C858:
|
|
ldr r1, =gUnknown_02023864
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x3
|
|
blt _0803C88A
|
|
cmp r1, 0x9
|
|
ble _0803C878
|
|
cmp r1, 0xF
|
|
beq _0803C87E
|
|
b _0803C88A
|
|
.pool
|
|
_0803C878:
|
|
adds r0, r3, r2
|
|
strb r1, [r0]
|
|
b _0803CD70
|
|
_0803C87E:
|
|
adds r1, r3, r2
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
bl sub_803CDF8
|
|
b _0803CD70
|
|
_0803C88A:
|
|
movs r0, 0x2
|
|
bl sub_818603C
|
|
ldr r4, =gUnknown_02023864
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, 9
|
|
adds r5, r4, 0x2
|
|
adds r0, r1, r5
|
|
ldrb r2, [r0]
|
|
adds r7, r4, 0x3
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldr r0, =0x0000ffff
|
|
cmp r2, r0
|
|
bne _0803C8D0
|
|
ldr r0, =gUnknown_02024332
|
|
adds r0, r3, r0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
bl sub_8185008
|
|
b _0803CD04
|
|
.pool
|
|
_0803C8D0:
|
|
bl sub_803FB4C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803C91C
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8185008
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r6]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldrb r1, [r6]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x54
|
|
strb r3, [r1]
|
|
ldrb r0, [r6]
|
|
lsls r0, 9
|
|
adds r1, r4, 0x1
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0x84
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _0803CD70
|
|
.pool
|
|
_0803C91C:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803C942
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 9
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
bl sub_8184FBC
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 9
|
|
adds r1, r7
|
|
ldrb r1, [r1]
|
|
bl sub_8184FBC
|
|
_0803C942:
|
|
ldrb r0, [r6]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r1, [r4]
|
|
adds r1, r0, r1
|
|
adds r1, 0x80
|
|
lsls r0, 9
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024274
|
|
ldrb r2, [r6]
|
|
lsls r5, r2, 1
|
|
adds r5, r0
|
|
ldr r3, =gBattleMons
|
|
ldr r4, [r4]
|
|
adds r0, r2, r4
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
ldrb r0, [r6]
|
|
adds r4, r0, r4
|
|
lsls r0, 9
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0xC]
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r6]
|
|
b _0803CB72
|
|
.pool
|
|
_0803C99C:
|
|
ldr r2, =gUnknown_02023864
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r1, r4, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
cmp r3, 0
|
|
bne _0803C9BA
|
|
b _0803CC1C
|
|
_0803C9BA:
|
|
ldr r0, =gUnknown_02024208
|
|
strh r3, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r5]
|
|
b _0803CB72
|
|
.pool
|
|
_0803C9D4:
|
|
ldr r0, =gUnknown_02023864
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _0803CA04
|
|
ldr r0, =gUnknown_02024332
|
|
adds r0, r2, r0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
bl sub_8185008
|
|
b _0803CD04
|
|
.pool
|
|
_0803CA04:
|
|
bl sub_803CDF8
|
|
b _0803CB6E
|
|
_0803CA0A:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CA2C:
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CA40:
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CA54:
|
|
ldr r3, =gUnknown_02023864
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r4, [r0]
|
|
lsls r1, r4, 9
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
cmp r2, 0
|
|
bne _0803CA72
|
|
b _0803CC1C
|
|
_0803CA72:
|
|
ldr r1, =gUnknown_02024332
|
|
adds r1, r4, r1
|
|
b _0803CB74
|
|
.pool
|
|
_0803CA84:
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CA98:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CABC:
|
|
ldr r2, =gUnknown_02024332
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
b _0803CB74
|
|
.pool
|
|
_0803CAD0:
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r6, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803CAFA
|
|
b _0803CD04
|
|
_0803CAFA:
|
|
bl sub_803CDB8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x41
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0803CB3C
|
|
movs r1, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0803CB3C
|
|
adds r0, r5, 0
|
|
eors r0, r1
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r1, 0x91
|
|
ldrb r1, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803CB5C
|
|
_0803CB3C:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_8034464
|
|
b _0803CB66
|
|
.pool
|
|
_0803CB5C:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_8034464
|
|
_0803CB66:
|
|
ldr r4, =gUnknown_02024064
|
|
_0803CB68:
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803CB6E:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r4]
|
|
_0803CB72:
|
|
adds r1, r0
|
|
_0803CB74:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CB84:
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803CBAE
|
|
b _0803CD04
|
|
_0803CBAE:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x4]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CBC8:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r1, r2, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803CCB4
|
|
ldr r0, =gUnknown_02024332
|
|
adds r0, r2, r0
|
|
adds r1, 0x84
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CBF4:
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r4, [r0]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803CD04
|
|
_0803CC1C:
|
|
ldr r0, =gUnknown_02024332
|
|
adds r0, r4, r0
|
|
_0803CC20:
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CC38:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
adds r0, 0x54
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803CCB4
|
|
ldr r0, =gUnknown_02023864
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD
|
|
bne _0803CC94
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_0202421C
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
_0803CC72:
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CC94:
|
|
adds r0, r2, 0
|
|
movs r1, 0x1
|
|
bl sub_8185008
|
|
ldr r2, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
adds r2, r0, r2
|
|
ldr r1, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x84
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
b _0803CD04
|
|
.pool
|
|
_0803CCB4:
|
|
ldr r0, =gUnknown_0202420B
|
|
strb r2, [r0]
|
|
ldr r7, =gUnknown_02024214
|
|
ldr r6, =gUnknown_02024220
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r4, [r0]
|
|
str r4, [r7]
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r1, r2, 4
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
orrs r1, r2
|
|
lsls r0, r2, 8
|
|
orrs r1, r0
|
|
lsls r2, 12
|
|
orrs r1, r2
|
|
ldr r0, [r3]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803CCFA
|
|
ldr r0, =gUnknown_0831BD10
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
_0803CCFA:
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r7]
|
|
str r1, [r0]
|
|
_0803CD04:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
_0803CD12:
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5]
|
|
cmp r1, r0
|
|
bcs _0803CD1E
|
|
bl _0803BE9C
|
|
_0803CD1E:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x4]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
bne _0803CD70
|
|
movs r0, 0x1
|
|
bl sub_818603C
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803D2E8
|
|
str r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803CD70
|
|
movs r4, 0
|
|
ldrb r5, [r5]
|
|
cmp r4, r5
|
|
bge _0803CD70
|
|
_0803CD4A:
|
|
ldr r0, =gUnknown_0202421C
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0803CD66
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r1, r4, r1
|
|
adds r1, 0x5C
|
|
ldrb r1, [r1]
|
|
bl sub_80571DC
|
|
_0803CD66:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0803CD4A
|
|
_0803CD70:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803BE74
|
|
|
|
thumb_func_start sub_803CDB8
|
|
sub_803CDB8: @ 803CDB8
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r2, [r0]
|
|
adds r5, r0, 0
|
|
cmp r3, r2
|
|
bge _0803CDDA
|
|
ldr r4, =gUnknown_02024332
|
|
_0803CDCA:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _0803CDD4
|
|
adds r3, 0x1
|
|
_0803CDD4:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _0803CDCA
|
|
_0803CDDA:
|
|
adds r0, r3, 0x1
|
|
ldrb r5, [r5]
|
|
cmp r0, r5
|
|
beq _0803CDF0
|
|
movs r0, 0
|
|
b _0803CDF2
|
|
.pool
|
|
_0803CDF0:
|
|
movs r0, 0x1
|
|
_0803CDF2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_803CDB8
|
|
|
|
thumb_func_start sub_803CDF8
|
|
sub_803CDF8: @ 803CDF8
|
|
push {r4-r7,lr}
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r1, [r6]
|
|
adds r1, r0, r1
|
|
adds r1, 0x5C
|
|
ldr r4, =gUnknown_02023864
|
|
lsls r0, 9
|
|
adds r2, r4, 0x1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl sub_8184FBC
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0x42
|
|
bne _0803CEC6
|
|
ldrb r0, [r7]
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r2, [r1]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
lsls r0, 9
|
|
adds r5, r4, 0x2
|
|
adds 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]
|
|
ldr r2, [r6]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x61
|
|
lsls r1, 9
|
|
adds r4, 0x3
|
|
mov r12, r4
|
|
add r1, r12
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r2, [r1]
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
eors r0, r4
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
ands r3, r0
|
|
lsrs r3, 4
|
|
ldrb r0, [r1]
|
|
orrs r3, r0
|
|
strb r3, [r1]
|
|
ldrb r0, [r7]
|
|
eors r4, r0
|
|
ldr r0, [r6]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
adds r1, r0
|
|
adds r1, 0x62
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
_0803CEC6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803CDF8
|
|
|
|
thumb_func_start sub_803CEDC
|
|
sub_803CEDC: @ 803CEDC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_0202407A
|
|
adds r4, r0, r2
|
|
ldrb r5, [r4]
|
|
adds r2, r1, r2
|
|
ldrb r3, [r2]
|
|
strb r3, [r4]
|
|
strb r5, [r2]
|
|
ldr r2, =gUnknown_0202407E
|
|
adds r0, r2
|
|
ldrb r5, [r0]
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
strb r2, [r0]
|
|
strb r5, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803CEDC
|
|
|
|
thumb_func_start b_first_side
|
|
b_first_side: @ 803CF10
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803CFD8
|
|
ldr r1, [sp, 0x8]
|
|
str r1, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803CFD8
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r3, [r0]
|
|
cmp r3, 0x21
|
|
bne _0803CF7C
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803CF8C
|
|
_0803CF7C:
|
|
cmp r3, 0x22
|
|
bne _0803CF98
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803CF98
|
|
_0803CF8C:
|
|
movs r3, 0x2
|
|
b _0803CF9A
|
|
.pool
|
|
_0803CF98:
|
|
movs r3, 0x1
|
|
_0803CF9A:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r2, =gBattleMons
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x21
|
|
bne _0803CFBA
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803CFCA
|
|
_0803CFBA:
|
|
cmp r2, 0x22
|
|
bne _0803CFDA
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803CFDA
|
|
_0803CFCA:
|
|
movs r7, 0x2
|
|
b _0803CFDC
|
|
.pool
|
|
_0803CFD8:
|
|
movs r3, 0x1
|
|
_0803CFDA:
|
|
movs r7, 0x1
|
|
_0803CFDC:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x6]
|
|
muls r3, r0
|
|
ldr r2, =gUnknown_08329D2E
|
|
movs r1, 0x1B
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
muls r0, r3
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl __divsi3
|
|
mov r8, r0
|
|
ldrh r0, [r4, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803D02C
|
|
ldr r1, =gUnknown_02024404
|
|
mov r3, r9
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x7]
|
|
ldrb r5, [r0, 0x1A]
|
|
b _0803D040
|
|
.pool
|
|
_0803D02C:
|
|
ldrh r0, [r4, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrh r0, [r4, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0803D040:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x023f0102
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803D074
|
|
ldr r0, =0x00000869
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803D074
|
|
mov r0, r9
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803D074
|
|
movs r0, 0x6E
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
mov r8, r0
|
|
_0803D074:
|
|
cmp r6, 0x18
|
|
bne _0803D07E
|
|
mov r2, r8
|
|
lsrs r2, 1
|
|
mov r8, r2
|
|
_0803D07E:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803D09C
|
|
mov r0, r8
|
|
lsrs r0, 2
|
|
mov r8, r0
|
|
_0803D09C:
|
|
cmp r6, 0x1A
|
|
bne _0803D0B8
|
|
ldr r0, =gUnknown_02024330
|
|
ldrh r4, [r0]
|
|
lsls r0, r5, 16
|
|
subs r0, r5
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
bge _0803D0B8
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r8, r1
|
|
_0803D0B8:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x6]
|
|
adds r3, r0, 0
|
|
muls r3, r7
|
|
ldr r2, =gUnknown_08329D2E
|
|
movs r1, 0x1B
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
muls r0, r3
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
bl __divsi3
|
|
adds r7, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803D118
|
|
ldr r1, =gUnknown_02024404
|
|
mov r3, r10
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x7]
|
|
ldrb r5, [r0, 0x1A]
|
|
b _0803D12C
|
|
.pool
|
|
_0803D118:
|
|
ldrh r0, [r4, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrh r0, [r4, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0803D12C:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x023f0102
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803D15C
|
|
ldr r0, =0x00000869
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803D15C
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803D15C
|
|
movs r0, 0x6E
|
|
muls r0, r7
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r7, r0, 0
|
|
_0803D15C:
|
|
cmp r6, 0x18
|
|
bne _0803D162
|
|
lsrs r7, 1
|
|
_0803D162:
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803D17E
|
|
lsrs r7, 2
|
|
_0803D17E:
|
|
cmp r6, 0x1A
|
|
bne _0803D198
|
|
ldr r0, =gUnknown_02024330
|
|
ldrh r4, [r0]
|
|
lsls r0, r5, 16
|
|
subs r0, r5
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
bge _0803D198
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
_0803D198:
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
beq _0803D1B8
|
|
movs r3, 0
|
|
b _0803D254
|
|
.pool
|
|
_0803D1B8:
|
|
ldr r0, =gUnknown_0202421C
|
|
mov r3, r9
|
|
adds r1, r3, r0
|
|
ldrb r1, [r1]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _0803D208
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0803D1E0
|
|
movs r3, 0xA5
|
|
b _0803D20A
|
|
.pool
|
|
_0803D1E0:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
add r0, r9
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
mov r3, r9
|
|
muls r3, r1
|
|
adds r1, r3, 0
|
|
adds r0, r1
|
|
ldr r1, =gBattleMons
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r3, [r0]
|
|
b _0803D20A
|
|
.pool
|
|
_0803D208:
|
|
movs r3, 0
|
|
_0803D20A:
|
|
mov r1, r10
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803D254
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0803D22C
|
|
movs r2, 0xA5
|
|
b _0803D256
|
|
.pool
|
|
_0803D22C:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
mov r2, r10
|
|
muls r2, r1
|
|
adds r1, r2, 0
|
|
adds r0, r1
|
|
ldr r1, =gBattleMons
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
b _0803D256
|
|
.pool
|
|
_0803D254:
|
|
movs r2, 0
|
|
_0803D256:
|
|
ldr r4, =gBattleMoves
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x7
|
|
ldrsb r1, [r0, r1]
|
|
lsls r3, r2, 1
|
|
cmp r1, 0
|
|
bne _0803D27A
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x7]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
beq _0803D2B8
|
|
_0803D27A:
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x7]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
bne _0803D2AE
|
|
cmp r8, r7
|
|
bne _0803D2A4
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803D2A4
|
|
movs r3, 0x2
|
|
b _0803D2D4
|
|
.pool
|
|
_0803D2A4:
|
|
cmp r8, r7
|
|
bcs _0803D2D6
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
b _0803D2D6
|
|
_0803D2AE:
|
|
cmp r1, r0
|
|
bge _0803D2D6
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
b _0803D2D6
|
|
_0803D2B8:
|
|
cmp r8, r7
|
|
bne _0803D2CE
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803D2CE
|
|
movs r2, 0x2
|
|
str r2, [sp, 0x8]
|
|
b _0803D2D6
|
|
_0803D2CE:
|
|
cmp r8, r7
|
|
bcs _0803D2D6
|
|
movs r3, 0x1
|
|
_0803D2D4:
|
|
str r3, [sp, 0x8]
|
|
_0803D2D6:
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end b_first_side
|
|
|
|
thumb_func_start sub_803D2E8
|
|
sub_803D2E8: @ 803D2E8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r3, 0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803D354
|
|
ldr r0, =gUnknown_02024064
|
|
strb r3, [r0]
|
|
ldr r4, =gUnknown_0202406C
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
cmp r3, r0
|
|
bcc _0803D310
|
|
b _0803D54A
|
|
_0803D310:
|
|
ldr r7, =gUnknown_0202407A
|
|
ldr r6, =gUnknown_0202421C
|
|
mov r2, r8
|
|
ldr r5, =gUnknown_0202407E
|
|
_0803D318:
|
|
adds r1, r3, r7
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, r3, r5
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r4]
|
|
cmp r0, r1
|
|
bcc _0803D318
|
|
b _0803D54A
|
|
.pool
|
|
_0803D354:
|
|
movs r2, 0x2
|
|
ands r1, r2
|
|
cmp r1, 0
|
|
beq _0803D3A4
|
|
ldr r0, =gUnknown_02024064
|
|
strb r3, [r0]
|
|
ldr r1, =gUnknown_0202406C
|
|
mov r8, r0
|
|
adds r2, r1, 0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcs _0803D3C0
|
|
ldr r0, =gUnknown_0202421C
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x3
|
|
beq _0803D3BE
|
|
_0803D376:
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
adds r0, 0x1
|
|
strb r0, [r7]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _0803D3C0
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0803D376
|
|
b _0803D3BE
|
|
.pool
|
|
_0803D3A4:
|
|
ldr r1, =gUnknown_0202421C
|
|
ldrb r0, [r1]
|
|
ldr r4, =gUnknown_02024064
|
|
mov r8, r4
|
|
cmp r0, 0x3
|
|
bne _0803D3B4
|
|
strb r3, [r4]
|
|
movs r3, 0x5
|
|
_0803D3B4:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x3
|
|
bne _0803D3C0
|
|
mov r7, r8
|
|
strb r2, [r7]
|
|
_0803D3BE:
|
|
movs r3, 0x5
|
|
_0803D3C0:
|
|
cmp r3, 0x5
|
|
bne _0803D448
|
|
ldr r6, =gUnknown_0202407A
|
|
ldr r1, =gUnknown_0202421C
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r6]
|
|
ldr r2, =gUnknown_0202407E
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
strb r0, [r2]
|
|
movs r3, 0x1
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
ldr r7, =gUnknown_03005D04
|
|
mov r10, r7
|
|
ldr r0, =bc_80154A0
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_0202449C
|
|
mov r9, r1
|
|
ldr r7, =gUnknown_0202406C
|
|
ldrb r7, [r7]
|
|
cmp r5, r7
|
|
bge _0803D41A
|
|
adds r7, r6, 0
|
|
adds r6, r4, 0
|
|
adds r4, r2, 0
|
|
ldr r2, =gUnknown_0202406C
|
|
_0803D3FC:
|
|
mov r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _0803D412
|
|
adds r1, r3, r7
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, r4
|
|
strb r5, [r0]
|
|
adds r3, 0x1
|
|
_0803D412:
|
|
adds r5, 0x1
|
|
ldrb r1, [r2]
|
|
cmp r5, r1
|
|
blt _0803D3FC
|
|
_0803D41A:
|
|
mov r2, r12
|
|
mov r3, r10
|
|
str r2, [r3]
|
|
mov r4, r9
|
|
ldr r0, [r4]
|
|
b _0803D554
|
|
.pool
|
|
_0803D448:
|
|
movs r0, 0
|
|
mov r7, r8
|
|
strb r0, [r7]
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0803D48E
|
|
ldr r6, =gUnknown_0202421C
|
|
mov r2, r8
|
|
ldr r5, =gUnknown_0202407A
|
|
ldr r4, =gUnknown_0202407E
|
|
_0803D45E:
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0803D47C
|
|
adds r0, r3, r5
|
|
strb r1, [r0]
|
|
adds r1, r3, r4
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
_0803D47C:
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803D45E
|
|
_0803D48E:
|
|
movs r0, 0
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldr r4, =gUnknown_0202406C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0803D4D2
|
|
ldr r6, =gUnknown_0202421C
|
|
ldr r5, =gUnknown_0202407A
|
|
ldr r4, =gUnknown_0202407E
|
|
_0803D4A2:
|
|
ldrb r0, [r2]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _0803D4C0
|
|
adds r0, r3, r5
|
|
strb r1, [r0]
|
|
adds r1, r3, r4
|
|
mov r7, r8
|
|
ldrb r0, [r7]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
_0803D4C0:
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803D4A2
|
|
_0803D4D2:
|
|
movs r5, 0
|
|
b _0803D540
|
|
.pool
|
|
_0803D4E8:
|
|
adds r4, r5, 0x1
|
|
adds r7, r4, 0
|
|
ldrb r1, [r1]
|
|
cmp r7, r1
|
|
bge _0803D53E
|
|
ldr r6, =gUnknown_0202407A
|
|
lsls r2, r5, 24
|
|
mov r8, r2
|
|
_0803D4F8:
|
|
ldr r0, =gUnknown_0202407E
|
|
adds r1, r5, r0
|
|
ldrb r3, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r5, r6
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x1
|
|
beq _0803D534
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0803D534
|
|
cmp r2, 0x2
|
|
beq _0803D534
|
|
cmp r0, 0x2
|
|
beq _0803D534
|
|
adds r0, r3, 0
|
|
movs r2, 0
|
|
bl b_first_side
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803D534
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
mov r3, r8
|
|
lsrs r0, r3, 24
|
|
bl sub_803CEDC
|
|
_0803D534:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0803D4F8
|
|
_0803D53E:
|
|
adds r5, r7, 0
|
|
_0803D540:
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _0803D4E8
|
|
_0803D54A:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_80154A0
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
_0803D554:
|
|
adds r0, 0x48
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803D2E8
|
|
|
|
thumb_func_start sub_803D580
|
|
sub_803D580: @ 803D580
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r2, [r0]
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
beq _0803D678
|
|
ldr r7, =gUnknown_0202433C
|
|
adds r6, r5, 0
|
|
ldr r0, =gUnknown_020240D4
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_020242BC
|
|
mov r8, r1
|
|
mov r10, r8
|
|
_0803D5AE:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _0803D5EC
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r1, 4
|
|
adds r1, r7
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
b _0803D648
|
|
.pool
|
|
_0803D5EC:
|
|
ldrb r0, [r6]
|
|
lsls r0, 4
|
|
adds r2, r0, r7
|
|
movs r1, 0
|
|
mov r4, r10
|
|
movs r3, 0
|
|
_0803D5F8:
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0xF
|
|
bls _0803D5F8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x16]
|
|
cmp r0, 0
|
|
beq _0803D616
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x16]
|
|
_0803D616:
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x19]
|
|
cmp r0, 0
|
|
beq _0803D648
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x19]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0
|
|
bne _0803D648
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
add r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, =0xffbfffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_0803D648:
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
bne _0803D666
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
add r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfeffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_0803D666:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803D5AE
|
|
_0803D678:
|
|
movs r0, 0
|
|
ldr r2, =gUnknown_02024294
|
|
strb r0, [r2, 0x8]
|
|
strb r0, [r2, 0x14]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803D580
|
|
|
|
thumb_func_start sub_803D6A0
|
|
sub_803D6A0: @ 803D6A0
|
|
push {r4-r6,lr}
|
|
ldr r2, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _0803D6DE
|
|
adds r3, r2, 0
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_0202437C
|
|
_0803D6B8:
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
movs r1, 0
|
|
_0803D6C4:
|
|
adds r0, r2, r1
|
|
strb r4, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x13
|
|
bls _0803D6C4
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcc _0803D6B8
|
|
_0803D6DE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803D6A0
|
|
|
|
thumb_func_start bc_80154A0
|
|
bc_80154A0: @ 803D6F0
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803D7AE
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r0, 0x48
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
mov r12, r2
|
|
adds r6, r1, 0
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcs _0803D7AE
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r4, =gUnknown_0202420B
|
|
movs r7, 0x84
|
|
lsls r7, 1
|
|
_0803D71C:
|
|
ldr r1, [r2]
|
|
adds r1, 0x48
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
strb r0, [r5]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024274
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
bne _0803D7A0
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803D7A0
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x18]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0803D7A0
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _0803D7A0
|
|
ldr r0, =gUnknown_082DB1FF
|
|
bl b_call_bc_move_exec
|
|
b _0803D7E8
|
|
.pool
|
|
_0803D7A0:
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0x48
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r6]
|
|
cmp r0, r1
|
|
bcc _0803D71C
|
|
_0803D7AE:
|
|
bl b_clear_atk_up_if_hit_flag_unless_enraged
|
|
ldr r1, =gUnknown_02024082
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
ldr r0, =gUnknown_0202407A
|
|
movs r3, 0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024400
|
|
movs r2, 0
|
|
strh r3, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
strb r2, [r0, 0x13]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_bs_exec
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x3]
|
|
strb r2, [r0, 0x4]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r2, [r0, 0x16]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
_0803D7E8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_80154A0
|
|
|
|
thumb_func_start bc_bs_exec
|
|
bc_bs_exec: @ 803D818
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_0202433A
|
|
ldrb r0, [r6]
|
|
ldr r2, =gUnknown_02024083
|
|
cmp r0, 0
|
|
beq _0803D828
|
|
movs r0, 0xC
|
|
strb r0, [r2]
|
|
_0803D828:
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
adds r0, 0x4B
|
|
ldr r4, =gUnknown_02024082
|
|
ldrb r1, [r4]
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0831BC0C
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _0803D894
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xffefffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r3, =gUnknown_03005D04
|
|
ldr r2, =gUnknown_0831BC44
|
|
ldrb r1, [r6]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
b _0803D8AC
|
|
.pool
|
|
_0803D894:
|
|
ldr r0, [r5]
|
|
adds r0, 0x4B
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _0803D8AC
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffdff
|
|
ands r0, r1
|
|
ldr r1, =0xfff7ffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_0803D8AC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_bs_exec
|
|
|
|
thumb_func_start sub_803D8C0
|
|
sub_803D8C0: @ 803D8C0
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r2, [r1]
|
|
ldr r0, =0x02000002
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803D920
|
|
ldr r1, =gUnknown_020375F0
|
|
ldr r4, =gUnknown_0202433A
|
|
ldrb r0, [r4]
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022F58
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_0202420B
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAA35
|
|
str r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _0803DAA4
|
|
.pool
|
|
_0803D920:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803D95C
|
|
ldr r0, =0x043f0900
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0803D95C
|
|
bl sub_805EA60
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAA87
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x000003fe
|
|
cmp r1, r0
|
|
bne _0803D946
|
|
b _0803DA8A
|
|
_0803D946:
|
|
b _0803DA94
|
|
.pool
|
|
_0803D95C:
|
|
ldr r0, [r1]
|
|
movs r1, 0xA
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
beq _0803D968
|
|
b _0803DA9E
|
|
_0803D968:
|
|
bl sub_805EA60
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DA92D
|
|
str r0, [r1]
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
subs r0, 0x3
|
|
cmp r0, 0x32
|
|
bls _0803D98A
|
|
b _0803DA94
|
|
_0803D98A:
|
|
lsls r0, 2
|
|
ldr r1, =_0803D9A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803D9A8:
|
|
.4byte _0803DA80
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA80
|
|
.4byte _0803DA94
|
|
.4byte _0803DA80
|
|
.4byte _0803DA94
|
|
.4byte _0803DA80
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA74
|
|
.4byte _0803DA8A
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA74
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA80
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA94
|
|
.4byte _0803DA80
|
|
_0803DA74:
|
|
ldr r0, =0x00000163
|
|
bl song_play_for_text
|
|
b _0803DAA4
|
|
.pool
|
|
_0803DA80:
|
|
movs r0, 0xD4
|
|
lsls r0, 1
|
|
bl song_play_for_text
|
|
b _0803DAA4
|
|
_0803DA8A:
|
|
movs r0, 0xB1
|
|
lsls r0, 1
|
|
bl song_play_for_text
|
|
b _0803DAA4
|
|
_0803DA94:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
bl song_play_for_text
|
|
b _0803DAA4
|
|
_0803DA9E:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DA96A
|
|
str r0, [r1]
|
|
_0803DAA4:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803DCD8
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803D8C0
|
|
|
|
thumb_func_start sub_803DAC0
|
|
sub_803DAC0: @ 803DAC0
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x02000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803DB7C
|
|
ldr r0, =0x003f0100
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803DB44
|
|
ldr r3, =gUnknown_0202433A
|
|
ldrb r2, [r3]
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803DB2C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB9C8
|
|
str r0, [r1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000ca9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0803DB82
|
|
.pool
|
|
_0803DB2C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAA0B
|
|
str r0, [r1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
b _0803DB82
|
|
.pool
|
|
_0803DB44:
|
|
ldr r1, =gUnknown_02022F58
|
|
ldr r4, =gUnknown_0202433A
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_0202420B
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAA35
|
|
str r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _0803DB82
|
|
.pool
|
|
_0803DB7C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DA96D
|
|
str r0, [r1]
|
|
_0803DB82:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803DCD8
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803DAC0
|
|
|
|
thumb_func_start sub_803DBA0
|
|
sub_803DBA0: @ 803DBA0
|
|
push {lr}
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r2, [r1]
|
|
ldr r0, =0x003f0100
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803DBFC
|
|
movs r0, 0x8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0803DBFC
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB9C1
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000ca9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0803DC6A
|
|
.pool
|
|
_0803DBFC:
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803DC24
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB9C1
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
b _0803DC6A
|
|
.pool
|
|
_0803DC24:
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
lsrs r0, 30
|
|
cmp r0, 0x1
|
|
beq _0803DC54
|
|
cmp r0, 0x2
|
|
beq _0803DC64
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAAF0
|
|
b _0803DC68
|
|
.pool
|
|
_0803DC54:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAADB
|
|
b _0803DC68
|
|
.pool
|
|
_0803DC64:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAAE9
|
|
_0803DC68:
|
|
str r0, [r1]
|
|
_0803DC6A:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803DCD8
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803DBA0
|
|
|
|
thumb_func_start bc_80158BC
|
|
bc_80158BC: @ 803DC84
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x2]
|
|
ldr r3, =gUnknown_0202406E
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAAF7
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803DCD8
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end bc_80158BC
|
|
|
|
thumb_func_start sub_803DCD8
|
|
sub_803DCD8: @ 803DCD8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_02024083
|
|
ldrb r0, [r0]
|
|
subs r0, 0xB
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _0803DCEE
|
|
b _0803DE10
|
|
_0803DCEE:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x023f0b92
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803DDB6
|
|
ldr r2, =gUnknown_02024064
|
|
strb r1, [r2]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0803DDB2
|
|
adds r5, r2, 0
|
|
ldr r0, =gUnknown_0202406E
|
|
mov r8, r0
|
|
movs r7, 0x64
|
|
ldr r6, =gPlayerParty
|
|
_0803DD10:
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803DDA0
|
|
ldr r4, =gUnknown_03005D10
|
|
ldrh r0, [r4, 0x6]
|
|
cmp r0, 0
|
|
bne _0803DD74
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
strh r0, [r4, 0x6]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
adds r2, 0x8
|
|
bl GetMonData
|
|
b _0803DDA0
|
|
.pool
|
|
_0803DD74:
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
strh r0, [r4, 0x26]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
adds r2, 0x14
|
|
bl GetMonData
|
|
_0803DDA0:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803DD10
|
|
_0803DDB2:
|
|
bl sub_80EC728
|
|
_0803DDB6:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x023f0b9a
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803DDD2
|
|
ldr r0, =gUnknown_03005D10
|
|
ldrb r1, [r0, 0x5]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803DDD2
|
|
bl sub_80EE184
|
|
_0803DDD2:
|
|
bl sub_8186444
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
movs r0, 0x5
|
|
bl sub_80A2F50
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =sub_803DE40
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_030061E8
|
|
ldr r0, =sub_8038420
|
|
str r0, [r1]
|
|
b _0803DE2A
|
|
.pool
|
|
_0803DE10:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803DE2A
|
|
ldr r1, =gUnknown_0831BD10
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_0803DE2A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803DCD8
|
|
|
|
thumb_func_start sub_803DE40
|
|
sub_803DE40: @ 803DE40
|
|
push {lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803DE86
|
|
bl ResetAllObjectData
|
|
ldr r0, =gUnknown_03005D54
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803DE62
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0803DE80
|
|
_0803DE62:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =c4_overworld
|
|
str r0, [r1]
|
|
b _0803DEA2
|
|
.pool
|
|
_0803DE80:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_evolution_cutscene
|
|
str r0, [r1]
|
|
_0803DE86:
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803DEA2
|
|
bl sub_805F094
|
|
bl sub_8057028
|
|
bl dp11_free
|
|
_0803DEA2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803DE40
|
|
|
|
thumb_func_start bc_evolution_cutscene
|
|
bc_evolution_cutscene: @ 803DEB4
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_03005D54
|
|
ldrb r1, [r0]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
beq _0803DF2E
|
|
_0803DEC0:
|
|
movs r6, 0
|
|
_0803DEC2:
|
|
ldrb r2, [r3]
|
|
ldr r0, =gBitTable
|
|
lsls r1, r6, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803DF20
|
|
bics r2, r1
|
|
strb r2, [r3]
|
|
movs r0, 0x64
|
|
adds r1, r6, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _0803DF20
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gUnknown_03005D04
|
|
ldr r1, =sub_803DF48
|
|
str r1, [r0]
|
|
lsls r3, r6, 24
|
|
lsrs r3, 24
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl evolution_cutscene
|
|
b _0803DF34
|
|
.pool
|
|
_0803DF20:
|
|
adds r6, 0x1
|
|
ldr r3, =gUnknown_03005D54
|
|
cmp r6, 0x5
|
|
ble _0803DEC2
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _0803DEC0
|
|
_0803DF2E:
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =c4_overworld
|
|
str r0, [r1]
|
|
_0803DF34:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_evolution_cutscene
|
|
|
|
thumb_func_start sub_803DF48
|
|
sub_803DF48: @ 803DF48
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
bne _0803DF5A
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, =bc_evolution_cutscene
|
|
str r0, [r1]
|
|
_0803DF5A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803DF48
|
|
|
|
thumb_func_start c4_overworld
|
|
c4_overworld: @ 803DF70
|
|
push {r4-r6,lr}
|
|
ldr r6, =gBattleTypeFlags
|
|
ldr r0, [r6]
|
|
movs r5, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0803DF8C
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4, 0
|
|
bl sub_806DCB4
|
|
adds r0, r4, 0
|
|
bl sub_806DEC4
|
|
_0803DF8C:
|
|
ldr r4, [r6]
|
|
adds r0, r4, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0803DF9E
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803DFEC
|
|
_0803DF9E:
|
|
ldr r1, =gUnknown_020375F0
|
|
ldr r5, =gUnknown_0202433A
|
|
ldrb r0, [r5]
|
|
strh r0, [r1]
|
|
ldr r3, =gMain
|
|
ldr r0, =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _0803DFDE
|
|
ldr r0, =gEnemyParty
|
|
bl sub_8161F18
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803DFDA
|
|
cmp r1, 0x7
|
|
bne _0803DFDE
|
|
_0803DFDA:
|
|
bl sub_8161F4C
|
|
_0803DFDE:
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_0803DFEC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c4_overworld
|
|
|
|
thumb_func_start bc_move_exec_returning
|
|
bc_move_exec_returning: @ 803E018
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024083
|
|
ldrb r0, [r0]
|
|
subs r0, 0xB
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0803E060
|
|
ldr r3, =gUnknown_020244A8
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0xC]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0803E03C
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_0803E03C:
|
|
ldr r2, =gUnknown_03005D04
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0xC]
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
b _0803E07A
|
|
.pool
|
|
_0803E060:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803E07A
|
|
ldr r1, =gUnknown_0831BD10
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_0803E07A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bc_move_exec_returning
|
|
|
|
thumb_func_start sub_803E08C
|
|
sub_803E08C: @ 803E08C
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803E0A8
|
|
ldr r1, =gUnknown_0831BD10
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_0803E0A8:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803E08C
|
|
|
|
thumb_func_start sub_803E0B8
|
|
sub_803E0B8: @ 803E0B8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
ldr r6, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r6]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r3, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x91
|
|
ldrb r2, [r0]
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0803E110
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
b _0803E83C
|
|
.pool
|
|
_0803E110:
|
|
ldr r1, =gCritMultiplier
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
ldr r5, =0x000001a3
|
|
adds r0, r3, r5
|
|
strb r2, [r0]
|
|
ldr r0, =gBattleMoveFlags
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_02024212
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x6]
|
|
ldr r2, =gUnknown_020241E8
|
|
ldr r0, =gUnknown_020241E9
|
|
mov r9, r0
|
|
ldrb r0, [r6]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
mov r5, r9
|
|
strb r0, [r5]
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r4, [r6]
|
|
lsls r0, r4, 4
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 29
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
bge _0803E1BC
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r2, =gUnknown_020241EA
|
|
ldr r1, =gUnknown_020241EC
|
|
movs r0, 0xA5
|
|
strh r0, [r1]
|
|
strh r0, [r2]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA5
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldrb r1, [r6]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r2, [r3]
|
|
b _0803E316
|
|
.pool
|
|
_0803E1BC:
|
|
ldr r5, =gBattleMons
|
|
mov r10, r5
|
|
movs r0, 0x58
|
|
adds r5, r4, 0
|
|
muls r5, r0
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
adds r0, r5, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803E1E2
|
|
movs r7, 0x80
|
|
lsls r7, 15
|
|
ands r7, r1
|
|
cmp r7, 0
|
|
beq _0803E204
|
|
_0803E1E2:
|
|
ldr r3, =gUnknown_020241EA
|
|
ldr r2, =gUnknown_020241EC
|
|
ldr r1, =gUnknown_02024268
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
strh r0, [r3]
|
|
b _0803E33C
|
|
.pool
|
|
_0803E204:
|
|
ldr r1, =gUnknown_020242BC
|
|
mov r12, r1
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrh r3, [r0, 0x6]
|
|
adds r1, r3, 0
|
|
cmp r1, 0
|
|
beq _0803E2DC
|
|
ldrb r2, [r0, 0xC]
|
|
lsls r0, r2, 1
|
|
adds r0, r5
|
|
mov r4, r10
|
|
adds r4, 0xC
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _0803E268
|
|
ldr r2, =gUnknown_020241EA
|
|
ldr r0, =gUnknown_020241EC
|
|
strh r3, [r0]
|
|
strh r3, [r2]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r0, [r0, 0xC]
|
|
mov r3, r9
|
|
strb r0, [r3]
|
|
mov r5, r8
|
|
strb r0, [r5]
|
|
ldrh r0, [r2]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldrb r1, [r6]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r2, [r3]
|
|
b _0803E316
|
|
.pool
|
|
_0803E268:
|
|
cmp r1, 0
|
|
beq _0803E2DC
|
|
cmp r1, r0
|
|
beq _0803E2DC
|
|
mov r5, r9
|
|
strb r2, [r5]
|
|
mov r0, r8
|
|
strb r2, [r0]
|
|
ldr r3, =gUnknown_020241EA
|
|
ldr r2, =gUnknown_020241EC
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
ldrb r1, [r6]
|
|
movs r5, 0x58
|
|
muls r1, r5
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
strh r0, [r3]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
movs r2, 0
|
|
strh r7, [r0, 0x6]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
strb r2, [r0, 0xC]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldrb r2, [r1, 0xE]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldrh r0, [r3]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldrb r1, [r6]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r2, [r3]
|
|
b _0803E316
|
|
.pool
|
|
_0803E2DC:
|
|
ldr r3, =gBattleMons
|
|
mov r5, r8
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r2, [r4]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
ldr r1, =gUnknown_02024274
|
|
lsls r2, 1
|
|
adds r2, r1
|
|
ldrh r3, [r0]
|
|
ldrh r2, [r2]
|
|
cmp r3, r2
|
|
beq _0803E334
|
|
ldr r1, =gUnknown_020241EA
|
|
ldr r0, =gUnknown_020241EC
|
|
strh r3, [r0]
|
|
strh r3, [r1]
|
|
ldrh r0, [r1]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldrb r1, [r4]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r2, [r2]
|
|
_0803E316:
|
|
adds r1, r2
|
|
strb r0, [r1, 0xC]
|
|
b _0803E33C
|
|
.pool
|
|
_0803E334:
|
|
ldr r1, =gUnknown_020241EA
|
|
ldr r0, =gUnknown_020241EC
|
|
strh r3, [r0]
|
|
strh r3, [r1]
|
|
_0803E33C:
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r3, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _0803E384
|
|
adds r0, r3, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803E37C
|
|
ldr r0, =gUnknown_03005D10
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x22]
|
|
b _0803E384
|
|
.pool
|
|
_0803E37C:
|
|
ldr r0, =gUnknown_03005D10
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x24]
|
|
_0803E384:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r0, 0
|
|
beq _0803E400
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
bne _0803E400
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5, 0x9]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0803E400
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r5, 0x9]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0803E400
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r2, [r0]
|
|
b _0803E76A
|
|
.pool
|
|
_0803E400:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
ldr r5, =gUnknown_0202420B
|
|
mov r8, r5
|
|
cmp r0, 0
|
|
bne _0803E412
|
|
b _0803E6E0
|
|
_0803E412:
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x8]
|
|
cmp r5, 0
|
|
beq _0803E424
|
|
b _0803E630
|
|
_0803E424:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0803E440
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0x10
|
|
bne _0803E440
|
|
b _0803E630
|
|
_0803E440:
|
|
ldr r3, =gBattleMons
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r6, [r2]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0, 0xC]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0x1F
|
|
bne _0803E460
|
|
b _0803E630
|
|
_0803E460:
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0xD
|
|
beq _0803E468
|
|
b _0803E630
|
|
_0803E468:
|
|
adds r0, r6, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gUnknown_02024064
|
|
strb r5, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _0803E4E0
|
|
adds r4, r1, 0
|
|
_0803E480:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
beq _0803E4CE
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xC]
|
|
ldrb r1, [r4]
|
|
cmp r0, r1
|
|
beq _0803E4CE
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1F
|
|
bne _0803E4CE
|
|
adds r0, r2, 0
|
|
bl sub_8048728
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, [sp]
|
|
cmp r0, r3
|
|
bcs _0803E4CE
|
|
ldrb r0, [r4]
|
|
bl sub_8048728
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
_0803E4CE:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803E480
|
|
_0803E4E0:
|
|
ldr r5, [sp]
|
|
cmp r5, 0x4
|
|
beq _0803E4E8
|
|
b _0803E5E2
|
|
_0803E4E8:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _0803E568
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803E548
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E544
|
|
movs r0, 0x1
|
|
b _0803E55A
|
|
.pool
|
|
_0803E544:
|
|
movs r0, 0x3
|
|
b _0803E55A
|
|
_0803E548:
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E558
|
|
movs r0, 0
|
|
b _0803E55A
|
|
_0803E558:
|
|
movs r0, 0x2
|
|
_0803E55A:
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
b _0803E578
|
|
.pool
|
|
_0803E568:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r2]
|
|
_0803E578:
|
|
ldr r7, =gUnknown_02024210
|
|
ldrb r0, [r7]
|
|
ldr r1, =gBitTable
|
|
mov r8, r1
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
add r1, r8
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803E592
|
|
b _0803E76A
|
|
_0803E592:
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0803E5C4
|
|
ldrb r0, [r5]
|
|
b _0803E758
|
|
.pool
|
|
_0803E5C4:
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
ldrb r1, [r7]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
b _0803E74E
|
|
_0803E5E2:
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202407E
|
|
ldr r3, [sp]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x20
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
b _0803E76A
|
|
.pool
|
|
_0803E630:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r4, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0803E6E0
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803E6E0
|
|
mov r5, r8
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803E684
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E680
|
|
movs r0, 0x1
|
|
b _0803E696
|
|
.pool
|
|
_0803E680:
|
|
movs r0, 0x3
|
|
b _0803E696
|
|
_0803E684:
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E694
|
|
movs r0, 0
|
|
b _0803E696
|
|
_0803E694:
|
|
movs r0, 0x2
|
|
_0803E696:
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E76A
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0803E76A
|
|
ldrb r0, [r5]
|
|
b _0803E758
|
|
.pool
|
|
_0803E6E0:
|
|
ldr r5, =gEnemyMonIndex
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r5]
|
|
ldr r6, =gUnknown_02024210
|
|
ldrb r1, [r6]
|
|
ldr r7, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E76A
|
|
ldrb r0, [r2]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _0803E730
|
|
ldrb r0, [r5]
|
|
b _0803E758
|
|
.pool
|
|
_0803E730:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
ldrb r1, [r6]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
_0803E74E:
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803E76A
|
|
adds r0, r2, 0
|
|
_0803E758:
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
_0803E76A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 10
|
|
ands r1, r2
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
beq _0803E808
|
|
ldr r0, =gUnknown_0202433C
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
bge _0803E808
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0803E7B4
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
b _0803E83C
|
|
.pool
|
|
_0803E7B4:
|
|
ldr r3, =gUnknown_02024230
|
|
lsls r0, r2, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0803E7EC
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
str r2, [r0]
|
|
b _0803E824
|
|
.pool
|
|
_0803E7EC:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6AD
|
|
str r0, [r1]
|
|
b _0803E824
|
|
.pool
|
|
_0803E808:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r3, =gUnknown_082D86A8
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
_0803E824:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803E838
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl sub_81A56E8
|
|
_0803E838:
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
_0803E83C:
|
|
strb r0, [r1]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803E0B8
|
|
|
|
thumb_func_start bs2_8016374
|
|
bs2_8016374: @ 803E868
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_020244AC
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_020244B0
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r2, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x7
|
|
strb r0, [r2, 0x1]
|
|
ldrb r4, [r3]
|
|
strb r4, [r2, 0x2]
|
|
ldrb r0, [r3]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x58
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x4]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAB15
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_03005D10
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xFE
|
|
bhi _0803E8CE
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
_0803E8CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bs2_8016374
|
|
|
|
thumb_func_start sub_803E90C
|
|
sub_803E90C: @ 803E90C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldrb r0, [r4]
|
|
bl sub_8045868
|
|
ldr r5, =gUnknown_02024208
|
|
ldr r2, =gUnknown_02023864
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
strh r3, [r5]
|
|
cmp r3, 0xC
|
|
bhi _0803E998
|
|
ldr r2, =gUnknown_02024214
|
|
ldr r1, =gUnknown_082DBD08
|
|
ldrh r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02024083
|
|
mov r10, r0
|
|
b _0803EBF6
|
|
.pool
|
|
_0803E998:
|
|
adds r0, r3, 0
|
|
subs r0, 0x50
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0803E9C0
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, =gUnknown_082DBD54
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_02024083
|
|
mov r10, r1
|
|
b _0803EBF6
|
|
.pool
|
|
_0803E9C0:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803E9E8
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, =gUnknown_082DBD3C
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldr r2, =gUnknown_02024083
|
|
mov r10, r2
|
|
b _0803EBF6
|
|
.pool
|
|
_0803E9E8:
|
|
ldr r3, =gUnknown_02024474
|
|
ldrb r0, [r4]
|
|
strb r0, [r3, 0x17]
|
|
lsls r0, 24
|
|
lsrs r0, 25
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
mov r8, r4
|
|
ldr r1, =gUnknown_02024214
|
|
mov r9, r1
|
|
ldr r6, =gUnknown_082DBD3C
|
|
mov r12, r3
|
|
adds r7, r2, 0
|
|
ldr r2, =gUnknown_02024083
|
|
mov r10, r2
|
|
cmp r0, 0x4
|
|
bls _0803EA14
|
|
b _0803EBDE
|
|
_0803EA14:
|
|
lsls r0, 2
|
|
ldr r1, =_0803EA38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803EA38:
|
|
.4byte _0803EBDE
|
|
.4byte _0803EBDE
|
|
.4byte _0803EA4C
|
|
.4byte _0803EAE0
|
|
.4byte _0803EBB0
|
|
_0803EA4C:
|
|
ldr r5, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
beq _0803EA98
|
|
movs r0, 0x3E
|
|
ands r0, r1
|
|
ldr r1, =gUnknown_02024214
|
|
mov r9, r1
|
|
ldr r6, =gUnknown_082DBD3C
|
|
ldr r2, =gUnknown_02024083
|
|
mov r10, r2
|
|
cmp r0, 0
|
|
bne _0803EA7E
|
|
b _0803EBDE
|
|
_0803EA7E:
|
|
movs r0, 0x5
|
|
strb r0, [r5, 0x5]
|
|
b _0803EBDE
|
|
.pool
|
|
_0803EA98:
|
|
ldr r0, =gUnknown_02024214
|
|
mov r9, r0
|
|
ldr r6, =gUnknown_082DBD3C
|
|
ldr r1, =gUnknown_02024083
|
|
mov r10, r1
|
|
mov r4, r8
|
|
adds r3, r7, 0
|
|
adds r2, r5, 0
|
|
_0803EAA8:
|
|
ldrb r1, [r4]
|
|
lsrs r1, 1
|
|
ldr r0, [r3]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldrb r0, [r2, 0x5]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x5]
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803EAA8
|
|
b _0803EBDE
|
|
.pool
|
|
_0803EAE0:
|
|
ldr r3, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
strb r0, [r3, 0x5]
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r6, r0, 0
|
|
adds r6, 0xC6
|
|
ldrb r1, [r6]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r8, r2
|
|
cmp r5, 0
|
|
beq _0803EB28
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x5]
|
|
ldr r2, =gUnknown_02024214
|
|
mov r9, r2
|
|
ldr r6, =gUnknown_082DBD3C
|
|
ldr r0, =gUnknown_02024083
|
|
mov r10, r0
|
|
b _0803EBDE
|
|
.pool
|
|
_0803EB28:
|
|
ldr r3, =gUnknown_02022F58
|
|
movs r4, 0xFD
|
|
strb r4, [r3]
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x1]
|
|
movs r2, 0x1
|
|
strb r2, [r3, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r3, 0x3]
|
|
ldr r1, =gUnknown_02022F68
|
|
strb r4, [r1]
|
|
strb r5, [r1, 0x1]
|
|
movs r0, 0xD2
|
|
strb r0, [r1, 0x2]
|
|
strb r5, [r1, 0x3]
|
|
subs r0, 0xD3
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r6]
|
|
ands r2, r0
|
|
ldr r1, =gUnknown_02024214
|
|
mov r9, r1
|
|
ldr r6, =gUnknown_082DBD3C
|
|
ldr r0, =gUnknown_02024083
|
|
mov r10, r0
|
|
cmp r2, 0
|
|
bne _0803EB8C
|
|
mov r5, r8
|
|
adds r4, r7, 0
|
|
adds r2, r3, 0
|
|
_0803EB62:
|
|
ldrb r1, [r5]
|
|
lsrs r1, 1
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldrb r0, [r2, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r5]
|
|
lsrs r0, 1
|
|
ldr r1, [r4]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803EB62
|
|
_0803EB8C:
|
|
ldrb r0, [r3, 0x2]
|
|
adds r0, 0xE
|
|
movs r1, 0
|
|
mov r2, r12
|
|
strb r0, [r2, 0x10]
|
|
strb r1, [r2, 0x11]
|
|
b _0803EBDE
|
|
.pool
|
|
_0803EBB0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0803EBCC
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _0803EBD0
|
|
.pool
|
|
_0803EBCC:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
_0803EBD0:
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_02024214
|
|
mov r9, r1
|
|
ldr r6, =gUnknown_082DBD3C
|
|
ldr r2, =gUnknown_02024083
|
|
mov r10, r2
|
|
_0803EBDE:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
str r0, [r2]
|
|
_0803EBF6:
|
|
movs r0, 0xA
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803E90C
|
|
|
|
thumb_func_start sub_803EC20
|
|
sub_803EC20: @ 803EC20
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r7, 0
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803EC54
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
b _0803EC5E
|
|
.pool
|
|
_0803EC54:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_0803EC5E:
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r5, [r0]
|
|
cmp r1, 0x25
|
|
bne _0803EC9C
|
|
ldr r2, =gUnknown_02024208
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r5
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r2, r5, 4
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
b _0803ED70
|
|
.pool
|
|
_0803EC9C:
|
|
ldr r0, =gBattleMons
|
|
mov r10, r0
|
|
movs r2, 0x58
|
|
mov r9, r2
|
|
mov r0, r9
|
|
muls r0, r5
|
|
add r0, r10
|
|
mov r8, r0
|
|
adds r0, 0x20
|
|
ldrb r6, [r0]
|
|
cmp r6, 0x32
|
|
bne _0803ED5C
|
|
bl InBattlePyramid
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803ED38
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r1, [r4]
|
|
adds r1, 0x6C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_81A9E28
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
mov r2, r8
|
|
ldrh r0, [r2, 0x6]
|
|
muls r0, r1
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
mov r2, r9
|
|
muls r2, r1
|
|
adds r1, r2, 0
|
|
add r1, r10
|
|
ldrh r1, [r1, 0x6]
|
|
bl __divsi3
|
|
ldr r1, [r4]
|
|
adds r1, 0x6C
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r4, r1
|
|
bhi _0803ED0C
|
|
b _0803EE12
|
|
_0803ED0C:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r2, r5, 4
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
b _0803ED70
|
|
.pool
|
|
_0803ED38:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r2, r5, 4
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x19
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
b _0803ED70
|
|
.pool
|
|
_0803ED5C:
|
|
ldr r1, =gBattleTypeFlags
|
|
ldr r2, [r1]
|
|
ldr r0, =0x043f0100
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0803ED80
|
|
movs r0, 0x8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0803ED80
|
|
_0803ED70:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _0803EE12
|
|
.pool
|
|
_0803ED80:
|
|
ldr r0, [r1]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803EE06
|
|
bl InBattlePyramid
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803EDBC
|
|
bl sub_81A9E28
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r4, =gBattleMons
|
|
movs r3, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r3
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x6]
|
|
muls r0, r1
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
muls r1, r3
|
|
adds r1, r4
|
|
b _0803EDDA
|
|
.pool
|
|
_0803EDBC:
|
|
ldr r3, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
adds r4, r0, r3
|
|
movs r1, 0x1
|
|
adds r0, r5, 0
|
|
eors r0, r1
|
|
muls r0, r2
|
|
adds r1, r0, r3
|
|
ldrh r0, [r4, 0x6]
|
|
ldrh r2, [r1, 0x6]
|
|
cmp r0, r2
|
|
bcs _0803EE00
|
|
lsls r0, 7
|
|
_0803EDDA:
|
|
ldrh r1, [r1, 0x6]
|
|
bl __divsi3
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r1, 0x6C
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r4, r1
|
|
bls _0803EE06
|
|
_0803EE00:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_0803EE06:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, 0x6C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0803EE12:
|
|
cmp r7, 0
|
|
beq _0803EE24
|
|
ldr r1, =gUnknown_02024082
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
_0803EE24:
|
|
adds r0, r7, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_803EC20
|
|
|
|
thumb_func_start sub_803EE48
|
|
sub_803EE48: @ 803EE48
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r5, =gUnknown_02024082
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x02000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803EF0C
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
strb r1, [r5]
|
|
ldr r2, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
beq _0803EEE0
|
|
adds r4, r2, 0
|
|
ldr r6, =gUnknown_0202421C
|
|
ldr r5, =gUnknown_0202433A
|
|
_0803EE7C:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803EEBC
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0803EECE
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
b _0803EECA
|
|
.pool
|
|
_0803EEBC:
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0803EECE
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
_0803EECA:
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
_0803EECE:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0803EE7C
|
|
_0803EEE0:
|
|
ldr r2, =gUnknown_0202433A
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00000ca9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
b _0803EF96
|
|
.pool
|
|
_0803EF0C:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803EF4C
|
|
ldrb r0, [r4]
|
|
bl sub_803EC20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0803EF98
|
|
ldrb r0, [r4]
|
|
bl sub_8045868
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAB02
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
b _0803EF96
|
|
.pool
|
|
_0803EF4C:
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803EF8C
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAB02
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
b _0803EF96
|
|
.pool
|
|
_0803EF8C:
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x6
|
|
_0803EF96:
|
|
strb r0, [r1]
|
|
_0803EF98:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803EE48
|
|
|
|
thumb_func_start sub_803EFA8
|
|
sub_803EFA8: @ 803EFA8
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD58
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_803EFA8
|
|
|
|
thumb_func_start bs5_8016AC0
|
|
bs5_8016AC0: @ 803EFF0
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_0203A04C
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024208
|
|
movs r0, 0x5
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD08
|
|
ldr r0, [r0, 0x14]
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end bs5_8016AC0
|
|
|
|
thumb_func_start sub_803F050
|
|
sub_803F050: @ 803F050
|
|
push {r4-r6,lr}
|
|
ldr r3, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r6, =gUnknown_02024332
|
|
ldr r2, =gUnknown_02023864
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
strb r0, [r6, 0x5]
|
|
ldr r1, =gUnknown_02024208
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r2, 0x2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_03005D10
|
|
ldrb r0, [r1, 0x1F]
|
|
cmp r0, 0xFE
|
|
bhi _0803F096
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1F]
|
|
_0803F096:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bhi _0803F0A8
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0803F0A8:
|
|
ldr r0, [r2]
|
|
adds r3, r0, 0
|
|
adds r3, 0x7B
|
|
ldrb r5, [r3]
|
|
adds r4, r5, 0
|
|
cmp r4, 0x1
|
|
bls _0803F100
|
|
ldr r2, =gUnknown_0831BCE0
|
|
adds r0, 0x7A
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
ldrb r6, [r6, 0x5]
|
|
adds r0, r6
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _0803F0FC
|
|
movs r0, 0x1
|
|
b _0803F0FE
|
|
.pool
|
|
_0803F0FC:
|
|
subs r0, r5, r0
|
|
_0803F0FE:
|
|
strb r0, [r3]
|
|
_0803F100:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD58
|
|
ldr r0, [r0, 0x8]
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F050
|
|
|
|
thumb_func_start sub_803F120
|
|
sub_803F120: @ 803F120
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r4, [r0]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r0, [r3]
|
|
adds r2, r0, 0
|
|
adds r2, 0x7C
|
|
ldr r1, =gUnknown_0831BCEF
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r2]
|
|
adds r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x14
|
|
bls _0803F162
|
|
movs r0, 0x14
|
|
strb r0, [r1]
|
|
_0803F162:
|
|
ldr r0, [r3]
|
|
adds r2, r0, 0
|
|
adds r2, 0x7B
|
|
ldr r1, =gUnknown_0831BCF3
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r2]
|
|
adds r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7B
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x14
|
|
bls _0803F188
|
|
movs r0, 0x14
|
|
strb r0, [r1]
|
|
_0803F188:
|
|
ldr r0, [r3]
|
|
adds r1, r0, 0
|
|
adds r1, 0x79
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bhi _0803F1C4
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
b _0803F1CA
|
|
.pool
|
|
_0803F1C4:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_0803F1CA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD58
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F120
|
|
|
|
thumb_func_start bs8_exit_by_flight
|
|
bs8_exit_by_flight: @ 803F1F0
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r4, =gUnknown_02024082
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
movs r0, 0x11
|
|
bl audio_play
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bs8_exit_by_flight
|
|
|
|
thumb_func_start bs9_8016C9C
|
|
bs9_8016C9C: @ 803F22C
|
|
ldr r3, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
strb r2, [r3]
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
strb r2, [r1, 0x2]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD58
|
|
ldr r0, [r0, 0xC]
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_0202407A
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end bs9_8016C9C
|
|
|
|
thumb_func_start bsB_exit_by_move
|
|
bsB_exit_by_move: @ 803F2A4
|
|
push {lr}
|
|
bl sub_8041728
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0803F2C0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4D
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
_0803F2C0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bsB_exit_by_move
|
|
|
|
thumb_func_start bsD_proceed
|
|
bsD_proceed: @ 803F2CC
|
|
ldr r1, =gUnknown_02024082
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02024083
|
|
ldr r2, =gUnknown_0202407A
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf1e892af
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end bsD_proceed
|
|
|
|
thumb_func_start bsC_8016D70
|
|
bsC_8016D70: @ 803F300
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r2, =gUnknown_02024082
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r1, [r6]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
ldr r3, =gUnknown_02024083
|
|
ldr r1, =gUnknown_0202407A
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
bl sub_803D6A0
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf1e892af
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_020241EA
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gBattleMoveDamage
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
ldr r0, =gBattleMoveFlags
|
|
strb r1, [r0]
|
|
ldr r5, =gUnknown_02024474
|
|
strb r1, [r5, 0x18]
|
|
strb r1, [r5, 0x19]
|
|
ldr r2, =gUnknown_02024250
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
strh r4, [r0]
|
|
ldr r2, =gUnknown_02024258
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
strh r4, [r0]
|
|
ldr r0, [r6]
|
|
strb r1, [r0, 0x13]
|
|
ldr r0, =gUnknown_02024400
|
|
strh r4, [r0]
|
|
strb r1, [r5, 0x14]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x3]
|
|
strb r1, [r0, 0x4]
|
|
strb r1, [r5, 0x16]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bsC_8016D70
|
|
|
|
thumb_func_start get_battle_side_of_something
|
|
get_battle_side_of_something: @ 803F3CC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0
|
|
cmp r1, 0xE
|
|
bhi _0803F47A
|
|
lsls r0, r1, 2
|
|
ldr r1, =_0803F3E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0803F3E8:
|
|
.4byte _0803F424
|
|
.4byte _0803F430
|
|
.4byte _0803F43C
|
|
.4byte _0803F458
|
|
.4byte _0803F464
|
|
.4byte _0803F458
|
|
.4byte _0803F464
|
|
.4byte _0803F448
|
|
.4byte _0803F464
|
|
.4byte _0803F464
|
|
.4byte _0803F44C
|
|
.4byte _0803F464
|
|
.4byte _0803F468
|
|
.4byte _0803F46C
|
|
.4byte _0803F470
|
|
_0803F424:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
b _0803F47A
|
|
.pool
|
|
_0803F430:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
b _0803F47A
|
|
.pool
|
|
_0803F43C:
|
|
ldr r0, =gUnknown_0202420E
|
|
ldrb r0, [r0]
|
|
b _0803F47A
|
|
.pool
|
|
_0803F448:
|
|
movs r0, 0
|
|
b _0803F47A
|
|
_0803F44C:
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0x17]
|
|
b _0803F47A
|
|
.pool
|
|
_0803F458:
|
|
ldr r0, =gUnknown_0202420D
|
|
ldrb r0, [r0]
|
|
b _0803F47A
|
|
.pool
|
|
_0803F464:
|
|
movs r0, 0
|
|
b _0803F472
|
|
_0803F468:
|
|
movs r0, 0x1
|
|
b _0803F472
|
|
_0803F46C:
|
|
movs r0, 0x2
|
|
b _0803F472
|
|
_0803F470:
|
|
movs r0, 0x3
|
|
_0803F472:
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0803F47A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end get_battle_side_of_something
|
|
|
|
thumb_func_start sub_803F480
|
|
sub_803F480: @ 803F480
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r1, =gBattleMons
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
mov r12, r1
|
|
cmp r0, 0x2E
|
|
bne _0803F532
|
|
movs r3, 0
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
adds r1, 0xC
|
|
adds r1, r0, r1
|
|
b _0803F4BC
|
|
.pool
|
|
_0803F4B4:
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _0803F4C2
|
|
_0803F4BC:
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
bne _0803F4B4
|
|
_0803F4C2:
|
|
cmp r3, 0x4
|
|
beq _0803F532
|
|
movs r7, 0x58
|
|
adds r2, r5, 0
|
|
muls r2, r7
|
|
adds r0, r3, r2
|
|
mov r6, r12
|
|
adds r6, 0x24
|
|
adds r1, r0, r6
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0803F4DE
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_0803F4DE:
|
|
mov r0, r12
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803F532
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803F532
|
|
ldr r4, =gUnknown_02024064
|
|
strb r5, [r4]
|
|
adds r1, r3, 0
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r4]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
adds r0, r3
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803F532:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F480
|
|
|
|
thumb_func_start sub_803F548
|
|
sub_803F548: @ 803F548
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0x4
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _0803F5F0
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r7, r5, 0
|
|
muls r7, r0
|
|
adds r1, 0xC
|
|
mov r10, r1
|
|
_0803F57E:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r4, 0x1
|
|
cmp r9, r0
|
|
beq _0803F5E6
|
|
ldr r0, =gBattleMons
|
|
movs r3, 0x58
|
|
adds r1, r4, 0
|
|
muls r1, r3
|
|
adds r1, r0
|
|
adds r1, 0x20
|
|
ldrb r1, [r1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x2E
|
|
bne _0803F5E6
|
|
movs r2, 0
|
|
adds r0, r5, 0
|
|
muls r0, r3
|
|
adds r1, r4, 0
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
movs r1, 0x8F
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _0803F5CE
|
|
adds r3, r1, 0
|
|
mov r0, r10
|
|
adds r1, r7, r0
|
|
_0803F5C0:
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _0803F5CE
|
|
ldrh r0, [r1]
|
|
cmp r0, r3
|
|
bne _0803F5C0
|
|
_0803F5CE:
|
|
cmp r2, 0x4
|
|
beq _0803F5E6
|
|
mov r8, r2
|
|
adds r1, r2, r7
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0803F5E6
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_0803F5E6:
|
|
adds r4, r6, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0803F57E
|
|
_0803F5F0:
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
beq _0803F658
|
|
ldr r6, =gBattleMons
|
|
movs r3, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r3
|
|
adds r1, r6, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803F658
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803F658
|
|
ldr r4, =gUnknown_02024064
|
|
strb r5, [r4]
|
|
mov r1, r8
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r2, r6, 0
|
|
adds r2, 0x24
|
|
adds r0, r2
|
|
add r0, r8
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803F658:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F548
|
|
|
|
thumb_func_start sub_803F67C
|
|
sub_803F67C: @ 803F67C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r6, 0x4
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _0803F6FE
|
|
ldr r7, =gBattleMons
|
|
movs r2, 0x58
|
|
mov r12, r2
|
|
mov r5, r12
|
|
muls r5, r3
|
|
adds r0, r7, 0
|
|
adds r0, 0xC
|
|
adds r2, r5, r0
|
|
mov r10, r2
|
|
mov r9, r5
|
|
_0803F6AE:
|
|
mov r0, r12
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0x1
|
|
cmp r0, 0x2E
|
|
bne _0803F6F4
|
|
cmp r1, r3
|
|
beq _0803F6F4
|
|
movs r2, 0
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xC3
|
|
beq _0803F6DE
|
|
ldr r1, =gUnknown_02024090
|
|
add r1, r9
|
|
_0803F6D0:
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _0803F6DE
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xC3
|
|
bne _0803F6D0
|
|
_0803F6DE:
|
|
cmp r2, 0x4
|
|
beq _0803F6F4
|
|
adds r6, r2, 0
|
|
adds r0, r6, r5
|
|
ldr r2, =gUnknown_020240A8
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0803F6F4
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_0803F6F4:
|
|
adds r1, r4, 0
|
|
mov r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
blt _0803F6AE
|
|
_0803F6FE:
|
|
cmp r6, 0x4
|
|
beq _0803F762
|
|
ldr r7, =gBattleMons
|
|
movs r5, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r5
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0803F762
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
lsls r0, r6, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0803F762
|
|
ldr r4, =gUnknown_02024064
|
|
strb r3, [r4]
|
|
adds r1, r6, 0
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r2, r7, 0
|
|
adds r2, 0x24
|
|
adds r0, r2
|
|
adds r0, r6
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0803F762:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F67C
|
|
|
|
thumb_func_start sub_803F790
|
|
sub_803F790: @ 803F790
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803F7D0
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_0202406C
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
bge _0803F7EE
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r5, =gBitTable
|
|
_0803F7AC:
|
|
ldm r5!, {r1}
|
|
lsls r1, 28
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
adds r2, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
blt _0803F7AC
|
|
b _0803F7EE
|
|
.pool
|
|
_0803F7D0:
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_0202406C
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
bge _0803F7EE
|
|
ldr r3, =gUnknown_02024068
|
|
ldr r5, =gBitTable
|
|
_0803F7DE:
|
|
ldr r0, [r3]
|
|
ldm r5!, {r1}
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
adds r2, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r2, r0
|
|
blt _0803F7DE
|
|
_0803F7EE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F790
|
|
|
|
thumb_func_start dp01_battle_side_mark_buffer_for_execution
|
|
dp01_battle_side_mark_buffer_for_execution: @ 803F800
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803F834
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _0803F844
|
|
.pool
|
|
_0803F834:
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_0803F844:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01_battle_side_mark_buffer_for_execution
|
|
|
|
thumb_func_start sub_803F850
|
|
sub_803F850: @ 803F850
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
lsls r0, r7, 2
|
|
adds r6, r0, r1
|
|
b _0803F87A
|
|
.pool
|
|
_0803F86C:
|
|
lsls r0, r4, 2
|
|
ldr r1, [r6]
|
|
lsls r1, r0
|
|
ldr r0, [r5]
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
adds r4, 0x1
|
|
_0803F87A:
|
|
bl sub_8009FCC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
blt _0803F86C
|
|
ldr r2, =gUnknown_02024068
|
|
movs r1, 0x80
|
|
lsls r1, 21
|
|
lsls r1, r7
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F850
|
|
|
|
thumb_func_start b_cancel_multi_turn_move_maybe
|
|
b_cancel_multi_turn_move_maybe: @ 803F8A0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r3, r0, 0
|
|
muls r3, r2
|
|
adds r1, 0x50
|
|
adds r3, r1
|
|
ldr r1, [r3]
|
|
ldr r2, =0xffffefff
|
|
ands r1, r2
|
|
ldr r2, =0xfffff3ff
|
|
ands r1, r2
|
|
movs r2, 0x71
|
|
negs r2, r2
|
|
ands r1, r2
|
|
ldr r2, =0xfffffcff
|
|
ands r1, r2
|
|
str r1, [r3]
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r2, r0, 2
|
|
adds r2, r1
|
|
ldr r1, [r2]
|
|
ldr r3, =0xfffbff3f
|
|
ands r1, r3
|
|
str r1, [r2]
|
|
ldr r2, =gUnknown_020242BC
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1, 0x11]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x11]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x10]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end b_cancel_multi_turn_move_maybe
|
|
|
|
thumb_func_start sub_803F90C
|
|
sub_803F90C: @ 803F90C
|
|
push {lr}
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_0202433C
|
|
lsrs r0, 20
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
bne _0803F952
|
|
ldrb r2, [r1, 0x1]
|
|
lsls r0, r2, 30
|
|
cmp r0, 0
|
|
blt _0803F952
|
|
lsls r0, r2, 26
|
|
cmp r0, 0
|
|
blt _0803F952
|
|
lsls r0, r2, 25
|
|
cmp r0, 0
|
|
blt _0803F952
|
|
lsrs r0, r2, 7
|
|
cmp r0, 0
|
|
bne _0803F952
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r0, r1, 31
|
|
cmp r0, 0
|
|
bne _0803F952
|
|
lsls r0, r1, 30
|
|
cmp r0, 0
|
|
blt _0803F952
|
|
lsls r0, r1, 29
|
|
cmp r0, 0
|
|
blt _0803F952
|
|
lsls r0, r2, 31
|
|
cmp r0, 0
|
|
beq _0803F95C
|
|
_0803F952:
|
|
movs r0, 0x1
|
|
b _0803F95E
|
|
.pool
|
|
_0803F95C:
|
|
movs r0, 0
|
|
_0803F95E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_803F90C
|
|
|
|
thumb_func_start b_std_message
|
|
b_std_message: @ 803F964
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r4, =gUnknown_02024064
|
|
strb r1, [r4]
|
|
movs r0, 0
|
|
adds r1, r2, 0
|
|
bl dp01_build_cmdbuf_x10_TODO
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_std_message
|
|
|
|
thumb_func_start sub_803F988
|
|
sub_803F988: @ 803F988
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_020243FE
|
|
strb r3, [r0]
|
|
strb r3, [r0, 0x1]
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r2, [r0]
|
|
adds r6, r0, 0
|
|
cmp r1, r2
|
|
bge _0803F9B6
|
|
ldr r5, =gBitTable
|
|
adds r4, r2, 0
|
|
ldr r2, =gUnknown_0202406E
|
|
_0803F9A4:
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
orrs r3, r0
|
|
adds r2, 0x4
|
|
adds r1, 0x2
|
|
cmp r1, r4
|
|
blt _0803F9A4
|
|
_0803F9B6:
|
|
movs r1, 0x1
|
|
adds r2, r6, 0
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bge _0803F9D6
|
|
ldr r5, =gUnknown_020243FE
|
|
movs r4, 0x2
|
|
_0803F9C4:
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
asrs r0, 1
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
adds r1, 0x2
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
blt _0803F9C4
|
|
_0803F9D6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F988
|
|
|
|
thumb_func_start sub_803F9EC
|
|
sub_803F9EC: @ 803F9EC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803FA50
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 25
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_020243FE
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
adds r5, r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r2, [r0]
|
|
mov r8, r1
|
|
cmp r4, r2
|
|
bge _0803FA4A
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r7, [r0]
|
|
ldr r1, =gBitTable
|
|
adds r6, r2, 0
|
|
ldr r3, =gUnknown_0202406E
|
|
adds r2, r1, 0
|
|
_0803FA2E:
|
|
ldr r0, [r2]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _0803FA40
|
|
ldrh r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
orrs r4, r0
|
|
_0803FA40:
|
|
adds r3, 0x4
|
|
adds r2, 0x8
|
|
adds r5, 0x2
|
|
cmp r5, r6
|
|
blt _0803FA2E
|
|
_0803FA4A:
|
|
mov r0, r12
|
|
add r0, r8
|
|
strb r4, [r0]
|
|
_0803FA50:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803F9EC
|
|
|
|
thumb_func_start sub_803FA70
|
|
sub_803FA70: @ 803FA70
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0803FA8C
|
|
adds r0, r4, 0
|
|
bl sub_803F9EC
|
|
b _0803FAC2
|
|
_0803FA8C:
|
|
movs r3, 0x1
|
|
ldr r5, =gUnknown_0202406C
|
|
ldrb r0, [r5]
|
|
cmp r3, r0
|
|
bge _0803FAC2
|
|
ldr r0, =gUnknown_020243FE
|
|
mov r12, r0
|
|
movs r7, 0x2
|
|
ldr r6, =gBitTable
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r4, r0, r1
|
|
_0803FAA4:
|
|
adds r2, r3, 0
|
|
ands r2, r7
|
|
asrs r2, 1
|
|
add r2, r12
|
|
ldrh r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r3, r0
|
|
blt _0803FAA4
|
|
_0803FAC2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_803FA70
|
|
|
|
thumb_func_start b_movescr_stack_push
|
|
b_movescr_stack_push: @ 803FAD8
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_020244A8
|
|
ldr r1, [r1]
|
|
ldr r3, [r1, 0x8]
|
|
adds r4, r3, 0
|
|
adds r4, 0x20
|
|
ldrb r1, [r4]
|
|
adds r2, r1, 0x1
|
|
strb r2, [r4]
|
|
lsls r1, 24
|
|
lsrs r1, 22
|
|
adds r3, r1
|
|
str r0, [r3]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_movescr_stack_push
|
|
|
|
thumb_func_start b_movescr_stack_push_cursor
|
|
b_movescr_stack_push_cursor: @ 803FAFC
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x8]
|
|
adds r3, r2, 0
|
|
adds r3, 0x20
|
|
ldrb r0, [r3]
|
|
adds r1, r0, 0x1
|
|
strb r1, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end b_movescr_stack_push_cursor
|
|
|
|
thumb_func_start b_movescr_stack_pop_cursor
|
|
b_movescr_stack_pop_cursor: @ 803FB24
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x8]
|
|
adds r2, r1, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r2]
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end b_movescr_stack_pop_cursor
|
|
|
|
thumb_func_start sub_803FB4C
|
|
sub_803FB4C: @ 803FB4C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_02023864
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, 9
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
movs r1, 0x58
|
|
muls r1, r4
|
|
adds r0, r1
|
|
adds r2, 0xC
|
|
adds r0, r2
|
|
ldrh r5, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
lsls r0, r4, 1
|
|
adds r0, 0xC8
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
mov r8, r1
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
adds r7, r3, 0
|
|
adds r3, r1, 0
|
|
cmp r0, r5
|
|
bne _0803FC06
|
|
cmp r5, 0
|
|
beq _0803FC06
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x17]
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r5, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803FBF8
|
|
ldr r1, =gUnknown_02024230
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DAE2A
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FC06
|
|
.pool
|
|
_0803FBF8:
|
|
ldr r0, =gUnknown_02024220
|
|
ldrb r1, [r7]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_082DAE1F
|
|
str r0, [r1]
|
|
movs r6, 0x1
|
|
_0803FC06:
|
|
ldr r1, =gUnknown_02024248
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
bne _0803FC90
|
|
cmp r5, 0xA5
|
|
beq _0803FC90
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _0803FC90
|
|
adds r0, r2, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803FC7C
|
|
ldr r1, =gUnknown_02024230
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB098
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FC8E
|
|
.pool
|
|
_0803FC7C:
|
|
ldr r1, =gUnknown_02024220
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB089
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0803FC8E:
|
|
ldr r3, =gUnknown_020242BC
|
|
_0803FC90:
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r0, [r1, 0x13]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
beq _0803FD1A
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _0803FD1A
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r5, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803FD08
|
|
ldr r1, =gUnknown_02024230
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB0AF
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r7]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FD1A
|
|
.pool
|
|
_0803FD08:
|
|
ldr r1, =gUnknown_02024220
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB0A0
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0803FD1A:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r1, r5, 0
|
|
bl sub_8040130
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0803FD8E
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r5, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803FD7C
|
|
ldr r1, =gUnknown_02024230
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB185
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r4]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FD8E
|
|
.pool
|
|
_0803FD7C:
|
|
ldr r1, =gUnknown_02024220
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB181
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0803FD8E:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803FDC4
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x7]
|
|
b _0803FDCE
|
|
.pool
|
|
_0803FDC4:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0803FDCE:
|
|
ldr r2, =gUnknown_0202420F
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
ldr r0, =gBattleMons
|
|
mov r12, r0
|
|
adds r7, r1, 0
|
|
cmp r4, 0x1D
|
|
bne _0803FE58
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
adds r2, r1, 0
|
|
cmp r2, 0
|
|
beq _0803FE58
|
|
ldr r0, =0x0000ffff
|
|
cmp r2, r0
|
|
beq _0803FE58
|
|
cmp r2, r5
|
|
beq _0803FE58
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r1, [r0]
|
|
ldr r2, =gUnknown_02024208
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r12
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ands r1, r0
|
|
ldrb r2, [r7]
|
|
cmp r1, 0
|
|
beq _0803FE48
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FE58
|
|
.pool
|
|
_0803FE48:
|
|
ldr r1, =gUnknown_02024220
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB812
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0803FE58:
|
|
ldr r0, =gUnknown_02023864
|
|
ldrb r3, [r7]
|
|
lsls r1, r3, 9
|
|
adds r0, 0x2
|
|
adds r1, r0
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
mov r1, r12
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803FEB8
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0803FEA8
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
b _0803FEB8
|
|
.pool
|
|
_0803FEA8:
|
|
ldr r1, =gUnknown_02024220
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB076
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0803FEB8:
|
|
adds r0, r6, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_803FB4C
|
|
|
|
thumb_func_start sub_803FECC
|
|
sub_803FECC: @ 803FECC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r3, r2, 24
|
|
ldr r1, =gUnknown_0202449C
|
|
lsls r0, r7, 1
|
|
adds r0, 0xC8
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
str r1, [sp, 0x4]
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0803FF1C
|
|
ldr r2, =gUnknown_02024404
|
|
lsls r1, r7, 3
|
|
subs r0, r1, r7
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x7]
|
|
str r0, [sp]
|
|
b _0803FF2E
|
|
.pool
|
|
_0803FF1C:
|
|
ldrh r0, [r1, 0x2E]
|
|
str r3, [sp, 0x14]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
lsls r1, r7, 3
|
|
ldr r3, [sp, 0x14]
|
|
_0803FF2E:
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
lsls r2, r7, 1
|
|
str r2, [sp, 0xC]
|
|
ldr r5, =gUnknown_020242BC
|
|
mov r12, r5
|
|
ldr r0, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r6, r7, 0
|
|
muls r6, r2
|
|
str r6, [sp, 0x8]
|
|
ldr r2, =gUnknown_02024090
|
|
adds r5, r6, r2
|
|
movs r6, 0
|
|
str r6, [sp, 0x10]
|
|
mov r10, r0
|
|
subs r0, r1, r7
|
|
lsls r0, 2
|
|
mov r8, r0
|
|
ldr r6, =gBitTable
|
|
_0803FF5A:
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
bne _0803FF70
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0803FF70
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0803FF70:
|
|
ldr r0, [sp, 0x8]
|
|
add r0, r9
|
|
mov r1, r10
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0803FF90
|
|
movs r0, 0x2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0803FF90
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0803FF90:
|
|
mov r1, r8
|
|
add r1, r12
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r1, 0x4]
|
|
cmp r0, r1
|
|
bne _0803FFAC
|
|
movs r0, 0x4
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0803FFAC
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0803FFAC:
|
|
movs r0, 0x58
|
|
adds r2, r7, 0
|
|
muls r2, r0
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r1, r2
|
|
ldr r1, =gUnknown_02024090
|
|
adds r0, r1
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_02024248
|
|
ldr r0, [sp, 0xC]
|
|
adds r1, r0, r1
|
|
str r1, [sp, 0x18]
|
|
mov r1, r12
|
|
ldrh r1, [r1]
|
|
mov r12, r1
|
|
ldr r0, [sp, 0x18]
|
|
ldrh r0, [r0]
|
|
cmp r12, r0
|
|
bne _0803FFEE
|
|
movs r0, 0x8
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0803FFEE
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _0803FFEE
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0803FFEE:
|
|
ldr r0, =gUnknown_020242BC
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x13]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
beq _0804001C
|
|
movs r0, 0x10
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0804001C
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0804001C
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804001C:
|
|
ldrh r1, [r5]
|
|
adds r0, r7, 0
|
|
str r3, [sp, 0x14]
|
|
bl sub_8040130
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x14]
|
|
cmp r0, 0
|
|
beq _0804003E
|
|
movs r0, 0x20
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0804003E
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804003E:
|
|
ldr r1, =gUnknown_020242BC
|
|
mov r0, r8
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2, 0xE]
|
|
lsls r0, 28
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _0804005E
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r5]
|
|
cmp r0, r1
|
|
beq _0804005E
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804005E:
|
|
ldr r2, [sp]
|
|
cmp r2, 0x1D
|
|
bne _08040080
|
|
ldr r0, [sp, 0x4]
|
|
ldrh r1, [r0]
|
|
cmp r1, 0
|
|
beq _08040080
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
beq _08040080
|
|
ldrh r2, [r5]
|
|
cmp r1, r2
|
|
beq _08040080
|
|
ldr r0, [r6]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_08040080:
|
|
adds r6, 0x4
|
|
adds r5, 0x2
|
|
ldr r0, [sp, 0x10]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x10]
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
mov r2, r9
|
|
cmp r2, 0x3
|
|
bgt _08040096
|
|
b _0803FF5A
|
|
_08040096:
|
|
adds r0, r4, 0
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_803FECC
|
|
|
|
thumb_func_start sub_80400C8
|
|
sub_80400C8: @ 80400C8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0xFF
|
|
bl sub_803FECC
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bne _0804010C
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r4]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024220
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_082DB072
|
|
str r1, [r0]
|
|
b _0804011E
|
|
.pool
|
|
_0804010C:
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r4]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0804011E:
|
|
movs r0, 0
|
|
cmp r3, 0xF
|
|
bne _08040126
|
|
movs r0, 0x1
|
|
_08040126:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80400C8
|
|
|
|
thumb_func_start sub_8040130
|
|
sub_8040130: @ 8040130
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
movs r6, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _080401B4
|
|
ldr r7, =gUnknown_02024090
|
|
mov r8, r7
|
|
_0804015A:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r4, 0x1
|
|
cmp r9, r0
|
|
beq _080401AA
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080401AA
|
|
movs r2, 0
|
|
movs r0, 0x58
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
adds r0, r1, r7
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
beq _080401A0
|
|
mov r4, r8
|
|
adds r0, r1, r4
|
|
_08040192:
|
|
adds r0, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080401AA
|
|
ldrh r1, [r0]
|
|
cmp r5, r1
|
|
bne _08040192
|
|
_080401A0:
|
|
cmp r2, 0x3
|
|
bgt _080401AA
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080401AA:
|
|
adds r4, r3, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804015A
|
|
_080401B4:
|
|
adds r0, r6, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8040130
|
|
|
|
thumb_func_start sub_80401D0
|
|
sub_80401D0: @ 80401D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_0202420B
|
|
mov r2, r9
|
|
strb r2, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r4, [r0]
|
|
adds r6, r1, 0
|
|
mov r10, r0
|
|
ldr r7, =gEnemyMonIndex
|
|
ldr r3, =gUnknown_0202449C
|
|
mov r12, r3
|
|
cmp r9, r4
|
|
bcs _08040224
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r1, [r2]
|
|
ldr r5, =gBitTable
|
|
ldr r0, [r5]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08040224
|
|
adds r3, r6, 0
|
|
_08040206:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r4
|
|
bcs _08040224
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040206
|
|
_08040224:
|
|
movs r0, 0
|
|
strb r0, [r7]
|
|
mov r0, r10
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
beq _0804025E
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r1, [r2]
|
|
ldr r5, =gBitTable
|
|
ldr r0, [r5]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804025E
|
|
adds r3, r7, 0
|
|
_08040240:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r4
|
|
bcs _0804025E
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r7]
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040240
|
|
_0804025E:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x3]
|
|
cmp r0, 0xA
|
|
bls _0804026A
|
|
b _080408F6
|
|
_0804026A:
|
|
lsls r0, 2
|
|
ldr r1, =_08040290
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08040290:
|
|
.4byte _080402BC
|
|
.4byte _08040342
|
|
.4byte _08040408
|
|
.4byte _080404D4
|
|
.4byte _080405B0
|
|
.4byte _08040668
|
|
.4byte _0804071C
|
|
.4byte _080407A0
|
|
.4byte _08040810
|
|
.4byte _08040868
|
|
.4byte _080408EC
|
|
_080402BC:
|
|
movs r5, 0
|
|
ldr r1, =gUnknown_0202406C
|
|
mov r10, r1
|
|
ldrb r2, [r1]
|
|
cmp r5, r2
|
|
bge _080402D6
|
|
ldr r2, =gUnknown_0202407E
|
|
_080402CA:
|
|
adds r0, r5, r2
|
|
strb r5, [r0]
|
|
adds r5, 0x1
|
|
ldrb r3, [r1]
|
|
cmp r5, r3
|
|
blt _080402CA
|
|
_080402D6:
|
|
movs r5, 0
|
|
b _08040324
|
|
.pool
|
|
_080402E4:
|
|
adds r4, r5, 0x1
|
|
adds r6, r4, 0
|
|
ldrb r1, [r1]
|
|
cmp r6, r1
|
|
bge _08040322
|
|
ldr r7, =gUnknown_0202407E
|
|
ldr r0, =gUnknown_0202406C
|
|
mov r10, r0
|
|
lsls r1, r5, 24
|
|
mov r8, r1
|
|
_080402F8:
|
|
adds r0, r5, r7
|
|
ldrb r0, [r0]
|
|
adds r1, r4, r7
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
bl b_first_side
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08040318
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
mov r2, r8
|
|
lsrs r0, r2, 24
|
|
bl sub_803CEDC
|
|
_08040318:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _080402F8
|
|
_08040322:
|
|
adds r5, r6, 0
|
|
_08040324:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080402E4
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x3]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, [r2]
|
|
adds r0, 0xDB
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
mov r12, r2
|
|
_08040342:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _08040350
|
|
b _0804062C
|
|
_08040350:
|
|
ldr r3, =gUnknown_02024064
|
|
mov r8, r3
|
|
movs r7, 0
|
|
ldr r6, =gUnknown_0202420B
|
|
ldr r5, =gUnknown_02022F58
|
|
_0804035A:
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r4, [r0]
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r1, r4, 1
|
|
adds r0, r1, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2, 0x1]
|
|
strb r0, [r6]
|
|
mov r3, r8
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_0202428E
|
|
adds r3, r1, r0
|
|
ldrh r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080403BC
|
|
ldrb r0, [r2]
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
movs r4, 0xFF
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080403BC
|
|
ldrh r0, [r3]
|
|
ldr r2, =0x0000fffe
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
ldr r0, =gUnknown_082DACFA
|
|
bl b_call_bc_move_exec
|
|
movs r0, 0xFD
|
|
strb r0, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x73
|
|
strb r0, [r5, 0x2]
|
|
strb r7, [r5, 0x3]
|
|
ldrb r0, [r5, 0x4]
|
|
orrs r0, r4
|
|
strb r0, [r5, 0x4]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080403BC:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0xDB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r12, r2
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _080403D2
|
|
b _080408FE
|
|
_080403D2:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _0804035A
|
|
b _0804062C
|
|
.pool
|
|
_08040408:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _08040416
|
|
b _08040570
|
|
_08040416:
|
|
movs r0, 0x2
|
|
mov r10, r0
|
|
movs r2, 0
|
|
mov r8, r2
|
|
ldr r7, =gUnknown_0202420B
|
|
ldr r5, =gUnknown_02022F58
|
|
_08040422:
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r4, [r0]
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r1, r4, 1
|
|
adds r0, r1, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2, 0x3]
|
|
strb r0, [r7]
|
|
ldr r3, =gUnknown_02024064
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_0202428E
|
|
adds r3, r1, r0
|
|
ldrh r1, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804048A
|
|
ldrb r0, [r2, 0x2]
|
|
subs r0, 0x1
|
|
strb r0, [r2, 0x2]
|
|
movs r6, 0xFF
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804048A
|
|
ldrh r0, [r3]
|
|
ldr r2, =0x0000fffd
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
ldr r0, =gUnknown_082DACFA
|
|
bl b_call_bc_move_exec
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
movs r0, 0xFD
|
|
strb r0, [r5]
|
|
mov r3, r10
|
|
strb r3, [r5, 0x1]
|
|
movs r0, 0x71
|
|
strb r0, [r5, 0x2]
|
|
mov r0, r8
|
|
strb r0, [r5, 0x3]
|
|
ldrb r0, [r5, 0x4]
|
|
orrs r0, r6
|
|
strb r0, [r5, 0x4]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804048A:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0xDB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r12, r2
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _080404A0
|
|
b _080408FE
|
|
_080404A0:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _08040422
|
|
b _08040570
|
|
.pool
|
|
_080404D4:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _08040570
|
|
ldr r0, =gUnknown_02024064
|
|
mov r10, r0
|
|
movs r2, 0
|
|
mov r8, r2
|
|
ldr r7, =gUnknown_0202420B
|
|
ldr r5, =gUnknown_02022F58
|
|
_080404EC:
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r4, [r0]
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r3, r4, 1
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r7]
|
|
mov r2, r10
|
|
strb r0, [r2]
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _0804054E
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x4]
|
|
movs r6, 0xFF
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804054E
|
|
ldr r2, =gUnknown_0202428E
|
|
adds r2, r3, r2
|
|
ldrh r0, [r2]
|
|
ldr r3, =0x0000feff
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_082DACFA
|
|
bl b_call_bc_move_exec
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
movs r0, 0xFD
|
|
strb r0, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x36
|
|
strb r0, [r5, 0x2]
|
|
mov r0, r8
|
|
strb r0, [r5, 0x3]
|
|
ldrb r0, [r5, 0x4]
|
|
orrs r0, r6
|
|
strb r0, [r5, 0x4]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804054E:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0xDB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r12, r2
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _08040564
|
|
b _080408FE
|
|
_08040564:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080404EC
|
|
_08040570:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _08040578
|
|
b _080408FE
|
|
_08040578:
|
|
mov r3, r12
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, 0x3]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, [r3]
|
|
adds r0, 0xDB
|
|
strb r2, [r0]
|
|
b _080408F6
|
|
.pool
|
|
_080405B0:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0804062C
|
|
ldr r6, =gUnknown_02024064
|
|
ldr r5, =gUnknown_0202420B
|
|
_080405C0:
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r4, [r0]
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r1, r4, 1
|
|
adds r0, r1, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r0, [r2, 0x7]
|
|
strb r0, [r5]
|
|
strb r0, [r6]
|
|
ldr r0, =gUnknown_0202428E
|
|
adds r3, r1, r0
|
|
ldrh r1, [r3]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804060A
|
|
ldrb r0, [r2, 0x6]
|
|
subs r0, 0x1
|
|
strb r0, [r2, 0x6]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804060A
|
|
ldrh r0, [r3]
|
|
ldr r2, =0x0000ffdf
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
ldr r0, =gUnknown_082DAD0B
|
|
bl b_call_bc_move_exec
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804060A:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0xDB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r12, r2
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _08040620
|
|
b _080408FE
|
|
_08040620:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080405C0
|
|
_0804062C:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08040634
|
|
b _080408FE
|
|
_08040634:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldrb r1, [r0, 0x3]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x3]
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0xDB
|
|
mov r3, r9
|
|
strb r3, [r0]
|
|
b _080408F6
|
|
.pool
|
|
_08040668:
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0xDB
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080406E8
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r5, =gUnknown_0202407E
|
|
_0804067C:
|
|
ldr r0, [r2]
|
|
adds r0, 0xDB
|
|
ldrb r0, [r0]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x20
|
|
ldrb r2, [r4]
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080406C4
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080406C4
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _080406C4
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_082DB0B7
|
|
bl b_call_bc_move_exec
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080406C4:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0xDB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r12, r2
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _080406DA
|
|
b _080408FE
|
|
_080406DA:
|
|
ldr r0, [r2]
|
|
adds r0, 0xDB
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0804067C
|
|
_080406E8:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _080406F0
|
|
b _080408FE
|
|
_080406F0:
|
|
mov r2, r12
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x3]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x3]
|
|
b _080408F6
|
|
.pool
|
|
_0804071C:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r2, [r3]
|
|
movs r0, 0x7
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0804072A
|
|
b _080408C8
|
|
_0804072A:
|
|
movs r0, 0x4
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08040776
|
|
ldr r1, =gUnknown_020243D0
|
|
adds r1, 0x28
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08040768
|
|
ldr r0, =0x0000fffe
|
|
ands r0, r2
|
|
ldr r1, =0x0000fffd
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08040794
|
|
.pool
|
|
_08040768:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _08040782
|
|
b _08040790
|
|
_08040776:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _08040790
|
|
_08040782:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08040794
|
|
.pool
|
|
_08040790:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
_08040794:
|
|
ldr r0, =gUnknown_082DAC2C
|
|
b _080408BA
|
|
.pool
|
|
_080407A0:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r2, [r3]
|
|
movs r0, 0x18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080407AE
|
|
b _080408C8
|
|
_080407AE:
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080407E8
|
|
ldr r1, =gUnknown_020243D0
|
|
adds r1, 0x28
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080407E8
|
|
ldr r0, =0x0000fff7
|
|
ands r0, r2
|
|
strh r0, [r3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DACC9
|
|
b _080407EC
|
|
.pool
|
|
_080407E8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAC47
|
|
_080407EC:
|
|
str r0, [r1]
|
|
adds r3, r1, 0
|
|
ldr r1, =gUnknown_02024474
|
|
movs r2, 0
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x5]
|
|
b _080408B8
|
|
.pool
|
|
_08040810:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r2, [r3]
|
|
movs r0, 0x60
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080408C8
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08040854
|
|
ldr r1, =gUnknown_020243D0
|
|
adds r1, 0x28
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08040854
|
|
ldr r0, =0x0000ffdf
|
|
ands r0, r2
|
|
strh r0, [r3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DACE0
|
|
b _08040858
|
|
.pool
|
|
_08040854:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DACD2
|
|
_08040858:
|
|
str r0, [r1]
|
|
adds r3, r1, 0
|
|
b _080408B8
|
|
.pool
|
|
_08040868:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r2, [r3]
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080408C8
|
|
ldr r1, =gUnknown_020243D0
|
|
adds r1, 0x28
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080408A4
|
|
ldr r0, =0x0000ff7f
|
|
ands r0, r2
|
|
strh r0, [r3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DACC9
|
|
b _080408A8
|
|
.pool
|
|
_080408A4:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAC47
|
|
_080408A8:
|
|
str r0, [r1]
|
|
adds r3, r1, 0
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0xD
|
|
strb r0, [r1, 0x10]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_080408B8:
|
|
ldr r0, [r3]
|
|
_080408BA:
|
|
bl b_call_bc_move_exec
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080408C8:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x3]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x3]
|
|
mov r12, r2
|
|
b _080408F6
|
|
.pool
|
|
_080408EC:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080408F6:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
bne _080408FE
|
|
b _0804025E
|
|
_080408FE:
|
|
ldr r0, =gUnknown_03005D04
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_803B9BC
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80401D0
|
|
|
|
thumb_func_start sub_8040924
|
|
sub_8040924: @ 8040924
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0x01000020
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r2, [r5]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r2, 0x1]
|
|
adds r7, r5, 0
|
|
mov r8, r0
|
|
ldrb r3, [r0]
|
|
cmp r1, r3
|
|
bcc _08040954
|
|
bl _08041338
|
|
_08040954:
|
|
bl _0804132E
|
|
.pool
|
|
_08040968:
|
|
ldr r3, =gUnknown_02024064
|
|
ldr r4, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r5, [r5]
|
|
ldrb r0, [r5, 0x1]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
adds r6, r3, 0
|
|
cmp r1, 0
|
|
beq _080409B0
|
|
ldrb r0, [r5, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x1]
|
|
bl _0804131C
|
|
.pool
|
|
_080409B0:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x13
|
|
bls _080409BA
|
|
bl _08041312
|
|
_080409BA:
|
|
lsls r0, 2
|
|
ldr r1, =_080409C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080409C8:
|
|
.4byte _08040A18
|
|
.4byte _08040A78
|
|
.4byte _08040A96
|
|
.4byte _08040AC6
|
|
.4byte _08040B44
|
|
.4byte _08040B8C
|
|
.4byte _08040C0C
|
|
.4byte _08040C54
|
|
.4byte _08040CB8
|
|
.4byte _08040D00
|
|
.4byte _08040E60
|
|
.4byte _08040F7C
|
|
.4byte _08041024
|
|
.4byte _080410E8
|
|
.4byte _0804119C
|
|
.4byte _080411BC
|
|
.4byte _08041208
|
|
.4byte _08041238
|
|
.4byte _08040AAE
|
|
.4byte _08041304
|
|
_08040A18:
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r3, [r6]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040A30
|
|
bl _080412DE
|
|
_08040A30:
|
|
ldr r0, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r3
|
|
adds r0, r1, r0
|
|
ldrh r2, [r0, 0x28]
|
|
ldrh r5, [r0, 0x2C]
|
|
cmp r2, r5
|
|
bne _08040A44
|
|
bl _080412DE
|
|
_08040A44:
|
|
cmp r2, 0
|
|
bne _08040A4C
|
|
bl _080412DE
|
|
_08040A4C:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08040A5C
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08040A5C:
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_082DB0EE
|
|
bl _080412D0
|
|
.pool
|
|
_08040A78:
|
|
ldrb r1, [r6]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08040A92
|
|
bl _080412DE
|
|
_08040A92:
|
|
bl _080412D4
|
|
_08040A96:
|
|
ldrb r1, [r6]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08040AAA
|
|
bl _080412DE
|
|
_08040AAA:
|
|
bl _080412D4
|
|
_08040AAE:
|
|
ldrb r1, [r6]
|
|
movs r0, 0x1
|
|
movs r2, 0x1
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08040AC2
|
|
bl _080412DE
|
|
_08040AC2:
|
|
bl _080412D4
|
|
_08040AC6:
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040ADC
|
|
bl _080412DE
|
|
_08040ADC:
|
|
ldr r3, =gBattleMons
|
|
movs r5, 0x3
|
|
ands r5, r1
|
|
movs r1, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08040AF4
|
|
bl _080412DE
|
|
_08040AF4:
|
|
adds r0, r2, 0
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08040B04
|
|
bl _080412DE
|
|
_08040B04:
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r5, [r0]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrb r0, [r6]
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 3
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08040B1E
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
_08040B1E:
|
|
ldr r1, =gUnknown_02024474
|
|
strb r5, [r1, 0x10]
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x11]
|
|
ldr r0, =gUnknown_082DAD15
|
|
b _080412D0
|
|
.pool
|
|
_08040B44:
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040B60
|
|
b _080412DE
|
|
_08040B60:
|
|
adds r1, r3, r2
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _08040B6A
|
|
b _080412DE
|
|
_08040B6A:
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 3
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08040B7A
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
_08040B7A:
|
|
ldr r0, =gUnknown_082DB23D
|
|
b _080412D0
|
|
.pool
|
|
_08040B8C:
|
|
ldr r4, =gBattleMons
|
|
ldrb r0, [r6]
|
|
movs r7, 0x58
|
|
mov r8, r7
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x4C
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040BAA
|
|
b _080412DE
|
|
_08040BAA:
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _08040BB4
|
|
b _080412DE
|
|
_08040BB4:
|
|
ldr r5, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _08040BC4
|
|
movs r0, 0x1
|
|
str r0, [r5]
|
|
_08040BC4:
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r2, r0, r3
|
|
ldr r1, [r2]
|
|
movs r4, 0xF0
|
|
lsls r4, 4
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
cmp r0, r4
|
|
beq _08040BE4
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
adds r0, r1, r7
|
|
str r0, [r2]
|
|
_08040BE4:
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
lsrs r0, 8
|
|
ldr r1, [r5]
|
|
muls r0, r1
|
|
str r0, [r5]
|
|
ldr r0, =gUnknown_082DB23D
|
|
b _080412D0
|
|
.pool
|
|
_08040C0C:
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040C28
|
|
b _080412DE
|
|
_08040C28:
|
|
adds r1, r3, r2
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _08040C32
|
|
b _080412DE
|
|
_08040C32:
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 3
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08040C42
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
_08040C42:
|
|
ldr r0, =gUnknown_082DB25F
|
|
b _080412D0
|
|
.pool
|
|
_08040C54:
|
|
ldr r4, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r5, r1, r0
|
|
ldr r2, [r5]
|
|
movs r0, 0x80
|
|
lsls r0, 20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08040C70
|
|
b _080412DE
|
|
_08040C70:
|
|
adds r3, r1, r4
|
|
ldrh r0, [r3, 0x28]
|
|
cmp r0, 0
|
|
bne _08040C7A
|
|
b _080412DE
|
|
_08040C7A:
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08040CAC
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r3, 0x2C]
|
|
lsrs r0, 2
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08040C9A
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08040C9A:
|
|
ldr r0, =gUnknown_082DB33F
|
|
b _080412D0
|
|
.pool
|
|
_08040CAC:
|
|
ldr r0, =0xf7ffffff
|
|
ands r2, r0
|
|
str r2, [r5]
|
|
b _080412DE
|
|
.pool
|
|
_08040CB8:
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 21
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040CD6
|
|
b _080412DE
|
|
_08040CD6:
|
|
adds r1, r3, r2
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _08040CE0
|
|
b _080412DE
|
|
_08040CE0:
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 2
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08040CF0
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
_08040CF0:
|
|
ldr r0, =gUnknown_082DB350
|
|
b _080412D0
|
|
.pool
|
|
_08040D00:
|
|
ldr r3, =gBattleMons
|
|
mov r8, r3
|
|
ldrb r0, [r6]
|
|
movs r3, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
movs r5, 0x50
|
|
add r5, r8
|
|
mov r10, r5
|
|
adds r4, r1, r5
|
|
ldr r2, [r4]
|
|
movs r5, 0xE0
|
|
lsls r5, 8
|
|
adds r0, r2, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08040D24
|
|
b _080412DE
|
|
_08040D24:
|
|
mov r7, r8
|
|
adds r0, r1, r7
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08040D30
|
|
b _080412DE
|
|
_08040D30:
|
|
ldr r1, =0xffffe000
|
|
adds r0, r2, r1
|
|
str r0, [r4]
|
|
ldrb r4, [r6]
|
|
adds r0, r4, 0
|
|
muls r0, r3
|
|
add r0, r10
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08040DC0
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
lsls r0, r4, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
strb r0, [r1, 0x10]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x5]
|
|
strb r0, [r1, 0x11]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x5]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB30E
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrb r0, [r6]
|
|
muls r0, r3
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08040DEC
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
b _08040DEC
|
|
.pool
|
|
_08040DC0:
|
|
ldr r2, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x1]
|
|
ldrb r1, [r6]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r3, [r0]
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
ldrb r0, [r1, 0x4]
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x5]
|
|
strb r0, [r2, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB320
|
|
str r0, [r1]
|
|
_08040DEC:
|
|
ldr r0, [r1]
|
|
b _080412D0
|
|
.pool
|
|
_08040E00:
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r3, r0
|
|
str r3, [r2]
|
|
ldrb r0, [r6]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =gUnknown_082DB234
|
|
bl b_call_bc_move_exec
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
mov r3, r8
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
add r0, r9
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _08040EC8
|
|
.pool
|
|
_08040E60:
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x70
|
|
ands r1, r0
|
|
adds r7, r2, 0
|
|
cmp r1, 0
|
|
beq _08040F6A
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
mov r5, r8
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08040EC8
|
|
mov r10, r7
|
|
adds r6, r4, 0
|
|
movs r1, 0x58
|
|
mov r8, r1
|
|
movs r3, 0x4C
|
|
adds r3, r7
|
|
mov r9, r3
|
|
str r0, [sp, 0x4]
|
|
movs r5, 0x7
|
|
mov r12, r5
|
|
_08040E9A:
|
|
ldrb r4, [r6]
|
|
mov r1, r8
|
|
muls r1, r4
|
|
mov r0, r9
|
|
adds r2, r1, r0
|
|
ldr r3, [r2]
|
|
adds r0, r3, 0
|
|
mov r5, r12
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08040EBA
|
|
adds r0, r1, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2B
|
|
bne _08040E00
|
|
_08040EBA:
|
|
adds r0, r4, 0x1
|
|
strb r0, [r6]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [sp, 0x4]
|
|
cmp r0, r1
|
|
bcc _08040E9A
|
|
_08040EC8:
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08040EE8
|
|
movs r3, 0x2
|
|
mov r9, r3
|
|
b _08041318
|
|
.pool
|
|
_08040EE8:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
strb r0, [r2]
|
|
ldr r2, =gBattleMons
|
|
ldrb r0, [r5]
|
|
movs r7, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r6, r2, 0
|
|
adds r6, 0x50
|
|
adds r1, r6
|
|
ldr r0, [r1]
|
|
subs r0, 0x10
|
|
str r0, [r1]
|
|
ldrb r0, [r5]
|
|
bl sub_803F90C
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08040F2C
|
|
ldrb r0, [r5]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08040F60
|
|
.pool
|
|
_08040F2C:
|
|
ldrb r3, [r5]
|
|
adds r0, r3, 0
|
|
muls r0, r7
|
|
adds r2, r0, r6
|
|
ldr r0, [r2]
|
|
movs r1, 0x70
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08040F54
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _08040F60
|
|
.pool
|
|
_08040F54:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
adds r0, r3, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
_08040F60:
|
|
ldr r0, =gUnknown_082DB2A6
|
|
bl b_call_bc_move_exec
|
|
movs r5, 0x1
|
|
mov r9, r5
|
|
_08040F6A:
|
|
mov r7, r9
|
|
cmp r7, 0x2
|
|
bne _08040F72
|
|
b _08041312
|
|
_08040F72:
|
|
b _080412DE
|
|
.pool
|
|
_08040F7C:
|
|
ldr r1, =gBattleMons
|
|
ldrb r0, [r6]
|
|
movs r7, 0x58
|
|
muls r0, r7
|
|
adds r5, r1, 0
|
|
adds r5, 0x50
|
|
adds r2, r0, r5
|
|
ldr r1, [r2]
|
|
movs r4, 0xC0
|
|
lsls r4, 4
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08040F9A
|
|
b _080412DE
|
|
_08040F9A:
|
|
ldr r3, =0xfffffc00
|
|
adds r0, r1, r3
|
|
str r0, [r2]
|
|
ldrb r0, [r6]
|
|
bl sub_803F90C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08040FBC
|
|
ldrb r0, [r6]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
b _080412DE
|
|
.pool
|
|
_08040FBC:
|
|
ldrb r0, [r6]
|
|
muls r0, r7
|
|
adds r2, r0, r5
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08040FCE
|
|
b _080412DE
|
|
_08040FCE:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08040FDA
|
|
b _080412DE
|
|
_08040FDA:
|
|
ldr r0, =0xffffefff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldrb r0, [r6]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
movs r4, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08040FF2
|
|
b _080412DE
|
|
_08040FF2:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x47
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
ldrb r0, [r6]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08041010
|
|
b _080412D4
|
|
_08041010:
|
|
ldr r0, =gUnknown_082DB2AF
|
|
bl b_call_bc_move_exec
|
|
b _080412D4
|
|
.pool
|
|
_08041024:
|
|
ldr r0, =gUnknown_020242BC
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, 3
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
adds r5, r1, r0
|
|
ldrb r1, [r5, 0xB]
|
|
lsls r1, 28
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _0804103C
|
|
b _080412DE
|
|
_0804103C:
|
|
movs r4, 0
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r1, r3, 0
|
|
muls r1, r0
|
|
adds r2, 0xC
|
|
adds r1, r2
|
|
ldrh r0, [r5, 0x4]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _0804107A
|
|
mov r12, r7
|
|
mov r8, r2
|
|
adds r5, r6, 0
|
|
movs r3, 0x58
|
|
_0804105A:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _0804107A
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
add r1, r12
|
|
lsls r0, r4, 1
|
|
muls r2, r3
|
|
adds r0, r2
|
|
add r0, r8
|
|
ldrh r1, [r1, 0x4]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _0804105A
|
|
_0804107A:
|
|
cmp r4, 0x4
|
|
bne _080410AC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
strh r1, [r0, 0x4]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0xB]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xB]
|
|
b _080412DE
|
|
.pool
|
|
_080410AC:
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldrb r3, [r2, 0xB]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
adds r2, r1, 0
|
|
cmp r2, 0
|
|
beq _080410D4
|
|
b _080412DE
|
|
_080410D4:
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r2, [r0, 0x4]
|
|
ldr r0, =gUnknown_082DAE23
|
|
b _080412D0
|
|
.pool
|
|
_080410E8:
|
|
ldr r3, =gUnknown_020242BC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r3
|
|
ldrb r5, [r2, 0xE]
|
|
lsls r4, r5, 28
|
|
cmp r4, 0
|
|
bne _080410FE
|
|
b _080412DE
|
|
_080410FE:
|
|
ldr r7, =gBattleMons
|
|
mov r8, r7
|
|
ldrb r0, [r2, 0xC]
|
|
lsls r0, 1
|
|
movs r7, 0x58
|
|
muls r1, r7
|
|
adds r0, r1
|
|
mov r1, r8
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r2, 0x6]
|
|
cmp r0, r1
|
|
beq _0804113C
|
|
movs r0, 0
|
|
strh r0, [r2, 0x6]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1, 0xE]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xE]
|
|
b _080412DE
|
|
.pool
|
|
_0804113C:
|
|
lsrs r1, r4, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r4, 0x10
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xE]
|
|
cmp r1, 0
|
|
beq _08041172
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
muls r1, r7
|
|
ldrb r0, [r0, 0xC]
|
|
adds r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x24
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08041172
|
|
b _080412DE
|
|
_08041172:
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x6]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1, 0xE]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldr r0, =gUnknown_082DAE37
|
|
b _080412D0
|
|
.pool
|
|
_0804119C:
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080411B4
|
|
adds r0, r2, 0
|
|
subs r0, 0x8
|
|
str r0, [r1]
|
|
_080411B4:
|
|
ldr r1, [r7]
|
|
b _080412E2
|
|
.pool
|
|
_080411BC:
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r2
|
|
ldrb r2, [r3, 0x12]
|
|
lsls r1, r2, 28
|
|
cmp r1, 0
|
|
beq _080411F6
|
|
lsrs r1, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x12]
|
|
cmp r1, 0
|
|
bne _080411F6
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r2, [r6]
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffdff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
_080411F6:
|
|
ldr r1, [r7]
|
|
b _080412E2
|
|
.pool
|
|
_08041208:
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r2
|
|
ldrb r2, [r3, 0x13]
|
|
lsls r1, r2, 28
|
|
cmp r1, 0
|
|
beq _0804122E
|
|
lsrs r1, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x13]
|
|
_0804122E:
|
|
ldr r1, [r7]
|
|
b _080412E2
|
|
.pool
|
|
_08041238:
|
|
ldr r4, =gUnknown_020242AC
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r3, 0xC0
|
|
lsls r3, 5
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080412DE
|
|
ldr r5, =0xfffff800
|
|
adds r0, r1, r5
|
|
str r0, [r2]
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080412DE
|
|
ldr r3, =gBattleMons
|
|
movs r5, 0x58
|
|
adds r1, r2, 0
|
|
muls r1, r5
|
|
adds r4, r3, 0
|
|
adds r4, 0x4C
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080412DE
|
|
adds r0, r1, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x48
|
|
beq _080412DE
|
|
cmp r0, 0xF
|
|
beq _080412DE
|
|
adds r0, r2, 0
|
|
bl sub_8050650
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080412DE
|
|
ldrb r0, [r6]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
bl Random
|
|
ldrb r1, [r6]
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
adds r2, r4
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r1, 0x2
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r6]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_0202420E
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_082DB378
|
|
_080412D0:
|
|
bl b_call_bc_move_exec
|
|
_080412D4:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080412DE:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
_080412E2:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08041312
|
|
.pool
|
|
_08041304:
|
|
ldr r1, [r7]
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, [r7]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
_08041312:
|
|
mov r7, r9
|
|
cmp r7, 0
|
|
beq _0804131C
|
|
_08041318:
|
|
mov r0, r9
|
|
b _08041344
|
|
_0804131C:
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r2, [r5]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r2, 0x1]
|
|
adds r7, r5, 0
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08041338
|
|
_0804132E:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x13
|
|
bhi _08041338
|
|
bl _08040968
|
|
_08041338:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r1, [r0]
|
|
ldr r2, =0xfeffffdf
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
_08041344:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8040924
|
|
|
|
thumb_func_start sub_8041364
|
|
sub_8041364: @ 8041364
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0x01000020
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r3, [r1]
|
|
movs r4, 0xD0
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
mov r10, r2
|
|
adds r6, r1, 0
|
|
cmp r0, 0x1
|
|
bne _0804138E
|
|
b _08041548
|
|
_0804138E:
|
|
cmp r0, 0x1
|
|
bgt _080413A4
|
|
cmp r0, 0
|
|
beq _080413AC
|
|
b _08041708
|
|
.pool
|
|
_080413A4:
|
|
cmp r0, 0x2
|
|
bne _080413AA
|
|
b _0804169A
|
|
_080413AA:
|
|
b _08041708
|
|
_080413AC:
|
|
ldr r2, =0x000001a1
|
|
adds r0, r3, r2
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
mov r8, r1
|
|
ldrb r7, [r1]
|
|
cmp r0, r7
|
|
bcc _080413BE
|
|
b _08041532
|
|
_080413BE:
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r5, =gUnknown_02022F58
|
|
ldr r7, =gUnknown_020243D0
|
|
movs r0, 0x18
|
|
adds r0, r7
|
|
mov r12, r0
|
|
_080413CA:
|
|
ldr r0, [r6]
|
|
adds r3, r0, r2
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804140C
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
b _08041520
|
|
.pool
|
|
_0804140C:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
ldr r1, =gUnknown_020243D0
|
|
ldrb r0, [r4]
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _08041422
|
|
b _08041520
|
|
_08041422:
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
bne _08041520
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08041520
|
|
lsls r0, r2, 1
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xF8
|
|
bne _0804145C
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
b _08041462
|
|
.pool
|
|
_0804145C:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_08041462:
|
|
movs r0, 0xFD
|
|
strb r0, [r5]
|
|
movs r6, 0x2
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x1]
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
strb r0, [r5, 0x2]
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r5, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r5, 0x4]
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202420B
|
|
adds r0, r7, 0x4
|
|
ldrb r2, [r4]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r1, r7, 0
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
ldr r1, =0x0000ffff
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_082DAFE4
|
|
bl b_call_bc_move_exec
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080414CC
|
|
b _08041664
|
|
_080414CC:
|
|
eors r1, r6
|
|
mov r3, r9
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080414DA
|
|
b _08041664
|
|
_080414DA:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
ldr r2, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
ldr r4, =0x0000ffbf
|
|
adds r2, r4, 0
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
b _08041664
|
|
.pool
|
|
_08041520:
|
|
ldr r0, [r6]
|
|
ldr r2, =0x000001a1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08041532
|
|
b _080413CA
|
|
_08041532:
|
|
ldr r0, [r6]
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r3, =0x000001a1
|
|
adds r1, r0, r3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08041548:
|
|
adds r3, r6, 0
|
|
ldr r0, [r6]
|
|
ldr r2, =0x000001a1
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
cmp r0, r4
|
|
bcc _0804155E
|
|
b _08041684
|
|
_0804155E:
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r4, =gUnknown_02022F58
|
|
ldr r7, =gUnknown_020242BC
|
|
mov r12, r7
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r9, r0
|
|
_0804156A:
|
|
ldr r1, =gUnknown_0202407E
|
|
ldr r0, [r3]
|
|
adds r3, r0, r2
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
strb r0, [r5]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080415BC
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
b _08041670
|
|
.pool
|
|
_080415BC:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
ldr r7, =gUnknown_020242AC
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041670
|
|
movs r0, 0xFD
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x3]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r0, [r0, 0xF]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r4, 0x4]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
mov r3, r12
|
|
adds r4, r0, r3
|
|
ldrb r3, [r4, 0xF]
|
|
lsls r1, r3, 28
|
|
cmp r1, 0
|
|
bne _08041644
|
|
lsls r2, 2
|
|
adds r2, r7
|
|
ldr r0, [r2]
|
|
movs r1, 0x21
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
str r0, [r3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAF05
|
|
b _0804165C
|
|
.pool
|
|
_08041644:
|
|
lsrs r1, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r7, 0x10
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0xF]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAF20
|
|
_0804165C:
|
|
str r0, [r1]
|
|
ldr r0, [r1]
|
|
bl b_call_bc_move_exec
|
|
_08041664:
|
|
movs r0, 0x1
|
|
b _08041714
|
|
.pool
|
|
_08041670:
|
|
adds r3, r6, 0
|
|
ldr r0, [r6]
|
|
ldr r2, =0x000001a1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08041684
|
|
b _0804156A
|
|
_08041684:
|
|
ldr r0, [r6]
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r3, =0x000001a1
|
|
adds r1, r0, r3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_0804169A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041708
|
|
ldr r0, [r6]
|
|
adds r0, 0xDA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08041708
|
|
ldr r1, =gBattleMons
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _08041708
|
|
adds r0, r1, 0
|
|
adds r0, 0x80
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08041708
|
|
movs r4, 0
|
|
_080416C6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl b_cancel_multi_turn_move_maybe
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _080416C6
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB8F3
|
|
str r0, [r1]
|
|
bl b_call_bc_move_exec
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r4, 0xD0
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08041664
|
|
.pool
|
|
_08041708:
|
|
mov r7, r10
|
|
ldr r0, [r7]
|
|
ldr r1, =0xfeffffdf
|
|
ands r0, r1
|
|
str r0, [r7]
|
|
movs r0, 0
|
|
_08041714:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8041364
|
|
|
|
thumb_func_start sub_8041728
|
|
sub_8041728: @ 8041728
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041770
|
|
b _08041A0A
|
|
.pool
|
|
_08041744:
|
|
ldr r0, =gUnknown_082DA7C4
|
|
bl b_call_bc_move_exec
|
|
ldr r0, [r5]
|
|
adds r0, 0x4D
|
|
movs r1, 0x2
|
|
b _08041764
|
|
.pool
|
|
_08041758:
|
|
ldr r0, =gUnknown_082DA7CD
|
|
bl b_call_bc_move_exec
|
|
ldr r0, [r5]
|
|
adds r0, 0x4D
|
|
movs r1, 0x5
|
|
_08041764:
|
|
strb r1, [r0]
|
|
_08041766:
|
|
movs r0, 0x1
|
|
b _08041A0C
|
|
.pool
|
|
_08041770:
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
_08041774:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4D
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bls _08041782
|
|
b _080419FC
|
|
_08041782:
|
|
lsls r0, 2
|
|
ldr r1, =_08041794
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08041794:
|
|
.4byte _080417B4
|
|
.4byte _08041806
|
|
.4byte _080418A0
|
|
.4byte _080418E2
|
|
.4byte _080418F6
|
|
.4byte _08041960
|
|
.4byte _08041994
|
|
.4byte _080419FC
|
|
_080417B4:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
adds r0, 0x4E
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
adds r1, 0x4D
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _08041806
|
|
ldr r6, =gUnknown_02024210
|
|
_080417D4:
|
|
ldrb r0, [r6]
|
|
ldr r2, =gBitTable
|
|
lsls r1, r5, 2
|
|
adds r1, r2
|
|
ldr r4, [r1]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080417FC
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080417FC
|
|
ldrb r0, [r6]
|
|
bics r0, r4
|
|
strb r0, [r6]
|
|
_080417FC:
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _080417D4
|
|
_08041806:
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_0202420D
|
|
mov r12, r1
|
|
ldr r2, =gEnemyMonIndex
|
|
mov r5, r8
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gUnknown_0202406E
|
|
_08041816:
|
|
ldr r3, [r5]
|
|
adds r1, r3, 0
|
|
adds r1, 0x4E
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
mov r4, r12
|
|
strb r0, [r4]
|
|
ldrb r4, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0804185E
|
|
adds r0, r3, 0
|
|
adds r0, 0xDF
|
|
ldrb r1, [r0]
|
|
ldr r3, =gBitTable
|
|
lsls r0, r4, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804185E
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
lsls r0, r4, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804185E
|
|
b _08041744
|
|
_0804185E:
|
|
ldr r0, [r5]
|
|
adds r0, 0x4E
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08041816
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4D
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
b _080419FC
|
|
.pool
|
|
_080418A0:
|
|
ldr r0, =gUnknown_0202420D
|
|
ldrb r0, [r0]
|
|
bl sub_803F9EC
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0x4E
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080418D8
|
|
ldr r0, [r2]
|
|
adds r0, 0x4D
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
b _080419FA
|
|
.pool
|
|
_080418D8:
|
|
ldr r0, [r2]
|
|
adds r0, 0x4D
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080419FA
|
|
_080418E2:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
adds r0, 0x4E
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
adds r1, 0x4D
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080418F6:
|
|
ldr r0, =gUnknown_0202420D
|
|
mov r12, r0
|
|
ldr r7, =gEnemyMonIndex
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r2, =gBattleMons
|
|
ldr r6, =gBitTable
|
|
_08041902:
|
|
ldr r0, [r5]
|
|
adds r4, r0, 0
|
|
adds r4, 0x4E
|
|
ldrb r0, [r4]
|
|
strb r0, [r7]
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrb r3, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08041930
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08041930
|
|
b _08041758
|
|
_08041930:
|
|
adds r0, r3, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _08041902
|
|
b _08041978
|
|
.pool
|
|
_08041960:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4E
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08041988
|
|
_08041978:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
adds r0, 0x4D
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
b _080419FC
|
|
.pool
|
|
_08041988:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4D
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
b _080419FC
|
|
_08041994:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080419AE
|
|
b _08041766
|
|
_080419AE:
|
|
str r0, [sp]
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080419C4
|
|
b _08041766
|
|
_080419C4:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080419D8
|
|
b _08041766
|
|
_080419D8:
|
|
str r0, [sp]
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080419EE
|
|
b _08041766
|
|
_080419EE:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0x4D
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080419FA:
|
|
mov r8, r2
|
|
_080419FC:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
adds r0, 0x4D
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
beq _08041A0A
|
|
b _08041774
|
|
_08041A0A:
|
|
movs r0, 0
|
|
_08041A0C:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8041728
|
|
|
|
thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
|
|
b_clear_atk_up_if_hit_flag_unless_enraged: @ 8041A1C
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5]
|
|
cmp r3, r0
|
|
bge _08041A54
|
|
ldr r4, =gUnknown_02024274
|
|
movs r6, 0x80
|
|
lsls r6, 16
|
|
ldr r2, =gUnknown_020240D4
|
|
_08041A32:
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08041A48
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x63
|
|
beq _08041A48
|
|
ldr r0, =0xff7fffff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
_08041A48:
|
|
adds r4, 0x2
|
|
adds r2, 0x58
|
|
adds r3, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r3, r0
|
|
blt _08041A32
|
|
_08041A54:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
|
|
|
|
thumb_func_start sub_8041A6C
|
|
sub_8041A6C: @ 8041A6C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_02024478
|
|
mov r10, r1
|
|
ldr r2, =gUnknown_0202449C
|
|
mov r8, r2
|
|
b _08041A9A
|
|
.pool
|
|
_08041A90:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _08041A9A
|
|
bl _08042388
|
|
_08041A9A:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r7, =0x000001a3
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xE
|
|
bls _08041AAC
|
|
bl _08042376
|
|
_08041AAC:
|
|
lsls r0, 2
|
|
ldr r1, =_08041AC0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08041AC0:
|
|
.4byte _08041AFC
|
|
.4byte _08041B48
|
|
.4byte _08041C90
|
|
.4byte _08041D50
|
|
.4byte _08041DC4
|
|
.4byte _08041E40
|
|
.4byte _08041EB8
|
|
.4byte _08041F38
|
|
.4byte _08041FC0
|
|
.4byte _08042028
|
|
.4byte _08042114
|
|
.4byte _08042194
|
|
.4byte _08042234
|
|
.4byte _0804231C
|
|
.4byte _08042376
|
|
_08041AFC:
|
|
ldr r1, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfdffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r2, [r3]
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xffffbfff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, =0x000001a3
|
|
adds r1, r0, r2
|
|
bl _08042370
|
|
.pool
|
|
_08041B48:
|
|
ldr r7, =gBattleMons
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r1, [r4]
|
|
movs r5, 0x58
|
|
adds r0, r1, 0
|
|
muls r0, r5
|
|
adds r6, r7, 0
|
|
adds r6, 0x4C
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
movs r3, 0x7
|
|
mov r8, r3
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08041B68
|
|
b _08041C6E
|
|
_08041B68:
|
|
adds r0, r1, 0
|
|
bl sub_8050650
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08041BC8
|
|
ldrb r0, [r4]
|
|
adds r2, r0, 0
|
|
muls r2, r5
|
|
adds r2, r6
|
|
ldr r0, [r2]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldrb r0, [r4]
|
|
adds r2, r0, 0
|
|
muls r2, r5
|
|
adds r0, r7, 0
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB220
|
|
str r0, [r1]
|
|
movs r4, 0x2
|
|
mov r9, r4
|
|
b _08041C6E
|
|
.pool
|
|
_08041BC8:
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r0, r1, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
movs r3, 0x1
|
|
cmp r0, 0x30
|
|
bne _08041BDC
|
|
movs r3, 0x2
|
|
_08041BDC:
|
|
adds r2, r1, r6
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
mov r7, r8
|
|
ands r0, r7
|
|
cmp r0, r3
|
|
bcs _08041BF4
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
b _08041BF8
|
|
_08041BF4:
|
|
subs r0, r1, r3
|
|
str r0, [r2]
|
|
_08041BF8:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08041C50
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xAD
|
|
beq _08041C6E
|
|
cmp r0, 0xD6
|
|
beq _08041C6E
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB213
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0x2
|
|
mov r9, r0
|
|
b _08041C6E
|
|
.pool
|
|
_08041C50:
|
|
adds r2, 0x50
|
|
adds r2, r1, r2
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB220
|
|
str r0, [r1]
|
|
movs r1, 0x2
|
|
mov r9, r1
|
|
_08041C6E:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r3, =0x000001a3
|
|
adds r2, r0, r3
|
|
b _0804216A
|
|
.pool
|
|
_08041C90:
|
|
ldr r1, =gBattleMons
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r5, r1, 0
|
|
adds r5, 0x4C
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041D30
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _08041D08
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7D
|
|
bne _08041CD6
|
|
b _08042162
|
|
_08041CD6:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB26A
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _08041D28
|
|
.pool
|
|
_08041D08:
|
|
ldrb r0, [r7]
|
|
adds r2, r0, 0
|
|
muls r2, r6
|
|
adds r2, r5
|
|
ldr r0, [r2]
|
|
movs r1, 0x21
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB277
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
_08041D28:
|
|
movs r7, 0x2
|
|
mov r9, r7
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
_08041D30:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, =0x000001a3
|
|
adds r1, r0, r2
|
|
b _08042370
|
|
.pool
|
|
_08041D50:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x36
|
|
beq _08041D66
|
|
b _08042162
|
|
_08041D66:
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x18]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08041D7A
|
|
b _08042162
|
|
_08041D7A:
|
|
adds r0, r2, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6AD
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0804215E
|
|
.pool
|
|
_08041DC4:
|
|
ldr r1, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041E10
|
|
ldr r0, =0xffbfffff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x19]
|
|
ldrb r0, [r3]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D9462
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r7, 0x1
|
|
mov r9, r7
|
|
_08041E10:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r3, =0x000001a3
|
|
adds r2, r0, r3
|
|
b _0804216A
|
|
.pool
|
|
_08041E40:
|
|
ldr r1, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08041E8C
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r2, [r3]
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0x2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r3]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB29B
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r4, 0x1
|
|
mov r9, r4
|
|
_08041E8C:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r7, =0x000001a3
|
|
adds r2, r0, r7
|
|
b _0804216A
|
|
.pool
|
|
_08041EB8:
|
|
ldr r0, =gUnknown_020242BC
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r1, 0x4]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08041F04
|
|
cmp r1, 0
|
|
beq _08041F04
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, 0x17]
|
|
ldrb r0, [r3]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAE14
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08041F04:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r3, =0x000001a3
|
|
adds r2, r0, r3
|
|
b _0804216A
|
|
.pool
|
|
_08041F38:
|
|
ldr r0, =gUnknown_020242BC
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r3, [r4]
|
|
lsls r1, r3, 3
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x13]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
beq _08041F8C
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _08041F8C
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r2, r3, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0x2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r4]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB0A4
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r4, 0x1
|
|
mov r9, r4
|
|
_08041F8C:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r7, =0x000001a3
|
|
adds r2, r0, r7
|
|
b _0804216A
|
|
.pool
|
|
_08041FC0:
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
bl sub_8040130
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08041FFE
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r2, [r4]
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r0, [r4]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB176
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08041FFE:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r3, =0x000001a3
|
|
adds r2, r0, r3
|
|
b _0804216A
|
|
.pool
|
|
_08042028:
|
|
ldr r7, =gBattleMons
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r4, r7, 0
|
|
adds r4, 0x50
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r3, 0x7
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080420FA
|
|
subs r0, r1, 0x1
|
|
str r0, [r2]
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080420E8
|
|
bl Random
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0804207C
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
bl b_movescr_stack_push_cursor
|
|
b _080420C6
|
|
.pool
|
|
_0804207C:
|
|
ldr r0, =gUnknown_02024332
|
|
movs r4, 0x1
|
|
strb r1, [r0, 0x5]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r7
|
|
movs r0, 0x28
|
|
str r0, [sp]
|
|
str r2, [sp, 0x4]
|
|
ldrb r0, [r5]
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r5]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_806957C
|
|
ldr r1, =gBattleMoveDamage
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r5]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
orrs r0, r4
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_080420C6:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB2BD
|
|
b _080420F0
|
|
.pool
|
|
_080420E8:
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB300
|
|
_080420F0:
|
|
str r0, [r1]
|
|
movs r4, 0x1
|
|
mov r9, r4
|
|
ldr r7, =gUnknown_0202449C
|
|
mov r8, r7
|
|
_080420FA:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, =0x000001a3
|
|
adds r1, r0, r2
|
|
b _08042370
|
|
.pool
|
|
_08042114:
|
|
ldr r1, =gBattleMons
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042162
|
|
bl Random
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08042162
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r2, [r4]
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB28B
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_0804215E:
|
|
movs r3, 0x1
|
|
mov r9, r3
|
|
_08042162:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldr r4, =0x000001a3
|
|
adds r2, r0, r4
|
|
_0804216A:
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _08042376
|
|
.pool
|
|
_08042194:
|
|
ldr r1, =gBattleMons
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0xF0
|
|
lsls r0, 12
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804220E
|
|
lsrs r0, r1, 16
|
|
bl CountTrailingZeroBits
|
|
ldr r1, =gUnknown_02024474
|
|
strb r0, [r1, 0x17]
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080421D8
|
|
bl b_movescr_stack_push_cursor
|
|
b _08042200
|
|
.pool
|
|
_080421D8:
|
|
ldr r0, =gUnknown_082DB334
|
|
bl b_movescr_stack_push
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r2, [r4]
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldrb r0, [r4]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
_08042200:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB327
|
|
str r0, [r1]
|
|
movs r7, 0x1
|
|
mov r9, r7
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
_0804220E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, =0x000001a3
|
|
adds r1, r0, r2
|
|
b _08042370
|
|
.pool
|
|
_08042234:
|
|
ldr r1, =gBattleMons
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r1, 0x50
|
|
adds r3, r0, r1
|
|
ldr r2, [r3]
|
|
movs r4, 0xC0
|
|
lsls r4, 2
|
|
adds r0, r2, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08042306
|
|
ldr r7, =0xffffff00
|
|
adds r0, r2, r7
|
|
str r0, [r3]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08042280
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAD71
|
|
b _08042300
|
|
.pool
|
|
_08042280:
|
|
ldr r3, =gUnknown_020241F8
|
|
lsls r0, r2, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080422FC
|
|
ldr r1, =gUnknown_020241EA
|
|
movs r0, 0x75
|
|
strh r0, [r1]
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
lsls r0, 1
|
|
mov r1, r10
|
|
str r0, [r1]
|
|
ldr r4, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_02024288
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080422CA
|
|
movs r0, 0x75
|
|
movs r1, 0x1
|
|
bl sub_80458E0
|
|
strb r0, [r4]
|
|
_080422CA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAD7C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_0202449C
|
|
mov r8, r2
|
|
b _08042302
|
|
.pool
|
|
_080422FC:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DADC4
|
|
_08042300:
|
|
str r0, [r1]
|
|
_08042302:
|
|
movs r3, 0x1
|
|
mov r9, r3
|
|
_08042306:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r7, =0x000001a3
|
|
adds r1, r0, r7
|
|
b _08042370
|
|
.pool
|
|
_0804231C:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x4C
|
|
adds r4, r0, r1
|
|
ldr r3, [r4]
|
|
movs r0, 0x20
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08042368
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7D
|
|
bne _08042360
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r3, r0
|
|
str r3, [r4]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB277
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_08042360:
|
|
movs r0, 0x2
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_0202449C
|
|
mov r8, r1
|
|
_08042368:
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
ldr r3, =0x000001a3
|
|
adds r1, r0, r3
|
|
_08042370:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08042376:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r7, =0x000001a3
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xE
|
|
beq _08042388
|
|
bl _08041A90
|
|
_08042388:
|
|
mov r0, r9
|
|
cmp r0, 0x2
|
|
bne _080423B4
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240D0
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_080423B4:
|
|
mov r0, r9
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8041A6C
|
|
|
|
thumb_func_start sub_80423F4
|
|
sub_80423F4: @ 80423F4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042424
|
|
movs r0, 0
|
|
b _080426A0
|
|
.pool
|
|
_08042424:
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804249C
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _08042442
|
|
ldr r2, =gPlayerParty
|
|
mov r8, r2
|
|
_08042442:
|
|
movs r0, 0x2
|
|
ands r0, r4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 25
|
|
lsls r0, r6, 1
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0x3
|
|
cmp r4, r0
|
|
bge _0804248C
|
|
adds r7, r0, 0
|
|
_08042456:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08042486
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08042486
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0804248C
|
|
_08042486:
|
|
adds r4, 0x1
|
|
cmp r4, r7
|
|
blt _08042456
|
|
_0804248C:
|
|
movs r1, 0
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
b _08042556
|
|
.pool
|
|
_0804249C:
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804256C
|
|
movs r0, 0x80
|
|
lsls r0, 16
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080424E4
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080424D0
|
|
ldr r2, =gPlayerParty
|
|
mov r8, r2
|
|
adds r0, r4, 0
|
|
bl sub_806D864
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _08042502
|
|
.pool
|
|
_080424D0:
|
|
ldr r0, =gEnemyParty
|
|
mov r8, r0
|
|
movs r1, 0x1
|
|
eors r1, r4
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r6, r0, 31
|
|
b _0804250C
|
|
.pool
|
|
_080424E4:
|
|
adds r0, r4, 0
|
|
bl sub_806D864
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _08042502
|
|
ldr r2, =gPlayerParty
|
|
mov r8, r2
|
|
_08042502:
|
|
adds r0, r7, 0
|
|
bl sub_806D82C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0804250C:
|
|
lsls r0, r6, 1
|
|
adds r4, r0, r6
|
|
adds r1, r4, 0x3
|
|
mov r9, r0
|
|
cmp r4, r1
|
|
bge _08042550
|
|
adds r7, r1, 0
|
|
_0804251A:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804254A
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804254A
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _08042550
|
|
_0804254A:
|
|
adds r4, 0x1
|
|
cmp r4, r7
|
|
blt _0804251A
|
|
_08042550:
|
|
movs r1, 0
|
|
mov r2, r9
|
|
adds r0, r2, r6
|
|
_08042556:
|
|
adds r0, 0x3
|
|
cmp r4, r0
|
|
bne _0804255E
|
|
movs r1, 0x1
|
|
_0804255E:
|
|
adds r0, r1, 0
|
|
b _080426A0
|
|
.pool
|
|
_0804256C:
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080425DA
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080425DA
|
|
ldr r0, =gEnemyParty
|
|
mov r8, r0
|
|
movs r6, 0x3
|
|
cmp r4, 0x1
|
|
bne _08042590
|
|
movs r6, 0
|
|
_08042590:
|
|
adds r4, r6, 0
|
|
adds r6, r4, 0x3
|
|
b _0804259E
|
|
.pool
|
|
_0804259C:
|
|
adds r4, 0x1
|
|
_0804259E:
|
|
cmp r4, r6
|
|
bge _080425D2
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804259C
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804259C
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _0804259C
|
|
_080425D2:
|
|
movs r0, 0
|
|
cmp r4, r6
|
|
bne _080426A0
|
|
b _0804269E
|
|
_080425DA:
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08042608
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, =gEnemyParty
|
|
mov r8, r2
|
|
b _08042620
|
|
.pool
|
|
_08042608:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gPlayerParty
|
|
mov r8, r0
|
|
_08042620:
|
|
mov r1, r10
|
|
cmp r1, 0x6
|
|
bne _08042630
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r10, r0
|
|
_08042630:
|
|
mov r2, r9
|
|
cmp r2, 0x6
|
|
bne _08042640
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
_08042640:
|
|
movs r4, 0
|
|
_08042642:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08042692
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08042692
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _08042692
|
|
cmp r4, r10
|
|
beq _08042692
|
|
cmp r4, r9
|
|
beq _08042692
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r7, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _08042692
|
|
adds r0, r6, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _08042698
|
|
_08042692:
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _08042642
|
|
_08042698:
|
|
movs r0, 0
|
|
cmp r4, 0x6
|
|
bne _080426A0
|
|
_0804269E:
|
|
movs r0, 0x1
|
|
_080426A0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80423F4
|
|
|
|
thumb_func_start castform_switch
|
|
castform_switch: @ 80426BC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r6
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4]
|
|
ldr r0, =0x00000181
|
|
cmp r1, r0
|
|
bne _08042760
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3B
|
|
bne _08042760
|
|
ldrh r0, [r4, 0x28]
|
|
cmp r0, 0
|
|
beq _08042760
|
|
str r5, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804270E
|
|
str r5, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042734
|
|
_0804270E:
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08042734
|
|
adds r1, r4, 0
|
|
adds r1, 0x22
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08042734
|
|
strb r5, [r2]
|
|
strb r5, [r1]
|
|
movs r0, 0x1
|
|
b _08042818
|
|
.pool
|
|
_08042734:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08042760
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042764
|
|
_08042760:
|
|
movs r0, 0
|
|
b _08042818
|
|
_08042764:
|
|
ldr r1, =gBattleWeather
|
|
ldrh r0, [r1]
|
|
movs r2, 0xE7
|
|
ands r2, r0
|
|
adds r4, r1, 0
|
|
cmp r2, 0
|
|
bne _08042792
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r6
|
|
adds r1, r0, r1
|
|
adds r3, r1, 0
|
|
adds r3, 0x21
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _08042792
|
|
adds r1, 0x22
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08042792
|
|
strb r2, [r3]
|
|
strb r2, [r1]
|
|
movs r5, 0x1
|
|
_08042792:
|
|
ldrh r1, [r4]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427BE
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r6
|
|
adds r1, r0, r1
|
|
adds r2, r1, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xA
|
|
beq _080427BE
|
|
adds r1, 0x22
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xA
|
|
beq _080427BE
|
|
movs r0, 0xA
|
|
strb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r5, 0x2
|
|
_080427BE:
|
|
ldrh r1, [r4]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427EA
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r6
|
|
adds r1, r0, r1
|
|
adds r2, r1, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xB
|
|
beq _080427EA
|
|
adds r1, 0x22
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB
|
|
beq _080427EA
|
|
movs r0, 0xB
|
|
strb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r5, 0x3
|
|
_080427EA:
|
|
ldrh r1, [r4]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042816
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r6
|
|
adds r1, r0, r1
|
|
adds r2, r1, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xF
|
|
beq _08042816
|
|
adds r1, 0x22
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xF
|
|
beq _08042816
|
|
movs r0, 0xF
|
|
strb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r5, 0x4
|
|
_08042816:
|
|
adds r0, r5, 0
|
|
_08042818:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end castform_switch
|
|
|
|
thumb_func_start ability_something
|
|
ability_something: @ 8042828
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
ldr r4, [sp, 0x48]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r5, =gUnknown_0202420B
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r5]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08042864
|
|
mov r1, r10
|
|
strb r1, [r5]
|
|
_08042864:
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08042894
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
b _080428A4
|
|
.pool
|
|
_08042894:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
_080428A4:
|
|
adds r7, r1, r0
|
|
ldr r5, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r5]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080428B6
|
|
mov r2, r10
|
|
strb r2, [r5]
|
|
_080428B6:
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080428E8
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
b _080428F8
|
|
.pool
|
|
_080428E8:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
_080428F8:
|
|
adds r5, r1, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x10]
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x14]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804293A
|
|
bl _0804443A
|
|
_0804293A:
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
beq _08042958
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r3, [r0]
|
|
adds r7, r0, 0
|
|
b _0804296E
|
|
.pool
|
|
_08042958:
|
|
ldr r2, =gUnknown_0202420A
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r5, r10
|
|
muls r5, r0
|
|
adds r0, r5, 0
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r7, r2, 0
|
|
_0804296E:
|
|
cmp r4, 0
|
|
beq _08042980
|
|
adds r5, r4, 0
|
|
b _08042984
|
|
.pool
|
|
_08042980:
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r5, [r0]
|
|
_08042984:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x13]
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _080429A0
|
|
movs r3, 0x3F
|
|
ands r3, r0
|
|
b _080429AC
|
|
.pool
|
|
_080429A0:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r3, [r0, 0x2]
|
|
_080429AC:
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0x13
|
|
bls _080429B6
|
|
bl _0804441E
|
|
_080429B6:
|
|
lsls r0, 2
|
|
ldr r1, =_080429C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080429C8:
|
|
.4byte _08042A18
|
|
.4byte _08042CDC
|
|
.4byte _08042EF8
|
|
.4byte _08042F8C
|
|
.4byte _080431AC
|
|
.4byte _08043908
|
|
.4byte _08043C6C
|
|
.4byte _08043CBC
|
|
.4byte _08043D40
|
|
.4byte _08043DC4
|
|
.4byte _08043FE4
|
|
.4byte _08043E08
|
|
.4byte _08044028
|
|
.4byte _08044084
|
|
.4byte _080440E0
|
|
.4byte _080441DC
|
|
.4byte _08044220
|
|
.4byte _0804427C
|
|
.4byte _080443EC
|
|
.4byte _08044196
|
|
_08042A18:
|
|
ldr r2, =gUnknown_0202420B
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r2]
|
|
adds r5, r0, 0
|
|
ldrb r3, [r5]
|
|
cmp r1, r3
|
|
bcc _08042A2A
|
|
mov r0, r10
|
|
strb r0, [r2]
|
|
_08042A2A:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x2D
|
|
bne _08042A32
|
|
b _08042BA8
|
|
_08042A32:
|
|
cmp r0, 0x2D
|
|
bgt _08042A64
|
|
cmp r0, 0xD
|
|
bne _08042A3C
|
|
b _08042CA4
|
|
_08042A3C:
|
|
cmp r0, 0xD
|
|
bgt _08042A54
|
|
cmp r0, 0x2
|
|
bne _08042A46
|
|
b _08042B78
|
|
_08042A46:
|
|
bl _0804441E
|
|
.pool
|
|
_08042A54:
|
|
cmp r0, 0x16
|
|
bne _08042A5A
|
|
b _08042C08
|
|
_08042A5A:
|
|
cmp r0, 0x24
|
|
bne _08042A60
|
|
b _08042C68
|
|
_08042A60:
|
|
bl _0804441E
|
|
_08042A64:
|
|
cmp r0, 0x46
|
|
bne _08042A6A
|
|
b _08042BD8
|
|
_08042A6A:
|
|
cmp r0, 0x46
|
|
bgt _08042A78
|
|
cmp r0, 0x3B
|
|
bne _08042A74
|
|
b _08042C3C
|
|
_08042A74:
|
|
bl _0804441E
|
|
_08042A78:
|
|
cmp r0, 0x4D
|
|
bne _08042A7E
|
|
b _08042CA4
|
|
_08042A7E:
|
|
cmp r0, 0xFF
|
|
beq _08042A86
|
|
bl _0804441E
|
|
_08042A86:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042B4C
|
|
bl weather_get_current
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x3
|
|
cmp r0, 0xA
|
|
bhi _08042B4C
|
|
lsls r0, 2
|
|
ldr r1, =_08042AB4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08042AB4:
|
|
.4byte _08042AE0
|
|
.4byte _08042B4C
|
|
.4byte _08042AE0
|
|
.4byte _08042B4C
|
|
.4byte _08042B4C
|
|
.4byte _08042B04
|
|
.4byte _08042B4C
|
|
.4byte _08042B4C
|
|
.4byte _08042B4C
|
|
.4byte _08042B28
|
|
.4byte _08042AE0
|
|
_08042AE0:
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042B4C
|
|
movs r0, 0x5
|
|
strh r0, [r2]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0xA
|
|
strb r0, [r1, 0x10]
|
|
mov r2, r10
|
|
strb r2, [r1, 0x17]
|
|
b _08042B42
|
|
.pool
|
|
_08042B04:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r1, [r3]
|
|
movs r2, 0x18
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042B4C
|
|
strh r2, [r3]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x10]
|
|
mov r3, r10
|
|
strb r3, [r1, 0x17]
|
|
b _08042B42
|
|
.pool
|
|
_08042B28:
|
|
ldr r3, =gBattleWeather
|
|
ldrh r1, [r3]
|
|
movs r2, 0x60
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042B4C
|
|
strh r2, [r3]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0xB
|
|
strb r0, [r1, 0x10]
|
|
mov r5, r10
|
|
strb r5, [r1, 0x17]
|
|
_08042B42:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08042B4C:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08042B56
|
|
bl _0804443A
|
|
_08042B56:
|
|
bl weather_get_current
|
|
ldr r1, =gUnknown_02024332
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =gUnknown_082DACE7
|
|
bl b_push_move_exec
|
|
bl _0804441E
|
|
.pool
|
|
_08042B78:
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042B88
|
|
bl _0804441E
|
|
_08042B88:
|
|
movs r0, 0x5
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_082DB430
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
mov r1, r10
|
|
strb r1, [r0, 0x17]
|
|
bl _080443D0
|
|
.pool
|
|
_08042BA8:
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042BB8
|
|
bl _0804441E
|
|
_08042BB8:
|
|
movs r0, 0x18
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_082DB470
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
mov r2, r10
|
|
strb r2, [r0, 0x17]
|
|
bl _080443D0
|
|
.pool
|
|
_08042BD8:
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042BE8
|
|
bl _0804441E
|
|
_08042BE8:
|
|
movs r0, 0x60
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_082DB52A
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
mov r3, r10
|
|
strb r3, [r0, 0x17]
|
|
bl _080443D0
|
|
.pool
|
|
_08042C08:
|
|
ldr r0, =gUnknown_0202437C
|
|
mov r5, r10
|
|
lsls r2, r5, 2
|
|
adds r1, r2, r5
|
|
lsls r1, 2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08042C20
|
|
bl _0804441E
|
|
_08042C20:
|
|
ldr r1, =gUnknown_020242AC
|
|
adds r1, r2, r1
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 12
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x8
|
|
b _08042C92
|
|
.pool
|
|
_08042C3C:
|
|
mov r0, r10
|
|
bl castform_switch
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
bne _08042C50
|
|
bl _0804443A
|
|
_08042C50:
|
|
ldr r0, =gUnknown_082DB4A9
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
mov r1, r10
|
|
strb r1, [r0, 0x17]
|
|
bl _080442E2
|
|
.pool
|
|
_08042C68:
|
|
ldr r0, =gUnknown_0202437C
|
|
mov r3, r10
|
|
lsls r2, r3, 2
|
|
adds r1, r2, r3
|
|
lsls r1, 2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
bge _08042C80
|
|
bl _0804441E
|
|
_08042C80:
|
|
ldr r1, =gUnknown_020242AC
|
|
adds r1, r2, r1
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 13
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x10
|
|
_08042C92:
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl _0804441E
|
|
.pool
|
|
_08042CA4:
|
|
movs r6, 0
|
|
ldrb r5, [r5]
|
|
cmp r6, r5
|
|
bcc _08042CB0
|
|
bl _0804441E
|
|
_08042CB0:
|
|
adds r0, r6, 0
|
|
bl castform_switch
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
beq _08042CC4
|
|
bl _080442D8
|
|
_08042CC4:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _08042CB0
|
|
bl _0804441E
|
|
.pool
|
|
_08042CDC:
|
|
ldr r5, =gBattleMons
|
|
mov r8, r5
|
|
movs r0, 0x58
|
|
mov r6, r10
|
|
muls r6, r0
|
|
adds r4, r6, r5
|
|
ldrh r0, [r4, 0x28]
|
|
cmp r0, 0
|
|
bne _08042CF2
|
|
bl _0804441E
|
|
_08042CF2:
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r1, r10
|
|
strb r1, [r0]
|
|
ldrb r5, [r7]
|
|
cmp r5, 0x2C
|
|
beq _08042D22
|
|
cmp r5, 0x2C
|
|
bgt _08042D14
|
|
cmp r5, 0x3
|
|
bne _08042D08
|
|
b _08042E84
|
|
_08042D08:
|
|
bl _0804441E
|
|
.pool
|
|
_08042D14:
|
|
cmp r5, 0x36
|
|
bne _08042D1A
|
|
b _08042ED0
|
|
_08042D1A:
|
|
cmp r5, 0x3D
|
|
beq _08042DA0
|
|
bl _0804441E
|
|
_08042D22:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08042D3E
|
|
bl _0804441E
|
|
_08042D3E:
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042D56
|
|
bl _0804441E
|
|
_08042D56:
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042D66
|
|
bl _0804441E
|
|
_08042D66:
|
|
ldrh r0, [r4, 0x2C]
|
|
ldrh r2, [r4, 0x28]
|
|
cmp r0, r2
|
|
bhi _08042D72
|
|
bl _0804441E
|
|
_08042D72:
|
|
strb r5, [r7]
|
|
ldr r0, =gUnknown_082DB45C
|
|
bl b_push_move_exec
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r4, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08042D8A
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08042D8A:
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
bl _080443D0
|
|
.pool
|
|
_08042DA0:
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r5, r6, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _08042DB0
|
|
bl _0804441E
|
|
_08042DB0:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _08042DCA
|
|
bl _0804441E
|
|
_08042DCA:
|
|
ldr r0, [r5]
|
|
movs r1, 0x88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042DDC
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC70
|
|
bl StringCopy
|
|
_08042DDC:
|
|
ldr r0, [r5]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042DEE
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC78
|
|
bl StringCopy
|
|
_08042DEE:
|
|
ldr r0, [r5]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E00
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC80
|
|
bl StringCopy
|
|
_08042E00:
|
|
ldr r0, [r5]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E12
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC88
|
|
bl StringCopy
|
|
_08042E12:
|
|
ldr r0, [r5]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E24
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC90
|
|
bl StringCopy
|
|
_08042E24:
|
|
str r4, [r5]
|
|
mov r1, r8
|
|
adds r1, 0x50
|
|
adds r1, r6, r1
|
|
ldr r0, [r1]
|
|
ldr r2, =0xf7ffffff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
ldr r4, =gUnknown_02024064
|
|
mov r3, r10
|
|
strb r3, [r4]
|
|
strb r3, [r0, 0x17]
|
|
ldr r0, =gUnknown_082DB484
|
|
bl b_push_move_exec
|
|
str r5, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
bl _080443D0
|
|
.pool
|
|
_08042E84:
|
|
ldrb r2, [r4, 0x1B]
|
|
movs r0, 0x1B
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, 0xB
|
|
ble _08042E92
|
|
bl _0804441E
|
|
_08042E92:
|
|
ldr r0, =gUnknown_020242BC
|
|
mov r5, r10
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x16]
|
|
cmp r0, 0x2
|
|
bne _08042EA8
|
|
bl _0804441E
|
|
_08042EA8:
|
|
adds r0, r2, 0x1
|
|
movs r1, 0
|
|
strb r0, [r4, 0x1B]
|
|
ldr r4, =gUnknown_02024474
|
|
movs r0, 0x11
|
|
strb r0, [r4, 0x10]
|
|
strb r1, [r4, 0x11]
|
|
ldr r0, =gUnknown_082DB444
|
|
bl b_push_move_exec
|
|
strb r5, [r4, 0x17]
|
|
bl _080443D0
|
|
.pool
|
|
_08042ED0:
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r3, [r1, 0x18]
|
|
lsls r0, r3, 31
|
|
lsrs r0, 31
|
|
movs r2, 0x1
|
|
eors r2, r0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x18]
|
|
bl _0804441E
|
|
.pool
|
|
_08042EF8:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x2B
|
|
beq _08042F02
|
|
bl _0804441E
|
|
_08042F02:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0831BCF8
|
|
ldrh r2, [r0]
|
|
ldr r3, =0x0000ffff
|
|
adds r1, r0, 0
|
|
cmp r2, r3
|
|
bne _08042F14
|
|
bl _0804441E
|
|
_08042F14:
|
|
cmp r2, r5
|
|
beq _08042F2C
|
|
adds r2, r1, 0
|
|
_08042F1A:
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
ldrh r0, [r2]
|
|
cmp r0, r3
|
|
bne _08042F28
|
|
bl _0804441E
|
|
_08042F28:
|
|
cmp r0, r5
|
|
bne _08042F1A
|
|
_08042F2C:
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _08042F3C
|
|
bl _0804441E
|
|
_08042F3C:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042F62
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
_08042F62:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB61F
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
bl _08044424
|
|
.pool
|
|
_08042F8C:
|
|
cmp r5, 0
|
|
bne _08042F94
|
|
bl _0804441E
|
|
_08042F94:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0xB
|
|
beq _08043004
|
|
cmp r0, 0xB
|
|
bgt _08042FA4
|
|
cmp r0, 0xA
|
|
beq _08042FAA
|
|
b _08043126
|
|
_08042FA4:
|
|
cmp r0, 0x12
|
|
beq _0804305C
|
|
b _08043126
|
|
_08042FAA:
|
|
cmp r3, 0xD
|
|
beq _08042FB0
|
|
b _08043126
|
|
_08042FB0:
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _08042FC2
|
|
b _08043126
|
|
_08042FC2:
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08042FF0
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB56F
|
|
b _08042FF4
|
|
.pool
|
|
_08042FF0:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB56E
|
|
_08042FF4:
|
|
str r0, [r1]
|
|
movs r1, 0x1
|
|
b _08043124
|
|
.pool
|
|
_08043004:
|
|
cmp r3, 0xB
|
|
beq _0804300A
|
|
b _08043126
|
|
_0804300A:
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _0804301C
|
|
b _08043126
|
|
_0804301C:
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08043048
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB56F
|
|
b _0804304C
|
|
.pool
|
|
_08043048:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB56E
|
|
_0804304C:
|
|
str r0, [r1]
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
b _08043126
|
|
.pool
|
|
_0804305C:
|
|
cmp r3, 0xA
|
|
bne _08043126
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043126
|
|
ldr r2, =gUnknown_020244A8
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
mov r5, r10
|
|
lsls r1, r5, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
movs r4, 0x1
|
|
ands r3, r4
|
|
adds r5, r1, 0
|
|
cmp r3, 0
|
|
bne _080430EC
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _080430C8
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5A8
|
|
b _080430CC
|
|
.pool
|
|
_080430C8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5A7
|
|
_080430CC:
|
|
str r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r5
|
|
ldr r0, [r1]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
mov r9, r0
|
|
b _08043126
|
|
.pool
|
|
_080430EC:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _0804311C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5A8
|
|
b _08043120
|
|
.pool
|
|
_0804311C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5A7
|
|
_08043120:
|
|
str r0, [r1]
|
|
movs r1, 0x2
|
|
_08043124:
|
|
mov r9, r1
|
|
_08043126:
|
|
mov r2, r9
|
|
cmp r2, 0x1
|
|
beq _08043130
|
|
bl _0804441E
|
|
_08043130:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2C]
|
|
ldrh r5, [r1, 0x28]
|
|
cmp r0, r5
|
|
bne _0804318C
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08043178
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB592
|
|
str r0, [r1]
|
|
bl _0804441E
|
|
.pool
|
|
_08043178:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB591
|
|
str r0, [r1]
|
|
bl _0804441E
|
|
.pool
|
|
_0804318C:
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 2
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _0804319C
|
|
mov r0, r9
|
|
str r0, [r2]
|
|
_0804319C:
|
|
ldr r0, [r2]
|
|
negs r0, r0
|
|
str r0, [r2]
|
|
bl _0804441E
|
|
.pool
|
|
_080431AC:
|
|
ldrb r0, [r7]
|
|
subs r0, 0x9
|
|
cmp r0, 0x2F
|
|
bls _080431B8
|
|
bl _0804441E
|
|
_080431B8:
|
|
lsls r0, 2
|
|
ldr r1, =_080431C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080431C8:
|
|
.4byte _080435E4
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _08043288
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _08043350
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _08043410
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _08043508
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _080436C0
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804441E
|
|
.4byte _0804379C
|
|
_08043288:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043298
|
|
bl _0804441E
|
|
_08043298:
|
|
cmp r5, 0xA5
|
|
bne _080432A0
|
|
bl _0804441E
|
|
_080432A0:
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _080432B4
|
|
bl _0804441E
|
|
_080432B4:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080432DC
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080432DC
|
|
bl _0804441E
|
|
_080432DC:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r1, r0, r1
|
|
adds r4, r1, 0
|
|
adds r4, 0x21
|
|
ldrb r0, [r4]
|
|
cmp r0, r3
|
|
bne _080432F6
|
|
bl _0804441E
|
|
_080432F6:
|
|
adds r2, r1, 0
|
|
adds r2, 0x22
|
|
ldrb r0, [r2]
|
|
cmp r0, r3
|
|
bne _08043304
|
|
bl _0804441E
|
|
_08043304:
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _0804330E
|
|
bl _0804441E
|
|
_0804330E:
|
|
strb r3, [r4]
|
|
strb r3, [r2]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
strb r3, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB64D
|
|
str r0, [r1]
|
|
bl _080443D0
|
|
.pool
|
|
_08043350:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043360
|
|
bl _0804441E
|
|
_08043360:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r3, r0, r1
|
|
ldrh r0, [r3, 0x28]
|
|
cmp r0, 0
|
|
bne _08043376
|
|
bl _0804441E
|
|
_08043376:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08043388
|
|
bl _0804441E
|
|
_08043388:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080433B0
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080433B0
|
|
bl _0804441E
|
|
_080433B0:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r2, 0x1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080433CA
|
|
bl _0804441E
|
|
_080433CA:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r3, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _080433D8
|
|
str r2, [r1]
|
|
_080433D8:
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB654
|
|
str r0, [r1]
|
|
bl _080443D0
|
|
.pool
|
|
_08043410:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043420
|
|
bl _0804441E
|
|
_08043420:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08043436
|
|
bl _0804441E
|
|
_08043436:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08043448
|
|
bl _0804441E
|
|
_08043448:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043470
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043470
|
|
bl _0804441E
|
|
_08043470:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043488
|
|
bl _0804441E
|
|
_08043488:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080434A0
|
|
bl _0804441E
|
|
_080434A0:
|
|
ldr r5, =gUnknown_02024332
|
|
movs r4, 0x3
|
|
_080434A4:
|
|
bl Random
|
|
ands r0, r4
|
|
strb r0, [r5, 0x3]
|
|
cmp r0, 0
|
|
beq _080434A4
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0x3
|
|
bne _080434BC
|
|
adds r0, 0x2
|
|
strb r0, [r1, 0x3]
|
|
_080434BC:
|
|
ldrb r0, [r1, 0x3]
|
|
adds r0, 0x40
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080443D0
|
|
.pool
|
|
_08043508:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043518
|
|
bl _0804441E
|
|
_08043518:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0804352E
|
|
bl _0804441E
|
|
_0804352E:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08043540
|
|
bl _0804441E
|
|
_08043540:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043568
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043568
|
|
bl _0804441E
|
|
_08043568:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043580
|
|
bl _0804441E
|
|
_08043580:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08043598
|
|
bl _0804441E
|
|
_08043598:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x42
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080443D0
|
|
.pool
|
|
_080435E4:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080435F4
|
|
bl _0804441E
|
|
_080435F4:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0804360A
|
|
bl _0804441E
|
|
_0804360A:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0804361C
|
|
bl _0804441E
|
|
_0804361C:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043644
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043644
|
|
bl _0804441E
|
|
_08043644:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804365C
|
|
bl _0804441E
|
|
_0804365C:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08043674
|
|
bl _0804441E
|
|
_08043674:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x45
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080443D0
|
|
.pool
|
|
_080436C0:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080436D0
|
|
bl _0804441E
|
|
_080436D0:
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _080436E6
|
|
bl _0804441E
|
|
_080436E6:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _080436F8
|
|
bl _0804441E
|
|
_080436F8:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043710
|
|
bl _0804441E
|
|
_08043710:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043738
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043738
|
|
bl _0804441E
|
|
_08043738:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08043750
|
|
bl _0804441E
|
|
_08043750:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x43
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080443D0
|
|
.pool
|
|
_0804379C:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080437AC
|
|
bl _0804441E
|
|
_080437AC:
|
|
ldr r6, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
mov r8, r3
|
|
ldrb r1, [r3]
|
|
movs r7, 0x58
|
|
adds r0, r1, 0
|
|
muls r0, r7
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _080437C6
|
|
bl _0804441E
|
|
_080437C6:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _080437D8
|
|
bl _0804441E
|
|
_080437D8:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080437F0
|
|
bl _0804441E
|
|
_080437F0:
|
|
ldr r3, =gUnknown_0202437C
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r2, r0, 2
|
|
adds r0, r3, 0
|
|
adds r0, 0x8
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043818
|
|
adds r0, r3, 0
|
|
adds r0, 0xC
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08043818
|
|
bl _0804441E
|
|
_08043818:
|
|
adds r0, r1, 0
|
|
muls r0, r7
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08043828
|
|
bl _0804441E
|
|
_08043828:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08043840
|
|
bl _0804441E
|
|
_08043840:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bne _08043854
|
|
bl _0804441E
|
|
_08043854:
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0x10]
|
|
bl pokemon_species_get_gender_info
|
|
adds r4, r0, 0
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x14]
|
|
bl pokemon_species_get_gender_info
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _08043872
|
|
bl _0804441E
|
|
_08043872:
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
muls r0, r7
|
|
adds r4, r6, 0
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0xF0
|
|
lsls r1, 12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804388E
|
|
bl _0804441E
|
|
_0804388E:
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0x10]
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _080438A2
|
|
bl _0804441E
|
|
_080438A2:
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x14]
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _080438B6
|
|
bl _0804441E
|
|
_080438B6:
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
adds r2, r4
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 16
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB66F
|
|
str r0, [r1]
|
|
bl _080443D0
|
|
.pool
|
|
_08043908:
|
|
movs r5, 0
|
|
mov r10, r5
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r10, r0
|
|
bcc _08043918
|
|
bl _0804441E
|
|
_08043918:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
subs r0, 0x7
|
|
adds r2, r1, 0
|
|
cmp r0, 0x41
|
|
bls _08043932
|
|
b _08043B96
|
|
_08043932:
|
|
lsls r0, 2
|
|
ldr r1, =_08043948
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08043948:
|
|
.4byte _08043AAC
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B70
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043AD4
|
|
.4byte _08043B96
|
|
.4byte _08043A50
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043A7C
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B40
|
|
.4byte _08043B10
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043B96
|
|
.4byte _08043AD4
|
|
_08043A50:
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00000f88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043A6A
|
|
b _08043B96
|
|
_08043A6A:
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC70
|
|
b _08043B5C
|
|
.pool
|
|
_08043A7C:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043A96
|
|
b _08043B96
|
|
_08043A96:
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC98
|
|
bl StringCopy
|
|
movs r2, 0x2
|
|
mov r9, r2
|
|
b _08043B9C
|
|
.pool
|
|
_08043AAC:
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043B96
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC80
|
|
b _08043B5C
|
|
.pool
|
|
_08043AD4:
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043B96
|
|
adds r2, 0x50
|
|
adds r2, r3, r2
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC78
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
b _08043B9C
|
|
.pool
|
|
_08043B10:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043B96
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC88
|
|
bl StringCopy
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
b _08043B9C
|
|
.pool
|
|
_08043B40:
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043B96
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC90
|
|
_08043B5C:
|
|
bl StringCopy
|
|
movs r5, 0x1
|
|
mov r9, r5
|
|
b _08043B9C
|
|
.pool
|
|
_08043B70:
|
|
movs r0, 0x58
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0xF0
|
|
lsls r1, 12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043B96
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BCA0
|
|
bl StringCopy
|
|
movs r2, 0x3
|
|
mov r9, r2
|
|
_08043B96:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _08043C50
|
|
_08043B9C:
|
|
mov r5, r9
|
|
cmp r5, 0x2
|
|
beq _08043BD0
|
|
cmp r5, 0x2
|
|
bgt _08043BB4
|
|
cmp r5, 0x1
|
|
beq _08043BBC
|
|
b _08043BFC
|
|
.pool
|
|
_08043BB4:
|
|
mov r0, r9
|
|
cmp r0, 0x3
|
|
beq _08043BE8
|
|
b _08043BFC
|
|
_08043BBC:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r1, 0x4C
|
|
adds r2, r1
|
|
movs r0, 0
|
|
b _08043BFA
|
|
.pool
|
|
_08043BD0:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
b _08043BF8
|
|
.pool
|
|
_08043BE8:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfff0ffff
|
|
_08043BF8:
|
|
ands r0, r1
|
|
_08043BFA:
|
|
str r0, [r2]
|
|
_08043BFC:
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB68C
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
mov r1, r10
|
|
strb r1, [r0, 0x17]
|
|
ldr r4, =gUnknown_02024064
|
|
strb r1, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240D0
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
bl _0804443A
|
|
.pool
|
|
_08043C50:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r10, r0
|
|
bcs _08043C64
|
|
b _08043918
|
|
_08043C64:
|
|
bl _0804441E
|
|
.pool
|
|
_08043C6C:
|
|
movs r2, 0
|
|
mov r10, r2
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r10, r0
|
|
bcc _08043C7A
|
|
b _0804441E
|
|
_08043C7A:
|
|
ldr r4, =gBattleMons
|
|
_08043C7C:
|
|
movs r0, 0x58
|
|
mov r3, r10
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r0, r4
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3B
|
|
bne _08043CA0
|
|
mov r0, r10
|
|
bl castform_switch
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
beq _08043CA0
|
|
b _080442FC
|
|
_08043CA0:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r10, r0
|
|
bcc _08043C7C
|
|
b _0804441E
|
|
.pool
|
|
_08043CBC:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x1C
|
|
beq _08043CC4
|
|
b _0804441E
|
|
_08043CC4:
|
|
ldr r4, =gUnknown_02024280
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043CD4
|
|
b _0804441E
|
|
_08043CD4:
|
|
ldr r0, =0xffffbfff
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
mov r5, r8
|
|
ldr r1, [r5]
|
|
adds r1, 0xB2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0xB2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _08043CF8
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_08043CF8:
|
|
ldr r1, =gUnknown_02024332
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, 0xB2
|
|
ldrb r0, [r0]
|
|
adds r0, 0x40
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x17]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67F
|
|
str r0, [r1]
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r4]
|
|
b _080443D0
|
|
.pool
|
|
_08043D40:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x1C
|
|
beq _08043D48
|
|
b _0804441E
|
|
_08043D48:
|
|
ldr r4, =gUnknown_02024280
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043D58
|
|
b _0804441E
|
|
_08043D58:
|
|
ldr r0, =0xffffbfff
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, 0xB2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r1, r0, 0
|
|
adds r1, 0xB2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _08043D7C
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_08043D7C:
|
|
ldr r1, =gUnknown_02024332
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
adds r0, 0xB2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x17]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB67F
|
|
str r0, [r1]
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
orrs r0, r1
|
|
str r0, [r4]
|
|
b _080443D0
|
|
.pool
|
|
_08043DC4:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
cmp r4, r1
|
|
blt _08043DD0
|
|
b _0804441E
|
|
_08043DD0:
|
|
ldr r0, =gBattleMons
|
|
adds r5, r1, 0
|
|
ldr r2, =gUnknown_020242AC
|
|
adds r3, r0, 0
|
|
adds r3, 0x20
|
|
movs r6, 0x80
|
|
lsls r6, 12
|
|
_08043DDE:
|
|
ldrb r1, [r3]
|
|
cmp r1, 0x16
|
|
bne _08043DEE
|
|
ldr r0, [r2]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08043DEE
|
|
b _08044324
|
|
_08043DEE:
|
|
adds r2, 0x4
|
|
adds r3, 0x58
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _08043DDE
|
|
b _0804441E
|
|
.pool
|
|
_08043E08:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08043E14
|
|
b _0804441E
|
|
_08043E14:
|
|
ldr r5, =gUnknown_02024064
|
|
mov r8, r5
|
|
ldr r0, =gBattleMons
|
|
adds r0, 0x20
|
|
str r0, [sp, 0x1C]
|
|
movs r1, 0
|
|
str r1, [sp, 0x20]
|
|
_08043E22:
|
|
ldr r2, [sp, 0x1C]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x24
|
|
beq _08043E2C
|
|
b _08043FBE
|
|
_08043E2C:
|
|
ldr r0, =gUnknown_020242AC
|
|
ldr r3, [sp, 0x20]
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 13
|
|
ands r1, r0
|
|
str r3, [sp, 0x18]
|
|
cmp r1, 0
|
|
bne _08043E42
|
|
b _08043FBE
|
|
_08043E42:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
adds r5, r0, 0
|
|
eors r5, r1
|
|
ands r5, r1
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0x2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r2, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08043E74
|
|
b _08043F84
|
|
_08043E74:
|
|
movs r1, 0x58
|
|
adds r0, r6, 0
|
|
muls r0, r1
|
|
ldr r3, =gBattleMons
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08043F40
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _08043EFC
|
|
movs r1, 0x58
|
|
adds r0, r7, 0
|
|
muls r0, r1
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08043EFC
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _08043EFC
|
|
str r2, [sp, 0x24]
|
|
bl Random
|
|
ldr r2, [sp, 0x24]
|
|
adds r1, r2, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
orrs r5, r1
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
ldr r5, =gBattleMons
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, 0x1C]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
muls r0, r3
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202420A
|
|
strb r0, [r2]
|
|
b _08043FAC
|
|
.pool
|
|
_08043EFC:
|
|
ldr r3, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r6, 0
|
|
muls r0, r2
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08043F40
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _08043F40
|
|
mov r5, r8
|
|
strb r6, [r5]
|
|
adds r1, r4, 0
|
|
muls r1, r2
|
|
adds r1, r3
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
b _08043FA8
|
|
.pool
|
|
_08043F40:
|
|
ldr r3, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r7, 0
|
|
muls r0, r2
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08043FB6
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _08043FB6
|
|
mov r5, r8
|
|
strb r7, [r5]
|
|
adds r1, r4, 0
|
|
muls r1, r2
|
|
adds r1, r3
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
b _08043FA8
|
|
.pool
|
|
_08043F84:
|
|
mov r2, r8
|
|
strb r6, [r2]
|
|
movs r3, 0x58
|
|
adds r0, r6, 0
|
|
muls r0, r3
|
|
ldr r5, =gBattleMons
|
|
adds r0, r5
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
beq _08043FB6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08043FB6
|
|
ldr r0, [sp, 0x1C]
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
_08043FA8:
|
|
ldr r1, =gUnknown_0202420A
|
|
strb r0, [r1]
|
|
_08043FAC:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08043FB6:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _08043FBE
|
|
b _08044340
|
|
_08043FBE:
|
|
ldr r3, [sp, 0x1C]
|
|
adds r3, 0x58
|
|
str r3, [sp, 0x1C]
|
|
ldr r5, [sp, 0x20]
|
|
adds r5, 0x4
|
|
str r5, [sp, 0x20]
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _08043FD6
|
|
b _08043E22
|
|
_08043FD6:
|
|
b _0804441E
|
|
.pool
|
|
_08043FE4:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
cmp r4, r1
|
|
blt _08043FF0
|
|
b _0804441E
|
|
_08043FF0:
|
|
ldr r0, =gBattleMons
|
|
adds r5, r1, 0
|
|
ldr r2, =gUnknown_020242AC
|
|
adds r3, r0, 0
|
|
adds r3, 0x20
|
|
movs r6, 0x80
|
|
lsls r6, 12
|
|
_08043FFE:
|
|
ldrb r1, [r3]
|
|
cmp r1, 0x16
|
|
bne _0804400E
|
|
ldr r0, [r2]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0804400E
|
|
b _080443B4
|
|
_0804400E:
|
|
adds r2, 0x4
|
|
adds r3, 0x58
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _08043FFE
|
|
b _0804441E
|
|
.pool
|
|
_08044028:
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804403E
|
|
b _0804441E
|
|
_0804403E:
|
|
ldr r7, =gBattleMons
|
|
_08044040:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r4, 0x1
|
|
cmp r0, r5
|
|
beq _0804406A
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _0804406A
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804406A:
|
|
adds r4, r3, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044040
|
|
b _0804441E
|
|
.pool
|
|
_08044084:
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804409A
|
|
b _0804441E
|
|
_0804409A:
|
|
ldr r7, =gBattleMons
|
|
_0804409C:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r4, 0x1
|
|
cmp r0, r5
|
|
bne _080440C6
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _080440C6
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080440C6:
|
|
adds r4, r3, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804409C
|
|
b _0804441E
|
|
.pool
|
|
_080440E0:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0xFD
|
|
beq _08044104
|
|
cmp r0, 0xFE
|
|
beq _0804413C
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
blt _080440F8
|
|
b _0804441E
|
|
_080440F8:
|
|
ldr r2, =gBattleMons
|
|
b _08044174
|
|
.pool
|
|
_08044104:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044110
|
|
b _0804441E
|
|
_08044110:
|
|
ldr r5, =gUnknown_020242AC
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r1, r0, 0
|
|
_08044118:
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ands r0, r2
|
|
adds r3, r4, 0x1
|
|
cmp r0, 0
|
|
beq _0804412C
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804412C:
|
|
adds r4, r3, 0
|
|
cmp r4, r1
|
|
blt _08044118
|
|
b _0804441E
|
|
.pool
|
|
_0804413C:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044148
|
|
b _0804441E
|
|
_08044148:
|
|
ldr r5, =gUnknown_020242AC
|
|
movs r2, 0x80
|
|
lsls r2, 10
|
|
adds r1, r0, 0
|
|
_08044150:
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ands r0, r2
|
|
adds r3, r4, 0x1
|
|
cmp r0, 0
|
|
beq _08044164
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08044164:
|
|
adds r4, r3, 0
|
|
cmp r4, r1
|
|
blt _08044150
|
|
b _0804441E
|
|
.pool
|
|
_08044174:
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r3, r4, 0x1
|
|
cmp r0, r6
|
|
bne _0804418C
|
|
strb r6, [r7]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804418C:
|
|
adds r4, r3, 0
|
|
ldrb r1, [r5]
|
|
cmp r4, r1
|
|
blt _08044174
|
|
b _0804441E
|
|
_08044196:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _080441A2
|
|
b _0804441E
|
|
_080441A2:
|
|
ldr r2, =gBattleMons
|
|
mov r8, r2
|
|
adds r2, r0, 0
|
|
movs r5, 0x58
|
|
_080441AA:
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r3, r4, 0x1
|
|
cmp r0, r6
|
|
bne _080441CC
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
beq _080441CC
|
|
strb r6, [r7]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080441CC:
|
|
adds r4, r3, 0
|
|
cmp r4, r2
|
|
blt _080441AA
|
|
b _0804441E
|
|
.pool
|
|
_080441DC:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _080441E8
|
|
b _0804441E
|
|
_080441E8:
|
|
ldr r7, =gBattleMons
|
|
adds r1, r0, 0
|
|
movs r5, 0x58
|
|
ldr r2, =gUnknown_0202420A
|
|
_080441F0:
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r3, r4, 0x1
|
|
cmp r0, r6
|
|
bne _0804420C
|
|
cmp r4, r10
|
|
beq _0804420C
|
|
strb r6, [r2]
|
|
lsls r0, r3, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0804420C:
|
|
adds r4, r3, 0
|
|
cmp r4, r1
|
|
blt _080441F0
|
|
b _0804441E
|
|
.pool
|
|
_08044220:
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044236
|
|
b _0804441E
|
|
_08044236:
|
|
ldr r7, =gBattleMons
|
|
_08044238:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
beq _08044264
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _08044264
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08044264:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044238
|
|
b _0804441E
|
|
.pool
|
|
_0804427C:
|
|
mov r0, r10
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044292
|
|
b _0804441E
|
|
_08044292:
|
|
ldr r7, =gBattleMons
|
|
_08044294:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
bne _080442C0
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _080442C0
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r6, [r0]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_080442C0:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _08044294
|
|
b _0804441E
|
|
.pool
|
|
_080442D8:
|
|
ldr r0, =gUnknown_082DB4A9
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
strb r6, [r0, 0x17]
|
|
_080442E2:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7F
|
|
mov r1, r9
|
|
subs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0804441E
|
|
.pool
|
|
_080442FC:
|
|
ldr r0, =gUnknown_082DB4A9
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_02024474
|
|
mov r5, r10
|
|
strb r5, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7F
|
|
mov r1, r9
|
|
subs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0804443A
|
|
.pool
|
|
_08044324:
|
|
strb r1, [r7]
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfff7ffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_082DB4B8
|
|
bl b_push_move_exec
|
|
b _080443C8
|
|
.pool
|
|
_08044340:
|
|
ldr r0, =gUnknown_082DB452
|
|
bl b_push_move_exec
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, [sp, 0x18]
|
|
adds r1, r0, r1
|
|
ldr r0, [r1]
|
|
ldr r2, =0xffefffff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x17]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r4, 0xFD
|
|
strb r4, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x2]
|
|
ldr r3, =gUnknown_0202406E
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02022F68
|
|
strb r4, [r1]
|
|
movs r0, 0x9
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, =gUnknown_0202420A
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1, 0x3]
|
|
b _0804441E
|
|
.pool
|
|
_080443B4:
|
|
strb r1, [r7]
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfff7ffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB4C1
|
|
str r0, [r1]
|
|
_080443C8:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xD8
|
|
strb r4, [r0]
|
|
_080443D0:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
b _0804441E
|
|
.pool
|
|
_080443EC:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
cmp r4, r1
|
|
bge _0804441E
|
|
ldr r0, =gBattleMons
|
|
adds r2, r1, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldr r3, =gUnknown_0202420A
|
|
_08044400:
|
|
ldrb r0, [r1]
|
|
cmp r0, r6
|
|
bne _08044416
|
|
cmp r4, r10
|
|
beq _08044416
|
|
strb r6, [r3]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08044416:
|
|
adds r1, 0x58
|
|
adds r4, 0x1
|
|
cmp r4, r2
|
|
blt _08044400
|
|
_0804441E:
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _0804443A
|
|
_08044424:
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0xB
|
|
bhi _0804443A
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _0804443A
|
|
adds r1, r0, 0
|
|
mov r0, r10
|
|
bl b_history__record_ability_usage_of_player
|
|
_0804443A:
|
|
mov r0, r9
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ability_something
|
|
|
|
thumb_func_start b_call_bc_move_exec
|
|
b_call_bc_move_exec: @ 8044458
|
|
ldr r1, =gUnknown_02024214
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0xC]
|
|
adds r3, r2, 0
|
|
adds r3, 0x20
|
|
ldrb r0, [r3]
|
|
adds r1, r0, 0x1
|
|
strb r1, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r2, r0
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, =bc_move_exec_returning
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end b_call_bc_move_exec
|
|
|
|
thumb_func_start b_push_move_exec
|
|
b_push_move_exec: @ 8044498
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r0, =gUnknown_02024214
|
|
str r4, [r0]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0xC]
|
|
adds r3, r2, 0
|
|
adds r3, 0x20
|
|
ldrb r0, [r3]
|
|
adds r1, r0, 0x1
|
|
strb r1, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r2, r0
|
|
ldr r1, =gUnknown_03005D04
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, =sub_803E08C
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_push_move_exec
|
|
|
|
thumb_func_start berry_effects_maybe
|
|
berry_effects_maybe: @ 80444DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x8]
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
movs r0, 0
|
|
mov r10, r0
|
|
movs r1, 0
|
|
str r1, [sp, 0xC]
|
|
add r0, sp, 0x4
|
|
strb r1, [r0]
|
|
ldr r4, =gUnknown_02024208
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _08044534
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x7]
|
|
ldrb r0, [r0, 0x1A]
|
|
b _08044548
|
|
.pool
|
|
_08044534:
|
|
ldrh r0, [r4]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrh r0, [r4]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08044548:
|
|
mov r9, r0
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
str r0, [sp, 0x14]
|
|
cmp r0, 0xAF
|
|
bne _0804457C
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r3, [r0, 0x7]
|
|
mov r8, r3
|
|
ldrb r0, [r0, 0x1A]
|
|
b _08044592
|
|
.pool
|
|
_0804457C:
|
|
ldr r0, [sp, 0x14]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x14]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08044592:
|
|
str r0, [sp, 0x10]
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r4, [r0, 0x2E]
|
|
cmp r4, 0xAF
|
|
beq _080445B2
|
|
adds r0, r4, 0
|
|
bl itemid_get_x12
|
|
adds r0, r4, 0
|
|
bl itemid_get_quality
|
|
_080445B2:
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, 0x4
|
|
bls _080445BC
|
|
bl _0804582A
|
|
_080445BC:
|
|
lsls r0, 2
|
|
ldr r1, =_080445D4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080445D4:
|
|
.4byte _080445E8
|
|
.4byte _08044688
|
|
.4byte _0804582A
|
|
.4byte _08045280
|
|
.4byte _080456D0
|
|
_080445E8:
|
|
cmp r5, 0x17
|
|
beq _08044618
|
|
cmp r5, 0x20
|
|
beq _080445F4
|
|
bl _0804582A
|
|
_080445F4:
|
|
adds r0, r7, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08044604
|
|
bl _0804582A
|
|
_08044604:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4A
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
bl _0804582A
|
|
.pool
|
|
_08044618:
|
|
ldr r1, =gBattleMons
|
|
mov r8, r1
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x18
|
|
adds r1, r0
|
|
movs r2, 0x6
|
|
movs r3, 0x7
|
|
mov r10, r3
|
|
_0804462E:
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0x5
|
|
bgt _0804463C
|
|
strb r2, [r1]
|
|
movs r5, 0x5
|
|
str r5, [sp, 0xC]
|
|
_0804463C:
|
|
adds r1, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r10, r0
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bge _0804462E
|
|
ldr r5, [sp, 0xC]
|
|
cmp r5, 0
|
|
bne _08044654
|
|
bl _0804582A
|
|
_08044654:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r7, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
strb r7, [r0]
|
|
strb r7, [r1]
|
|
ldr r0, =gUnknown_082DB7AE
|
|
bl b_call_bc_move_exec
|
|
bl _0804582A
|
|
.pool
|
|
_08044688:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _0804469C
|
|
bl _0804582A
|
|
_0804469C:
|
|
subs r0, r5, 0x1
|
|
cmp r0, 0x2A
|
|
bls _080446A6
|
|
bl _080451D6
|
|
_080446A6:
|
|
lsls r0, 2
|
|
ldr r1, =_080446B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080446B8:
|
|
.4byte _08044764
|
|
.4byte _08044F44
|
|
.4byte _08045008
|
|
.4byte _08044F74
|
|
.4byte _08044FA8
|
|
.4byte _08044FD8
|
|
.4byte _080447B0
|
|
.4byte _08045044
|
|
.4byte _08045074
|
|
.4byte _0804497C
|
|
.4byte _080449FC
|
|
.4byte _08044A78
|
|
.4byte _08044B0C
|
|
.4byte _08044BA0
|
|
.4byte _08044C34
|
|
.4byte _08044C9C
|
|
.4byte _08044CF0
|
|
.4byte _08044D44
|
|
.4byte _08044DAC
|
|
.4byte _08044E10
|
|
.4byte _08044E5C
|
|
.4byte _080451D6
|
|
.4byte _080448B0
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451A0
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _080451D6
|
|
.4byte _0804491C
|
|
_08044764:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r1, r8
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x2C]
|
|
ldrh r1, [r2, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _0804477A
|
|
bl _080451D6
|
|
_0804477A:
|
|
cmp r6, 0
|
|
beq _08044782
|
|
bl _080451D6
|
|
_08044782:
|
|
ldr r4, =gBattleMoveDamage
|
|
mov r3, r9
|
|
str r3, [r4]
|
|
ldrh r3, [r2, 0x28]
|
|
mov r5, r9
|
|
adds r0, r3, r5
|
|
ldrh r1, [r2, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044798
|
|
subs r0, r1, r3
|
|
str r0, [r4]
|
|
_08044798:
|
|
ldr r0, [r4]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_082DB7C4
|
|
bl b_call_bc_move_exec
|
|
b _08044B02
|
|
.pool
|
|
_080447B0:
|
|
cmp r6, 0
|
|
beq _080447B8
|
|
bl _080451D6
|
|
_080447B8:
|
|
adds r0, r7, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080447DC
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
b _080447EA
|
|
.pool
|
|
_080447DC:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
_080447EA:
|
|
adds r4, r1, r0
|
|
movs r1, 0
|
|
mov r10, r1
|
|
add r5, sp, 0x4
|
|
_080447F2:
|
|
mov r1, r10
|
|
adds r1, 0xD
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
mov r1, r10
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
strb r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r6, 0
|
|
beq _08044822
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _0804482C
|
|
_08044822:
|
|
movs r2, 0x1
|
|
add r10, r2
|
|
mov r3, r10
|
|
cmp r3, 0x3
|
|
ble _080447F2
|
|
_0804482C:
|
|
mov r5, r10
|
|
cmp r5, 0x4
|
|
bne _08044836
|
|
bl _080451D6
|
|
_08044836:
|
|
lsls r2, r5, 24
|
|
lsrs r2, 24
|
|
adds r0, r6, 0
|
|
bl CalcPPWithPPUps
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
add r0, sp, 0x4
|
|
ldrb r0, [r0]
|
|
mov r3, r9
|
|
adds r1, r0, r3
|
|
cmp r1, r2
|
|
ble _08044860
|
|
add r0, sp, 0x4
|
|
strb r2, [r0]
|
|
b _08044864
|
|
.pool
|
|
_08044860:
|
|
add r0, sp, 0x4
|
|
strb r1, [r0]
|
|
_08044864:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
strb r6, [r1, 0x2]
|
|
lsrs r0, r6, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, =gUnknown_082DB7E1
|
|
bl b_call_bc_move_exec
|
|
mov r1, r10
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
add r5, sp, 0x4
|
|
str r5, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
bl _080451DE
|
|
.pool
|
|
_080448B0:
|
|
ldr r0, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r7
|
|
adds r0, 0x18
|
|
adds r1, r0
|
|
movs r2, 0x6
|
|
movs r3, 0x7
|
|
mov r10, r3
|
|
_080448C0:
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0x5
|
|
bgt _080448CE
|
|
strb r2, [r1]
|
|
movs r5, 0x5
|
|
str r5, [sp, 0xC]
|
|
_080448CE:
|
|
adds r1, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r10, r0
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bge _080448C0
|
|
movs r5, 0x8
|
|
mov r10, r5
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0
|
|
bne _080448EA
|
|
bl _0804582A
|
|
_080448EA:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r7, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
strb r7, [r0]
|
|
strb r7, [r1]
|
|
ldr r0, =gUnknown_082DB7AE
|
|
bl b_call_bc_move_exec
|
|
bl _080451D6
|
|
.pool
|
|
_0804491C:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0x28]
|
|
ldrh r3, [r1, 0x2C]
|
|
cmp r0, r3
|
|
bcc _08044930
|
|
bl _080451D6
|
|
_08044930:
|
|
cmp r6, 0
|
|
beq _08044938
|
|
bl _080451D6
|
|
_08044938:
|
|
ldr r3, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r3]
|
|
cmp r0, 0
|
|
bne _08044948
|
|
movs r0, 0x1
|
|
str r0, [r3]
|
|
_08044948:
|
|
ldrh r2, [r1, 0x28]
|
|
ldr r0, [r3]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r1, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044958
|
|
subs r0, r1, r2
|
|
str r0, [r3]
|
|
_08044958:
|
|
ldr r0, [r3]
|
|
negs r0, r0
|
|
str r0, [r3]
|
|
ldr r0, =gUnknown_082DB7F1
|
|
bl b_call_bc_move_exec
|
|
movs r0, 0x4
|
|
str r0, [sp, 0xC]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl b_history__record_item_x12_of_player
|
|
bl _080451D6
|
|
.pool
|
|
_0804497C:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
str r1, [sp, 0x18]
|
|
adds r4, r1, 0
|
|
add r4, r8
|
|
ldrh r0, [r4, 0x2C]
|
|
ldrh r1, [r4, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _08044996
|
|
bl _080451D6
|
|
_08044996:
|
|
cmp r6, 0
|
|
beq _0804499E
|
|
bl _080451D6
|
|
_0804499E:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x1]
|
|
strb r6, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r5, =gBattleMoveDamage
|
|
ldrh r0, [r4, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _080449C2
|
|
movs r0, 0x1
|
|
str r0, [r5]
|
|
_080449C2:
|
|
ldrh r2, [r4, 0x28]
|
|
ldr r0, [r5]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r4, 0x2C]
|
|
cmp r0, r1
|
|
ble _080449D2
|
|
subs r0, r1, r2
|
|
str r0, [r5]
|
|
_080449D2:
|
|
ldr r0, [r5]
|
|
negs r0, r0
|
|
str r0, [r5]
|
|
mov r0, r8
|
|
adds r0, 0x48
|
|
ldr r2, [sp, 0x18]
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_806E880
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _080449F0
|
|
b _08044B7C
|
|
_080449F0:
|
|
b _08044B90
|
|
.pool
|
|
_080449FC:
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
str r5, [sp, 0x1C]
|
|
add r5, r8
|
|
ldrh r0, [r5, 0x2C]
|
|
ldrh r1, [r5, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _08044A14
|
|
bl _080451D6
|
|
_08044A14:
|
|
cmp r6, 0
|
|
beq _08044A1C
|
|
bl _080451D6
|
|
_08044A1C:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x1]
|
|
movs r6, 0x1
|
|
strb r6, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08044A40
|
|
str r6, [r4]
|
|
_08044A40:
|
|
ldrh r2, [r5, 0x28]
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r5, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044A50
|
|
subs r0, r1, r2
|
|
str r0, [r4]
|
|
_08044A50:
|
|
ldr r0, [r4]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
mov r0, r8
|
|
adds r0, 0x48
|
|
ldr r1, [sp, 0x1C]
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_806E880
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _08044A6E
|
|
b _08044C0E
|
|
_08044A6E:
|
|
b _08044C24
|
|
.pool
|
|
_08044A78:
|
|
movs r0, 0x58
|
|
adds r3, r7, 0
|
|
muls r3, r0
|
|
str r3, [sp, 0x20]
|
|
adds r5, r3, 0
|
|
add r5, r8
|
|
ldrh r0, [r5, 0x2C]
|
|
ldrh r1, [r5, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _08044A90
|
|
b _080451D6
|
|
_08044A90:
|
|
cmp r6, 0
|
|
beq _08044A96
|
|
b _080451D6
|
|
_08044A96:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08044ABC
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08044ABC:
|
|
ldrh r2, [r5, 0x28]
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r5, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044ACC
|
|
subs r0, r1, r2
|
|
str r0, [r4]
|
|
_08044ACC:
|
|
ldr r0, [r4]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
mov r0, r8
|
|
adds r0, 0x48
|
|
ldr r5, [sp, 0x20]
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_806E880
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _08044AFC
|
|
ldr r0, =gUnknown_082DB824
|
|
bl b_call_bc_move_exec
|
|
b _08044B02
|
|
.pool
|
|
_08044AFC:
|
|
ldr r0, =gUnknown_082DB7C4
|
|
bl b_call_bc_move_exec
|
|
_08044B02:
|
|
movs r0, 0x4
|
|
str r0, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044B0C:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
str r1, [sp, 0x24]
|
|
adds r5, r1, 0
|
|
add r5, r8
|
|
ldrh r0, [r5, 0x2C]
|
|
ldrh r1, [r5, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _08044B24
|
|
b _080451D6
|
|
_08044B24:
|
|
cmp r6, 0
|
|
beq _08044B2A
|
|
b _080451D6
|
|
_08044B2A:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08044B50
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08044B50:
|
|
ldrh r2, [r5, 0x28]
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r5, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044B60
|
|
subs r0, r1, r2
|
|
str r0, [r4]
|
|
_08044B60:
|
|
ldr r0, [r4]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
mov r0, r8
|
|
adds r0, 0x48
|
|
ldr r2, [sp, 0x24]
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_806E880
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _08044B90
|
|
_08044B7C:
|
|
ldr r0, =gUnknown_082DB824
|
|
bl b_call_bc_move_exec
|
|
b _08044B96
|
|
.pool
|
|
_08044B90:
|
|
ldr r0, =gUnknown_082DB7C4
|
|
bl b_call_bc_move_exec
|
|
_08044B96:
|
|
movs r3, 0x4
|
|
str r3, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044BA0:
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
str r5, [sp, 0x28]
|
|
add r5, r8
|
|
ldrh r0, [r5, 0x2C]
|
|
ldrh r1, [r5, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bls _08044BB6
|
|
b _080451D6
|
|
_08044BB6:
|
|
cmp r6, 0
|
|
beq _08044BBC
|
|
b _080451D6
|
|
_08044BBC:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08044BE2
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08044BE2:
|
|
ldrh r2, [r5, 0x28]
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
ldrh r1, [r5, 0x2C]
|
|
cmp r0, r1
|
|
ble _08044BF2
|
|
subs r0, r1, r2
|
|
str r0, [r4]
|
|
_08044BF2:
|
|
ldr r0, [r4]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
mov r0, r8
|
|
adds r0, 0x48
|
|
ldr r1, [sp, 0x28]
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
bl sub_806E880
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bge _08044C24
|
|
_08044C0E:
|
|
ldr r0, =gUnknown_082DB824
|
|
bl b_call_bc_move_exec
|
|
b _08044C2A
|
|
.pool
|
|
_08044C24:
|
|
ldr r0, =gUnknown_082DB7C4
|
|
bl b_call_bc_move_exec
|
|
_08044C2A:
|
|
movs r2, 0x4
|
|
str r2, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044C34:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r3, r8
|
|
adds r5, r0, r3
|
|
ldrh r4, [r5, 0x28]
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044C4C
|
|
b _080451D6
|
|
_08044C4C:
|
|
cmp r6, 0
|
|
beq _08044C52
|
|
b _080451D6
|
|
_08044C52:
|
|
movs r0, 0x19
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xB
|
|
ble _08044C5C
|
|
b _080451D6
|
|
_08044C5C:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r2, 0xFD
|
|
strb r2, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02022F68
|
|
strb r2, [r1]
|
|
strb r6, [r1, 0x1]
|
|
movs r0, 0xD2
|
|
strb r0, [r1, 0x2]
|
|
strb r6, [r1, 0x3]
|
|
subs r0, 0xD3
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x11
|
|
strb r0, [r1, 0x1A]
|
|
movs r0, 0xF
|
|
b _08044DF0
|
|
.pool
|
|
_08044C9C:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r1, r8
|
|
adds r5, r0, r1
|
|
ldrh r4, [r5, 0x28]
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044CB4
|
|
b _080451D6
|
|
_08044CB4:
|
|
cmp r6, 0
|
|
beq _08044CBA
|
|
b _080451D6
|
|
_08044CBA:
|
|
movs r0, 0x1A
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xB
|
|
ble _08044CC4
|
|
b _080451D6
|
|
_08044CC4:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x12
|
|
strb r0, [r1, 0x1A]
|
|
movs r0, 0x10
|
|
b _08044D8A
|
|
.pool
|
|
_08044CF0:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r3, r8
|
|
adds r5, r0, r3
|
|
ldrh r4, [r5, 0x28]
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044D08
|
|
b _080451D6
|
|
_08044D08:
|
|
cmp r6, 0
|
|
beq _08044D0E
|
|
b _080451D6
|
|
_08044D0E:
|
|
movs r0, 0x1B
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xB
|
|
ble _08044D18
|
|
b _080451D6
|
|
_08044D18:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x13
|
|
strb r0, [r1, 0x1A]
|
|
movs r0, 0x11
|
|
b _08044DF0
|
|
.pool
|
|
_08044D44:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r1, r8
|
|
adds r5, r0, r1
|
|
ldrh r4, [r5, 0x28]
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044D5C
|
|
b _080451D6
|
|
_08044D5C:
|
|
cmp r6, 0
|
|
beq _08044D62
|
|
b _080451D6
|
|
_08044D62:
|
|
movs r0, 0x1C
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xB
|
|
ble _08044D6C
|
|
b _080451D6
|
|
_08044D6C:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x14
|
|
strb r0, [r1, 0x1A]
|
|
movs r0, 0x12
|
|
_08044D8A:
|
|
strb r0, [r1, 0x10]
|
|
strb r6, [r1, 0x11]
|
|
ldr r0, =gUnknown_082DB84E
|
|
bl b_call_bc_move_exec
|
|
movs r2, 0x5
|
|
str r2, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044DAC:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
mov r3, r8
|
|
adds r5, r0, r3
|
|
ldrh r4, [r5, 0x28]
|
|
ldrh r0, [r5, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044DC4
|
|
b _080451D6
|
|
_08044DC4:
|
|
cmp r6, 0
|
|
beq _08044DCA
|
|
b _080451D6
|
|
_08044DCA:
|
|
movs r0, 0x1D
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, 0xB
|
|
ble _08044DD4
|
|
b _080451D6
|
|
_08044DD4:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x15
|
|
strb r0, [r1, 0x1A]
|
|
movs r0, 0x13
|
|
_08044DF0:
|
|
strb r0, [r1, 0x10]
|
|
strb r6, [r1, 0x11]
|
|
ldr r0, =gUnknown_082DB84E
|
|
bl b_call_bc_move_exec
|
|
movs r5, 0x5
|
|
str r5, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044E10:
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldrh r4, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044E2A
|
|
b _080451D6
|
|
_08044E2A:
|
|
cmp r6, 0
|
|
beq _08044E30
|
|
b _080451D6
|
|
_08044E30:
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r1, r5, r0
|
|
ldr r2, [r1]
|
|
movs r3, 0x80
|
|
lsls r3, 13
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08044E46
|
|
b _080451D6
|
|
_08044E46:
|
|
orrs r2, r3
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB869
|
|
bl b_call_bc_move_exec
|
|
movs r2, 0x2
|
|
str r2, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044E5C:
|
|
cmp r6, 0
|
|
beq _08044E62
|
|
b _080451D6
|
|
_08044E62:
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
mov r3, r8
|
|
adds r0, r5, r3
|
|
ldrh r4, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
mov r1, r9
|
|
bl __divsi3
|
|
cmp r4, r0
|
|
ble _08044E7C
|
|
b _080451D6
|
|
_08044E7C:
|
|
movs r0, 0
|
|
mov r10, r0
|
|
adds r0, r5, 0x1
|
|
mov r1, r8
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xB
|
|
ble _08044EAC
|
|
mov r0, r8
|
|
adds r0, 0x19
|
|
adds r1, r5, r0
|
|
_08044E98:
|
|
adds r1, 0x1
|
|
movs r2, 0x1
|
|
add r10, r2
|
|
mov r3, r10
|
|
cmp r3, 0x4
|
|
bgt _08044EAC
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0xB
|
|
bgt _08044E98
|
|
_08044EAC:
|
|
mov r5, r10
|
|
cmp r5, 0x5
|
|
bne _08044EB4
|
|
b _080451D6
|
|
_08044EB4:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r4, r0, 0x1
|
|
ldr r5, =gUnknown_0202409C
|
|
_08044EBC:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
adds r0, r4
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xC
|
|
beq _08044EBC
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r2, 0
|
|
movs r3, 0xFD
|
|
strb r3, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r0, =gUnknown_02022F68
|
|
strb r3, [r0]
|
|
strb r2, [r0, 0x1]
|
|
movs r1, 0xD1
|
|
strb r1, [r0, 0x2]
|
|
strb r2, [r0, 0x3]
|
|
strb r2, [r0, 0x4]
|
|
movs r1, 0xD2
|
|
strb r1, [r0, 0x5]
|
|
strb r2, [r0, 0x6]
|
|
subs r1, 0xD3
|
|
strb r1, [r0, 0x7]
|
|
ldr r0, =gUnknown_0202420E
|
|
strb r7, [r0]
|
|
ldr r1, =gUnknown_02024474
|
|
mov r0, r10
|
|
adds r0, 0x21
|
|
strb r0, [r1, 0x1A]
|
|
adds r0, 0x6
|
|
strb r0, [r1, 0x10]
|
|
strb r2, [r1, 0x11]
|
|
ldr r0, =gUnknown_082DB84E
|
|
bl b_call_bc_move_exec
|
|
movs r0, 0x5
|
|
str r0, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044F44:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08044F5C
|
|
b _080451D6
|
|
_08044F5C:
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB706
|
|
bl b_call_bc_move_exec
|
|
movs r1, 0x1
|
|
str r1, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044F74:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x88
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08044F8C
|
|
b _080451D6
|
|
_08044F8C:
|
|
ldr r0, =0xfffff077
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB71E
|
|
bl b_call_bc_move_exec
|
|
movs r2, 0x1
|
|
str r2, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044FA8:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08044FC0
|
|
b _080451D6
|
|
_08044FC0:
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB736
|
|
bl b_call_bc_move_exec
|
|
movs r3, 0x1
|
|
str r3, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08044FD8:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08044FF0
|
|
b _080451D6
|
|
_08044FF0:
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB74E
|
|
bl b_call_bc_move_exec
|
|
movs r5, 0x1
|
|
str r5, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08045008:
|
|
movs r0, 0x58
|
|
adds r3, r7, 0
|
|
muls r3, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r2, r3, r0
|
|
ldr r1, [r2]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045020
|
|
b _080451D6
|
|
_08045020:
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
mov r1, r8
|
|
adds r1, 0x50
|
|
adds r1, r3, r1
|
|
ldr r0, [r1]
|
|
ldr r2, =0xf7ffffff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_082DB766
|
|
b _0804518A
|
|
.pool
|
|
_08045044:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0x7
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0804505C
|
|
b _080451D6
|
|
_0804505C:
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_082DB77E
|
|
bl b_call_bc_move_exec
|
|
movs r1, 0x2
|
|
str r1, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_08045074:
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r4, r5, r0
|
|
ldr r2, [r4]
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0804509A
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804509A
|
|
b _080451D6
|
|
_0804509A:
|
|
movs r3, 0
|
|
mov r10, r3
|
|
movs r0, 0x88
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080450B2
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC70
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
_080450B2:
|
|
ldr r0, [r4]
|
|
movs r1, 0x7
|
|
mov r9, r1
|
|
ands r0, r1
|
|
mov r6, r8
|
|
adds r6, 0x50
|
|
cmp r0, 0
|
|
beq _080450D8
|
|
adds r2, r5, r6
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC78
|
|
bl StringCopy
|
|
movs r2, 0x1
|
|
add r10, r2
|
|
_080450D8:
|
|
ldr r0, [r4]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080450EE
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC80
|
|
bl StringCopy
|
|
movs r3, 0x1
|
|
add r10, r3
|
|
_080450EE:
|
|
ldr r0, [r4]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08045104
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC88
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
add r10, r0
|
|
_08045104:
|
|
ldr r0, [r4]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804511A
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC90
|
|
bl StringCopy
|
|
movs r1, 0x1
|
|
add r10, r1
|
|
_0804511A:
|
|
adds r0, r5, r6
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08045132
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC98
|
|
bl StringCopy
|
|
movs r3, 0x1
|
|
add r10, r3
|
|
_08045132:
|
|
mov r5, r10
|
|
cmp r5, 0x1
|
|
bgt _08045164
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
b _08045168
|
|
.pool
|
|
_08045164:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
_08045168:
|
|
strb r0, [r1, 0x5]
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r3, r7, 0
|
|
muls r3, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r3, r0
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r2, 0x50
|
|
adds r3, r2
|
|
ldr r0, [r3]
|
|
subs r1, 0x8
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, =gUnknown_082DB794
|
|
_0804518A:
|
|
bl b_call_bc_move_exec
|
|
movs r0, 0x1
|
|
str r0, [sp, 0xC]
|
|
b _080451DE
|
|
.pool
|
|
_080451A0:
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r0, 0xF0
|
|
lsls r0, 12
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080451D6
|
|
ldr r0, =0xfff0ffff
|
|
ands r2, r0
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BCA0
|
|
bl StringCopy
|
|
ldr r0, =gUnknown_082DB794
|
|
bl b_call_bc_move_exec
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
movs r1, 0x2
|
|
str r1, [sp, 0xC]
|
|
_080451D6:
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0
|
|
bne _080451DE
|
|
b _0804582A
|
|
_080451DE:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r7, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
strb r7, [r0]
|
|
strb r7, [r4]
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0x1
|
|
beq _08045220
|
|
cmp r3, 0x3
|
|
beq _08045226
|
|
b _0804582A
|
|
.pool
|
|
_08045220:
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
b _0804568C
|
|
_08045226:
|
|
ldr r4, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r3, r7, 0
|
|
muls r3, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08045242
|
|
b _0804582A
|
|
_08045242:
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
mov r5, r10
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08045262
|
|
b _0804582A
|
|
_08045262:
|
|
adds r1, r5, r3
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r1, r0
|
|
add r0, sp, 0x4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
b _0804582A
|
|
.pool
|
|
_08045280:
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcc _0804528C
|
|
b _0804582A
|
|
_0804528C:
|
|
ldr r4, =gUnknown_02024208
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _080452C0
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r7, 3
|
|
subs r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x7]
|
|
b _080452D0
|
|
.pool
|
|
_080452C0:
|
|
ldrh r0, [r4]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrh r0, [r4]
|
|
bl itemid_get_quality
|
|
_080452D0:
|
|
subs r0, r5, 0x2
|
|
cmp r0, 0x1A
|
|
bls _080452D8
|
|
b _08045674
|
|
_080452D8:
|
|
lsls r0, 2
|
|
ldr r1, =_080452E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080452E8:
|
|
.4byte _08045354
|
|
.4byte _08045444
|
|
.4byte _08045390
|
|
.4byte _080453CC
|
|
.4byte _08045408
|
|
.4byte _08045674
|
|
.4byte _0804548C
|
|
.4byte _08045520
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045614
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _08045674
|
|
.4byte _080454C8
|
|
_08045354:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x4C
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804536A
|
|
b _08045674
|
|
_0804536A:
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB70C
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_08045390:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x4C
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080453A6
|
|
b _08045674
|
|
_080453A6:
|
|
ldr r0, =0xfffff077
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB724
|
|
str r0, [r1]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_080453CC:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x4C
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080453E2
|
|
b _08045674
|
|
_080453E2:
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB73C
|
|
str r0, [r1]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_08045408:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x4C
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804541E
|
|
b _08045674
|
|
_0804541E:
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB754
|
|
str r0, [r1]
|
|
movs r3, 0x1
|
|
str r3, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_08045444:
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r4, r7, 0
|
|
muls r4, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r3, r4, r0
|
|
ldr r1, [r3]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804545E
|
|
b _08045674
|
|
_0804545E:
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
adds r2, 0x50
|
|
adds r2, r4, r2
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB76C
|
|
b _080455DC
|
|
.pool
|
|
_0804548C:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x50
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080454A2
|
|
b _08045674
|
|
_080454A2:
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB784
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_080454C8:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r7
|
|
adds r1, 0x50
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r0, 0xF0
|
|
lsls r0, 12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080454E0
|
|
b _08045674
|
|
_080454E0:
|
|
ldr r0, =0xfff0ffff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BCA0
|
|
bl StringCopy
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB79A
|
|
str r0, [r1]
|
|
movs r1, 0x2
|
|
str r1, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_08045520:
|
|
ldr r4, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r6, r5, r0
|
|
ldr r2, [r6]
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
bne _08045548
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r5, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045548
|
|
b _08045674
|
|
_08045548:
|
|
movs r0, 0x88
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08045558
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC70
|
|
bl StringCopy
|
|
_08045558:
|
|
ldr r0, [r6]
|
|
movs r2, 0x7
|
|
mov r8, r2
|
|
ands r0, r2
|
|
adds r4, 0x50
|
|
cmp r0, 0
|
|
beq _08045578
|
|
adds r2, r5, r4
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC78
|
|
bl StringCopy
|
|
_08045578:
|
|
ldr r0, [r6]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804558A
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC80
|
|
bl StringCopy
|
|
_0804558A:
|
|
ldr r0, [r6]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804559C
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC88
|
|
bl StringCopy
|
|
_0804559C:
|
|
ldr r0, [r6]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080455AE
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC90
|
|
bl StringCopy
|
|
_080455AE:
|
|
adds r5, r4
|
|
ldr r0, [r5]
|
|
mov r3, r8
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080455C2
|
|
ldr r0, =gUnknown_02022F58
|
|
ldr r1, =gUnknown_0831BC98
|
|
bl StringCopy
|
|
_080455C2:
|
|
movs r4, 0
|
|
str r4, [r6]
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r5]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB79A
|
|
_080455DC:
|
|
str r0, [r1]
|
|
movs r5, 0x1
|
|
str r5, [sp, 0xC]
|
|
b _0804567A
|
|
.pool
|
|
_08045614:
|
|
ldr r0, =gBattleMons
|
|
mov r8, r0
|
|
movs r0, 0x58
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x18
|
|
adds r1, r0
|
|
movs r2, 0x6
|
|
movs r3, 0x7
|
|
mov r10, r3
|
|
_0804562A:
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0x5
|
|
bgt _08045638
|
|
strb r2, [r1]
|
|
movs r5, 0x5
|
|
str r5, [sp, 0xC]
|
|
_08045638:
|
|
adds r1, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r10, r0
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bge _0804562A
|
|
ldr r5, [sp, 0xC]
|
|
cmp r5, 0
|
|
beq _080456B8
|
|
ldr r0, =gUnknown_02024474
|
|
strb r7, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB7B4
|
|
str r0, [r1]
|
|
b _0804582A
|
|
.pool
|
|
_08045674:
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0
|
|
beq _080456B8
|
|
_0804567A:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r7, [r0, 0x17]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r7, [r0]
|
|
ldr r4, =gUnknown_02024064
|
|
strb r7, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
_0804568C:
|
|
ldr r1, =gUnknown_020240D0
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804582A
|
|
.pool
|
|
_080456B8:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcs _080456C8
|
|
b _0804528C
|
|
_080456C8:
|
|
b _0804582A
|
|
.pool
|
|
_080456D0:
|
|
ldr r7, =gBattleMoveDamage
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bne _080456DA
|
|
b _0804582A
|
|
_080456DA:
|
|
mov r1, r8
|
|
cmp r1, 0x1E
|
|
beq _080456EC
|
|
cmp r1, 0x3E
|
|
beq _08045794
|
|
b _0804582A
|
|
.pool
|
|
_080456EC:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080456FA
|
|
b _0804582A
|
|
_080456FA:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08045720
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08045720
|
|
b _0804582A
|
|
_08045720:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, [sp, 0x10]
|
|
cmp r0, r2
|
|
bcs _0804582A
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804582A
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0804582A
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x3]
|
|
bl b_movescr_stack_push_cursor
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
bl b_movescr_stack_pop_cursor
|
|
b _0804582A
|
|
.pool
|
|
_08045794:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r0, [r0]
|
|
movs r5, 0x29
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
bne _0804582A
|
|
ldr r1, =gUnknown_0202437C
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r6, r1, 0x4
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _0804582A
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
beq _0804582A
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r3, [r0]
|
|
cmp r3, r2
|
|
beq _0804582A
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
cmp r1, r0
|
|
beq _0804582A
|
|
cmp r1, 0
|
|
beq _0804582A
|
|
ldr r0, =gUnknown_02024208
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x14]
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_0202420F
|
|
strb r3, [r0]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r3, [r0, 0x17]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x10]
|
|
bl __divsi3
|
|
negs r0, r0
|
|
str r0, [r7]
|
|
ldrb r1, [r4]
|
|
cmp r0, 0
|
|
bne _0804580C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r7]
|
|
_0804580C:
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
str r5, [r0]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB7F7
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
_0804582A:
|
|
ldr r0, [sp, 0xC]
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end berry_effects_maybe
|
|
|
|
thumb_func_start sub_8045868
|
|
sub_8045868: @ 8045868
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_020242BC
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strb r2, [r1, 0x10]
|
|
ldr r1, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r3, r0, 0
|
|
muls r3, r2
|
|
adds r1, 0x50
|
|
adds r3, r1
|
|
ldr r1, [r3]
|
|
ldr r2, =0xfdffffff
|
|
ands r1, r2
|
|
str r1, [r3]
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r2, =0xffffbfff
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8045868
|
|
|
|
thumb_func_start sub_80458B4
|
|
sub_80458B4: @ 80458B4
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080458D0
|
|
ldr r1, =gUnknown_0831BD10
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
_080458D0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80458B4
|
|
|
|
thumb_func_start sub_80458E0
|
|
sub_80458E0: @ 80458E0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
movs r5, 0
|
|
cmp r0, 0
|
|
beq _080458FE
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _0804590A
|
|
_080458FE:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x6]
|
|
_0804590A:
|
|
cmp r6, 0x40
|
|
bls _08045910
|
|
b _08045C20
|
|
_08045910:
|
|
lsls r0, r6, 2
|
|
ldr r1, =_08045924
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08045924:
|
|
.4byte _08045A28
|
|
.4byte _08045B28
|
|
.4byte _08045C1C
|
|
.4byte _08045C20
|
|
.4byte _08045B40
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045B28
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C1C
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045B28
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045C20
|
|
.4byte _08045B28
|
|
_08045A28:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
beq _08045A5A
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r2, 0x9]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08045A5A
|
|
b _08045B70
|
|
_08045A5A:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r7, 1
|
|
mov r8, r0
|
|
_08045A6A:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
bl __modsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r3, [r6]
|
|
cmp r5, r3
|
|
beq _08045A6A
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
beq _08045A6A
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r2, [r0]
|
|
ldr r1, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _08045A6A
|
|
ldr r0, =gBattleMoves
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xD
|
|
beq _08045AB8
|
|
b _08045C20
|
|
_08045AB8:
|
|
ldrb r1, [r6]
|
|
str r2, [sp]
|
|
movs r0, 0x10
|
|
movs r2, 0x1F
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08045ACE
|
|
b _08045C20
|
|
_08045ACE:
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1F
|
|
bne _08045AE2
|
|
b _08045C20
|
|
_08045AE2:
|
|
movs r4, 0x2
|
|
eors r5, r4
|
|
adds r0, r5, 0
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r1, =gUnknown_0202437C
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
orrs r1, r4
|
|
strb r1, [r0]
|
|
b _08045C20
|
|
.pool
|
|
_08045B28:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
b _08045BD2
|
|
.pool
|
|
_08045B40:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
beq _08045B80
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r2, 0x9]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08045B80
|
|
_08045B70:
|
|
adds r5, r4, 0
|
|
b _08045C20
|
|
.pool
|
|
_08045B80:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r4, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08045BFC
|
|
movs r0, 0x4
|
|
ands r6, r0
|
|
cmp r6, 0
|
|
beq _08045BFC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08045BC0
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08045BBC
|
|
movs r0, 0x1
|
|
b _08045BD2
|
|
.pool
|
|
_08045BBC:
|
|
movs r0, 0x3
|
|
b _08045BD2
|
|
_08045BC0:
|
|
bl Random
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08045BD0
|
|
movs r0, 0
|
|
b _08045BD2
|
|
_08045BD0:
|
|
movs r0, 0x2
|
|
_08045BD2:
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08045C20
|
|
movs r0, 0x2
|
|
eors r5, r0
|
|
b _08045C20
|
|
.pool
|
|
_08045BFC:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
b _08045C20
|
|
.pool
|
|
_08045C1C:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r5, [r0]
|
|
_08045C20:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
strb r5, [r0, 0xC]
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80458E0
|
|
|
|
thumb_func_start sub_8045C44
|
|
sub_8045C44: @ 8045C44
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08045C8A
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r4, 1
|
|
adds r5, r4, r0
|
|
ldrh r0, [r5]
|
|
movs r7, 0x64
|
|
muls r0, r7
|
|
ldr r6, =gPlayerParty
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xCD
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _08045C98
|
|
ldrh r0, [r5]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0x97
|
|
beq _08045C98
|
|
_08045C8A:
|
|
movs r0, 0x1
|
|
b _08045CAE
|
|
.pool
|
|
_08045C98:
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r4, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x50
|
|
movs r2, 0
|
|
bl GetMonData
|
|
_08045CAE:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8045C44
|
|
|
|
thumb_func_start sub_8045CBC
|
|
sub_8045CBC: @ 8045CBC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
movs r6, 0
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
ldr r1, =0x02000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045DAC
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08045DAC
|
|
ldrb r0, [r4]
|
|
bl sub_8045C44
|
|
cmp r0, 0
|
|
beq _08045D76
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08045D08
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _08045DAC
|
|
_08045D08:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r0, =0x003f0100
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045DAC
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08045DAC
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
adds r2, 0x3C
|
|
adds r1, r2
|
|
bl sub_806E8D4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08045DAC
|
|
ldr r0, =0x0000086e
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08045DAC
|
|
movs r6, 0xA
|
|
ldr r0, =0x00000868
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08045D5A
|
|
movs r6, 0x1E
|
|
_08045D5A:
|
|
ldr r0, =0x0000086a
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08045D68
|
|
movs r6, 0x32
|
|
_08045D68:
|
|
ldr r0, =0x0000086c
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08045D76
|
|
movs r6, 0x46
|
|
_08045D76:
|
|
ldr r5, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
movs r7, 0x58
|
|
muls r0, r7
|
|
adds r0, r5
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bls _08045DAC
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
adds r0, r2, r5
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
adds r0, r6
|
|
muls r0, r1
|
|
asrs r4, r0, 8
|
|
cmp r4, r6
|
|
bge _08045DD4
|
|
_08045DAC:
|
|
movs r0, 0
|
|
b _08045FD0
|
|
.pool
|
|
_08045DD4:
|
|
ldr r3, =gUnknown_020241EA
|
|
ldrh r0, [r3]
|
|
cmp r0, 0x63
|
|
bne _08045DEA
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
ldr r2, =0xff7fffff
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
_08045DEA:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
muls r0, r7
|
|
adds r1, r5, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08045E20
|
|
ldrh r0, [r3]
|
|
cmp r0, 0xAD
|
|
beq _08045E0A
|
|
cmp r0, 0xD6
|
|
bne _08045E20
|
|
_08045E0A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB695
|
|
b _08045F7A
|
|
.pool
|
|
_08045E20:
|
|
bl Random
|
|
movs r5, 0xFF
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
ldr r7, =gBattleMons
|
|
ldr r2, =gUnknown_0202420B
|
|
mov r9, r2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x58
|
|
mov r8, r0
|
|
mov r0, r8
|
|
muls r0, r3
|
|
adds r0, r7
|
|
adds r0, 0x2A
|
|
ldrb r2, [r0]
|
|
adds r0, r2, r6
|
|
muls r0, r1
|
|
asrs r4, r0, 8
|
|
cmp r4, r6
|
|
bge _08045EE8
|
|
ldr r6, =gBitTable
|
|
ldr r5, =gUnknown_020241E8
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
movs r2, 0xFF
|
|
bl sub_803FECC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bne _08045E68
|
|
b _08045F6A
|
|
_08045E68:
|
|
ldr r1, =gUnknown_020241E9
|
|
mov r8, r1
|
|
movs r7, 0x3
|
|
_08045E6E:
|
|
bl Random
|
|
ands r0, r7
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08045E6E
|
|
ldr r4, =gUnknown_020241EE
|
|
ldr r3, =gBattleMons
|
|
ldr r0, =gUnknown_020241E8
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r2, [r1]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6A5
|
|
str r0, [r1]
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
b _08045FCA
|
|
.pool
|
|
_08045EE8:
|
|
subs r0, r2, r6
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl Random
|
|
adds r4, r5, 0
|
|
ands r4, r0
|
|
cmp r4, r6
|
|
bge _08045F64
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08045F64
|
|
adds r0, r1, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x48
|
|
beq _08045F64
|
|
cmp r0, 0xF
|
|
beq _08045F64
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r0]
|
|
mov r8, r0
|
|
cmp r2, r3
|
|
bge _08045F4A
|
|
ldr r0, [r7, 0x50]
|
|
movs r1, 0x70
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08045F4A
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
movs r5, 0x70
|
|
_08045F3A:
|
|
adds r1, 0x58
|
|
adds r2, 0x1
|
|
cmp r2, r3
|
|
bge _08045F4A
|
|
ldr r0, [r1]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08045F3A
|
|
_08045F4A:
|
|
mov r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _08045F64
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6D9
|
|
b _08045F7A
|
|
.pool
|
|
_08045F64:
|
|
subs r4, r6
|
|
cmp r4, r6
|
|
blt _08045F8C
|
|
_08045F6A:
|
|
bl Random
|
|
ldr r2, =gUnknown_02024332
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6AD
|
|
_08045F7A:
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
b _08045FD0
|
|
.pool
|
|
_08045F8C:
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
ldr r0, =gBattleMons
|
|
adds r1, r0
|
|
movs r0, 0x28
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldrb r0, [r4]
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r4]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_806957C
|
|
ldr r1, =gBattleMoveDamage
|
|
str r0, [r1]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB6F0
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 12
|
|
_08045FCA:
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0x2
|
|
_08045FD0:
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8045CBC
|
|
|
|
thumb_func_start atk00_attackcanceler
|
|
atk00_attackcanceler: @ 8045FFC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08046020
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
b _08046398
|
|
.pool
|
|
_08046020:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08046064
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046064
|
|
movs r0, 0x80
|
|
lsls r0, 12
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D8A4E
|
|
b _08046396
|
|
.pool
|
|
_08046064:
|
|
bl sub_8041A6C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _08046072
|
|
b _08046398
|
|
_08046072:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
str r2, [sp]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804608A
|
|
b _08046398
|
|
_0804608A:
|
|
ldr r4, =gBattleMons
|
|
ldr r0, =gUnknown_020241E8
|
|
ldrb r1, [r0]
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
ldr r5, =gUnknown_02024280
|
|
cmp r0, 0
|
|
bne _08046108
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xA5
|
|
beq _08046108
|
|
ldr r0, [r5]
|
|
ldr r1, =0x00800200
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046108
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046108
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB07A
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _08046398
|
|
.pool
|
|
_08046108:
|
|
ldr r0, [r5]
|
|
ldr r1, =0xff7fffff
|
|
ands r0, r1
|
|
str r0, [r5]
|
|
movs r6, 0x80
|
|
lsls r6, 18
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _08046160
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046160
|
|
bl sub_8045CBC
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _08046160
|
|
cmp r2, 0x2
|
|
bne _08046150
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
b _08046398
|
|
.pool
|
|
_08046150:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08046398
|
|
.pool
|
|
_08046160:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_0202433C
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 4
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
mov r8, r1
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bge _080461E8
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080461E8
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r2, =0x00000115
|
|
adds r1, r3, 0
|
|
bl sub_803F480
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
add r1, r9
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB194
|
|
b _08046396
|
|
.pool
|
|
_080461E8:
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bge _0804622A
|
|
ldr r6, =gUnknown_0202433C
|
|
ldr r1, =gBattleMoves
|
|
mov r12, r1
|
|
adds r5, r0, 0
|
|
ldr r7, =gUnknown_0202407E
|
|
_080461FC:
|
|
adds r4, r2, r7
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _08046224
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046224
|
|
b _08046350
|
|
_08046224:
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
blt _080461FC
|
|
_0804622A:
|
|
ldr r0, =gUnknown_0202437C
|
|
mov r1, r8
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 30
|
|
cmp r0, 0
|
|
bge _08046288
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_0202420A
|
|
movs r0, 0x1F
|
|
strb r0, [r4]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB53E
|
|
str r0, [r1]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r4]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08046398
|
|
.pool
|
|
_08046288:
|
|
lsls r0, r2, 4
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08046296
|
|
b _08046390
|
|
_08046296:
|
|
ldr r1, =gBattleMoves
|
|
ldr r2, =gUnknown_020241EA
|
|
ldrh r3, [r2]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
beq _08046390
|
|
cmp r3, 0xAE
|
|
bne _080462D4
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
beq _080462D4
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bne _08046390
|
|
_080462D4:
|
|
ldrh r0, [r4]
|
|
bl sub_8052F48
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080462FA
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046390
|
|
_080462FA:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024258
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x6]
|
|
b _08046390
|
|
.pool
|
|
_08046350:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r2, =0x00000121
|
|
adds r1, r3, 0
|
|
bl sub_803F480
|
|
ldrb r1, [r4]
|
|
lsls r1, 4
|
|
adds r1, r6
|
|
ldrb r2, [r1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x17]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB1AC
|
|
b _08046396
|
|
.pool
|
|
_08046390:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
_08046396:
|
|
str r0, [r1]
|
|
_08046398:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk00_attackcanceler
|
|
|
|
thumb_func_start mcmd_jump_if_move_not_executed
|
|
mcmd_jump_if_move_not_executed: @ 80463AC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r5, [r1]
|
|
adds r4, r5, r0
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804640C
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024258
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldrb r4, [r5, 0x1]
|
|
ldrb r0, [r5, 0x2]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r5, 0x3]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r5, 0x4]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
b _08046426
|
|
.pool
|
|
_0804640C:
|
|
bl b_feature_update_destiny_bond
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
str r6, [sp]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804642A
|
|
_08046426:
|
|
ldr r0, =gUnknown_02024214
|
|
str r4, [r0]
|
|
_0804642A:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end mcmd_jump_if_move_not_executed
|
|
|
|
thumb_func_start atk40_801DBA0
|
|
atk40_801DBA0: @ 804643C
|
|
push {lr}
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0804649C
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804649C
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl mcmd_jump_if_move_not_executed
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x6]
|
|
b _080464A4
|
|
.pool
|
|
_0804649C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080464A4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk40_801DBA0
|
|
|
|
thumb_func_start sub_80464AC
|
|
sub_80464AC: @ 80464AC
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r4, 0
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _080464F8
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080464F8
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x7
|
|
adds r1, r3, 0
|
|
bl mcmd_jump_if_move_not_executed
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x6]
|
|
movs r4, 0x1
|
|
_080464F8:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80464AC
|
|
|
|
thumb_func_start sub_8046518
|
|
sub_8046518: @ 8046518
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, 0x18
|
|
ands r1, r0
|
|
adds r6, r2, 0
|
|
cmp r1, 0
|
|
beq _0804654A
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r0, 0x15]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08046634
|
|
_0804654A:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
ands r1, r2
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _08046590
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046590
|
|
_0804656A:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08046634
|
|
.pool
|
|
_08046590:
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffeffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080465B2
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804656A
|
|
_080465B2:
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffdffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080465D2
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804656A
|
|
_080465D2:
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffbffff
|
|
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 ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r5, 1
|
|
cmp r0, 0
|
|
bne _08046622
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08046622
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046622
|
|
ldr r0, =gBattleMoves
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x98
|
|
beq _08046634
|
|
_08046622:
|
|
ldr r1, =gBattleMoves
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
beq _08046634
|
|
cmp r0, 0x4E
|
|
bne _08046654
|
|
_08046634:
|
|
movs r0, 0x7
|
|
adds r1, r5, 0
|
|
bl mcmd_jump_if_move_not_executed
|
|
movs r0, 0x1
|
|
b _08046656
|
|
.pool
|
|
_08046654:
|
|
movs r0, 0
|
|
_08046656:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8046518
|
|
|
|
thumb_func_start atk01_accuracycheck
|
|
atk01_accuracycheck: @ 8046660
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r5, [r0]
|
|
ldrb r6, [r5, 0x5]
|
|
ldrb r1, [r5, 0x6]
|
|
lsls r1, 8
|
|
orrs r6, r1
|
|
adds r1, r6, 0x2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r7, r0, 0
|
|
cmp r1, 0x1
|
|
bhi _0804671C
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, 0x18
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080466D0
|
|
ldr r0, =0x0000ffff
|
|
cmp r6, r0
|
|
bne _080466D0
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r0, 0x15]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080466D0
|
|
adds r0, r5, 0x7
|
|
str r0, [r7]
|
|
b _080469D2
|
|
.pool
|
|
_080466D0:
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046700
|
|
ldr r2, [r7]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
b _080469D2
|
|
.pool
|
|
_08046700:
|
|
movs r0, 0
|
|
bl sub_80464AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804670E
|
|
b _080469D2
|
|
_0804670E:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x7
|
|
str r0, [r1]
|
|
b _080469D2
|
|
.pool
|
|
_0804671C:
|
|
cmp r6, 0
|
|
bne _08046724
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r6, [r0]
|
|
_08046724:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0
|
|
beq _08046744
|
|
movs r1, 0x3F
|
|
mov r10, r1
|
|
mov r2, r10
|
|
ands r2, r0
|
|
mov r10, r2
|
|
b _08046752
|
|
.pool
|
|
_08046744:
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
mov r10, r0
|
|
_08046752:
|
|
adds r0, r6, 0
|
|
bl sub_80464AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08046760
|
|
b _080469D2
|
|
_08046760:
|
|
adds r0, r6, 0
|
|
bl sub_8046518
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804676E
|
|
b _080469D2
|
|
_0804676E:
|
|
ldr r3, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
movs r2, 0x58
|
|
adds r4, r0, 0
|
|
muls r4, r2
|
|
adds r0, r3, 0
|
|
adds r0, 0x50
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080467A8
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
ldrb r5, [r0, 0x1E]
|
|
b _080467BE
|
|
.pool
|
|
_080467A8:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1E]
|
|
adds r0, 0x6
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1, 0x1F]
|
|
subs r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080467BE:
|
|
lsls r0, r5, 24
|
|
cmp r0, 0
|
|
bge _080467C6
|
|
movs r5, 0
|
|
_080467C6:
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xC
|
|
ble _080467D0
|
|
movs r5, 0xC
|
|
_080467D0:
|
|
ldr r1, =gBattleMoves
|
|
lsls r4, r6, 1
|
|
adds r0, r4, r6
|
|
lsls r0, 2
|
|
adds r7, r0, r1
|
|
ldrb r3, [r7, 0x3]
|
|
mov r8, r3
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r4, [sp, 0x4]
|
|
cmp r0, 0
|
|
bne _08046822
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08046822
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046822
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x98
|
|
bne _08046822
|
|
movs r0, 0x32
|
|
mov r8, r0
|
|
_08046822:
|
|
ldr r1, =gUnknown_0831C0F4
|
|
lsls r0, r5, 24
|
|
asrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
mov r4, r8
|
|
muls r4, r1
|
|
ldrb r1, [r0, 0x1]
|
|
adds r0, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r7, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xE
|
|
bne _08046860
|
|
lsls r0, r4, 6
|
|
adds r0, r4
|
|
lsls r0, 1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_08046860:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080468B8
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080468B8
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _080468B8
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080468B8
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080468B8:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
mov r9, r2
|
|
cmp r0, 0x37
|
|
bne _080468E4
|
|
mov r1, r10
|
|
cmp r1, 0x8
|
|
bhi _080468E4
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 4
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080468E4:
|
|
ldr r2, =gEnemyMonIndex
|
|
mov r8, r2
|
|
ldrb r2, [r2]
|
|
movs r7, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r7
|
|
mov r3, r9
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08046928
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x7]
|
|
ldrb r2, [r0, 0x1A]
|
|
b _08046944
|
|
.pool
|
|
_08046928:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
muls r0, r7
|
|
add r0, r9
|
|
ldrh r0, [r0, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_08046944:
|
|
ldr r0, =gUnknown_0202420F
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
cmp r5, 0x16
|
|
bne _08046960
|
|
movs r0, 0x64
|
|
subs r0, r2
|
|
muls r0, r4
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_08046960:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r0, 0x1
|
|
cmp r0, r4
|
|
ble _080469CA
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080469C0
|
|
ldr r1, =gBattleMoves
|
|
ldr r2, [sp, 0x4]
|
|
adds r0, r2, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0x8
|
|
beq _080469A2
|
|
cmp r0, 0x20
|
|
bne _080469C0
|
|
_080469A2:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _080469C4
|
|
.pool
|
|
_080469C0:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
_080469C4:
|
|
strb r0, [r1, 0x6]
|
|
bl b_wonderguard_and_levitate
|
|
_080469CA:
|
|
movs r0, 0x7
|
|
adds r1, r6, 0
|
|
bl mcmd_jump_if_move_not_executed
|
|
_080469D2:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk01_accuracycheck
|
|
|
|
thumb_func_start atk02_attackstring
|
|
atk02_attackstring: @ 80469E8
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _08046A20
|
|
ldr r4, =gUnknown_02024280
|
|
ldr r0, [r4]
|
|
movs r1, 0xC0
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046A14
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
bl b_std_message
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
orrs r0, r1
|
|
str r0, [r4]
|
|
_08046A14:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, [r0]
|
|
adds r1, 0x1
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r5, [r0, 0x7]
|
|
_08046A20:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk02_attackstring
|
|
|
|
thumb_func_start atk03_ppreduce
|
|
atk03_ppreduce: @ 8046A3C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r6, 0x1
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08046A54
|
|
b _08046BEE
|
|
_08046A54:
|
|
ldr r1, =gUnknown_0202437C
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
lsrs r4, r0, 31
|
|
mov r9, r2
|
|
cmp r4, 0
|
|
bne _08046AF6
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0x20
|
|
beq _08046AA6
|
|
cmp r0, 0x20
|
|
bgt _08046AA0
|
|
cmp r0, 0x8
|
|
beq _08046ABC
|
|
b _08046AD6
|
|
.pool
|
|
_08046AA0:
|
|
cmp r0, 0x40
|
|
beq _08046ABC
|
|
b _08046AD6
|
|
_08046AA6:
|
|
str r4, [sp]
|
|
movs r0, 0x12
|
|
adds r1, r3, 0
|
|
movs r2, 0x2E
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0x1
|
|
b _08046AF6
|
|
_08046ABC:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
movs r2, 0x2E
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0
|
|
b _08046AF6
|
|
_08046AD6:
|
|
ldr r1, =gEnemyMonIndex
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
ldrb r7, [r1]
|
|
cmp r0, r7
|
|
beq _08046AF6
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2E
|
|
bne _08046AF6
|
|
adds r6, 0x1
|
|
_08046AF6:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r4, [r0]
|
|
movs r0, 0xA0
|
|
lsls r0, 4
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
bne _08046BDC
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gUnknown_020241E8
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r5, [r1]
|
|
movs r0, 0x58
|
|
mov r8, r0
|
|
mov r0, r8
|
|
muls r0, r5
|
|
ldrb r7, [r3]
|
|
adds r0, r7
|
|
movs r7, 0x24
|
|
adds r7, r2
|
|
mov r12, r7
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
mov r9, r1
|
|
mov r10, r2
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _08046BDC
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r5, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
ldrb r1, [r7]
|
|
adds r0, r1
|
|
mov r1, r12
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, r6
|
|
ble _08046B70
|
|
subs r0, r6
|
|
strb r0, [r2]
|
|
b _08046B72
|
|
.pool
|
|
_08046B70:
|
|
strb r4, [r2]
|
|
_08046B72:
|
|
mov r2, r9
|
|
ldrb r3, [r2]
|
|
movs r4, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r4
|
|
mov r1, r10
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046BDC
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08046BDC
|
|
ldr r0, =gUnknown_02024064
|
|
strb r3, [r0]
|
|
ldrb r1, [r7]
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r4
|
|
mov r2, r10
|
|
adds r2, 0x24
|
|
adds r0, r2
|
|
ldrb r7, [r7]
|
|
adds r0, r7
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
mov r7, r9
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08046BDC:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffff7ff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08046BEE:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk03_ppreduce
|
|
|
|
thumb_func_start atk04_critcalc
|
|
atk04_critcalc: @ 8046C18
|
|
push {r4-r7,lr}
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08046C48
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r6, [r0, 0x7]
|
|
b _08046C50
|
|
.pool
|
|
_08046C48:
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08046C50:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r4, =gBattleMons
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
adds r7, r1, 0
|
|
muls r7, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r7, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
ands r0, r1
|
|
negs r0, r0
|
|
asrs r5, r0, 31
|
|
movs r0, 0x2
|
|
ands r5, r0
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
mov r12, r3
|
|
cmp r1, 0x2B
|
|
bne _08046C90
|
|
adds r5, 0x1
|
|
_08046C90:
|
|
adds r0, r5, 0
|
|
cmp r1, 0x4B
|
|
bne _08046C98
|
|
adds r0, 0x1
|
|
_08046C98:
|
|
cmp r1, 0xC8
|
|
bne _08046C9E
|
|
adds r0, 0x1
|
|
_08046C9E:
|
|
adds r2, r0, 0
|
|
cmp r1, 0xD1
|
|
bne _08046CA6
|
|
adds r2, 0x1
|
|
_08046CA6:
|
|
movs r1, 0
|
|
cmp r6, 0x3F
|
|
bne _08046CB6
|
|
adds r0, r7, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x71
|
|
bne _08046CB6
|
|
movs r1, 0x1
|
|
_08046CB6:
|
|
lsls r5, r1, 1
|
|
movs r3, 0
|
|
cmp r6, 0x42
|
|
bne _08046CD0
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x53
|
|
bne _08046CD0
|
|
movs r3, 0x1
|
|
_08046CD0:
|
|
lsls r1, r3, 1
|
|
cmp r6, 0x29
|
|
bne _08046CF0
|
|
adds r0, r5, 0x1
|
|
adds r0, r2, r0
|
|
b _08046CF2
|
|
.pool
|
|
_08046CF0:
|
|
adds r0, r2, r5
|
|
_08046CF2:
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r5, r0, 0
|
|
cmp r5, 0x4
|
|
bls _08046D00
|
|
movs r5, 0x4
|
|
_08046D00:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r4
|
|
adds r0, 0x20
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x4
|
|
beq _08046D70
|
|
cmp r4, 0x4B
|
|
beq _08046D70
|
|
ldr r1, =gUnknown_020242AC
|
|
mov r2, r12
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046D70
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x84
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08046D70
|
|
bl Random
|
|
ldr r2, =gUnknown_0831C128
|
|
lsls r1, r5, 1
|
|
adds r1, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r1]
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08046D70
|
|
ldr r1, =gCritMultiplier
|
|
movs r0, 0x2
|
|
b _08046D74
|
|
.pool
|
|
_08046D70:
|
|
ldr r1, =gCritMultiplier
|
|
movs r0, 0x1
|
|
_08046D74:
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk04_critcalc
|
|
|
|
thumb_func_start atk05_cmd5
|
|
atk05_cmd5: @ 8046D8C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
ldr r4, =gUnknown_0202428E
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
ldr r2, =gBattleMons
|
|
adds r0, r2
|
|
ldrb r1, [r5]
|
|
muls r1, r4
|
|
adds r1, r2
|
|
ldr r7, =gUnknown_020241EA
|
|
ldrh r2, [r7]
|
|
ldr r4, =gUnknown_02024400
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r4, [r4]
|
|
ldrb r4, [r4, 0x13]
|
|
str r4, [sp, 0x4]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, 0x8]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, 0xC]
|
|
bl sub_806957C
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, =gCritMultiplier
|
|
ldrb r1, [r1]
|
|
muls r1, r0
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0xE]
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
str r3, [r4]
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046E10
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0xD
|
|
bne _08046E10
|
|
lsls r0, r3, 1
|
|
str r0, [r4]
|
|
_08046E10:
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08046E32
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_08046E32:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk05_cmd5
|
|
|
|
thumb_func_start sub_8046E7C
|
|
sub_8046E7C: @ 8046E7C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r5, r1, 0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, =gUnknown_0202428E
|
|
adds r0, r5, 0
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
movs r1, 0x58
|
|
adds r0, r7, 0
|
|
muls r0, r1
|
|
ldr r2, =gBattleMons
|
|
adds r0, r2
|
|
muls r1, r5
|
|
adds r1, r2
|
|
ldr r2, =gUnknown_020241EA
|
|
mov r8, r2
|
|
ldrh r2, [r2]
|
|
ldr r6, =gUnknown_02024400
|
|
ldrh r4, [r6]
|
|
str r4, [sp]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r4, [r4]
|
|
ldrb r4, [r4, 0x13]
|
|
str r4, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
bl sub_806957C
|
|
ldr r4, =gBattleMoveDamage
|
|
movs r1, 0
|
|
strh r1, [r6]
|
|
ldr r1, =gCritMultiplier
|
|
ldrb r1, [r1]
|
|
muls r1, r0
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0xE]
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
str r3, [r4]
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046F0A
|
|
ldr r2, =gBattleMoves
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0xD
|
|
bne _08046F0A
|
|
lsls r0, r3, 1
|
|
str r0, [r4]
|
|
_08046F0A:
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r7, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08046F28
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_08046F28:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8046E7C
|
|
|
|
thumb_func_start battle_attack_damage_modulate_by_effectivity
|
|
battle_attack_damage_modulate_by_effectivity: @ 8046F60
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, =gBattleMoveDamage
|
|
ldr r0, [r5]
|
|
muls r0, r4
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _08046F80
|
|
cmp r4, 0
|
|
beq _08046F80
|
|
movs r0, 0x1
|
|
str r0, [r5]
|
|
_08046F80:
|
|
cmp r4, 0x5
|
|
beq _08046FB0
|
|
cmp r4, 0x5
|
|
bgt _08046F94
|
|
cmp r4, 0
|
|
beq _08046F9A
|
|
b _08047032
|
|
.pool
|
|
_08046F94:
|
|
cmp r4, 0x14
|
|
beq _08046FF0
|
|
b _08047032
|
|
_08046F9A:
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
movs r1, 0xFB
|
|
ands r0, r1
|
|
movs r1, 0xFD
|
|
ands r0, r1
|
|
b _08047030
|
|
.pool
|
|
_08046FB0:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _08047032
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r1, [r2]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047032
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08046FEC
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _08047030
|
|
.pool
|
|
_08046FEC:
|
|
movs r0, 0x4
|
|
b _0804702E
|
|
_08046FF0:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _08047032
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r1, [r2]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047032
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804702C
|
|
movs r0, 0xFB
|
|
ands r0, r1
|
|
b _08047030
|
|
.pool
|
|
_0804702C:
|
|
movs r0, 0x2
|
|
_0804702E:
|
|
orrs r0, r1
|
|
_08047030:
|
|
strb r0, [r2]
|
|
_08047032:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end battle_attack_damage_modulate_by_effectivity
|
|
|
|
thumb_func_start sub_8047038
|
|
sub_8047038: @ 8047038
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r3, 0
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xA5
|
|
bne _0804704C
|
|
b _08047260
|
|
_0804704C:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0
|
|
beq _08047068
|
|
movs r1, 0x3F
|
|
mov r8, r1
|
|
ands r1, r0
|
|
mov r8, r1
|
|
b _08047078
|
|
.pool
|
|
_08047068:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
mov r8, r0
|
|
_08047078:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
adds r5, r2, 0
|
|
cmp r0, r8
|
|
beq _0804709A
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _080470B0
|
|
_0804709A:
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
str r0, [r4]
|
|
movs r1, 0xA
|
|
str r3, [sp, 0x4]
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
ldr r3, [sp, 0x4]
|
|
_080470B0:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r4, r2, 0
|
|
cmp r0, 0x1A
|
|
bne _08047128
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
bne _08047128
|
|
ldr r3, =gUnknown_0202420A
|
|
strb r0, [r3]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x9
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024250
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024258
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
mov r1, r8
|
|
strb r1, [r0, 0x6]
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r3]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _080471C4
|
|
.pool
|
|
_08047128:
|
|
ldr r1, =gUnknown_0831ACE8
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
b _080471A4
|
|
.pool
|
|
_08047138:
|
|
adds r3, 0x3
|
|
b _080471A0
|
|
_0804713C:
|
|
ldr r5, =gUnknown_0831ACE8
|
|
adds r0, r3, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _08047198
|
|
adds r1, r3, 0x1
|
|
adds r1, r5
|
|
ldr r2, =gBattleMons
|
|
ldr r7, =gEnemyMonIndex
|
|
ldrb r0, [r7]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r0, r2
|
|
adds r0, 0x21
|
|
ldrb r4, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _08047172
|
|
adds r0, r3, 0x2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
bl battle_attack_damage_modulate_by_effectivity
|
|
ldr r3, [sp, 0x4]
|
|
ldr r2, [sp]
|
|
_08047172:
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r1, [r1]
|
|
cmp r4, r1
|
|
bne _08047198
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _08047198
|
|
adds r0, r3, 0x2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
str r3, [sp, 0x4]
|
|
bl battle_attack_damage_modulate_by_effectivity
|
|
ldr r3, [sp, 0x4]
|
|
_08047198:
|
|
adds r3, 0x3
|
|
ldr r5, =gBattleMons
|
|
ldr r4, =gEnemyMonIndex
|
|
ldr r2, =gUnknown_0831ACE8
|
|
_080471A0:
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
_080471A4:
|
|
cmp r0, 0xFF
|
|
beq _080471C4
|
|
cmp r0, 0xFE
|
|
bne _0804713C
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047138
|
|
_080471C4:
|
|
ldr r2, =gBattleMons
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r6, [r0]
|
|
cmp r6, 0x19
|
|
bne _08047242
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r7, =gUnknown_020241EA
|
|
ldrh r1, [r7]
|
|
bl move_weather_interaction
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08047242
|
|
ldr r1, =gBattleMoveFlags
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08047200
|
|
movs r0, 0x6
|
|
ands r0, r4
|
|
cmp r0, 0x6
|
|
bne _08047242
|
|
_08047200:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _08047242
|
|
ldr r3, =gUnknown_0202420A
|
|
strb r6, [r3]
|
|
movs r0, 0x1
|
|
orrs r0, r4
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024250
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024258
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x6]
|
|
ldrb r0, [r5]
|
|
ldrb r1, [r3]
|
|
bl b_history__record_ability_usage_of_player
|
|
_08047242:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047260
|
|
ldr r2, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
_08047260:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8047038
|
|
|
|
thumb_func_start b_wonderguard_and_levitate
|
|
b_wonderguard_and_levitate: @ 80472A8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
mov r9, r0
|
|
cmp r1, 0xA5
|
|
bne _080472C0
|
|
b _08047508
|
|
_080472C0:
|
|
ldr r2, =gBattleMoves
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _080472D2
|
|
b _08047508
|
|
_080472D2:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0
|
|
beq _080472F4
|
|
movs r1, 0x3F
|
|
mov r12, r1
|
|
mov r2, r12
|
|
ands r2, r0
|
|
mov r12, r2
|
|
b _080472F8
|
|
.pool
|
|
_080472F4:
|
|
ldrb r1, [r1, 0x2]
|
|
mov r12, r1
|
|
_080472F8:
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
adds r7, r2, 0
|
|
mov r8, r3
|
|
cmp r1, 0x1A
|
|
bne _0804733C
|
|
mov r0, r12
|
|
cmp r0, 0x4
|
|
bne _0804733C
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
mov r1, r12
|
|
strb r1, [r0, 0x6]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x1A
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08047508
|
|
.pool
|
|
_0804733C:
|
|
ldr r1, =gUnknown_0831ACE8
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
b _0804748E
|
|
.pool
|
|
_0804734C:
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r12
|
|
beq _08047356
|
|
b _08047488
|
|
_08047356:
|
|
adds r2, r5, 0x1
|
|
adds r3, r2, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r0, 0x21
|
|
ldrb r1, [r3]
|
|
adds r3, r2, 0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08047396
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08047396
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
lsls r2, 4
|
|
adds r2, r1
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
_08047396:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _080473DC
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _080473DC
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080473DC
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
lsls r2, 4
|
|
adds r2, r1
|
|
ldrb r0, [r2, 0x1]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
_080473DC:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r0, 0x21
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08047400
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x14
|
|
bne _08047400
|
|
movs r0, 0x1
|
|
orrs r6, r0
|
|
_08047400:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804742E
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _0804742E
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x14
|
|
bne _0804742E
|
|
movs r0, 0x1
|
|
orrs r6, r0
|
|
_0804742E:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r0, 0x21
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08047456
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _08047456
|
|
movs r0, 0x2
|
|
orrs r6, r0
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
_08047456:
|
|
adds r2, r3, r4
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _08047488
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _08047488
|
|
adds r0, r5, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _08047488
|
|
movs r0, 0x2
|
|
orrs r6, r0
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
_08047488:
|
|
adds r5, 0x3
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
_0804748E:
|
|
cmp r0, 0xFF
|
|
beq _080474B2
|
|
cmp r0, 0xFE
|
|
beq _08047498
|
|
b _0804734C
|
|
_08047498:
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047488
|
|
_080474B2:
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x19
|
|
bne _08047508
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
mov r2, r9
|
|
ldrh r1, [r2]
|
|
bl move_weather_interaction
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08047508
|
|
movs r0, 0x3
|
|
ands r6, r0
|
|
cmp r6, 0x1
|
|
beq _08047508
|
|
ldr r2, =gBattleMoves
|
|
mov r0, r9
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _08047508
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r4, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x6]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x19
|
|
bl b_history__record_ability_usage_of_player
|
|
_08047508:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_wonderguard_and_levitate
|
|
|
|
thumb_func_start b_attack_effectivity_adapt
|
|
b_attack_effectivity_adapt: @ 804752C
|
|
push {r4-r7,lr}
|
|
adds r6, r2, 0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r7, =gBattleMoveDamage
|
|
ldr r0, [r7]
|
|
muls r0, r4
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r7]
|
|
cmp r0, 0
|
|
bne _08047552
|
|
cmp r4, 0
|
|
beq _08047552
|
|
movs r0, 0x1
|
|
str r0, [r7]
|
|
_08047552:
|
|
cmp r4, 0x5
|
|
beq _0804757A
|
|
cmp r4, 0x5
|
|
bgt _08047564
|
|
cmp r4, 0
|
|
beq _0804756A
|
|
b _080475DE
|
|
.pool
|
|
_08047564:
|
|
cmp r4, 0x14
|
|
beq _080475AC
|
|
b _080475DE
|
|
_0804756A:
|
|
ldrb r0, [r6]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
movs r1, 0xFB
|
|
ands r0, r1
|
|
movs r1, 0xFD
|
|
ands r0, r1
|
|
b _080475DC
|
|
_0804757A:
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
beq _080475DE
|
|
ldrb r1, [r6]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080475DE
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080475A8
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _080475DC
|
|
.pool
|
|
_080475A8:
|
|
movs r0, 0x4
|
|
b _080475DA
|
|
_080475AC:
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
beq _080475DE
|
|
ldrb r1, [r6]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080475DE
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080475D8
|
|
movs r0, 0xFB
|
|
ands r0, r1
|
|
b _080475DC
|
|
.pool
|
|
_080475D8:
|
|
movs r0, 0x2
|
|
_080475DA:
|
|
orrs r0, r1
|
|
_080475DC:
|
|
strb r0, [r6]
|
|
_080475DE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end b_attack_effectivity_adapt
|
|
|
|
thumb_func_start move_effectiveness_something
|
|
move_effectiveness_something: @ 80475E4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r0, sp
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
mov r2, r10
|
|
cmp r2, 0xA5
|
|
bne _08047616
|
|
movs r0, 0
|
|
b _0804779E
|
|
_08047616:
|
|
ldr r1, =gBattleMoves
|
|
mov r3, r10
|
|
lsls r2, r3, 1
|
|
adds r0, r2, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
str r0, [sp, 0x8]
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
ldr r3, [sp, 0x4]
|
|
muls r0, r3
|
|
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, 0x8]
|
|
cmp r0, r1
|
|
beq _0804764A
|
|
adds r0, r3, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
bne _0804765C
|
|
_0804764A:
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
str r0, [r4]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0804765C:
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
bne _08047690
|
|
ldr r3, [sp, 0x8]
|
|
cmp r3, 0x4
|
|
bne _08047690
|
|
movs r1, 0x9
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
orrs r0, r1
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
b _08047740
|
|
.pool
|
|
_08047690:
|
|
ldr r1, =gUnknown_0831ACE8
|
|
mov r2, r8
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0xFF
|
|
beq _08047740
|
|
cmp r0, 0xFE
|
|
bne _080476B6
|
|
movs r0, 0x58
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
b _0804772E
|
|
.pool
|
|
_080476B0:
|
|
movs r0, 0x3
|
|
add r8, r0
|
|
b _08047718
|
|
_080476B6:
|
|
ldr r7, =gUnknown_0831ACE8
|
|
mov r1, r8
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, 0x8]
|
|
cmp r0, r2
|
|
bne _08047710
|
|
adds r1, 0x1
|
|
adds r1, r7
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r3, r9
|
|
muls r3, r0
|
|
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 _080476F0
|
|
mov r0, r8
|
|
adds r0, 0x2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
mov r2, sp
|
|
bl b_attack_effectivity_adapt
|
|
_080476F0:
|
|
adds r0, r5, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _08047710
|
|
ldrb r0, [r6]
|
|
cmp r0, r4
|
|
beq _08047710
|
|
mov r0, r8
|
|
adds r0, 0x2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
mov r2, sp
|
|
bl b_attack_effectivity_adapt
|
|
_08047710:
|
|
movs r1, 0x3
|
|
add r8, r1
|
|
ldr r5, =gBattleMons
|
|
ldr r2, =gUnknown_0831ACE8
|
|
_08047718:
|
|
mov r3, r8
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _08047740
|
|
cmp r0, 0xFE
|
|
bne _080476B6
|
|
movs r0, 0x58
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
_0804772E:
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080476B0
|
|
_08047740:
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x19
|
|
bne _0804779A
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804779A
|
|
ldr r0, [sp, 0x4]
|
|
mov r1, r10
|
|
bl move_weather_interaction
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bne _0804779A
|
|
mov r0, sp
|
|
ldrb r3, [r0]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08047782
|
|
movs r0, 0x6
|
|
ands r0, r3
|
|
cmp r0, 0x6
|
|
bne _0804779A
|
|
_08047782:
|
|
ldr r0, =gBattleMoves
|
|
ldr r1, [sp, 0xC]
|
|
add r1, r10
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
beq _0804779A
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
_0804779A:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_0804779E:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end move_effectiveness_something
|
|
|
|
thumb_func_start ai_rate_move
|
|
ai_rate_move: @ 80477BC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x4]
|
|
movs r7, 0
|
|
mov r0, sp
|
|
strb r7, [r0]
|
|
ldr r2, =gBaseStats
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x6]
|
|
mov r9, r1
|
|
ldrb r0, [r0, 0x7]
|
|
mov r8, r0
|
|
cmp r6, 0xA5
|
|
bne _080477FC
|
|
movs r0, 0
|
|
b _080478A0
|
|
.pool
|
|
_080477FC:
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r6, 1
|
|
adds r0, r1, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
mov r10, r0
|
|
str r1, [sp, 0x8]
|
|
ldr r3, [sp, 0x4]
|
|
cmp r3, 0x1A
|
|
bne _08047824
|
|
cmp r0, 0x4
|
|
bne _08047824
|
|
movs r1, 0x9
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
b _0804786A
|
|
.pool
|
|
_08047824:
|
|
ldr r0, =gUnknown_0831ACE8
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _0804786A
|
|
adds r4, r1, 0
|
|
_08047830:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFE
|
|
beq _0804785C
|
|
cmp r0, r10
|
|
bne _0804785C
|
|
ldrb r5, [r4, 0x1]
|
|
cmp r5, r9
|
|
bne _0804784A
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
bl b_attack_effectivity_adapt
|
|
_0804784A:
|
|
cmp r5, r8
|
|
bne _0804785C
|
|
cmp r9, r8
|
|
beq _0804785C
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
bl b_attack_effectivity_adapt
|
|
_0804785C:
|
|
adds r4, 0x3
|
|
adds r7, 0x3
|
|
ldr r1, =gUnknown_0831ACE8
|
|
adds r0, r7, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08047830
|
|
_0804786A:
|
|
ldr r3, [sp, 0x4]
|
|
cmp r3, 0x19
|
|
bne _0804789C
|
|
mov r0, sp
|
|
ldrb r2, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08047884
|
|
movs r0, 0x6
|
|
ands r0, r2
|
|
cmp r0, 0x6
|
|
bne _0804789C
|
|
_08047884:
|
|
ldr r0, =gBattleMoves
|
|
ldr r3, [sp, 0x8]
|
|
adds r1, r3, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
beq _0804789C
|
|
mov r0, sp
|
|
movs r1, 0x8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804789C:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_080478A0:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ai_rate_move
|
|
|
|
thumb_func_start sub_80478B8
|
|
sub_80478B8: @ 80478B8
|
|
push {r4,lr}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x64
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080478EA
|
|
muls r0, r1
|
|
str r0, [r4]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _080478EA
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_080478EA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80478B8
|
|
|
|
thumb_func_start atk07_cmd7
|
|
atk07_cmd7: @ 80478F4
|
|
push {r4-r7,lr}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x64
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08047926
|
|
muls r0, r1
|
|
str r0, [r4]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08047926
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08047926:
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r5, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0804795C
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x7]
|
|
ldrb r6, [r0, 0x1A]
|
|
b _08047976
|
|
.pool
|
|
_0804795C:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08047976:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, 0x27
|
|
bne _080479B4
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bcs _080479B4
|
|
ldrb r0, [r5]
|
|
movs r1, 0x27
|
|
bl b_history__record_item_x12_of_player
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080479B4:
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r1, r0
|
|
adds r5, r2, 0
|
|
cmp r1, 0
|
|
bne _08047A84
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x65
|
|
beq _08047A06
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
blt _08047A06
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _08047A84
|
|
_08047A06:
|
|
ldrb r0, [r3]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x28]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _08047A84
|
|
subs r0, r1, 0x1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
bge _08047A5C
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08047A84
|
|
.pool
|
|
_08047A5C:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _08047A84
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024208
|
|
adds r0, r3, 0
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
_08047A84:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk07_cmd7
|
|
|
|
thumb_func_start atk08_cmd8
|
|
atk08_cmd8: @ 8047AA4
|
|
push {r4-r7,lr}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x64
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08047AD6
|
|
muls r0, r1
|
|
str r0, [r4]
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08047AD6
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08047AD6:
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r5, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08047B0C
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x7]
|
|
ldrb r6, [r0, 0x1A]
|
|
b _08047B26
|
|
.pool
|
|
_08047B0C:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08047B26:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, 0x27
|
|
bne _08047B64
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bcs _08047B64
|
|
ldrb r0, [r5]
|
|
movs r1, 0x27
|
|
bl b_history__record_item_x12_of_player
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08047B64:
|
|
ldr r4, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r7, 0x58
|
|
adds r3, r2, 0
|
|
muls r3, r7
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047C10
|
|
ldr r5, =gUnknown_0202433C
|
|
lsls r0, r2, 4
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
blt _08047BA2
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _08047C10
|
|
_08047BA2:
|
|
adds r0, r3, r4
|
|
ldrh r1, [r0, 0x28]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _08047C10
|
|
subs r0, r1, 0x1
|
|
str r0, [r2]
|
|
ldrb r3, [r6]
|
|
lsls r0, r3, 4
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
bge _08047BE8
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08047C10
|
|
.pool
|
|
_08047BE8:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _08047C10
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024208
|
|
adds r0, r3, 0
|
|
muls r0, r7
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
_08047C10:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk08_cmd8
|
|
|
|
thumb_func_start atk09_attackanimation
|
|
atk09_attackanimation: @ 8047C30
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08047C3E
|
|
b _08047DB6
|
|
_08047C3E:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
ldr r5, =gUnknown_020241EA
|
|
cmp r0, 0
|
|
beq _08047C8C
|
|
ldrh r0, [r5]
|
|
cmp r0, 0x90
|
|
beq _08047C8C
|
|
cmp r0, 0xA4
|
|
beq _08047C8C
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DABB9
|
|
str r0, [r4]
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x18]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x18]
|
|
ldrb r0, [r1, 0x19]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x19]
|
|
b _08047DB6
|
|
.pool
|
|
_08047C8C:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047CB2
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047CB2
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047CBA
|
|
_08047CB2:
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0x19]
|
|
cmp r0, 0
|
|
bne _08047D88
|
|
_08047CBA:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047DA8
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r1, r0
|
|
adds r7, r3, 0
|
|
mov r12, r2
|
|
cmp r1, 0
|
|
beq _08047D18
|
|
ldr r0, =gUnknown_02024212
|
|
ldrb r6, [r0]
|
|
b _08047D42
|
|
.pool
|
|
_08047D18:
|
|
ldr r3, =gUnknown_02024212
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
bls _08047D40
|
|
mov r1, r12
|
|
adds r0, r4, r1
|
|
ldrh r2, [r0, 0x28]
|
|
ldr r0, =gBattleMoveDamage
|
|
ldr r1, [r0]
|
|
movs r6, 0x1
|
|
adds r4, r0, 0
|
|
cmp r2, r1
|
|
ble _08047D44
|
|
ldrb r6, [r3]
|
|
b _08047D44
|
|
.pool
|
|
_08047D40:
|
|
ldrb r6, [r3]
|
|
_08047D42:
|
|
ldr r4, =gBattleMoveDamage
|
|
_08047D44:
|
|
ldrh r1, [r5]
|
|
ldr r5, =gUnknown_02024474
|
|
ldrb r2, [r5, 0x18]
|
|
ldr r0, =gUnknown_020244E0
|
|
ldrh r3, [r0]
|
|
ldr r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r4, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
add r0, r12
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x4]
|
|
ldrb r4, [r7]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_020242BC
|
|
adds r0, r4
|
|
str r0, [sp, 0x8]
|
|
str r6, [sp, 0xC]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
|
|
ldrb r0, [r5, 0x18]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x18]
|
|
ldrb r0, [r5, 0x19]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x19]
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08047D88:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
b _08047DB6
|
|
.pool
|
|
_08047DA8:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DABB9
|
|
str r0, [r4]
|
|
_08047DB6:
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk09_attackanimation
|
|
|
|
thumb_func_start sub_8047DC8
|
|
sub_8047DC8: @ 8047DC8
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08047DDA
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08047DDA:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8047DC8
|
|
|
|
thumb_func_start atk0B_graphicalhpupdate
|
|
atk0B_graphicalhpupdate: @ 8047DE8
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08047EAA
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047EA2
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r2, =gUnknown_02024064
|
|
strb r0, [r2]
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047E68
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0
|
|
beq _08047E68
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047E68
|
|
movs r0, 0x80
|
|
adds r1, r2, 0
|
|
bl b_std_message
|
|
b _08047EA2
|
|
.pool
|
|
_08047E68:
|
|
ldr r0, =gBattleMoveDamage
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00002710
|
|
cmp r0, r1
|
|
bgt _08047E76
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
_08047E76:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08047EA2
|
|
ldr r0, =gBattleMoveDamage
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
ble _08047EA2
|
|
ldr r0, =gUnknown_03005D10
|
|
ldrb r1, [r0, 0x5]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
_08047EA2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_08047EAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk0B_graphicalhpupdate
|
|
|
|
thumb_func_start atk0C_datahpupdate
|
|
atk0C_datahpupdate: @ 8047EC4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08047ED2
|
|
b _080482A2
|
|
_08047ED2:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x13]
|
|
cmp r1, 0
|
|
beq _08047EF4
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08047EF4
|
|
movs r6, 0x3F
|
|
ands r6, r1
|
|
b _08047F04
|
|
.pool
|
|
_08047EF4:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r6, [r0, 0x2]
|
|
_08047F04:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08047F12
|
|
b _08048274
|
|
_08047F12:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r7, =gUnknown_02024064
|
|
strb r0, [r7]
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048028
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r4, r1, r0
|
|
ldrb r1, [r4, 0xA]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
beq _08048028
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r3, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
bne _08048028
|
|
adds r5, r1, 0
|
|
ldr r6, =gBattleMoveDamage
|
|
ldr r4, [r6]
|
|
cmp r5, r4
|
|
blt _08047FBC
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _08047F76
|
|
str r4, [r1]
|
|
_08047F76:
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldr r2, [r6]
|
|
ldrb r0, [r1, 0xA]
|
|
subs r0, r2
|
|
strb r0, [r1, 0xA]
|
|
ldr r1, =gUnknown_020241F4
|
|
ldr r0, [r6]
|
|
str r0, [r1]
|
|
b _08047FEC
|
|
.pool
|
|
_08047FBC:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _08047FD0
|
|
str r5, [r1]
|
|
_08047FD0:
|
|
ldr r2, =gUnknown_020241F4
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r0, [r0, 0xA]
|
|
str r0, [r2]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
strb r3, [r0, 0xA]
|
|
_08047FEC:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
beq _08048000
|
|
b _0804829A
|
|
_08048000:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x2
|
|
str r0, [r4]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r0, =gUnknown_082DB6FB
|
|
str r0, [r4]
|
|
b _080482A2
|
|
.pool
|
|
_08048028:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r2, [r0]
|
|
ldr r1, =0xfffffeff
|
|
ands r2, r1
|
|
str r2, [r0]
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r5, [r1]
|
|
mov r12, r0
|
|
adds r7, r1, 0
|
|
cmp r5, 0
|
|
bge _0804807C
|
|
ldr r4, =gBattleMons
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x28]
|
|
subs r0, r5
|
|
strh r0, [r1, 0x28]
|
|
ldrb r0, [r2]
|
|
muls r0, r3
|
|
adds r1, r0, r4
|
|
ldrh r3, [r1, 0x2C]
|
|
ldrh r0, [r1, 0x28]
|
|
adds r5, r2, 0
|
|
cmp r0, r3
|
|
bhi _08048064
|
|
b _0804823A
|
|
_08048064:
|
|
strh r3, [r1, 0x28]
|
|
b _0804823A
|
|
.pool
|
|
_0804807C:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08048098
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r2, r0
|
|
mov r0, r12
|
|
str r2, [r0]
|
|
ldr r5, =gUnknown_02024064
|
|
b _080480E0
|
|
.pool
|
|
_08048098:
|
|
ldr r0, =gUnknown_020241F8
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, r5
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
bne _080480D4
|
|
ldr r1, =gUnknown_02024288
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_0202420B
|
|
b _080480DC
|
|
.pool
|
|
_080480D4:
|
|
ldr r1, =gUnknown_02024288
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldr r1, =gEnemyMonIndex
|
|
_080480DC:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_080480E0:
|
|
ldr r4, =gBattleMons
|
|
ldrb r0, [r5]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r2, r0, r4
|
|
ldrh r0, [r2, 0x28]
|
|
ldr r1, [r7]
|
|
cmp r0, r1
|
|
ble _08048110
|
|
subs r0, r1
|
|
strh r0, [r2, 0x28]
|
|
ldr r0, =gUnknown_020241F4
|
|
str r1, [r0]
|
|
adds r7, r0, 0
|
|
b _08048120
|
|
.pool
|
|
_08048110:
|
|
ldr r2, =gUnknown_020241F4
|
|
str r0, [r2]
|
|
ldrb r0, [r5]
|
|
muls r0, r3
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0, 0x28]
|
|
adds r7, r2, 0
|
|
_08048120:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r2, 0x4
|
|
adds r3, r0, r1
|
|
ldr r0, [r3]
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
bne _08048148
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08048148
|
|
ldr r0, [r7]
|
|
str r0, [r3]
|
|
_08048148:
|
|
cmp r6, 0x8
|
|
bhi _080481D0
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080481CC
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xDC
|
|
beq _080481CC
|
|
ldr r3, =gUnknown_0202433C
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r1, r3, 0x4
|
|
adds r0, r1
|
|
ldr r2, [r7]
|
|
str r2, [r0]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _080481AC
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r0, r3
|
|
ldr r2, =gUnknown_0202420B
|
|
b _080481B4
|
|
.pool
|
|
_080481AC:
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r0, r3
|
|
ldr r2, =gEnemyMonIndex
|
|
_080481B4:
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, 0xC]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, 0x10]
|
|
b _0804823A
|
|
.pool
|
|
_080481CC:
|
|
cmp r6, 0x8
|
|
bls _0804823A
|
|
_080481D0:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804823A
|
|
ldr r3, =gUnknown_0202433C
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r1, r3, 0
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldr r2, [r7]
|
|
str r2, [r0]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _08048220
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r0, r3
|
|
ldr r2, =gUnknown_0202420B
|
|
b _08048228
|
|
.pool
|
|
_08048220:
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r0, r3
|
|
ldr r2, =gEnemyMonIndex
|
|
_08048228:
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, 0xD]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r2]
|
|
strb r1, [r0, 0x11]
|
|
_0804823A:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldr r1, =0xffefffff
|
|
ands r0, r1
|
|
mov r1, r12
|
|
str r0, [r1]
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240AC
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2A
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804829A
|
|
.pool
|
|
_08048274:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0804829A
|
|
ldr r0, =0x0000ffff
|
|
str r0, [r1]
|
|
_0804829A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_080482A2:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk0C_datahpupdate
|
|
|
|
thumb_func_start atk0D_critmessage
|
|
atk0D_critmessage: @ 80482BC
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080482F2
|
|
ldr r0, =gCritMultiplier
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080482EA
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080482EA
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0xD9
|
|
bl b_std_message
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x7]
|
|
_080482EA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_080482F2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk0D_critmessage
|
|
|
|
thumb_func_start atk0E_missmessage
|
|
atk0E_missmessage: @ 8048310
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080483D0
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, =gBattleMoveFlags
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080483C8
|
|
movs r0, 0xFE
|
|
ands r0, r2
|
|
cmp r0, 0x10
|
|
beq _08048382
|
|
cmp r0, 0x10
|
|
bgt _0804835E
|
|
cmp r0, 0x4
|
|
beq _08048372
|
|
cmp r0, 0x4
|
|
bgt _08048358
|
|
cmp r0, 0x2
|
|
beq _0804836C
|
|
b _08048382
|
|
.pool
|
|
_08048358:
|
|
cmp r0, 0x8
|
|
beq _080483C8
|
|
b _08048382
|
|
_0804835E:
|
|
cmp r0, 0x40
|
|
beq _08048382
|
|
cmp r0, 0x40
|
|
bgt _08048382
|
|
cmp r0, 0x20
|
|
beq _080483C8
|
|
b _08048382
|
|
_0804836C:
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
b _08048376
|
|
_08048372:
|
|
movs r0, 0
|
|
movs r1, 0xC
|
|
_08048376:
|
|
bl dp01_build_cmdbuf_x2B_aa_0
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _080483C8
|
|
_08048382:
|
|
ldrb r1, [r1]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048392
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
b _0804839E
|
|
_08048392:
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080483B0
|
|
movs r0, 0
|
|
movs r1, 0xC
|
|
_0804839E:
|
|
bl dp01_build_cmdbuf_x2B_aa_0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _080483C8
|
|
.pool
|
|
_080483B0:
|
|
movs r0, 0x28
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080483C8
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl dp01_build_cmdbuf_x2B_aa_0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_080483C8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_080483D0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk0E_missmessage
|
|
|
|
thumb_func_start atk0F_resultmessage
|
|
atk0F_resultmessage: @ 80483E0
|
|
push {r4-r7,lr}
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080483EE
|
|
b _08048580
|
|
_080483EE:
|
|
ldr r1, =gBattleMoveFlags
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
adds r6, r1, 0
|
|
ldr r7, =gUnknown_02024332
|
|
cmp r0, 0
|
|
beq _0804842C
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0804840E
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0x2
|
|
bls _0804842C
|
|
_0804840E:
|
|
ldr r1, =gUnknown_085CC834
|
|
ldrb r0, [r7, 0x6]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r3, [r0]
|
|
strb r4, [r7, 0x7]
|
|
b _0804856A
|
|
.pool
|
|
_0804842C:
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x7]
|
|
ldrb r5, [r6]
|
|
movs r0, 0xFE
|
|
ands r0, r5
|
|
cmp r0, 0x10
|
|
beq _08048470
|
|
cmp r0, 0x10
|
|
bgt _08048452
|
|
cmp r0, 0x4
|
|
beq _0804846C
|
|
cmp r0, 0x4
|
|
bgt _0804844C
|
|
cmp r0, 0x2
|
|
beq _08048468
|
|
b _080484B8
|
|
_0804844C:
|
|
cmp r0, 0x8
|
|
beq _080484C4
|
|
b _080484B8
|
|
_08048452:
|
|
cmp r0, 0x40
|
|
beq _08048474
|
|
cmp r0, 0x40
|
|
bgt _08048462
|
|
cmp r0, 0x20
|
|
bne _08048460
|
|
b _08048564
|
|
_08048460:
|
|
b _080484B8
|
|
_08048462:
|
|
cmp r0, 0x80
|
|
beq _08048478
|
|
b _080484B8
|
|
_08048468:
|
|
movs r3, 0xDE
|
|
b _0804856E
|
|
_0804846C:
|
|
movs r3, 0xDD
|
|
b _0804856E
|
|
_08048470:
|
|
movs r3, 0xDA
|
|
b _0804856E
|
|
_08048474:
|
|
movs r3, 0x99
|
|
b _0804856E
|
|
_08048478:
|
|
ldr r4, =gUnknown_02024208
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r4]
|
|
ldr r1, =gUnknown_0202420F
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r5
|
|
strb r0, [r6]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB816
|
|
b _0804857E
|
|
.pool
|
|
_080484B8:
|
|
adds r2, r6, 0
|
|
ldrb r5, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080484C8
|
|
_080484C4:
|
|
movs r3, 0x1B
|
|
b _0804856E
|
|
_080484C8:
|
|
movs r0, 0x10
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080484F0
|
|
movs r0, 0xEF
|
|
ands r0, r5
|
|
movs r1, 0xFD
|
|
ands r0, r1
|
|
movs r1, 0xFB
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB1CE
|
|
b _0804857E
|
|
.pool
|
|
_080484F0:
|
|
movs r0, 0x40
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08048510
|
|
movs r0, 0x3F
|
|
ands r0, r5
|
|
strb r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB1C7
|
|
b _0804857E
|
|
.pool
|
|
_08048510:
|
|
movs r0, 0x80
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08048558
|
|
ldr r4, =gUnknown_02024208
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r4]
|
|
ldr r1, =gUnknown_0202420F
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
movs r0, 0x3F
|
|
ands r0, r5
|
|
strb r0, [r6]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB816
|
|
b _0804857E
|
|
.pool
|
|
_08048558:
|
|
movs r0, 0x20
|
|
ands r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08048568
|
|
_08048564:
|
|
movs r3, 0xE5
|
|
b _0804856E
|
|
_08048568:
|
|
strb r0, [r7, 0x7]
|
|
_0804856A:
|
|
cmp r3, 0
|
|
beq _08048578
|
|
_0804856E:
|
|
adds r0, r3, 0
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r1, [r1]
|
|
bl b_std_message
|
|
_08048578:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
_0804857E:
|
|
str r0, [r1]
|
|
_08048580:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk0F_resultmessage
|
|
|
|
thumb_func_start atk10_printstring
|
|
atk10_printstring: @ 8048590
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080485BA
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x1]
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r1, [r1]
|
|
bl b_std_message
|
|
ldr r0, [r4]
|
|
adds r0, 0x3
|
|
str r0, [r4]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x7]
|
|
_080485BA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk10_printstring
|
|
|
|
thumb_func_start atk11_printstring2
|
|
atk11_printstring2: @ 80485D0
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x1]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x11_TODO
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r4]
|
|
adds r0, 0x3
|
|
str r0, [r4]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x7]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk11_printstring2
|
|
|
|
thumb_func_start atk12_waitmessage
|
|
atk12_waitmessage: @ 8048614
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
bne _08048662
|
|
ldr r6, =gUnknown_02024332
|
|
ldrb r0, [r6, 0x7]
|
|
cmp r0, 0
|
|
bne _0804863C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x3
|
|
str r0, [r1]
|
|
b _08048662
|
|
.pool
|
|
_0804863C:
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldr r3, =gUnknown_0202432C
|
|
ldrh r0, [r3]
|
|
adds r0, 0x1
|
|
strh r0, [r3]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r1
|
|
bcc _08048662
|
|
movs r1, 0
|
|
strh r4, [r3]
|
|
adds r0, r2, 0x3
|
|
str r0, [r5]
|
|
strb r1, [r6, 0x7]
|
|
_08048662:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk12_waitmessage
|
|
|
|
thumb_func_start atk13_printfromtable
|
|
atk13_printfromtable: @ 8048670
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080486AE
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5, 0x5]
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r1, [r1]
|
|
bl b_std_message
|
|
ldr r0, [r4]
|
|
adds r0, 0x5
|
|
str r0, [r4]
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x7]
|
|
_080486AE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk13_printfromtable
|
|
|
|
thumb_func_start atk14_printfromtable2
|
|
atk14_printfromtable2: @ 80486C4
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804870E
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
ldr r6, =gUnknown_02024332
|
|
ldrb r0, [r6, 0x5]
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrh r1, [r1]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x11_TODO
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x5
|
|
str r0, [r5]
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x7]
|
|
_0804870E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk14_printfromtable2
|
|
|
|
thumb_func_start sub_8048728
|
|
sub_8048728: @ 8048728
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r0]
|
|
cmp r1, r3
|
|
bge _0804874E
|
|
ldr r4, =gUnknown_0202407E
|
|
ldrb r0, [r4]
|
|
cmp r0, r2
|
|
beq _0804874E
|
|
_08048740:
|
|
adds r1, 0x1
|
|
cmp r1, r3
|
|
bge _0804874E
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _08048740
|
|
_0804874E:
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8048728
|
|
|
|
thumb_func_start sub_8048760
|
|
sub_8048760: @ 8048760
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
movs r0, 0
|
|
mov r10, r0
|
|
movs r7, 0
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x4]
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r3, [r1, 0x3]
|
|
movs r0, 0x40
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080487B8
|
|
ldr r2, =gUnknown_0202420E
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
movs r0, 0xBF
|
|
ands r0, r3
|
|
adds r3, r1, 0
|
|
strb r0, [r3, 0x3]
|
|
movs r7, 0x40
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r0, =gEnemyMonIndex
|
|
b _080487C4
|
|
.pool
|
|
_080487B8:
|
|
ldr r2, =gUnknown_0202420E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r0, =gUnknown_0202420B
|
|
_080487C4:
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x17]
|
|
mov r9, r2
|
|
ldr r2, =gBattleMons
|
|
mov r4, r9
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x13
|
|
bne _08048828
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08048828
|
|
cmp r5, 0
|
|
bne _08048828
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0x9
|
|
bhi _08048828
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024332
|
|
strb r5, [r2, 0x3]
|
|
bl _080499B8
|
|
.pool
|
|
_08048828:
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
bl battle_get_per_side_status
|
|
ldr r2, =gUnknown_0202428E
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048880
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08048880
|
|
cmp r5, 0
|
|
bne _08048880
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r0, 0x3]
|
|
cmp r1, 0x7
|
|
bhi _08048880
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r4, =gUnknown_02024332
|
|
strb r5, [r4, 0x3]
|
|
bl _080499B8
|
|
.pool
|
|
_08048880:
|
|
ldr r3, =gBattleMons
|
|
ldr r2, =gUnknown_0202420E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r4, [r0, 0x28]
|
|
mov r9, r2
|
|
mov r8, r3
|
|
cmp r4, 0
|
|
bne _080488C4
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0xB
|
|
beq _080488C4
|
|
cmp r0, 0x1F
|
|
beq _080488C4
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_02024332
|
|
strb r4, [r2, 0x3]
|
|
bl _080499B8
|
|
.pool
|
|
_080488C4:
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r8
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080488FC
|
|
cmp r7, 0x40
|
|
beq _080488FC
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, [r0]
|
|
adds r1, 0x1
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
ldr r4, =gUnknown_02024332
|
|
strb r0, [r4, 0x3]
|
|
bl _080499B8
|
|
.pool
|
|
_080488FC:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0x6
|
|
bls _08048906
|
|
b _08048F40
|
|
_08048906:
|
|
ldr r1, =gUnknown_0831C134
|
|
ldr r2, =gUnknown_02024332
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x10
|
|
bne _08048918
|
|
b _08048AFC
|
|
_08048918:
|
|
cmp r0, 0x10
|
|
bhi _08048930
|
|
cmp r0, 0x7
|
|
beq _0804894A
|
|
cmp r0, 0x8
|
|
beq _08048A00
|
|
b _08048DF4
|
|
.pool
|
|
_08048930:
|
|
cmp r0, 0x40
|
|
bne _08048936
|
|
b _08048C84
|
|
_08048936:
|
|
cmp r0, 0x40
|
|
bhi _08048942
|
|
cmp r0, 0x20
|
|
bne _08048940
|
|
b _08048BEA
|
|
_08048940:
|
|
b _08048DF4
|
|
_08048942:
|
|
cmp r0, 0x80
|
|
bne _08048948
|
|
b _08048D02
|
|
_08048948:
|
|
b _08048DF4
|
|
_0804894A:
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2B
|
|
beq _080489AC
|
|
ldr r0, =gUnknown_02024064
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r3, [r1]
|
|
adds r7, r0, 0
|
|
mov r12, r1
|
|
cmp r3, 0
|
|
beq _080489B8
|
|
mov r4, r8
|
|
ldr r0, [r4, 0x50]
|
|
movs r1, 0x70
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080489B8
|
|
adds r1, r7, 0
|
|
mov r6, r8
|
|
adds r6, 0x50
|
|
movs r5, 0x58
|
|
movs r4, 0x70
|
|
_08048984:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r3
|
|
bcs _080489B8
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08048984
|
|
b _080489B8
|
|
.pool
|
|
_080489AC:
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r2, =gUnknown_0202406C
|
|
ldrb r1, [r2]
|
|
strb r1, [r0]
|
|
adds r7, r0, 0
|
|
mov r12, r2
|
|
_080489B8:
|
|
mov r0, r9
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
adds r1, r2, 0
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080489D0
|
|
b _08048DF4
|
|
_080489D0:
|
|
ldrb r0, [r7]
|
|
mov r3, r12
|
|
ldrb r3, [r3]
|
|
cmp r0, r3
|
|
beq _080489DC
|
|
b _08048DF4
|
|
_080489DC:
|
|
mov r4, r8
|
|
adds r0, r1, r4
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x48
|
|
bne _080489EA
|
|
b _08048DF4
|
|
_080489EA:
|
|
cmp r0, 0xF
|
|
bne _080489F0
|
|
b _08048DF4
|
|
_080489F0:
|
|
adds r0, r2, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
b _08048DE4
|
|
.pool
|
|
_08048A00:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x11
|
|
bne _08048A70
|
|
cmp r5, 0x1
|
|
beq _08048A1A
|
|
cmp r6, 0x80
|
|
bne _08048A70
|
|
_08048A1A:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r1, [r0]
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
movs r1, 0x11
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB5E9
|
|
str r0, [r4]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08048A46
|
|
b _08048D20
|
|
_08048A46:
|
|
movs r0, 0x1
|
|
ldr r4, =gUnknown_02024332
|
|
strb r0, [r4, 0x5]
|
|
_08048A4C:
|
|
ldr r0, =0xffffdfff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
bl _080499B2
|
|
.pool
|
|
_08048A70:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x3
|
|
beq _08048A94
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
beq _08048A94
|
|
cmp r1, 0x8
|
|
beq _08048A94
|
|
cmp r0, 0x8
|
|
bne _08048AAE
|
|
_08048A94:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048AAE
|
|
cmp r5, 0x1
|
|
bne _08048AA8
|
|
b _08048D66
|
|
_08048AA8:
|
|
cmp r6, 0x80
|
|
bne _08048AAE
|
|
b _08048D66
|
|
_08048AAE:
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
mov r4, r8
|
|
adds r3, r1, r4
|
|
adds r0, r3, 0
|
|
adds r0, 0x21
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x3
|
|
bne _08048AC6
|
|
b _08048DF4
|
|
_08048AC6:
|
|
adds r0, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _08048AD0
|
|
b _08048DF4
|
|
_08048AD0:
|
|
cmp r4, 0x8
|
|
bne _08048AD6
|
|
b _08048DF4
|
|
_08048AD6:
|
|
cmp r0, 0x8
|
|
bne _08048ADC
|
|
b _08048DF4
|
|
_08048ADC:
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08048AEA
|
|
b _08048DF4
|
|
_08048AEA:
|
|
adds r0, r3, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bne _08048AF6
|
|
b _08048DF4
|
|
_08048AF6:
|
|
b _08048DE4
|
|
.pool
|
|
_08048AFC:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x29
|
|
bne _08048B54
|
|
cmp r5, 0x1
|
|
beq _08048B16
|
|
cmp r6, 0x80
|
|
bne _08048B54
|
|
_08048B16:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r1, [r0]
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
movs r1, 0x29
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB5D1
|
|
str r0, [r4]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048B42
|
|
b _08048A46
|
|
_08048B42:
|
|
b _08048D20
|
|
.pool
|
|
_08048B54:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
beq _08048B74
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bne _08048BA4
|
|
_08048B74:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048BA4
|
|
cmp r5, 0x1
|
|
beq _08048B8A
|
|
cmp r6, 0x80
|
|
bne _08048BA4
|
|
_08048B8A:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB5D1
|
|
b _08048D72
|
|
.pool
|
|
_08048BA4:
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
movs r1, 0x58
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
mov r0, r8
|
|
adds r1, r2, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bne _08048BBE
|
|
b _08048DF4
|
|
_08048BBE:
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bne _08048BCA
|
|
b _08048DF4
|
|
_08048BCA:
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x29
|
|
bne _08048BD6
|
|
b _08048DF4
|
|
_08048BD6:
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08048BE4
|
|
b _08048DF4
|
|
_08048BE4:
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
b _08048DF4
|
|
_08048BEA:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08048C26
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08048C26
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048C26
|
|
movs r2, 0
|
|
str r2, [sp, 0x4]
|
|
_08048C26:
|
|
ldr r4, =gBattleMons
|
|
ldr r0, =gUnknown_0202420E
|
|
ldrb r3, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r0
|
|
adds r1, r2, r4
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
bne _08048C40
|
|
b _08048DF4
|
|
_08048C40:
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
bne _08048C4C
|
|
b _08048DF4
|
|
_08048C4C:
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08048C5A
|
|
b _08048DF4
|
|
_08048C5A:
|
|
ldr r4, [sp, 0x4]
|
|
cmp r4, 0
|
|
bne _08048C62
|
|
b _08048DF4
|
|
_08048C62:
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x28
|
|
bne _08048C6E
|
|
b _08048DF4
|
|
_08048C6E:
|
|
adds r0, r3, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
b _08048DE4
|
|
.pool
|
|
_08048C84:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
mov r3, r8
|
|
adds r0, r1, r3
|
|
adds r0, 0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x7
|
|
bne _08048CF4
|
|
cmp r5, 0x1
|
|
beq _08048CA2
|
|
cmp r6, 0x80
|
|
beq _08048CA2
|
|
b _08048DF4
|
|
_08048CA2:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r2, [r0]
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
movs r1, 0x7
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB5DD
|
|
str r0, [r4]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048CE8
|
|
movs r0, 0x1
|
|
ldr r3, =gUnknown_02024332
|
|
strb r0, [r3, 0x5]
|
|
b _08048A4C
|
|
.pool
|
|
_08048CE8:
|
|
ldr r4, =gUnknown_02024332
|
|
strb r0, [r4, 0x5]
|
|
bl _080499B2
|
|
.pool
|
|
_08048CF4:
|
|
mov r0, r8
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08048DF4
|
|
b _08048DE4
|
|
_08048D02:
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x11
|
|
bne _08048D2C
|
|
cmp r5, 0x1
|
|
bne _08048D1A
|
|
b _08048A1A
|
|
_08048D1A:
|
|
cmp r6, 0x80
|
|
bne _08048D2C
|
|
b _08048A1A
|
|
_08048D20:
|
|
ldr r1, =gUnknown_02024332
|
|
strb r0, [r1, 0x5]
|
|
bl _080499B2
|
|
.pool
|
|
_08048D2C:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x3
|
|
beq _08048D50
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
beq _08048D50
|
|
cmp r1, 0x8
|
|
beq _08048D50
|
|
cmp r0, 0x8
|
|
bne _08048D94
|
|
_08048D50:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048D94
|
|
cmp r5, 0x1
|
|
beq _08048D66
|
|
cmp r6, 0x80
|
|
bne _08048D94
|
|
_08048D66:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB5E9
|
|
_08048D72:
|
|
str r0, [r4]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r2, 0
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
strb r2, [r1, 0x3]
|
|
bl _080499B8
|
|
.pool
|
|
_08048D94:
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
mov r2, r8
|
|
adds r2, 0x4C
|
|
adds r5, r0, r2
|
|
ldr r4, [r5]
|
|
cmp r4, 0
|
|
bne _08048DF4
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r3, [r0]
|
|
cmp r3, 0x3
|
|
beq _08048DEA
|
|
adds r0, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
beq _08048DEA
|
|
cmp r3, 0x8
|
|
beq _08048DEA
|
|
cmp r0, 0x8
|
|
beq _08048DEA
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
beq _08048DF4
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x9
|
|
negs r2, r2
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_08048DE4:
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
b _08048DF4
|
|
_08048DEA:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08048DF4:
|
|
mov r1, r10
|
|
cmp r1, 0x1
|
|
beq _08048DFC
|
|
b _08048F1C
|
|
_08048DFC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C134
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
cmp r3, 0x7
|
|
bne _08048E50
|
|
bl Random
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_0202420E
|
|
ldrb r3, [r1]
|
|
movs r1, 0x58
|
|
muls r3, r1
|
|
adds r2, 0x4C
|
|
adds r3, r2
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r1, 0x2
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
b _08048E64
|
|
.pool
|
|
_08048E50:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r2, 0x4C
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
orrs r0, r3
|
|
str r0, [r1]
|
|
_08048E64:
|
|
ldr r2, =gUnknown_02024214
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r1, =gUnknown_0202420E
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
ldrb r1, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240D0
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08048ED8
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x5]
|
|
ldr r0, =0xffffdfff
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
b _08048EDA
|
|
.pool
|
|
_08048ED8:
|
|
strb r0, [r5, 0x5]
|
|
_08048EDA:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r2, [r0, 0x3]
|
|
cmp r2, 0x2
|
|
beq _08048EF2
|
|
cmp r2, 0x6
|
|
beq _08048EF2
|
|
cmp r2, 0x5
|
|
beq _08048EF2
|
|
cmp r2, 0x3
|
|
beq _08048EF2
|
|
bl _080499B8
|
|
_08048EF2:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xB2
|
|
ldr r2, =gUnknown_02024332
|
|
ldrb r1, [r2, 0x3]
|
|
strb r1, [r0]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 7
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bl _080499B8
|
|
.pool
|
|
_08048F1C:
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
beq _08048F26
|
|
bl _080499B8
|
|
_08048F26:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bl _080499B8
|
|
.pool
|
|
_08048F40:
|
|
mov r4, r9
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
ldr r2, =gUnknown_0831C134
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r3, [r0, 0x3]
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08048F66
|
|
bl _08049994
|
|
_08048F66:
|
|
subs r0, r3, 0x7
|
|
cmp r0, 0x34
|
|
bls _08048F70
|
|
bl _080499B2
|
|
_08048F70:
|
|
lsls r0, 2
|
|
ldr r1, =_08048F88
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08048F88:
|
|
.4byte _0804905C
|
|
.4byte _080490D0
|
|
.4byte _08049244
|
|
.4byte _0804915C
|
|
.4byte _080491D8
|
|
.4byte _0804927C
|
|
.4byte _080492C4
|
|
.4byte _08049390
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _080493D4
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _0804941C
|
|
.4byte _080494FC
|
|
.4byte _08049544
|
|
.4byte _08049564
|
|
.4byte _08049720
|
|
.4byte _0804975C
|
|
.4byte _08049778
|
|
.4byte _08049790
|
|
.4byte _080497A8
|
|
.4byte _08049808
|
|
.4byte _08049820
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _08049468
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _080494B0
|
|
.4byte _08049864
|
|
.4byte _080498C0
|
|
.4byte _080499B2
|
|
.4byte _080499B2
|
|
.4byte _080499B2
|
|
.4byte _080499B2
|
|
.4byte _080499A4
|
|
_0804905C:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
movs r5, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
mov r2, r8
|
|
adds r0, r1, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x14
|
|
bne _08049076
|
|
bl _08049994
|
|
_08049076:
|
|
mov r4, r8
|
|
adds r4, 0x50
|
|
adds r0, r1, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804908A
|
|
bl _08049994
|
|
_0804908A:
|
|
bl Random
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
adds r2, r4
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
adds r1, 0x2
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _080499B0
|
|
.pool
|
|
_080490D0:
|
|
mov r4, r9
|
|
ldrb r2, [r4]
|
|
movs r4, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r4
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x27
|
|
bne _08049114
|
|
cmp r5, 0x1
|
|
beq _080490F0
|
|
cmp r6, 0x80
|
|
beq _080490F0
|
|
bl _08049994
|
|
_080490F0:
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r1, [r0]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
movs r1, 0x27
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB603
|
|
str r0, [r1]
|
|
bl _080499B2
|
|
.pool
|
|
_08049114:
|
|
adds r0, r2, 0
|
|
bl sub_8048728
|
|
ldr r1, =gUnknown_02024082
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhi _0804912A
|
|
bl _08049994
|
|
_0804912A:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r2, r0, 0
|
|
muls r2, r4
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r1, =gUnknown_0831C134
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
bl _08049994
|
|
.pool
|
|
_0804915C:
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
mov r4, r8
|
|
adds r4, 0x50
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r0, 0x70
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049178
|
|
bl _08049994
|
|
_08049178:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024268
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bl Random
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
adds r2, r4
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r1, 0x2
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl _080499B0
|
|
.pool
|
|
_080491D8:
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08049210
|
|
ldr r4, =gUnknown_0202432E
|
|
ldrh r3, [r4]
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, r3, r0
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r3, r0
|
|
bls _08049210
|
|
ldr r3, =0x0000ffff
|
|
adds r0, r3, 0
|
|
strh r0, [r4]
|
|
_08049210:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _080499B0
|
|
.pool
|
|
_08049244:
|
|
mov r4, r9
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r8
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804925A
|
|
b _08049994
|
|
_0804925A:
|
|
bl Random
|
|
ldr r4, =gUnknown_02024332
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
adds r0, 0x3
|
|
strb r0, [r4, 0x3]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
b _080499B2
|
|
.pool
|
|
_0804927C:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024268
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r2]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
b _08049994
|
|
.pool
|
|
_080492C4:
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
mov r4, r8
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r5, [r0]
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _080492E0
|
|
b _08049994
|
|
_080492E0:
|
|
bl Random
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
adds r2, r1, 0
|
|
muls r2, r6
|
|
adds r2, r4
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r1, 0x3
|
|
lsls r1, 13
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldr r6, =gUnknown_020241EA
|
|
ldrh r0, [r6]
|
|
strb r0, [r1, 0x4]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r6]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x5]
|
|
ldrb r1, [r3]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x14]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r2, =gUnknown_02024332
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
strb r5, [r2, 0x5]
|
|
ldr r3, =gUnknown_085CC982
|
|
ldrh r0, [r3]
|
|
ldrh r4, [r6]
|
|
cmp r0, r4
|
|
bne _0804934E
|
|
b _080499B2
|
|
_0804934E:
|
|
adds r1, r2, 0
|
|
adds r2, r6, 0
|
|
_08049352:
|
|
ldrb r0, [r1, 0x5]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bls _08049362
|
|
b _080499B2
|
|
_08049362:
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
ldrh r4, [r2]
|
|
cmp r0, r4
|
|
bne _08049352
|
|
b _080499B2
|
|
.pool
|
|
_08049390:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r0, =gUnknown_020241F4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _0804939C
|
|
adds r0, 0x3
|
|
_0804939C:
|
|
asrs r0, 2
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _080493A8
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_080493A8:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _080499B0
|
|
.pool
|
|
_080493D4:
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r1, [r4, 0x3]
|
|
adds r1, 0xF2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x10
|
|
adds r2, r7, 0
|
|
movs r3, 0
|
|
bl sub_8050A1C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080493F2
|
|
b _08049994
|
|
_080493F2:
|
|
ldr r2, =gUnknown_02024474
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x10]
|
|
strb r3, [r2, 0x11]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082D8CD4
|
|
b _080499B0
|
|
.pool
|
|
_0804941C:
|
|
movs r0, 0x70
|
|
negs r0, r0
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r1, [r4, 0x3]
|
|
adds r1, 0xEB
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r7, 0
|
|
movs r3, 0
|
|
bl sub_8050A1C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _0804943C
|
|
b _08049994
|
|
_0804943C:
|
|
ldr r2, =gUnknown_02024474
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x10]
|
|
strb r3, [r2, 0x11]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082D8D65
|
|
b _080499B0
|
|
.pool
|
|
_08049468:
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r1, [r4, 0x3]
|
|
adds r1, 0xDA
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x20
|
|
adds r2, r7, 0
|
|
movs r3, 0
|
|
bl sub_8050A1C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _08049486
|
|
b _08049994
|
|
_08049486:
|
|
ldr r2, =gUnknown_02024474
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x10]
|
|
strb r3, [r2, 0x11]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082D8CD4
|
|
b _080499B0
|
|
.pool
|
|
_080494B0:
|
|
movs r0, 0x60
|
|
negs r0, r0
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r1, [r4, 0x3]
|
|
adds r1, 0xD3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, r7, 0
|
|
movs r3, 0
|
|
bl sub_8050A1C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _080494D0
|
|
b _08049994
|
|
_080494D0:
|
|
ldr r2, =gUnknown_02024474
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x10]
|
|
strb r3, [r2, 0x11]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082D8D65
|
|
b _080499B0
|
|
.pool
|
|
_080494FC:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_020242BC
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x19]
|
|
ldr r1, =gUnknown_02024268
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _08049994
|
|
.pool
|
|
_08049544:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 16
|
|
_0804955A:
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _08049994
|
|
.pool
|
|
_08049564:
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049574
|
|
b _08049994
|
|
_08049574:
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080495A8
|
|
ldr r0, [r5]
|
|
ldr r1, =0x0a3f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080495D4
|
|
b _08049994
|
|
.pool
|
|
_080495A8:
|
|
ldr r0, [r5]
|
|
ldr r1, =0x0a3f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080495D4
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x29
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
ldr r3, =gBitTable
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080495D4
|
|
b _08049994
|
|
_080495D4:
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r1]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
beq _0804963C
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3C
|
|
bne _0804963C
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB682
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _080499B2
|
|
.pool
|
|
_0804963C:
|
|
ldr r4, =gUnknown_0202420B
|
|
mov r10, r4
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
mov r9, r0
|
|
mov r0, r9
|
|
muls r0, r2
|
|
add r0, r8
|
|
ldrh r4, [r0, 0x2E]
|
|
cmp r4, 0
|
|
beq _08049654
|
|
b _08049994
|
|
_08049654:
|
|
ldrb r0, [r7]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r8
|
|
ldrh r3, [r0, 0x2E]
|
|
adds r1, r3, 0
|
|
cmp r1, 0xAF
|
|
bne _08049668
|
|
b _08049994
|
|
_08049668:
|
|
adds r0, r3, 0
|
|
subs r0, 0x79
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bhi _08049676
|
|
b _08049994
|
|
_08049676:
|
|
cmp r1, 0
|
|
bne _0804967C
|
|
b _08049994
|
|
_0804967C:
|
|
ldr r5, =gUnknown_0202449C
|
|
lsls r0, r2, 1
|
|
adds r0, 0xD0
|
|
ldr r1, [r5]
|
|
adds r1, r0
|
|
ldr r2, =gUnknown_02024208
|
|
strh r3, [r1]
|
|
strh r3, [r2]
|
|
ldrb r0, [r7]
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
add r0, r8
|
|
movs r6, 0
|
|
strh r4, [r0, 0x2E]
|
|
ldr r4, =gUnknown_02024064
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
str r2, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldrb r0, [r7]
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
mov r1, r8
|
|
adds r1, 0x2E
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB422
|
|
str r0, [r4]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
strb r6, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r6, [r0]
|
|
b _080499B2
|
|
.pool
|
|
_08049720:
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, 0x14]
|
|
b _08049994
|
|
.pool
|
|
_0804975C:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r0, r8
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 20
|
|
b _0804955A
|
|
.pool
|
|
_08049778:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DAF27
|
|
b _080499B0
|
|
.pool
|
|
_08049790:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DAFC3
|
|
b _080499B0
|
|
.pool
|
|
_080497A8:
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
mov r1, r8
|
|
adds r1, 0x4C
|
|
adds r5, r0, r1
|
|
ldr r4, [r5]
|
|
movs r0, 0x40
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _080497C2
|
|
b _08049994
|
|
_080497C2:
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r4, r0
|
|
str r4, [r5]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
muls r0, r2
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB361
|
|
b _080499B0
|
|
.pool
|
|
_08049808:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB117
|
|
b _080499B0
|
|
.pool
|
|
_08049820:
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r0, =gUnknown_020241F4
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _08049836
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08049836:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_0831C224
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _080499B0
|
|
.pool
|
|
_08049864:
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
mov r4, r8
|
|
adds r4, 0x50
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r0, 0xC0
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049880
|
|
b _08049994
|
|
_08049880:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024268
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bl Random
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
adds r2, r4
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
adds r1, 0x2
|
|
lsls r1, 10
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
b _080499B2
|
|
.pool
|
|
_080498C0:
|
|
mov r4, r9
|
|
ldrb r3, [r4]
|
|
movs r5, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r5
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x3C
|
|
bne _08049900
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0
|
|
beq _08049994
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB63F
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3C
|
|
bl b_history__record_ability_usage_of_player
|
|
b _080499B2
|
|
.pool
|
|
_08049900:
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0
|
|
beq _08049994
|
|
adds r0, r3, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gUnknown_02024208
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
muls r0, r5
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
ldrb r0, [r3]
|
|
muls r0, r5
|
|
add r0, r8
|
|
movs r5, 0
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldr r2, =gUnknown_020243D0
|
|
adds r2, 0x29
|
|
adds r2, r4, r2
|
|
ldr r3, =gBitTable
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB168
|
|
str r0, [r4]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
strb r5, [r0]
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r5, [r0]
|
|
b _080499B2
|
|
.pool
|
|
_08049994:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
b _080499B2
|
|
.pool
|
|
_080499A4:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB1D5
|
|
_080499B0:
|
|
str r0, [r4]
|
|
_080499B2:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x3]
|
|
_080499B8:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8048760
|
|
|
|
thumb_func_start atk15_seteffectwithchancetarget
|
|
atk15_seteffectwithchancetarget: @ 80499D4
|
|
push {r4,lr}
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x20
|
|
bne _08049A10
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r4, r0, 1
|
|
b _08049A20
|
|
.pool
|
|
_08049A10:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r4, [r0, 0x5]
|
|
_08049A20:
|
|
ldr r3, =gUnknown_02024332
|
|
ldrb r2, [r3, 0x3]
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08049A50
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08049A50
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r3, 0x3]
|
|
b _08049A7E
|
|
.pool
|
|
_08049A50:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r4
|
|
bcs _08049A9A
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x3]
|
|
cmp r0, 0
|
|
beq _08049A9A
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08049A9A
|
|
cmp r4, 0x63
|
|
bls _08049A90
|
|
_08049A7E:
|
|
movs r0, 0
|
|
movs r1, 0x80
|
|
bl sub_8048760
|
|
b _08049AA2
|
|
.pool
|
|
_08049A90:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
b _08049AA2
|
|
_08049A9A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08049AA2:
|
|
ldr r0, =gUnknown_02024332
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r1, [r0, 0x16]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk15_seteffectwithchancetarget
|
|
|
|
thumb_func_start sub_8049AC0
|
|
sub_8049AC0: @ 8049AC0
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049AC0
|
|
|
|
thumb_func_start sub_8049AD0
|
|
sub_8049AD0: @ 8049AD0
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8048760
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8049AD0
|
|
|
|
thumb_func_start sub_8049AE0
|
|
sub_8049AE0: @ 8049AE0
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r2, =gUnknown_02024064
|
|
strb r0, [r2]
|
|
ldr r3, =gUnknown_02024332
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x6
|
|
bhi _08049B14
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r2]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x4C
|
|
b _08049B1E
|
|
.pool
|
|
_08049B14:
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r2]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
_08049B1E:
|
|
adds r2, r1
|
|
ldr r1, =gUnknown_0831C134
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_02024332
|
|
movs r2, 0
|
|
strb r2, [r0, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r2, [r0, 0x16]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8049AE0
|
|
|
|
thumb_func_start atk19_faintpokemon
|
|
atk19_faintpokemon: @ 8049B5C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x2]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _08049BE0
|
|
ldrb r0, [r2, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08049B94
|
|
b _08049E2C
|
|
_08049B94:
|
|
ldr r1, [r6]
|
|
ldrb r4, [r1, 0x3]
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x6]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
bl b_movescr_stack_pop_cursor
|
|
str r4, [r6]
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
ldr r1, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
ldr r1, =0x0000fdff
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
b _08049E32
|
|
.pool
|
|
_08049BE0:
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0x1
|
|
bne _08049C08
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
ldr r4, =gUnknown_082DA7AA
|
|
b _08049C18
|
|
.pool
|
|
_08049C08:
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
ldr r4, =gUnknown_082DA7B7
|
|
_08049C18:
|
|
mov r8, r1
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
mov r7, r8
|
|
ldrb r3, [r7]
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ands r1, r2
|
|
cmp r1, 0
|
|
beq _08049C32
|
|
b _08049E2C
|
|
_08049C32:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08049C42
|
|
b _08049E2C
|
|
_08049C42:
|
|
ldr r5, =gUnknown_02024280
|
|
lsls r1, r2, 28
|
|
ldr r0, [r5]
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
ldr r0, [r6]
|
|
adds r0, 0x7
|
|
bl b_movescr_stack_push
|
|
str r4, [r6]
|
|
ldrb r0, [r7]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08049CA4
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
orrs r0, r1
|
|
str r0, [r5]
|
|
ldr r1, =gUnknown_03005D10
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFE
|
|
bhi _08049C78
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08049C78:
|
|
ldrb r0, [r7]
|
|
bl sub_80570F4
|
|
b _08049CCE
|
|
.pool
|
|
_08049CA4:
|
|
ldr r4, =gUnknown_03005D10
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0xFE
|
|
bhi _08049CB0
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
_08049CB0:
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
strh r0, [r4, 0x20]
|
|
_08049CCE:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049D0C
|
|
ldr r6, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08049D0C
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gBattleMoveDamage
|
|
mov r0, r9
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_082DAE3E
|
|
str r0, [r4]
|
|
_08049D0C:
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08049D24
|
|
b _08049E32
|
|
_08049D24:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r5, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _08049D34
|
|
b _08049E32
|
|
_08049D34:
|
|
ldr r3, =gUnknown_0202420B
|
|
mov r8, r3
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _08049E32
|
|
ldr r0, =gBattleMons
|
|
mov r9, r0
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r7, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r7
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08049E32
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xA5
|
|
beq _08049E32
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, r1, r0
|
|
adds r0, 0x80
|
|
ldrb r4, [r0]
|
|
adds r0, r4, r2
|
|
mov r6, r9
|
|
adds r6, 0x24
|
|
adds r0, r6
|
|
strb r5, [r0]
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB18D
|
|
str r0, [r5]
|
|
ldr r5, =gUnknown_02024064
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
strb r0, [r5]
|
|
adds r1, r4, 0
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r5]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
adds r0, r4
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
lsls r4, 1
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
muls r0, r7
|
|
adds r0, r4, r0
|
|
mov r2, r9
|
|
adds r2, 0xC
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
muls r0, r7
|
|
adds r4, r0
|
|
adds r4, r2
|
|
ldrh r0, [r4]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
b _08049E32
|
|
.pool
|
|
_08049E2C:
|
|
ldr r0, [r6]
|
|
adds r0, 0x7
|
|
str r0, [r6]
|
|
_08049E32:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk19_faintpokemon
|
|
|
|
thumb_func_start sub_8049E40
|
|
sub_8049E40: @ 8049E40
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08049E6A
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x0A_A_A_A
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
_08049E6A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8049E40
|
|
|
|
thumb_func_start sub_8049E7C
|
|
sub_8049E7C: @ 8049E7C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _08049EE8
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08049EB4
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08049EDC
|
|
_08049EB4:
|
|
ldr r1, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
str r5, [r0]
|
|
ldrb r0, [r4]
|
|
muls r0, r2
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08049EDC:
|
|
bl sub_803A75C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_08049EE8:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8049E7C
|
|
|
|
thumb_func_start atk1C_jumpifstatus
|
|
atk1C_jumpifstatus: @ 8049F04
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r5]
|
|
ldrb r4, [r2, 0x2]
|
|
ldrb r1, [r2, 0x3]
|
|
lsls r1, 8
|
|
adds r4, r1
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r1, 16
|
|
adds r4, r1
|
|
ldrb r1, [r2, 0x5]
|
|
lsls r1, 24
|
|
adds r4, r1
|
|
ldrb r3, [r2, 0x6]
|
|
ldrb r1, [r2, 0x7]
|
|
lsls r1, 8
|
|
adds r3, r1
|
|
ldrb r1, [r2, 0x8]
|
|
lsls r1, 16
|
|
adds r3, r1
|
|
ldrb r1, [r2, 0x9]
|
|
lsls r1, 24
|
|
adds r3, r1
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08049F68
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08049F68
|
|
str r3, [r5]
|
|
b _08049F70
|
|
.pool
|
|
_08049F68:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0xA
|
|
str r0, [r1]
|
|
_08049F70:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk1C_jumpifstatus
|
|
|
|
thumb_func_start atk1D_jumpifsecondarystatus
|
|
atk1D_jumpifsecondarystatus: @ 8049F7C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r5]
|
|
ldrb r4, [r2, 0x2]
|
|
ldrb r1, [r2, 0x3]
|
|
lsls r1, 8
|
|
adds r4, r1
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r1, 16
|
|
adds r4, r1
|
|
ldrb r1, [r2, 0x5]
|
|
lsls r1, 24
|
|
adds r4, r1
|
|
ldrb r3, [r2, 0x6]
|
|
ldrb r1, [r2, 0x7]
|
|
lsls r1, 8
|
|
adds r3, r1
|
|
ldrb r1, [r2, 0x8]
|
|
lsls r1, 16
|
|
adds r3, r1
|
|
ldrb r1, [r2, 0x9]
|
|
lsls r1, 24
|
|
adds r3, r1
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08049FE0
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08049FE0
|
|
str r3, [r5]
|
|
b _08049FE8
|
|
.pool
|
|
_08049FE0:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0xA
|
|
str r0, [r1]
|
|
_08049FE8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk1D_jumpifsecondarystatus
|
|
|
|
thumb_func_start atk1E_jumpifability
|
|
atk1E_jumpifability: @ 8049FF4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r6, =gUnknown_02024214
|
|
ldr r2, [r6]
|
|
ldrb r5, [r2, 0x2]
|
|
mov r8, r5
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 24
|
|
adds r7, r1, r0
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0x8
|
|
bne _0804A054
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xD
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0804A0C8
|
|
ldr r1, =gUnknown_0202420A
|
|
strb r5, [r1]
|
|
str r7, [r6]
|
|
subs r4, 0x1
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
b _0804A0B0
|
|
.pool
|
|
_0804A054:
|
|
cmp r0, 0x9
|
|
bne _0804A08C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xC
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0804A0C8
|
|
ldr r1, =gUnknown_0202420A
|
|
strb r5, [r1]
|
|
str r7, [r6]
|
|
subs r4, 0x1
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
b _0804A0B0
|
|
.pool
|
|
_0804A08C:
|
|
ldrb r0, [r2, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
cmp r1, r8
|
|
bne _0804A0C8
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r1, [r0]
|
|
str r7, [r6]
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
_0804A0B0:
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x15]
|
|
b _0804A0CE
|
|
.pool
|
|
_0804A0C8:
|
|
ldr r0, [r6]
|
|
adds r0, 0x7
|
|
str r0, [r6]
|
|
_0804A0CE:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk1E_jumpifability
|
|
|
|
thumb_func_start sub_804A0DC
|
|
sub_804A0DC: @ 804A0DC
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, 0x1]
|
|
cmp r4, 0x1
|
|
bne _0804A0FC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
b _0804A106
|
|
.pool
|
|
_0804A0FC:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r4, 0x1
|
|
_0804A106:
|
|
ands r4, r0
|
|
ldr r6, =gUnknown_02024214
|
|
ldr r3, [r6]
|
|
ldrb r2, [r3, 0x2]
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r1, [r3, 0x4]
|
|
ldrb r0, [r3, 0x5]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 24
|
|
adds r5, r1, r0
|
|
ldr r1, =gUnknown_0202428E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0804A148
|
|
str r5, [r6]
|
|
b _0804A14E
|
|
.pool
|
|
_0804A148:
|
|
adds r0, r3, 0
|
|
adds r0, 0x8
|
|
str r0, [r6]
|
|
_0804A14E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A0DC
|
|
|
|
thumb_func_start sub_804A154
|
|
sub_804A154: @ 804A154
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gBattleMons
|
|
ldr r3, [r4]
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
ldrb r1, [r3, 0x3]
|
|
adds r0, r1
|
|
adds r2, 0x18
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r3, 0x2]
|
|
cmp r0, 0x5
|
|
bhi _0804A212
|
|
lsls r0, 2
|
|
ldr r1, =_0804A194
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804A194:
|
|
.4byte _0804A1AC
|
|
.4byte _0804A1BC
|
|
.4byte _0804A1CC
|
|
.4byte _0804A1DC
|
|
.4byte _0804A1EC
|
|
.4byte _0804A200
|
|
_0804A1AC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r2, r0
|
|
bne _0804A212
|
|
b _0804A20C
|
|
.pool
|
|
_0804A1BC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r2, r0
|
|
beq _0804A212
|
|
b _0804A20C
|
|
.pool
|
|
_0804A1CC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r2, r0
|
|
bls _0804A212
|
|
b _0804A20C
|
|
.pool
|
|
_0804A1DC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r2, r0
|
|
bcs _0804A212
|
|
b _0804A20C
|
|
.pool
|
|
_0804A1EC:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0804A212
|
|
b _0804A20C
|
|
.pool
|
|
_0804A200:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _0804A212
|
|
_0804A20C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0804A212:
|
|
cmp r5, 0
|
|
beq _0804A238
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x5]
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
b _0804A240
|
|
.pool
|
|
_0804A238:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x9
|
|
str r0, [r1]
|
|
_0804A240:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804A154
|
|
|
|
thumb_func_start atk21_jumpifspecialstatusflag
|
|
atk21_jumpifspecialstatusflag: @ 804A24C
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
adds r6, r1, r0
|
|
ldrb r1, [r2, 0x7]
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x9]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0xA]
|
|
lsls r0, 24
|
|
adds r3, r1, r0
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
beq _0804A2AC
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _0804A2C4
|
|
b _0804A2BC
|
|
.pool
|
|
_0804A2AC:
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0804A2C4
|
|
_0804A2BC:
|
|
str r3, [r4]
|
|
b _0804A2CA
|
|
.pool
|
|
_0804A2C4:
|
|
adds r0, r2, 0
|
|
adds r0, 0xB
|
|
str r0, [r4]
|
|
_0804A2CA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk21_jumpifspecialstatusflag
|
|
|
|
thumb_func_start sub_804A2D0
|
|
sub_804A2D0: @ 804A2D0
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, [r4]
|
|
ldrb r5, [r3, 0x2]
|
|
ldrb r2, [r3, 0x3]
|
|
ldrb r1, [r3, 0x4]
|
|
lsls r1, 8
|
|
adds r2, r1
|
|
ldrb r1, [r3, 0x5]
|
|
lsls r1, 16
|
|
adds r2, r1
|
|
ldrb r1, [r3, 0x6]
|
|
lsls r1, 24
|
|
adds r6, r2, r1
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
beq _0804A314
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _0804A320
|
|
_0804A314:
|
|
str r6, [r4]
|
|
b _0804A324
|
|
.pool
|
|
_0804A320:
|
|
adds r0, r3, 0x7
|
|
str r0, [r4]
|
|
_0804A324:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804A2D0
|
|
|
|
thumb_func_start sub_804A32C
|
|
sub_804A32C: @ 804A32C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x50
|
|
mov r9, r0
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_0202420D
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_020243FE
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 25
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0x1C]
|
|
cmp r0, 0x6
|
|
bls _0804A368
|
|
bl _0804ACB2
|
|
_0804A368:
|
|
lsls r0, 2
|
|
ldr r1, =_0804A38C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804A38C:
|
|
.4byte _0804A3A8
|
|
.4byte _0804A414
|
|
.4byte _0804A52E
|
|
.4byte _0804A850
|
|
.4byte _0804A954
|
|
.4byte _0804AC40
|
|
.4byte _0804AC88
|
|
_0804A3A8:
|
|
ldr r4, =gUnknown_0202420D
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0804A3BC
|
|
bl _0804AC7C
|
|
_0804A3BC:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x063f0982
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804A3CC
|
|
bl _0804AC7C
|
|
_0804A3CC:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1C]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
adds r2, 0xDF
|
|
ldr r3, =gBitTable
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bl _0804ACB2
|
|
.pool
|
|
_0804A414:
|
|
movs r5, 0
|
|
movs r7, 0
|
|
_0804A418:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804A486
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804A486
|
|
ldr r0, =gBitTable
|
|
lsls r1, r7, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804A44C
|
|
adds r5, 0x1
|
|
_0804A44C:
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _0804A478
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00003226
|
|
adds r0, r2
|
|
ldrb r4, [r0]
|
|
b _0804A480
|
|
.pool
|
|
_0804A478:
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0804A480:
|
|
cmp r4, 0x19
|
|
bne _0804A486
|
|
adds r6, 0x1
|
|
_0804A486:
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0804A418
|
|
ldr r3, =gBaseStats
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420D
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r2, [r0, 0x9]
|
|
adds r1, 0x2A
|
|
ldrb r0, [r1]
|
|
muls r0, r2
|
|
movs r1, 0x7
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r6, 0
|
|
beq _0804A4FC
|
|
lsrs r4, r0, 17
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0804A4D2
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
_0804A4D2:
|
|
ldr r5, =gUnknown_02024402
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0804A516
|
|
movs r0, 0x1
|
|
strh r0, [r5]
|
|
b _0804A516
|
|
.pool
|
|
_0804A4FC:
|
|
adds r0, r1, 0
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
mov r2, r9
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0804A512
|
|
movs r0, 0x1
|
|
strh r0, [r2]
|
|
_0804A512:
|
|
ldr r0, =gUnknown_02024402
|
|
strh r6, [r0]
|
|
_0804A516:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1, 0x1C]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
strb r2, [r0, 0x10]
|
|
ldr r0, [r1]
|
|
adds r0, 0x53
|
|
mov r4, r8
|
|
strb r4, [r0]
|
|
_0804A52E:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804A538
|
|
b _0804ACB2
|
|
_0804A538:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _0804A57C
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003226
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
b _0804A584
|
|
.pool
|
|
_0804A57C:
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0804A584:
|
|
ldr r5, =gUnknown_0202449C
|
|
cmp r4, 0x19
|
|
beq _0804A5AC
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0x53
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _0804A5AC
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024474
|
|
b _0804A5D0
|
|
.pool
|
|
_0804A5AC:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
cmp r0, 0x64
|
|
bne _0804A5E8
|
|
ldr r1, [r5]
|
|
adds r1, 0x53
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r2, 0
|
|
_0804A5D0:
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1C]
|
|
ldr r0, =gBattleMoveDamage
|
|
str r2, [r0]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804A5E8:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804A616
|
|
ldr r0, =gBattleMons
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0804A616
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x12]
|
|
cmp r0, 0
|
|
bne _0804A616
|
|
bl sub_805EA60
|
|
ldr r0, =0x00000161
|
|
bl song_play_for_text
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x12]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x12]
|
|
_0804A616:
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804A630
|
|
b _0804A824
|
|
_0804A630:
|
|
ldr r0, [r5]
|
|
adds r0, 0x53
|
|
ldrb r0, [r0]
|
|
movs r3, 0x1
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _0804A664
|
|
ldr r1, =gBattleMoveDamage
|
|
mov r2, r9
|
|
ldrh r0, [r2]
|
|
str r0, [r1]
|
|
mov r9, r1
|
|
b _0804A66A
|
|
.pool
|
|
_0804A664:
|
|
ldr r0, =gBattleMoveDamage
|
|
str r3, [r0]
|
|
mov r9, r0
|
|
_0804A66A:
|
|
cmp r4, 0x19
|
|
bne _0804A67A
|
|
ldr r0, =gUnknown_02024402
|
|
ldrh r1, [r0]
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
_0804A67A:
|
|
cmp r4, 0x28
|
|
bne _0804A68E
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
movs r0, 0x96
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0804A68E:
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804A6AA
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
movs r0, 0x96
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0804A6AA:
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
bl sub_806E8A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804A714
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804A6F8
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0x2
|
|
bls _0804A6F8
|
|
ldr r7, =0x00000149
|
|
ldr r0, =gBattleMoveDamage
|
|
mov r9, r0
|
|
b _0804A71A
|
|
.pool
|
|
_0804A6F8:
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, [r4]
|
|
movs r0, 0x96
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
movs r7, 0xA5
|
|
lsls r7, 1
|
|
mov r9, r4
|
|
b _0804A71A
|
|
.pool
|
|
_0804A714:
|
|
ldr r7, =0x00000149
|
|
ldr r1, =gBattleMoveDamage
|
|
mov r9, r1
|
|
_0804A71A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804A786
|
|
ldr r0, =gUnknown_0202406E
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r4, [r1]
|
|
ldrh r0, [r0, 0x4]
|
|
adds r5, r1, 0
|
|
ldr r3, =gBitTable
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r1, [r4, 0x10]
|
|
cmp r0, r1
|
|
bne _0804A76C
|
|
ldrb r1, [r2]
|
|
ldr r0, [r3, 0x8]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804A76C
|
|
adds r1, r4, 0
|
|
adds r1, 0x8F
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _0804A78E
|
|
.pool
|
|
_0804A76C:
|
|
ldrb r2, [r2]
|
|
ldr r0, [r3]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _0804A77E
|
|
ldr r0, [r5]
|
|
adds r0, 0x8F
|
|
strb r2, [r0]
|
|
b _0804A78E
|
|
_0804A77E:
|
|
ldr r0, [r5]
|
|
adds r0, 0x8F
|
|
movs r1, 0x2
|
|
b _0804A78C
|
|
_0804A786:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x8F
|
|
_0804A78C:
|
|
strb r1, [r0]
|
|
_0804A78E:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r2, 0
|
|
mov r12, r2
|
|
movs r3, 0xFD
|
|
strb r3, [r1]
|
|
movs r5, 0x4
|
|
strb r5, [r1, 0x1]
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r2, [r6]
|
|
movs r4, 0x8F
|
|
adds r4, r2
|
|
mov r8, r4
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r2, 0x10]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02022F68
|
|
strb r3, [r1]
|
|
mov r0, r12
|
|
strb r0, [r1, 0x1]
|
|
strb r7, [r1, 0x2]
|
|
movs r4, 0xFF
|
|
lsls r4, 8
|
|
ands r7, r4
|
|
asrs r0, r7, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02022F78
|
|
strb r3, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
strb r5, [r1, 0x2]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x3]
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
strb r2, [r1, 0x4]
|
|
adds r0, r2, 0
|
|
ands r0, r4
|
|
asrs r0, 8
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r2
|
|
asrs r0, 16
|
|
strb r0, [r1, 0x6]
|
|
lsrs r2, 24
|
|
strb r2, [r1, 0x7]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1, 0x8]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
movs r0, 0xD
|
|
bl b_std_message
|
|
ldr r0, [r6]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r3, =gBattleMons
|
|
ldr r1, =gUnknown_0202420D
|
|
ldrb r2, [r1]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r1, r3
|
|
ldrh r1, [r1]
|
|
bl sub_806DADC
|
|
_0804A824:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, 0x53
|
|
ldrb r0, [r1]
|
|
lsrs r0, 1
|
|
strb r0, [r1]
|
|
b _0804A92A
|
|
.pool
|
|
_0804A850:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
beq _0804A85A
|
|
b _0804ACB2
|
|
_0804A85A:
|
|
ldr r1, =gUnknown_02023864
|
|
ldr r7, =gUnknown_0202449C
|
|
ldr r0, [r7]
|
|
adds r0, 0x8F
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804A92A
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
cmp r0, 0x64
|
|
beq _0804A92A
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
ldr r4, =gUnknown_020244A8
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3B
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1, 0x2]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3C
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1, 0x4]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1, 0x6]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1, 0x8]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x3F
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x10]
|
|
strh r0, [r1, 0xA]
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x8F
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldrb r1, [r1, 0x10]
|
|
ldr r0, =gBattleMoveDamage
|
|
ldrh r2, [r0]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x19_a_bb
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804A92A:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1C]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804A954:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804A95E
|
|
b _0804ACB2
|
|
_0804A95E:
|
|
ldr r1, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x8F
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02023864
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 9
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x21
|
|
beq _0804A97C
|
|
b _0804AC28
|
|
_0804A97C:
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xB
|
|
beq _0804A988
|
|
b _0804AC28
|
|
_0804A988:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804A9B2
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldrb r4, [r4, 0x10]
|
|
cmp r0, r4
|
|
bne _0804A9B2
|
|
adds r1, r0, 0
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
adds r1, r2, 0
|
|
bl sub_805E990
|
|
_0804A9B2:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r3, 0xFD
|
|
strb r3, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, 0x2]
|
|
ldr r4, =gUnknown_0202449C
|
|
mov r9, r4
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2, 0x10]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r4, =gUnknown_02022F68
|
|
strb r3, [r4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
movs r0, 0x3
|
|
strb r0, [r4, 0x3]
|
|
ldrb r0, [r2, 0x10]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
ldr r7, =gPlayerParty
|
|
adds r0, r7
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
strb r0, [r4, 0x4]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r4, 0x5]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r2, =gUnknown_03005D54
|
|
ldr r1, =gBitTable
|
|
mov r4, r9
|
|
ldr r5, [r4]
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DABBD
|
|
str r0, [r1]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r2, =gUnknown_02023864
|
|
ldrb r1, [r6]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r2, 0x3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
str r3, [r4]
|
|
ldrb r0, [r5, 0x10]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl happiness_algorithm
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldrb r2, [r0, 0x10]
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
bne _0804AB1E
|
|
ldr r4, =gBattleMons
|
|
ldrh r0, [r4, 0x28]
|
|
cmp r0, 0
|
|
beq _0804AB1E
|
|
mov r0, r8
|
|
muls r0, r2
|
|
adds r0, r7
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r1, r4, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r4, 0x28]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
strh r0, [r4, 0x2C]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3B
|
|
bl GetMonData
|
|
strh r0, [r4, 0x2]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3C
|
|
bl GetMonData
|
|
strh r0, [r4, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
strh r0, [r4, 0x6]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
strh r0, [r4, 0x6]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
strh r0, [r4, 0x8]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
movs r1, 0x3F
|
|
bl GetMonData
|
|
strh r0, [r4, 0xA]
|
|
_0804AB1E:
|
|
ldr r0, =gUnknown_0202406E
|
|
ldr r7, =gUnknown_0202449C
|
|
ldr r1, [r7]
|
|
ldrb r2, [r1, 0x10]
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r2
|
|
beq _0804AB2E
|
|
b _0804AC2E
|
|
_0804AB2E:
|
|
ldr r6, =gBattleMons
|
|
movs r4, 0xD8
|
|
adds r4, r6
|
|
mov r8, r4
|
|
ldrh r0, [r4]
|
|
cmp r0, 0
|
|
beq _0804AC2E
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804AC2E
|
|
movs r5, 0x64
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds 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
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r5
|
|
adds 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
|
|
adds 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
|
|
adds 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
|
|
adds r0, r4
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
movs r2, 0xB6
|
|
adds r2, r6
|
|
mov r8, r2
|
|
strh r0, [r2]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
adds r1, r6, 0
|
|
adds r1, 0xB8
|
|
strh r0, [r1]
|
|
b _0804AC2E
|
|
.pool
|
|
_0804AC28:
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_0804AC2E:
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1C]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804AC40:
|
|
ldr r0, =gBattleMoveDamage
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804AC58
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1C]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804AC58:
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0x5
|
|
bhi _0804AC7C
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1C]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804AC7C:
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1C]
|
|
b _0804ACB2
|
|
.pool
|
|
_0804AC88:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _0804ACB2
|
|
ldr r4, =gBattleMons
|
|
ldr r2, =gUnknown_0202420D
|
|
ldrb r0, [r2]
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r0, r4
|
|
movs r3, 0
|
|
strh r5, [r0, 0x2E]
|
|
ldrb r0, [r2]
|
|
muls r0, r1
|
|
adds r0, r4
|
|
adds r0, 0x20
|
|
strb r3, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_0804ACB2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804A32C
|
|
|
|
thumb_func_start sub_804ACD0
|
|
sub_804ACD0: @ 804ACD0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804ACE2
|
|
b _0804AF22
|
|
_0804ACE2:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804AD48
|
|
ldr r0, =gUnknown_02038BCE
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c03
|
|
cmp r1, r0
|
|
bne _0804AD48
|
|
movs r5, 0
|
|
_0804ACFC:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804AD2C
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804AD2C
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_0804AD2C:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _0804ACFC
|
|
b _0804ADA8
|
|
.pool
|
|
_0804AD48:
|
|
movs r5, 0
|
|
_0804AD4A:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804ADA2
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804ADA2
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804AD94
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
movs r1, 0xA8
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804ADA2
|
|
_0804AD94:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_0804ADA2:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0804AD4A
|
|
_0804ADA8:
|
|
cmp r6, 0
|
|
bne _0804ADB6
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804ADB6:
|
|
movs r6, 0
|
|
movs r5, 0
|
|
_0804ADBA:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804AE10
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804AE10
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804AE02
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000002a1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804AE10
|
|
_0804AE02:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r0, r6, r0
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_0804AE10:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0804ADBA
|
|
ldr r2, =gUnknown_0202433A
|
|
cmp r6, 0
|
|
bne _0804AE24
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804AE24:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _0804AF1A
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r2, =0x02000002
|
|
ands r1, r2
|
|
mov r8, r0
|
|
cmp r1, 0
|
|
beq _0804AF1A
|
|
movs r3, 0
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
mov r12, r0
|
|
ldr r7, =gUnknown_02024214
|
|
cmp r3, r1
|
|
bge _0804AE70
|
|
ldr r0, =gUnknown_02024280
|
|
movs r6, 0x80
|
|
lsls r6, 21
|
|
ldr r4, [r0]
|
|
adds r2, r1, 0
|
|
ldr r1, =gUnknown_0202437C
|
|
_0804AE54:
|
|
adds r0, r6, 0
|
|
lsls r0, r5
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804AE68
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804AE68
|
|
adds r3, 0x1
|
|
_0804AE68:
|
|
adds r1, 0x28
|
|
adds r5, 0x2
|
|
cmp r5, r2
|
|
blt _0804AE54
|
|
_0804AE70:
|
|
movs r2, 0
|
|
movs r5, 0x1
|
|
mov r4, r12
|
|
ldrb r1, [r4]
|
|
cmp r5, r1
|
|
bge _0804AEAA
|
|
ldr r0, =gUnknown_02024280
|
|
movs r4, 0x80
|
|
lsls r4, 21
|
|
mov r12, r4
|
|
ldr r6, [r0]
|
|
ldr r0, =gUnknown_0202437C
|
|
adds r4, r1, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0x14
|
|
_0804AE8E:
|
|
mov r0, r12
|
|
lsls r0, r5
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0804AEA2
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804AEA2
|
|
adds r2, 0x1
|
|
_0804AEA2:
|
|
adds r1, 0x28
|
|
adds r5, 0x2
|
|
cmp r5, r4
|
|
blt _0804AE8E
|
|
_0804AEAA:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804AEF0
|
|
adds r0, r2, r3
|
|
cmp r0, 0x1
|
|
bgt _0804AEF8
|
|
b _0804AF12
|
|
.pool
|
|
_0804AEF0:
|
|
cmp r2, 0
|
|
beq _0804AF12
|
|
cmp r3, 0
|
|
beq _0804AF12
|
|
_0804AEF8:
|
|
ldr r2, [r7]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
str r1, [r7]
|
|
b _0804AF22
|
|
_0804AF12:
|
|
ldr r0, [r7]
|
|
adds r0, 0x5
|
|
str r0, [r7]
|
|
b _0804AF22
|
|
_0804AF1A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0804AF22:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804ACD0
|
|
|
|
thumb_func_start sub_804AF30
|
|
sub_804AF30: @ 804AF30
|
|
ldr r1, =gBattleMoveFlags
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0xE]
|
|
ldr r0, =gCritMultiplier
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x3]
|
|
strb r2, [r0, 0x6]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
subs r1, 0x42
|
|
ands r0, r1
|
|
ldr r1, =0xffffbfff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804AF30
|
|
|
|
thumb_func_start atk25_cmd25
|
|
atk25_cmd25: @ 804AF70
|
|
push {lr}
|
|
bl sub_804AF30
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk25_cmd25
|
|
|
|
thumb_func_start atk26_80225F0_storebyteforjump
|
|
atk26_80225F0_storebyteforjump: @ 804AF88
|
|
ldr r3, =gUnknown_02024212
|
|
ldr r2, =gUnknown_02024214
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, 0x1]
|
|
strb r1, [r3]
|
|
adds r0, 0x2
|
|
str r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk26_80225F0_storebyteforjump
|
|
|
|
thumb_func_start atk27_cmd27
|
|
atk27_cmd27: @ 804AFA0
|
|
push {lr}
|
|
ldr r1, =gUnknown_02024212
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804AFC4
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0804AFDE
|
|
.pool
|
|
_0804AFC4:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
_0804AFDE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk27_cmd27
|
|
|
|
thumb_func_start atk28_goto
|
|
atk28_goto: @ 804AFE8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk28_goto
|
|
|
|
thumb_func_start atk29_jumpifbyte
|
|
atk29_jumpifbyte: @ 804B008
|
|
push {r4-r6,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, 0x1]
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, 0x6]
|
|
ldrb r2, [r1, 0x7]
|
|
ldrb r0, [r1, 0x8]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x9]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xA]
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
adds r1, 0xB
|
|
str r1, [r3]
|
|
cmp r6, 0x5
|
|
bhi _0804B0A0
|
|
lsls r0, r6, 2
|
|
ldr r1, =_0804B054
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804B054:
|
|
.4byte _0804B06C
|
|
.4byte _0804B074
|
|
.4byte _0804B07C
|
|
.4byte _0804B084
|
|
.4byte _0804B08C
|
|
.4byte _0804B096
|
|
_0804B06C:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804B0A0
|
|
b _0804B09E
|
|
_0804B074:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804B0A0
|
|
b _0804B09E
|
|
_0804B07C:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804B0A0
|
|
b _0804B09E
|
|
_0804B084:
|
|
ldrb r0, [r5]
|
|
cmp r0, r4
|
|
bcs _0804B0A0
|
|
b _0804B09E
|
|
_0804B08C:
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _0804B0A0
|
|
b _0804B09E
|
|
_0804B096:
|
|
ldrb r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
bne _0804B0A0
|
|
_0804B09E:
|
|
str r2, [r3]
|
|
_0804B0A0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk29_jumpifbyte
|
|
|
|
thumb_func_start sub_804B0A8
|
|
sub_804B0A8: @ 804B0A8
|
|
push {r4-r6,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, 0x1]
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, 0x6]
|
|
ldrb r0, [r1, 0x7]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r2, [r1, 0x8]
|
|
ldrb r0, [r1, 0x9]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xA]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xB]
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
adds r1, 0xC
|
|
str r1, [r3]
|
|
cmp r6, 0x5
|
|
bhi _0804B148
|
|
lsls r0, r6, 2
|
|
ldr r1, =_0804B0FC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804B0FC:
|
|
.4byte _0804B114
|
|
.4byte _0804B11C
|
|
.4byte _0804B124
|
|
.4byte _0804B12C
|
|
.4byte _0804B134
|
|
.4byte _0804B13E
|
|
_0804B114:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804B148
|
|
b _0804B146
|
|
_0804B11C:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804B148
|
|
b _0804B146
|
|
_0804B124:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804B148
|
|
b _0804B146
|
|
_0804B12C:
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bcs _0804B148
|
|
b _0804B146
|
|
_0804B134:
|
|
ldrh r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _0804B148
|
|
b _0804B146
|
|
_0804B13E:
|
|
ldrh r0, [r5]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
bne _0804B148
|
|
_0804B146:
|
|
str r2, [r3]
|
|
_0804B148:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B0A8
|
|
|
|
thumb_func_start sub_804B150
|
|
sub_804B150: @ 804B150
|
|
push {r4-r6,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r6, [r1, 0x1]
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, 0x6]
|
|
ldrb r0, [r1, 0x7]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x9]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
ldrb r2, [r1, 0xA]
|
|
ldrb r0, [r1, 0xB]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xD]
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
adds r1, 0xE
|
|
str r1, [r3]
|
|
cmp r6, 0x5
|
|
bhi _0804B1FC
|
|
lsls r0, r6, 2
|
|
ldr r1, =_0804B1B0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804B1B0:
|
|
.4byte _0804B1C8
|
|
.4byte _0804B1D0
|
|
.4byte _0804B1D8
|
|
.4byte _0804B1E0
|
|
.4byte _0804B1E8
|
|
.4byte _0804B1F2
|
|
_0804B1C8:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bne _0804B1FC
|
|
b _0804B1FA
|
|
_0804B1D0:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
beq _0804B1FC
|
|
b _0804B1FA
|
|
_0804B1D8:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bls _0804B1FC
|
|
b _0804B1FA
|
|
_0804B1E0:
|
|
ldr r0, [r5]
|
|
cmp r0, r4
|
|
bcs _0804B1FC
|
|
b _0804B1FA
|
|
_0804B1E8:
|
|
ldr r0, [r5]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804B1FC
|
|
b _0804B1FA
|
|
_0804B1F2:
|
|
ldr r0, [r5]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _0804B1FC
|
|
_0804B1FA:
|
|
str r2, [r3]
|
|
_0804B1FC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B150
|
|
|
|
thumb_func_start sub_804B204
|
|
sub_804B204: @ 804B204
|
|
push {r4-r7,lr}
|
|
ldr r2, =gUnknown_02024214
|
|
ldr r3, [r2]
|
|
ldrb r1, [r3, 0x1]
|
|
ldrb r0, [r3, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x4]
|
|
lsls r0, 24
|
|
adds r5, r1, r0
|
|
ldrb r1, [r3, 0x5]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x8]
|
|
lsls r0, 24
|
|
adds r4, r1, r0
|
|
ldrb r6, [r3, 0x9]
|
|
ldrb r1, [r3, 0xA]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0xC]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0xD]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
mov r12, r1
|
|
movs r1, 0
|
|
cmp r1, r6
|
|
bcs _0804B27C
|
|
ldrb r0, [r5]
|
|
ldrb r7, [r4]
|
|
cmp r0, r7
|
|
beq _0804B260
|
|
adds r0, r3, 0
|
|
b _0804B278
|
|
.pool
|
|
_0804B260:
|
|
adds r5, 0x1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r6
|
|
bcs _0804B27C
|
|
ldrb r0, [r5]
|
|
ldrb r3, [r4]
|
|
cmp r0, r3
|
|
beq _0804B260
|
|
ldr r0, [r2]
|
|
_0804B278:
|
|
adds r0, 0xE
|
|
str r0, [r2]
|
|
_0804B27C:
|
|
cmp r1, r6
|
|
bne _0804B284
|
|
mov r7, r12
|
|
str r7, [r2]
|
|
_0804B284:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B204
|
|
|
|
thumb_func_start sub_804B28C
|
|
sub_804B28C: @ 804B28C
|
|
push {r4-r7,lr}
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r2, [r1, 0x5]
|
|
ldrb r0, [r1, 0x6]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x7]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x8]
|
|
lsls r0, 24
|
|
adds r4, r2, r0
|
|
ldrb r6, [r1, 0x9]
|
|
ldrb r2, [r1, 0xA]
|
|
ldrb r0, [r1, 0xB]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xD]
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
mov r12, r2
|
|
movs r1, 0
|
|
cmp r7, r6
|
|
bcs _0804B2F6
|
|
_0804B2DA:
|
|
ldrb r0, [r5]
|
|
ldrb r2, [r4]
|
|
cmp r0, r2
|
|
bne _0804B2E8
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_0804B2E8:
|
|
adds r5, 0x1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r6
|
|
bcc _0804B2DA
|
|
_0804B2F6:
|
|
cmp r7, r6
|
|
beq _0804B304
|
|
mov r0, r12
|
|
b _0804B308
|
|
.pool
|
|
_0804B304:
|
|
ldr r0, [r3]
|
|
adds r0, 0xE
|
|
_0804B308:
|
|
str r0, [r3]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B28C
|
|
|
|
thumb_func_start sub_804B310
|
|
sub_804B310: @ 804B310
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804B310
|
|
|
|
thumb_func_start sub_804B338
|
|
sub_804B338: @ 804B338
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
ldrb r2, [r1]
|
|
adds r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804B338
|
|
|
|
thumb_func_start sub_804B364
|
|
sub_804B364: @ 804B364
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r2, 0x5]
|
|
subs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804B364
|
|
|
|
thumb_func_start atk31_copyarray
|
|
atk31_copyarray: @ 804B390
|
|
push {r4-r6,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
adds r6, r2, r0
|
|
ldrb r2, [r1, 0x5]
|
|
ldrb r0, [r1, 0x6]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x7]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x8]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, 0x9]
|
|
movs r2, 0
|
|
cmp r2, r4
|
|
bge _0804B3D4
|
|
_0804B3C6:
|
|
adds r0, r6, r2
|
|
adds r1, r5, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
blt _0804B3C6
|
|
_0804B3D4:
|
|
ldr r0, [r3]
|
|
adds r0, 0xA
|
|
str r0, [r3]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk31_copyarray
|
|
|
|
thumb_func_start atk32_memcpy_with_offset
|
|
atk32_memcpy_with_offset: @ 804B3E4
|
|
push {r4-r7,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
adds r7, r2, r0
|
|
ldrb r2, [r1, 0x5]
|
|
ldrb r0, [r1, 0x6]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x7]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0x8]
|
|
lsls r0, 24
|
|
adds r6, r2, r0
|
|
ldrb r2, [r1, 0x9]
|
|
ldrb r0, [r1, 0xA]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xB]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r1, 0xC]
|
|
lsls r0, 24
|
|
adds r5, r2, r0
|
|
ldrb r4, [r1, 0xD]
|
|
movs r2, 0
|
|
cmp r2, r4
|
|
bge _0804B440
|
|
_0804B42E:
|
|
adds r0, r7, r2
|
|
ldrb r1, [r5]
|
|
adds r1, r2, r1
|
|
adds r1, r6, r1
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
blt _0804B42E
|
|
_0804B440:
|
|
ldr r0, [r3]
|
|
adds r0, 0xE
|
|
str r0, [r3]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk32_memcpy_with_offset
|
|
|
|
thumb_func_start atk33_orbyte
|
|
atk33_orbyte: @ 804B450
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r2, 0x5]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk33_orbyte
|
|
|
|
thumb_func_start atk34_orhalfword
|
|
atk34_orhalfword: @ 804B47C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r3, [r4]
|
|
ldrb r2, [r3, 0x1]
|
|
ldrb r0, [r3, 0x2]
|
|
lsls r0, 8
|
|
adds r2, r0
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 16
|
|
adds r2, r0
|
|
ldrb r0, [r3, 0x4]
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
ldrb r1, [r3, 0x5]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrh r0, [r2]
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk34_orhalfword
|
|
|
|
thumb_func_start atk35_orword
|
|
atk35_orword: @ 804B4B4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r2, [r4]
|
|
ldrb r3, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r3, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r3, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r3, r0
|
|
ldrb r1, [r2, 0x5]
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r4]
|
|
adds r0, 0x9
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk35_orword
|
|
|
|
thumb_func_start atk36_bicbyte
|
|
atk36_bicbyte: @ 804B4F8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r2, [r2, 0x5]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6
|
|
str r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk36_bicbyte
|
|
|
|
thumb_func_start atk37_bichalfword
|
|
atk37_bichalfword: @ 804B524
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r3, [r4]
|
|
ldrb r1, [r3, 0x1]
|
|
ldrb r0, [r3, 0x2]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r3, 0x4]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldrb r2, [r3, 0x5]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrh r0, [r1]
|
|
bics r0, r2
|
|
strh r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk37_bichalfword
|
|
|
|
thumb_func_start atk38_bicword
|
|
atk38_bicword: @ 804B55C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r2, [r4]
|
|
ldrb r3, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
adds r3, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
adds r3, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
adds r3, r0
|
|
ldrb r1, [r2, 0x5]
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
ldr r0, [r3]
|
|
bics r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r4]
|
|
adds r0, 0x9
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk38_bicword
|
|
|
|
thumb_func_start atk39_pause
|
|
atk39_pause: @ 804B5A0
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
bne _0804B5CC
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldr r3, =gUnknown_0202432C
|
|
ldrh r0, [r3]
|
|
adds r0, 0x1
|
|
strh r0, [r3]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r1
|
|
bcc _0804B5CC
|
|
strh r4, [r3]
|
|
adds r0, r2, 0x3
|
|
str r0, [r5]
|
|
_0804B5CC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk39_pause
|
|
|
|
thumb_func_start sub_804B5E0
|
|
sub_804B5E0: @ 804B5E0
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804B5F2
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_0804B5F2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804B5E0
|
|
|
|
thumb_func_start atk3B_8022C68
|
|
atk3B_8022C68: @ 804B600
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0804B620
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r1, =gEnemyMonIndex
|
|
b _0804B624
|
|
.pool
|
|
_0804B620:
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r1, =gUnknown_0202420B
|
|
_0804B624:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r0, =gBattleMoveDamage
|
|
ldrh r1, [r0]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk3B_8022C68
|
|
|
|
thumb_func_start atk3C_return
|
|
atk3C_return: @ 804B658
|
|
push {lr}
|
|
bl b_movescr_stack_pop_cursor
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk3C_return
|
|
|
|
thumb_func_start sub_804B664
|
|
sub_804B664: @ 804B664
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804B67C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl sub_81A5718
|
|
_0804B67C:
|
|
ldr r0, =gBattleMoveFlags
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xB
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804B664
|
|
|
|
thumb_func_start atk3E_end2
|
|
atk3E_end2: @ 804B6A4
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xB
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk3E_end2
|
|
|
|
thumb_func_start atk3F_end3
|
|
atk3F_end3: @ 804B6BC
|
|
push {lr}
|
|
bl b_movescr_stack_pop_cursor
|
|
ldr r3, =gUnknown_020244A8
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0xC]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0804B6D6
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_0804B6D6:
|
|
ldr r2, =gUnknown_03005D04
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0xC]
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk3F_end3
|
|
|
|
thumb_func_start atk41_call
|
|
atk41_call: @ 804B6F8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x5
|
|
bl b_movescr_stack_push
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk41_call
|
|
|
|
thumb_func_start atk42_jumpiftype2
|
|
atk42_jumpiftype2: @ 804B728
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, [r4]
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r2, [r3, 0x2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _0804B756
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _0804B778
|
|
_0804B756:
|
|
ldrb r1, [r3, 0x3]
|
|
ldrb r0, [r3, 0x4]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r3, 0x5]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804B77C
|
|
.pool
|
|
_0804B778:
|
|
adds r0, r3, 0x7
|
|
str r0, [r4]
|
|
_0804B77C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk42_jumpiftype2
|
|
|
|
thumb_func_start sub_804B784
|
|
sub_804B784: @ 804B784
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x1]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804B7C0
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804B7C6
|
|
.pool
|
|
_0804B7C0:
|
|
ldr r0, [r4]
|
|
adds r0, 0x6
|
|
str r0, [r4]
|
|
_0804B7C6:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B784
|
|
|
|
thumb_func_start sub_804B7D0
|
|
sub_804B7D0: @ 804B7D0
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x54
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804B7D0
|
|
|
|
thumb_func_start atk46_cmd46
|
|
atk46_cmd46: @ 804B7EC
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r6, =gUnknown_02024064
|
|
strb r0, [r6]
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 24
|
|
adds r3, r1, r0
|
|
ldrb r4, [r2, 0x2]
|
|
adds r0, r4, 0
|
|
cmp r0, 0x1
|
|
beq _0804B822
|
|
cmp r0, 0x11
|
|
beq _0804B822
|
|
cmp r0, 0x2
|
|
bne _0804B848
|
|
_0804B822:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x2]
|
|
ldrh r2, [r3]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r4]
|
|
adds r0, 0x7
|
|
str r0, [r4]
|
|
b _0804B8AA
|
|
.pool
|
|
_0804B848:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804B868
|
|
adds r0, r2, 0x7
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DABB9
|
|
b _0804B8A8
|
|
.pool
|
|
_0804B868:
|
|
adds r0, r4, 0
|
|
subs r0, 0xA
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bls _0804B894
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804B894
|
|
adds r0, r2, 0x7
|
|
b _0804B8A8
|
|
.pool
|
|
_0804B894:
|
|
ldrb r1, [r2, 0x2]
|
|
ldrh r2, [r3]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldrb r0, [r6]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x7
|
|
_0804B8A8:
|
|
str r0, [r5]
|
|
_0804B8AA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk46_cmd46
|
|
|
|
thumb_func_start sub_804B8B0
|
|
sub_804B8B0: @ 804B8B0
|
|
push {r4-r7,lr}
|
|
ldr r6, =gUnknown_02024214
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r7, =gUnknown_02024064
|
|
strb r0, [r7]
|
|
ldr r2, [r6]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
adds r3, r1, r0
|
|
ldrb r1, [r2, 0x6]
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 16
|
|
adds r1, r0
|
|
ldrb r0, [r2, 0x9]
|
|
lsls r0, 24
|
|
adds r4, r1, r0
|
|
ldrb r5, [r3]
|
|
adds r0, r5, 0
|
|
cmp r0, 0x1
|
|
beq _0804B8FA
|
|
cmp r0, 0x11
|
|
beq _0804B8FA
|
|
cmp r0, 0x2
|
|
bne _0804B920
|
|
_0804B8FA:
|
|
ldrb r1, [r3]
|
|
ldrh r2, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0xA
|
|
str r0, [r1]
|
|
b _0804B976
|
|
.pool
|
|
_0804B920:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804B934
|
|
adds r0, r2, 0
|
|
b _0804B972
|
|
.pool
|
|
_0804B934:
|
|
adds r0, r5, 0
|
|
subs r0, 0xA
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bls _0804B960
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804B960
|
|
adds r0, r2, 0
|
|
b _0804B972
|
|
.pool
|
|
_0804B960:
|
|
ldrb r1, [r3]
|
|
ldrh r2, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r6]
|
|
_0804B972:
|
|
adds r0, 0xA
|
|
str r0, [r6]
|
|
_0804B976:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804B8B0
|
|
|
|
thumb_func_start sub_804B97C
|
|
sub_804B97C: @ 804B97C
|
|
push {r4,lr}
|
|
movs r3, 0
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1A]
|
|
movs r2, 0xF0
|
|
ands r2, r0
|
|
adds r4, r1, 0
|
|
cmp r2, 0x20
|
|
beq _0804B9AA
|
|
cmp r2, 0x20
|
|
bgt _0804B99C
|
|
cmp r2, 0x10
|
|
beq _0804B9A6
|
|
b _0804B9B4
|
|
.pool
|
|
_0804B99C:
|
|
cmp r2, 0x90
|
|
beq _0804B9AE
|
|
cmp r2, 0xA0
|
|
beq _0804B9B2
|
|
b _0804B9B4
|
|
_0804B9A6:
|
|
movs r3, 0xF
|
|
b _0804B9B4
|
|
_0804B9AA:
|
|
movs r3, 0x27
|
|
b _0804B9B4
|
|
_0804B9AE:
|
|
movs r3, 0x16
|
|
b _0804B9B4
|
|
_0804B9B2:
|
|
movs r3, 0x2E
|
|
_0804B9B4:
|
|
ldrb r1, [r4, 0x1A]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
adds r0, r3, r0
|
|
subs r0, 0x1
|
|
movs r1, 0
|
|
strb r0, [r4, 0x10]
|
|
strb r1, [r4, 0x11]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804B97C
|
|
|
|
thumb_func_start atk48_playstatchangeanimation
|
|
atk48_playstatchangeanimation: @ 804B9D8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r3, 0
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
str r3, [sp]
|
|
bl get_battle_side_of_something
|
|
ldr r2, =gUnknown_02024064
|
|
strb r0, [r2]
|
|
ldr r0, [r5]
|
|
ldrb r4, [r0, 0x2]
|
|
ldrb r1, [r0, 0x3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
ldr r3, [sp]
|
|
cmp r0, 0
|
|
beq _0804BAEC
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
movs r1, 0x15
|
|
cmp r0, 0
|
|
beq _0804BA18
|
|
movs r1, 0x2D
|
|
_0804BA18:
|
|
cmp r4, 0
|
|
beq _0804BAC0
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_0202409C
|
|
mov r9, r0
|
|
lsls r5, r1, 16
|
|
_0804BA26:
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BAB2
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x3]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BA58
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7, r0
|
|
b _0804BAA0
|
|
.pool
|
|
_0804BA58:
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
str r3, [sp]
|
|
bl battle_get_per_side_status
|
|
mov r1, r10
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02024294
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x4]
|
|
ldr r3, [sp]
|
|
cmp r0, 0
|
|
bne _0804BAB2
|
|
ldr r0, =gBattleMons
|
|
ldrb r2, [r6]
|
|
movs r1, 0x58
|
|
muls r2, r1
|
|
adds r0, r2, r0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1D
|
|
beq _0804BAB2
|
|
cmp r0, 0x49
|
|
beq _0804BAB2
|
|
cmp r0, 0x33
|
|
bne _0804BA96
|
|
cmp r7, 0x6
|
|
beq _0804BAB2
|
|
_0804BA96:
|
|
cmp r0, 0x34
|
|
bne _0804BA9E
|
|
cmp r7, 0x1
|
|
beq _0804BAB2
|
|
_0804BA9E:
|
|
adds r0, r7, r2
|
|
_0804BAA0:
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
ble _0804BAB2
|
|
lsrs r0, r5, 16
|
|
mov r8, r0
|
|
adds r3, 0x1
|
|
_0804BAB2:
|
|
lsrs r4, 1
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r5, r1
|
|
adds r7, 0x1
|
|
cmp r4, 0
|
|
bne _0804BA26
|
|
_0804BAC0:
|
|
ldr r0, =gUnknown_02024214
|
|
mov r9, r0
|
|
cmp r3, 0x1
|
|
ble _0804BB4E
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
movs r1, 0x39
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _0804BB4E
|
|
movs r0, 0x3A
|
|
b _0804BB4C
|
|
.pool
|
|
_0804BAEC:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
movs r1, 0xE
|
|
cmp r0, 0
|
|
beq _0804BAF8
|
|
movs r1, 0x26
|
|
_0804BAF8:
|
|
mov r9, r5
|
|
cmp r4, 0
|
|
beq _0804BB34
|
|
ldr r6, =gUnknown_0202409C
|
|
adds r5, r2, 0
|
|
lsls r2, r1, 16
|
|
_0804BB04:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804BB26
|
|
ldrb r1, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r7, r0
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xB
|
|
bgt _0804BB26
|
|
lsrs r1, r2, 16
|
|
mov r8, r1
|
|
adds r3, 0x1
|
|
_0804BB26:
|
|
lsrs r4, 1
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r2, r0
|
|
adds r7, 0x1
|
|
cmp r4, 0
|
|
bne _0804BB04
|
|
_0804BB34:
|
|
cmp r3, 0x1
|
|
ble _0804BB4E
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r1, [r0, 0x3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
movs r1, 0x37
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _0804BB4E
|
|
movs r0, 0x38
|
|
_0804BB4C:
|
|
mov r8, r0
|
|
_0804BB4E:
|
|
mov r1, r9
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BB6C
|
|
cmp r3, 0x1
|
|
bgt _0804BB6C
|
|
adds r0, r2, 0x4
|
|
mov r1, r9
|
|
b _0804BBBA
|
|
.pool
|
|
_0804BB6C:
|
|
cmp r3, 0
|
|
beq _0804BBB4
|
|
ldr r4, =gUnknown_02024474
|
|
ldrb r0, [r4, 0x1B]
|
|
cmp r0, 0
|
|
bne _0804BBB4
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
mov r2, r8
|
|
str r3, [sp]
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
ldr r3, [sp]
|
|
cmp r0, 0
|
|
beq _0804BBA4
|
|
cmp r3, 0x1
|
|
ble _0804BBA4
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1B]
|
|
_0804BBA4:
|
|
ldr r1, =gUnknown_02024214
|
|
b _0804BBB6
|
|
.pool
|
|
_0804BBB4:
|
|
mov r1, r9
|
|
_0804BBB6:
|
|
ldr r0, [r1]
|
|
adds r0, 0x4
|
|
_0804BBBA:
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk48_playstatchangeanimation
|
|
|
|
thumb_func_start sub_804BBCC
|
|
sub_804BBCC: @ 804BBCC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r2, =gUnknown_020241EC
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000ffff
|
|
movs r3, 0
|
|
str r3, [sp, 0x18]
|
|
cmp r1, r0
|
|
beq _0804BBEE
|
|
ldrh r2, [r2]
|
|
str r2, [sp, 0x18]
|
|
_0804BBEE:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, 0x1]
|
|
str r4, [sp, 0x10]
|
|
ldrb r0, [r0, 0x2]
|
|
str r0, [sp, 0x14]
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0804BC34
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x7]
|
|
b _0804BC3E
|
|
.pool
|
|
_0804BC34:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0804BC3E:
|
|
str r0, [sp, 0x8]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, 0xC8
|
|
ldr r1, [r1]
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0xC]
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0
|
|
beq _0804BCF0
|
|
movs r5, 0x3F
|
|
ands r5, r0
|
|
str r5, [sp, 0x4]
|
|
b _0804BD02
|
|
.pool
|
|
_0804BC68:
|
|
ldr r4, =gUnknown_02024064
|
|
strb r2, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl dp01_build_cmdbuf_x33_a_33_33
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804C15A
|
|
.pool
|
|
_0804BC80:
|
|
ldr r4, =gUnknown_02024064
|
|
strb r2, [r4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x33_a_33_33
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r0, [r1]
|
|
ldr r2, =0xfffbff3f
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
b _0804C15A
|
|
.pool
|
|
_0804BCAC:
|
|
strb r2, [r7]
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r4, [r0, 0x14]
|
|
bl sub_804AF30
|
|
ldr r2, =gUnknown_082D86A8
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB87D
|
|
bl _0804C5B8
|
|
.pool
|
|
_0804BCF0:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
str r0, [sp, 0x4]
|
|
_0804BD02:
|
|
ldr r1, =gUnknown_02024474
|
|
mov r12, r1
|
|
b _0804BD1E
|
|
.pool
|
|
_0804BD14:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _0804BD1E
|
|
bl _0804C5A4
|
|
_0804BD1E:
|
|
mov r3, r12
|
|
ldrb r0, [r3, 0x14]
|
|
cmp r0, 0x11
|
|
bls _0804BD2A
|
|
bl _0804C570
|
|
_0804BD2A:
|
|
lsls r0, 2
|
|
ldr r1, =_0804BD38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804BD38:
|
|
.4byte _0804BD80
|
|
.4byte _0804BE5C
|
|
.4byte _0804BF18
|
|
.4byte _0804BF3C
|
|
.4byte _0804BF54
|
|
.4byte _0804BF7C
|
|
.4byte _0804BFA0
|
|
.4byte _0804C048
|
|
.4byte _0804C0BE
|
|
.4byte _0804C0F4
|
|
.4byte _0804C194
|
|
.4byte _0804C088
|
|
.4byte _0804C0A8
|
|
.4byte _0804C1D8
|
|
.4byte _0804C21C
|
|
.4byte _0804C3FC
|
|
.4byte _0804C4E4
|
|
.4byte _0804C570
|
|
_0804BD80:
|
|
ldr r6, =gBattleMons
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r3, [r5]
|
|
movs r7, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r7
|
|
adds r0, r6, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 16
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804BDA0
|
|
b _0804C184
|
|
_0804BDA0:
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0804BDAA
|
|
b _0804C184
|
|
_0804BDAA:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
cmp r1, r3
|
|
bne _0804BDB4
|
|
b _0804C184
|
|
_0804BDB4:
|
|
adds r0, r1, 0
|
|
bl battle_side_get_owner
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _0804BDCC
|
|
b _0804C184
|
|
_0804BDCC:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BDDA
|
|
b _0804C184
|
|
_0804BDDA:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r1, r0, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804BDFE
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804BDFE
|
|
b _0804C184
|
|
_0804BDFE:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0804BE14
|
|
b _0804C184
|
|
_0804BE14:
|
|
adds r0, r3, 0
|
|
muls r0, r7
|
|
adds r1, r0, r6
|
|
ldrb r2, [r1, 0x19]
|
|
movs r0, 0x19
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0xB
|
|
ble _0804BE26
|
|
b _0804C184
|
|
_0804BE26:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1, 0x19]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAE0D
|
|
str r0, [r1]
|
|
b _0804C0B8
|
|
.pool
|
|
_0804BE5C:
|
|
ldr r4, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r5, 0x58
|
|
mov r12, r5
|
|
mov r1, r12
|
|
muls r1, r2
|
|
adds r7, r4, 0
|
|
adds r7, 0x4C
|
|
adds r5, r1, r7
|
|
ldr r3, [r5]
|
|
movs r0, 0x20
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _0804BE7C
|
|
b _0804C184
|
|
_0804BE7C:
|
|
adds r0, r1, r4
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _0804BE86
|
|
b _0804C184
|
|
_0804BE86:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _0804BE90
|
|
b _0804C184
|
|
_0804BE90:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0804BEA4
|
|
b _0804C184
|
|
_0804BEA4:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BEB2
|
|
b _0804C184
|
|
_0804BEB2:
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0xA
|
|
beq _0804BEBA
|
|
b _0804C184
|
|
_0804BEBA:
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r3, r0
|
|
str r3, [r5]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
strb r0, [r4]
|
|
ldrb r0, [r6]
|
|
mov r1, r12
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB282
|
|
str r0, [r1]
|
|
movs r2, 0x1
|
|
mov r10, r2
|
|
b _0804C184
|
|
.pool
|
|
_0804BF18:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x7
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804BF32
|
|
b _0804C184
|
|
_0804BF32:
|
|
movs r3, 0x1
|
|
mov r10, r3
|
|
b _0804C184
|
|
.pool
|
|
_0804BF3C:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
b _0804C0B2
|
|
.pool
|
|
_0804BF54:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804BF6C
|
|
b _0804C184
|
|
_0804BF6C:
|
|
movs r5, 0x1
|
|
mov r10, r5
|
|
ldr r0, =gUnknown_02024474
|
|
mov r12, r0
|
|
b _0804C570
|
|
.pool
|
|
_0804BF7C:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x8
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804BF96
|
|
b _0804C184
|
|
_0804BF96:
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
b _0804C184
|
|
.pool
|
|
_0804BFA0:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804BFE4
|
|
ldr r2, [sp, 0x8]
|
|
cmp r2, 0x1D
|
|
bne _0804BFE4
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r2, [r0]
|
|
adds r3, r0, 0
|
|
cmp r2, 0xA5
|
|
beq _0804BFE4
|
|
ldr r4, [sp, 0xC]
|
|
ldrh r1, [r4]
|
|
cmp r1, 0
|
|
beq _0804BFCC
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _0804BFE4
|
|
_0804BFCC:
|
|
cmp r2, 0xE2
|
|
bne _0804BFDE
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804BFDE
|
|
b _0804C4B6
|
|
_0804BFDE:
|
|
ldrh r0, [r3]
|
|
ldr r1, [sp, 0xC]
|
|
strh r0, [r1]
|
|
_0804BFE4:
|
|
movs r4, 0
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r2, 0xC
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
ldr r5, [sp, 0xC]
|
|
ldrh r1, [r5]
|
|
mov r9, r3
|
|
cmp r0, r1
|
|
beq _0804C01C
|
|
mov r6, r9
|
|
movs r3, 0x58
|
|
adds r5, r1, 0
|
|
_0804C006:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _0804C01C
|
|
lsls r0, r4, 1
|
|
ldrb r1, [r6]
|
|
muls r1, r3
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
bne _0804C006
|
|
_0804C01C:
|
|
cmp r4, 0x4
|
|
bne _0804C026
|
|
movs r0, 0
|
|
ldr r1, [sp, 0xC]
|
|
strh r0, [r1]
|
|
_0804C026:
|
|
mov r2, r12
|
|
ldrb r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x14]
|
|
b _0804C570
|
|
.pool
|
|
_0804C048:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r0]
|
|
cmp r4, r3
|
|
blt _0804C054
|
|
b _0804C202
|
|
_0804C054:
|
|
ldr r7, =gUnknown_0202449C
|
|
movs r6, 0
|
|
movs r3, 0xD0
|
|
adds r5, r0, 0
|
|
ldr r2, =gBattleMons
|
|
_0804C05E:
|
|
ldr r0, [r7]
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
cmp r1, 0
|
|
beq _0804C06C
|
|
strh r1, [r2, 0x2E]
|
|
strh r6, [r0]
|
|
_0804C06C:
|
|
adds r3, 0x2
|
|
adds r2, 0x58
|
|
adds r4, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
blt _0804C05E
|
|
b _0804C202
|
|
.pool
|
|
_0804C088:
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804C184
|
|
movs r2, 0x1
|
|
mov r10, r2
|
|
ldr r3, =gUnknown_02024474
|
|
mov r12, r3
|
|
b _0804C570
|
|
.pool
|
|
_0804C0A8:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl berry_effects_maybe
|
|
_0804C0B2:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804C184
|
|
_0804C0B8:
|
|
movs r4, 0x1
|
|
mov r10, r4
|
|
b _0804C184
|
|
_0804C0BE:
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C0D4
|
|
b _0804C4B6
|
|
_0804C0D4:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C0E2
|
|
b _0804BC68
|
|
_0804C0E2:
|
|
b _0804C4B6
|
|
.pool
|
|
_0804C0F4:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C120
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C120
|
|
adds r0, r2, 0
|
|
bl sub_803F90C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804C184
|
|
_0804C120:
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x33_a_33_33
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, =gUnknown_020242AC
|
|
ldrb r2, [r5]
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffbff3f
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804C15A:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
b _0804C5BA
|
|
.pool
|
|
_0804C184:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
mov r12, r1
|
|
b _0804C570
|
|
.pool
|
|
_0804C194:
|
|
ldr r0, =gUnknown_0202437C
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
lsls r3, r2, 2
|
|
adds r1, r3, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _0804C202
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _0804C202
|
|
ldr r5, =gUnknown_020242AC
|
|
adds r0, r3, r5
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C1C2
|
|
b _0804BC80
|
|
_0804C1C2:
|
|
b _0804C202
|
|
.pool
|
|
_0804C1D8:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r2, [r0]
|
|
cmp r4, r2
|
|
bge _0804C202
|
|
ldr r2, =gUnknown_020242BC
|
|
ldr r5, =0xfeffffff
|
|
adds r3, r0, 0
|
|
ldr r1, =gUnknown_020240D4
|
|
_0804C1EA:
|
|
ldrb r0, [r2, 0xA]
|
|
cmp r0, 0
|
|
bne _0804C1F6
|
|
ldr r0, [r1]
|
|
ands r0, r5
|
|
str r0, [r1]
|
|
_0804C1F6:
|
|
adds r2, 0x1C
|
|
adds r1, 0x58
|
|
adds r4, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r4, r0
|
|
blt _0804C1EA
|
|
_0804C202:
|
|
mov r1, r12
|
|
ldrb r0, [r1, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
b _0804C570
|
|
.pool
|
|
_0804C21C:
|
|
ldr r1, =gUnknown_02024280
|
|
ldr r3, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r3
|
|
ldr r2, =gUnknown_0202420B
|
|
mov r9, r2
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0804C246
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r2]
|
|
strb r2, [r0]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r1]
|
|
mov r4, r9
|
|
strb r0, [r4]
|
|
strb r2, [r1]
|
|
ldr r0, =0xffffefff
|
|
ands r3, r0
|
|
str r3, [r5]
|
|
_0804C246:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C262
|
|
ldr r0, =gUnknown_02024240
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
_0804C262:
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
mov r3, r9
|
|
ldrb r4, [r3]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r3, [r0]
|
|
ands r1, r3
|
|
adds r6, r2, 0
|
|
cmp r1, 0
|
|
beq _0804C27C
|
|
b _0804C3E8
|
|
_0804C27C:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, 0x91
|
|
ldrb r1, [r1]
|
|
ands r1, r3
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
beq _0804C28E
|
|
b _0804C3E8
|
|
_0804C28E:
|
|
ldr r0, =gBattleMoves
|
|
ldr r2, [sp, 0x18]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
mov r8, r0
|
|
cmp r1, 0x7F
|
|
bne _0804C2A4
|
|
b _0804C3E8
|
|
_0804C2A4:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C308
|
|
ldr r0, =gUnknown_02024248
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_02024260
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
b _0804C322
|
|
.pool
|
|
_0804C308:
|
|
ldr r1, =gUnknown_02024248
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldr r1, =0x0000ffff
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_02024260
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0]
|
|
_0804C322:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
lsls r0, 28
|
|
ldr r1, [r5]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804C340
|
|
ldr r0, =gUnknown_02024270
|
|
adds r0, r3, r0
|
|
mov r3, r9
|
|
ldrb r1, [r3]
|
|
strb r1, [r0]
|
|
_0804C340:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C3DC
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C3DC
|
|
ldr r0, =gUnknown_020241EC
|
|
ldrh r3, [r0]
|
|
ldr r0, =0x0000ffff
|
|
cmp r3, r0
|
|
bne _0804C390
|
|
ldr r1, =gUnknown_02024250
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r3, [r0]
|
|
b _0804C3E8
|
|
.pool
|
|
_0804C390:
|
|
ldr r0, =gUnknown_02024250
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldr r4, =gUnknown_020241EA
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r3, [r0, 0x13]
|
|
cmp r3, 0
|
|
beq _0804C3C0
|
|
ldr r0, =gUnknown_02024258
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
movs r0, 0x3F
|
|
ands r0, r3
|
|
b _0804C3E6
|
|
.pool
|
|
_0804C3C0:
|
|
ldr r0, =gUnknown_02024258
|
|
ldrb r2, [r2]
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x2]
|
|
strh r0, [r2]
|
|
b _0804C3E8
|
|
.pool
|
|
_0804C3DC:
|
|
ldr r0, =gUnknown_02024250
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldr r0, =0x0000ffff
|
|
_0804C3E6:
|
|
strh r0, [r1]
|
|
_0804C3E8:
|
|
mov r4, r12
|
|
ldrb r0, [r4, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x14]
|
|
b _0804C570
|
|
.pool
|
|
_0804C3FC:
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r7, =gBitTable
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 2
|
|
adds r0, r7
|
|
ldr r4, [r0]
|
|
ands r1, r4
|
|
mov r9, r2
|
|
cmp r1, 0
|
|
bne _0804C4B6
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r5, [r6]
|
|
adds r0, r5, 0
|
|
adds r0, 0x91
|
|
ldrb r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _0804C4B6
|
|
ldr r1, =gBattleMoves
|
|
ldr r2, [sp, 0x18]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C4B6
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C4B6
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
cmp r3, r0
|
|
beq _0804C4B6
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
lsls r0, 28
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804C4B6
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C4B6
|
|
lsls r1, r2, 1
|
|
adds r1, r5
|
|
adds r1, 0x98
|
|
ldr r3, =gUnknown_020241EC
|
|
ldrh r0, [r3]
|
|
strb r0, [r1]
|
|
ldrb r1, [r4]
|
|
ldr r0, [r6]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
adds r1, 0x99
|
|
ldrh r0, [r3]
|
|
lsrs r0, 8
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
ldr r2, [r6]
|
|
lsls r0, 3
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
adds r0, 0xE0
|
|
ldrh r1, [r3]
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
ldr r2, [r6]
|
|
lsls r1, 3
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0xE1
|
|
ldrh r0, [r3]
|
|
lsrs r0, 8
|
|
strb r0, [r1]
|
|
_0804C4B6:
|
|
mov r5, r12
|
|
ldrb r0, [r5, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x14]
|
|
b _0804C570
|
|
.pool
|
|
_0804C4E4:
|
|
ldr r5, =gUnknown_02024280
|
|
ldr r2, [r5]
|
|
movs r0, 0x80
|
|
lsls r0, 12
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0804C568
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C568
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _0804C568
|
|
ldr r0, =gBattleMoves
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_020241EA
|
|
mov r8, r1
|
|
ldrh r0, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0x8
|
|
bne _0804C568
|
|
movs r6, 0x80
|
|
lsls r6, 2
|
|
adds r4, r6, 0
|
|
ands r4, r2
|
|
cmp r4, 0
|
|
bne _0804C568
|
|
ldr r7, =gEnemyMonIndex
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0804C55E
|
|
bl _0804BCAC
|
|
_0804C55E:
|
|
ldr r0, [r5]
|
|
orrs r0, r6
|
|
str r0, [r5]
|
|
ldr r2, =gUnknown_02024474
|
|
mov r12, r2
|
|
_0804C568:
|
|
mov r3, r12
|
|
ldrb r0, [r3, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r3, 0x14]
|
|
_0804C570:
|
|
ldr r4, [sp, 0x10]
|
|
cmp r4, 0x1
|
|
bne _0804C582
|
|
mov r5, r10
|
|
cmp r5, 0
|
|
bne _0804C582
|
|
movs r0, 0x11
|
|
mov r1, r12
|
|
strb r0, [r1, 0x14]
|
|
_0804C582:
|
|
ldr r2, [sp, 0x10]
|
|
cmp r2, 0x2
|
|
bne _0804C598
|
|
ldr r4, [sp, 0x14]
|
|
mov r3, r12
|
|
ldrb r3, [r3, 0x14]
|
|
cmp r4, r3
|
|
bne _0804C598
|
|
movs r0, 0x11
|
|
mov r4, r12
|
|
strb r0, [r4, 0x14]
|
|
_0804C598:
|
|
mov r5, r12
|
|
ldrb r0, [r5, 0x14]
|
|
cmp r0, 0x11
|
|
beq _0804C5A4
|
|
bl _0804BD14
|
|
_0804C5A4:
|
|
mov r1, r12
|
|
ldrb r0, [r1, 0x14]
|
|
cmp r0, 0x11
|
|
bne _0804C5BA
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _0804C5BA
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x3
|
|
_0804C5B8:
|
|
str r0, [r1]
|
|
_0804C5BA:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804BBCC
|
|
|
|
thumb_func_start atk4A_damagecalc2
|
|
atk4A_damagecalc2: @ 804C5F4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x2]
|
|
mov r8, r0
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
mov r12, r2
|
|
adds r7, r3, 0
|
|
cmp r0, 0x1A
|
|
bne _0804C688
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
bne _0804C688
|
|
ldr r3, =gUnknown_0202420A
|
|
strb r0, [r3]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x9
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024250
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
mov r2, r8
|
|
strb r2, [r0, 0x6]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r3]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _0804C76A
|
|
.pool
|
|
_0804C678:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804C76A
|
|
.pool
|
|
_0804C688:
|
|
ldr r1, =gUnknown_0831ACE8
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r6, r1, 0
|
|
b _0804C74A
|
|
.pool
|
|
_0804C698:
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _0804C744
|
|
adds r2, r5, 0x1
|
|
adds r3, r2, r6
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r12
|
|
adds r0, 0x21
|
|
ldrb r1, [r3]
|
|
adds r3, r2, 0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _0804C6D6
|
|
adds r0, r5, 0x2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _0804C678
|
|
cmp r1, 0x5
|
|
bne _0804C6CA
|
|
movs r0, 0x4
|
|
orrs r4, r0
|
|
_0804C6CA:
|
|
cmp r1, 0x14
|
|
bne _0804C6D6
|
|
movs r0, 0x2
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804C6D6:
|
|
adds r2, r3, r6
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r12
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804C744
|
|
adds r0, 0x21
|
|
ldrb r1, [r0]
|
|
cmp r1, r2
|
|
beq _0804C6FE
|
|
adds r0, r5, 0x2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804C678
|
|
_0804C6FE:
|
|
cmp r1, r2
|
|
beq _0804C714
|
|
adds r0, r5, 0x2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _0804C714
|
|
movs r0, 0x4
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804C714:
|
|
adds r2, r3, r6
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r12
|
|
adds r1, r0, 0
|
|
adds r1, 0x22
|
|
ldrb r2, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bne _0804C744
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
beq _0804C744
|
|
adds r0, r5, 0x2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x14
|
|
bne _0804C744
|
|
movs r0, 0x2
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0804C744:
|
|
adds r5, 0x3
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
_0804C74A:
|
|
cmp r0, 0xFF
|
|
beq _0804C76A
|
|
cmp r0, 0xFE
|
|
bne _0804C698
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r12
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C744
|
|
_0804C76A:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
mov r8, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r6, [r0]
|
|
cmp r6, 0x19
|
|
bne _0804C7E6
|
|
movs r5, 0x29
|
|
ands r5, r4
|
|
cmp r5, 0
|
|
bne _0804C7E6
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
ldr r7, =gUnknown_020241EA
|
|
ldrh r1, [r7]
|
|
bl move_weather_interaction
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bne _0804C7E6
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C7AC
|
|
movs r0, 0x6
|
|
ands r4, r0
|
|
cmp r4, 0x6
|
|
bne _0804C7E6
|
|
_0804C7AC:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r7]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _0804C7E6
|
|
ldr r3, =gUnknown_0202420A
|
|
strb r6, [r3]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024250
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
strh r5, [r0]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x6]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r3]
|
|
bl b_history__record_ability_usage_of_player
|
|
_0804C7E6:
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804C804
|
|
ldr r2, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
_0804C804:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk4A_damagecalc2
|
|
|
|
thumb_func_start atk4B_cmd4b
|
|
atk4B_cmd4b: @ 804C844
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804C872
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x06_a
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804C872:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk4B_cmd4b
|
|
|
|
thumb_func_start atk4C_switch1
|
|
atk4C_switch1: @ 804C894
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804C8E4
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r3, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r3
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x00_a_b_0
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
_0804C8E4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk4C_switch1
|
|
|
|
thumb_func_start sub_804C904
|
|
sub_804C904: @ 804C904
|
|
push {r4-r7,lr}
|
|
sub sp, 0x58
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804C912
|
|
b _0804CAA4
|
|
_0804C912:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r6, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r5, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r6
|
|
mov r0, sp
|
|
movs r2, 0x58
|
|
bl memcpy
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r3, r0, r6
|
|
movs r2, 0
|
|
ldr r5, =gUnknown_02023864
|
|
_0804C93E:
|
|
adds r0, r3, r2
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x57
|
|
bls _0804C93E
|
|
ldr r4, =gBattleMons
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
movs r7, 0x58
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
adds r2, r4
|
|
ldr r3, =gBaseStats
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x6]
|
|
adds r2, 0x21
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r1, r4
|
|
ldrh r2, [r1]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x7]
|
|
adds r1, 0x22
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r7
|
|
adds r1, r4
|
|
ldrh r0, [r1]
|
|
ldrb r1, [r1, 0x17]
|
|
lsrs r1, 7
|
|
bl sub_806B694
|
|
ldrb r1, [r6]
|
|
muls r1, r7
|
|
adds r1, r4
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x29
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
ldr r3, =gBitTable
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r5, [r6]
|
|
lsls r0, r5, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
mov r12, r4
|
|
cmp r1, 0
|
|
beq _0804C9DE
|
|
adds r0, r5, 0
|
|
muls r0, r7
|
|
add r0, r12
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
_0804C9DE:
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7F
|
|
bne _0804CA26
|
|
movs r2, 0
|
|
adds r4, r6, 0
|
|
movs r6, 0x58
|
|
mov r5, r12
|
|
adds r5, 0x18
|
|
add r3, sp, 0x18
|
|
_0804C9FE:
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r2, r1
|
|
adds r1, r5
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _0804C9FE
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r12
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [sp, 0x50]
|
|
str r1, [r0]
|
|
_0804CA26:
|
|
bl sub_803A284
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CA78
|
|
ldr r4, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
movs r0, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r0
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 1
|
|
ldrh r1, [r1, 0x28]
|
|
cmp r0, r1
|
|
bcc _0804CA78
|
|
cmp r1, 0
|
|
beq _0804CA78
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804CA78
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
adds r2, 0x92
|
|
ldr r1, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804CA78:
|
|
ldr r0, =gUnknown_02024474
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r2, [r3]
|
|
strb r2, [r0, 0x17]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
strb r2, [r1, 0x2]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_0804CAA4:
|
|
add sp, 0x58
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804C904
|
|
|
|
thumb_func_start atk4E_switch3
|
|
atk4E_switch3: @ 804CAE8
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804CB86
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r6, =gUnknown_02024064
|
|
strb r0, [r6]
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0804CB3E
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x063f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804CB3E
|
|
ldr r4, =gBattleMons
|
|
ldrb r0, [r6]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r6]
|
|
muls r1, r5
|
|
adds r4, 0x48
|
|
adds r1, r4
|
|
ldr r2, [r1]
|
|
movs r1, 0x2
|
|
bl SetPokedexFlag
|
|
_0804CB3E:
|
|
ldr r2, =gUnknown_02024210
|
|
ldr r1, =gBitTable
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x05_a_b_c
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r4]
|
|
adds r0, 0x3
|
|
str r0, [r4]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CB86
|
|
bl sub_81A56B4
|
|
_0804CB86:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk4E_switch3
|
|
|
|
thumb_func_start atk4F_jumpifcannotswitch
|
|
atk4F_jumpifcannotswitch: @ 804CBB0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
bl get_battle_side_of_something
|
|
ldr r3, =gUnknown_02024064
|
|
strb r0, [r3]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804CC28
|
|
ldr r1, =gBattleMons
|
|
ldrb r3, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804CBFC
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CC28
|
|
_0804CBFC:
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _0804CF00
|
|
.pool
|
|
_0804CC28:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CCC0
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gPlayerParty
|
|
mov r8, r1
|
|
cmp r0, 0x1
|
|
bne _0804CC4E
|
|
ldr r0, =gEnemyParty
|
|
mov r8, r0
|
|
_0804CC4E:
|
|
movs r4, 0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CC5C
|
|
movs r4, 0x3
|
|
_0804CC5C:
|
|
adds r6, r4, 0x3
|
|
cmp r4, r6
|
|
bge _0804CCA4
|
|
ldr r7, =gUnknown_0202406E
|
|
_0804CC64:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CC9E
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804CC9E
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CC9E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0804CCA4
|
|
_0804CC9E:
|
|
adds r4, 0x1
|
|
cmp r4, r6
|
|
blt _0804CC64
|
|
_0804CCA4:
|
|
cmp r4, r6
|
|
bne _0804CCAA
|
|
b _0804CED0
|
|
_0804CCAA:
|
|
b _0804CEF8
|
|
.pool
|
|
_0804CCC0:
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CD8C
|
|
movs r0, 0x80
|
|
lsls r0, 16
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804CD00
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804CCEC
|
|
ldr r0, =gPlayerParty
|
|
b _0804CD16
|
|
.pool
|
|
_0804CCEC:
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
ldrb r0, [r5]
|
|
movs r4, 0x3
|
|
cmp r0, 0x1
|
|
bne _0804CD32
|
|
movs r4, 0
|
|
b _0804CD32
|
|
.pool
|
|
_0804CD00:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gPlayerParty
|
|
mov r8, r1
|
|
cmp r0, 0x1
|
|
bne _0804CD18
|
|
ldr r0, =gEnemyParty
|
|
_0804CD16:
|
|
mov r8, r0
|
|
_0804CD18:
|
|
movs r4, 0
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_806D82C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0804CD32
|
|
movs r4, 0x3
|
|
_0804CD32:
|
|
adds r6, r4, 0x3
|
|
cmp r4, r6
|
|
bge _0804CCA4
|
|
ldr r7, =gUnknown_0202406E
|
|
_0804CD3A:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CD74
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804CD74
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CD74
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0804CCA4
|
|
_0804CD74:
|
|
adds r4, 0x1
|
|
cmp r4, r6
|
|
blt _0804CD3A
|
|
b _0804CCA4
|
|
.pool
|
|
_0804CD8C:
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804CE10
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0804CE10
|
|
ldr r0, =gEnemyParty
|
|
mov r8, r0
|
|
movs r4, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x3
|
|
bne _0804CDB4
|
|
movs r4, 0x3
|
|
_0804CDB4:
|
|
adds r6, r4, 0x3
|
|
cmp r4, r6
|
|
blt _0804CDBC
|
|
b _0804CCA4
|
|
_0804CDBC:
|
|
ldr r7, =gUnknown_0202406E
|
|
_0804CDBE:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CDFA
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804CDFA
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CDFA
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
beq _0804CDFA
|
|
b _0804CCA4
|
|
_0804CDFA:
|
|
adds r4, 0x1
|
|
cmp r4, r6
|
|
blt _0804CDBE
|
|
b _0804CCA4
|
|
.pool
|
|
_0804CE10:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bne _0804CE54
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0804CE48
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _0804CE4A
|
|
.pool
|
|
_0804CE48:
|
|
adds r6, r7, 0
|
|
_0804CE4A:
|
|
ldr r0, =gEnemyParty
|
|
mov r8, r0
|
|
b _0804CE82
|
|
.pool
|
|
_0804CE54:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804CE7C
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _0804CE7E
|
|
.pool
|
|
_0804CE7C:
|
|
adds r6, r7, 0
|
|
_0804CE7E:
|
|
ldr r1, =gPlayerParty
|
|
mov r8, r1
|
|
_0804CE82:
|
|
movs r4, 0
|
|
_0804CE84:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
mov r1, r8
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CEC6
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804CEC6
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0804CEC6
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _0804CEC6
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _0804CECC
|
|
_0804CEC6:
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _0804CE84
|
|
_0804CECC:
|
|
cmp r4, 0x6
|
|
bne _0804CEF8
|
|
_0804CED0:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804CF00
|
|
.pool
|
|
_0804CEF8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x6
|
|
str r0, [r1]
|
|
_0804CF00:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk4F_jumpifcannotswitch
|
|
|
|
thumb_func_start sub_804CF10
|
|
sub_804CF10: @ 804CF10
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r1, [r4]
|
|
adds r1, r0, r1
|
|
adds r1, 0x58
|
|
ldr r3, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
ldr r1, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
ldr r1, [r4]
|
|
adds r1, 0x93
|
|
ldr r3, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r3, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r3
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, 0x60
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804CF10
|
|
|
|
thumb_func_start atk50_openpartyscreen
|
|
atk50_openpartyscreen: @ 804CF88
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r6, =gUnknown_02024214
|
|
ldr r2, [r6]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
mov r8, r1
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r1, 0
|
|
mov r12, r6
|
|
cmp r0, 0x5
|
|
beq _0804CFBE
|
|
b _0804D464
|
|
_0804CFBE:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x41
|
|
ands r1, r0
|
|
cmp r1, 0x1
|
|
beq _0804D0B0
|
|
ldr r1, =gUnknown_02024064
|
|
strb r7, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcc _0804CFD8
|
|
b _0804D450
|
|
_0804CFD8:
|
|
ldr r7, =gUnknown_02024280
|
|
ldr r6, =gBitTable
|
|
adds r4, r1, 0
|
|
ldr r2, =gUnknown_02024210
|
|
mov r8, r2
|
|
_0804CFE2:
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r7]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D088
|
|
adds r0, r2, 0
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D054
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r7]
|
|
bics r0, r1
|
|
str r0, [r7]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D098
|
|
.pool
|
|
_0804D054:
|
|
ldr r5, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D098
|
|
movs r0, 0x6
|
|
bl sub_804CF10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804D098
|
|
.pool
|
|
_0804D088:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D098:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0804CFE2
|
|
b _0804D450
|
|
.pool
|
|
_0804D0B0:
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804D0B8
|
|
b _0804D450
|
|
_0804D0B8:
|
|
ldr r0, =gUnknown_02024280
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
lsrs r5, r0, 28
|
|
ldr r6, =gBitTable
|
|
ldr r0, [r6]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D170
|
|
ldr r4, =gUnknown_02024064
|
|
strb r7, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D120
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D170
|
|
.pool
|
|
_0804D120:
|
|
ldr r6, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D15C
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5E
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804D170
|
|
.pool
|
|
_0804D15C:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_0804D170:
|
|
ldr r6, =gBitTable
|
|
ldr r0, [r6, 0x8]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D22E
|
|
ldr r0, [r6]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0804D22E
|
|
ldr r4, =gUnknown_02024064
|
|
movs r0, 0x2
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D1D8
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_02024280
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D22E
|
|
.pool
|
|
_0804D1D8:
|
|
ldr r6, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D214
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804D22E
|
|
.pool
|
|
_0804D214:
|
|
movs r0, 0x1
|
|
mov r1, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804D22E
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D22E:
|
|
ldr r6, =gBitTable
|
|
ldr r0, [r6, 0x4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D2E4
|
|
ldr r4, =gUnknown_02024064
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D290
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_02024280
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D2E4
|
|
.pool
|
|
_0804D290:
|
|
ldr r6, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D2CC
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5F
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804D2E4
|
|
.pool
|
|
_0804D2CC:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
movs r0, 0x2
|
|
mov r2, r9
|
|
orrs r2, r0
|
|
mov r9, r2
|
|
_0804D2E4:
|
|
ldr r6, =gBitTable
|
|
ldr r0, [r6, 0xC]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D3A2
|
|
ldr r0, [r6, 0x4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0804D3A2
|
|
ldr r4, =gUnknown_02024064
|
|
movs r0, 0x3
|
|
strb r0, [r4]
|
|
movs r0, 0x3
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D34C
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_02024280
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D3A2
|
|
.pool
|
|
_0804D34C:
|
|
ldr r6, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D388
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5D
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804D3A2
|
|
.pool
|
|
_0804D388:
|
|
movs r0, 0x2
|
|
mov r1, r9
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804D3A2
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D3A2:
|
|
ldr r1, =gUnknown_0202437C
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D3FA
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D3FA
|
|
cmp r5, 0
|
|
beq _0804D3FA
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r0, =gBitTable
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804D3E4
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _0804D3E8
|
|
.pool
|
|
_0804D3E4:
|
|
ldr r0, =gUnknown_02024064
|
|
strb r1, [r0]
|
|
_0804D3E8:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D3FA:
|
|
ldr r1, =gUnknown_0202437C
|
|
ldrb r0, [r1, 0x14]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D450
|
|
adds r0, r1, 0
|
|
adds r0, 0x3C
|
|
ldrb r0, [r0]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D450
|
|
cmp r5, 0
|
|
beq _0804D450
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r0, [r0]
|
|
ldr r1, =gBitTable
|
|
ldr r1, [r1, 0x4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D438
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0x3
|
|
b _0804D43C
|
|
.pool
|
|
_0804D438:
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0x1
|
|
_0804D43C:
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D450:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x6
|
|
str r0, [r1]
|
|
b _0804D804
|
|
.pool
|
|
_0804D464:
|
|
cmp r0, 0x6
|
|
beq _0804D46A
|
|
b _0804D658
|
|
_0804D46A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D478
|
|
b _0804D5F4
|
|
_0804D478:
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804D482
|
|
b _0804D5F4
|
|
_0804D482:
|
|
ldr r7, =gUnknown_02024280
|
|
ldr r0, [r7]
|
|
lsrs r5, r0, 28
|
|
ldr r4, =gBitTable
|
|
ldr r0, [r4, 0x8]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D52A
|
|
ldr r0, [r4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D52A
|
|
ldr r6, =gUnknown_02024064
|
|
movs r0, 0x2
|
|
strb r0, [r6]
|
|
ldr r0, =gUnknown_02023864
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x2
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D4F8
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r7]
|
|
bics r0, r1
|
|
str r0, [r7]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r6]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D52A
|
|
.pool
|
|
_0804D4F8:
|
|
ldr r4, =gUnknown_0202437C
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D52A
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804D52A:
|
|
ldr r4, =gBitTable
|
|
ldr r0, [r4, 0xC]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804D5DA
|
|
ldr r0, [r4, 0x4]
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _0804D5DA
|
|
ldr r5, =gUnknown_02024064
|
|
movs r0, 0x3
|
|
strb r0, [r5]
|
|
ldr r0, =gUnknown_02023864
|
|
ldr r2, =0x00000201
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D5A8
|
|
ldr r2, =gUnknown_02024210
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_02024280
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2A_2A_2A_2A
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804D5DA
|
|
.pool
|
|
_0804D5A8:
|
|
ldr r4, =gUnknown_0202437C
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _0804D5DA
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x5D
|
|
ldrb r0, [r0]
|
|
bl sub_804CF10
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804D5DA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x6
|
|
str r0, [r1]
|
|
mov r12, r1
|
|
b _0804D5F8
|
|
.pool
|
|
_0804D5F4:
|
|
adds r0, r2, 0x6
|
|
str r0, [r6]
|
|
_0804D5F8:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
lsrs r5, r0, 28
|
|
ldr r1, =gUnknown_0202420D
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r4, =gBitTable
|
|
ldr r2, [r4]
|
|
ands r2, r5
|
|
ldr r6, =gUnknown_0202406C
|
|
cmp r2, 0
|
|
bne _0804D634
|
|
adds r7, r6, 0
|
|
ldrb r0, [r6]
|
|
cmp r2, r0
|
|
bcs _0804D634
|
|
adds r3, r1, 0
|
|
_0804D61A:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0804D634
|
|
ldrb r0, [r7]
|
|
cmp r2, r0
|
|
bcc _0804D61A
|
|
_0804D634:
|
|
ldrb r0, [r1]
|
|
ldrb r6, [r6]
|
|
cmp r0, r6
|
|
beq _0804D63E
|
|
b _0804D804
|
|
_0804D63E:
|
|
mov r1, r8
|
|
mov r2, r12
|
|
str r1, [r2]
|
|
b _0804D804
|
|
.pool
|
|
_0804D658:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
movs r5, 0x1
|
|
cmp r0, 0
|
|
beq _0804D664
|
|
movs r5, 0
|
|
_0804D664:
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
bl get_battle_side_of_something
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gUnknown_0202437C
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _0804D690
|
|
ldr r0, [r6]
|
|
adds r0, 0x6
|
|
str r0, [r6]
|
|
b _0804D804
|
|
.pool
|
|
_0804D690:
|
|
adds r0, r7, 0
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80423F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804D6E0
|
|
ldr r2, =gUnknown_02024064
|
|
strb r7, [r2]
|
|
ldr r3, =gUnknown_02024210
|
|
ldr r4, =gBitTable
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r3]
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r3, =gUnknown_02024280
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
ldr r0, [r3]
|
|
bics r0, r1
|
|
str r0, [r3]
|
|
mov r0, r8
|
|
str r0, [r6]
|
|
b _0804D804
|
|
.pool
|
|
_0804D6E0:
|
|
ldr r4, =gUnknown_02024064
|
|
strb r7, [r4]
|
|
ldrb r0, [r4]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
ldr r1, [r3]
|
|
adds r1, 0x93
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r0, [r1]
|
|
bics r0, r2
|
|
strb r0, [r1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
ldr r3, [r3]
|
|
adds r0, r3
|
|
adds r0, 0x5C
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x60
|
|
adds r3, r0
|
|
str r3, [sp]
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r6]
|
|
adds r0, 0x6
|
|
str r0, [r6]
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804D760
|
|
ldr r1, =gUnknown_03005D10
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xFE
|
|
bhi _0804D760
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
_0804D760:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D7C4
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804D804
|
|
adds r4, r1, 0
|
|
_0804D77C:
|
|
ldrb r0, [r4]
|
|
cmp r0, r7
|
|
beq _0804D792
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D792:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _0804D77C
|
|
b _0804D804
|
|
.pool
|
|
_0804D7C4:
|
|
adds r0, r7, 0
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804D7F4
|
|
movs r0, 0x2
|
|
eors r3, r0
|
|
strb r3, [r4]
|
|
_0804D7F4:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_8034464
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804D804:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk50_openpartyscreen
|
|
|
|
thumb_func_start atk51_cmd51
|
|
atk51_cmd51: @ 804D820
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0804D82C
|
|
b _0804DA8A
|
|
_0804D82C:
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x1
|
|
beq _0804D8CC
|
|
cmp r0, 0x1
|
|
bgt _0804D858
|
|
cmp r0, 0
|
|
beq _0804D862
|
|
b _0804DA82
|
|
.pool
|
|
_0804D858:
|
|
cmp r0, 0x2
|
|
beq _0804D8E8
|
|
cmp r0, 0x3
|
|
beq _0804D922
|
|
b _0804DA82
|
|
_0804D862:
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804D86E
|
|
b _0804DA82
|
|
_0804D86E:
|
|
ldr r7, =gUnknown_02023864
|
|
_0804D870:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x22
|
|
bne _0804D8AA
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r0, [r5]
|
|
adds r0, r6, r0
|
|
adds r0, 0x5C
|
|
ldrb r1, [r7, 0x1]
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x93
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r6, 2
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
ands r1, r4
|
|
cmp r1, 0
|
|
bne _0804D8AA
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r7, 0x1]
|
|
bl sub_8184FBC
|
|
ldr r1, [r5]
|
|
adds r1, 0x93
|
|
ldrb r0, [r1]
|
|
orrs r4, r0
|
|
strb r4, [r1]
|
|
_0804D8AA:
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
adds r7, r0
|
|
adds r6, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _0804D870
|
|
b _0804DA82
|
|
.pool
|
|
_0804D8CC:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804D8DA
|
|
b _0804DA82
|
|
_0804D8DA:
|
|
ldrb r0, [r5]
|
|
bl sub_803BDA0
|
|
b _0804DA82
|
|
.pool
|
|
_0804D8E8:
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
adds r0, 0x93
|
|
ldrb r1, [r0]
|
|
ldr r6, =gBitTable
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804D922
|
|
ldr r0, =gUnknown_02023864
|
|
lsls r1, r2, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r2, 0
|
|
bl sub_8184FBC
|
|
ldr r2, [r4]
|
|
adds r2, 0x93
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804D922:
|
|
ldr r1, =gUnknown_02024332
|
|
ldr r6, =gUnknown_02023864
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r2, r6, 0x1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldr r1, =gUnknown_0202449C
|
|
mov r12, r1
|
|
ldr r1, [r1]
|
|
adds r1, r0, r1
|
|
adds r1, 0x5C
|
|
lsls r0, 9
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0x42
|
|
bne _0804DA14
|
|
ldrb r0, [r7]
|
|
mov r3, r12
|
|
ldr r2, [r3]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds 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, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
lsls r0, 9
|
|
adds r5, r6, 0x2
|
|
adds 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, r12
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x61
|
|
lsls r1, 9
|
|
adds r6, 0x3
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r7]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds 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, r12
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x60
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
ands r3, r0
|
|
lsrs r3, 4
|
|
ldrb r0, [r1]
|
|
orrs r3, r0
|
|
strb r3, [r1]
|
|
ldrb r0, [r7]
|
|
eors r4, r0
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
adds r1, r0
|
|
adds r1, 0x62
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
b _0804DA36
|
|
.pool
|
|
_0804DA14:
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804DA30
|
|
ldrb r0, [r7]
|
|
mov r3, r12
|
|
ldr r1, [r3]
|
|
adds r1, r0, r1
|
|
adds r1, 0x5C
|
|
ldrb r1, [r1]
|
|
bl sub_80571DC
|
|
b _0804DA36
|
|
_0804DA30:
|
|
ldrb r0, [r7]
|
|
bl sub_803BDA0
|
|
_0804DA36:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r5, 0xFD
|
|
strb r5, [r1]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r3]
|
|
muls r0, r2
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r2, =gUnknown_02022F68
|
|
strb r5, [r2]
|
|
movs r0, 0x7
|
|
strb r0, [r2, 0x1]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
strb r0, [r2, 0x2]
|
|
ldr r1, =gUnknown_02023864
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r2, 0x4]
|
|
_0804DA82:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x3
|
|
str r0, [r1]
|
|
_0804DA8A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk51_cmd51
|
|
|
|
thumb_func_start atk52_cmd52
|
|
atk52_cmd52: @ 804DAAC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024214
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
bl sub_803FA70
|
|
ldr r1, =gUnknown_02024280
|
|
mov r8, r1
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 28
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
ldr r5, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
movs r7, 0x80
|
|
lsls r7, 2
|
|
mov r10, r7
|
|
mov r0, r10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804DB1C
|
|
b _0804DC30
|
|
_0804DB1C:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804DB34
|
|
b _0804DC30
|
|
_0804DB34:
|
|
ldr r7, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r6, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r6
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0804DC30
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0804DC30
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1A
|
|
beq _0804DC30
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r2, [r0]
|
|
mov r1, r10
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r2, r0, 0
|
|
muls r2, r6
|
|
adds r0, r7, 0
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfdffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r2, 0x41
|
|
negs r2, r2
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0xA]
|
|
movs r1, 0x5
|
|
subs r1, r0
|
|
lsls r1, 25
|
|
lsrs r1, 24
|
|
ldr r5, =gBattleMoveDamage
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2C]
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _0804DBC8
|
|
movs r0, 0x1
|
|
str r0, [r5]
|
|
_0804DBC8:
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r1, [r4]
|
|
strb r1, [r0, 0x17]
|
|
bl b_movescr_stack_push_cursor
|
|
mov r7, r9
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0804DC14
|
|
ldr r0, =gUnknown_082DAE90
|
|
str r0, [r7]
|
|
b _0804DD8E
|
|
.pool
|
|
_0804DC14:
|
|
cmp r0, 0x1
|
|
bne _0804DC24
|
|
ldr r0, =gUnknown_082DAE59
|
|
mov r1, r9
|
|
str r0, [r1]
|
|
b _0804DD8E
|
|
.pool
|
|
_0804DC24:
|
|
ldr r0, =gUnknown_082DAEC7
|
|
mov r2, r9
|
|
str r0, [r2]
|
|
b _0804DD8E
|
|
.pool
|
|
_0804DC30:
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
ldr r4, =gUnknown_020242BC
|
|
cmp r0, 0x36
|
|
bne _0804DC5E
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2, 0x18]
|
|
lsls r0, r1, 30
|
|
cmp r0, 0
|
|
blt _0804DC5E
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x18]
|
|
_0804DC5E:
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x18]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x18]
|
|
ldrb r1, [r5]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804DC88
|
|
b _0804DD8E
|
|
_0804DC88:
|
|
ldrb r1, [r5]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl berry_effects_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804DD8E
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
ldr r1, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
ldr r1, =0x0000fdff
|
|
ands r1, r2
|
|
strh r1, [r0]
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r7, [r0]
|
|
cmp r4, r7
|
|
bge _0804DCD8
|
|
ldr r6, =gUnknown_0202407E
|
|
adds r1, r5, 0
|
|
ldr r5, =gUnknown_0202407A
|
|
movs r3, 0xC
|
|
adds r2, r0, 0
|
|
_0804DCC2:
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r1]
|
|
cmp r0, r7
|
|
bne _0804DCD0
|
|
adds r0, r4, r5
|
|
strb r3, [r0]
|
|
_0804DCD0:
|
|
adds r4, 0x1
|
|
ldrb r0, [r2]
|
|
cmp r4, r0
|
|
blt _0804DCC2
|
|
_0804DCD8:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _0804DD0C
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r5, =gBattleMons
|
|
_0804DCE6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, 0xA8
|
|
ldr r1, [r6]
|
|
adds r1, r0
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x28]
|
|
strh r0, [r1]
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0804DCE6
|
|
_0804DD0C:
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, [r0]
|
|
ldrb r1, [r1, 0x1]
|
|
adds r5, r0, 0
|
|
cmp r1, 0x5
|
|
bne _0804DD88
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
lsrs r4, r0, 28
|
|
ldr r1, =gUnknown_0202420D
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r2, =gBitTable
|
|
b _0804DD6E
|
|
.pool
|
|
_0804DD60:
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _0804DD88
|
|
adds r0, r3, 0x1
|
|
strb r0, [r1]
|
|
_0804DD6E:
|
|
ldrb r0, [r1]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r3, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0804DD60
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r0, [r0]
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _0804DD60
|
|
_0804DD88:
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
_0804DD8E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk52_cmd52
|
|
|
|
thumb_func_start sub_804DDA8
|
|
sub_804DDA8: @ 804DDA8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x08_8_8_8
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804DDA8
|
|
|
|
thumb_func_start atk54_802511C
|
|
atk54_802511C: @ 804DDD8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x1]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2B_aa_0
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r4]
|
|
adds r0, 0x3
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk54_802511C
|
|
|
|
thumb_func_start sub_804DE14
|
|
sub_804DE14: @ 804DE14
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x1]
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8034300
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r4]
|
|
adds r0, 0x3
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804DE14
|
|
|
|
thumb_func_start atk56_8025194
|
|
atk56_8025194: @ 804DE50
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x2D_2D_2D_2D
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk56_8025194
|
|
|
|
thumb_func_start atk57_80251C4_flee
|
|
atk57_80251C4_flee: @ 804DE80
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x37_a
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk57_80251C4_flee
|
|
|
|
thumb_func_start atk58_cmd58
|
|
atk58_cmd58: @ 804DEB8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl dp01_build_cmdbuf_x06_a
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk58_cmd58
|
|
|
|
thumb_func_start atk59_8025230
|
|
atk59_8025230: @ 804DEEC
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r2, [r0]
|
|
ldrb r6, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r6, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r6, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r6, r0
|
|
ldrb r4, [r2, 0x5]
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x9]
|
|
bl sub_8069318
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, =0x0000fffe
|
|
cmp r5, r0
|
|
bne _0804DF56
|
|
adds r7, r5, 0
|
|
_0804DF3A:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl sub_8069318
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, r7
|
|
beq _0804DF3A
|
|
_0804DF56:
|
|
cmp r5, 0
|
|
bne _0804DF70
|
|
ldr r0, =gUnknown_02024214
|
|
str r4, [r0]
|
|
b _0804E018
|
|
.pool
|
|
_0804DF70:
|
|
ldr r0, =0x0000ffff
|
|
cmp r5, r0
|
|
bne _0804DF88
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0xA
|
|
str r0, [r1]
|
|
b _0804E018
|
|
.pool
|
|
_0804DF88:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 1
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, 0x10]
|
|
cmp r0, r1
|
|
bne _0804DFC8
|
|
ldr r4, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804DFC8
|
|
adds r0, r2, r4
|
|
adds r1, r5, 0
|
|
bl sub_80691B0
|
|
_0804DFC8:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E014
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 1
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, 0x10]
|
|
cmp r0, r1
|
|
bne _0804E014
|
|
ldr r4, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E014
|
|
adds r0, r2, r4
|
|
adds r1, r5, 0
|
|
bl sub_80691B0
|
|
_0804E014:
|
|
ldr r0, =gUnknown_02024214
|
|
str r6, [r0]
|
|
_0804E018:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk59_8025230
|
|
|
|
thumb_func_start sub_804E038
|
|
sub_804E038: @ 804E038
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024064
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r1, [r0, 0x1F]
|
|
adds r2, r0, 0
|
|
cmp r1, 0x6
|
|
bls _0804E052
|
|
b _0804E3B8
|
|
_0804E052:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_0804E068
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804E068:
|
|
.4byte _0804E084
|
|
.4byte _0804E0BC
|
|
.4byte _0804E162
|
|
.4byte _0804E1B8
|
|
.4byte _0804E1E4
|
|
.4byte _0804E38C
|
|
.4byte _0804E3AC
|
|
_0804E084:
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1F]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1F]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x1]
|
|
movs r0, 0
|
|
bl sub_8056B74
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E0BC:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E0E4
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _0804E0E4
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_0804E0E4:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E10C
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0804E10C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_0804E10C:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E150
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r4, [r0, 0x1]
|
|
cmp r4, 0
|
|
bne _0804E20A
|
|
str r5, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0804E192
|
|
.pool
|
|
_0804E150:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E15A
|
|
b _0804E3B8
|
|
_0804E15A:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
b _0804E20A
|
|
_0804E162:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E170
|
|
b _0804E3B8
|
|
_0804E170:
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gPlayerParty
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x10]
|
|
ldr r2, =gUnknown_020244E9
|
|
ldrb r2, [r2]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =sub_80A92F8
|
|
ldr r4, =gUnknown_020244E2
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
bl sub_81BFA38
|
|
_0804E192:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1F]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1F]
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E1B8:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E1C6
|
|
b _0804E3B8
|
|
_0804E1C6:
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
beq _0804E1D2
|
|
b _0804E3B8
|
|
_0804E1D2:
|
|
ldrb r0, [r2, 0x1F]
|
|
adds r0, 0x1
|
|
b _0804E3B6
|
|
.pool
|
|
_0804E1E4:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E1F2
|
|
b _0804E3B8
|
|
_0804E1F2:
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
beq _0804E1FE
|
|
b _0804E3B8
|
|
_0804E1FE:
|
|
bl sub_81C1B94
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bne _0804E224
|
|
_0804E20A:
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1F]
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E224:
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r7, =gPlayerParty
|
|
adds r0, r7
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_806E804
|
|
cmp r0, 0
|
|
beq _0804E274
|
|
ldr r0, =0x0000013f
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
bl b_std_message
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1F]
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E274:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
ldr r1, =gUnknown_02022F68
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
strb r4, [r1, 0x2]
|
|
lsrs r0, r4, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
adds r1, r5, 0
|
|
bl sub_806B9A8
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r7
|
|
ldr r7, =gUnknown_020244E2
|
|
ldrh r1, [r7]
|
|
adds r2, r5, 0
|
|
bl sub_80691F4
|
|
ldr r0, =gUnknown_0202406E
|
|
ldr r1, [r6]
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r1, 0x10]
|
|
cmp r0, r1
|
|
bne _0804E30A
|
|
ldr r4, =gBattleMons
|
|
ldr r0, [r4, 0x50]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E30A
|
|
ldr r0, =gUnknown_020242BC
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804E30A
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806B9E4
|
|
ldrh r1, [r7]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8069234
|
|
_0804E30A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E3B8
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
ldrh r0, [r2, 0x4]
|
|
ldrb r1, [r1, 0x10]
|
|
cmp r0, r1
|
|
bne _0804E3B8
|
|
ldr r4, =gBattleMons
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E3B8
|
|
ldr r0, =gUnknown_020242BC
|
|
adds r0, 0x50
|
|
ldrb r1, [r0]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0804E3B8
|
|
adds r4, 0xB0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806B9E4
|
|
ldr r0, =gUnknown_020244E2
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8069234
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E38C:
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0804E3B8
|
|
.pool
|
|
_0804E3AC:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804E3B8
|
|
movs r0, 0x2
|
|
_0804E3B6:
|
|
strb r0, [r2, 0x1F]
|
|
_0804E3B8:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804E038
|
|
|
|
thumb_func_start atk5B_80256E0
|
|
atk5B_80256E0: @ 804E3C8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gUnknown_02024474
|
|
ldrb r4, [r5, 0x1F]
|
|
cmp r4, 0
|
|
beq _0804E3E0
|
|
cmp r4, 0x1
|
|
beq _0804E410
|
|
b _0804E4FA
|
|
.pool
|
|
_0804E3E0:
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldrb r0, [r5, 0x1F]
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x1F]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x1]
|
|
movs r0, 0
|
|
bl sub_8056B74
|
|
b _0804E4FA
|
|
.pool
|
|
_0804E410:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E438
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _0804E438
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_0804E438:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E460
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0804E460
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_0804E460:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E4C4
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _0804E4A4
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804E4AC
|
|
.pool
|
|
_0804E4A4:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0804E4AC:
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
b _0804E4FA
|
|
.pool
|
|
_0804E4C4:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E4FA
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
_0804E4FA:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk5B_80256E0
|
|
|
|
thumb_func_start atk5C_cmd5c
|
|
atk5C_cmd5c: @ 804E508
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r2, =gUnknown_02024064
|
|
strb r0, [r2]
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E58C
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E55A
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E55A
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0
|
|
bne _0804E58C
|
|
_0804E55A:
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x29_29_29_29
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
b _0804E592
|
|
.pool
|
|
_0804E58C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x2
|
|
str r0, [r4]
|
|
_0804E592:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk5C_cmd5c
|
|
|
|
thumb_func_start sub_804E598
|
|
sub_804E598: @ 804E598
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r7, 0
|
|
movs r5, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r6, r0
|
|
bne _0804E5D8
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
ldrb r2, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4A
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
muls r0, r2
|
|
b _0804E6CA
|
|
.pool
|
|
_0804E5D8:
|
|
ldr r0, =gTrainers
|
|
lsls r2, r6, 2
|
|
adds r1, r2, r6
|
|
lsls r1, 3
|
|
adds r4, r1, r0
|
|
ldrb r3, [r4]
|
|
mov r12, r0
|
|
cmp r3, 0x1
|
|
beq _0804E62E
|
|
cmp r3, 0x1
|
|
bgt _0804E5F8
|
|
cmp r3, 0
|
|
beq _0804E602
|
|
b _0804E644
|
|
.pool
|
|
_0804E5F8:
|
|
cmp r3, 0x2
|
|
beq _0804E618
|
|
cmp r3, 0x3
|
|
beq _0804E62E
|
|
b _0804E644
|
|
_0804E602:
|
|
mov r0, r12
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
subs r0, 0x8
|
|
b _0804E642
|
|
_0804E618:
|
|
mov r0, r12
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
subs r0, 0x8
|
|
b _0804E642
|
|
_0804E62E:
|
|
mov r0, r12
|
|
adds r0, 0x24
|
|
adds r0, r1, r0
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
subs r0, 0x10
|
|
_0804E642:
|
|
ldrb r5, [r0, 0x2]
|
|
_0804E644:
|
|
ldr r1, =gUnknown_0831AEB8
|
|
lsls r0, r7, 2
|
|
adds r4, r0, r1
|
|
ldrb r3, [r4]
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
mov r9, r1
|
|
ldr r1, =gBattleTypeFlags
|
|
mov r10, r1
|
|
cmp r3, 0xFF
|
|
beq _0804E67A
|
|
adds r0, r2, r6
|
|
lsls r0, 3
|
|
add r0, r12
|
|
ldrb r1, [r0, 0x1]
|
|
cmp r3, r1
|
|
beq _0804E67A
|
|
adds r2, r0, 0
|
|
adds r0, r4, 0
|
|
_0804E66A:
|
|
adds r0, 0x4
|
|
adds r7, 0x1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0xFF
|
|
beq _0804E67A
|
|
ldrb r3, [r2, 0x1]
|
|
cmp r1, r3
|
|
bne _0804E66A
|
|
_0804E67A:
|
|
mov r0, r10
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804E6B4
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804E6B4
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
adds r0, 0x4A
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
lsls r0, r7, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 1
|
|
b _0804E6C8
|
|
.pool
|
|
_0804E6B4:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x4A
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
lsls r0, r7, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x1]
|
|
_0804E6C8:
|
|
muls r0, r1
|
|
_0804E6CA:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804E598
|
|
|
|
thumb_func_start sub_804E6D8
|
|
sub_804E6D8: @ 804E6D8
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r0, [r0]
|
|
bl sub_804E598
|
|
adds r4, r0, 0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804E6FC
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r0, [r0]
|
|
bl sub_804E598
|
|
adds r4, r0
|
|
_0804E6FC:
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl add_money
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x3]
|
|
strb r4, [r1, 0x4]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r4
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r4
|
|
lsrs r0, 16
|
|
strb r0, [r1, 0x6]
|
|
lsrs r0, r4, 24
|
|
strb r0, [r1, 0x7]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x8]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804E6D8
|
|
|
|
thumb_func_start atk5E_8025A70
|
|
atk5E_8025A70: @ 804E764
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r6, =gUnknown_02024064
|
|
strb r0, [r6]
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r0, [r5]
|
|
mov r8, r4
|
|
cmp r0, 0
|
|
beq _0804E794
|
|
cmp r0, 0x1
|
|
beq _0804E7AC
|
|
b _0804E800
|
|
.pool
|
|
_0804E794:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x00_a_b_0
|
|
ldrb r0, [r6]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _0804E800
|
|
_0804E7AC:
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804E800
|
|
ldrb r0, [r6]
|
|
lsls r0, 9
|
|
ldr r1, =gUnknown_02023868
|
|
adds r0, r1
|
|
mov r12, r0
|
|
movs r2, 0
|
|
adds r4, r6, 0
|
|
movs r5, 0x58
|
|
ldr r6, =gUnknown_020240A8
|
|
adds r7, r6, 0
|
|
subs r7, 0x18
|
|
mov r3, r12
|
|
adds r3, 0xC
|
|
_0804E7CE:
|
|
lsls r1, r2, 1
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r1, r0
|
|
adds r1, r7
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r2, r1
|
|
adds r1, r6
|
|
mov r0, r12
|
|
adds r0, 0x24
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _0804E7CE
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_0804E800:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk5E_8025A70
|
|
|
|
thumb_func_start atk5F_8025B24
|
|
atk5F_8025B24: @ 804E818
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r3, [r2]
|
|
strb r3, [r0]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
strb r3, [r1]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0804E854
|
|
ldr r0, =0xffffefff
|
|
ands r1, r0
|
|
b _0804E856
|
|
.pool
|
|
_0804E854:
|
|
orrs r1, r3
|
|
_0804E856:
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk5F_8025B24
|
|
|
|
thumb_func_start atk60_cmd60
|
|
atk60_cmd60: @ 804E868
|
|
push {lr}
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804E882
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl sav12_xor_increment
|
|
_0804E882:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk60_cmd60
|
|
|
|
thumb_func_start atk61_8025BA4
|
|
atk61_8025BA4: @ 804E898
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x30
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804E94C
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _0804E8CA
|
|
ldr r0, =gPlayerParty
|
|
mov r8, r0
|
|
_0804E8CA:
|
|
movs r7, 0
|
|
add r6, sp, 0x4
|
|
mov r5, sp
|
|
_0804E8D0:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
mov r1, r8
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0804E8F4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0804E914
|
|
_0804E8F4:
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
b _0804E926
|
|
.pool
|
|
_0804E914:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
_0804E926:
|
|
str r0, [r6]
|
|
adds r6, 0x8
|
|
adds r5, 0x8
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _0804E8D0
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl dp01_build_cmdbuf_x30_TODO
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_0804E94C:
|
|
add sp, 0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk61_8025BA4
|
|
|
|
thumb_func_start atk62_08025C6C
|
|
atk62_08025C6C: @ 804E960
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x31_31_31_31
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk62_08025C6C
|
|
|
|
thumb_func_start atk63_jumptoattack
|
|
atk63_jumptoattack: @ 804E990
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r1, [r0]
|
|
ldrb r1, [r1, 0x1]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
beq _0804E9B4
|
|
ldr r0, =gUnknown_020241EA
|
|
ldr r1, =gUnknown_020241EE
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _0804E9C2
|
|
.pool
|
|
_0804E9B4:
|
|
ldr r2, =gUnknown_020241EC
|
|
ldr r1, =gUnknown_020241EA
|
|
ldr r0, =gUnknown_020241EE
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r0, r1, 0
|
|
_0804E9C2:
|
|
ldr r3, =gUnknown_082D86A8
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk63_jumptoattack
|
|
|
|
thumb_func_start atk64_statusanimation
|
|
atk64_statusanimation: @ 804E9F4
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804EA5C
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EA54
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0
|
|
bne _0804EA54
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EA54
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x1B_aaaa_b
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804EA54:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_0804EA5C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk64_statusanimation
|
|
|
|
thumb_func_start atk65_8025D90
|
|
atk65_8025D90: @ 804EA84
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804EB04
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r1, [r4]
|
|
ldrb r3, [r1, 0x2]
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 16
|
|
orrs r3, r0
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EAFC
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0
|
|
bne _0804EAFC
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EAFC
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ands r2, r3
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl dp01_build_cmdbuf_x1B_aaaa_b
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804EAFC:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x6
|
|
str r0, [r1]
|
|
_0804EB04:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk65_8025D90
|
|
|
|
thumb_func_start atk66_8025E38
|
|
atk66_8025E38: @ 804EB2C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804EB9E
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r4, [r4]
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x4]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r4, 0x5]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
ldrb r0, [r4, 0x6]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
ldr r1, =gUnknown_020242AC
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x000400c0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EB96
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r3, 3
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0
|
|
bne _0804EB96
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804EB96
|
|
ldrb r1, [r4, 0x2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x1B_aaaa_b
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804EB96:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x7
|
|
str r0, [r1]
|
|
_0804EB9E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk66_8025E38
|
|
|
|
thumb_func_start atk67_8025ECC
|
|
atk67_8025ECC: @ 804EBC0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gUnknown_02024332
|
|
ldrb r4, [r5]
|
|
cmp r4, 0
|
|
beq _0804EBD8
|
|
cmp r4, 0x1
|
|
beq _0804EC04
|
|
b _0804EC96
|
|
.pool
|
|
_0804EBD8:
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
strb r4, [r5, 0x1]
|
|
movs r0, 0
|
|
bl sub_8056B74
|
|
b _0804EC96
|
|
.pool
|
|
_0804EC04:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804EC2A
|
|
ldrb r0, [r5, 0x1]
|
|
cmp r0, 0
|
|
beq _0804EC2A
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r5, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
strb r0, [r5, 0x1]
|
|
bl sub_8056B74
|
|
_0804EC2A:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804EC52
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0804EC52
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_0804EC52:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804EC70
|
|
ldr r0, =gUnknown_02024332
|
|
movs r4, 0x1
|
|
strb r4, [r0, 0x1]
|
|
b _0804EC7A
|
|
.pool
|
|
_0804EC70:
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804EC96
|
|
_0804EC7A:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_0804EC96:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk67_8025ECC
|
|
|
|
thumb_func_start sub_804ECA4
|
|
sub_804ECA4: @ 804ECA4
|
|
push {r4,r5,lr}
|
|
movs r1, 0
|
|
ldr r2, =gUnknown_0202406C
|
|
ldr r5, =gUnknown_02024214
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bge _0804ECC2
|
|
ldr r4, =gUnknown_0202407A
|
|
movs r3, 0xC
|
|
_0804ECB6:
|
|
adds r0, r1, r4
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
blt _0804ECB6
|
|
_0804ECC2:
|
|
ldr r0, [r5]
|
|
adds r0, 0x1
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804ECA4
|
|
|
|
thumb_func_start atk69_8025FE0
|
|
atk69_8025FE0: @ 804ECDC
|
|
push {r4-r7,lr}
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r5, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _0804ED10
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x7]
|
|
ldrb r6, [r0, 0x1A]
|
|
b _0804ED2A
|
|
.pool
|
|
_0804ED10:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0804ED2A:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, 0x27
|
|
bne _0804ED68
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bcs _0804ED68
|
|
ldrb r0, [r5]
|
|
movs r1, 0x27
|
|
bl b_history__record_item_x12_of_player
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0804ED68:
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r1, r0
|
|
adds r5, r2, 0
|
|
cmp r1, 0
|
|
bne _0804EE38
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x65
|
|
beq _0804EDBA
|
|
ldr r0, =gUnknown_0202433C
|
|
lsls r1, r4, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
blt _0804EDBA
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0804EE38
|
|
_0804EDBA:
|
|
ldrb r0, [r3]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x28]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bgt _0804EE38
|
|
subs r0, r1, 0x1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
bge _0804EE10
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0804EE38
|
|
.pool
|
|
_0804EE10:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0804EE38
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024208
|
|
adds r0, r3, 0
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
_0804EE38:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk69_8025FE0
|
|
|
|
thumb_func_start atk6A_stash_item_for_side
|
|
atk6A_stash_item_for_side: @ 804EE58
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r6, =gUnknown_02024214
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r5, =gUnknown_02024064
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldrb r4, [r5]
|
|
lsls r0, r4, 1
|
|
adds r0, 0xB8
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
ldr r2, =gBattleMons
|
|
movs r3, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
muls r0, r3
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r5]
|
|
muls r0, r3
|
|
adds r2, 0x2E
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r6]
|
|
adds r0, 0x2
|
|
str r0, [r6]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk6A_stash_item_for_side
|
|
|
|
thumb_func_start atk6B_end_battle_80261CC
|
|
atk6B_end_battle_80261CC: @ 804EEC8
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x2]
|
|
ldr r3, =gUnknown_0202406E
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk6B_end_battle_80261CC
|
|
|
|
thumb_func_start atk6C_8026208
|
|
atk6C_8026208: @ 804EF04
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r1, [r0, 0x1E]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
bne _0804EF28
|
|
bl sub_804F498
|
|
cmp r0, 0
|
|
beq _0804EF24
|
|
movs r0, 0x3
|
|
b _0804EF26
|
|
.pool
|
|
_0804EF24:
|
|
movs r0, 0x1
|
|
_0804EF26:
|
|
strb r0, [r4, 0x1E]
|
|
_0804EF28:
|
|
ldrb r0, [r4, 0x1E]
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bls _0804EF32
|
|
b _0804F0F2
|
|
_0804EF32:
|
|
lsls r0, 2
|
|
ldr r1, =_0804EF40
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804EF40:
|
|
.4byte _0804EF68
|
|
.4byte _0804EF94
|
|
.4byte _0804EFAC
|
|
.4byte _0804F000
|
|
.4byte _0804F014
|
|
.4byte _0804F02C
|
|
.4byte _0804F014
|
|
.4byte _0804F04C
|
|
.4byte _0804F07C
|
|
.4byte _0804F0C0
|
|
_0804EF68:
|
|
ldr r1, =gUnknown_02022E1E
|
|
movs r0, 0x60
|
|
strh r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x7
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
bl sub_804F17C
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1E]
|
|
b _0804F0F2
|
|
.pool
|
|
_0804EF94:
|
|
bl sub_804F1CC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804EFA0
|
|
b _0804F0F2
|
|
_0804EFA0:
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1E]
|
|
b _0804F0F2
|
|
.pool
|
|
_0804EFAC:
|
|
ldr r1, =gUnknown_02022E18
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022E1A
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x7
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0x7
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x80
|
|
str r0, [sp]
|
|
movs r0, 0x12
|
|
movs r1, 0x7
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl sub_8056A3C
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1E]
|
|
b _0804F0F2
|
|
.pool
|
|
_0804F000:
|
|
bl sub_804F100
|
|
movs r0, 0xD
|
|
bl PutWindowTilemap
|
|
movs r0, 0xD
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _0804F06A
|
|
_0804F014:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0804F0F2
|
|
ldr r0, =gUnknown_02022E1A
|
|
strh r1, [r0]
|
|
b _0804F06A
|
|
.pool
|
|
_0804F02C:
|
|
ldr r0, =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0
|
|
beq _0804F0F2
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl sub_804F144
|
|
movs r0, 0xD
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _0804F06A
|
|
.pool
|
|
_0804F04C:
|
|
ldr r0, =gMain
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0
|
|
beq _0804F0F2
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x81
|
|
str r0, [sp]
|
|
movs r0, 0x12
|
|
movs r1, 0x7
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl sub_8056A3C
|
|
_0804F06A:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1E]
|
|
b _0804F0F2
|
|
.pool
|
|
_0804F07C:
|
|
bl sub_804F344
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804F0F2
|
|
movs r0, 0xE
|
|
bl ClearWindowTilemap
|
|
movs r0, 0xE
|
|
movs r1, 0x1
|
|
bl CopyWindowToVram
|
|
movs r0, 0xD
|
|
bl ClearWindowTilemap
|
|
movs r0, 0xD
|
|
movs r1, 0x1
|
|
bl CopyWindowToVram
|
|
movs r0, 0x2
|
|
movs r1, 0x7
|
|
movs r2, 0x2
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0xA
|
|
strb r0, [r1, 0x1E]
|
|
b _0804F0F2
|
|
.pool
|
|
_0804F0C0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804F0F2
|
|
movs r0, 0
|
|
movs r1, 0x7
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0x7
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_0804F0F2:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk6C_8026208
|
|
|
|
thumb_func_start sub_804F100
|
|
sub_804F100: @ 804F100
|
|
push {lr}
|
|
sub sp, 0x14
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
add r1, sp, 0x8
|
|
bl sub_81D388C
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x10]
|
|
movs r0, 0xD
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xD
|
|
add r2, sp, 0x8
|
|
movs r3, 0xE
|
|
bl sub_81D3640
|
|
add sp, 0x14
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F100
|
|
|
|
thumb_func_start sub_804F144
|
|
sub_804F144: @ 804F144
|
|
push {lr}
|
|
sub sp, 0x10
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x10]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
add r1, sp, 0x4
|
|
bl sub_81D388C
|
|
movs r0, 0xF
|
|
str r0, [sp]
|
|
movs r0, 0xD
|
|
add r1, sp, 0x4
|
|
movs r2, 0xE
|
|
movs r3, 0xD
|
|
bl sub_81D3784
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F144
|
|
|
|
thumb_func_start sub_804F17C
|
|
sub_804F17C: @ 804F17C
|
|
push {lr}
|
|
ldr r1, =gUnknown_02022E1E
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022E1C
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_0831C2C8
|
|
movs r1, 0x60
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, =gUnknown_0831C2E8
|
|
movs r0, 0xE
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToWindowPixelBuffer
|
|
movs r0, 0xE
|
|
bl PutWindowTilemap
|
|
movs r0, 0xE
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
bl sub_804F384
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F17C
|
|
|
|
thumb_func_start sub_804F1CC
|
|
sub_804F1CC: @ 804F1CC
|
|
push {r4,r5,lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804F1DC
|
|
movs r0, 0x1
|
|
b _0804F216
|
|
_0804F1DC:
|
|
ldr r4, =gUnknown_02022E1C
|
|
ldrh r1, [r4]
|
|
movs r5, 0x80
|
|
lsls r5, 2
|
|
cmp r1, r5
|
|
bne _0804F1F0
|
|
movs r0, 0
|
|
b _0804F216
|
|
.pool
|
|
_0804F1F0:
|
|
movs r0, 0xD0
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0804F1FC
|
|
bl sub_804F220
|
|
_0804F1FC:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x8
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
ldr r1, =0x01ff0000
|
|
cmp r0, r1
|
|
bls _0804F20C
|
|
strh r5, [r4]
|
|
_0804F20C:
|
|
ldrh r1, [r4]
|
|
eors r1, r5
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_0804F216:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_804F1CC
|
|
|
|
thumb_func_start sub_804F220
|
|
sub_804F220: @ 804F220
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
bl pokemon_get_gender
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
ldr r5, =gStringVar4
|
|
adds r1, r5, 0
|
|
bl GetMonNickname
|
|
str r5, [sp]
|
|
mov r2, sp
|
|
movs r1, 0
|
|
movs r0, 0xE
|
|
strb r0, [r2, 0x4]
|
|
mov r0, sp
|
|
strb r1, [r0, 0x5]
|
|
movs r4, 0x20
|
|
strb r4, [r0, 0x6]
|
|
strb r1, [r0, 0x7]
|
|
strb r4, [r0, 0x8]
|
|
strb r1, [r0, 0x9]
|
|
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, 0x1
|
|
movs r0, 0x5
|
|
strb r0, [r5]
|
|
adds r5, 0x1
|
|
adds r4, r5, 0
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r5, r0, 0
|
|
subs r4, r5, r4
|
|
movs r2, 0x4
|
|
subs r2, r4
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r1, 0x77
|
|
bl StringFill
|
|
adds r5, r0, 0
|
|
cmp r7, 0xFF
|
|
beq _0804F320
|
|
cmp r7, 0
|
|
bne _0804F300
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0xD
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, 0
|
|
movs r0, 0xB5
|
|
b _0804F318
|
|
.pool
|
|
_0804F300:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0xE
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
bl WriteColorChangeControlCode
|
|
adds r5, r0, 0
|
|
movs r0, 0xB6
|
|
_0804F318:
|
|
strb r0, [r5]
|
|
adds r5, 0x1
|
|
movs r0, 0xFF
|
|
strb r0, [r5]
|
|
_0804F320:
|
|
mov r0, sp
|
|
movs r1, 0xA
|
|
strb r1, [r0, 0x7]
|
|
strb r1, [r0, 0x9]
|
|
movs r1, 0xFF
|
|
movs r2, 0
|
|
bl AddTextPrinter
|
|
movs r0, 0xE
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_804F220
|
|
|
|
thumb_func_start sub_804F344
|
|
sub_804F344: @ 804F344
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022E1C
|
|
ldrh r1, [r0]
|
|
movs r3, 0xD0
|
|
lsls r3, 1
|
|
adds r2, r0, 0
|
|
cmp r1, r3
|
|
bne _0804F35C
|
|
movs r0, 0
|
|
b _0804F380
|
|
.pool
|
|
_0804F35C:
|
|
ldrh r0, [r2]
|
|
adds r1, r0, 0
|
|
subs r1, 0x10
|
|
ldr r0, =0x0000019f
|
|
cmp r1, r0
|
|
bgt _0804F370
|
|
strh r3, [r2]
|
|
b _0804F372
|
|
.pool
|
|
_0804F370:
|
|
strh r1, [r2]
|
|
_0804F372:
|
|
ldrh r1, [r2]
|
|
movs r0, 0xD0
|
|
lsls r0, 1
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_0804F380:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804F344
|
|
|
|
thumb_func_start sub_804F384
|
|
sub_804F384: @ 804F384
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x10
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x10]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x10]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80D2EDC
|
|
str r0, [sp]
|
|
ldr r5, =0xffff0000
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r5
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
orrs r0, r1
|
|
ldr r1, =0x0000ffff
|
|
ands r0, r1
|
|
ldr r1, =0xd75a0000
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_80D30B0
|
|
str r0, [sp, 0x8]
|
|
add r4, sp, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
ands r0, r5
|
|
ldr r1, =0x0000d75a
|
|
orrs r0, r1
|
|
str r0, [r4, 0x4]
|
|
mov r0, sp
|
|
bl LoadObjectPic
|
|
adds r0, r4, 0
|
|
bl LoadTaggedObjectPalette
|
|
ldr r0, =gUnknown_0831C3C0
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
ldr r0, =gUnknown_02022E1C
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x30]
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F384
|
|
|
|
thumb_func_start sub_804F450
|
|
sub_804F450: @ 804F450
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gUnknown_02022E1C
|
|
ldrh r1, [r2, 0x30]
|
|
ldrh r0, [r0]
|
|
subs r1, r0
|
|
strh r1, [r2, 0x24]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
beq _0804F470
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _0804F48C
|
|
.pool
|
|
_0804F470:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _0804F48C
|
|
adds r0, r2, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r4, =0x0000d75a
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
_0804F48C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F450
|
|
|
|
thumb_func_start sub_804F498
|
|
sub_804F498: @ 804F498
|
|
push {lr}
|
|
ldr r3, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
ldrh r1, [r3]
|
|
ldrb r2, [r0, 0x10]
|
|
cmp r1, r2
|
|
beq _0804F4BA
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804F4CC
|
|
ldrh r0, [r3, 0x4]
|
|
cmp r0, r2
|
|
bne _0804F4CC
|
|
_0804F4BA:
|
|
movs r0, 0x1
|
|
b _0804F4CE
|
|
.pool
|
|
_0804F4CC:
|
|
movs r0, 0
|
|
_0804F4CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804F498
|
|
|
|
thumb_func_start sub_804F4D4
|
|
sub_804F4D4: @ 804F4D4
|
|
push {lr}
|
|
bl sub_803F988
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F4D4
|
|
|
|
thumb_func_start atk6E_state0_side_becomes_attacker
|
|
atk6E_state0_side_becomes_attacker: @ 804F4EC
|
|
push {lr}
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_0202420B
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk6E_state0_side_becomes_attacker
|
|
|
|
thumb_func_start atk6F_8026810
|
|
atk6F_8026810: @ 804F50C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x33_a_33_33
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk6F_8026810
|
|
|
|
thumb_func_start atk70_record_ability_usage_of_side
|
|
atk70_record_ability_usage_of_side: @ 804F540
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk70_record_ability_usage_of_side
|
|
|
|
thumb_func_start sub_804F574
|
|
sub_804F574: @ 804F574
|
|
ldr r2, =gUnknown_02022F68
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x1]
|
|
ldr r0, =gUnknown_020244E2
|
|
ldrh r1, [r0]
|
|
strb r1, [r2, 0x2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r2, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_804F574
|
|
|
|
thumb_func_start atk71_80268A0
|
|
atk71_80268A0: @ 804F59C
|
|
push {lr}
|
|
bl sub_804F574
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk71_80268A0
|
|
|
|
thumb_func_start atk72_flee
|
|
atk72_flee: @ 804F5B4
|
|
push {lr}
|
|
ldr r0, =gUnknown_0202420D
|
|
ldrb r0, [r0]
|
|
bl sub_803EC20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0804F5E8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0804F5F0
|
|
.pool
|
|
_0804F5E8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0804F5F0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk72_flee
|
|
|
|
thumb_func_start atk73_cmd73
|
|
atk73_cmd73: @ 804F5F8
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r4, [r0]
|
|
movs r6, 0x1
|
|
ands r4, r6
|
|
cmp r4, 0
|
|
bne _0804F68E
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
ldrh r5, [r1, 0x28]
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldrh r1, [r1, 0x2C]
|
|
bl __divsi3
|
|
cmp r0, 0
|
|
bne _0804F636
|
|
movs r0, 0x1
|
|
_0804F636:
|
|
cmp r0, 0x45
|
|
bgt _0804F63E
|
|
cmp r5, 0
|
|
bne _0804F65C
|
|
_0804F63E:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xB1
|
|
strb r4, [r0]
|
|
b _0804F68E
|
|
.pool
|
|
_0804F65C:
|
|
cmp r0, 0x27
|
|
ble _0804F670
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xB1
|
|
strb r6, [r0]
|
|
b _0804F68E
|
|
.pool
|
|
_0804F670:
|
|
cmp r0, 0x9
|
|
ble _0804F684
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xB1
|
|
movs r1, 0x2
|
|
b _0804F68C
|
|
.pool
|
|
_0804F684:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xB1
|
|
movs r1, 0x3
|
|
_0804F68C:
|
|
strb r1, [r0]
|
|
_0804F68E:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk73_cmd73
|
|
|
|
thumb_func_start atk74_hp_tresholds_2
|
|
atk74_hp_tresholds_2: @ 804F6A4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r7, [r0]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ands r7, r0
|
|
cmp r7, 0
|
|
bne _0804F73E
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_02024064
|
|
strb r4, [r0]
|
|
movs r0, 0x1
|
|
eors r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r6, [r1]
|
|
lsrs r0, 23
|
|
adds r0, r6
|
|
adds r0, 0xA8
|
|
ldrb r5, [r0]
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x28]
|
|
subs r1, r5, r4
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
cmp r4, r5
|
|
bcc _0804F71C
|
|
adds r0, r6, 0
|
|
adds r0, 0xB1
|
|
strb r7, [r0]
|
|
b _0804F73E
|
|
.pool
|
|
_0804F71C:
|
|
cmp r0, 0x1D
|
|
bgt _0804F72A
|
|
adds r0, r6, 0
|
|
adds r0, 0xB1
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
b _0804F73E
|
|
_0804F72A:
|
|
cmp r1, 0x45
|
|
bgt _0804F736
|
|
adds r1, r6, 0
|
|
adds r1, 0xB1
|
|
movs r0, 0x2
|
|
b _0804F73C
|
|
_0804F736:
|
|
adds r1, r6, 0
|
|
adds r1, 0xB1
|
|
movs r0, 0x3
|
|
_0804F73C:
|
|
strb r0, [r1]
|
|
_0804F73E:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk74_hp_tresholds_2
|
|
|
|
thumb_func_start atk75_8026A58
|
|
atk75_8026A58: @ 804F754
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r2, =gUnknown_020244B8
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024208
|
|
ldrh r1, [r1]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
movs r3, 0
|
|
bl ExecuteTableBasedItemEffect
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk75_8026A58
|
|
|
|
thumb_func_start sub_804F7AC
|
|
sub_804F7AC: @ 804F7AC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x1A
|
|
bls _0804F7CA
|
|
b _0804FD70
|
|
_0804F7CA:
|
|
lsls r0, 2
|
|
ldr r1, =_0804F7E0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0804F7E0:
|
|
.4byte _0804F84C
|
|
.4byte _0804F85C
|
|
.4byte _0804F8BC
|
|
.4byte _0804F8CC
|
|
.4byte _0804F8E4
|
|
.4byte _0804F920
|
|
.4byte _0804F958
|
|
.4byte _0804F9E0
|
|
.4byte _0804FA20
|
|
.4byte _0804FACC
|
|
.4byte _0804FAE8
|
|
.4byte _0804FB3C
|
|
.4byte _0804FB94
|
|
.4byte _0804FC18
|
|
.4byte _0804FC2C
|
|
.4byte _0804FC32
|
|
.4byte _0804FC38
|
|
.4byte _0804FC60
|
|
.4byte _0804FC6A
|
|
.4byte _0804FC78
|
|
.4byte _0804FC8C
|
|
.4byte _0804FCC4
|
|
.4byte _0804FCD8
|
|
.4byte _0804FCF0
|
|
.4byte _0804FD1C
|
|
.4byte _0804FD30
|
|
.4byte _0804FD5C
|
|
_0804F84C:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
b _0804FD70
|
|
.pool
|
|
_0804F85C:
|
|
ldr r1, =gUnknown_0202420B
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
ldrb r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
beq _0804F8A8
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r2, 0x9]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0804F8A8
|
|
strb r2, [r4]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F8A8:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F8BC:
|
|
bl sub_803BB88
|
|
ldr r1, =gUnknown_02024332
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F8CC:
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F8E4:
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r0, 28
|
|
ldr r2, [r2]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0804F914
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F914:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F920:
|
|
ldr r4, =gUnknown_0202437C
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F958:
|
|
ldr r4, =gUnknown_0202406E
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r0, [r1]
|
|
ldrh r3, [r4]
|
|
ldrb r2, [r0, 0x10]
|
|
adds r6, r1, 0
|
|
cmp r3, r2
|
|
beq _0804F974
|
|
ldrh r0, [r4, 0x4]
|
|
cmp r0, r2
|
|
beq _0804F970
|
|
b _0804FD70
|
|
_0804F970:
|
|
cmp r3, r0
|
|
bne _0804F988
|
|
_0804F974:
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0
|
|
b _0804F98C
|
|
.pool
|
|
_0804F988:
|
|
ldr r1, =gUnknown_02024064
|
|
movs r0, 0x2
|
|
_0804F98C:
|
|
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, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4]
|
|
cmp r0, r2
|
|
beq _0804F9CC
|
|
adds r6, r5, 0
|
|
movs r5, 0x58
|
|
adds r2, r1, 0
|
|
_0804F9B4:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _0804F9CC
|
|
lsls r1, r3, 1
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
ldrh r1, [r4]
|
|
cmp r0, r1
|
|
bne _0804F9B4
|
|
_0804F9CC:
|
|
cmp r3, 0x4
|
|
beq _0804F9D2
|
|
b _0804FD70
|
|
_0804F9D2:
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
b _0804FD70
|
|
.pool
|
|
_0804F9E0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0xB
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
beq _0804F9EE
|
|
b _0804FD70
|
|
_0804F9EE:
|
|
ldr r1, =gBattleMons
|
|
ldrh r0, [r1, 0x28]
|
|
cmp r0, 0
|
|
bne _0804F9F8
|
|
b _0804FD70
|
|
_0804F9F8:
|
|
adds r0, r1, 0
|
|
adds r0, 0x80
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0804FA04
|
|
b _0804FD70
|
|
_0804FA04:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r1, [r0]
|
|
ldr r2, =0xffbfffff
|
|
ands r1, r2
|
|
str r1, [r0]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FA20:
|
|
ldr r2, =gUnknown_02024332
|
|
mov r8, r2
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r2, 0x1]
|
|
strb r0, [r6]
|
|
strb r0, [r1, 0x17]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r7, r0, 0
|
|
adds r7, 0x92
|
|
ldrb r3, [r7]
|
|
ldr r1, =gBitTable
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0804FA50
|
|
b _0804FD70
|
|
_0804FA50:
|
|
ldr r4, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r12, r0
|
|
mov r1, r12
|
|
muls r1, r2
|
|
adds r2, r1, 0
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1, 0x2C]
|
|
lsrs r0, 1
|
|
ldrh r1, [r1, 0x28]
|
|
cmp r0, r1
|
|
bcs _0804FA6A
|
|
b _0804FD70
|
|
_0804FA6A:
|
|
cmp r1, 0
|
|
bne _0804FA70
|
|
b _0804FD70
|
|
_0804FA70:
|
|
adds r0, r4, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804FA82
|
|
b _0804FD70
|
|
_0804FA82:
|
|
orrs r3, r5
|
|
strb r3, [r7]
|
|
movs r0, 0x1
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
mov r1, r12
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r1, r4, 0
|
|
adds r1, 0x48
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl GetNatureFromPersonality
|
|
ldr r1, =gUnknown_0831C4F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
strb r0, [r2, 0x5]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FACC:
|
|
ldr r4, =gUnknown_02024332
|
|
adds r0, r4, 0
|
|
bl sub_81A5258
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
bne _0804FADE
|
|
b _0804FD78
|
|
_0804FADE:
|
|
strb r3, [r4, 0x1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FAE8:
|
|
ldr r0, =gBattleMons
|
|
adds r0, 0x80
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r3, =gBitTable
|
|
ldr r1, [r3, 0x4]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
ldr r0, =0x000002a1
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_0202406E
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_020242BC
|
|
adds r1, 0x34
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
b _0804FBF4
|
|
.pool
|
|
_0804FB3C:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0
|
|
strh r0, [r1, 0x28]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r3, =gBitTable
|
|
ldr r1, [r3]
|
|
lsls r1, 28
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
movs r1, 0xA8
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
ldr r0, =gUnknown_0202406E
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r0, [r2, 0x18]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x18]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FB94:
|
|
ldr r0, =gBattleMons
|
|
movs r1, 0
|
|
strh r1, [r0, 0x28]
|
|
adds r0, 0x80
|
|
strh r1, [r0]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r3, =gBitTable
|
|
ldr r0, [r3]
|
|
lsls r0, 28
|
|
ldr r1, [r2]
|
|
orrs r1, r0
|
|
ldr r0, [r3, 0x4]
|
|
lsls r0, 28
|
|
orrs r1, r0
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r2, [r5]
|
|
movs r0, 0xA8
|
|
lsls r0, 2
|
|
adds r2, r0
|
|
ldr r4, =gUnknown_0202406E
|
|
ldrh r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, [r5]
|
|
ldr r1, =0x000002a1
|
|
adds r2, r1
|
|
ldrh r0, [r4, 0x2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_020242BC
|
|
ldrb r0, [r1, 0x18]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x18]
|
|
adds r1, 0x34
|
|
ldrb r0, [r1]
|
|
_0804FBF4:
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FC18:
|
|
movs r0, 0
|
|
bl sub_8033E10
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804FD70
|
|
.pool
|
|
_0804FC2C:
|
|
bl sub_81A5BF8
|
|
b _0804FD70
|
|
_0804FC32:
|
|
bl sub_81A5D44
|
|
b _0804FD70
|
|
_0804FC38:
|
|
ldr r1, =gUnknown_085CD1C8
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl get_battle_strings_
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0x16
|
|
bl battle_show_message_maybe
|
|
b _0804FD70
|
|
.pool
|
|
_0804FC60:
|
|
movs r0, 0x16
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
b _0804FD24
|
|
_0804FC6A:
|
|
bl sub_80A3678
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804FC76
|
|
b _0804FD78
|
|
_0804FC76:
|
|
b _0804FD70
|
|
_0804FC78:
|
|
ldr r4, =gUnknown_02024064
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleMons
|
|
adds r0, 0x58
|
|
b _0804FCA2
|
|
.pool
|
|
_0804FC8C:
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bls _0804FD70
|
|
ldr r4, =gUnknown_02024064
|
|
movs r0, 0x3
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleMons
|
|
movs r2, 0x84
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
_0804FCA2:
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _0804FD70
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x06_a
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _0804FD70
|
|
.pool
|
|
_0804FCC4:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x55
|
|
bl m4aMPlayVolumeControl
|
|
b _0804FD70
|
|
.pool
|
|
_0804FCD8:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
b _0804FD70
|
|
.pool
|
|
_0804FCF0:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r2, [r0]
|
|
ldr r0, =0x000002a2
|
|
adds r2, r0
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FD1C:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl sub_805725C
|
|
_0804FD24:
|
|
cmp r0, 0
|
|
bne _0804FD78
|
|
b _0804FD70
|
|
.pool
|
|
_0804FD30:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804FD50
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FD50:
|
|
ldr r1, =gUnknown_0202433A
|
|
movs r0, 0xA
|
|
strb r0, [r1]
|
|
b _0804FD70
|
|
.pool
|
|
_0804FD5C:
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8034300
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_0804FD70:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x3
|
|
str r0, [r1]
|
|
_0804FD78:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_804F7AC
|
|
|
|
thumb_func_start atk77_setprotect
|
|
atk77_setprotect: @ 804FD8C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0x1
|
|
ldr r2, =gUnknown_02024260
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
mov r8, r1
|
|
ldr r7, =gUnknown_020242BC
|
|
cmp r0, 0xB6
|
|
beq _0804FDBC
|
|
cmp r0, 0xC5
|
|
beq _0804FDBC
|
|
cmp r0, 0xCB
|
|
beq _0804FDBC
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
strb r1, [r0, 0x8]
|
|
_0804FDBC:
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bne _0804FDCC
|
|
movs r6, 0
|
|
_0804FDCC:
|
|
ldr r2, =gUnknown_0831C3D8
|
|
mov r5, r8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r4, [r0, 0x8]
|
|
lsls r4, 1
|
|
adds r4, r2
|
|
bl Random
|
|
ldrh r1, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r1, r0
|
|
bcc _0804FE80
|
|
cmp r6, 0
|
|
beq _0804FE80
|
|
ldr r4, =gBattleMoves
|
|
ldr r3, =gUnknown_020241EA
|
|
ldrh r0, [r3]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6F
|
|
bne _0804FE1C
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r5]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
_0804FE1C:
|
|
ldrh r0, [r3]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x74
|
|
bne _0804FE42
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r5]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_0804FE42:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
b _0804FEA2
|
|
.pool
|
|
_0804FE80:
|
|
ldr r2, =gUnknown_020242BC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x8]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0804FEA2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk77_setprotect
|
|
|
|
thumb_func_start atk78_faintifabilitynotdamp
|
|
atk78_faintifabilitynotdamp: @ 804FEC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0804FFCC
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r2, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r0]
|
|
adds r5, r1, 0
|
|
mov r8, r0
|
|
ldr r6, =gBattleMons
|
|
cmp r2, r3
|
|
bcs _0804FF14
|
|
adds r0, r6, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
beq _0804FF14
|
|
adds r2, r3, 0
|
|
adds r4, r6, 0
|
|
movs r3, 0x58
|
|
_0804FEF8:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r2
|
|
bcs _0804FF14
|
|
ldrb r0, [r5]
|
|
muls r0, r3
|
|
adds r0, r4
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _0804FEF8
|
|
_0804FF14:
|
|
ldrb r0, [r5]
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0804FFB0
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
str r0, [r2]
|
|
ldr r1, =0x00007fff
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _0804FFCC
|
|
adds r3, r5, 0
|
|
ldrb r5, [r7]
|
|
ldr r7, =gBitTable
|
|
adds r4, r0, 0
|
|
ldr r6, =gUnknown_02024210
|
|
_0804FF60:
|
|
ldrb r2, [r3]
|
|
cmp r2, r5
|
|
beq _0804FF76
|
|
ldrb r0, [r6]
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804FFCC
|
|
_0804FF76:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r4
|
|
bcc _0804FF60
|
|
b _0804FFCC
|
|
.pool
|
|
_0804FFB0:
|
|
ldr r1, =gUnknown_0202420A
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
adds r1, r6
|
|
adds r1, 0x20
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB560
|
|
str r0, [r1]
|
|
_0804FFCC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk78_faintifabilitynotdamp
|
|
|
|
thumb_func_start atk79_setuserhptozero
|
|
atk79_setuserhptozero: @ 804FFE4
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
bne _08050028
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r1, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r0, r1
|
|
strh r3, [r0, 0x28]
|
|
ldrb r0, [r4]
|
|
muls r0, r2
|
|
adds r1, 0x28
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2A
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08050028:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk79_setuserhptozero
|
|
|
|
thumb_func_start sub_8050044
|
|
sub_8050044: @ 8050044
|
|
push {r4-r7,lr}
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r4, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _080500DC
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r2, =gUnknown_0202420B
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r3, r0, 0
|
|
ldr r6, =gUnknown_02024210
|
|
ldr r5, =gBitTable
|
|
ldr r0, =gUnknown_0202406C
|
|
mov r12, r0
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
bne _0805009A
|
|
_0805008A:
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
beq _0805008A
|
|
_0805009A:
|
|
ldrb r0, [r6]
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805008A
|
|
ldrb r0, [r3]
|
|
mov r2, r12
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
bcc _080500D8
|
|
ldr r0, [r7]
|
|
adds r0, 0x5
|
|
str r0, [r7]
|
|
b _080500E0
|
|
.pool
|
|
_080500D8:
|
|
str r4, [r7]
|
|
b _080500E0
|
|
_080500DC:
|
|
adds r0, r2, 0x5
|
|
str r0, [r3]
|
|
_080500E0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8050044
|
|
|
|
thumb_func_start sub_80500E8
|
|
sub_80500E8: @ 80500E8
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r1, [r4]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x5]
|
|
ldr r3, =gEnemyMonIndex
|
|
cmp r0, 0x1
|
|
bne _08050110
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r3]
|
|
_08050110:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r6, =gBattleMons
|
|
ldrb r0, [r3]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 1
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805012A
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_0805012A:
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
ldrb r0, [r3]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r1, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
cmp r1, r0
|
|
bne _08050158
|
|
str r2, [r4]
|
|
b _0805015E
|
|
.pool
|
|
_08050158:
|
|
ldr r0, [r4]
|
|
adds r0, 0x6
|
|
str r0, [r4]
|
|
_0805015E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80500E8
|
|
|
|
thumb_func_start sub_8050164
|
|
sub_8050164: @ 8050164
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r2, =gUnknown_0202406C
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r10, r0
|
|
movs r1, 0
|
|
add r0, sp, 0x4
|
|
_0805017A:
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, sp
|
|
bge _0805017A
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r5, 0
|
|
ldrb r1, [r2]
|
|
cmp r5, r1
|
|
bge _080501D0
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r6, [r0]
|
|
ldr r2, =0x0000ffff
|
|
mov r9, r2
|
|
lsls r4, r6, 3
|
|
mov r2, sp
|
|
ldr r0, =gUnknown_0202449C
|
|
mov r12, r0
|
|
adds r7, r1, 0
|
|
_080501A0:
|
|
cmp r5, r6
|
|
beq _080501C8
|
|
mov r1, r12
|
|
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, 8
|
|
orrs r3, r0
|
|
cmp r3, 0
|
|
beq _080501C8
|
|
cmp r3, r9
|
|
beq _080501C8
|
|
strh r3, [r2]
|
|
adds r2, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
_080501C8:
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, r7
|
|
blt _080501A0
|
|
_080501D0:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r1, r0, 0
|
|
adds r1, 0x98
|
|
ldrb r3, [r1]
|
|
adds r0, 0x99
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
cmp r3, 0
|
|
beq _08050220
|
|
ldr r0, =0x0000ffff
|
|
cmp r3, r0
|
|
beq _08050220
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_020241EA
|
|
strh r3, [r4]
|
|
b _0805024A
|
|
.pool
|
|
_08050220:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08050290
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, r8
|
|
bl __modsi3
|
|
adds r5, r0, 0
|
|
ldr r4, =gUnknown_020241EA
|
|
lsls r0, r5, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
_0805024A:
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r3, =gUnknown_082D86A8
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _080502AE
|
|
.pool
|
|
_08050290:
|
|
ldr r2, =gUnknown_0202437C
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_080502AE:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8050164
|
|
|
|
thumb_func_start sub_80502C8
|
|
sub_80502C8: @ 80502C8
|
|
push {lr}
|
|
ldr r2, =gBattleWeather
|
|
ldrh r0, [r2]
|
|
movs r1, 0x7
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080502F4
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08050304
|
|
.pool
|
|
_080502F4:
|
|
movs r0, 0x1
|
|
strh r0, [r2]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x28
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
_08050304:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80502C8
|
|
|
|
thumb_func_start atk7E_setreflect
|
|
atk7E_setreflect: @ 805031C
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_0202428E
|
|
movs r5, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r1, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805035C
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
b _080503D0
|
|
.pool
|
|
_0805035C:
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_02024294
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r6]
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080503CC
|
|
movs r0, 0x1
|
|
bl sub_8069DEC
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bne _080503CC
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
b _080503D2
|
|
.pool
|
|
_080503CC:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
_080503D0:
|
|
strb r0, [r1, 0x5]
|
|
_080503D2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk7E_setreflect
|
|
|
|
thumb_func_start sub_80503E8
|
|
sub_80503E8: @ 80503E8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r7, =gBattleMoveFlags
|
|
ldrb r5, [r7]
|
|
movs r0, 0x29
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0805041A
|
|
ldr r0, =gUnknown_020242AC
|
|
mov r9, r0
|
|
ldr r1, =gEnemyMonIndex
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
lsls r0, r4, 2
|
|
mov r2, r9
|
|
adds r6, r0, r2
|
|
ldr r2, [r6]
|
|
movs r0, 0x4
|
|
mov r12, r0
|
|
adds r3, r2, 0
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _08050438
|
|
_0805041A:
|
|
movs r0, 0x1
|
|
orrs r0, r5
|
|
strb r0, [r7]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08050488
|
|
.pool
|
|
_08050438:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, r0, r1
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
beq _08050454
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bne _0805046C
|
|
_08050454:
|
|
movs r0, 0x1
|
|
orrs r0, r5
|
|
strb r0, [r7]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08050488
|
|
.pool
|
|
_0805046C:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
orrs r2, r0
|
|
str r2, [r6]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldr r0, [r1]
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
_08050488:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80503E8
|
|
|
|
thumb_func_start atk80_manipulatedamage
|
|
atk80_manipulatedamage: @ 80504A8
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
ldrb r2, [r0, 0x1]
|
|
adds r4, r1, 0
|
|
cmp r2, 0x1
|
|
beq _080504D8
|
|
cmp r2, 0x1
|
|
bgt _080504C4
|
|
cmp r2, 0
|
|
beq _080504CA
|
|
b _08050518
|
|
.pool
|
|
_080504C4:
|
|
cmp r2, 0x2
|
|
beq _08050510
|
|
b _08050518
|
|
_080504CA:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
b _08050516
|
|
.pool
|
|
_080504D8:
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r0, [r3]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
str r0, [r3]
|
|
cmp r0, 0
|
|
bne _080504EA
|
|
str r2, [r3]
|
|
_080504EA:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r1, r0, 1
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bge _08050518
|
|
str r1, [r3]
|
|
b _08050518
|
|
.pool
|
|
_08050510:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r0, [r1]
|
|
lsls r0, 1
|
|
_08050516:
|
|
str r0, [r1]
|
|
_08050518:
|
|
ldr r0, [r4]
|
|
adds r0, 0x2
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk80_manipulatedamage
|
|
|
|
thumb_func_start atk81_setrest
|
|
atk81_setrest: @ 8050528
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02024214
|
|
mov r12, r0
|
|
ldr r1, [r0]
|
|
ldrb r6, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
orrs r6, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
orrs r6, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
orrs r6, r0
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
strb r0, [r5]
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r1, =gBattleMons
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2C]
|
|
negs r0, r0
|
|
str r0, [r4]
|
|
ldrb r0, [r2]
|
|
adds r4, r0, 0
|
|
muls r4, r3
|
|
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 _08050598
|
|
mov r0, r12
|
|
str r6, [r0]
|
|
b _080505E8
|
|
.pool
|
|
_08050598:
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0xF8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080505B4
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _080505B8
|
|
.pool
|
|
_080505B4:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
_080505B8:
|
|
ldrb r0, [r5]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r2, 0x4C
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
str r1, [r0]
|
|
ldrb r0, [r7]
|
|
muls r0, r3
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080505E8:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk81_setrest
|
|
|
|
thumb_func_start atk82_jumpifnotfirstturn
|
|
atk82_jumpifnotfirstturn: @ 80505F8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r4, [r5]
|
|
ldrb r3, [r4, 0x1]
|
|
ldrb r0, [r4, 0x2]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 16
|
|
orrs r3, r0
|
|
ldrb r0, [r4, 0x4]
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
ldr r2, =gUnknown_020242BC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x16]
|
|
cmp r0, 0
|
|
beq _08050638
|
|
adds r0, r4, 0x5
|
|
str r0, [r5]
|
|
b _0805063A
|
|
.pool
|
|
_08050638:
|
|
str r3, [r5]
|
|
_0805063A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk82_jumpifnotfirstturn
|
|
|
|
thumb_func_start sub_8050640
|
|
sub_8050640: @ 8050640
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8050640
|
|
|
|
thumb_func_start sub_8050650
|
|
sub_8050650: @ 8050650
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
mov r8, r0
|
|
cmp r2, r1
|
|
bge _080506C4
|
|
ldr r0, =gBattleMons
|
|
mov r12, r0
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
add r0, r12
|
|
adds r5, r0, 0
|
|
adds r5, 0x20
|
|
adds r4, r1, 0
|
|
movs r3, 0
|
|
ldr r6, =gUnknown_02024474
|
|
ldr r7, =gUnknown_02024332
|
|
_0805067C:
|
|
mov r0, r12
|
|
adds r0, 0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x70
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080506BC
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x2B
|
|
beq _080506BC
|
|
movs r3, 0
|
|
strb r2, [r6, 0x17]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _080506DC
|
|
cmp r0, r2
|
|
beq _080506D0
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x5]
|
|
b _080506C4
|
|
.pool
|
|
_080506BC:
|
|
adds r3, 0x58
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
blt _0805067C
|
|
_080506C4:
|
|
mov r1, r8
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _080506E0
|
|
movs r0, 0x1
|
|
b _080506E2
|
|
_080506D0:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
b _080506C4
|
|
.pool
|
|
_080506DC:
|
|
strb r2, [r1]
|
|
b _080506C4
|
|
_080506E0:
|
|
movs r0, 0
|
|
_080506E2:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8050650
|
|
|
|
thumb_func_start sub_80506EC
|
|
sub_80506EC: @ 80506EC
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r1, [r5]
|
|
ldrb r4, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
orrs r4, r0
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
bl sub_8050650
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050720
|
|
str r4, [r5]
|
|
b _08050762
|
|
.pool
|
|
_08050720:
|
|
ldr r1, =gBattleMons
|
|
ldrb r3, [r6]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
adds r1, r0, 0
|
|
cmp r1, 0xF
|
|
beq _08050738
|
|
cmp r1, 0x48
|
|
bne _0805075C
|
|
_08050738:
|
|
ldr r2, =gUnknown_0202420A
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
str r4, [r5]
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08050762
|
|
.pool
|
|
_0805075C:
|
|
ldr r0, [r5]
|
|
adds r0, 0x5
|
|
str r0, [r5]
|
|
_08050762:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80506EC
|
|
|
|
thumb_func_start sub_8050768
|
|
sub_8050768: @ 8050768
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_020242BC
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1, 0x9]
|
|
cmp r0, 0x3
|
|
bne _080507A0
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _080507CA
|
|
.pool
|
|
_080507A0:
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strb r0, [r1, 0x9]
|
|
ldr r2, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0x1]
|
|
strb r0, [r2, 0x2]
|
|
strb r0, [r2, 0x3]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x9]
|
|
strb r0, [r2, 0x4]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x5]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
_080507CA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8050768
|
|
|
|
thumb_func_start atk86_stockpiletobasedamage
|
|
atk86_stockpiletobasedamage: @ 80507E4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r1, [r3]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
ldr r7, =gUnknown_020242BC
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0, 0x9]
|
|
cmp r0, 0
|
|
bne _08050828
|
|
str r2, [r3]
|
|
b _080508CA
|
|
.pool
|
|
_08050828:
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0x1
|
|
beq _080508B0
|
|
ldr r0, =gBattleMoveDamage
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_0202428E
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
ldrb r0, [r6]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
ldr r2, =gBattleMons
|
|
adds r0, r2
|
|
ldrb r1, [r5]
|
|
muls r1, r4
|
|
adds r1, r2
|
|
ldr r2, =gUnknown_020241EA
|
|
ldrh r2, [r2]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, 0x8]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, 0xC]
|
|
bl sub_806957C
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r1, [r1, 0x9]
|
|
adds r3, r0, 0
|
|
muls r3, r1
|
|
mov r1, r8
|
|
str r3, [r1]
|
|
ldr r2, =gUnknown_02024474
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0, 0x9]
|
|
strb r0, [r2, 0x18]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r0, [r6]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _080508B0
|
|
lsls r0, r3, 4
|
|
subs r0, r3
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
_080508B0:
|
|
ldr r2, =gUnknown_020242BC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x9]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080508CA:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk86_stockpiletobasedamage
|
|
|
|
thumb_func_start atk87_stockpiletohprecovery
|
|
atk87_stockpiletohprecovery: @ 8050904
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r7, =gUnknown_02024214
|
|
ldr r1, [r7]
|
|
ldrb r2, [r1, 0x1]
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
ldr r0, =gUnknown_020242BC
|
|
mov r8, r0
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r3, [r6]
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
mov r1, r8
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4, 0x9]
|
|
cmp r1, 0
|
|
bne _08050954
|
|
str r2, [r7]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
b _080509D0
|
|
.pool
|
|
_08050954:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2C]
|
|
ldrh r3, [r1, 0x28]
|
|
cmp r0, r3
|
|
bne _08050984
|
|
movs r0, 0
|
|
strb r0, [r4, 0x9]
|
|
str r2, [r7]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _080509D0
|
|
.pool
|
|
_08050984:
|
|
ldr r5, =gBattleMoveDamage
|
|
ldrh r0, [r1, 0x2C]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r2, 0x3
|
|
subs r2, r1
|
|
movs r4, 0x1
|
|
adds r1, r4, 0
|
|
lsls r1, r2
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
cmp r0, 0
|
|
bne _080509A0
|
|
str r4, [r5]
|
|
_080509A0:
|
|
ldr r0, [r5]
|
|
negs r0, r0
|
|
str r0, [r5]
|
|
ldr r3, =gUnknown_02024474
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x9]
|
|
movs r2, 0
|
|
strb r0, [r3, 0x18]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
strb r2, [r0, 0x9]
|
|
ldr r0, [r7]
|
|
adds r0, 0x5
|
|
str r0, [r7]
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
_080509D0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk87_stockpiletohprecovery
|
|
|
|
thumb_func_start atk88_negativedamage
|
|
atk88_negativedamage: @ 80509E8
|
|
push {lr}
|
|
ldr r2, =gBattleMoveDamage
|
|
ldr r0, =gUnknown_020241F4
|
|
ldr r0, [r0]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
negs r0, r0
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bne _08050A04
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r2]
|
|
_08050A04:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk88_negativedamage
|
|
|
|
thumb_func_start sub_8050A1C
|
|
sub_8050A1C: @ 8050A1C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r8, r3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r10, r0
|
|
movs r0, 0x40
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08050A50
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r1, =gUnknown_0202420B
|
|
b _08050A54
|
|
.pool
|
|
_08050A50:
|
|
ldr r0, =gUnknown_02024064
|
|
ldr r1, =gEnemyMonIndex
|
|
_08050A54:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
movs r0, 0xBF
|
|
ands r5, r0
|
|
movs r0, 0x80
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08050A6E
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08050A6E:
|
|
movs r0, 0x7F
|
|
ands r5, r0
|
|
movs r0, 0x20
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _08050A84
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_08050A84:
|
|
movs r0, 0xDF
|
|
ands r5, r0
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r4, 0
|
|
movs r2, 0xFD
|
|
strb r2, [r1]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
strb r7, [r1, 0x2]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
mov r12, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
lsls r0, r6, 24
|
|
cmp r0, 0
|
|
blt _08050AA8
|
|
b _08050D8C
|
|
_08050AA8:
|
|
ldr r4, =gUnknown_02024294
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _08050B48
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _08050B48
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xAE
|
|
beq _08050B78
|
|
cmp r5, 0x1
|
|
bne _08050B68
|
|
ldr r4, =gUnknown_0202437C
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08050B10
|
|
ldr r0, =gUnknown_02024214
|
|
mov r4, r8
|
|
str r4, [r0]
|
|
b _08050B68
|
|
.pool
|
|
_08050B10:
|
|
mov r0, r8
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAE03
|
|
str r0, [r1]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08050B68
|
|
.pool
|
|
_08050B48:
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xAE
|
|
beq _08050B78
|
|
mov r0, r10
|
|
cmp r0, 0x1
|
|
beq _08050B78
|
|
movs r0, 0
|
|
bl sub_80464AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08050B78
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D9F1C
|
|
str r0, [r1]
|
|
_08050B68:
|
|
movs r0, 0x1
|
|
b _08050E80
|
|
.pool
|
|
_08050B78:
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
movs r4, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r4
|
|
adds r0, r2
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
mov r10, r2
|
|
cmp r0, 0x1D
|
|
beq _08050B94
|
|
cmp r0, 0x49
|
|
bne _08050C2C
|
|
_08050B94:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08050C2C
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xAE
|
|
beq _08050C2C
|
|
cmp r5, 0x1
|
|
bne _08050B68
|
|
ldr r4, =gUnknown_0202437C
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08050BD4
|
|
ldr r0, =gUnknown_02024214
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
b _08050B68
|
|
.pool
|
|
_08050BD4:
|
|
mov r0, r8
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5C7
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08050B68
|
|
.pool
|
|
_08050C2C:
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x33
|
|
bne _08050C8C
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _08050C8C
|
|
cmp r7, 0x6
|
|
bne _08050C8C
|
|
cmp r5, 0x1
|
|
bne _08050B68
|
|
mov r0, r8
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB62F
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r3]
|
|
muls r0, r4
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08050B68
|
|
.pool
|
|
_08050C8C:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x34
|
|
bne _08050CF0
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08050CF0
|
|
cmp r7, 0x1
|
|
bne _08050CF0
|
|
cmp r5, 0x1
|
|
beq _08050CAE
|
|
b _08050B68
|
|
_08050CAE:
|
|
mov r0, r8
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
strb r0, [r1, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB62F
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r2]
|
|
muls r0, r4
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08050B68
|
|
.pool
|
|
_08050CF0:
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r10
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x13
|
|
bne _08050D08
|
|
cmp r5, 0
|
|
bne _08050D08
|
|
b _08050B68
|
|
_08050D08:
|
|
lsls r0, r6, 24
|
|
asrs r0, 28
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
negs r0, r0
|
|
lsls r0, 24
|
|
ldr r3, =gUnknown_02022F68
|
|
movs r4, 0
|
|
movs r1, 0xFD
|
|
strb r1, [r3]
|
|
movs r2, 0x1
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
subs r1, 0xFF
|
|
cmp r0, r1
|
|
bne _08050D32
|
|
strb r4, [r3, 0x1]
|
|
movs r0, 0xD3
|
|
strb r0, [r3, 0x2]
|
|
strb r4, [r3, 0x3]
|
|
movs r2, 0x4
|
|
_08050D32:
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, 0x1
|
|
adds r1, r2, r3
|
|
movs r0, 0xD4
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, 0x1
|
|
adds r1, r2, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r7, r0
|
|
mov r1, r10
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
beq _08050DE2
|
|
movs r1, 0
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
ldr r3, =gUnknown_02024332
|
|
mov r8, r3
|
|
cmp r0, r2
|
|
bne _08050D76
|
|
movs r1, 0x1
|
|
_08050D76:
|
|
mov r4, r8
|
|
strb r1, [r4, 0x5]
|
|
b _08050E10
|
|
.pool
|
|
_08050D8C:
|
|
asrs r6, r0, 28
|
|
movs r0, 0x7
|
|
ands r6, r0
|
|
ldr r3, =gUnknown_02022F68
|
|
strb r2, [r3]
|
|
movs r2, 0x1
|
|
cmp r6, 0x2
|
|
bne _08050DA6
|
|
strb r4, [r3, 0x1]
|
|
movs r0, 0xD1
|
|
strb r0, [r3, 0x2]
|
|
strb r4, [r3, 0x3]
|
|
movs r2, 0x4
|
|
_08050DA6:
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, 0x1
|
|
adds r1, r2, r3
|
|
movs r0, 0xD2
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
adds r0, r2, r3
|
|
strb r4, [r0]
|
|
adds r2, 0x1
|
|
adds r1, r2, r3
|
|
ldrb r0, [r1]
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r2, =gBattleMons
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r3, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r7, r0
|
|
adds r1, r2, 0
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r10, r2
|
|
cmp r0, 0xC
|
|
bne _08050DFC
|
|
_08050DE2:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
mov r8, r1
|
|
b _08050E10
|
|
.pool
|
|
_08050DFC:
|
|
movs r1, 0
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_02024332
|
|
mov r8, r2
|
|
cmp r0, r3
|
|
bne _08050E0C
|
|
movs r1, 0x1
|
|
_08050E0C:
|
|
mov r3, r8
|
|
strb r1, [r3, 0x5]
|
|
_08050E10:
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
movs r4, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r1, r7, r1
|
|
mov r3, r10
|
|
adds r3, 0x18
|
|
adds r1, r3
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
ldrb r6, [r1]
|
|
adds r0, r6
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
muls r0, r4
|
|
adds r0, r7, r0
|
|
adds r1, r0, r3
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0
|
|
bge _08050E40
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08050E40:
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r0, [r1]
|
|
muls r0, r4
|
|
adds r0, r7, r0
|
|
adds r1, r0, r3
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0xC
|
|
ble _08050E56
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
_08050E56:
|
|
mov r2, r8
|
|
ldrb r0, [r2, 0x5]
|
|
cmp r0, 0x2
|
|
bne _08050E7E
|
|
movs r3, 0x1
|
|
ands r3, r5
|
|
cmp r3, 0
|
|
beq _08050E70
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08050E70:
|
|
mov r4, r8
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, 0x2
|
|
bne _08050E7E
|
|
cmp r3, 0
|
|
bne _08050E7E
|
|
b _08050B68
|
|
_08050E7E:
|
|
movs r0, 0
|
|
_08050E80:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8050A1C
|
|
|
|
thumb_func_start atk89_statbuffchange
|
|
atk89_statbuffchange: @ 8050EA0
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r2, [r5]
|
|
ldrb r3, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r3, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r4, [r0, 0x1A]
|
|
movs r0, 0xF0
|
|
ands r0, r4
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0xF
|
|
ands r1, r4
|
|
ldrb r2, [r2, 0x1]
|
|
bl sub_8050A1C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08050EDC
|
|
ldr r0, [r5]
|
|
adds r0, 0x6
|
|
str r0, [r5]
|
|
_08050EDC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk89_statbuffchange
|
|
|
|
thumb_func_start atk8A_normalisebuffs
|
|
atk8A_normalisebuffs: @ 8050EEC
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_02024214
|
|
mov r12, r0
|
|
cmp r2, r1
|
|
bge _08050F24
|
|
ldr r0, =gBattleMons
|
|
movs r4, 0x6
|
|
adds r5, r1, 0
|
|
movs r7, 0x58
|
|
adds r6, r0, 0
|
|
adds r6, 0x18
|
|
_08050F08:
|
|
adds r3, r2, 0x1
|
|
movs r1, 0x7
|
|
adds r0, r2, 0
|
|
muls r0, r7
|
|
adds r0, r6
|
|
adds r0, 0x7
|
|
_08050F14:
|
|
strb r4, [r0]
|
|
subs r0, 0x1
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08050F14
|
|
adds r2, r3, 0
|
|
cmp r2, r5
|
|
blt _08050F08
|
|
_08050F24:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk8A_normalisebuffs
|
|
|
|
thumb_func_start atk8B_setbide
|
|
atk8B_setbide: @ 8050F40
|
|
push {r4,r5,lr}
|
|
ldr r4, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
movs r5, 0x58
|
|
adds r2, r0, 0
|
|
muls r2, r5
|
|
adds r4, 0x50
|
|
adds r2, r4
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024268
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
ldrh r1, [r1]
|
|
movs r2, 0
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_020241F8
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
ldrb r0, [r3]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk8B_setbide
|
|
|
|
thumb_func_start atk8C_confuseifrepeatingattackends
|
|
atk8C_confuseifrepeatingattackends: @ 8050FB0
|
|
push {lr}
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08050FD2
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x75
|
|
strb r0, [r1, 0x3]
|
|
_08050FD2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk8C_confuseifrepeatingattackends
|
|
|
|
thumb_func_start atk8D_setloopcounter
|
|
atk8D_setloopcounter: @ 8050FF0
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02024214
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x1]
|
|
cmp r1, 0
|
|
beq _0805100C
|
|
ldr r0, =gUnknown_02024212
|
|
strb r1, [r0]
|
|
b _08051026
|
|
.pool
|
|
_0805100C:
|
|
ldr r4, =gUnknown_02024212
|
|
bl Random
|
|
movs r5, 0x3
|
|
ands r0, r5
|
|
strb r0, [r4]
|
|
cmp r0, 0x1
|
|
bls _08051022
|
|
bl Random
|
|
ands r0, r5
|
|
_08051022:
|
|
adds r0, 0x2
|
|
strb r0, [r4]
|
|
_08051026:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk8D_setloopcounter
|
|
|
|
thumb_func_start atk8E_cmd8e
|
|
atk8E_cmd8e: @ 805103C
|
|
ldr r1, =gUnknown_02024474
|
|
movs r2, 0
|
|
movs r0, 0xFD
|
|
strb r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
strb r0, [r1, 0xA]
|
|
strb r0, [r1, 0xB]
|
|
strb r2, [r1, 0xC]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0xD]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk8E_cmd8e
|
|
|
|
thumb_func_start sub_8051064
|
|
sub_8051064: @ 8051064
|
|
push {r4-r7,lr}
|
|
ldr r6, =gBattleMons
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
movs r5, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r6
|
|
adds r1, 0x2A
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r3, [r4]
|
|
adds r0, r3, 0
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _080510AC
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, r3, r1
|
|
adds r1, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, r3, 1
|
|
b _08051108
|
|
.pool
|
|
_080510AC:
|
|
bl Random
|
|
movs r3, 0xFF
|
|
ands r3, r0
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r2, [r0]
|
|
ldrb r4, [r4]
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
adds r2, r1
|
|
adds r0, r3, 0
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
adds r0, 0x1
|
|
lsrs r1, 2
|
|
cmp r0, r1
|
|
bhi _080510FC
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
movs r0, 0
|
|
b _08051116
|
|
.pool
|
|
_080510FC:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, r4, r1
|
|
adds r1, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
_08051108:
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DADD8
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_08051116:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8051064
|
|
|
|
thumb_func_start sub_805112C
|
|
sub_805112C: @ 805112C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r5, =gBattleTypeFlags
|
|
ldr r0, [r5]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805114A
|
|
b _08051410
|
|
_0805114A:
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
str r1, [sp]
|
|
cmp r0, 0
|
|
bne _08051160
|
|
ldr r0, =gPlayerParty
|
|
str r0, [sp]
|
|
_08051160:
|
|
ldr r2, [r5]
|
|
movs r1, 0x81
|
|
lsls r1, 1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08051182
|
|
ldr r1, =0x02000100
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _08051182
|
|
movs r0, 0x80
|
|
lsls r0, 15
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080511C8
|
|
_08051182:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _080511AC
|
|
movs r0, 0x3
|
|
mov r9, r0
|
|
movs r0, 0x6
|
|
b _080511B2
|
|
.pool
|
|
_080511AC:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r0, 0x3
|
|
_080511B2:
|
|
mov r8, r0
|
|
movs r0, 0x3
|
|
mov r10, r0
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r1, [r1]
|
|
b _0805128E
|
|
.pool
|
|
_080511C8:
|
|
movs r0, 0x42
|
|
ands r0, r2
|
|
cmp r0, 0x42
|
|
beq _080511DA
|
|
ldr r1, =0x02000040
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
bne _0805121C
|
|
_080511DA:
|
|
ldrb r0, [r4]
|
|
bl sub_806D864
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_806D82C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080511FC
|
|
movs r1, 0x3
|
|
mov r9, r1
|
|
movs r0, 0x6
|
|
b _08051202
|
|
.pool
|
|
_080511FC:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r0, 0x3
|
|
_08051202:
|
|
mov r8, r0
|
|
movs r1, 0x3
|
|
mov r10, r1
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
b _0805128E
|
|
.pool
|
|
_0805121C:
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08051274
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08051240
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r0, 0x6
|
|
mov r8, r0
|
|
mov r10, r0
|
|
movs r1, 0x2
|
|
b _08051260
|
|
_08051240:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051252
|
|
movs r0, 0x3
|
|
mov r9, r0
|
|
movs r1, 0x6
|
|
b _08051258
|
|
_08051252:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r1, 0x3
|
|
_08051258:
|
|
mov r8, r1
|
|
movs r0, 0x3
|
|
mov r10, r0
|
|
movs r1, 0x1
|
|
_08051260:
|
|
str r1, [sp, 0x8]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
b _0805128E
|
|
.pool
|
|
_08051274:
|
|
movs r0, 0x1
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080512A4
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r1, 0x6
|
|
mov r8, r1
|
|
mov r10, r1
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x8]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r1, [r4]
|
|
_0805128E:
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r7, [r0]
|
|
movs r0, 0x2
|
|
eors r1, r0
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r5, [r1]
|
|
b _080512BE
|
|
.pool
|
|
_080512A4:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r0, 0x6
|
|
mov r8, r0
|
|
mov r10, r0
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r5, [r0]
|
|
adds r7, r5, 0
|
|
_080512BE:
|
|
mov r6, r9
|
|
cmp r6, r8
|
|
bge _080512FC
|
|
_080512C4:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, [sp]
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080512F6
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _080512F6
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080512F6
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
_080512F6:
|
|
adds r6, 0x1
|
|
cmp r6, r8
|
|
blt _080512C4
|
|
_080512FC:
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [sp, 0x8]
|
|
cmp r1, r0
|
|
bgt _08051328
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08051414
|
|
.pool
|
|
_08051328:
|
|
bl sub_8051064
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08051378
|
|
_08051332:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, r10
|
|
bl __modsi3
|
|
adds r6, r0, 0
|
|
add r6, r9
|
|
cmp r6, r7
|
|
beq _08051332
|
|
cmp r6, r5
|
|
beq _08051332
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, [sp]
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08051332
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0x1
|
|
beq _08051332
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08051332
|
|
_08051378:
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
strb r6, [r0]
|
|
bl sub_81B1250
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08051396
|
|
ldrb r0, [r4]
|
|
bl sub_803BDA0
|
|
_08051396:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r1, 0x81
|
|
lsls r1, 1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _080513C0
|
|
movs r0, 0x42
|
|
ands r0, r2
|
|
cmp r0, 0x42
|
|
beq _080513C0
|
|
ldr r1, =0x02000100
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _080513C0
|
|
ldr r0, =0x02000040
|
|
ands r2, r0
|
|
cmp r2, r0
|
|
bne _080513DE
|
|
_080513C0:
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
lsls r4, r6, 24
|
|
lsrs r4, 24
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_81B8E80
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_81B8E80
|
|
_080513DE:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051414
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r1, r6, 24
|
|
lsrs r1, 24
|
|
bl sub_80571DC
|
|
b _08051414
|
|
.pool
|
|
_08051410:
|
|
bl sub_8051064
|
|
_08051414:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805112C
|
|
|
|
thumb_func_start sub_8051424
|
|
sub_8051424: @ 8051424
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
beq _08051466
|
|
movs r5, 0x58
|
|
adds r2, r1, 0
|
|
_0805144C:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bhi _08051466
|
|
lsls r1, r6, 1
|
|
ldrb r0, [r3]
|
|
muls r0, r5
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805144C
|
|
_08051466:
|
|
movs r3, 0
|
|
cmp r3, r6
|
|
bcs _080514E8
|
|
ldr r0, =gBattleMoves
|
|
mov r10, r0
|
|
ldr r5, =gBattleMons
|
|
mov r12, r5
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
movs r4, 0x58
|
|
adds r5, r0, 0
|
|
muls r5, r4
|
|
movs r0, 0xC
|
|
add r0, r12
|
|
mov r9, r0
|
|
_08051484:
|
|
lsls r0, r3, 1
|
|
adds r0, r5
|
|
add r0, r9
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r10
|
|
ldrb r2, [r0, 0x2]
|
|
cmp r2, 0x9
|
|
bne _080514C6
|
|
mov r0, r8
|
|
adds r1, r5, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
beq _080514B2
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bne _080514C4
|
|
_080514B2:
|
|
movs r2, 0x7
|
|
b _080514C6
|
|
.pool
|
|
_080514C4:
|
|
movs r2, 0
|
|
_080514C6:
|
|
ldrb r0, [r7]
|
|
muls r0, r4
|
|
add r0, r12
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
beq _080514DE
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _080514E8
|
|
_080514DE:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, r6
|
|
bcc _08051484
|
|
_080514E8:
|
|
cmp r3, r6
|
|
bne _0805150C
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080515B0
|
|
.pool
|
|
_0805150C:
|
|
movs r7, 0x3
|
|
ldr r5, =gBattleMoves
|
|
mov r9, r5
|
|
_08051512:
|
|
bl Random
|
|
adds r3, r0, 0
|
|
ands r3, r7
|
|
cmp r3, r6
|
|
bcs _08051512
|
|
ldr r4, =gBattleMons
|
|
lsls r1, r3, 1
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r2, [r3]
|
|
movs r0, 0x58
|
|
adds r5, r2, 0
|
|
muls r5, r0
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r2, [r0, 0x2]
|
|
mov r8, r4
|
|
adds r4, r3, 0
|
|
cmp r2, 0x9
|
|
bne _08051572
|
|
mov r0, r8
|
|
adds r2, r5, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
beq _08051560
|
|
adds r0, r2, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bne _08051570
|
|
_08051560:
|
|
movs r2, 0x7
|
|
b _08051572
|
|
.pool
|
|
_08051570:
|
|
movs r2, 0
|
|
_08051572:
|
|
ldrb r0, [r4]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
add r0, r8
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
beq _08051512
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
beq _08051512
|
|
strb r2, [r1]
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
add r0, r8
|
|
adds r0, 0x22
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
strb r2, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080515B0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8051424
|
|
|
|
thumb_func_start atk91_givemoney
|
|
atk91_givemoney: @ 80515C8
|
|
push {r4,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x02000002
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08051650
|
|
ldr r1, =gUnknown_0202432E
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _08051650
|
|
adds r1, r0, 0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x4A
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl add_money
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x3]
|
|
strb r4, [r1, 0x4]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r4, r0
|
|
lsrs r4, 8
|
|
strb r4, [r1, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x6]
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
bl b_movescr_stack_push
|
|
ldr r0, =gUnknown_082DB307
|
|
str r0, [r4]
|
|
b _08051658
|
|
.pool
|
|
_08051650:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08051658:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk91_givemoney
|
|
|
|
thumb_func_start atk92_setlightscreen
|
|
atk92_setlightscreen: @ 8051664
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_0202428E
|
|
movs r6, 0x1
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r1, [r1]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080516A4
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
b _08051718
|
|
.pool
|
|
_080516A4:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_02024294
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x5
|
|
strb r1, [r0, 0x2]
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r5]
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08051714
|
|
movs r0, 0x1
|
|
bl sub_8069DEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08051714
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
b _08051718
|
|
.pool
|
|
_08051714:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
_08051718:
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk92_setlightscreen
|
|
|
|
thumb_func_start atk93_ko_move
|
|
atk93_ko_move: @ 8051730
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r2, [r6]
|
|
movs r5, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r1, r0, r7
|
|
ldrh r0, [r1, 0x2E]
|
|
cmp r0, 0xAF
|
|
bne _08051768
|
|
ldr r1, =gUnknown_02024404
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x7]
|
|
ldrb r6, [r0, 0x1A]
|
|
b _08051782
|
|
.pool
|
|
_08051768:
|
|
ldrh r0, [r1, 0x2E]
|
|
bl itemid_get_x12
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2E]
|
|
bl itemid_get_quality
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08051782:
|
|
ldr r1, =gUnknown_0202420F
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
cmp r4, 0x27
|
|
bne _080517C0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bcs _080517C0
|
|
ldrb r0, [r5]
|
|
movs r1, 0x27
|
|
bl b_history__record_item_x12_of_player
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080517C0:
|
|
ldr r1, =gBattleMons
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r3, [r2]
|
|
movs r6, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
adds r5, r0, r1
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
ldrb r4, [r0]
|
|
mov r8, r1
|
|
mov r9, r2
|
|
cmp r4, 0x5
|
|
bne _0805181C
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r4, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB552
|
|
str r0, [r1]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
movs r1, 0x5
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08051A70
|
|
.pool
|
|
_0805181C:
|
|
ldr r1, =gUnknown_020242AC
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080518A0
|
|
ldr r1, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
add r0, r8
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
ldrb r1, [r1]
|
|
subs r0, r1
|
|
ldrb r2, [r2, 0x3]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r0, 0x1
|
|
cmp r0, r4
|
|
blt _08051870
|
|
b _08051A08
|
|
_08051870:
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
add r1, r8
|
|
adds r1, 0x2A
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r6
|
|
add r0, r8
|
|
adds r0, 0x2A
|
|
ldrb r1, [r1]
|
|
movs r4, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08051936
|
|
b _08051A08
|
|
.pool
|
|
_080518A0:
|
|
ldr r1, =gUnknown_020242BC
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r0, 0x15]
|
|
adds r7, r1, 0
|
|
ldrb r3, [r7]
|
|
cmp r0, r3
|
|
bne _080518CA
|
|
ldrb r0, [r7]
|
|
muls r0, r6
|
|
add r0, r8
|
|
adds r0, 0x2A
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08051942
|
|
_080518CA:
|
|
ldr r1, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldr r6, =gBattleMons
|
|
ldrb r0, [r7]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
ldr r0, =gEnemyMonIndex
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
subs r1, r0
|
|
ldrb r2, [r2, 0x3]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
lsrs r4, r1, 16
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r0, 0x1
|
|
cmp r0, r4
|
|
bge _08051934
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r6
|
|
adds r1, 0x2A
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
adds r0, 0x2A
|
|
ldrb r1, [r1]
|
|
movs r4, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08051936
|
|
_08051934:
|
|
movs r4, 0
|
|
_08051936:
|
|
ldr r3, =gBattleMons
|
|
mov r8, r3
|
|
ldr r0, =gEnemyMonIndex
|
|
mov r9, r0
|
|
cmp r4, 0
|
|
beq _08051A08
|
|
_08051942:
|
|
ldr r0, =gUnknown_0202433C
|
|
mov r1, r9
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
bge _08051990
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x28]
|
|
subs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
b _080519EE
|
|
.pool
|
|
_08051990:
|
|
ldr r0, =gUnknown_0202437C
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _080519DC
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r3, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r3
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x28]
|
|
subs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024208
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r3
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x2E]
|
|
strh r0, [r1]
|
|
b _080519F2
|
|
.pool
|
|
_080519DC:
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x28]
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x10
|
|
_080519EE:
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080519F2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08051A70
|
|
.pool
|
|
_08051A08:
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r3, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
movs r2, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r2
|
|
adds r1, r3
|
|
adds r1, 0x2A
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x2A
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcc _08051A50
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
b _08051A54
|
|
.pool
|
|
_08051A50:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
_08051A54:
|
|
strb r0, [r1, 0x5]
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08051A70:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk93_ko_move
|
|
|
|
thumb_func_start atk94_gethalfcurrentenemyhp
|
|
atk94_gethalfcurrentenemyhp: @ 8051A84
|
|
push {lr}
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
lsrs r0, 1
|
|
str r0, [r3]
|
|
cmp r0, 0
|
|
bne _08051AA2
|
|
movs r0, 0x1
|
|
str r0, [r3]
|
|
_08051AA2:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk94_gethalfcurrentenemyhp
|
|
|
|
thumb_func_start sub_8051AC0
|
|
sub_8051AC0: @ 8051AC0
|
|
push {lr}
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051AEC
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08051AFE
|
|
.pool
|
|
_08051AEC:
|
|
movs r0, 0x8
|
|
strh r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x28
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
_08051AFE:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8051AC0
|
|
|
|
thumb_func_start sub_8051B18
|
|
sub_8051B18: @ 8051B18
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08051B36
|
|
b _08051C48
|
|
_08051B36:
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08051B4C
|
|
b _08051C48
|
|
_08051B4C:
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
adds r4, r2, 0
|
|
ldr r5, =gUnknown_0202420B
|
|
cmp r0, 0
|
|
beq _08051BDA
|
|
ldr r0, =gBattleMons
|
|
ldrb r2, [r5]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r3, r1, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _08051BD4
|
|
cmp r0, 0x8
|
|
beq _08051BD4
|
|
cmp r0, 0x4
|
|
beq _08051BD4
|
|
adds r0, r3, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _08051BD4
|
|
cmp r0, 0x8
|
|
beq _08051BD4
|
|
cmp r0, 0x4
|
|
beq _08051BD4
|
|
adds r0, r3, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
beq _08051BD4
|
|
ldr r0, =gUnknown_020242AC
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08051BD4
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08051BD4
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r3, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08051BDA
|
|
movs r0, 0x1
|
|
b _08051BD8
|
|
.pool
|
|
_08051BD4:
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
_08051BD8:
|
|
str r0, [r1]
|
|
_08051BDA:
|
|
ldrh r1, [r4]
|
|
movs r4, 0x80
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051C50
|
|
ldr r1, =gBattleMons
|
|
ldrb r3, [r5]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r2, r0, r1
|
|
adds r0, r2, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
beq _08051C3C
|
|
adds r0, r2, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
beq _08051C3C
|
|
ldr r0, =gUnknown_020242AC
|
|
lsls r1, r3, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08051C3C
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08051C3C
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrh r0, [r2, 0x2C]
|
|
lsrs r0, 4
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08051C50
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
b _08051C50
|
|
.pool
|
|
_08051C3C:
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
b _08051C50
|
|
.pool
|
|
_08051C48:
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r5, =gUnknown_0202420B
|
|
_08051C50:
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08051C6A
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
_08051C6A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8051B18
|
|
|
|
thumb_func_start atk97_tryinfatuatetarget
|
|
atk97_tryinfatuatetarget: @ 8051C90
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08051CC8
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
b _08051CD8
|
|
.pool
|
|
_08051CC8:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
_08051CD8:
|
|
adds r5, r1, r0
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08051D0C
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
b _08051D1C
|
|
.pool
|
|
_08051D0C:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
_08051D1C:
|
|
adds r4, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
mov r9, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r7, r0, 0
|
|
ldr r5, =gEnemyMonIndex
|
|
ldrb r0, [r5]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
ldr r1, =gBattleMons
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r2, [r0]
|
|
cmp r2, 0xC
|
|
bne _08051D94
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB5F5
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_0202420A
|
|
strb r2, [r0]
|
|
ldrb r0, [r5]
|
|
movs r1, 0xC
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08051E2C
|
|
.pool
|
|
_08051D94:
|
|
mov r0, r10
|
|
mov r1, r9
|
|
bl pokemon_species_get_gender_info
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl pokemon_species_get_gender_info
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _08051DE4
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
ldr r4, =gBattleMons
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0xF0
|
|
lsls r1, 12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08051DE4
|
|
mov r0, r10
|
|
mov r1, r9
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _08051DE4
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _08051E08
|
|
_08051DE4:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08051E2C
|
|
.pool
|
|
_08051E08:
|
|
ldrb r0, [r5]
|
|
adds r2, r0, 0
|
|
muls r2, r6
|
|
adds r2, r4
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 16
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08051E2C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk97_tryinfatuatetarget
|
|
|
|
thumb_func_start sub_8051E48
|
|
sub_8051E48: @ 8051E48
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08051F34
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x4
|
|
beq _08051EA0
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r3, =gBattleMons
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, 0x50
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
b _08051F34
|
|
.pool
|
|
_08051EA0:
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
strb r0, [r4]
|
|
ldr r6, =gUnknown_02024210
|
|
ldrb r1, [r6]
|
|
ldr r7, =gBitTable
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08051EDC
|
|
ldr r3, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, 0x50
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08051EDC:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08051F2C
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r4]
|
|
ldrb r1, [r6]
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08051F2C
|
|
ldr r3, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
adds r3, 0x50
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x1A_aaaa_bbbb
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08051F2C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x2
|
|
str r0, [r1]
|
|
_08051F34:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8051E48
|
|
|
|
thumb_func_start atk99_setmisteffect
|
|
atk99_setmisteffect: @ 8051F58
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02024294
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
movs r5, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _08051F98
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r5, [r0, 0x5]
|
|
b _08051FE6
|
|
.pool
|
|
_08051F98:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x5
|
|
strb r1, [r0, 0x4]
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r4]
|
|
strb r1, [r0, 0x5]
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
ldr r2, =gUnknown_0202428E
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r0, r3, 0
|
|
movs r3, 0
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r3, [r0, 0x5]
|
|
_08051FE6:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk99_setmisteffect
|
|
|
|
thumb_func_start atk9A_setincreasedcriticalchance
|
|
atk9A_setincreasedcriticalchance: @ 8052000
|
|
push {lr}
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r3, 0x80
|
|
lsls r3, 13
|
|
adds r2, r1, 0
|
|
ands r2, r3
|
|
cmp r2, 0
|
|
beq _08052040
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08052048
|
|
.pool
|
|
_08052040:
|
|
orrs r1, r3
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x5]
|
|
_08052048:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk9A_setincreasedcriticalchance
|
|
|
|
thumb_func_start atk9B_transformdataexecution
|
|
atk9B_transformdataexecution: @ 805205C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, =gUnknown_020241EC
|
|
ldr r2, =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r7, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
mov r12, r0
|
|
ldrb r1, [r0]
|
|
movs r6, 0x58
|
|
adds r0, r1, 0
|
|
muls r0, r6
|
|
adds r5, r7, 0
|
|
adds r5, 0x50
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 14
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _080520A2
|
|
ldr r0, =gUnknown_020242AC
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
ldr r0, =0x000400c0
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080520D8
|
|
_080520A2:
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
b _080521EC
|
|
.pool
|
|
_080520D8:
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
ldr r0, [r1]
|
|
orrs r0, r4
|
|
str r0, [r1]
|
|
ldr r4, =gUnknown_020242BC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x4]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0xB]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0xB]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r2, r12
|
|
ldrb r1, [r2]
|
|
muls r1, r6
|
|
adds r2, r7, 0
|
|
adds r2, 0x48
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strb r0, [r1, 0x18]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
mov r2, r12
|
|
ldrb r0, [r2]
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r2]
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r3]
|
|
muls r0, r6
|
|
adds r5, r0, r7
|
|
ldrb r0, [r2]
|
|
muls r0, r6
|
|
adds r2, r0, r7
|
|
movs r4, 0
|
|
adds r6, r3, 0
|
|
ldr r0, =gUnknown_02024064
|
|
mov r8, r0
|
|
_08052170:
|
|
adds r0, r5, r4
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x23
|
|
bls _08052170
|
|
movs r4, 0
|
|
ldr r7, =gBattleMoves
|
|
ldr r3, =gUnknown_02024090
|
|
adds r5, r3, 0
|
|
adds r5, 0x18
|
|
_08052188:
|
|
lsls r1, r4, 1
|
|
ldrb r2, [r6]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, r2
|
|
adds r1, r3
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r1, [r0, 0x4]
|
|
cmp r1, 0x4
|
|
bhi _080521C4
|
|
adds r0, r4, r2
|
|
adds r0, r5
|
|
b _080521CA
|
|
.pool
|
|
_080521C4:
|
|
adds r0, r4, r2
|
|
adds r0, r5
|
|
movs r1, 0x5
|
|
_080521CA:
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08052188
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl dp01_build_cmdbuf_x38_a
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
_080521EC:
|
|
strb r0, [r1, 0x5]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atk9B_transformdataexecution
|
|
|
|
thumb_func_start sub_80521FC
|
|
sub_80521FC: @ 80521FC
|
|
push {r4-r7,lr}
|
|
ldr r7, =gBattleMons
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r3, r0, r7
|
|
ldrh r0, [r3, 0x2C]
|
|
lsrs r1, r0, 2
|
|
adds r2, r1, 0
|
|
cmp r1, 0
|
|
bne _08052216
|
|
movs r2, 0x1
|
|
_08052216:
|
|
ldrh r0, [r3, 0x28]
|
|
cmp r0, r2
|
|
bhi _0805223C
|
|
ldr r1, =gBattleMoveDamage
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08052290
|
|
.pool
|
|
_0805223C:
|
|
ldr r4, =gBattleMoveDamage
|
|
str r1, [r4]
|
|
cmp r1, 0
|
|
bne _08052248
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
_08052248:
|
|
ldrb r0, [r6]
|
|
adds r2, r0, 0
|
|
muls r2, r5
|
|
adds r3, r7, 0
|
|
adds r3, 0x50
|
|
adds r2, r3
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r3
|
|
ldr r0, [r1]
|
|
ldr r2, =0xffff1fff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r4]
|
|
movs r2, 0
|
|
strb r1, [r0, 0xA]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r2, [r0, 0x5]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_08052290:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80521FC
|
|
|
|
thumb_func_start sub_80522B8
|
|
sub_80522B8: @ 80522B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0831C3E0
|
|
ldrh r1, [r0]
|
|
ldr r4, =0x0000fffe
|
|
adds r5, r0, 0
|
|
cmp r1, r4
|
|
beq _080522E0
|
|
cmp r1, r2
|
|
beq _080522E0
|
|
adds r1, r5, 0
|
|
_080522D2:
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
beq _080522E0
|
|
cmp r0, r2
|
|
bne _080522D2
|
|
_080522E0:
|
|
lsls r0, r3, 1
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000fffe
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80522B8
|
|
|
|
thumb_func_start atk9D_copyattack
|
|
atk9D_copyattack: @ 8052300
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =gUnknown_020241EC
|
|
ldr r1, =0x0000ffff
|
|
adds r7, r1, 0
|
|
strh r7, [r0]
|
|
ldr r5, =gUnknown_02024248
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
bl sub_80522B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805235A
|
|
ldr r3, =gBattleMons
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 14
|
|
ands r1, r0
|
|
mov r12, r3
|
|
mov r9, r2
|
|
cmp r1, 0
|
|
bne _0805235A
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
cmp r1, 0
|
|
beq _0805235A
|
|
cmp r1, r7
|
|
bne _08052394
|
|
_0805235A:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080524CC
|
|
.pool
|
|
_08052394:
|
|
movs r2, 0
|
|
mov r3, r12
|
|
adds r3, 0xC
|
|
adds r0, r4, r3
|
|
ldrh r0, [r0]
|
|
ldr r4, =gUnknown_02024214
|
|
mov r10, r4
|
|
cmp r0, r1
|
|
beq _080523CE
|
|
mov r8, r3
|
|
adds r7, r5, 0
|
|
adds r5, r6, 0
|
|
mov r4, r9
|
|
movs r3, 0x58
|
|
_080523B0:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080523CE
|
|
lsls r1, r2, 1
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r1, r0
|
|
add r1, r8
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r1, [r1]
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080523B0
|
|
_080523CE:
|
|
cmp r2, 0x4
|
|
bne _080524B0
|
|
ldr r5, =gUnknown_020241E8
|
|
ldrb r1, [r5]
|
|
lsls r1, 1
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r1, r0
|
|
mov r0, r12
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldr r2, =gUnknown_02024248
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r4, =gBattleMoves
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r4, [r0, 0x4]
|
|
cmp r4, 0x4
|
|
bhi _08052438
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
muls r0, r6
|
|
ldrb r1, [r5]
|
|
adds r0, r1
|
|
mov r1, r12
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
b _0805244C
|
|
.pool
|
|
_08052438:
|
|
mov r4, r9
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
ldrb r1, [r5]
|
|
adds r0, r1
|
|
mov r1, r12
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
_0805244C:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_020242BC
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r4, [r2, 0x18]
|
|
lsrs r3, r4, 4
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
orrs r1, r3
|
|
lsls r1, 4
|
|
movs r0, 0xF
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x18]
|
|
mov r4, r10
|
|
ldr r0, [r4]
|
|
adds r0, 0x5
|
|
str r0, [r4]
|
|
b _080524CC
|
|
.pool
|
|
_080524B0:
|
|
mov r0, r10
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
mov r2, r10
|
|
str r1, [r2]
|
|
_080524CC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atk9D_copyattack
|
|
|
|
thumb_func_start sub_80524DC
|
|
sub_80524DC: @ 80524DC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r7, =gUnknown_020241EA
|
|
movs r6, 0xB1
|
|
lsls r6, 1
|
|
ldr r5, =gUnknown_0831C3E0
|
|
ldr r0, =gUnknown_02024214
|
|
mov r8, r0
|
|
_080524EE:
|
|
bl Random
|
|
ldr r2, =0x000001ff
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
adds r0, 0x1
|
|
strh r0, [r7]
|
|
cmp r0, r6
|
|
bhi _080524EE
|
|
movs r0, 0x3
|
|
_08052502:
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _08052502
|
|
ldr r4, =gUnknown_020241EA
|
|
ldrh r2, [r4]
|
|
ldr r3, =0x0000ffff
|
|
subs r0, r5, 0x2
|
|
_08052510:
|
|
adds r0, 0x2
|
|
ldrh r1, [r0]
|
|
cmp r1, r2
|
|
beq _0805251C
|
|
cmp r1, r3
|
|
bne _08052510
|
|
_0805251C:
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080524EE
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r3, =gUnknown_082D86A8
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80524DC
|
|
|
|
thumb_func_start atk9F_nightshadedamageeffect
|
|
atk9F_nightshadedamageeffect: @ 8052584
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
str r0, [r3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atk9F_nightshadedamageeffect
|
|
|
|
thumb_func_start atkA0_psywavedamageeffect
|
|
atkA0_psywavedamageeffect: @ 80525B4
|
|
push {r4,lr}
|
|
movs r4, 0xF
|
|
_080525B8:
|
|
bl Random
|
|
adds r3, r4, 0
|
|
ands r3, r0
|
|
cmp r3, 0xA
|
|
bgt _080525B8
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r3, r0, 1
|
|
ldr r4, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x32
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA0_psywavedamageeffect
|
|
|
|
thumb_func_start atkA1_counterdamagecalculator
|
|
atkA1_counterdamagecalculator: @ 8052608
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r5, =gUnknown_0202433C
|
|
ldrb r0, [r4]
|
|
lsls r0, 4
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0xC]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r0, r5, 0x4
|
|
adds r0, r1, r0
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
beq _080526BC
|
|
cmp r6, r2
|
|
beq _080526BC
|
|
ldr r6, =gBattleMons
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0, 0xC]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _080526BC
|
|
ldr r1, =gBattleMoveDamage
|
|
lsls r0, r3, 1
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _08052690
|
|
ldrb r1, [r1, 0x9]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08052690
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r1, [r0]
|
|
b _080526A0
|
|
.pool
|
|
_08052690:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r2]
|
|
_080526A0:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080526EC
|
|
.pool
|
|
_080526BC:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080526EC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA1_counterdamagecalculator
|
|
|
|
thumb_func_start atkA2_mirrorcoatdamagecalculator
|
|
atkA2_mirrorcoatdamagecalculator: @ 8052700
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r5, =gUnknown_0202433C
|
|
ldrb r0, [r4]
|
|
lsls r0, 4
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0xD]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r0, r5, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
beq _080527B4
|
|
cmp r6, r2
|
|
beq _080527B4
|
|
ldr r6, =gBattleMons
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0, 0xD]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _080527B4
|
|
ldr r1, =gBattleMoveDamage
|
|
lsls r0, r3, 1
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _08052788
|
|
ldrb r1, [r1, 0x9]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08052788
|
|
ldr r0, =gEnemyMonIndex
|
|
strb r1, [r0]
|
|
b _08052798
|
|
.pool
|
|
_08052788:
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xD]
|
|
strb r0, [r2]
|
|
_08052798:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080527E4
|
|
.pool
|
|
_080527B4:
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080527E4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA2_mirrorcoatdamagecalculator
|
|
|
|
thumb_func_start atkA3_disablelastusedattack
|
|
atkA3_disablelastusedattack: @ 80527F8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r4, 0
|
|
ldr r2, =gBattleMons
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r7, r2, 0
|
|
adds r7, 0xC
|
|
adds r0, r7
|
|
ldr r5, =gUnknown_02024248
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r0, [r0]
|
|
mov r9, r2
|
|
adds r6, r3, 0
|
|
ldr r2, =gUnknown_020242BC
|
|
mov r8, r2
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _0805284C
|
|
mov r12, r6
|
|
movs r3, 0x58
|
|
_0805282C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _0805284C
|
|
lsls r2, r4, 1
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r2, r0
|
|
adds r2, r7
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _0805282C
|
|
_0805284C:
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08052910
|
|
cmp r4, 0x4
|
|
beq _08052910
|
|
movs r5, 0x58
|
|
adds r0, r1, 0
|
|
muls r0, r5
|
|
adds r0, r4, r0
|
|
mov r1, r9
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08052910
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
lsls r2, r4, 1
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r2, r0
|
|
mov r3, r9
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r2, r0
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
muls r1, r5
|
|
adds r2, r1
|
|
adds r2, r3
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x4]
|
|
bl Random
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
add r1, r8
|
|
movs r2, 0x3
|
|
ands r2, r0
|
|
adds r2, 0x2
|
|
ldrb r3, [r1, 0xB]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xB]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
ldrb r3, [r1, 0xB]
|
|
lsls r2, r3, 28
|
|
lsrs r2, 24
|
|
movs r0, 0xF
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xB]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0805292A
|
|
.pool
|
|
_08052910:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805292A:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA3_disablelastusedattack
|
|
|
|
thumb_func_start atkA4_setencore
|
|
atkA4_setencore: @ 805293C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r5, 0
|
|
ldr r3, =gBattleMons
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r6, r3, 0
|
|
adds r6, 0xC
|
|
adds r0, r6
|
|
ldr r2, =gUnknown_02024248
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r0, [r0]
|
|
mov r10, r3
|
|
mov r8, r2
|
|
ldr r2, =gUnknown_020242BC
|
|
mov r9, r2
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _08052996
|
|
mov r12, r4
|
|
adds r7, r6, 0
|
|
mov r6, r8
|
|
movs r3, 0x58
|
|
_08052976:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
bgt _08052996
|
|
lsls r2, r5, 1
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
adds r2, r0
|
|
adds r2, r7
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _08052976
|
|
_08052996:
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r2, [r0]
|
|
cmp r2, 0xA5
|
|
beq _080529AA
|
|
cmp r2, 0xE3
|
|
beq _080529AA
|
|
cmp r2, 0x77
|
|
bne _080529AC
|
|
_080529AA:
|
|
movs r5, 0x4
|
|
_080529AC:
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r2, r9
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x6]
|
|
cmp r0, 0
|
|
bne _08052A44
|
|
cmp r5, 0x4
|
|
beq _08052A44
|
|
movs r0, 0x58
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r0, r5, r2
|
|
mov r1, r10
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08052A44
|
|
lsls r0, r5, 1
|
|
adds r0, r2
|
|
subs r1, 0x18
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r3, 0x6]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
strb r5, [r0, 0xC]
|
|
bl Random
|
|
ldrb r2, [r4]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
add r1, r9
|
|
movs r2, 0x3
|
|
ands r2, r0
|
|
adds r2, 0x3
|
|
ldrb r3, [r1, 0xE]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrb r3, [r1, 0xE]
|
|
lsls r2, r3, 28
|
|
lsrs r2, 24
|
|
movs r0, 0xF
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0xE]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08052A5E
|
|
.pool
|
|
_08052A44:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08052A5E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA4_setencore
|
|
|
|
thumb_func_start sub_8052A70
|
|
sub_8052A70: @ 8052A70
|
|
push {r4-r7,lr}
|
|
ldr r6, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
mov r12, r0
|
|
ldrb r0, [r0]
|
|
movs r7, 0x58
|
|
adds r2, r0, 0
|
|
muls r2, r7
|
|
adds r0, r6, 0
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08052B10
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
ldrh r3, [r0, 0x28]
|
|
adds r0, r2, r6
|
|
ldrh r1, [r0, 0x28]
|
|
adds r3, r1
|
|
asrs r3, 1
|
|
ldr r4, =gBattleMoveDamage
|
|
subs r1, r3
|
|
str r1, [r4]
|
|
ldr r2, =gUnknown_02024474
|
|
strb r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
asrs r0, 8
|
|
strb r0, [r2, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
asrs r0, 16
|
|
strb r0, [r2, 0x2]
|
|
lsrs r1, 24
|
|
strb r1, [r2, 0x3]
|
|
ldrb r0, [r5]
|
|
muls r0, r7
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x28]
|
|
subs r0, r3
|
|
str r0, [r4]
|
|
ldr r2, =gUnknown_0202437C
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
ldr r1, =0x0000ffff
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08052B2A
|
|
.pool
|
|
_08052B10:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08052B2A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8052A70
|
|
|
|
thumb_func_start atkA6_settypetorandomresistance
|
|
atkA6_settypetorandomresistance: @ 8052B34
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r2, r0, r1
|
|
ldrh r1, [r2]
|
|
cmp r1, 0
|
|
beq _08052B7E
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
beq _08052B7E
|
|
ldrh r0, [r2]
|
|
bl sub_8052F48
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08052C1C
|
|
ldr r1, =gBattleMons
|
|
ldr r2, =gUnknown_02024270
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08052C1C
|
|
_08052B7E:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08052D08
|
|
.pool
|
|
_08052BB4:
|
|
mov r0, r12
|
|
strb r5, [r0]
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
muls r0, r2
|
|
adds r0, r7
|
|
adds r0, 0x22
|
|
strb r5, [r0]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
strb r5, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
b _08052C0A
|
|
.pool
|
|
_08052BE0:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
adds r0, r3
|
|
ldrb r2, [r0]
|
|
strb r2, [r4]
|
|
mov r4, r10
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
ldr r7, =gBattleMons
|
|
adds r0, r7
|
|
adds r0, 0x22
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
strb r2, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
mov r1, r12
|
|
_08052C0A:
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08052D08
|
|
.pool
|
|
_08052C1C:
|
|
movs r4, 0
|
|
mov r8, r4
|
|
movs r7, 0x7F
|
|
mov r9, r7
|
|
_08052C24:
|
|
bl Random
|
|
mov r4, r9
|
|
ands r4, r0
|
|
cmp r4, 0x70
|
|
bhi _08052C24
|
|
lsls r0, r4, 1
|
|
adds r4, r0, r4
|
|
ldr r6, =gUnknown_0831ACE8
|
|
adds r3, r4, r6
|
|
ldr r1, =gUnknown_02024258
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r5, [r2]
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
mov r10, r2
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08052C80
|
|
adds r0, r4, 0x2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _08052C80
|
|
ldr r7, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
adds r3, r0, r7
|
|
movs r0, 0x21
|
|
adds r0, r3
|
|
mov r12, r0
|
|
adds r0, r4, 0x1
|
|
adds r0, r6
|
|
ldrb r5, [r0]
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
adds r1, r5, 0
|
|
cmp r0, r1
|
|
beq _08052C80
|
|
adds r0, r3, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
bne _08052BB4
|
|
_08052C80:
|
|
movs r7, 0x1
|
|
add r8, r7
|
|
ldr r0, =0x000003e7
|
|
cmp r8, r0
|
|
ble _08052C24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_02024214
|
|
mov r12, r1
|
|
ldr r3, =gUnknown_0831ACE8
|
|
adds r0, r4, 0x1
|
|
adds r0, r3
|
|
mov r9, r0
|
|
adds r5, r3, 0
|
|
_08052C9C:
|
|
ldrb r1, [r5]
|
|
cmp r1, 0xFF
|
|
bgt _08052CA6
|
|
cmp r1, 0xFE
|
|
bge _08052CE0
|
|
_08052CA6:
|
|
mov r4, r10
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 1
|
|
ldr r7, =gUnknown_02024258
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08052CE0
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x5
|
|
bhi _08052CE0
|
|
movs r6, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r6
|
|
ldr r1, =gBattleMons
|
|
adds r2, r0, r1
|
|
adds r4, r2, 0
|
|
adds r4, 0x21
|
|
ldrb r0, [r4]
|
|
mov r7, r9
|
|
ldrb r1, [r7]
|
|
cmp r0, r1
|
|
beq _08052CE0
|
|
adds r0, r2, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _08052CE0
|
|
b _08052BE0
|
|
_08052CE0:
|
|
adds r5, 0x3
|
|
movs r0, 0x3
|
|
add r8, r0
|
|
ldr r0, =0x0000014f
|
|
cmp r8, r0
|
|
bls _08052C9C
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
mov r4, r12
|
|
str r1, [r4]
|
|
_08052D08:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA6_settypetorandomresistance
|
|
|
|
thumb_func_start atkA7_setalwayshitflag
|
|
atkA7_setalwayshitflag: @ 8052D34
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020242AC
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, 0x19
|
|
negs r2, r2
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r1, [r1]
|
|
strb r1, [r0, 0x15]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA7_setalwayshitflag
|
|
|
|
thumb_func_start atkA8_copymovepermanently
|
|
atkA8_copymovepermanently: @ 8052D8C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
ldr r0, =gUnknown_020241EC
|
|
ldr r1, =0x0000ffff
|
|
adds r5, r1, 0
|
|
strh r5, [r0]
|
|
ldr r3, =gBattleMons
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x50
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 14
|
|
ands r1, r0
|
|
mov r12, r3
|
|
mov r10, r2
|
|
cmp r1, 0
|
|
beq _08052DC4
|
|
b _08052F18
|
|
_08052DC4:
|
|
ldr r0, =gUnknown_02024240
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
mov r9, r0
|
|
mov r8, r2
|
|
cmp r1, 0xA5
|
|
bne _08052DDA
|
|
b _08052F18
|
|
_08052DDA:
|
|
cmp r1, 0
|
|
bne _08052DE0
|
|
b _08052F18
|
|
_08052DE0:
|
|
cmp r1, r5
|
|
bne _08052DE6
|
|
b _08052F18
|
|
_08052DE6:
|
|
cmp r1, 0xA6
|
|
bne _08052DEC
|
|
b _08052F18
|
|
_08052DEC:
|
|
movs r7, 0
|
|
mov r5, r9
|
|
mov r0, r12
|
|
adds r0, 0xC
|
|
adds r1, r4, r0
|
|
mov r3, r8
|
|
_08052DF8:
|
|
ldrh r2, [r1]
|
|
cmp r2, 0xA6
|
|
beq _08052E0A
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
beq _08052E12
|
|
_08052E0A:
|
|
adds r1, 0x2
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _08052DF8
|
|
_08052E12:
|
|
cmp r7, 0x4
|
|
beq _08052E18
|
|
b _08052F18
|
|
_08052E18:
|
|
ldr r4, =gUnknown_020241E8
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r1, r0
|
|
mov r6, r12
|
|
adds r6, 0xC
|
|
adds r1, r6
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
adds r2, r0, 0
|
|
muls r2, r3
|
|
ldrb r4, [r4]
|
|
adds r2, r4
|
|
mov r5, r12
|
|
adds r5, 0x24
|
|
adds r2, r5
|
|
ldr r4, =gBattleMoves
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x4]
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024064
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r7, 0
|
|
ldrb r0, [r2]
|
|
muls r0, r3
|
|
adds r4, r0, r5
|
|
adds r3, r0, 0
|
|
add r2, sp, 0x4
|
|
add r5, sp, 0xC
|
|
_08052E7A:
|
|
adds r0, r3, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
adds r1, r5, r7
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _08052E7A
|
|
add r2, sp, 0x4
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r12
|
|
adds r0, 0x3B
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0xC]
|
|
str r2, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
ldr r3, =gUnknown_02024240
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08052F32
|
|
.pool
|
|
_08052F18:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08052F32:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkA8_copymovepermanently
|
|
|
|
thumb_func_start sub_8052F48
|
|
sub_8052F48: @ 8052F48
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x91
|
|
beq _08052F72
|
|
cmp r0, 0x27
|
|
beq _08052F72
|
|
cmp r0, 0x4B
|
|
beq _08052F72
|
|
cmp r0, 0x97
|
|
beq _08052F72
|
|
cmp r0, 0x9B
|
|
beq _08052F72
|
|
cmp r0, 0x1A
|
|
bne _08052F7C
|
|
_08052F72:
|
|
movs r0, 0x1
|
|
b _08052F7E
|
|
.pool
|
|
_08052F7C:
|
|
movs r0, 0
|
|
_08052F7E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8052F48
|
|
|
|
thumb_func_start sub_8052F84
|
|
sub_8052F84: @ 8052F84
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _08052FA2
|
|
cmp r1, 0xD6
|
|
beq _08052FA2
|
|
movs r0, 0x89
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08052FA2
|
|
cmp r1, 0x77
|
|
beq _08052FA2
|
|
cmp r1, 0x76
|
|
bne _08052FA6
|
|
_08052FA2:
|
|
movs r0, 0x1
|
|
b _08052FA8
|
|
_08052FA6:
|
|
movs r0, 0
|
|
_08052FA8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8052F84
|
|
|
|
thumb_func_start move_weather_interaction
|
|
move_weather_interaction: @ 8052FAC
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x97
|
|
bne _08052FD0
|
|
ldr r0, =gBattleWeather
|
|
ldrh r1, [r0]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08053010
|
|
_08052FD0:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x91
|
|
beq _08052FF2
|
|
cmp r0, 0x27
|
|
beq _08052FF2
|
|
cmp r0, 0x4B
|
|
beq _08052FF2
|
|
cmp r0, 0x97
|
|
beq _08052FF2
|
|
cmp r0, 0x9B
|
|
beq _08052FF2
|
|
cmp r0, 0x1A
|
|
bne _08053010
|
|
_08052FF2:
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053010
|
|
movs r0, 0x1
|
|
b _08053012
|
|
.pool
|
|
_08053010:
|
|
movs r0, 0x2
|
|
_08053012:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end move_weather_interaction
|
|
|
|
thumb_func_start sub_8053018
|
|
sub_8053018: @ 8053018
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r9, r0
|
|
movs r1, 0x58
|
|
mov r8, r1
|
|
ldr r7, =gUnknown_02024090
|
|
movs r0, 0x84
|
|
lsls r0, 1
|
|
mov r10, r0
|
|
_08053036:
|
|
lsls r4, r5, 1
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r4, r0
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
bl sub_8052F84
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08053076
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r4, r0
|
|
adds r0, r7
|
|
ldrh r1, [r0]
|
|
cmp r1, r10
|
|
beq _08053076
|
|
cmp r1, 0xFD
|
|
beq _08053076
|
|
adds r0, r1, 0
|
|
bl sub_8052F48
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08053084
|
|
_08053076:
|
|
ldr r1, =gBitTable
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
orrs r6, r0
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
_08053084:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08053036
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
adds r1, r6, 0
|
|
movs r2, 0xFD
|
|
bl sub_803FECC
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xF
|
|
bne _080530B8
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0805311C
|
|
.pool
|
|
_080530B8:
|
|
movs r7, 0x3
|
|
ldr r4, =gBitTable
|
|
_080530BC:
|
|
bl Random
|
|
adds r5, r7, 0
|
|
ands r5, r0
|
|
lsls r0, r5, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _080530BC
|
|
ldr r4, =gUnknown_020241EE
|
|
ldr r2, =gBattleMons
|
|
lsls r1, r5, 1
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r3, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, r0
|
|
adds r2, 0xC
|
|
adds r1, r2
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
ldr r0, =gUnknown_020241E8
|
|
strb r5, [r0]
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805311C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8053018
|
|
|
|
thumb_func_start atkAA_destinybondeffect
|
|
atkAA_destinybondeffect: @ 8053150
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atkAA_destinybondeffect
|
|
|
|
thumb_func_start b_feature_update_destiny_bond
|
|
b_feature_update_destiny_bond: @ 8053180
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080531CA
|
|
cmp r5, r3
|
|
beq _080531CA
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080531CA
|
|
movs r0, 0x40
|
|
orrs r1, r0
|
|
str r1, [r2]
|
|
_080531CA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_feature_update_destiny_bond
|
|
|
|
thumb_func_start atkAB_802A458
|
|
atkAB_802A458: @ 80531E0
|
|
push {lr}
|
|
bl b_feature_update_destiny_bond
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkAB_802A458
|
|
|
|
thumb_func_start atkAC_remaininghptopower
|
|
atkAC_remaininghptopower: @ 80531F8
|
|
push {lr}
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
movs r2, 0x28
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, 0x2C
|
|
ldrsh r1, [r1, r2]
|
|
movs r2, 0x30
|
|
bl sub_8075034
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0831C408
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
ble _08053232
|
|
adds r2, r0, 0
|
|
_08053224:
|
|
adds r3, 0x2
|
|
cmp r3, 0xB
|
|
bgt _08053232
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bgt _08053224
|
|
_08053232:
|
|
ldr r2, =gUnknown_02024400
|
|
ldr r1, =gUnknown_0831C408
|
|
adds r0, r3, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkAC_remaininghptopower
|
|
|
|
thumb_func_start atkAD_reducepprandom
|
|
atkAD_reducepprandom: @ 8053260
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, =gUnknown_02024248
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 1
|
|
adds r0, r4
|
|
ldrh r2, [r0]
|
|
mov r8, r1
|
|
cmp r2, 0
|
|
bne _08053280
|
|
b _08053408
|
|
_08053280:
|
|
ldr r0, =0x0000ffff
|
|
cmp r2, r0
|
|
bne _08053288
|
|
b _08053408
|
|
_08053288:
|
|
movs r7, 0
|
|
ldr r0, =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r3
|
|
adds r3, r0, 0
|
|
adds r3, 0xC
|
|
adds r1, r3
|
|
ldrh r1, [r1]
|
|
cmp r2, r1
|
|
beq _080532C0
|
|
adds r6, r4, 0
|
|
mov r5, r8
|
|
adds r4, r3, 0
|
|
movs r3, 0x58
|
|
_080532A4:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
bgt _080532C0
|
|
ldrb r0, [r5]
|
|
lsls r2, r0, 1
|
|
adds r2, r6
|
|
lsls r1, r7, 1
|
|
muls r0, r3
|
|
adds r1, r0
|
|
adds r1, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _080532A4
|
|
_080532C0:
|
|
cmp r7, 0x4
|
|
bne _080532C6
|
|
b _08053408
|
|
_080532C6:
|
|
mov r4, r8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x58
|
|
mov r9, r1
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r0, r7, r0
|
|
ldr r1, =gBattleMons
|
|
adds r1, 0x24
|
|
mov r10, r1
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _080532E6
|
|
b _08053408
|
|
_080532E6:
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r6, r1, 0x2
|
|
ldrb r0, [r4]
|
|
mov r3, r9
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r0, r7, r0
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bge _08053304
|
|
adds r6, r0, 0
|
|
_08053304:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r5, 0xFD
|
|
strb r5, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
ldr r2, =gUnknown_02024248
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r4, =gUnknown_02022F68
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
strb r5, [r4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x3]
|
|
strb r6, [r4, 0x4]
|
|
subs r0, 0x2
|
|
strb r0, [r4, 0x5]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r1, r7, r1
|
|
add r1, r10
|
|
ldrb r0, [r1]
|
|
subs r0, r6
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02024064
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_020242BC
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x18]
|
|
lsrs r1, 4
|
|
ldr r2, =gBitTable
|
|
lsls r0, r7, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080533B8
|
|
mov r2, r9
|
|
muls r2, r3
|
|
ldr r0, =gBattleMons
|
|
adds r0, 0x50
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080533B8
|
|
adds r1, r7, 0
|
|
adds r1, 0x9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r3, r10
|
|
adds r0, r2, r3
|
|
adds r0, r7
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_080533B8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r0, r7, r0
|
|
adds r1, 0x24
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08053422
|
|
adds r0, r2, 0
|
|
bl b_cancel_multi_turn_move_maybe
|
|
b _08053422
|
|
.pool
|
|
_08053408:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08053422:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkAD_reducepprandom
|
|
|
|
thumb_func_start atkAE_clearstatusifnotsoundproofed
|
|
atkAE_clearstatusifnotsoundproofed: @ 8053438
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
mov r8, r4
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xD7
|
|
beq _08053454
|
|
b _0805363E
|
|
_08053454:
|
|
ldr r6, =gUnknown_02024332
|
|
mov r0, r8
|
|
strb r0, [r6, 0x5]
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
bne _08053470
|
|
ldr r2, =gPlayerParty
|
|
mov r10, r2
|
|
_08053470:
|
|
ldr r4, =gBattleMons
|
|
ldrb r3, [r5]
|
|
movs r7, 0x58
|
|
adds r2, r3, 0
|
|
muls r2, r7
|
|
adds r0, r2, r4
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2B
|
|
beq _080534C4
|
|
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
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _080534D4
|
|
.pool
|
|
_080534C4:
|
|
ldrb r1, [r1]
|
|
adds r0, r3, 0
|
|
bl b_history__record_ability_usage_of_player
|
|
ldrb r0, [r6, 0x5]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x5]
|
|
_080534D4:
|
|
ldr r7, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r2, 0x2
|
|
mov r9, r2
|
|
mov r1, r9
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024474
|
|
strb r0, [r1, 0x17]
|
|
strb r0, [r7]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805357A
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r2, [r0]
|
|
ldr r1, =gBitTable
|
|
ldrb r3, [r7]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _0805357A
|
|
ldr r5, =gBattleMons
|
|
movs r6, 0x58
|
|
adds r4, r3, 0
|
|
muls r4, r6
|
|
adds r0, r4, r5
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2B
|
|
beq _08053568
|
|
adds r0, r5, 0
|
|
adds r0, 0x4C
|
|
adds r0, r4, r0
|
|
str r2, [r0]
|
|
ldrb r0, [r7]
|
|
adds r2, r0, 0
|
|
muls r2, r6
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
adds r2, r0
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _0805357A
|
|
.pool
|
|
_08053568:
|
|
ldrb r1, [r1]
|
|
adds r0, r3, 0
|
|
bl b_history__record_ability_usage_of_player
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x5]
|
|
mov r2, r9
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
_0805357A:
|
|
movs r6, 0
|
|
ldr r7, =gBattleMons
|
|
_0805357E:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
add r4, r10
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r5, 0
|
|
beq _08053636
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
beq _08053636
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _080535D0
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
b _08053600
|
|
.pool
|
|
_080535D0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053618
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _08053618
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08053618
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
_08053600:
|
|
adds r0, r7
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
b _08053624
|
|
.pool
|
|
_08053618:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_806B694
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08053624:
|
|
cmp r0, 0x2B
|
|
beq _08053636
|
|
movs r0, 0x1
|
|
lsls r0, r6
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_08053636:
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _0805357E
|
|
b _080536BC
|
|
_0805363E:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
movs r2, 0x3F
|
|
mov r8, r2
|
|
ldr r3, =gBattleMons
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
movs r1, 0x4C
|
|
adds r1, r3
|
|
mov r9, r1
|
|
add r0, r9
|
|
str r4, [r0]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r7, r3, 0
|
|
adds r7, 0x50
|
|
adds r1, r7
|
|
ldr r0, [r1]
|
|
ldr r6, =0xf7ffffff
|
|
ands r0, r6
|
|
str r0, [r1]
|
|
ldrb r0, [r2]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080536BC
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r2, [r0]
|
|
ldr r1, =gBitTable
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _080536BC
|
|
adds r0, r3, 0
|
|
muls r0, r5
|
|
add r0, r9
|
|
str r2, [r0]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r7
|
|
ldr r0, [r1]
|
|
ands r0, r6
|
|
str r0, [r1]
|
|
_080536BC:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _080536DE
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
add r0, sp, 0x4
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_080536DE:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkAE_clearstatusifnotsoundproofed
|
|
|
|
thumb_func_start atkAF_cursetarget
|
|
atkAF_cursetarget: @ 805371C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
movs r4, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
movs r3, 0x80
|
|
lsls r3, 21
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08053768
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805378C
|
|
.pool
|
|
_08053768:
|
|
orrs r2, r3
|
|
str r2, [r1]
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
muls r0, r4
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 1
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08053784
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08053784:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805378C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkAF_cursetarget
|
|
|
|
thumb_func_start atkB0_setspikes
|
|
atkB0_setspikes: @ 80537A0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r2, r0, 1
|
|
adds r0, r2, r0
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, 0xA]
|
|
cmp r0, 0x3
|
|
bne _08053804
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805381E
|
|
.pool
|
|
_08053804:
|
|
ldr r1, =gUnknown_0202428E
|
|
adds r1, r2, r1
|
|
ldrh r2, [r1]
|
|
movs r0, 0x10
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strb r0, [r3, 0xA]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805381E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB0_setspikes
|
|
|
|
thumb_func_start atkB1_setforesight
|
|
atkB1_setforesight: @ 805382C
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 22
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atkB1_setforesight
|
|
|
|
thumb_func_start atkB2_setperishsong
|
|
atkB2_setperishsong: @ 805385C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r6, 0
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
adds r7, r0, 0
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r8, r0
|
|
ldrb r1, [r7]
|
|
cmp r6, r1
|
|
bge _080538C8
|
|
movs r5, 0x20
|
|
ldr r0, =gBattleMons
|
|
mov r12, r0
|
|
ldr r0, =gUnknown_020242BC
|
|
adds r4, r0, 0
|
|
adds r4, 0xF
|
|
ldr r2, =gUnknown_020242AC
|
|
_08053884:
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0805389C
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
add r0, r12
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2B
|
|
bne _080538B4
|
|
_0805389C:
|
|
adds r6, 0x1
|
|
b _080538BC
|
|
.pool
|
|
_080538B4:
|
|
orrs r1, r5
|
|
str r1, [r2]
|
|
movs r0, 0x33
|
|
strb r0, [r4]
|
|
_080538BC:
|
|
adds r4, 0x1C
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
ldrb r0, [r7]
|
|
cmp r3, r0
|
|
blt _08053884
|
|
_080538C8:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
bl sub_803F67C
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bne _080538FC
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08053904
|
|
.pool
|
|
_080538FC:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08053904:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB2_setperishsong
|
|
|
|
thumb_func_start atkB3_rolloutdamagecalculation
|
|
atkB3_rolloutdamagecalculation: @ 8053914
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053948
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl b_cancel_multi_turn_move_maybe
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D8A60
|
|
str r0, [r1]
|
|
b _08053A60
|
|
.pool
|
|
_08053948:
|
|
ldr r2, =gBattleMons
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r3, [r1]
|
|
movs r5, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r5
|
|
adds r4, r2, 0
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r7, 0x80
|
|
lsls r7, 5
|
|
ands r0, r7
|
|
adds r6, r1, 0
|
|
mov r9, r2
|
|
ldr r1, =gUnknown_020242BC
|
|
mov r12, r1
|
|
ldr r2, =gUnknown_020241EA
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
bne _080539BA
|
|
lsls r0, r3, 3
|
|
subs r0, r3
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldrb r2, [r0, 0x11]
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x5
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x11]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
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
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
orrs r0, r7
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024268
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
mov r2, r8
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
_080539BA:
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
add r2, r12
|
|
ldrb r3, [r2, 0x11]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 28
|
|
subs r1, 0x1
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x11]
|
|
cmp r1, 0
|
|
bne _080539EE
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r5
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
ldr r2, =0xffffefff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_080539EE:
|
|
ldr r3, =gUnknown_02024400
|
|
ldr r2, =gBattleMoves
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r3]
|
|
movs r2, 0x1
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
mov r1, r12
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x11]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
movs r1, 0x5
|
|
subs r1, r0
|
|
ldr r7, =gUnknown_02024214
|
|
adds r5, r3, 0
|
|
cmp r2, r1
|
|
bge _08053A3C
|
|
adds r1, r5, 0
|
|
adds r3, r4, 0
|
|
movs r4, 0x5
|
|
_08053A28:
|
|
ldrh r0, [r1]
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
adds r2, 0x1
|
|
ldrb r0, [r3, 0x11]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
subs r0, r4, r0
|
|
cmp r2, r0
|
|
blt _08053A28
|
|
_08053A3C:
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r9
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 23
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053A5A
|
|
ldrh r0, [r5]
|
|
lsls r0, 1
|
|
strh r0, [r5]
|
|
_08053A5A:
|
|
ldr r0, [r7]
|
|
adds r0, 0x1
|
|
str r0, [r7]
|
|
_08053A60:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB3_rolloutdamagecalculation
|
|
|
|
thumb_func_start atkB4_jumpifconfusedandattackmaxed
|
|
atkB4_jumpifconfusedandattackmaxed: @ 8053A90
|
|
push {r4,r5,lr}
|
|
ldr r5, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
ldr r4, =gUnknown_02024214
|
|
cmp r0, 0
|
|
beq _08053AEC
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2, 0x1]
|
|
adds r0, r3
|
|
adds r1, r5, 0
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xC
|
|
bne _08053AEC
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _08053AF2
|
|
.pool
|
|
_08053AEC:
|
|
ldr r0, [r4]
|
|
adds r0, 0x6
|
|
str r0, [r4]
|
|
_08053AF2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atkB4_jumpifconfusedandattackmaxed
|
|
|
|
thumb_func_start sub_8053AF8
|
|
sub_8053AF8: @ 8053AF8
|
|
push {r4,r5,lr}
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053B34
|
|
ldr r2, =gUnknown_020242BC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x10]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D8A60
|
|
str r0, [r1]
|
|
b _08053B8C
|
|
.pool
|
|
_08053B34:
|
|
ldr r5, =gUnknown_020242BC
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1, 0x10]
|
|
cmp r0, 0x5
|
|
beq _08053B4C
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
_08053B4C:
|
|
ldr r3, =gUnknown_02024400
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r3]
|
|
movs r2, 0x1
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r4, =gUnknown_02024214
|
|
ldrb r1, [r0, 0x10]
|
|
cmp r2, r1
|
|
bge _08053B86
|
|
adds r1, r3, 0
|
|
adds r3, r0, 0
|
|
_08053B78:
|
|
ldrh r0, [r1]
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
adds r2, 0x1
|
|
ldrb r0, [r3, 0x10]
|
|
cmp r2, r0
|
|
blt _08053B78
|
|
_08053B86:
|
|
ldr r0, [r4]
|
|
adds r0, 0x1
|
|
str r0, [r4]
|
|
_08053B8C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8053AF8
|
|
|
|
thumb_func_start atkB6_happinesstodamagecalculation
|
|
atkB6_happinesstodamagecalculation: @ 8053BAC
|
|
push {r4,lr}
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x79
|
|
bne _08053BEC
|
|
ldr r4, =gUnknown_02024400
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2B
|
|
ldrb r1, [r0]
|
|
b _08053C02
|
|
.pool
|
|
_08053BEC:
|
|
ldr r4, =gUnknown_02024400
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
movs r1, 0xFF
|
|
subs r1, r0
|
|
_08053C02:
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
movs r1, 0x19
|
|
bl __divsi3
|
|
strh r0, [r4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB6_happinesstodamagecalculation
|
|
|
|
thumb_func_start atkB7_presentdamagecalculation
|
|
atkB7_presentdamagecalculation: @ 8053C30
|
|
push {r4,lr}
|
|
bl Random
|
|
movs r4, 0xFF
|
|
ands r4, r0
|
|
cmp r4, 0x65
|
|
bgt _08053C4C
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x28
|
|
strh r0, [r1]
|
|
b _08053C8E
|
|
.pool
|
|
_08053C4C:
|
|
cmp r4, 0xB1
|
|
bgt _08053C5C
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
b _08053C8E
|
|
.pool
|
|
_08053C5C:
|
|
cmp r4, 0xCB
|
|
bgt _08053C6C
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
b _08053C8E
|
|
.pool
|
|
_08053C6C:
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 2
|
|
str r0, [r3]
|
|
cmp r0, 0
|
|
bne _08053C88
|
|
movs r0, 0x1
|
|
str r0, [r3]
|
|
_08053C88:
|
|
ldr r0, [r3]
|
|
negs r0, r0
|
|
str r0, [r3]
|
|
_08053C8E:
|
|
cmp r4, 0xCB
|
|
bgt _08053CAC
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D8A30
|
|
b _08053CE6
|
|
.pool
|
|
_08053CAC:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x2C]
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r1, r0
|
|
bne _08053CD8
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D9EFB
|
|
b _08053CE6
|
|
.pool
|
|
_08053CD8:
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF7
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082D9EE1
|
|
_08053CE6:
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB7_presentdamagecalculation
|
|
|
|
thumb_func_start atkB8_setsafeguard
|
|
atkB8_setsafeguard: @ 8053CFC
|
|
push {r4-r7,lr}
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_0202428E
|
|
movs r6, 0x1
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r1, [r1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053D40
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
b _08053D88
|
|
.pool
|
|
_08053D40:
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r0, [r1]
|
|
movs r2, 0x20
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
ldr r5, =gUnknown_02024294
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r4, 0x5
|
|
strb r4, [r0, 0x6]
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r7]
|
|
strb r1, [r0, 0x7]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
_08053D88:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB8_setsafeguard
|
|
|
|
thumb_func_start atkB9_magnitudedamagecalculation
|
|
atkB9_magnitudedamagecalculation: @ 8053DA4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x4
|
|
bgt _08053DD0
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0xA
|
|
strh r0, [r1]
|
|
movs r3, 0x4
|
|
b _08053E3C
|
|
.pool
|
|
_08053DD0:
|
|
cmp r3, 0xE
|
|
bgt _08053DE4
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x1E
|
|
strh r0, [r1]
|
|
movs r3, 0x5
|
|
b _08053E3C
|
|
.pool
|
|
_08053DE4:
|
|
cmp r3, 0x22
|
|
bgt _08053DF8
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x32
|
|
strh r0, [r1]
|
|
movs r3, 0x6
|
|
b _08053E3C
|
|
.pool
|
|
_08053DF8:
|
|
cmp r3, 0x40
|
|
bgt _08053E0C
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x46
|
|
strh r0, [r1]
|
|
movs r3, 0x7
|
|
b _08053E3C
|
|
.pool
|
|
_08053E0C:
|
|
cmp r3, 0x54
|
|
bgt _08053E20
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x5A
|
|
strh r0, [r1]
|
|
movs r3, 0x8
|
|
b _08053E3C
|
|
.pool
|
|
_08053E20:
|
|
cmp r3, 0x5E
|
|
bgt _08053E34
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x6E
|
|
strh r0, [r1]
|
|
movs r3, 0x9
|
|
b _08053E3C
|
|
.pool
|
|
_08053E34:
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x96
|
|
strh r0, [r1]
|
|
movs r3, 0xA
|
|
_08053E3C:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r2, 0
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x3]
|
|
strb r3, [r1, 0x4]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r2, [r1]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r3, [r0]
|
|
adds r6, r1, 0
|
|
ldr r0, =gUnknown_02024214
|
|
mov r8, r0
|
|
cmp r2, r3
|
|
bcs _08053E94
|
|
adds r4, r6, 0
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r5, [r0]
|
|
ldr r1, =gBitTable
|
|
mov r12, r1
|
|
ldr r7, =gUnknown_02024210
|
|
_08053E72:
|
|
ldrb r2, [r4]
|
|
cmp r2, r5
|
|
beq _08053E88
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08053E94
|
|
_08053E88:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r3
|
|
bcc _08053E72
|
|
_08053E94:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkB9_magnitudedamagecalculation
|
|
|
|
thumb_func_start atkBA_802B140
|
|
atkBA_802B140: @ 8053EC8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =gUnknown_02024212
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08053EF8
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08053EF4
|
|
movs r0, 0x1
|
|
b _08053F12
|
|
.pool
|
|
_08053EF4:
|
|
movs r0, 0
|
|
b _08053F12
|
|
_08053EF8:
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08053F10
|
|
movs r0, 0x3
|
|
b _08053F12
|
|
.pool
|
|
_08053F10:
|
|
movs r0, 0x2
|
|
_08053F12:
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0202421C
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08053F2A
|
|
b _08054030
|
|
_08053F2A:
|
|
ldr r5, =gUnknown_0202420B
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r1, r3, r1
|
|
ldrb r2, [r5]
|
|
ldrb r1, [r1, 0xC]
|
|
cmp r2, r1
|
|
bne _08054030
|
|
ldr r4, =gBattleMons
|
|
movs r2, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r2
|
|
adds r1, r4, 0
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x27
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08054030
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
beq _08054030
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r3, 3
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x18]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08054030
|
|
ldr r0, =gUnknown_02024274
|
|
lsls r1, r3, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xE4
|
|
bne _08054030
|
|
movs r1, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldr r2, =gUnknown_020241EA
|
|
mov r8, r2
|
|
ldr r7, =gUnknown_020241E8
|
|
mov r10, r7
|
|
ldr r2, =gUnknown_020241E9
|
|
mov r9, r2
|
|
ldr r7, =gUnknown_02024280
|
|
mov r12, r7
|
|
ldrb r2, [r0]
|
|
cmp r1, r2
|
|
bge _08053FB6
|
|
ldr r6, =gUnknown_0202407E
|
|
ldr r5, =gEnemyMonIndex
|
|
ldr r4, =gUnknown_0202407A
|
|
movs r3, 0xB
|
|
adds r2, r0, 0
|
|
_08053FA0:
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
ldrb r7, [r5]
|
|
cmp r0, r7
|
|
bne _08053FAE
|
|
adds r0, r1, r4
|
|
strb r3, [r0]
|
|
_08053FAE:
|
|
adds r1, 0x1
|
|
ldrb r0, [r2]
|
|
cmp r1, r0
|
|
blt _08053FA0
|
|
_08053FB6:
|
|
movs r0, 0xE4
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r2, =gEnemyMonIndex
|
|
ldrb r0, [r2]
|
|
ldr r7, =gUnknown_0202449C
|
|
ldr r1, [r7]
|
|
adds r0, r1
|
|
adds r0, 0x80
|
|
ldrb r0, [r0]
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
mov r2, r10
|
|
strb r0, [r2]
|
|
ldr r7, =gUnknown_02024214
|
|
ldr r0, [r7]
|
|
adds r0, 0x5
|
|
str r0, [r7]
|
|
movs r0, 0x1
|
|
ldr r1, =gUnknown_02024474
|
|
strb r0, [r1, 0x18]
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
b _0805404A
|
|
.pool
|
|
_08054030:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805404A:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkBA_802B140
|
|
|
|
thumb_func_start sub_805405C
|
|
sub_805405C: @ 805405C
|
|
push {lr}
|
|
ldr r2, =gBattleWeather
|
|
ldrh r1, [r2]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054088
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _0805409A
|
|
.pool
|
|
_08054088:
|
|
movs r0, 0x20
|
|
strh r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x28
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
_0805409A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805405C
|
|
|
|
thumb_func_start atkBC_maxattackhalvehp
|
|
atkBC_maxattackhalvehp: @ 80540B4
|
|
push {r4,r5,lr}
|
|
ldr r5, =gBattleMons
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
movs r3, 0x58
|
|
muls r0, r3
|
|
adds r2, r0, r5
|
|
ldrh r0, [r2, 0x2C]
|
|
lsrs r1, r0, 1
|
|
cmp r1, 0
|
|
bne _080540CC
|
|
movs r1, 0x1
|
|
_080540CC:
|
|
movs r0, 0x19
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0xB
|
|
bgt _08054110
|
|
ldrh r0, [r2, 0x28]
|
|
cmp r0, r1
|
|
bls _08054110
|
|
movs r0, 0xC
|
|
strb r0, [r2, 0x19]
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 1
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _080540F4
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_080540F4:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0805412A
|
|
.pool
|
|
_08054110:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805412A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkBC_maxattackhalvehp
|
|
|
|
thumb_func_start atkBD_copyfoestats
|
|
atkBD_copyfoestats: @ 8054134
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
ldr r7, =gUnknown_02024214
|
|
ldr r6, =gUnknown_0202420B
|
|
movs r4, 0x58
|
|
ldr r3, =gUnknown_0202409C
|
|
ldr r5, =gEnemyMonIndex
|
|
_08054142:
|
|
ldrb r0, [r6]
|
|
adds r1, r0, 0
|
|
muls r1, r4
|
|
adds r1, r2, r1
|
|
adds r1, r3
|
|
ldrb r0, [r5]
|
|
muls r0, r4
|
|
adds r0, r2, r0
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _08054142
|
|
ldr r0, [r7]
|
|
adds r0, 0x5
|
|
str r0, [r7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkBD_copyfoestats
|
|
|
|
thumb_func_start atkBE_breakfree
|
|
atkBE_breakfree: @ 805417C
|
|
push {r4-r6,lr}
|
|
ldr r1, =gBattleMons
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r2, [r5]
|
|
movs r6, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r6
|
|
adds r4, r1, 0
|
|
adds r4, 0x50
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0xE0
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054210
|
|
ldr r1, =gUnknown_02024474
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r0, [r3]
|
|
strb r0, [r1, 0x17]
|
|
ldrb r0, [r5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
ldr r2, =0xffff1fff
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
ldrb r0, [r5]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r2, [r1]
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x14]
|
|
strb r0, [r3]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
strb r0, [r1, 0x2]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x5]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAFC5
|
|
b _080542BA
|
|
.pool
|
|
_08054210:
|
|
ldr r4, =gUnknown_020242AC
|
|
lsls r0, r2, 2
|
|
adds r3, r0, r4
|
|
ldr r1, [r3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054250
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r3]
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAFD6
|
|
b _080542BA
|
|
.pool
|
|
_08054250:
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
ldr r4, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r4
|
|
ldrh r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080542B4
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r4
|
|
ldrh r2, [r0]
|
|
ldr r1, =0x0000ffef
|
|
ands r1, r2
|
|
movs r4, 0
|
|
strh r1, [r0]
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
ldr r2, =gUnknown_02024294
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
strb r4, [r1, 0xA]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DAFDD
|
|
b _080542BA
|
|
.pool
|
|
_080542B4:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
_080542BA:
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkBE_breakfree
|
|
|
|
thumb_func_start atkBF_setcurled
|
|
atkBF_setcurled: @ 80542C8
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r2, r0
|
|
adds r1, 0x50
|
|
adds r2, r1
|
|
ldr r0, [r2]
|
|
movs r1, 0x80
|
|
lsls r1, 23
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atkBF_setcurled
|
|
|
|
thumb_func_start atkC0_recoverbasedonsunlight
|
|
atkC0_recoverbasedonsunlight: @ 80542F8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gEnemyMonIndex
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
strb r0, [r1]
|
|
ldr r7, =gBattleMons
|
|
ldrb r0, [r5]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r1, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
cmp r1, r0
|
|
beq _080543D8
|
|
ldr r4, =gBattleWeather
|
|
ldrh r0, [r4]
|
|
cmp r0, 0
|
|
beq _0805434A
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805434A
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08054378
|
|
_0805434A:
|
|
ldr r3, =gBattleMoveDamage
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 1
|
|
str r0, [r3]
|
|
adds r1, r3, 0
|
|
b _080543B2
|
|
.pool
|
|
_08054378:
|
|
ldrh r1, [r4]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080543A4
|
|
ldr r4, =gBattleMoveDamage
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r1, [r0, 0x2C]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
movs r1, 0x1E
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
adds r1, r4, 0
|
|
b _080543B2
|
|
.pool
|
|
_080543A4:
|
|
ldr r1, =gBattleMoveDamage
|
|
ldrb r0, [r5]
|
|
muls r0, r6
|
|
adds r0, r7
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 2
|
|
str r0, [r1]
|
|
_080543B2:
|
|
adds r2, r1, 0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _080543BE
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
_080543BE:
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080543F2
|
|
.pool
|
|
_080543D8:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080543F2:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC0_recoverbasedonsunlight
|
|
|
|
thumb_func_start sub_8054400
|
|
sub_8054400: @ 8054400
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
adds r4, r2
|
|
ldrb r0, [r4, 0x14]
|
|
mov r10, r0
|
|
mov r7, r10
|
|
lsls r7, 27
|
|
adds r0, r7, 0
|
|
lsrs r0, 27
|
|
mov r10, r0
|
|
movs r1, 0x2
|
|
mov r2, r10
|
|
ands r2, r1
|
|
asrs r2, 1
|
|
ldrh r7, [r4, 0x14]
|
|
mov r9, r7
|
|
mov r0, r9
|
|
lsls r0, 22
|
|
mov r9, r0
|
|
lsrs r3, r0, 27
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
orrs r2, r0
|
|
ldrb r7, [r4, 0x15]
|
|
mov r8, r7
|
|
mov r0, r8
|
|
lsls r0, 25
|
|
mov r8, r0
|
|
lsrs r3, r0, 27
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 1
|
|
orrs r2, r0
|
|
ldr r6, [r4, 0x14]
|
|
lsls r6, 12
|
|
lsrs r3, r6, 27
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrh r5, [r4, 0x16]
|
|
lsls r5, 23
|
|
lsrs r3, r5, 27
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 3
|
|
orrs r2, r0
|
|
ldrb r3, [r4, 0x17]
|
|
lsls r3, 26
|
|
lsrs r0, r3, 27
|
|
ands r1, r0
|
|
lsls r1, 4
|
|
orrs r2, r1
|
|
movs r1, 0x1
|
|
adds r4, r1, 0
|
|
mov r7, r10
|
|
ands r4, r7
|
|
mov r0, r9
|
|
lsrs r0, 27
|
|
mov r9, r0
|
|
adds r0, r1, 0
|
|
mov r7, r9
|
|
ands r0, r7
|
|
lsls r0, 1
|
|
orrs r4, r0
|
|
mov r0, r8
|
|
lsrs r0, 27
|
|
mov r8, r0
|
|
adds r0, r1, 0
|
|
mov r7, r8
|
|
ands r0, r7
|
|
lsls r0, 2
|
|
orrs r4, r0
|
|
lsrs r6, 27
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
lsls r0, 3
|
|
orrs r4, r0
|
|
lsrs r5, 27
|
|
adds r0, r1, 0
|
|
ands r0, r5
|
|
lsls r0, 4
|
|
orrs r4, r0
|
|
lsrs r3, 27
|
|
ands r1, r3
|
|
lsls r1, 5
|
|
orrs r4, r1
|
|
ldr r5, =gUnknown_02024400
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
movs r1, 0x3F
|
|
bl __divsi3
|
|
adds r0, 0x1E
|
|
strh r0, [r5]
|
|
ldr r6, =gUnknown_0202449C
|
|
ldr r5, [r6]
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
movs r1, 0x3F
|
|
bl __divsi3
|
|
adds r0, 0x1
|
|
strb r0, [r5, 0x13]
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0x8
|
|
bls _080544F0
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x13]
|
|
_080544F0:
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x13]
|
|
movs r1, 0xC0
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x13]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8054400
|
|
|
|
thumb_func_start atkC2_selectnexttarget
|
|
atkC2_selectnexttarget: @ 8054524
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gEnemyMonIndex
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r1, [r1]
|
|
adds r6, r0, 0
|
|
ldr r0, =gUnknown_02024214
|
|
mov r8, r0
|
|
cmp r1, 0
|
|
beq _0805456E
|
|
adds r3, r6, 0
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r5, [r0]
|
|
ldr r0, =gBitTable
|
|
mov r12, r0
|
|
adds r4, r1, 0
|
|
ldr r7, =gUnknown_02024210
|
|
_0805454C:
|
|
ldrb r2, [r3]
|
|
cmp r2, r5
|
|
beq _08054562
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
add r1, r12
|
|
ldr r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805456E
|
|
_08054562:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r4
|
|
bcc _0805454C
|
|
_0805456E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC2_selectnexttarget
|
|
|
|
thumb_func_start atkC3_setfutureattack
|
|
atkC3_setfutureattack: @ 8054598
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
ldr r0, =gUnknown_020243D0
|
|
mov r8, r0
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r1, [r6]
|
|
adds r0, r1, r0
|
|
ldrb r7, [r0]
|
|
cmp r7, 0
|
|
beq _080545DC
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080546CC
|
|
.pool
|
|
_080545DC:
|
|
adds r0, r1, 0
|
|
bl battle_get_per_side_status
|
|
ldr r4, =gUnknown_0202428E
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
adds 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, 1
|
|
mov r1, r8
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020241EA
|
|
mov r9, r1
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
mov r0, r8
|
|
adds r0, 0x4
|
|
ldrb r2, [r6]
|
|
adds r0, r2
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r1, [r5]
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
add r0, r8
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
mov r1, r10
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
ldrb r0, [r5]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
ldr r2, =gBattleMons
|
|
adds r0, r2
|
|
ldrb r1, [r6]
|
|
muls r1, r4
|
|
adds r1, r2
|
|
mov r4, r9
|
|
ldrh r2, [r4]
|
|
str r7, [sp]
|
|
str r7, [sp, 0x4]
|
|
ldrb r4, [r5]
|
|
str r4, [sp, 0x8]
|
|
ldrb r4, [r6]
|
|
str r4, [sp, 0xC]
|
|
bl sub_806957C
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
mov r2, r8
|
|
adds r2, 0x8
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r0, [r5]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _0805468C
|
|
ldrb r4, [r6]
|
|
lsls r4, 2
|
|
adds r4, r2
|
|
ldr r1, [r4]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
str r0, [r4]
|
|
_0805468C:
|
|
mov r5, r9
|
|
ldrh r1, [r5]
|
|
ldr r0, =0x00000161
|
|
cmp r1, r0
|
|
bne _080546BC
|
|
ldr r0, =gUnknown_02024332
|
|
mov r1, r10
|
|
strb r1, [r0, 0x5]
|
|
b _080546C4
|
|
.pool
|
|
_080546BC:
|
|
ldr r0, =gUnknown_02024332
|
|
mov r2, sp
|
|
ldrb r2, [r2, 0x10]
|
|
strb r2, [r0, 0x5]
|
|
_080546C4:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080546CC:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC3_setfutureattack
|
|
|
|
thumb_func_start atkC4_802B910
|
|
atkC4_802B910: @ 80546E4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r7, =gEnemyParty
|
|
cmp r0, 0
|
|
bne _080546FE
|
|
ldr r7, =gPlayerParty
|
|
_080546FE:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08054740
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
b _080548DC
|
|
.pool
|
|
_08054740:
|
|
ldr r6, =gUnknown_02024332
|
|
ldrb r0, [r6]
|
|
mov r8, r0
|
|
cmp r0, 0x5
|
|
bls _0805474C
|
|
b _080548A8
|
|
_0805474C:
|
|
adds r4, r6, 0
|
|
movs r5, 0x64
|
|
_08054750:
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r7, r0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08054794
|
|
ldrb r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r7, r0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08054794
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r7, r0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _08054794
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r7, r0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080547A4
|
|
_08054794:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
adds r6, r4, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bls _08054750
|
|
_080547A4:
|
|
ldr r1, =gUnknown_02024332
|
|
mov r9, r1
|
|
ldrb r2, [r1]
|
|
cmp r2, 0x5
|
|
bhi _080548A8
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, 0x2]
|
|
strb r2, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x9
|
|
str r0, [r1]
|
|
ldr r2, =gBattleMoveDamage
|
|
mov r8, r2
|
|
ldr r5, =gBaseStats
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
movs r4, 0x64
|
|
muls r0, r4
|
|
adds r0, r7, r0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r3, [r1, 0x1]
|
|
mov r2, r8
|
|
str r3, [r2]
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
muls r0, r4
|
|
adds r0, r7, r0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
lsls r0, 1
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
adds r0, 0x2
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
muls r0, r1
|
|
str r0, [r2]
|
|
ldr r3, =gBattleMons
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r2, [r1]
|
|
movs r1, 0x58
|
|
muls r1, r2
|
|
adds r1, r3
|
|
ldrh r2, [r1]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r1, [r1, 0x2]
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r1, 0x32
|
|
bl __divsi3
|
|
adds r2, r0, 0x2
|
|
mov r0, r8
|
|
str r2, [r0]
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r0, [r6]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bge _08054870
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
_08054870:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
b _080548E2
|
|
.pool
|
|
_080548A8:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080548C8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
b _080548DC
|
|
.pool
|
|
_080548C8:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x5]
|
|
ldrb r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x7]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x8]
|
|
_080548DC:
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080548E2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC4_802B910
|
|
|
|
thumb_func_start atkC5_hidepreattack
|
|
atkC5_hidepreattack: @ 80548F4
|
|
push {lr}
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
cmp r1, 0x5B
|
|
beq _08054934
|
|
cmp r1, 0x5B
|
|
bgt _0805490C
|
|
cmp r1, 0x13
|
|
beq _08054918
|
|
b _08054960
|
|
.pool
|
|
_0805490C:
|
|
ldr r0, =0x00000123
|
|
cmp r1, r0
|
|
beq _0805494C
|
|
adds r0, 0x31
|
|
cmp r1, r0
|
|
bne _08054960
|
|
_08054918:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x40
|
|
b _0805495C
|
|
.pool
|
|
_08054934:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
b _0805495C
|
|
.pool
|
|
_0805494C:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 11
|
|
_0805495C:
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
_08054960:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC5_hidepreattack
|
|
|
|
thumb_func_start atkC6_unhidepostattack
|
|
atkC6_unhidepostattack: @ 8054978
|
|
push {lr}
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
cmp r1, 0x5B
|
|
beq _080549BC
|
|
cmp r1, 0x5B
|
|
bgt _08054990
|
|
cmp r1, 0x13
|
|
beq _0805499C
|
|
b _080549EA
|
|
.pool
|
|
_08054990:
|
|
ldr r0, =0x00000123
|
|
cmp r1, r0
|
|
beq _080549D8
|
|
adds r0, 0x31
|
|
cmp r1, r0
|
|
bne _080549EA
|
|
_0805499C:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x41
|
|
negs r2, r2
|
|
b _080549E6
|
|
.pool
|
|
_080549BC:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x81
|
|
negs r2, r2
|
|
b _080549E6
|
|
.pool
|
|
_080549D8:
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
ldr r2, =0xfffbffff
|
|
_080549E6:
|
|
ands r0, r2
|
|
str r0, [r1]
|
|
_080549EA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC6_unhidepostattack
|
|
|
|
thumb_func_start atkC7_setminimize
|
|
atkC7_setminimize: @ 8054A08
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024280
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054A2C
|
|
ldr r2, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
_08054A2C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC7_setminimize
|
|
|
|
thumb_func_start sub_8054A48
|
|
sub_8054A48: @ 8054A48
|
|
push {lr}
|
|
ldr r3, =gBattleWeather
|
|
ldrh r1, [r3]
|
|
movs r2, 0x80
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054A78
|
|
ldr r2, =gBattleMoveFlags
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
b _08054A86
|
|
.pool
|
|
_08054A78:
|
|
strh r2, [r3]
|
|
ldr r0, =gUnknown_02024332
|
|
movs r1, 0x5
|
|
strb r1, [r0, 0x5]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x28
|
|
strb r1, [r0]
|
|
_08054A86:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8054A48
|
|
|
|
thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
|
|
atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0
|
|
push {r4,lr}
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
movs r0, 0x19
|
|
ldrsb r0, [r1, r0]
|
|
adds r3, r2, 0
|
|
cmp r0, 0
|
|
bne _08054AF4
|
|
movs r0, 0x1C
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0
|
|
bne _08054AF4
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0x1
|
|
beq _08054AF4
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054B20
|
|
.pool
|
|
_08054AF4:
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x28]
|
|
str r0, [r2]
|
|
ldr r1, =0x00007fff
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08054B20:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
|
|
|
|
thumb_func_start atkCA_setforcedtarget
|
|
atkCA_setforcedtarget: @ 8054B3C
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
ldr r5, =gUnknown_02024294
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x9]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCA_setforcedtarget
|
|
|
|
thumb_func_start atkCB_setcharge
|
|
atkCB_setcharge: @ 8054B88
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020242AC
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r4, =gUnknown_020242BC
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r2, [r0, 0x12]
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x12]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r2, [r0, 0x12]
|
|
movs r1, 0xF
|
|
ands r1, r2
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x12]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCB_setcharge
|
|
|
|
thumb_func_start atkCC_callterrainattack
|
|
atkCC_callterrainattack: @ 8054BEC
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_020241EA
|
|
ldr r1, =gUnknown_0831C414
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_082D86A8
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl b_movescr_stack_push
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCC_callterrainattack
|
|
|
|
thumb_func_start atkCD_cureifburnedparalysedorpoisoned
|
|
atkCD_cureifburnedparalysedorpoisoned: @ 8054C60
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gBattleMons
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
adds r5, r1, 0
|
|
adds r5, 0x4C
|
|
adds r2, r0, r5
|
|
ldr r0, [r2]
|
|
movs r1, 0xD8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054CBC
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
b _08054CD6
|
|
.pool
|
|
_08054CBC:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054CD6:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCD_cureifburnedparalysedorpoisoned
|
|
|
|
thumb_func_start atkCE_settorment
|
|
atkCE_settorment: @ 8054CE4
|
|
push {lr}
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
cmp r1, 0
|
|
bge _08054D28
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08054D34
|
|
.pool
|
|
_08054D28:
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08054D34:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCE_settorment
|
|
|
|
thumb_func_start atkCF_jumpifnodamage
|
|
atkCF_jumpifnodamage: @ 8054D3C
|
|
push {lr}
|
|
ldr r2, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r0, r2, 0x4
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08054D5C
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08054D74
|
|
_08054D5C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08054D8E
|
|
.pool
|
|
_08054D74:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054D8E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkCF_jumpifnodamage
|
|
|
|
thumb_func_start atkD0_settaunt
|
|
atkD0_settaunt: @ 8054D98
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020242BC
|
|
ldr r3, =gEnemyMonIndex
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r4
|
|
ldrb r1, [r2, 0x13]
|
|
lsls r0, r1, 28
|
|
cmp r0, 0
|
|
bne _08054DE8
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x13]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r2, [r0, 0x13]
|
|
movs r1, 0xF
|
|
ands r1, r2
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x13]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08054E02
|
|
.pool
|
|
_08054DE8:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054E02:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkD0_settaunt
|
|
|
|
thumb_func_start atkD1_sethelpinghand
|
|
atkD1_sethelpinghand: @ 8054E0C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r3, =gEnemyMonIndex
|
|
strb r0, [r3]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054E90
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r3, [r3]
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08054E90
|
|
ldr r1, =gUnknown_0202433C
|
|
ldrb r0, [r4]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
blt _08054E90
|
|
lsls r0, r3, 4
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 28
|
|
cmp r0, 0
|
|
blt _08054E90
|
|
movs r0, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08054EAA
|
|
.pool
|
|
_08054E90:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08054EAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkD1_sethelpinghand
|
|
|
|
thumb_func_start sub_8054EB4
|
|
sub_8054EB4: @ 8054EB4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08054F9A
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08054EE8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x0a3f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08054F9A
|
|
_08054EE8:
|
|
ldr r6, =gUnknown_0202420B
|
|
ldrb r0, [r6]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r7, =gEnemyMonIndex
|
|
ldrb r0, [r7]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0a3f0902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08054F46
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r2, r0, 0
|
|
adds r2, 0x29
|
|
adds r0, r4, r2
|
|
ldrb r1, [r0]
|
|
ldr r4, =gBitTable
|
|
ldr r3, =gUnknown_0202406E
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08054F9A
|
|
adds r0, r5, r2
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08054F9A
|
|
_08054F46:
|
|
ldr r0, =gBattleMons
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r4, [r1]
|
|
movs r5, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
add r0, r8
|
|
mov r9, r0
|
|
ldrh r3, [r0, 0x2E]
|
|
adds r1, r3, 0
|
|
cmp r1, 0
|
|
bne _08054F6E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
muls r0, r5
|
|
add r0, r8
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0
|
|
beq _08054F9A
|
|
_08054F6E:
|
|
cmp r1, 0xAF
|
|
beq _08054F9A
|
|
ldr r7, =gEnemyMonIndex
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x2E]
|
|
cmp r2, 0xAF
|
|
beq _08054F9A
|
|
adds r0, r3, 0
|
|
subs r0, 0x79
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bls _08054F9A
|
|
adds r0, r2, 0
|
|
subs r0, 0x79
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bhi _08054FDC
|
|
_08054F9A:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08055132
|
|
.pool
|
|
_08054FDC:
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3C
|
|
bne _08055010
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB63F
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
add r0, r8
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r1]
|
|
bl b_history__record_ability_usage_of_player
|
|
b _08055132
|
|
.pool
|
|
_08055010:
|
|
ldr r3, =gUnknown_0202449C
|
|
mov r10, r3
|
|
lsls r0, r4, 1
|
|
adds r0, 0xD0
|
|
ldr r1, [r3]
|
|
adds r6, r1, r0
|
|
mov r0, r9
|
|
ldrh r0, [r0, 0x2E]
|
|
mov r9, r0
|
|
strh r2, [r6]
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r1]
|
|
muls r0, r5
|
|
add r0, r8
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
add r0, r8
|
|
mov r2, r9
|
|
strh r2, [r0, 0x2E]
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
str r6, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r1]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r7]
|
|
strb r0, [r4]
|
|
ldrb r0, [r7]
|
|
muls r0, r5
|
|
mov r1, r8
|
|
adds r1, 0x2E
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldrb r0, [r7]
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
movs r3, 0
|
|
strb r3, [r0]
|
|
ldrb r0, [r7]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
strb r3, [r0]
|
|
ldr r1, =gUnknown_0202420B
|
|
ldrb r0, [r1]
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC8
|
|
strb r3, [r0]
|
|
ldr r2, =gUnknown_0202420B
|
|
ldrb r0, [r2]
|
|
mov r3, r10
|
|
ldr r1, [r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC9
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r3, 0xFD
|
|
strb r3, [r1]
|
|
movs r2, 0xA
|
|
strb r2, [r1, 0x1]
|
|
ldrh r0, [r6]
|
|
strb r0, [r1, 0x2]
|
|
ldrh r0, [r6]
|
|
lsrs r0, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gUnknown_02022F68
|
|
strb r3, [r1]
|
|
strb r2, [r1, 0x1]
|
|
mov r2, r9
|
|
strb r2, [r1, 0x2]
|
|
mov r3, r9
|
|
lsrs r0, r3, 8
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1, 0x4]
|
|
cmp r3, 0
|
|
beq _08055118
|
|
ldrh r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805512C
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _08055130
|
|
.pool
|
|
_08055118:
|
|
ldrh r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805512C
|
|
ldr r0, =gUnknown_02024332
|
|
movs r1, 0
|
|
strb r1, [r0, 0x5]
|
|
b _08055132
|
|
.pool
|
|
_0805512C:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
_08055130:
|
|
strb r0, [r1, 0x5]
|
|
_08055132:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8054EB4
|
|
|
|
thumb_func_start sub_8055148
|
|
sub_8055148: @ 8055148
|
|
push {r4,lr}
|
|
ldr r3, =gBattleMons
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
movs r2, 0x58
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
beq _0805519C
|
|
cmp r0, 0x19
|
|
beq _0805519C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0202420A
|
|
ldrb r0, [r4]
|
|
muls r0, r2
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080551B6
|
|
.pool
|
|
_0805519C:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080551B6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8055148
|
|
|
|
thumb_func_start atkD4_802C408
|
|
atkD4_802C408: @ 80551C0
|
|
push {r4-r7,lr}
|
|
ldr r7, =gUnknown_02024214
|
|
ldr r2, [r7]
|
|
ldrb r3, [r2, 0x1]
|
|
cmp r3, 0
|
|
beq _080551D8
|
|
cmp r3, 0x1
|
|
beq _08055210
|
|
b _0805528C
|
|
.pool
|
|
_080551D8:
|
|
ldr r1, =gUnknown_020243D0
|
|
ldr r4, =gUnknown_0202420B
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r5, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _0805525C
|
|
movs r0, 0x2
|
|
strb r0, [r3]
|
|
ldrb r0, [r4]
|
|
adds r1, 0x24
|
|
adds r1, r0, r1
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, 0x6
|
|
b _0805528A
|
|
.pool
|
|
_08055210:
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =gEnemyMonIndex
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x2]
|
|
ldr r0, =gUnknown_020243D0
|
|
adds r0, 0x24
|
|
ldrb r5, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, =gBattleMoveDamage
|
|
ldr r6, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r5, 0x58
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x2C]
|
|
lsrs r0, 1
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _08055248
|
|
str r3, [r1]
|
|
_08055248:
|
|
ldr r0, [r1]
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r0, r6
|
|
ldrh r1, [r0, 0x28]
|
|
ldrh r0, [r0, 0x2C]
|
|
cmp r1, r0
|
|
bne _08055288
|
|
_0805525C:
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
b _0805528C
|
|
.pool
|
|
_08055288:
|
|
adds r0, r2, 0x6
|
|
_0805528A:
|
|
str r0, [r7]
|
|
_0805528C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atkD4_802C408
|
|
|
|
thumb_func_start sub_8055294
|
|
sub_8055294: @ 8055294
|
|
push {lr}
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080552D8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080552E4
|
|
.pool
|
|
_080552D8:
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080552E4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8055294
|
|
|
|
thumb_func_start atkD6_doubledamagedealtifdamaged
|
|
atkD6_doubledamagedealtifdamaged: @ 80552EC
|
|
push {lr}
|
|
ldr r3, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r0, r3, 0x4
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805530C
|
|
adds r0, r2, r3
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r0, 0xC]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08055324
|
|
_0805530C:
|
|
adds r0, r3, 0
|
|
adds r0, 0x8
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805532A
|
|
adds r0, r2, r3
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r0, [r0, 0xD]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0805532A
|
|
_08055324:
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0xE]
|
|
_0805532A:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkD6_doubledamagedealtifdamaged
|
|
|
|
thumb_func_start sub_805534C
|
|
sub_805534C: @ 805534C
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 2
|
|
adds r4, r0, r1
|
|
ldr r2, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 5
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08055374
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080553A0
|
|
_08055374:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080553B0
|
|
.pool
|
|
_080553A0:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
orrs r2, r0
|
|
str r2, [r4]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080553B0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805534C
|
|
|
|
thumb_func_start atkD8_setdamagetohealthdifference
|
|
atkD8_setdamagetohealthdifference: @ 80553BC
|
|
push {lr}
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r3, r0, r2
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
ldrh r0, [r3, 0x28]
|
|
ldrh r2, [r1, 0x28]
|
|
cmp r0, r2
|
|
bhi _08055408
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805541A
|
|
.pool
|
|
_08055408:
|
|
ldr r2, =gBattleMoveDamage
|
|
ldrh r0, [r3, 0x28]
|
|
ldrh r1, [r1, 0x28]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805541A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkD8_setdamagetohealthdifference
|
|
|
|
thumb_func_start atkD9_scaledamagebyhealthratio
|
|
atkD9_scaledamagebyhealthratio: @ 8055428
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024400
|
|
ldrh r0, [r4]
|
|
cmp r0, 0
|
|
bne _08055464
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r3, [r0, 0x1]
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x28]
|
|
muls r0, r3
|
|
ldrh r1, [r1, 0x2C]
|
|
bl __divsi3
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08055464
|
|
movs r0, 0x1
|
|
strh r0, [r4]
|
|
_08055464:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkD9_scaledamagebyhealthratio
|
|
|
|
thumb_func_start atkDA_abilityswap
|
|
atkDA_abilityswap: @ 805548C
|
|
push {r4-r6,lr}
|
|
ldr r5, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
movs r4, 0x58
|
|
muls r0, r4
|
|
adds r0, r5
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
bne _080554B4
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
muls r0, r4
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080554D4
|
|
_080554B4:
|
|
cmp r1, 0x19
|
|
beq _080554D4
|
|
ldr r6, =gEnemyMonIndex
|
|
ldrb r0, [r6]
|
|
muls r0, r4
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
ldrb r3, [r0]
|
|
cmp r3, 0x19
|
|
beq _080554D4
|
|
ldr r0, =gBattleMoveFlags
|
|
ldrb r1, [r0]
|
|
movs r0, 0x29
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055504
|
|
_080554D4:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805551A
|
|
.pool
|
|
_08055504:
|
|
ldrb r1, [r2]
|
|
strb r3, [r2]
|
|
ldrb r0, [r6]
|
|
muls r0, r4
|
|
adds r0, r5
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805551A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDA_abilityswap
|
|
|
|
thumb_func_start atkDB_imprisoneffect
|
|
atkDB_imprisoneffect: @ 8055524
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r4, =gUnknown_0202420B
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055574
|
|
b _080555F6
|
|
.pool
|
|
_0805554C:
|
|
ldr r0, =gUnknown_020242AC
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080555EE
|
|
.pool
|
|
_08055574:
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
bl sub_803F548
|
|
movs r6, 0
|
|
b _080555E6
|
|
_0805558A:
|
|
adds r0, r6, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r8, r0
|
|
beq _080555E0
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_0202420B
|
|
mov r9, r7
|
|
ldr r0, =gBattleMons
|
|
mov r12, r0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
mov r2, r12
|
|
adds r2, 0xC
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r3, r0, r2
|
|
adds r5, r6, 0
|
|
muls r5, r1
|
|
_080555B4:
|
|
movs r2, 0
|
|
ldrh r1, [r3]
|
|
mov r0, r12
|
|
adds r0, 0xC
|
|
adds r0, r5, r0
|
|
_080555BE:
|
|
ldrh r7, [r0]
|
|
cmp r1, r7
|
|
bne _080555C8
|
|
cmp r1, 0
|
|
bne _080555D0
|
|
_080555C8:
|
|
adds r0, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _080555BE
|
|
_080555D0:
|
|
cmp r2, 0x4
|
|
bne _080555DC
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080555B4
|
|
_080555DC:
|
|
cmp r4, 0x4
|
|
bne _0805554C
|
|
_080555E0:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080555E6:
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0805558A
|
|
_080555EE:
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bne _08055610
|
|
_080555F6:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055610:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDB_imprisoneffect
|
|
|
|
thumb_func_start atkDC_setgrudge
|
|
atkDC_setgrudge: @ 805562C
|
|
push {lr}
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 7
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08055670
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805567C
|
|
.pool
|
|
_08055670:
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805567C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDC_setgrudge
|
|
|
|
thumb_func_start atkDD_weightdamagecalculation
|
|
atkDD_weightdamagecalculation: @ 8055684
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_0831C428
|
|
ldrh r0, [r2]
|
|
ldr r1, =0x0000ffff
|
|
cmp r0, r1
|
|
beq _080556FC
|
|
adds r6, r2, 0
|
|
ldr r0, =gBattleMons
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
adds r4, r6, 0
|
|
_080556A0:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_80C0630
|
|
ldrh r1, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r1, r0
|
|
bhi _080556CE
|
|
adds r4, 0x4
|
|
adds r5, 0x2
|
|
ldrh r0, [r4]
|
|
cmp r0, r7
|
|
bne _080556A0
|
|
_080556CE:
|
|
lsls r0, r5, 1
|
|
adds r0, r6
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
beq _080556FC
|
|
ldr r0, =gUnknown_02024400
|
|
adds r1, r5, 0x1
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _08055702
|
|
.pool
|
|
_080556FC:
|
|
ldr r1, =gUnknown_02024400
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
_08055702:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDD_weightdamagecalculation
|
|
|
|
thumb_func_start atkDE_asistattackselect
|
|
atkDE_asistattackselect: @ 805571C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x18
|
|
str r0, [sp, 0x4]
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
ldr r0, =gPlayerParty
|
|
str r0, [sp]
|
|
cmp r1, 0
|
|
beq _0805574C
|
|
ldr r1, =gEnemyParty
|
|
str r1, [sp]
|
|
_0805574C:
|
|
movs r2, 0
|
|
_0805574E:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r1, r2, 0x1
|
|
str r1, [sp, 0x8]
|
|
ldrh r0, [r0]
|
|
cmp r2, r0
|
|
beq _080557F4
|
|
movs r0, 0x64
|
|
adds r6, r2, 0
|
|
muls r6, r0
|
|
ldr r0, [sp]
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080557F4
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080557F4
|
|
movs r5, 0
|
|
ldr r1, =0x0000ffff
|
|
mov r8, r1
|
|
mov r9, r6
|
|
mov r1, r10
|
|
lsls r0, r1, 1
|
|
ldr r1, [sp, 0x4]
|
|
adds r6, r0, r1
|
|
_08055798:
|
|
movs r7, 0
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
ldr r0, [sp]
|
|
add r0, r9
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_8052F84
|
|
lsls r0, 24
|
|
adds r1, r5, 0x1
|
|
cmp r0, 0
|
|
bne _080557EE
|
|
ldr r0, =gUnknown_0831C3E0
|
|
ldrh r2, [r0]
|
|
adds r3, r0, 0
|
|
cmp r2, r8
|
|
beq _080557E2
|
|
cmp r4, r2
|
|
beq _080557D8
|
|
ldr r5, =0x0000ffff
|
|
adds r2, r3, 0
|
|
_080557CA:
|
|
adds r2, 0x2
|
|
adds r7, 0x1
|
|
ldrh r0, [r2]
|
|
cmp r0, r5
|
|
beq _080557E2
|
|
cmp r4, r0
|
|
bne _080557CA
|
|
_080557D8:
|
|
lsls r0, r7, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r8
|
|
bne _080557EE
|
|
_080557E2:
|
|
cmp r4, 0
|
|
beq _080557EE
|
|
strh r4, [r6]
|
|
adds r6, 0x2
|
|
movs r0, 0x1
|
|
add r10, r0
|
|
_080557EE:
|
|
adds r5, r1, 0
|
|
cmp r5, 0x3
|
|
ble _08055798
|
|
_080557F4:
|
|
ldr r2, [sp, 0x8]
|
|
cmp r2, 0x5
|
|
ble _0805574E
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
beq _0805586C
|
|
ldr r2, =gUnknown_02024280
|
|
ldr r0, [r2]
|
|
ldr r1, =0xfffffbff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r4, =gUnknown_020241EE
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
mov r0, r10
|
|
muls r0, r1
|
|
asrs r0, 8
|
|
lsls r0, 1
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, 0
|
|
bl sub_80458E0
|
|
ldr r1, =gEnemyMonIndex
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08055886
|
|
.pool
|
|
_0805586C:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055886:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDE_asistattackselect
|
|
|
|
thumb_func_start atkDF_setmagiccoat
|
|
atkDF_setmagiccoat: @ 805589C
|
|
push {lr}
|
|
ldr r1, =gEnemyMonIndex
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_0202437C
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bne _080558FC
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08055914
|
|
.pool
|
|
_080558FC:
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r3]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08055914:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkDF_setmagiccoat
|
|
|
|
thumb_func_start atkE0_setstealstatchange
|
|
atkE0_setstealstatchange: @ 8055920
|
|
push {lr}
|
|
ldr r2, =gUnknown_0202437C
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02024082
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bne _08055978
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _0805598E
|
|
.pool
|
|
_08055978:
|
|
ldr r0, =gUnknown_0202433C
|
|
ldrb r1, [r3]
|
|
lsls r1, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_0805598E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE0_setstealstatchange
|
|
|
|
thumb_func_start atkE1_802CBE4
|
|
atkE1_802CBE4: @ 805599C
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_02024474
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0xD8
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x17]
|
|
ldrb r0, [r4, 0x17]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r2]
|
|
movs r0, 0x9
|
|
strb r0, [r2, 0x1]
|
|
ldr r3, =gBattleMons
|
|
ldrb r1, [r4, 0x17]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r2, 0x3]
|
|
ldr r2, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_0202406C
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08055A22
|
|
adds r4, r2, 0
|
|
ldr r6, =gBitTable
|
|
_080559E2:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r5
|
|
beq _08055A04
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r2, =gUnknown_0202406C
|
|
cmp r1, 0
|
|
beq _08055A18
|
|
_08055A04:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r2, r1, 0
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
bcc _080559E2
|
|
_08055A18:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
bcc _08055A64
|
|
_08055A22:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _08055A6C
|
|
.pool
|
|
_08055A64:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_08055A6C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE1_802CBE4
|
|
|
|
thumb_func_start atkE2_cmde2
|
|
atkE2_cmde2: @ 8055A78
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r3, =gBattleMons
|
|
ldrb r0, [r4]
|
|
movs r6, 0x58
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r0, r1, r3
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1E
|
|
bne _08055AD2
|
|
adds r3, 0x4C
|
|
adds r1, r3
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r2, =gBitTable
|
|
ldrb r1, [r4]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, r1, r0
|
|
adds r0, 0x58
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
adds r0, r1, 0
|
|
muls r0, r6
|
|
adds r0, r3
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08055AD2:
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE2_cmde2
|
|
|
|
thumb_func_start atkE3_jumpiffainted
|
|
atkE3_jumpiffainted: @ 8055AF4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024214
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl get_battle_side_of_something
|
|
ldr r1, =gUnknown_02024064
|
|
strb r0, [r1]
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r1]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x28]
|
|
cmp r0, 0
|
|
bne _08055B3C
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x5]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
b _08055B42
|
|
.pool
|
|
_08055B3C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x6
|
|
str r0, [r4]
|
|
_08055B42:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end atkE3_jumpiffainted
|
|
|
|
thumb_func_start sub_8055B48
|
|
sub_8055B48: @ 8055B48
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022FF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bhi _08055BE4
|
|
lsls r0, 2
|
|
ldr r1, =_08055B64
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08055B64:
|
|
.4byte _08055B84
|
|
.4byte _08055B90
|
|
.4byte _08055B9C
|
|
.4byte _08055BA8
|
|
.4byte _08055BB4
|
|
.4byte _08055BC0
|
|
.4byte _08055BCC
|
|
.4byte _08055BD8
|
|
_08055B84:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
b _08055BE8
|
|
.pool
|
|
_08055B90:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
b _08055BE8
|
|
.pool
|
|
_08055B9C:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1B
|
|
b _08055BE8
|
|
.pool
|
|
_08055BA8:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x17
|
|
b _08055BE8
|
|
.pool
|
|
_08055BB4:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x16
|
|
b _08055BE8
|
|
.pool
|
|
_08055BC0:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x18
|
|
b _08055BE8
|
|
.pool
|
|
_08055BCC:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x7
|
|
b _08055BE8
|
|
.pool
|
|
_08055BD8:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x8
|
|
b _08055BE8
|
|
.pool
|
|
_08055BE4:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x5
|
|
_08055BE8:
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8055B48
|
|
|
|
thumb_func_start atkE5_pickupitemcalculation
|
|
atkE5_pickupitemcalculation: @ 8055C00
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
bl InBattlePike
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055C18
|
|
b _08055DD8
|
|
_08055C18:
|
|
bl InBattlePyramid
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08055CC4
|
|
movs r6, 0
|
|
mov r7, sp
|
|
ldr r0, =gBaseStats
|
|
mov r8, r0
|
|
_08055C2A:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
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 _08055C6C
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x17]
|
|
b _08055C76
|
|
.pool
|
|
_08055C6C:
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x16]
|
|
_08055C76:
|
|
cmp r0, 0x35
|
|
bne _08055CB6
|
|
cmp r5, 0
|
|
beq _08055CB6
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
beq _08055CB6
|
|
ldrh r0, [r7]
|
|
cmp r0, 0
|
|
bne _08055CB6
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08055CB6
|
|
bl CalculateBattlePyramidPickupItemId
|
|
strh r0, [r7]
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
_08055CB6:
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08055C2A
|
|
b _08055DD8
|
|
.pool
|
|
_08055CC4:
|
|
movs r6, 0
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
ldr r7, =gPlayerParty
|
|
mov r10, sp
|
|
_08055CCE:
|
|
mov r4, r8
|
|
muls r4, r6
|
|
adds r4, r7
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, r10
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08055D30
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
ldr r1, =gBaseStats
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x17]
|
|
b _08055D3C
|
|
.pool
|
|
_08055D10:
|
|
mov r0, r8
|
|
muls r0, r6
|
|
adds r0, r7
|
|
adds r2, r1, 0
|
|
adds r2, 0x63
|
|
subs r2, r4
|
|
lsls r2, 1
|
|
ldr r1, =gRarePickupItems
|
|
adds r2, r1
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
b _08055DD0
|
|
.pool
|
|
_08055D30:
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
ldr r1, =gBaseStats
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x16]
|
|
_08055D3C:
|
|
adds r1, r6, 0x1
|
|
mov r9, r1
|
|
cmp r0, 0x35
|
|
bne _08055DD0
|
|
cmp r5, 0
|
|
beq _08055DD0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
beq _08055DD0
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _08055DD0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08055DD0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
mov r0, r8
|
|
muls r0, r6
|
|
adds r0, r7
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
subs r0, 0x1
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x9
|
|
bls _08055D9C
|
|
movs r1, 0x9
|
|
_08055D9C:
|
|
movs r2, 0
|
|
b _08055DAE
|
|
.pool
|
|
_08055DA4:
|
|
adds r0, r4, 0
|
|
subs r0, 0x62
|
|
cmp r0, 0x1
|
|
bls _08055D10
|
|
adds r2, 0x1
|
|
_08055DAE:
|
|
cmp r2, 0x8
|
|
bgt _08055DD0
|
|
ldr r0, =gPickupProbabilities
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
ble _08055DA4
|
|
mov r0, r8
|
|
muls r0, r6
|
|
adds r0, r7
|
|
adds r2, r1, r2
|
|
lsls r2, 1
|
|
ldr r1, =gPickupItems
|
|
adds r2, r1
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
_08055DD0:
|
|
mov r6, r9
|
|
cmp r6, 0x5
|
|
bgt _08055DD8
|
|
b _08055CCE
|
|
_08055DD8:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE5_pickupitemcalculation
|
|
|
|
thumb_func_start atkE6_castform_transform
|
|
atkE6_castform_transform: @ 8055DFC
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0x17]
|
|
strb r0, [r4]
|
|
ldr r1, =gBattleMons
|
|
ldrb r2, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
ands r0, r1
|
|
ldr r3, =gUnknown_0202449C
|
|
cmp r0, 0
|
|
beq _08055E2C
|
|
ldr r0, [r3]
|
|
adds r0, 0x7F
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08055E2C:
|
|
ldr r0, [r3]
|
|
adds r0, 0x7F
|
|
ldrb r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE6_castform_transform
|
|
|
|
thumb_func_start atkE7_castform_switch
|
|
atkE7_castform_switch: @ 8055E64
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
ldrb r0, [r0, 0x17]
|
|
bl castform_switch
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08055E8E
|
|
ldr r0, =gUnknown_082DB4A9
|
|
bl b_push_move_exec
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7F
|
|
subs r1, r4, 0x1
|
|
strb r1, [r0]
|
|
_08055E8E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE7_castform_switch
|
|
|
|
thumb_func_start atkE8_settypebasedhalvers
|
|
atkE8_settypebasedhalvers: @ 8055EA4
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
ldr r2, =gBattleMoves
|
|
ldr r0, =gUnknown_020241EA
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC9
|
|
bne _08055EF4
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 9
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08055F18
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
b _08055F1C
|
|
.pool
|
|
_08055EF4:
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 10
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08055F18
|
|
orrs r1, r3
|
|
str r1, [r2]
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
movs r4, 0x1
|
|
_08055F18:
|
|
cmp r4, 0
|
|
beq _08055F38
|
|
_08055F1C:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08055F52
|
|
.pool
|
|
_08055F38:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08055F52:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE8_settypebasedhalvers
|
|
|
|
thumb_func_start atkE9_seteffectbyweather
|
|
atkE9_seteffectbyweather: @ 8055F5C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0xD
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08055FFC
|
|
str r0, [sp]
|
|
movs r0, 0x13
|
|
movs r1, 0
|
|
movs r2, 0x4D
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08055FFC
|
|
ldr r2, =gBattleWeather
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08055F9A
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0xE]
|
|
_08055F9A:
|
|
ldrh r1, [r2]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055FB8
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r0, 0x8B
|
|
b _08055FFA
|
|
.pool
|
|
_08055FB8:
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055FCC
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r0, 0x85
|
|
b _08055FFA
|
|
.pool
|
|
_08055FCC:
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055FE0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r0, 0x8A
|
|
b _08055FFA
|
|
.pool
|
|
_08055FE0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08055FF4
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r0, 0x8F
|
|
b _08055FFA
|
|
.pool
|
|
_08055FF4:
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
_08055FFA:
|
|
strb r0, [r1, 0x13]
|
|
_08055FFC:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkE9_seteffectbyweather
|
|
|
|
thumb_func_start atkEA_recycleitem
|
|
atkEA_recycleitem: @ 8056014
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r7, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r7]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, 0xB8
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
ldrh r5, [r6]
|
|
cmp r5, 0
|
|
beq _08056094
|
|
ldr r4, =gBattleMons
|
|
movs r3, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r3
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0
|
|
bne _08056094
|
|
ldr r1, =gUnknown_02024208
|
|
strh r5, [r1]
|
|
strh r0, [r6]
|
|
ldrb r0, [r7]
|
|
muls r0, r3
|
|
adds r0, r4
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r7]
|
|
muls r0, r3
|
|
adds r1, r4, 0
|
|
adds r1, 0x2E
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r7]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _080560AE
|
|
.pool
|
|
_08056094:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_080560AE:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkEA_recycleitem
|
|
|
|
thumb_func_start atkEB_settypetoterrain
|
|
atkEB_settypetoterrain: @ 80560BC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gBattleMons
|
|
mov r8, r0
|
|
ldr r7, =gUnknown_0202420B
|
|
ldrb r0, [r7]
|
|
movs r6, 0x58
|
|
muls r0, r6
|
|
mov r1, r8
|
|
adds r3, r0, r1
|
|
movs r0, 0x21
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldr r5, =gUnknown_0831C483
|
|
ldr r4, =gUnknown_02022FF0
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r2, [r0]
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
adds r1, r2, 0
|
|
cmp r0, r1
|
|
beq _08056144
|
|
adds r0, r3, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _08056144
|
|
mov r0, r12
|
|
strb r2, [r0]
|
|
ldrb r0, [r7]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
add r1, r8
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
adds r1, 0x22
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02022F58
|
|
movs r0, 0xFD
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _0805615E
|
|
.pool
|
|
_08056144:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_0805615E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkEB_settypetoterrain
|
|
|
|
thumb_func_start atkEC_802D2A0
|
|
atkEC_802D2A0: @ 805616C
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r6, 0x1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0805620C
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0805620C
|
|
ldr r0, =gUnknown_0202421C
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805620C
|
|
ldr r1, =gUnknown_02024274
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r2, [r0]
|
|
cmp r2, 0xE4
|
|
bne _0805620C
|
|
ldr r0, =gUnknown_0202407A
|
|
adds r0, r3, r0
|
|
movs r1, 0xB
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_020241EA
|
|
strh r2, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_02024474
|
|
strb r6, [r0, 0x18]
|
|
ldrb r1, [r5]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
strb r0, [r5]
|
|
b _08056226
|
|
.pool
|
|
_0805620C:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08056226:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkEC_802D2A0
|
|
|
|
thumb_func_start atkED_802D364
|
|
atkED_802D364: @ 8056230
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_0202420E
|
|
ldr r3, =gUnknown_0202420B
|
|
ldrb r0, [r3]
|
|
strb r0, [r1]
|
|
ldr r2, =gEnemyMonIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r1, 0
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
bne _08056264
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x17]
|
|
strb r0, [r2]
|
|
strb r0, [r3]
|
|
b _0805626A
|
|
.pool
|
|
_08056264:
|
|
ldr r1, =gUnknown_02024474
|
|
ldrb r0, [r1, 0x17]
|
|
strb r0, [r2]
|
|
_0805626A:
|
|
ldrb r0, [r4]
|
|
strb r0, [r1, 0x17]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkED_802D364
|
|
|
|
thumb_func_start atkEE_removereflectlightscreen
|
|
atkEE_removereflectlightscreen: @ 8056284
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02024294
|
|
lsls r3, r0, 1
|
|
adds r0, r3, r0
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _080562AC
|
|
ldrb r1, [r4, 0x2]
|
|
cmp r1, 0
|
|
beq _080562E4
|
|
_080562AC:
|
|
ldr r2, =gUnknown_0202428E
|
|
adds r2, r3, r2
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000fffe
|
|
ands r0, r1
|
|
movs r3, 0
|
|
ldr r1, =0x0000fffd
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
strb r3, [r4]
|
|
strb r3, [r4, 0x2]
|
|
ldr r1, =gUnknown_02024474
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x18]
|
|
strb r0, [r1, 0x19]
|
|
b _080562EA
|
|
.pool
|
|
_080562E4:
|
|
ldr r0, =gUnknown_02024474
|
|
strb r1, [r0, 0x18]
|
|
strb r1, [r0, 0x19]
|
|
_080562EA:
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkEE_removereflectlightscreen
|
|
|
|
thumb_func_start sub_8056300
|
|
sub_8056300: @ 8056300
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_02024068
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805630E
|
|
b _08056696
|
|
_0805630E:
|
|
ldr r5, =gUnknown_02024064
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r0, [r0]
|
|
strb r0, [r5]
|
|
ldr r6, =gEnemyMonIndex
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strb r0, [r6]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805635C
|
|
movs r0, 0
|
|
movs r1, 0x5
|
|
bl dp01_build_cmdbuf_x0D_a
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBE02
|
|
b _08056694
|
|
.pool
|
|
_0805635C:
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08056384
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
bl dp01_build_cmdbuf_x0D_a
|
|
ldrb r0, [r5]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBDCA
|
|
b _08056694
|
|
.pool
|
|
_08056384:
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _080563B0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7C
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r0, r1, 8
|
|
subs r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
b _080563C8
|
|
.pool
|
|
_080563B0:
|
|
ldr r3, =gBaseStats
|
|
ldr r2, =gBattleMons
|
|
ldrb r1, [r6]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r5, [r0, 0x8]
|
|
_080563C8:
|
|
ldr r2, =gUnknown_02024208
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x5
|
|
bhi _080563D2
|
|
b _080564C8
|
|
_080563D2:
|
|
subs r0, 0x6
|
|
cmp r0, 0x6
|
|
bls _080563DA
|
|
b _080564D2
|
|
_080563DA:
|
|
lsls r0, 2
|
|
ldr r1, =_080563F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080563F4:
|
|
.4byte _08056410
|
|
.4byte _08056440
|
|
.4byte _08056452
|
|
.4byte _08056480
|
|
.4byte _080564B0
|
|
.4byte _08056472
|
|
.4byte _08056472
|
|
_08056410:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xB
|
|
beq _080564A4
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xB
|
|
beq _080564A4
|
|
cmp r1, 0x6
|
|
beq _080564A4
|
|
cmp r0, 0x6
|
|
beq _080564A4
|
|
b _08056472
|
|
.pool
|
|
_08056440:
|
|
bl sav1_map_get_light_level
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0xA
|
|
cmp r0, 0x5
|
|
bne _080564D2
|
|
movs r4, 0x23
|
|
b _080564D2
|
|
_08056452:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x27
|
|
bhi _08056472
|
|
movs r0, 0x28
|
|
subs r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bhi _080564D2
|
|
_08056472:
|
|
movs r4, 0xA
|
|
b _080564D2
|
|
.pool
|
|
_08056480:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl pokedex_flag_operation
|
|
lsls r0, 24
|
|
movs r4, 0xA
|
|
cmp r0, 0
|
|
beq _080564D2
|
|
_080564A4:
|
|
movs r4, 0x1E
|
|
b _080564D2
|
|
.pool
|
|
_080564B0:
|
|
ldr r0, =gUnknown_03005D10
|
|
ldrb r0, [r0, 0x13]
|
|
adds r0, 0xA
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x28
|
|
bls _080564D2
|
|
movs r4, 0x28
|
|
b _080564D2
|
|
.pool
|
|
_080564C8:
|
|
ldr r1, =gUnknown_0831C48D
|
|
ldrh r0, [r2]
|
|
subs r0, 0x2
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
_080564D2:
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
ldr r5, =gBattleMons
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r2, [r1]
|
|
movs r1, 0x58
|
|
adds r4, r2, 0
|
|
muls r4, r1
|
|
adds r3, r4, r5
|
|
ldrh r2, [r3, 0x2C]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
ldrh r2, [r3, 0x28]
|
|
lsls r2, 1
|
|
subs r2, r1, r2
|
|
muls r0, r2
|
|
bl __divsi3
|
|
adds r6, r0, 0
|
|
adds r5, 0x4C
|
|
adds r4, r5
|
|
ldr r4, [r4]
|
|
movs r0, 0x27
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805650E
|
|
lsls r6, 1
|
|
_0805650E:
|
|
movs r0, 0xD8
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08056522
|
|
lsls r0, r6, 4
|
|
subs r0, r6
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r6, r0, 0
|
|
_08056522:
|
|
ldr r1, =gUnknown_02024208
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x5
|
|
beq _08056564
|
|
cmp r0, 0x1
|
|
bne _08056550
|
|
ldr r0, =gUnknown_03005D10
|
|
ldrb r1, [r0, 0x5]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
b _08056564
|
|
.pool
|
|
_08056550:
|
|
ldr r0, =gUnknown_03005D10
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
adds r1, r0, 0
|
|
adds r1, 0x34
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFE
|
|
bhi _08056564
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08056564:
|
|
cmp r6, 0xFE
|
|
bls _080565C8
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
bl dp01_build_cmdbuf_x0D_a
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD84
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r2, =gUnknown_02024208
|
|
movs r1, 0x26
|
|
bl pokemon_setattr
|
|
bl calc_player_party_count
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
beq _08056656
|
|
b _08056680
|
|
.pool
|
|
_080565C8:
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
adds r1, r6, 0
|
|
bl __udivsi3
|
|
bl Sqrt
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl Sqrt
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, =0x000ffff0
|
|
adds r1, r6, 0
|
|
bl __udivsi3
|
|
adds r6, r0, 0
|
|
movs r4, 0
|
|
b _080565FA
|
|
.pool
|
|
_080565F4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080565FA:
|
|
cmp r4, 0x3
|
|
bhi _0805660A
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r6
|
|
bcc _080565F4
|
|
_0805660A:
|
|
ldr r5, =gUnknown_02024208
|
|
ldrh r0, [r5]
|
|
cmp r0, 0x1
|
|
bne _08056614
|
|
movs r4, 0x4
|
|
_08056614:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl dp01_build_cmdbuf_x0D_a
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
cmp r4, 0x4
|
|
bne _0805668C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBD84
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
bl calc_player_party_count
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _08056680
|
|
_08056656:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
b _08056696
|
|
.pool
|
|
_08056680:
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
b _08056696
|
|
.pool
|
|
_0805668C:
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DBDD4
|
|
_08056694:
|
|
str r0, [r1]
|
|
_08056696:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8056300
|
|
|
|
thumb_func_start atkF0_catch_pokemon
|
|
atkF0_catch_pokemon: @ 80566A8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =gUnknown_0202406E
|
|
mov r9, r0
|
|
ldr r5, =gUnknown_0202420B
|
|
ldrb r0, [r5]
|
|
movs r6, 0x1
|
|
eors r0, r6
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
movs r7, 0x64
|
|
muls r0, r7
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
add r0, r8
|
|
bl pokemon_catch
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056792
|
|
bl sub_813B21C
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08056734
|
|
ldr r0, =gUnknown_02024332
|
|
strb r1, [r0, 0x5]
|
|
ldr r4, =gStringVar1
|
|
ldr r0, =0x00004036
|
|
bl VarGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sav3_get_box_name
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldr r2, =gStringVar2
|
|
movs r1, 0x2
|
|
bl GetMonData
|
|
b _0805677E
|
|
.pool
|
|
_08056734:
|
|
ldr r4, =gStringVar1
|
|
ldr r0, =0x00004036
|
|
bl VarGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sav3_get_box_name
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
add r0, r8
|
|
ldr r2, =gStringVar2
|
|
movs r1, 0x2
|
|
bl GetMonData
|
|
ldr r4, =gStringVar3
|
|
bl get_unknown_box_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sav3_get_box_name
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r1, =gUnknown_02024332
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
_0805677E:
|
|
ldr r0, =0x000008ab
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08056792
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x5]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x5]
|
|
_08056792:
|
|
ldr r0, =gUnknown_0202406E
|
|
mov r10, r0
|
|
ldr r1, =gUnknown_0202420B
|
|
mov r9, r1
|
|
ldrb r0, [r1]
|
|
movs r4, 0x1
|
|
eors r0, r4
|
|
lsls r0, 1
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r6, =gEnemyParty
|
|
adds r0, r6
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
ldr r5, =gUnknown_03005D10
|
|
strh r0, [r5, 0x28]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
eors r0, r4
|
|
lsls r0, 1
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r6
|
|
adds r2, r5, 0
|
|
adds r2, 0x2A
|
|
movs r1, 0x2
|
|
bl GetMonData
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
eors r4, r0
|
|
lsls r4, 1
|
|
add r4, r10
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r6
|
|
movs r1, 0x26
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r1, 0x3D
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkF0_catch_pokemon
|
|
|
|
thumb_func_start atkF1_802D95C
|
|
atkF1_802D95C: @ 8056850
|
|
push {r4,r5,lr}
|
|
ldr r4, =gEnemyParty
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl pokedex_flag_operation
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080568A8
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
b _080568C2
|
|
.pool
|
|
_080568A8:
|
|
adds r0, r5, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl SetPokedexFlag
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
_080568C2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkF1_802D95C
|
|
|
|
thumb_func_start sub_80568CC
|
|
sub_80568CC: @ 80568CC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gEnemyParty
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bls _080568E8
|
|
b _08056A2C
|
|
_080568E8:
|
|
lsls r0, 2
|
|
ldr r1, =_08056900
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08056900:
|
|
.4byte _08056918
|
|
.4byte _0805692A
|
|
.4byte _08056978
|
|
.4byte _080569C8
|
|
.4byte _080569E0
|
|
.4byte _08056A18
|
|
_08056918:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _08056A06
|
|
_0805692A:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056938
|
|
b _08056A2C
|
|
_08056938:
|
|
bl FreeAllWindowBuffers
|
|
adds r0, r4, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, =gBattleMons
|
|
ldr r1, =gEnemyMonIndex
|
|
ldrb r2, [r1]
|
|
movs r1, 0x58
|
|
muls r2, r1
|
|
adds r1, r3, 0
|
|
adds r1, 0x54
|
|
adds r1, r2, r1
|
|
ldr r1, [r1]
|
|
adds r3, 0x48
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl sub_80BFDF4
|
|
ldr r1, =gUnknown_02024332
|
|
strb r0, [r1, 0x1]
|
|
b _08056A08
|
|
.pool
|
|
_08056978:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08056A2C
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
bne _08056A2C
|
|
ldr r2, =gTasks
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r1, [r4, 0x1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08056A2C
|
|
ldr r0, =vblank_cb_08078BB4
|
|
bl SetVBlankCallback
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08056A2C
|
|
.pool
|
|
_080569C8:
|
|
bl c2_berry_program_update_menu
|
|
bl sub_8035AA4
|
|
ldr r1, =gUnknown_02022E20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _08056A06
|
|
.pool
|
|
_080569E0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08056A2C
|
|
ldr r0, =0x0000ffff
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
_08056A06:
|
|
ldr r1, =gUnknown_02024332
|
|
_08056A08:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08056A2C
|
|
.pool
|
|
_08056A18:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08056A2C
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_08056A2C:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80568CC
|
|
|
|
thumb_func_start sub_8056A3C
|
|
sub_8056A3C: @ 8056A3C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
ldr r4, [sp, 0x40]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x10]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x1C]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x14]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r10, r4
|
|
movs r1, 0
|
|
add r0, sp, 0xC
|
|
strh r1, [r0]
|
|
ldr r6, [sp, 0x10]
|
|
cmp r6, r3
|
|
ble _08056A76
|
|
b _08056B62
|
|
_08056A76:
|
|
mov r4, r8
|
|
adds r0, r6, 0x1
|
|
str r0, [sp, 0x18]
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r4, r2
|
|
bgt _08056B58
|
|
add r5, sp, 0xC
|
|
lsls r7, r6, 24
|
|
mov r9, r7
|
|
_08056A88:
|
|
ldr r0, [sp, 0x10]
|
|
cmp r6, r0
|
|
bne _08056AB4
|
|
cmp r4, r8
|
|
bne _08056A9C
|
|
ldr r0, =0x00001022
|
|
b _08056AFE
|
|
.pool
|
|
_08056A9C:
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r4, r2
|
|
bne _08056AAC
|
|
ldr r0, =0x00001024
|
|
b _08056AFE
|
|
.pool
|
|
_08056AAC:
|
|
ldr r0, =0x00001023
|
|
b _08056AFE
|
|
.pool
|
|
_08056AB4:
|
|
ldr r7, [sp, 0x14]
|
|
cmp r6, r7
|
|
bne _08056AE0
|
|
cmp r4, r8
|
|
bne _08056AC8
|
|
ldr r0, =0x00001028
|
|
b _08056AFE
|
|
.pool
|
|
_08056AC8:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r4, r0
|
|
bne _08056AD8
|
|
ldr r0, =0x0000102a
|
|
b _08056AFE
|
|
.pool
|
|
_08056AD8:
|
|
ldr r0, =0x00001029
|
|
b _08056AFE
|
|
.pool
|
|
_08056AE0:
|
|
cmp r4, r8
|
|
bne _08056AEC
|
|
ldr r0, =0x00001025
|
|
b _08056AFE
|
|
.pool
|
|
_08056AEC:
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r4, r2
|
|
bne _08056AFC
|
|
ldr r0, =0x00001027
|
|
b _08056AFE
|
|
.pool
|
|
_08056AFC:
|
|
ldr r0, =0x00001026
|
|
_08056AFE:
|
|
strh r0, [r5]
|
|
movs r1, 0x1
|
|
mov r0, r10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056B0E
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
_08056B0E:
|
|
movs r0, 0x80
|
|
mov r7, r10
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08056B38
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
mov r7, r9
|
|
lsrs r3, r7, 24
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
b _08056B50
|
|
.pool
|
|
_08056B38:
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
mov r7, r9
|
|
lsrs r3, r7, 24
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
_08056B50:
|
|
adds r4, 0x1
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r4, r0
|
|
ble _08056A88
|
|
_08056B58:
|
|
ldr r6, [sp, 0x18]
|
|
ldr r2, [sp, 0x14]
|
|
cmp r6, r2
|
|
bgt _08056B62
|
|
b _08056A76
|
|
_08056B62:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8056A3C
|
|
|
|
thumb_func_start sub_8056B74
|
|
sub_8056B74: @ 8056B74
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
add r0, sp, 0xC
|
|
movs r2, 0x1
|
|
strh r2, [r0]
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2]
|
|
lsls r3, 25
|
|
movs r0, 0x90
|
|
lsls r0, 20
|
|
adds r3, r0
|
|
lsrs r3, 24
|
|
str r2, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
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 sub_8056B74
|
|
|
|
thumb_func_start sub_8056BAC
|
|
sub_8056BAC: @ 8056BAC
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
add r0, sp, 0xC
|
|
ldr r1, =0x00001016
|
|
strh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
lsls r3, 25
|
|
movs r0, 0x90
|
|
lsls r0, 20
|
|
adds r3, r0
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
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
|
|
.pool
|
|
thumb_func_end sub_8056BAC
|
|
|
|
thumb_func_start atkF3_receive_new_pokemon_maybe
|
|
atkF3_receive_new_pokemon_maybe: @ 8056BEC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_02024332
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x4
|
|
bls _08056C04
|
|
b _08056E62
|
|
_08056C04:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_08056C18
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08056C18:
|
|
.4byte _08056C2C
|
|
.4byte _08056C60
|
|
.4byte _08056CFC
|
|
.4byte _08056DD4
|
|
.4byte _08056E2C
|
|
_08056C2C:
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
strb r4, [r1, 0x1]
|
|
movs r0, 0
|
|
bl sub_8056B74
|
|
b _08056E62
|
|
.pool
|
|
_08056C60:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056C86
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _08056C86
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_08056C86:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056CAE
|
|
ldr r4, =gUnknown_02024332
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _08056CAE
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4, 0x1]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x1]
|
|
bl sub_8056B74
|
|
_08056CAE:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056CE0
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _08056CF2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
b _08056E62
|
|
.pool
|
|
_08056CE0:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08056CEA
|
|
b _08056E62
|
|
_08056CEA:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_02024332
|
|
_08056CF2:
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
b _08056E62
|
|
.pool
|
|
_08056CFC:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056D0A
|
|
b _08056E62
|
|
_08056D0A:
|
|
ldr r7, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202420B
|
|
mov r10, r0
|
|
ldrb r0, [r0]
|
|
movs r4, 0x1
|
|
eors r0, r4
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
movs r1, 0x64
|
|
mov r9, r1
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
add r0, r8
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r2, [r1]
|
|
adds r2, 0x6D
|
|
movs r1, 0x2
|
|
bl GetMonData
|
|
bl FreeAllWindowBuffers
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
eors r0, r4
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r8
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
eors r0, r4
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r8
|
|
bl pokemon_get_gender
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
eors r4, r0
|
|
lsls r4, 1
|
|
adds r4, r7
|
|
ldrh r0, [r4]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r8
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r1, 0x6D
|
|
str r0, [sp]
|
|
ldr r0, =sub_8038420
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x2
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl do_choose_name_or_words_screen
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08056E62
|
|
.pool
|
|
_08056DD4:
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
bne _08056E62
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08056E62
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
eors r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r2, [r1]
|
|
adds r2, 0x6D
|
|
movs r1, 0x2
|
|
bl pokemon_setattr
|
|
b _08056E48
|
|
.pool
|
|
_08056E2C:
|
|
bl calc_player_party_count
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _08056E48
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x5
|
|
str r0, [r1]
|
|
b _08056E62
|
|
.pool
|
|
_08056E48:
|
|
ldr r3, =gUnknown_02024214
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x3]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
orrs r1, r0
|
|
str r1, [r3]
|
|
_08056E62:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end atkF3_receive_new_pokemon_maybe
|
|
|
|
thumb_func_start sub_8056E78
|
|
sub_8056E78: @ 8056E78
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
adds r1, r2
|
|
ldr r0, =gBattleMoveDamage
|
|
ldr r2, [r0]
|
|
ldrh r0, [r1, 0x28]
|
|
subs r0, r2
|
|
strh r0, [r1, 0x28]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8056E78
|
|
|
|
thumb_func_start atkF5_reset_attacker_bd_x4C
|
|
atkF5_reset_attacker_bd_x4C: @ 8056EA8
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_0202420B
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end atkF5_reset_attacker_bd_x4C
|
|
|
|
thumb_func_start sub_8056ED0
|
|
sub_8056ED0: @ 8056ED0
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8056ED0
|
|
|
|
thumb_func_start sub_8056EDC
|
|
sub_8056EDC: @ 8056EDC
|
|
ldr r1, =gUnknown_02024083
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_02024082
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8056EDC
|
|
|
|
thumb_func_start sub_8056EF8
|
|
sub_8056EF8: @ 8056EF8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024214
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_02024064
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl dp01_build_cmdbuf_x09_9_9_9
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
ldr r0, [r5]
|
|
adds r0, 0x2
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8056EF8
|
|
|
|
thumb_func_start sub_8056F28
|
|
sub_8056F28: @ 8056F28
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_020244A8
|
|
ldr r6, =gBattleTypeFlags
|
|
ldr r0, [r6]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056F3E
|
|
bl sub_81D55D0
|
|
_08056F3E:
|
|
ldr r4, =gUnknown_0202449C
|
|
movs r0, 0xA9
|
|
lsls r0, 2
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x20
|
|
bl AllocZeroed
|
|
str r0, [r5]
|
|
movs r0, 0xA0
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x24
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x24
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0xC]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x10]
|
|
movs r0, 0x1C
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x14]
|
|
movs r0, 0x54
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x18]
|
|
movs r0, 0x24
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x1C]
|
|
ldr r4, =gUnknown_020244A0
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r4, =gUnknown_020244A4
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r4, =gUnknown_0202305C
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r4, =gUnknown_02023060
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, [r6]
|
|
movs r1, 0x80
|
|
lsls r1, 20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08056FFA
|
|
ldr r0, =0x00004054
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gSaveBlock1Ptr
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 5
|
|
ldr r0, =0x00001a9c
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
bl create_enemy_party
|
|
_08056FFA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8056F28
|
|
|
|
thumb_func_start sub_8057028
|
|
sub_8057028: @ 8057028
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805703C
|
|
bl sub_81D5694
|
|
_0805703C:
|
|
ldr r6, =gUnknown_020244A8
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
beq _080570D0
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r5, 0
|
|
str r5, [r4]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x4]
|
|
ldr r0, [r0, 0x8]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x8]
|
|
ldr r0, [r0, 0xC]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0xC]
|
|
ldr r0, [r0, 0x10]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x10]
|
|
ldr r0, [r0, 0x14]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x14]
|
|
ldr r0, [r0, 0x18]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x18]
|
|
ldr r0, [r0, 0x1C]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x1C]
|
|
bl Free
|
|
str r5, [r6]
|
|
ldr r4, =gUnknown_020244A0
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
ldr r4, =gUnknown_020244A4
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
ldr r4, =gUnknown_0202305C
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
ldr r4, =gUnknown_02023060
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
_080570D0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8057028
|
|
|
|
thumb_func_start sub_80570F4
|
|
sub_80570F4: @ 80570F4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057140
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
adds r1, r3, 0
|
|
muls r1, r0
|
|
adds r1, r2
|
|
adds r1, 0x2A
|
|
muls r0, r4
|
|
adds r0, r2
|
|
adds r0, 0x2A
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bls _0805714A
|
|
adds r4, r3, 0
|
|
b _0805714A
|
|
.pool
|
|
_08057140:
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0805714A:
|
|
ldr r2, =gBattleMons
|
|
movs r1, 0x58
|
|
adds r0, r4, 0
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r3, r0, 0
|
|
adds r3, 0x2A
|
|
adds r0, r5, 0
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x2A
|
|
ldrb r0, [r3]
|
|
ldrb r2, [r1]
|
|
cmp r0, r2
|
|
bls _080571B8
|
|
ldrb r1, [r1]
|
|
subs r0, r1
|
|
cmp r0, 0x1D
|
|
ble _08057198
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl happiness_algorithm
|
|
b _080571CE
|
|
.pool
|
|
_08057198:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
bl happiness_algorithm
|
|
b _080571CE
|
|
.pool
|
|
_080571B8:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
bl happiness_algorithm
|
|
_080571CE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80570F4
|
|
|
|
thumb_func_start sub_80571DC
|
|
sub_80571DC: @ 80571DC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08057248
|
|
movs r2, 0
|
|
ldr r6, =gUnknown_0202406E
|
|
lsls r3, r4, 1
|
|
ldr r5, =gUnknown_0203CF00
|
|
ldr r4, =gUnknown_0202449C
|
|
_080571FE:
|
|
adds r0, r2, r5
|
|
ldr r1, [r4]
|
|
adds r1, r2, r1
|
|
adds r1, 0x60
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _080571FE
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r7, 0
|
|
bl pokemon_order_func
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_81B8FB0
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_0202449C
|
|
ldr r3, =gUnknown_0203CF00
|
|
_08057236:
|
|
ldr r0, [r4]
|
|
adds r0, r2, r0
|
|
adds r0, 0x60
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _08057236
|
|
_08057248:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80571DC
|
|
|
|
thumb_func_start sub_805725C
|
|
sub_805725C: @ 805725C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, =gUnknown_02024332
|
|
mov r10, r1
|
|
b _08057284
|
|
.pool
|
|
_0805727C:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _08057284
|
|
b _08057406
|
|
_08057284:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _0805728E
|
|
b _08057390
|
|
_0805728E:
|
|
cmp r0, 0x1
|
|
ble _08057294
|
|
b _080573FC
|
|
_08057294:
|
|
cmp r0, 0
|
|
beq _0805729A
|
|
b _080573FC
|
|
_0805729A:
|
|
ldr r6, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r5, r9
|
|
muls r5, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0x4C
|
|
adds r4, r5, r0
|
|
ldr r0, [r4]
|
|
movs r7, 0x7
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08057372
|
|
mov r0, r9
|
|
bl sub_8050650
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080572FC
|
|
ldr r0, [r4]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r4]
|
|
adds r2, r6, 0
|
|
adds r2, 0x50
|
|
adds r2, r5, r2
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
movs r0, 0x1
|
|
mov r2, r10
|
|
strb r0, [r2, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB220
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
b _08057372
|
|
.pool
|
|
_080572FC:
|
|
adds r0, r5, r6
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
movs r2, 0x1
|
|
cmp r0, 0x30
|
|
bne _0805730A
|
|
movs r2, 0x2
|
|
_0805730A:
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
ands r0, r7
|
|
cmp r0, r2
|
|
bcs _0805731E
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r1, r0
|
|
str r1, [r4]
|
|
b _08057322
|
|
_0805731E:
|
|
subs r0, r1, r2
|
|
str r0, [r4]
|
|
_08057322:
|
|
ldr r2, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08057354
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB213
|
|
str r0, [r1]
|
|
movs r1, 0x2
|
|
mov r8, r1
|
|
b _08057372
|
|
.pool
|
|
_08057354:
|
|
adds r2, 0x50
|
|
adds r2, r1, r2
|
|
ldr r0, [r2]
|
|
ldr r1, =0xf7ffffff
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r0, =gUnknown_02024332
|
|
strb r4, [r0, 0x5]
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB220
|
|
str r0, [r1]
|
|
movs r2, 0x2
|
|
mov r8, r2
|
|
_08057372:
|
|
ldr r1, =gUnknown_02024332
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r10, r1
|
|
b _080573FC
|
|
.pool
|
|
_08057390:
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r1, 0x4C
|
|
adds r4, r0, r1
|
|
ldr r0, [r4]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080573F4
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0
|
|
beq _080573D4
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB26A
|
|
str r0, [r1]
|
|
b _080573EC
|
|
.pool
|
|
_080573D4:
|
|
ldr r0, [r4]
|
|
movs r1, 0x21
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r4]
|
|
bl b_movescr_stack_push_cursor
|
|
ldr r1, =gUnknown_02024214
|
|
ldr r0, =gUnknown_082DB277
|
|
str r0, [r1]
|
|
mov r0, r10
|
|
strb r5, [r0, 0x5]
|
|
_080573EC:
|
|
movs r1, 0x2
|
|
mov r8, r1
|
|
ldr r2, =gUnknown_02024332
|
|
mov r10, r2
|
|
_080573F4:
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080573FC:
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
beq _08057406
|
|
b _0805727C
|
|
_08057406:
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
bne _08057430
|
|
ldr r4, =gUnknown_02024064
|
|
mov r1, r9
|
|
strb r1, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240D0
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl dp01_build_cmdbuf_x02_a_b_varargs
|
|
ldrb r0, [r4]
|
|
bl dp01_battle_side_mark_buffer_for_execution
|
|
_08057430:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_805725C
|
|
|
|
thumb_func_start nullsub_21
|
|
nullsub_21: @ 8057458
|
|
bx lr
|
|
thumb_func_end nullsub_21
|
|
|
|
thumb_func_start sub_805745C
|
|
sub_805745C: @ 805745C
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_exec_buffer_A_ch0_tbl1
|
|
str r1, [r0]
|
|
ldr r0, =gUnknown_020244B9
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_020244CC
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_805745C
|
|
|
|
thumb_func_start dp01_tbl1_exec_completed
|
|
dp01_tbl1_exec_completed: @ 805748C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_exec_buffer_A_ch0_tbl1
|
|
str r1, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080574E0
|
|
bl link_get_multiplayer_id
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
mov r2, sp
|
|
bl dp01_prepare_buffer_wireless_probably
|
|
ldr r1, =gUnknown_02023064
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
strb r1, [r0]
|
|
b _080574F2
|
|
.pool
|
|
_080574E0:
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_080574F2:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01_tbl1_exec_completed
|
|
|
|
thumb_func_start bx_exec_buffer_A_ch0_tbl1
|
|
bx_exec_buffer_A_ch0_tbl1: @ 8057504
|
|
push {lr}
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08057550
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r3, 9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x38
|
|
bhi _0805754C
|
|
ldr r0, =gUnknown_0831C514
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _08057550
|
|
.pool
|
|
_0805754C:
|
|
bl dp01_tbl1_exec_completed
|
|
_08057550:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_exec_buffer_A_ch0_tbl1
|
|
|
|
thumb_func_start bx_0802E404
|
|
bx_0802E404: @ 8057554
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _08057576
|
|
bl dp01_tbl1_exec_completed
|
|
_08057576:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_0802E404
|
|
|
|
thumb_func_start sub_8057588
|
|
sub_8057588: @ 8057588
|
|
push {r4-r7,lr}
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 9
|
|
adds r1, r3, 0x2
|
|
adds r1, r2, r1
|
|
ldrb r5, [r1]
|
|
adds r3, 0x3
|
|
adds r2, r3
|
|
ldrb r1, [r2]
|
|
lsls r1, 8
|
|
orrs r5, r1
|
|
movs r1, 0x1
|
|
movs r2, 0x7
|
|
movs r3, 0x1
|
|
bl dp11b_obj_instanciate
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x7
|
|
movs r3, 0x1
|
|
bl dp11b_obj_instanciate
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080575EC
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0x2
|
|
bne _080575EC
|
|
ldr r1, =gUnknown_020244CC
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _080575F0
|
|
.pool
|
|
_080575EC:
|
|
ldr r1, =gUnknown_020244CC
|
|
movs r0, 0
|
|
_080575F0:
|
|
strb r0, [r1]
|
|
ldr r0, =gMain
|
|
ldrh r2, [r0, 0x2E]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057658
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_020244AC
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08057640
|
|
cmp r0, 0x1
|
|
bgt _08057630
|
|
cmp r0, 0
|
|
beq _0805763A
|
|
b _080577C2
|
|
.pool
|
|
_08057630:
|
|
cmp r0, 0x2
|
|
beq _08057646
|
|
cmp r0, 0x3
|
|
beq _0805764C
|
|
b _080577C2
|
|
_0805763A:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
b _080577BC
|
|
_08057640:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
b _080577BC
|
|
_08057646:
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
b _080577BC
|
|
_0805764C:
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
b _080577C2
|
|
_08057658:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057698
|
|
ldr r5, =gUnknown_020244AC
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057674
|
|
b _080577E8
|
|
_08057674:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_8059CF8
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
b _08057732
|
|
.pool
|
|
_08057698:
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080576D8
|
|
ldr r5, =gUnknown_020244AC
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080576B4
|
|
b _080577E8
|
|
_080576B4:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_8059CF8
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
b _08057732
|
|
.pool
|
|
_080576D8:
|
|
movs r7, 0x40
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057700
|
|
ldr r5, =gUnknown_020244AC
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080577E8
|
|
b _0805771A
|
|
.pool
|
|
_08057700:
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0805774C
|
|
ldr r5, =gUnknown_020244AC
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080577E8
|
|
_0805771A:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_8059CF8
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
_08057732:
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_8059CB4
|
|
b _080577E8
|
|
.pool
|
|
_0805774C:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805775A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3B
|
|
bls _080577DC
|
|
_0805775A:
|
|
ldr r4, =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080577E8
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080577E8
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080577E8
|
|
ldr r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080577E8
|
|
ldr r0, =gUnknown_02023064
|
|
ldrb r1, [r6]
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _080577B2
|
|
cmp r5, 0xC
|
|
bhi _080577E8
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl bag_add_item
|
|
_080577B2:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r0, 0x1
|
|
movs r1, 0xC
|
|
_080577BC:
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_080577C2:
|
|
bl dp01_tbl1_exec_completed
|
|
b _080577E8
|
|
.pool
|
|
_080577DC:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080577E8
|
|
bl sub_8073314
|
|
_080577E8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057588
|
|
|
|
thumb_func_start sub_80577F0
|
|
sub_80577F0: @ 80577F0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl dp11b_obj_free
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057824
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80577F0
|
|
|
|
thumb_func_start sub_8057824
|
|
sub_8057824: @ 8057824
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gUnknown_0831C5F8
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
movs r2, 0xF
|
|
movs r3, 0x1
|
|
bl dp11b_obj_instanciate
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08057866
|
|
_0805784A:
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _0805785C
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
_0805785C:
|
|
adds r4, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0805784A
|
|
_08057866:
|
|
ldr r2, =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805789C
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0x2
|
|
bne _0805789C
|
|
ldr r1, =gUnknown_020244CC
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _080578A0
|
|
.pool
|
|
_0805789C:
|
|
ldr r1, =gUnknown_020244CC
|
|
movs r0, 0
|
|
_080578A0:
|
|
strb r0, [r1]
|
|
ldrh r2, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057910
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039B2C
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r4]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
bl dp01_tbl1_exec_completed
|
|
b _08057BC8
|
|
.pool
|
|
_08057910:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805791E
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3B
|
|
bls _0805798C
|
|
_0805791E:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r5, =gUnknown_03005D74
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039B2C
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057BFC
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
movs r2, 0x7
|
|
movs r3, 0x1
|
|
bl dp11b_obj_instanciate
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x7
|
|
movs r3, 0x1
|
|
bl dp11b_obj_instanciate
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
b _08057BC8
|
|
.pool
|
|
_0805798C:
|
|
movs r0, 0x60
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08057996
|
|
b _08057AB0
|
|
_08057996:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039B2C
|
|
str r1, [r0]
|
|
adds r5, r3, 0
|
|
_080579B8:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r4, 0
|
|
mov r0, sp
|
|
b _080579E2
|
|
.pool
|
|
_080579D8:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _080579E8
|
|
mov r2, sp
|
|
adds r0, r2, r4
|
|
_080579E2:
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080579D8
|
|
_080579E8:
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080579F0
|
|
movs r4, 0x4
|
|
_080579F0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _080579E8
|
|
movs r4, 0
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08057A6E
|
|
cmp r0, 0x1
|
|
bgt _08057A28
|
|
cmp r0, 0
|
|
beq _08057A32
|
|
b _08057A70
|
|
.pool
|
|
_08057A28:
|
|
cmp r0, 0x2
|
|
beq _08057A32
|
|
cmp r0, 0x3
|
|
beq _08057A6E
|
|
b _08057A70
|
|
_08057A32:
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
bne _08057A6E
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r2, [r2]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244B0
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
adds r1, 0xD
|
|
bl GetMonData
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x6]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057A70
|
|
_08057A6E:
|
|
adds r4, 0x1
|
|
_08057A70:
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r0, =gUnknown_03005D74
|
|
cmp r1, 0
|
|
beq _08057A88
|
|
movs r4, 0
|
|
_08057A88:
|
|
cmp r4, 0
|
|
beq _080579B8
|
|
b _08057BB0
|
|
.pool
|
|
_08057AB0:
|
|
movs r0, 0x90
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08057ABA
|
|
b _08057BC8
|
|
_08057ABA:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039B2C
|
|
str r1, [r0]
|
|
adds r5, r3, 0
|
|
_08057ADC:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r4, 0
|
|
mov r0, sp
|
|
b _08057B06
|
|
.pool
|
|
_08057AFC:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _08057B0C
|
|
mov r2, sp
|
|
adds r0, r2, r4
|
|
_08057B06:
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _08057AFC
|
|
_08057B0C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08057B14
|
|
movs r4, 0
|
|
_08057B14:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08057B0C
|
|
movs r4, 0
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08057B92
|
|
cmp r0, 0x1
|
|
bgt _08057B4C
|
|
cmp r0, 0
|
|
beq _08057B56
|
|
b _08057B94
|
|
.pool
|
|
_08057B4C:
|
|
cmp r0, 0x2
|
|
beq _08057B56
|
|
cmp r0, 0x3
|
|
beq _08057B92
|
|
b _08057B94
|
|
_08057B56:
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
bne _08057B92
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r2, [r2]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244B0
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
adds r1, 0xD
|
|
bl GetMonData
|
|
ldr r2, =gBattleMoves
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x6]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057B94
|
|
_08057B92:
|
|
adds r4, 0x1
|
|
_08057B94:
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r0, =gUnknown_03005D74
|
|
cmp r1, 0
|
|
beq _08057BAC
|
|
movs r4, 0
|
|
_08057BAC:
|
|
cmp r4, 0
|
|
beq _08057ADC
|
|
_08057BB0:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039AD8
|
|
str r1, [r0]
|
|
_08057BC8:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8057824
|
|
|
|
thumb_func_start sub_8057BFC
|
|
sub_8057BFC: @ 8057BFC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
ldr r1, =gUnknown_02023068
|
|
adds r6, r0, r1
|
|
ldr r2, =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _08057C44
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x13]
|
|
cmp r0, 0x2
|
|
bne _08057C44
|
|
ldr r1, =gUnknown_020244CC
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08057C48
|
|
.pool
|
|
_08057C44:
|
|
ldr r1, =gUnknown_020244CC
|
|
movs r0, 0
|
|
_08057C48:
|
|
strb r0, [r1]
|
|
ldrh r2, [r2, 0x2E]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08057C58
|
|
b _08057E04
|
|
_08057C58:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xAE
|
|
bne _08057C98
|
|
ldrb r0, [r6, 0x12]
|
|
movs r4, 0
|
|
cmp r0, 0x7
|
|
beq _08057CA6
|
|
ldrb r1, [r6, 0x13]
|
|
movs r0, 0x7
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
asrs r4, r0, 31
|
|
movs r0, 0x10
|
|
ands r4, r0
|
|
b _08057CA6
|
|
.pool
|
|
_08057C98:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r4, [r0, 0x6]
|
|
_08057CA6:
|
|
movs r0, 0x10
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08057CC4
|
|
ldr r0, =gUnknown_03005D74
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _08057CDE
|
|
.pool
|
|
_08057CC4:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_03005D74
|
|
strb r0, [r1]
|
|
_08057CDE:
|
|
ldr r5, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
lsls r2, r3, 9
|
|
adds r1, r5, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _08057D18
|
|
movs r0, 0x2
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08057D5A
|
|
adds r0, r5, 0x2
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08057D5A
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
b _08057D5A
|
|
.pool
|
|
_08057D18:
|
|
movs r0, 0x7D
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08057D24
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
_08057D24:
|
|
ldr r0, =gUnknown_020244B0
|
|
adds r0, r3, r0
|
|
adds r1, r6, 0
|
|
adds r1, 0x8
|
|
ldrb r0, [r0]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08057D62
|
|
movs r0, 0x12
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08057D5A
|
|
movs r0, 0
|
|
bl sub_8069DEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08057D5A
|
|
ldrb r0, [r7]
|
|
bl sub_8069F34
|
|
ldr r1, =gUnknown_03005D74
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
_08057D5A:
|
|
ldr r7, =gUnknown_02024064
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08057D80
|
|
_08057D62:
|
|
ldr r1, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
b _08057E1C
|
|
.pool
|
|
_08057D80:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057824
|
|
str r1, [r0]
|
|
movs r0, 0x12
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _08057DA8
|
|
ldr r1, =gUnknown_03005D74
|
|
ldrb r0, [r7]
|
|
b _08057DD8
|
|
.pool
|
|
_08057DA8:
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08057DD0
|
|
movs r0, 0x3
|
|
b _08057DD2
|
|
.pool
|
|
_08057DD0:
|
|
movs r0, 0x1
|
|
_08057DD2:
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_03005D74
|
|
_08057DD8:
|
|
strb r0, [r1]
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039AD8
|
|
b _08057F9C
|
|
.pool
|
|
_08057E04:
|
|
movs r6, 0x2
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08057E14
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3B
|
|
bls _08057E30
|
|
_08057E14:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r2, =0x0000ffff
|
|
_08057E1C:
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
bl dp01_tbl1_exec_completed
|
|
b _08057F9E
|
|
.pool
|
|
_08057E30:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057E60
|
|
ldr r4, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057E4A
|
|
b _08057F9E
|
|
_08057E4A:
|
|
ldrb r0, [r2]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r7]
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
eors r0, r2
|
|
b _08057F08
|
|
.pool
|
|
_08057E60:
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057EA4
|
|
ldr r4, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r3, r0, r4
|
|
ldrb r2, [r3]
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057E7C
|
|
b _08057F9E
|
|
_08057E7C:
|
|
ldr r1, =gUnknown_03005D78
|
|
adds r0, r6, 0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _08057E8A
|
|
b _08057F9E
|
|
_08057E8A:
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r7]
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
b _08057F08
|
|
.pool
|
|
_08057EA4:
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057ED4
|
|
ldr r4, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057F9E
|
|
ldrb r0, [r2]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r7]
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
eors r0, r2
|
|
b _08057F08
|
|
.pool
|
|
_08057ED4:
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057F30
|
|
ldr r4, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r3, r0, r4
|
|
ldrb r2, [r3]
|
|
movs r5, 0x2
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08057F9E
|
|
ldr r1, =gUnknown_03005D78
|
|
adds r0, r5, 0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08057F9E
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r7]
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
eors r0, r5
|
|
_08057F08:
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
bl sub_8059B3C
|
|
bl sub_8059BB0
|
|
b _08057F9E
|
|
.pool
|
|
_08057F30:
|
|
movs r0, 0x4
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08057F9E
|
|
ldr r0, =gUnknown_03005D78
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _08057F9E
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r5, [r0]
|
|
ands r5, r6
|
|
cmp r5, 0
|
|
bne _08057F9E
|
|
ldr r4, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1D
|
|
bl battle_menu_cursor_related_2
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08057F78
|
|
ldr r0, =gUnknown_03005D74
|
|
strb r5, [r0]
|
|
b _08057F80
|
|
.pool
|
|
_08057F78:
|
|
ldr r1, =gUnknown_03005D74
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r1, 0
|
|
_08057F80:
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1B
|
|
bl battle_menu_cursor_related_2
|
|
ldr r0, =gUnknown_085CCACA
|
|
movs r1, 0xB
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058138
|
|
_08057F9C:
|
|
str r1, [r0]
|
|
_08057F9E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8057BFC
|
|
|
|
thumb_func_start sub_8057FBC
|
|
sub_8057FBC: @ 8057FBC
|
|
push {r4-r7,lr}
|
|
movs r7, 0
|
|
ldr r4, =gMain
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r6, 0x1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057FD6
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
movs r7, 0x1
|
|
_08057FD6:
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057FF8
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_02022E14
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022E16
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r7, 0xFF
|
|
_08057FF8:
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058038
|
|
ldr r5, =gUnknown_020244B0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058038
|
|
ldrb r0, [r2]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
_08058038:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058086
|
|
ldr r5, =gUnknown_020244B0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r2, [r3]
|
|
movs r6, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08058086
|
|
ldr r1, =gUnknown_03005D78
|
|
adds r0, r6, 0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08058086
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
_08058086:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080580C8
|
|
ldr r5, =gUnknown_020244B0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080580C8
|
|
ldrb r0, [r2]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
_080580C8:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058116
|
|
ldr r5, =gUnknown_020244B0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r2, [r3]
|
|
movs r6, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08058116
|
|
ldr r1, =gUnknown_03005D78
|
|
adds r0, r6, 0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08058116
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
ldrb r1, [r4]
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
strb r0, [r1]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
_08058116:
|
|
adds r0, r7, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8057FBC
|
|
|
|
thumb_func_start sub_8058138
|
|
sub_8058138: @ 8058138
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058152
|
|
b _08058500
|
|
_08058152:
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_020244B0
|
|
mov r10, r0
|
|
ldr r1, =gUnknown_02024064
|
|
mov r8, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r1, r0
|
|
ldr r5, =gUnknown_03005D74
|
|
ldrb r0, [r2]
|
|
ldrb r3, [r5]
|
|
cmp r0, r3
|
|
bne _08058170
|
|
b _080584A8
|
|
_08058170:
|
|
lsls r1, 9
|
|
ldr r0, =gUnknown_02023068
|
|
adds r1, r0
|
|
mov r9, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
add r1, r9
|
|
ldrh r6, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
strh r6, [r0]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
mov r7, r9
|
|
adds r7, 0x8
|
|
adds r1, r7, r1
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
strb r6, [r0]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
mov r2, r9
|
|
adds r2, 0xC
|
|
adds r1, r2, r1
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
adds r2, r0
|
|
strb r6, [r2]
|
|
mov r3, r8
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r2, =gUnknown_020242BC
|
|
adds r6, r0, r2
|
|
ldrb r4, [r6, 0x18]
|
|
lsls r3, r4, 24
|
|
lsrs r2, r3, 28
|
|
ldr r0, =gBitTable
|
|
mov r12, r0
|
|
add r1, r10
|
|
ldrb r0, [r1]
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0805822A
|
|
lsrs r1, r3, 28
|
|
bics r1, r0
|
|
lsls r1, 4
|
|
movs r2, 0xF
|
|
adds r0, r2, 0
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x18]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r3, =gUnknown_020242BC
|
|
adds r1, r3
|
|
ldrb r4, [r1, 0x18]
|
|
lsrs r3, r4, 4
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
orrs r0, r3
|
|
lsls r0, 4
|
|
ands r2, r4
|
|
orrs r2, r0
|
|
strb r2, [r1, 0x18]
|
|
_0805822A:
|
|
bl sub_8059AAC
|
|
movs r6, 0
|
|
mov r12, r7
|
|
mov r5, sp
|
|
adds r5, 0x18
|
|
str r5, [sp, 0x1C]
|
|
ldr r2, =gBattleMons
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
adds r4, r0, 0
|
|
adds r4, 0x3B
|
|
mov r7, r8
|
|
mov r10, r2
|
|
movs r5, 0x3
|
|
_0805824E:
|
|
mov r1, sp
|
|
adds r3, r1, r6
|
|
ldrb r1, [r4]
|
|
lsls r2, r6, 1
|
|
adds r0, r5, 0
|
|
lsls r0, r2
|
|
ands r1, r0
|
|
asrs r1, r2
|
|
strb r1, [r3]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805824E
|
|
ldr r1, =gUnknown_020244B0
|
|
ldrb r0, [r7]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, 0x1C]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r3, sp
|
|
adds r2, r3, r0
|
|
ldr r1, =gUnknown_03005D74
|
|
ldrb r0, [r1]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
movs r3, 0
|
|
strb r0, [r2]
|
|
ldrb r0, [r1]
|
|
mov r5, sp
|
|
adds r1, r5, r0
|
|
ldr r2, [sp, 0x1C]
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
strb r3, [r2]
|
|
movs r6, 0
|
|
ldr r2, [sp, 0x1C]
|
|
_0805829E:
|
|
mov r3, sp
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r6, 1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805829E
|
|
ldrb r1, [r7]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
add r0, r10
|
|
adds r0, 0x3B
|
|
ldr r5, [sp, 0x1C]
|
|
ldrb r1, [r5]
|
|
strb r1, [r0]
|
|
movs r6, 0
|
|
adds r4, r7, 0
|
|
movs r3, 0x58
|
|
movs r0, 0x24
|
|
add r0, r10
|
|
mov r8, r0
|
|
mov r2, r9
|
|
mov r7, r10
|
|
adds r7, 0xC
|
|
mov r5, r12
|
|
_080582D8:
|
|
lsls r1, r6, 1
|
|
ldrb r0, [r4]
|
|
muls r0, r3
|
|
adds r1, r0
|
|
adds r1, r7
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
adds r1, r6, r1
|
|
add r1, r8
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080582D8
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
mov r1, r10
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805831A
|
|
b _080584A8
|
|
_0805831A:
|
|
movs r6, 0
|
|
mov r1, sp
|
|
adds r1, 0x4
|
|
str r1, [sp, 0x20]
|
|
add r3, sp, 0xC
|
|
mov r10, r3
|
|
ldr r5, =gUnknown_0202406E
|
|
mov r9, r5
|
|
mov r8, r2
|
|
movs r7, 0x64
|
|
ldr r5, =gPlayerParty
|
|
adds r4, r1, 0
|
|
_08058332:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
adds r0, r5
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
bl GetMonData
|
|
mov r3, r10
|
|
adds r1, r3, r6
|
|
strb r0, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08058332
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
ldr r5, [sp, 0x1C]
|
|
strb r0, [r5]
|
|
movs r6, 0
|
|
movs r5, 0x3
|
|
ldr r4, [sp, 0x1C]
|
|
_08058392:
|
|
mov r0, sp
|
|
adds r3, r0, r6
|
|
lsls r2, r6, 1
|
|
adds r1, r5, 0
|
|
lsls r1, r2
|
|
ldrb r0, [r4]
|
|
ands r0, r1
|
|
asrs r0, r2
|
|
strb r0, [r3]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08058392
|
|
ldr r4, =gUnknown_020244B0
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r1, 1
|
|
ldr r2, [sp, 0x20]
|
|
adds r1, r2, r1
|
|
ldrh r6, [r1]
|
|
ldr r2, =gUnknown_03005D74
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
ldr r5, [sp, 0x20]
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0]
|
|
movs r5, 0
|
|
strh r0, [r1]
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
ldr r1, [sp, 0x20]
|
|
adds r0, r1, r0
|
|
strh r6, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
add r1, r10
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r2]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
add r0, r10
|
|
strb r6, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, 0x1C]
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
ldrb r0, [r2]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
adds r1, r3, r0
|
|
ldr r2, [sp, 0x1C]
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
strb r5, [r2]
|
|
movs r6, 0
|
|
ldr r2, [sp, 0x1C]
|
|
_0805841E:
|
|
mov r3, sp
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r6, 1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805841E
|
|
movs r6, 0
|
|
ldr r5, =gUnknown_0202406E
|
|
mov r10, r5
|
|
ldr r0, =gUnknown_02024064
|
|
mov r9, r0
|
|
movs r1, 0x64
|
|
mov r8, r1
|
|
ldr r7, =gPlayerParty
|
|
ldr r5, [sp, 0x20]
|
|
adds r5, 0x8
|
|
ldr r4, [sp, 0x20]
|
|
_0805844A:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
mov r3, r8
|
|
muls r3, r0
|
|
adds r0, r3, 0
|
|
adds r0, r7
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
adds r2, r5, 0
|
|
bl pokemon_setattr
|
|
adds r5, 0x1
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805844A
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
ldr r2, [sp, 0x1C]
|
|
bl pokemon_setattr
|
|
_080584A8:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057BFC
|
|
str r1, [r0]
|
|
ldr r3, =gUnknown_020244B0
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldr r1, =gUnknown_03005D74
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
b _08058532
|
|
.pool
|
|
_08058500:
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058554
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
bl battle_menu_cursor_related
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057BFC
|
|
str r1, [r0]
|
|
_08058532:
|
|
bl sub_8059B18
|
|
bl sub_8059B3C
|
|
bl sub_8059BB0
|
|
b _080586E8
|
|
.pool
|
|
_08058554:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080585A4
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r2, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805856A
|
|
b _080586E8
|
|
_0805856A:
|
|
ldr r0, =gUnknown_020244B0
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
adds r1, r0
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
bne _08058590
|
|
_08058578:
|
|
ldrb r0, [r1]
|
|
movs r1, 0x1D
|
|
bl battle_menu_cursor_related_2
|
|
b _08058596
|
|
.pool
|
|
_08058590:
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
_08058596:
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
b _0805862C
|
|
.pool
|
|
_080585A4:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080585E8
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r2, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080585BA
|
|
b _080586E8
|
|
_080585BA:
|
|
ldr r1, =gUnknown_03005D78
|
|
movs r0, 0x1
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcc _080585C8
|
|
b _080586E8
|
|
_080585C8:
|
|
ldr r0, =gUnknown_020244B0
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
beq _08058578
|
|
b _08058590
|
|
.pool
|
|
_080585E8:
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805865C
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080586E8
|
|
ldr r0, =gUnknown_020244B0
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
adds r1, r0
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
bne _08058620
|
|
ldrb r0, [r1]
|
|
movs r1, 0x1D
|
|
bl battle_menu_cursor_related_2
|
|
b _08058626
|
|
.pool
|
|
_08058620:
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
_08058626:
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
_0805862C:
|
|
eors r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _080586CA
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1B
|
|
bl battle_menu_cursor_related_2
|
|
b _080586E8
|
|
.pool
|
|
_0805865C:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080586E8
|
|
ldr r3, =gUnknown_03005D74
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080586E8
|
|
ldr r1, =gUnknown_03005D78
|
|
movs r0, 0x2
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _080586E8
|
|
ldr r0, =gUnknown_020244B0
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
bne _080586A4
|
|
ldrb r0, [r1]
|
|
movs r1, 0x1D
|
|
bl battle_menu_cursor_related_2
|
|
b _080586AA
|
|
.pool
|
|
_080586A4:
|
|
ldrb r0, [r3]
|
|
bl battle_menu_cursor_related
|
|
_080586AA:
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080586E0
|
|
_080586CA:
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
b _080586E8
|
|
.pool
|
|
_080586E0:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1B
|
|
bl battle_menu_cursor_related_2
|
|
_080586E8:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8058138
|
|
|
|
thumb_func_start sub_80586F8
|
|
sub_80586F8: @ 80586F8
|
|
push {lr}
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805875C
|
|
ldr r0, =gUnknown_03003124
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08058798
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
ldr r3, =gMain
|
|
ldr r0, =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
ldr r0, =sub_8038D64
|
|
bl SetMainCallback2
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08058738
|
|
bl sub_817E3F4
|
|
_08058738:
|
|
bl FreeAllWindowBuffers
|
|
b _08058798
|
|
.pool
|
|
_0805875C:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058798
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
ldr r3, =gMain
|
|
ldr r0, =0x00000439
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
ldr r0, =sub_8038D64
|
|
bl SetMainCallback2
|
|
ldr r0, =gUnknown_0202433A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08058794
|
|
bl sub_817E3F4
|
|
_08058794:
|
|
bl FreeAllWindowBuffers
|
|
_08058798:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80586F8
|
|
|
|
thumb_func_start sub_80587B0
|
|
sub_80587B0: @ 80587B0
|
|
push {lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058832
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058810
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058832
|
|
ldr r0, =gLinkVSyncDisabled
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080587F0
|
|
bl sub_800AC34
|
|
b _080587F4
|
|
.pool
|
|
_080587F0:
|
|
bl sub_800ADF8
|
|
_080587F4:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80586F8
|
|
str r1, [r0]
|
|
b _08058832
|
|
.pool
|
|
_08058810:
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
ldr r2, =gMain
|
|
ldr r0, =0x00000439
|
|
adds r3, r2, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r0, [r2, 0x8]
|
|
bl SetMainCallback2
|
|
_08058832:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80587B0
|
|
|
|
thumb_func_start sub_8058844
|
|
sub_8058844: @ 8058844
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08058868
|
|
bl dp01_tbl1_exec_completed
|
|
_08058868:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8058844
|
|
|
|
thumb_func_start sub_805887C
|
|
sub_805887C: @ 805887C
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _080588A0
|
|
bl dp01_tbl1_exec_completed
|
|
_080588A0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805887C
|
|
|
|
thumb_func_start bx_802F7A0
|
|
bx_802F7A0: @ 80588B4
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02020630
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08058908
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
bl nullsub_25
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl RemoveObjectAndFreeTiles
|
|
bl dp01_tbl1_exec_completed
|
|
_08058908:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_802F7A0
|
|
|
|
thumb_func_start sub_8058924
|
|
sub_8058924: @ 8058924
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r1, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x9]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _0805895C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x9]
|
|
bl dp01_tbl1_exec_completed
|
|
_0805895C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8058924
|
|
|
|
thumb_func_start sub_805896C
|
|
sub_805896C: @ 805896C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r7, 0
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058998
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080589D0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080589D0
|
|
_08058998:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_03005D70
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
mov r10, r3
|
|
cmp r1, r0
|
|
bne _08058A0A
|
|
b _08058A0E
|
|
.pool
|
|
_080589D0:
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r6, =gUnknown_03005D70
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r4, [r2]
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r3, 0
|
|
adds r5, 0x1C
|
|
adds r0, r5
|
|
ldr r3, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
mov r10, r2
|
|
cmp r3, r0
|
|
bne _08058A0A
|
|
movs r0, 0x2
|
|
eors r4, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _08058A0A
|
|
movs r7, 0x1
|
|
_08058A0A:
|
|
cmp r7, 0
|
|
beq _08058B08
|
|
_08058A0E:
|
|
ldr r0, =gUnknown_020244D0
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
mov r6, r10
|
|
ldrb r2, [r6]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4, 0x1]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058B08
|
|
movs r1, 0x2
|
|
mov r8, r1
|
|
mov r1, r8
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058B08
|
|
ldrb r1, [r4]
|
|
movs r3, 0x7F
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
mov r1, r9
|
|
ldr r2, [r1]
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
ands r4, r1
|
|
strb r4, [r0, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
ldr r7, =gUnknown_0202406E
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
bl sub_805E990
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058AE4
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
bl sub_805E990
|
|
_08058AE4:
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
mov r2, r10
|
|
ldrb r1, [r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058924
|
|
str r1, [r0]
|
|
_08058B08:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805896C
|
|
|
|
thumb_func_start sub_8058B40
|
|
sub_8058B40: @ 8058B40
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r2, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r5, 0x88
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058B80
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_08058B80:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r7]
|
|
movs r6, 0x2
|
|
adds r2, r6, 0
|
|
eors r2, r0
|
|
ldr r1, [r1, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058BB2
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_08058BB2:
|
|
ldr r0, [r4]
|
|
ldrb r2, [r7]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4]
|
|
movs r5, 0x8
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058C82
|
|
adds r1, r6, 0
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058C82
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058C68
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058C38
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058C38
|
|
ldr r4, =gUnknown_03005D70
|
|
ldrb r0, [r7]
|
|
adds r1, r6, 0
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
bl sub_8076918
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_08058C38:
|
|
ldr r5, =gUnknown_03005D70
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r4]
|
|
bl sub_8076918
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_08058C68:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
_08058C82:
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0x80
|
|
bne _08058D32
|
|
movs r1, 0x2
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058D32
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08058D32
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058D14
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0x42
|
|
bne _08058D08
|
|
ldr r0, =gMPlay_BGM
|
|
bl m4aMPlayContinue
|
|
b _08058D14
|
|
.pool
|
|
_08058D08:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_08058D14:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08058D32:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058D52
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058DAC
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058DAC
|
|
_08058D52:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r4, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r3, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r3, r0
|
|
bne _08058E0A
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _08058E0A
|
|
b _08058E06
|
|
.pool
|
|
_08058DAC:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r7, =gUnknown_03005D7C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r4, r0
|
|
bne _08058E0A
|
|
ldr r6, =gUnknown_020241E4
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r5, [r0]
|
|
cmp r5, r4
|
|
bne _08058E0A
|
|
movs r0, 0x2
|
|
eors r3, r0
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
cmp r4, r5
|
|
bne _08058E0A
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _08058E0A
|
|
_08058E06:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_08058E0A:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08058EAA
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08058EAA
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058E48
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08058E48
|
|
ldr r2, =gUnknown_03005D7C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
_08058E48:
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r1, [r2, 0x9]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805896C
|
|
str r1, [r0]
|
|
_08058EAA:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8058B40
|
|
|
|
thumb_func_start sub_8058EDC
|
|
sub_8058EDC: @ 8058EDC
|
|
push {r4-r6,lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D70
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r3, [r6]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r4, r0
|
|
bne _08058F94
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058F94
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _08058F94
|
|
adds r0, r3, 0
|
|
bl sub_805E408
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08058F88
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
_08058F88:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_8058FC0
|
|
str r0, [r1]
|
|
_08058F94:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8058EDC
|
|
|
|
thumb_func_start sub_8058FC0
|
|
sub_8058FC0: @ 8058FC0
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805900E
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805900E
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805E990
|
|
bl dp01_tbl1_exec_completed
|
|
_0805900E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8058FC0
|
|
|
|
thumb_func_start sub_805902C
|
|
sub_805902C: @ 805902C
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805905E
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_0805905E:
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r3, r0, 2
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _080590D2
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080590D2
|
|
adds r0, r3, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r4, =gUnknown_03005D70
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r5]
|
|
bl sub_8076918
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058EDC
|
|
str r1, [r0]
|
|
_080590D2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805902C
|
|
|
|
thumb_func_start c3_0802FDF4
|
|
c3_0802FDF4: @ 8059100
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08059122
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08059122:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c3_0802FDF4
|
|
|
|
thumb_func_start bx_t1_healthbar_update
|
|
bx_t1_healthbar_update: @ 8059130
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
ldr r6, =gUnknown_03005D70
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8074AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
lsls r4, 16
|
|
asrs r1, r4, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08059178
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r2, 0
|
|
bl heathbar_draw_hp
|
|
b _08059192
|
|
.pool
|
|
_08059178:
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805E990
|
|
bl dp01_tbl1_exec_completed
|
|
_08059192:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_t1_healthbar_update
|
|
|
|
thumb_func_start sub_80591A0
|
|
sub_80591A0: @ 80591A0
|
|
push {lr}
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080591B2
|
|
bl dp01_tbl1_exec_completed
|
|
_080591B2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80591A0
|
|
|
|
thumb_func_start sub_80591B8
|
|
sub_80591B8: @ 80591B8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
mov r8, r0
|
|
ldrb r0, [r0, 0x8]
|
|
mov r10, r0
|
|
mov r1, r8
|
|
ldrb r7, [r1, 0xC]
|
|
str r7, [sp, 0x8]
|
|
ldrh r2, [r1, 0xA]
|
|
str r2, [sp, 0xC]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080591FE
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r10, r0
|
|
bne _080591FE
|
|
b _08059314
|
|
_080591FE:
|
|
movs r0, 0x64
|
|
mov r1, r10
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r6, r1, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
ldr r3, =gExperienceTables
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
ldr r2, =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1, 0x13]
|
|
movs r1, 0xCA
|
|
lsls r1, 1
|
|
muls r1, r2
|
|
adds r4, r1
|
|
adds r4, r3
|
|
ldr r2, [r4]
|
|
str r2, [sp]
|
|
ldr r3, [sp, 0xC]
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
adds r0, r1
|
|
cmp r0, r2
|
|
bcc _080592EC
|
|
adds r0, r6, 0
|
|
movs r1, 0x19
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r6, 0
|
|
bl pokemon_calc_effective_stats
|
|
ldr r2, [sp]
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0]
|
|
subs r2, r0
|
|
ldr r0, [sp, 0xC]
|
|
subs r2, r0, r2
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x1
|
|
movs r1, 0xB
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
strb r5, [r4]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080592D4
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r2
|
|
mov r1, r10
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
beq _080592B2
|
|
movs r0, 0x2
|
|
eors r7, r0
|
|
lsls r0, r7, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080592D4
|
|
_080592B2:
|
|
ldr r0, =sub_8059544
|
|
b _08059316
|
|
.pool
|
|
_080592D4:
|
|
ldr r0, =gTasks
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_805965C
|
|
b _08059318
|
|
.pool
|
|
_080592EC:
|
|
str r0, [sp, 0x4]
|
|
add r2, sp, 0x4
|
|
adds r0, r6, 0
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r3, [sp, 0x8]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80591A0
|
|
str r1, [r0]
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
b _0805931A
|
|
.pool
|
|
_08059314:
|
|
ldr r0, =sub_8059330
|
|
_08059316:
|
|
mov r1, r8
|
|
_08059318:
|
|
str r0, [r1]
|
|
_0805931A:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80591B8
|
|
|
|
thumb_func_start sub_8059330
|
|
sub_8059330: @ 8059330
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r2, r0, 2
|
|
mov r8, r2
|
|
add r8, r0
|
|
mov r0, r8
|
|
lsls r0, 3
|
|
mov r8, r0
|
|
add r8, r1
|
|
mov r2, r8
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0xA
|
|
ldrsh r2, [r2, r0]
|
|
mov r9, r2
|
|
mov r2, r8
|
|
ldrb r2, [r2, 0xC]
|
|
mov r10, r2
|
|
movs r0, 0x64
|
|
adds r6, r1, 0
|
|
muls r6, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r6, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
ldr r6, =gExperienceTables
|
|
lsls r1, r4, 2
|
|
ldr r2, =gBaseStats
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r0, r2
|
|
adds r1, r0
|
|
adds r1, r6
|
|
ldr r1, [r1]
|
|
subs r3, r1
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
adds r4, r6
|
|
ldr r2, [r4]
|
|
subs r2, r1
|
|
ldr r0, =gUnknown_03005D70
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
negs r0, r0
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
bl sub_807294C
|
|
movs r0, 0x21
|
|
bl audio_play
|
|
ldr r0, =sub_8059400
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059330
|
|
|
|
thumb_func_start sub_8059400
|
|
sub_8059400: @ 8059400
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r6, r0, r1
|
|
ldrh r1, [r6, 0x1C]
|
|
movs r2, 0x1C
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0xC
|
|
bgt _08059430
|
|
adds r0, r1, 0x1
|
|
strh r0, [r6, 0x1C]
|
|
b _0805952C
|
|
.pool
|
|
_08059430:
|
|
ldrb r0, [r6, 0x8]
|
|
mov r9, r0
|
|
ldrh r2, [r6, 0xA]
|
|
mov r10, r2
|
|
ldrb r7, [r6, 0xC]
|
|
ldr r5, =gUnknown_03005D70
|
|
adds r5, r7, r5
|
|
ldrb r1, [r5]
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_8074AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r0, [r5]
|
|
bl sub_80729D0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bne _0805952C
|
|
movs r0, 0x21
|
|
bl m4aSongNumStop
|
|
movs r0, 0x64
|
|
mov r1, r9
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, =gExperienceTables
|
|
adds r4, 0x1
|
|
lsls r4, 2
|
|
ldr r2, =gBaseStats
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r0, r1
|
|
adds r4, r0
|
|
adds r4, r3
|
|
ldr r1, [r4]
|
|
str r1, [sp]
|
|
mov r2, r10
|
|
lsls r0, r2, 16
|
|
asrs r4, r0, 16
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, r4
|
|
cmp r0, r1
|
|
blt _08059510
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r5, 0
|
|
bl pokemon_calc_effective_stats
|
|
ldr r2, [sp]
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0]
|
|
subs r2, r0
|
|
subs r2, r4, r2
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x1
|
|
movs r1, 0xB
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
strb r5, [r4]
|
|
ldr r0, =sub_8059544
|
|
str r0, [r6]
|
|
b _0805952C
|
|
.pool
|
|
_08059510:
|
|
str r0, [sp, 0x4]
|
|
add r2, sp, 0x4
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
ldr r1, =gUnknown_03005D60
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80591A0
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_0805952C:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059400
|
|
|
|
thumb_func_start sub_8059544
|
|
sub_8059544: @ 8059544
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0xC]
|
|
ldrb r6, [r0, 0x8]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08059578
|
|
ldr r1, =gUnknown_0202406E
|
|
movs r0, 0x2
|
|
adds r2, r4, 0
|
|
eors r2, r0
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bne _08059578
|
|
adds r4, r2, 0
|
|
_08059578:
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl move_anim_start_t4
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_80595A4
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059544
|
|
|
|
thumb_func_start sub_80595A4
|
|
sub_80595A4: @ 80595A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
ldrb r5, [r2, 0xC]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059646
|
|
ldrb r4, [r2, 0x8]
|
|
movs r0, 0x64
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r7, r1, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08059624
|
|
ldr r1, =gUnknown_0202406E
|
|
movs r0, 0x2
|
|
adds r2, r5, 0
|
|
eors r2, r0
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _08059624
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
b _08059638
|
|
.pool
|
|
_08059624:
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x64
|
|
muls r1, r4
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
_08059638:
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_805965C
|
|
str r0, [r1]
|
|
_08059646:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80595A4
|
|
|
|
thumb_func_start sub_805965C
|
|
sub_805965C: @ 805965C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x8]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
ldrb r0, [r4, 0xC]
|
|
ldr r1, =gUnknown_03005D60
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80591A0
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805965C
|
|
|
|
thumb_func_start sub_80596A8
|
|
sub_80596A8: @ 80596A8
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02020630
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r3, 0x22
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, 0x26
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
ble _08059724
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl nullsub_24
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl rotscale_free_entry
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl1_exec_completed
|
|
_08059724:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80596A8
|
|
|
|
thumb_func_start sub_8059744
|
|
sub_8059744: @ 8059744
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059798
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl1_exec_completed
|
|
_08059798:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059744
|
|
|
|
thumb_func_start sub_80597B4
|
|
sub_80597B4: @ 80597B4
|
|
push {lr}
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080597C6
|
|
bl dp01_tbl1_exec_completed
|
|
_080597C6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80597B4
|
|
|
|
thumb_func_start sub_80597CC
|
|
sub_80597CC: @ 80597CC
|
|
push {r4,lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805980A
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8059828
|
|
str r1, [r0]
|
|
ldr r3, =gTasks
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r3
|
|
ldrb r4, [r1, 0x8]
|
|
bl DestroyTask
|
|
bl FreeAllWindowBuffers
|
|
adds r0, r4, 0
|
|
bl sub_81B89AC
|
|
_0805980A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80597CC
|
|
|
|
thumb_func_start sub_8059828
|
|
sub_8059828: @ 8059828
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
bne _08059898
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059898
|
|
ldr r0, =gUnknown_0203CEE8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08059870
|
|
ldr r0, =gUnknown_0203CEE9
|
|
ldrb r1, [r0]
|
|
ldr r2, =gUnknown_0203CF00
|
|
movs r0, 0x1
|
|
bl dp01_build_cmdbuf_x22_a_three_bytes
|
|
b _0805987A
|
|
.pool
|
|
_08059870:
|
|
movs r0, 0x1
|
|
movs r1, 0x6
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x22_a_three_bytes
|
|
_0805987A:
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _08059894
|
|
bl b_link_standby_message
|
|
_08059894:
|
|
bl dp01_tbl1_exec_completed
|
|
_08059898:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059828
|
|
|
|
thumb_func_start sub_80598A4
|
|
sub_80598A4: @ 80598A4
|
|
push {lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080598CC
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80598E0
|
|
str r1, [r0]
|
|
bl nullsub_35
|
|
bl FreeAllWindowBuffers
|
|
bl sub_81AABB0
|
|
_080598CC:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80598A4
|
|
|
|
thumb_func_start sub_80598E0
|
|
sub_80598E0: @ 80598E0
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, =sub_8038420
|
|
cmp r1, r0
|
|
bne _08059906
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059906
|
|
ldr r0, =gUnknown_0203CE7C
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
bl dp01_build_cmdbuf_x23_aa_0
|
|
bl dp01_tbl1_exec_completed
|
|
_08059906:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80598E0
|
|
|
|
thumb_func_start bx_wait_t1
|
|
bx_wait_t1: @ 805991C
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244B9
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08059942
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059946
|
|
_08059942:
|
|
bl dp01_tbl1_exec_completed
|
|
_08059946:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_wait_t1
|
|
|
|
thumb_func_start bx_blink_t1
|
|
bx_blink_t1: @ 8059958
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x20
|
|
bne _080599A4
|
|
movs r3, 0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
subs r0, 0x5
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_020244B9
|
|
strb r3, [r0]
|
|
bl dp01_tbl1_exec_completed
|
|
b _080599CE
|
|
.pool
|
|
_080599A4:
|
|
ldrh r0, [r4, 0x30]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080599C8
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080599C8:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_080599CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_blink_t1
|
|
|
|
thumb_func_start sub_80599D4
|
|
sub_80599D4: @ 80599D4
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059A02
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08059A02
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
bl sub_8056BAC
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl sub_8056B74
|
|
_08059A02:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059A2C
|
|
ldr r4, =gUnknown_03005D74
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08059A2C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldrb r0, [r4]
|
|
bl sub_8056BAC
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
bl sub_8056B74
|
|
_08059A2C:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r2, 0x1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059A7A
|
|
str r2, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
ldr r0, =gUnknown_03005D74
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08059A6C
|
|
movs r0, 0x1
|
|
movs r1, 0xE
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
b _08059A76
|
|
.pool
|
|
_08059A6C:
|
|
movs r0, 0x1
|
|
movs r1, 0xD
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_08059A76:
|
|
bl dp01_tbl1_exec_completed
|
|
_08059A7A:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059AA0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
movs r0, 0x5
|
|
bl audio_play
|
|
bl dp01_tbl1_exec_completed
|
|
_08059AA0:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80599D4
|
|
|
|
thumb_func_start sub_8059AAC
|
|
sub_8059AAC: @ 8059AAC
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 9
|
|
ldr r3, =gUnknown_02023068
|
|
ldr r2, =gUnknown_03005D78
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_02022E2C
|
|
adds r4, r1, r3
|
|
adds r6, r2, 0
|
|
_08059AC4:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl battle_menu_cursor_related
|
|
ldrh r1, [r4]
|
|
movs r0, 0xD
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl StringCopy
|
|
adds r1, r5, 0x3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r7, 0
|
|
bl battle_show_message_maybe
|
|
ldrh r0, [r4]
|
|
cmp r0, 0
|
|
beq _08059AF4
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
_08059AF4:
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08059AC4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059AAC
|
|
|
|
thumb_func_start sub_8059B18
|
|
sub_8059B18: @ 8059B18
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_085CCA6F
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
bl battle_show_message_maybe
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059B18
|
|
|
|
thumb_func_start sub_8059B3C
|
|
sub_8059B3C: @ 8059B3C
|
|
push {r4-r7,lr}
|
|
ldr r5, =gUnknown_02023064
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
adds r1, r5, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08059B98
|
|
bl sub_814FBAC
|
|
ldrb r1, [r7]
|
|
lsls r4, r1, 9
|
|
adds r0, r5, 0x4
|
|
adds r4, r0
|
|
ldr r6, =gUnknown_02022E2C
|
|
ldr r5, =gUnknown_020244B0
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
movs r1, 0xBA
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
ldrb r1, [r7]
|
|
adds r1, r5
|
|
adds r4, 0xC
|
|
ldrb r1, [r1]
|
|
adds r4, r1
|
|
ldrb r1, [r4]
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r6, 0
|
|
movs r1, 0x9
|
|
bl battle_show_message_maybe
|
|
_08059B98:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059B3C
|
|
|
|
thumb_func_start sub_8059BB0
|
|
sub_8059BB0: @ 8059BB0
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r4, 9
|
|
ldr r0, =gUnknown_02023068
|
|
adds r4, r0
|
|
ldr r6, =gUnknown_02022E2C
|
|
ldr r1, =gUnknown_085CCA73
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
movs r1, 0xFC
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
ldr r3, =gBattleMoves
|
|
ldr r2, =gUnknown_020244B0
|
|
ldrb r1, [r5]
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
ldrh r2, [r4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1, 0x2]
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
ldr r2, =gTypeNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl battle_show_message_maybe
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059BB0
|
|
|
|
thumb_func_start battle_menu_cursor_related_2
|
|
battle_menu_cursor_related_2: @ 8059C28
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
add r2, sp, 0xC
|
|
adds r0, r1, 0x1
|
|
strh r0, [r2]
|
|
adds r0, r2, 0
|
|
adds r1, 0x2
|
|
strh r1, [r0, 0x2]
|
|
movs r1, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
adds r2, 0x1
|
|
movs r0, 0x2
|
|
ands r3, r0
|
|
adds r3, 0x37
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end battle_menu_cursor_related_2
|
|
|
|
thumb_func_start battle_menu_cursor_related
|
|
battle_menu_cursor_related: @ 8059C70
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
add r0, sp, 0xC
|
|
ldr r1, =0x00001016
|
|
strh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
movs r1, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
adds r2, 0x1
|
|
movs r0, 0x2
|
|
ands r3, r0
|
|
adds r3, 0x37
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end battle_menu_cursor_related
|
|
|
|
thumb_func_start sub_8059CB4
|
|
sub_8059CB4: @ 8059CB4
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
add r0, sp, 0xC
|
|
movs r4, 0x1
|
|
strh r4, [r0]
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2]
|
|
adds r0, r3, 0
|
|
ands r0, r4
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
adds r2, 0x10
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ands r3, r1
|
|
adds r3, 0x23
|
|
str r4, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8059CB4
|
|
|
|
thumb_func_start sub_8059CF8
|
|
sub_8059CF8: @ 8059CF8
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
add r0, sp, 0xC
|
|
ldr r1, =0x00001016
|
|
strh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
movs r1, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
adds r2, 0x10
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x2
|
|
ands r3, r0
|
|
adds r3, 0x23
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
add r1, sp, 0xC
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059CF8
|
|
|
|
thumb_func_start sub_8059D40
|
|
sub_8059D40: @ 8059D40
|
|
push {lr}
|
|
ldr r0, =sub_80A92F8
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059D40
|
|
|
|
thumb_func_start sub_8059D50
|
|
sub_8059D50: @ 8059D50
|
|
push {lr}
|
|
ldr r0, =sub_80A92F8
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059D50
|
|
|
|
thumb_func_start sub_8059D60
|
|
sub_8059D60: @ 8059D60
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059D82
|
|
bl dp01_tbl1_exec_completed
|
|
_08059D82:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8059D60
|
|
|
|
thumb_func_start bx_8030B2C
|
|
bx_8030B2C: @ 8059D90
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08059DB2
|
|
bl dp01_tbl1_exec_completed
|
|
_08059DB2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_8030B2C
|
|
|
|
thumb_func_start b_link_standby_message
|
|
b_link_standby_message: @ 8059DC0
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059DE0
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_085CCA29
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
_08059DE0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end b_link_standby_message
|
|
|
|
thumb_func_start dp01t_00_1_getattr
|
|
dp01t_00_1_getattr: @ 8059DF4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x100
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08059E2C
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl dp01_getattr_by_ch1_for_player_pokemon_
|
|
adds r6, r0, 0
|
|
b _08059E4E
|
|
.pool
|
|
_08059E2C:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_08059E30:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08059E46
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl dp01_getattr_by_ch1_for_player_pokemon_
|
|
adds r6, r0
|
|
_08059E46:
|
|
lsrs r4, 1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08059E30
|
|
_08059E4E:
|
|
lsls r1, r6, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x1
|
|
mov r2, sp
|
|
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
|
|
bl dp01_tbl1_exec_completed
|
|
add sp, 0x100
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_00_1_getattr
|
|
|
|
thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
|
|
dp01_getattr_by_ch1_for_player_pokemon_: @ 8059E68
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x90
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3B
|
|
bls _08059E92
|
|
bl _0805A5FE
|
|
_08059E92:
|
|
lsls r0, 2
|
|
ldr r1, =_08059EA8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08059EA8:
|
|
.4byte _08059F98
|
|
.4byte _0805A1BC
|
|
.4byte _0805A1CC
|
|
.4byte _0805A1DC
|
|
.4byte _0805A244
|
|
.4byte _0805A244
|
|
.4byte _0805A244
|
|
.4byte _0805A244
|
|
.4byte _0805A260
|
|
.4byte _0805A29C
|
|
.4byte _0805A29C
|
|
.4byte _0805A29C
|
|
.4byte _0805A29C
|
|
.4byte _0805A5FE
|
|
.4byte _0805A5FE
|
|
.4byte _0805A5FE
|
|
.4byte _0805A5FE
|
|
.4byte _0805A2B8
|
|
.4byte _0805A2C8
|
|
.4byte _0805A2F8
|
|
.4byte _0805A308
|
|
.4byte _0805A318
|
|
.4byte _0805A328
|
|
.4byte _0805A338
|
|
.4byte _0805A348
|
|
.4byte _0805A358
|
|
.4byte _0805A368
|
|
.4byte _0805A378
|
|
.4byte _0805A388
|
|
.4byte _0805A398
|
|
.4byte _0805A3A8
|
|
.4byte _0805A3B8
|
|
.4byte _0805A408
|
|
.4byte _0805A418
|
|
.4byte _0805A428
|
|
.4byte _0805A438
|
|
.4byte _0805A448
|
|
.4byte _0805A458
|
|
.4byte _0805A468
|
|
.4byte _0805A478
|
|
.4byte _0805A488
|
|
.4byte _0805A4BC
|
|
.4byte _0805A4CC
|
|
.4byte _0805A4DC
|
|
.4byte _0805A4EC
|
|
.4byte _0805A4FC
|
|
.4byte _0805A50C
|
|
.4byte _0805A51C
|
|
.4byte _0805A52C
|
|
.4byte _0805A54C
|
|
.4byte _0805A55C
|
|
.4byte _0805A56C
|
|
.4byte _0805A57C
|
|
.4byte _0805A58C
|
|
.4byte _0805A59C
|
|
.4byte _0805A5AC
|
|
.4byte _0805A5BC
|
|
.4byte _0805A5CC
|
|
.4byte _0805A5DC
|
|
.4byte _0805A5EC
|
|
_08059F98:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2E]
|
|
movs r6, 0
|
|
add r0, sp, 0x24
|
|
mov r9, r0
|
|
movs r1, 0x3B
|
|
add r1, sp
|
|
mov r10, r1
|
|
mov r2, sp
|
|
adds r2, 0x2B
|
|
str r2, [sp, 0x80]
|
|
mov r0, sp
|
|
adds r0, 0x2A
|
|
str r0, [sp, 0x7C]
|
|
mov r1, sp
|
|
adds r1, 0x68
|
|
str r1, [sp, 0x8C]
|
|
adds r2, 0x5
|
|
str r2, [sp, 0x84]
|
|
adds r0, 0x12
|
|
str r0, [sp, 0x88]
|
|
mov r8, r4
|
|
add r4, sp, 0xC
|
|
_08059FE4:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r0, r8
|
|
bl GetMonData
|
|
mov r2, r9
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08059FE4
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
ldr r2, [sp, 0x80]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
str r0, [sp, 0x44]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r5, 0x1F
|
|
ands r0, r5
|
|
ldrb r2, [r3, 0x14]
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r6, 0x1F
|
|
ands r0, r6
|
|
lsls r0, 5
|
|
ldrh r2, [r3, 0x14]
|
|
ldr r1, =0xfffffc1f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
ldrb r2, [r3, 0x15]
|
|
movs r1, 0x7D
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x15]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 15
|
|
ldr r0, [sp, 0x14]
|
|
ldr r2, =0xfff07fff
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r6
|
|
lsls r0, 4
|
|
ldrh r2, [r3, 0x16]
|
|
ldr r1, =0xfffffe0f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x16]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 1
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x48]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
str r0, [sp, 0x4C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
ldr r1, [sp, 0x7C]
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x28]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0xA]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 6
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
mov r3, sp
|
|
lsls r0, 7
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x7F
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
str r0, [sp, 0x54]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
ldr r2, [sp, 0x8C]
|
|
bl GetMonData
|
|
ldr r0, [sp, 0x84]
|
|
ldr r1, [sp, 0x8C]
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
ldr r2, [sp, 0x88]
|
|
bl GetMonData
|
|
mov r2, sp
|
|
movs r6, 0
|
|
_0805A19C:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0x57
|
|
bls _0805A19C
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A1BC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
b _0805A536
|
|
.pool
|
|
_0805A1CC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
b _0805A536
|
|
.pool
|
|
_0805A1DC:
|
|
movs r6, 0
|
|
add r2, sp, 0x58
|
|
mov r9, r2
|
|
add r0, sp, 0x60
|
|
mov r10, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
mov r8, r9
|
|
_0805A1F2:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r2, r10
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805A1F2
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r9
|
|
strb r0, [r1, 0xC]
|
|
mov r2, r9
|
|
movs r6, 0
|
|
_0805A230:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
bls _0805A230
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A244:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _0805A536
|
|
.pool
|
|
_0805A260:
|
|
movs r6, 0
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r2, =gPlayerParty
|
|
mov r8, r2
|
|
_0805A26C:
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r2, r8
|
|
adds r0, r4, r2
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0805A26C
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A29C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A2B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
b _0805A2D2
|
|
.pool
|
|
_0805A2C8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x19
|
|
_0805A2D2:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
movs r6, 0x3
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A2F8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1A
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A308:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1B
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A318:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1C
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A328:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1D
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A338:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1E
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A348:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x1F
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A358:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A368:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x22
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A378:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x23
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A388:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x24
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A398:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x25
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A3A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A3B8:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
strb r0, [r7, 0x1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
strb r0, [r7, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
strb r0, [r7, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
strb r0, [r7, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
strb r0, [r7, 0x5]
|
|
movs r6, 0x6
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A408:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x27
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A418:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x28
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A428:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x29
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A438:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2A
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A448:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2B
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A458:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A468:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0
|
|
b _0805A492
|
|
.pool
|
|
_0805A478:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x9
|
|
b _0805A536
|
|
.pool
|
|
_0805A488:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
_0805A492:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
lsrs r0, r1, 24
|
|
strb r0, [r7, 0x3]
|
|
movs r6, 0x4
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A4BC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A4CC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x39
|
|
b _0805A536
|
|
.pool
|
|
_0805A4DC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
b _0805A536
|
|
.pool
|
|
_0805A4EC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3B
|
|
b _0805A536
|
|
.pool
|
|
_0805A4FC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3C
|
|
b _0805A536
|
|
.pool
|
|
_0805A50C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3D
|
|
b _0805A536
|
|
.pool
|
|
_0805A51C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3E
|
|
b _0805A536
|
|
.pool
|
|
_0805A52C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3F
|
|
_0805A536:
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
strb r0, [r7]
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r6, 0x2
|
|
b _0805A5FE
|
|
.pool
|
|
_0805A54C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x16
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A55C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x17
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A56C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A57C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x21
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A58C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2F
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A59C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x30
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A5AC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x32
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A5BC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x33
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A5CC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x34
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A5DC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x35
|
|
b _0805A5F6
|
|
.pool
|
|
_0805A5EC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x36
|
|
_0805A5F6:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, 0x1
|
|
_0805A5FE:
|
|
adds r0, r6, 0
|
|
add sp, 0x90
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
|
|
|
|
thumb_func_start sub_805A614
|
|
sub_805A614: @ 805A614
|
|
push {r4-r7,lr}
|
|
sub sp, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
ldr r3, =gUnknown_02023064
|
|
lsls r1, 9
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
ldr r0, =gPlayerParty
|
|
adds r0, r2, r0
|
|
adds r6, r4, r0
|
|
mov r0, sp
|
|
adds r4, r0, r2
|
|
movs r2, 0
|
|
adds r0, r3, 0x2
|
|
adds r1, r0
|
|
adds r7, r5, 0
|
|
mov r12, r3
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcs _0805A66A
|
|
adds r3, r0, 0
|
|
_0805A650:
|
|
adds r1, r4, r2
|
|
adds r0, r6, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _0805A650
|
|
_0805A66A:
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
mov r1, r12
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
|
|
bl dp01_tbl1_exec_completed
|
|
add sp, 0x58
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805A614
|
|
|
|
thumb_func_start dp01t_02_1_setattr
|
|
dp01t_02_1_setattr: @ 805A69C
|
|
push {r4,r5,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805A6CC
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl dp01_setattr_by_ch1_for_player_pokemon
|
|
b _0805A6EA
|
|
.pool
|
|
_0805A6CC:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_0805A6D0:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805A6DE
|
|
adds r0, r5, 0
|
|
bl dp01_setattr_by_ch1_for_player_pokemon
|
|
_0805A6DE:
|
|
lsrs r4, 1
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _0805A6D0
|
|
_0805A6EA:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_02_1_setattr
|
|
|
|
thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
|
|
dp01_setattr_by_ch1_for_player_pokemon: @ 805A6F4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
ldr r2, =gUnknown_02023067
|
|
adds r3, r0, r2
|
|
adds r6, r3, 0
|
|
subs r1, r2, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r2, 0
|
|
cmp r0, 0x3B
|
|
bls _0805A720
|
|
bl _0805B0BA
|
|
_0805A720:
|
|
lsls r0, 2
|
|
ldr r1, =_0805A738
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0805A738:
|
|
.4byte _0805A828
|
|
.4byte _0805A9C0
|
|
.4byte _0805A9E0
|
|
.4byte _0805AA00
|
|
.4byte _0805AA58
|
|
.4byte _0805AA58
|
|
.4byte _0805AA58
|
|
.4byte _0805AA58
|
|
.4byte _0805AA80
|
|
.4byte _0805AAE4
|
|
.4byte _0805AAE4
|
|
.4byte _0805AAE4
|
|
.4byte _0805AAE4
|
|
.4byte _0805B0BA
|
|
.4byte _0805B0BA
|
|
.4byte _0805B0BA
|
|
.4byte _0805B0BA
|
|
.4byte _0805AB14
|
|
.4byte _0805AB34
|
|
.4byte _0805AB54
|
|
.4byte _0805AB74
|
|
.4byte _0805AB94
|
|
.4byte _0805ABB4
|
|
.4byte _0805ABD4
|
|
.4byte _0805ABF4
|
|
.4byte _0805AC14
|
|
.4byte _0805AC34
|
|
.4byte _0805AC54
|
|
.4byte _0805AC74
|
|
.4byte _0805AC94
|
|
.4byte _0805ACB4
|
|
.4byte _0805ACD4
|
|
.4byte _0805AD44
|
|
.4byte _0805AD64
|
|
.4byte _0805AD84
|
|
.4byte _0805ADA4
|
|
.4byte _0805ADC4
|
|
.4byte _0805ADE4
|
|
.4byte _0805AE04
|
|
.4byte _0805AE24
|
|
.4byte _0805AE44
|
|
.4byte _0805AE64
|
|
.4byte _0805AE84
|
|
.4byte _0805AEA4
|
|
.4byte _0805AEC4
|
|
.4byte _0805AEE4
|
|
.4byte _0805AF04
|
|
.4byte _0805AF24
|
|
.4byte _0805AF44
|
|
.4byte _0805AF64
|
|
.4byte _0805AF84
|
|
.4byte _0805AFA4
|
|
.4byte _0805AFC4
|
|
.4byte _0805AFE4
|
|
.4byte _0805B004
|
|
.4byte _0805B024
|
|
.4byte _0805B044
|
|
.4byte _0805B064
|
|
.4byte _0805B084
|
|
.4byte _0805B0A4
|
|
_0805A828:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r2, r6, 0
|
|
adds r2, 0x2E
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x3B
|
|
adds r0, r6
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0x2B
|
|
str r0, [sp, 0x20]
|
|
adds r0, 0x19
|
|
str r0, [sp, 0x28]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x2C]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x30]
|
|
subs r0, 0x22
|
|
str r0, [sp, 0x1C]
|
|
subs r0, 0x2
|
|
str r0, [sp, 0x18]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x24]
|
|
adds r0, r6, 0x2
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0x4
|
|
str r0, [sp, 0x8]
|
|
adds r0, r6, 0x6
|
|
str r0, [sp, 0xC]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x10]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x14]
|
|
mov r9, r4
|
|
adds r7, r6, 0
|
|
adds r7, 0x24
|
|
adds r4, r6, 0
|
|
adds r4, 0xC
|
|
_0805A88E:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
mov r0, r9
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
mov r0, r9
|
|
adds r2, r7, 0
|
|
bl pokemon_setattr
|
|
adds r7, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _0805A88E
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
mov r2, r10
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
ldr r2, [sp, 0x20]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
ldr r2, [sp, 0x28]
|
|
bl pokemon_setattr
|
|
ldrb r0, [r6, 0x14]
|
|
lsls r0, 27
|
|
lsrs r0, 27
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r6, 0x14]
|
|
lsls r0, 22
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r6, 0x15]
|
|
lsls r0, 25
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldr r0, [r6, 0x14]
|
|
lsls r0, 12
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r6, 0x16]
|
|
lsls r0, 23
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r6, 0x17]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
ldr r2, [sp, 0x2C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
ldr r2, [sp, 0x30]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
ldr r2, [sp, 0x1C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
ldr r2, [sp, 0x18]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
ldr r2, [sp, 0x24]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
ldr r2, [sp, 0x4]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
ldr r2, [sp, 0x8]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
ldr r2, [sp, 0xC]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
ldr r2, [sp, 0x10]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
ldr r2, [sp, 0x14]
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805A9C0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0xB
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805A9E0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AA00:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0xC
|
|
adds r0, r3
|
|
mov r9, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r7, r1, r0
|
|
adds r6, r3, 0
|
|
adds r6, 0x8
|
|
adds r4, r3, 0
|
|
_0805AA1A:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
adds r0, r7, 0
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
adds r0, r7, 0
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r6, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _0805AA1A
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
mov r2, r9
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AA58:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _0805AAFC
|
|
.pool
|
|
_0805AA80:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
adds r0, r4, 0
|
|
movs r1, 0x11
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x12
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x13
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AAE4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
_0805AAFC:
|
|
adds r3, 0x3
|
|
adds r2, r3
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AB14:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AB34:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AB54:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1A
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AB74:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1B
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AB94:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1C
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ABB4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1D
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ABD4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1E
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ABF4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x1F
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AC14:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x20
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AC34:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x22
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AC54:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x23
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AC74:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x24
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AC94:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x25
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ACB4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x26
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ACD4:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
ldrb r2, [r5]
|
|
lsls r2, 9
|
|
adds r0, r7, 0x5
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
b _0805ADF4
|
|
.pool
|
|
_0805AD44:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AD64:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AD84:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ADA4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ADC4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805ADE4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
_0805ADF4:
|
|
movs r1, 0x2C
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AE04:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AE24:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x9
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AE44:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x37
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AE64:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x38
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AE84:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x39
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AEA4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3A
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AEC4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3B
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AEE4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3C
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AF04:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3D
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AF24:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3E
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AF44:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x3F
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AF64:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x16
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AF84:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x17
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AFA4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x18
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AFC4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x21
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805AFE4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x2F
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B004:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x30
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B024:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x32
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B044:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x33
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B064:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x34
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B084:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x35
|
|
bl pokemon_setattr
|
|
b _0805B0BA
|
|
.pool
|
|
_0805B0A4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
lsls r2, 9
|
|
adds r2, r7
|
|
movs r1, 0x36
|
|
bl pokemon_setattr
|
|
_0805B0BA:
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805E990
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
|
|
|
|
thumb_func_start sub_805B0F0
|
|
sub_805B0F0: @ 805B0F0
|
|
push {r4-r7,lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
ldr r4, =gUnknown_02023064
|
|
lsls r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
adds r5, r3, r0
|
|
movs r3, 0
|
|
adds r0, r4, 0x2
|
|
adds r2, r0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcs _0805B148
|
|
adds r6, r4, 0
|
|
adds r2, r7, 0
|
|
adds r4, r0, 0
|
|
_0805B126:
|
|
adds r1, r5, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, 0x3
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcc _0805B126
|
|
_0805B148:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B0F0
|
|
|
|
thumb_func_start sub_805B164
|
|
sub_805B164: @ 805B164
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805DD7C
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldrb r3, [r4]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
lsls r3, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_0802E404
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B164
|
|
|
|
thumb_func_start sub_805B1CC
|
|
sub_805B1CC: @ 805B1CC
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
ldr r4, =gUnknown_02023064
|
|
lsls r1, r0, 9
|
|
adds r6, r4, 0x2
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
bl sub_805EF84
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 1
|
|
adds r1, r2
|
|
lsls r0, 9
|
|
adds r4, 0x1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r4, 0
|
|
strh r0, [r1]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805DD7C
|
|
ldr r1, =gUnknown_020244AC
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r1, =gUnknown_020244B0
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, 9
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
bl sub_805B258
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805902C
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B1CC
|
|
|
|
thumb_func_start sub_805B258
|
|
sub_805B258: @ 805B258
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_805EF84
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r2, r6, 1
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r6, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r2]
|
|
ldrh r1, [r2]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, =sub_805D714
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, =gUnknown_03005D7C
|
|
mov r9, r1
|
|
add r9, r6
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_806A068
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_80A5C6C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A6138
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, =gUnknown_02020630
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r4]
|
|
strh r1, [r0, 0x30]
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x32]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r3, r6, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r6, r1
|
|
ldrb r1, [r6]
|
|
bl StartObjectImageAnim
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =DummyObjectCallback
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xFF
|
|
bl sub_80753E8
|
|
mov r1, r9
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x2E]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B258
|
|
|
|
thumb_func_start sub_805B3D4
|
|
sub_805B3D4: @ 805B3D4
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
bne _0805B41C
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805B464
|
|
str r1, [r0]
|
|
b _0805B452
|
|
.pool
|
|
_0805B41C:
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl1_exec_completed
|
|
_0805B452:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B3D4
|
|
|
|
thumb_func_start sub_805B464
|
|
sub_805B464: @ 805B464
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r4, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
beq _0805B48C
|
|
cmp r0, 0x1
|
|
beq _0805B4BA
|
|
b _0805B4E2
|
|
.pool
|
|
_0805B48C:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B4A6
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_0805B4A6:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _0805B4E2
|
|
_0805B4BA:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805B4E2
|
|
strb r0, [r3, 0x4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x1
|
|
bl move_anim_start_t4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8059744
|
|
str r1, [r0]
|
|
_0805B4E2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B464
|
|
|
|
thumb_func_start sub_805B4F0
|
|
sub_805B4F0: @ 805B4F0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B5B4
|
|
bl link_get_multiplayer_id
|
|
ldr r5, =gUnknown_020229E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
movs r4, 0xFF
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _0805B538
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x5
|
|
bne _0805B558
|
|
_0805B538:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x13]
|
|
adds r4, r0, 0x2
|
|
b _0805B5BA
|
|
.pool
|
|
_0805B558:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _0805B58A
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, 0x1
|
|
bne _0805B5A0
|
|
_0805B58A:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x13]
|
|
adds r4, r0, 0x4
|
|
b _0805B5BA
|
|
_0805B5A0:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r4, [r1, 0x13]
|
|
b _0805B5BA
|
|
_0805B5B4:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, 0x8]
|
|
_0805B5BA:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r2, 0x40
|
|
ands r1, r2
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
beq _0805B63C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
movs r0, 0x20
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _0805B5E0
|
|
movs r1, 0x5A
|
|
mov r9, r1
|
|
_0805B5E0:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B618
|
|
ldr r0, =gUnknown_02038BCE
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c03
|
|
cmp r1, r0
|
|
beq _0805B618
|
|
movs r0, 0x5A
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_083054E0
|
|
b _0805B642
|
|
.pool
|
|
_0805B618:
|
|
ldr r1, =gUnknown_08305D2C
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
subs r0, r1
|
|
lsls r0, 18
|
|
movs r1, 0xA0
|
|
lsls r1, 15
|
|
adds r0, r1
|
|
lsrs r7, r0, 16
|
|
ldr r5, =gBattleTypeFlags
|
|
b _0805B656
|
|
.pool
|
|
_0805B63C:
|
|
movs r0, 0x50
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_08305D2C
|
|
_0805B642:
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
subs r0, r1
|
|
lsls r0, 18
|
|
movs r1, 0xA0
|
|
lsls r1, 15
|
|
adds r0, r1
|
|
lsrs r7, r0, 16
|
|
_0805B656:
|
|
ldr r0, [r5]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805B664
|
|
b _0805B794
|
|
_0805B664:
|
|
ldr r0, =gUnknown_02038BCE
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000c03
|
|
cmp r1, r0
|
|
bne _0805B670
|
|
b _0805B794
|
|
_0805B670:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
bl sub_806F000
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r5, r4, 0
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r1, [r6]
|
|
adds r0, r5, 0
|
|
bl sub_805DF38
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl sub_806A1C0
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r8, r0
|
|
lsls r4, r7, 16
|
|
asrs r4, 16
|
|
ldrb r0, [r6]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r8
|
|
mov r1, r9
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
ldrb r1, [r6]
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, =gTrainerFrontPicPaletteTable
|
|
lsls r5, 3
|
|
adds r5, r0
|
|
ldrh r0, [r5, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldr r5, =gUnknown_02020630
|
|
ldrb r1, [r6]
|
|
adds r1, r4
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r5
|
|
lsls r0, 4
|
|
ldrb r3, [r2, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0xF0
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x30
|
|
strh r1, [r0, 0x26]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =0x0000fffe
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0805B82A
|
|
.pool
|
|
_0805B794:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_805DF84
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r6, =gUnknown_0202499C
|
|
mov r8, r9
|
|
lsls r4, r7, 16
|
|
asrs r4, 16
|
|
ldrb r0, [r5]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r6, =gUnknown_020241E4
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
lsls r3, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xF0
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000fffe
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
_0805B82A:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058844
|
|
str r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B4F0
|
|
|
|
thumb_func_start dp01t_08_1_8032428
|
|
dp01t_08_1_8032428: @ 805B864
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B920
|
|
bl link_get_multiplayer_id
|
|
ldr r5, =gUnknown_020229E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
movs r4, 0xFF
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _0805B8A6
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x5
|
|
bne _0805B8C4
|
|
_0805B8A6:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x13]
|
|
adds r4, r0, 0x2
|
|
b _0805B926
|
|
.pool
|
|
_0805B8C4:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _0805B8F6
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, 0x1
|
|
bne _0805B90C
|
|
_0805B8F6:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x13]
|
|
adds r4, r0, 0x4
|
|
b _0805B926
|
|
_0805B90C:
|
|
bl link_get_multiplayer_id
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r4, [r1, 0x13]
|
|
b _0805B926
|
|
_0805B920:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, 0x8]
|
|
_0805B926:
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_805DF84
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r0, =gUnknown_0202499C
|
|
ldr r1, =gUnknown_08305D2C
|
|
lsls r4, 2
|
|
adds r4, r1
|
|
ldrb r1, [r4]
|
|
movs r2, 0x8
|
|
subs r2, r1
|
|
lsls r2, 18
|
|
movs r1, 0xA0
|
|
lsls r1, 15
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
movs r1, 0x50
|
|
movs r3, 0x1E
|
|
bl AddObjectToFront
|
|
ldr r6, =gUnknown_020241E4
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
lsls r3, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000ffa0
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805887C
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_08_1_8032428
|
|
|
|
thumb_func_start sub_805B9F8
|
|
sub_805B9F8: @ 805B9F8
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x32
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000ffd8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =DummyObjectCallback
|
|
bl oamt_set_x3A_32
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_802F7A0
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805B9F8
|
|
|
|
thumb_func_start sub_805BAB8
|
|
sub_805BAB8: @ 805BAB8
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r0, [r4, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
bne _0805BB0C
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805BAEC
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_0805BAEC:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x4]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _0805BB82
|
|
.pool
|
|
_0805BB0C:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0805BB82
|
|
strb r4, [r3, 0x4]
|
|
ldr r2, =gUnknown_0202406E
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805E990
|
|
movs r1, 0x40
|
|
negs r1, r1
|
|
movs r0, 0x10
|
|
bl audio_play_and_stuff
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r3, =gUnknown_020241E4
|
|
ldrb r0, [r5]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r4, [r0, 0x30]
|
|
ldrb r0, [r5]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x5
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r5]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039C00
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80596A8
|
|
str r1, [r0]
|
|
_0805BB82:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805BAB8
|
|
|
|
thumb_func_start sub_805BBA4
|
|
sub_805BBA4: @ 805BBA4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
bl dp01_tbl1_exec_completed
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805BBA4
|
|
|
|
thumb_func_start sub_805BBC4
|
|
sub_805BBC4: @ 805BBC4
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x8]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x8]
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x3
|
|
bl move_anim_start_t4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_wait_t1
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805BBC4
|
|
|
|
thumb_func_start sub_805BC18
|
|
sub_805BC18: @ 805BC18
|
|
push {r4,r5,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
strb r1, [r0, 0x8]
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r4, [r5]
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x3
|
|
bl move_anim_start_t4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_wait_t1
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805BC18
|
|
|
|
thumb_func_start sub_805BC78
|
|
sub_805BC78: @ 805BC78
|
|
push {lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805BC96
|
|
_0805BC8C:
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805BC8C
|
|
_0805BC96:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805BC78
|
|
|
|
thumb_func_start dp01t_0F_1_move_anim
|
|
dp01t_0F_1_move_anim: @ 805BCA8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BCBE
|
|
b _0805BDE4
|
|
_0805BCBE:
|
|
ldr r0, =gUnknown_02023064
|
|
mov r12, r0
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r6, r0
|
|
ldr r0, =gUnknown_02038432
|
|
mov r8, r0
|
|
mov r0, r12
|
|
adds r0, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02038408
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x4
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x5
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r3]
|
|
ldr r3, =gUnknown_02038404
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x6
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x7
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
mov r0, r12
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
mov r0, r12
|
|
adds r0, 0x9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
str r2, [r3]
|
|
ldr r2, =gUnknown_0203841A
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
mov r1, r12
|
|
adds r1, 0xA
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r4, =gUnknown_0203841C
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0xD
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r4]
|
|
ldr r7, =gUnknown_02038400
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x10
|
|
adds r1, r0
|
|
str r1, [r7]
|
|
ldr r2, =gUnknown_020244BC
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_805DB8C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _0805BDBC
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805BDE4
|
|
.pool
|
|
_0805BDBC:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_move_anim_1
|
|
str r1, [r0]
|
|
ldrh r1, [r4]
|
|
ldr r2, [r7]
|
|
adds r0, r6, 0
|
|
bl sub_817E0FC
|
|
_0805BDE4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_0F_1_move_anim
|
|
|
|
thumb_func_start bx_move_anim_1
|
|
bx_move_anim_1: @ 805BDFC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, 9
|
|
adds r0, r2, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, r2, 0x2
|
|
mov r9, r5
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
adds r2, 0xB
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r7, =gUnknown_020244D0
|
|
ldr r5, [r7]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x4]
|
|
cmp r2, 0x1
|
|
beq _0805BE94
|
|
cmp r2, 0x1
|
|
bgt _0805BE54
|
|
cmp r2, 0
|
|
beq _0805BE5E
|
|
b _0805BF70
|
|
.pool
|
|
_0805BE54:
|
|
cmp r2, 0x2
|
|
beq _0805BEBE
|
|
cmp r2, 0x3
|
|
beq _0805BF34
|
|
b _0805BF70
|
|
_0805BE5E:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, 2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0xC
|
|
ands r0, r2
|
|
cmp r0, 0x4
|
|
bne _0805BE80
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_0805BE80:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _0805BF70
|
|
_0805BE94:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805BF70
|
|
movs r0, 0
|
|
bl sub_805EB9C
|
|
adds r0, r4, 0
|
|
bl move_anim_start_t1
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x4]
|
|
b _0805BF70
|
|
_0805BEBE:
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805BF70
|
|
movs r0, 0x1
|
|
bl sub_805EB9C
|
|
ldr r0, [r7]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805BF0C
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bhi _0805BF0C
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r0]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0805BF0C:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x4]
|
|
b _0805BF70
|
|
.pool
|
|
_0805BF34:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0805BF70
|
|
bl sub_805E394
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 9
|
|
mov r3, r10
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
add r2, r9
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
bl sub_805E94C
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r4, [r0, 0x4]
|
|
bl dp01_tbl1_exec_completed
|
|
_0805BF70:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_move_anim_1
|
|
|
|
thumb_func_start sub_805BF80
|
|
sub_805BF80: @ 805BF80
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r4, 9
|
|
ldr r0, =gUnknown_02023066
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
bl battle_pick_message
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80597B4
|
|
str r1, [r0]
|
|
ldrh r0, [r4]
|
|
bl sub_817C95C
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r4]
|
|
bl sub_81A57E4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805BF80
|
|
|
|
thumb_func_start dp01t_11_1_message_for_player_only
|
|
dp01t_11_1_message_for_player_only: @ 805BFE0
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805BFFC
|
|
bl sub_805BF80
|
|
b _0805C000
|
|
.pool
|
|
_0805BFFC:
|
|
bl dp01_tbl1_exec_completed
|
|
_0805C000:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_11_1_message_for_player_only
|
|
|
|
thumb_func_start sub_805C004
|
|
sub_805C004: @ 805C004
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805C02A
|
|
ldr r0, =gUnknown_02022E14
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_02022E16
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057588
|
|
str r1, [r0]
|
|
_0805C02A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C004
|
|
|
|
thumb_func_start dp01t_12_6_battle_menu
|
|
dp01t_12_6_battle_menu: @ 805C044
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805C004
|
|
str r1, [r0]
|
|
bl sub_817F2A8
|
|
ldr r0, =gUnknown_085CCA3A
|
|
movs r1, 0x2
|
|
bl battle_show_message_maybe
|
|
movs r4, 0
|
|
_0805C062:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8059CF8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0805C062
|
|
ldr r1, =gUnknown_020244AC
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_8059CB4
|
|
ldr r0, =gUnknown_085CC9F3
|
|
bl get_battle_strings_
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0x1
|
|
bl battle_show_message_maybe
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_12_6_battle_menu
|
|
|
|
thumb_func_start sub_805C0B0
|
|
sub_805C0B0: @ 805C0B0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805C108
|
|
str r0, [sp]
|
|
movs r0, 0x18
|
|
movs r1, 0x8
|
|
movs r2, 0x1D
|
|
movs r3, 0xD
|
|
bl sub_8056A3C
|
|
ldr r0, =gUnknown_085CCABB
|
|
movs r1, 0xC
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D74
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_8056B74
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80599D4
|
|
str r1, [r0]
|
|
b _0805C10C
|
|
.pool
|
|
_0805C108:
|
|
bl dp01_tbl1_exec_completed
|
|
_0805C10C:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C0B0
|
|
|
|
thumb_func_start sub_805C114
|
|
sub_805C114: @ 805C114
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805C13E
|
|
ldr r0, =gUnknown_02022E14
|
|
strh r1, [r0]
|
|
ldr r1, =gUnknown_02022E16
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8057BFC
|
|
str r1, [r0]
|
|
_0805C13E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C114
|
|
|
|
thumb_func_start sub_805C158
|
|
sub_805C158: @ 805C158
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
movs r0, 0xA6
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C194
|
|
ldr r1, =gUnknown_0203BD30
|
|
ldr r0, =gRngValue
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bl sub_805D19C
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
bl dp01_tbl1_exec_completed
|
|
_0805C194:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C158
|
|
|
|
thumb_func_start dp01t_14_5_move_menu_pokedude
|
|
dp01t_14_5_move_menu_pokedude: @ 805C1A8
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805C1EC
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0xA6
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805C158
|
|
b _0805C1FC
|
|
.pool
|
|
_0805C1EC:
|
|
bl sub_805C210
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805C114
|
|
_0805C1FC:
|
|
str r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_14_5_move_menu_pokedude
|
|
|
|
thumb_func_start sub_805C210
|
|
sub_805C210: @ 805C210
|
|
push {lr}
|
|
bl sub_8059AAC
|
|
ldr r1, =gUnknown_03005D74
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_020244B0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl battle_menu_cursor_related_2
|
|
bl sub_8059B18
|
|
bl sub_8059B3C
|
|
bl sub_8059BB0
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C210
|
|
|
|
thumb_func_start sub_805C248
|
|
sub_805C248: @ 805C248
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80598A4
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_020244B8
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
ldr r5, =gUnknown_0203CF00
|
|
ldr r4, =gUnknown_02023064
|
|
_0805C276:
|
|
adds r0, r3, r5
|
|
ldrb r1, [r2]
|
|
lsls r1, 9
|
|
adds r1, 0x1
|
|
adds r1, r3, r1
|
|
adds r1, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0805C276
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C248
|
|
|
|
thumb_func_start sub_805C2AC
|
|
sub_805C2AC: @ 805C2AC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0203CF00
|
|
mov r12, r0
|
|
ldr r1, =gUnknown_02023064
|
|
mov r8, r1
|
|
ldr r2, =gUnknown_02024064
|
|
ldr r7, =gBattleTypeFlags
|
|
mov r6, r12
|
|
mov r5, r8
|
|
adds r4, r2, 0
|
|
_0805C2C8:
|
|
adds r0, r3, r6
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r1, 0x4
|
|
adds r1, r3, r1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _0805C2C8
|
|
ldr r0, [r7]
|
|
movs r1, 0x80
|
|
lsls r1, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805C330
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 9
|
|
mov r1, r8
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _0805C330
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
mov r2, r12
|
|
bl dp01_build_cmdbuf_x22_a_three_bytes
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805C3BC
|
|
.pool
|
|
_0805C330:
|
|
ldr r0, =TaskDummy
|
|
movs r1, 0xFF
|
|
bl CreateTask
|
|
ldr r3, =gUnknown_03005D7C
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
adds r1, r3
|
|
movs r2, 0
|
|
mov r8, r2
|
|
strb r0, [r1]
|
|
ldr r5, =gTasks
|
|
ldrb r2, [r4]
|
|
adds r3, r2, r3
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r5
|
|
ldr r5, =gUnknown_02023064
|
|
lsls r2, 9
|
|
adds r6, r5, 0x1
|
|
adds r2, r6
|
|
ldrb r2, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r1, 0x49
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsrs r0, 4
|
|
strb r0, [r1]
|
|
ldr r2, [r3]
|
|
adds r2, 0x8B
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r1, r5, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, [r3]
|
|
adds r1, 0xB0
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r5, 0x3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80597CC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_020244B8
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
_0805C3BC:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C2AC
|
|
|
|
thumb_func_start sub_805C3EC
|
|
sub_805C3EC: @ 805C3EC
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl sub_805EA60
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
bl dp01_tbl1_exec_completed
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C3EC
|
|
|
|
thumb_func_start sub_805C410
|
|
sub_805C410: @ 805C410
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl load_gfxc_health_bar
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
mov r9, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, 9
|
|
adds r0, r3, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
adds r3, 0x3
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
lsls r2, 16
|
|
asrs r7, r2, 16
|
|
cmp r7, 0
|
|
ble _0805C44A
|
|
ldr r1, =gUnknown_0203CD70
|
|
ldr r0, [r1]
|
|
adds r0, r7
|
|
str r0, [r1]
|
|
_0805C44A:
|
|
ldr r0, =0x00007fff
|
|
cmp r7, r0
|
|
beq _0805C4B4
|
|
ldr r6, =gUnknown_0202406E
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl sub_807294C
|
|
b _0805C4F2
|
|
.pool
|
|
_0805C4B4:
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r4, =gUnknown_03005D70
|
|
adds r1, r0, r4
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, 0
|
|
bl sub_807294C
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl heathbar_draw_hp
|
|
_0805C4F2:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_t1_healthbar_update
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C410
|
|
|
|
thumb_func_start sub_805C528
|
|
sub_805C528: @ 805C528
|
|
push {r4-r7,lr}
|
|
ldr r5, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
lsls r0, 9
|
|
adds r1, r5, 0x1
|
|
adds r0, r1
|
|
ldrb r7, [r0]
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bls _0805C560
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805C5AC
|
|
.pool
|
|
_0805C560:
|
|
movs r0, 0x1
|
|
bl load_gfxc_health_bar
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, 9
|
|
adds r0, r5, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r0, r5, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
ldr r0, =sub_80591B8
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r7, [r1, 0x8]
|
|
strh r4, [r1, 0xA]
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, 0xC]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_21
|
|
str r1, [r0]
|
|
_0805C5AC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C528
|
|
|
|
thumb_func_start sub_805C5C4
|
|
sub_805C5C4: @ 805C5C4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C618
|
|
ldr r0, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0x9
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r2, [r4]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8059D60
|
|
str r1, [r0]
|
|
_0805C618:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C5C4
|
|
|
|
thumb_func_start sub_805C63C
|
|
sub_805C63C: @ 805C63C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C68C
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r3, [r5]
|
|
lsls r3, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
adds r2, r4, 0x4
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 16
|
|
orrs r1, r2
|
|
adds r4, 0x5
|
|
adds r3, r4
|
|
ldrb r2, [r3]
|
|
lsls r2, 24
|
|
orrs r1, r2
|
|
bl move_anim_start_t2_for_situation
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8059D60
|
|
str r1, [r0]
|
|
_0805C68C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C63C
|
|
|
|
thumb_func_start sub_805C6A4
|
|
sub_805C6A4: @ 805C6A4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_0202406E
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
ldr r2, =gUnknown_02023064
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
eors r0, r1
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x37
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
bl dp01_tbl1_exec_completed
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C6A4
|
|
|
|
thumb_func_start sub_805C710
|
|
sub_805C710: @ 805C710
|
|
push {lr}
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C710
|
|
|
|
thumb_func_start sub_805C71C
|
|
sub_805C71C: @ 805C71C
|
|
push {r4,r5,lr}
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r2, 9
|
|
adds r0, r3, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r5, [r0]
|
|
adds r0, r3, 0x2
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r5, r0
|
|
adds r0, r3, 0x3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
adds r0, r3, 0x4
|
|
adds r0, r2, r0
|
|
ldrb r4, [r0]
|
|
lsls r4, 24
|
|
adds r0, r3, 0x5
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0x6
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
adds r3, 0x7
|
|
adds r2, r3
|
|
orrs r5, r4
|
|
lsrs r4, r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r4, r0
|
|
bhi _0805C78C
|
|
ldr r0, =0x040000d4
|
|
str r2, [r0]
|
|
str r5, [r0, 0x4]
|
|
lsrs r1, 17
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
orrs r1, r2
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
b _0805C7B8
|
|
.pool
|
|
_0805C78C:
|
|
ldr r3, =0x040000d4
|
|
str r2, [r3]
|
|
str r5, [r3, 0x4]
|
|
ldr r0, =0x80000800
|
|
str r0, [r3, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r2, r0
|
|
adds r5, r0
|
|
ldr r1, =0xfffff000
|
|
adds r4, r1
|
|
cmp r4, r0
|
|
bhi _0805C78C
|
|
str r2, [r3]
|
|
str r5, [r3, 0x4]
|
|
lsrs r0, r4, 1
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r3, 0x8]
|
|
ldr r0, [r3, 0x8]
|
|
_0805C7B8:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C71C
|
|
|
|
thumb_func_start sub_805C7D0
|
|
sub_805C7D0: @ 805C7D0
|
|
push {lr}
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl song_play_for_text
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C7D0
|
|
|
|
thumb_func_start sub_805C800
|
|
sub_805C800: @ 805C800
|
|
push {lr}
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C800
|
|
|
|
thumb_func_start sub_805C80C
|
|
sub_805C80C: @ 805C80C
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C80C
|
|
|
|
thumb_func_start sub_805C820
|
|
sub_805C820: @ 805C820
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x22_a_three_bytes
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C820
|
|
|
|
thumb_func_start sub_805C834
|
|
sub_805C834: @ 805C834
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x23_aa_0
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C834
|
|
|
|
thumb_func_start sub_805C848
|
|
sub_805C848: @ 805C848
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x24_aa_0
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C848
|
|
|
|
thumb_func_start sub_805C85C
|
|
sub_805C85C: @ 805C85C
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C85C
|
|
|
|
thumb_func_start sub_805C878
|
|
sub_805C878: @ 805C878
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7F
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C878
|
|
|
|
thumb_func_start sub_805C8B0
|
|
sub_805C8B0: @ 805C8B0
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C8B0
|
|
|
|
thumb_func_start sub_805C8C8
|
|
sub_805C8C8: @ 805C8C8
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, [r3]
|
|
lsls r1, 24
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r3]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C8C8
|
|
|
|
thumb_func_start dp01t_29_1_blink
|
|
dp01t_29_1_blink: @ 805C8F0
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r2, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0805C924
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805C94E
|
|
.pool
|
|
_0805C924:
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
ldrb r0, [r4]
|
|
bl sub_80769F4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_blink_t1
|
|
str r1, [r0]
|
|
_0805C94E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_29_1_blink
|
|
|
|
thumb_func_start sub_805C960
|
|
sub_805C960: @ 805C960
|
|
push {lr}
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C960
|
|
|
|
thumb_func_start sub_805C96C
|
|
sub_805C96C: @ 805C96C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
movs r3, 0x3F
|
|
cmp r0, 0
|
|
bne _0805C980
|
|
movs r3, 0xC0
|
|
_0805C980:
|
|
ldr r2, =gUnknown_02023064
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
bl audio_play_and_stuff
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805C96C
|
|
|
|
thumb_func_start sub_805C9B0
|
|
sub_805C9B0: @ 805C9B0
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_02023064
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
adds r0, r4, 0x3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805C9EC
|
|
bl sub_805EA60
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl song_play_for_text
|
|
b _0805CA00
|
|
.pool
|
|
_0805C9EC:
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl fanfare_play
|
|
_0805CA00:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C9B0
|
|
|
|
thumb_func_start sub_805CA0C
|
|
sub_805CA0C: @ 805CA0C
|
|
push {lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x19
|
|
negs r1, r1
|
|
movs r2, 0x5
|
|
bl sub_80A32E4
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CA0C
|
|
|
|
thumb_func_start dp01t_2E_1_battle_intro
|
|
dp01t_2E_1_battle_intro: @ 805CA4C
|
|
push {lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl battle_intro_launch
|
|
ldr r2, =gUnknown_020243FC
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_2E_1_battle_intro
|
|
|
|
thumb_func_start dp01t_2F_1_pokemon_enter
|
|
dp01t_2F_1_pokemon_enter: @ 805CA80
|
|
push {r4-r7,lr}
|
|
ldr r6, =gUnknown_020241E4
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gUnknown_02020630
|
|
adds r0, r5
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x32
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =0x0000ffd8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r2, [r7]
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x38]
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =sub_805CC00
|
|
bl oamt_set_x3A_32
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
ldr r0, =0x0000d6f8
|
|
bl AllocObjectPalette
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
ldr r1, =gTrainerBackPicPaletteTable
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsrs r4, 20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldrb r0, [r7]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =task05_08033660
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrb r0, [r7]
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldrb r2, [r7]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805CBA2
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_0805CBA2:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r0, [r2, 0x9]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_21
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_2F_1_pokemon_enter
|
|
|
|
thumb_func_start sub_805CC00
|
|
sub_805CC00: @ 805CC00
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r4, [r5, 0x38]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r5, 0x5]
|
|
lsrs r0, 4
|
|
bl GetObjectPaletteTagBySlot
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FreeObjectPaletteByTag
|
|
adds r0, r5, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl sub_805DD7C
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r4, r0
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartObjectImageAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CC00
|
|
|
|
thumb_func_start task05_08033660
|
|
task05_08033660: @ 805CC68
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, 0xA]
|
|
movs r3, 0xA
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1E
|
|
bgt _0805CC94
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xA]
|
|
b _0805CD50
|
|
.pool
|
|
_0805CC94:
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
mov r9, r0
|
|
ldrh r0, [r1, 0x8]
|
|
strb r0, [r7]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CCB4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805CCE4
|
|
_0805CCB4:
|
|
ldr r0, =gUnknown_02023064
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, 9
|
|
adds r0, 0x1
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_805B258
|
|
b _0805CD38
|
|
.pool
|
|
_0805CCE4:
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r4, 0x1
|
|
adds r1, r4
|
|
ldr r5, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_805B258
|
|
ldrb r0, [r7]
|
|
movs r6, 0x2
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r1, r4
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r0, r2
|
|
bl sub_805DD7C
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_805B258
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
_0805CD38:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8058B40
|
|
str r1, [r0]
|
|
mov r3, r9
|
|
strb r3, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_0805CD50:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task05_08033660
|
|
|
|
thumb_func_start sub_805CD74
|
|
sub_805CD74: @ 805CD74
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805CDA4
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CDA4
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805CE18
|
|
.pool
|
|
_0805CDA4:
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
ldr r4, =gUnknown_02023068
|
|
adds r1, r3, r4
|
|
subs r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
subs r4, 0x2
|
|
adds r3, r4
|
|
ldrb r3, [r3]
|
|
bl sub_80735DC
|
|
ldr r2, =gUnknown_020244B4
|
|
ldrb r1, [r5]
|
|
adds r1, r2
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805CE0C
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x5D
|
|
strb r1, [r0, 0x5]
|
|
_0805CE0C:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_805CE38
|
|
str r0, [r1]
|
|
_0805CE18:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CD74
|
|
|
|
thumb_func_start sub_805CE38
|
|
sub_805CE38: @ 805CE38
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x5]
|
|
adds r2, r1, 0x1
|
|
strb r2, [r0, 0x5]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x5C
|
|
bls _0805CE70
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x5]
|
|
bl dp01_tbl1_exec_completed
|
|
_0805CE70:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CE38
|
|
|
|
thumb_func_start sub_805CE80
|
|
sub_805CE80: @ 805CE80
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r1, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805CEB2
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_0805CEB2:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CE80
|
|
|
|
thumb_func_start sub_805CED0
|
|
sub_805CED0: @ 805CED0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl dp11b_obj_free
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CED0
|
|
|
|
thumb_func_start dp01t_33_1_enemy_move
|
|
dp01t_33_1_enemy_move: @ 805CEF4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl sub_80A6A90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CF3A
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ldrb r1, [r1]
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
bl sub_805E408
|
|
_0805CF3A:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_33_1_enemy_move
|
|
|
|
thumb_func_start sub_805CF54
|
|
sub_805CF54: @ 805CF54
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CFB6
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
adds r0, r4, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r4, 0x3
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
str r3, [sp]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
adds r3, r6, 0
|
|
bl move_anim_start_t3
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CFA4
|
|
bl dp01_tbl1_exec_completed
|
|
b _0805CFB0
|
|
.pool
|
|
_0805CFA4:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =bx_8030B2C
|
|
str r0, [r1]
|
|
_0805CFB0:
|
|
adds r0, r6, 0
|
|
bl sub_817E32C
|
|
_0805CFB6:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805CF54
|
|
|
|
thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
|
|
dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
ldr r4, =gUnknown_02023066
|
|
adds r0, r4
|
|
bl sub_81851A8
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r4, 0x1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0805D002
|
|
cmp r0, 0x1
|
|
bgt _0805CFF8
|
|
cmp r0, 0
|
|
beq _0805CFFE
|
|
b _0805D020
|
|
.pool
|
|
_0805CFF8:
|
|
cmp r0, 0x2
|
|
beq _0805D01C
|
|
b _0805D020
|
|
_0805CFFE:
|
|
bl b_link_standby_message
|
|
_0805D002:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl dp11b_obj_free
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl dp11b_obj_free
|
|
b _0805D020
|
|
.pool
|
|
_0805D01C:
|
|
bl b_link_standby_message
|
|
_0805D020:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
|
|
|
|
thumb_func_start sub_805D02C
|
|
sub_805D02C: @ 805D02C
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x1
|
|
beq _0805D074
|
|
cmp r2, 0x1
|
|
bgt _0805D054
|
|
cmp r2, 0
|
|
beq _0805D05A
|
|
b _0805D084
|
|
.pool
|
|
_0805D054:
|
|
cmp r2, 0x2
|
|
beq _0805D07C
|
|
b _0805D084
|
|
_0805D05A:
|
|
ldr r0, =gUnknown_020244AC
|
|
adds r0, r3, r0
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_020244B0
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _0805D084
|
|
.pool
|
|
_0805D074:
|
|
ldr r0, =gUnknown_020244AC
|
|
b _0805D07E
|
|
.pool
|
|
_0805D07C:
|
|
ldr r0, =gUnknown_020244B0
|
|
_0805D07E:
|
|
adds r0, r3, r0
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0805D084:
|
|
bl dp01_tbl1_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805D02C
|
|
|
|
thumb_func_start sub_805D094
|
|
sub_805D094: @ 805D094
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
ldr r4, =gUnknown_02023068
|
|
adds r0, r4
|
|
bl sub_81851A8
|
|
ldr r2, =gUnknown_0202433A
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r1, r4, 0x3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r4, 0x2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r3, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 3
|
|
ldrb r2, [r3]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x5
|
|
bl sub_80A2F50
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
bl dp01_tbl1_exec_completed
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80587B0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805D094
|
|
|
|
thumb_func_start nullsub_22
|
|
nullsub_22: @ 805D114
|
|
bx lr
|
|
thumb_func_end nullsub_22
|
|
|
|
thumb_func_start dp11_init
|
|
dp11_init: @ 805D118
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
movs r0, 0x30
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x10
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x50
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0xC]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp11_init
|
|
|
|
thumb_func_start dp11_free
|
|
dp11_free: @ 805D158
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _0805D192
|
|
ldr r0, [r0, 0xC]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
movs r4, 0
|
|
str r4, [r0, 0xC]
|
|
ldr r0, [r0, 0x8]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x8]
|
|
ldr r0, [r0, 0x4]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
str r4, [r0]
|
|
bl Free
|
|
str r4, [r5]
|
|
_0805D192:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp11_free
|
|
|
|
thumb_func_start sub_805D19C
|
|
sub_805D19C: @ 805D19C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r9, r0
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 9
|
|
ldr r1, =gUnknown_02023068
|
|
adds r2, r1
|
|
mov r10, r2
|
|
movs r1, 0
|
|
movs r2, 0xFF
|
|
bl sub_803FECC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, 0x92
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
asrs r4, r0, 31
|
|
movs r0, 0x2
|
|
ands r4, r0
|
|
adds r6, r4, 0
|
|
adds r5, r4, 0x2
|
|
b _0805D20E
|
|
.pool
|
|
_0805D20C:
|
|
adds r4, 0x1
|
|
_0805D20E:
|
|
cmp r4, r5
|
|
bge _0805D234
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020240CC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl GetNatureFromPersonality
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r4, r0
|
|
ldr r2, =gUnknown_0831C494
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, r7
|
|
ble _0805D20C
|
|
_0805D234:
|
|
subs r7, r4, r6
|
|
cmp r4, r5
|
|
bne _0805D23C
|
|
movs r7, 0x2
|
|
_0805D23C:
|
|
movs r6, 0
|
|
movs r4, 0
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0805D27C
|
|
mov r5, r10
|
|
_0805D24A:
|
|
ldrh r0, [r5]
|
|
bl sub_805D4A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r7, r0
|
|
bne _0805D26E
|
|
mov r0, r10
|
|
adds r0, 0x8
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805D26E
|
|
ldr r0, =gBitTable
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
orrs r6, r0
|
|
_0805D26E:
|
|
adds r5, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _0805D27C
|
|
ldrh r0, [r5]
|
|
cmp r0, 0
|
|
bne _0805D24A
|
|
_0805D27C:
|
|
cmp r6, 0
|
|
beq _0805D2AC
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r1, 0x92
|
|
ldrb r2, [r1]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, [r3]
|
|
adds r1, 0x92
|
|
lsls r0, r6, 4
|
|
ldrb r2, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl BattleAI_SetupAIData
|
|
bl sub_8130BA4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0805D2AC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r9, r0
|
|
beq _0805D2B6
|
|
b _0805D40C
|
|
_0805D2B6:
|
|
mov r2, r8
|
|
cmp r2, 0xF
|
|
bne _0805D2BE
|
|
b _0805D3EA
|
|
_0805D2BE:
|
|
movs r5, 0
|
|
movs r6, 0
|
|
ldr r7, =gBitTable
|
|
mov r4, r10
|
|
_0805D2C6:
|
|
ldrh r0, [r4]
|
|
bl sub_805D4A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D2DE
|
|
ldr r0, [r7]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D2DE
|
|
adds r5, 0x1
|
|
_0805D2DE:
|
|
ldrh r0, [r4]
|
|
bl sub_805D4A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805D2F8
|
|
ldr r0, [r7]
|
|
mov r2, r8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805D2F8
|
|
adds r5, 0x10
|
|
_0805D2F8:
|
|
ldrh r0, [r4]
|
|
bl sub_805D4A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805D316
|
|
ldr r0, [r7]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D316
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r5, r2
|
|
_0805D316:
|
|
adds r7, 0x4
|
|
adds r4, 0x2
|
|
ldr r0, =gBitTable
|
|
adds r0, 0xC
|
|
cmp r7, r0
|
|
ble _0805D2C6
|
|
movs r1, 0xF
|
|
ands r1, r5
|
|
cmp r1, 0x1
|
|
ble _0805D32C
|
|
adds r6, 0x1
|
|
_0805D32C:
|
|
movs r0, 0xF0
|
|
ands r0, r5
|
|
cmp r0, 0x1F
|
|
ble _0805D336
|
|
adds r6, 0x1
|
|
_0805D336:
|
|
ldr r2, =0x000001ff
|
|
cmp r0, r2
|
|
ble _0805D33E
|
|
adds r6, 0x1
|
|
_0805D33E:
|
|
cmp r6, 0x1
|
|
bgt _0805D346
|
|
cmp r6, 0
|
|
bne _0805D388
|
|
_0805D346:
|
|
ldr r5, =gBitTable
|
|
_0805D348:
|
|
bl Random
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsrs r4, r1, 16
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D366
|
|
mov r9, r4
|
|
_0805D366:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r9, r0
|
|
beq _0805D348
|
|
b _0805D3D4
|
|
.pool
|
|
_0805D388:
|
|
cmp r1, 0x1
|
|
ble _0805D38E
|
|
movs r6, 0
|
|
_0805D38E:
|
|
cmp r0, 0x1F
|
|
ble _0805D394
|
|
movs r6, 0x1
|
|
_0805D394:
|
|
cmp r0, r2
|
|
ble _0805D39A
|
|
movs r6, 0x2
|
|
_0805D39A:
|
|
bl Random
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsrs r4, r1, 16
|
|
ldr r1, =gBitTable
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805D3CC
|
|
lsls r0, r4, 1
|
|
add r0, r10
|
|
ldrh r0, [r0]
|
|
bl sub_805D4A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r6, r0
|
|
bne _0805D3CC
|
|
mov r9, r4
|
|
_0805D3CC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r9, r0
|
|
beq _0805D39A
|
|
_0805D3D4:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x31
|
|
bls _0805D40C
|
|
_0805D3EA:
|
|
ldr r2, =gUnknown_0202433C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x2]
|
|
movs r2, 0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0
|
|
b _0805D496
|
|
.pool
|
|
_0805D40C:
|
|
mov r1, r9
|
|
lsls r0, r1, 1
|
|
mov r2, r10
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0xAE
|
|
bne _0805D434
|
|
ldrb r0, [r2, 0x12]
|
|
movs r5, 0
|
|
cmp r0, 0x7
|
|
beq _0805D442
|
|
ldrb r1, [r2, 0x13]
|
|
movs r0, 0x7
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
asrs r5, r0, 31
|
|
movs r0, 0x10
|
|
ands r5, r0
|
|
b _0805D442
|
|
_0805D434:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r5, [r0, 0x6]
|
|
_0805D442:
|
|
movs r0, 0x10
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0805D45C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
b _0805D48A
|
|
.pool
|
|
_0805D45C:
|
|
cmp r5, 0
|
|
bne _0805D470
|
|
bl sub_805D5F4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r2, r9
|
|
orrs r2, r0
|
|
mov r9, r2
|
|
b _0805D490
|
|
_0805D470:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
_0805D48A:
|
|
mov r1, r9
|
|
orrs r1, r0
|
|
mov r9, r1
|
|
_0805D490:
|
|
mov r2, r9
|
|
lsls r0, r2, 16
|
|
lsrs r0, 16
|
|
_0805D496:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_805D19C
|
|
|
|
thumb_func_start sub_805D4A8
|
|
sub_805D4A8: @ 805D4A8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x6]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x40
|
|
bls _0805D4C2
|
|
b _0805D5EE
|
|
_0805D4C2:
|
|
lsls r0, 2
|
|
ldr r1, =_0805D4D4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0805D4D4:
|
|
.4byte _0805D5D8
|
|
.4byte _0805D5E6
|
|
.4byte _0805D5D8
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5D8
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5D8
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EA
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5D8
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5EE
|
|
.4byte _0805D5E6
|
|
_0805D5D8:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0805D5EE
|
|
_0805D5E6:
|
|
movs r0, 0x2
|
|
b _0805D5F0
|
|
_0805D5EA:
|
|
movs r0, 0x1
|
|
b _0805D5F0
|
|
_0805D5EE:
|
|
movs r0, 0
|
|
_0805D5F0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D4A8
|
|
|
|
thumb_func_start sub_805D5F4
|
|
sub_805D5F4: @ 805D5F4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805D6FA
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D630
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0x3
|
|
b _0805D63E
|
|
.pool
|
|
_0805D630:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0x2
|
|
_0805D63E:
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gBattleMons
|
|
movs r2, 0x58
|
|
mov r0, r8
|
|
muls r0, r2
|
|
adds r5, r0, r1
|
|
adds r0, r7, 0
|
|
muls r0, r2
|
|
adds r6, r0, r1
|
|
ldrh r0, [r5, 0x28]
|
|
ldrh r3, [r6, 0x28]
|
|
cmp r0, r3
|
|
bne _0805D680
|
|
bl Random
|
|
adds r3, r0, 0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
movs r1, 0x2
|
|
ands r1, r3
|
|
adds r0, r1
|
|
b _0805D702
|
|
.pool
|
|
_0805D680:
|
|
ldr r4, =gUnknown_0831C604
|
|
ldr r0, =gUnknown_02024064
|
|
mov r9, r0
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
adds r1, 0x48
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl GetNatureFromPersonality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
beq _0805D6CC
|
|
cmp r4, 0x1
|
|
bgt _0805D6B4
|
|
cmp r4, 0
|
|
beq _0805D6BA
|
|
b _0805D6FA
|
|
.pool
|
|
_0805D6B4:
|
|
cmp r4, 0x2
|
|
beq _0805D6DE
|
|
b _0805D6FA
|
|
_0805D6BA:
|
|
ldrh r0, [r5, 0x28]
|
|
ldrh r6, [r6, 0x28]
|
|
cmp r0, r6
|
|
bls _0805D6C8
|
|
mov r1, r8
|
|
lsls r0, r1, 8
|
|
b _0805D704
|
|
_0805D6C8:
|
|
lsls r0, r7, 8
|
|
b _0805D704
|
|
_0805D6CC:
|
|
ldrh r0, [r5, 0x28]
|
|
ldrh r6, [r6, 0x28]
|
|
cmp r0, r6
|
|
bcs _0805D6DA
|
|
mov r3, r8
|
|
lsls r0, r3, 8
|
|
b _0805D704
|
|
_0805D6DA:
|
|
lsls r0, r7, 8
|
|
b _0805D704
|
|
_0805D6DE:
|
|
bl Random
|
|
adds r3, r0, 0
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
ands r4, r3
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
b _0805D704
|
|
_0805D6FA:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
eors r0, r1
|
|
_0805D702:
|
|
lsls r0, 8
|
|
_0805D704:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_805D5F4
|
|
|
|
thumb_func_start sub_805D714
|
|
sub_805D714: @ 805D714
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 26
|
|
cmp r0, 0
|
|
bge _0805D766
|
|
adds r0, r1, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
blt _0805D766
|
|
adds r2, r1, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 25
|
|
cmp r0, 0
|
|
bge _0805D75C
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
b _0805D766
|
|
.pool
|
|
_0805D75C:
|
|
lsls r0, r3, 27
|
|
cmp r0, 0
|
|
bge _0805D766
|
|
ldr r0, =DummyObjectCallback
|
|
str r0, [r4, 0x1C]
|
|
_0805D766:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805D714
|
|
|
|
thumb_func_start sub_805D770
|
|
sub_805D770: @ 805D770
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
adds r3, r4, 0
|
|
adds r3, 0x2C
|
|
ldrb r0, [r3]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
ldr r0, =DummyObjectCallback
|
|
str r0, [r4, 0x1C]
|
|
cmp r1, 0
|
|
bne _0805D798
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
b _0805D7A0
|
|
.pool
|
|
_0805D798:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
_0805D7A0:
|
|
adds r0, r4, 0
|
|
bl AnimateObject
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805D770
|
|
|
|
thumb_func_start sub_805D7AC
|
|
sub_805D7AC: @ 805D7AC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, =gUnknown_020243FC
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D7E4
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0805D7E4
|
|
movs r1, 0x26
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _0805D7E0
|
|
ldr r0, =sub_805D7EC
|
|
b _0805D7E2
|
|
.pool
|
|
_0805D7E0:
|
|
ldr r0, =DummyObjectCallback
|
|
_0805D7E2:
|
|
str r0, [r2, 0x1C]
|
|
_0805D7E4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805D7AC
|
|
|
|
thumb_func_start sub_805D7EC
|
|
sub_805D7EC: @ 805D7EC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x26]
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0805D800
|
|
ldr r0, =DummyObjectCallback
|
|
str r0, [r1, 0x1C]
|
|
_0805D800:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805D7EC
|
|
|
|
thumb_func_start move_anim_start_t2_for_situation
|
|
move_anim_start_t2_for_situation: @ 805D808
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r1, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r2, [r1]
|
|
movs r3, 0x10
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
cmp r0, 0
|
|
bne _0805D888
|
|
cmp r4, 0x20
|
|
bne _0805D844
|
|
ldrb r0, [r5]
|
|
movs r1, 0x6
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
.pool
|
|
_0805D844:
|
|
cmp r4, 0x8
|
|
beq _0805D850
|
|
movs r0, 0x80
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D85A
|
|
_0805D850:
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D85A:
|
|
cmp r4, 0x10
|
|
bne _0805D868
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D868:
|
|
movs r0, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D87A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x4
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D87A:
|
|
cmp r4, 0x40
|
|
bne _0805D8EA
|
|
ldrb r0, [r5]
|
|
movs r1, 0x5
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D888:
|
|
movs r0, 0xF0
|
|
lsls r0, 12
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D89C
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D89C:
|
|
movs r0, 0x7
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D8AE
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D8AE:
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D8C2
|
|
ldrb r0, [r5]
|
|
movs r1, 0x7
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D8C2:
|
|
movs r0, 0x80
|
|
lsls r0, 20
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D8D6
|
|
ldrb r0, [r5]
|
|
movs r1, 0x8
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D8D6:
|
|
movs r0, 0xE0
|
|
lsls r0, 8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805D8EA
|
|
ldrb r0, [r5]
|
|
movs r1, 0x9
|
|
bl move_anim_start_t2
|
|
b _0805D902
|
|
_0805D8EA:
|
|
ldr r0, [r6]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0805D902:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end move_anim_start_t2_for_situation
|
|
|
|
thumb_func_start move_anim_start_t3
|
|
move_anim_start_t3: @ 805D908
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x24]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
lsls r4, 16
|
|
lsrs r7, r4, 16
|
|
cmp r5, 0
|
|
bne _0805D950
|
|
movs r0, 0x80
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _0805D950
|
|
ldr r0, =gUnknown_020244E4
|
|
adds r0, r6, r0
|
|
movs r2, 0x7F
|
|
adds r1, r7, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _0805DA1E
|
|
.pool
|
|
_0805D950:
|
|
ldr r0, =gUnknown_020244D0
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
mov r8, r2
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805D9CC
|
|
adds r0, r5, 0
|
|
bl sub_805DAA0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D980
|
|
movs r0, 0x1
|
|
b _0805DA1E
|
|
.pool
|
|
_0805D980:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805D9CC
|
|
cmp r5, 0x2
|
|
bne _0805D9CC
|
|
ldr r1, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r6, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0805D9CC
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl refresh_graphics_maybe
|
|
adds r0, r6, 0
|
|
bl sub_805E974
|
|
movs r0, 0x1
|
|
b _0805DA1E
|
|
.pool
|
|
_0805D9CC:
|
|
ldr r0, =gUnknown_02038436
|
|
mov r2, r10
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_02038437
|
|
mov r1, sp
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
strh r7, [r0]
|
|
ldr r0, =gUnknown_082C9320
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl move_something
|
|
ldr r0, =task0A_0803415C
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r6, [r1, 0x8]
|
|
ldr r0, [r4]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
_0805DA1E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end move_anim_start_t3
|
|
|
|
thumb_func_start task0A_0803415C
|
|
task0A_0803415C: @ 805DA48
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805DA8A
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0805DA8A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task0A_0803415C
|
|
|
|
thumb_func_start sub_805DAA0
|
|
sub_805DAA0: @ 805DAA0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xD
|
|
bgt _0805DAB4
|
|
cmp r0, 0xA
|
|
bge _0805DAB8
|
|
cmp r0, 0x2
|
|
beq _0805DAB8
|
|
b _0805DABC
|
|
_0805DAB4:
|
|
cmp r0, 0x11
|
|
bne _0805DABC
|
|
_0805DAB8:
|
|
movs r0, 0x1
|
|
b _0805DABE
|
|
_0805DABC:
|
|
movs r0, 0
|
|
_0805DABE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DAA0
|
|
|
|
thumb_func_start move_anim_start_t4
|
|
move_anim_start_t4: @ 805DAC4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, =gUnknown_02038436
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_02038437
|
|
strb r2, [r0]
|
|
ldr r0, =gUnknown_082C937C
|
|
adds r1, r3, 0
|
|
movs r2, 0
|
|
bl move_something
|
|
ldr r0, =task0A_08034248
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end move_anim_start_t4
|
|
|
|
thumb_func_start task0A_08034248
|
|
task0A_08034248: @ 805DB34
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805DB76
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0805DB76:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end task0A_08034248
|
|
|
|
thumb_func_start sub_805DB8C
|
|
sub_805DB8C: @ 805DB8C
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805DB8C
|
|
|
|
thumb_func_start mplay_80342A4
|
|
mplay_80342A4: @ 805DB90
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
bl mplay_has_finished_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DBD8
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x8]
|
|
ldr r2, [r2]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1D
|
|
bls _0805DBDC
|
|
ldr r0, =gMPlay_SE1
|
|
bl m4aMPlayStop
|
|
ldr r0, =gMPlay_SE2
|
|
bl m4aMPlayStop
|
|
_0805DBD8:
|
|
cmp r5, 0
|
|
beq _0805DBF0
|
|
_0805DBDC:
|
|
movs r0, 0x1
|
|
b _0805DC02
|
|
.pool
|
|
_0805DBF0:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r5, [r0, 0x8]
|
|
movs r0, 0
|
|
_0805DC02:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end mplay_80342A4
|
|
|
|
thumb_func_start sub_805DC0C
|
|
sub_805DC0C: @ 805DC0C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _0805DC50
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r6, [sp]
|
|
b _0805DC58
|
|
.pool
|
|
_0805DC50:
|
|
ldrh r5, [r2, 0x2]
|
|
ldr r0, =gUnknown_020244BC
|
|
adds r0, r1, r0
|
|
ldr r6, [r0]
|
|
_0805DC58:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
mov r10, r0
|
|
mov r0, r8
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsls r2, r5, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r2, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
|
|
mov r3, r8
|
|
lsls r2, r3, 4
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r7, r2, r0
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r1, r3, 2
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0, 0x2]
|
|
str r1, [sp, 0x4]
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _0805DCBC
|
|
adds r0, r4, 0
|
|
bl pokemon_get_pal
|
|
b _0805DCC6
|
|
.pool
|
|
_0805DCBC:
|
|
adds r0, r5, 0
|
|
mov r1, r10
|
|
ldr r2, [sp]
|
|
bl species_and_otid_get_pal
|
|
_0805DCC6:
|
|
adds r6, r0, 0
|
|
ldr r4, =0x0201c000
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
mov r1, r9
|
|
adds r1, 0x80
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, =0x00000181
|
|
cmp r5, r0
|
|
bne _0805DD1A
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
add r7, r9
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
adds r0, r6, 0
|
|
bl LZDecompressWram
|
|
ldr r0, =gUnknown_020244E4
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0805DD1A:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _0805DD46
|
|
ldr r3, =0x00007fff
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r7, 1
|
|
ldr r0, =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
_0805DD46:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DC0C
|
|
|
|
thumb_func_start sub_805DD7C
|
|
sub_805DD7C: @ 805DD7C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r2, r1, r0
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _0805DDC0
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r4, [sp]
|
|
b _0805DDC8
|
|
.pool
|
|
_0805DDC0:
|
|
ldrh r5, [r2, 0x2]
|
|
ldr r0, =gUnknown_020244BC
|
|
adds r0, r1, r0
|
|
ldr r4, [r0]
|
|
_0805DDC8:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
bl sub_80688F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
lsls r1, 2
|
|
mov r10, r1
|
|
cmp r0, 0x1
|
|
beq _0805DE00
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _0805DE2C
|
|
_0805DE00:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsls r2, r7, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
|
|
b _0805DE46
|
|
.pool
|
|
_0805DE2C:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsls r2, r7, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl DecompressMonPic_DetectFrontOrBack
|
|
_0805DE46:
|
|
mov r2, r8
|
|
lsls r1, r2, 4
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r7, r1, r0
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _0805DE74
|
|
adds r0, r6, 0
|
|
bl pokemon_get_pal
|
|
b _0805DE7E
|
|
.pool
|
|
_0805DE74:
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp]
|
|
bl species_and_otid_get_pal
|
|
_0805DE7E:
|
|
adds r6, r0, 0
|
|
ldr r4, =0x0201c000
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
mov r1, r9
|
|
adds r1, 0x80
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, =0x00000181
|
|
cmp r5, r0
|
|
bne _0805DED2
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
add r7, r9
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
adds r0, r6, 0
|
|
bl LZDecompressWram
|
|
ldr r0, =gUnknown_020244E4
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
adds r1, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0805DED2:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
add r0, r10
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _0805DEFC
|
|
ldr r3, =0x00007fff
|
|
adds r0, r7, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r7, 1
|
|
ldr r0, =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
_0805DEFC:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DD7C
|
|
|
|
thumb_func_start nullsub_23
|
|
nullsub_23: @ 805DF30
|
|
bx lr
|
|
thumb_func_end nullsub_23
|
|
|
|
thumb_func_start nullsub_24
|
|
nullsub_24: @ 805DF34
|
|
bx lr
|
|
thumb_func_end nullsub_24
|
|
|
|
thumb_func_start sub_805DF38
|
|
sub_805DF38: @ 805DF38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsls r4, 3
|
|
ldr r2, =gTrainerFrontPicTable
|
|
adds r2, r4, r2
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
bl DecompressPicFromTable_2
|
|
ldr r0, =gTrainerFrontPicPaletteTable
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPalette
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DF38
|
|
|
|
thumb_func_start sub_805DF84
|
|
sub_805DF84: @ 805DF84
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsls r5, 3
|
|
ldr r2, =gTrainerBackPicTable
|
|
adds r2, r5, r2
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
bl DecompressPicFromTable_2
|
|
ldr r0, =gTrainerBackPicPaletteTable
|
|
adds r5, r0
|
|
ldr r0, [r5]
|
|
lsls r4, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r4, r1
|
|
lsrs r4, 16
|
|
adds r1, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DF84
|
|
|
|
thumb_func_start nullsub_25
|
|
nullsub_25: @ 805DFE0
|
|
bx lr
|
|
thumb_func_end nullsub_25
|
|
|
|
thumb_func_start sub_805DFE4
|
|
sub_805DFE4: @ 805DFE4
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r1, =gTrainerFrontPicPaletteTable
|
|
lsrs r0, 13
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
bl FreeObjectPaletteByTag
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DFE4
|
|
|
|
thumb_func_start sub_805DFFC
|
|
sub_805DFFC: @ 805DFFC
|
|
push {r4-r7,lr}
|
|
ldr r4, =gUnknown_0832C128
|
|
adds r0, r4, 0
|
|
bl LoadTaggedObjectPalette
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadTaggedObjectPalette
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E034
|
|
ldr r0, =gUnknown_0832C0D0
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_0832C0D8
|
|
bl LoadCompressedObjectPic
|
|
movs r5, 0x2
|
|
b _0805E056
|
|
.pool
|
|
_0805E034:
|
|
ldr r4, =gUnknown_0832C0E0
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPic
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPic
|
|
ldr r4, =gUnknown_0832C0F0
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPic
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPic
|
|
movs r5, 0x4
|
|
_0805E056:
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _0805E076
|
|
ldr r7, =gUnknown_02024076
|
|
ldr r6, =gUnknown_0832C108
|
|
_0805E060:
|
|
adds r0, r4, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
bl LoadCompressedObjectPic
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0805E060
|
|
_0805E076:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805DFFC
|
|
|
|
thumb_func_start sub_805E08C
|
|
sub_805E08C: @ 805E08C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
movs r6, 0
|
|
cmp r4, 0
|
|
bne _0805E09C
|
|
b _0805E1AE
|
|
_0805E09C:
|
|
cmp r4, 0x1
|
|
bne _0805E0B8
|
|
ldr r4, =gUnknown_0832C128
|
|
adds r0, r4, 0
|
|
bl LoadTaggedObjectPalette
|
|
adds r4, 0x8
|
|
adds r0, r4, 0
|
|
bl LoadTaggedObjectPalette
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E0B8:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E120
|
|
cmp r4, 0x2
|
|
bne _0805E0F0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805E0E4
|
|
ldr r0, =gUnknown_0832C100
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E0E4:
|
|
ldr r0, =gUnknown_0832C0D0
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E0F0:
|
|
cmp r4, 0x3
|
|
bne _0805E100
|
|
ldr r0, =gUnknown_0832C0D8
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E100:
|
|
cmp r4, 0x4
|
|
bne _0805E110
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0]
|
|
b _0805E198
|
|
.pool
|
|
_0805E110:
|
|
cmp r4, 0x5
|
|
bne _0805E1AC
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0, 0x1]
|
|
b _0805E198
|
|
.pool
|
|
_0805E120:
|
|
cmp r4, 0x2
|
|
bne _0805E130
|
|
ldr r0, =gUnknown_0832C0E0
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E130:
|
|
cmp r4, 0x3
|
|
bne _0805E140
|
|
ldr r0, =gUnknown_0832C0E8
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E140:
|
|
cmp r4, 0x4
|
|
bne _0805E150
|
|
ldr r0, =gUnknown_0832C0F0
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E150:
|
|
cmp r4, 0x5
|
|
bne _0805E160
|
|
ldr r0, =gUnknown_0832C0F8
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E160:
|
|
cmp r4, 0x6
|
|
bne _0805E170
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0]
|
|
b _0805E198
|
|
.pool
|
|
_0805E170:
|
|
cmp r4, 0x7
|
|
bne _0805E180
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0, 0x1]
|
|
b _0805E198
|
|
.pool
|
|
_0805E180:
|
|
cmp r4, 0x8
|
|
bne _0805E190
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0, 0x2]
|
|
b _0805E198
|
|
.pool
|
|
_0805E190:
|
|
cmp r5, 0x9
|
|
bne _0805E1AC
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r0, [r0, 0x3]
|
|
_0805E198:
|
|
lsls r0, 3
|
|
ldr r1, =gUnknown_0832C108
|
|
adds r0, r1
|
|
bl LoadCompressedObjectPic
|
|
b _0805E1AE
|
|
.pool
|
|
_0805E1AC:
|
|
movs r6, 0x1
|
|
_0805E1AE:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E08C
|
|
|
|
thumb_func_start load_gfxc_health_bar
|
|
load_gfxc_health_bar: @ 805E1B8
|
|
push {lr}
|
|
ldr r0, =gUnknown_08C093F0
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
movs r2, 0xBA
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl LZDecompressWram
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end load_gfxc_health_bar
|
|
|
|
thumb_func_start battle_load_something
|
|
battle_load_something: @ 805E1D8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x6
|
|
bls _0805E1E8
|
|
b _0805E346
|
|
_0805E1E8:
|
|
lsls r0, 2
|
|
ldr r1, =_0805E1F8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0805E1F8:
|
|
.4byte _0805E214
|
|
.4byte _0805E21A
|
|
.4byte _0805E324
|
|
.4byte _0805E230
|
|
.4byte _0805E260
|
|
.4byte _0805E29C
|
|
.4byte _0805E33C
|
|
_0805E214:
|
|
bl sub_805E378
|
|
b _0805E324
|
|
_0805E21A:
|
|
ldrb r0, [r4]
|
|
bl sub_805E08C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E228
|
|
b _0805E320
|
|
_0805E228:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0805E346
|
|
_0805E230:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805E24C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0805E24C
|
|
bl battle_make_oam_safari_battle
|
|
b _0805E252
|
|
.pool
|
|
_0805E24C:
|
|
ldrb r0, [r4]
|
|
bl battle_make_oam_normal_battle
|
|
_0805E252:
|
|
ldr r2, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
b _0805E30E
|
|
.pool
|
|
_0805E260:
|
|
ldrb r0, [r4]
|
|
bl sub_8072B18
|
|
ldr r0, =gUnknown_02024076
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0805E288
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl nullsub_30
|
|
b _0805E30E
|
|
.pool
|
|
_0805E288:
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl nullsub_30
|
|
b _0805E30E
|
|
.pool
|
|
_0805E29C:
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E2E4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805E302
|
|
ldr r0, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gPlayerParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
b _0805E302
|
|
.pool
|
|
_0805E2E4:
|
|
ldr r0, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
_0805E302:
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
_0805E30E:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_0202406C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0805E346
|
|
_0805E320:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_0805E324:
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
b _0805E346
|
|
.pool
|
|
_0805E33C:
|
|
bl sub_805EC84
|
|
bl sub_81B8C68
|
|
movs r6, 0x1
|
|
_0805E346:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end battle_load_something
|
|
|
|
thumb_func_start sub_805E350
|
|
sub_805E350: @ 805E350
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0
|
|
movs r2, 0x30
|
|
bl memset
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E350
|
|
|
|
thumb_func_start sub_805E378
|
|
sub_805E378: @ 805E378
|
|
push {lr}
|
|
bl sub_805E350
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E378
|
|
|
|
thumb_func_start sub_805E394
|
|
sub_805E394: @ 805E394
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_0202406C
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
bge _0805E3EA
|
|
ldr r0, =gUnknown_02020630
|
|
mov r9, r0
|
|
movs r0, 0x1
|
|
mov r12, r0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ldr r7, =gUnknown_020244D0
|
|
ldr r6, =gUnknown_020241E4
|
|
_0805E3B8:
|
|
ldr r0, [r7]
|
|
ldr r0, [r0]
|
|
lsls r3, r4, 2
|
|
adds r3, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
mov r0, r12
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r4, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
blt _0805E3B8
|
|
_0805E3EA:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E394
|
|
|
|
thumb_func_start sub_805E408
|
|
sub_805E408: @ 805E408
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
lsls r3, r0, 2
|
|
adds r3, r1
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_805E408
|
|
|
|
thumb_func_start sub_805E448
|
|
sub_805E448: @ 805E448
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
lsls r2, 24
|
|
cmp r2, 0
|
|
beq _0805E51C
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r5, r7, r0
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
mov r8, r1
|
|
add r0, r8
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x8]
|
|
ldrb r1, [r1]
|
|
bl StartObjectImageAnim
|
|
lsls r0, r7, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r0, r2
|
|
lsrs r6, r0, 16
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
ldrh r1, [r0]
|
|
lsls r1, 5
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
adds r1, r6, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r1, r7, r1
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _0805E4DE
|
|
ldr r3, =0x00007fff
|
|
adds r0, r6, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r6, 1
|
|
ldr r0, =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
_0805E4DE:
|
|
adds r0, r7, 0
|
|
bl sub_80A6138
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
add r1, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x22]
|
|
b _0805E77A
|
|
.pool
|
|
_0805E51C:
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E558
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_02039F34
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x18]
|
|
ldrh r1, [r2, 0x2]
|
|
mov r8, r1
|
|
ldr r3, [r2, 0x8]
|
|
mov r9, r3
|
|
ldr r4, [r2, 0xC]
|
|
lsls r0, r1, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
ldr r3, [r2, 0x10]
|
|
b _0805E5FA
|
|
.pool
|
|
_0805E558:
|
|
adds r0, r7, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, [sp]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805E58C
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
b _0805E59C
|
|
.pool
|
|
_0805E58C:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r3, [sp]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
_0805E59C:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
adds r0, r7, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E618
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r4, r7, 1
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl GetMonData
|
|
mov r9, r0
|
|
ldrh r0, [r4]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r1, r8
|
|
lsls r0, r1, 3
|
|
ldr r1, =gMonBackPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
mov r3, r10
|
|
lsls r2, r3, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
ldr r3, =gUnknown_020244BC
|
|
lsls r2, r7, 2
|
|
adds r2, r3
|
|
ldr r3, [r2]
|
|
_0805E5FA:
|
|
mov r2, r8
|
|
bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
|
|
b _0805E662
|
|
.pool
|
|
_0805E618:
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r4, r7, 1
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gEnemyParty
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl GetMonData
|
|
mov r9, r0
|
|
ldrh r0, [r4]
|
|
muls r0, r6
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r1, r8
|
|
lsls r0, r1, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
mov r3, r10
|
|
lsls r2, r3, 2
|
|
adds r1, 0x4
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
ldr r3, =gUnknown_020244BC
|
|
lsls r2, r7, 2
|
|
adds r2, r3
|
|
ldr r3, [r2]
|
|
mov r2, r8
|
|
bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
|
|
_0805E662:
|
|
ldr r0, =gUnknown_020244D4
|
|
ldr r0, [r0]
|
|
mov r2, r10
|
|
lsls r1, r2, 2
|
|
adds r0, 0x4
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r7
|
|
mov r10, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r3, =gUnknown_02020630
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x4]
|
|
lsls r0, 22
|
|
lsrs r0, 17
|
|
ldr r1, =0x06010000
|
|
adds r0, r1
|
|
ldr r1, =0x040000d4
|
|
str r2, [r1]
|
|
str r0, [r1, 0x4]
|
|
ldr r0, =0x84000200
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
lsls r0, r7, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r6, r0, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
mov r2, r9
|
|
bl species_and_otid_get_pal
|
|
mov r9, r0
|
|
ldr r4, =0x0201c000
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, =0x00000181
|
|
cmp r8, r0
|
|
bne _0805E70A
|
|
mov r2, r10
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldr r1, =gUnknown_08309AAC
|
|
mov r3, r8
|
|
lsls r2, r3, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldr r5, =gUnknown_0202449C
|
|
ldr r1, [r5]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
adds r1, r4
|
|
mov r0, r9
|
|
bl LZDecompressWram
|
|
ldr r0, =gUnknown_020244E4
|
|
ldr r1, [sp]
|
|
adds r0, r1, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, 5
|
|
adds r1, r4
|
|
ldr r0, [r5]
|
|
adds r0, r1
|
|
adds r1, r6, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0805E70A:
|
|
ldr r3, =0x00007fff
|
|
adds r0, r6, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x6
|
|
bl BlendPalette
|
|
lsls r1, r6, 1
|
|
ldr r0, =gPlttBufferFaded
|
|
adds r0, r1, r0
|
|
ldr r2, =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
ldr r2, =0x04000008
|
|
bl CpuSet
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E74A
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
mov r2, r8
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, =gUnknown_020244E4
|
|
adds r1, r7, r0
|
|
ldr r3, [sp]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
_0805E74A:
|
|
adds r0, r7, 0
|
|
bl sub_80A6138
|
|
mov r1, r10
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
ldr r2, =gUnknown_02020630
|
|
adds r1, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x22]
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r1, r7, r1
|
|
ldrb r1, [r1]
|
|
bl StartObjectImageAnim
|
|
_0805E77A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E448
|
|
|
|
thumb_func_start sub_805E7DC
|
|
sub_805E7DC: @ 805E7DC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
bne _0805E898
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E7F8
|
|
movs r4, 0
|
|
b _0805E802
|
|
_0805E7F8:
|
|
adds r0, r4, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0805E802:
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E814
|
|
ldr r0, =gUnknown_08C2D120
|
|
b _0805E822
|
|
.pool
|
|
_0805E814:
|
|
adds r0, r5, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E83C
|
|
ldr r0, =gUnknown_08C2CEE0
|
|
_0805E822:
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsls r4, 2
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl LZDecompressVram
|
|
b _0805E84E
|
|
.pool
|
|
_0805E83C:
|
|
ldr r0, =gUnknown_08C2D120
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
lsls r4, 2
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl LZDecompressVram
|
|
_0805E84E:
|
|
movs r3, 0x1
|
|
lsls r6, r5, 4
|
|
ldr r7, =gUnknown_08C2CEBC
|
|
ldr r0, =gUnknown_020244D4
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
adds r4, r0, r4
|
|
ldr r2, =0x040000d4
|
|
ldr r5, =0x84000200
|
|
_0805E860:
|
|
ldr r0, [r4]
|
|
lsls r1, r3, 11
|
|
adds r1, r0, r1
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
str r5, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0805E860
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
adds r0, r7, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _0805E8E6
|
|
.pool
|
|
_0805E898:
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E8E6
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E8D0
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl sub_805DC0C
|
|
b _0805E8E6
|
|
.pool
|
|
_0805E8D0:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
bl sub_805DD7C
|
|
_0805E8E6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E7DC
|
|
|
|
thumb_func_start refresh_graphics_maybe
|
|
refresh_graphics_maybe: @ 805E8F4
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_805E7DC
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r4, r0, r1
|
|
ldr r0, =gUnknown_020244E4
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StartObjectImageAnim
|
|
cmp r5, 0
|
|
bne _0805E938
|
|
adds r0, r6, 0
|
|
bl sub_80A614C
|
|
b _0805E93E
|
|
.pool
|
|
_0805E938:
|
|
adds r0, r6, 0
|
|
bl sub_80A6138
|
|
_0805E93E:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end refresh_graphics_maybe
|
|
|
|
thumb_func_start sub_805E94C
|
|
sub_805E94C: @ 805E94C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0xA4
|
|
bne _0805E96C
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
_0805E96C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805E94C
|
|
|
|
thumb_func_start sub_805E974
|
|
sub_805E974: @ 805E974
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_805E974
|
|
|
|
thumb_func_start sub_805E990
|
|
sub_805E990: @ 805E990
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
adds r7, r6, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8075060
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805EA08
|
|
ldr r7, =gUnknown_020244D0
|
|
ldr r0, [r7]
|
|
ldr r2, [r0]
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r2
|
|
ldrb r1, [r0]
|
|
movs r5, 0x2
|
|
movs r3, 0x2
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EA5A
|
|
adds r0, r6, 0
|
|
eors r0, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805E9F6
|
|
movs r0, 0x5A
|
|
bl audio_play
|
|
_0805E9F6:
|
|
ldr r0, [r7]
|
|
ldr r1, [r0]
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1]
|
|
orrs r0, r5
|
|
strb r0, [r1]
|
|
b _0805EA5A
|
|
.pool
|
|
_0805EA08:
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805EA34
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
b _0805EA5A
|
|
.pool
|
|
_0805EA34:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805EA5A
|
|
ldr r1, [r4]
|
|
movs r0, 0x2
|
|
eors r7, r0
|
|
ldr r1, [r1]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EA5A
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
_0805EA5A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805E990
|
|
|
|
thumb_func_start sub_805EA60
|
|
sub_805EA60: @ 805EA60
|
|
push {r4-r6,lr}
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r6, 0x3
|
|
negs r6, r6
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805EAA2
|
|
ldr r2, [r5]
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
eors r1, r0
|
|
ldr r0, [r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0805EAA2:
|
|
movs r0, 0x5A
|
|
bl m4aSongNumStop
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EA60
|
|
|
|
thumb_func_start sub_805EAB4
|
|
sub_805EAB4: @ 805EAB4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8075060
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805EAB4
|
|
|
|
thumb_func_start sub_805EAE8
|
|
sub_805EAE8: @ 805EAE8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gMain
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805EB7E
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r5, =gUnknown_0202406E
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, r9
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r7, 0x64
|
|
adds r0, r4, 0
|
|
muls r0, r7
|
|
ldr r6, =gPlayerParty
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0805EB5A
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
bl sub_805E990
|
|
_0805EB5A:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805EB7E
|
|
adds r0, r5, 0
|
|
muls r0, r7
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0805EB7E
|
|
adds r0, r4, 0
|
|
mov r1, r9
|
|
bl sub_805E990
|
|
_0805EB7E:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EAE8
|
|
|
|
thumb_func_start sub_805EB9C
|
|
sub_805EB9C: @ 805EB9C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _0805EC6C
|
|
movs r0, 0x3
|
|
mov r10, r8
|
|
mov r1, r10
|
|
ands r1, r0
|
|
mov r10, r1
|
|
movs r6, 0
|
|
movs r2, 0x3F
|
|
negs r2, r2
|
|
mov r9, r2
|
|
_0805EBC8:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_80A6A90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805EC60
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r7, 0x4
|
|
negs r7, r7
|
|
adds r2, r7, 0
|
|
ands r1, r2
|
|
mov r2, r10
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
mov r7, r8
|
|
cmp r7, 0
|
|
bne _0805EC3C
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x4]
|
|
adds r2, r6, r2
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
strb r0, [r2, 0x6]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x3]
|
|
mov r2, r9
|
|
ands r1, r2
|
|
strb r1, [r0, 0x3]
|
|
b _0805EC60
|
|
.pool
|
|
_0805EC3C:
|
|
ldrb r0, [r3]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r6, r0
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
ldrb r0, [r2, 0x3]
|
|
mov r3, r9
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x3]
|
|
_0805EC60:
|
|
adds r6, 0xC
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0202406C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0805EBC8
|
|
_0805EC6C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EB9C
|
|
|
|
thumb_func_start sub_805EC84
|
|
sub_805EC84: @ 805EC84
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gUnknown_0831C6A0
|
|
bl LoadCompressedObjectPic
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gUnknown_0831C6B0
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 8
|
|
movs r0, 0xE8
|
|
lsls r0, 13
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0xC8
|
|
bl AddObjectToFront
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
strb r0, [r2, 0x7]
|
|
ldr r7, =gUnknown_02020630
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r5, [r0, 0x2E]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805ED56
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 8
|
|
movs r0, 0xE8
|
|
lsls r0, 13
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0xC8
|
|
bl AddObjectToFront
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r2, r1, r2
|
|
strb r0, [r2, 0x7]
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x4]
|
|
adds r1, r0
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r5, [r0, 0x2E]
|
|
_0805ED56:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EC84
|
|
|
|
thumb_func_start sub_805ED70
|
|
@ int sub_805ED70(obj *a1)
|
|
sub_805ED70: @ 805ED70
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldrh r0, [r5, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r7, r0, r1
|
|
adds r6, r7, 0
|
|
adds r6, 0x3E
|
|
ldrb r1, [r6]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805EDAC
|
|
adds r0, r4, 0
|
|
bl sub_80A6A90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805EDC0
|
|
_0805EDAC:
|
|
ldr r0, =sub_805EE48
|
|
str r0, [r5, 0x1C]
|
|
b _0805EE36
|
|
.pool
|
|
_0805EDC0:
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805EDD2
|
|
ldrb r1, [r6]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805EDE4
|
|
_0805EDD2:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r2, =gUnknown_020244D0
|
|
lsls r4, 2
|
|
b _0805EE06
|
|
.pool
|
|
_0805EDE4:
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
adds r3, r1, r0
|
|
ldrh r0, [r3, 0x2]
|
|
adds r4, r1, 0
|
|
cmp r0, 0
|
|
beq _0805EE06
|
|
ldr r0, =gUnknown_08305DCC
|
|
ldrh r1, [r3, 0x2]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805EE06
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0805EE06:
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805EE1A
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0805EE1A:
|
|
ldrh r0, [r7, 0x20]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r7, 0x24]
|
|
strh r0, [r5, 0x24]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
mov r0, r8
|
|
lsls r3, r0, 2
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_0805EE36:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805ED70
|
|
|
|
thumb_func_start sub_805EE48
|
|
sub_805EE48: @ 805EE48
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_805EE48
|
|
|
|
thumb_func_start sub_805EE54
|
|
sub_805EE54: @ 805EE54
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r0, r4, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805EED0
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r3, [r0]
|
|
ldr r1, [r3]
|
|
lsls r0, r4, 2
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _0805EE7E
|
|
adds r5, r0, 0
|
|
_0805EE7E:
|
|
ldr r0, =gUnknown_08305DCC
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805EEB4
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_805ED70
|
|
b _0805EECE
|
|
.pool
|
|
_0805EEB4:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_805EE48
|
|
_0805EECE:
|
|
str r1, [r0]
|
|
_0805EED0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EE54
|
|
|
|
thumb_func_start sub_805EEE0
|
|
sub_805EEE0: @ 805EEE0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r1, [r1]
|
|
ldr r3, [r1, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrb r1, [r1, 0x7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_805EE48
|
|
str r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_805EEE0
|
|
|
|
thumb_func_start sub_805EF14
|
|
sub_805EF14: @ 805EF14
|
|
push {r4-r6,lr}
|
|
ldr r3, =0x06000240
|
|
movs r0, 0
|
|
movs r6, 0xF0
|
|
lsls r6, 8
|
|
_0805EF1E:
|
|
adds r5, r0, 0x1
|
|
movs r4, 0xF
|
|
_0805EF22:
|
|
ldrh r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EF32
|
|
adds r0, r6, 0
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
_0805EF32:
|
|
ldrh r1, [r3]
|
|
movs r2, 0xF0
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EF46
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
_0805EF46:
|
|
ldrh r1, [r3]
|
|
movs r2, 0xF0
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EF58
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_0805EF58:
|
|
ldrh r1, [r3]
|
|
movs r2, 0xF
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EF6A
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_0805EF6A:
|
|
adds r3, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0805EF22
|
|
adds r0, r5, 0
|
|
cmp r0, 0x8
|
|
ble _0805EF1E
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EF14
|
|
|
|
thumb_func_start sub_805EF84
|
|
sub_805EF84: @ 805EF84
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
movs r3, 0
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, =gUnknown_020244E4
|
|
adds r0, r4, r0
|
|
strb r3, [r0]
|
|
cmp r1, 0
|
|
bne _0805EFAC
|
|
adds r0, r4, 0
|
|
bl sub_805E974
|
|
_0805EFAC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805EF84
|
|
|
|
thumb_func_start init_uns_table_pokemon_copy
|
|
init_uns_table_pokemon_copy: @ 805EFBC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
ldr r4, =gUnknown_020244D4
|
|
str r6, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
bl AllocZeroed
|
|
ldr r1, [r4]
|
|
str r0, [r1]
|
|
_0805EFE2:
|
|
ldr r0, =gUnknown_020244D4
|
|
ldr r1, [r0]
|
|
lsls r4, r6, 2
|
|
adds r2, r1, 0x4
|
|
adds r2, r4
|
|
lsls r3, r6, 13
|
|
ldr r0, [r1]
|
|
adds r0, r3
|
|
str r0, [r2]
|
|
lsls r3, r6, 1
|
|
adds r0, r3, r6
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldr r2, =gUnknown_08329D98
|
|
adds r1, 0x14
|
|
adds r0, r2
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
movs r5, 0
|
|
mov r9, r3
|
|
lsls r0, r6, 5
|
|
mov r8, r0
|
|
adds r1, r6, 0x1
|
|
mov r10, r1
|
|
mov r12, r8
|
|
adds r7, r4, 0
|
|
_0805F01A:
|
|
ldr r2, =gUnknown_020244D4
|
|
ldr r1, [r2]
|
|
lsls r4, r5, 3
|
|
add r4, r12
|
|
adds r3, r1, 0
|
|
adds r3, 0x74
|
|
adds r3, r4
|
|
adds r0, r1, 0x4
|
|
adds r0, r7
|
|
lsls r2, r5, 11
|
|
ldr r0, [r0]
|
|
adds r0, r2
|
|
str r0, [r3]
|
|
adds r1, r4
|
|
adds r1, 0x78
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
strh r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _0805F01A
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r2, [r1]
|
|
mov r5, r9
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x20
|
|
adds r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x74
|
|
adds r2, r0
|
|
str r2, [r1]
|
|
mov r7, r10
|
|
lsls r0, r7, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _0805EFE2
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
bl AllocZeroed
|
|
ldr r1, =gUnknown_020244D4
|
|
ldr r1, [r1]
|
|
movs r2, 0xBA
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end init_uns_table_pokemon_copy
|
|
|
|
thumb_func_start sub_805F094
|
|
sub_805F094: @ 805F094
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D4
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805F106
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805F0BA
|
|
bl Free
|
|
ldr r0, [r6]
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
_0805F0BA:
|
|
ldr r0, [r6]
|
|
movs r1, 0xBC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805F0D8
|
|
bl Free
|
|
ldr r0, [r6]
|
|
movs r1, 0xBC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
_0805F0D8:
|
|
ldr r0, [r6]
|
|
movs r5, 0xBA
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r5, r0, r5
|
|
movs r4, 0
|
|
str r4, [r5]
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
str r4, [r0]
|
|
str r4, [r0, 0x4]
|
|
str r4, [r0, 0x8]
|
|
str r4, [r0, 0xC]
|
|
str r4, [r0, 0x10]
|
|
bl Free
|
|
str r4, [r6]
|
|
_0805F106:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F094
|
|
|
|
thumb_func_start sub_805F110
|
|
sub_805F110: @ 805F110
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
ldr r1, =0x00000fff
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0805F158
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8075060
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
ble _0805F158
|
|
movs r0, 0x1
|
|
b _0805F15A
|
|
.pool
|
|
_0805F158:
|
|
movs r0, 0
|
|
_0805F15A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805F110
|
|
|
|
thumb_func_start nullsub_26
|
|
nullsub_26: @ 805F160
|
|
bx lr
|
|
thumb_func_end nullsub_26
|
|
|
|
thumb_func_start sub_805F164
|
|
sub_805F164: @ 805F164
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_exec_buffer_A_ch0_tbl7
|
|
str r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_805F164
|
|
|
|
thumb_func_start bx_exec_buffer_A_ch0_tbl7
|
|
bx_exec_buffer_A_ch0_tbl7: @ 805F180
|
|
push {lr}
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0805F1CC
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r3, 9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x38
|
|
bhi _0805F1C8
|
|
ldr r0, =gUnknown_0831C6C8
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _0805F1CC
|
|
.pool
|
|
_0805F1C8:
|
|
bl dp01_tbl7_exec_completed
|
|
_0805F1CC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_exec_buffer_A_ch0_tbl7
|
|
|
|
thumb_func_start sub_805F1D0
|
|
sub_805F1D0: @ 805F1D0
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805F1F4
|
|
bl dp01_tbl7_exec_completed
|
|
_0805F1F4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F1D0
|
|
|
|
thumb_func_start sub_805F208
|
|
sub_805F208: @ 805F208
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805F22C
|
|
bl dp01_tbl7_exec_completed
|
|
_0805F22C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F208
|
|
|
|
thumb_func_start sub_805F240
|
|
sub_805F240: @ 805F240
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r6, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r2, r0, 2
|
|
adds r0, r5, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805F292
|
|
adds r0, r2, r5
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_805DFE4
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl RemoveObjectAndFreeTiles
|
|
bl dp01_tbl7_exec_completed
|
|
_0805F292:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F240
|
|
|
|
thumb_func_start sub_805F2A8
|
|
sub_805F2A8: @ 805F2A8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r1, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x9]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _0805F2E0
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x9]
|
|
bl dp01_tbl7_exec_completed
|
|
_0805F2E0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F2A8
|
|
|
|
thumb_func_start sub_805F2F0
|
|
sub_805F2F0: @ 805F2F0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r10, r0
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F32C
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F31E
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F32C
|
|
_0805F31E:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805F368
|
|
_0805F32C:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_03005D70
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805F34E
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
_0805F34E:
|
|
movs r6, 0
|
|
b _0805F3A2
|
|
.pool
|
|
_0805F368:
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r6, =gUnknown_03005D70
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r4, [r2]
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, 0x1C
|
|
adds r0, r3
|
|
ldr r5, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r5, r0
|
|
bne _0805F3A0
|
|
movs r0, 0x2
|
|
eors r4, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
bne _0805F3A0
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
_0805F3A0:
|
|
movs r6, 0x1
|
|
_0805F3A2:
|
|
ldr r3, =gUnknown_020244D8
|
|
ldr r1, =gUnknown_020244D0
|
|
mov r8, r1
|
|
ldr r2, [r1]
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, [r2, 0x4]
|
|
adds r0, r5, r0
|
|
str r0, [r3]
|
|
ldr r2, =gUnknown_020244DC
|
|
ldrb r0, [r7]
|
|
movs r1, 0x2
|
|
mov r9, r1
|
|
mov r1, r9
|
|
eors r1, r0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5, r0
|
|
str r0, [r2]
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _0805F3D8
|
|
b _0805F53C
|
|
_0805F3D8:
|
|
cmp r6, 0x1
|
|
bne _0805F494
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r5
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F3F2
|
|
b _0805F53C
|
|
_0805F3F2:
|
|
mov r0, r9
|
|
eors r0, r2
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x1]
|
|
ands r6, r0
|
|
cmp r6, 0
|
|
bne _0805F408
|
|
b _0805F53C
|
|
_0805F408:
|
|
ldrb r1, [r4]
|
|
movs r3, 0x7F
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r2, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldrb r0, [r7]
|
|
mov r1, r9
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
ldrb r0, [r7]
|
|
mov r1, r9
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
ands r4, r1
|
|
strb r4, [r0, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
b _0805F51A
|
|
.pool
|
|
_0805F494:
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805F53C
|
|
adds r0, r2, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0805F4E4
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldrb r0, [r7]
|
|
mov r1, r9
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F53C
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
_0805F4E4:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r2, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
_0805F51A:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F2A8
|
|
str r1, [r0]
|
|
_0805F53C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F2F0
|
|
|
|
thumb_func_start sub_805F560
|
|
sub_805F560: @ 805F560
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
mov r10, r0
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r6, 0xC4
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F5A6
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_0805F5A6:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00008040
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F5EE
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F5EE
|
|
ldr r2, [r5]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
adds r3, r0, 0
|
|
eors r3, r1
|
|
ldr r1, [r2, 0x4]
|
|
lsls r2, r3, 1
|
|
adds r0, r2, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F5EE
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl sub_8172EF0
|
|
_0805F5EE:
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r1, =gUnknown_02024064
|
|
mov r8, r1
|
|
ldrb r4, [r1]
|
|
ldr r5, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r3, r0, r5
|
|
ldrb r1, [r3]
|
|
movs r6, 0x8
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _0805F6D0
|
|
movs r7, 0x2
|
|
adds r1, r7, 0
|
|
eors r1, r4
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F6D0
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F6B4
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F684
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F684
|
|
ldr r4, =gUnknown_03005D70
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
adds r1, r7, 0
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
bl sub_8076918
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_0805F684:
|
|
ldr r5, =gUnknown_03005D70
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r4]
|
|
bl sub_8076918
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_0805F6B4:
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r2, [r3]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
mov r9, r3
|
|
_0805F6D0:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0x80
|
|
bne _0805F792
|
|
movs r1, 0x2
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F792
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F792
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldrb r4, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F774
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0x42
|
|
bne _0805F768
|
|
adds r0, r4, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805F774
|
|
ldr r0, =gMPlay_BGM
|
|
bl m4aMPlayContinue
|
|
b _0805F774
|
|
.pool
|
|
_0805F768:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_0805F774:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
_0805F792:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F7B2
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F810
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805F810
|
|
_0805F7B2:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r4, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r3, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r3, r0
|
|
bne _0805F86E
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _0805F86E
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
b _0805F86E
|
|
.pool
|
|
_0805F810:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r7, =gUnknown_03005D7C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r4, r0
|
|
bne _0805F86E
|
|
ldr r6, =gUnknown_020241E4
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r5, [r0]
|
|
cmp r5, r4
|
|
bne _0805F86E
|
|
movs r0, 0x2
|
|
eors r3, r0
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
cmp r4, r5
|
|
bne _0805F86E
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805F86E
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
_0805F86E:
|
|
ldr r1, [sp]
|
|
cmp r1, 0
|
|
beq _0805F958
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _0805F958
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F8D2
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F8D2
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r5]
|
|
eors r4, r0
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
_0805F8D2:
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r5, [r4]
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_805EE54
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r1, [r2, 0x9]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F2F0
|
|
str r1, [r0]
|
|
_0805F958:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F560
|
|
|
|
thumb_func_start sub_805F994
|
|
sub_805F994: @ 805F994
|
|
push {r4,r5,lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _0805F9E0
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r2, r3, 1
|
|
adds r0, r2, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F9E0
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl sub_8172EF0
|
|
_0805F9E0:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805FA48
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805FA48
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FA48:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805F994
|
|
|
|
thumb_func_start sub_805FA70
|
|
sub_805FA70: @ 805FA70
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
ldr r5, =gUnknown_03005D70
|
|
adds r1, r0, r5
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8074AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
lsls r4, 16
|
|
asrs r1, r4, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0805FAB8
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r2, 0
|
|
bl heathbar_draw_hp
|
|
b _0805FABC
|
|
.pool
|
|
_0805FAB8:
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FABC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805FA70
|
|
|
|
thumb_func_start sub_805FAC4
|
|
sub_805FAC4: @ 805FAC4
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805FAF2
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FAF2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FAC4
|
|
|
|
thumb_func_start sub_805FB08
|
|
sub_805FB08: @ 805FB08
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FB62
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r6]
|
|
bl sub_805EEE0
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FB62:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FB08
|
|
|
|
thumb_func_start bx_t7_button_a
|
|
bx_t7_button_a: @ 805FB7C
|
|
push {lr}
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0805FB8E
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FB8E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_t7_button_a
|
|
|
|
thumb_func_start bx_blink_t7
|
|
bx_blink_t7: @ 805FB94
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x20
|
|
bne _0805FBE0
|
|
movs r3, 0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
subs r0, 0x5
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_020244B9
|
|
strb r3, [r0]
|
|
bl dp01_tbl7_exec_completed
|
|
b _0805FC0A
|
|
.pool
|
|
_0805FBE0:
|
|
ldrh r0, [r4, 0x30]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FC04
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_0805FC04:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_0805FC0A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_blink_t7
|
|
|
|
thumb_func_start sub_805FC10
|
|
sub_805FC10: @ 805FC10
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D70
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r3, [r4]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805FC5C
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805FC50
|
|
adds r0, r3, 0
|
|
adds r1, r3, 0
|
|
adds r2, r3, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
_0805FC50:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =bx_803AEDC
|
|
str r0, [r1]
|
|
_0805FC5C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FC10
|
|
|
|
thumb_func_start bx_803AEDC
|
|
bx_803AEDC: @ 805FC80
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FCDA
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FCDA
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
beq _0805FCCA
|
|
ldr r0, =nullsub_18
|
|
cmp r1, r0
|
|
bne _0805FCDA
|
|
_0805FCCA:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FCDA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_803AEDC
|
|
|
|
thumb_func_start sub_805FD00
|
|
sub_805FD00: @ 805FD00
|
|
push {r4-r7,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805FDBC
|
|
ldr r7, =gUnknown_02020630
|
|
ldr r6, =gUnknown_020241E4
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r7, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805FDBC
|
|
ldrb r1, [r3]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl StartObjectImageAnim
|
|
ldr r4, =gUnknown_03005D70
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r5]
|
|
bl sub_8076918
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
ldrb r0, [r5]
|
|
bl sub_805E408
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FC10
|
|
str r1, [r0]
|
|
_0805FDBC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FD00
|
|
|
|
thumb_func_start sub_805FDF0
|
|
sub_805FDF0: @ 805FDF0
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FE22
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_0805FE22:
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r3, r0, 2
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0805FE8C
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FE8C
|
|
adds r0, r3, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r4, [r5]
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FD00
|
|
str r1, [r0]
|
|
_0805FE8C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FDF0
|
|
|
|
thumb_func_start sub_805FEB8
|
|
sub_805FEB8: @ 805FEB8
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FEDA
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FEDA:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_805FEB8
|
|
|
|
thumb_func_start bx_803B0F4
|
|
bx_803B0F4: @ 805FEE8
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805FF0A
|
|
bl dp01_tbl7_exec_completed
|
|
_0805FF0A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_803B0F4
|
|
|
|
thumb_func_start dp01_tbl7_exec_completed
|
|
dp01_tbl7_exec_completed: @ 805FF18
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_exec_buffer_A_ch0_tbl7
|
|
str r1, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805FF6C
|
|
bl link_get_multiplayer_id
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
mov r2, sp
|
|
bl dp01_prepare_buffer_wireless_probably
|
|
ldr r1, =gUnknown_02023064
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
strb r1, [r0]
|
|
b _0805FF7E
|
|
.pool
|
|
_0805FF6C:
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_0805FF7E:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01_tbl7_exec_completed
|
|
|
|
thumb_func_start dp01t_00_7_getattr
|
|
dp01t_00_7_getattr: @ 805FF90
|
|
push {r4-r6,lr}
|
|
sub sp, 0x100
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805FFC8
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl sub_8060004
|
|
adds r6, r0, 0
|
|
b _0805FFEA
|
|
.pool
|
|
_0805FFC8:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_0805FFCC:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0805FFE2
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl sub_8060004
|
|
adds r6, r0
|
|
_0805FFE2:
|
|
lsrs r4, 1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0805FFCC
|
|
_0805FFEA:
|
|
lsls r1, r6, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x1
|
|
mov r2, sp
|
|
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
|
|
bl dp01_tbl7_exec_completed
|
|
add sp, 0x100
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_00_7_getattr
|
|
|
|
thumb_func_start sub_8060004
|
|
sub_8060004: @ 8060004
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x90
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3B
|
|
bls _0806002E
|
|
bl _0806079A
|
|
_0806002E:
|
|
lsls r0, 2
|
|
ldr r1, =_08060044
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08060044:
|
|
.4byte _08060134
|
|
.4byte _08060358
|
|
.4byte _08060368
|
|
.4byte _08060378
|
|
.4byte _080603E0
|
|
.4byte _080603E0
|
|
.4byte _080603E0
|
|
.4byte _080603E0
|
|
.4byte _080603FC
|
|
.4byte _08060438
|
|
.4byte _08060438
|
|
.4byte _08060438
|
|
.4byte _08060438
|
|
.4byte _0806079A
|
|
.4byte _0806079A
|
|
.4byte _0806079A
|
|
.4byte _0806079A
|
|
.4byte _08060454
|
|
.4byte _08060464
|
|
.4byte _08060494
|
|
.4byte _080604A4
|
|
.4byte _080604B4
|
|
.4byte _080604C4
|
|
.4byte _080604D4
|
|
.4byte _080604E4
|
|
.4byte _080604F4
|
|
.4byte _08060504
|
|
.4byte _08060514
|
|
.4byte _08060524
|
|
.4byte _08060534
|
|
.4byte _08060544
|
|
.4byte _08060554
|
|
.4byte _080605A4
|
|
.4byte _080605B4
|
|
.4byte _080605C4
|
|
.4byte _080605D4
|
|
.4byte _080605E4
|
|
.4byte _080605F4
|
|
.4byte _08060604
|
|
.4byte _08060614
|
|
.4byte _08060624
|
|
.4byte _08060658
|
|
.4byte _08060668
|
|
.4byte _08060678
|
|
.4byte _08060688
|
|
.4byte _08060698
|
|
.4byte _080606A8
|
|
.4byte _080606B8
|
|
.4byte _080606C8
|
|
.4byte _080606E8
|
|
.4byte _080606F8
|
|
.4byte _08060708
|
|
.4byte _08060718
|
|
.4byte _08060728
|
|
.4byte _08060738
|
|
.4byte _08060748
|
|
.4byte _08060758
|
|
.4byte _08060768
|
|
.4byte _08060778
|
|
.4byte _08060788
|
|
_08060134:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2E]
|
|
movs r6, 0
|
|
add r0, sp, 0x24
|
|
mov r9, r0
|
|
movs r1, 0x3B
|
|
add r1, sp
|
|
mov r10, r1
|
|
mov r2, sp
|
|
adds r2, 0x2B
|
|
str r2, [sp, 0x80]
|
|
mov r0, sp
|
|
adds r0, 0x2A
|
|
str r0, [sp, 0x7C]
|
|
mov r1, sp
|
|
adds r1, 0x68
|
|
str r1, [sp, 0x8C]
|
|
adds r2, 0x5
|
|
str r2, [sp, 0x84]
|
|
adds r0, 0x12
|
|
str r0, [sp, 0x88]
|
|
mov r8, r4
|
|
add r4, sp, 0xC
|
|
_08060180:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r0, r8
|
|
bl GetMonData
|
|
mov r2, r9
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08060180
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
ldr r2, [sp, 0x80]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
str r0, [sp, 0x44]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r5, 0x1F
|
|
ands r0, r5
|
|
ldrb r2, [r3, 0x14]
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r6, 0x1F
|
|
ands r0, r6
|
|
lsls r0, 5
|
|
ldrh r2, [r3, 0x14]
|
|
ldr r1, =0xfffffc1f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
ldrb r2, [r3, 0x15]
|
|
movs r1, 0x7D
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x15]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 15
|
|
ldr r0, [sp, 0x14]
|
|
ldr r2, =0xfff07fff
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r6
|
|
lsls r0, 4
|
|
ldrh r2, [r3, 0x16]
|
|
ldr r1, =0xfffffe0f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x16]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 1
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x48]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
str r0, [sp, 0x4C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
ldr r1, [sp, 0x7C]
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x28]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0xA]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 6
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
mov r3, sp
|
|
lsls r0, 7
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x7F
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
str r0, [sp, 0x54]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
ldr r2, [sp, 0x8C]
|
|
bl GetMonData
|
|
ldr r0, [sp, 0x84]
|
|
ldr r1, [sp, 0x8C]
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
ldr r2, [sp, 0x88]
|
|
bl GetMonData
|
|
mov r2, sp
|
|
movs r6, 0
|
|
_08060338:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0x57
|
|
bls _08060338
|
|
b _0806079A
|
|
.pool
|
|
_08060358:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
b _080606D2
|
|
.pool
|
|
_08060368:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
b _080606D2
|
|
.pool
|
|
_08060378:
|
|
movs r6, 0
|
|
add r2, sp, 0x58
|
|
mov r9, r2
|
|
add r0, sp, 0x60
|
|
mov r10, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r1, r0
|
|
mov r8, r9
|
|
_0806038E:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r2, r10
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0806038E
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r9
|
|
strb r0, [r1, 0xC]
|
|
mov r2, r9
|
|
movs r6, 0
|
|
_080603CC:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
bls _080603CC
|
|
b _0806079A
|
|
.pool
|
|
_080603E0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _080606D2
|
|
.pool
|
|
_080603FC:
|
|
movs r6, 0
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r2, =gEnemyParty
|
|
mov r8, r2
|
|
_08060408:
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r2, r8
|
|
adds r0, r4, r2
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08060408
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
b _0806079A
|
|
.pool
|
|
_08060438:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
b _08060792
|
|
.pool
|
|
_08060454:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
b _0806046E
|
|
.pool
|
|
_08060464:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x19
|
|
_0806046E:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
movs r6, 0x3
|
|
b _0806079A
|
|
.pool
|
|
_08060494:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1A
|
|
b _08060792
|
|
.pool
|
|
_080604A4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1B
|
|
b _08060792
|
|
.pool
|
|
_080604B4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1C
|
|
b _08060792
|
|
.pool
|
|
_080604C4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1D
|
|
b _08060792
|
|
.pool
|
|
_080604D4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1E
|
|
b _08060792
|
|
.pool
|
|
_080604E4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1F
|
|
b _08060792
|
|
.pool
|
|
_080604F4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
b _08060792
|
|
.pool
|
|
_08060504:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x22
|
|
b _08060792
|
|
.pool
|
|
_08060514:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x23
|
|
b _08060792
|
|
.pool
|
|
_08060524:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x24
|
|
b _08060792
|
|
.pool
|
|
_08060534:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x25
|
|
b _08060792
|
|
.pool
|
|
_08060544:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
b _08060792
|
|
.pool
|
|
_08060554:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
strb r0, [r7, 0x1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
strb r0, [r7, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
strb r0, [r7, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
strb r0, [r7, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
strb r0, [r7, 0x5]
|
|
movs r6, 0x6
|
|
b _0806079A
|
|
.pool
|
|
_080605A4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x27
|
|
b _08060792
|
|
.pool
|
|
_080605B4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x28
|
|
b _08060792
|
|
.pool
|
|
_080605C4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x29
|
|
b _08060792
|
|
.pool
|
|
_080605D4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2A
|
|
b _08060792
|
|
.pool
|
|
_080605E4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2B
|
|
b _08060792
|
|
.pool
|
|
_080605F4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
b _08060792
|
|
.pool
|
|
_08060604:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0
|
|
b _0806062E
|
|
.pool
|
|
_08060614:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x9
|
|
b _080606D2
|
|
.pool
|
|
_08060624:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
_0806062E:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
lsrs r0, r1, 24
|
|
strb r0, [r7, 0x3]
|
|
movs r6, 0x4
|
|
b _0806079A
|
|
.pool
|
|
_08060658:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
b _08060792
|
|
.pool
|
|
_08060668:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x39
|
|
b _080606D2
|
|
.pool
|
|
_08060678:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
b _080606D2
|
|
.pool
|
|
_08060688:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3B
|
|
b _080606D2
|
|
.pool
|
|
_08060698:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3C
|
|
b _080606D2
|
|
.pool
|
|
_080606A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3D
|
|
b _080606D2
|
|
.pool
|
|
_080606B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3E
|
|
b _080606D2
|
|
.pool
|
|
_080606C8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3F
|
|
_080606D2:
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
strb r0, [r7]
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r6, 0x2
|
|
b _0806079A
|
|
.pool
|
|
_080606E8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x16
|
|
b _08060792
|
|
.pool
|
|
_080606F8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x17
|
|
b _08060792
|
|
.pool
|
|
_08060708:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
b _08060792
|
|
.pool
|
|
_08060718:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x21
|
|
b _08060792
|
|
.pool
|
|
_08060728:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2F
|
|
b _08060792
|
|
.pool
|
|
_08060738:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x30
|
|
b _08060792
|
|
.pool
|
|
_08060748:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x32
|
|
b _08060792
|
|
.pool
|
|
_08060758:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x33
|
|
b _08060792
|
|
.pool
|
|
_08060768:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x34
|
|
b _08060792
|
|
.pool
|
|
_08060778:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x35
|
|
b _08060792
|
|
.pool
|
|
_08060788:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x36
|
|
_08060792:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, 0x1
|
|
_0806079A:
|
|
adds r0, r6, 0
|
|
add sp, 0x90
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8060004
|
|
|
|
thumb_func_start dp01t_01_2_read_pokmon_data_slice
|
|
dp01t_01_2_read_pokmon_data_slice: @ 80607B0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x58
|
|
ldr r2, =gUnknown_0202406E
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, 0x64
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
ldr r3, =gUnknown_02023064
|
|
lsls r1, 9
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
ldr r0, =gEnemyParty
|
|
adds r0, r2, r0
|
|
adds r6, r4, r0
|
|
mov r0, sp
|
|
adds r4, r0, r2
|
|
movs r2, 0
|
|
adds r0, r3, 0x2
|
|
adds r1, r0
|
|
adds r7, r5, 0
|
|
mov r12, r3
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcs _08060806
|
|
adds r3, r0, 0
|
|
_080607EC:
|
|
adds r1, r4, r2
|
|
adds r0, r6, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080607EC
|
|
_08060806:
|
|
ldrb r0, [r7]
|
|
lsls r0, 9
|
|
mov r1, r12
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
|
|
bl dp01_tbl7_exec_completed
|
|
add sp, 0x58
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_01_2_read_pokmon_data_slice
|
|
|
|
thumb_func_start dp01t_02_7_setattr
|
|
dp01t_02_7_setattr: @ 8060838
|
|
push {r4,r5,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08060868
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl sub_8060890
|
|
b _08060886
|
|
.pool
|
|
_08060868:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_0806086C:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0806087A
|
|
adds r0, r5, 0
|
|
bl sub_8060890
|
|
_0806087A:
|
|
lsrs r4, 1
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _0806086C
|
|
_08060886:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_02_7_setattr
|
|
|
|
thumb_func_start sub_8060890
|
|
sub_8060890: @ 8060890
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
ldr r2, =gUnknown_02023067
|
|
adds r4, r0, r2
|
|
adds r7, r4, 0
|
|
subs r1, r2, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r6, r3, 0
|
|
adds r3, r2, 0
|
|
cmp r0, 0x3B
|
|
bls _080608BE
|
|
bl _0806119C
|
|
_080608BE:
|
|
lsls r0, 2
|
|
ldr r1, =_080608D4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080608D4:
|
|
.4byte _080609C4
|
|
.4byte _08060B5C
|
|
.4byte _08060B78
|
|
.4byte _08060B94
|
|
.4byte _08060BE8
|
|
.4byte _08060BE8
|
|
.4byte _08060BE8
|
|
.4byte _08060BE8
|
|
.4byte _08060C08
|
|
.4byte _08060C70
|
|
.4byte _08060C70
|
|
.4byte _08060C70
|
|
.4byte _08060C70
|
|
.4byte _0806119C
|
|
.4byte _0806119C
|
|
.4byte _0806119C
|
|
.4byte _0806119C
|
|
.4byte _08060C98
|
|
.4byte _08060CB4
|
|
.4byte _08060CD0
|
|
.4byte _08060CEC
|
|
.4byte _08060D08
|
|
.4byte _08060D24
|
|
.4byte _08060D40
|
|
.4byte _08060D5C
|
|
.4byte _08060D78
|
|
.4byte _08060D94
|
|
.4byte _08060DB0
|
|
.4byte _08060DCC
|
|
.4byte _08060DE8
|
|
.4byte _08060E04
|
|
.4byte _08060E20
|
|
.4byte _08060E94
|
|
.4byte _08060EB0
|
|
.4byte _08060ECC
|
|
.4byte _08060EE8
|
|
.4byte _08060F04
|
|
.4byte _08060F20
|
|
.4byte _08060F3C
|
|
.4byte _08060F58
|
|
.4byte _08060F74
|
|
.4byte _08060F90
|
|
.4byte _08060FAC
|
|
.4byte _08060FC8
|
|
.4byte _08060FE4
|
|
.4byte _08061000
|
|
.4byte _0806101C
|
|
.4byte _08061038
|
|
.4byte _08061054
|
|
.4byte _08061070
|
|
.4byte _0806108C
|
|
.4byte _080610A8
|
|
.4byte _080610C4
|
|
.4byte _080610E0
|
|
.4byte _080610FC
|
|
.4byte _08061118
|
|
.4byte _08061134
|
|
.4byte _08061150
|
|
.4byte _0806116C
|
|
.4byte _08061188
|
|
_080609C4:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
adds r2, r7, 0
|
|
bl pokemon_setattr
|
|
adds r2, r7, 0
|
|
adds r2, 0x2E
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x3B
|
|
adds r0, r7
|
|
mov r10, r0
|
|
adds r0, r7, 0
|
|
adds r0, 0x2B
|
|
str r0, [sp, 0x20]
|
|
adds r0, 0x19
|
|
str r0, [sp, 0x28]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x2C]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x30]
|
|
subs r0, 0x22
|
|
str r0, [sp, 0x1C]
|
|
subs r0, 0x2
|
|
str r0, [sp, 0x18]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x24]
|
|
adds r0, r7, 0x2
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0x4
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0x6
|
|
str r0, [sp, 0xC]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x10]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x14]
|
|
mov r9, r4
|
|
adds r6, r7, 0
|
|
adds r6, 0x24
|
|
adds r4, r7, 0
|
|
adds r4, 0xC
|
|
_08060A2A:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
mov r0, r9
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
mov r0, r9
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r6, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _08060A2A
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
mov r2, r10
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
ldr r2, [sp, 0x20]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
ldr r2, [sp, 0x28]
|
|
bl pokemon_setattr
|
|
ldrb r0, [r7, 0x14]
|
|
lsls r0, 27
|
|
lsrs r0, 27
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r7, 0x14]
|
|
lsls r0, 22
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r7, 0x15]
|
|
lsls r0, 25
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldr r0, [r7, 0x14]
|
|
lsls r0, 12
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r7, 0x16]
|
|
lsls r0, 23
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r7, 0x17]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
ldr r2, [sp, 0x2C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
ldr r2, [sp, 0x30]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
ldr r2, [sp, 0x1C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
ldr r2, [sp, 0x18]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
ldr r2, [sp, 0x24]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
ldr r2, [sp, 0x4]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
ldr r2, [sp, 0x8]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
ldr r2, [sp, 0xC]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
ldr r2, [sp, 0x10]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
ldr r2, [sp, 0x14]
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060B5C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0xB
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060B78:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060B94:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0xC
|
|
adds r0, r4
|
|
mov r9, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r7, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x8
|
|
_08060BAC:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
adds r0, r7, 0
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
adds r0, r7, 0
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r6, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _08060BAC
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
mov r2, r9
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060BE8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _08060C86
|
|
.pool
|
|
_08060C08:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0x11
|
|
str r3, [sp, 0x34]
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x12
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x13
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060C70:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
_08060C86:
|
|
adds r3, 0x3
|
|
adds r2, r3
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060C98:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060CB4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060CD0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1A
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060CEC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1B
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D08:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1C
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D24:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1D
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D40:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1E
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D5C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1F
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D78:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x20
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060D94:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x22
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060DB0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x23
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060DCC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x24
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060DE8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x25
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060E04:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x26
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060E20:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
str r3, [sp, 0x34]
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x5
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
b _08060F2E
|
|
.pool
|
|
_08060E94:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060EB0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060ECC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060EE8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F04:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F20:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
_08060F2E:
|
|
movs r1, 0x2C
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F3C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F58:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x9
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F74:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x37
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060F90:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x38
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060FAC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x39
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060FC8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3A
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08060FE4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3B
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061000:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3C
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_0806101C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3D
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061038:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3E
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061054:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3F
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061070:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x16
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_0806108C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x17
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_080610A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x18
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_080610C4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x21
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_080610E0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2F
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_080610FC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x30
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061118:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x32
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061134:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x33
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061150:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x34
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_0806116C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x35
|
|
bl pokemon_setattr
|
|
b _0806119C
|
|
.pool
|
|
_08061188:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x36
|
|
bl pokemon_setattr
|
|
_0806119C:
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8060890
|
|
|
|
thumb_func_start sub_80611B0
|
|
sub_80611B0: @ 80611B0
|
|
push {r4-r7,lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
ldr r4, =gUnknown_02023064
|
|
lsls r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
adds r5, r3, r0
|
|
movs r3, 0
|
|
adds r0, r4, 0x2
|
|
adds r2, r0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcs _08061208
|
|
adds r6, r4, 0
|
|
adds r2, r7, 0
|
|
adds r4, r0, 0
|
|
_080611E6:
|
|
adds r1, r5, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, 0x3
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcc _080611E6
|
|
_08061208:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80611B0
|
|
|
|
thumb_func_start sub_8061224
|
|
sub_8061224: @ 8061224
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_0202406E
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
movs r7, 0x64
|
|
muls r0, r7
|
|
ldr r2, =gEnemyParty
|
|
mov r10, r2
|
|
add r0, r10
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 1
|
|
ldr r2, =gUnknown_0202406E
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
add r0, r10
|
|
bl sub_805DC0C
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_806A068
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r9, r0
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_80A5C6C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldrb r0, [r6]
|
|
bl sub_80A6138
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r0, [r6]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
ldrb r1, [r6]
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r5, =gUnknown_02020630
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =0x0000ff10
|
|
strh r1, [r0, 0x24]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x2E]
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r3, [r6]
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r3, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r2, [r6]
|
|
adds r4, r2, r4
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
bl StartObjectImageAnim
|
|
ldrb r4, [r6]
|
|
lsls r0, r4, 1
|
|
ldr r2, =gUnknown_0202406E
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
muls r0, r7
|
|
add r0, r10
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F994
|
|
str r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061224
|
|
|
|
thumb_func_start sub_806137C
|
|
sub_806137C: @ 806137C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r1
|
|
ldr r3, =gUnknown_02023064
|
|
lsls r0, 9
|
|
adds r1, r3, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 9
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
bl sub_80613DC
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FDF0
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806137C
|
|
|
|
thumb_func_start sub_80613DC
|
|
sub_80613DC: @ 80613DC
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_805EF84
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r4, r6, 1
|
|
adds r4, r0
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r6, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, 0x64
|
|
mov r9, r1
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r5, =gEnemyParty
|
|
adds r0, r5
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, =sub_805D714
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, =gUnknown_03005D7C
|
|
mov r10, r1
|
|
add r10, r6
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
ldrh r0, [r4]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r5
|
|
adds r1, r6, 0
|
|
bl sub_805DC0C
|
|
adds r0, r6, 0
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_806A068
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r9, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_80A5C6C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A6138
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, =gUnknown_02020630
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x32]
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r4]
|
|
strh r1, [r0, 0x30]
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r3, r6, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r6, r1
|
|
ldrb r1, [r6]
|
|
bl StartObjectImageAnim
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =DummyObjectCallback
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xFE
|
|
bl sub_80753E8
|
|
mov r1, r10
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x2E]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80613DC
|
|
|
|
thumb_func_start sub_806156C
|
|
sub_806156C: @ 806156C
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
bne _080615B4
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8061604
|
|
str r1, [r0]
|
|
b _080615F0
|
|
.pool
|
|
_080615B4:
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r6]
|
|
bl sub_805EEE0
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl dp01_tbl7_exec_completed
|
|
_080615F0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806156C
|
|
|
|
thumb_func_start sub_8061604
|
|
sub_8061604: @ 8061604
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r4, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
beq _0806162C
|
|
cmp r0, 0x1
|
|
beq _0806165A
|
|
b _08061682
|
|
.pool
|
|
_0806162C:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08061646
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_08061646:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _08061682
|
|
_0806165A:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08061682
|
|
strb r0, [r3, 0x4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x2
|
|
bl move_anim_start_t4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FB08
|
|
str r1, [r0]
|
|
_08061682:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061604
|
|
|
|
thumb_func_start sub_8061690
|
|
sub_8061690: @ 8061690
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080616B0
|
|
bl sub_806B830
|
|
b _0806175A
|
|
.pool
|
|
_080616B0:
|
|
ldr r3, =gUnknown_02038BCA
|
|
ldrh r1, [r3]
|
|
ldr r0, =0x000003fe
|
|
cmp r1, r0
|
|
bne _080616C8
|
|
bl sub_81A4CB0
|
|
b _0806175A
|
|
.pool
|
|
_080616C8:
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08061708
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08061700
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080616F0
|
|
ldrh r0, [r3]
|
|
bl sub_81D5588
|
|
b _0806175A
|
|
.pool
|
|
_080616F0:
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r0, [r0]
|
|
bl sub_81D5588
|
|
b _0806175A
|
|
.pool
|
|
_08061700:
|
|
ldrh r0, [r3]
|
|
bl sub_81D5588
|
|
b _0806175A
|
|
_08061708:
|
|
ldr r0, =0x003f0100
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0806174C
|
|
ldr r0, =0x00808000
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08061744
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08061734
|
|
ldrh r0, [r3]
|
|
bl sub_8162AA0
|
|
b _0806175A
|
|
.pool
|
|
_08061734:
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r0, [r0]
|
|
bl sub_8162AA0
|
|
b _0806175A
|
|
.pool
|
|
_08061744:
|
|
ldrh r0, [r3]
|
|
bl sub_8162AA0
|
|
b _0806175A
|
|
_0806174C:
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08061760
|
|
bl sub_8165244
|
|
_0806175A:
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
b _08061796
|
|
_08061760:
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08061788
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08061788
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r1, [r0]
|
|
b _0806178C
|
|
.pool
|
|
_08061788:
|
|
ldr r2, =gTrainers
|
|
ldrh r1, [r3]
|
|
_0806178C:
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r4, [r0, 0x3]
|
|
_08061796:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00008040
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080617C8
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
movs r7, 0xC8
|
|
cmp r1, 0
|
|
beq _080617CA
|
|
movs r7, 0x98
|
|
b _080617CA
|
|
.pool
|
|
_080617C8:
|
|
movs r7, 0xB0
|
|
_080617CA:
|
|
mov r8, r4
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
mov r0, r8
|
|
bl sub_805DF38
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r6, =gUnknown_0202499C
|
|
mov r9, r7
|
|
ldr r1, =gUnknown_083054E0
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r4, 0x8
|
|
subs r4, r0
|
|
lsls r4, 18
|
|
movs r0, 0xA0
|
|
lsls r0, 14
|
|
adds r4, r0
|
|
asrs r4, 16
|
|
ldrb r0, [r5]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r6, 0
|
|
mov r1, r9
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r6, =gUnknown_020241E4
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000ff10
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, =gTrainerFrontPicPaletteTable
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
lsls r0, 4
|
|
ldrb r3, [r2, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r1, r8
|
|
strh r1, [r0, 0x6]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F1D0
|
|
str r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061690
|
|
|
|
thumb_func_start sub_80618D8
|
|
sub_80618D8: @ 80618D8
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080618F8
|
|
bl sub_806B830
|
|
b _080619A2
|
|
.pool
|
|
_080618F8:
|
|
ldr r3, =gUnknown_02038BCA
|
|
ldrh r1, [r3]
|
|
ldr r0, =0x000003fe
|
|
cmp r1, r0
|
|
bne _08061910
|
|
bl sub_81A4CB0
|
|
b _080619A2
|
|
.pool
|
|
_08061910:
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08061950
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08061948
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08061938
|
|
ldrh r0, [r3]
|
|
bl sub_81D5588
|
|
b _080619A2
|
|
.pool
|
|
_08061938:
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r0, [r0]
|
|
bl sub_81D5588
|
|
b _080619A2
|
|
.pool
|
|
_08061948:
|
|
ldrh r0, [r3]
|
|
bl sub_81D5588
|
|
b _080619A2
|
|
_08061950:
|
|
ldr r0, =0x003f0100
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08061994
|
|
ldr r0, =0x00808000
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0806198C
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0806197C
|
|
ldrh r0, [r3]
|
|
bl sub_8162AA0
|
|
b _080619A2
|
|
.pool
|
|
_0806197C:
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r0, [r0]
|
|
bl sub_8162AA0
|
|
b _080619A2
|
|
.pool
|
|
_0806198C:
|
|
ldrh r0, [r3]
|
|
bl sub_8162AA0
|
|
b _080619A2
|
|
_08061994:
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080619A8
|
|
bl sub_8165244
|
|
_080619A2:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080619DE
|
|
_080619A8:
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080619D0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080619D0
|
|
ldr r2, =gTrainers
|
|
ldr r0, =gUnknown_02038BCC
|
|
ldrh r1, [r0]
|
|
b _080619D4
|
|
.pool
|
|
_080619D0:
|
|
ldr r2, =gTrainers
|
|
ldrh r1, [r3]
|
|
_080619D4:
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x3]
|
|
_080619DE:
|
|
mov r8, r0
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r1, [r6]
|
|
bl sub_805DF38
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r0, =gUnknown_0202499C
|
|
ldr r2, =gUnknown_083054E0
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
movs r2, 0x8
|
|
subs r2, r1
|
|
lsls r2, 18
|
|
movs r1, 0xA0
|
|
lsls r1, 14
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
movs r1, 0xB0
|
|
movs r3, 0x1E
|
|
bl AddObjectToFront
|
|
ldr r5, =gUnknown_020241E4
|
|
ldrb r1, [r6]
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x60
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
adds r1, 0x20
|
|
strh r1, [r0, 0x20]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000fffe
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, =gTrainerFrontPicPaletteTable
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldrb r1, [r6]
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
lsls r0, 4
|
|
ldrb r3, [r2, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r3, r8
|
|
strh r3, [r0, 0x6]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F208
|
|
str r1, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80618D8
|
|
|
|
thumb_func_start sub_8061AF0
|
|
sub_8061AF0: @ 8061AF0
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gUnknown_02020630
|
|
adds r0, r5
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x23
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =DummyObjectCallback
|
|
bl oamt_set_x3A_32
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F240
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061AF0
|
|
|
|
thumb_func_start sub_8061B9C
|
|
sub_8061B9C: @ 8061B9C
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r0, [r4, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
bne _08061BF0
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08061BD0
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_08061BD0:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x4]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _08061C2C
|
|
.pool
|
|
_08061BF0:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08061C2C
|
|
strb r0, [r3, 0x4]
|
|
movs r0, 0x10
|
|
movs r1, 0x3F
|
|
bl audio_play_and_stuff
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039934
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FAC4
|
|
str r1, [r0]
|
|
_08061C2C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061B9C
|
|
|
|
thumb_func_start sub_8061C48
|
|
sub_8061C48: @ 8061C48
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061C48
|
|
|
|
thumb_func_start sub_8061C54
|
|
sub_8061C54: @ 8061C54
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061C54
|
|
|
|
thumb_func_start sub_8061C60
|
|
sub_8061C60: @ 8061C60
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061C60
|
|
|
|
thumb_func_start sub_8061C6C
|
|
sub_8061C6C: @ 8061C6C
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061C6C
|
|
|
|
thumb_func_start sub_8061C78
|
|
sub_8061C78: @ 8061C78
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061C8A
|
|
b _08061D9E
|
|
_08061C8A:
|
|
ldr r0, =gUnknown_02023064
|
|
mov r12, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r0, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
mov r1, r12
|
|
adds r1, 0x2
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
ldr r5, =gUnknown_02038432
|
|
mov r1, r12
|
|
adds r1, 0x3
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
strb r1, [r5]
|
|
ldr r4, =gUnknown_02038408
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
mov r1, r12
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, r12
|
|
adds r1, 0x5
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, 8
|
|
orrs r3, r1
|
|
strh r3, [r4]
|
|
ldr r4, =gUnknown_02038404
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
mov r1, r12
|
|
adds r1, 0x6
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, r12
|
|
adds r1, 0x7
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r3, r1
|
|
mov r1, r12
|
|
adds r1, 0x8
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 16
|
|
orrs r3, r1
|
|
mov r1, r12
|
|
adds r1, 0x9
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, 24
|
|
orrs r3, r1
|
|
str r3, [r4]
|
|
ldr r3, =gUnknown_0203841A
|
|
ldrb r1, [r6]
|
|
lsls r1, 9
|
|
mov r2, r12
|
|
adds r2, 0xA
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r3]
|
|
ldr r4, =gUnknown_0203841C
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
mov r1, r12
|
|
adds r1, 0xC
|
|
adds r1, r2, r1
|
|
ldrb r3, [r1]
|
|
mov r1, r12
|
|
adds r1, 0xD
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, 8
|
|
orrs r3, r1
|
|
strh r3, [r4]
|
|
ldr r3, =gUnknown_02038400
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
mov r1, r12
|
|
adds r1, 0x10
|
|
adds r2, r1
|
|
str r2, [r3]
|
|
ldr r3, =gUnknown_020244BC
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldr r2, [r2]
|
|
str r2, [r1]
|
|
ldrb r1, [r5]
|
|
bl sub_805DB8C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _08061D80
|
|
bl dp01_tbl7_exec_completed
|
|
b _08061D9E
|
|
.pool
|
|
_08061D80:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_move_anim_7
|
|
str r1, [r0]
|
|
_08061D9E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061C78
|
|
|
|
thumb_func_start bx_move_anim_7
|
|
bx_move_anim_7: @ 8061DB0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, 9
|
|
adds r0, r2, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, r2, 0x2
|
|
mov r9, r5
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
adds r2, 0xB
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r7, =gUnknown_020244D0
|
|
ldr r5, [r7]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x4]
|
|
cmp r2, 0x1
|
|
beq _08061E48
|
|
cmp r2, 0x1
|
|
bgt _08061E08
|
|
cmp r2, 0
|
|
beq _08061E12
|
|
b _08061F24
|
|
.pool
|
|
_08061E08:
|
|
cmp r2, 0x2
|
|
beq _08061E72
|
|
cmp r2, 0x3
|
|
beq _08061EE8
|
|
b _08061F24
|
|
_08061E12:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, 2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0xC
|
|
ands r0, r2
|
|
cmp r0, 0x4
|
|
bne _08061E34
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_08061E34:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _08061F24
|
|
_08061E48:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08061F24
|
|
movs r0, 0
|
|
bl sub_805EB9C
|
|
adds r0, r4, 0
|
|
bl move_anim_start_t1
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x4]
|
|
b _08061F24
|
|
_08061E72:
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08061F24
|
|
movs r0, 0x1
|
|
bl sub_805EB9C
|
|
ldr r0, [r7]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08061EC0
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bhi _08061EC0
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r0]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08061EC0:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x4]
|
|
b _08061F24
|
|
.pool
|
|
_08061EE8:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08061F24
|
|
bl sub_805E394
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 9
|
|
mov r3, r10
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
add r2, r9
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
bl sub_805E94C
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r4, [r0, 0x4]
|
|
bl dp01_tbl7_exec_completed
|
|
_08061F24:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end bx_move_anim_7
|
|
|
|
thumb_func_start sub_8061F34
|
|
sub_8061F34: @ 8061F34
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r4, 9
|
|
ldr r0, =gUnknown_02023066
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
bl battle_pick_message
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_t7_button_a
|
|
str r1, [r0]
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r4]
|
|
bl sub_81A57E4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8061F34
|
|
|
|
thumb_func_start sub_8061F90
|
|
sub_8061F90: @ 8061F90
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061F90
|
|
|
|
thumb_func_start sub_8061F9C
|
|
sub_8061F9C: @ 8061F9C
|
|
push {lr}
|
|
bl sub_8063880
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061F9C
|
|
|
|
thumb_func_start sub_8061FAC
|
|
sub_8061FAC: @ 8061FAC
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061FAC
|
|
|
|
thumb_func_start sub_8061FB8
|
|
sub_8061FB8: @ 8061FB8
|
|
push {r4-r6,lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08061FE4
|
|
bl sub_805D19C
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
_08061FD6:
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_08061FDA:
|
|
bl dp01_tbl7_exec_completed
|
|
b _08062156
|
|
.pool
|
|
_08061FE4:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
ldr r1, =gUnknown_02023068
|
|
adds r5, r0, r1
|
|
movs r0, 0x93
|
|
lsls r0, 3
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080620C4
|
|
movs r0, 0xF
|
|
bl BattleAI_SetupAIData
|
|
bl sub_8130BA4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
beq _08062022
|
|
cmp r4, 0x5
|
|
bgt _0806201C
|
|
cmp r4, 0x4
|
|
beq _08062028
|
|
b _08062040
|
|
.pool
|
|
_0806201C:
|
|
cmp r4, 0x6
|
|
beq _08062030
|
|
b _08062040
|
|
_08062022:
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
b _0806202C
|
|
_08062028:
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
_0806202C:
|
|
movs r2, 0
|
|
b _08061FD6
|
|
_08062030:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r2, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0xF
|
|
b _08061FD6
|
|
.pool
|
|
_08062040:
|
|
ldr r3, =gBattleMoves
|
|
lsls r0, r4, 1
|
|
adds r2, r5, r0
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062062
|
|
ldr r0, =gEnemyMonIndex
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_08062062:
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806209C
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r5, =gEnemyMonIndex
|
|
strb r0, [r5]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0806209C
|
|
movs r0, 0x2
|
|
bl battle_get_side_with_given_state
|
|
strb r0, [r5]
|
|
_0806209C:
|
|
ldr r0, =gEnemyMonIndex
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
adds r2, r4, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
b _08061FDA
|
|
.pool
|
|
_080620C4:
|
|
movs r6, 0x3
|
|
_080620C6:
|
|
bl Random
|
|
adds r4, r0, 0
|
|
ands r4, r6
|
|
lsls r0, r4, 1
|
|
adds r0, r5, r0
|
|
ldrh r2, [r0]
|
|
cmp r2, 0
|
|
beq _080620C6
|
|
ldr r1, =gBattleMoves
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x6]
|
|
movs r0, 0x12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062108
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
adds r2, r4, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
b _08062152
|
|
.pool
|
|
_08062108:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806213C
|
|
bl Random
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r1, 0
|
|
bl battle_get_side_with_given_state
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 16
|
|
orrs r2, r4
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
b _08062152
|
|
.pool
|
|
_0806213C:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 16
|
|
orrs r2, r4
|
|
movs r0, 0x1
|
|
movs r1, 0xA
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_08062152:
|
|
bl dp01_tbl7_exec_completed
|
|
_08062156:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8061FB8
|
|
|
|
thumb_func_start sub_806215C
|
|
sub_806215C: @ 806215C
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsrs r0, 1
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
bl dp01_build_cmdbuf_x23_aa_0
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806215C
|
|
|
|
thumb_func_start sub_8062188
|
|
sub_8062188: @ 8062188
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r2, 0xA5
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _08062254
|
|
bl sub_8063A90
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x6
|
|
bne _0806225A
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080621D4
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r7, r5, 0
|
|
b _080621E8
|
|
.pool
|
|
_080621D4:
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0x3
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080621E8:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062214
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08062210
|
|
movs r0, 0
|
|
movs r6, 0x3
|
|
b _08062218
|
|
.pool
|
|
_08062210:
|
|
movs r0, 0x3
|
|
b _08062216
|
|
_08062214:
|
|
movs r0, 0
|
|
_08062216:
|
|
movs r6, 0x6
|
|
_08062218:
|
|
adds r4, r0, 0
|
|
b _0806221E
|
|
_0806221C:
|
|
adds r4, 0x1
|
|
_0806221E:
|
|
cmp r4, r6
|
|
bge _0806225A
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806221C
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _0806221C
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _0806221C
|
|
b _0806225A
|
|
.pool
|
|
_08062254:
|
|
ldrb r4, [r1]
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
_0806225A:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
adds r0, 0x5C
|
|
strb r4, [r0]
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x22_a_three_bytes
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062188
|
|
|
|
thumb_func_start sub_8062288
|
|
sub_8062288: @ 8062288
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062288
|
|
|
|
thumb_func_start sub_8062294
|
|
sub_8062294: @ 8062294
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl load_gfxc_health_bar
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
mov r9, r0
|
|
ldrb r4, [r0]
|
|
lsls r2, r4, 9
|
|
adds r0, r3, 0x3
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, 8
|
|
adds r3, 0x2
|
|
adds r2, r3
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
ldr r0, =0x00007fff
|
|
cmp r7, r0
|
|
beq _08062324
|
|
ldr r6, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gEnemyParty
|
|
adds r0, r4
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl sub_807294C
|
|
b _0806234E
|
|
.pool
|
|
_08062324:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, 0
|
|
bl sub_807294C
|
|
_0806234E:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FA70
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062294
|
|
|
|
thumb_func_start sub_8062384
|
|
sub_8062384: @ 8062384
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062384
|
|
|
|
thumb_func_start sub_8062390
|
|
sub_8062390: @ 8062390
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080623E4
|
|
ldr r0, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0x9
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r2, [r4]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FEB8
|
|
str r1, [r0]
|
|
_080623E4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062390
|
|
|
|
thumb_func_start sub_8062408
|
|
sub_8062408: @ 8062408
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062458
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r3, [r5]
|
|
lsls r3, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
adds r2, r4, 0x4
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 16
|
|
orrs r1, r2
|
|
adds r4, 0x5
|
|
adds r3, r4
|
|
ldrb r2, [r3]
|
|
lsls r2, 24
|
|
orrs r1, r2
|
|
bl move_anim_start_t2_for_situation
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805FEB8
|
|
str r1, [r0]
|
|
_08062458:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062408
|
|
|
|
thumb_func_start sub_8062470
|
|
sub_8062470: @ 8062470
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062470
|
|
|
|
thumb_func_start sub_806247C
|
|
sub_806247C: @ 806247C
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806247C
|
|
|
|
thumb_func_start sub_8062488
|
|
sub_8062488: @ 8062488
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062488
|
|
|
|
thumb_func_start sub_8062494
|
|
sub_8062494: @ 8062494
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062494
|
|
|
|
thumb_func_start sub_80624A0
|
|
sub_80624A0: @ 80624A0
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80624A0
|
|
|
|
thumb_func_start sub_80624AC
|
|
sub_80624AC: @ 80624AC
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80624AC
|
|
|
|
thumb_func_start sub_80624B8
|
|
sub_80624B8: @ 80624B8
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80624B8
|
|
|
|
thumb_func_start sub_80624C4
|
|
sub_80624C4: @ 80624C4
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80624C4
|
|
|
|
thumb_func_start sub_80624D0
|
|
sub_80624D0: @ 80624D0
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80624D0
|
|
|
|
thumb_func_start sub_80624DC
|
|
sub_80624DC: @ 80624DC
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80624DC
|
|
|
|
thumb_func_start sub_80624F8
|
|
sub_80624F8: @ 80624F8
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7F
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80624F8
|
|
|
|
thumb_func_start sub_8062530
|
|
sub_8062530: @ 8062530
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062530
|
|
|
|
thumb_func_start sub_8062548
|
|
sub_8062548: @ 8062548
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, [r3]
|
|
lsls r1, 24
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r3]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062548
|
|
|
|
thumb_func_start dp01t_29_7_blink
|
|
dp01t_29_7_blink: @ 8062570
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r2, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080625A4
|
|
bl dp01_tbl7_exec_completed
|
|
b _080625CE
|
|
.pool
|
|
_080625A4:
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
ldrb r0, [r4]
|
|
bl sub_80769F4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =bx_blink_t7
|
|
str r1, [r0]
|
|
_080625CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_29_7_blink
|
|
|
|
thumb_func_start sub_80625E0
|
|
sub_80625E0: @ 80625E0
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80625E0
|
|
|
|
thumb_func_start sub_80625EC
|
|
sub_80625EC: @ 80625EC
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
movs r3, 0x3F
|
|
cmp r0, 0
|
|
bne _08062600
|
|
movs r3, 0xC0
|
|
_08062600:
|
|
ldr r2, =gUnknown_02023064
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
bl audio_play_and_stuff
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80625EC
|
|
|
|
thumb_func_start sub_8062630
|
|
sub_8062630: @ 8062630
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_02023064
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
adds r0, r4, 0x3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0806266C
|
|
bl sub_805EA60
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl song_play_for_text
|
|
b _08062680
|
|
.pool
|
|
_0806266C:
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl fanfare_play
|
|
_08062680:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062630
|
|
|
|
thumb_func_start sub_806268C
|
|
sub_806268C: @ 806268C
|
|
push {lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x19
|
|
movs r2, 0x5
|
|
bl sub_80A32E4
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806268C
|
|
|
|
thumb_func_start dp01t_2E_7_battle_intro
|
|
dp01t_2E_7_battle_intro: @ 80626C8
|
|
push {lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl battle_intro_launch
|
|
ldr r2, =gUnknown_020243FC
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_2E_7_battle_intro
|
|
|
|
thumb_func_start sub_80626FC
|
|
sub_80626FC: @ 80626FC
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x23
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =sub_806280C
|
|
bl oamt_set_x3A_32
|
|
ldr r0, =sub_8062828
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080627BE
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_080627BE:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r0, [r2, 0x9]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_26
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80626FC
|
|
|
|
thumb_func_start sub_806280C
|
|
sub_806280C: @ 806280C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x6]
|
|
bl sub_805DFE4
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806280C
|
|
|
|
thumb_func_start sub_8062828
|
|
sub_8062828: @ 8062828
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
strb r0, [r7]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806286C
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806286C
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080628A0
|
|
_0806286C:
|
|
ldr r0, =gUnknown_02023064
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, 9
|
|
adds r0, 0x1
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80613DC
|
|
b _080628E0
|
|
.pool
|
|
_080628A0:
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r4, 0x1
|
|
adds r1, r4
|
|
ldr r6, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80613DC
|
|
ldrb r0, [r7]
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r1, r4
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80613DC
|
|
ldrb r0, [r7]
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
_080628E0:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_805F560
|
|
str r1, [r0]
|
|
mov r0, r9
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062828
|
|
|
|
thumb_func_start dp01t_30_7_0803D67C
|
|
dp01t_30_7_0803D67C: @ 8062918
|
|
push {r4-r7,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08062948
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062948
|
|
bl dp01_tbl7_exec_completed
|
|
b _08062A12
|
|
.pool
|
|
_08062948:
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02023064
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _080629B4
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r2, [r3, 0x1]
|
|
lsls r1, r2, 27
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x1
|
|
bhi _080629AC
|
|
adds r0, 0x1
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
movs r1, 0x1F
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x1]
|
|
b _08062A12
|
|
.pool
|
|
_080629AC:
|
|
movs r0, 0x1F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r3, 0x1]
|
|
_080629B4:
|
|
adds r5, r7, 0
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
ldr r4, =gUnknown_02023068
|
|
adds r1, r3, r4
|
|
subs r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
subs r4, 0x2
|
|
adds r3, r4
|
|
ldrb r3, [r3]
|
|
bl sub_80735DC
|
|
ldr r2, =gUnknown_020244B4
|
|
ldrb r1, [r5]
|
|
adds r1, r2
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08062A06
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x5D
|
|
strb r1, [r0, 0x5]
|
|
_08062A06:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r7]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =bx_0803D790_t7
|
|
str r0, [r1]
|
|
_08062A12:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_30_7_0803D67C
|
|
|
|
thumb_func_start bx_0803D790_t7
|
|
bx_0803D790_t7: @ 8062A2C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x5]
|
|
adds r2, r1, 0x1
|
|
strb r2, [r0, 0x5]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x5C
|
|
bls _08062A64
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x5]
|
|
bl dp01_tbl7_exec_completed
|
|
_08062A64:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end bx_0803D790_t7
|
|
|
|
thumb_func_start sub_8062A74
|
|
sub_8062A74: @ 8062A74
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r1, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062AA6
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_08062AA6:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062A74
|
|
|
|
thumb_func_start sub_8062AC4
|
|
sub_8062AC4: @ 8062AC4
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062AC4
|
|
|
|
thumb_func_start sub_8062AD0
|
|
sub_8062AD0: @ 8062AD0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl sub_80A6A90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062B16
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ldrb r1, [r1]
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
bl sub_805E408
|
|
_08062B16:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062AD0
|
|
|
|
thumb_func_start dp01t_34_7_move_anim_start_t3
|
|
dp01t_34_7_move_anim_start_t3: @ 8062B30
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062B88
|
|
ldr r5, =gUnknown_02023064
|
|
ldrb r2, [r6]
|
|
lsls r1, r2, 9
|
|
adds r0, r5, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r0, r5, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, 0x3
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
str r4, [sp]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
bl move_anim_start_t3
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062B7C
|
|
bl dp01_tbl7_exec_completed
|
|
b _08062B88
|
|
.pool
|
|
_08062B7C:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r6]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =bx_803B0F4
|
|
str r0, [r1]
|
|
_08062B88:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end dp01t_34_7_move_anim_start_t3
|
|
|
|
thumb_func_start sub_8062B98
|
|
sub_8062B98: @ 8062B98
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062B98
|
|
|
|
thumb_func_start sub_8062BA4
|
|
sub_8062BA4: @ 8062BA4
|
|
push {lr}
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8062BA4
|
|
|
|
thumb_func_start sub_8062BB0
|
|
sub_8062BB0: @ 8062BB0
|
|
push {lr}
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
bne _08062BDA
|
|
ldr r2, =gMain
|
|
ldr r0, =0x00000439
|
|
adds r3, r2, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, =gUnknown_03005D00
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r0, [r2, 0x8]
|
|
bl SetMainCallback2
|
|
_08062BDA:
|
|
bl dp01_tbl7_exec_completed
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8062BB0
|
|
|
|
thumb_func_start nullsub_91
|
|
nullsub_91: @ 8062BF4
|
|
bx lr
|
|
thumb_func_end nullsub_91
|
|
|
|
thumb_func_start ai_switch_perish_song
|
|
ai_switch_perish_song: @ 8062BF8
|
|
push {lr}
|
|
ldr r1, =gUnknown_020242AC
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062C50
|
|
ldr r0, =gUnknown_020242BC
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xF]
|
|
lsls r0, 28
|
|
cmp r0, 0
|
|
bne _08062C50
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, r2, r0
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
movs r0, 0x1
|
|
b _08062C52
|
|
.pool
|
|
_08062C50:
|
|
movs r0, 0
|
|
_08062C52:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ai_switch_perish_song
|
|
|
|
thumb_func_start sub_8062C58
|
|
sub_8062C58: @ 8062C58
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062C72
|
|
b _08062E2C
|
|
_08062C72:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r4, =gBattleMons
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x58
|
|
muls r0, r1
|
|
adds r0, r4
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x19
|
|
beq _08062C9E
|
|
b _08062E2C
|
|
_08062C9E:
|
|
mov r0, r10
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r6, 0
|
|
mov r8, r4
|
|
movs r7, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r7
|
|
adds r4, r0, r4
|
|
movs r0, 0x20
|
|
adds r0, r4
|
|
mov r9, r0
|
|
_08062CBA:
|
|
lsls r1, r6, 1
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
muls r0, r7
|
|
adds r1, r0
|
|
mov r0, r8
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _08062CE8
|
|
ldrh r1, [r4]
|
|
mov r3, r9
|
|
ldrb r2, [r3]
|
|
bl ai_rate_move
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08062CE8
|
|
b _08062E2C
|
|
_08062CE8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08062CBA
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062D50
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
adds r1, r5, 0
|
|
cmp r0, 0
|
|
bne _08062D20
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
str r0, [sp]
|
|
b _08062D58
|
|
.pool
|
|
_08062D20:
|
|
movs r4, 0x3
|
|
movs r3, 0x6
|
|
str r3, [sp]
|
|
b _08062D58
|
|
_08062D28:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
movs r0, 0x1
|
|
b _08062E2E
|
|
.pool
|
|
_08062D50:
|
|
movs r4, 0
|
|
movs r3, 0x6
|
|
str r3, [sp]
|
|
adds r1, r5, 0
|
|
_08062D58:
|
|
ldrb r0, [r1]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _08062D6C
|
|
ldr r3, =gPlayerParty
|
|
mov r9, r3
|
|
_08062D6C:
|
|
adds r6, r4, 0
|
|
ldr r0, [sp]
|
|
cmp r6, r0
|
|
bge _08062E2C
|
|
_08062D74:
|
|
movs r0, 0x64
|
|
adds r5, r6, 0
|
|
muls r5, r0
|
|
mov r1, r9
|
|
adds r4, r1, r5
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08062E24
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08062E24
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _08062E24
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
beq _08062E24
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
mov r0, r10
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r4, 0
|
|
mov r8, r5
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r5, r0, r1
|
|
adds r7, r5, 0
|
|
adds r7, 0x20
|
|
_08062DE0:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
mov r0, r9
|
|
add r0, r8
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _08062E1E
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r7]
|
|
bl ai_rate_move
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08062E1E
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _08062D28
|
|
_08062E1E:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08062DE0
|
|
_08062E24:
|
|
adds r6, 0x1
|
|
ldr r3, [sp]
|
|
cmp r6, r3
|
|
blt _08062D74
|
|
_08062E2C:
|
|
movs r0, 0
|
|
_08062E2E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8062C58
|
|
|
|
thumb_func_start sub_8062E54
|
|
sub_8062E54: @ 8062E54
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0x1
|
|
bl ai_has_super_effective_move_on_field
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062E82
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08062E82
|
|
b _080630AC
|
|
_08062E82:
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r3, [r5]
|
|
lsls r0, r3, 1
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4]
|
|
cmp r1, 0
|
|
bne _08062E94
|
|
b _080630AC
|
|
_08062E94:
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _08062E9C
|
|
b _080630AC
|
|
_08062E9C:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _08062EB0
|
|
b _080630AC
|
|
_08062EB0:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062F1A
|
|
mov r8, r3
|
|
mov r0, r8
|
|
bl battle_get_per_side_status
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08062F04
|
|
ldrb r7, [r5]
|
|
b _08062F1E
|
|
.pool
|
|
_08062F04:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _08062F1E
|
|
_08062F1A:
|
|
adds r7, r3, 0
|
|
mov r8, r7
|
|
_08062F1E:
|
|
ldr r3, =gBattleMoves
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0xA
|
|
bne _08062F4C
|
|
movs r0, 0x12
|
|
b _08062F5E
|
|
.pool
|
|
_08062F4C:
|
|
cmp r0, 0xB
|
|
bne _08062F56
|
|
movs r1, 0xB
|
|
str r1, [sp]
|
|
b _08062F60
|
|
_08062F56:
|
|
cmp r0, 0xD
|
|
beq _08062F5C
|
|
b _080630AC
|
|
_08062F5C:
|
|
movs r0, 0xA
|
|
_08062F5E:
|
|
str r0, [sp]
|
|
_08062F60:
|
|
ldr r1, =gBattleMons
|
|
ldrb r3, [r2]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp]
|
|
cmp r0, r1
|
|
bne _08062F76
|
|
b _080630AC
|
|
_08062F76:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08062FCC
|
|
movs r0, 0x2
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
bne _08062F9C
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
b _08062FD0
|
|
.pool
|
|
_08062F9C:
|
|
movs r4, 0x3
|
|
movs r1, 0x6
|
|
mov r10, r1
|
|
b _08062FD2
|
|
_08062FA4:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r2, 0xA5
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
strb r5, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
movs r0, 0x1
|
|
b _080630AE
|
|
.pool
|
|
_08062FCC:
|
|
movs r4, 0
|
|
movs r0, 0x6
|
|
_08062FD0:
|
|
mov r10, r0
|
|
_08062FD2:
|
|
ldrb r0, [r2]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
str r1, [sp, 0x4]
|
|
cmp r0, 0
|
|
bne _08062FE6
|
|
ldr r2, =gPlayerParty
|
|
str r2, [sp, 0x4]
|
|
_08062FE6:
|
|
adds r5, r4, 0
|
|
cmp r5, r10
|
|
bge _080630AC
|
|
ldr r0, =gBaseStats
|
|
mov r9, r0
|
|
_08062FF0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, [sp, 0x4]
|
|
adds r6, r1, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080630A6
|
|
adds r0, r6, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080630A6
|
|
adds r0, r6, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080630A6
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r2, r8
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
beq _080630A6
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
beq _080630A6
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r2, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080630A6
|
|
adds r0, r7, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080630A6
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063088
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x17]
|
|
b _08063092
|
|
.pool
|
|
_08063088:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x16]
|
|
_08063092:
|
|
ldr r1, [sp]
|
|
cmp r1, r0
|
|
bne _080630A6
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080630A6
|
|
b _08062FA4
|
|
_080630A6:
|
|
adds r5, 0x1
|
|
cmp r5, r10
|
|
blt _08062FF0
|
|
_080630AC:
|
|
movs r0, 0
|
|
_080630AE:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062E54
|
|
|
|
thumb_func_start ai_switchout_natural_cure
|
|
ai_switchout_natural_cure: @ 80630C0
|
|
push {r4,r5,lr}
|
|
ldr r3, =gBattleMons
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
movs r0, 0x58
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x4C
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063188
|
|
adds r1, r2, r3
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1E
|
|
bne _08063188
|
|
ldrh r0, [r1, 0x2C]
|
|
ldrh r1, [r1, 0x28]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
bcc _08063188
|
|
ldr r1, =gUnknown_02024250
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
cmp r1, 0
|
|
beq _08063106
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _08063128
|
|
_08063106:
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063128
|
|
ldrb r0, [r5]
|
|
b _08063190
|
|
.pool
|
|
_08063128:
|
|
ldr r2, =gBattleMoves
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _08063160
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063160
|
|
ldrb r0, [r4]
|
|
b _08063190
|
|
.pool
|
|
_08063160:
|
|
movs r0, 0x8
|
|
movs r1, 0x1
|
|
bl ai_switchout_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080631AA
|
|
movs r0, 0x4
|
|
movs r1, 0x1
|
|
bl ai_switchout_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080631AA
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0806318C
|
|
_08063188:
|
|
movs r0, 0
|
|
b _080631AC
|
|
_0806318C:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
_08063190:
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_080631AA:
|
|
movs r0, 0x1
|
|
_080631AC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ai_switchout_natural_cure
|
|
|
|
thumb_func_start ai_has_super_effective_move_on_field
|
|
ai_has_super_effective_move_on_field: @ 80631BC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08063256
|
|
movs r4, 0
|
|
ldr r6, =gBattleMons
|
|
movs r7, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r7
|
|
adds r5, r0, r6
|
|
movs r0, 0x20
|
|
adds r0, r5
|
|
mov r8, r0
|
|
_0806320A:
|
|
lsls r1, r4, 1
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
muls r0, r7
|
|
adds r1, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _08063250
|
|
ldrh r1, [r5]
|
|
mov r3, r8
|
|
ldrb r2, [r3]
|
|
bl ai_rate_move
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063250
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08063278
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08063278
|
|
_08063250:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0806320A
|
|
_08063256:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806327C
|
|
b _080632FA
|
|
.pool
|
|
_08063278:
|
|
movs r0, 0x1
|
|
b _080632FC
|
|
_0806327C:
|
|
movs r1, 0x2
|
|
mov r0, r10
|
|
eors r0, r1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080632FA
|
|
movs r4, 0
|
|
ldr r6, =gBattleMons
|
|
movs r7, 0x58
|
|
adds r0, r3, 0
|
|
muls r0, r7
|
|
adds r5, r0, r6
|
|
movs r3, 0x20
|
|
adds r3, r5
|
|
mov r8, r3
|
|
_080632AE:
|
|
lsls r1, r4, 1
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
muls r0, r7
|
|
adds r1, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0xC
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _080632F4
|
|
ldrh r1, [r5]
|
|
mov r3, r8
|
|
ldrb r2, [r3]
|
|
bl ai_rate_move
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080632F4
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08063278
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08063278
|
|
_080632F4:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080632AE
|
|
_080632FA:
|
|
movs r0, 0
|
|
_080632FC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ai_has_super_effective_move_on_field
|
|
|
|
thumb_func_start ai_is_too_invested_in_stat_buffs
|
|
ai_is_too_invested_in_stat_buffs: @ 806331C
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
ldr r1, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x18
|
|
adds r2, r0, r1
|
|
movs r3, 0x7
|
|
_08063330:
|
|
ldrb r1, [r2]
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x6
|
|
ble _08063346
|
|
subs r1, 0x6
|
|
lsls r0, r4, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_08063346:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08063330
|
|
movs r0, 0
|
|
cmp r4, 0x3
|
|
bls _08063356
|
|
movs r0, 0x1
|
|
_08063356:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ai_is_too_invested_in_stat_buffs
|
|
|
|
thumb_func_start ai_switchout_something
|
|
ai_switchout_something: @ 8063364
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
ldr r2, =gUnknown_02024250
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
lsls r0, r3, 1
|
|
adds r4, r0, r2
|
|
ldrh r2, [r4]
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
bne _08063390
|
|
b _080635EE
|
|
_08063390:
|
|
ldr r0, =0x0000ffff
|
|
cmp r2, r0
|
|
bne _08063398
|
|
b _080635EE
|
|
_08063398:
|
|
ldr r0, =gUnknown_02024270
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _080633A4
|
|
b _080635EE
|
|
_080633A4:
|
|
ldr r2, =gBattleMoves
|
|
ldrh r1, [r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _080633B8
|
|
b _080635EE
|
|
_080633B8:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806342C
|
|
mov r9, r3
|
|
mov r0, r9
|
|
bl battle_get_per_side_status
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063414
|
|
ldrb r5, [r5]
|
|
mov r10, r5
|
|
b _08063430
|
|
.pool
|
|
_08063414:
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
eors r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
b _08063430
|
|
_0806342C:
|
|
mov r9, r3
|
|
mov r10, r9
|
|
_08063430:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063490
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
bne _08063460
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x8]
|
|
b _08063498
|
|
.pool
|
|
_08063460:
|
|
movs r4, 0x3
|
|
movs r1, 0x6
|
|
str r1, [sp, 0x8]
|
|
b _08063498
|
|
_08063468:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
movs r2, 0xA5
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
strb r6, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
movs r0, 0x1
|
|
b _080635F0
|
|
.pool
|
|
_08063490:
|
|
movs r4, 0
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x8]
|
|
ldr r5, =gUnknown_02024064
|
|
_08063498:
|
|
ldrb r0, [r5]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
str r1, [sp, 0xC]
|
|
cmp r0, 0
|
|
bne _080634AC
|
|
ldr r2, =gPlayerParty
|
|
str r2, [sp, 0xC]
|
|
_080634AC:
|
|
adds r6, r4, 0
|
|
b _080635E6
|
|
.pool
|
|
_080634BC:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, [sp, 0xC]
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _080634D2
|
|
b _080635E4
|
|
_080634D2:
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _080634E0
|
|
b _080635E4
|
|
_080634E0:
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080635E4
|
|
ldr r1, =gUnknown_0202406E
|
|
mov r2, r9
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
beq _080635E4
|
|
mov r2, r10
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
beq _080635E4
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
mov r2, r9
|
|
adds r0, r2, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
beq _080635E4
|
|
mov r2, r10
|
|
adds r0, r2, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
beq _080635E4
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063558
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, =gBaseStats
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x17]
|
|
b _08063564
|
|
.pool
|
|
_08063558:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r2, =gBaseStats
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x16]
|
|
_08063564:
|
|
ldr r1, =gUnknown_02024250
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r1, r4, 0
|
|
bl ai_rate_move
|
|
ldr r1, [sp]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080635E4
|
|
ldr r1, =gUnknown_02024270
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
movs r4, 0
|
|
movs r0, 0x64
|
|
adds r1, r6, 0
|
|
muls r1, r0
|
|
mov r8, r1
|
|
ldr r1, =gBattleMons
|
|
movs r0, 0x58
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r5, r0, r1
|
|
adds r7, r5, 0
|
|
adds r7, 0x20
|
|
_080635A2:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r8
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _080635DE
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r7]
|
|
bl ai_rate_move
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080635DE
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [sp, 0x4]
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _080635DE
|
|
b _08063468
|
|
_080635DE:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080635A2
|
|
_080635E4:
|
|
adds r6, 0x1
|
|
_080635E6:
|
|
ldr r0, [sp, 0x8]
|
|
cmp r6, r0
|
|
bge _080635EE
|
|
b _080634BC
|
|
_080635EE:
|
|
movs r0, 0
|
|
_080635F0:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end ai_switchout_something
|
|
|
|
thumb_func_start sub_8063614
|
|
sub_8063614: @ 8063614
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r6, =gBattleMons
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
movs r5, 0x58
|
|
adds r0, r2, 0
|
|
muls r0, r5
|
|
adds r1, r6, 0
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, =0x0400e000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806363E
|
|
b _0806386C
|
|
_0806363E:
|
|
ldr r0, =gUnknown_020242AC
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063652
|
|
b _0806386C
|
|
_08063652:
|
|
str r1, [sp]
|
|
movs r0, 0xC
|
|
adds r1, r2, 0
|
|
movs r2, 0x17
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0806366A
|
|
b _0806386C
|
|
_0806366A:
|
|
ldrb r1, [r4]
|
|
str r0, [sp]
|
|
movs r0, 0xC
|
|
movs r2, 0x47
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08063682
|
|
b _0806386C
|
|
_08063682:
|
|
str r0, [sp]
|
|
movs r0, 0xE
|
|
movs r1, 0
|
|
movs r2, 0x2A
|
|
movs r3, 0
|
|
bl ability_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080636B4
|
|
ldrb r0, [r4]
|
|
muls r0, r5
|
|
adds r1, r0, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _080636A8
|
|
b _0806386C
|
|
_080636A8:
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _080636B4
|
|
b _0806386C
|
|
_080636B4:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080636C4
|
|
b _0806386C
|
|
_080636C4:
|
|
movs r0, 0
|
|
mov r10, r0
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0806372E
|
|
ldrb r7, [r4]
|
|
adds r0, r7, 0
|
|
bl battle_get_per_side_status
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063718
|
|
ldrb r6, [r4]
|
|
b _08063732
|
|
.pool
|
|
_08063718:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _08063732
|
|
_0806372E:
|
|
ldrb r6, [r4]
|
|
adds r7, r6, 0
|
|
_08063732:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063768
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063760
|
|
movs r4, 0
|
|
movs r1, 0x3
|
|
mov r8, r1
|
|
b _08063770
|
|
.pool
|
|
_08063760:
|
|
movs r4, 0x3
|
|
movs r0, 0x6
|
|
mov r8, r0
|
|
b _08063770
|
|
_08063768:
|
|
movs r4, 0
|
|
movs r1, 0x6
|
|
mov r8, r1
|
|
ldr r2, =gUnknown_02024064
|
|
_08063770:
|
|
ldrb r0, [r2]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _08063784
|
|
ldr r0, =gPlayerParty
|
|
mov r9, r0
|
|
_08063784:
|
|
adds r5, r4, 0
|
|
cmp r5, r8
|
|
bge _080637F2
|
|
_0806378A:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
mov r1, r9
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080637EC
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080637EC
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080637EC
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
beq _080637EC
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r5, r0
|
|
beq _080637EC
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r7, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080637EC
|
|
adds r0, r6, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _080637EC
|
|
movs r0, 0x1
|
|
add r10, r0
|
|
_080637EC:
|
|
adds r5, 0x1
|
|
cmp r5, r8
|
|
blt _0806378A
|
|
_080637F2:
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
beq _0806386C
|
|
bl ai_switch_perish_song
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063852
|
|
bl sub_8062C58
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063852
|
|
bl sub_8062E54
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063852
|
|
bl ai_switchout_natural_cure
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063852
|
|
movs r0, 0
|
|
bl ai_has_super_effective_move_on_field
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806386C
|
|
bl ai_is_too_invested_in_stat_buffs
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806386C
|
|
movs r0, 0x8
|
|
movs r1, 0x2
|
|
bl ai_switchout_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063852
|
|
movs r0, 0x4
|
|
movs r1, 0x3
|
|
bl ai_switchout_something
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806386C
|
|
_08063852:
|
|
movs r0, 0x1
|
|
b _0806386E
|
|
.pool
|
|
_0806386C:
|
|
movs r0, 0
|
|
_0806386E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063614
|
|
|
|
thumb_func_start sub_8063880
|
|
sub_8063880: @ 8063880
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r5, r6, 0
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r1, =gEnemyParty
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _080638A8
|
|
ldr r2, =gPlayerParty
|
|
mov r8, r2
|
|
_080638A8:
|
|
ldr r7, =gBattleTypeFlags
|
|
ldr r0, [r7]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080638B6
|
|
b _080639E6
|
|
_080638B6:
|
|
bl sub_8063614
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080638C2
|
|
b _080639DC
|
|
_080638C2:
|
|
ldrb r0, [r4]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _080639B8
|
|
bl sub_8063A90
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x6
|
|
bne _080639A6
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063910
|
|
adds r0, r6, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
b _08063928
|
|
.pool
|
|
_08063910:
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0x2
|
|
eors r5, r0
|
|
adds r0, r5, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08063928:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063958
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063954
|
|
movs r0, 0
|
|
movs r7, 0x3
|
|
b _0806395C
|
|
.pool
|
|
_08063954:
|
|
movs r0, 0x3
|
|
b _0806395A
|
|
_08063958:
|
|
movs r0, 0
|
|
_0806395A:
|
|
movs r7, 0x6
|
|
_0806395C:
|
|
adds r4, r0, 0
|
|
cmp r4, r7
|
|
bge _080639A6
|
|
_08063962:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
add r0, r8
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _080639A0
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r6, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _080639A0
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
beq _080639A0
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r6, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _080639A0
|
|
adds r0, r5, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bne _080639A6
|
|
_080639A0:
|
|
adds r4, 0x1
|
|
cmp r4, r7
|
|
blt _08063962
|
|
_080639A6:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
_080639B8:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, r1, r0
|
|
adds r1, r0, 0
|
|
adds r1, 0x5C
|
|
movs r2, 0xA5
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
b _080639F8
|
|
.pool
|
|
_080639DC:
|
|
bl sub_8063EE0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080639F8
|
|
_080639E6:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
movs r2, 0x1
|
|
eors r2, r0
|
|
lsls r2, 8
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
_080639F8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8063880
|
|
|
|
thumb_func_start sub_8063A08
|
|
sub_8063A08: @ 8063A08
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r3, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_0831ACE8
|
|
mov r10, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _08063A7A
|
|
mov r5, r10
|
|
_08063A36:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xFE
|
|
beq _08063A6C
|
|
ldr r1, [sp]
|
|
cmp r0, r1
|
|
bne _08063A6C
|
|
ldrb r4, [r5, 0x1]
|
|
cmp r4, r9
|
|
bne _08063A56
|
|
ldrb r1, [r6]
|
|
ldrb r0, [r5, 0x2]
|
|
muls r0, r1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strb r0, [r6]
|
|
_08063A56:
|
|
cmp r4, r8
|
|
bne _08063A6C
|
|
cmp r9, r8
|
|
beq _08063A6C
|
|
ldrb r1, [r6]
|
|
ldrb r0, [r5, 0x2]
|
|
muls r0, r1
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strb r0, [r6]
|
|
_08063A6C:
|
|
adds r5, 0x3
|
|
adds r7, 0x3
|
|
mov r1, r10
|
|
adds r0, r7, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _08063A36
|
|
_08063A7A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8063A08
|
|
|
|
thumb_func_start sub_8063A90
|
|
sub_8063A90: @ 8063A90
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
adds r0, r2, r0
|
|
adds r1, r0, 0
|
|
adds r1, 0x5C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
beq _08063AB2
|
|
b _08063E50
|
|
_08063AB2:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063AE0
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08063E50
|
|
.pool
|
|
_08063AE0:
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063B6C
|
|
str r2, [sp, 0x10]
|
|
adds r0, r2, 0
|
|
bl battle_get_per_side_status
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02024210
|
|
ldrb r1, [r1]
|
|
ldr r2, =gBitTable
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063B20
|
|
ldrb r4, [r4]
|
|
str r4, [sp, 0x14]
|
|
b _08063B36
|
|
.pool
|
|
_08063B20:
|
|
ldrb r0, [r4]
|
|
bl battle_get_per_side_status
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x14]
|
|
_08063B36:
|
|
bl Random
|
|
movs r3, 0x2
|
|
ands r0, r3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
ldr r0, =gUnknown_02024210
|
|
ldrb r1, [r0]
|
|
ldr r2, =gBitTable
|
|
ldr r4, [sp, 0x4]
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08063B8A
|
|
eors r4, r3
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
b _08063B8A
|
|
.pool
|
|
_08063B6C:
|
|
adds r0, r2, 0
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
ldrb r4, [r4]
|
|
str r4, [sp, 0x14]
|
|
str r4, [sp, 0x10]
|
|
_08063B8A:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00808000
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063BC2
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r1, [r2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063BB8
|
|
movs r0, 0
|
|
str r0, [sp, 0x18]
|
|
movs r1, 0x3
|
|
str r1, [sp, 0x1C]
|
|
b _08063BCC
|
|
.pool
|
|
_08063BB8:
|
|
movs r4, 0x3
|
|
str r4, [sp, 0x18]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x1C]
|
|
b _08063BCC
|
|
_08063BC2:
|
|
movs r1, 0
|
|
str r1, [sp, 0x18]
|
|
movs r2, 0x6
|
|
str r2, [sp, 0x1C]
|
|
ldr r2, =gUnknown_02024064
|
|
_08063BCC:
|
|
ldrb r0, [r2]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r4, =gEnemyParty
|
|
str r4, [sp, 0x20]
|
|
cmp r0, 0
|
|
bne _08063BE0
|
|
ldr r0, =gPlayerParty
|
|
str r0, [sp, 0x20]
|
|
_08063BE0:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
_08063BE4:
|
|
movs r2, 0
|
|
str r2, [sp, 0x8]
|
|
movs r4, 0x6
|
|
str r4, [sp, 0xC]
|
|
ldr r7, [sp, 0x18]
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r7, r0
|
|
blt _08063BF6
|
|
b _08063CF2
|
|
_08063BF6:
|
|
lsls r0, r7, 2
|
|
ldr r1, =gBitTable
|
|
adds r0, r1
|
|
mov r8, r0
|
|
mov r10, sp
|
|
_08063C00:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r2, [sp, 0x20]
|
|
adds r4, r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0
|
|
beq _08063CD8
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063CD8
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
mov r1, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063CD8
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r2, [sp, 0x10]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
beq _08063CD8
|
|
ldr r4, [sp, 0x14]
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
beq _08063CD8
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r2, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
beq _08063CD8
|
|
adds r0, r4, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
beq _08063CD8
|
|
ldr r1, =gBaseStats
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r5, [r0, 0x6]
|
|
ldrb r6, [r0, 0x7]
|
|
movs r0, 0xA
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
movs r0, 0x58
|
|
ldr r2, [sp, 0x4]
|
|
adds r4, r2, 0
|
|
muls r4, r0
|
|
ldr r0, =gBattleMons
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
mov r3, sp
|
|
bl sub_8063A08
|
|
adds r4, 0x22
|
|
ldrb r0, [r4]
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
mov r3, sp
|
|
bl sub_8063A08
|
|
ldr r2, [sp, 0x8]
|
|
mov r1, r10
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcs _08063CE6
|
|
mov r2, r10
|
|
ldrb r2, [r2]
|
|
str r2, [sp, 0x8]
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
b _08063CE6
|
|
.pool
|
|
_08063CD8:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
mov r1, r9
|
|
orrs r1, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_08063CE6:
|
|
movs r2, 0x4
|
|
add r8, r2
|
|
adds r7, 0x1
|
|
ldr r4, [sp, 0x1C]
|
|
cmp r7, r4
|
|
blt _08063C00
|
|
_08063CF2:
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0x6
|
|
beq _08063D54
|
|
movs r7, 0
|
|
movs r0, 0x64
|
|
ldr r1, [sp, 0xC]
|
|
adds r5, r1, 0
|
|
muls r5, r0
|
|
_08063D02:
|
|
adds r1, r7, 0
|
|
adds r1, 0xD
|
|
ldr r2, [sp, 0x20]
|
|
adds r0, r2, r5
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _08063D2A
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x4]
|
|
bl move_effectiveness_something
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08063D30
|
|
_08063D2A:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3
|
|
ble _08063D02
|
|
_08063D30:
|
|
cmp r7, 0x4
|
|
beq _08063D36
|
|
b _08063E4E
|
|
_08063D36:
|
|
ldr r4, [sp, 0xC]
|
|
lsls r0, r4, 2
|
|
ldr r1, =gBitTable
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
orrs r2, r0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
b _08063D58
|
|
.pool
|
|
_08063D54:
|
|
movs r4, 0x3F
|
|
mov r9, r4
|
|
_08063D58:
|
|
mov r0, r9
|
|
cmp r0, 0x3F
|
|
beq _08063D60
|
|
b _08063BE4
|
|
_08063D60:
|
|
ldr r0, =gUnknown_02024400
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r0, [r0]
|
|
strb r1, [r0, 0x13]
|
|
ldr r0, =gUnknown_02024474
|
|
movs r2, 0x1
|
|
strb r2, [r0, 0xE]
|
|
ldr r0, =gBattleMoveFlags
|
|
strb r1, [r0]
|
|
ldr r0, =gCritMultiplier
|
|
strb r2, [r0]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r2, 0x6
|
|
str r2, [sp, 0xC]
|
|
ldr r7, [sp, 0x18]
|
|
ldr r4, [sp, 0x1C]
|
|
cmp r7, r4
|
|
bge _08063E4E
|
|
_08063D8A:
|
|
movs r0, 0x64
|
|
adds r6, r7, 0
|
|
muls r6, r0
|
|
ldr r0, [sp, 0x20]
|
|
adds r4, r0, r6
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
adds r1, r7, 0x1
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
beq _08063E46
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063E46
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r2, [sp, 0x10]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
beq _08063E46
|
|
ldr r4, [sp, 0x14]
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
beq _08063E46
|
|
ldr r0, =gUnknown_0202449C
|
|
ldr r1, [r0]
|
|
adds r0, r2, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
beq _08063E46
|
|
adds r0, r4, r1
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
beq _08063E46
|
|
movs r5, 0
|
|
mov r9, r6
|
|
ldr r0, =gBattleMoveDamage
|
|
mov r8, r0
|
|
ldr r6, =gUnknown_02024064
|
|
_08063DEE:
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
ldr r0, [sp, 0x20]
|
|
add r0, r9
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
cmp r4, 0
|
|
beq _08063E2A
|
|
ldr r0, =gBattleMoves
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x1
|
|
beq _08063E2A
|
|
ldrb r0, [r6]
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8046E7C
|
|
ldrb r1, [r6]
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x4]
|
|
bl move_effectiveness_something
|
|
_08063E2A:
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
ldr r4, [sp, 0x8]
|
|
cmp r4, r0
|
|
bge _08063E40
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x8]
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
_08063E40:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08063DEE
|
|
_08063E46:
|
|
mov r7, r10
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r7, r0
|
|
blt _08063D8A
|
|
_08063E4E:
|
|
ldr r0, [sp, 0xC]
|
|
_08063E50:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8063A90
|
|
|
|
thumb_func_start ai_identify_item_effect
|
|
ai_identify_item_effect: @ 8063E84
|
|
push {r4,lr}
|
|
adds r2, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x13
|
|
bne _08063E94
|
|
movs r0, 0x1
|
|
b _08063EDA
|
|
_08063E94:
|
|
ldrb r1, [r2, 0x4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063EA2
|
|
movs r0, 0x2
|
|
b _08063EDA
|
|
_08063EA2:
|
|
ldrb r4, [r2, 0x3]
|
|
movs r3, 0x3F
|
|
adds r0, r3, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08063EB2
|
|
movs r0, 0x3
|
|
b _08063EDA
|
|
_08063EB2:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063EC8
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0
|
|
bne _08063EC8
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
beq _08063ECC
|
|
_08063EC8:
|
|
movs r0, 0x4
|
|
b _08063EDA
|
|
_08063ECC:
|
|
movs r0, 0x80
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08063ED8
|
|
movs r0, 0x6
|
|
b _08063EDA
|
|
_08063ED8:
|
|
movs r0, 0x5
|
|
_08063EDA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ai_identify_item_effect
|
|
|
|
thumb_func_start sub_8063EE0
|
|
sub_8063EE0: @ 8063EE0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
mov r10, r0
|
|
movs r7, 0
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063F12
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08063F12
|
|
b _0806437C
|
|
_08063F12:
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
ldr r5, =gEnemyParty
|
|
cmp r0, 0
|
|
bne _08063F24
|
|
ldr r5, =gPlayerParty
|
|
_08063F24:
|
|
movs r1, 0
|
|
mov r8, r1
|
|
_08063F28:
|
|
movs r0, 0x64
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r4, r5, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063F64
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08063F64
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _08063F64
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_08063F64:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x5
|
|
ble _08063F28
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_08063F72:
|
|
ldr r1, =gUnknown_020244A8
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08063F8E
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x18]
|
|
adds r0, 0x50
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
subs r0, r2
|
|
adds r0, 0x1
|
|
cmp r10, r0
|
|
ble _08063F8E
|
|
b _08064370
|
|
_08063F8E:
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x18]
|
|
mov r2, r8
|
|
lsls r1, r2, 1
|
|
adds r0, 0x48
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
mov r9, r0
|
|
str r1, [sp]
|
|
cmp r0, 0
|
|
bne _08063FA6
|
|
b _08064370
|
|
_08063FA6:
|
|
ldr r1, =gItemEffectInfoPointers
|
|
subs r0, 0xD
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bne _08063FB6
|
|
b _08064370
|
|
_08063FB6:
|
|
mov r0, r9
|
|
cmp r0, 0xAF
|
|
bne _08063FE8
|
|
ldr r0, =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003214
|
|
adds r5, r0, r1
|
|
b _08063FEA
|
|
.pool
|
|
_08063FE8:
|
|
adds r5, r1, 0
|
|
_08063FEA:
|
|
mov r2, r9
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
adds r1, r5, 0
|
|
bl ai_identify_item_effect
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
lsrs r1, 1
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r2, [r3]
|
|
adds r1, r2
|
|
adds r1, 0xC4
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, 0x5
|
|
bls _0806401A
|
|
b _08064324
|
|
_0806401A:
|
|
lsls r0, 2
|
|
ldr r1, =_08064030
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08064030:
|
|
.4byte _08064048
|
|
.4byte _08064074
|
|
.4byte _080640BC
|
|
.4byte _08064214
|
|
.4byte _080642F4
|
|
.4byte _0806437C
|
|
_08064048:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x2C]
|
|
ldrh r0, [r0, 0x28]
|
|
lsrs r1, 2
|
|
cmp r0, r1
|
|
bcc _08064060
|
|
b _08064324
|
|
_08064060:
|
|
cmp r0, 0
|
|
bne _08064066
|
|
b _08064324
|
|
_08064066:
|
|
movs r7, 0x1
|
|
b _08064328
|
|
.pool
|
|
_08064074:
|
|
mov r0, r9
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
bl sub_806CDDC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08064088
|
|
b _08064324
|
|
_08064088:
|
|
ldr r2, =gBattleMons
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x28]
|
|
cmp r2, 0
|
|
bne _0806409C
|
|
b _08064324
|
|
_0806409C:
|
|
ldrh r3, [r1, 0x2C]
|
|
lsrs r0, r3, 2
|
|
cmp r2, r0
|
|
bcc _08064066
|
|
adds r0, r2, 0
|
|
subs r0, r3, r0
|
|
adds r1, r5, r4
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bgt _080640B2
|
|
b _08064324
|
|
_080640B2:
|
|
b _08064066
|
|
.pool
|
|
_080640BC:
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsrs r0, 1
|
|
ldr r2, =gUnknown_0202449C
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldrb r1, [r5, 0x3]
|
|
movs r6, 0x20
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064100
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064100
|
|
lsrs r1, r4, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_08064100:
|
|
ldrb r1, [r5, 0x3]
|
|
movs r6, 0x10
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806413A
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806412A
|
|
movs r0, 0x80
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0806413A
|
|
_0806412A:
|
|
lsrs r1, r4, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_0806413A:
|
|
ldrb r1, [r5, 0x3]
|
|
movs r6, 0x8
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806416C
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806416C
|
|
lsrs r1, r4, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_0806416C:
|
|
ldrb r1, [r5, 0x3]
|
|
movs r6, 0x4
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806419E
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806419E
|
|
lsrs r1, r4, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_0806419E:
|
|
ldrb r1, [r5, 0x3]
|
|
movs r6, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080641D0
|
|
ldr r1, =gBattleMons
|
|
ldrb r4, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
adds r1, 0x4C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080641D0
|
|
lsrs r1, r4, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r6
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_080641D0:
|
|
ldrb r1, [r5, 0x3]
|
|
movs r4, 0x1
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080641DE
|
|
b _08064324
|
|
_080641DE:
|
|
ldr r1, =gBattleMons
|
|
ldrb r3, [r3]
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080641F6
|
|
b _08064324
|
|
_080641F6:
|
|
lsrs r1, r3, 1
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
adds r1, 0xC6
|
|
ldrb r0, [r1]
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
b _08064066
|
|
.pool
|
|
_08064214:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r3, =gUnknown_0202449C
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_020242BC
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x16]
|
|
cmp r0, 0
|
|
beq _08064324
|
|
ldrb r1, [r5]
|
|
movs r6, 0xF
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064254
|
|
lsrs r2, 1
|
|
ldr r0, [r3]
|
|
adds r2, r0
|
|
adds r2, 0xC6
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08064254:
|
|
ldrb r1, [r5, 0x1]
|
|
movs r7, 0xF0
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064272
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08064272:
|
|
ldrb r1, [r5, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806428E
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0806428E:
|
|
ldrb r1, [r5, 0x2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080642AA
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080642AA:
|
|
ldrb r1, [r5, 0x2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080642C6
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080642C6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080642D2
|
|
b _08064066
|
|
_080642D2:
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
ldr r1, [r3]
|
|
adds r0, r1
|
|
adds r0, 0xC6
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _08064066
|
|
.pool
|
|
_080642F4:
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, =gUnknown_020242BC
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x16]
|
|
cmp r0, 0
|
|
beq _08064324
|
|
ldr r0, =gUnknown_02024294
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _08064324
|
|
b _08064066
|
|
_08064324:
|
|
cmp r7, 0
|
|
beq _08064370
|
|
_08064328:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl dp01_build_cmdbuf_x21_a_bb
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsrs r0, 1
|
|
ldr r1, =gUnknown_0202449C
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, 0xC0
|
|
mov r1, r9
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_020244A8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x18]
|
|
adds r0, 0x48
|
|
ldr r2, [sp]
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, r7, 0
|
|
b _0806437E
|
|
.pool
|
|
_08064370:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x3
|
|
bgt _0806437C
|
|
b _08063F72
|
|
_0806437C:
|
|
movs r0, 0
|
|
_0806437E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063EE0
|
|
|
|
thumb_func_start nullsub_28
|
|
nullsub_28: @ 8064390
|
|
bx lr
|
|
thumb_func_end nullsub_28
|
|
|
|
thumb_func_start sub_8064394
|
|
sub_8064394: @ 8064394
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80643B0
|
|
str r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8064394
|
|
|
|
thumb_func_start sub_80643B0
|
|
sub_80643B0: @ 80643B0
|
|
push {lr}
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080643FC
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r3, 9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x38
|
|
bhi _080643F8
|
|
ldr r0, =gUnknown_0831C7B4
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _080643FC
|
|
.pool
|
|
_080643F8:
|
|
bl sub_8065068
|
|
_080643FC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80643B0
|
|
|
|
thumb_func_start sub_8064400
|
|
sub_8064400: @ 8064400
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08064424
|
|
bl sub_8065068
|
|
_08064424:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064400
|
|
|
|
thumb_func_start sub_8064438
|
|
sub_8064438: @ 8064438
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _0806445C
|
|
bl sub_8065068
|
|
_0806445C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064438
|
|
|
|
thumb_func_start sub_8064470
|
|
sub_8064470: @ 8064470
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r6, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r2, r0, 2
|
|
adds r0, r5, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _080644C2
|
|
adds r0, r2, r5
|
|
ldrh r0, [r0, 0x6]
|
|
bl sub_805DFE4
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl RemoveObjectAndFreeTiles
|
|
bl sub_8065068
|
|
_080644C2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064470
|
|
|
|
thumb_func_start sub_80644D8
|
|
sub_80644D8: @ 80644D8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r1, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
ldr r2, [r1, 0x4]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x9]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _08064510
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x9]
|
|
bl sub_8065068
|
|
_08064510:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80644D8
|
|
|
|
thumb_func_start sub_8064520
|
|
sub_8064520: @ 8064520
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r4, 0
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806454C
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08064584
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064584
|
|
_0806454C:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_03005D70
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
adds r7, r3, 0
|
|
cmp r1, r0
|
|
bne _080645C2
|
|
b _080645CA
|
|
.pool
|
|
_08064584:
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r6, =gUnknown_03005D70
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r4, [r2]
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r3, 0
|
|
adds r5, 0x1C
|
|
adds r0, r5
|
|
ldr r3, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
adds r7, r2, 0
|
|
cmp r3, r0
|
|
bne _080645C0
|
|
movs r0, 0x2
|
|
eors r4, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _080645C0
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_080645C0:
|
|
movs r4, 0x1
|
|
_080645C2:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080645CA
|
|
b _08064714
|
|
_080645CA:
|
|
cmp r4, 0
|
|
bne _080645DE
|
|
ldrb r1, [r7]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl b_side_obj__get_some_boolean
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806469C
|
|
_080645DE:
|
|
ldr r1, =gUnknown_020244D0
|
|
mov r12, r1
|
|
ldr r0, [r1]
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r2, [r7]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4, 0x1]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064600
|
|
b _08064714
|
|
_08064600:
|
|
movs r6, 0x2
|
|
adds r1, r6, 0
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064714
|
|
ldrb r1, [r4]
|
|
movs r3, 0x7F
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
ldrb r2, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
mov r0, r12
|
|
ldr r2, [r0]
|
|
ldrb r0, [r7]
|
|
adds r1, r6, 0
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
mov r1, r12
|
|
ldr r2, [r1]
|
|
ldrb r0, [r7]
|
|
adds r1, r6, 0
|
|
eors r1, r0
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
ands r4, r1
|
|
strb r4, [r0, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
b _080646F2
|
|
.pool
|
|
_0806469C:
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldrb r1, [r7]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064714
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldrb r0, [r7]
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080646F2
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
_080646F2:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80644D8
|
|
str r1, [r0]
|
|
_08064714:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064520
|
|
|
|
thumb_func_start sub_8064734
|
|
sub_8064734: @ 8064734
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r5, =gUnknown_020244D0
|
|
ldr r0, [r5]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r2, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r6, 0xC4
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064776
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_08064776:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080647B4
|
|
ldr r2, [r5]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
adds r3, r0, 0
|
|
eors r3, r1
|
|
ldr r1, [r2, 0x4]
|
|
lsls r2, r3, 1
|
|
adds r0, r2, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080647B4
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl sub_8172EF0
|
|
_080647B4:
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r5, [r2]
|
|
ldr r4, [r0, 0x4]
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r6, r0, r4
|
|
ldrb r1, [r6]
|
|
movs r0, 0x8
|
|
mov r12, r0
|
|
ands r0, r1
|
|
mov r8, r3
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _08064898
|
|
movs r7, 0x2
|
|
adds r1, r7, 0
|
|
eors r1, r5
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064898
|
|
ldrb r1, [r6, 0x1]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806487A
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806484A
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806484A
|
|
ldr r4, =gUnknown_03005D70
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
adds r1, r7, 0
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
bl sub_8076918
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
eors r0, r7
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_0806484A:
|
|
ldr r5, =gUnknown_03005D70
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r4]
|
|
bl sub_8076918
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
_0806487A:
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
mov r8, r4
|
|
mov r9, r3
|
|
_08064898:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
mov r1, r9
|
|
ldrb r2, [r1]
|
|
ldr r3, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0x80
|
|
bne _0806495A
|
|
movs r1, 0x2
|
|
eors r1, r2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806495A
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806495A
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
mov r1, r9
|
|
ldrb r2, [r1]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806493C
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0x42
|
|
bne _08064930
|
|
adds r0, r2, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806493C
|
|
ldr r0, =gMPlay_BGM
|
|
bl m4aMPlayContinue
|
|
b _0806493C
|
|
.pool
|
|
_08064930:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_0806493C:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
_0806495A:
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bne _08064962
|
|
b _08064AC0
|
|
_08064962:
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r4, r0
|
|
beq _08064982
|
|
b _08064AC0
|
|
_08064982:
|
|
ldr r0, =gUnknown_020241E4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
beq _08064998
|
|
b _08064AC0
|
|
_08064998:
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080649E2
|
|
adds r0, r3, 0
|
|
bl battle_get_per_side_status
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080649E2
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x9]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08064AC0
|
|
ldr r0, [r3]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x9]
|
|
_080649E2:
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08064A3A
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064A3A
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r5]
|
|
eors r4, r0
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
_08064A3A:
|
|
ldr r1, =gUnknown_03005D7C
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r5, [r4]
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_805EE54
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r1, [r2, 0x9]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064520
|
|
str r1, [r0]
|
|
_08064AC0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064734
|
|
|
|
thumb_func_start sub_8064B04
|
|
sub_8064B04: @ 8064B04
|
|
push {r4-r7,lr}
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r3, [r7]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r2, r0, 2
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08064BB6
|
|
adds r0, r2, r4
|
|
movs r1, 0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _08064BB6
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r4, r3, 1
|
|
adds r0, r4, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldrb r5, [r2]
|
|
movs r0, 0x80
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08064B7C
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r4, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl sub_8172EF0
|
|
b _08064BB6
|
|
.pool
|
|
_08064B7C:
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064BB6
|
|
movs r0, 0x7F
|
|
ands r0, r5
|
|
strb r0, [r2]
|
|
ldr r0, [r6]
|
|
ldrb r2, [r7]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
bl sub_8065068
|
|
_08064BB6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064B04
|
|
|
|
thumb_func_start sub_8064BC0
|
|
sub_8064BC0: @ 8064BC0
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
ldr r5, =gUnknown_03005D70
|
|
adds r1, r0, r5
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8074AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
lsls r4, 16
|
|
asrs r1, r4, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08064C08
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r2, 0
|
|
bl heathbar_draw_hp
|
|
b _08064C0C
|
|
.pool
|
|
_08064C08:
|
|
bl sub_8065068
|
|
_08064C0C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064BC0
|
|
|
|
thumb_func_start sub_8064C14
|
|
sub_8064C14: @ 8064C14
|
|
push {lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r1, =gUnknown_02024064
|
|
ldrb r3, [r1]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08064C42
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl sub_8065068
|
|
_08064C42:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064C14
|
|
|
|
thumb_func_start sub_8064C58
|
|
sub_8064C58: @ 8064C58
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064CB2
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r6]
|
|
bl sub_805EEE0
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl sub_8065068
|
|
_08064CB2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064C58
|
|
|
|
thumb_func_start sub_8064CCC
|
|
sub_8064CCC: @ 8064CCC
|
|
push {lr}
|
|
movs r0, 0
|
|
bl IsTextPrinterActive
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08064CDE
|
|
bl sub_8065068
|
|
_08064CDE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064CCC
|
|
|
|
thumb_func_start sub_8064CE4
|
|
sub_8064CE4: @ 8064CE4
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r2
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x20
|
|
bne _08064D30
|
|
movs r3, 0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
subs r0, 0x5
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =gUnknown_020244B9
|
|
strb r3, [r0]
|
|
bl sub_8065068
|
|
b _08064D5A
|
|
.pool
|
|
_08064D30:
|
|
ldrh r0, [r4, 0x30]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064D54
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_08064D54:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_08064D5A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064CE4
|
|
|
|
thumb_func_start sub_8064D60
|
|
sub_8064D60: @ 8064D60
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D70
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r3, [r4]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08064DAC
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064DA0
|
|
adds r0, r3, 0
|
|
adds r1, r3, 0
|
|
adds r2, r3, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
_08064DA0:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_8064DD0
|
|
str r0, [r1]
|
|
_08064DAC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064D60
|
|
|
|
thumb_func_start sub_8064DD0
|
|
sub_8064DD0: @ 8064DD0
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064E2A
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064E2A
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
beq _08064E1A
|
|
ldr r0, =nullsub_18
|
|
cmp r1, r0
|
|
bne _08064E2A
|
|
_08064E1A:
|
|
ldr r0, =gMPlay_BGM
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
bl sub_8065068
|
|
_08064E2A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064DD0
|
|
|
|
thumb_func_start sub_8064E50
|
|
sub_8064E50: @ 8064E50
|
|
push {r4-r7,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08064F0C
|
|
ldr r7, =gUnknown_02020630
|
|
ldr r6, =gUnknown_020241E4
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r7, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08064F0C
|
|
ldrb r1, [r3]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, [r4]
|
|
ldrb r2, [r5]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =0x000027f9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
movs r1, 0
|
|
bl StartObjectImageAnim
|
|
ldr r4, =gUnknown_03005D70
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r0, [r5]
|
|
bl sub_8076918
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80729D0
|
|
ldrb r0, [r5]
|
|
bl sub_805E408
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064D60
|
|
str r1, [r0]
|
|
_08064F0C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064E50
|
|
|
|
thumb_func_start sub_8064F40
|
|
sub_8064F40: @ 8064F40
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r3, r2, 1
|
|
adds r0, r3, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x88
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064F72
|
|
ldr r0, =gUnknown_0202406E
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
adds r0, r2, 0
|
|
bl sub_8172EF0
|
|
_08064F72:
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r0, =gUnknown_03005D7C
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r3, r0, 2
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08064FDC
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08064FDC
|
|
adds r0, r3, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r4, [r5]
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064E50
|
|
str r1, [r0]
|
|
_08064FDC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8064F40
|
|
|
|
thumb_func_start sub_8065008
|
|
sub_8065008: @ 8065008
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806502A
|
|
bl sub_8065068
|
|
_0806502A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8065008
|
|
|
|
thumb_func_start sub_8065038
|
|
sub_8065038: @ 8065038
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806505A
|
|
bl sub_8065068
|
|
_0806505A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8065038
|
|
|
|
thumb_func_start sub_8065068
|
|
sub_8065068: @ 8065068
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80643B0
|
|
str r1, [r0]
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080650BC
|
|
bl link_get_multiplayer_id
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
mov r2, sp
|
|
bl dp01_prepare_buffer_wireless_probably
|
|
ldr r1, =gUnknown_02023064
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
strb r1, [r0]
|
|
b _080650CE
|
|
.pool
|
|
_080650BC:
|
|
ldr r2, =gUnknown_02024068
|
|
ldr r1, =gBitTable
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_080650CE:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8065068
|
|
|
|
thumb_func_start dp01t_00_2_getattr
|
|
dp01t_00_2_getattr: @ 80650E0
|
|
push {r4-r6,lr}
|
|
sub sp, 0x100
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08065118
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl dp01_getattr_by_ch1_for_opponent_pokemon
|
|
adds r6, r0, 0
|
|
b _0806513A
|
|
.pool
|
|
_08065118:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_0806511C:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08065132
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl dp01_getattr_by_ch1_for_opponent_pokemon
|
|
adds r6, r0
|
|
_08065132:
|
|
lsrs r4, 1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0806511C
|
|
_0806513A:
|
|
lsls r1, r6, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x1
|
|
mov r2, sp
|
|
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
|
|
bl sub_8065068
|
|
add sp, 0x100
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end dp01t_00_2_getattr
|
|
|
|
thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon
|
|
dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x90
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3B
|
|
bls _0806517E
|
|
bl _080658EA
|
|
_0806517E:
|
|
lsls r0, 2
|
|
ldr r1, =_08065194
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08065194:
|
|
.4byte _08065284
|
|
.4byte _080654A8
|
|
.4byte _080654B8
|
|
.4byte _080654C8
|
|
.4byte _08065530
|
|
.4byte _08065530
|
|
.4byte _08065530
|
|
.4byte _08065530
|
|
.4byte _0806554C
|
|
.4byte _08065588
|
|
.4byte _08065588
|
|
.4byte _08065588
|
|
.4byte _08065588
|
|
.4byte _080658EA
|
|
.4byte _080658EA
|
|
.4byte _080658EA
|
|
.4byte _080658EA
|
|
.4byte _080655A4
|
|
.4byte _080655B4
|
|
.4byte _080655E4
|
|
.4byte _080655F4
|
|
.4byte _08065604
|
|
.4byte _08065614
|
|
.4byte _08065624
|
|
.4byte _08065634
|
|
.4byte _08065644
|
|
.4byte _08065654
|
|
.4byte _08065664
|
|
.4byte _08065674
|
|
.4byte _08065684
|
|
.4byte _08065694
|
|
.4byte _080656A4
|
|
.4byte _080656F4
|
|
.4byte _08065704
|
|
.4byte _08065714
|
|
.4byte _08065724
|
|
.4byte _08065734
|
|
.4byte _08065744
|
|
.4byte _08065754
|
|
.4byte _08065764
|
|
.4byte _08065774
|
|
.4byte _080657A8
|
|
.4byte _080657B8
|
|
.4byte _080657C8
|
|
.4byte _080657D8
|
|
.4byte _080657E8
|
|
.4byte _080657F8
|
|
.4byte _08065808
|
|
.4byte _08065818
|
|
.4byte _08065838
|
|
.4byte _08065848
|
|
.4byte _08065858
|
|
.4byte _08065868
|
|
.4byte _08065878
|
|
.4byte _08065888
|
|
.4byte _08065898
|
|
.4byte _080658A8
|
|
.4byte _080658B8
|
|
.4byte _080658C8
|
|
.4byte _080658D8
|
|
_08065284:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2E]
|
|
movs r6, 0
|
|
add r0, sp, 0x24
|
|
mov r9, r0
|
|
movs r1, 0x3B
|
|
add r1, sp
|
|
mov r10, r1
|
|
mov r2, sp
|
|
adds r2, 0x2B
|
|
str r2, [sp, 0x80]
|
|
mov r0, sp
|
|
adds r0, 0x2A
|
|
str r0, [sp, 0x7C]
|
|
mov r1, sp
|
|
adds r1, 0x68
|
|
str r1, [sp, 0x8C]
|
|
adds r2, 0x5
|
|
str r2, [sp, 0x84]
|
|
adds r0, 0x12
|
|
str r0, [sp, 0x88]
|
|
mov r8, r4
|
|
add r4, sp, 0xC
|
|
_080652D0:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r0, r8
|
|
bl GetMonData
|
|
mov r2, r9
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080652D0
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl GetMonData
|
|
ldr r2, [sp, 0x80]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
str r0, [sp, 0x44]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r5, 0x1F
|
|
ands r0, r5
|
|
ldrb r2, [r3, 0x14]
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r6, 0x1F
|
|
ands r0, r6
|
|
lsls r0, 5
|
|
ldrh r2, [r3, 0x14]
|
|
ldr r1, =0xfffffc1f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
ldrb r2, [r3, 0x15]
|
|
movs r1, 0x7D
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x15]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 15
|
|
ldr r0, [sp, 0x14]
|
|
ldr r2, =0xfff07fff
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x14]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r6
|
|
lsls r0, 4
|
|
ldrh r2, [r3, 0x16]
|
|
ldr r1, =0xfffffe0f
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x16]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
mov r3, sp
|
|
ands r0, r5
|
|
lsls r0, 1
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
str r0, [sp, 0x48]
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
str r0, [sp, 0x4C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
ldr r1, [sp, 0x7C]
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x28]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2C]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x6]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, 0xA]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
mov r3, sp
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 6
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2E
|
|
bl GetMonData
|
|
mov r3, sp
|
|
lsls r0, 7
|
|
ldrb r2, [r3, 0x17]
|
|
movs r1, 0x7F
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x17]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
str r0, [sp, 0x54]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
ldr r2, [sp, 0x8C]
|
|
bl GetMonData
|
|
ldr r0, [sp, 0x84]
|
|
ldr r1, [sp, 0x8C]
|
|
bl StringCopy10
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
ldr r2, [sp, 0x88]
|
|
bl GetMonData
|
|
mov r2, sp
|
|
movs r6, 0
|
|
_08065488:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0x57
|
|
bls _08065488
|
|
b _080658EA
|
|
.pool
|
|
_080654A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
b _08065822
|
|
.pool
|
|
_080654B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
b _08065822
|
|
.pool
|
|
_080654C8:
|
|
movs r6, 0
|
|
add r2, sp, 0x58
|
|
mov r9, r2
|
|
add r0, sp, 0x60
|
|
mov r10, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r1, r0
|
|
mov r8, r9
|
|
_080654DE:
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
bl GetMonData
|
|
mov r2, r10
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080654DE
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
mov r1, r9
|
|
strb r0, [r1, 0xC]
|
|
mov r2, r9
|
|
movs r6, 0
|
|
_0806551C:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
bls _0806551C
|
|
b _080658EA
|
|
.pool
|
|
_08065530:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _08065822
|
|
.pool
|
|
_0806554C:
|
|
movs r6, 0
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r2, =gEnemyParty
|
|
mov r8, r2
|
|
_08065558:
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r2, r8
|
|
adds r0, r4, r2
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08065558
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, 0x1
|
|
b _080658EA
|
|
.pool
|
|
_08065588:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, 9
|
|
adds r2, 0x1
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
b _080658E2
|
|
.pool
|
|
_080655A4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
b _080655BE
|
|
.pool
|
|
_080655B4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x19
|
|
_080655BE:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
movs r6, 0x3
|
|
b _080658EA
|
|
.pool
|
|
_080655E4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1A
|
|
b _080658E2
|
|
.pool
|
|
_080655F4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1B
|
|
b _080658E2
|
|
.pool
|
|
_08065604:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1C
|
|
b _080658E2
|
|
.pool
|
|
_08065614:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1D
|
|
b _080658E2
|
|
.pool
|
|
_08065624:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1E
|
|
b _080658E2
|
|
.pool
|
|
_08065634:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x1F
|
|
b _080658E2
|
|
.pool
|
|
_08065644:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
b _080658E2
|
|
.pool
|
|
_08065654:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x22
|
|
b _080658E2
|
|
.pool
|
|
_08065664:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x23
|
|
b _080658E2
|
|
.pool
|
|
_08065674:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x24
|
|
b _080658E2
|
|
.pool
|
|
_08065684:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x25
|
|
b _080658E2
|
|
.pool
|
|
_08065694:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
b _080658E2
|
|
.pool
|
|
_080656A4:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl GetMonData
|
|
strb r0, [r7, 0x1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl GetMonData
|
|
strb r0, [r7, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl GetMonData
|
|
strb r0, [r7, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl GetMonData
|
|
strb r0, [r7, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
bl GetMonData
|
|
strb r0, [r7, 0x5]
|
|
movs r6, 0x6
|
|
b _080658EA
|
|
.pool
|
|
_080656F4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x27
|
|
b _080658E2
|
|
.pool
|
|
_08065704:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x28
|
|
b _080658E2
|
|
.pool
|
|
_08065714:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x29
|
|
b _080658E2
|
|
.pool
|
|
_08065724:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2A
|
|
b _080658E2
|
|
.pool
|
|
_08065734:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2B
|
|
b _080658E2
|
|
.pool
|
|
_08065744:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
b _080658E2
|
|
.pool
|
|
_08065754:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0
|
|
b _0806577E
|
|
.pool
|
|
_08065764:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x9
|
|
b _08065822
|
|
.pool
|
|
_08065774:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
_0806577E:
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
strb r1, [r7]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
strb r0, [r7, 0x2]
|
|
lsrs r0, r1, 24
|
|
strb r0, [r7, 0x3]
|
|
movs r6, 0x4
|
|
b _080658EA
|
|
.pool
|
|
_080657A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
b _080658E2
|
|
.pool
|
|
_080657B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x39
|
|
b _08065822
|
|
.pool
|
|
_080657C8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
b _08065822
|
|
.pool
|
|
_080657D8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3B
|
|
b _08065822
|
|
.pool
|
|
_080657E8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3C
|
|
b _08065822
|
|
.pool
|
|
_080657F8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3D
|
|
b _08065822
|
|
.pool
|
|
_08065808:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3E
|
|
b _08065822
|
|
.pool
|
|
_08065818:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3F
|
|
_08065822:
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
strb r0, [r7]
|
|
lsrs r0, 8
|
|
strb r0, [r7, 0x1]
|
|
movs r6, 0x2
|
|
b _080658EA
|
|
.pool
|
|
_08065838:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x16
|
|
b _080658E2
|
|
.pool
|
|
_08065848:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x17
|
|
b _080658E2
|
|
.pool
|
|
_08065858:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x18
|
|
b _080658E2
|
|
.pool
|
|
_08065868:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x21
|
|
b _080658E2
|
|
.pool
|
|
_08065878:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2F
|
|
b _080658E2
|
|
.pool
|
|
_08065888:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x30
|
|
b _080658E2
|
|
.pool
|
|
_08065898:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x32
|
|
b _080658E2
|
|
.pool
|
|
_080658A8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x33
|
|
b _080658E2
|
|
.pool
|
|
_080658B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x34
|
|
b _080658E2
|
|
.pool
|
|
_080658C8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x35
|
|
b _080658E2
|
|
.pool
|
|
_080658D8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x36
|
|
_080658E2:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, 0x1
|
|
_080658EA:
|
|
adds r0, r6, 0
|
|
add sp, 0x90
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon
|
|
|
|
thumb_func_start sub_8065900
|
|
sub_8065900: @ 8065900
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8065900
|
|
|
|
thumb_func_start sub_806590C
|
|
sub_806590C: @ 806590C
|
|
push {r4,r5,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0806593C
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl sub_8065964
|
|
b _0806595A
|
|
.pool
|
|
_0806593C:
|
|
ldrb r4, [r1]
|
|
movs r5, 0
|
|
_08065940:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0806594E
|
|
adds r0, r5, 0
|
|
bl sub_8065964
|
|
_0806594E:
|
|
lsrs r4, 1
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _08065940
|
|
_0806595A:
|
|
bl sub_8065068
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806590C
|
|
|
|
thumb_func_start sub_8065964
|
|
sub_8065964: @ 8065964
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r0, [r3]
|
|
lsls r0, 9
|
|
ldr r2, =gUnknown_02023067
|
|
adds r4, r0, r2
|
|
adds r7, r4, 0
|
|
subs r1, r2, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r6, r3, 0
|
|
adds r3, r2, 0
|
|
cmp r0, 0x3B
|
|
bls _08065992
|
|
bl _08066270
|
|
_08065992:
|
|
lsls r0, 2
|
|
ldr r1, =_080659A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080659A8:
|
|
.4byte _08065A98
|
|
.4byte _08065C30
|
|
.4byte _08065C4C
|
|
.4byte _08065C68
|
|
.4byte _08065CBC
|
|
.4byte _08065CBC
|
|
.4byte _08065CBC
|
|
.4byte _08065CBC
|
|
.4byte _08065CDC
|
|
.4byte _08065D44
|
|
.4byte _08065D44
|
|
.4byte _08065D44
|
|
.4byte _08065D44
|
|
.4byte _08066270
|
|
.4byte _08066270
|
|
.4byte _08066270
|
|
.4byte _08066270
|
|
.4byte _08065D6C
|
|
.4byte _08065D88
|
|
.4byte _08065DA4
|
|
.4byte _08065DC0
|
|
.4byte _08065DDC
|
|
.4byte _08065DF8
|
|
.4byte _08065E14
|
|
.4byte _08065E30
|
|
.4byte _08065E4C
|
|
.4byte _08065E68
|
|
.4byte _08065E84
|
|
.4byte _08065EA0
|
|
.4byte _08065EBC
|
|
.4byte _08065ED8
|
|
.4byte _08065EF4
|
|
.4byte _08065F68
|
|
.4byte _08065F84
|
|
.4byte _08065FA0
|
|
.4byte _08065FBC
|
|
.4byte _08065FD8
|
|
.4byte _08065FF4
|
|
.4byte _08066010
|
|
.4byte _0806602C
|
|
.4byte _08066048
|
|
.4byte _08066064
|
|
.4byte _08066080
|
|
.4byte _0806609C
|
|
.4byte _080660B8
|
|
.4byte _080660D4
|
|
.4byte _080660F0
|
|
.4byte _0806610C
|
|
.4byte _08066128
|
|
.4byte _08066144
|
|
.4byte _08066160
|
|
.4byte _0806617C
|
|
.4byte _08066198
|
|
.4byte _080661B4
|
|
.4byte _080661D0
|
|
.4byte _080661EC
|
|
.4byte _08066208
|
|
.4byte _08066224
|
|
.4byte _08066240
|
|
.4byte _0806625C
|
|
_08065A98:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
adds r2, r7, 0
|
|
bl pokemon_setattr
|
|
adds r2, r7, 0
|
|
adds r2, 0x2E
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x3B
|
|
adds r0, r7
|
|
mov r10, r0
|
|
adds r0, r7, 0
|
|
adds r0, 0x2B
|
|
str r0, [sp, 0x20]
|
|
adds r0, 0x19
|
|
str r0, [sp, 0x28]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x2C]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x30]
|
|
subs r0, 0x22
|
|
str r0, [sp, 0x1C]
|
|
subs r0, 0x2
|
|
str r0, [sp, 0x18]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x24]
|
|
adds r0, r7, 0x2
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0x4
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0x6
|
|
str r0, [sp, 0xC]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x10]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x14]
|
|
mov r9, r4
|
|
adds r6, r7, 0
|
|
adds r6, 0x24
|
|
adds r4, r7, 0
|
|
adds r4, 0xC
|
|
_08065AFE:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
mov r0, r9
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
mov r0, r9
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r6, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _08065AFE
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
mov r2, r10
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
ldr r2, [sp, 0x20]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
ldr r2, [sp, 0x28]
|
|
bl pokemon_setattr
|
|
ldrb r0, [r7, 0x14]
|
|
lsls r0, 27
|
|
lsrs r0, 27
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r7, 0x14]
|
|
lsls r0, 22
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r7, 0x15]
|
|
lsls r0, 25
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldr r0, [r7, 0x14]
|
|
lsls r0, 12
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrh r0, [r7, 0x16]
|
|
lsls r0, 23
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
mov r1, sp
|
|
ldrb r0, [r7, 0x17]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2C
|
|
mov r2, sp
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
ldr r2, [sp, 0x2C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x37
|
|
ldr r2, [sp, 0x30]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
ldr r2, [sp, 0x1C]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
ldr r2, [sp, 0x18]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
ldr r2, [sp, 0x24]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
ldr r2, [sp, 0x4]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
ldr r2, [sp, 0x8]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
ldr r2, [sp, 0xC]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
ldr r2, [sp, 0x10]
|
|
bl pokemon_setattr
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
ldr r2, [sp, 0x14]
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065C30:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0xB
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065C4C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0xC
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065C68:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0xC
|
|
adds r0, r4
|
|
mov r9, r0
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r7, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x8
|
|
_08065C80:
|
|
mov r1, r8
|
|
adds r1, 0xD
|
|
adds r0, r7, 0
|
|
adds r2, r4, 0
|
|
bl pokemon_setattr
|
|
mov r1, r8
|
|
adds r1, 0x11
|
|
adds r0, r7, 0
|
|
adds r2, r6, 0
|
|
bl pokemon_setattr
|
|
adds r6, 0x1
|
|
adds r4, 0x2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, 0x3
|
|
ble _08065C80
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x15
|
|
mov r2, r9
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065CBC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x9
|
|
b _08065D5A
|
|
.pool
|
|
_08065CDC:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0x11
|
|
str r3, [sp, 0x34]
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x12
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x13
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065D44:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldr r3, =gUnknown_02023064
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, 0x8
|
|
_08065D5A:
|
|
adds r3, 0x3
|
|
adds r2, r3
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065D6C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065D88:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x19
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065DA4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1A
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065DC0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1B
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065DDC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1C
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065DF8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1D
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065E14:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1E
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065E30:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x1F
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065E4C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x20
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065E68:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x22
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065E84:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x23
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065EA0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x24
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065EBC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x25
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065ED8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x26
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065EF4:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0x27
|
|
str r3, [sp, 0x34]
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x2
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x3
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
ldr r3, [sp, 0x34]
|
|
adds r0, r3, 0x5
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
b _08066002
|
|
.pool
|
|
_08065F68:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x27
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065F84:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x28
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065FA0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x29
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065FBC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2A
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065FD8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2B
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08065FF4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
_08066002:
|
|
movs r1, 0x2C
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066010:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_0806602C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x9
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066048:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x37
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066064:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x38
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066080:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x39
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_0806609C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3A
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080660B8:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3B
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080660D4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3C
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080660F0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3D
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_0806610C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3E
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066128:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x3F
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066144:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x16
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066160:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x17
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_0806617C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x18
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066198:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x21
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080661B4:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x2F
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080661D0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x30
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_080661EC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x32
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066208:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x33
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066224:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x34
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_08066240:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x35
|
|
bl pokemon_setattr
|
|
b _08066270
|
|
.pool
|
|
_0806625C:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
ldrb r2, [r6]
|
|
lsls r2, 9
|
|
adds r2, r3
|
|
movs r1, 0x36
|
|
bl pokemon_setattr
|
|
_08066270:
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8065964
|
|
|
|
thumb_func_start sub_8066284
|
|
sub_8066284: @ 8066284
|
|
push {r4-r7,lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
adds r3, r1, 0
|
|
muls r3, r0
|
|
ldr r4, =gUnknown_02023064
|
|
lsls r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
adds r5, r3, r0
|
|
movs r3, 0
|
|
adds r0, r4, 0x2
|
|
adds r2, r0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcs _080662DC
|
|
adds r6, r4, 0
|
|
adds r2, r7, 0
|
|
adds r4, r0, 0
|
|
_080662BA:
|
|
adds r1, r5, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, 0x3
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrb r0, [r2]
|
|
lsls r0, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcc _080662BA
|
|
_080662DC:
|
|
bl sub_8065068
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066284
|
|
|
|
thumb_func_start sub_80662F8
|
|
sub_80662F8: @ 80662F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r7, =gUnknown_0202406E
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
movs r1, 0x64
|
|
mov r10, r1
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
ldr r1, =gEnemyParty
|
|
mov r9, r1
|
|
add r0, r9
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
mov r2, r10
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
add r0, r9
|
|
bl sub_805DC0C
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_806A068
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r8, r0
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_80A5C6C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldrb r0, [r6]
|
|
bl sub_80A6138
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r0, [r6]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
ldrb r1, [r6]
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r5, =gUnknown_02020630
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =0x0000ff10
|
|
strh r1, [r0, 0x24]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x2E]
|
|
ldrb r3, [r6]
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r3, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r2, [r6]
|
|
adds r4, r2, r4
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
bl StartObjectImageAnim
|
|
ldrb r4, [r6]
|
|
lsls r0, r4, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r9
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_805EE54
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064B04
|
|
str r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80662F8
|
|
|
|
thumb_func_start sub_8066448
|
|
sub_8066448: @ 8066448
|
|
push {r4,lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 1
|
|
adds r2, r1
|
|
ldr r3, =gUnknown_02023064
|
|
lsls r0, 9
|
|
adds r1, r3, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 9
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
bl sub_8066494
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064F40
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066448
|
|
|
|
thumb_func_start sub_8066494
|
|
sub_8066494: @ 8066494
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_805EF84
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r4, r6, 1
|
|
adds r4, r0
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, r6, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r4]
|
|
ldrh r0, [r4]
|
|
movs r1, 0x64
|
|
mov r9, r1
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r5, =gEnemyParty
|
|
adds r0, r5
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, =sub_805D714
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, =gUnknown_03005D7C
|
|
mov r10, r1
|
|
add r10, r6
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
ldrh r0, [r4]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, r5
|
|
adds r1, r6, 0
|
|
bl sub_805DC0C
|
|
adds r0, r6, 0
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl sub_806A068
|
|
ldr r0, =gUnknown_0202499C
|
|
mov r9, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_80A5C6C
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A6138
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r4, =gUnknown_020241E4
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, =gUnknown_02020630
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r4]
|
|
strh r1, [r0, 0x30]
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x32]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r6, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r3, r6, 4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020244E4
|
|
adds r6, r1
|
|
ldrb r1, [r6]
|
|
bl StartObjectImageAnim
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =DummyObjectCallback
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xFE
|
|
bl sub_80753E8
|
|
mov r1, r10
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x2E]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066494
|
|
|
|
thumb_func_start sub_8066624
|
|
sub_8066624: @ 8066624
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
bne _0806666C
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80666BC
|
|
str r1, [r0]
|
|
b _080666A8
|
|
.pool
|
|
_0806666C:
|
|
ldr r5, =gUnknown_020241E4
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl obj_free_rotscale_entry
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl RemoveObjectAndFreeTiles
|
|
ldrb r0, [r6]
|
|
bl sub_805EEE0
|
|
ldr r1, =gUnknown_03005D70
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8072984
|
|
bl sub_8065068
|
|
_080666A8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066624
|
|
|
|
thumb_func_start sub_80666BC
|
|
sub_80666BC: @ 80666BC
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r1, [r4, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
beq _080666E4
|
|
cmp r0, 0x1
|
|
beq _08066712
|
|
b _0806673A
|
|
.pool
|
|
_080666E4:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080666FE
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_080666FE:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _0806673A
|
|
_08066712:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0806673A
|
|
strb r0, [r3, 0x4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x2
|
|
bl move_anim_start_t4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064C58
|
|
str r1, [r0]
|
|
_0806673A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80666BC
|
|
|
|
thumb_func_start sub_8066748
|
|
sub_8066748: @ 8066748
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r4, =gBattleTypeFlags
|
|
ldr r0, [r4]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08066840
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
movs r1, 0x2
|
|
ands r1, r0
|
|
movs r7, 0xC8
|
|
cmp r1, 0
|
|
beq _08066770
|
|
movs r7, 0x98
|
|
_08066770:
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080667A8
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
bne _08066794
|
|
ldr r0, =gUnknown_02038BCA
|
|
b _08066796
|
|
.pool
|
|
_08066794:
|
|
ldr r0, =gUnknown_02038BCC
|
|
_08066796:
|
|
ldrh r0, [r0]
|
|
bl sub_8162AA0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0806694C
|
|
.pool
|
|
_080667A8:
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
ldr r6, =gUnknown_020229E8
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
movs r4, 0xFF
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _080667D8
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x5
|
|
bne _080667F4
|
|
_080667D8:
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0
|
|
bne _080668AA
|
|
b _080668BC
|
|
.pool
|
|
_080667F4:
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _08066822
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, 0x1
|
|
bne _08066838
|
|
_08066822:
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0
|
|
bne _08066916
|
|
b _08066924
|
|
_08066838:
|
|
ldrb r0, [r5]
|
|
bl sub_806D864
|
|
b _0806693A
|
|
_08066840:
|
|
movs r7, 0xB0
|
|
ldr r0, =gUnknown_02038BCA
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
bne _08066858
|
|
bl sub_8068B48
|
|
b _08066948
|
|
.pool
|
|
_08066858:
|
|
bl link_get_multiplayer_id
|
|
ldr r6, =gUnknown_020229E8
|
|
movs r5, 0x1
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
movs r4, 0xFF
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _08066892
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x5
|
|
bne _080668C8
|
|
_08066892:
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0
|
|
beq _080668BC
|
|
_080668AA:
|
|
ldr r0, =gTrainerPicIndices
|
|
adds r0, 0x4F
|
|
ldrb r0, [r0]
|
|
b _0806694C
|
|
.pool
|
|
_080668BC:
|
|
ldr r0, =gTrainerPicIndices
|
|
adds r0, 0x4E
|
|
ldrb r0, [r0]
|
|
b _0806694C
|
|
.pool
|
|
_080668C8:
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _080668FE
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, 0x1
|
|
bne _08066930
|
|
_080668FE:
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x13]
|
|
cmp r0, 0
|
|
beq _08066924
|
|
_08066916:
|
|
ldr r0, =gTrainerPicIndices
|
|
adds r0, 0x51
|
|
ldrb r0, [r0]
|
|
b _0806694C
|
|
.pool
|
|
_08066924:
|
|
ldr r0, =gTrainerPicIndices
|
|
adds r0, 0x50
|
|
ldrb r0, [r0]
|
|
b _0806694C
|
|
.pool
|
|
_08066930:
|
|
bl link_get_multiplayer_id
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0806693A:
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r1, 0x13]
|
|
bl sub_806F000
|
|
_08066948:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_0806694C:
|
|
mov r8, r0
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r1, [r5]
|
|
bl sub_805DF38
|
|
ldrb r0, [r5]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r6, =gUnknown_0202499C
|
|
mov r9, r7
|
|
ldr r1, =gUnknown_083054E0
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r4, 0x8
|
|
subs r4, r0
|
|
lsls r4, 18
|
|
movs r0, 0xA0
|
|
lsls r0, 14
|
|
adds r4, r0
|
|
asrs r4, 16
|
|
ldrb r0, [r5]
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r6, 0
|
|
mov r1, r9
|
|
adds r2, r4, 0
|
|
bl AddObjectToFront
|
|
ldr r6, =gUnknown_020241E4
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000ff10
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, =gTrainerFrontPicPaletteTable
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldrb r1, [r5]
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
lsls r0, 4
|
|
ldrb r3, [r2, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r1, r8
|
|
strh r1, [r0, 0x6]
|
|
ldrb r0, [r5]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064400
|
|
str r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066748
|
|
|
|
thumb_func_start sub_8066A58
|
|
sub_8066A58: @ 8066A58
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08066A74
|
|
ldr r0, =gUnknown_02038BCA
|
|
b _08066A76
|
|
.pool
|
|
_08066A74:
|
|
ldr r0, =gUnknown_02038BCC
|
|
_08066A76:
|
|
ldrh r0, [r0]
|
|
bl sub_8162AA0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r1, [r6]
|
|
bl sub_805DF38
|
|
ldrb r0, [r6]
|
|
bl battle_get_per_side_status
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
bl template_build_for_pokemon_or_trainer
|
|
ldr r0, =gUnknown_0202499C
|
|
ldr r2, =gUnknown_083054E0
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
movs r2, 0x8
|
|
subs r2, r1
|
|
lsls r2, 18
|
|
movs r1, 0xA0
|
|
lsls r1, 14
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
movs r1, 0xB0
|
|
movs r3, 0x1E
|
|
bl AddObjectToFront
|
|
ldr r5, =gUnknown_020241E4
|
|
ldrb r1, [r6]
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_02020630
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x60
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
adds r1, 0x20
|
|
strh r1, [r0, 0x20]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000fffe
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, =gTrainerFrontPicPaletteTable
|
|
mov r2, r8
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfObjectPaletteTag
|
|
ldrb r1, [r6]
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
lsls r0, 4
|
|
ldrb r3, [r2, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r3, r8
|
|
strh r3, [r0, 0x6]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, =sub_805D7AC
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064438
|
|
str r1, [r0]
|
|
bl sub_8065068
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066A58
|
|
|
|
thumb_func_start sub_8066B94
|
|
sub_8066B94: @ 8066B94
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gUnknown_02020630
|
|
adds r0, r5
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x23
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =DummyObjectCallback
|
|
bl oamt_set_x3A_32
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064470
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066B94
|
|
|
|
thumb_func_start sub_8066C40
|
|
sub_8066C40: @ 8066C40
|
|
push {r4-r6,lr}
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r4, [r6]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r2, [r5]
|
|
ldr r0, [r4, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
bne _08066C94
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08066C74
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_08066C74:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x4]
|
|
adds r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _08066CD0
|
|
.pool
|
|
_08066C94:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08066CD0
|
|
strb r0, [r3, 0x4]
|
|
movs r0, 0x10
|
|
movs r1, 0x3F
|
|
bl audio_play_and_stuff
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039934
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064C14
|
|
str r1, [r0]
|
|
_08066CD0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066C40
|
|
|
|
thumb_func_start sub_8066CEC
|
|
sub_8066CEC: @ 8066CEC
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066CEC
|
|
|
|
thumb_func_start sub_8066CF8
|
|
sub_8066CF8: @ 8066CF8
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066CF8
|
|
|
|
thumb_func_start sub_8066D04
|
|
sub_8066D04: @ 8066D04
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066D04
|
|
|
|
thumb_func_start sub_8066D10
|
|
sub_8066D10: @ 8066D10
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066D10
|
|
|
|
thumb_func_start sub_8066D1C
|
|
sub_8066D1C: @ 8066D1C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08066D32
|
|
b _08066E58
|
|
_08066D32:
|
|
ldr r0, =gUnknown_02023064
|
|
mov r12, r0
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r6, r0
|
|
ldr r0, =gUnknown_02038432
|
|
mov r8, r0
|
|
mov r0, r12
|
|
adds r0, 0x3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r3, =gUnknown_02038408
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x4
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x5
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r3]
|
|
ldr r3, =gUnknown_02038404
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x6
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0x7
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
mov r0, r12
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
mov r0, r12
|
|
adds r0, 0x9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 24
|
|
orrs r2, r0
|
|
str r2, [r3]
|
|
ldr r2, =gUnknown_0203841A
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
mov r1, r12
|
|
adds r1, 0xA
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r4, =gUnknown_0203841C
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0xC
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, r12
|
|
adds r0, 0xD
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r4]
|
|
ldr r7, =gUnknown_02038400
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
mov r0, r12
|
|
adds r0, 0x10
|
|
adds r1, r0
|
|
str r1, [r7]
|
|
ldr r2, =gUnknown_020244BC
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_805DB8C
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _08066E30
|
|
bl sub_8065068
|
|
b _08066E58
|
|
.pool
|
|
_08066E30:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x4]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8066E70
|
|
str r1, [r0]
|
|
ldrh r1, [r4]
|
|
ldr r2, [r7]
|
|
adds r0, r6, 0
|
|
bl sub_817E0FC
|
|
_08066E58:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066D1C
|
|
|
|
thumb_func_start sub_8066E70
|
|
sub_8066E70: @ 8066E70
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, =gUnknown_02023064
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, 9
|
|
adds r0, r2, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, r2, 0x2
|
|
mov r9, r5
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
adds r2, 0xB
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r7, =gUnknown_020244D0
|
|
ldr r5, [r7]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x4]
|
|
cmp r2, 0x1
|
|
beq _08066F08
|
|
cmp r2, 0x1
|
|
bgt _08066EC8
|
|
cmp r2, 0
|
|
beq _08066ED2
|
|
b _08066FE4
|
|
.pool
|
|
_08066EC8:
|
|
cmp r2, 0x2
|
|
beq _08066F32
|
|
cmp r2, 0x3
|
|
beq _08066FA8
|
|
b _08066FE4
|
|
_08066ED2:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, 2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, 0xC
|
|
ands r0, r2
|
|
cmp r0, 0x4
|
|
bne _08066EF4
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x5
|
|
bl move_anim_start_t4
|
|
_08066EF4:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
b _08066FE4
|
|
_08066F08:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08066FE4
|
|
movs r0, 0
|
|
bl sub_805EB9C
|
|
adds r0, r4, 0
|
|
bl move_anim_start_t1
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0, 0x4]
|
|
b _08066FE4
|
|
_08066F32:
|
|
ldr r0, =gUnknown_020383F8
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, =gUnknown_020383FD
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08066FE4
|
|
movs r0, 0x1
|
|
bl sub_805EB9C
|
|
ldr r0, [r7]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08066F80
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bhi _08066F80
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0x6
|
|
bl move_anim_start_t4
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r0]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_08066F80:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r2, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x4]
|
|
b _08066FE4
|
|
.pool
|
|
_08066FA8:
|
|
ldrb r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08066FE4
|
|
bl sub_805E394
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 9
|
|
mov r3, r10
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
add r2, r9
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
bl sub_805E94C
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r4, [r0, 0x4]
|
|
bl sub_8065068
|
|
_08066FE4:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066E70
|
|
|
|
thumb_func_start sub_8066FF4
|
|
sub_8066FF4: @ 8066FF4
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02022E14
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E16
|
|
strh r1, [r0]
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r4, [r5]
|
|
lsls r4, 9
|
|
ldr r0, =gUnknown_02023066
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
bl battle_pick_message
|
|
ldr r0, =gUnknown_02022E2C
|
|
movs r1, 0
|
|
bl battle_show_message_maybe
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064CCC
|
|
str r1, [r0]
|
|
ldrh r0, [r4]
|
|
bl sub_817C95C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8066FF4
|
|
|
|
thumb_func_start sub_806704C
|
|
sub_806704C: @ 806704C
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806704C
|
|
|
|
thumb_func_start sub_8067058
|
|
sub_8067058: @ 8067058
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067058
|
|
|
|
thumb_func_start sub_8067064
|
|
sub_8067064: @ 8067064
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067064
|
|
|
|
thumb_func_start sub_8067070
|
|
sub_8067070: @ 8067070
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067070
|
|
|
|
thumb_func_start sub_806707C
|
|
sub_806707C: @ 806707C
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806707C
|
|
|
|
thumb_func_start sub_8067088
|
|
sub_8067088: @ 8067088
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067088
|
|
|
|
thumb_func_start sub_8067094
|
|
sub_8067094: @ 8067094
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067094
|
|
|
|
thumb_func_start sub_80670A0
|
|
sub_80670A0: @ 80670A0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
bl load_gfxc_health_bar
|
|
ldr r3, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
mov r9, r0
|
|
ldrb r4, [r0]
|
|
lsls r2, r4, 9
|
|
adds r0, r3, 0x2
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
adds r3, 0x3
|
|
adds r2, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
asrs r7, r1, 16
|
|
ldr r0, =0x00007fff
|
|
cmp r7, r0
|
|
beq _08067130
|
|
ldr r6, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gEnemyParty
|
|
adds r0, r4
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl sub_807294C
|
|
b _0806715A
|
|
.pool
|
|
_08067130:
|
|
ldr r1, =gUnknown_0202406E
|
|
lsls r0, r4, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, 0
|
|
bl sub_807294C
|
|
_0806715A:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064BC0
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80670A0
|
|
|
|
thumb_func_start sub_8067190
|
|
sub_8067190: @ 8067190
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067190
|
|
|
|
thumb_func_start sub_806719C
|
|
sub_806719C: @ 806719C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080671F0
|
|
ldr r0, =gUnknown_03005D70
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
ldr r2, =gEnemyParty
|
|
adds r1, r2
|
|
movs r2, 0x9
|
|
bl healthbar_draw_field_maybe
|
|
ldrb r2, [r4]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8065008
|
|
str r1, [r0]
|
|
_080671F0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806719C
|
|
|
|
thumb_func_start sub_8067214
|
|
sub_8067214: @ 8067214
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067264
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r3, [r5]
|
|
lsls r3, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 8
|
|
orrs r1, r2
|
|
adds r2, r4, 0x4
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, 16
|
|
orrs r1, r2
|
|
adds r4, 0x5
|
|
adds r3, r4
|
|
ldrb r2, [r3]
|
|
lsls r2, 24
|
|
orrs r1, r2
|
|
bl move_anim_start_t2_for_situation
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8065008
|
|
str r1, [r0]
|
|
_08067264:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067214
|
|
|
|
thumb_func_start sub_806727C
|
|
sub_806727C: @ 806727C
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806727C
|
|
|
|
thumb_func_start sub_8067288
|
|
sub_8067288: @ 8067288
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067288
|
|
|
|
thumb_func_start sub_8067294
|
|
sub_8067294: @ 8067294
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8067294
|
|
|
|
thumb_func_start sub_80672A0
|
|
sub_80672A0: @ 80672A0
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672A0
|
|
|
|
thumb_func_start sub_80672AC
|
|
sub_80672AC: @ 80672AC
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672AC
|
|
|
|
thumb_func_start sub_80672B8
|
|
sub_80672B8: @ 80672B8
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672B8
|
|
|
|
thumb_func_start sub_80672C4
|
|
sub_80672C4: @ 80672C4
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672C4
|
|
|
|
thumb_func_start sub_80672D0
|
|
sub_80672D0: @ 80672D0
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672D0
|
|
|
|
thumb_func_start sub_80672DC
|
|
sub_80672DC: @ 80672DC
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80672DC
|
|
|
|
thumb_func_start sub_80672E8
|
|
sub_80672E8: @ 80672E8
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80672E8
|
|
|
|
thumb_func_start sub_8067304
|
|
sub_8067304: @ 8067304
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7F
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067304
|
|
|
|
thumb_func_start sub_806733C
|
|
sub_806733C: @ 806733C
|
|
push {lr}
|
|
ldr r2, =gUnknown_02022D0C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806733C
|
|
|
|
thumb_func_start sub_8067354
|
|
sub_8067354: @ 8067354
|
|
push {lr}
|
|
ldr r3, =gUnknown_02022D0C
|
|
ldr r1, [r3]
|
|
lsls r1, 24
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r3]
|
|
movs r0, 0x7F
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067354
|
|
|
|
thumb_func_start sub_806737C
|
|
sub_806737C: @ 806737C
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r2, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080673B0
|
|
bl sub_8065068
|
|
b _080673DA
|
|
.pool
|
|
_080673B0:
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
ldrb r0, [r4]
|
|
bl sub_80769F4
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064CE4
|
|
str r1, [r0]
|
|
_080673DA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806737C
|
|
|
|
thumb_func_start sub_80673EC
|
|
sub_80673EC: @ 80673EC
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80673EC
|
|
|
|
thumb_func_start sub_80673F8
|
|
sub_80673F8: @ 80673F8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
movs r3, 0x3F
|
|
cmp r0, 0
|
|
bne _0806740C
|
|
movs r3, 0xC0
|
|
_0806740C:
|
|
ldr r2, =gUnknown_02023064
|
|
ldrb r1, [r4]
|
|
lsls r1, 9
|
|
adds r0, r2, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
lsls r1, r3, 24
|
|
asrs r1, 24
|
|
bl audio_play_and_stuff
|
|
bl sub_8065068
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80673F8
|
|
|
|
thumb_func_start sub_806743C
|
|
sub_806743C: @ 806743C
|
|
push {r4,r5,lr}
|
|
ldr r4, =gUnknown_02023064
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
adds r0, r4, 0x3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08067478
|
|
bl sub_805EA60
|
|
ldrb r1, [r5]
|
|
lsls r1, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0x2
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl song_play_for_text
|
|
b _0806748C
|
|
.pool
|
|
_08067478:
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0x2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
bl fanfare_play
|
|
_0806748C:
|
|
bl sub_8065068
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806743C
|
|
|
|
thumb_func_start sub_8067498
|
|
sub_8067498: @ 8067498
|
|
push {lr}
|
|
ldr r1, =gUnknown_0202406E
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x19
|
|
movs r2, 0x5
|
|
bl sub_80A32E4
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067498
|
|
|
|
thumb_func_start sub_80674D4
|
|
sub_80674D4: @ 80674D4
|
|
push {lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl battle_intro_launch
|
|
ldr r2, =gUnknown_020243FC
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80674D4
|
|
|
|
thumb_func_start sub_8067508
|
|
sub_8067508: @ 8067508
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r6, =gUnknown_02024064
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gUnknown_02020630
|
|
adds r0, r4
|
|
bl oamt_add_pos2_onto_pos1
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x23
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x32]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x22]
|
|
strh r1, [r0, 0x36]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_80A6EEC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =sub_80676FC
|
|
bl oamt_set_x3A_32
|
|
ldr r0, =c3_08038DC4
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, 0x8]
|
|
ldr r3, =gUnknown_020244D0
|
|
ldr r0, [r3]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080675CA
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_080675CA:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x8]
|
|
ldrb r0, [r2, 0x9]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r6]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =nullsub_28
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067508
|
|
|
|
thumb_func_start c3_08038DC4
|
|
c3_08038DC4: @ 8067618
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r7, =gUnknown_02024064
|
|
ldrb r0, [r7]
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
strb r0, [r7]
|
|
bl battle_type_is_double
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08067652
|
|
ldr r0, =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08067684
|
|
_08067652:
|
|
ldr r0, =gUnknown_02023064
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, 9
|
|
adds r0, 0x1
|
|
adds r2, r0
|
|
ldr r0, =gUnknown_0202406E
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_8066494
|
|
b _080676C4
|
|
.pool
|
|
_08067684:
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r4, 0x1
|
|
adds r1, r4
|
|
ldr r6, =gUnknown_0202406E
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_8066494
|
|
ldrb r0, [r7]
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, 9
|
|
adds r1, r4
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_8066494
|
|
ldrb r0, [r7]
|
|
eors r0, r5
|
|
strb r0, [r7]
|
|
_080676C4:
|
|
ldr r1, =gUnknown_03005D60
|
|
ldr r2, =gUnknown_02024064
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_8064734
|
|
str r1, [r0]
|
|
mov r0, r9
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c3_08038DC4
|
|
|
|
thumb_func_start sub_80676FC
|
|
sub_80676FC: @ 80676FC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x6]
|
|
bl sub_805DFE4
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80676FC
|
|
|
|
thumb_func_start sub_8067718
|
|
sub_8067718: @ 8067718
|
|
push {r4-r7,lr}
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08067748
|
|
adds r0, r2, 0
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067748
|
|
bl sub_8065068
|
|
b _08067812
|
|
.pool
|
|
_08067748:
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, =gUnknown_02023064
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 9
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r3, 0
|
|
cmp r0, 0
|
|
beq _080677B4
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r2, [r3, 0x1]
|
|
lsls r1, r2, 27
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x1
|
|
bhi _080677AC
|
|
adds r0, 0x1
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
lsls r0, 1
|
|
movs r1, 0x1F
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x1]
|
|
b _08067812
|
|
.pool
|
|
_080677AC:
|
|
movs r0, 0x1F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r3, 0x1]
|
|
_080677B4:
|
|
adds r5, r7, 0
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, 9
|
|
ldr r4, =gUnknown_02023068
|
|
adds r1, r3, r4
|
|
subs r2, r4, 0x3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
subs r4, 0x2
|
|
adds r3, r4
|
|
ldrb r3, [r3]
|
|
bl sub_80735DC
|
|
ldr r2, =gUnknown_020244B4
|
|
ldrb r1, [r5]
|
|
adds r1, r2
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r6, =gUnknown_020244D0
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strb r3, [r0, 0x5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, 9
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08067806
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x5D
|
|
strb r1, [r0, 0x5]
|
|
_08067806:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r7]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_806782C
|
|
str r0, [r1]
|
|
_08067812:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067718
|
|
|
|
thumb_func_start sub_806782C
|
|
sub_806782C: @ 806782C
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020244D0
|
|
ldr r0, [r4]
|
|
ldr r3, =gUnknown_02024064
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x5]
|
|
adds r2, r1, 0x1
|
|
strb r2, [r0, 0x5]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x5C
|
|
bls _08067864
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strb r1, [r0, 0x5]
|
|
bl sub_8065068
|
|
_08067864:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_806782C
|
|
|
|
thumb_func_start sub_8067874
|
|
sub_8067874: @ 8067874
|
|
push {lr}
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r1, [r0]
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r3, [r0]
|
|
ldr r1, [r1, 0x4]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080678A6
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_020244B4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, =sub_8073C30
|
|
str r1, [r0]
|
|
_080678A6:
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067874
|
|
|
|
thumb_func_start sub_80678C4
|
|
sub_80678C4: @ 80678C4
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80678C4
|
|
|
|
thumb_func_start sub_80678D0
|
|
sub_80678D0: @ 80678D0
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
bl sub_80A6A90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08067916
|
|
ldr r3, =gUnknown_02020630
|
|
ldr r0, =gUnknown_020241E4
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r0, =gUnknown_02023064
|
|
lsls r1, 9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ldrb r1, [r1]
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
bl sub_805E408
|
|
_08067916:
|
|
bl sub_8065068
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80678D0
|
|
|
|
thumb_func_start sub_8067930
|
|
sub_8067930: @ 8067930
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067992
|
|
ldr r4, =gUnknown_02023064
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, 9
|
|
adds r0, r4, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
adds r0, r4, 0x2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r4, 0x3
|
|
adds r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 8
|
|
orrs r3, r0
|
|
str r3, [sp]
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
adds r3, r6, 0
|
|
bl move_anim_start_t3
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08067980
|
|
bl sub_8065068
|
|
b _0806798C
|
|
.pool
|
|
_08067980:
|
|
ldr r0, =gUnknown_03005D60
|
|
ldrb r1, [r5]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, =sub_8065038
|
|
str r0, [r1]
|
|
_0806798C:
|
|
adds r0, r6, 0
|
|
bl sub_817E32C
|
|
_08067992:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8067930
|
|
|
|
thumb_func_start sub_80679A4
|
|
sub_80679A4: @ 80679A4
|
|
push {lr}
|
|
ldr r0, =gUnknown_02024064
|
|
ldrb r0, [r0]
|
|
lsls r0, 9
|
|
ldr r1, =gUnknown_02023066
|
|
adds r0, r1
|
|
bl sub_81851A8
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80679A4
|
|
|
|
thumb_func_start sub_80679C4
|
|
sub_80679C4: @ 80679C4
|
|
push {lr}
|
|
bl sub_8065068
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80679C4
|
|
|
|
thumb_func_start sub_80679D0
|
|
sub_80679D0: @ 80679D0
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_02024064
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
ldr r4, =gUnknown_02023068
|
|
adds r0, r4
|
|
bl sub_81851A8
|
|
ldrb r0, [r5]
|
|
lsls r0, 9
|
|
subs r4, 0x3
|
|
adds r0, r4
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x3
|
|
bne _08067A00
|
|
ldr r0, =gUnknown_0202433A
|
|
strb r2, [r0]
|
|
b _08067A08
|
|
.pool
|
|
_08067A00:
|
|
ldr r0, =gUnknown_0202433A
|
|
movs r1, 0x3
|
|
eors r1, r2
|
|
strb r1, [r0]
|
|
_08067A08:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldr r1, =gUnknown_02023064
|
|
ldr r4, =gUnknown_02024064
|
|
ldrb r0, [r4]
|
|
lsls r0, 9
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r1, =0x00000ca9
|
|
adds r3, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 3
|
|
ldrb r2, [r3]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x5
|
|
bl sub_80A2F50
|
|
movs r0, 0x3
|
|
bl BeginFastPaletteFade
|
|
bl sub_8065068
|
|
ldr r1, =gUnknown_03005D60
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, =sub_80587B0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80679D0
|
|
|
|
thumb_func_start nullsub_92
|
|
nullsub_92: @ 8067A70
|
|
bx lr
|
|
thumb_func_end nullsub_92
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|