3556 lines
60 KiB
ArmAsm
3556 lines
60 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8139C44
|
|
sub_8139C44: @ 8139C44
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08139C74 @ =gSprites
|
|
ldr r1, _08139C78 @ =gMonSummaryScreen
|
|
ldr r1, [r1]
|
|
ldr r2, _08139C7C @ =0x00003010
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08139C74: .4byte gSprites
|
|
_08139C78: .4byte gMonSummaryScreen
|
|
_08139C7C: .4byte 0x00003010
|
|
thumb_func_end sub_8139C44
|
|
|
|
thumb_func_start sub_8139C80
|
|
sub_8139C80: @ 8139C80
|
|
push {r4,lr}
|
|
ldr r0, _08139CA4 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _08139CA8 @ =0x00003010
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl FreeAndDestroyMonPicSprite
|
|
ldr r4, _08139CAC @ =gUnknown_203B170
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08139CA4: .4byte gMonSummaryScreen
|
|
_08139CA8: .4byte 0x00003010
|
|
_08139CAC: .4byte gUnknown_203B170
|
|
thumb_func_end sub_8139C80
|
|
|
|
thumb_func_start sub_8139CB0
|
|
sub_8139CB0: @ 8139CB0
|
|
push {r4,lr}
|
|
ldr r0, _08139CD4 @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
movs r2, 0xC8
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08139CD8
|
|
adds r2, 0x90
|
|
adds r0, r1, r2
|
|
movs r1, 0x26
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _08139CDA
|
|
.align 2, 0
|
|
_08139CD4: .4byte gMonSummaryScreen
|
|
_08139CD8:
|
|
movs r0, 0
|
|
_08139CDA:
|
|
bl ItemIdToBallId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl LoadBallGfx
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _08139D40 @ =gBallSpriteTemplates
|
|
adds r0, r1
|
|
movs r1, 0x6A
|
|
movs r2, 0x58
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r2, _08139D44 @ =gMonSummaryScreen
|
|
ldr r1, [r2]
|
|
ldr r3, _08139D48 @ =0x0000300c
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
ldr r4, _08139D4C @ =gSprites
|
|
ldr r2, [r2]
|
|
adds r2, r3
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, _08139D50 @ =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x1
|
|
bl sub_8139D54
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08139D40: .4byte gBallSpriteTemplates
|
|
_08139D44: .4byte gMonSummaryScreen
|
|
_08139D48: .4byte 0x0000300c
|
|
_08139D4C: .4byte gSprites
|
|
_08139D50: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8139CB0
|
|
|
|
thumb_func_start sub_8139D54
|
|
sub_8139D54: @ 8139D54
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08139D84 @ =gSprites
|
|
ldr r1, _08139D88 @ =gMonSummaryScreen
|
|
ldr r1, [r1]
|
|
ldr r2, _08139D8C @ =0x0000300c
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08139D84: .4byte gSprites
|
|
_08139D88: .4byte gMonSummaryScreen
|
|
_08139D8C: .4byte 0x0000300c
|
|
thumb_func_end sub_8139D54
|
|
|
|
thumb_func_start sub_8139D90
|
|
sub_8139D90: @ 8139D90
|
|
push {lr}
|
|
ldr r0, _08139DB0 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _08139DB4 @ =0x0000300c
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08139DB8 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySpriteAndFreeResources2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08139DB0: .4byte gMonSummaryScreen
|
|
_08139DB4: .4byte 0x0000300c
|
|
_08139DB8: .4byte gSprites
|
|
thumb_func_end sub_8139D90
|
|
|
|
thumb_func_start sub_8139DBC
|
|
sub_8139DBC: @ 8139DBC
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r6, _08139E08 @ =gMonSummaryScreen
|
|
ldr r0, [r6]
|
|
ldr r4, _08139E0C @ =0x00003290
|
|
adds r0, r4
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl SafeLoadMonIconPalette
|
|
ldr r2, [r6]
|
|
ldr r1, _08139E10 @ =0x000032f8
|
|
adds r0, r2, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _08139E14 @ =CB2_ReturnToTradeMenuFromSummary
|
|
cmp r1, r0
|
|
bne _08139E2C
|
|
ldr r1, _08139E18 @ =0x00003024
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08139E20
|
|
ldr r1, _08139E1C @ =SpriteCallbackDummy
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
b _08139E58
|
|
.align 2, 0
|
|
_08139E08: .4byte gMonSummaryScreen
|
|
_08139E0C: .4byte 0x00003290
|
|
_08139E10: .4byte 0x000032f8
|
|
_08139E14: .4byte CB2_ReturnToTradeMenuFromSummary
|
|
_08139E18: .4byte 0x00003024
|
|
_08139E1C: .4byte SpriteCallbackDummy
|
|
_08139E20:
|
|
ldr r1, _08139E28 @ =SpriteCallbackDummy
|
|
movs r0, 0
|
|
b _08139E52
|
|
.align 2, 0
|
|
_08139E28: .4byte SpriteCallbackDummy
|
|
_08139E2C:
|
|
ldr r0, _08139E48 @ =gLastViewedMonIndex
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3
|
|
bl sub_804455C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08139E50
|
|
ldr r1, _08139E4C @ =SpriteCallbackDummy
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
b _08139E58
|
|
.align 2, 0
|
|
_08139E48: .4byte gLastViewedMonIndex
|
|
_08139E4C: .4byte SpriteCallbackDummy
|
|
_08139E50:
|
|
ldr r1, _08139E98 @ =SpriteCallbackDummy
|
|
_08139E52:
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x1
|
|
_08139E58:
|
|
str r0, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
movs r2, 0x18
|
|
movs r3, 0x20
|
|
bl CreateMonIcon
|
|
ldr r1, [r6]
|
|
ldr r2, _08139E9C @ =0x00003014
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl IsPokeSpriteNotFlipped
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08139EA8
|
|
ldr r2, _08139EA0 @ =gSprites
|
|
ldr r0, _08139EA4 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _08139E9C @ =0x00003014
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
b _08139EC6
|
|
.align 2, 0
|
|
_08139E98: .4byte SpriteCallbackDummy
|
|
_08139E9C: .4byte 0x00003014
|
|
_08139EA0: .4byte gSprites
|
|
_08139EA4: .4byte gMonSummaryScreen
|
|
_08139EA8:
|
|
ldr r2, _08139ED8 @ =gSprites
|
|
ldr r0, _08139EDC @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _08139EE0 @ =0x00003014
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3F
|
|
ldrb r2, [r0]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
ands r1, r2
|
|
_08139EC6:
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_8139EE4
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08139ED8: .4byte gSprites
|
|
_08139EDC: .4byte gMonSummaryScreen
|
|
_08139EE0: .4byte 0x00003014
|
|
thumb_func_end sub_8139DBC
|
|
|
|
thumb_func_start sub_8139EE4
|
|
sub_8139EE4: @ 8139EE4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08139F14 @ =gSprites
|
|
ldr r1, _08139F18 @ =gMonSummaryScreen
|
|
ldr r1, [r1]
|
|
ldr r2, _08139F1C @ =0x00003014
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08139F14: .4byte gSprites
|
|
_08139F18: .4byte gMonSummaryScreen
|
|
_08139F1C: .4byte 0x00003014
|
|
thumb_func_end sub_8139EE4
|
|
|
|
thumb_func_start sub_8139F20
|
|
sub_8139F20: @ 8139F20
|
|
push {r4,lr}
|
|
ldr r4, _08139F54 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _08139F58 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl SafeFreeMonIconPalette
|
|
ldr r0, [r4]
|
|
ldr r1, _08139F5C @ =0x00003014
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08139F60 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroyMonIcon
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08139F54: .4byte gMonSummaryScreen
|
|
_08139F58: .4byte 0x00003290
|
|
_08139F5C: .4byte 0x00003014
|
|
_08139F60: .4byte gSprites
|
|
thumb_func_end sub_8139F20
|
|
|
|
thumb_func_start sub_8139F64
|
|
sub_8139F64: @ 8139F64
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x30]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
movs r6, 0x80
|
|
lsls r6, 4
|
|
adds r0, r6, 0
|
|
bl AllocZeroed
|
|
str r0, [sp, 0x18]
|
|
adds r0, r6, 0
|
|
bl AllocZeroed
|
|
add r5, sp, 0x18
|
|
str r0, [r5, 0x4]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
ldr r4, _0813A0BC @ =gUnknown_203B148
|
|
str r0, [r4]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
str r0, [r4, 0x4]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
str r0, [r4, 0x8]
|
|
movs r0, 0xC
|
|
bl AllocZeroed
|
|
str r0, [r4, 0xC]
|
|
ldr r0, _0813A0C0 @ =gUnknown_8463740
|
|
ldr r1, [sp, 0x18]
|
|
bl LZ77UnCompWram
|
|
ldr r0, _0813A0C4 @ =gUnknown_846386C
|
|
ldr r1, [r5, 0x4]
|
|
bl LZ77UnCompWram
|
|
movs r7, 0
|
|
add r0, sp, 0x20
|
|
mov r8, r0
|
|
add r6, sp, 0x28
|
|
_08139FCC:
|
|
movs r4, 0x1
|
|
ands r4, r7
|
|
lsls r0, r4, 2
|
|
add r0, sp
|
|
adds r0, 0x18
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
ldr r1, [sp, 0x30]
|
|
adds r5, r1, r7
|
|
lsls r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
mov r1, r8
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _0813A0C8 @ =gUnknown_8463720
|
|
str r0, [sp, 0x28]
|
|
ldr r1, _0813A0CC @ =0xffff0000
|
|
ldr r0, [r6, 0x4]
|
|
ands r0, r1
|
|
mov r1, r9
|
|
orrs r0, r1
|
|
str r0, [r6, 0x4]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
mov r10, r1
|
|
strh r5, [r0]
|
|
mov r1, r9
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _0813A0D0 @ =gUnknown_846398C
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _0813A0D4 @ =gUnknown_84639A4
|
|
str r0, [sp, 0x8]
|
|
mov r0, r10
|
|
str r0, [sp, 0xC]
|
|
ldr r0, _0813A0D8 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _0813A0DC @ =sub_813A124
|
|
str r0, [sp, 0x14]
|
|
mov r0, r8
|
|
bl LoadSpriteSheet
|
|
adds r0, r6, 0
|
|
bl LoadSpritePalette
|
|
lsls r1, r4, 6
|
|
adds r1, 0x98
|
|
ldr r0, _0813A0E0 @ =gUnknown_203B16D
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 18
|
|
movs r0, 0x88
|
|
lsls r0, 14
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
adds r3, r4, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0813A0BC @ =gUnknown_203B148
|
|
lsls r1, r7, 2
|
|
adds r3, r1, r2
|
|
ldr r2, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813A0E4 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
strh r7, [r2, 0x4]
|
|
ldr r0, [r3]
|
|
strh r5, [r0, 0x6]
|
|
ldr r0, [r3]
|
|
mov r1, r9
|
|
strh r1, [r0, 0x8]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0]
|
|
adds r0, 0x43
|
|
strb r7, [r0]
|
|
cmp r7, 0x1
|
|
bls _0813A07E
|
|
ldr r0, [r3]
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_0813A07E:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _08139FCC
|
|
movs r0, 0x1
|
|
bl sub_813A0E8
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
beq _0813A09C
|
|
bl Free
|
|
mov r0, r10
|
|
str r0, [sp, 0x18]
|
|
_0813A09C:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r0, 0
|
|
beq _0813A0AA
|
|
bl Free
|
|
mov r1, r10
|
|
str r1, [sp, 0x1C]
|
|
_0813A0AA:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A0BC: .4byte gUnknown_203B148
|
|
_0813A0C0: .4byte gUnknown_8463740
|
|
_0813A0C4: .4byte gUnknown_846386C
|
|
_0813A0C8: .4byte gUnknown_8463720
|
|
_0813A0CC: .4byte 0xffff0000
|
|
_0813A0D0: .4byte gUnknown_846398C
|
|
_0813A0D4: .4byte gUnknown_84639A4
|
|
_0813A0D8: .4byte gDummySpriteAffineAnimTable
|
|
_0813A0DC: .4byte sub_813A124
|
|
_0813A0E0: .4byte gUnknown_203B16D
|
|
_0813A0E4: .4byte gSprites
|
|
thumb_func_end sub_8139F64
|
|
|
|
thumb_func_start sub_813A0E8
|
|
sub_813A0E8: @ 813A0E8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r6, _0813A120 @ =gUnknown_203B148
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_0813A0FC:
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0813A0FC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A120: .4byte gUnknown_203B148
|
|
thumb_func_end sub_813A0E8
|
|
|
|
thumb_func_start sub_813A124
|
|
sub_813A124: @ 813A124
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r6, 0
|
|
ldr r3, _0813A19C @ =gMonSummaryScreen
|
|
ldr r4, _0813A1A0 @ =gUnknown_203B148
|
|
_0813A132:
|
|
ldr r0, [r3]
|
|
ldr r1, _0813A1A4 @ =0x00003268
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0813A142
|
|
cmp r6, 0x1
|
|
bhi _0813A158
|
|
_0813A142:
|
|
lsls r0, r6, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldr r0, _0813A1A8 @ =gUnknown_203B16D
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x22
|
|
strh r0, [r2, 0x22]
|
|
_0813A158:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _0813A132
|
|
ldr r1, [r3]
|
|
ldr r2, _0813A1A4 @ =0x00003268
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0813A1AC
|
|
subs r2, 0x54
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0813A20E
|
|
ldr r4, _0813A1A0 @ =gUnknown_203B148
|
|
ldr r0, [r4]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r4, 0x4]
|
|
ldr r0, [r0]
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
b _0813A20E
|
|
.align 2, 0
|
|
_0813A19C: .4byte gMonSummaryScreen
|
|
_0813A1A0: .4byte gUnknown_203B148
|
|
_0813A1A4: .4byte 0x00003268
|
|
_0813A1A8: .4byte gUnknown_203B16D
|
|
_0813A1AC:
|
|
movs r6, 0
|
|
ldr r0, _0813A1F0 @ =gUnknown_203B148
|
|
mov r9, r0
|
|
mov r8, r6
|
|
movs r7, 0x4
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
mov r12, r1
|
|
_0813A1BC:
|
|
lsls r0, r6, 2
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
ldr r3, [r0]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x2E]
|
|
adds r4, r3, 0
|
|
adds r4, 0x3E
|
|
ldrb r2, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r2
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _0813A1F4
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _0813A204
|
|
mov r0, r12
|
|
ands r0, r2
|
|
strb r0, [r4]
|
|
mov r2, r8
|
|
strh r2, [r3, 0x2E]
|
|
b _0813A204
|
|
.align 2, 0
|
|
_0813A1F0: .4byte gUnknown_203B148
|
|
_0813A1F4:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _0813A204
|
|
adds r0, r2, 0
|
|
orrs r0, r7
|
|
strb r0, [r4]
|
|
strh r5, [r3, 0x2E]
|
|
_0813A204:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x1
|
|
bls _0813A1BC
|
|
_0813A20E:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A124
|
|
|
|
thumb_func_start sub_813A21C
|
|
sub_813A21C: @ 813A21C
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _0813A250 @ =gUnknown_203B148
|
|
_0813A222:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A232
|
|
bl DestroySpriteAndFreeResources
|
|
_0813A232:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _0813A240
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0813A240:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _0813A222
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A250: .4byte gUnknown_203B148
|
|
thumb_func_end sub_813A21C
|
|
|
|
thumb_func_start sub_813A254
|
|
sub_813A254: @ 813A254
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _0813A310 @ =gUnknown_203B158
|
|
mov r8, r0
|
|
movs r0, 0x8
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r0, _0813A314 @ =gUnknown_8E9BF48
|
|
adds r1, r5, 0
|
|
bl LZ77UnCompWram
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _0813A2F0
|
|
str r5, [sp, 0x18]
|
|
add r0, sp, 0x18
|
|
lsls r1, r7, 16
|
|
orrs r1, r4
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0813A318 @ =gUnknown_8E9BF28
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _0813A31C @ =0xffff0000
|
|
add r4, sp, 0x20
|
|
ldr r1, [r4, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r6
|
|
str r1, [r4, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
strh r7, [r1]
|
|
strh r6, [r1, 0x2]
|
|
ldr r1, _0813A320 @ =gUnknown_84639AC
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _0813A324 @ =gUnknown_84639F4
|
|
str r1, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
ldr r1, _0813A328 @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _0813A32C @ =SpriteCallbackDummy
|
|
str r1, [sp, 0x14]
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813A330 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
strh r7, [r2, 0x4]
|
|
strh r6, [r2, 0x6]
|
|
_0813A2F0:
|
|
movs r0, 0x1
|
|
bl sub_813A3B8
|
|
bl sub_813A35C
|
|
cmp r5, 0
|
|
beq _0813A304
|
|
adds r0, r5, 0
|
|
bl Free
|
|
_0813A304:
|
|
add sp, 0x28
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A310: .4byte gUnknown_203B158
|
|
_0813A314: .4byte gUnknown_8E9BF48
|
|
_0813A318: .4byte gUnknown_8E9BF28
|
|
_0813A31C: .4byte 0xffff0000
|
|
_0813A320: .4byte gUnknown_84639AC
|
|
_0813A324: .4byte gUnknown_84639F4
|
|
_0813A328: .4byte gDummySpriteAffineAnimTable
|
|
_0813A32C: .4byte SpriteCallbackDummy
|
|
_0813A330: .4byte gSprites
|
|
thumb_func_end sub_813A254
|
|
|
|
thumb_func_start sub_813A334
|
|
sub_813A334: @ 813A334
|
|
push {r4,lr}
|
|
ldr r4, _0813A358 @ =gUnknown_203B158
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A344
|
|
bl DestroySpriteAndFreeResources
|
|
_0813A344:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _0813A352
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0813A352:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A358: .4byte gUnknown_203B158
|
|
thumb_func_end sub_813A334
|
|
|
|
thumb_func_start sub_813A35C
|
|
sub_813A35C: @ 813A35C
|
|
push {r4,lr}
|
|
ldr r4, _0813A38C @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813A390 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x37
|
|
bl GetMonData
|
|
bl sub_8138C5C
|
|
ldr r1, [r4]
|
|
ldr r2, _0813A394 @ =0x0000326c
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _0813A398
|
|
movs r0, 0x1
|
|
bl sub_813A3B8
|
|
b _0813A3AE
|
|
.align 2, 0
|
|
_0813A38C: .4byte gMonSummaryScreen
|
|
_0813A390: .4byte 0x00003290
|
|
_0813A394: .4byte 0x0000326c
|
|
_0813A398:
|
|
ldr r0, _0813A3B4 @ =gUnknown_203B158
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
subs r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
movs r0, 0
|
|
bl sub_813A3B8
|
|
_0813A3AE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A3B4: .4byte gUnknown_203B158
|
|
thumb_func_end sub_813A35C
|
|
|
|
thumb_func_start sub_813A3B8
|
|
sub_813A3B8: @ 813A3B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, _0813A3EC @ =gMonSummaryScreen
|
|
ldr r2, [r1]
|
|
ldr r4, _0813A3F0 @ =0x0000326c
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0813A3DA
|
|
movs r1, 0xC8
|
|
lsls r1, 6
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A3F8
|
|
_0813A3DA:
|
|
ldr r3, _0813A3F4 @ =gUnknown_203B158
|
|
ldr r0, [r3]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0813A416
|
|
.align 2, 0
|
|
_0813A3EC: .4byte gMonSummaryScreen
|
|
_0813A3F0: .4byte 0x0000326c
|
|
_0813A3F4: .4byte gUnknown_203B158
|
|
_0813A3F8:
|
|
ldr r4, _0813A438 @ =gUnknown_203B158
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r3, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r3, r4, 0
|
|
_0813A416:
|
|
ldr r0, [r5]
|
|
ldr r4, _0813A43C @ =0x00003214
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0813A440
|
|
ldr r1, [r3]
|
|
ldr r2, [r1]
|
|
movs r3, 0x22
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0x2D
|
|
beq _0813A456
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x20]
|
|
ldr r1, [r1]
|
|
movs r0, 0x2D
|
|
b _0813A454
|
|
.align 2, 0
|
|
_0813A438: .4byte gUnknown_203B158
|
|
_0813A43C: .4byte 0x00003214
|
|
_0813A440:
|
|
ldr r1, [r3]
|
|
ldr r2, [r1]
|
|
movs r4, 0x22
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0x26
|
|
beq _0813A456
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x20]
|
|
ldr r1, [r1]
|
|
movs r0, 0x26
|
|
_0813A454:
|
|
strh r0, [r1, 0x22]
|
|
_0813A456:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813A3B8
|
|
|
|
thumb_func_start sub_813A45C
|
|
sub_813A45C: @ 813A45C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
movs r0, 0
|
|
str r0, [sp, 0x38]
|
|
ldr r4, _0813A4BC @ =gUnknown_203B15C
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
mov r9, r0
|
|
ldr r0, _0813A4C0 @ =gUnknown_8E9B4B8
|
|
mov r1, r9
|
|
bl LZ77UnCompWram
|
|
ldr r5, _0813A4C4 @ =gMonSummaryScreen
|
|
ldr r0, [r5]
|
|
ldr r4, _0813A4C8 @ =0x00003290
|
|
adds r0, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsrs r0, r1, 2
|
|
cmp r0, r6
|
|
bls _0813A4CC
|
|
movs r1, 0x2
|
|
str r1, [sp, 0x38]
|
|
b _0813A4D6
|
|
.align 2, 0
|
|
_0813A4BC: .4byte gUnknown_203B15C
|
|
_0813A4C0: .4byte gUnknown_8E9B4B8
|
|
_0813A4C4: .4byte gMonSummaryScreen
|
|
_0813A4C8: .4byte 0x00003290
|
|
_0813A4CC:
|
|
lsrs r0, r1, 1
|
|
cmp r0, r6
|
|
bls _0813A4D6
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x38]
|
|
_0813A4D6:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _0813A540
|
|
str r3, [sp, 0x18]
|
|
movs r2, 0xC0
|
|
lsls r2, 1
|
|
add r0, sp, 0x18
|
|
mov r6, r10
|
|
lsls r1, r6, 16
|
|
orrs r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r3, _0813A600 @ =gUnknown_8463FFC
|
|
ldr r1, [r3]
|
|
str r1, [sp, 0x20]
|
|
ldr r6, _0813A604 @ =0xffff0000
|
|
add r1, sp, 0x20
|
|
mov r8, r1
|
|
ldr r1, [r1, 0x4]
|
|
ands r1, r6
|
|
orrs r1, r7
|
|
mov r2, r8
|
|
str r1, [r2, 0x4]
|
|
ldr r1, [r3, 0x4]
|
|
str r1, [sp, 0x28]
|
|
adds r2, r7, 0x1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
add r5, sp, 0x28
|
|
ldr r1, [r5, 0x4]
|
|
ands r1, r6
|
|
orrs r1, r2
|
|
str r1, [r5, 0x4]
|
|
ldr r1, [r3, 0x8]
|
|
str r1, [sp, 0x30]
|
|
adds r2, r7, 0x2
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
add r4, sp, 0x30
|
|
ldr r1, [r4, 0x4]
|
|
ands r1, r6
|
|
orrs r1, r2
|
|
str r1, [r4, 0x4]
|
|
bl LoadSpriteSheet
|
|
mov r0, r8
|
|
bl LoadSpritePalette
|
|
adds r0, r5, 0
|
|
bl LoadSpritePalette
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
_0813A540:
|
|
movs r4, 0
|
|
ldr r3, [sp, 0x38]
|
|
adds r3, r7, r3
|
|
str r3, [sp, 0x3C]
|
|
mov r8, r4
|
|
ldr r5, _0813A608 @ =gUnknown_203B15C
|
|
_0813A54C:
|
|
mov r0, sp
|
|
mov r6, r10
|
|
strh r6, [r0]
|
|
ldrh r1, [r0, 0x3C]
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _0813A60C @ =gUnknown_8463A14
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _0813A610 @ =gUnknown_8463A7C
|
|
str r0, [sp, 0x8]
|
|
mov r2, r8
|
|
str r2, [sp, 0xC]
|
|
ldr r0, _0813A614 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _0813A618 @ =SpriteCallbackDummy
|
|
str r0, [sp, 0x14]
|
|
ldr r1, [r5]
|
|
lsls r0, r4, 1
|
|
adds r1, 0x28
|
|
adds r1, r0
|
|
lsls r0, r4, 3
|
|
adds r0, 0xAC
|
|
strh r0, [r1]
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
mov r0, sp
|
|
movs r2, 0x24
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r5]
|
|
lsls r3, r4, 2
|
|
adds r2, r3
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813A61C @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
adds r2, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x5]
|
|
subs r6, 0x8
|
|
adds r0, r6, 0
|
|
ands r1, r0
|
|
movs r0, 0x8
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x5]
|
|
ldr r0, [r5]
|
|
mov r1, r10
|
|
strh r1, [r0, 0x3C]
|
|
strh r7, [r0, 0x3E]
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x8
|
|
bls _0813A54C
|
|
bl sub_813A620
|
|
movs r0, 0x1
|
|
bl sub_813A838
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _0813A5F0
|
|
mov r0, r9
|
|
bl Free
|
|
_0813A5F0:
|
|
add sp, 0x40
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A600: .4byte gUnknown_8463FFC
|
|
_0813A604: .4byte 0xffff0000
|
|
_0813A608: .4byte gUnknown_203B15C
|
|
_0813A60C: .4byte gUnknown_8463A14
|
|
_0813A610: .4byte gUnknown_8463A7C
|
|
_0813A614: .4byte gDummySpriteAffineAnimTable
|
|
_0813A618: .4byte SpriteCallbackDummy
|
|
_0813A61C: .4byte gSprites
|
|
thumb_func_end sub_813A45C
|
|
|
|
thumb_func_start sub_813A620
|
|
sub_813A620: @ 813A620
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r5, _0813A688 @ =gMonSummaryScreen
|
|
ldr r1, [r5]
|
|
movs r2, 0xC8
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A642
|
|
b _0813A7EA
|
|
_0813A642:
|
|
ldr r4, _0813A68C @ =0x00003290
|
|
adds r0, r1, r4
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
mov r9, r0
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
movs r1, 0x5
|
|
bl __udivsi3
|
|
cmp r0, r9
|
|
bcs _0813A666
|
|
lsrs r0, r4, 1
|
|
_0813A666:
|
|
mov r3, r9
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _0813A690
|
|
cmp r0, 0x2
|
|
bgt _0813A684
|
|
cmp r0, 0x1
|
|
beq _0813A694
|
|
_0813A684:
|
|
movs r6, 0
|
|
b _0813A696
|
|
.align 2, 0
|
|
_0813A688: .4byte gMonSummaryScreen
|
|
_0813A68C: .4byte 0x00003290
|
|
_0813A690:
|
|
movs r6, 0x1
|
|
b _0813A696
|
|
_0813A694:
|
|
movs r6, 0x2
|
|
_0813A696:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
_0813A69A:
|
|
movs r0, 0x78
|
|
bl IndexOfSpritePaletteTag
|
|
ldr r5, _0813A6FC @ =gUnknown_203B15C
|
|
ldr r1, [r5]
|
|
mov r3, r8
|
|
lsls r2, r3, 2
|
|
adds r1, r2
|
|
ldr r3, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
lsls r0, 4
|
|
ldrb r2, [r3, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x5]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x8
|
|
bls _0813A69A
|
|
cmp r9, r4
|
|
bne _0813A700
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
cmp r0, 0x7
|
|
bls _0813A6DA
|
|
b _0813A7CA
|
|
_0813A6DA:
|
|
adds r4, r5, 0
|
|
_0813A6DC:
|
|
ldr r0, [r4]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
bl StartSpriteAnim
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x7
|
|
bls _0813A6DC
|
|
b _0813A7CA
|
|
.align 2, 0
|
|
_0813A6FC: .4byte gUnknown_203B15C
|
|
_0813A700:
|
|
lsls r0, r4, 2
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
mov r3, r9
|
|
lsls r0, r3, 2
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
b _0813A724
|
|
_0813A716:
|
|
subs r4, r6
|
|
sbcs r5, r7
|
|
mov r0, r10
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
_0813A724:
|
|
cmp r5, r7
|
|
bgt _0813A716
|
|
cmp r5, r7
|
|
bne _0813A730
|
|
cmp r4, r6
|
|
bhi _0813A716
|
|
_0813A730:
|
|
mov r0, r10
|
|
adds r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
lsrs r1, r4, 31
|
|
str r1, [sp, 0x4]
|
|
lsls r2, r5, 1
|
|
str r2, [sp]
|
|
cmp r8, r10
|
|
bcs _0813A76E
|
|
ldr r3, _0813A7A8 @ =gUnknown_203B15C
|
|
mov r9, r3
|
|
_0813A74E:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
bl StartSpriteAnim
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r8, r10
|
|
bcc _0813A74E
|
|
_0813A76E:
|
|
ldr r3, [sp, 0x4]
|
|
ldr r0, [sp]
|
|
orrs r3, r0
|
|
lsls r2, r4, 1
|
|
adds r2, r4
|
|
adcs r3, r5
|
|
lsrs r5, r2, 31
|
|
lsls r4, r3, 1
|
|
adds r1, r5, 0
|
|
orrs r1, r4
|
|
lsls r0, r2, 1
|
|
adds r3, r7, 0
|
|
adds r2, r6, 0
|
|
bl __divdi3
|
|
adds r2, r1, 0
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r4, _0813A7A8 @ =gUnknown_203B15C
|
|
ldr r0, [r4]
|
|
mov r2, r10
|
|
lsls r3, r2, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StartSpriteAnim
|
|
mov r0, r10
|
|
b _0813A7BE
|
|
.align 2, 0
|
|
_0813A7A8: .4byte gUnknown_203B15C
|
|
_0813A7AC:
|
|
ldr r0, [r4]
|
|
mov r3, r8
|
|
lsls r1, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
mov r0, r8
|
|
_0813A7BE:
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x7
|
|
bls _0813A7AC
|
|
_0813A7CA:
|
|
ldr r4, _0813A7FC @ =gUnknown_203B15C
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0x9
|
|
bl StartSpriteAnim
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0xA
|
|
bl StartSpriteAnim
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x20]
|
|
movs r1, 0xB
|
|
bl StartSpriteAnim
|
|
_0813A7EA:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A7FC: .4byte gUnknown_203B15C
|
|
thumb_func_end sub_813A620
|
|
|
|
thumb_func_start sub_813A800
|
|
sub_813A800: @ 813A800
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
_0813A804:
|
|
ldr r5, _0813A834 @ =gUnknown_203B15C
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A816
|
|
bl DestroySpriteAndFreeResources
|
|
_0813A816:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x8
|
|
bls _0813A804
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _0813A82E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
_0813A82E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A834: .4byte gUnknown_203B15C
|
|
thumb_func_end sub_813A800
|
|
|
|
thumb_func_start sub_813A838
|
|
sub_813A838: @ 813A838
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r6, _0813A870 @ =gUnknown_203B15C
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_0813A84C:
|
|
ldr r0, [r6]
|
|
lsls r1, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x8
|
|
bls _0813A84C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A870: .4byte gUnknown_203B15C
|
|
thumb_func_end sub_813A838
|
|
|
|
thumb_func_start sub_813A874
|
|
sub_813A874: @ 813A874
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _0813A970 @ =gUnknown_203B160
|
|
mov r8, r0
|
|
movs r0, 0x48
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r4, 0xC0
|
|
lsls r4, 1
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r0, _0813A974 @ =gUnknown_8E9B3F0
|
|
adds r1, r5, 0
|
|
bl LZ77UnCompWram
|
|
cmp r5, 0
|
|
beq _0813A8D0
|
|
str r5, [sp, 0x18]
|
|
add r0, sp, 0x18
|
|
lsls r1, r7, 16
|
|
orrs r1, r4
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0813A978 @ =gUnknown_8E9B578
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _0813A97C @ =0xffff0000
|
|
add r4, sp, 0x20
|
|
ldr r1, [r4, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r6
|
|
str r1, [r4, 0x4]
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
_0813A8D0:
|
|
movs r4, 0
|
|
mov r9, r4
|
|
_0813A8D4:
|
|
mov r0, sp
|
|
strh r7, [r0]
|
|
strh r6, [r0, 0x2]
|
|
ldr r0, _0813A980 @ =gUnknown_8463A14
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _0813A984 @ =gUnknown_8463A7C
|
|
str r0, [sp, 0x8]
|
|
mov r3, r9
|
|
str r3, [sp, 0xC]
|
|
ldr r0, _0813A988 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _0813A98C @ =SpriteCallbackDummy
|
|
str r0, [sp, 0x14]
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
lsls r0, r4, 1
|
|
adds r1, 0x2C
|
|
adds r1, r0
|
|
lsls r0, r4, 3
|
|
adds r0, 0x9C
|
|
strh r0, [r1]
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
mov r0, sp
|
|
movs r2, 0x84
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
lsls r1, r4, 2
|
|
adds r2, r1
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813A990 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
ldrb r2, [r1, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
movs r0, 0x8
|
|
orrs r2, r0
|
|
strb r2, [r1, 0x5]
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x42
|
|
strh r7, [r1]
|
|
adds r0, 0x44
|
|
strh r6, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xA
|
|
bls _0813A8D4
|
|
bl sub_813A994
|
|
movs r0, 0x1
|
|
bl sub_813AB70
|
|
cmp r5, 0
|
|
beq _0813A960
|
|
adds r0, r5, 0
|
|
bl Free
|
|
_0813A960:
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813A970: .4byte gUnknown_203B160
|
|
_0813A974: .4byte gUnknown_8E9B3F0
|
|
_0813A978: .4byte gUnknown_8E9B578
|
|
_0813A97C: .4byte 0xffff0000
|
|
_0813A980: .4byte gUnknown_8463A14
|
|
_0813A984: .4byte gUnknown_8463A7C
|
|
_0813A988: .4byte gDummySpriteAffineAnimTable
|
|
_0813A98C: .4byte SpriteCallbackDummy
|
|
_0813A990: .4byte gSprites
|
|
thumb_func_end sub_813A874
|
|
|
|
thumb_func_start sub_813A994
|
|
sub_813A994: @ 813A994
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r7, 0
|
|
ldr r6, _0813AAD4 @ =gMonSummaryScreen
|
|
ldr r1, [r6]
|
|
movs r2, 0xC8
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813A9B4
|
|
b _0813AB24
|
|
_0813A9B4:
|
|
ldr r4, _0813AAD8 @ =0x00003290
|
|
adds r0, r1, r4
|
|
movs r1, 0x19
|
|
bl GetMonData
|
|
mov r8, r0
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r5, 0x63
|
|
bls _0813A9E2
|
|
b _0813AAE8
|
|
_0813A9E2:
|
|
ldr r3, _0813AADC @ =gExperienceTables
|
|
adds r1, r5, 0x1
|
|
lsls r1, 2
|
|
ldr r2, _0813AAE0 @ =gBaseStats
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x13]
|
|
movs r0, 0xCA
|
|
lsls r0, 1
|
|
muls r2, r0
|
|
adds r1, r2
|
|
adds r1, r3
|
|
lsls r0, r5, 2
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
subs r1, r0
|
|
mov r10, r1
|
|
mov r1, r8
|
|
subs r1, r0
|
|
mov r9, r1
|
|
mov r2, r10
|
|
lsls r0, r2, 2
|
|
lsrs r0, 3
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
ldr r1, [sp, 0x4]
|
|
cmp r5, r1
|
|
ble _0813AA3E
|
|
_0813AA2A:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
subs r4, r0
|
|
sbcs r5, r1
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r5, r1
|
|
bgt _0813AA2A
|
|
ldr r1, [sp, 0x4]
|
|
_0813AA3E:
|
|
cmp r5, r1
|
|
bne _0813AA48
|
|
ldr r2, [sp]
|
|
cmp r4, r2
|
|
bhi _0813AA2A
|
|
_0813AA48:
|
|
adds r0, r7, 0x2
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0x2
|
|
cmp r6, r7
|
|
bcs _0813AA72
|
|
ldr r0, _0813AAE4 @ =gUnknown_203B160
|
|
mov r8, r0
|
|
_0813AA58:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
lsls r1, r6, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
bl StartSpriteAnim
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _0813AA58
|
|
_0813AA72:
|
|
cmp r7, 0x9
|
|
bls _0813AA86
|
|
cmp r10, r9
|
|
beq _0813AB24
|
|
ldr r0, _0813AAE4 @ =gUnknown_203B160
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x24]
|
|
movs r1, 0x7
|
|
bl StartSpriteAnim
|
|
_0813AA86:
|
|
lsrs r3, r4, 29
|
|
lsls r2, r5, 3
|
|
adds r1, r3, 0
|
|
orrs r1, r2
|
|
lsls r0, r4, 3
|
|
ldr r2, [sp]
|
|
ldr r3, [sp, 0x4]
|
|
bl __divdi3
|
|
adds r2, r1, 0
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r4, _0813AAE4 @ =gUnknown_203B160
|
|
ldr r0, [r4]
|
|
lsls r3, r7, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StartSpriteAnim
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x9
|
|
bhi _0813AB04
|
|
_0813AAB8:
|
|
ldr r0, [r4]
|
|
lsls r1, r6, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x9
|
|
bls _0813AAB8
|
|
b _0813AB04
|
|
.align 2, 0
|
|
_0813AAD4: .4byte gMonSummaryScreen
|
|
_0813AAD8: .4byte 0x00003290
|
|
_0813AADC: .4byte gExperienceTables
|
|
_0813AAE0: .4byte gBaseStats
|
|
_0813AAE4: .4byte gUnknown_203B160
|
|
_0813AAE8:
|
|
movs r6, 0x2
|
|
ldr r4, _0813AB34 @ =gUnknown_203B160
|
|
_0813AAEC:
|
|
ldr r0, [r4]
|
|
lsls r1, r6, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x9
|
|
bls _0813AAEC
|
|
_0813AB04:
|
|
ldr r4, _0813AB34 @ =gUnknown_203B160
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0x9
|
|
bl StartSpriteAnim
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0xA
|
|
bl StartSpriteAnim
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x28]
|
|
movs r1, 0xB
|
|
bl StartSpriteAnim
|
|
_0813AB24:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813AB34: .4byte gUnknown_203B160
|
|
thumb_func_end sub_813A994
|
|
|
|
thumb_func_start sub_813AB38
|
|
sub_813AB38: @ 813AB38
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
_0813AB3C:
|
|
ldr r5, _0813AB6C @ =gUnknown_203B160
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813AB4E
|
|
bl DestroySpriteAndFreeResources
|
|
_0813AB4E:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xA
|
|
bls _0813AB3C
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _0813AB66
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
_0813AB66:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813AB6C: .4byte gUnknown_203B160
|
|
thumb_func_end sub_813AB38
|
|
|
|
thumb_func_start sub_813AB70
|
|
sub_813AB70: @ 813AB70
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r6, _0813ABA8 @ =gUnknown_203B160
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_0813AB84:
|
|
ldr r0, [r6]
|
|
lsls r1, r3, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xA
|
|
bls _0813AB84
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813ABA8: .4byte gUnknown_203B160
|
|
thumb_func_end sub_813AB70
|
|
|
|
thumb_func_start sub_813ABAC
|
|
sub_813ABAC: @ 813ABAC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _0813AC68 @ =gUnknown_203B164
|
|
mov r8, r0
|
|
movs r0, 0x8
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r0, 0x20
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r0, _0813AC6C @ =gUnknown_8463B20
|
|
adds r1, r5, 0
|
|
bl LZ77UnCompWram
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _0813AC46
|
|
str r5, [sp, 0x18]
|
|
movs r2, 0x20
|
|
add r0, sp, 0x18
|
|
lsls r1, r7, 16
|
|
orrs r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0813AC70 @ =gUnknown_8463B00
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _0813AC74 @ =0xffff0000
|
|
add r4, sp, 0x20
|
|
ldr r1, [r4, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r6
|
|
str r1, [r4, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
strh r7, [r1]
|
|
strh r6, [r1, 0x2]
|
|
ldr r1, _0813AC78 @ =gUnknown_8463AEC
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _0813AC7C @ =gUnknown_8463AFC
|
|
str r1, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
ldr r1, _0813AC80 @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _0813AC84 @ =SpriteCallbackDummy
|
|
str r1, [sp, 0x14]
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
mov r0, sp
|
|
movs r1, 0x72
|
|
movs r2, 0x5C
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813AC88 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
strh r7, [r2, 0x4]
|
|
strh r6, [r2, 0x6]
|
|
_0813AC46:
|
|
movs r0, 0x1
|
|
bl sub_813ACF8
|
|
bl sub_813ACB4
|
|
cmp r5, 0
|
|
beq _0813AC5A
|
|
adds r0, r5, 0
|
|
bl Free
|
|
_0813AC5A:
|
|
add sp, 0x28
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813AC68: .4byte gUnknown_203B164
|
|
_0813AC6C: .4byte gUnknown_8463B20
|
|
_0813AC70: .4byte gUnknown_8463B00
|
|
_0813AC74: .4byte 0xffff0000
|
|
_0813AC78: .4byte gUnknown_8463AEC
|
|
_0813AC7C: .4byte gUnknown_8463AFC
|
|
_0813AC80: .4byte gDummySpriteAffineAnimTable
|
|
_0813AC84: .4byte SpriteCallbackDummy
|
|
_0813AC88: .4byte gSprites
|
|
thumb_func_end sub_813ABAC
|
|
|
|
thumb_func_start sub_813AC8C
|
|
sub_813AC8C: @ 813AC8C
|
|
push {r4,lr}
|
|
ldr r4, _0813ACB0 @ =gUnknown_203B164
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813AC9C
|
|
bl DestroySpriteAndFreeResources
|
|
_0813AC9C:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _0813ACAA
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0813ACAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813ACB0: .4byte gUnknown_203B164
|
|
thumb_func_end sub_813AC8C
|
|
|
|
thumb_func_start sub_813ACB4
|
|
sub_813ACB4: @ 813ACB4
|
|
push {r4,lr}
|
|
ldr r4, _0813ACE4 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813ACE8 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl CheckPartyPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813ACEC
|
|
ldr r0, [r4]
|
|
ldr r1, _0813ACE8 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl CheckPartyHasHadPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813ACEC
|
|
movs r0, 0
|
|
bl sub_813ACF8
|
|
b _0813ACF2
|
|
.align 2, 0
|
|
_0813ACE4: .4byte gMonSummaryScreen
|
|
_0813ACE8: .4byte 0x00003290
|
|
_0813ACEC:
|
|
movs r0, 0x1
|
|
bl sub_813ACF8
|
|
_0813ACF2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813ACB4
|
|
|
|
thumb_func_start sub_813ACF8
|
|
sub_813ACF8: @ 813ACF8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _0813AD44 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813AD48 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl CheckPartyPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0813AD50
|
|
ldr r0, [r4]
|
|
ldr r1, _0813AD48 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl CheckPartyHasHadPokerus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0813AD50
|
|
ldr r0, _0813AD4C @ =gUnknown_203B164
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0813ADA2
|
|
.align 2, 0
|
|
_0813AD44: .4byte gMonSummaryScreen
|
|
_0813AD48: .4byte 0x00003290
|
|
_0813AD4C: .4byte gUnknown_203B164
|
|
_0813AD50:
|
|
ldr r2, _0813AD88 @ =gUnknown_203B164
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r3, 0x4
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, _0813AD8C @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813AD90 @ =0x00003214
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0813AD94
|
|
ldr r0, [r2]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
ldr r2, [r2]
|
|
ldr r1, [r2]
|
|
movs r0, 0x10
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2]
|
|
movs r0, 0x2C
|
|
b _0813ADA0
|
|
.align 2, 0
|
|
_0813AD88: .4byte gUnknown_203B164
|
|
_0813AD8C: .4byte gMonSummaryScreen
|
|
_0813AD90: .4byte 0x00003214
|
|
_0813AD94:
|
|
ldr r2, [r2]
|
|
ldr r1, [r2]
|
|
movs r0, 0x72
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2]
|
|
movs r0, 0x5C
|
|
_0813ADA0:
|
|
strh r0, [r1, 0x22]
|
|
_0813ADA2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813ACF8
|
|
|
|
thumb_func_start sub_813ADA8
|
|
sub_813ADA8: @ 813ADA8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _0813AE64 @ =gUnknown_203B168
|
|
mov r8, r0
|
|
movs r0, 0x8
|
|
bl AllocZeroed
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r0, _0813AE68 @ =gUnknown_8463B64
|
|
adds r1, r5, 0
|
|
bl LZ77UnCompWram
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _0813AE42
|
|
str r5, [sp, 0x18]
|
|
movs r2, 0x40
|
|
add r0, sp, 0x18
|
|
lsls r1, r7, 16
|
|
orrs r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _0813AE6C @ =gUnknown_8463B44
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _0813AE70 @ =0xffff0000
|
|
add r4, sp, 0x20
|
|
ldr r1, [r4, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r6
|
|
str r1, [r4, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
strh r7, [r1]
|
|
strh r6, [r1, 0x2]
|
|
ldr r1, _0813AE74 @ =gUnknown_8463B30
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _0813AE78 @ =gUnknown_8463B40
|
|
str r1, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
ldr r1, _0813AE7C @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _0813AE80 @ =SpriteCallbackDummy
|
|
str r1, [sp, 0x14]
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
mov r0, sp
|
|
movs r1, 0x6A
|
|
movs r2, 0x28
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0813AE84 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
strh r7, [r2, 0x4]
|
|
strh r6, [r2, 0x6]
|
|
_0813AE42:
|
|
movs r0, 0x1
|
|
bl sub_813AEB0
|
|
bl sub_813AF50
|
|
cmp r5, 0
|
|
beq _0813AE56
|
|
adds r0, r5, 0
|
|
bl Free
|
|
_0813AE56:
|
|
add sp, 0x28
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813AE64: .4byte gUnknown_203B168
|
|
_0813AE68: .4byte gUnknown_8463B64
|
|
_0813AE6C: .4byte gUnknown_8463B44
|
|
_0813AE70: .4byte 0xffff0000
|
|
_0813AE74: .4byte gUnknown_8463B30
|
|
_0813AE78: .4byte gUnknown_8463B40
|
|
_0813AE7C: .4byte gDummySpriteAffineAnimTable
|
|
_0813AE80: .4byte SpriteCallbackDummy
|
|
_0813AE84: .4byte gSprites
|
|
thumb_func_end sub_813ADA8
|
|
|
|
thumb_func_start sub_813AE88
|
|
sub_813AE88: @ 813AE88
|
|
push {r4,lr}
|
|
ldr r4, _0813AEAC @ =gUnknown_203B168
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813AE98
|
|
bl DestroySpriteAndFreeResources
|
|
_0813AE98:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _0813AEA6
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0813AEA6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813AEAC: .4byte gUnknown_203B168
|
|
thumb_func_end sub_813AE88
|
|
|
|
thumb_func_start sub_813AEB0
|
|
sub_813AEB0: @ 813AEB0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _0813AEF8 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813AEFC @ =0x00003290
|
|
adds r0, r1
|
|
bl IsMonShiny
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813AF04
|
|
ldr r0, [r4]
|
|
movs r1, 0xC8
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813AF04
|
|
ldr r4, _0813AF00 @ =gUnknown_203B168
|
|
ldr r0, [r4]
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r3, r4, 0
|
|
b _0813AF14
|
|
.align 2, 0
|
|
_0813AEF8: .4byte gMonSummaryScreen
|
|
_0813AEFC: .4byte 0x00003290
|
|
_0813AF00: .4byte gUnknown_203B168
|
|
_0813AF04:
|
|
ldr r3, _0813AF30 @ =gUnknown_203B168
|
|
ldr r0, [r3]
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
_0813AF14:
|
|
ldr r0, _0813AF34 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813AF38 @ =0x00003214
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0813AF3C
|
|
ldr r2, [r3]
|
|
ldr r1, [r2]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2]
|
|
movs r0, 0x18
|
|
b _0813AF48
|
|
.align 2, 0
|
|
_0813AF30: .4byte gUnknown_203B168
|
|
_0813AF34: .4byte gMonSummaryScreen
|
|
_0813AF38: .4byte 0x00003214
|
|
_0813AF3C:
|
|
ldr r2, [r3]
|
|
ldr r1, [r2]
|
|
movs r0, 0x6A
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2]
|
|
movs r0, 0x28
|
|
_0813AF48:
|
|
strh r0, [r1, 0x22]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813AEB0
|
|
|
|
thumb_func_start sub_813AF50
|
|
sub_813AF50: @ 813AF50
|
|
push {r4,lr}
|
|
ldr r4, _0813AF7C @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813AF80 @ =0x00003290
|
|
adds r0, r1
|
|
bl IsMonShiny
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813AF84
|
|
ldr r0, [r4]
|
|
movs r1, 0xC8
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813AF84
|
|
movs r0, 0
|
|
bl sub_813AEB0
|
|
b _0813AF8A
|
|
.align 2, 0
|
|
_0813AF7C: .4byte gMonSummaryScreen
|
|
_0813AF80: .4byte 0x00003290
|
|
_0813AF84:
|
|
movs r0, 0x1
|
|
bl sub_813AEB0
|
|
_0813AF8A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813AF50
|
|
|
|
thumb_func_start sub_813AF90
|
|
sub_813AF90: @ 813AF90
|
|
push {lr}
|
|
bl sub_813A21C
|
|
bl sub_813A800
|
|
bl sub_813AB38
|
|
bl sub_8139C80
|
|
bl sub_8139F20
|
|
bl sub_8139D90
|
|
bl sub_813B068
|
|
bl sub_813A334
|
|
bl sub_813AC8C
|
|
bl sub_813AE88
|
|
bl ResetSpriteData
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813AF90
|
|
|
|
thumb_func_start sub_813AFC4
|
|
sub_813AFC4: @ 813AFC4
|
|
push {lr}
|
|
bl sub_8139CB0
|
|
movs r0, 0
|
|
bl sub_8139D54
|
|
bl sub_8139DBC
|
|
bl sub_813995C
|
|
movs r0, 0
|
|
bl sub_8139C44
|
|
bl sub_813A620
|
|
bl sub_813A994
|
|
bl sub_813B0E4
|
|
bl sub_813A35C
|
|
bl sub_813ACB4
|
|
bl sub_813AF50
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813AFC4
|
|
|
|
thumb_func_start sub_813AFFC
|
|
sub_813AFFC: @ 813AFFC
|
|
push {r4-r6,lr}
|
|
ldr r5, _0813B058 @ =gMonSummaryScreen
|
|
ldr r0, [r5]
|
|
ldr r1, _0813B05C @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl GetMonData
|
|
adds r6, r0, 0
|
|
ldr r0, [r5]
|
|
ldr r4, _0813B060 @ =0x000032fc
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl DestroySpriteAndFreeResources
|
|
ldr r2, _0813B064 @ =gUnknown_84636E0
|
|
movs r0, 0x8C
|
|
movs r1, 0x8C
|
|
bl CreateMonMarkingSprite_SelectCombo
|
|
adds r2, r0, 0
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r2, [r0]
|
|
cmp r2, 0
|
|
beq _0813B04A
|
|
lsls r1, r6, 24
|
|
lsrs r1, 24
|
|
adds r0, r2, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldr r2, [r0]
|
|
movs r1, 0x14
|
|
strh r1, [r2, 0x20]
|
|
ldr r1, [r0]
|
|
movs r0, 0x5B
|
|
strh r0, [r1, 0x22]
|
|
_0813B04A:
|
|
movs r0, 0x1
|
|
bl sub_813B084
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B058: .4byte gMonSummaryScreen
|
|
_0813B05C: .4byte 0x00003290
|
|
_0813B060: .4byte 0x000032fc
|
|
_0813B064: .4byte gUnknown_84636E0
|
|
thumb_func_end sub_813AFFC
|
|
|
|
thumb_func_start sub_813B068
|
|
sub_813B068: @ 813B068
|
|
push {lr}
|
|
ldr r0, _0813B07C @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813B080 @ =0x000032fc
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl DestroySpriteAndFreeResources
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B07C: .4byte gMonSummaryScreen
|
|
_0813B080: .4byte 0x000032fc
|
|
thumb_func_end sub_813B068
|
|
|
|
thumb_func_start sub_813B084
|
|
sub_813B084: @ 813B084
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _0813B0B0 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B0B4 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0813B0BC
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B0B8 @ =0x000032fc
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0813B0DA
|
|
.align 2, 0
|
|
_0813B0B0: .4byte gMonSummaryScreen
|
|
_0813B0B4: .4byte 0x00003290
|
|
_0813B0B8: .4byte 0x000032fc
|
|
_0813B0BC:
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B0E0 @ =0x000032fc
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0813B0DA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B0E0: .4byte 0x000032fc
|
|
thumb_func_end sub_813B084
|
|
|
|
thumb_func_start sub_813B0E4
|
|
sub_813B0E4: @ 813B0E4
|
|
push {r4,lr}
|
|
ldr r4, _0813B114 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B118 @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
ldr r0, [r4]
|
|
ldr r2, _0813B11C @ =0x000032fc
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
movs r0, 0
|
|
bl sub_813B084
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B114: .4byte gMonSummaryScreen
|
|
_0813B118: .4byte 0x00003290
|
|
_0813B11C: .4byte 0x000032fc
|
|
thumb_func_end sub_813B0E4
|
|
|
|
thumb_func_start sub_813B120
|
|
sub_813B120: @ 813B120
|
|
push {r4-r6,lr}
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r1, _0813B154 @ =gMonSummaryScreen
|
|
ldr r2, [r1]
|
|
ldr r3, _0813B158 @ =0x0000321c
|
|
adds r0, r2, r3
|
|
ldrb r3, [r0]
|
|
adds r6, r1, 0
|
|
cmp r3, 0x1
|
|
bne _0813B198
|
|
ldr r1, _0813B15C @ =0x00003214
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813B160
|
|
lsls r1, r5, 24
|
|
asrs r1, 24
|
|
movs r5, 0x2
|
|
eors r1, r3
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
asrs r0, 31
|
|
ands r5, r0
|
|
b _0813B16C
|
|
.align 2, 0
|
|
_0813B154: .4byte gMonSummaryScreen
|
|
_0813B158: .4byte 0x0000321c
|
|
_0813B15C: .4byte 0x00003214
|
|
_0813B160:
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
movs r5, 0x3
|
|
cmp r0, 0x1
|
|
bne _0813B16C
|
|
movs r5, 0x1
|
|
_0813B16C:
|
|
ldr r0, [r6]
|
|
ldr r2, _0813B190 @ =0x000032f4
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
bl GetLastViewedMonIndex
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, [r6]
|
|
ldr r3, _0813B194 @ =0x00003210
|
|
adds r0, r3
|
|
ldrb r2, [r0]
|
|
adds r3, r5, 0
|
|
adds r0, r4, 0
|
|
bl SeekToNextMonInBox
|
|
b _0813B1CC
|
|
.align 2, 0
|
|
_0813B190: .4byte 0x000032f4
|
|
_0813B194: .4byte 0x00003210
|
|
_0813B198:
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0
|
|
bne _0813B1C4
|
|
ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0813B1C4
|
|
bl IsMultiBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B1C4
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
bl sub_813B38C
|
|
b _0813B1CC
|
|
.align 2, 0
|
|
_0813B1C0: .4byte gReceivedRemoteLinkPlayers
|
|
_0813B1C4:
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
bl sub_813B20C
|
|
_0813B1CC:
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 24
|
|
asrs r0, 24
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _0813B1F4
|
|
ldr r0, _0813B1FC @ =gLastViewedMonIndex
|
|
strb r2, [r0]
|
|
ldr r0, _0813B200 @ =sub_813B3F0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r0, _0813B204 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813B208 @ =0x0000328c
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0813B1F4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B1FC: .4byte gLastViewedMonIndex
|
|
_0813B200: .4byte sub_813B3F0
|
|
_0813B204: .4byte gMonSummaryScreen
|
|
_0813B208: .4byte 0x0000328c
|
|
thumb_func_end sub_813B120
|
|
|
|
thumb_func_start sub_813B20C
|
|
sub_813B20C: @ 813B20C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r2, _0813B258 @ =gMonSummaryScreen
|
|
ldr r0, [r2]
|
|
ldr r3, _0813B25C @ =0x000032f4
|
|
adds r1, r0, r3
|
|
ldr r7, [r1]
|
|
movs r6, 0
|
|
ldr r1, _0813B260 @ =0x00003214
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B26C
|
|
lsls r0, r4, 24
|
|
asrs r3, r0, 24
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r5, r0, 0
|
|
ldr r6, _0813B264 @ =gLastViewedMonIndex
|
|
cmp r3, r1
|
|
bne _0813B23E
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _0813B294
|
|
_0813B23E:
|
|
asrs r0, r5, 24
|
|
cmp r0, 0x1
|
|
bne _0813B252
|
|
ldr r0, [r2]
|
|
ldr r2, _0813B268 @ =0x00003210
|
|
adds r0, r2
|
|
ldrb r1, [r6]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0813B294
|
|
_0813B252:
|
|
ldrb r0, [r6]
|
|
adds r0, r4
|
|
b _0813B2BC
|
|
.align 2, 0
|
|
_0813B258: .4byte gMonSummaryScreen
|
|
_0813B25C: .4byte 0x000032f4
|
|
_0813B260: .4byte 0x00003214
|
|
_0813B264: .4byte gLastViewedMonIndex
|
|
_0813B268: .4byte 0x00003210
|
|
_0813B26C:
|
|
lsls r5, r4, 24
|
|
_0813B26E:
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
asrs r1, r5, 24
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
ldr r4, _0813B29C @ =gLastViewedMonIndex
|
|
lsrs r6, r0, 24
|
|
asrs r0, 24
|
|
ldrb r3, [r4]
|
|
adds r1, r0, r3
|
|
cmp r1, 0
|
|
blt _0813B294
|
|
ldr r0, _0813B2A0 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r2, _0813B2A4 @ =0x00003210
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
ble _0813B2A8
|
|
_0813B294:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0813B2C0
|
|
.align 2, 0
|
|
_0813B29C: .4byte gLastViewedMonIndex
|
|
_0813B2A0: .4byte gMonSummaryScreen
|
|
_0813B2A4: .4byte 0x00003210
|
|
_0813B2A8:
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
adds r0, r7, r0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0813B26E
|
|
ldrb r0, [r4]
|
|
adds r0, r6
|
|
_0813B2BC:
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
_0813B2C0:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B20C
|
|
|
|
thumb_func_start sub_813B2C8
|
|
sub_813B2C8: @ 813B2C8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0813B2FC
|
|
ldr r0, _0813B2F4 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813B2F8 @ =0x00003214
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B2F0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0813B2FC
|
|
_0813B2F0:
|
|
movs r0, 0x1
|
|
b _0813B2FE
|
|
.align 2, 0
|
|
_0813B2F4: .4byte gMonSummaryScreen
|
|
_0813B2F8: .4byte 0x00003214
|
|
_0813B2FC:
|
|
movs r0, 0
|
|
_0813B2FE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B2C8
|
|
|
|
thumb_func_start sub_813B304
|
|
sub_813B304: @ 813B304
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0813B30A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x6
|
|
beq _0813B33C
|
|
ldr r0, _0813B334 @ =gUnknown_8463FB8
|
|
adds r5, r4, r0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0813B338 @ =gPlayerParty
|
|
adds r0, r1
|
|
bl sub_813B2C8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B30A
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
b _0813B340
|
|
.align 2, 0
|
|
_0813B334: .4byte gUnknown_8463FB8
|
|
_0813B338: .4byte gPlayerParty
|
|
_0813B33C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0813B340:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B304
|
|
|
|
thumb_func_start sub_813B348
|
|
sub_813B348: @ 813B348
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0813B34E:
|
|
cmp r4, 0
|
|
beq _0813B380
|
|
subs r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0813B378 @ =gUnknown_8463FB8
|
|
adds r5, r4, r0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _0813B37C @ =gPlayerParty
|
|
adds r0, r1
|
|
bl sub_813B2C8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B34E
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
b _0813B384
|
|
.align 2, 0
|
|
_0813B378: .4byte gUnknown_8463FB8
|
|
_0813B37C: .4byte gPlayerParty
|
|
_0813B380:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0813B384:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B348
|
|
|
|
thumb_func_start sub_813B38C
|
|
sub_813B38C: @ 813B38C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
movs r5, 0
|
|
b _0813B39E
|
|
_0813B398:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0813B39E:
|
|
cmp r5, 0x5
|
|
bhi _0813B3B6
|
|
ldr r4, _0813B3D4 @ =gUnknown_8463FB8
|
|
adds r4, r5, r4
|
|
bl GetLastViewedMonIndex
|
|
ldrb r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
bne _0813B398
|
|
adds r6, r5, 0
|
|
_0813B3B6:
|
|
lsls r0, r7, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0813B3C6
|
|
cmp r6, 0
|
|
beq _0813B3CE
|
|
_0813B3C6:
|
|
cmp r1, 0x1
|
|
bne _0813B3D8
|
|
cmp r6, 0x5
|
|
bne _0813B3E0
|
|
_0813B3CE:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0813B3EA
|
|
.align 2, 0
|
|
_0813B3D4: .4byte gUnknown_8463FB8
|
|
_0813B3D8:
|
|
adds r0, r6, 0
|
|
bl sub_813B348
|
|
b _0813B3E6
|
|
_0813B3E0:
|
|
adds r0, r6, 0
|
|
bl sub_813B304
|
|
_0813B3E6:
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
_0813B3EA:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B38C
|
|
|
|
thumb_func_start sub_813B3F0
|
|
sub_813B3F0: @ 813B3F0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, _0813B414 @ =gMonSummaryScreen
|
|
ldr r0, [r1]
|
|
ldr r4, _0813B418 @ =0x0000328c
|
|
adds r2, r0, r4
|
|
ldrb r0, [r2]
|
|
adds r5, r1, 0
|
|
cmp r0, 0xB
|
|
bls _0813B40A
|
|
b _0813B73C
|
|
_0813B40A:
|
|
lsls r0, 2
|
|
ldr r1, _0813B41C @ =_0813B420
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813B414: .4byte gMonSummaryScreen
|
|
_0813B418: .4byte 0x0000328c
|
|
_0813B41C: .4byte _0813B420
|
|
.align 2, 0
|
|
_0813B420:
|
|
.4byte _0813B450
|
|
.4byte _0813B478
|
|
.4byte _0813B486
|
|
.4byte _0813B4DC
|
|
.4byte _0813B568
|
|
.4byte _0813B5FC
|
|
.4byte _0813B602
|
|
.4byte _0813B620
|
|
.4byte _0813B636
|
|
.4byte _0813B654
|
|
.4byte _0813B678
|
|
.4byte _0813B70C
|
|
_0813B450:
|
|
bl StopCryAndClearCrySongs
|
|
ldr r0, _0813B468 @ =gUnknown_203B16D
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _0813B46C @ =gUnknown_203B16E
|
|
strb r1, [r0]
|
|
ldr r0, _0813B470 @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
ldr r0, _0813B474 @ =0x0000328c
|
|
adds r1, r0
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B468: .4byte gUnknown_203B16D
|
|
_0813B46C: .4byte gUnknown_203B16E
|
|
_0813B470: .4byte gMonSummaryScreen
|
|
_0813B474: .4byte 0x0000328c
|
|
_0813B478:
|
|
bl sub_8139C80
|
|
bl sub_8139F20
|
|
bl sub_8139D90
|
|
b _0813B724
|
|
_0813B486:
|
|
ldr r0, [r5]
|
|
ldr r4, _0813B4D0 @ =0x00003290
|
|
adds r0, r4
|
|
bl sub_8138B8C
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
ldr r1, [r5]
|
|
movs r2, 0xC8
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0x4
|
|
bl GetMonData
|
|
ldr r1, [r5]
|
|
ldr r2, _0813B4D4 @ =0x00003204
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r2, r0, r2
|
|
ldrb r1, [r2]
|
|
cmp r1, 0x1
|
|
bne _0813B4C6
|
|
subs r4, 0x90
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
_0813B4C6:
|
|
ldr r1, [r5]
|
|
ldr r0, _0813B4D8 @ =0x0000328c
|
|
adds r1, r0
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B4D0: .4byte 0x00003290
|
|
_0813B4D4: .4byte 0x00003204
|
|
_0813B4D8: .4byte 0x0000328c
|
|
_0813B4DC:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
ldr r4, _0813B52C @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B530 @ =0x00003290
|
|
adds r0, r1
|
|
bl IsMonShiny
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0813B538
|
|
ldr r0, [r4]
|
|
movs r2, 0xC8
|
|
lsls r2, 6
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B538
|
|
ldr r4, _0813B534 @ =gUnknown_8E9B3D0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
subs r4, 0x20
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _0813B550
|
|
.align 2, 0
|
|
_0813B52C: .4byte gMonSummaryScreen
|
|
_0813B530: .4byte 0x00003290
|
|
_0813B534: .4byte gUnknown_8E9B3D0
|
|
_0813B538:
|
|
ldr r4, _0813B55C @ =gUnknown_8E9B310
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r4, 0x20
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0813B550:
|
|
ldr r0, _0813B560 @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
ldr r4, _0813B564 @ =0x0000328c
|
|
adds r1, r4
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B55C: .4byte gUnknown_8E9B310
|
|
_0813B560: .4byte gMonSummaryScreen
|
|
_0813B564: .4byte 0x0000328c
|
|
_0813B568:
|
|
ldr r4, _0813B5A8 @ =gMonSummaryScreen
|
|
ldr r1, [r4]
|
|
ldr r2, _0813B5AC @ =0x00003214
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B5DC
|
|
subs r2, 0x14
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0813B5B8
|
|
adds r2, 0x3C
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
ldr r1, _0813B5B0 @ =gUnknown_8E9BBCC
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
movs r4, 0xC9
|
|
lsls r4, 6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r1, _0813B5B4 @ =gUnknown_8E9B750
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
b _0813B5DC
|
|
.align 2, 0
|
|
_0813B5A8: .4byte gMonSummaryScreen
|
|
_0813B5AC: .4byte 0x00003214
|
|
_0813B5B0: .4byte gUnknown_8E9BBCC
|
|
_0813B5B4: .4byte gUnknown_8E9B750
|
|
_0813B5B8:
|
|
ldr r2, _0813B5E8 @ =0x0000323c
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
ldr r1, _0813B5EC @ =gUnknown_8E9B598
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
movs r4, 0xC9
|
|
lsls r4, 6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r1, _0813B5F0 @ =gUnknown_8E9B750
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
_0813B5DC:
|
|
ldr r0, _0813B5F4 @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
ldr r0, _0813B5F8 @ =0x0000328c
|
|
adds r1, r0
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B5E8: .4byte 0x0000323c
|
|
_0813B5EC: .4byte gUnknown_8E9B598
|
|
_0813B5F0: .4byte gUnknown_8E9B750
|
|
_0813B5F4: .4byte gMonSummaryScreen
|
|
_0813B5F8: .4byte 0x0000328c
|
|
_0813B5FC:
|
|
bl sub_81360D4
|
|
b _0813B724
|
|
_0813B602:
|
|
ldr r0, [r5]
|
|
movs r4, 0xC8
|
|
lsls r4, 6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B614
|
|
bl sub_8136350
|
|
_0813B614:
|
|
ldr r1, [r5]
|
|
ldr r0, _0813B61C @ =0x0000328c
|
|
adds r1, r0
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B61C: .4byte 0x0000328c
|
|
_0813B620:
|
|
ldr r0, [r5]
|
|
movs r1, 0xC8
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0813B632
|
|
bl sub_81367B0
|
|
_0813B632:
|
|
ldr r1, [r5]
|
|
b _0813B728
|
|
_0813B636:
|
|
bl sub_8136F4C
|
|
bl sub_81374E8
|
|
bl sub_8137BD0
|
|
ldr r0, _0813B64C @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
ldr r4, _0813B650 @ =0x0000328c
|
|
adds r1, r4
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B64C: .4byte gMonSummaryScreen
|
|
_0813B650: .4byte 0x0000328c
|
|
_0813B654:
|
|
bl sub_8138A38
|
|
bl sub_8138538
|
|
ldr r4, _0813B670 @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r1, _0813B674 @ =0x00003214
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_8137D28
|
|
ldr r1, [r4]
|
|
b _0813B728
|
|
.align 2, 0
|
|
_0813B670: .4byte gMonSummaryScreen
|
|
_0813B674: .4byte 0x00003214
|
|
_0813B678:
|
|
ldr r0, [r5]
|
|
movs r4, 0xC0
|
|
lsls r4, 6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
ldr r1, _0813B6F8 @ =0x00003001
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
ldr r2, _0813B6FC @ =0x00003002
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
adds r4, 0x6
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
ldr r1, _0813B700 @ =0x00003003
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
ldr r2, _0813B704 @ =0x00003004
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r5]
|
|
subs r4, 0x1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r5]
|
|
ldr r0, _0813B708 @ =0x0000328c
|
|
adds r1, r0
|
|
b _0813B72C
|
|
.align 2, 0
|
|
_0813B6F8: .4byte 0x00003001
|
|
_0813B6FC: .4byte 0x00003002
|
|
_0813B700: .4byte 0x00003003
|
|
_0813B704: .4byte 0x00003004
|
|
_0813B708: .4byte 0x0000328c
|
|
_0813B70C:
|
|
bl Overworld_LinkRecvQueueLengthMoreThan2
|
|
cmp r0, 0
|
|
bne _0813B746
|
|
bl sub_800B270
|
|
cmp r0, 0
|
|
bne _0813B746
|
|
bl sub_813AFC4
|
|
bl sub_813B784
|
|
_0813B724:
|
|
ldr r0, _0813B734 @ =gMonSummaryScreen
|
|
ldr r1, [r0]
|
|
_0813B728:
|
|
ldr r2, _0813B738 @ =0x0000328c
|
|
adds r1, r2
|
|
_0813B72C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0813B746
|
|
.align 2, 0
|
|
_0813B734: .4byte gMonSummaryScreen
|
|
_0813B738: .4byte 0x0000328c
|
|
_0813B73C:
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_0813B746:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813B3F0
|
|
|
|
thumb_func_start sub_813B750
|
|
sub_813B750: @ 813B750
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0x80
|
|
lsls r5, 7
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl ClearGpuRegBits
|
|
cmp r4, 0x2
|
|
bgt _0813B77E
|
|
cmp r4, 0
|
|
blt _0813B77E
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r5, 0
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
_0813B77E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813B750
|
|
|
|
thumb_func_start sub_813B784
|
|
sub_813B784: @ 813B784
|
|
push {r4,r5,lr}
|
|
ldr r4, _0813B7BC @ =gMonSummaryScreen
|
|
ldr r0, [r4]
|
|
ldr r5, _0813B7C0 @ =0x00003290
|
|
adds r0, r5
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0813B7DA
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
bl ShouldPlayNormalPokeCry
|
|
cmp r0, 0x1
|
|
bne _0813B7C4
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl PlayCry3
|
|
b _0813B7DA
|
|
.align 2, 0
|
|
_0813B7BC: .4byte gMonSummaryScreen
|
|
_0813B7C0: .4byte 0x00003290
|
|
_0813B7C4:
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
movs r2, 0xB
|
|
bl PlayCry3
|
|
_0813B7DA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_813B784
|
|
|
|
thumb_func_start sub_813B7E0
|
|
sub_813B7E0: @ 813B7E0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
beq _0813B7EE
|
|
cmp r0, 0x15
|
|
bne _0813B7F2
|
|
_0813B7EE:
|
|
movs r0, 0x1
|
|
b _0813B7F4
|
|
_0813B7F2:
|
|
movs r0, 0
|
|
_0813B7F4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B7E0
|
|
|
|
thumb_func_start sub_813B7F8
|
|
sub_813B7F8: @ 813B7F8
|
|
push {lr}
|
|
ldr r0, _0813B828 @ =gMonSummaryScreen
|
|
ldr r0, [r0]
|
|
ldr r1, _0813B82C @ =0x00003290
|
|
adds r0, r1
|
|
movs r1, 0x25
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r2, 0xFC
|
|
lsls r2, 24
|
|
adds r0, r2
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _0813B824
|
|
cmp r1, 0x2
|
|
beq _0813B824
|
|
cmp r1, 0x1
|
|
beq _0813B824
|
|
cmp r1, 0x3
|
|
bne _0813B830
|
|
_0813B824:
|
|
movs r0, 0x1
|
|
b _0813B832
|
|
.align 2, 0
|
|
_0813B828: .4byte gMonSummaryScreen
|
|
_0813B82C: .4byte 0x00003290
|
|
_0813B830:
|
|
movs r0, 0
|
|
_0813B832:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B7F8
|
|
|
|
thumb_func_start sub_813B838
|
|
sub_813B838: @ 813B838
|
|
push {lr}
|
|
lsls r0, 24
|
|
movs r1, 0xA8
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
cmp r0, 0x6C
|
|
bls _0813B84C
|
|
movs r0, 0
|
|
b _0813B84E
|
|
_0813B84C:
|
|
movs r0, 0x1
|
|
_0813B84E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_813B838
|
|
|
|
thumb_func_start sub_813B854
|
|
sub_813B854: @ 813B854
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r3, _0813B86C @ =CB2_ReturnToField
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ShowPokemonSummaryScreen
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813B86C: .4byte CB2_ReturnToField
|
|
thumb_func_end sub_813B854
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|