mirror of
https://github.com/pret/pokefirered.git
synced 2026-06-02 22:04:27 -05:00
5694 lines
90 KiB
ArmAsm
5694 lines
90 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80423A4
|
|
sub_80423A4: @ 80423A4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r2, 0
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
movs r1, 0x37
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
str r1, [sp]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08042408
|
|
mvns r4, r4
|
|
ands r1, r4
|
|
str r1, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0x37
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
ldr r0, _080423FC @ =gMain
|
|
ldr r1, _08042400 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080423F6
|
|
cmp r6, 0x4
|
|
beq _080423F6
|
|
ldr r0, _08042404 @ =gBattleMons
|
|
movs r1, 0x58
|
|
muls r1, r6
|
|
adds r0, 0x4C
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r4
|
|
str r0, [r1]
|
|
_080423F6:
|
|
movs r0, 0
|
|
b _0804240A
|
|
.align 2, 0
|
|
_080423FC: .4byte gMain
|
|
_08042400: .4byte 0x00000439
|
|
_08042404: .4byte gBattleMons
|
|
_08042408:
|
|
movs r0, 0x1
|
|
_0804240A:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80423A4
|
|
|
|
thumb_func_start sub_8042414
|
|
sub_8042414: @ 8042414
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x4]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x8]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
movs r1, 0x6
|
|
mov r10, r1
|
|
movs r2, 0
|
|
str r2, [sp, 0x18]
|
|
movs r0, 0x4
|
|
str r0, [sp, 0x1C]
|
|
mov r0, r8
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
beq _08042458
|
|
bl ItemId_GetHoldEffect
|
|
_08042458:
|
|
ldr r1, _080424B0 @ =gUnknown_2023D6F
|
|
ldr r0, _080424B4 @ =gUnknown_2024004
|
|
ldrb r2, [r0]
|
|
strb r2, [r1]
|
|
ldr r0, _080424B8 @ =gMain
|
|
ldr r1, _080424BC @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080424F8
|
|
ldr r0, _080424C0 @ =gActiveBattler
|
|
strb r2, [r0]
|
|
ldrb r0, [r0]
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
str r1, [sp, 0xC]
|
|
ldr r0, _080424C4 @ =gUnknown_2023BCC
|
|
ldr r4, [sp]
|
|
subs r4, 0xD
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _08042504
|
|
ldr r2, _080424C8 @ =gBattlerPartyIndexes
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r3, [r0]
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
adds r5, r0, 0
|
|
cmp r3, r1
|
|
bne _080424CC
|
|
ldr r2, [sp, 0xC]
|
|
str r2, [sp, 0x1C]
|
|
b _08042504
|
|
.align 2, 0
|
|
_080424B0: .4byte gUnknown_2023D6F
|
|
_080424B4: .4byte gUnknown_2024004
|
|
_080424B8: .4byte gMain
|
|
_080424BC: .4byte 0x00000439
|
|
_080424C0: .4byte gActiveBattler
|
|
_080424C4: .4byte gUnknown_2023BCC
|
|
_080424C8: .4byte gBattlerPartyIndexes
|
|
_080424CC:
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0xC]
|
|
ldr r0, _080424F4 @ =gUnknown_2023BCC
|
|
ldr r1, [sp, 0xC]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bge _08042504
|
|
lsls r0, r1, 1
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
lsrs r0, r5, 16
|
|
cmp r1, r0
|
|
bne _080424CC
|
|
ldr r2, [sp, 0xC]
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x1C]
|
|
b _08042504
|
|
.align 2, 0
|
|
_080424F4: .4byte gUnknown_2023BCC
|
|
_080424F8:
|
|
ldr r0, _08042520 @ =gActiveBattler
|
|
strb r1, [r0]
|
|
movs r0, 0x4
|
|
str r0, [sp, 0x1C]
|
|
ldr r4, [sp]
|
|
subs r4, 0xD
|
|
_08042504:
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xA5
|
|
bhi _08042578
|
|
ldr r1, _08042524 @ =gUnknown_82528BC
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08042528
|
|
ldr r1, [sp]
|
|
cmp r1, 0xAF
|
|
beq _0804252E
|
|
b _08042578
|
|
.align 2, 0
|
|
_08042520: .4byte gActiveBattler
|
|
_08042524: .4byte gUnknown_82528BC
|
|
_08042528:
|
|
ldr r2, [sp]
|
|
cmp r2, 0xAF
|
|
bne _0804257C
|
|
_0804252E:
|
|
ldr r0, _08042550 @ =gMain
|
|
ldr r1, _08042554 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042560
|
|
ldr r0, _08042558 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0804255C @ =gUnknown_2023F5C
|
|
adds r0, r1
|
|
b _0804257C
|
|
.align 2, 0
|
|
_08042550: .4byte gMain
|
|
_08042554: .4byte 0x00000439
|
|
_08042558: .4byte gActiveBattler
|
|
_0804255C: .4byte gUnknown_2023F5C
|
|
_08042560:
|
|
ldr r0, _0804256C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, _08042570 @ =0x00003108
|
|
adds r2, r0, r2
|
|
str r2, [sp, 0x14]
|
|
b _0804257E
|
|
.align 2, 0
|
|
_0804256C: .4byte gSaveBlock1Ptr
|
|
_08042570: .4byte 0x00003108
|
|
_08042574:
|
|
movs r0, 0
|
|
b _08042BD8
|
|
_08042578:
|
|
movs r0, 0x1
|
|
b _08042BD8
|
|
_0804257C:
|
|
str r0, [sp, 0x14]
|
|
_0804257E:
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
_08042582:
|
|
ldr r1, [sp, 0xC]
|
|
cmp r1, 0x5
|
|
bls _0804258A
|
|
b _08042BCA
|
|
_0804258A:
|
|
lsls r0, r1, 2
|
|
ldr r1, _08042594 @ =_08042598
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08042594: .4byte _08042598
|
|
.align 2, 0
|
|
_08042598:
|
|
.4byte _080425B0
|
|
.4byte _0804264C
|
|
.4byte _080426A8
|
|
.4byte _08042708
|
|
.4byte _08042850
|
|
.4byte _08042A6A
|
|
_080425B0:
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
beq _080425F4
|
|
ldr r0, _0804263C @ =gMain
|
|
ldr r2, _08042640 @ =0x00000439
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080425F4
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r0, 0x4
|
|
beq _080425F4
|
|
ldr r1, _08042644 @ =gBattleMons
|
|
movs r0, 0x58
|
|
ldr r2, [sp, 0x1C]
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0xF0
|
|
lsls r1, 12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080425F4
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
_080425F4:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804261C
|
|
ldr r1, _08042644 @ =gBattleMons
|
|
ldr r0, _08042648 @ =gActiveBattler
|
|
ldrb r2, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804261C
|
|
movs r1, 0
|
|
str r1, [sp, 0x10]
|
|
_0804261C:
|
|
ldrb r1, [r5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042628
|
|
b _08042BCA
|
|
_08042628:
|
|
ldr r2, _08042644 @ =gBattleMons
|
|
ldr r0, _08042648 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x19]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
b _080426F2
|
|
.align 2, 0
|
|
_0804263C: .4byte gMain
|
|
_08042640: .4byte 0x00000439
|
|
_08042644: .4byte gBattleMons
|
|
_08042648: .4byte gActiveBattler
|
|
_0804264C:
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
beq _08042678
|
|
ldr r2, _080426A0 @ =gBattleMons
|
|
ldr r0, _080426A4 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1A]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xB
|
|
bgt _08042678
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_08042678:
|
|
ldrb r1, [r5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042684
|
|
b _08042BCA
|
|
_08042684:
|
|
ldr r2, _080426A0 @ =gBattleMons
|
|
ldr r0, _080426A4 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1B]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xB
|
|
ble _0804269C
|
|
b _08042BCA
|
|
_0804269C:
|
|
b _08042832
|
|
.align 2, 0
|
|
_080426A0: .4byte gBattleMons
|
|
_080426A4: .4byte gActiveBattler
|
|
_080426A8:
|
|
ldr r1, [sp, 0x14]
|
|
ldr r0, [sp, 0xC]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
beq _080426D4
|
|
ldr r2, _08042700 @ =gBattleMons
|
|
ldr r0, _08042704 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1E]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0xB
|
|
bgt _080426D4
|
|
movs r1, 0
|
|
str r1, [sp, 0x10]
|
|
_080426D4:
|
|
ldrb r1, [r5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080426E0
|
|
b _08042BCA
|
|
_080426E0:
|
|
ldr r2, _08042700 @ =gBattleMons
|
|
ldr r0, _08042704 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
movs r0, 0x58
|
|
muls r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1C]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
_080426F2:
|
|
cmp r0, 0xB
|
|
ble _080426F8
|
|
b _08042BCA
|
|
_080426F8:
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
b _08042BCA
|
|
.align 2, 0
|
|
_08042700: .4byte gBattleMons
|
|
_08042704: .4byte gActiveBattler
|
|
_08042708:
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
beq _0804273A
|
|
ldr r4, _08042838 @ =gUnknown_2023DE4
|
|
ldr r0, _0804283C @ =gActiveBattler
|
|
ldrb r0, [r0]
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _0804273A
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_0804273A:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042756
|
|
mov r0, r8
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0x64
|
|
beq _08042756
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
_08042756:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042776
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0x7
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_8042BE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042776
|
|
movs r1, 0
|
|
str r1, [sp, 0x10]
|
|
_08042776:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042796
|
|
ldr r2, _08042840 @ =0x00000f88
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_8042BE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08042796
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_08042796:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427B6
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0x10
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_8042BE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080427B6
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
_080427B6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427D6
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0x20
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_8042BE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080427D6
|
|
movs r1, 0
|
|
str r1, [sp, 0x10]
|
|
_080427D6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080427F6
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0x40
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_8042BE8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080427F6
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_080427F6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042802
|
|
b _08042BCA
|
|
_08042802:
|
|
ldr r0, _08042844 @ =gMain
|
|
ldr r1, _08042848 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042814
|
|
b _08042BCA
|
|
_08042814:
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r2, 0x4
|
|
bne _0804281C
|
|
b _08042BCA
|
|
_0804281C:
|
|
ldr r1, _0804284C @ =gBattleMons
|
|
movs r0, 0x58
|
|
muls r0, r2
|
|
adds r1, 0x50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08042832
|
|
b _08042BCA
|
|
_08042832:
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
b _08042BCA
|
|
.align 2, 0
|
|
_08042838: .4byte gUnknown_2023DE4
|
|
_0804283C: .4byte gActiveBattler
|
|
_08042840: .4byte 0x00000f88
|
|
_08042844: .4byte gMain
|
|
_08042848: .4byte 0x00000439
|
|
_0804284C: .4byte gBattleMons
|
|
_08042850:
|
|
ldr r1, [sp, 0x14]
|
|
ldr r2, [sp, 0xC]
|
|
adds r0, r1, r2
|
|
ldrb r7, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _080428B6
|
|
movs r0, 0xDF
|
|
ands r7, r0
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
ldr r0, _080428DC @ =gUnknown_825DEA1
|
|
ldr r1, [sp, 0x8]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ands r5, r0
|
|
lsls r0, r1, 1
|
|
lsrs r5, r0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x8]
|
|
bl CalculatePPWithBonus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, 0x2
|
|
bhi _080428B6
|
|
cmp r0, 0x4
|
|
bls _080428B6
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_080428B6:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
cmp r7, 0
|
|
bne _080428C0
|
|
b _08042BCA
|
|
_080428C0:
|
|
movs r0, 0x1
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080428CA
|
|
b _08042A5C
|
|
_080428CA:
|
|
mov r1, r9
|
|
cmp r1, 0x7
|
|
bls _080428D2
|
|
b _08042A5C
|
|
_080428D2:
|
|
lsls r0, r1, 2
|
|
ldr r1, _080428E0 @ =_080428E4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080428DC: .4byte gUnknown_825DEA1
|
|
_080428E0: .4byte _080428E4
|
|
.align 2, 0
|
|
_080428E4:
|
|
.4byte _08042904
|
|
.4byte _08042904
|
|
.4byte _08042934
|
|
.4byte _08042996
|
|
.4byte _08042A5C
|
|
.4byte _08042A5C
|
|
.4byte _08042A5C
|
|
.4byte _08042A4A
|
|
_08042904:
|
|
mov r0, r8
|
|
bl GetMonEVCount
|
|
lsls r0, 16
|
|
ldr r1, _0804292C @ =0x01fd0000
|
|
cmp r0, r1
|
|
bls _08042914
|
|
b _08042578
|
|
_08042914:
|
|
ldr r0, _08042930 @ =gUnknown_825DFEA
|
|
add r0, r9
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
cmp r5, 0x63
|
|
bls _0804292A
|
|
b _08042A5C
|
|
_0804292A:
|
|
b _08042A3A
|
|
.align 2, 0
|
|
_0804292C: .4byte 0x01fd0000
|
|
_08042930: .4byte gUnknown_825DFEA
|
|
_08042934:
|
|
movs r0, 0x10
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08042952
|
|
mov r0, r8
|
|
movs r1, 0x39
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08042968
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
b _080429F4
|
|
_08042952:
|
|
mov r0, r8
|
|
movs r1, 0x39
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _08042968
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
b _080429F4
|
|
_08042968:
|
|
mov r0, r8
|
|
movs r1, 0x3A
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
movs r1, 0x39
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r4, r0
|
|
beq _08042986
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
_08042986:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r0, 0xEF
|
|
ands r7, r0
|
|
b _08042A5C
|
|
_08042996:
|
|
movs r0, 0x2
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080429FA
|
|
movs r6, 0
|
|
movs r1, 0x1
|
|
add r10, r1
|
|
_080429A4:
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
adds r1, r6, 0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, r6, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
bl CalculatePPWithBonus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
beq _080429EA
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
_080429EA:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080429A4
|
|
mov r1, r10
|
|
lsls r0, r1, 24
|
|
_080429F4:
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
b _08042A5C
|
|
_080429FA:
|
|
ldr r1, [sp, 0x8]
|
|
adds r1, 0x11
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
ldr r1, [sp, 0x8]
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x8]
|
|
bl CalculatePPWithBonus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
beq _08042A5C
|
|
_08042A3A:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
b _08042A5C
|
|
_08042A4A:
|
|
mov r0, r8
|
|
movs r1, 0x2
|
|
ldr r2, [sp]
|
|
bl sub_8042EC4
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08042A5C
|
|
b _08042574
|
|
_08042A5C:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
lsrs r7, 1
|
|
cmp r7, 0
|
|
beq _08042A68
|
|
b _080428C0
|
|
_08042A68:
|
|
b _08042BCA
|
|
_08042A6A:
|
|
ldr r1, [sp, 0x14]
|
|
ldr r2, [sp, 0xC]
|
|
adds r0, r1, r2
|
|
ldrb r7, [r0]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
cmp r7, 0
|
|
bne _08042A7C
|
|
b _08042BCA
|
|
_08042A7C:
|
|
movs r0, 0x1
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _08042A86
|
|
b _08042BBE
|
|
_08042A86:
|
|
mov r1, r9
|
|
cmp r1, 0x7
|
|
bls _08042A8E
|
|
b _08042BBE
|
|
_08042A8E:
|
|
lsls r0, r1, 2
|
|
ldr r1, _08042A98 @ =_08042A9C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08042A98: .4byte _08042A9C
|
|
.align 2, 0
|
|
_08042A9C:
|
|
.4byte _08042ABC
|
|
.4byte _08042ABC
|
|
.4byte _08042ABC
|
|
.4byte _08042ABC
|
|
.4byte _08042AF4
|
|
.4byte _08042B4C
|
|
.4byte _08042B68
|
|
.4byte _08042B92
|
|
_08042ABC:
|
|
mov r0, r8
|
|
bl GetMonEVCount
|
|
lsls r0, 16
|
|
ldr r1, _08042AEC @ =0x01fd0000
|
|
cmp r0, r1
|
|
bls _08042ACC
|
|
b _08042578
|
|
_08042ACC:
|
|
ldr r0, _08042AF0 @ =gUnknown_825DFEA
|
|
mov r1, r9
|
|
adds r1, 0x2
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
cmp r5, 0x63
|
|
bhi _08042BBE
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
b _08042BB4
|
|
.align 2, 0
|
|
_08042AEC: .4byte 0x01fd0000
|
|
_08042AF0: .4byte gUnknown_825DFEA
|
|
_08042AF4:
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
ldr r0, _08042B48 @ =gUnknown_825DEA1
|
|
ldr r1, [sp, 0x8]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ands r5, r0
|
|
lsls r0, r1, 1
|
|
lsrs r5, r0
|
|
adds r1, 0xD
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x8]
|
|
bl CalculatePPWithBonus
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r5, 0x2
|
|
bhi _08042BBE
|
|
cmp r6, 0x4
|
|
ble _08042BBE
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
b _08042BBE
|
|
.align 2, 0
|
|
_08042B48: .4byte gUnknown_825DEA1
|
|
_08042B4C:
|
|
mov r0, r8
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bhi _08042BB4
|
|
ldr r0, [sp, 0x10]
|
|
cmp r0, 0
|
|
bne _08042BB4
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
bne _08042BB4
|
|
b _08042BAC
|
|
_08042B68:
|
|
mov r0, r8
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0x63
|
|
bls _08042BB4
|
|
mov r0, r8
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bhi _08042BB4
|
|
ldr r2, [sp, 0x10]
|
|
cmp r2, 0
|
|
bne _08042BB4
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
bne _08042BB4
|
|
b _08042BAC
|
|
_08042B92:
|
|
mov r0, r8
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0xC7
|
|
bls _08042BB4
|
|
ldr r1, [sp, 0x10]
|
|
cmp r1, 0
|
|
bne _08042BB4
|
|
ldr r2, [sp, 0x18]
|
|
cmp r2, 0
|
|
bne _08042BB4
|
|
_08042BAC:
|
|
ldr r0, [sp, 0x14]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x18]
|
|
_08042BB4:
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_08042BBE:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
lsrs r7, 1
|
|
cmp r7, 0
|
|
beq _08042BCA
|
|
b _08042A7C
|
|
_08042BCA:
|
|
ldr r1, [sp, 0xC]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0xC]
|
|
cmp r1, 0x5
|
|
bgt _08042BD6
|
|
b _08042582
|
|
_08042BD6:
|
|
ldr r0, [sp, 0x10]
|
|
_08042BD8:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042414
|
|
|
|
thumb_func_start sub_8042BE8
|
|
sub_8042BE8: @ 8042BE8
|
|
push {r4,lr}
|
|
adds r4, r2, 0
|
|
movs r1, 0x37
|
|
movs r2, 0
|
|
bl GetMonData
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08042BFE
|
|
movs r0, 0
|
|
b _08042C00
|
|
_08042BFE:
|
|
movs r0, 0x1
|
|
_08042C00:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042BE8
|
|
|
|
thumb_func_start GetItemEffectParamOffset
|
|
GetItemEffectParamOffset: @ 8042C08
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r7, 0x6
|
|
ldr r1, _08042C30 @ =gUnknown_82528BC
|
|
adds r0, r3, 0
|
|
subs r0, 0xD
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08042C34
|
|
cmp r3, 0xAF
|
|
beq _08042C38
|
|
_08042C2C:
|
|
movs r0, 0
|
|
b _08042D48
|
|
.align 2, 0
|
|
_08042C30: .4byte gUnknown_82528BC
|
|
_08042C34:
|
|
cmp r3, 0xAF
|
|
bne _08042C46
|
|
_08042C38:
|
|
ldr r0, _08042C58 @ =gActiveBattler
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08042C5C @ =gUnknown_2023F5C
|
|
adds r0, r1
|
|
_08042C46:
|
|
mov r12, r0
|
|
movs r2, 0
|
|
_08042C4A:
|
|
cmp r2, 0x4
|
|
beq _08042C6A
|
|
cmp r2, 0x4
|
|
ble _08042C60
|
|
cmp r2, 0x5
|
|
beq _08042CF4
|
|
b _08042D3E
|
|
.align 2, 0
|
|
_08042C58: .4byte gActiveBattler
|
|
_08042C5C: .4byte gUnknown_2023F5C
|
|
_08042C60:
|
|
cmp r2, 0
|
|
blt _08042D3E
|
|
cmp r2, r4
|
|
bne _08042D3E
|
|
b _08042C2C
|
|
_08042C6A:
|
|
mov r0, r12
|
|
ldrb r3, [r0, 0x4]
|
|
movs r0, 0x20
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08042C7A
|
|
movs r0, 0xDF
|
|
ands r3, r0
|
|
_08042C7A:
|
|
movs r6, 0
|
|
cmp r3, 0
|
|
beq _08042D3E
|
|
_08042C80:
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08042CE0
|
|
cmp r6, 0x7
|
|
bhi _08042CE0
|
|
lsls r0, r6, 2
|
|
ldr r1, _08042C98 @ =_08042C9C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08042C98: .4byte _08042C9C
|
|
.align 2, 0
|
|
_08042C9C:
|
|
.4byte _08042CC8
|
|
.4byte _08042CC8
|
|
.4byte _08042CBC
|
|
.4byte _08042CC8
|
|
.4byte _08042CE0
|
|
.4byte _08042CE0
|
|
.4byte _08042CE0
|
|
.4byte _08042CDC
|
|
_08042CBC:
|
|
movs r0, 0x10
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08042CC8
|
|
movs r0, 0xEF
|
|
ands r3, r0
|
|
_08042CC8:
|
|
cmp r2, r4
|
|
bne _08042CD4
|
|
adds r0, r3, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08042D46
|
|
_08042CD4:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _08042CE0
|
|
_08042CDC:
|
|
cmp r2, r4
|
|
beq _08042C2C
|
|
_08042CE0:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsrs r3, 1
|
|
cmp r2, r4
|
|
bne _08042CEE
|
|
lsrs r5, 1
|
|
_08042CEE:
|
|
cmp r3, 0
|
|
bne _08042C80
|
|
b _08042D3E
|
|
_08042CF4:
|
|
mov r0, r12
|
|
ldrb r3, [r0, 0x5]
|
|
movs r6, 0
|
|
_08042CFA:
|
|
cmp r3, 0
|
|
beq _08042D3E
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08042D2E
|
|
cmp r6, 0
|
|
blt _08042D2E
|
|
cmp r6, 0x6
|
|
ble _08042D14
|
|
cmp r6, 0x7
|
|
beq _08042D28
|
|
b _08042D2E
|
|
_08042D14:
|
|
cmp r2, r4
|
|
bne _08042D20
|
|
adds r0, r3, 0
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08042D46
|
|
_08042D20:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _08042D2E
|
|
_08042D28:
|
|
cmp r2, r4
|
|
bne _08042D2E
|
|
b _08042C2C
|
|
_08042D2E:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsrs r3, 1
|
|
cmp r2, r4
|
|
bne _08042CFA
|
|
lsrs r5, 1
|
|
b _08042CFA
|
|
_08042D3E:
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
bgt _08042D46
|
|
b _08042C4A
|
|
_08042D46:
|
|
adds r0, r7, 0
|
|
_08042D48:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetItemEffectParamOffset
|
|
|
|
thumb_func_start sub_8042D50
|
|
sub_8042D50: @ 8042D50
|
|
push {lr}
|
|
ldr r2, _08042D84 @ =gBattlerTarget
|
|
ldr r1, _08042D88 @ =gUnknown_2024004
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
ldr r3, _08042D8C @ =gUnknown_2022AB8
|
|
ldr r2, _08042D90 @ =gUnknown_83FD5D0
|
|
ldr r1, _08042D94 @ =gUnknown_825DFF0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
adds r0, r3, 0
|
|
bl StringCopy
|
|
ldr r0, _08042D98 @ =gUnknown_2022AC8
|
|
ldr r1, _08042D9C @ =gUnknown_83FCB4A
|
|
bl StringCopy
|
|
ldr r0, _08042DA0 @ =gUnknown_83FCB6A
|
|
bl BattleStringExpandPlaceholdersToDisplayedString
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08042D84: .4byte gBattlerTarget
|
|
_08042D88: .4byte gUnknown_2024004
|
|
_08042D8C: .4byte gUnknown_2022AB8
|
|
_08042D90: .4byte gUnknown_83FD5D0
|
|
_08042D94: .4byte gUnknown_825DFF0
|
|
_08042D98: .4byte gUnknown_2022AC8
|
|
_08042D9C: .4byte gUnknown_83FCB4A
|
|
_08042DA0: .4byte gUnknown_83FCB6A
|
|
thumb_func_end sub_8042D50
|
|
|
|
thumb_func_start sub_8042DA4
|
|
sub_8042DA4: @ 8042DA4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _08042DF8
|
|
ldr r0, _08042DD4 @ =gMain
|
|
ldr r1, _08042DD8 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042DE4
|
|
ldr r2, _08042DDC @ =gUnknown_2024004
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08042DE0 @ =gUnknown_2023F5C
|
|
adds r7, r0, r1
|
|
b _08042E04
|
|
.align 2, 0
|
|
_08042DD4: .4byte gMain
|
|
_08042DD8: .4byte 0x00000439
|
|
_08042DDC: .4byte gUnknown_2024004
|
|
_08042DE0: .4byte gUnknown_2023F5C
|
|
_08042DE4:
|
|
ldr r0, _08042DF0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _08042DF4 @ =0x00003108
|
|
adds r7, r0, r1
|
|
b _08042E02
|
|
.align 2, 0
|
|
_08042DF0: .4byte gSaveBlock1Ptr
|
|
_08042DF4: .4byte 0x00003108
|
|
_08042DF8:
|
|
ldr r1, _08042E3C @ =gUnknown_82528BC
|
|
subs r0, 0xD
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r7, [r0]
|
|
_08042E02:
|
|
ldr r2, _08042E40 @ =gUnknown_2024004
|
|
_08042E04:
|
|
ldr r1, _08042E44 @ =gUnknown_2023D6F
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
ldr r0, _08042E48 @ =sBattler_AI
|
|
mov r8, r0
|
|
movs r6, 0
|
|
_08042E12:
|
|
adds r4, r7, r5
|
|
ldrb r1, [r4]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E24
|
|
adds r0, r6, 0
|
|
bl sub_8042D50
|
|
_08042E24:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E5A
|
|
cmp r5, 0
|
|
beq _08042E4C
|
|
adds r0, r6, 0x1
|
|
bl sub_8042D50
|
|
b _08042E5A
|
|
.align 2, 0
|
|
_08042E3C: .4byte gUnknown_82528BC
|
|
_08042E40: .4byte gUnknown_2024004
|
|
_08042E44: .4byte gUnknown_2023D6F
|
|
_08042E48: .4byte sBattler_AI
|
|
_08042E4C:
|
|
ldr r0, _08042E88 @ =gUnknown_2024004
|
|
ldrb r0, [r0]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r0, _08042E8C @ =gUnknown_83FBBE9
|
|
bl BattleStringExpandPlaceholdersToDisplayedString
|
|
_08042E5A:
|
|
adds r6, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _08042E12
|
|
ldrb r1, [r7, 0x3]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08042E7A
|
|
ldr r1, _08042E90 @ =sBattler_AI
|
|
ldr r0, _08042E88 @ =gUnknown_2024004
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _08042E94 @ =gUnknown_83FBBB4
|
|
bl BattleStringExpandPlaceholdersToDisplayedString
|
|
_08042E7A:
|
|
ldr r0, _08042E98 @ =gUnknown_202298C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08042E88: .4byte gUnknown_2024004
|
|
_08042E8C: .4byte gUnknown_83FBBE9
|
|
_08042E90: .4byte sBattler_AI
|
|
_08042E94: .4byte gUnknown_83FBBB4
|
|
_08042E98: .4byte gUnknown_202298C
|
|
thumb_func_end sub_8042DA4
|
|
|
|
thumb_func_start GetNature
|
|
GetNature: @ 8042E9C
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0x19
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNature
|
|
|
|
thumb_func_start GetNatureFromPersonality
|
|
GetNatureFromPersonality: @ 8042EB4
|
|
push {lr}
|
|
movs r1, 0x19
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNatureFromPersonality
|
|
|
|
thumb_func_start sub_8042EC4
|
|
sub_8042EC4: @ 8042EC4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r9, r2
|
|
movs r0, 0
|
|
mov r10, r0
|
|
mov r0, r8
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r0, r8
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r0, r8
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
movs r1, 0x17
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
lsrs r4, 16
|
|
str r4, [sp, 0x10]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xAF
|
|
bne _08042F38
|
|
ldr r0, _08042F30 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _08042F34 @ =0x0000311a
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _08042F40
|
|
.align 2, 0
|
|
_08042F30: .4byte gSaveBlock1Ptr
|
|
_08042F34: .4byte 0x0000311a
|
|
_08042F38:
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08042F40:
|
|
cmp r0, 0x26
|
|
bne _08042F4C
|
|
cmp r5, 0x3
|
|
beq _08042F4C
|
|
movs r0, 0
|
|
b _080431A4
|
|
_08042F4C:
|
|
cmp r5, 0x1
|
|
bne _08042F52
|
|
b _0804311E
|
|
_08042F52:
|
|
cmp r5, 0x1
|
|
bgt _08042F5C
|
|
cmp r5, 0
|
|
beq _08042F70
|
|
b _080431A2
|
|
_08042F5C:
|
|
cmp r5, 0x3
|
|
ble _08042F62
|
|
b _080431A2
|
|
_08042F62:
|
|
movs r2, 0
|
|
str r2, [sp, 0x4]
|
|
ldr r3, _08042F6C @ =gUnknown_8259754
|
|
lsls r6, r7, 2
|
|
b _08043182
|
|
.align 2, 0
|
|
_08042F6C: .4byte gUnknown_8259754
|
|
_08042F70:
|
|
mov r0, r8
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
mov r0, r8
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
lsls r6, r7, 2
|
|
_08042F96:
|
|
ldr r1, _08042FBC @ =gUnknown_8259754
|
|
ldr r0, [sp, 0x4]
|
|
lsls r2, r0, 3
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
adds r3, r1, 0
|
|
cmp r0, 0xE
|
|
bls _08042FB0
|
|
b _08043110
|
|
_08042FB0:
|
|
lsls r0, 2
|
|
ldr r1, _08042FC0 @ =_08042FC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08042FBC: .4byte gUnknown_8259754
|
|
_08042FC0: .4byte _08042FC4
|
|
.align 2, 0
|
|
_08042FC4:
|
|
.4byte _08043000
|
|
.4byte _08043110
|
|
.4byte _08043110
|
|
.4byte _08043016
|
|
.4byte _08043110
|
|
.4byte _08043110
|
|
.4byte _08043110
|
|
.4byte _08043026
|
|
.4byte _08043050
|
|
.4byte _0804307A
|
|
.4byte _080430A8
|
|
.4byte _080430C8
|
|
.4byte _080430EC
|
|
.4byte _08043110
|
|
.4byte _080430FC
|
|
_08043000:
|
|
ldr r1, [sp, 0x8]
|
|
cmp r1, 0xDB
|
|
bhi _08043008
|
|
b _08043110
|
|
_08043008:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x4]
|
|
mov r10, r0
|
|
b _08043110
|
|
_08043016:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
b _0804310C
|
|
_08043026:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r5, r0, r3
|
|
ldrh r0, [r5, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
mov r0, r8
|
|
movs r1, 0x3B
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
movs r1, 0x3C
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r4, r0
|
|
bls _08043110
|
|
b _080430A2
|
|
_08043050:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r5, r0, r3
|
|
ldrh r0, [r5, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
mov r0, r8
|
|
movs r1, 0x3B
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
movs r1, 0x3C
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r4, r0
|
|
bne _08043110
|
|
b _080430A2
|
|
_0804307A:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r5, r0, r3
|
|
ldrh r0, [r5, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
mov r0, r8
|
|
movs r1, 0x3B
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
movs r1, 0x3C
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r4, r0
|
|
bcs _08043110
|
|
_080430A2:
|
|
ldrh r5, [r5, 0x4]
|
|
mov r10, r5
|
|
b _08043110
|
|
_080430A8:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r4, r0, r3
|
|
ldrh r0, [r4, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
ldr r0, [sp, 0x10]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _08043110
|
|
b _080430E6
|
|
_080430C8:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r4, r0, r3
|
|
ldrh r0, [r4, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
ldr r0, [sp, 0x10]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bls _08043110
|
|
_080430E6:
|
|
ldrh r4, [r4, 0x4]
|
|
mov r10, r4
|
|
b _08043110
|
|
_080430EC:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, r9
|
|
bhi _08043110
|
|
b _0804310C
|
|
_080430FC:
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0x2]
|
|
ldr r2, [sp, 0xC]
|
|
cmp r0, r2
|
|
bhi _08043110
|
|
_0804310C:
|
|
ldrh r1, [r1, 0x4]
|
|
mov r10, r1
|
|
_08043110:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
cmp r0, 0x4
|
|
bgt _0804311C
|
|
b _08042F96
|
|
_0804311C:
|
|
b _080431A2
|
|
_0804311E:
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
lsls r6, r7, 2
|
|
ldr r1, _08043138 @ =gUnknown_8259754
|
|
adds r0, r6, r7
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_0804312C:
|
|
ldrh r0, [r4]
|
|
cmp r0, 0x5
|
|
beq _0804313C
|
|
cmp r0, 0x6
|
|
beq _08043142
|
|
b _0804316E
|
|
.align 2, 0
|
|
_08043138: .4byte gUnknown_8259754
|
|
_0804313C:
|
|
ldrh r2, [r4, 0x4]
|
|
mov r10, r2
|
|
b _0804316E
|
|
_08043142:
|
|
ldrh r1, [r4, 0x2]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _0804316E
|
|
ldrh r0, [r4, 0x4]
|
|
mov r10, r0
|
|
bl sub_806E25C
|
|
cmp r0, 0
|
|
bne _0804315E
|
|
mov r1, r10
|
|
cmp r1, 0x97
|
|
bhi _0804316E
|
|
_0804315E:
|
|
movs r1, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
mov r0, r8
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
_0804316E:
|
|
adds r4, 0x8
|
|
ldr r2, [sp, 0x4]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0x4
|
|
ble _0804312C
|
|
b _080431A2
|
|
_0804317C:
|
|
ldrh r1, [r1, 0x4]
|
|
mov r10, r1
|
|
b _080431A2
|
|
_08043182:
|
|
adds r0, r6, r7
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x7
|
|
bne _08043198
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, r9
|
|
beq _0804317C
|
|
_08043198:
|
|
ldr r2, [sp, 0x4]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0x4
|
|
ble _08043182
|
|
_080431A2:
|
|
mov r0, r10
|
|
_080431A4:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8042EC4
|
|
|
|
thumb_func_start sub_80431B4
|
|
sub_80431B4: @ 80431B4
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _080431F8
|
|
movs r1, 0
|
|
ldr r3, _080431F0 @ =gUnknown_8251CB8
|
|
ldrh r0, [r3]
|
|
cmp r0, r2
|
|
beq _080431E0
|
|
movs r4, 0xCD
|
|
lsls r4, 1
|
|
_080431CC:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r4
|
|
bhi _080431E0
|
|
lsls r0, r1, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r2
|
|
bne _080431CC
|
|
_080431E0:
|
|
ldr r0, _080431F4 @ =0x0000019b
|
|
cmp r1, r0
|
|
beq _080431F8
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080431FA
|
|
.align 2, 0
|
|
_080431F0: .4byte gUnknown_8251CB8
|
|
_080431F4: .4byte 0x0000019b
|
|
_080431F8:
|
|
movs r0, 0
|
|
_080431FA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80431B4
|
|
|
|
thumb_func_start NationalPokedexNumToSpecies
|
|
NationalPokedexNumToSpecies: @ 8043200
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08043244
|
|
movs r1, 0
|
|
ldr r3, _0804323C @ =gUnknown_8251FEE
|
|
ldrh r0, [r3]
|
|
cmp r0, r2
|
|
beq _0804322C
|
|
movs r4, 0xCD
|
|
lsls r4, 1
|
|
_08043218:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r4
|
|
bhi _0804322C
|
|
lsls r0, r1, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r2
|
|
bne _08043218
|
|
_0804322C:
|
|
ldr r0, _08043240 @ =0x0000019b
|
|
cmp r1, r0
|
|
beq _08043244
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _08043246
|
|
.align 2, 0
|
|
_0804323C: .4byte gUnknown_8251FEE
|
|
_08043240: .4byte 0x0000019b
|
|
_08043244:
|
|
movs r0, 0
|
|
_08043246:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end NationalPokedexNumToSpecies
|
|
|
|
thumb_func_start sub_804324C
|
|
sub_804324C: @ 804324C
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08043290
|
|
movs r1, 0
|
|
ldr r3, _08043288 @ =gUnknown_8252324
|
|
ldrh r0, [r3]
|
|
cmp r0, r2
|
|
beq _08043278
|
|
movs r4, 0xCD
|
|
lsls r4, 1
|
|
_08043264:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r4
|
|
bhi _08043278
|
|
lsls r0, r1, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r2
|
|
bne _08043264
|
|
_08043278:
|
|
ldr r0, _0804328C @ =0x0000019b
|
|
cmp r1, r0
|
|
beq _08043290
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _08043292
|
|
.align 2, 0
|
|
_08043288: .4byte gUnknown_8252324
|
|
_0804328C: .4byte 0x0000019b
|
|
_08043290:
|
|
movs r0, 0
|
|
_08043292:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_804324C
|
|
|
|
thumb_func_start SpeciesToNationalPokedexNum
|
|
SpeciesToNationalPokedexNum: @ 8043298
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _080432B4
|
|
ldr r0, _080432B0 @ =gUnknown_8251FEE
|
|
subs r1, 0x1
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
b _080432B6
|
|
.align 2, 0
|
|
_080432B0: .4byte gUnknown_8251FEE
|
|
_080432B4:
|
|
movs r0, 0
|
|
_080432B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end SpeciesToNationalPokedexNum
|
|
|
|
thumb_func_start SpeciesToHoennPokedexNum
|
|
SpeciesToHoennPokedexNum: @ 80432BC
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _080432D8
|
|
ldr r0, _080432D4 @ =gUnknown_8251CB8
|
|
subs r1, 0x1
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
b _080432DA
|
|
.align 2, 0
|
|
_080432D4: .4byte gUnknown_8251CB8
|
|
_080432D8:
|
|
movs r0, 0
|
|
_080432DA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end SpeciesToHoennPokedexNum
|
|
|
|
thumb_func_start HoennToNationalOrder
|
|
HoennToNationalOrder: @ 80432E0
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _080432FC
|
|
ldr r0, _080432F8 @ =gUnknown_8252324
|
|
subs r1, 0x1
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
b _080432FE
|
|
.align 2, 0
|
|
_080432F8: .4byte gUnknown_8252324
|
|
_080432FC:
|
|
movs r0, 0
|
|
_080432FE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end HoennToNationalOrder
|
|
|
|
thumb_func_start SpeciesToCryId
|
|
SpeciesToCryId: @ 8043304
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, 0xFA
|
|
bls _08043332
|
|
ldr r0, _08043324 @ =0x00000113
|
|
cmp r1, r0
|
|
bls _08043330
|
|
ldr r0, _08043328 @ =gUnknown_82539D4
|
|
ldr r2, _0804332C @ =0xfffffeec
|
|
adds r1, r2
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
b _08043332
|
|
.align 2, 0
|
|
_08043324: .4byte 0x00000113
|
|
_08043328: .4byte gUnknown_82539D4
|
|
_0804332C: .4byte 0xfffffeec
|
|
_08043330:
|
|
movs r0, 0xC8
|
|
_08043332:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end SpeciesToCryId
|
|
|
|
thumb_func_start sub_8043338
|
|
sub_8043338: @ 8043338
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r6, r1, 0
|
|
mov r10, r2
|
|
lsls r0, 16
|
|
movs r1, 0x9A
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bne _08043446
|
|
ldr r0, _08043408 @ =gUnknown_202401C
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x4]
|
|
cmp r10, r0
|
|
beq _08043446
|
|
ldr r0, [r1, 0xC]
|
|
cmp r10, r0
|
|
beq _08043446
|
|
movs r5, 0
|
|
_08043364:
|
|
lsls r3, r5, 3
|
|
adds r3, r5
|
|
lsls r3, 2
|
|
ldr r0, _0804340C @ =gUnknown_825265C
|
|
adds r4, r3, r0
|
|
ldrb r1, [r4]
|
|
adds r1, 0xF8
|
|
movs r2, 0xF
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
adds r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r12, r1
|
|
ldrb r1, [r4, 0x1]
|
|
adds r1, 0xF8
|
|
movs r0, 0xF0
|
|
ands r0, r6
|
|
lsrs r0, 4
|
|
adds r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
lsrs r6, 8
|
|
str r6, [sp, 0x4]
|
|
adds r5, 0x1
|
|
str r5, [sp]
|
|
mov r9, r3
|
|
_0804339C:
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
ldr r3, _08043410 @ =gUnknown_825265E
|
|
adds r0, r3
|
|
ldrh r3, [r0]
|
|
mov r4, r12
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
adds r7, r1, 0x1
|
|
adds r2, 0x1
|
|
mov r8, r2
|
|
cmp r4, r0
|
|
bge _08043434
|
|
lsrs r0, r1, 3
|
|
lsls r6, r0, 8
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
lsls r5, r1, 2
|
|
_080433C0:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _080433C8
|
|
adds r0, r4, 0x7
|
|
_080433C8:
|
|
asrs r0, 3
|
|
lsls r2, r0, 5
|
|
add r2, r10
|
|
lsls r0, 3
|
|
subs r0, r4, r0
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
adds r2, r6
|
|
adds r2, r5
|
|
movs r1, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043428
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043414
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
subs r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x20
|
|
bhi _08043428
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
b _08043426
|
|
.align 2, 0
|
|
_08043408: .4byte gUnknown_202401C
|
|
_0804340C: .4byte gUnknown_825265C
|
|
_08043410: .4byte gUnknown_825265E
|
|
_08043414:
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _08043428
|
|
adds r0, r1, 0x4
|
|
_08043426:
|
|
strb r0, [r2]
|
|
_08043428:
|
|
asrs r3, 1
|
|
adds r4, 0x1
|
|
mov r0, r12
|
|
adds r0, 0x10
|
|
cmp r4, r0
|
|
blt _080433C0
|
|
_08043434:
|
|
lsls r0, r7, 24
|
|
lsrs r1, r0, 24
|
|
mov r2, r8
|
|
cmp r2, 0xF
|
|
ble _0804339C
|
|
ldr r6, [sp, 0x4]
|
|
ldr r5, [sp]
|
|
cmp r5, 0x3
|
|
ble _08043364
|
|
_08043446:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8043338
|
|
|
|
thumb_func_start DrawSpindaSpots
|
|
DrawSpindaSpots: @ 8043458
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r5, r1, 0
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x9A
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bne _0804355A
|
|
cmp r3, 0
|
|
beq _0804355A
|
|
movs r6, 0
|
|
_0804347C:
|
|
lsls r3, r6, 3
|
|
adds r3, r6
|
|
lsls r3, 2
|
|
ldr r0, _08043520 @ =gUnknown_825265C
|
|
adds r4, r3, r0
|
|
ldrb r1, [r4]
|
|
adds r1, 0xF8
|
|
movs r2, 0xF
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
adds r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r12, r1
|
|
ldrb r1, [r4, 0x1]
|
|
adds r1, 0xF8
|
|
movs r0, 0xF0
|
|
ands r0, r5
|
|
lsrs r0, 4
|
|
adds r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
lsrs r5, 8
|
|
str r5, [sp, 0x4]
|
|
adds r6, 0x1
|
|
mov r10, r6
|
|
mov r9, r3
|
|
_080434B4:
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
ldr r3, _08043524 @ =gUnknown_825265E
|
|
adds r0, r3
|
|
ldrh r3, [r0]
|
|
mov r4, r12
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
adds r7, r1, 0x1
|
|
adds r2, 0x1
|
|
mov r8, r2
|
|
cmp r4, r0
|
|
bge _08043548
|
|
lsrs r0, r1, 3
|
|
lsls r6, r0, 8
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
lsls r5, r1, 2
|
|
_080434D8:
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _080434E0
|
|
adds r0, r4, 0x7
|
|
_080434E0:
|
|
asrs r0, 3
|
|
lsls r2, r0, 5
|
|
ldr r1, [sp]
|
|
adds r2, r1, r2
|
|
lsls r0, 3
|
|
subs r0, r4, r0
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
adds r2, r6
|
|
adds r2, r5
|
|
movs r1, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0804353C
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043528
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
subs r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x20
|
|
bhi _0804353C
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
b _0804353A
|
|
.align 2, 0
|
|
_08043520: .4byte gUnknown_825265C
|
|
_08043524: .4byte gUnknown_825265E
|
|
_08043528:
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _0804353C
|
|
adds r0, r1, 0x4
|
|
_0804353A:
|
|
strb r0, [r2]
|
|
_0804353C:
|
|
asrs r3, 1
|
|
adds r4, 0x1
|
|
mov r0, r12
|
|
adds r0, 0x10
|
|
cmp r4, r0
|
|
blt _080434D8
|
|
_08043548:
|
|
lsls r0, r7, 24
|
|
lsrs r1, r0, 24
|
|
mov r2, r8
|
|
cmp r2, 0xF
|
|
ble _080434B4
|
|
ldr r5, [sp, 0x4]
|
|
mov r6, r10
|
|
cmp r6, 0x3
|
|
ble _0804347C
|
|
_0804355A:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DrawSpindaSpots
|
|
|
|
thumb_func_start EvolutionRenameMon
|
|
EvolutionRenameMon: @ 804356C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
ldr r0, _080435D8 @ =gStringVar1
|
|
mov r9, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
mov r2, r9
|
|
bl GetMonData
|
|
mov r4, sp
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
mov r2, sp
|
|
bl GetMonData
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080435C8
|
|
movs r6, 0xB
|
|
adds r0, r7, 0
|
|
muls r0, r6
|
|
ldr r4, _080435DC @ =gUnknown_8245EE0
|
|
adds r0, r4
|
|
mov r1, r9
|
|
bl StringCompare
|
|
cmp r0, 0
|
|
bne _080435C8
|
|
mov r2, r8
|
|
muls r2, r6
|
|
adds r2, r4
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_804037C
|
|
_080435C8:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080435D8: .4byte gStringVar1
|
|
_080435DC: .4byte gUnknown_8245EE0
|
|
thumb_func_end EvolutionRenameMon
|
|
|
|
thumb_func_start sub_80435E0
|
|
sub_80435E0: @ 80435E0
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r4, _08043608 @ =gUnknown_202273C
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _0804360C
|
|
cmp r0, 0x1
|
|
bge _08043614
|
|
cmp r0, 0
|
|
beq _08043610
|
|
b _08043616
|
|
.align 2, 0
|
|
_08043608: .4byte gUnknown_202273C
|
|
_0804360C:
|
|
cmp r0, 0x3
|
|
bne _08043616
|
|
_08043610:
|
|
movs r5, 0
|
|
b _08043616
|
|
_08043614:
|
|
movs r5, 0x1
|
|
_08043616:
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80435E0
|
|
|
|
thumb_func_start sub_8043620
|
|
sub_8043620: @ 8043620
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r2, _08043644 @ =gUnknown_202273C
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, 0x2
|
|
bgt _08043648
|
|
cmp r0, 0x1
|
|
bge _08043650
|
|
cmp r0, 0
|
|
beq _0804364C
|
|
b _08043652
|
|
.align 2, 0
|
|
_08043644: .4byte gUnknown_202273C
|
|
_08043648:
|
|
cmp r0, 0x3
|
|
bne _08043652
|
|
_0804364C:
|
|
movs r3, 0
|
|
b _08043652
|
|
_08043650:
|
|
movs r3, 0x1
|
|
_08043652:
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8043620
|
|
|
|
thumb_func_start GetBankMultiplayerId
|
|
GetBankMultiplayerId: @ 8043658
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r2, 0
|
|
ldr r1, _08043664 @ =gUnknown_202273C
|
|
b _08043670
|
|
.align 2, 0
|
|
_08043664: .4byte gUnknown_202273C
|
|
_08043668:
|
|
adds r1, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08043676
|
|
_08043670:
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, r3
|
|
bne _08043668
|
|
_08043676:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetBankMultiplayerId
|
|
|
|
thumb_func_start sub_804367C
|
|
sub_804367C: @ 804367C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _08043694 @ =gTrainers
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08043694: .4byte gTrainers
|
|
thumb_func_end sub_804367C
|
|
|
|
thumb_func_start nature_stat_mod
|
|
nature_stat_mod: @ 8043698
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r0, 0xFF
|
|
lsls r0, 24
|
|
adds r2, r0
|
|
lsrs r2, 24
|
|
cmp r2, 0x4
|
|
bls _080436B6
|
|
adds r0, r3, 0
|
|
b _080436F2
|
|
_080436B6:
|
|
ldr r0, _080436D8 @ =gUnknown_8252B48
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
subs r1, 0x1
|
|
adds r1, r5, r1
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080436DC
|
|
cmp r1, 0x1
|
|
bne _080436F0
|
|
movs r0, 0x6E
|
|
b _080436DE
|
|
.align 2, 0
|
|
_080436D8: .4byte gUnknown_8252B48
|
|
_080436DC:
|
|
movs r0, 0x5A
|
|
_080436DE:
|
|
muls r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080436F2
|
|
_080436F0:
|
|
adds r0, r3, 0
|
|
_080436F2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end nature_stat_mod
|
|
|
|
thumb_func_start sub_80436F8
|
|
sub_80436F8: @ 80436F8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r7, 0
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _08043758
|
|
ldr r0, _08043738 @ =gMain
|
|
ldr r1, _0804373C @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043744
|
|
ldr r0, _08043740 @ =gUnknown_2023F54
|
|
ldrb r4, [r0, 0x7]
|
|
b _08043760
|
|
.align 2, 0
|
|
_08043738: .4byte gMain
|
|
_0804373C: .4byte 0x00000439
|
|
_08043740: .4byte gUnknown_2023F54
|
|
_08043744:
|
|
ldr r0, _08043750 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r1, _08043754 @ =0x0000311a
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
b _08043760
|
|
.align 2, 0
|
|
_08043750: .4byte gSaveBlock1Ptr
|
|
_08043754: .4byte 0x0000311a
|
|
_08043758:
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_08043760:
|
|
cmp r6, 0
|
|
bne _08043766
|
|
b _08043876
|
|
_08043766:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r6, r0
|
|
bne _08043770
|
|
b _08043876
|
|
_08043770:
|
|
movs r6, 0
|
|
adds r0, r7, 0
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x63
|
|
ble _0804378E
|
|
movs r6, 0x1
|
|
_0804378E:
|
|
cmp r0, 0xC7
|
|
ble _08043798
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08043798:
|
|
cmp r5, 0x5
|
|
bne _080437A8
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08043876
|
|
_080437A8:
|
|
cmp r5, 0x3
|
|
bne _080437D4
|
|
ldr r0, _08043880 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08043876
|
|
ldr r2, _08043884 @ =gTrainers
|
|
ldr r0, _08043888 @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x54
|
|
beq _080437D4
|
|
cmp r0, 0x57
|
|
beq _080437D4
|
|
cmp r0, 0x5A
|
|
bne _08043876
|
|
_080437D4:
|
|
ldr r1, _0804388C @ =gUnknown_825DFF6
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
adds r0, r6, r0
|
|
adds r0, r1
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
cmp r1, 0
|
|
ble _080437FA
|
|
cmp r4, 0x1B
|
|
bne _080437FA
|
|
movs r0, 0x96
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_080437FA:
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, r2
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
cmp r2, 0
|
|
ble _0804384C
|
|
adds r0, r7, 0
|
|
movs r1, 0x26
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0xB
|
|
bne _08043828
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, 0x1
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
_08043828:
|
|
adds r0, r7, 0
|
|
movs r1, 0x23
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
bl sav1_map_get_name
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _0804384C
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, 0x1
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
_0804384C:
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _0804385C
|
|
movs r1, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
_0804385C:
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xFF
|
|
ble _0804386C
|
|
movs r1, 0xFF
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
_0804386C:
|
|
adds r0, r7, 0
|
|
movs r1, 0x20
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
_08043876:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043880: .4byte gBattleTypeFlags
|
|
_08043884: .4byte gTrainers
|
|
_08043888: .4byte gTrainerBattleOpponent_A
|
|
_0804388C: .4byte gUnknown_825DFF6
|
|
thumb_func_end sub_80436F8
|
|
|
|
thumb_func_start MonGainEVs
|
|
MonGainEVs: @ 8043890
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
movs r4, 0
|
|
movs r7, 0
|
|
movs r6, 0
|
|
_080438A4:
|
|
adds r1, r6, 0
|
|
adds r1, 0x1A
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl GetMonData
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
adds r0, r7, r0
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _080438A4
|
|
movs r6, 0
|
|
b _08043A26
|
|
_080438C8:
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl CheckPartyHasHadPokerus
|
|
lsls r0, 24
|
|
movs r2, 0x1
|
|
cmp r0, 0
|
|
beq _080438DA
|
|
movs r2, 0x2
|
|
_080438DA:
|
|
cmp r6, 0x5
|
|
bhi _0804397C
|
|
lsls r0, r6, 2
|
|
ldr r1, _080438E8 @ =_080438EC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080438E8: .4byte _080438EC
|
|
.align 2, 0
|
|
_080438EC:
|
|
.4byte _08043904
|
|
.4byte _08043918
|
|
.4byte _0804392C
|
|
.4byte _08043940
|
|
.4byte _08043954
|
|
.4byte _08043968
|
|
_08043904:
|
|
ldr r0, _08043914 @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
lsls r0, 30
|
|
b _08043976
|
|
.align 2, 0
|
|
_08043914: .4byte gBaseStats
|
|
_08043918:
|
|
ldr r0, _08043928 @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
b _08043974
|
|
.align 2, 0
|
|
_08043928: .4byte gBaseStats
|
|
_0804392C:
|
|
ldr r0, _0804393C @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
lsls r0, 26
|
|
b _08043976
|
|
.align 2, 0
|
|
_0804393C: .4byte gBaseStats
|
|
_08043940:
|
|
ldr r0, _08043950 @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
lsrs r0, 6
|
|
b _08043978
|
|
.align 2, 0
|
|
_08043950: .4byte gBaseStats
|
|
_08043954:
|
|
ldr r0, _08043964 @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xB]
|
|
lsls r0, 30
|
|
b _08043976
|
|
.align 2, 0
|
|
_08043964: .4byte gBaseStats
|
|
_08043968:
|
|
ldr r0, _080439A4 @ =gBaseStats
|
|
lsls r1, r5, 3
|
|
subs r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xB]
|
|
_08043974:
|
|
lsls r0, 28
|
|
_08043976:
|
|
lsrs r0, 30
|
|
_08043978:
|
|
adds r4, r0, 0
|
|
muls r4, r2
|
|
_0804397C:
|
|
mov r0, r8
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _080439C8
|
|
ldr r0, _080439A8 @ =gMain
|
|
ldr r1, _080439AC @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080439B4
|
|
ldr r0, _080439B0 @ =gUnknown_2023F54
|
|
ldrb r0, [r0, 0x7]
|
|
b _080439D0
|
|
.align 2, 0
|
|
_080439A4: .4byte gBaseStats
|
|
_080439A8: .4byte gMain
|
|
_080439AC: .4byte 0x00000439
|
|
_080439B0: .4byte gUnknown_2023F54
|
|
_080439B4:
|
|
ldr r0, _080439C0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldr r2, _080439C4 @ =0x0000311a
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
b _080439D0
|
|
.align 2, 0
|
|
_080439C0: .4byte gSaveBlock1Ptr
|
|
_080439C4: .4byte 0x0000311a
|
|
_080439C8:
|
|
bl ItemId_GetHoldEffect
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080439D0:
|
|
cmp r0, 0x18
|
|
bne _080439D8
|
|
lsls r0, r4, 17
|
|
lsrs r4, r0, 16
|
|
_080439D8:
|
|
lsls r0, r4, 16
|
|
asrs r2, r0, 16
|
|
adds r1, r7, r2
|
|
movs r0, 0xFF
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
ble _080439F0
|
|
adds r0, r2, r0
|
|
adds r1, r7, r4
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080439F0:
|
|
mov r0, sp
|
|
adds r2, r0, r6
|
|
ldrb r3, [r2]
|
|
lsls r0, r4, 16
|
|
asrs r1, r0, 16
|
|
adds r0, r3, r1
|
|
cmp r0, 0xFF
|
|
ble _08043A0C
|
|
adds r0, r1, 0
|
|
adds r0, 0xFF
|
|
adds r1, r3, r4
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_08043A0C:
|
|
adds r0, r3, r4
|
|
strb r0, [r2]
|
|
adds r0, r7, r4
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r1, r6, 0
|
|
adds r1, 0x1A
|
|
mov r0, r8
|
|
bl sub_804037C
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
bgt _08043A2E
|
|
_08043A26:
|
|
ldr r0, _08043A3C @ =0x000001fd
|
|
cmp r7, r0
|
|
bhi _08043A2E
|
|
b _080438C8
|
|
_08043A2E:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043A3C: .4byte 0x000001fd
|
|
thumb_func_end MonGainEVs
|
|
|
|
thumb_func_start GetMonEVCount
|
|
GetMonEVCount: @ 8043A40
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_08043A48:
|
|
adds r1, r4, 0
|
|
adds r1, 0x1A
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r4, 0x1
|
|
cmp r4, 0x5
|
|
ble _08043A48
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMonEVCount
|
|
|
|
thumb_func_start sub_8043A68
|
|
sub_8043A68: @ 8043A68
|
|
sub sp, 0x4
|
|
add sp, 0x4
|
|
bx lr
|
|
thumb_func_end sub_8043A68
|
|
|
|
thumb_func_start CheckPartyPokerus
|
|
CheckPartyPokerus: @ 8043A70
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0
|
|
movs r6, 0x1
|
|
movs r5, 0
|
|
cmp r4, 0
|
|
beq _08043AB8
|
|
_08043A84:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08043AAC
|
|
movs r0, 0x64
|
|
muls r0, r3
|
|
adds r0, r7, r0
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
str r3, [sp]
|
|
bl GetMonData
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
ldr r3, [sp]
|
|
cmp r1, 0
|
|
beq _08043AAC
|
|
orrs r5, r6
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_08043AAC:
|
|
adds r3, 0x1
|
|
lsls r6, 1
|
|
lsrs r4, 1
|
|
cmp r4, 0
|
|
bne _08043A84
|
|
b _08043ACC
|
|
_08043AB8:
|
|
adds r0, r7, 0
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08043ACC
|
|
movs r5, 0x1
|
|
_08043ACC:
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckPartyPokerus
|
|
|
|
thumb_func_start CheckPartyHasHadPokerus
|
|
CheckPartyHasHadPokerus: @ 8043AD8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0
|
|
movs r6, 0x1
|
|
movs r5, 0
|
|
cmp r4, 0
|
|
beq _08043B1C
|
|
_08043AEC:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08043B10
|
|
movs r0, 0x64
|
|
muls r0, r3
|
|
adds r0, r7, r0
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
str r3, [sp]
|
|
bl GetMonData
|
|
ldr r3, [sp]
|
|
cmp r0, 0
|
|
beq _08043B10
|
|
orrs r5, r6
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_08043B10:
|
|
adds r3, 0x1
|
|
lsls r6, 1
|
|
lsrs r4, 1
|
|
cmp r4, 0
|
|
bne _08043AEC
|
|
b _08043B2C
|
|
_08043B1C:
|
|
adds r0, r7, 0
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08043B2C
|
|
movs r5, 0x1
|
|
_08043B2C:
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckPartyHasHadPokerus
|
|
|
|
thumb_func_start sub_8043B38
|
|
sub_8043B38: @ 8043B38
|
|
sub sp, 0x4
|
|
add sp, 0x4
|
|
bx lr
|
|
thumb_func_end sub_8043B38
|
|
|
|
thumb_func_start sub_8043B40
|
|
sub_8043B40: @ 8043B40
|
|
sub sp, 0x4
|
|
add sp, 0x4
|
|
bx lr
|
|
thumb_func_end sub_8043B40
|
|
|
|
thumb_func_start sub_8043B48
|
|
sub_8043B48: @ 8043B48
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
str r3, [sp]
|
|
ldr r2, _08043B88 @ =gUnknown_8253AE4
|
|
ldr r3, _08043B8C @ =gBaseStats
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r0, r1
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r2, r1
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, [sp]
|
|
cmp r0, r1
|
|
bls _08043B80
|
|
str r1, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
_08043B80:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043B88: .4byte gUnknown_8253AE4
|
|
_08043B8C: .4byte gBaseStats
|
|
thumb_func_end sub_8043B48
|
|
|
|
thumb_func_start sub_8043B90
|
|
sub_8043B90: @ 8043B90
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
cmp r7, 0x63
|
|
bhi _08043C14
|
|
ldr r3, _08043C0C @ =gUnknown_8253AE4
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
ldr r2, _08043C10 @ =gBaseStats
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r0, r2
|
|
adds r1, r0
|
|
adds r1, r3
|
|
ldr r0, [r1]
|
|
cmp r5, r0
|
|
bls _08043C20
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
mov r0, sp
|
|
ldrb r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r3, r5, 0
|
|
bl sub_8043B48
|
|
movs r0, 0x1
|
|
b _08043C22
|
|
.align 2, 0
|
|
_08043C0C: .4byte gUnknown_8253AE4
|
|
_08043C10: .4byte gBaseStats
|
|
_08043C14:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
adds r3, r5, 0
|
|
bl sub_8043B48
|
|
_08043C20:
|
|
movs r0, 0
|
|
_08043C22:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8043B90
|
|
|
|
thumb_func_start CanMonLearnTMHM
|
|
CanMonLearnTMHM: @ 8043C2C
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r5, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
adds r3, r1, 0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _08043C4E
|
|
movs r0, 0
|
|
b _08043C7A
|
|
_08043C4E:
|
|
cmp r4, 0x1F
|
|
bls _08043C6C
|
|
adds r0, r4, 0
|
|
subs r0, 0x20
|
|
movs r2, 0x1
|
|
lsls r2, r0
|
|
ldr r0, _08043C68 @ =gUnknown_8252BC8
|
|
lsls r1, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
ands r0, r2
|
|
b _08043C7A
|
|
.align 2, 0
|
|
_08043C68: .4byte gUnknown_8252BC8
|
|
_08043C6C:
|
|
movs r1, 0x1
|
|
lsls r1, r5
|
|
ldr r2, _08043C80 @ =gUnknown_8252BC8
|
|
lsls r0, r3, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ands r0, r1
|
|
_08043C7A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043C80: .4byte gUnknown_8252BC8
|
|
thumb_func_end CanMonLearnTMHM
|
|
|
|
thumb_func_start GetMoveRelearnerMoves
|
|
GetMoveRelearnerMoves: @ 8043C84
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r6, r0, 0
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
movs r5, 0
|
|
mov r4, sp
|
|
_08043CBA:
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08043CBA
|
|
movs r5, 0
|
|
ldr r6, _08043DC8 @ =gUnknown_825D7B4
|
|
lsls r1, r7, 2
|
|
adds r2, r1, r6
|
|
ldr r3, [r2]
|
|
ldrh r0, [r3]
|
|
ldr r4, _08043DCC @ =0x0000ffff
|
|
str r1, [sp, 0x14]
|
|
cmp r0, r4
|
|
beq _08043DB4
|
|
mov r9, r2
|
|
str r3, [sp, 0x10]
|
|
_08043CE8:
|
|
lsls r2, r5, 1
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r2, r1
|
|
ldrh r3, [r0]
|
|
movs r0, 0xFE
|
|
lsls r0, 8
|
|
ands r0, r3
|
|
ldr r4, [sp, 0xC]
|
|
lsls r1, r4, 9
|
|
adds r7, r2, 0
|
|
adds r5, 0x1
|
|
mov r12, r5
|
|
cmp r0, r1
|
|
bgt _08043D9E
|
|
movs r4, 0
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
ldr r0, _08043DD0 @ =0x000001ff
|
|
ands r0, r3
|
|
cmp r1, r0
|
|
beq _08043D38
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, _08043DC8 @ =gUnknown_825D7B4
|
|
adds r6, r0, r1
|
|
ldr r2, _08043DD0 @ =0x000001ff
|
|
mov r8, r2
|
|
mov r3, sp
|
|
adds r5, r7, 0
|
|
_08043D20:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _08043D38
|
|
ldr r0, [r6]
|
|
adds r0, r5, r0
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r2, r0
|
|
bne _08043D20
|
|
_08043D38:
|
|
cmp r4, 0x4
|
|
bne _08043D9E
|
|
movs r4, 0
|
|
cmp r4, r10
|
|
bge _08043D7C
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r7, r0
|
|
ldrh r1, [r0]
|
|
ldr r0, [sp, 0x8]
|
|
ldrh r2, [r0]
|
|
ldr r0, _08043DD0 @ =0x000001ff
|
|
ands r0, r1
|
|
cmp r2, r0
|
|
beq _08043D7C
|
|
ldr r1, [sp, 0x14]
|
|
ldr r2, _08043DC8 @ =gUnknown_825D7B4
|
|
adds r6, r1, r2
|
|
ldr r0, _08043DD0 @ =0x000001ff
|
|
mov r8, r0
|
|
ldr r3, [sp, 0x8]
|
|
adds r5, r7, 0
|
|
_08043D64:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, r10
|
|
bge _08043D7C
|
|
ldr r0, [r6]
|
|
adds r0, r5, r0
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r2, r0
|
|
bne _08043D64
|
|
_08043D7C:
|
|
cmp r4, r10
|
|
bne _08043D9E
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r2, r4, 1
|
|
ldr r1, [sp, 0x8]
|
|
adds r2, r1
|
|
mov r4, r9
|
|
ldr r0, [r4]
|
|
adds r0, r7, r0
|
|
ldrh r1, [r0]
|
|
ldr r0, _08043DD0 @ =0x000001ff
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
_08043D9E:
|
|
mov r5, r12
|
|
cmp r5, 0x13
|
|
bgt _08043DB4
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r1, r5, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r2, _08043DCC @ =0x0000ffff
|
|
cmp r0, r2
|
|
bne _08043CE8
|
|
_08043DB4:
|
|
mov r0, r10
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043DC8: .4byte gUnknown_825D7B4
|
|
_08043DCC: .4byte 0x0000ffff
|
|
_08043DD0: .4byte 0x000001ff
|
|
thumb_func_end GetMoveRelearnerMoves
|
|
|
|
thumb_func_start GetLevelUpMovesBySpecies
|
|
GetLevelUpMovesBySpecies: @ 8043DD4
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 16
|
|
movs r5, 0
|
|
movs r4, 0
|
|
ldr r1, _08043E20 @ =gUnknown_825D7B4
|
|
lsrs r0, 14
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
ldr r1, _08043E24 @ =0x0000ffff
|
|
cmp r0, r1
|
|
beq _08043E18
|
|
ldr r0, _08043E28 @ =0x000001ff
|
|
mov r12, r0
|
|
adds r7, r1, 0
|
|
adds r3, r2, 0
|
|
_08043DF6:
|
|
adds r1, r5, 0
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
ldrh r2, [r3]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
strh r0, [r1]
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
bgt _08043E18
|
|
ldrh r0, [r3]
|
|
cmp r0, r7
|
|
bne _08043DF6
|
|
_08043E18:
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043E20: .4byte gUnknown_825D7B4
|
|
_08043E24: .4byte 0x0000ffff
|
|
_08043E28: .4byte 0x000001ff
|
|
thumb_func_end GetLevelUpMovesBySpecies
|
|
|
|
thumb_func_start GetNumberOfRelearnableMoves
|
|
GetNumberOfRelearnableMoves: @ 8043E2C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x3C
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x30]
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08043E68
|
|
movs r0, 0
|
|
b _08043F72
|
|
_08043E68:
|
|
movs r5, 0
|
|
lsls r4, 2
|
|
str r4, [sp, 0x38]
|
|
mov r4, sp
|
|
_08043E70:
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08043E70
|
|
movs r5, 0
|
|
ldr r3, _08043F84 @ =gUnknown_825D7B4
|
|
ldr r2, [sp, 0x38]
|
|
adds r1, r2, r3
|
|
ldr r0, [r1]
|
|
ldrh r0, [r0]
|
|
ldr r2, _08043F88 @ =0x0000ffff
|
|
cmp r0, r2
|
|
beq _08043F70
|
|
mov r9, r1
|
|
mov r4, sp
|
|
adds r4, 0x8
|
|
str r4, [sp, 0x34]
|
|
_08043EA0:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r2, r5, 1
|
|
adds r0, r2, r0
|
|
ldrh r3, [r0]
|
|
movs r0, 0xFE
|
|
lsls r0, 8
|
|
ands r0, r3
|
|
ldr r4, [sp, 0x30]
|
|
lsls r1, r4, 9
|
|
adds r7, r2, 0
|
|
adds r5, 0x1
|
|
mov r12, r5
|
|
cmp r0, r1
|
|
bgt _08043F5A
|
|
movs r4, 0
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
ldr r0, _08043F8C @ =0x000001ff
|
|
ands r0, r3
|
|
cmp r1, r0
|
|
beq _08043EF2
|
|
ldr r0, [sp, 0x38]
|
|
ldr r1, _08043F84 @ =gUnknown_825D7B4
|
|
adds r6, r0, r1
|
|
ldr r2, _08043F8C @ =0x000001ff
|
|
mov r8, r2
|
|
mov r3, sp
|
|
adds r5, r7, 0
|
|
_08043EDA:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _08043EF2
|
|
ldr r0, [r6]
|
|
adds r0, r5, r0
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r2, r0
|
|
bne _08043EDA
|
|
_08043EF2:
|
|
cmp r4, 0x4
|
|
bne _08043F5A
|
|
movs r4, 0
|
|
cmp r4, r10
|
|
bge _08043F38
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r7, r0
|
|
ldrh r1, [r0]
|
|
ldr r0, [sp, 0x34]
|
|
ldrh r2, [r0]
|
|
ldr r0, _08043F8C @ =0x000001ff
|
|
ands r0, r1
|
|
add r1, sp, 0x8
|
|
cmp r2, r0
|
|
beq _08043F38
|
|
ldr r2, [sp, 0x38]
|
|
ldr r0, _08043F84 @ =gUnknown_825D7B4
|
|
adds r6, r2, r0
|
|
ldr r2, _08043F8C @ =0x000001ff
|
|
mov r8, r2
|
|
adds r3, r1, 0
|
|
adds r5, r7, 0
|
|
_08043F20:
|
|
adds r3, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, r10
|
|
bge _08043F38
|
|
ldr r0, [r6]
|
|
adds r0, r5, r0
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r2, r0
|
|
bne _08043F20
|
|
_08043F38:
|
|
cmp r4, r10
|
|
bne _08043F5A
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r2, r4, 1
|
|
ldr r4, [sp, 0x34]
|
|
adds r2, r4, r2
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r7, r0
|
|
ldrh r1, [r0]
|
|
ldr r0, _08043F8C @ =0x000001ff
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
_08043F5A:
|
|
mov r5, r12
|
|
cmp r5, 0x13
|
|
bgt _08043F70
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
lsls r1, r5, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r4, _08043F88 @ =0x0000ffff
|
|
cmp r0, r4
|
|
bne _08043EA0
|
|
_08043F70:
|
|
mov r0, r10
|
|
_08043F72:
|
|
add sp, 0x3C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08043F84: .4byte gUnknown_825D7B4
|
|
_08043F88: .4byte 0x0000ffff
|
|
_08043F8C: .4byte 0x000001ff
|
|
thumb_func_end GetNumberOfRelearnableMoves
|
|
|
|
thumb_func_start sub_8043F90
|
|
sub_8043F90: @ 8043F90
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
adds r4, r0, 0
|
|
bl sub_806E25C
|
|
cmp r0, 0
|
|
bne _08043FB4
|
|
cmp r4, 0x97
|
|
bls _08043FB4
|
|
ldr r0, _08043FB0 @ =0x0000ffff
|
|
b _08043FB6
|
|
.align 2, 0
|
|
_08043FB0: .4byte 0x0000ffff
|
|
_08043FB4:
|
|
adds r0, r4, 0
|
|
_08043FB6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8043F90
|
|
|
|
thumb_func_start sub_8043FBC
|
|
sub_8043FBC: @ 8043FBC
|
|
push {lr}
|
|
ldr r1, _08043FD0 @ =gUnknown_2024024
|
|
movs r2, 0
|
|
adds r0, r1, 0x3
|
|
_08043FC4:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08043FC4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08043FD0: .4byte gUnknown_2024024
|
|
thumb_func_end sub_8043FBC
|
|
|
|
thumb_func_start sub_8043FD4
|
|
sub_8043FD4: @ 8043FD4
|
|
push {lr}
|
|
ldr r0, _08043FFC @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0804406C
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08043FF6
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044000
|
|
_08043FF6:
|
|
movs r0, 0x85
|
|
lsls r0, 1
|
|
b _08044070
|
|
.align 2, 0
|
|
_08043FFC: .4byte gBattleTypeFlags
|
|
_08044000:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0804406C
|
|
ldr r2, _08044028 @ =gTrainers
|
|
ldr r0, _0804402C @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
subs r0, 0x53
|
|
cmp r0, 0x7
|
|
bhi _08044062
|
|
lsls r0, 2
|
|
ldr r1, _08044030 @ =_08044034
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08044028: .4byte gTrainers
|
|
_0804402C: .4byte gTrainerBattleOpponent_A
|
|
_08044030: .4byte _08044034
|
|
.align 2, 0
|
|
_08044034:
|
|
.4byte _08044062
|
|
.4byte _0804405C
|
|
.4byte _08044062
|
|
.4byte _08044062
|
|
.4byte _0804405C
|
|
.4byte _08044062
|
|
.4byte _08044062
|
|
.4byte _08044054
|
|
_08044054:
|
|
ldr r0, _08044058 @ =0x0000012b
|
|
b _08044070
|
|
.align 2, 0
|
|
_08044058: .4byte 0x0000012b
|
|
_0804405C:
|
|
movs r0, 0x94
|
|
lsls r0, 1
|
|
b _08044070
|
|
_08044062:
|
|
ldr r0, _08044068 @ =0x00000129
|
|
b _08044070
|
|
.align 2, 0
|
|
_08044068: .4byte 0x00000129
|
|
_0804406C:
|
|
movs r0, 0x95
|
|
lsls r0, 1
|
|
_08044070:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8043FD4
|
|
|
|
thumb_func_start PlayBattleBGM
|
|
PlayBattleBGM: @ 8044074
|
|
push {lr}
|
|
bl ResetMapMusic
|
|
bl m4aMPlayAllStop
|
|
bl sub_8043FD4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl PlayBGM
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayBattleBGM
|
|
|
|
thumb_func_start PlayMapChosenOrBattleBGM
|
|
PlayMapChosenOrBattleBGM: @ 8044090
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl ResetMapMusic
|
|
bl m4aMPlayAllStop
|
|
cmp r4, 0
|
|
beq _080440AA
|
|
adds r0, r4, 0
|
|
bl PlayNewMapMusic
|
|
b _080440B6
|
|
_080440AA:
|
|
bl sub_8043FD4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl PlayNewMapMusic
|
|
_080440B6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayMapChosenOrBattleBGM
|
|
|
|
thumb_func_start GetMonFrontSpritePal
|
|
GetMonFrontSpritePal: @ 80440BC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMonFrontSpritePal
|
|
|
|
thumb_func_start GetFrontSpritePalFromSpeciesAndPersonality
|
|
GetFrontSpritePalFromSpeciesAndPersonality: @ 80440F4
|
|
push {r4,r5,lr}
|
|
adds r3, r2, 0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r5, r4, 0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bls _08044110
|
|
ldr r0, _0804410C @ =gUnknown_823730C
|
|
ldr r0, [r0]
|
|
b _0804413C
|
|
.align 2, 0
|
|
_0804410C: .4byte gUnknown_823730C
|
|
_08044110:
|
|
lsrs r0, r1, 16
|
|
ldr r2, _0804412C @ =0x0000ffff
|
|
ands r1, r2
|
|
eors r0, r1
|
|
lsrs r1, r3, 16
|
|
eors r0, r1
|
|
ands r3, r2
|
|
eors r0, r3
|
|
cmp r0, 0x7
|
|
bls _08044134
|
|
ldr r0, _08044130 @ =gUnknown_823730C
|
|
lsls r1, r4, 3
|
|
b _08044138
|
|
.align 2, 0
|
|
_0804412C: .4byte 0x0000ffff
|
|
_08044130: .4byte gUnknown_823730C
|
|
_08044134:
|
|
ldr r0, _08044144 @ =gUnknown_82380CC
|
|
lsls r1, r5, 3
|
|
_08044138:
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_0804413C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044144: .4byte gUnknown_82380CC
|
|
thumb_func_end GetFrontSpritePalFromSpeciesAndPersonality
|
|
|
|
thumb_func_start GetMonSpritePalStruct
|
|
GetMonSpritePalStruct: @ 8044148
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMonSpritePalStruct
|
|
|
|
thumb_func_start GetMonSpritePalStructFromOtIdPersonality
|
|
GetMonSpritePalStructFromOtIdPersonality: @ 8044180
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsrs r0, r1, 16
|
|
ldr r3, _080441A0 @ =0x0000ffff
|
|
ands r1, r3
|
|
eors r0, r1
|
|
lsrs r1, r2, 16
|
|
eors r0, r1
|
|
ands r2, r3
|
|
eors r0, r2
|
|
cmp r0, 0x7
|
|
bls _080441A8
|
|
lsls r0, r4, 3
|
|
ldr r1, _080441A4 @ =gUnknown_823730C
|
|
b _080441AC
|
|
.align 2, 0
|
|
_080441A0: .4byte 0x0000ffff
|
|
_080441A4: .4byte gUnknown_823730C
|
|
_080441A8:
|
|
lsls r0, r4, 3
|
|
ldr r1, _080441B4 @ =gUnknown_82380CC
|
|
_080441AC:
|
|
adds r0, r1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080441B4: .4byte gUnknown_82380CC
|
|
thumb_func_end GetMonSpritePalStructFromOtIdPersonality
|
|
|
|
thumb_func_start IsHMMove2
|
|
IsHMMove2: @ 80441B8
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r2, _080441DC @ =gUnknown_825E014
|
|
ldrh r0, [r2]
|
|
ldr r1, _080441E0 @ =0x0000ffff
|
|
cmp r0, r1
|
|
beq _080441EA
|
|
adds r4, r1, 0
|
|
adds r1, r2, 0
|
|
_080441CC:
|
|
ldrh r0, [r2]
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
cmp r0, r3
|
|
bne _080441E4
|
|
movs r0, 0x1
|
|
b _080441EC
|
|
.align 2, 0
|
|
_080441DC: .4byte gUnknown_825E014
|
|
_080441E0: .4byte 0x0000ffff
|
|
_080441E4:
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _080441CC
|
|
_080441EA:
|
|
movs r0, 0
|
|
_080441EC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsHMMove2
|
|
|
|
thumb_func_start IsPokeSpriteNotFlipped
|
|
IsPokeSpriteNotFlipped: @ 80441F4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _08044208 @ =gBaseStats
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x19]
|
|
lsrs r0, 7
|
|
bx lr
|
|
.align 2, 0
|
|
_08044208: .4byte gBaseStats
|
|
thumb_func_end IsPokeSpriteNotFlipped
|
|
|
|
thumb_func_start GetMonFlavorRelation
|
|
GetMonFlavorRelation: @ 804420C
|
|
push {r4,lr}
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08044230 @ =gUnknown_825DE24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
adds r1, r4
|
|
adds r1, r2
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044230: .4byte gUnknown_825DE24
|
|
thumb_func_end GetMonFlavorRelation
|
|
|
|
thumb_func_start GetFlavorRelationByPersonality
|
|
GetFlavorRelationByPersonality: @ 8044234
|
|
push {r4,lr}
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
bl GetNatureFromPersonality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08044258 @ =gUnknown_825DE24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
adds r1, r4
|
|
adds r1, r2
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044258: .4byte gUnknown_825DE24
|
|
thumb_func_end GetFlavorRelationByPersonality
|
|
|
|
thumb_func_start IsTradedMon
|
|
IsTradedMon: @ 804425C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
movs r1, 0x7
|
|
mov r2, sp
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetMonData
|
|
mov r1, sp
|
|
bl IsOtherTrainer
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsTradedMon
|
|
|
|
thumb_func_start IsOtherTrainer
|
|
IsOtherTrainer: @ 8044288
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
ldr r1, _080442CC @ =gSaveBlock2Ptr
|
|
ldr r3, [r1]
|
|
ldrb r2, [r3, 0xA]
|
|
ldrb r1, [r3, 0xB]
|
|
lsls r1, 8
|
|
orrs r2, r1
|
|
ldrb r1, [r3, 0xC]
|
|
lsls r1, 16
|
|
orrs r2, r1
|
|
ldrb r1, [r3, 0xD]
|
|
lsls r1, 24
|
|
orrs r2, r1
|
|
cmp r0, r2
|
|
bne _080442D0
|
|
movs r4, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xFF
|
|
beq _080442C6
|
|
adds r2, r5, 0
|
|
_080442B2:
|
|
adds r1, r3, r4
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080442D0
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xFF
|
|
bne _080442B2
|
|
_080442C6:
|
|
movs r0, 0
|
|
b _080442D2
|
|
.align 2, 0
|
|
_080442CC: .4byte gSaveBlock2Ptr
|
|
_080442D0:
|
|
movs r0, 0x1
|
|
_080442D2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsOtherTrainer
|
|
|
|
thumb_func_start MonRestorePP
|
|
MonRestorePP: @ 80442D8
|
|
push {lr}
|
|
bl BoxMonRestorePP
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MonRestorePP
|
|
|
|
thumb_func_start BoxMonRestorePP
|
|
BoxMonRestorePP: @ 80442E4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
_080442EC:
|
|
adds r4, r6, 0
|
|
adds r4, 0xD
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
beq _08044338
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl GetBoxMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x15
|
|
movs r2, 0
|
|
bl GetBoxMonData
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, r6, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
bl CalculatePPWithBonus
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r1, r6, 0
|
|
adds r1, 0x11
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
bl sub_80404D0
|
|
_08044338:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080442EC
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end BoxMonRestorePP
|
|
|
|
thumb_func_start sub_8044348
|
|
sub_8044348: @ 8044348
|
|
push {r4,r5,lr}
|
|
ldr r2, _0804438C @ =gUnknown_2023D6A
|
|
ldr r5, _08044390 @ =gBattleStruct
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0xAC
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r4, _08044394 @ =gUnknown_2022AB8
|
|
movs r0, 0xFD
|
|
strb r0, [r4]
|
|
movs r0, 0x4
|
|
strb r0, [r4, 0x1]
|
|
adds r1, 0x49
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, 0x2]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x4]
|
|
ldrb r0, [r1]
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0804439C
|
|
ldr r1, _08044398 @ =gBattlerPartyIndexes
|
|
ldr r0, [r5]
|
|
adds r0, 0x49
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
b _080443AA
|
|
.align 2, 0
|
|
_0804438C: .4byte gUnknown_2023D6A
|
|
_08044390: .4byte gBattleStruct
|
|
_08044394: .4byte gUnknown_2022AB8
|
|
_08044398: .4byte gBattlerPartyIndexes
|
|
_0804439C:
|
|
ldr r1, _080443E0 @ =gBattlerPartyIndexes
|
|
ldr r0, [r5]
|
|
adds r0, 0x49
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
_080443AA:
|
|
strb r0, [r4, 0x3]
|
|
ldr r4, _080443E4 @ =gUnknown_2022AC8
|
|
movs r0, 0xFD
|
|
strb r0, [r4]
|
|
movs r0, 0x4
|
|
strb r0, [r4, 0x1]
|
|
ldr r1, _080443E8 @ =gUnknown_2024004
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, 0x2]
|
|
ldr r2, _080443E0 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl pokemon_order_func
|
|
strb r0, [r4, 0x3]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x4]
|
|
ldr r0, _080443EC @ =gUnknown_83FCA2C
|
|
ldr r1, _080443F0 @ =gStringVar4
|
|
bl sub_80D7868
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080443E0: .4byte gBattlerPartyIndexes
|
|
_080443E4: .4byte gUnknown_2022AC8
|
|
_080443E8: .4byte gUnknown_2024004
|
|
_080443EC: .4byte gUnknown_83FCA2C
|
|
_080443F0: .4byte gStringVar4
|
|
thumb_func_end sub_8044348
|
|
|
|
thumb_func_start SetWildMonHeldItem
|
|
SetWildMonHeldItem: @ 80443F4
|
|
push {r4,r5,lr}
|
|
ldr r0, _0804444C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, _08044450 @ =0x00012008
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08044468
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r4, _08044454 @ =gEnemyParty
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _08044458 @ =gBaseStats
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r3, r1, 2
|
|
adds r1, r3, r2
|
|
ldrh r0, [r1, 0xC]
|
|
ldrh r1, [r1, 0xE]
|
|
cmp r0, r1
|
|
beq _0804443E
|
|
cmp r5, 0x2C
|
|
bls _08044468
|
|
cmp r5, 0x5E
|
|
bhi _0804445C
|
|
_0804443E:
|
|
adds r2, 0xC
|
|
adds r2, r3, r2
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl sub_804037C
|
|
b _08044468
|
|
.align 2, 0
|
|
_0804444C: .4byte gBattleTypeFlags
|
|
_08044450: .4byte 0x00012008
|
|
_08044454: .4byte gEnemyParty
|
|
_08044458: .4byte gBaseStats
|
|
_0804445C:
|
|
adds r2, 0xE
|
|
adds r2, r3, r2
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl sub_804037C
|
|
_08044468:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetWildMonHeldItem
|
|
|
|
thumb_func_start IsMonShiny
|
|
IsMonShiny: @ 8044470
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
bl IsShinyOtIdPersonality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsMonShiny
|
|
|
|
thumb_func_start IsShinyOtIdPersonality
|
|
IsShinyOtIdPersonality: @ 804449C
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
lsrs r2, r0, 16
|
|
ldr r3, _080444C0 @ =0x0000ffff
|
|
ands r0, r3
|
|
eors r2, r0
|
|
lsrs r0, r1, 16
|
|
eors r2, r0
|
|
ands r1, r3
|
|
eors r2, r1
|
|
cmp r2, 0x7
|
|
bhi _080444B6
|
|
movs r4, 0x1
|
|
_080444B6:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080444C0: .4byte 0x0000ffff
|
|
thumb_func_end IsShinyOtIdPersonality
|
|
|
|
thumb_func_start sub_80444C4
|
|
sub_80444C4: @ 80444C4
|
|
push {r4,lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080444F4 @ =gUnknown_202273C
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r1, [r1, 0x18]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl GetBankMultiplayerId
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080444F4: .4byte gUnknown_202273C
|
|
thumb_func_end sub_80444C4
|
|
|
|
thumb_func_start sub_80444F8
|
|
sub_80444F8: @ 80444F8
|
|
push {r4-r6,lr}
|
|
movs r6, 0x1
|
|
movs r5, 0
|
|
_080444FE:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _08044548 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0x1
|
|
bne _08044538
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
movs r2, 0
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _08044538
|
|
adds r0, r4, 0
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r6
|
|
bls _08044538
|
|
adds r6, r0, 0
|
|
_08044538:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _080444FE
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044548: .4byte gPlayerParty
|
|
thumb_func_end sub_80444F8
|
|
|
|
thumb_func_start sub_804454C
|
|
sub_804454C: @ 804454C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08044558 @ =gUnknown_82538A8
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08044558: .4byte gUnknown_82538A8
|
|
thumb_func_end sub_804454C
|
|
|
|
thumb_func_start sub_804455C
|
|
sub_804455C: @ 804455C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
cmp r0, 0x5
|
|
bhi _08044632
|
|
lsls r0, 2
|
|
ldr r1, _08044574 @ =_08044578
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08044574: .4byte _08044578
|
|
.align 2, 0
|
|
_08044578:
|
|
.4byte _08044632
|
|
.4byte _08044590
|
|
.4byte _08044664
|
|
.4byte _080445BC
|
|
.4byte _08044664
|
|
.4byte _080445F4
|
|
_08044590:
|
|
ldr r0, _080445B0 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
ldr r0, _080445B4 @ =gMain
|
|
ldr r1, _080445B8 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
b _0804461A
|
|
.align 2, 0
|
|
_080445B0: .4byte gBattleTypeFlags
|
|
_080445B4: .4byte gMain
|
|
_080445B8: .4byte 0x00000439
|
|
_080445BC:
|
|
ldr r0, _080445E8 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
ldr r0, _080445EC @ =gMain
|
|
ldr r1, _080445F0 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
cmp r5, 0x1
|
|
beq _08044664
|
|
cmp r5, 0x4
|
|
beq _08044664
|
|
cmp r5, 0x5
|
|
beq _08044664
|
|
b _08044632
|
|
.align 2, 0
|
|
_080445E8: .4byte gBattleTypeFlags
|
|
_080445EC: .4byte gMain
|
|
_080445F0: .4byte 0x00000439
|
|
_080445F4:
|
|
ldr r0, _08044638 @ =gBattleTypeFlags
|
|
ldr r2, [r0]
|
|
movs r3, 0x2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08044648
|
|
ldr r0, _0804463C @ =gMain
|
|
ldr r1, _08044640 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
movs r0, 0x40
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08044658
|
|
_0804461A:
|
|
ldr r4, _08044644 @ =gUnknown_202273C
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x18]
|
|
cmp r0, r5
|
|
bne _08044664
|
|
_08044632:
|
|
movs r0, 0
|
|
b _08044666
|
|
.align 2, 0
|
|
_08044638: .4byte gBattleTypeFlags
|
|
_0804463C: .4byte gMain
|
|
_08044640: .4byte 0x00000439
|
|
_08044644: .4byte gUnknown_202273C
|
|
_08044648:
|
|
ldr r0, _0804466C @ =gMain
|
|
ldr r1, _08044670 @ =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044632
|
|
_08044658:
|
|
adds r0, r5, 0
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08044632
|
|
_08044664:
|
|
movs r0, 0x1
|
|
_08044666:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804466C: .4byte gMain
|
|
_08044670: .4byte 0x00000439
|
|
thumb_func_end sub_804455C
|
|
|
|
thumb_func_start GetDeoxysStat
|
|
GetDeoxysStat: @ 8044674
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, _0804469C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08044698
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xCD
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080446A0
|
|
_08044698:
|
|
movs r0, 0
|
|
b _080446FE
|
|
.align 2, 0
|
|
_0804469C: .4byte gBattleTypeFlags
|
|
_080446A0:
|
|
adds r1, r6, 0
|
|
adds r1, 0x27
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
adds r1, r6, 0
|
|
adds r1, 0x1A
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
ldr r2, _08044704 @ =gUnknown_825E026
|
|
lsls r1, r6, 1
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
cmp r0, 0
|
|
bge _080446CC
|
|
adds r0, 0x3
|
|
_080446CC:
|
|
asrs r0, 2
|
|
adds r0, r1, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0x54
|
|
ldrb r1, [r1]
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
adds r0, 0x5
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
bl GetNature
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r2, r6, 24
|
|
lsrs r2, 24
|
|
adds r1, r4, 0
|
|
bl nature_stat_mod
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
_080446FE:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044704: .4byte gUnknown_825E026
|
|
thumb_func_end GetDeoxysStat
|
|
|
|
thumb_func_start sub_8044708
|
|
sub_8044708: @ 8044708
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r5, 0
|
|
_0804470E:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _080447A8 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
movs r1, 0xCD
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _08044798
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
movs r2, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3B
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
movs r2, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3C
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
movs r2, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3D
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
movs r2, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3E
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
movs r2, 0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3F
|
|
mov r2, sp
|
|
bl sub_804037C
|
|
_08044798:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _0804470E
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080447A8: .4byte gPlayerParty
|
|
thumb_func_end sub_8044708
|
|
|
|
thumb_func_start sub_80447AC
|
|
sub_80447AC: @ 80447AC
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080447E8 @ =gUnknown_202273C
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r0, r3, 0x4
|
|
adds r0, r1, r0
|
|
ldr r2, [r0]
|
|
movs r0, 0x7
|
|
ands r2, r0
|
|
adds r1, r3
|
|
ldrb r0, [r1, 0x13]
|
|
lsls r0, 3
|
|
orrs r2, r0
|
|
ldr r0, _080447EC @ =gUnknown_825E032
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
ldrh r0, [r2]
|
|
bl sub_804454C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080447E8: .4byte gUnknown_202273C
|
|
_080447EC: .4byte gUnknown_825E032
|
|
thumb_func_end sub_80447AC
|
|
|
|
thumb_func_start sub_80447F0
|
|
sub_80447F0: @ 80447F0
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _0804482C @ =gUnknown_202273C
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r0, r3, 0x4
|
|
adds r0, r1, r0
|
|
ldr r2, [r0]
|
|
movs r0, 0x7
|
|
ands r2, r0
|
|
adds r1, r3
|
|
ldrb r0, [r1, 0x13]
|
|
lsls r0, 3
|
|
orrs r2, r0
|
|
ldr r1, _08044830 @ =gUnknown_825393E
|
|
ldr r0, _08044834 @ =gUnknown_825E032
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
ldrh r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0804482C: .4byte gUnknown_202273C
|
|
_08044830: .4byte gUnknown_825393E
|
|
_08044834: .4byte gUnknown_825E032
|
|
thumb_func_end sub_80447F0
|
|
|
|
thumb_func_start sub_8044838
|
|
sub_8044838: @ 8044838
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
ldr r0, _08044888 @ =gUnknown_20370C0
|
|
ldrh r5, [r0]
|
|
ldr r0, _0804488C @ =gUnknown_20370C2
|
|
ldrh r4, [r0]
|
|
ldr r0, _08044890 @ =gUnknown_20370C4
|
|
ldrh r6, [r0]
|
|
bl ZeroEnemyPartyMons
|
|
ldr r7, _08044894 @ =gEnemyParty
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x20
|
|
bl sub_803E1EC
|
|
cmp r6, 0
|
|
beq _08044880
|
|
add r0, sp, 0x10
|
|
strb r6, [r0]
|
|
adds r1, r0, 0
|
|
asrs r0, r6, 8
|
|
strb r0, [r1, 0x1]
|
|
adds r0, r7, 0
|
|
movs r1, 0xC
|
|
add r2, sp, 0x10
|
|
bl sub_804037C
|
|
_08044880:
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044888: .4byte gUnknown_20370C0
|
|
_0804488C: .4byte gUnknown_20370C2
|
|
_08044890: .4byte gUnknown_20370C4
|
|
_08044894: .4byte gEnemyParty
|
|
thumb_func_end sub_8044838
|
|
|
|
thumb_func_start sub_8044898
|
|
sub_8044898: @ 8044898
|
|
push {r4-r7,lr}
|
|
adds r7, r2, 0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r6, r4, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r0, 0x2
|
|
eors r0, r5
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
adds r0, r4, 0
|
|
bl sub_8088E74
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080448EE
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8088E74
|
|
adds r0, r4, 0
|
|
bl NationalPokedexNumToSpecies
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC9
|
|
bne _080448D8
|
|
ldr r0, _080448F4 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
str r7, [r0, 0x1C]
|
|
_080448D8:
|
|
adds r0, r6, 0
|
|
bl NationalPokedexNumToSpecies
|
|
lsls r0, 16
|
|
movs r1, 0x9A
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bne _080448EE
|
|
ldr r0, _080448F4 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
str r7, [r0, 0x20]
|
|
_080448EE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080448F4: .4byte gSaveBlock2Ptr
|
|
thumb_func_end sub_8044898
|
|
|
|
thumb_func_start sub_80448F8
|
|
sub_80448F8: @ 80448F8
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
ldr r0, _0804493C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044944
|
|
adds r0, r2, 0
|
|
bl GetBankSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08044944
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
mov r0, sp
|
|
bl StringGetEnd10
|
|
ldr r1, _08044940 @ =gUnknown_841D148
|
|
mov r0, sp
|
|
bl StringCompare
|
|
cmp r0, 0
|
|
bne _08044944
|
|
movs r0, 0x1
|
|
b _08044946
|
|
.align 2, 0
|
|
_0804493C: .4byte gBattleTypeFlags
|
|
_08044940: .4byte gUnknown_841D148
|
|
_08044944:
|
|
movs r0, 0
|
|
_08044946:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80448F8
|
|
|
|
thumb_func_start sub_8044950
|
|
sub_8044950: @ 8044950
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r6, 0
|
|
cmp r1, 0x3
|
|
bls _080449EC
|
|
adds r5, r6, 0
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
cmp r5, r0
|
|
bge _08044A2C
|
|
_08044972:
|
|
ldr r1, [r4, 0x10]
|
|
lsls r3, r5, 1
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
ldr r2, _080449E8 @ =gUnknown_825DEF0
|
|
adds r1, r0, r1
|
|
adds r0, r2
|
|
ldm r0!, {r2,r6,r7}
|
|
stm r1!, {r2,r6,r7}
|
|
ldm r0!, {r2,r6,r7}
|
|
stm r1!, {r2,r6,r7}
|
|
movs r6, 0
|
|
ldrb r2, [r4, 0x1]
|
|
ldr r0, [r4, 0x10]
|
|
mov r10, r0
|
|
mov r8, r3
|
|
ldr r7, [r4, 0x14]
|
|
adds r1, r5, 0x1
|
|
mov r9, r1
|
|
cmp r6, r2
|
|
bcs _080449C2
|
|
mov r12, r7
|
|
ldr r1, [r4, 0xC]
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
_080449A6:
|
|
adds r0, r5, 0
|
|
muls r0, r2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
add r0, r12
|
|
lsls r1, r6, 11
|
|
adds r1, r3, r1
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrb r2, [r4, 0x1]
|
|
cmp r6, r2
|
|
bcc _080449A6
|
|
_080449C2:
|
|
mov r2, r8
|
|
adds r1, r2, r5
|
|
lsls r1, 3
|
|
add r1, r10
|
|
ldrb r0, [r4, 0x1]
|
|
muls r0, r5
|
|
lsls r0, 3
|
|
adds r0, r7, r0
|
|
str r0, [r1, 0xC]
|
|
mov r3, r9
|
|
lsls r0, r3, 16
|
|
lsrs r5, r0, 16
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
cmp r5, r0
|
|
blt _08044972
|
|
b _08044A2C
|
|
.align 2, 0
|
|
_080449E8: .4byte gUnknown_825DEF0
|
|
_080449EC:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r2, _08044A3C @ =gUnknown_825DEF0
|
|
ldr r1, [r4, 0x10]
|
|
adds r0, r2
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
ldm r0!, {r3,r5,r7}
|
|
stm r1!, {r3,r5,r7}
|
|
ldr r0, [r4, 0x10]
|
|
mov r10, r0
|
|
ldr r7, [r4, 0x14]
|
|
ldrb r1, [r4, 0x1]
|
|
cmp r6, r1
|
|
bcs _08044A28
|
|
adds r3, r7, 0
|
|
ldr r0, [r4, 0xC]
|
|
ldr r2, [r0]
|
|
_08044A12:
|
|
lsls r0, r6, 3
|
|
adds r0, r3
|
|
lsls r1, r6, 11
|
|
adds r1, r2, r1
|
|
str r1, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrb r5, [r4, 0x1]
|
|
cmp r6, r5
|
|
bcc _08044A12
|
|
_08044A28:
|
|
mov r6, r10
|
|
str r7, [r6, 0xC]
|
|
_08044A2C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044A3C: .4byte gUnknown_825DEF0
|
|
thumb_func_end sub_8044950
|
|
|
|
thumb_func_start sub_8044A40
|
|
sub_8044A40: @ 8044A40
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
movs r3, 0
|
|
cmp r0, 0
|
|
beq _08044ADA
|
|
ldr r0, _08044AE8 @ =gUnknown_825E05C
|
|
mov r10, r0
|
|
_08044A5A:
|
|
ldr r0, [r4, 0x10]
|
|
lsls r2, r3, 1
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
mov r0, r10
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
movs r5, 0
|
|
ldr r0, [r4, 0x10]
|
|
mov r8, r0
|
|
mov r12, r2
|
|
ldr r7, [r4, 0x14]
|
|
adds r1, r3, 0x1
|
|
mov r9, r1
|
|
ldrb r6, [r4, 0x1]
|
|
cmp r5, r6
|
|
bcs _08044AAE
|
|
adds r6, r7, 0
|
|
ldr r1, [r4, 0xC]
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
_08044A8C:
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
adds r1, r3, 0
|
|
muls r1, r0
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r6
|
|
lsls r0, r5, 11
|
|
adds r0, r2, r0
|
|
str r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r5, r0
|
|
bcc _08044A8C
|
|
_08044AAE:
|
|
mov r5, r12
|
|
adds r1, r5, r3
|
|
lsls r1, 3
|
|
add r1, r8
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
muls r0, r3
|
|
lsls r0, 3
|
|
adds r0, r7, r0
|
|
str r0, [r1, 0xC]
|
|
ldr r6, _08044AEC @ =gUnknown_82349BC
|
|
str r6, [r1, 0x8]
|
|
strh r3, [r1, 0x2]
|
|
mov r7, r9
|
|
lsls r0, r7, 16
|
|
lsrs r3, r0, 16
|
|
ldrb r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
cmp r3, r0
|
|
blt _08044A5A
|
|
_08044ADA:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08044AE8: .4byte gUnknown_825E05C
|
|
_08044AEC: .4byte gUnknown_82349BC
|
|
thumb_func_end sub_8044A40
|
|
|
|
thumb_func_start sub_8044AF0
|
|
sub_8044AF0: @ 8044AF0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r4, _08044B34 @ =gUnknown_20244F4
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
beq _08044B1E
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xA3
|
|
beq _08044B2E
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
mov r1, r8
|
|
str r1, [r4]
|
|
_08044B1E:
|
|
ldr r4, _08044B34 @ =gUnknown_20244F4
|
|
movs r0, 0x18
|
|
bl AllocZeroed
|
|
adds r2, r0, 0
|
|
str r2, [r4]
|
|
cmp r2, 0
|
|
bne _08044B38
|
|
_08044B2E:
|
|
movs r0, 0
|
|
b _08044D70
|
|
.align 2, 0
|
|
_08044B34: .4byte gUnknown_20244F4
|
|
_08044B38:
|
|
cmp r5, 0
|
|
beq _08044B94
|
|
cmp r5, 0x1
|
|
bne _08044B94
|
|
cmp r6, 0x4
|
|
bne _08044B5E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
b _08044B7C
|
|
_08044B5E:
|
|
cmp r6, 0x4
|
|
bls _08044B64
|
|
movs r6, 0
|
|
_08044B64:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
_08044B7C:
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r2, _08044B90 @ =gUnknown_20244F4
|
|
ldr r1, [r2]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x3]
|
|
b _08044BD0
|
|
.align 2, 0
|
|
_08044B90: .4byte gUnknown_20244F4
|
|
_08044B94:
|
|
cmp r6, 0
|
|
bne _08044B9A
|
|
movs r6, 0x1
|
|
_08044B9A:
|
|
cmp r6, 0x8
|
|
bls _08044BA0
|
|
movs r6, 0x8
|
|
_08044BA0:
|
|
ldr r4, _08044C10 @ =gUnknown_20244F4
|
|
ldr r3, [r4]
|
|
movs r0, 0xF
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r2, [r4]
|
|
lsls r3, r6, 4
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
ldr r1, [r4]
|
|
movs r2, 0
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r4]
|
|
strb r2, [r0, 0x3]
|
|
_08044BD0:
|
|
ldr r5, _08044C10 @ =gUnknown_20244F4
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, 0x1]
|
|
lsls r1, 11
|
|
str r1, [r0, 0x4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
muls r0, r1
|
|
bl AllocZeroed
|
|
ldr r1, [r5]
|
|
str r0, [r1, 0x8]
|
|
ldrb r0, [r1]
|
|
lsls r0, 28
|
|
lsrs r0, 23
|
|
bl AllocZeroed
|
|
adds r2, r0, 0
|
|
ldr r1, [r5]
|
|
str r2, [r1, 0xC]
|
|
ldr r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _08044C04
|
|
cmp r2, 0
|
|
bne _08044C14
|
|
_08044C04:
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
mov r8, r1
|
|
b _08044C44
|
|
.align 2, 0
|
|
_08044C10: .4byte gUnknown_20244F4
|
|
_08044C14:
|
|
ldrb r0, [r1]
|
|
lsls r0, 28
|
|
movs r4, 0
|
|
adds r3, r5, 0
|
|
cmp r0, 0
|
|
beq _08044C44
|
|
_08044C20:
|
|
ldr r3, [r5]
|
|
ldr r0, [r3, 0xC]
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r0, [r3, 0x4]
|
|
adds r2, r0, 0
|
|
muls r2, r4
|
|
ldr r0, [r3, 0x8]
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r3]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
cmp r4, r0
|
|
blt _08044C20
|
|
_08044C44:
|
|
ldr r5, _08044C8C @ =gUnknown_20244F4
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
bl AllocZeroed
|
|
ldr r2, [r5]
|
|
str r0, [r2, 0x10]
|
|
ldrb r1, [r2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
ldrb r0, [r2, 0x1]
|
|
lsls r0, 3
|
|
muls r0, r1
|
|
bl AllocZeroed
|
|
adds r2, r0, 0
|
|
ldr r1, [r5]
|
|
str r2, [r1, 0x14]
|
|
ldr r0, [r1, 0x10]
|
|
cmp r0, 0
|
|
beq _08044C7C
|
|
cmp r2, 0
|
|
bne _08044C90
|
|
_08044C7C:
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
b _08044CE2
|
|
.align 2, 0
|
|
_08044C8C: .4byte gUnknown_20244F4
|
|
_08044C90:
|
|
movs r4, 0
|
|
ldrb r0, [r1, 0x1]
|
|
ldrb r1, [r1]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
muls r0, r1
|
|
adds r3, r5, 0
|
|
cmp r4, r0
|
|
bge _08044CC6
|
|
adds r7, r3, 0
|
|
movs r5, 0x80
|
|
lsls r5, 4
|
|
_08044CA8:
|
|
ldr r2, [r7]
|
|
ldr r1, [r2, 0x14]
|
|
lsls r0, r4, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x4]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r2]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
muls r0, r1
|
|
cmp r4, r0
|
|
blt _08044CA8
|
|
_08044CC6:
|
|
ldr r0, [r3]
|
|
ldrb r4, [r0, 0x3]
|
|
cmp r4, 0
|
|
beq _08044CDA
|
|
cmp r4, 0x1
|
|
bne _08044CDA
|
|
adds r1, r6, 0
|
|
bl sub_8044950
|
|
b _08044CE2
|
|
_08044CDA:
|
|
ldr r0, _08044D60 @ =gUnknown_20244F4
|
|
ldr r0, [r0]
|
|
bl sub_8044A40
|
|
_08044CE2:
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044D12
|
|
ldr r4, _08044D60 @ =gUnknown_20244F4
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x14]
|
|
cmp r0, 0
|
|
beq _08044D00
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x14]
|
|
_08044D00:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x10]
|
|
cmp r0, 0
|
|
beq _08044D12
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x10]
|
|
_08044D12:
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08044D42
|
|
ldr r4, _08044D60 @ =gUnknown_20244F4
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
beq _08044D30
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0xC]
|
|
_08044D30:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _08044D42
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
_08044D42:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08044D64
|
|
ldr r4, _08044D60 @ =gUnknown_20244F4
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
b _08044D6C
|
|
.align 2, 0
|
|
_08044D60: .4byte gUnknown_20244F4
|
|
_08044D64:
|
|
ldr r0, _08044D7C @ =gUnknown_20244F4
|
|
ldr r1, [r0]
|
|
movs r0, 0xA3
|
|
strb r0, [r1, 0x2]
|
|
_08044D6C:
|
|
ldr r0, _08044D7C @ =gUnknown_20244F4
|
|
ldr r0, [r0]
|
|
_08044D70:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08044D7C: .4byte gUnknown_20244F4
|
|
thumb_func_end sub_8044AF0
|
|
|
|
thumb_func_start sub_8044D80
|
|
sub_8044D80: @ 8044D80
|
|
push {r4,lr}
|
|
ldr r4, _08044D9C @ =gUnknown_20244F4
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
beq _08044DFA
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0xA3
|
|
beq _08044DA0
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
b _08044DF6
|
|
.align 2, 0
|
|
_08044D9C: .4byte gUnknown_20244F4
|
|
_08044DA0:
|
|
ldr r0, [r1, 0x14]
|
|
cmp r0, 0
|
|
beq _08044DB0
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x14]
|
|
_08044DB0:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x10]
|
|
cmp r0, 0
|
|
beq _08044DC2
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x10]
|
|
_08044DC2:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
beq _08044DD4
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0xC]
|
|
_08044DD4:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _08044DE6
|
|
bl Free
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
_08044DE6:
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
ldr r0, [r4]
|
|
bl Free
|
|
_08044DF6:
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08044DFA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8044D80
|
|
|
|
thumb_func_start sub_8044E00
|
|
sub_8044E00: @ 8044E00
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, _08044E14 @ =gUnknown_20244F4
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0xA3
|
|
beq _08044E18
|
|
movs r0, 0
|
|
b _08044E2C
|
|
.align 2, 0
|
|
_08044E14: .4byte gUnknown_20244F4
|
|
_08044E18:
|
|
ldrb r0, [r2]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
cmp r1, r0
|
|
blt _08044E24
|
|
movs r1, 0
|
|
_08044E24:
|
|
ldr r0, [r2, 0xC]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_08044E2C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8044E00
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|