mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-07 06:35:48 -05:00
3665 lines
62 KiB
ArmAsm
3665 lines
62 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80E5970
|
|
sub_80E5970: @ 80E5970
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_080E5976:
|
|
ldr r0, _080E5990 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E5994 @ =0x0000055e
|
|
adds r0, r1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bhi _080E59B8
|
|
lsls r0, 2
|
|
ldr r1, _080E5998 @ =_080E599C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080E5990: .4byte gSaveBlock2Ptr
|
|
_080E5994: .4byte 0x0000055e
|
|
_080E5998: .4byte _080E599C
|
|
.align 2, 0
|
|
_080E599C:
|
|
.4byte _080E59B8
|
|
.4byte _080E59D0
|
|
.4byte _080E59F0
|
|
.4byte _080E5A00
|
|
.4byte _080E59E0
|
|
.4byte _080E59E8
|
|
.4byte _080E5A00
|
|
_080E59B8:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_80E5A38
|
|
cmp r4, 0
|
|
bne _080E5A00
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x5
|
|
bl VarSet
|
|
b _080E5A00
|
|
_080E59D0:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_80E5A38
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x1
|
|
b _080E59F6
|
|
_080E59E0:
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x2
|
|
b _080E59F6
|
|
_080E59E8:
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x3
|
|
b _080E59F6
|
|
_080E59F0:
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x4
|
|
_080E59F6:
|
|
bl VarSet
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080E5A00:
|
|
adds r5, 0x1
|
|
cmp r5, 0x1
|
|
ble _080E5976
|
|
ldr r0, _080E5A2C @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E5A30 @ =0x0000055e
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, _080E5A34 @ =0x00000303
|
|
cmp r1, r0
|
|
bne _080E5A20
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0x5
|
|
bl VarSet
|
|
_080E5A20:
|
|
bl sub_80E7064
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E5A2C: .4byte gSaveBlock2Ptr
|
|
_080E5A30: .4byte 0x0000055e
|
|
_080E5A34: .4byte 0x00000303
|
|
thumb_func_end sub_80E5970
|
|
|
|
thumb_func_start sub_80E5A38
|
|
sub_80E5A38: @ 80E5A38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080E5A64 @ =gSaveBlock2Ptr
|
|
ldr r1, [r3]
|
|
ldr r2, _080E5A68 @ =0x0000055e
|
|
adds r1, r2
|
|
adds r1, r0
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
ldr r2, [r3]
|
|
lsls r0, 1
|
|
movs r3, 0xAC
|
|
lsls r3, 3
|
|
adds r1, r2, r3
|
|
adds r1, r0
|
|
movs r3, 0x1
|
|
strh r3, [r1]
|
|
ldr r1, _080E5A6C @ =0x00000564
|
|
adds r2, r1
|
|
adds r2, r0
|
|
strh r3, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080E5A64: .4byte gSaveBlock2Ptr
|
|
_080E5A68: .4byte 0x0000055e
|
|
_080E5A6C: .4byte 0x00000564
|
|
thumb_func_end sub_80E5A38
|
|
|
|
thumb_func_start sub_80E5A70
|
|
sub_80E5A70: @ 80E5A70
|
|
push {r4-r7,lr}
|
|
sub sp, 0x2C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
add r4, sp, 0x28
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
bl sub_80E7490
|
|
ldr r0, _080E5AA4 @ =gUnknown_20370D0
|
|
ldrh r0, [r0]
|
|
adds r7, r4, 0
|
|
cmp r0, 0
|
|
bne _080E5A9E
|
|
ldr r0, _080E5AA8 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E5AAC @ =0x000004a2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
beq _080E5AB0
|
|
_080E5A9E:
|
|
movs r0, 0
|
|
b _080E5B02
|
|
.align 2, 0
|
|
_080E5AA4: .4byte gUnknown_20370D0
|
|
_080E5AA8: .4byte gSaveBlock2Ptr
|
|
_080E5AAC: .4byte 0x000004a2
|
|
_080E5AB0:
|
|
movs r6, 0x32
|
|
cmp r5, 0
|
|
beq _080E5AB8
|
|
movs r6, 0x64
|
|
_080E5AB8:
|
|
movs r4, 0
|
|
_080E5ABA:
|
|
ldr r0, _080E5B0C @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x2C
|
|
muls r0, r4
|
|
adds r1, r0
|
|
movs r2, 0x9C
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r2, [r0]
|
|
cmp r2, r6
|
|
bne _080E5A9E
|
|
ldr r3, _080E5B10 @ =0x000004d4
|
|
adds r0, r1, r3
|
|
ldrh r0, [r0]
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrh r1, [r1]
|
|
str r2, [sp]
|
|
add r2, sp, 0x10
|
|
str r2, [sp, 0x4]
|
|
add r2, sp, 0x1C
|
|
str r2, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
movs r2, 0x1
|
|
adds r3, r5, 0
|
|
bl sub_80E6564
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080E5ABA
|
|
movs r1, 0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x3
|
|
bne _080E5B00
|
|
movs r1, 0x1
|
|
_080E5B00:
|
|
adds r0, r1, 0
|
|
_080E5B02:
|
|
add sp, 0x2C
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E5B0C: .4byte gSaveBlock2Ptr
|
|
_080E5B10: .4byte 0x000004d4
|
|
thumb_func_end sub_80E5A70
|
|
|
|
thumb_func_start sub_80E5B14
|
|
sub_80E5B14: @ 80E5B14
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
movs r0, 0
|
|
str r0, [sp, 0x14]
|
|
ldr r4, _080E5B58 @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
ldr r1, _080E5B5C @ =0x0000055c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
mov r8, r0
|
|
bl sub_80E7188
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
mov r0, r8
|
|
mov r1, r9
|
|
bl sub_80E5A70
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080E5B64
|
|
ldr r0, [r4]
|
|
ldr r2, _080E5B60 @ =0x0000056c
|
|
adds r0, r2
|
|
movs r1, 0xC8
|
|
strb r1, [r0]
|
|
b _080E5C0C
|
|
.align 2, 0
|
|
_080E5B58: .4byte gSaveBlock2Ptr
|
|
_080E5B5C: .4byte 0x0000055c
|
|
_080E5B60: .4byte 0x0000056c
|
|
_080E5B64:
|
|
movs r6, 0
|
|
movs r3, 0xA4
|
|
mov r10, r3
|
|
movs r7, 0xAA
|
|
lsls r7, 1
|
|
mov r12, r7
|
|
ldr r0, _080E5BE8 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x18]
|
|
mov r1, sp
|
|
str r1, [sp, 0x1C]
|
|
_080E5B7A:
|
|
mov r0, r10
|
|
muls r0, r6
|
|
add r0, r12
|
|
movs r4, 0
|
|
movs r5, 0
|
|
movs r1, 0
|
|
adds r2, r6, 0x1
|
|
str r2, [sp, 0x20]
|
|
ldr r3, [sp, 0x18]
|
|
adds r2, r3, r0
|
|
_080E5B8E:
|
|
ldm r2!, {r0}
|
|
orrs r4, r0
|
|
adds r5, r0
|
|
adds r1, 0x1
|
|
cmp r1, 0x27
|
|
bls _080E5B8E
|
|
ldr r7, _080E5BE8 @ =gSaveBlock2Ptr
|
|
ldr r2, [r7]
|
|
mov r3, r10
|
|
muls r3, r6
|
|
adds r1, r2, r3
|
|
movs r7, 0xAB
|
|
lsls r7, 1
|
|
adds r0, r1, r7
|
|
ldrh r0, [r0]
|
|
cmp r0, r9
|
|
bne _080E5BD8
|
|
mov r7, r12
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _080E5BD8
|
|
cmp r4, 0
|
|
beq _080E5BD8
|
|
movs r1, 0xFA
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
bne _080E5BD8
|
|
ldr r2, [sp, 0x1C]
|
|
stm r2!, {r6}
|
|
str r2, [sp, 0x1C]
|
|
ldr r3, [sp, 0x14]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x14]
|
|
_080E5BD8:
|
|
ldr r6, [sp, 0x20]
|
|
cmp r6, 0x4
|
|
ble _080E5B7A
|
|
ldr r7, [sp, 0x14]
|
|
cmp r7, 0
|
|
bne _080E5BEC
|
|
movs r0, 0
|
|
b _080E5C0E
|
|
.align 2, 0
|
|
_080E5BE8: .4byte gSaveBlock2Ptr
|
|
_080E5BEC:
|
|
bl Random
|
|
ldr r1, _080E5C20 @ =gSaveBlock2Ptr
|
|
ldr r4, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [sp, 0x14]
|
|
bl __modsi3
|
|
lsls r0, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
adds r0, 0x64
|
|
ldr r1, _080E5C24 @ =0x0000056c
|
|
adds r4, r1
|
|
strb r0, [r4]
|
|
_080E5C0C:
|
|
movs r0, 0x1
|
|
_080E5C0E:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E5C20: .4byte gSaveBlock2Ptr
|
|
_080E5C24: .4byte 0x0000056c
|
|
thumb_func_end sub_80E5B14
|
|
|
|
thumb_func_start sub_80E5C28
|
|
sub_80E5C28: @ 80E5C28
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r5, _080E5C6C @ =gSaveBlock2Ptr
|
|
ldr r0, [r5]
|
|
ldr r1, _080E5C70 @ =0x0000055c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r6, r0, 31
|
|
bl sub_80E5B14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080E5C7C
|
|
ldr r0, [r5]
|
|
ldr r4, _080E5C74 @ =0x0000056c
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80E5E5C
|
|
ldr r1, [r5]
|
|
lsls r2, r6, 1
|
|
movs r3, 0xAC
|
|
lsls r3, 3
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
adds r0, r1, r0
|
|
ldr r2, _080E5C78 @ =0x00000571
|
|
adds r0, r2
|
|
adds r1, r4
|
|
b _080E5E3E
|
|
.align 2, 0
|
|
_080E5C6C: .4byte gSaveBlock2Ptr
|
|
_080E5C70: .4byte 0x0000055c
|
|
_080E5C74: .4byte 0x0000056c
|
|
_080E5C78: .4byte 0x00000571
|
|
_080E5C7C:
|
|
ldr r2, [r5]
|
|
lsls r0, r6, 1
|
|
ldr r3, _080E5D1C @ =0x00000564
|
|
adds r1, r2, r3
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
adds r6, r0, 0
|
|
cmp r1, 0x7
|
|
bls _080E5C90
|
|
b _080E5DB8
|
|
_080E5C90:
|
|
movs r1, 0xAC
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x7
|
|
bne _080E5D2C
|
|
adds r7, r6, 0
|
|
mov r8, r5
|
|
_080E5CA2:
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
lsls r2, r1, 2
|
|
adds r2, r1
|
|
mov r3, r8
|
|
ldr r4, [r3]
|
|
ldr r1, _080E5D1C @ =0x00000564
|
|
adds r0, r4, r1
|
|
adds r0, r7
|
|
ldrh r1, [r0]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, 0x14
|
|
lsrs r2, 7
|
|
adds r2, r0
|
|
lsls r2, 16
|
|
lsrs r5, r2, 16
|
|
movs r3, 0
|
|
movs r0, 0xAC
|
|
lsls r0, 3
|
|
adds r2, r4, r0
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r3, r0
|
|
bge _080E5CFC
|
|
ldr r0, _080E5D20 @ =0x00000572
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, r5
|
|
beq _080E5CFC
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0]
|
|
subs r4, r0, 0x1
|
|
_080E5CEE:
|
|
adds r3, 0x1
|
|
cmp r3, r4
|
|
bge _080E5CFC
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _080E5CEE
|
|
_080E5CFC:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
ldr r4, _080E5D24 @ =gSaveBlock2Ptr
|
|
cmp r3, r0
|
|
bne _080E5CA2
|
|
ldr r0, [r4]
|
|
ldr r3, _080E5D28 @ =0x0000056c
|
|
adds r0, r3
|
|
b _080E5E16
|
|
.align 2, 0
|
|
_080E5D1C: .4byte 0x00000564
|
|
_080E5D20: .4byte 0x00000572
|
|
_080E5D24: .4byte gSaveBlock2Ptr
|
|
_080E5D28: .4byte 0x0000056c
|
|
_080E5D2C:
|
|
adds r7, r6, 0
|
|
mov r8, r5
|
|
_080E5D30:
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsrs r5, r0, 6
|
|
mov r0, r8
|
|
ldr r4, [r0]
|
|
ldr r1, _080E5DA8 @ =0x00000564
|
|
adds r0, r4, r1
|
|
adds r0, r7
|
|
ldrh r1, [r0]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r3, 0
|
|
movs r0, 0xAC
|
|
lsls r0, 3
|
|
adds r2, r4, r0
|
|
adds r0, r2, r7
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r3, r0
|
|
bge _080E5D88
|
|
ldr r0, _080E5DAC @ =0x00000572
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, r5
|
|
beq _080E5D88
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0]
|
|
subs r4, r0, 0x1
|
|
_080E5D7A:
|
|
adds r3, 0x1
|
|
cmp r3, r4
|
|
bge _080E5D88
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _080E5D7A
|
|
_080E5D88:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
ldr r4, _080E5DB0 @ =gSaveBlock2Ptr
|
|
cmp r3, r0
|
|
bne _080E5D30
|
|
ldr r0, [r4]
|
|
ldr r3, _080E5DB4 @ =0x0000056c
|
|
adds r0, r3
|
|
b _080E5E16
|
|
.align 2, 0
|
|
_080E5DA8: .4byte 0x00000564
|
|
_080E5DAC: .4byte 0x00000572
|
|
_080E5DB0: .4byte gSaveBlock2Ptr
|
|
_080E5DB4: .4byte 0x0000056c
|
|
_080E5DB8:
|
|
adds r7, r5, 0
|
|
_080E5DBA:
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
asrs r0, 8
|
|
adds r0, 0x46
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r3, 0
|
|
ldr r1, [r7]
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
subs r4, r0, 0x1
|
|
cmp r3, r4
|
|
bge _080E5DFC
|
|
ldr r0, _080E5E4C @ =0x00000572
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, r5
|
|
beq _080E5DFC
|
|
_080E5DEE:
|
|
adds r3, 0x1
|
|
cmp r3, r4
|
|
bge _080E5DFC
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _080E5DEE
|
|
_080E5DFC:
|
|
ldr r0, [r7]
|
|
movs r1, 0xAC
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
ldr r4, _080E5E50 @ =gSaveBlock2Ptr
|
|
cmp r3, r0
|
|
bne _080E5DBA
|
|
ldr r0, [r4]
|
|
ldr r2, _080E5E54 @ =0x0000056c
|
|
adds r0, r2
|
|
_080E5E16:
|
|
strb r5, [r0]
|
|
ldr r0, [r4]
|
|
ldr r3, _080E5E54 @ =0x0000056c
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bl sub_80E5E5C
|
|
ldr r1, [r4]
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
adds r2, r0, r6
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x6
|
|
bhi _080E5E42
|
|
adds r0, r1, r0
|
|
ldr r3, _080E5E58 @ =0x00000571
|
|
adds r0, r3
|
|
ldr r2, _080E5E54 @ =0x0000056c
|
|
adds r1, r2
|
|
_080E5E3E:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_080E5E42:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E5E4C: .4byte 0x00000572
|
|
_080E5E50: .4byte gSaveBlock2Ptr
|
|
_080E5E54: .4byte 0x0000056c
|
|
_080E5E58: .4byte 0x00000571
|
|
thumb_func_end sub_80E5C28
|
|
|
|
thumb_func_start sub_80E5E5C
|
|
sub_80E5E5C: @ 80E5E5C
|
|
push {lr}
|
|
ldr r0, _080E5E6C @ =0x00004010
|
|
movs r1, 0x12
|
|
bl VarSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E5E6C: .4byte 0x00004010
|
|
thumb_func_end sub_80E5E5C
|
|
|
|
thumb_func_start sub_80E5E70
|
|
sub_80E5E70: @ 80E5E70
|
|
push {lr}
|
|
movs r0, 0xC8
|
|
bl sub_80E5E5C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E5E70
|
|
|
|
thumb_func_start sub_80E5E7C
|
|
sub_80E5E7C: @ 80E5E7C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
movs r1, 0
|
|
mov r8, r1
|
|
mov r10, r0
|
|
movs r5, 0
|
|
ldr r2, _080E5F08 @ =gSaveBlock2Ptr
|
|
ldr r0, [r2]
|
|
mov r4, r10
|
|
ldrb r4, [r4, 0xC]
|
|
str r4, [sp, 0x18]
|
|
mov r9, r5
|
|
movs r7, 0x4
|
|
str r7, [sp, 0x1C]
|
|
movs r1, 0xB0
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
mov r12, r1
|
|
_080E5EA8:
|
|
movs r6, 0
|
|
movs r3, 0
|
|
mov r2, r12
|
|
ldrb r0, [r2]
|
|
ldr r4, [sp, 0x18]
|
|
cmp r0, r4
|
|
bne _080E5EDA
|
|
mov r4, r9
|
|
mov r2, r10
|
|
adds r2, 0xC
|
|
_080E5EBC:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _080E5EDA
|
|
ldr r7, _080E5F08 @ =gSaveBlock2Ptr
|
|
ldr r0, [r7]
|
|
adds r1, r3, r4
|
|
movs r7, 0xB0
|
|
lsls r7, 1
|
|
adds r0, r7
|
|
adds r0, r1
|
|
adds r1, r2, r3
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _080E5EBC
|
|
_080E5EDA:
|
|
cmp r3, 0x4
|
|
bne _080E5F20
|
|
movs r6, 0
|
|
ldr r1, _080E5F08 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
movs r3, 0xAC
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
ldr r2, [sp, 0x1C]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
mov r4, r10
|
|
ldrb r4, [r4, 0x8]
|
|
cmp r0, r4
|
|
bne _080E5F20
|
|
adds r1, r0, 0
|
|
mov r2, r9
|
|
adds r2, 0x4
|
|
_080E5EFE:
|
|
cmp r1, 0xFF
|
|
bne _080E5F0C
|
|
movs r6, 0x7
|
|
b _080E5F20
|
|
.align 2, 0
|
|
_080E5F08: .4byte gSaveBlock2Ptr
|
|
_080E5F0C:
|
|
adds r6, 0x1
|
|
cmp r6, 0x6
|
|
bgt _080E5F20
|
|
ldr r7, _080E5F4C @ =gSaveBlock2Ptr
|
|
ldr r0, [r7]
|
|
adds r0, r3
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
beq _080E5EFE
|
|
_080E5F20:
|
|
cmp r6, 0x7
|
|
beq _080E5F36
|
|
movs r0, 0xA4
|
|
add r9, r0
|
|
ldr r1, [sp, 0x1C]
|
|
adds r1, 0xA4
|
|
str r1, [sp, 0x1C]
|
|
add r12, r0
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
ble _080E5EA8
|
|
_080E5F36:
|
|
cmp r5, 0x4
|
|
bgt _080E5F50
|
|
ldr r2, _080E5F4C @ =gSaveBlock2Ptr
|
|
ldr r0, [r2]
|
|
movs r1, 0xA4
|
|
muls r1, r5
|
|
adds r0, r1
|
|
movs r4, 0xAA
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
b _080E5F90
|
|
.align 2, 0
|
|
_080E5F4C: .4byte gSaveBlock2Ptr
|
|
_080E5F50:
|
|
movs r5, 0
|
|
ldr r7, _080E5F9C @ =gSaveBlock2Ptr
|
|
ldr r0, [r7]
|
|
movs r1, 0xAB
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _080E5F7C
|
|
adds r3, r7, 0
|
|
adds r2, r1, 0
|
|
movs r1, 0
|
|
_080E5F68:
|
|
adds r1, 0xA4
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
bgt _080E5FA0
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _080E5F68
|
|
_080E5F7C:
|
|
cmp r5, 0x4
|
|
bgt _080E5FA0
|
|
ldr r1, _080E5F9C @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
movs r1, 0xA4
|
|
muls r1, r5
|
|
adds r0, r1
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
_080E5F90:
|
|
mov r1, r10
|
|
movs r2, 0xA4
|
|
bl memcpy
|
|
b _080E6062
|
|
.align 2, 0
|
|
_080E5F9C: .4byte gSaveBlock2Ptr
|
|
_080E5FA0:
|
|
mov r2, sp
|
|
ldr r4, _080E5FF8 @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
movs r3, 0xAB
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
movs r1, 0
|
|
strh r0, [r2]
|
|
add r0, sp, 0xC
|
|
strh r1, [r0]
|
|
movs r7, 0x1
|
|
add r8, r7
|
|
movs r5, 0x1
|
|
add r0, sp, 0xC
|
|
mov r9, r0
|
|
mov r12, r3
|
|
_080E5FC2:
|
|
movs r3, 0
|
|
adds r7, r5, 0x1
|
|
cmp r3, r8
|
|
bge _080E6006
|
|
ldr r1, _080E5FF8 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
movs r2, 0xA4
|
|
adds r1, r5, 0
|
|
muls r1, r2
|
|
adds r0, r1
|
|
mov r1, r12
|
|
adds r4, r0, r1
|
|
mov r6, sp
|
|
_080E5FDC:
|
|
lsls r0, r3, 1
|
|
add r0, sp
|
|
ldrh r2, [r4]
|
|
adds r1, r2, 0
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bcs _080E5FFC
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
mov r8, r4
|
|
strh r2, [r6]
|
|
mov r0, r9
|
|
strh r5, [r0]
|
|
b _080E6006
|
|
.align 2, 0
|
|
_080E5FF8: .4byte gSaveBlock2Ptr
|
|
_080E5FFC:
|
|
cmp r1, r0
|
|
bhi _080E6006
|
|
adds r3, 0x1
|
|
cmp r3, r8
|
|
blt _080E5FDC
|
|
_080E6006:
|
|
cmp r3, r8
|
|
bne _080E602C
|
|
mov r1, r8
|
|
lsls r2, r1, 1
|
|
mov r4, sp
|
|
adds r3, r4, r2
|
|
ldr r1, _080E6074 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
movs r4, 0xA4
|
|
adds r1, r5, 0
|
|
muls r1, r4
|
|
adds r0, r1
|
|
add r0, r12
|
|
ldrh r0, [r0]
|
|
strh r0, [r3]
|
|
add r2, r9
|
|
strh r5, [r2]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
_080E602C:
|
|
adds r5, r7, 0
|
|
cmp r5, 0x4
|
|
ble _080E5FC2
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, r8
|
|
bl __modsi3
|
|
adds r5, r0, 0
|
|
ldr r0, _080E6074 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 1
|
|
add r1, sp
|
|
adds r1, 0xC
|
|
ldrh r2, [r1]
|
|
movs r1, 0xA4
|
|
muls r1, r2
|
|
adds r0, r1
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
mov r1, r10
|
|
movs r2, 0xA4
|
|
bl memcpy
|
|
_080E6062:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6074: .4byte gSaveBlock2Ptr
|
|
thumb_func_end sub_80E5E7C
|
|
|
|
thumb_func_start sub_80E6078
|
|
sub_80E6078: @ 80E6078
|
|
push {lr}
|
|
ldr r0, _080E6094 @ =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldr r0, _080E6098 @ =0x0000056c
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xC8
|
|
bne _080E60A4
|
|
ldr r1, _080E609C @ =gFacilityClassToPicIndex
|
|
ldr r2, _080E60A0 @ =0x000004a1
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
b _080E60D6
|
|
.align 2, 0
|
|
_080E6094: .4byte gSaveBlock2Ptr
|
|
_080E6098: .4byte 0x0000056c
|
|
_080E609C: .4byte gFacilityClassToPicIndex
|
|
_080E60A0: .4byte 0x000004a1
|
|
_080E60A4:
|
|
cmp r0, 0x63
|
|
bls _080E60C4
|
|
ldr r2, _080E60C0 @ =gFacilityClassToPicIndex
|
|
ldrb r0, [r1]
|
|
subs r0, 0x64
|
|
movs r1, 0xA4
|
|
muls r0, r1
|
|
adds r0, r3, r0
|
|
adds r1, 0xB1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
b _080E60D6
|
|
.align 2, 0
|
|
_080E60C0: .4byte gFacilityClassToPicIndex
|
|
_080E60C4:
|
|
ldr r3, _080E60DC @ =gFacilityClassToPicIndex
|
|
ldr r2, _080E60E0 @ =gUnknown_83FFAC4
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r3
|
|
_080E60D6:
|
|
ldrb r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E60DC: .4byte gFacilityClassToPicIndex
|
|
_080E60E0: .4byte gUnknown_83FFAC4
|
|
thumb_func_end sub_80E6078
|
|
|
|
thumb_func_start sub_80E60E4
|
|
sub_80E60E4: @ 80E60E4
|
|
push {lr}
|
|
ldr r0, _080E6100 @ =gSaveBlock2Ptr
|
|
ldr r3, [r0]
|
|
ldr r0, _080E6104 @ =0x0000056c
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xC8
|
|
bne _080E6110
|
|
ldr r1, _080E6108 @ =gFacilityClassToTrainerClass
|
|
ldr r2, _080E610C @ =0x000004a1
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
b _080E6144
|
|
.align 2, 0
|
|
_080E6100: .4byte gSaveBlock2Ptr
|
|
_080E6104: .4byte 0x0000056c
|
|
_080E6108: .4byte gFacilityClassToTrainerClass
|
|
_080E610C: .4byte 0x000004a1
|
|
_080E6110:
|
|
cmp r0, 0x63
|
|
bhi _080E6130
|
|
ldr r3, _080E6128 @ =gFacilityClassToTrainerClass
|
|
ldr r2, _080E612C @ =gUnknown_83FFAC4
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r3
|
|
b _080E6144
|
|
.align 2, 0
|
|
_080E6128: .4byte gFacilityClassToTrainerClass
|
|
_080E612C: .4byte gUnknown_83FFAC4
|
|
_080E6130:
|
|
ldr r2, _080E614C @ =gFacilityClassToTrainerClass
|
|
ldrb r0, [r1]
|
|
subs r0, 0x64
|
|
movs r1, 0xA4
|
|
muls r0, r1
|
|
adds r0, r3, r0
|
|
adds r1, 0xB1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
_080E6144:
|
|
ldrb r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E614C: .4byte gFacilityClassToTrainerClass
|
|
thumb_func_end sub_80E60E4
|
|
|
|
thumb_func_start sub_80E6150
|
|
sub_80E6150: @ 80E6150
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080E6178 @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r2, _080E617C @ =0x0000056c
|
|
adds r0, r1, r2
|
|
ldrb r2, [r0]
|
|
cmp r2, 0xC8
|
|
bne _080E6184
|
|
movs r3, 0
|
|
ldr r0, _080E6180 @ =0x000004a4
|
|
adds r2, r1, r0
|
|
_080E6168:
|
|
adds r0, r4, r3
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x6
|
|
ble _080E6168
|
|
b _080E61CE
|
|
.align 2, 0
|
|
_080E6178: .4byte gSaveBlock2Ptr
|
|
_080E617C: .4byte 0x0000056c
|
|
_080E6180: .4byte 0x000004a4
|
|
_080E6184:
|
|
cmp r2, 0x63
|
|
bhi _080E61AC
|
|
movs r3, 0
|
|
adds r5, r0, 0
|
|
ldr r6, _080E61A8 @ =gUnknown_83FFAC5
|
|
_080E618E:
|
|
adds r2, r4, r3
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _080E618E
|
|
b _080E61CE
|
|
.align 2, 0
|
|
_080E61A8: .4byte gUnknown_83FFAC5
|
|
_080E61AC:
|
|
movs r3, 0
|
|
adds r5, r0, 0
|
|
movs r0, 0xAC
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
movs r6, 0xA4
|
|
_080E61B8:
|
|
adds r1, r4, r3
|
|
ldrb r0, [r5]
|
|
subs r0, 0x64
|
|
muls r0, r6
|
|
adds r0, r3, r0
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x6
|
|
ble _080E61B8
|
|
_080E61CE:
|
|
adds r1, r4, r3
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E6150
|
|
|
|
thumb_func_start sub_80E61DC
|
|
sub_80E61DC: @ 80E61DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
movs r0, 0
|
|
str r0, [sp, 0x18]
|
|
movs r1, 0x3C
|
|
str r1, [sp, 0x1C]
|
|
add r4, sp, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r4]
|
|
bl ZeroEnemyPartyMons
|
|
ldr r1, _080E6210 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
ldr r2, _080E6214 @ =0x0000056c
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x13
|
|
bhi _080E6218
|
|
movs r3, 0x6
|
|
str r3, [sp, 0x14]
|
|
b _080E62F4
|
|
.align 2, 0
|
|
_080E6210: .4byte gSaveBlock2Ptr
|
|
_080E6214: .4byte 0x0000056c
|
|
_080E6218:
|
|
cmp r0, 0x1D
|
|
bhi _080E6226
|
|
movs r0, 0x9
|
|
str r0, [sp, 0x14]
|
|
movs r1, 0x1E
|
|
str r1, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E6226:
|
|
cmp r0, 0x27
|
|
bhi _080E6234
|
|
movs r2, 0xC
|
|
str r2, [sp, 0x14]
|
|
movs r3, 0x3C
|
|
str r3, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E6234:
|
|
cmp r0, 0x31
|
|
bhi _080E6242
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x14]
|
|
movs r1, 0x5A
|
|
str r1, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E6242:
|
|
cmp r0, 0x3B
|
|
bhi _080E6250
|
|
movs r2, 0x12
|
|
str r2, [sp, 0x14]
|
|
movs r3, 0x78
|
|
str r3, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E6250:
|
|
cmp r0, 0x45
|
|
bhi _080E625E
|
|
movs r0, 0x15
|
|
str r0, [sp, 0x14]
|
|
movs r1, 0x96
|
|
str r1, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E625E:
|
|
cmp r0, 0x4F
|
|
bhi _080E626C
|
|
movs r2, 0x1F
|
|
str r2, [sp, 0x14]
|
|
movs r3, 0xB4
|
|
str r3, [sp, 0x18]
|
|
b _080E62F4
|
|
_080E626C:
|
|
cmp r0, 0x63
|
|
bhi _080E627E
|
|
movs r0, 0x1F
|
|
str r0, [sp, 0x14]
|
|
movs r1, 0xC8
|
|
str r1, [sp, 0x18]
|
|
movs r2, 0x64
|
|
str r2, [sp, 0x1C]
|
|
b _080E62F4
|
|
_080E627E:
|
|
cmp r0, 0xC8
|
|
bne _080E62B0
|
|
movs r6, 0
|
|
adds r4, r1, 0
|
|
_080E6286:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _080E62A8 @ =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
adds r2, r6, 0
|
|
muls r2, r1
|
|
ldr r3, _080E62AC @ =0x000004d4
|
|
adds r2, r3
|
|
ldr r1, [r4]
|
|
adds r1, r2
|
|
bl sub_803E0A4
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _080E6286
|
|
b _080E64A6
|
|
.align 2, 0
|
|
_080E62A8: .4byte gEnemyParty
|
|
_080E62AC: .4byte 0x000004d4
|
|
_080E62B0:
|
|
movs r6, 0
|
|
_080E62B2:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, _080E62E4 @ =gEnemyParty
|
|
adds r0, r1
|
|
ldr r1, _080E62E8 @ =gSaveBlock2Ptr
|
|
ldr r1, [r1]
|
|
ldr r3, _080E62EC @ =0x0000056c
|
|
adds r2, r1, r3
|
|
ldrb r3, [r2]
|
|
movs r2, 0xA4
|
|
muls r2, r3
|
|
ldr r3, _080E62F0 @ =0xffffc144
|
|
adds r2, r3
|
|
adds r1, r2
|
|
movs r2, 0x2C
|
|
muls r2, r6
|
|
adds r2, 0x1C
|
|
adds r1, r2
|
|
bl sub_803E0A4
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _080E62B2
|
|
b _080E64A6
|
|
.align 2, 0
|
|
_080E62E4: .4byte gEnemyParty
|
|
_080E62E8: .4byte gSaveBlock2Ptr
|
|
_080E62EC: .4byte 0x0000056c
|
|
_080E62F0: .4byte 0xffffc144
|
|
_080E62F4:
|
|
ldr r2, _080E6314 @ =gSaveBlock2Ptr
|
|
ldr r0, [r2]
|
|
ldr r1, _080E6318 @ =0x0000055c
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _080E6320
|
|
ldr r2, _080E631C @ =gUnknown_8400E04
|
|
mov r10, r2
|
|
movs r3, 0x64
|
|
str r3, [sp, 0x10]
|
|
b _080E6328
|
|
.align 2, 0
|
|
_080E6314: .4byte gSaveBlock2Ptr
|
|
_080E6318: .4byte 0x0000055c
|
|
_080E631C: .4byte gUnknown_8400E04
|
|
_080E6320:
|
|
ldr r0, _080E6378 @ =gUnknown_83FFB44
|
|
mov r10, r0
|
|
movs r2, 0x32
|
|
str r2, [sp, 0x10]
|
|
_080E6328:
|
|
ldr r2, _080E637C @ =gUnknown_83FFAC4
|
|
ldr r0, [r1]
|
|
ldr r3, _080E6380 @ =0x0000056c
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
str r0, [sp, 0x20]
|
|
movs r6, 0
|
|
_080E6340:
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
ldr r2, [sp, 0x1C]
|
|
adds r0, r1, 0
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
ldr r3, [sp, 0x18]
|
|
adds r7, r0, r3
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, 0
|
|
beq _080E636A
|
|
lsls r0, r7, 4
|
|
add r0, r10
|
|
ldrb r0, [r0, 0x3]
|
|
ldr r1, [sp, 0x20]
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _080E636A
|
|
b _080E64A0
|
|
_080E636A:
|
|
movs r5, 0
|
|
lsls r0, r7, 4
|
|
mov r2, r10
|
|
adds r3, r0, r2
|
|
movs r4, 0
|
|
b _080E6388
|
|
.align 2, 0
|
|
_080E6378: .4byte gUnknown_83FFB44
|
|
_080E637C: .4byte gUnknown_83FFAC4
|
|
_080E6380: .4byte 0x0000056c
|
|
_080E6384:
|
|
adds r4, 0x64
|
|
adds r5, 0x1
|
|
_080E6388:
|
|
cmp r5, r6
|
|
bge _080E63A2
|
|
ldr r1, _080E64B8 @ =gEnemyParty
|
|
adds r0, r4, r1
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
str r3, [sp, 0x24]
|
|
bl GetMonData
|
|
ldr r3, [sp, 0x24]
|
|
ldrh r2, [r3]
|
|
cmp r0, r2
|
|
bne _080E6384
|
|
_080E63A2:
|
|
cmp r5, r6
|
|
bne _080E64A0
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bge _080E63F0
|
|
ldr r3, _080E64BC @ =gUnknown_83FFAC4
|
|
mov r9, r3
|
|
lsls r0, r7, 4
|
|
add r0, r10
|
|
mov r8, r0
|
|
movs r3, 0
|
|
_080E63B8:
|
|
ldr r0, _080E64B8 @ =gEnemyParty
|
|
adds r4, r3, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
str r3, [sp, 0x24]
|
|
bl GetMonData
|
|
ldr r3, [sp, 0x24]
|
|
cmp r0, 0
|
|
beq _080E63E8
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
bl GetMonData
|
|
mov r2, r8
|
|
ldrb r1, [r2, 0x2]
|
|
lsls r1, 1
|
|
add r1, r9
|
|
ldr r3, [sp, 0x24]
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _080E63F0
|
|
_080E63E8:
|
|
adds r3, 0x64
|
|
adds r5, 0x1
|
|
cmp r5, r6
|
|
blt _080E63B8
|
|
_080E63F0:
|
|
cmp r5, r6
|
|
bne _080E64A0
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bge _080E6412
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0]
|
|
cmp r0, r7
|
|
beq _080E6412
|
|
add r1, sp, 0x4
|
|
_080E6404:
|
|
adds r1, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, r6
|
|
bge _080E6412
|
|
ldrh r0, [r1]
|
|
cmp r0, r7
|
|
bne _080E6404
|
|
_080E6412:
|
|
cmp r5, r6
|
|
bne _080E64A0
|
|
lsls r0, r6, 1
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
strh r7, [r0]
|
|
movs r3, 0x64
|
|
adds r0, r6, 0
|
|
muls r0, r3
|
|
ldr r1, _080E64B8 @ =gEnemyParty
|
|
adds r0, r1
|
|
lsls r4, r7, 4
|
|
mov r3, r10
|
|
adds r2, r4, r3
|
|
ldrh r1, [r2]
|
|
ldrb r2, [r2, 0xC]
|
|
str r2, [sp]
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x14]
|
|
bl CreateMonWithEVSpread
|
|
movs r5, 0
|
|
adds r0, r6, 0x1
|
|
mov r9, r0
|
|
mov r8, r4
|
|
movs r0, 0x64
|
|
adds r7, r6, 0
|
|
muls r7, r0
|
|
mov r0, r10
|
|
adds r0, 0x4
|
|
adds r4, r0
|
|
ldr r3, _080E64B8 @ =gEnemyParty
|
|
_080E6452:
|
|
ldrh r1, [r4]
|
|
lsls r2, r5, 24
|
|
lsrs r2, 24
|
|
adds r0, r7, r3
|
|
str r3, [sp, 0x24]
|
|
bl SetMonMoveSlot
|
|
ldrh r0, [r4]
|
|
ldr r3, [sp, 0x24]
|
|
cmp r0, 0xDA
|
|
bne _080E646E
|
|
movs r0, 0
|
|
mov r1, sp
|
|
strb r0, [r1, 0xC]
|
|
_080E646E:
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080E6452
|
|
movs r2, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r2
|
|
ldr r3, _080E64B8 @ =gEnemyParty
|
|
adds r4, r3
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
add r2, sp, 0xC
|
|
bl SetMonData
|
|
mov r0, r8
|
|
add r0, r10
|
|
ldrb r2, [r0, 0x2]
|
|
lsls r2, 1
|
|
ldr r0, _080E64BC @ =gUnknown_83FFAC4
|
|
adds r2, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl SetMonData
|
|
mov r6, r9
|
|
_080E64A0:
|
|
cmp r6, 0x3
|
|
beq _080E64A6
|
|
b _080E6340
|
|
_080E64A6:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E64B8: .4byte gEnemyParty
|
|
_080E64BC: .4byte gUnknown_83FFAC4
|
|
thumb_func_end sub_80E61DC
|
|
|
|
thumb_func_start sub_80E64C0
|
|
sub_80E64C0: @ 80E64C0
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl sub_8088E74
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080E6554
|
|
cmp r4, 0
|
|
bne _080E64EC
|
|
ldr r0, _080E6514 @ =gStringVar1
|
|
ldr r1, _080E6518 @ =gUnknown_83FE859
|
|
bl StringAppend
|
|
_080E64EC:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r6, _080E6514 @ =gStringVar1
|
|
movs r0, 0xB
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _080E651C @ =gSpeciesNames
|
|
adds r1, r0
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
cmp r4, 0x5
|
|
beq _080E6538
|
|
cmp r4, 0x5
|
|
bgt _080E6520
|
|
cmp r4, 0x2
|
|
beq _080E652A
|
|
b _080E654C
|
|
.align 2, 0
|
|
_080E6514: .4byte gStringVar1
|
|
_080E6518: .4byte gUnknown_83FE859
|
|
_080E651C: .4byte gSpeciesNames
|
|
_080E6520:
|
|
cmp r4, 0x8
|
|
beq _080E6538
|
|
cmp r4, 0xB
|
|
beq _080E6538
|
|
b _080E654C
|
|
_080E652A:
|
|
ldr r1, _080E6534 @ =gUnknown_83FE85E
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
b _080E6554
|
|
.align 2, 0
|
|
_080E6534: .4byte gUnknown_83FE85E
|
|
_080E6538:
|
|
ldr r0, _080E6544 @ =gStringVar1
|
|
ldr r1, _080E6548 @ =gUnknown_83FE85C
|
|
bl StringAppend
|
|
b _080E6554
|
|
.align 2, 0
|
|
_080E6544: .4byte gStringVar1
|
|
_080E6548: .4byte gUnknown_83FE85C
|
|
_080E654C:
|
|
ldr r0, _080E655C @ =gStringVar1
|
|
ldr r1, _080E6560 @ =gUnknown_83FE859
|
|
bl StringAppend
|
|
_080E6554:
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E655C: .4byte gStringVar1
|
|
_080E6560: .4byte gUnknown_83FE859
|
|
thumb_func_end sub_80E64C0
|
|
|
|
thumb_func_start sub_80E6564
|
|
sub_80E6564: @ 80E6564
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r2, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
mov r9, r4
|
|
ldr r4, [sp, 0x28]
|
|
mov r10, r4
|
|
ldr r7, [sp, 0x2C]
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r12, r3
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
movs r2, 0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
beq _080E6632
|
|
cmp r4, 0
|
|
beq _080E6632
|
|
ldr r0, _080E6640 @ =gUnknown_84020C4
|
|
ldrh r1, [r0]
|
|
ldr r5, _080E6644 @ =0x0000ffff
|
|
adds r3, r0, 0
|
|
cmp r1, r5
|
|
beq _080E65C8
|
|
cmp r1, r4
|
|
beq _080E65BC
|
|
adds r1, r3, 0
|
|
_080E65AE:
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
ldrh r0, [r1]
|
|
cmp r0, r5
|
|
beq _080E65C8
|
|
cmp r0, r4
|
|
bne _080E65AE
|
|
_080E65BC:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
ldrh r1, [r0]
|
|
ldr r0, _080E6644 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080E6632
|
|
_080E65C8:
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
bne _080E65D4
|
|
mov r1, r8
|
|
cmp r1, 0x32
|
|
bhi _080E6632
|
|
_080E65D4:
|
|
movs r2, 0
|
|
ldrb r3, [r7]
|
|
cmp r2, r3
|
|
bge _080E65F4
|
|
mov r1, r9
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
beq _080E65F4
|
|
adds r5, r3, 0
|
|
_080E65E6:
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
bge _080E65F4
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _080E65E6
|
|
_080E65F4:
|
|
cmp r2, r3
|
|
bne _080E6632
|
|
cmp r6, 0
|
|
beq _080E661E
|
|
movs r2, 0
|
|
cmp r2, r3
|
|
bge _080E661A
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
cmp r0, r6
|
|
beq _080E661A
|
|
adds r5, r3, 0
|
|
_080E660C:
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
bge _080E661A
|
|
ldrh r0, [r1]
|
|
cmp r0, r6
|
|
bne _080E660C
|
|
_080E661A:
|
|
cmp r2, r3
|
|
bne _080E6632
|
|
_080E661E:
|
|
lsls r0, r3, 1
|
|
add r0, r9
|
|
strh r4, [r0]
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
add r0, r10
|
|
strh r6, [r0]
|
|
ldrb r0, [r7]
|
|
adds r0, 0x1
|
|
strb r0, [r7]
|
|
_080E6632:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6640: .4byte gUnknown_84020C4
|
|
_080E6644: .4byte 0x0000ffff
|
|
thumb_func_end sub_80E6564
|
|
|
|
thumb_func_start sub_80E6648
|
|
sub_80E6648: @ 80E6648
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
add r1, sp, 0x28
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r7, 0
|
|
mov r9, r1
|
|
add r0, sp, 0x1C
|
|
mov r10, r0
|
|
_080E6662:
|
|
movs r0, 0x64
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
ldr r0, _080E6724 @ =gPlayerParty
|
|
adds r5, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r1, r8
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
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, 0x39
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r5, _080E6728 @ =gUnknown_20370D0
|
|
ldrb r3, [r5]
|
|
str r4, [sp]
|
|
add r0, sp, 0x10
|
|
str r0, [sp, 0x4]
|
|
mov r1, r10
|
|
str r1, [sp, 0x8]
|
|
mov r0, r9
|
|
str r0, [sp, 0xC]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80E6564
|
|
adds r7, 0x1
|
|
cmp r7, 0x5
|
|
ble _080E6662
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bhi _080E6750
|
|
ldr r1, _080E672C @ =gStringVar1
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
ldr r1, _080E6730 @ =gUnknown_20370C0
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
ldr r2, _080E6734 @ =gUnknown_84020C4
|
|
ldrh r0, [r2]
|
|
ldr r1, _080E6738 @ =0x0000ffff
|
|
cmp r0, r1
|
|
beq _080E6704
|
|
mov r5, r9
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
_080E66F2:
|
|
ldrh r0, [r4]
|
|
ldrb r1, [r5]
|
|
bl sub_80E64C0
|
|
strb r0, [r5]
|
|
adds r4, 0x2
|
|
ldrh r0, [r4]
|
|
cmp r0, r6
|
|
bne _080E66F2
|
|
_080E6704:
|
|
ldr r4, _080E672C @ =gStringVar1
|
|
adds r0, r4, 0
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
subs r0, r7, 0x1
|
|
adds r0, r4
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bhi _080E6740
|
|
ldr r1, _080E673C @ =gUnknown_83FE860
|
|
b _080E6742
|
|
.align 2, 0
|
|
_080E6724: .4byte gPlayerParty
|
|
_080E6728: .4byte gUnknown_20370D0
|
|
_080E672C: .4byte gStringVar1
|
|
_080E6730: .4byte gUnknown_20370C0
|
|
_080E6734: .4byte gUnknown_84020C4
|
|
_080E6738: .4byte 0x0000ffff
|
|
_080E673C: .4byte gUnknown_83FE860
|
|
_080E6740:
|
|
ldr r1, _080E674C @ =gUnknown_83FE864
|
|
_080E6742:
|
|
adds r0, r4, 0
|
|
bl StringAppend
|
|
b _080E6770
|
|
.align 2, 0
|
|
_080E674C: .4byte gUnknown_83FE864
|
|
_080E6750:
|
|
ldr r1, _080E6780 @ =gUnknown_20370C0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, _080E6784 @ =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldrb r0, [r5]
|
|
ldr r1, _080E6788 @ =0x0000055c
|
|
adds r2, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
ldrb r3, [r2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080E6770:
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6780: .4byte gUnknown_20370C0
|
|
_080E6784: .4byte gSaveBlock2Ptr
|
|
_080E6788: .4byte 0x0000055c
|
|
thumb_func_end sub_80E6648
|
|
|
|
thumb_func_start sub_80E678C
|
|
sub_80E678C: @ 80E678C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x12
|
|
bl sub_80BD974
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080E67E4
|
|
ldr r5, _080E67E0 @ =gStringVar4
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x3
|
|
bl ConvertEasyChatWordsToString
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
cmp r0, 0xFE
|
|
beq _080E67C2
|
|
adds r2, r5, 0
|
|
_080E67B8:
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r1, 0x1
|
|
cmp r0, 0xFE
|
|
bne _080E67B8
|
|
_080E67C2:
|
|
ldr r2, _080E67E0 @ =gStringVar4
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r3, r2, 0
|
|
cmp r0, 0xFE
|
|
beq _080E67D8
|
|
_080E67CE:
|
|
adds r1, 0x1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFE
|
|
bne _080E67CE
|
|
_080E67D8:
|
|
adds r1, r3
|
|
movs r0, 0xFA
|
|
strb r0, [r1]
|
|
b _080E67F0
|
|
.align 2, 0
|
|
_080E67E0: .4byte gStringVar4
|
|
_080E67E4:
|
|
ldr r0, _080E67F8 @ =gStringVar4
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl ConvertEasyChatWordsToString
|
|
_080E67F0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E67F8: .4byte gStringVar4
|
|
thumb_func_end sub_80E678C
|
|
|
|
thumb_func_start sub_80E67FC
|
|
sub_80E67FC: @ 80E67FC
|
|
push {lr}
|
|
ldr r0, _080E6818 @ =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
ldr r1, _080E681C @ =0x0000056c
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0xC8
|
|
bne _080E6820
|
|
movs r1, 0x96
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
bl sub_80E678C
|
|
b _080E684C
|
|
.align 2, 0
|
|
_080E6818: .4byte gSaveBlock2Ptr
|
|
_080E681C: .4byte 0x0000056c
|
|
_080E6820:
|
|
cmp r1, 0x63
|
|
bhi _080E683C
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080E6838 @ =gUnknown_83FFACA
|
|
adds r0, r1
|
|
bl sub_80E678C
|
|
b _080E684C
|
|
.align 2, 0
|
|
_080E6838: .4byte gUnknown_83FFACA
|
|
_080E683C:
|
|
ldrb r1, [r0]
|
|
movs r0, 0xA4
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldr r1, _080E6850 @ =0xffffc154
|
|
adds r0, r1
|
|
bl sub_80E678C
|
|
_080E684C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6850: .4byte 0xffffc154
|
|
thumb_func_end sub_80E67FC
|
|
|
|
thumb_func_start sub_80E6854
|
|
sub_80E6854: @ 80E6854
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080E686C @ =gUnknown_203AAB8
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080E6870
|
|
cmp r0, 0x1
|
|
ble _080E68B0
|
|
cmp r0, 0x2
|
|
beq _080E68AC
|
|
b _080E68B0
|
|
.align 2, 0
|
|
_080E686C: .4byte gUnknown_203AAB8
|
|
_080E6870:
|
|
movs r5, 0
|
|
ldr r6, _080E68A4 @ =gSaveBlock1Ptr
|
|
_080E6874:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
adds r1, r4, 0
|
|
adds r1, 0x38
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r0, _080E68A8 @ =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _080E6874
|
|
b _080E68B0
|
|
.align 2, 0
|
|
_080E68A4: .4byte gSaveBlock1Ptr
|
|
_080E68A8: .4byte gPlayerParty
|
|
_080E68AC:
|
|
bl sub_80E7550
|
|
_080E68B0:
|
|
ldr r0, _080E68C0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
bl SetMainCallback2
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E68C0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end sub_80E6854
|
|
|
|
thumb_func_start sub_80E68C4
|
|
sub_80E68C4: @ 80E68C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_80D08F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080E68EC
|
|
ldr r0, _080E68F4 @ =gMain
|
|
ldr r1, _080E68F8 @ =sub_80E6854
|
|
str r1, [r0, 0x8]
|
|
bl sub_80563F0
|
|
ldr r0, _080E68FC @ =sub_800FD9C
|
|
bl SetMainCallback2
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080E68EC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E68F4: .4byte gMain
|
|
_080E68F8: .4byte sub_80E6854
|
|
_080E68FC: .4byte sub_800FD9C
|
|
thumb_func_end sub_80E68C4
|
|
|
|
thumb_func_start sub_80E6900
|
|
sub_80E6900: @ 80E6900
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080E691C @ =gUnknown_203AAB8
|
|
ldr r1, _080E6920 @ =gUnknown_20370C0
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
ldrh r2, [r0]
|
|
cmp r2, 0x1
|
|
beq _080E6944
|
|
cmp r2, 0x1
|
|
bgt _080E6924
|
|
cmp r2, 0
|
|
beq _080E692A
|
|
b _080E69E6
|
|
.align 2, 0
|
|
_080E691C: .4byte gUnknown_203AAB8
|
|
_080E6920: .4byte gUnknown_20370C0
|
|
_080E6924:
|
|
cmp r2, 0x2
|
|
beq _080E6998
|
|
b _080E69E6
|
|
_080E692A:
|
|
ldr r1, _080E693C @ =gBattleTypeFlags
|
|
movs r0, 0x84
|
|
lsls r0, 1
|
|
str r0, [r1]
|
|
ldr r0, _080E6940 @ =gTrainerBattleOpponent_A
|
|
strh r2, [r0]
|
|
bl sub_80E61DC
|
|
b _080E6970
|
|
.align 2, 0
|
|
_080E693C: .4byte gBattleTypeFlags
|
|
_080E6940: .4byte gTrainerBattleOpponent_A
|
|
_080E6944:
|
|
movs r5, 0
|
|
ldr r6, _080E698C @ =gSaveBlock1Ptr
|
|
_080E6948:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
ldr r0, _080E6990 @ =gPlayerParty
|
|
adds r0, r4, r0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r4, 0x38
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _080E6948
|
|
_080E6970:
|
|
ldr r0, _080E6994 @ =sub_80E68C4
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
movs r0, 0
|
|
bl PlayMapChosenOrBattleBGM
|
|
bl sub_8080060
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80D08B8
|
|
b _080E69E6
|
|
.align 2, 0
|
|
_080E698C: .4byte gSaveBlock1Ptr
|
|
_080E6990: .4byte gPlayerParty
|
|
_080E6994: .4byte sub_80E68C4
|
|
_080E6998:
|
|
bl ZeroEnemyPartyMons
|
|
movs r5, 0
|
|
ldr r4, _080E69F0 @ =gSaveBlock2Ptr
|
|
_080E69A0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, _080E69F4 @ =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
adds r2, r5, 0
|
|
muls r2, r1
|
|
ldr r1, _080E69F8 @ =0x000004d4
|
|
adds r2, r1
|
|
ldr r1, [r4]
|
|
adds r1, r2
|
|
bl sub_803E0A4
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _080E69A0
|
|
ldr r1, _080E69FC @ =gBattleTypeFlags
|
|
ldr r0, _080E6A00 @ =0x00000808
|
|
str r0, [r1]
|
|
ldr r1, _080E6A04 @ =gTrainerBattleOpponent_A
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, _080E6A08 @ =sub_80E68C4
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
movs r0, 0
|
|
bl PlayMapChosenOrBattleBGM
|
|
bl sub_8080060
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80D08B8
|
|
_080E69E6:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E69F0: .4byte gSaveBlock2Ptr
|
|
_080E69F4: .4byte gEnemyParty
|
|
_080E69F8: .4byte 0x000004d4
|
|
_080E69FC: .4byte gBattleTypeFlags
|
|
_080E6A00: .4byte 0x00000808
|
|
_080E6A04: .4byte gTrainerBattleOpponent_A
|
|
_080E6A08: .4byte sub_80E68C4
|
|
thumb_func_end sub_80E6900
|
|
|
|
thumb_func_start sub_80E6A0C
|
|
sub_80E6A0C: @ 80E6A0C
|
|
push {r4-r6,lr}
|
|
ldr r1, _080E6A34 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
ldr r2, _080E6A38 @ =0x0000055c
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r5, r0, 31
|
|
ldr r0, _080E6A3C @ =gUnknown_20370C0
|
|
ldrh r0, [r0]
|
|
adds r6, r1, 0
|
|
cmp r0, 0xE
|
|
bls _080E6A28
|
|
b _080E6C80
|
|
_080E6A28:
|
|
lsls r0, 2
|
|
ldr r1, _080E6A40 @ =_080E6A44
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080E6A34: .4byte gSaveBlock2Ptr
|
|
_080E6A38: .4byte 0x0000055c
|
|
_080E6A3C: .4byte gUnknown_20370C0
|
|
_080E6A40: .4byte _080E6A44
|
|
.align 2, 0
|
|
_080E6A44:
|
|
.4byte _080E6A80
|
|
.4byte _080E6AAC
|
|
.4byte _080E6AD0
|
|
.4byte _080E6AE4
|
|
.4byte _080E6AFC
|
|
.4byte _080E6B14
|
|
.4byte _080E6B3C
|
|
.4byte _080E6BA4
|
|
.4byte _080E6BD8
|
|
.4byte _080E6C80
|
|
.4byte _080E6C00
|
|
.4byte _080E6C14
|
|
.4byte _080E6C30
|
|
.4byte _080E6C4C
|
|
.4byte _080E6C6C
|
|
_080E6A80:
|
|
ldr r0, _080E6AA0 @ =gBattleStruct
|
|
ldr r1, [r0]
|
|
adds r1, 0xDA
|
|
ldr r0, [r6]
|
|
ldr r2, _080E6AA4 @ =0x0000055e
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldr r1, _080E6AA8 @ =gSpecialVar_0x8005
|
|
ldrh r1, [r1]
|
|
strb r1, [r0]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6AA0: .4byte gBattleStruct
|
|
_080E6AA4: .4byte 0x0000055e
|
|
_080E6AA8: .4byte gSpecialVar_0x8005
|
|
_080E6AAC:
|
|
ldr r2, [r6]
|
|
ldr r0, _080E6AC8 @ =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
ldr r3, _080E6ACC @ =0x0000055c
|
|
adds r2, r3
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
ldrb r3, [r2]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6AC8: .4byte gSpecialVar_0x8005
|
|
_080E6ACC: .4byte 0x0000055c
|
|
_080E6AD0:
|
|
ldr r0, [r6]
|
|
lsls r1, r5, 1
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r1, _080E6AE0 @ =gSpecialVar_0x8005
|
|
b _080E6BC6
|
|
.align 2, 0
|
|
_080E6AE0: .4byte gSpecialVar_0x8005
|
|
_080E6AE4:
|
|
ldr r0, [r6]
|
|
lsls r1, r5, 1
|
|
ldr r3, _080E6AF4 @ =0x00000564
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r1, _080E6AF8 @ =gSpecialVar_0x8005
|
|
b _080E6BC6
|
|
.align 2, 0
|
|
_080E6AF4: .4byte 0x00000564
|
|
_080E6AF8: .4byte gSpecialVar_0x8005
|
|
_080E6AFC:
|
|
ldr r0, [r6]
|
|
ldr r1, _080E6B0C @ =gSpecialVar_0x8005
|
|
ldrh r1, [r1]
|
|
ldr r2, _080E6B10 @ =0x0000056c
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6B0C: .4byte gSpecialVar_0x8005
|
|
_080E6B10: .4byte 0x0000056c
|
|
_080E6B14:
|
|
movs r2, 0
|
|
ldr r5, _080E6B30 @ =gSaveBlock2Ptr
|
|
ldr r4, _080E6B34 @ =0x0000056d
|
|
ldr r3, _080E6B38 @ =gUnknown_203B0D4
|
|
_080E6B1C:
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, r2
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _080E6B1C
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6B30: .4byte gSaveBlock2Ptr
|
|
_080E6B34: .4byte 0x0000056d
|
|
_080E6B38: .4byte gUnknown_203B0D4
|
|
_080E6B3C:
|
|
ldr r1, [r6]
|
|
ldr r3, _080E6B94 @ =0x0000056c
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC8
|
|
bne _080E6B52
|
|
movs r2, 0x94
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
bl sub_80E7524
|
|
_080E6B52:
|
|
ldr r0, [r6]
|
|
movs r3, 0xAF
|
|
lsls r3, 3
|
|
adds r2, r0, r3
|
|
ldrh r1, [r2]
|
|
ldr r0, _080E6B98 @ =0x0000270e
|
|
cmp r1, r0
|
|
bhi _080E6B66
|
|
adds r0, r1, 0x1
|
|
strh r0, [r2]
|
|
_080E6B66:
|
|
ldr r1, [r6]
|
|
lsls r5, 1
|
|
movs r4, 0xAC
|
|
lsls r4, 3
|
|
adds r1, r4
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
bl sub_80E6E48
|
|
ldr r1, _080E6B9C @ =gUnknown_20370D0
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _080E6BA0 @ =gStringVar1
|
|
adds r0, 0xA1
|
|
strb r0, [r1]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x1]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6B94: .4byte 0x0000056c
|
|
_080E6B98: .4byte 0x0000270e
|
|
_080E6B9C: .4byte gUnknown_20370D0
|
|
_080E6BA0: .4byte gStringVar1
|
|
_080E6BA4:
|
|
ldr r0, [r6]
|
|
lsls r5, 1
|
|
ldr r4, _080E6BCC @ =0x00000564
|
|
adds r0, r4
|
|
adds r2, r0, r5
|
|
ldrh r1, [r2]
|
|
ldr r0, _080E6BD0 @ =0x00000595
|
|
cmp r1, r0
|
|
bhi _080E6BBA
|
|
adds r0, r1, 0x1
|
|
strh r0, [r2]
|
|
_080E6BBA:
|
|
bl sub_80E6E48
|
|
ldr r0, _080E6BD4 @ =gUnknown_20370D0
|
|
ldr r1, [r6]
|
|
adds r1, r4
|
|
adds r1, r5
|
|
_080E6BC6:
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6BCC: .4byte 0x00000564
|
|
_080E6BD0: .4byte 0x00000595
|
|
_080E6BD4: .4byte gUnknown_20370D0
|
|
_080E6BD8:
|
|
ldr r3, [r6]
|
|
ldr r0, _080E6BF8 @ =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
ldr r1, _080E6BFC @ =0x0000055c
|
|
adds r3, r1
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
ldrb r2, [r3]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6BF8: .4byte gSpecialVar_0x8005
|
|
_080E6BFC: .4byte 0x0000055c
|
|
_080E6C00:
|
|
ldr r0, [r6]
|
|
ldr r2, _080E6C10 @ =0x0000057a
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
movs r0, 0x20
|
|
bl sub_8054F00
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6C10: .4byte 0x0000057a
|
|
_080E6C14:
|
|
ldr r0, [r6]
|
|
ldr r3, _080E6C2C @ =0x0000055e
|
|
adds r0, r3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
beq _080E6C80
|
|
adds r0, r5, 0
|
|
bl sub_80E5A38
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6C2C: .4byte 0x0000055e
|
|
_080E6C30:
|
|
ldr r1, [r6]
|
|
ldr r0, _080E6C44 @ =0x0000055e
|
|
adds r1, r0
|
|
adds r1, r5
|
|
ldr r0, _080E6C48 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xDA
|
|
ldrb r0, [r0]
|
|
b _080E6C7E
|
|
.align 2, 0
|
|
_080E6C44: .4byte 0x0000055e
|
|
_080E6C48: .4byte gBattleStruct
|
|
_080E6C4C:
|
|
adds r0, r5, 0
|
|
bl sub_80E7188
|
|
ldr r1, _080E6C64 @ =gSaveBlock2Ptr
|
|
ldr r1, [r1]
|
|
lsls r2, r5, 1
|
|
ldr r3, _080E6C68 @ =0x0000057c
|
|
adds r1, r3
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
b _080E6C80
|
|
.align 2, 0
|
|
_080E6C64: .4byte gSaveBlock2Ptr
|
|
_080E6C68: .4byte 0x0000057c
|
|
_080E6C6C:
|
|
ldr r1, [r6]
|
|
ldr r2, _080E6C88 @ =0x0000055c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
movs r3, 0xB0
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
_080E6C7E:
|
|
strb r0, [r1]
|
|
_080E6C80:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6C88: .4byte 0x0000055c
|
|
thumb_func_end sub_80E6A0C
|
|
|
|
thumb_func_start sub_80E6C8C
|
|
sub_80E6C8C: @ 80E6C8C
|
|
push {r4,lr}
|
|
ldr r1, _080E6CB4 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
ldr r2, _080E6CB8 @ =0x0000055c
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r4, r0, 31
|
|
ldr r0, _080E6CBC @ =gUnknown_20370C0
|
|
ldrh r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0xE
|
|
bls _080E6CA8
|
|
b _080E6E08
|
|
_080E6CA8:
|
|
lsls r0, 2
|
|
ldr r1, _080E6CC0 @ =_080E6CC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080E6CB4: .4byte gSaveBlock2Ptr
|
|
_080E6CB8: .4byte 0x0000055c
|
|
_080E6CBC: .4byte gUnknown_20370C0
|
|
_080E6CC0: .4byte _080E6CC4
|
|
.align 2, 0
|
|
_080E6CC4:
|
|
.4byte _080E6D00
|
|
.4byte _080E6D14
|
|
.4byte _080E6D2C
|
|
.4byte _080E6D3C
|
|
.4byte _080E6D58
|
|
.4byte _080E6E08
|
|
.4byte _080E6E08
|
|
.4byte _080E6E08
|
|
.4byte _080E6D70
|
|
.4byte _080E6D8C
|
|
.4byte _080E6D9C
|
|
.4byte _080E6DB0
|
|
.4byte _080E6DB8
|
|
.4byte _080E6DD4
|
|
.4byte _080E6DF4
|
|
_080E6D00:
|
|
ldr r0, _080E6D0C @ =gUnknown_20370D0
|
|
ldr r1, [r3]
|
|
ldr r3, _080E6D10 @ =0x0000055e
|
|
adds r1, r3
|
|
adds r1, r4
|
|
b _080E6D60
|
|
.align 2, 0
|
|
_080E6D0C: .4byte gUnknown_20370D0
|
|
_080E6D10: .4byte 0x0000055e
|
|
_080E6D14:
|
|
ldr r0, _080E6D24 @ =gUnknown_20370D0
|
|
ldr r1, [r3]
|
|
ldr r2, _080E6D28 @ =0x0000055c
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 31
|
|
b _080E6D7C
|
|
.align 2, 0
|
|
_080E6D24: .4byte gUnknown_20370D0
|
|
_080E6D28: .4byte 0x0000055c
|
|
_080E6D2C:
|
|
ldr r2, _080E6D38 @ =gUnknown_20370D0
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 1
|
|
movs r3, 0xAC
|
|
lsls r3, 3
|
|
b _080E6D44
|
|
.align 2, 0
|
|
_080E6D38: .4byte gUnknown_20370D0
|
|
_080E6D3C:
|
|
ldr r2, _080E6D50 @ =gUnknown_20370D0
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 1
|
|
ldr r3, _080E6D54 @ =0x00000564
|
|
_080E6D44:
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6D50: .4byte gUnknown_20370D0
|
|
_080E6D54: .4byte 0x00000564
|
|
_080E6D58:
|
|
ldr r0, _080E6D68 @ =gUnknown_20370D0
|
|
ldr r1, [r3]
|
|
ldr r2, _080E6D6C @ =0x0000056c
|
|
adds r1, r2
|
|
_080E6D60:
|
|
ldrb r1, [r1]
|
|
strh r1, [r0]
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6D68: .4byte gUnknown_20370D0
|
|
_080E6D6C: .4byte 0x0000056c
|
|
_080E6D70:
|
|
ldr r0, _080E6D84 @ =gUnknown_20370D0
|
|
ldr r1, [r3]
|
|
ldr r3, _080E6D88 @ =0x0000055c
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 30
|
|
_080E6D7C:
|
|
lsrs r1, 31
|
|
strh r1, [r0]
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6D84: .4byte gUnknown_20370D0
|
|
_080E6D88: .4byte 0x0000055c
|
|
_080E6D8C:
|
|
adds r0, r4, 0
|
|
bl sub_80E7188
|
|
ldr r1, _080E6D98 @ =gUnknown_20370D0
|
|
strh r0, [r1]
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6D98: .4byte gUnknown_20370D0
|
|
_080E6D9C:
|
|
ldr r0, [r3]
|
|
ldr r1, _080E6DAC @ =0x0000057a
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x20
|
|
bl sub_8054F00
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6DAC: .4byte 0x0000057a
|
|
_080E6DB0:
|
|
adds r0, r4, 0
|
|
bl sub_80E5A38
|
|
b _080E6E08
|
|
_080E6DB8:
|
|
ldr r1, [r3]
|
|
ldr r2, _080E6DCC @ =0x0000055e
|
|
adds r1, r2
|
|
adds r1, r4
|
|
ldr r0, _080E6DD0 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xDA
|
|
ldrb r0, [r0]
|
|
b _080E6E06
|
|
.align 2, 0
|
|
_080E6DCC: .4byte 0x0000055e
|
|
_080E6DD0: .4byte gBattleStruct
|
|
_080E6DD4:
|
|
adds r0, r4, 0
|
|
bl sub_80E7188
|
|
ldr r1, _080E6DEC @ =gSaveBlock2Ptr
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 1
|
|
ldr r3, _080E6DF0 @ =0x0000057c
|
|
adds r1, r3
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
b _080E6E08
|
|
.align 2, 0
|
|
_080E6DEC: .4byte gSaveBlock2Ptr
|
|
_080E6DF0: .4byte 0x0000057c
|
|
_080E6DF4:
|
|
ldr r1, [r3]
|
|
ldr r2, _080E6E10 @ =0x0000055c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
movs r3, 0xB0
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
_080E6E06:
|
|
strb r0, [r1]
|
|
_080E6E08:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6E10: .4byte 0x0000055c
|
|
thumb_func_end sub_80E6C8C
|
|
|
|
thumb_func_start sub_80E6E14
|
|
sub_80E6E14: @ 80E6E14
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, _080E6E3C @ =gUnknown_203B0D4
|
|
ldr r4, _080E6E40 @ =gSaveBlock2Ptr
|
|
ldr r3, _080E6E44 @ =0x0000056d
|
|
_080E6E1E:
|
|
adds r0, r2, r5
|
|
ldr r1, [r4]
|
|
adds r1, r3
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _080E6E1E
|
|
bl sub_80A03D8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6E3C: .4byte gUnknown_203B0D4
|
|
_080E6E40: .4byte gSaveBlock2Ptr
|
|
_080E6E44: .4byte 0x0000056d
|
|
thumb_func_end sub_80E6E14
|
|
|
|
thumb_func_start sub_80E6E48
|
|
sub_80E6E48: @ 80E6E48
|
|
push {r4-r6,lr}
|
|
ldr r6, _080E6E98 @ =gSaveBlock2Ptr
|
|
ldr r0, [r6]
|
|
ldr r1, _080E6E9C @ =0x0000055c
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
lsls r4, 31
|
|
lsrs r4, 31
|
|
adds r0, r4, 0
|
|
bl sub_80E7188
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, [r6]
|
|
lsls r4, 1
|
|
movs r2, 0xAD
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1]
|
|
cmp r0, r5
|
|
bcs _080E6E76
|
|
strh r5, [r1]
|
|
_080E6E76:
|
|
ldr r0, [r6]
|
|
adds r2, r0, r2
|
|
ldr r3, _080E6EA0 @ =0x0000056a
|
|
adds r1, r0, r3
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bls _080E6EA8
|
|
adds r5, r0, 0
|
|
movs r0, 0x20
|
|
adds r1, r5, 0
|
|
bl sub_8054F00
|
|
ldr r1, _080E6EA4 @ =0x0000270f
|
|
cmp r5, r1
|
|
bhi _080E6EB8
|
|
b _080E6ECC
|
|
.align 2, 0
|
|
_080E6E98: .4byte gSaveBlock2Ptr
|
|
_080E6E9C: .4byte 0x0000055c
|
|
_080E6EA0: .4byte 0x0000056a
|
|
_080E6EA4: .4byte 0x0000270f
|
|
_080E6EA8:
|
|
ldrh r5, [r1]
|
|
movs r0, 0x20
|
|
adds r1, r5, 0
|
|
bl sub_8054F00
|
|
ldr r1, _080E6EC4 @ =0x0000270f
|
|
cmp r5, r1
|
|
bls _080E6ECC
|
|
_080E6EB8:
|
|
ldr r0, [r6]
|
|
ldr r2, _080E6EC8 @ =0x0000057a
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
b _080E6ED4
|
|
.align 2, 0
|
|
_080E6EC4: .4byte 0x0000270f
|
|
_080E6EC8: .4byte 0x0000057a
|
|
_080E6ECC:
|
|
ldr r0, [r6]
|
|
ldr r3, _080E6EDC @ =0x0000057a
|
|
adds r0, r3
|
|
strh r5, [r0]
|
|
_080E6ED4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6EDC: .4byte 0x0000057a
|
|
thumb_func_end sub_80E6E48
|
|
|
|
thumb_func_start sub_80E6EE0
|
|
sub_80E6EE0: @ 80E6EE0
|
|
push {r4-r6,lr}
|
|
ldr r0, _080E6F00 @ =gSaveBlock2Ptr
|
|
ldr r2, [r0]
|
|
adds r5, r2, 0
|
|
adds r5, 0xB0
|
|
ldr r1, _080E6F04 @ =0x0000055c
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r6, r0, 31
|
|
ldrb r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
beq _080E6F0C
|
|
ldr r4, _080E6F08 @ =gUnknown_84020C4
|
|
b _080E6F0E
|
|
.align 2, 0
|
|
_080E6F00: .4byte gSaveBlock2Ptr
|
|
_080E6F04: .4byte 0x0000055c
|
|
_080E6F08: .4byte gUnknown_84020C4
|
|
_080E6F0C:
|
|
ldr r4, _080E6FA0 @ =gUnknown_84020C4
|
|
_080E6F0E:
|
|
ldrb r0, [r2, 0xA]
|
|
ldrb r1, [r2, 0xB]
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0xC]
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0xD]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strb r6, [r5]
|
|
strb r0, [r5, 0x1]
|
|
adds r0, r5, 0
|
|
adds r0, 0xC
|
|
ldr r4, _080E6FA4 @ =gSaveBlock2Ptr
|
|
ldr r1, [r4]
|
|
adds r1, 0xA
|
|
bl CopyUnalignedWord
|
|
adds r0, r5, 0x4
|
|
ldr r1, [r4]
|
|
bl StringCopy7
|
|
adds r0, r6, 0
|
|
bl sub_80E7188
|
|
strh r0, [r5, 0x2]
|
|
movs r4, 0
|
|
ldr r6, _080E6FA8 @ =gSaveBlock1Ptr
|
|
ldr r3, _080E6FAC @ =0x00002cac
|
|
adds r2, r5, 0
|
|
adds r2, 0x10
|
|
_080E6F52:
|
|
lsls r0, r4, 1
|
|
ldr r1, [r6]
|
|
adds r1, r3
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _080E6F52
|
|
movs r4, 0
|
|
_080E6F68:
|
|
ldr r6, _080E6FA4 @ =gSaveBlock2Ptr
|
|
ldr r0, [r6]
|
|
ldr r1, _080E6FB0 @ =0x0000056d
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080E6FB4 @ =gUnknown_2024220
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
muls r1, r4
|
|
adds r1, 0x1C
|
|
adds r1, r5, r1
|
|
bl sub_803E23C
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080E6F68
|
|
ldr r0, [r6]
|
|
adds r0, 0xB0
|
|
bl SetBattleTowerRecordChecksum
|
|
bl sub_80E6E48
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E6FA0: .4byte gUnknown_84020C4
|
|
_080E6FA4: .4byte gSaveBlock2Ptr
|
|
_080E6FA8: .4byte gSaveBlock1Ptr
|
|
_080E6FAC: .4byte 0x00002cac
|
|
_080E6FB0: .4byte 0x0000056d
|
|
_080E6FB4: .4byte gUnknown_2024220
|
|
thumb_func_end sub_80E6EE0
|
|
|
|
thumb_func_start sub_80E6FB8
|
|
sub_80E6FB8: @ 80E6FB8
|
|
push {r4,r5,lr}
|
|
ldr r0, _080E703C @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
ldr r2, _080E7040 @ =0x0000055c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r5, r0, 31
|
|
ldr r0, _080E7044 @ =gUnknown_20370C0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x3
|
|
beq _080E6FD4
|
|
cmp r0, 0
|
|
bne _080E6FF2
|
|
_080E6FD4:
|
|
lsls r2, r5, 1
|
|
ldr r3, _080E7048 @ =0x00000564
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _080E6FEE
|
|
subs r3, 0x4
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080E6FF2
|
|
_080E6FEE:
|
|
bl sub_80E6EE0
|
|
_080E6FF2:
|
|
bl sub_80E712C
|
|
ldr r4, _080E703C @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
ldr r1, _080E704C @ =gUnknown_2023E8A
|
|
ldrb r1, [r1]
|
|
ldr r2, _080E7050 @ =0x0000055d
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, _080E7044 @ =gUnknown_20370C0
|
|
ldrh r1, [r0]
|
|
cmp r1, 0x3
|
|
beq _080E7016
|
|
ldr r0, [r4]
|
|
ldr r3, _080E7054 @ =0x0000055e
|
|
adds r0, r3
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
_080E7016:
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0
|
|
bl VarSet
|
|
ldr r1, [r4]
|
|
ldr r0, _080E7040 @ =0x0000055c
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x2
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
bl TrySavingData
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E703C: .4byte gSaveBlock2Ptr
|
|
_080E7040: .4byte 0x0000055c
|
|
_080E7044: .4byte gUnknown_20370C0
|
|
_080E7048: .4byte 0x00000564
|
|
_080E704C: .4byte gUnknown_2023E8A
|
|
_080E7050: .4byte 0x0000055d
|
|
_080E7054: .4byte 0x0000055e
|
|
thumb_func_end sub_80E6FB8
|
|
|
|
thumb_func_start sub_80E7058
|
|
sub_80E7058: @ 80E7058
|
|
push {lr}
|
|
bl DoSoftReset
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E7058
|
|
|
|
thumb_func_start sub_80E7064
|
|
sub_80E7064: @ 80E7064
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _080E70F0 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
movs r3, 0
|
|
movs r2, 0
|
|
adds r1, r0, 0
|
|
adds r1, 0xB0
|
|
_080E7076:
|
|
ldm r1!, {r0}
|
|
adds r3, r0
|
|
adds r2, 0x1
|
|
cmp r2, 0x27
|
|
bls _080E7076
|
|
ldr r5, _080E70F0 @ =gSaveBlock2Ptr
|
|
ldr r1, [r5]
|
|
movs r2, 0xA8
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
beq _080E7098
|
|
adds r0, r1, 0
|
|
adds r0, 0xB0
|
|
bl ClearBattleTowerRecord
|
|
_080E7098:
|
|
movs r4, 0
|
|
adds r7, r5, 0
|
|
movs r6, 0xA4
|
|
mov r8, r7
|
|
_080E70A0:
|
|
adds r0, r4, 0
|
|
muls r0, r6
|
|
movs r3, 0xAA
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
ldr r1, [r7]
|
|
movs r3, 0
|
|
movs r2, 0
|
|
adds r5, r4, 0x1
|
|
adds r1, r0
|
|
_080E70B4:
|
|
ldm r1!, {r0}
|
|
adds r3, r0
|
|
adds r2, 0x1
|
|
cmp r2, 0x27
|
|
bls _080E70B4
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r1, r4, 0
|
|
muls r1, r6
|
|
movs r4, 0xFA
|
|
lsls r4, 1
|
|
adds r0, r2, r4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
beq _080E70E0
|
|
movs r3, 0xAA
|
|
lsls r3, 1
|
|
adds r0, r1, r3
|
|
adds r0, r2, r0
|
|
bl ClearBattleTowerRecord
|
|
_080E70E0:
|
|
adds r4, r5, 0
|
|
cmp r4, 0x4
|
|
ble _080E70A0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E70F0: .4byte gSaveBlock2Ptr
|
|
thumb_func_end sub_80E7064
|
|
|
|
thumb_func_start SetBattleTowerRecordChecksum
|
|
SetBattleTowerRecordChecksum: @ 80E70F4
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
adds r2, 0xA0
|
|
movs r1, 0
|
|
str r1, [r2]
|
|
movs r3, 0
|
|
adds r4, r0, 0
|
|
_080E7102:
|
|
ldr r0, [r2]
|
|
ldm r4!, {r1}
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x27
|
|
bls _080E7102
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetBattleTowerRecordChecksum
|
|
|
|
thumb_func_start ClearBattleTowerRecord
|
|
ClearBattleTowerRecord: @ 80E7118
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0
|
|
_080E711E:
|
|
stm r0!, {r2}
|
|
adds r1, 0x1
|
|
cmp r1, 0x28
|
|
bls _080E711E
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ClearBattleTowerRecord
|
|
|
|
thumb_func_start sub_80E712C
|
|
sub_80E712C: @ 80E712C
|
|
push {r4,r5,lr}
|
|
ldr r4, _080E7174 @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
ldr r1, _080E7178 @ =0x0000048c
|
|
adds r0, r1
|
|
bl sub_80E6150
|
|
ldr r1, [r4]
|
|
ldr r3, _080E717C @ =gBattleMons
|
|
adds r0, r3, 0
|
|
adds r0, 0x58
|
|
ldrh r2, [r0]
|
|
ldr r5, _080E7180 @ =0x0000048a
|
|
adds r0, r1, r5
|
|
strh r2, [r0]
|
|
ldrh r0, [r3]
|
|
movs r2, 0x91
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
movs r2, 0
|
|
adds r5, r4, 0
|
|
ldr r4, _080E7184 @ =0x00000494
|
|
adds r3, 0x30
|
|
_080E715C:
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, r2
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080E715C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7174: .4byte gSaveBlock2Ptr
|
|
_080E7178: .4byte 0x0000048c
|
|
_080E717C: .4byte gBattleMons
|
|
_080E7180: .4byte 0x0000048a
|
|
_080E7184: .4byte 0x00000494
|
|
thumb_func_end sub_80E712C
|
|
|
|
thumb_func_start sub_80E7188
|
|
sub_80E7188: @ 80E7188
|
|
push {lr}
|
|
lsls r0, 24
|
|
ldr r1, _080E71C0 @ =gSaveBlock2Ptr
|
|
ldr r3, [r1]
|
|
lsrs r0, 23
|
|
ldr r2, _080E71C4 @ =0x00000564
|
|
adds r1, r3, r2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
subs r2, 0x1
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
movs r2, 0xAC
|
|
lsls r2, 3
|
|
adds r3, r2
|
|
adds r3, r0
|
|
ldr r0, _080E71C8 @ =0x0000ffff
|
|
adds r1, r0
|
|
ldrh r3, [r3]
|
|
adds r1, r3
|
|
lsls r1, 16
|
|
lsrs r0, r1, 16
|
|
ldr r1, _080E71CC @ =0x0000270f
|
|
cmp r0, r1
|
|
bls _080E71BC
|
|
adds r0, r1, 0
|
|
_080E71BC:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080E71C0: .4byte gSaveBlock2Ptr
|
|
_080E71C4: .4byte 0x00000564
|
|
_080E71C8: .4byte 0x0000ffff
|
|
_080E71CC: .4byte 0x0000270f
|
|
thumb_func_end sub_80E7188
|
|
|
|
thumb_func_start sub_80E71D0
|
|
sub_80E71D0: @ 80E71D0
|
|
push {r4,r5,lr}
|
|
ldr r4, _080E7214 @ =gSaveBlock2Ptr
|
|
ldr r1, [r4]
|
|
ldr r2, _080E7218 @ =0x0000055c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
lsls r0, 1
|
|
adds r2, 0x8
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
cmp r0, 0x5
|
|
ble _080E7220
|
|
bl Random
|
|
ldr r4, [r4]
|
|
ldr r5, _080E721C @ =gUnknown_84020E6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x9
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 15
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
movs r1, 0xAE
|
|
lsls r1, 3
|
|
adds r4, r1
|
|
b _080E7240
|
|
.align 2, 0
|
|
_080E7214: .4byte gSaveBlock2Ptr
|
|
_080E7218: .4byte 0x0000055c
|
|
_080E721C: .4byte gUnknown_84020E6
|
|
_080E7220:
|
|
bl Random
|
|
ldr r4, [r4]
|
|
ldr r5, _080E7248 @ =gUnknown_84020DA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 15
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
movs r2, 0xAE
|
|
lsls r2, 3
|
|
adds r4, r2
|
|
_080E7240:
|
|
strh r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7248: .4byte gUnknown_84020DA
|
|
thumb_func_end sub_80E71D0
|
|
|
|
thumb_func_start sub_80E724C
|
|
sub_80E724C: @ 80E724C
|
|
push {r4-r6,lr}
|
|
ldr r5, _080E7288 @ =gSaveBlock2Ptr
|
|
ldr r1, [r5]
|
|
ldr r2, _080E728C @ =0x0000055c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r6, r0, 31
|
|
movs r0, 0xAE
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
movs r1, 0x1
|
|
bl sub_809A084
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bne _080E7298
|
|
ldr r0, [r5]
|
|
movs r1, 0xAE
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldr r1, _080E7290 @ =gStringVar1
|
|
bl sub_8099E90
|
|
ldr r0, _080E7294 @ =gUnknown_20370D0
|
|
strh r4, [r0]
|
|
b _080E72AA
|
|
.align 2, 0
|
|
_080E7288: .4byte gSaveBlock2Ptr
|
|
_080E728C: .4byte 0x0000055c
|
|
_080E7290: .4byte gStringVar1
|
|
_080E7294: .4byte gUnknown_20370D0
|
|
_080E7298:
|
|
ldr r1, _080E72B0 @ =gUnknown_20370D0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r5]
|
|
ldr r2, _080E72B4 @ =0x0000055e
|
|
adds r0, r2
|
|
adds r0, r6
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
_080E72AA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E72B0: .4byte gUnknown_20370D0
|
|
_080E72B4: .4byte 0x0000055e
|
|
thumb_func_end sub_80E724C
|
|
|
|
thumb_func_start sub_80E72B8
|
|
sub_80E72B8: @ 80E72B8
|
|
push {r4-r7,lr}
|
|
ldr r0, _080E7334 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E7338 @ =0x0000055c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r0, 0
|
|
movs r7, 0x44
|
|
cmp r1, 0
|
|
beq _080E72D2
|
|
movs r7, 0x45
|
|
_080E72D2:
|
|
ldr r4, _080E733C @ =gUnknown_20370D0
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
adds r0, r1, 0
|
|
bl sub_80E7188
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x37
|
|
bls _080E7320
|
|
movs r5, 0
|
|
adds r6, r4, 0
|
|
_080E72EA:
|
|
ldr r0, _080E7334 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E7340 @ =0x0000056d
|
|
adds r0, r1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, _080E7344 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _080E731A
|
|
movs r0, 0x1
|
|
strh r0, [r6]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl SetMonData
|
|
_080E731A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _080E72EA
|
|
_080E7320:
|
|
ldr r0, _080E733C @ =gUnknown_20370D0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _080E732E
|
|
movs r0, 0x2A
|
|
bl IncrementGameStat
|
|
_080E732E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7334: .4byte gSaveBlock2Ptr
|
|
_080E7338: .4byte 0x0000055c
|
|
_080E733C: .4byte gUnknown_20370D0
|
|
_080E7340: .4byte 0x0000056d
|
|
_080E7344: .4byte gPlayerParty
|
|
thumb_func_end sub_80E72B8
|
|
|
|
thumb_func_start sub_80E7348
|
|
sub_80E7348: @ 80E7348
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r1, _080E7368 @ =gSaveBlock2Ptr
|
|
ldr r2, [r1]
|
|
movs r0, 0x94
|
|
lsls r0, 3
|
|
adds r7, r2, r0
|
|
ldrb r0, [r2, 0x8]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _080E7370
|
|
ldr r4, _080E736C @ =gUnknown_84020C4
|
|
b _080E7372
|
|
.align 2, 0
|
|
_080E7368: .4byte gSaveBlock2Ptr
|
|
_080E736C: .4byte gUnknown_84020C4
|
|
_080E7370:
|
|
ldr r4, _080E7410 @ =gUnknown_84020C4
|
|
_080E7372:
|
|
ldrb r0, [r2, 0xA]
|
|
ldrb r1, [r2, 0xB]
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0xC]
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0xD]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl __umodsi3
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r7, 0x1]
|
|
adds r0, r7, 0
|
|
adds r0, 0xC
|
|
ldr r1, [r5]
|
|
adds r1, 0xA
|
|
bl CopyUnalignedWord
|
|
adds r0, r7, 0x4
|
|
ldr r1, [r5]
|
|
bl StringCopy7
|
|
movs r0, 0x1
|
|
strh r0, [r7, 0x2]
|
|
movs r6, 0x7
|
|
movs r4, 0
|
|
ldr r0, _080E7414 @ =gSaveBlock1Ptr
|
|
mov r8, r0
|
|
adds r5, r7, 0
|
|
adds r5, 0x10
|
|
ldr r1, _080E7418 @ =0x00002cac
|
|
mov r12, r1
|
|
adds r3, r7, 0
|
|
adds r3, 0x28
|
|
adds r2, r7, 0
|
|
adds r2, 0x1C
|
|
_080E73BC:
|
|
lsls r0, r4, 1
|
|
mov r9, r0
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
add r0, r12
|
|
add r0, r9
|
|
ldrh r0, [r0]
|
|
strh r0, [r5]
|
|
strh r6, [r2]
|
|
adds r0, r6, 0x6
|
|
strh r0, [r3]
|
|
adds r6, 0x1
|
|
adds r5, 0x2
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _080E73BC
|
|
movs r4, 0
|
|
_080E73E2:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, _080E741C @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2C
|
|
muls r1, r4
|
|
adds r1, 0x34
|
|
adds r1, r7, r1
|
|
bl sub_803E23C
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080E73E2
|
|
adds r0, r7, 0
|
|
bl sub_80E7500
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7410: .4byte gUnknown_84020C4
|
|
_080E7414: .4byte gSaveBlock1Ptr
|
|
_080E7418: .4byte 0x00002cac
|
|
_080E741C: .4byte gPlayerParty
|
|
thumb_func_end sub_80E7348
|
|
|
|
thumb_func_start GetEreaderTrainerFrontSpriteId
|
|
GetEreaderTrainerFrontSpriteId: @ 80E7420
|
|
ldr r1, _080E7434 @ =gFacilityClassToPicIndex
|
|
ldr r0, _080E7438 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, _080E743C @ =0x000004a1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080E7434: .4byte gFacilityClassToPicIndex
|
|
_080E7438: .4byte gSaveBlock2Ptr
|
|
_080E743C: .4byte 0x000004a1
|
|
thumb_func_end GetEreaderTrainerFrontSpriteId
|
|
|
|
thumb_func_start GetEreaderTrainerClassId
|
|
GetEreaderTrainerClassId: @ 80E7440
|
|
ldr r1, _080E7454 @ =gFacilityClassToTrainerClass
|
|
ldr r0, _080E7458 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, _080E745C @ =0x000004a1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080E7454: .4byte gFacilityClassToTrainerClass
|
|
_080E7458: .4byte gSaveBlock2Ptr
|
|
_080E745C: .4byte 0x000004a1
|
|
thumb_func_end GetEreaderTrainerClassId
|
|
|
|
thumb_func_start sub_80E7460
|
|
sub_80E7460: @ 80E7460
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r0, _080E7488 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E748C @ =0x000004a4
|
|
adds r4, r0, r1
|
|
_080E746E:
|
|
adds r0, r3, r2
|
|
adds r1, r4, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x4
|
|
ble _080E746E
|
|
adds r1, r3, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7488: .4byte gSaveBlock2Ptr
|
|
_080E748C: .4byte 0x000004a4
|
|
thumb_func_end sub_80E7460
|
|
|
|
thumb_func_start sub_80E7490
|
|
sub_80E7490: @ 80E7490
|
|
push {r4-r6,lr}
|
|
ldr r2, _080E74C0 @ =gUnknown_20370D0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
ldr r1, _080E74C4 @ =gSaveBlock2Ptr
|
|
ldr r0, [r1]
|
|
movs r3, 0x94
|
|
lsls r3, 3
|
|
adds r5, r0, r3
|
|
movs r4, 0
|
|
movs r3, 0
|
|
adds r6, r1, 0
|
|
adds r1, r5, 0
|
|
_080E74AA:
|
|
ldm r1!, {r0}
|
|
orrs r4, r0
|
|
adds r3, 0x1
|
|
cmp r3, 0x2D
|
|
bls _080E74AA
|
|
cmp r4, 0
|
|
bne _080E74C8
|
|
movs r0, 0x1
|
|
strh r0, [r2]
|
|
b _080E74F6
|
|
.align 2, 0
|
|
_080E74C0: .4byte gUnknown_20370D0
|
|
_080E74C4: .4byte gSaveBlock2Ptr
|
|
_080E74C8:
|
|
movs r4, 0
|
|
movs r3, 0
|
|
adds r2, r5, 0
|
|
_080E74CE:
|
|
ldm r2!, {r0}
|
|
adds r4, r0
|
|
adds r3, 0x1
|
|
cmp r3, 0x2D
|
|
bls _080E74CE
|
|
ldr r1, [r6]
|
|
movs r2, 0xAB
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
beq _080E74F6
|
|
movs r3, 0x94
|
|
lsls r3, 3
|
|
adds r0, r1, r3
|
|
bl sub_80E7524
|
|
ldr r1, _080E74FC @ =gUnknown_20370D0
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
_080E74F6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E74FC: .4byte gUnknown_20370D0
|
|
thumb_func_end sub_80E7490
|
|
|
|
thumb_func_start sub_80E7500
|
|
sub_80E7500: @ 80E7500
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
adds r2, 0xB8
|
|
movs r1, 0
|
|
str r1, [r2]
|
|
movs r3, 0
|
|
adds r4, r0, 0
|
|
_080E750E:
|
|
ldr r0, [r2]
|
|
ldm r4!, {r1}
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x2D
|
|
bls _080E750E
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E7500
|
|
|
|
thumb_func_start sub_80E7524
|
|
sub_80E7524: @ 80E7524
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0
|
|
_080E752A:
|
|
stm r0!, {r2}
|
|
adds r1, 0x1
|
|
cmp r1, 0x2E
|
|
bls _080E752A
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E7524
|
|
|
|
thumb_func_start sub_80E7538
|
|
sub_80E7538: @ 80E7538
|
|
push {lr}
|
|
ldr r0, _080E754C @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x96
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
bl sub_80E678C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E754C: .4byte gSaveBlock2Ptr
|
|
thumb_func_end sub_80E7538
|
|
|
|
thumb_func_start sub_80E7550
|
|
sub_80E7550: @ 80E7550
|
|
push {lr}
|
|
ldr r0, _080E7564 @ =gUnknown_2023E8A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _080E756C
|
|
ldr r1, _080E7568 @ =gStringVar4
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
b _080E7590
|
|
.align 2, 0
|
|
_080E7564: .4byte gUnknown_2023E8A
|
|
_080E7568: .4byte gStringVar4
|
|
_080E756C:
|
|
cmp r0, 0x1
|
|
bne _080E7584
|
|
ldr r0, _080E7580 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x99
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
bl sub_80E678C
|
|
b _080E7590
|
|
.align 2, 0
|
|
_080E7580: .4byte gSaveBlock2Ptr
|
|
_080E7584:
|
|
ldr r0, _080E7594 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _080E7598 @ =0x000004bc
|
|
adds r0, r1
|
|
bl sub_80E678C
|
|
_080E7590:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080E7594: .4byte gSaveBlock2Ptr
|
|
_080E7598: .4byte 0x000004bc
|
|
thumb_func_end sub_80E7550
|
|
|
|
thumb_func_start sub_80E759C
|
|
sub_80E759C: @ 80E759C
|
|
push {lr}
|
|
movs r0, 0x1
|
|
_080E75A0:
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _080E75A0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80E759C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|