pokeemerald/asm/trade.s
2018-12-28 02:11:41 -06:00

4228 lines
64 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/gba_constants.inc"
.include "constants/misc_constants.inc"
.syntax unified
.text
thumb_func_start sub_807CFC8
sub_807CFC8: @ 807CFC8
push {r4-r7,lr}
sub sp, 0x14
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
adds r1, 0x94
ldrh r5, [r1]
ldr r1, =0x0000010b
adds r7, r0, 0
cmp r5, r1
bls _0807CFE0
bl _0807E400
_0807CFE0:
lsls r0, r5, 2
ldr r1, =_0807CFF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0807CFF8:
.4byte _0807D428
.4byte _0807D4A0
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807D4FC
.4byte _0807D544
.4byte _0807D5B8
.4byte _0807E400
.4byte _0807D624
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807D648
.4byte _0807D678
.4byte _0807D68A
.4byte _0807D6AC
.4byte _0807E400
.4byte _0807E400
.4byte _0807D7A4
.4byte _0807D7C4
.4byte _0807D830
.4byte _0807D8B4
.4byte _0807D8D8
.4byte _0807D924
.4byte _0807D970
.4byte _0807D9CC
.4byte _0807DA38
.4byte _0807DA4C
.4byte _0807DA60
.4byte _0807DA74
.4byte _0807DB9C
.4byte _0807DC6C
.4byte _0807DCF4
.4byte _0807DD94
.4byte _0807DDA4
.4byte _0807DDC4
.4byte _0807E400
.4byte _0807E400
.4byte _0807DEE8
.4byte _0807DEF8
.4byte _0807DF16
.4byte _0807E400
.4byte _0807DF3C
.4byte _0807DF7C
.4byte _0807DFBC
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807DFDC
.4byte _0807E004
.4byte _0807E020
.4byte _0807E040
.4byte _0807E0E8
.4byte _0807E11C
.4byte _0807E168
.4byte _0807E228
.4byte _0807E2A0
.4byte _0807E2EC
.4byte _0807E2FC
.4byte _0807E302
.4byte _0807E328
.4byte _0807E384
.4byte _0807E3A8
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807D6F4
.4byte _0807D728
.4byte _0807D77C
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807DE1C
.4byte _0807DE84
.4byte _0807DEC0
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E264
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807D85C
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E400
.4byte _0807E284
_0807D428:
ldr r3, =gSprites
ldr r0, [r7]
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
ldr r4, [r7]
adds r2, r4, 0
adds r2, 0x8E
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldr r1, =0x0000ff4c
strh r1, [r0, 0x24]
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldr r2, =gMonFrontPicCoords
adds r0, r4, 0
adds r0, 0xF0
ldrh r0, [r0]
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x1]
strh r0, [r1, 0x26]
adds r1, r4, 0
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
bl GetCurrentMapMusic
ldr r1, [r7]
adds r1, 0xF4
strh r0, [r1]
ldr r0, =0x00000179
bl PlayNewMapMusic
bl _0807E400
.pool
_0807D4A0:
ldr r5, [r7]
adds r6, r5, 0
adds r6, 0xE6
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
ble _0807D4D4
ldr r2, =gSprites
adds r0, r5, 0
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x24]
adds r1, 0x3
strh r1, [r0, 0x24]
ldrh r0, [r6]
subs r0, 0x3
strh r0, [r6]
bl _0807E400
.pool
_0807D4D4:
ldr r2, =gSprites
adds r0, r5, 0
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strh r1, [r0, 0x24]
strh r1, [r6]
adds r1, r5, 0
adds r1, 0x94
movs r0, 0xA
strh r0, [r1]
bl _0807E400
.pool
_0807D4FC:
ldr r4, =gStringVar4
ldr r1, =gText_XWillBeSentToY
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xF0
ldrh r1, [r2]
movs r0, 0xCE
lsls r0, 1
cmp r1, r0
beq _0807D52A
adds r0, r1, 0
movs r1, 0
bl PlayCry1
_0807D52A:
ldr r3, [r4]
adds r1, r3, 0
adds r1, 0x94
movs r2, 0
movs r0, 0xB
bl _0807E252
.pool
_0807D544:
ldr r1, [r7]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x50
beq _0807D554
bl _0807E400
_0807D554:
adds r0, r1, 0
adds r0, 0x8E
ldrb r0, [r0]
ldr r2, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x5]
lsrs r1, 4
movs r2, 0x2
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0x14
str r2, [sp, 0x8]
ldr r2, =0x000fffff
str r2, [sp, 0xC]
movs r2, 0x78
movs r3, 0x20
bl sub_807671C
ldr r1, [r7]
adds r1, 0xD2
strb r0, [r1]
ldr r1, [r7]
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
ldr r4, =gStringVar4
ldr r1, =gText_ByeByeVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
bl _0807E400
.pool
_0807D5B8:
ldr r5, =gSprites
ldr r0, [r7]
adds r0, 0xD2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r5, 0
adds r4, 0x1C
adds r0, r4
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807D5D8
bl _0807E400
_0807D5D8:
ldr r0, =gSpriteTemplate_8338D28
movs r1, 0x78
movs r2, 0x20
movs r3, 0
bl CreateSprite
ldr r1, [r7]
adds r1, 0xD3
strb r0, [r1]
ldr r2, [r7]
adds r0, r2, 0
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =sub_807E5D8
str r1, [r0]
adds r2, 0xD2
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
bl DestroySprite
ldr r1, [r7]
bl _0807E398
.pool
_0807D624:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x14
strh r1, [r0]
bl _0807E400
.pool
_0807D648:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807D658
bl _0807E400
_0807D658:
movs r0, 0x4
bl sub_807B62C
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
bl _0807E394
.pool
_0807D678:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0x10
movs r3, 0
bl _0807E390
_0807D68A:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807D69A
bl _0807E400
_0807D69A:
ldr r0, [r7]
adds r0, 0x94
movs r1, 0x17
strh r1, [r0]
bl _0807E400
.pool
_0807D6AC:
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0xEA
ldrh r1, [r2]
movs r0, 0x80
lsls r0, 1
cmp r1, r0
bls _0807D6CC
adds r0, r1, 0
subs r0, 0x34
strh r0, [r2]
b _0807D6E6
.pool
_0807D6CC:
movs r0, 0x1
bl sub_807B62C
ldr r3, [r4]
adds r1, r3, 0
adds r1, 0xEA
movs r2, 0
movs r0, 0x80
strh r0, [r1]
subs r1, 0x56
movs r0, 0x7C
strh r0, [r1]
str r2, [r3, 0x64]
_0807D6E6:
ldr r0, =gUnknown_020322A0
ldr r4, [r0]
bl _0807DFA8
.pool
_0807D6F4:
ldr r1, [r7]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x14
bhi _0807D704
bl _0807E400
_0807D704:
movs r0, 0x3
bl sub_807B62C
ldr r0, =gSpriteTemplate_8338E8C
movs r1, 0x78
movs r2, 0x50
movs r3, 0
bl CreateSprite
ldr r1, [r7]
adds r1, 0x91
strb r0, [r1]
ldr r1, [r7]
bl _0807E398
.pool
_0807D728:
ldr r2, =gSprites
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 27
cmp r0, 0
blt _0807D748
bl _0807E400
_0807D748:
adds r0, r1, 0
bl DestroySprite
ldr r1, =0x00000452
movs r0, 0x50
bl SetGpuReg
movs r1, 0x82
lsls r1, 3
movs r0, 0x52
bl SetGpuReg
ldr r0, =c3_08054588
movs r1, 0x5
bl CreateTask
ldr r1, [r7]
bl _0807E398
.pool
_0807D77C:
ldr r0, =c3_08054588
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
beq _0807D78C
bl _0807E400
_0807D78C:
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x1A
strh r1, [r0]
bl _0807E400
.pool
_0807D7A4:
ldr r2, [r7]
adds r0, r2, 0
adds r0, 0xE0
ldrh r1, [r0]
subs r1, 0x1
strh r1, [r0]
lsls r1, 16
movs r0, 0x9E
lsls r0, 17
cmp r1, r0
beq _0807D7BE
bl _0807E400
_0807D7BE:
adds r1, r2, 0
bl _0807E398
_0807D7C4:
ldr r0, =gUnknown_08338D88
movs r1, 0x78
movs r2, 0x50
movs r3, 0x3
bl CreateSprite
ldr r4, =gUnknown_020322A0
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
ldr r5, =gSprites
ldr r0, [r4]
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_807AA4C
str r1, [r0]
ldr r0, =gSpriteTemplate_8338DC8
movs r1, 0x78
movs r2, 0x50
movs r3, 0
bl CreateSprite
ldr r1, [r4]
adds r1, 0x91
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x1
bl StartSpriteAnim
ldr r1, [r4]
bl _0807E398
.pool
_0807D830:
ldr r2, [r7]
adds r1, r2, 0
adds r1, 0xE0
ldrh r0, [r1]
subs r0, 0x3
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA6
bne _0807D84A
subs r1, 0x4C
movs r0, 0xC8
strh r0, [r1]
_0807D84A:
ldr r1, =0x00001241
movs r0, 0
bl SetGpuReg
bl _0807E400
.pool
_0807D85C:
ldr r2, =gSprites
ldr r4, [r7]
adds r3, r4, 0
adds r3, 0x90
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
subs r1, 0x2
strh r1, [r0, 0x22]
adds r0, r4, 0
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x22]
subs r1, 0x2
strh r1, [r0, 0x22]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r2, 0x22
ldrsh r1, [r0, r2]
movs r0, 0x8
negs r0, r0
cmp r1, r0
blt _0807D8A2
bl _0807E400
_0807D8A2:
adds r1, r4, 0
adds r1, 0x94
movs r0, 0x1D
strh r0, [r1]
bl _0807E400
.pool
_0807D8B4:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x1E
strh r1, [r0]
bl _0807E400
.pool
_0807D8D8:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807D8E8
bl _0807E400
_0807D8E8:
ldr r0, [r7]
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
movs r0, 0x2
bl sub_807B62C
ldr r1, [r7]
bl _0807E398
.pool
_0807D924:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r5, =gSpriteTemplate_8338DC8
adds r0, r5, 0
movs r1, 0x6F
movs r2, 0xAA
movs r3, 0
bl CreateSprite
ldr r4, =gUnknown_020322A0
ldr r1, [r4]
adds r1, 0x90
strb r0, [r1]
movs r2, 0xA
negs r2, r2
adds r0, r5, 0
movs r1, 0x81
movs r3, 0
bl CreateSprite
ldr r1, [r4]
adds r1, 0x91
strb r0, [r1]
ldr r1, [r4]
bl _0807E398
.pool
_0807D970:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0807D98E
movs r0, 0x2E
bl PlaySE
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0807D98E:
ldr r3, =gSprites
ldr r0, =gUnknown_020322A0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x26]
subs r1, 0x3
strh r1, [r0, 0x26]
adds r2, 0x91
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x26]
adds r1, 0x3
strh r1, [r0, 0x26]
bl _0807E400
.pool
_0807D9CC:
ldr r5, =gSprites
ldr r4, [r7]
adds r2, r4, 0
adds r2, 0x90
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x26]
subs r1, 0x3
strh r1, [r0, 0x26]
adds r6, r4, 0
adds r6, 0x91
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x26]
adds r1, 0x3
strh r1, [r0, 0x26]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r3, r0, r5
movs r0, 0x26
ldrsh r1, [r3, r0]
movs r0, 0x5A
negs r0, r0
cmp r1, r0
ble _0807DA12
bl _0807E400
_0807DA12:
movs r2, 0x1
strh r2, [r3, 0x30]
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x30]
adds r1, r4, 0
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
ldr r0, =c3_0805465C
b _0807DC5A
.pool
_0807DA38:
ldr r2, =0x0000ffff
movs r0, 0x8
movs r1, 0x10
bl BlendPalettes
bl _0807E394
.pool
_0807DA4C:
ldr r2, =0x0000ffff
movs r0, 0x8
movs r1, 0x10
bl BlendPalettes
bl _0807E394
.pool
_0807DA60:
ldr r2, =0x0000ffff
movs r0, 0x8
movs r1, 0x10
bl BlendPalettes
bl _0807E394
.pool
_0807DA74:
ldr r5, =gUnknown_020322A0
ldr r0, [r5]
adds r0, 0xF0
ldrh r0, [r0]
bl IsMonSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _0807DAEC
ldr r4, =gSprites
ldr r2, [r5]
adds r2, 0x8E
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x10
adds r0, r1
ldr r1, =gSpriteAffineAnimTable_8338ECC
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x1]
movs r2, 0x3
orrs r1, r2
strb r1, [r0, 0x1]
ldr r0, [r5]
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0
movs r2, 0x3
movs r3, 0x3
bl CalcCenterToCornerVec
ldr r0, [r5]
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0
bl StartSpriteAffineAnim
b _0807DB02
.pool
_0807DAEC:
ldr r0, [r5]
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r1, 0
bl StartSpriteAffineAnim
_0807DB02:
ldr r5, =gUnknown_020322A0
ldr r0, [r5]
adds r0, 0x8F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
movs r1, 0
bl StartSpriteAffineAnim
ldr r2, [r5]
adds r3, r2, 0
adds r3, 0x8E
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x28
strh r1, [r0, 0x20]
adds r2, 0x8F
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0xC8
strh r1, [r0, 0x20]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0xC0
strh r1, [r0, 0x22]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ffe0
strh r1, [r0, 0x22]
ldrb r0, [r3]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r3, [r1]
movs r2, 0x5
negs r2, r2
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
ldr r0, [r5]
adds r0, 0x8F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r1, [r5]
bl _0807E398
.pool
_0807DB9C:
ldr r4, =gSprites
ldr r2, [r7]
adds r3, r2, 0
adds r3, 0x8E
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x26]
subs r1, 0x3
movs r5, 0
strh r1, [r0, 0x26]
adds r2, 0x8F
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x26]
adds r1, 0x3
strh r1, [r0, 0x26]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r0, [r0, 0x26]
adds r0, 0xA3
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bhi _0807DBE4
movs r0, 0x2D
bl PlaySE
_0807DBE4:
ldr r2, [r7]
adds r3, r2, 0
adds r3, 0x8E
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r6, 0x26
ldrsh r1, [r0, r6]
movs r0, 0xDE
negs r0, r0
cmp r1, r0
blt _0807DC04
bl _0807E400
_0807DC04:
adds r0, r2, 0
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x30]
adds r0, r2, 0
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x30]
adds r1, r2, 0
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r0, [r7]
adds r0, 0x8F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
ldr r0, =sub_807F39C
_0807DC5A:
movs r1, 0x5
bl CreateTask
b _0807E400
.pool
_0807DC6C:
ldr r4, =gSprites
ldr r2, [r7]
adds r3, r2, 0
adds r3, 0x90
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x26]
subs r1, 0x3
strh r1, [r0, 0x26]
adds r2, 0x91
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x26]
adds r1, 0x3
strh r1, [r0, 0x26]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r2, 0x26
ldrsh r1, [r0, r2]
movs r0, 0xDE
negs r0, r0
cmp r1, r0
ble _0807DCAE
b _0807E400
_0807DCAE:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r7]
adds r2, r1, 0
adds r2, 0x94
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
adds r1, 0x90
ldrb r1, [r1]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
b _0807E400
.pool
_0807DCF4:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807DD02
b _0807E400
_0807DD02:
ldr r1, [r7]
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
movs r0, 0x1
bl sub_807B62C
ldr r0, [r7]
adds r0, 0xE0
movs r1, 0xA6
strh r1, [r0]
movs r0, 0x3
bl sub_807B62C
ldr r0, [r7]
adds r0, 0xE4
movs r1, 0xCE
lsls r1, 1
strh r1, [r0]
ldr r0, =gUnknown_08338D88
movs r4, 0x14
negs r4, r4
movs r1, 0x78
adds r2, r4, 0
movs r3, 0x3
bl CreateSprite
ldr r1, [r7]
adds r1, 0x90
strb r0, [r1]
ldr r5, =gSprites
ldr r0, [r7]
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_807AA4C
str r1, [r0]
ldr r0, =gSpriteTemplate_8338DC8
movs r1, 0x78
adds r2, r4, 0
movs r3, 0
bl CreateSprite
ldr r1, [r7]
adds r1, 0x91
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x1
bl StartSpriteAnim
b _0807E400
.pool
_0807DD94:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0x10
movs r3, 0
b _0807E390
_0807DDA4:
movs r1, 0x92
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807DDBC
b _0807E400
_0807DDBC:
b _0807E394
.pool
_0807DDC4:
ldr r2, =gSprites
ldr r4, [r7]
adds r3, r4, 0
adds r3, 0x90
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
adds r1, 0x4
strh r1, [r0, 0x26]
adds r0, r4, 0
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
adds r1, 0x4
strh r1, [r0, 0x26]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r6, 0x26
ldrsh r1, [r0, r6]
movs r2, 0x22
ldrsh r0, [r0, r2]
adds r1, r0
cmp r1, 0x40
beq _0807DE0A
b _0807E400
_0807DE0A:
adds r0, r4, 0
adds r0, 0x94
movs r1, 0x90
strh r1, [r0]
movs r0, 0
str r0, [r4, 0x64]
b _0807E400
.pool
_0807DE1C:
movs r1, 0xB2
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r4, =gUnknown_020322A0
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xE0
ldrh r0, [r1]
adds r0, 0x3
strh r0, [r1]
adds r1, 0x4
ldrh r0, [r1]
adds r0, 0x3
strh r0, [r1]
ldr r0, [r2, 0x64]
adds r0, 0x1
str r0, [r2, 0x64]
cmp r0, 0xA
bne _0807DE60
ldr r0, =c3_08054588
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0x1
strh r0, [r1, 0xC]
_0807DE60:
ldr r1, [r4]
adds r3, r1, 0
adds r3, 0xE0
movs r6, 0
ldrsh r0, [r3, r6]
movs r2, 0x9E
lsls r2, 1
cmp r0, r2
bgt _0807DE74
b _0807E400
_0807DE74:
strh r2, [r3]
b _0807E398
.pool
_0807DE84:
ldr r0, [r7]
adds r0, 0x90
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r3, [r7]
adds r2, r3, 0
adds r2, 0x94
ldrh r0, [r2]
adds r0, 0x1
movs r1, 0
strh r0, [r2]
str r1, [r3, 0x64]
b _0807E400
.pool
_0807DEC0:
ldr r0, =c3_08054588
bl FuncIsActiveTask
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _0807DED0
b _0807E400
_0807DED0:
ldr r0, =gUnknown_020322A0
ldr r2, [r0]
adds r1, r2, 0
adds r1, 0x94
movs r0, 0x2E
strh r0, [r1]
str r3, [r2, 0x64]
b _0807E400
.pool
_0807DEE8:
ldr r1, [r7]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0xA
beq _0807DEF6
b _0807E400
_0807DEF6:
b _0807E398
_0807DEF8:
ldr r1, [r7]
adds r5, r1, 0
adds r5, 0xE0
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
lsls r0, 16
asrs r0, 16
movs r6, 0xAE
lsls r6, 1
cmp r0, r6
bgt _0807DF12
b _0807E400
_0807DF12:
strh r6, [r5]
b _0807E398
_0807DF16:
ldr r0, =gSpriteTemplate_8338E74
movs r1, 0x78
movs r2, 0x50
movs r3, 0
bl CreateSprite
ldr r2, =gUnknown_020322A0
ldr r1, [r2]
adds r1, 0x91
strb r0, [r1]
ldr r0, [r2]
adds r0, 0x94
movs r1, 0x32
strh r1, [r0]
b _0807E400
.pool
_0807DF3C:
ldr r2, =gSprites
ldr r0, [r7]
adds r0, 0x91
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 27
cmp r0, 0
blt _0807DF5A
b _0807E400
_0807DF5A:
adds r0, r1, 0
bl DestroySprite
movs r0, 0x6
bl sub_807B62C
ldr r1, [r7]
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
movs r0, 0x9F
bl PlaySE
b _0807E400
.pool
_0807DF7C:
ldr r1, [r7]
adds r2, r1, 0
adds r2, 0xEA
ldrh r3, [r2]
ldr r0, =0x000003ff
cmp r3, r0
bhi _0807DF98
adds r0, r3, 0
adds r0, 0x34
strh r0, [r2]
b _0807DFA6
.pool
_0807DF98:
movs r0, 0x80
lsls r0, 3
strh r0, [r2]
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0807DFA6:
ldr r4, [r7]
_0807DFA8:
adds r0, r4, 0
adds r0, 0xEA
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 8
bl __divsi3
adds r4, 0xE8
strh r0, [r4]
b _0807E400
_0807DFBC:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x3C
strh r1, [r0]
b _0807E400
.pool
_0807DFDC:
ldr r4, =gPaletteFade
ldrb r1, [r4, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807DFEA
b _0807E400
_0807DFEA:
movs r0, 0x5
bl sub_807B62C
movs r0, 0x7
bl sub_807B62C
ldrb r0, [r4, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r4, 0x8]
b _0807E394
.pool
_0807E004:
ldr r2, =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
b _0807E390
.pool
_0807E020:
movs r1, 0xA2
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0807E038
b _0807E400
_0807E038:
b _0807E394
.pool
_0807E040:
ldr r0, =gSpriteTemplate_8338D28
movs r2, 0x8
negs r2, r2
movs r1, 0x78
movs r3, 0
bl CreateSprite
ldr r5, =gUnknown_020322A0
ldr r1, [r5]
adds r1, 0xD3
movs r6, 0
strb r0, [r1]
ldr r4, =gSprites
ldr r2, [r5]
adds r2, 0xD3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x4A
strh r1, [r0, 0x34]
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, =sub_807E6AC
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x1
bl StartSpriteAnim
ldr r0, [r5]
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x2
bl StartSpriteAffineAnim
ldr r0, [r5]
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
lsrs r1, 4
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
ldr r2, =0x0000ffff
movs r1, 0x10
bl BlendPalettes
ldr r2, [r5]
adds r1, r2, 0
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
str r6, [r2, 0x64]
b _0807E400
.pool
_0807E0E8:
ldr r2, =gSprites
ldr r0, [r7]
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
lsrs r1, 4
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
ldr r1, =0x0000ffff
str r1, [sp]
movs r1, 0x1
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r1, [r7]
b _0807E398
.pool
_0807E11C:
ldr r2, =gSprites
ldr r3, [r7]
adds r0, r3, 0
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807E13A
b _0807E400
_0807E13A:
adds r0, r3, 0
adds r0, 0xF2
ldrh r2, [r0]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
bl HandleLoadSpecialPokePic_2
ldr r1, [r7]
b _0807E398
.pool
_0807E168:
ldr r4, =gSprites
ldr r2, [r7]
adds r6, r2, 0
adds r6, 0x8F
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r5, 0
movs r1, 0x78
strh r1, [r0, 0x20]
ldrb r0, [r6]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldr r3, =gMonFrontPicCoords
adds r2, 0xF2
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
ldrb r0, [r0, 0x1]
adds r0, 0x3C
strh r0, [r1, 0x22]
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x24]
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x26]
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0
bl StartSpriteAnim
ldr r3, [r7]
adds r0, r3, 0
adds r0, 0x8F
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r1, [r1, 0x5]
lsrs r1, 4
movs r2, 0x2
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0x14
str r2, [sp, 0x8]
ldr r2, =0x000fffff
str r2, [sp, 0xC]
adds r3, 0xF2
ldrh r2, [r3]
str r2, [sp, 0x10]
movs r2, 0x78
movs r3, 0x54
bl CreatePokeballSpriteToReleaseMon
ldr r0, [r7]
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl FreeSpriteOamMatrix
ldr r0, [r7]
adds r0, 0xD3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r1, [r7]
b _0807E398
.pool
_0807E228:
movs r1, 0xAA
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r4, =gStringVar4
ldr r1, =gText_XSentOverY
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
ldr r0, =gUnknown_020322A0
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0x94
movs r2, 0
movs r0, 0xA7
_0807E252:
strh r0, [r1]
str r2, [r3, 0x64]
b _0807E400
.pool
_0807E264:
ldr r3, [r7]
ldr r0, [r3, 0x64]
adds r0, 0x1
str r0, [r3, 0x64]
cmp r0, 0x3C
bhi _0807E272
b _0807E400
_0807E272:
adds r0, r3, 0
adds r0, 0x94
movs r2, 0
ldr r1, =0x0000010b
strh r1, [r0]
str r2, [r3, 0x64]
b _0807E400
.pool
_0807E284:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _0807E290
b _0807E400
_0807E290:
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0x44
strh r1, [r0]
b _0807E400
.pool
_0807E2A0:
ldr r1, [r7]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0xA
bne _0807E2B2
ldr r0, =0x00000173
bl PlayFanfare
_0807E2B2:
ldr r1, [r7]
ldr r0, [r1, 0x64]
cmp r0, 0xFA
beq _0807E2BC
b _0807E400
_0807E2BC:
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
movs r5, 0
strh r0, [r1]
ldr r4, =gStringVar4
ldr r1, =gText_TakeGoodCareOfX
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
ldr r0, [r7]
str r5, [r0, 0x64]
b _0807E400
.pool
_0807E2EC:
ldr r1, [r7]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x3C
beq _0807E2FA
b _0807E400
_0807E2FA:
b _0807E398
_0807E2FC:
bl sub_807F14C
b _0807E394
_0807E302:
ldr r2, [r7]
adds r0, r2, 0
adds r0, 0xEE
ldrb r0, [r0]
cmp r0, 0
beq _0807E312
movs r0, 0x1
b _0807E402
_0807E312:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0807E400
adds r1, r2, 0
b _0807E398
.pool
_0807E328:
ldr r0, =gSpecialVar_0x8005
ldrb r0, [r0]
movs r1, 0
bl sub_807B4D0
ldr r1, =gCB2_AfterEvolution
ldr r0, =sub_807B60C
str r0, [r1]
ldr r7, =gUnknown_02032298
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
adds r0, r5
movs r1, 0x1
movs r2, 0
bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _0807E394
ldrb r3, [r7]
adds r0, r3, 0
muls r0, r6
adds r0, r5
ldr r1, =gUnknown_020322A0
ldr r1, [r1]
adds r1, 0x8F
ldrb r2, [r1]
adds r1, r4, 0
bl TradeEvolutionScene
b _0807E394
.pool
_0807E384:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
_0807E390:
bl BeginNormalPaletteFade
_0807E394:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
_0807E398:
adds r1, 0x94
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _0807E400
.pool
_0807E3A8:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0807E400
ldr r0, [r7]
adds r0, 0xF4
ldrh r0, [r0]
bl PlayNewMapMusic
ldr r0, [r7]
cmp r0, 0
beq _0807E3F6
bl FreeAllWindowBuffers
movs r0, 0x3
bl GetBgTilemapBuffer
bl Free
movs r0, 0x1
bl GetBgTilemapBuffer
bl Free
movs r0, 0
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
ldr r0, [r7]
bl Free
str r4, [r7]
_0807E3F6:
ldr r0, =CB2_ReturnToField
bl SetMainCallback2
bl sub_807E784
_0807E400:
movs r0, 0
_0807E402:
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_807CFC8
thumb_func_start c2_08053788
c2_08053788: @ 807E414
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
beq _0807E434
cmp r0, 0x4
beq _0807E444
b _0807E4B4
.pool
_0807E434:
movs r0, 0x4
strb r0, [r1]
ldr r1, =gSoftResetDisabled
movs r0, 0x1
b _0807E4B2
.pool
_0807E444:
ldr r0, =gCB2_AfterEvolution
ldr r1, =sub_807EB50
mov r8, r1
str r1, [r0]
ldr r7, =gUnknown_02032298
ldrb r0, [r7]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
adds r0, r5
movs r1, 0x1
movs r2, 0
bl GetEvolutionTargetSpecies
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _0807E494
ldrb r3, [r7]
adds r0, r3, 0
muls r0, r6
adds r0, r5
ldr r1, =gUnknown_020322A0
ldr r1, [r1]
adds r1, 0x8F
ldrb r2, [r1]
adds r1, r4, 0
bl TradeEvolutionScene
b _0807E4AE
.pool
_0807E494:
bl sub_8077260
cmp r0, 0
beq _0807E4A8
ldr r0, =sub_807F464
bl SetMainCallback2
b _0807E4AE
.pool
_0807E4A8:
mov r0, r8
bl SetMainCallback2
_0807E4AE:
ldr r1, =gUnknown_02032298
movs r0, 0xFF
_0807E4B2:
strb r0, [r1]
_0807E4B4:
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807E4C2
bl RunTasks
_0807E4C2:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end c2_08053788
thumb_func_start sub_807E4DC
sub_807E4DC: @ 807E4DC
push {r4-r6,lr}
bl sub_807ACDC
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0x1
adds r0, r5, 0
ands r0, r6
cmp r0, 0
beq _0807E51A
ldr r4, =gBlockRecvBuffer
ldrh r1, [r4]
ldr r0, =0x0000dcba
cmp r1, r0
bne _0807E504
ldr r0, =c2_08053788
bl SetMainCallback2
_0807E504:
ldrh r1, [r4]
ldr r0, =0x0000abcd
cmp r1, r0
bne _0807E514
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x72
strb r6, [r0]
_0807E514:
movs r0, 0
bl ResetBlockReceivedFlag
_0807E51A:
movs r0, 0x2
ands r0, r5
cmp r0, 0
beq _0807E542
ldr r0, =gBlockRecvBuffer
movs r1, 0x80
lsls r1, 1
adds r0, r1
ldrh r1, [r0]
ldr r0, =0x0000abcd
cmp r1, r0
bne _0807E53C
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x73
movs r1, 0x1
strb r1, [r0]
_0807E53C:
movs r0, 0x1
bl ResetBlockReceivedFlag
_0807E542:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E4DC
thumb_func_start sub_807E55C
sub_807E55C: @ 807E55C
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
movs r1, 0xA
bl __divsi3
ldrh r4, [r5, 0x22]
adds r4, r0
strh r4, [r5, 0x22]
ldrh r0, [r5, 0x30]
ldrh r2, [r5, 0x38]
adds r0, r2
strh r0, [r5, 0x38]
movs r1, 0x38
ldrsh r0, [r5, r1]
movs r1, 0xA
bl __divsi3
strh r0, [r5, 0x20]
lsls r4, 16
asrs r4, 16
cmp r4, 0x4C
ble _0807E5AA
movs r0, 0x4C
strh r0, [r5, 0x22]
movs r2, 0x2E
ldrsh r1, [r5, r2]
movs r2, 0x32
ldrsh r0, [r5, r2]
muls r0, r1
negs r0, r0
movs r1, 0x64
bl __divsi3
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
_0807E5AA:
movs r1, 0x20
ldrsh r0, [r5, r1]
cmp r0, 0x78
bne _0807E5B6
movs r0, 0
strh r0, [r5, 0x30]
_0807E5B6:
ldrh r0, [r5, 0x36]
ldrh r2, [r5, 0x2E]
adds r0, r2
strh r0, [r5, 0x2E]
movs r1, 0x34
ldrsh r0, [r5, r1]
cmp r0, 0x4
bne _0807E5CE
movs r0, 0x1
strh r0, [r5, 0x3C]
ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
_0807E5CE:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E55C
thumb_func_start sub_807E5D8
sub_807E5D8: @ 807E5D8
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r1, =gUnknown_08339024
movs r2, 0x2E
ldrsh r0, [r4, r2]
adds r0, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0x16
bne _0807E600
movs r0, 0x38
bl PlaySE
_0807E600:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2C
bne _0807E636
movs r0, 0x8C
bl PlaySE
ldr r0, =sub_807E64C
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x2E]
ldrb r1, [r4, 0x5]
lsrs r1, 4
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
movs r1, 0x1
negs r1, r1
ldr r2, =0x0000ffff
str r2, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_0807E636:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E5D8
thumb_func_start sub_807E64C
sub_807E64C: @ 807E64C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x14
bne _0807E660
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_0807E660:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x14
ble _0807E69E
ldr r1, =gUnknown_08339024
movs r2, 0x2E
ldrsh r0, [r4, r2]
adds r0, r1
movs r1, 0
ldrsb r1, [r0, r1]
ldrh r0, [r4, 0x26]
subs r0, r1
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x17
bne _0807E69E
adds r0, r4, 0
bl DestroySprite
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
adds r0, 0x94
movs r1, 0xE
strh r1, [r0]
_0807E69E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E64C
thumb_func_start sub_807E6AC
sub_807E6AC: @ 807E6AC
push {r4,lr}
adds r4, r0, 0
ldrh r2, [r4, 0x32]
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0807E6DC
ldrh r0, [r4, 0x22]
adds r0, 0x4
strh r0, [r4, 0x22]
lsls r0, 16
asrs r0, 16
movs r3, 0x34
ldrsh r1, [r4, r3]
cmp r0, r1
ble _0807E72C
adds r0, r2, 0x1
strh r0, [r4, 0x32]
movs r0, 0x16
strh r0, [r4, 0x2E]
movs r0, 0x38
bl PlaySE
b _0807E72C
_0807E6DC:
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x42
bne _0807E6EA
movs r0, 0x39
bl PlaySE
_0807E6EA:
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0x5C
bne _0807E6F8
movs r0, 0x3A
bl PlaySE
_0807E6F8:
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r0, 0x6B
bne _0807E706
movs r0, 0x3B
bl PlaySE
_0807E706:
ldr r1, =gUnknown_08339024
movs r2, 0x2E
ldrsh r0, [r4, r2]
adds r0, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldrh r3, [r4, 0x26]
adds r0, r3
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6C
bne _0807E72C
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0807E72C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E6AC
thumb_func_start sub_807E73C
sub_807E73C: @ 807E73C
push {r4-r6,lr}
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 4
subs r4, r0
lsls r4, 2
ldr r0, =gIngameTrades
adds r4, r0
ldr r0, =gStringVar1
ldrh r1, [r4, 0x38]
movs r6, 0xB
muls r1, r6
ldr r5, =gSpeciesNames
adds r1, r5
bl StringCopy
ldr r0, =gStringVar2
ldrh r1, [r4, 0xC]
muls r1, r6
adds r1, r5
bl StringCopy
ldrh r0, [r4, 0x38]
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_807E73C
thumb_func_start sub_807E784
sub_807E784: @ 807E784
push {r4,lr}
sub sp, 0x20
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 4
subs r4, r0
lsls r4, 2
ldr r0, =gIngameTrades
adds r4, r0
ldr r0, =gSpecialVar_0x8005
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2
mov r2, sp
bl GetMonData
ldr r0, =gStringVar1
mov r1, sp
bl StringCopy10
ldr r0, =gStringVar2
ldrh r2, [r4, 0xC]
movs r1, 0xB
muls r1, r2
ldr r2, =gSpeciesNames
adds r1, r2
bl StringCopy
add sp, 0x20
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E784
thumb_func_start sub_807E7E8
sub_807E7E8: @ 807E7E8
push {r4-r7,lr}
sub sp, 0x38
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, r1, 4
subs r2, r1
lsls r2, 2
ldr r1, =gIngameTrades
adds r5, r2, r1
movs r1, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x38
bl GetMonData
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
add r4, sp, 0x34
movs r0, 0xFE
strb r0, [r4]
ldr r6, =gEnemyParty
ldrh r1, [r5, 0xC]
movs r3, 0x1
str r3, [sp]
ldr r0, [r5, 0x24]
str r0, [sp, 0x4]
str r3, [sp, 0x8]
ldr r0, [r5, 0x18]
str r0, [sp, 0xC]
adds r0, r6, 0
movs r3, 0x20
bl CreateMon
adds r2, r5, 0
adds r2, 0xE
adds r0, r6, 0
movs r1, 0x27
bl SetMonData
adds r2, r5, 0
adds r2, 0xF
adds r0, r6, 0
movs r1, 0x28
bl SetMonData
adds r2, r5, 0
adds r2, 0x10
adds r0, r6, 0
movs r1, 0x29
bl SetMonData
adds r2, r5, 0
adds r2, 0x11
adds r0, r6, 0
movs r1, 0x2A
bl SetMonData
adds r2, r5, 0
adds r2, 0x12
adds r0, r6, 0
movs r1, 0x2B
bl SetMonData
adds r2, r5, 0
adds r2, 0x13
adds r0, r6, 0
movs r1, 0x2C
bl SetMonData
adds r0, r6, 0
movs r1, 0x2
adds r2, r5, 0
bl SetMonData
adds r2, r5, 0
adds r2, 0x2B
adds r0, r6, 0
movs r1, 0x7
bl SetMonData
adds r2, r5, 0
adds r2, 0x36
adds r0, r6, 0
movs r1, 0x31
bl SetMonData
adds r2, r5, 0
adds r2, 0x14
adds r0, r6, 0
movs r1, 0x2E
bl SetMonData
adds r2, r5, 0
adds r2, 0x1D
adds r0, r6, 0
movs r1, 0x17
bl SetMonData
adds r2, r5, 0
adds r2, 0x1E
adds r0, r6, 0
movs r1, 0x18
bl SetMonData
adds r2, r5, 0
adds r2, 0x1C
adds r0, r6, 0
movs r1, 0x16
bl SetMonData
adds r2, r5, 0
adds r2, 0x1F
adds r0, r6, 0
movs r1, 0x21
bl SetMonData
adds r2, r5, 0
adds r2, 0x20
adds r0, r6, 0
movs r1, 0x2F
bl SetMonData
adds r2, r5, 0
adds r2, 0x37
adds r0, r6, 0
movs r1, 0x30
bl SetMonData
adds r0, r6, 0
movs r1, 0x23
adds r2, r4, 0
bl SetMonData
mov r4, sp
adds r4, 0x35
movs r0, 0
strb r0, [r4]
ldrh r0, [r5, 0x28]
cmp r0, 0
beq _0807E960
bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0807E954
add r0, sp, 0x10
adds r1, r5, 0
bl sub_807E974
ldr r0, =gUnknown_020321C0
add r1, sp, 0x10
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
adds r0, r6, 0
movs r1, 0x40
adds r2, r4, 0
bl SetMonData
adds r2, r5, 0
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
bl SetMonData
b _0807E960
.pool
_0807E954:
adds r2, r5, 0
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
bl SetMonData
_0807E960:
ldr r0, =gEnemyParty
bl CalculateMonStats
add sp, 0x38
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E7E8
thumb_func_start sub_807E974
sub_807E974: @ 807E974
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r2, =gUnknown_08338FC0
adds r0, r6, 0
adds r0, 0x2A
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, r0, r2
adds r1, r5, 0
movs r3, 0x8
_0807E98E:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r3, 0x1
cmp r3, 0
bge _0807E98E
adds r4, r5, 0
adds r4, 0x12
adds r1, r6, 0
adds r1, 0x2B
adds r0, r4, 0
bl StringCopy
adds r0, r4, 0
movs r1, 0
bl PadNameString
ldr r1, [r6, 0x18]
lsrs r0, r1, 24
strb r0, [r5, 0x1A]
lsrs r0, r1, 16
strb r0, [r5, 0x1B]
lsrs r0, r1, 8
strb r0, [r5, 0x1C]
strb r1, [r5, 0x1D]
ldrh r0, [r6, 0xC]
strh r0, [r5, 0x1E]
ldrh r0, [r6, 0x28]
strh r0, [r5, 0x20]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_807E974
thumb_func_start sub_807E9D4
sub_807E9D4: @ 807E9D4
push {r4-r6,lr}
ldr r6, =gSpecialVar_0x8005
ldrh r0, [r6]
movs r5, 0x64
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _0807EA08
ldrh r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
b _0807EA0A
.pool
_0807EA08:
movs r0, 0
_0807EA0A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_807E9D4
thumb_func_start sub_807EA10
sub_807EA10: @ 807EA10
push {lr}
ldr r0, =gSpecialVar_0x8005
ldrb r0, [r0]
ldr r1, =gSpecialVar_0x8004
ldrb r1, [r1]
bl sub_807E7E8
pop {r0}
bx r0
.pool
thumb_func_end sub_807EA10
thumb_func_start sub_807EA2C
sub_807EA2C: @ 807EA2C
push {r4-r6,lr}
bl sub_807BBC8
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x1
bne _0807EA96
ldr r5, =gUnknown_020322A0
ldr r0, [r5]
adds r0, 0x8E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
ldr r0, [r5]
adds r0, 0x8F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl FreeSpriteOamMatrix
ldr r0, =gUnknown_02032298
ldrb r4, [r0]
ldrb r0, [r0, 0x1]
movs r1, 0x6
bl __umodsi3
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_807B4D0
bl sub_8077260
cmp r0, 0
bne _0807EA90
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x74
ldr r1, =0x0000abcd
strh r1, [r2]
adds r0, 0x93
strb r6, [r0]
_0807EA90:
ldr r0, =sub_807EACC
bl SetMainCallback2
_0807EA96:
bl sub_807B5B8
bl sub_807E4DC
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_807EA2C
thumb_func_start sub_807EACC
sub_807EACC: @ 807EACC
push {r4,lr}
bl sub_807ACDC
lsls r0, 24
lsrs r4, r0, 24
bl sub_8077260
cmp r0, 0
beq _0807EAEC
ldr r0, =c2_08053788
bl SetMainCallback2
b _0807EB2C
.pool
_0807EAEC:
bl sub_807E4DC
cmp r4, 0
bne _0807EB2C
ldr r4, =gUnknown_020322A0
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x72
ldrh r1, [r0]
ldr r0, =0x00000101
cmp r1, r0
bne _0807EB2C
adds r1, r2, 0
adds r1, 0x74
ldr r0, =0x0000dcba
strh r0, [r1]
bl bitmask_all_link_players_but_self
lsls r0, 24
lsrs r0, 24
ldr r1, [r4]
adds r1, 0x74
movs r2, 0x14
bl SendBlock
ldr r0, [r4]
adds r0, 0x72
movs r1, 0x2
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x73
strb r1, [r0]
_0807EB2C:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807EACC
thumb_func_start sub_807EB50
sub_807EB50: @ 807EB50
push {r4,lr}
sub sp, 0x4
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, 0
cmp r0, 0x65
bls _0807EB66
b _0807F03A
_0807EB66:
lsls r0, 2
ldr r1, =_0807EB78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0807EB78:
.4byte _0807ED10
.4byte _0807ED2C
.4byte _0807ED98
.4byte _0807F03A
.4byte _0807EE78
.4byte _0807EF3C
.4byte _0807EF64
.4byte _0807EF7E
.4byte _0807EFA4
.4byte _0807EFF0
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807EE9C
.4byte _0807EEEC
.4byte _0807EF1A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807EDC0
.4byte _0807EE1C
.4byte _0807EE38
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807F03A
.4byte _0807ED44
.4byte _0807ED7C
_0807ED10:
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r4, =gStringVar4
ldr r1, =gText_CommunicationStandby5
b _0807EDA6
.pool
_0807ED2C:
movs r0, 0
bl sub_8077288
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r2, 0
movs r1, 0x64
b _0807EE88
.pool
_0807ED44:
ldr r0, =gUnknown_020322A0
ldr r3, [r0]
ldr r0, [r3, 0x64]
adds r0, 0x1
str r0, [r3, 0x64]
cmp r0, 0xB4
bls _0807ED60
movs r1, 0x87
lsls r1, 3
adds r0, r2, r1
movs r2, 0
movs r1, 0x65
strb r1, [r0]
str r2, [r3, 0x64]
_0807ED60:
bl sub_8077294
cmp r0, 0
bne _0807ED6A
b _0807F03A
_0807ED6A:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
b _0807ED8E
.pool
_0807ED7C:
bl sub_8077294
cmp r0, 0
bne _0807ED86
b _0807F03A
_0807ED86:
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
_0807ED8E:
movs r1, 0x2
strb r1, [r0]
b _0807F03A
.pool
_0807ED98:
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
movs r0, 0x32
strb r0, [r1]
ldr r4, =gStringVar4
ldr r1, =gText_SavingDontTurnOffPower
_0807EDA6:
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
b _0807F03A
.pool
_0807EDC0:
bl InUnionRoom
cmp r0, 0
bne _0807EDCE
movs r0, 0x15
bl IncrementGameStat
_0807EDCE:
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807EDF6
ldr r4, =gLinkPlayers
bl GetMultiplayerId
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r4, 0x4
adds r1, r4
ldr r1, [r1]
movs r0, 0x2
bl sub_801B990
_0807EDF6:
bl sub_8076D5C
bl sub_8153380
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
movs r2, 0
strb r0, [r1]
b _0807EE8A
.pool
_0807EE1C:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x5
beq _0807EE2C
b _0807F03A
_0807EE2C:
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
b _0807EFE4
.pool
_0807EE38:
bl sub_81533AC
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0807EE5C
bl sav2_gender2_inplace_and_xFE
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x4
strb r1, [r0]
b _0807F03A
.pool
_0807EE5C:
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
str r1, [r0, 0x64]
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x33
strb r1, [r0]
b _0807F03A
.pool
_0807EE78:
bl sub_81533E0
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r2, 0
movs r1, 0x28
_0807EE88:
strb r1, [r0]
_0807EE8A:
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
str r2, [r0, 0x64]
b _0807F03A
.pool
_0807EE9C:
ldr r4, =gUnknown_020322A0
ldr r1, [r4]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x32
bhi _0807EEAC
b _0807F03A
_0807EEAC:
bl GetMultiplayerId
lsls r0, 24
cmp r0, 0
bne _0807EED4
bl Random
ldr r4, [r4]
lsls r0, 16
lsrs r0, 16
movs r1, 0x1E
bl __umodsi3
lsls r0, 16
lsrs r0, 16
str r0, [r4, 0x64]
b _0807EEDA
.pool
_0807EED4:
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x64]
_0807EEDA:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x29
strb r1, [r0]
b _0807F03A
.pool
_0807EEEC:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
cmp r0, 0
bne _0807EF14
movs r0, 0x1
bl sub_8077288
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x2A
strb r1, [r0]
b _0807F03A
.pool
_0807EF14:
subs r0, 0x1
str r0, [r1, 0x64]
b _0807F03A
_0807EF1A:
bl sub_8077294
cmp r0, 0
bne _0807EF24
b _0807F03A
_0807EF24:
bl sub_8153408
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x5
strb r1, [r0]
b _0807F03A
.pool
_0807EF3C:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x3C
bls _0807F03A
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
movs r0, 0x2
bl sub_8077288
b _0807F03A
.pool
_0807EF64:
bl sub_8077294
cmp r0, 0
beq _0807F03A
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _0807EFDC
_0807EF7E:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0807F03A
movs r0, 0x3
bl FadeOutBGM
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _0807EFE4
.pool
_0807EFA4:
bl IsBGMStopped
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0807F03A
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807EFD8
ldr r0, =gMain
ldr r1, [r0, 0x8]
ldr r0, =sub_80773AC
cmp r1, r0
bne _0807EFD8
movs r0, 0x3
bl sub_8077288
b _0807EFDC
.pool
_0807EFD8:
bl sub_800AC34
_0807EFDC:
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
_0807EFE4:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0807F03A
.pool
_0807EFF0:
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807F028
ldr r1, [r2, 0x8]
ldr r0, =sub_80773AC
cmp r1, r0
bne _0807F028
bl sub_8077294
cmp r0, 0
beq _0807F03A
ldr r0, =gSoftResetDisabled
movs r1, 0
strb r1, [r0]
ldr r0, =c2_080543C4
bl SetMainCallback2
b _0807F03A
.pool
_0807F028:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r1, [r0]
cmp r1, 0
bne _0807F03A
ldr r0, =gSoftResetDisabled
strb r1, [r0]
ldr r0, =c2_080543C4
bl SetMainCallback2
_0807F03A:
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807F048
bl RunTasks
_0807F048:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807EB50
thumb_func_start c2_080543C4
c2_080543C4: @ 807F068
push {r4,r5,lr}
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0807F0BE
bl FreeAllWindowBuffers
movs r0, 0x3
bl GetBgTilemapBuffer
bl Free
movs r0, 0x1
bl GetBgTilemapBuffer
bl Free
movs r0, 0
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
bl Free
str r5, [r4]
ldr r0, =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0807F0B6
bl sub_800E084
_0807F0B6:
ldr r0, =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_0807F0BE:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end c2_080543C4
thumb_func_start sub_807F0E4
sub_807F0E4: @ 807F0E4
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
ldr r0, =sub_807F110
movs r1, 0xA
bl CreateTask
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_807F0E4
thumb_func_start sub_807F110
sub_807F110: @ 807F110
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0807F134
ldr r0, =sub_807B270
bl SetMainCallback2
ldr r1, =gFieldCallback
ldr r0, =sub_80AF168
str r0, [r1]
adds r0, r4, 0
bl DestroyTask
_0807F134:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_807F110
thumb_func_start sub_807F14C
sub_807F14C: @ 807F14C
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0807F152:
ldr r0, =gUnknown_02032298
ldrb r0, [r0, 0x1]
movs r1, 0x6
bl __umodsi3
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, =gEnemyParty
adds r0, r1
adds r1, r4, 0
adds r1, 0x43
bl GetMonData
adds r0, r5, r0
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xB
bls _0807F152
cmp r5, 0
beq _0807F18A
ldr r0, =0x0000089b
bl FlagSet
_0807F18A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_807F14C
thumb_func_start sub_807F19C
sub_807F19C: @ 807F19C
push {lr}
bl sub_807B170
pop {r0}
bx r0
thumb_func_end sub_807F19C
thumb_func_start sub_807F1A8
sub_807F1A8: @ 807F1A8
push {r4-r6,lr}
sub sp, 0x14
adds r5, r0, 0
adds r6, r1, 0
adds r4, r2, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r2, =gUnknown_020322A0
ldr r0, [r2]
adds r0, 0xF6
movs r3, 0
movs r1, 0xF
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xF7
movs r1, 0x1
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xF8
movs r1, 0x6
strb r1, [r0]
str r3, [sp]
str r3, [sp, 0x4]
ldr r0, [r2]
adds r0, 0xF6
str r0, [sp, 0x8]
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r6, [sp, 0x10]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
movs r3, 0x2
bl AddTextPrinterParameterized4
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_807F1A8
thumb_func_start c3_08054588
c3_08054588: @ 807F210
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldr r1, =gUnknown_08339090
movs r2, 0
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r2, r1, 0
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
bne _0807F254
movs r0, 0x80
lsls r0, 1
cmp r1, r0
beq _0807F25C
lsls r0, r1, 1
ldr r1, =gUnknown_08337AA0
adds r0, r1
b _0807F25E
.pool
_0807F254:
movs r0, 0x80
lsls r0, 1
cmp r1, r0
bne _0807F26C
_0807F25C:
ldr r0, =gUnknown_08337EA0
_0807F25E:
movs r1, 0x30
movs r2, 0x20
bl LoadPalette
b _0807F27A
.pool
_0807F26C:
lsls r0, r2, 1
ldr r1, =gUnknown_08337CA0
adds r0, r1
movs r1, 0x30
movs r2, 0x20
bl LoadPalette
_0807F27A:
ldr r0, =gUnknown_08339090
movs r2, 0
ldrsh r1, [r4, r2]
lsls r1, 1
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
bne _0807F298
movs r3, 0x2
ldrsh r0, [r4, r3]
cmp r0, 0
bne _0807F298
movs r0, 0xC3
bl PlaySE
_0807F298:
movs r0, 0x2
ldrsh r2, [r4, r0]
ldr r1, =gUnknown_08339090
movs r3, 0
ldrsh r0, [r4, r3]
lsls r0, 1
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r2, r0
bne _0807F2D8
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
movs r0, 0
strh r0, [r4, 0x2]
movs r2, 0
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0xFF
bne _0807F2DE
adds r0, r5, 0
bl DestroyTask
b _0807F2DE
.pool
_0807F2D8:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
_0807F2DE:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end c3_08054588
thumb_func_start c3_0805465C
c3_0805465C: @ 807F2E4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
movs r0, 0
ldrsh r4, [r5, r0]
cmp r4, 0
bne _0807F336
ldr r2, =gUnknown_020322A0
ldr r0, [r2]
adds r3, r0, 0
adds r3, 0xFD
movs r1, 0x78
strb r1, [r3]
adds r0, 0xFB
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xFC
strb r4, [r0]
ldr r0, [r2]
adds r0, 0xFE
movs r1, 0xA0
strb r1, [r0]
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
movs r0, 0x4A
movs r1, 0x10
bl SetGpuReg
movs r0, 0x48
movs r1, 0x13
bl SetGpuReg
_0807F336:
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xFD
ldrb r1, [r1]
adds r0, 0xFB
ldrb r0, [r0]
lsls r0, 8
orrs r1, r0
movs r0, 0x40
bl SetGpuReg
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xFE
ldrb r1, [r1]
adds r0, 0xFC
ldrb r0, [r0]
lsls r0, 8
orrs r1, r0
movs r0, 0x44
bl SetGpuReg
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
ldr r1, [r4]
adds r1, 0xFB
ldrb r0, [r1]
subs r0, 0x5
strb r0, [r1]
ldr r1, [r4]
adds r1, 0xFD
ldrb r0, [r1]
adds r0, 0x5
strb r0, [r1]
ldr r0, [r4]
adds r0, 0xFB
ldrb r0, [r0]
cmp r0, 0x4F
bhi _0807F38E
adds r0, r6, 0
bl DestroyTask
_0807F38E:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end c3_0805465C
thumb_func_start sub_807F39C
sub_807F39C: @ 807F39C
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0807F3D8
ldr r2, =gUnknown_020322A0
ldr r0, [r2]
adds r0, 0xFB
movs r1, 0x50
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xFD
movs r1, 0xA0
strb r1, [r0]
movs r0, 0x4A
movs r1, 0x10
bl SetGpuReg
movs r0, 0x48
movs r1, 0x13
bl SetGpuReg
_0807F3D8:
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xFD
ldrb r1, [r1]
adds r0, 0xFB
ldrb r0, [r0]
lsls r0, 8
orrs r1, r0
movs r0, 0x40
bl SetGpuReg
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xFE
ldrb r1, [r1]
adds r0, 0xFC
ldrb r0, [r0]
lsls r0, 8
orrs r1, r0
movs r0, 0x44
bl SetGpuReg
ldr r0, [r4]
adds r0, 0xFB
ldrb r0, [r0]
cmp r0, 0x78
beq _0807F44C
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
ldr r1, [r4]
adds r1, 0xFB
ldrb r0, [r1]
adds r0, 0x5
strb r0, [r1]
ldr r1, [r4]
adds r1, 0xFD
ldrb r0, [r1]
subs r0, 0x5
strb r0, [r1]
ldr r0, [r4]
adds r0, 0xFB
ldrb r0, [r0]
cmp r0, 0x73
bls _0807F45C
ldr r2, =0x0000ffff
movs r0, 0x8
movs r1, 0
bl BlendPalettes
b _0807F45C
.pool
_0807F44C:
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl ClearGpuRegBits
adds r0, r6, 0
bl DestroyTask
_0807F45C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_807F39C
thumb_func_start sub_807F464
sub_807F464: @ 807F464
push {r4,r5,lr}
sub sp, 0x4
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, 0
cmp r0, 0xC
bls _0807F47A
b _0807F70C
_0807F47A:
lsls r0, 2
ldr r1, =_0807F48C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0807F48C:
.4byte _0807F4C0
.4byte _0807F4E8
.4byte _0807F500
.4byte _0807F550
.4byte _0807F570
.4byte _0807F5AC
.4byte _0807F5D0
.4byte _0807F620
.4byte _0807F64E
.4byte _0807F66C
.4byte _0807F694
.4byte _0807F6C4
.4byte _0807F6F8
_0807F4C0:
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
movs r0, 0x1
strb r0, [r1]
ldr r4, =gStringVar4
ldr r1, =gText_CommunicationStandby5
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
b _0807F70C
.pool
_0807F4E8:
movs r0, 0
bl sub_8077288
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r2, 0
movs r1, 0x2
b _0807F5BC
.pool
_0807F500:
bl sub_8077294
cmp r0, 0
bne _0807F50A
b _0807F70C
_0807F50A:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r5, 0
movs r1, 0x3
strb r1, [r0]
ldr r4, =gStringVar4
ldr r1, =gText_SavingDontTurnOffPower
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl sub_807F1A8
movs r0, 0x15
bl IncrementGameStat
bl sub_8153380
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
str r5, [r0, 0x64]
b _0807F70C
.pool
_0807F550:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x5
beq _0807F560
b _0807F70C
_0807F560:
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
movs r0, 0x4
strb r0, [r1]
b _0807F70C
.pool
_0807F570:
bl sub_81533AC
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0807F590
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x5
strb r1, [r0]
b _0807F70C
.pool
_0807F590:
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
str r1, [r0, 0x64]
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x3
strb r1, [r0]
b _0807F70C
.pool
_0807F5AC:
bl sub_81533E0
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r2, 0
movs r1, 0x6
_0807F5BC:
strb r1, [r0]
ldr r0, =gUnknown_020322A0
ldr r0, [r0]
str r2, [r0, 0x64]
b _0807F70C
.pool
_0807F5D0:
ldr r4, =gUnknown_020322A0
ldr r1, [r4]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0xA
bhi _0807F5E0
b _0807F70C
_0807F5E0:
bl GetMultiplayerId
lsls r0, 24
cmp r0, 0
bne _0807F608
bl Random
ldr r4, [r4]
lsls r0, 16
lsrs r0, 16
movs r1, 0x1E
bl __umodsi3
lsls r0, 16
lsrs r0, 16
str r0, [r4, 0x64]
b _0807F60E
.pool
_0807F608:
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x64]
_0807F60E:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x7
strb r1, [r0]
b _0807F70C
.pool
_0807F620:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
cmp r0, 0
bne _0807F648
movs r0, 0x1
bl sub_8077288
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x8
strb r1, [r0]
b _0807F70C
.pool
_0807F648:
subs r0, 0x1
str r0, [r1, 0x64]
b _0807F70C
_0807F64E:
bl sub_8077294
cmp r0, 0
beq _0807F70C
bl sub_8153408
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x9
strb r1, [r0]
b _0807F70C
.pool
_0807F66C:
ldr r0, =gUnknown_020322A0
ldr r1, [r0]
ldr r0, [r1, 0x64]
adds r0, 0x1
str r0, [r1, 0x64]
cmp r0, 0x3C
bls _0807F70C
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
movs r0, 0x2
bl sub_8077288
b _0807F70C
.pool
_0807F694:
bl sub_8077294
cmp r0, 0
beq _0807F70C
movs r0, 0x3
bl FadeOutBGM
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0xB
strb r1, [r0]
b _0807F70C
.pool
_0807F6C4:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0807F70C
bl IsBGMStopped
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0807F70C
movs r0, 0x3
bl sub_8077288
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0xC
strb r1, [r0]
b _0807F70C
.pool
_0807F6F8:
bl sub_8077294
cmp r0, 0
beq _0807F70C
ldr r0, =gSoftResetDisabled
movs r1, 0
strb r1, [r0]
ldr r0, =c2_080543C4
bl SetMainCallback2
_0807F70C:
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
bne _0807F71A
bl RunTasks
_0807F71A:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_807F464
.align 2, 0 @ Don't pad with nop.