Files
2019-09-27 01:42:56 -04:00

15876 lines
268 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start sub_08076B78
sub_08076B78: @ 0x08076B78
push {r4, lr}
adds r4, r0, #0
adds r3, r1, #0
ldr r0, _08076B98
ldrb r0, [r0]
cmp r0, #0x1d
beq _08076B9C
lsls r2, r3, #0x10
lsrs r2, r2, #0x10
movs r0, #0
adds r1, r4, #0
bl SendBlock
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
b _08076BAA
.align 2, 0
_08076B98: .4byte 0x020228E0
_08076B9C:
ldr r0, _08076BB0
ldrb r0, [r0]
movs r1, #0x54
adds r2, r4, #0
bl rfu_NI_setSendData
movs r0, #1
_08076BAA:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08076BB0: .4byte 0x030041E0
thumb_func_end sub_08076B78
thumb_func_start sub_08076BB4
sub_08076BB4: @ 0x08076BB4
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl sub_0800A09C
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08076BB4
thumb_func_start sub_08076BC4
sub_08076BC4: @ 0x08076BC4
push {r4, lr}
ldr r0, _08076BE8
ldrb r0, [r0]
cmp r0, #0x1d
bne _08076BF8
ldr r4, _08076BEC
ldr r0, _08076BF0
ldrb r0, [r0]
bl sub_0800E340
lsls r0, r0, #2
adds r0, r0, r4
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, #0
bne _08076BF4
movs r0, #1
b _08076C00
.align 2, 0
_08076BE8: .4byte 0x020228E0
_08076BEC: .4byte 0x03007620
_08076BF0: .4byte 0x030041E0
_08076BF4:
movs r0, #0
b _08076C00
_08076BF8:
bl IsLinkTaskFinished
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_08076C00:
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08076BC4
thumb_func_start _GetBlockReceivedStatus
_GetBlockReceivedStatus: @ 0x08076C08
push {lr}
bl GetBlockReceivedStatus
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
thumb_func_end _GetBlockReceivedStatus
thumb_func_start sub_08076C18
sub_08076C18: @ 0x08076C18
push {lr}
bl sub_08076C68
cmp r0, #0
beq _08076C34
ldr r0, _08076C30
ldrb r1, [r0]
movs r0, #0xc
bl rfu_clearSlot
b _08076C38
.align 2, 0
_08076C30: .4byte 0x030041E0
_08076C34:
bl ResetBlockReceivedFlags
_08076C38:
pop {r0}
bx r0
thumb_func_end sub_08076C18
thumb_func_start sub_08076C3C
sub_08076C3C: @ 0x08076C3C
push {r4, lr}
adds r4, r0, #0
bl sub_08076C68
cmp r0, #0
beq _08076C58
ldr r0, _08076C54
ldrb r1, [r0]
movs r0, #0xc
bl rfu_clearSlot
b _08076C60
.align 2, 0
_08076C54: .4byte 0x030041E0
_08076C58:
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
bl ResetBlockReceivedFlag
_08076C60:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08076C3C
thumb_func_start sub_08076C68
sub_08076C68: @ 0x08076C68
push {lr}
ldr r0, _08076C80
ldrb r0, [r0]
cmp r0, #0
beq _08076C88
ldr r0, _08076C84
ldrb r0, [r0]
cmp r0, #0x1d
bne _08076C88
movs r0, #1
b _08076C8A
.align 2, 0
_08076C80: .4byte 0x0300319C
_08076C84: .4byte 0x020228E0
_08076C88:
movs r0, #0
_08076C8A:
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08076C68
thumb_func_start sub_08076C90
sub_08076C90: @ 0x08076C90
push {lr}
bl sub_0800A8D4
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08076C90
thumb_func_start _IsLinkTaskFinished
_IsLinkTaskFinished: @ 0x08076C9C
push {lr}
bl IsLinkTaskFinished
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
thumb_func_end _IsLinkTaskFinished
thumb_func_start sub_08076CAC
sub_08076CAC: @ 0x08076CAC
push {r4, r5, lr}
sub sp, #0xc
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
bl ResetPaletteFade
ldr r2, _08076D9C
ldrb r0, [r2, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #8]
ldr r0, _08076DA0
bl SetVBlankCallback
ldr r4, _08076DA4
adds r0, r4, #0
movs r1, #0xf0
movs r2, #0x14
bl LoadPalette
adds r0, r4, #0
movs r1, #0xd0
movs r2, #0x14
bl LoadPalette
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08076DA8
movs r0, #0
movs r2, #4
bl InitBgsFromTemplates
ldr r0, _08076DAC
ldr r1, [r0]
movs r0, #0x8f
lsls r0, r0, #4
adds r1, r1, r0
movs r0, #1
bl SetBgTilemapBuffer
ldr r0, _08076DB0
bl InitWindows
lsls r0, r0, #0x10
cmp r0, #0
beq _08076D94
bl DeactivateAllTextPrinters
movs r5, #0
_08076D18:
lsls r4, r5, #0x18
lsrs r4, r4, #0x18
adds r0, r4, #0
bl ClearWindowTilemap
adds r0, r4, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r5, #1
cmp r5, #0x11
bls _08076D18
movs r0, #0x1e
str r0, [sp]
movs r0, #0x14
str r0, [sp, #4]
movs r0, #0xf
str r0, [sp, #8]
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl FillBgTilemapBufferRect
movs r0, #0
movs r1, #0x14
movs r2, #0xc0
bl LoadUserWindowBorderGfx_
movs r0, #2
movs r1, #1
movs r2, #0xe0
bl LoadUserWindowBorderGfx
bl LoadMonIconPalettes
ldr r2, _08076DAC
ldr r0, [r2]
adds r0, #0x69
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x6f
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x70
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x74
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x75
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x7a
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x7b
strb r1, [r0]
ldr r0, [r2]
adds r0, #0xa8
strb r1, [r0]
_08076D94:
add sp, #0xc
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08076D9C: .4byte 0x02037C74
_08076DA0: .4byte 0x08077AE5
_08076DA4: .4byte 0x085D7B04
_08076DA8: .4byte 0x08300C04
_08076DAC: .4byte 0x02031F3C
_08076DB0: .4byte 0x08300C14
thumb_func_end sub_08076CAC
thumb_func_start sub_08076DB4
sub_08076DB4: @ 0x08076DB4
push {lr}
ldr r0, _08076DCC
bl SetMainCallback2
ldr r0, _08076DD0
movs r1, #0
str r1, [r0]
ldr r0, _08076DD4
strb r1, [r0]
pop {r0}
bx r0
.align 2, 0
_08076DCC: .4byte 0x08076DD9
_08076DD0: .4byte 0x03002360
_08076DD4: .4byte 0x0202418E
thumb_func_end sub_08076DB4
thumb_func_start sub_08076DD8
sub_08076DD8: @ 0x08076DD8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x28
ldr r1, _08076DFC
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r3, r1, #0
cmp r0, #0x16
bls _08076DF2
b _0807752A
_08076DF2:
lsls r0, r0, #2
ldr r1, _08076E00
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08076DFC: .4byte 0x03002360
_08076E00: .4byte 0x08076E04
_08076E04: @ jump table
.4byte _08076E60 @ case 0
.4byte _08076EAC @ case 1
.4byte _08076F68 @ case 2
.4byte _08076F94 @ case 3
.4byte _08076FF0 @ case 4
.4byte _08077050 @ case 5
.4byte _08077090 @ case 6
.4byte _080770B0 @ case 7
.4byte _080771F0 @ case 8
.4byte _08077218 @ case 9
.4byte _0807723C @ case 10
.4byte _080772C4 @ case 11
.4byte _080772D2 @ case 12
.4byte _08077378 @ case 13
.4byte _08077424 @ case 14
.4byte _08077464 @ case 15
.4byte _0807747E @ case 16
.4byte _0807748C @ case 17
.4byte _080774A0 @ case 18
.4byte _080774C0 @ case 19
.4byte _080774E0 @ case 20
.4byte _080774F4 @ case 21
.4byte _08077514 @ case 22
_08076E60:
ldr r4, _08076E98
ldr r0, _08076E9C
bl AllocZeroed
str r0, [r4]
bl sub_08076CAC
ldr r4, _08076EA0
movs r0, #0xd0
lsls r0, r0, #4
bl AllocZeroed
str r0, [r4]
movs r6, #0
ldr r2, _08076EA4
_08076E7E:
lsls r1, r6, #8
ldr r0, [r4]
adds r0, r0, r1
stm r2!, {r0}
adds r6, #1
cmp r6, #0xc
ble _08076E7E
ldr r1, _08076EA8
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077506
.align 2, 0
_08076E98: .4byte 0x02031F3C
_08076E9C: .4byte 0x000010F0
_08076EA0: .4byte 0x02031E28
_08076EA4: .4byte 0x02031E2C
_08076EA8: .4byte 0x03002360
_08076EAC:
ldr r2, _08076F14
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
movs r6, #0
movs r4, #0
_08076EBA:
movs r0, #0x64
muls r0, r6, r0
ldr r1, _08076F18
adds r0, r0, r1
str r4, [sp]
str r4, [sp, #4]
str r4, [sp, #8]
str r4, [sp, #0xc]
movs r1, #0
movs r2, #0
movs r3, #0x20
bl CreateMon
adds r6, #1
cmp r6, #5
ble _08076EBA
movs r0, #0
bl sub_08079BD4
movs r0, #0
bl ShowBg
ldr r0, _08076F1C
ldrb r2, [r0]
cmp r2, #0
bne _08076F54
ldr r1, _08076F20
ldr r4, _08076F24
adds r0, r4, #0
strh r0, [r1]
ldr r0, _08076F28
ldr r0, [r0]
adds r0, #0xa8
strb r2, [r0]
ldr r0, _08076F2C
ldrb r0, [r0]
cmp r0, #0
beq _08076F30
bl sub_0800AF5C
bl OpenLink
bl sub_08011690
b _0807752A
.align 2, 0
_08076F14: .4byte 0x02037C74
_08076F18: .4byte 0x020243E8
_08076F1C: .4byte 0x030031C4
_08076F20: .4byte 0x0202267E
_08076F24: .4byte 0x00001122
_08076F28: .4byte 0x02031F3C
_08076F2C: .4byte 0x0300319C
_08076F30:
bl OpenLink
ldr r0, _08076F4C
movs r7, #0x87
lsls r7, r7, #3
adds r0, r0, r7
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
ldr r0, _08076F50
movs r1, #1
bl CreateTask
b _0807752A
.align 2, 0
_08076F4C: .4byte 0x03002360
_08076F50: .4byte 0x080B3189
_08076F54:
ldr r0, _08076F64
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
b _0807752A
.align 2, 0
_08076F64: .4byte 0x03002360
_08076F68:
ldr r2, _08076F90
ldr r1, [r2]
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r2]
adds r1, r0, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #0xb
bhi _08076F82
b _0807752A
_08076F82:
movs r0, #0
strb r0, [r1]
movs r2, #0x87
lsls r2, r2, #3
adds r1, r3, r2
b _08077506
.align 2, 0
_08076F90: .4byte 0x02031F3C
_08076F94:
bl GetLinkPlayerCount_2
adds r4, r0, #0
bl GetSavedPlayerCount
lsls r4, r4, #0x18
lsls r0, r0, #0x18
cmp r4, r0
bhs _08076FA8
b _0807752A
_08076FA8:
bl IsLinkMaster
lsls r0, r0, #0x18
cmp r0, #0
beq _08076FE0
ldr r0, _08076FD8
ldr r1, [r0]
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bhi _08076FC8
b _0807752A
_08076FC8:
bl CheckShouldAdvanceLinkState
ldr r1, _08076FDC
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077506
.align 2, 0
_08076FD8: .4byte 0x02031F3C
_08076FDC: .4byte 0x03002360
_08076FE0:
ldr r1, _08076FEC
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
b _08077506
.align 2, 0
_08076FEC: .4byte 0x03002360
_08076FF0:
ldr r0, _08077040
ldrb r0, [r0]
cmp r0, #1
beq _08076FFA
b _0807752A
_08076FFA:
bl IsLinkPlayerDataExchangeComplete
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _08077008
b _0807752A
_08077008:
bl sub_080116BC
bl CalculatePlayerPartyCount
ldr r1, _08077044
movs r7, #0x87
lsls r7, r7, #3
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, _08077048
ldr r0, [r0]
adds r0, #0xa8
strb r2, [r0]
ldr r0, _0807704C
ldrb r0, [r0]
cmp r0, #0
bne _08077032
b _0807752A
_08077032:
movs r0, #1
bl sub_0800FF8C
bl sub_0800A8D4
b _0807752A
.align 2, 0
_08077040: .4byte 0x030031C4
_08077044: .4byte 0x03002360
_08077048: .4byte 0x02031F3C
_0807704C: .4byte 0x0300319C
_08077050:
ldr r0, _08077080
ldrb r0, [r0]
cmp r0, #0
beq _08077088
bl sub_08010000
lsls r0, r0, #0x18
cmp r0, #0
bne _08077064
b _0807752A
_08077064:
ldr r1, _08077084
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, #0
movs r1, #0
bl CreateWirelessStatusIndicatorSprite
b _0807752A
.align 2, 0
_08077080: .4byte 0x0300319C
_08077084: .4byte 0x03002360
_08077088:
movs r2, #0x87
lsls r2, r2, #3
adds r1, r3, r2
b _08077506
_08077090:
bl shedinja_maker_maybe
lsls r0, r0, #0x18
cmp r0, #0
bne _0807709C
b _0807752A
_0807709C:
bl sub_0807A028
ldr r1, _080770AC
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077506
.align 2, 0
_080770AC: .4byte 0x03002360
_080770B0:
bl CalculateEnemyPartyCount
movs r0, #0
movs r1, #0
bl SetGpuReg
movs r0, #0x50
movs r1, #0
bl SetGpuReg
ldr r2, _080771CC
ldr r0, [r2]
ldr r1, _080771D0
ldrb r1, [r1]
adds r0, #0x36
strb r1, [r0]
ldr r0, [r2]
ldr r1, _080771D4
ldrb r1, [r1]
adds r0, #0x37
strb r1, [r0]
movs r6, #0
ldr r0, [r2]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
bge _08077148
mov r8, r2
ldr r7, _080771D8
_080770EA:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _080771DC
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x41
bl GetMonData
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r4, #0
movs r1, #0
bl GetMonData
ldrb r2, [r7]
lsls r2, r2, #0x13
movs r4, #0xe0
lsls r4, r4, #0xc
adds r2, r2, r4
asrs r2, r2, #0x10
ldrb r3, [r7, #1]
lsls r3, r3, #0x13
ldr r1, _080771E0
adds r3, r3, r1
asrs r3, r3, #0x10
movs r1, #1
str r1, [sp]
str r0, [sp, #4]
str r1, [sp, #8]
adds r0, r5, #0
ldr r1, _080771E4
bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, #0x28
adds r1, r1, r6
strb r0, [r1]
adds r7, #2
adds r6, #1
ldr r0, [r2]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
blt _080770EA
_08077148:
movs r6, #0
ldr r1, _080771CC
ldr r0, [r1]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
bge _080771C0
ldr r0, _080771D8
mov r8, r1
adds r7, r0, #0
adds r7, #0xc
_0807715E:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _080771E8
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x41
movs r2, #0
bl GetMonData
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r4, #0
movs r1, #0
bl GetMonData
ldrb r2, [r7]
lsls r2, r2, #0x13
movs r3, #0xe0
lsls r3, r3, #0xc
adds r2, r2, r3
asrs r2, r2, #0x10
ldrb r3, [r7, #1]
lsls r3, r3, #0x13
ldr r4, _080771E0
adds r3, r3, r4
asrs r3, r3, #0x10
movs r1, #1
str r1, [sp]
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
adds r0, r5, #0
ldr r1, _080771E4
bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, #0x2e
adds r1, r1, r6
strb r0, [r1]
adds r7, #2
adds r6, #1
ldr r0, [r2]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
blt _0807715E
_080771C0:
ldr r1, _080771EC
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077506
.align 2, 0
_080771CC: .4byte 0x02031F3C
_080771D0: .4byte 0x0202418D
_080771D4: .4byte 0x0202418E
_080771D8: .4byte 0x08300A1C
_080771DC: .4byte 0x02024190
_080771E0: .4byte 0xFFF40000
_080771E4: .4byte 0x080D28B5
_080771E8: .4byte 0x020243E8
_080771EC: .4byte 0x03002360
_080771F0:
bl LoadHeldItemIcons
ldr r0, _08077210
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x36
adds r1, #0x28
movs r2, #0
bl sub_081B59EC
ldr r1, _08077214
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
b _08077506
.align 2, 0
_08077210: .4byte 0x02031F3C
_08077214: .4byte 0x03002360
_08077218:
ldr r0, _08077234
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x36
adds r1, #0x28
movs r2, #1
bl sub_081B59EC
ldr r1, _08077238
movs r7, #0x87
lsls r7, r7, #3
adds r1, r1, r7
b _08077506
.align 2, 0
_08077234: .4byte 0x02031F3C
_08077238: .4byte 0x03002360
_0807723C:
ldr r0, _080772A8
ldr r0, [r0]
ldr r6, _080772AC
ldr r1, [r6]
ldr r5, _080772B0
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
bl GetMultiplayerId
lsls r0, r0, #0x18
movs r1, #0x80
lsls r1, r1, #0x11
eors r1, r0
lsrs r1, r1, #0x18
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
ldr r1, _080772B4
adds r0, r0, r1
ldr r1, [r6, #0xc]
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
ldr r4, _080772B8
ldr r0, [r4]
ldr r1, [r6, #0x18]
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
ldr r0, [r4, #4]
ldr r1, [r6, #0x1c]
movs r2, #0x18
bl sub_08079D3C
ldr r1, _080772BC
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, _080772C0
ldr r0, [r0]
adds r0, #0xa8
strb r2, [r0]
b _0807752A
.align 2, 0
_080772A8: .4byte 0x03005AF0
_080772AC: .4byte 0x02031E2C
_080772B0: .4byte 0x0201C000
_080772B4: .4byte 0x020226A8
_080772B8: .4byte 0x08300AFC
_080772BC: .4byte 0x03002360
_080772C0: .4byte 0x02031F3C
_080772C4:
bl sub_08079C28
lsls r0, r0, #0x18
cmp r0, #0
bne _080772D0
b _0807752A
_080772D0:
b _080774FE
_080772D2:
ldr r0, _0807736C
ldr r0, [r0]
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0xe
movs r1, #0x4c
subs r1, r1, r0
movs r6, #0
add r5, sp, #0x10
lsls r4, r1, #0x10
_080772E8:
add r1, sp, #0x10
ldr r0, _08077370
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldrh r0, [r5]
adds r0, r0, r6
strh r0, [r5]
asrs r1, r4, #0x10
add r0, sp, #0x10
movs r2, #8
movs r3, #1
bl CreateSprite
movs r3, #0x80
lsls r3, r3, #0xe
adds r4, r4, r3
adds r6, #1
cmp r6, #2
ble _080772E8
bl GetMultiplayerId
adds r1, r0, #0
movs r0, #1
eors r1, r0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
ldr r1, _08077374
adds r0, r0, r1
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0xe
movs r1, #0xc4
subs r1, r1, r0
movs r6, #0
add r5, sp, #0x10
lsls r4, r1, #0x10
_0807733C:
add r1, sp, #0x10
ldr r0, _08077370
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
adds r0, r6, #3
ldrh r7, [r5]
adds r0, r0, r7
strh r0, [r5]
asrs r1, r4, #0x10
add r0, sp, #0x10
movs r2, #8
movs r3, #1
bl CreateSprite
movs r0, #0x80
lsls r0, r0, #0xe
adds r4, r4, r0
adds r6, #1
cmp r6, #2
ble _0807733C
b _080774FE
.align 2, 0
_0807736C: .4byte 0x03005AF0
_08077370: .4byte 0x083008A4
_08077374: .4byte 0x020226A8
_08077378:
add r1, sp, #0x10
ldr r0, _08077410
ldm r0!, {r3, r4, r7}
stm r1!, {r3, r4, r7}
ldm r0!, {r2, r3, r4}
stm r1!, {r2, r3, r4}
add r1, sp, #0x10
adds r0, r1, #0
ldrh r0, [r0]
adds r0, #6
strh r0, [r1]
adds r0, r1, #0
movs r1, #0xe0
movs r2, #0x98
movs r3, #1
bl CreateSprite
movs r6, #0
add r4, sp, #0x10
movs r5, #0xc0
lsls r5, r5, #0xd
_080773A2:
add r1, sp, #0x10
ldr r0, _08077410
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
adds r0, r6, #7
ldrh r7, [r4]
adds r0, r0, r7
strh r0, [r4]
asrs r1, r5, #0x10
add r0, sp, #0x10
movs r2, #0x96
movs r3, #1
bl CreateSprite
movs r0, #0x80
lsls r0, r0, #0xe
adds r5, r5, r0
adds r6, #1
cmp r6, #5
ble _080773A2
ldr r0, _08077414
ldr r2, _08077418
ldrb r1, [r2]
lsls r1, r1, #0x13
movs r3, #0x80
lsls r3, r3, #0xe
adds r1, r1, r3
asrs r1, r1, #0x10
ldrb r2, [r2, #1]
lsls r2, r2, #3
movs r3, #2
bl CreateSprite
ldr r2, _0807741C
ldr r1, [r2]
adds r1, #0x34
movs r3, #0
strb r0, [r1]
ldr r0, [r2]
adds r0, #0x35
strb r3, [r0]
ldr r1, _08077420
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0
bl rbox_fill_rectangle
b _0807752A
.align 2, 0
_08077410: .4byte 0x083008A4
_08077414: .4byte 0x0830088C
_08077418: .4byte 0x08300A1C
_0807741C: .4byte 0x02031F3C
_08077420: .4byte 0x03002360
_08077424:
movs r0, #0
bl sub_08079D98
movs r0, #0
bl sub_08079690
ldr r2, _08077458
ldr r0, [r2]
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
strb r1, [r0, #1]
bl sub_08077D50
ldr r1, _0807745C
movs r7, #0x87
lsls r7, r7, #3
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, _08077460
bl PlayBGM
b _0807752A
.align 2, 0
_08077458: .4byte 0x02031F3C
_0807745C: .4byte 0x03002360
_08077460: .4byte 0x000001B3
_08077464:
movs r0, #1
bl sub_08079D98
movs r0, #1
bl sub_08079690
ldr r1, _08077488
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0807747E:
movs r0, #0
bl sub_08077C80
b _080774FE
.align 2, 0
_08077488: .4byte 0x03002360
_0807748C:
movs r0, #1
bl sub_08077C80
ldr r1, _0807749C
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077506
.align 2, 0
_0807749C: .4byte 0x03002360
_080774A0:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r1, _080774BC
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
b _08077506
.align 2, 0
_080774BC: .4byte 0x03002360
_080774C0:
movs r1, #0x82
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
movs r0, #2
bl sub_08077C80
ldr r1, _080774DC
movs r7, #0x87
lsls r7, r7, #3
adds r1, r1, r7
b _08077506
.align 2, 0
_080774DC: .4byte 0x03002360
_080774E0:
movs r0, #0
bl sub_08079EE0
ldr r1, _080774F0
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
b _08077506
.align 2, 0
_080774F0: .4byte 0x03002360
_080774F4:
movs r0, #1
bl sub_08079EE0
bl sub_08079FB4
_080774FE:
ldr r1, _08077510
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
_08077506:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0807752A
.align 2, 0
_08077510: .4byte 0x03002360
_08077514:
ldr r0, _0807754C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807752A
ldr r0, _08077550
str r0, [r3]
ldr r0, _08077554
bl SetMainCallback2
_0807752A:
bl RunTextPrinters
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #0x28
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807754C: .4byte 0x02037C74
_08077550: .4byte 0x08078619
_08077554: .4byte 0x08077C25
thumb_func_end sub_08076DD8
thumb_func_start sub_08077558
sub_08077558: @ 0x08077558
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x24
ldr r1, _0807757C
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, #0
cmp r0, #0x16
bls _08077572
b _08077ABE
_08077572:
lsls r0, r0, #2
ldr r1, _08077580
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807757C: .4byte 0x03002360
_08077580: .4byte 0x08077584
_08077584: @ jump table
.4byte _080775E0 @ case 0
.4byte _080775F4 @ case 1
.4byte _080775FC @ case 2
.4byte _08077604 @ case 3
.4byte _0807760C @ case 4
.4byte _08077620 @ case 5
.4byte _08077648 @ case 6
.4byte _08077650 @ case 7
.4byte _08077788 @ case 8
.4byte _080777B0 @ case 9
.4byte _080777D4 @ case 10
.4byte _0807785C @ case 11
.4byte _08077878 @ case 12
.4byte _08077928 @ case 13
.4byte _08077ABE @ case 14
.4byte _08077ABE @ case 15
.4byte _080779F4 @ case 16
.4byte _08077A08 @ case 17
.4byte _08077A30 @ case 18
.4byte _08077A6C @ case 19
.4byte _08077A8C @ case 20
.4byte _08077A94 @ case 21
.4byte _08077AAC @ case 22
_080775E0:
bl sub_08076CAC
ldr r1, _080775F0
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077AA0
.align 2, 0
_080775F0: .4byte 0x03002360
_080775F4:
movs r4, #0x87
lsls r4, r4, #3
adds r1, r2, r4
b _0807782E
_080775FC:
movs r5, #0x87
lsls r5, r5, #3
adds r1, r2, r5
b _08077AA0
_08077604:
movs r7, #0x87
lsls r7, r7, #3
adds r1, r2, r7
b _08077AA0
_0807760C:
bl CalculatePlayerPartyCount
ldr r1, _0807761C
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
b _08077AA0
.align 2, 0
_0807761C: .4byte 0x03002360
_08077620:
ldr r0, _08077640
ldrb r0, [r0]
cmp r0, #0
beq _08077634
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, #0
movs r1, #0
bl CreateWirelessStatusIndicatorSprite
_08077634:
ldr r1, _08077644
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _08077AA0
.align 2, 0
_08077640: .4byte 0x0300319C
_08077644: .4byte 0x03002360
_08077648:
movs r3, #0x87
lsls r3, r3, #3
adds r1, r2, r3
b _08077AA0
_08077650:
bl CalculateEnemyPartyCount
ldr r4, _08077768
ldr r0, [r4]
ldr r1, _0807776C
ldrb r1, [r1]
adds r0, #0x36
strb r1, [r0]
ldr r0, [r4]
ldr r1, _08077770
ldrb r1, [r1]
adds r0, #0x37
strb r1, [r0]
movs r0, #0
bl ClearWindowTilemap
movs r0, #0
bl sub_08079690
movs r0, #1
bl sub_08079690
movs r6, #0
ldr r0, [r4]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
bge _080776EC
mov r8, r4
ldr r7, _08077774
_0807768C:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _08077778
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x41
movs r2, #0
bl GetMonData
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r4, #0
movs r1, #0
bl GetMonData
ldrb r2, [r7]
lsls r2, r2, #0x13
movs r4, #0xe0
lsls r4, r4, #0xc
adds r2, r2, r4
asrs r2, r2, #0x10
ldrb r3, [r7, #1]
lsls r3, r3, #0x13
ldr r1, _0807777C
adds r3, r3, r1
asrs r3, r3, #0x10
movs r1, #1
str r1, [sp]
str r0, [sp, #4]
str r1, [sp, #8]
adds r0, r5, #0
ldr r1, _08077780
bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, #0x28
adds r1, r1, r6
strb r0, [r1]
adds r7, #2
adds r6, #1
ldr r0, [r2]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
blt _0807768C
_080776EC:
movs r6, #0
ldr r1, _08077768
ldr r0, [r1]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
blt _080776FC
b _08077A98
_080776FC:
ldr r0, _08077774
mov r8, r1
adds r7, r0, #0
adds r7, #0xc
_08077704:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _08077784
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x41
movs r2, #0
bl GetMonData
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r4, #0
movs r1, #0
bl GetMonData
ldrb r2, [r7]
lsls r2, r2, #0x13
movs r3, #0xe0
lsls r3, r3, #0xc
adds r2, r2, r3
asrs r2, r2, #0x10
ldrb r3, [r7, #1]
lsls r3, r3, #0x13
ldr r4, _0807777C
adds r3, r3, r4
asrs r3, r3, #0x10
movs r1, #1
str r1, [sp]
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
adds r0, r5, #0
ldr r1, _08077780
bl CreateMonIcon
mov r5, r8
ldr r1, [r5]
adds r1, #0x2e
adds r1, r1, r6
strb r0, [r1]
adds r7, #2
adds r6, #1
ldr r0, [r5]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
blt _08077704
b _08077A98
.align 2, 0
_08077768: .4byte 0x02031F3C
_0807776C: .4byte 0x0202418D
_08077770: .4byte 0x0202418E
_08077774: .4byte 0x08300A1C
_08077778: .4byte 0x02024190
_0807777C: .4byte 0xFFF40000
_08077780: .4byte 0x080D28B5
_08077784: .4byte 0x020243E8
_08077788:
bl LoadHeldItemIcons
ldr r0, _080777A8
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x36
adds r1, #0x28
movs r2, #0
bl sub_081B59EC
ldr r1, _080777AC
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
b _08077AA0
.align 2, 0
_080777A8: .4byte 0x02031F3C
_080777AC: .4byte 0x03002360
_080777B0:
ldr r0, _080777CC
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0x36
adds r1, #0x28
movs r2, #1
bl sub_081B59EC
ldr r1, _080777D0
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _08077AA0
.align 2, 0
_080777CC: .4byte 0x02031F3C
_080777D0: .4byte 0x03002360
_080777D4:
ldr r0, _08077840
ldr r0, [r0]
ldr r6, _08077844
ldr r1, [r6]
ldr r5, _08077848
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
bl GetMultiplayerId
lsls r0, r0, #0x18
movs r1, #0x80
lsls r1, r1, #0x11
eors r1, r0
lsrs r1, r1, #0x18
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807784C
adds r0, r0, r1
ldr r1, [r6, #0xc]
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
ldr r4, _08077850
ldr r0, [r4]
ldr r1, [r6, #0x18]
str r5, [sp]
movs r2, #0
movs r3, #0
bl sub_080C66A4
ldr r0, [r4, #4]
ldr r1, [r6, #0x1c]
movs r2, #0x18
bl sub_08079D3C
ldr r1, _08077854
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
_0807782E:
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, _08077858
ldr r0, [r0]
adds r0, #0xa8
strb r2, [r0]
b _08077ABE
.align 2, 0
_08077840: .4byte 0x03005AF0
_08077844: .4byte 0x02031E2C
_08077848: .4byte 0x0201C000
_0807784C: .4byte 0x020226A8
_08077850: .4byte 0x08300AFC
_08077854: .4byte 0x03002360
_08077858: .4byte 0x02031F3C
_0807785C:
bl sub_08079C28
lsls r0, r0, #0x18
cmp r0, #0
bne _08077868
b _08077ABE
_08077868:
ldr r1, _08077874
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
b _08077AA0
.align 2, 0
_08077874: .4byte 0x03002360
_08077878:
ldr r0, _08077918
ldr r0, [r0]
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0xe
movs r1, #0x4c
subs r1, r1, r0
movs r6, #0
add r5, sp, #0xc
lsls r4, r1, #0x10
_0807788E:
add r1, sp, #0xc
ldr r0, _0807791C
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldrh r0, [r5]
adds r0, r0, r6
strh r0, [r5]
asrs r1, r4, #0x10
add r0, sp, #0xc
movs r2, #8
movs r3, #1
bl CreateSprite
movs r7, #0x80
lsls r7, r7, #0xe
adds r4, r4, r7
adds r6, #1
cmp r6, #2
ble _0807788E
bl GetMultiplayerId
adds r1, r0, #0
movs r0, #1
eors r1, r0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
ldr r1, _08077920
adds r0, r0, r1
bl StringLength
lsls r0, r0, #0x10
lsrs r0, r0, #0xe
movs r1, #0xc4
subs r1, r1, r0
movs r6, #0
add r5, sp, #0xc
lsls r4, r1, #0x10
_080778E2:
add r1, sp, #0xc
ldr r0, _0807791C
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
adds r0, r6, #3
ldrh r1, [r5]
adds r0, r0, r1
strh r0, [r5]
asrs r1, r4, #0x10
add r0, sp, #0xc
movs r2, #8
movs r3, #1
bl CreateSprite
movs r2, #0x80
lsls r2, r2, #0xe
adds r4, r4, r2
adds r6, #1
cmp r6, #2
ble _080778E2
ldr r1, _08077924
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077AA0
.align 2, 0
_08077918: .4byte 0x03005AF0
_0807791C: .4byte 0x083008A4
_08077920: .4byte 0x020226A8
_08077924: .4byte 0x03002360
_08077928:
add r1, sp, #0xc
ldr r0, _08077994
ldm r0!, {r4, r5, r7}
stm r1!, {r4, r5, r7}
ldm r0!, {r2, r3, r4}
stm r1!, {r2, r3, r4}
add r1, sp, #0xc
adds r0, r1, #0
ldrh r0, [r0]
adds r0, #6
strh r0, [r1]
adds r0, r1, #0
movs r1, #0xe0
movs r2, #0x98
movs r3, #1
bl CreateSprite
movs r6, #0
add r4, sp, #0xc
movs r5, #0xc0
lsls r5, r5, #0xd
_08077952:
add r1, sp, #0xc
ldr r0, _08077994
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
ldm r0!, {r2, r3, r7}
stm r1!, {r2, r3, r7}
adds r0, r6, #7
ldrh r7, [r4]
adds r0, r0, r7
strh r0, [r4]
asrs r1, r5, #0x10
add r0, sp, #0xc
movs r2, #0x96
movs r3, #1
bl CreateSprite
movs r0, #0x80
lsls r0, r0, #0xe
adds r5, r5, r0
adds r6, #1
cmp r6, #5
ble _08077952
ldr r0, _08077998
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x35
ldrb r1, [r2]
adds r4, r0, #0
cmp r1, #5
bhi _080779A0
ldr r0, _0807799C
ldrb r0, [r0]
b _080779A6
.align 2, 0
_08077994: .4byte 0x083008A4
_08077998: .4byte 0x02031F3C
_0807799C: .4byte 0x0203CBEC
_080779A0:
ldr r0, _080779E4
ldrb r0, [r0]
adds r0, #6
_080779A6:
strb r0, [r2]
ldr r0, _080779E8
ldr r3, _080779EC
ldr r1, [r4]
adds r1, #0x35
ldrb r2, [r1]
lsls r2, r2, #1
adds r1, r2, r3
ldrb r1, [r1]
lsls r1, r1, #0x13
movs r5, #0x80
lsls r5, r5, #0xe
adds r1, r1, r5
asrs r1, r1, #0x10
adds r3, #1
adds r2, r2, r3
ldrb r2, [r2]
lsls r2, r2, #3
movs r3, #2
bl CreateSprite
ldr r1, [r4]
adds r1, #0x34
strb r0, [r1]
ldr r0, _080779F0
movs r7, #0x87
lsls r7, r7, #3
adds r0, r0, r7
movs r1, #0x10
strb r1, [r0]
b _08077ABE
.align 2, 0
_080779E4: .4byte 0x0203CBEC
_080779E8: .4byte 0x0830088C
_080779EC: .4byte 0x08300A1C
_080779F0: .4byte 0x03002360
_080779F4:
movs r0, #0
bl sub_08077C80
ldr r1, _08077A04
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
b _08077AA0
.align 2, 0
_08077A04: .4byte 0x03002360
_08077A08:
movs r0, #1
bl sub_08077C80
ldr r2, _08077A28
ldr r0, [r2]
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
strb r1, [r0, #1]
bl sub_08077D50
ldr r1, _08077A2C
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _08077AA0
.align 2, 0
_08077A28: .4byte 0x02031F3C
_08077A2C: .4byte 0x03002360
_08077A30:
ldr r2, _08077A64
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
movs r4, #1
rsbs r4, r4, #0
adds r0, r4, #0
movs r1, #0x10
movs r2, #0
bl BlendPalettes
movs r0, #0
str r0, [sp]
adds r0, r4, #0
movs r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r1, _08077A68
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _08077AA0
.align 2, 0
_08077A64: .4byte 0x02037C74
_08077A68: .4byte 0x03002360
_08077A6C:
movs r1, #0x82
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
movs r0, #2
bl sub_08077C80
ldr r1, _08077A88
movs r4, #0x87
lsls r4, r4, #3
adds r1, r1, r4
b _08077AA0
.align 2, 0
_08077A88: .4byte 0x03002360
_08077A8C:
movs r5, #0x87
lsls r5, r5, #3
adds r1, r2, r5
b _08077AA0
_08077A94:
bl sub_08079FB4
_08077A98:
ldr r1, _08077AA8
movs r7, #0x87
lsls r7, r7, #3
adds r1, r1, r7
_08077AA0:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08077ABE
.align 2, 0
_08077AA8: .4byte 0x03002360
_08077AAC:
ldr r0, _08077ADC
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08077ABE
ldr r0, _08077AE0
bl SetMainCallback2
_08077ABE:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #0x24
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08077ADC: .4byte 0x02037C74
_08077AE0: .4byte 0x08077C25
thumb_func_end sub_08077558
thumb_func_start sub_08077AE4
sub_08077AE4: @ 0x08077AE4
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08077AE4
thumb_func_start sub_08077AF8
sub_08077AF8: @ 0x08077AF8
push {r4, lr}
sub sp, #4
ldr r4, _08077B30
ldr r1, [r4]
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xf
bls _08077B28
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, [r4]
adds r0, #0x6f
movs r1, #0xa
strb r1, [r0]
_08077B28:
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08077B30: .4byte 0x02031F3C
thumb_func_end sub_08077AF8
thumb_func_start sub_08077B34
sub_08077B34: @ 0x08077B34
push {r4, lr}
ldr r0, _08077B6C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08077B8A
ldr r1, _08077B70
ldr r4, _08077B74
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x7e
ldrb r0, [r0]
strb r0, [r1, #1]
ldr r0, _08077B78
ldrb r0, [r0]
cmp r0, #0
beq _08077B7C
adds r1, r2, #0
adds r1, #0x6f
movs r0, #0x10
strb r0, [r1]
b _08077B8A
.align 2, 0
_08077B6C: .4byte 0x02037C74
_08077B70: .4byte 0x02031F38
_08077B74: .4byte 0x02031F3C
_08077B78: .4byte 0x0300319C
_08077B7C:
movs r0, #0x20
bl sub_0800A7B8
ldr r0, [r4]
adds r0, #0x6f
movs r1, #0xd
strb r1, [r0]
_08077B8A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_08077B34
thumb_func_start sub_08077B90
sub_08077B90: @ 0x08077B90
push {r4, r5, lr}
ldr r5, _08077BD0
ldr r0, _08077BD4
str r0, [r5, #8]
ldr r0, _08077BD8
ldrb r0, [r0]
cmp r0, #0
beq _08077BE8
bl sub_08010000
lsls r0, r0, #0x18
cmp r0, #0
beq _08077C0C
ldr r0, _08077BDC
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
ldr r0, _08077BE0
ldr r0, [r0]
bl Free
movs r0, #0
str r0, [r5]
bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08077BE4
bl SetMainCallback2
b _08077C0C
.align 2, 0
_08077BD0: .4byte 0x03002360
_08077BD4: .4byte 0x08076DB5
_08077BD8: .4byte 0x0300319C
_08077BDC: .4byte 0x02031E28
_08077BE0: .4byte 0x02031F3C
_08077BE4: .4byte 0x0807A8AD
_08077BE8:
ldr r0, _08077C14
ldrb r4, [r0]
cmp r4, #0
bne _08077C0C
ldr r0, _08077C18
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
ldr r0, _08077C1C
ldr r0, [r0]
bl Free
str r4, [r5]
ldr r0, _08077C20
bl SetMainCallback2
_08077C0C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08077C14: .4byte 0x030031C4
_08077C18: .4byte 0x02031E28
_08077C1C: .4byte 0x02031F3C
_08077C20: .4byte 0x0807A8AD
thumb_func_end sub_08077B90
thumb_func_start sub_08077C24
sub_08077C24: @ 0x08077C24
push {r4, lr}
bl sub_08078FC0
bl sub_08079AFC
movs r0, #0
bl sub_080790C8
movs r0, #1
bl sub_080790C8
ldr r4, _08077C7C
ldr r2, [r4]
ldrb r1, [r2]
adds r0, r1, #1
strb r0, [r2]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #0x18
bl SetGpuReg
ldr r2, [r4]
ldrb r1, [r2, #1]
adds r0, r1, #0
adds r0, #0xff
strb r0, [r2, #1]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #0x1c
bl SetGpuReg
bl RunTextPrintersAndIsPrinter0Active
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08077C7C: .4byte 0x02031F3C
thumb_func_end sub_08077C24
thumb_func_start sub_08077C80
sub_08077C80: @ 0x08077C80
push {r4, r5, lr}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #1
beq _08077CEC
cmp r4, #1
bgt _08077C96
cmp r4, #0
beq _08077C9C
b _08077D46
_08077C96:
cmp r4, #2
beq _08077D14
b _08077D46
_08077C9C:
ldr r0, _08077CDC
movs r1, #0
movs r2, #0x60
bl LoadPalette
ldr r1, _08077CE0
movs r2, #0x94
lsls r2, r2, #5
movs r0, #1
movs r3, #0
bl LoadBgTiles
ldr r1, _08077CE4
movs r0, #0x20
str r0, [sp]
movs r0, #0x14
str r0, [sp, #4]
str r4, [sp, #8]
movs r0, #1
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r1, _08077CE8
movs r2, #0x80
lsls r2, r2, #4
movs r0, #2
movs r3, #0
bl LoadBgTilemap
b _08077D46
.align 2, 0
_08077CDC: .4byte 0x082FD0CC
_08077CE0: .4byte 0x082FD14C
_08077CE4: .4byte 0x082FE3CC
_08077CE8: .4byte 0x082FEFC8
_08077CEC:
ldr r1, _08077D10
movs r2, #0x80
lsls r2, r2, #4
movs r0, #3
movs r3, #0
bl LoadBgTilemap
movs r0, #0
bl sub_0807987C
movs r0, #1
bl sub_0807987C
movs r0, #1
bl CopyBgTilemapBufferToVram
b _08077D46
.align 2, 0
_08077D10: .4byte 0x082FF7C8
_08077D14:
movs r5, #0x80
lsls r5, r5, #0x15
movs r4, #3
_08077D1A:
lsrs r0, r5, #0x18
movs r1, #0
bl SetGpuReg
movs r0, #0x80
lsls r0, r0, #0x12
adds r5, r5, r0
subs r4, #1
cmp r4, #0
bge _08077D1A
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #3
bl ShowBg
_08077D46:
add sp, #0xc
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08077C80
thumb_func_start sub_08077D50
sub_08077D50: @ 0x08077D50
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r3, #0
ldr r5, _08077DA0
mov r8, r5
ldr r0, _08077DA4
mov ip, r0
movs r1, #5
rsbs r1, r1, #0
mov sb, r1
movs r4, #6
movs r7, #1
movs r6, #0
_08077D6E:
mov r1, r8
ldr r0, [r1]
adds r1, r0, #0
adds r1, #0x36
ldrb r1, [r1]
cmp r3, r1
bge _08077DA8
adds r0, #0x28
adds r0, r0, r3
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
add r1, ip
adds r1, #0x3e
ldrb r2, [r1]
mov r0, sb
ands r0, r2
strb r0, [r1]
ldr r0, [r5]
adds r0, #0x38
adds r0, r0, r3
strb r7, [r0]
b _08077DAE
.align 2, 0
_08077DA0: .4byte 0x02031F3C
_08077DA4: .4byte 0x020205AC
_08077DA8:
adds r0, #0x38
adds r0, r0, r3
strb r6, [r0]
_08077DAE:
mov r1, r8
ldr r0, [r1]
adds r1, r0, #0
adds r1, #0x37
ldrb r1, [r1]
cmp r3, r1
bge _08077DDE
adds r0, #0x2e
adds r0, r0, r3
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
add r1, ip
adds r1, #0x3e
ldrb r2, [r1]
mov r0, sb
ands r0, r2
strb r0, [r1]
ldr r0, [r5]
adds r0, #0x38
adds r0, r0, r4
strb r7, [r0]
b _08077DE4
_08077DDE:
adds r0, #0x38
adds r0, r0, r4
strb r6, [r0]
_08077DE4:
adds r4, #1
adds r3, #1
cmp r3, #5
ble _08077D6E
ldr r0, [r5]
adds r0, #0x44
movs r1, #1
strb r1, [r0]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_08077D50
thumb_func_start Trade_Memcpy
Trade_Memcpy: @ 0x08077E00
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r3, #0
cmp r3, r2
bhs _08077E1A
_08077E0C:
adds r0, r5, r3
adds r1, r4, r3
ldrb r1, [r1]
strb r1, [r0]
adds r3, #1
cmp r3, r2
blo _08077E0C
_08077E1A:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end Trade_Memcpy
thumb_func_start shedinja_maker_maybe
shedinja_maker_maybe: @ 0x08077E20
push {r4, r5, lr}
bl GetMultiplayerId
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _08077E44
ldr r0, [r0]
adds r0, #0x69
ldrb r0, [r0]
cmp r0, #0x15
bls _08077E38
b _08078112
_08077E38:
lsls r0, r0, #2
ldr r1, _08077E48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08077E44: .4byte 0x02031F3C
_08077E48: .4byte 0x08077E4C
_08077E4C: @ jump table
.4byte _08077EA4 @ case 0
.4byte _08077ED0 @ case 1
.4byte _080780EC @ case 2
.4byte _08077EFC @ case 3
.4byte _08077F10 @ case 4
.4byte _08077F44 @ case 5
.4byte _080780EC @ case 6
.4byte _08077F60 @ case 7
.4byte _08077F74 @ case 8
.4byte _08077FA8 @ case 9
.4byte _080780EC @ case 10
.4byte _08077FC4 @ case 11
.4byte _08077FD8 @ case 12
.4byte _0807800C @ case 13
.4byte _080780EC @ case 14
.4byte _08078034 @ case 15
.4byte _08078048 @ case 16
.4byte _0807807C @ case 17
.4byte _080780EC @ case 18
.4byte _080780A4 @ case 19
.4byte _080780B8 @ case 20
.4byte _080780E8 @ case 21
_08077EA4:
ldr r0, _08077EC4
ldr r1, _08077EC8
movs r2, #0xc8
bl Trade_Memcpy
ldr r3, _08077ECC
ldr r1, [r3]
adds r1, #0x69
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, [r3]
adds r0, #0xa8
strb r2, [r0]
b _08078112
.align 2, 0
_08077EC4: .4byte 0x0202257C
_08077EC8: .4byte 0x02024190
_08077ECC: .4byte 0x02031F3C
_08077ED0:
bl sub_08076BC4
cmp r0, #0
bne _08077EDA
b _08078112
_08077EDA:
bl _GetBlockReceivedStatus
cmp r0, #0
bne _08077EEC
ldr r0, _08077EE8
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077EE8: .4byte 0x02031F3C
_08077EEC:
bl sub_08076C18
ldr r0, _08077EF8
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077EF8: .4byte 0x02031F3C
_08077EFC:
cmp r5, #0
bne _08077F06
movs r0, #1
bl sub_08076BB4
_08077F06:
ldr r0, _08077F0C
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077F0C: .4byte 0x02031F3C
_08077F10:
bl _GetBlockReceivedStatus
cmp r0, #3
beq _08077F1A
b _08078112
_08077F1A:
ldr r0, _08077F38
movs r2, #1
adds r1, r5, #0
eors r1, r2
lsls r1, r1, #8
ldr r2, _08077F3C
adds r1, r1, r2
movs r2, #0xc8
bl Trade_Memcpy
bl sub_08076C18
ldr r0, _08077F40
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077F38: .4byte 0x020243E8
_08077F3C: .4byte 0x0202207C
_08077F40: .4byte 0x02031F3C
_08077F44:
ldr r0, _08077F54
ldr r1, _08077F58
movs r2, #0xc8
bl Trade_Memcpy
ldr r0, _08077F5C
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077F54: .4byte 0x0202257C
_08077F58: .4byte 0x02024258
_08077F5C: .4byte 0x02031F3C
_08077F60:
cmp r5, #0
bne _08077F6A
movs r0, #1
bl sub_08076BB4
_08077F6A:
ldr r0, _08077F70
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077F70: .4byte 0x02031F3C
_08077F74:
bl _GetBlockReceivedStatus
cmp r0, #3
beq _08077F7E
b _08078112
_08077F7E:
ldr r0, _08077F9C
movs r2, #1
adds r1, r5, #0
eors r1, r2
lsls r1, r1, #8
ldr r2, _08077FA0
adds r1, r1, r2
movs r2, #0xc8
bl Trade_Memcpy
bl sub_08076C18
ldr r0, _08077FA4
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077F9C: .4byte 0x020244B0
_08077FA0: .4byte 0x0202207C
_08077FA4: .4byte 0x02031F3C
_08077FA8:
ldr r0, _08077FB8
ldr r1, _08077FBC
movs r2, #0xc8
bl Trade_Memcpy
ldr r0, _08077FC0
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077FB8: .4byte 0x0202257C
_08077FBC: .4byte 0x02024320
_08077FC0: .4byte 0x02031F3C
_08077FC4:
cmp r5, #0
bne _08077FCE
movs r0, #1
bl sub_08076BB4
_08077FCE:
ldr r0, _08077FD4
ldr r1, [r0]
b _0807810A
.align 2, 0
_08077FD4: .4byte 0x02031F3C
_08077FD8:
bl _GetBlockReceivedStatus
cmp r0, #3
beq _08077FE2
b _08078112
_08077FE2:
ldr r0, _08078000
movs r2, #1
adds r1, r5, #0
eors r1, r2
lsls r1, r1, #8
ldr r2, _08078004
adds r1, r1, r2
movs r2, #0xc8
bl Trade_Memcpy
bl sub_08076C18
ldr r0, _08078008
ldr r1, [r0]
b _0807810A
.align 2, 0
_08078000: .4byte 0x02024578
_08078004: .4byte 0x0202207C
_08078008: .4byte 0x02031F3C
_0807800C:
ldr r0, _08078024
ldr r1, _08078028
ldr r1, [r1]
ldr r2, _0807802C
adds r1, r1, r2
movs r2, #0xdc
bl Trade_Memcpy
ldr r0, _08078030
ldr r1, [r0]
b _0807810A
.align 2, 0
_08078024: .4byte 0x0202257C
_08078028: .4byte 0x03005AEC
_0807802C: .4byte 0x00002BE0
_08078030: .4byte 0x02031F3C
_08078034:
cmp r5, #0
bne _0807803E
movs r0, #3
bl sub_08076BB4
_0807803E:
ldr r0, _08078044
ldr r1, [r0]
b _0807810A
.align 2, 0
_08078044: .4byte 0x02031F3C
_08078048:
bl _GetBlockReceivedStatus
cmp r0, #3
bne _08078112
ldr r0, _08078070
movs r2, #1
adds r1, r5, #0
eors r1, r2
lsls r1, r1, #8
ldr r2, _08078074
adds r1, r1, r2
movs r2, #0xd8
bl Trade_Memcpy
bl sub_08076C18
ldr r0, _08078078
ldr r1, [r0]
b _0807810A
.align 2, 0
_08078070: .4byte 0x02031E60
_08078074: .4byte 0x0202207C
_08078078: .4byte 0x02031F3C
_0807807C:
ldr r0, _08078094
ldr r1, _08078098
ldr r1, [r1]
ldr r2, _0807809C
adds r1, r1, r2
movs r2, #0xb
bl Trade_Memcpy
ldr r0, _080780A0
ldr r1, [r0]
b _0807810A
.align 2, 0
_08078094: .4byte 0x0202257C
_08078098: .4byte 0x03005AEC
_0807809C: .4byte 0x000031A8
_080780A0: .4byte 0x02031F3C
_080780A4:
cmp r5, #0
bne _080780AE
movs r0, #4
bl sub_08076BB4
_080780AE:
ldr r0, _080780B4
ldr r1, [r0]
b _0807810A
.align 2, 0
_080780B4: .4byte 0x02031F3C
_080780B8:
bl _GetBlockReceivedStatus
cmp r0, #3
bne _08078112
ldr r4, _080780E0
ldr r0, [r4]
adds r0, #0xa9
movs r2, #1
adds r1, r5, #0
eors r1, r2
lsls r1, r1, #8
ldr r2, _080780E4
adds r1, r1, r2
movs r2, #0xb
bl Trade_Memcpy
bl sub_08076C18
ldr r1, [r4]
b _0807810A
.align 2, 0
_080780E0: .4byte 0x02031F3C
_080780E4: .4byte 0x0202207C
_080780E8:
movs r0, #1
b _08078114
_080780EC:
ldr r2, _0807811C
ldr r1, [r2]
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r2]
adds r1, r0, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #0xa
bls _08078112
movs r0, #0
strb r0, [r1]
ldr r1, [r2]
_0807810A:
adds r1, #0x69
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08078112:
movs r0, #0
_08078114:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0807811C: .4byte 0x02031F3C
thumb_func_end shedinja_maker_maybe
thumb_func_start sub_08078120
sub_08078120: @ 0x08078120
push {r4, r5, r6, lr}
sub sp, #0x34
ldr r5, _080781AC
ldr r0, [r5]
adds r0, #0x35
ldrb r0, [r0]
movs r4, #0x64
muls r0, r4, r0
ldr r1, _080781B0
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
add r6, sp, #0x1c
adds r0, r6, #0
mov r1, sp
bl StringCopy10
ldr r0, [r5]
adds r0, #0x7e
ldrb r0, [r0]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
muls r0, r4, r0
ldr r1, _080781B4
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
add r4, sp, #0x28
adds r0, r4, #0
mov r1, sp
bl StringCopy10
mov r0, sp
adds r1, r6, #0
bl StringCopy
ldr r1, _080781B8
mov r0, sp
bl StringAppend
mov r0, sp
adds r1, r4, #0
bl StringAppend
ldr r1, _080781BC
mov r0, sp
bl StringAppend
ldr r0, [r5]
adds r0, #0x72
ldrh r1, [r0]
lsls r1, r1, #5
ldr r0, _080781C0
adds r1, r1, r0
mov r0, sp
movs r2, #0x18
bl sub_08079D3C
add sp, #0x34
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080781AC: .4byte 0x02031F3C
_080781B0: .4byte 0x02024190
_080781B4: .4byte 0x020243E8
_080781B8: .4byte 0x08300AAE
_080781BC: .4byte 0x08300AB1
_080781C0: .4byte 0x06010000
thumb_func_end sub_08078120
thumb_func_start sub_080781C4
sub_080781C4: @ 0x080781C4
push {r4, lr}
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
movs r2, #1
adds r0, r4, #0
ands r0, r2
cmp r0, #0
beq _08078248
ldr r0, _080781EC
ldrh r1, [r0]
ldr r0, _080781F0
cmp r1, r0
beq _08078228
cmp r1, r0
bgt _080781F8
ldr r0, _080781F4
cmp r1, r0
beq _08078218
b _08078242
.align 2, 0
_080781EC: .4byte 0x0202207C
_080781F0: .4byte 0x0000BBBB
_080781F4: .4byte 0x0000AABB
_080781F8:
ldr r0, _0807820C
cmp r1, r0
beq _08078238
ldr r0, _08078210
cmp r1, r0
bne _08078242
ldr r0, _08078214
ldr r0, [r0]
adds r0, #0x78
b _0807823E
.align 2, 0
_0807820C: .4byte 0x0000BBCC
_08078210: .4byte 0x0000EEAA
_08078214: .4byte 0x02031F3C
_08078218:
ldr r0, _08078224
ldr r0, [r0]
adds r0, #0x78
strb r2, [r0]
b _08078242
.align 2, 0
_08078224: .4byte 0x02031F3C
_08078228:
ldr r0, _08078234
ldr r0, [r0]
adds r0, #0x7a
strb r2, [r0]
b _08078242
.align 2, 0
_08078234: .4byte 0x02031F3C
_08078238:
ldr r0, _08078270
ldr r0, [r0]
adds r0, #0x7a
_0807823E:
movs r1, #2
strb r1, [r0]
_08078242:
movs r0, #0
bl sub_08076C3C
_08078248:
movs r2, #2
adds r0, r4, #0
ands r0, r2
cmp r0, #0
beq _080782DA
ldr r3, _08078274
movs r1, #0x80
lsls r1, r1, #1
adds r0, r3, r1
ldrh r1, [r0]
ldr r0, _08078278
cmp r1, r0
beq _080782BC
cmp r1, r0
bgt _08078280
ldr r0, _0807827C
cmp r1, r0
beq _080782A0
b _080782D4
.align 2, 0
_08078270: .4byte 0x02031F3C
_08078274: .4byte 0x0202207C
_08078278: .4byte 0x0000BBBB
_0807827C: .4byte 0x0000AABB
_08078280:
ldr r0, _08078294
cmp r1, r0
beq _080782CC
ldr r0, _08078298
cmp r1, r0
bne _080782D4
ldr r0, _0807829C
ldr r0, [r0]
adds r0, #0x79
b _080782D2
.align 2, 0
_08078294: .4byte 0x0000BBCC
_08078298: .4byte 0x0000EEAA
_0807829C: .4byte 0x02031F3C
_080782A0:
ldr r2, _080782B8
ldr r1, [r2]
movs r4, #0x81
lsls r4, r4, #1
adds r0, r3, r4
ldrb r0, [r0]
adds r0, #6
adds r1, #0x7e
strb r0, [r1]
ldr r0, [r2]
adds r0, #0x79
b _080782C2
.align 2, 0
_080782B8: .4byte 0x02031F3C
_080782BC:
ldr r0, _080782C8
ldr r0, [r0]
adds r0, #0x7b
_080782C2:
movs r1, #1
strb r1, [r0]
b _080782D4
.align 2, 0
_080782C8: .4byte 0x02031F3C
_080782CC:
ldr r0, _080782E0
ldr r0, [r0]
adds r0, #0x7b
_080782D2:
strb r2, [r0]
_080782D4:
movs r0, #1
bl sub_08076C3C
_080782DA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080782E0: .4byte 0x02031F3C
thumb_func_end sub_080781C4
thumb_func_start sub_080782E4
sub_080782E4: @ 0x080782E4
push {r4, r5, lr}
sub sp, #4
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
movs r0, #1
ands r0, r5
cmp r0, #0
beq _080783C6
ldr r2, _08078310
ldrh r1, [r2]
ldr r0, _08078314
cmp r1, r0
beq _080783B0
cmp r1, r0
bgt _08078320
ldr r0, _08078318
cmp r1, r0
beq _08078390
ldr r0, _0807831C
cmp r1, r0
beq _0807835C
b _080783C0
.align 2, 0
_08078310: .4byte 0x0202207C
_08078314: .4byte 0x0000DDEE
_08078318: .4byte 0x0000CCDD
_0807831C: .4byte 0x0000DDDD
_08078320:
ldr r0, _08078330
cmp r1, r0
beq _08078334
adds r0, #0x11
cmp r1, r0
beq _08078358
b _080783C0
.align 2, 0
_08078330: .4byte 0x0000EEBB
_08078334:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
movs r0, #4
bl sub_08079BD4
ldr r0, _08078354
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0xb
b _080783BE
.align 2, 0
_08078354: .4byte 0x02031F3C
_08078358:
movs r0, #5
b _080783B2
_0807835C:
ldr r4, _0807838C
ldr r1, [r4]
ldrb r0, [r2, #2]
adds r0, #6
adds r1, #0x7e
strb r0, [r1]
movs r0, #0
bl rbox_fill_rectangle
ldr r0, [r4]
adds r0, #0x35
ldrb r0, [r0]
bl sub_08079090
ldr r0, [r4]
adds r0, #0x7e
ldrb r0, [r0]
bl sub_08079090
ldr r0, [r4]
adds r0, #0x6f
movs r1, #7
b _080783BE
.align 2, 0
_0807838C: .4byte 0x02031F3C
_08078390:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _080783AC
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0xa
b _080783BE
.align 2, 0
_080783AC: .4byte 0x02031F3C
_080783B0:
movs r0, #1
_080783B2:
bl sub_08079BD4
ldr r0, _080783DC
ldr r0, [r0]
adds r0, #0x6f
movs r1, #8
_080783BE:
strb r1, [r0]
_080783C0:
movs r0, #0
bl sub_08076C3C
_080783C6:
movs r0, #2
ands r0, r5
cmp r0, #0
beq _080783D4
movs r0, #1
bl sub_08076C3C
_080783D4:
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080783DC: .4byte 0x02031F3C
thumb_func_end sub_080782E4
thumb_func_start sub_080783E0
sub_080783E0: @ 0x080783E0
push {r4, r5, r6, lr}
sub sp, #4
ldr r6, _0807843C
ldr r2, [r6]
adds r1, r2, #0
adds r1, #0x78
ldrb r0, [r1]
cmp r0, #0
bne _080783F4
b _08078528
_080783F4:
adds r0, r2, #0
adds r0, #0x79
ldrb r0, [r0]
cmp r0, #0
bne _08078400
b _08078528
_08078400:
ldrh r1, [r1]
ldr r0, _08078440
cmp r1, r0
bne _08078448
adds r1, r2, #0
adds r1, #0x6f
movs r0, #6
strb r0, [r1]
ldr r2, [r6]
adds r1, r2, #0
adds r1, #0x80
movs r4, #0
ldr r0, _08078444
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x35
ldrb r1, [r0]
adds r0, #0x4d
strh r1, [r0]
movs r0, #5
movs r1, #0
bl sub_08079A80
ldr r0, [r6]
adds r2, r0, #0
adds r2, #0x79
strb r4, [r2]
adds r0, #0x78
strb r4, [r0]
b _08078528
.align 2, 0
_0807843C: .4byte 0x02031F3C
_08078440: .4byte 0x00000101
_08078444: .4byte 0x0000DDDD
_08078448:
ldr r0, _08078490
cmp r1, r0
bne _08078498
movs r0, #1
bl sub_08079BD4
ldr r1, [r6]
adds r2, r1, #0
adds r2, #0x80
movs r4, #0
movs r3, #0
ldr r0, _08078494
strh r0, [r2]
adds r1, #0x82
strh r3, [r1]
movs r0, #5
movs r1, #0
bl sub_08079A80
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x7b
strb r4, [r1]
adds r0, #0x7a
strb r4, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x79
strb r4, [r1]
adds r0, #0x78
strb r4, [r0]
ldr r0, [r6]
adds r0, #0x6f
movs r1, #8
b _08078526
.align 2, 0
_08078490: .4byte 0x00000201
_08078494: .4byte 0x0000EECC
_08078498:
movs r0, #0x81
lsls r0, r0, #1
cmp r1, r0
bne _080784E4
movs r0, #5
bl sub_08079BD4
ldr r1, [r6]
adds r2, r1, #0
adds r2, #0x80
movs r4, #0
movs r3, #0
ldr r0, _080784E0
strh r0, [r2]
adds r1, #0x82
strh r3, [r1]
movs r0, #5
movs r1, #0
bl sub_08079A80
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x7b
strb r4, [r1]
adds r0, #0x7a
strb r4, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x79
strb r4, [r1]
adds r0, #0x78
strb r4, [r0]
ldr r0, [r6]
adds r0, #0x6f
movs r1, #8
b _08078526
.align 2, 0
_080784E0: .4byte 0x0000DDEE
_080784E4:
ldr r0, _080785C8
cmp r1, r0
bne _08078528
adds r1, r2, #0
adds r1, #0x80
movs r5, #0
movs r4, #0
ldr r0, _080785CC
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x82
strh r4, [r0]
movs r0, #5
movs r1, #0
bl sub_08079A80
movs r0, #1
rsbs r0, r0, #0
str r4, [sp]
movs r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x79
strb r5, [r1]
adds r0, #0x78
strb r5, [r0]
ldr r0, [r6]
adds r0, #0x6f
movs r1, #0xb
_08078526:
strb r1, [r0]
_08078528:
ldr r5, _080785D0
ldr r3, [r5]
adds r1, r3, #0
adds r1, #0x7a
ldrb r0, [r1]
cmp r0, #0
beq _080785C0
adds r0, r3, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #0
beq _080785C0
ldrh r1, [r1]
ldr r0, _080785D4
cmp r1, r0
bne _08078576
adds r1, r3, #0
adds r1, #0x80
movs r4, #0
movs r2, #0
ldr r0, _080785D8
strh r0, [r1]
adds r0, r3, #0
adds r0, #0x82
strh r2, [r0]
movs r0, #5
movs r1, #0
bl sub_08079A80
ldr r0, [r5]
adds r0, #0x7a
strb r4, [r0]
ldr r0, [r5]
adds r0, #0x7b
strb r4, [r0]
ldr r0, [r5]
adds r0, #0x6f
movs r1, #9
strb r1, [r0]
_08078576:
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x7a
ldrb r0, [r0]
cmp r0, #2
beq _0807858C
adds r0, r1, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #2
bne _080785C0
_0807858C:
movs r0, #1
bl sub_08079BD4
ldr r1, [r5]
adds r2, r1, #0
adds r2, #0x80
movs r4, #0
movs r3, #0
ldr r0, _080785DC
strh r0, [r2]
adds r1, #0x82
strh r3, [r1]
movs r0, #5
movs r1, #0
bl sub_08079A80
ldr r0, [r5]
adds r0, #0x7a
strb r4, [r0]
ldr r0, [r5]
adds r0, #0x7b
strb r4, [r0]
ldr r0, [r5]
adds r0, #0x6f
movs r1, #8
strb r1, [r0]
_080785C0:
add sp, #4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_080785C8: .4byte 0x00000202
_080785CC: .4byte 0x0000EEBB
_080785D0: .4byte 0x02031F3C
_080785D4: .4byte 0x00000101
_080785D8: .4byte 0x0000CCDD
_080785DC: .4byte 0x0000DDEE
thumb_func_end sub_080783E0
thumb_func_start sub_080785E0
sub_080785E0: @ 0x080785E0
push {lr}
strh r1, [r0]
strh r2, [r0, #2]
movs r0, #5
movs r1, #0
bl sub_08079A80
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080785E0
thumb_func_start sub_080785F4
sub_080785F4: @ 0x080785F4
push {lr}
adds r3, r0, #0
adds r2, r1, #0
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
ldr r0, _08078614
ldr r0, [r0]
adds r0, #0x80
adds r1, r3, #0
bl sub_080785E0
pop {r0}
bx r0
.align 2, 0
_08078614: .4byte 0x02031F3C
thumb_func_end sub_080785F4
thumb_func_start sub_08078618
sub_08078618: @ 0x08078618
push {r4, lr}
bl GetMultiplayerId
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl _GetBlockReceivedStatus
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _08078640
cmp r4, #0
bne _0807863A
movs r0, #0
bl sub_080781C4
b _08078640
_0807863A:
adds r0, r4, #0
bl sub_080782E4
_08078640:
cmp r4, #0
bne _08078648
bl sub_080783E0
_08078648:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08078618
thumb_func_start sub_08078650
sub_08078650: @ 0x08078650
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r6, #0
movs r5, #0
ldr r2, _08078684
ldr r3, [r2]
ldr r4, _08078688
lsls r2, r1, #1
adds r2, r2, r1
lsls r2, r2, #1
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #3
adds r3, #0x38
adds r2, r2, r1
adds r2, r2, r4
_08078676:
ldrb r1, [r2]
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, #1
bne _0807868C
adds r6, r1, #0
b _08078694
.align 2, 0
_08078684: .4byte 0x02031F3C
_08078688: .4byte 0x083008E4
_0807868C:
adds r2, #1
adds r5, #1
cmp r5, #5
ble _08078676
_08078694:
adds r0, r6, #0
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_end sub_08078650
thumb_func_start TradeMenuMoveCursor
TradeMenuMoveCursor: @ 0x0807869C
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldrb r0, [r7]
bl sub_08078650
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0xc
bne _080786F4
ldr r5, _080786EC
ldr r0, [r5]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _080786F0
adds r0, r0, r4
movs r1, #1
bl StartSpriteAnim
ldr r2, [r5]
adds r2, #0x34
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xe8
strh r1, [r0, #0x20]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xa0
strh r1, [r0, #0x22]
b _0807873C
.align 2, 0
_080786EC: .4byte 0x02031F3C
_080786F0: .4byte 0x020205AC
_080786F4:
ldr r4, _08078750
ldr r0, [r4]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r5, _08078754
adds r0, r0, r5
movs r1, #0
bl StartSpriteAnim
ldr r4, [r4]
adds r4, #0x34
ldrb r0, [r4]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
ldr r2, _08078758
lsls r3, r6, #1
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, r0, #3
adds r0, #0x20
strh r0, [r1, #0x20]
ldrb r0, [r4]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
adds r2, #1
adds r3, r3, r2
ldrb r0, [r3]
lsls r0, r0, #3
strh r0, [r1, #0x22]
_0807873C:
ldrb r0, [r7]
cmp r0, r6
beq _08078748
movs r0, #5
bl PlaySE
_08078748:
strb r6, [r7]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08078750: .4byte 0x02031F3C
_08078754: .4byte 0x020205AC
_08078758: .4byte 0x08300A1C
thumb_func_end TradeMenuMoveCursor
thumb_func_start sub_0807875C
sub_0807875C: @ 0x0807875C
push {r4, lr}
movs r0, #0
bl sub_08079BD4
ldr r4, _08078788
ldr r0, [r4]
adds r0, #0x6f
movs r1, #0x64
strb r1, [r0]
bl GetMultiplayerId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _08078790
ldr r0, _0807878C
ldr r1, [r4]
adds r1, #0x35
ldrb r1, [r1]
bl sub_080785F4
b _08078798
.align 2, 0
_08078788: .4byte 0x02031F3C
_0807878C: .4byte 0x0000AABB
_08078790:
ldr r0, [r4]
adds r0, #0x78
movs r1, #1
strb r1, [r0]
_08078798:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807875C
thumb_func_start sub_080787A0
sub_080787A0: @ 0x080787A0
push {r4, r5, lr}
sub sp, #0xc
ldr r0, _080787C0
ldrh r1, [r0, #0x30]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080787C8
ldr r0, _080787C4
ldr r0, [r0]
adds r0, #0x35
movs r1, #0
bl TradeMenuMoveCursor
b _08078814
.align 2, 0
_080787C0: .4byte 0x03002360
_080787C4: .4byte 0x02031F3C
_080787C8:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080787E4
ldr r0, _080787E0
ldr r0, [r0]
adds r0, #0x35
movs r1, #1
bl TradeMenuMoveCursor
b _08078814
.align 2, 0
_080787E0: .4byte 0x02031F3C
_080787E4:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08078800
ldr r0, _080787FC
ldr r0, [r0]
adds r0, #0x35
movs r1, #2
bl TradeMenuMoveCursor
b _08078814
.align 2, 0
_080787FC: .4byte 0x02031F3C
_08078800:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08078814
ldr r0, _08078888
ldr r0, [r0]
adds r0, #0x35
movs r1, #3
bl TradeMenuMoveCursor
_08078814:
ldr r0, _0807888C
ldrh r1, [r0, #0x2e]
movs r5, #1
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _080788EA
movs r0, #5
bl PlaySE
ldr r4, _08078888
ldr r0, [r4]
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #5
bhi _08078894
movs r0, #1
movs r1, #1
movs r2, #0xe
bl DrawTextBorderOuter
movs r0, #1
movs r1, #0x11
bl FillWindowPixelBuffer
ldr r0, _08078890
str r0, [sp]
movs r0, #1
movs r1, #1
movs r2, #0x10
movs r3, #2
bl sub_08198964
movs r0, #0x10
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
movs r1, #1
movs r2, #0
movs r3, #2
bl sub_081984B0
movs r0, #1
bl PutWindowTilemap
movs r0, #1
movs r1, #3
bl CopyWindowToVram
ldr r0, [r4]
adds r0, #0x6f
movs r1, #1
strb r1, [r0]
b _080788EA
.align 2, 0
_08078888: .4byte 0x02031F3C
_0807888C: .4byte 0x03002360
_08078890: .4byte 0x08300B28
_08078894:
cmp r0, #0xb
bhi _080788B2
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, [r4]
adds r0, #0x6f
movs r1, #2
strb r1, [r0]
b _080788EA
_080788B2:
cmp r0, #0xc
bne _080788EA
ldr r0, _080788F4
str r5, [sp]
movs r1, #0xe
str r1, [sp, #4]
movs r1, #0
str r1, [sp, #8]
movs r1, #1
movs r2, #2
movs r3, #2
bl sub_08198C08
ldr r0, [r4]
adds r0, #0x6f
movs r1, #4
strb r1, [r0]
ldr r0, _080788F8
ldr r0, [r0, #0x10]
ldr r1, [r4]
adds r1, #0x72
ldrh r1, [r1]
lsls r1, r1, #5
ldr r2, _080788FC
adds r1, r1, r2
movs r2, #0x18
bl sub_08079D3C
_080788EA:
add sp, #0xc
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080788F4: .4byte 0x08300CAC
_080788F8: .4byte 0x08300AFC
_080788FC: .4byte 0x06010000
thumb_func_end sub_080787A0
thumb_func_start sub_08078900
sub_08078900: @ 0x08078900
push {lr}
bl sub_080799AC
ldr r3, _08078948
ldr r0, [r3]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r2, _0807894C
ldr r0, [r3]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
ldr r0, _08078950
ldr r0, [r0, #4]
ldr r1, [r3]
adds r1, #0x72
ldrh r1, [r1]
lsls r1, r1, #5
ldr r2, _08078954
adds r1, r1, r2
movs r2, #0x18
bl sub_08079D3C
pop {r0}
bx r0
.align 2, 0
_08078948: .4byte 0x02031F3C
_0807894C: .4byte 0x020205AC
_08078950: .4byte 0x08300AFC
_08078954: .4byte 0x06010000
thumb_func_end sub_08078900
thumb_func_start sub_08078958
sub_08078958: @ 0x08078958
push {lr}
sub sp, #4
bl Menu_ProcessInputNoWrap
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _0807897A
cmp r0, r1
ble _08078A32
cmp r0, #0
beq _08078986
cmp r0, #1
beq _080789A4
b _08078A32
_0807897A:
movs r0, #5
bl PlaySE
bl sub_08078900
b _08078A32
_08078986:
str r0, [sp]
adds r0, r1, #0
movs r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _080789A0
ldr r0, [r0]
adds r0, #0x6f
movs r1, #2
b _08078A30
.align 2, 0
_080789A0: .4byte 0x02031F3C
_080789A4:
ldr r0, _080789C4
ldr r1, _080789C8
ldrb r1, [r1]
ldr r2, _080789CC
ldr r2, [r2]
adds r2, #0x35
ldrb r2, [r2]
bl sub_0807A064
cmp r0, #5
bhi _08078A32
lsls r0, r0, #2
ldr r1, _080789D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080789C4: .4byte 0x02024190
_080789C8: .4byte 0x0202418D
_080789CC: .4byte 0x02031F3C
_080789D0: .4byte 0x080789D4
_080789D4: @ jump table
.4byte _080789EC @ case 0
.4byte _08078A14 @ case 1
.4byte _08078A1A @ case 2
.4byte _08078A20 @ case 3
.4byte _08078A1A @ case 4
.4byte _08078A20 @ case 5
_080789EC:
bl sub_0807875C
ldr r2, _08078A0C
ldr r0, _08078A10
ldr r0, [r0]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
b _08078A30
.align 2, 0
_08078A0C: .4byte 0x020205AC
_08078A10: .4byte 0x02031F3C
_08078A14:
movs r0, #3
movs r1, #3
b _08078A24
_08078A1A:
movs r0, #3
movs r1, #6
b _08078A24
_08078A20:
movs r0, #3
movs r1, #7
_08078A24:
bl sub_08079A80
ldr r0, _08078A38
ldr r0, [r0]
adds r0, #0x6f
movs r1, #8
_08078A30:
strb r1, [r0]
_08078A32:
add sp, #4
pop {r0}
bx r0
.align 2, 0
_08078A38: .4byte 0x02031F3C
thumb_func_end sub_08078958
thumb_func_start sub_08078A3C
sub_08078A3C: @ 0x08078A3C
push {lr}
ldr r0, _08078A60
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08078A52
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08078A5C
_08078A52:
movs r0, #5
bl PlaySE
bl sub_08078900
_08078A5C:
pop {r0}
bx r0
.align 2, 0
_08078A60: .4byte 0x03002360
thumb_func_end sub_08078A3C
thumb_func_start sub_08078A64
sub_08078A64: @ 0x08078A64
push {lr}
sub sp, #4
ldr r0, _08078A9C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08078ACC
ldr r0, _08078AA0
ldr r0, [r0]
adds r3, r0, #0
adds r3, #0x35
ldrb r2, [r3]
cmp r2, #5
bhi _08078AAC
ldr r1, _08078AA4
ldrb r2, [r3]
adds r0, #0x36
ldrb r3, [r0]
subs r3, #1
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
ldr r0, _08078AA8
str r0, [sp]
movs r0, #1
bl ShowPokemonSummaryScreen
b _08078AC8
.align 2, 0
_08078A9C: .4byte 0x02037C74
_08078AA0: .4byte 0x02031F3C
_08078AA4: .4byte 0x02024190
_08078AA8: .4byte 0x08077559
_08078AAC:
ldr r1, _08078AD4
subs r2, #6
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r0, #0x37
ldrb r3, [r0]
subs r3, #1
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
ldr r0, _08078AD8
str r0, [sp]
movs r0, #1
bl ShowPokemonSummaryScreen
_08078AC8:
bl FreeAllWindowBuffers
_08078ACC:
add sp, #4
pop {r0}
bx r0
.align 2, 0
_08078AD4: .4byte 0x020243E8
_08078AD8: .4byte 0x08077559
thumb_func_end sub_08078A64
thumb_func_start sub_08078ADC
sub_08078ADC: @ 0x08078ADC
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
lsls r3, r3, #0x18
lsrs r6, r3, #0x18
movs r5, #0
movs r3, #0
ldr r7, _08078B64
cmp r5, r1
bge _08078B0A
_08078AF6:
cmp r2, r3
beq _08078B04
adds r0, r4, r3
ldrb r0, [r0]
adds r0, r5, r0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
_08078B04:
adds r3, #1
cmp r3, r1
blt _08078AF6
_08078B0A:
adds r0, r6, #0
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r0, #0x64
muls r0, r6, r0
adds r7, r0, r7
adds r0, r7, #0
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
movs r0, #0xcd
lsls r0, r0, #1
cmp r4, r0
beq _08078B34
cmp r4, #0x97
bne _08078B40
_08078B34:
adds r0, r7, #0
movs r1, #0x50
bl GetMonData
cmp r0, #0
beq _08078B60
_08078B40:
bl IsNationalPokedexEnabled
cmp r0, #0
bne _08078B6C
ldr r0, _08078B68
ldr r0, [r0]
adds r0, #0x57
adds r0, r0, r6
ldrb r0, [r0]
cmp r0, #0
bne _08078B60
adds r0, r4, #0
bl IsSpeciesInHoennDex
cmp r0, #0
bne _08078B6C
_08078B60:
movs r0, #2
b _08078B74
.align 2, 0
_08078B64: .4byte 0x020243E8
_08078B68: .4byte 0x02031F3C
_08078B6C:
cmp r5, #0
beq _08078B72
movs r5, #1
_08078B72:
adds r0, r5, #0
_08078B74:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08078ADC
thumb_func_start sub_08078B7C
sub_08078B7C: @ 0x08078B7C
push {r4, r5, lr}
sub sp, #0xc
movs r2, #0
ldr r0, _08078BD4
ldr r1, [r0]
adds r3, r1, #0
adds r3, #0x36
adds r5, r0, #0
ldrb r0, [r3]
cmp r2, r0
bge _08078BA8
adds r4, r1, #0
adds r4, #0x45
_08078B96:
mov r1, sp
adds r0, r1, r2
adds r1, r4, r2
ldrb r1, [r1]
strb r1, [r0]
adds r2, #1
ldrb r0, [r3]
cmp r2, r0
blt _08078B96
_08078BA8:
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x36
ldrb r1, [r1]
adds r2, r0, #0
adds r2, #0x35
ldrb r2, [r2]
adds r0, #0x7e
ldrb r3, [r0]
mov r0, sp
bl sub_08078ADC
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _08078BF0
cmp r0, #1
bgt _08078BD8
cmp r0, #0
beq _08078BDE
b _08078C14
.align 2, 0
_08078BD4: .4byte 0x02031F3C
_08078BD8:
cmp r0, #2
beq _08078C08
b _08078C14
_08078BDE:
movs r0, #3
movs r1, #3
bl sub_08079A80
ldr r0, _08078BEC
b _08078BFA
.align 2, 0
_08078BEC: .4byte 0x0000BBCC
_08078BF0:
movs r0, #3
movs r1, #1
bl sub_08079A80
ldr r0, _08078C04
_08078BFA:
movs r1, #0
bl sub_080785F4
b _08078C14
.align 2, 0
_08078C04: .4byte 0x0000BBBB
_08078C08:
movs r0, #3
movs r1, #8
bl sub_08079A80
movs r0, #1
b _08078C16
_08078C14:
movs r0, #0
_08078C16:
add sp, #0xc
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08078B7C
thumb_func_start sub_08078C20
sub_08078C20: @ 0x08078C20
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _08078C42
cmp r1, #0
bgt _08078C3C
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _08078C70
b _08078C98
_08078C3C:
cmp r1, #1
beq _08078C70
b _08078C98
_08078C42:
bl sub_08078B7C
cmp r0, #0
bne _08078C58
ldr r0, _08078C54
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0x64
b _08078C60
.align 2, 0
_08078C54: .4byte 0x02031F3C
_08078C58:
ldr r0, _08078C6C
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0x11
_08078C60:
strb r1, [r0]
movs r0, #0x11
bl PutWindowTilemap
b _08078C98
.align 2, 0
_08078C6C: .4byte 0x02031F3C
_08078C70:
movs r0, #3
movs r1, #1
bl sub_08079A80
bl sub_08076BC4
cmp r0, #0
beq _08078C88
ldr r0, _08078C9C
movs r1, #0
bl sub_080785F4
_08078C88:
ldr r0, _08078CA0
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0x64
strb r1, [r0]
movs r0, #0x11
bl PutWindowTilemap
_08078C98:
pop {r0}
bx r0
.align 2, 0
_08078C9C: .4byte 0x0000BBCC
_08078CA0: .4byte 0x02031F3C
thumb_func_end sub_08078C20
thumb_func_start sub_08078CA4
sub_08078CA4: @ 0x08078CA4
push {r4, r5, r6, lr}
movs r5, #0
ldr r0, _08078CE8
ldr r0, [r0]
adds r0, #0x37
ldrb r0, [r0]
subs r0, #4
cmp r5, r0
bge _08078CE0
movs r6, #0xc0
lsls r6, r6, #0x14
_08078CBA:
lsrs r4, r6, #0x18
adds r0, r4, #0
bl PutWindowTilemap
adds r0, r4, #0
movs r1, #1
bl CopyWindowToVram
movs r0, #0x80
lsls r0, r0, #0x11
adds r6, r6, r0
adds r5, #1
ldr r0, _08078CE8
ldr r0, [r0]
adds r0, #0x37
ldrb r0, [r0]
subs r0, #4
cmp r5, r0
blt _08078CBA
_08078CE0:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08078CE8: .4byte 0x02031F3C
thumb_func_end sub_08078CA4
thumb_func_start sub_08078CEC
sub_08078CEC: @ 0x08078CEC
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _08078D0E
cmp r1, #0
bgt _08078D08
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _08078D54
b _08078D5E
_08078D08:
cmp r1, #1
beq _08078D54
b _08078D5E
_08078D0E:
movs r0, #4
bl sub_08079BD4
ldr r0, _08078D48
movs r1, #0
bl sub_080785F4
ldr r2, _08078D4C
ldr r3, _08078D50
ldr r0, [r3]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
ldr r0, [r3]
adds r0, #0x6f
movs r1, #0x64
strb r1, [r0]
bl sub_08078CA4
b _08078D5E
.align 2, 0
_08078D48: .4byte 0x0000EEAA
_08078D4C: .4byte 0x020205AC
_08078D50: .4byte 0x02031F3C
_08078D54:
movs r0, #5
bl PlaySE
bl sub_08078900
_08078D5E:
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08078CEC
thumb_func_start sub_08078D64
sub_08078D64: @ 0x08078D64
push {r4, lr}
bl GetMultiplayerId
lsls r0, r0, #0x18
cmp r0, #0
bne _08078D8C
movs r0, #0
bl rbox_fill_rectangle
ldr r4, _08078D9C
ldr r0, [r4]
adds r0, #0x35
ldrb r0, [r0]
bl sub_08079090
ldr r0, [r4]
adds r0, #0x7e
ldrb r0, [r0]
bl sub_08079090
_08078D8C:
ldr r0, _08078D9C
ldr r0, [r0]
adds r0, #0x6f
movs r1, #7
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078D9C: .4byte 0x02031F3C
thumb_func_end sub_08078D64
thumb_func_start sub_08078DA0
sub_08078DA0: @ 0x08078DA0
push {r4, lr}
ldr r4, _08078DC4
ldr r0, [r4]
adds r0, #0x74
ldrh r1, [r0]
ldr r0, _08078DC8
cmp r1, r0
bne _08078DBC
bl sub_08078120
ldr r0, [r4]
adds r0, #0x6f
movs r1, #0xe
strb r1, [r0]
_08078DBC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078DC4: .4byte 0x02031F3C
_08078DC8: .4byte 0x00000505
thumb_func_end sub_08078DA0
thumb_func_start Wait2SecondsAndCreateYesNoMenu
Wait2SecondsAndCreateYesNoMenu: @ 0x08078DCC
push {r4, r5, lr}
sub sp, #0xc
ldr r4, _08078E14
ldr r1, [r4]
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
movs r5, #0
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x78
bls _08078E0C
ldr r0, _08078E18
movs r1, #1
str r1, [sp]
movs r1, #0xe
str r1, [sp, #4]
str r5, [sp, #8]
movs r1, #1
movs r2, #2
movs r3, #2
bl sub_08198C08
ldr r0, [r4]
adds r0, #0xa8
strb r5, [r0]
ldr r0, [r4]
adds r0, #0x6f
movs r1, #3
strb r1, [r0]
_08078E0C:
add sp, #0xc
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08078E14: .4byte 0x02031F3C
_08078E18: .4byte 0x08300CAC
thumb_func_end Wait2SecondsAndCreateYesNoMenu
thumb_func_start sub_08078E1C
sub_08078E1C: @ 0x08078E1C
push {r4, r5, r6, lr}
ldr r0, _08078E98
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08078E90
movs r0, #5
bl PlaySE
movs r0, #0
bl rbox_fill_rectangle
movs r0, #1
bl rbox_fill_rectangle
movs r6, #0
movs r5, #0xe0
lsls r5, r5, #0x14
_08078E42:
lsrs r4, r5, #0x18
adds r0, r4, #0
movs r1, #0
bl FillWindowPixelBuffer
adds r0, r4, #0
bl rbox_fill_rectangle
movs r0, #0x80
lsls r0, r0, #0x11
adds r5, r5, r0
adds r6, #1
cmp r6, #3
ble _08078E42
movs r0, #0
bl sub_080799C0
movs r0, #1
bl sub_080799C0
ldr r2, _08078E9C
ldr r0, [r2]
adds r0, #0x6f
movs r1, #0
strb r1, [r0]
ldr r3, _08078EA0
ldr r0, [r2]
adds r0, #0x34
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
_08078E90:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08078E98: .4byte 0x03002360
_08078E9C: .4byte 0x02031F3C
_08078EA0: .4byte 0x020205AC
thumb_func_end sub_08078E1C
thumb_func_start sub_08078EA4
sub_08078EA4: @ 0x08078EA4
push {lr}
ldr r0, _08078EC0
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08078ED8
ldr r0, _08078EC4
ldrb r0, [r0]
cmp r0, #0
beq _08078EC8
bl sub_0800A8D4
b _08078ECE
.align 2, 0
_08078EC0: .4byte 0x02037C74
_08078EC4: .4byte 0x0300319C
_08078EC8:
movs r0, #0xc
bl sub_0800A7B8
_08078ECE:
ldr r0, _08078EDC
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0xc
strb r1, [r0]
_08078ED8:
pop {r0}
bx r0
.align 2, 0
_08078EDC: .4byte 0x02031F3C
thumb_func_end sub_08078EA4
thumb_func_start sub_08078EE0
sub_08078EE0: @ 0x08078EE0
push {lr}
ldr r0, _08078F1C
ldrb r0, [r0]
cmp r0, #0
beq _08078F2C
bl sub_08076BC4
cmp r0, #0
beq _08078F4E
bl sub_08079AD4
cmp r0, #0
bne _08078F4E
ldr r0, _08078F20
ldr r0, [r0]
bl Free
ldr r0, _08078F24
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08078F28
bl SetMainCallback2
b _08078F4E
.align 2, 0
_08078F1C: .4byte 0x0300319C
_08078F20: .4byte 0x02031E28
_08078F24: .4byte 0x02031F3C
_08078F28: .4byte 0x08085AA9
_08078F2C:
ldr r0, _08078F54
ldrb r0, [r0]
cmp r0, #0
bne _08078F4E
ldr r0, _08078F58
ldr r0, [r0]
bl Free
ldr r0, _08078F5C
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
ldr r0, _08078F60
bl SetMainCallback2
_08078F4E:
pop {r0}
bx r0
.align 2, 0
_08078F54: .4byte 0x030031C4
_08078F58: .4byte 0x02031E28
_08078F5C: .4byte 0x02031F3C
_08078F60: .4byte 0x08085AA9
thumb_func_end sub_08078EE0
thumb_func_start sub_08078F64
sub_08078F64: @ 0x08078F64
push {lr}
movs r0, #0
bl sub_0800FF8C
lsls r0, r0, #0x18
cmp r0, #0
bne _08078F88
bl sub_08079AD4
cmp r0, #0
bne _08078F88
bl sub_0800A8D4
ldr r0, _08078F8C
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0xd
strb r1, [r0]
_08078F88:
pop {r0}
bx r0
.align 2, 0
_08078F8C: .4byte 0x02031F3C
thumb_func_end sub_08078F64
thumb_func_start sub_08078F90
sub_08078F90: @ 0x08078F90
push {lr}
ldr r0, _08078FB4
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08078FB0
ldr r0, _08078FB8
movs r1, #0
bl sub_080785F4
ldr r0, _08078FBC
ldr r0, [r0]
adds r0, #0x6f
movs r1, #0x64
strb r1, [r0]
_08078FB0:
pop {r0}
bx r0
.align 2, 0
_08078FB4: .4byte 0x03002360
_08078FB8: .4byte 0x0000BBCC
_08078FBC: .4byte 0x02031F3C
thumb_func_end sub_08078F90
thumb_func_start sub_08078FC0
sub_08078FC0: @ 0x08078FC0
push {lr}
ldr r0, _08078FD8
ldr r0, [r0]
adds r0, #0x6f
ldrb r0, [r0]
cmp r0, #0x11
bhi _0807908C
lsls r0, r0, #2
ldr r1, _08078FDC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078FD8: .4byte 0x02031F3C
_08078FDC: .4byte 0x08078FE0
_08078FE0: @ jump table
.4byte _08079028 @ case 0
.4byte _0807902E @ case 1
.4byte _08079034 @ case 2
.4byte _0807903A @ case 3
.4byte _08079040 @ case 4
.4byte _0807908C @ case 5
.4byte _08079046 @ case 6
.4byte _0807904C @ case 7
.4byte _08079052 @ case 8
.4byte _08079058 @ case 9
.4byte _0807905E @ case 10
.4byte _08079064 @ case 11
.4byte _0807906A @ case 12
.4byte _08079070 @ case 13
.4byte _08079076 @ case 14
.4byte _0807907C @ case 15
.4byte _08079082 @ case 16
.4byte _08079088 @ case 17
_08079028:
bl sub_080787A0
b _0807908C
_0807902E:
bl sub_08078958
b _0807908C
_08079034:
bl sub_08078A64
b _0807908C
_0807903A:
bl sub_08078C20
b _0807908C
_08079040:
bl sub_08078CEC
b _0807908C
_08079046:
bl sub_08078D64
b _0807908C
_0807904C:
bl sub_08078DA0
b _0807908C
_08079052:
bl sub_08078E1C
b _0807908C
_08079058:
bl sub_08077AF8
b _0807908C
_0807905E:
bl sub_08077B34
b _0807908C
_08079064:
bl sub_08078EA4
b _0807908C
_0807906A:
bl sub_08078EE0
b _0807908C
_08079070:
bl sub_08077B90
b _0807908C
_08079076:
bl Wait2SecondsAndCreateYesNoMenu
b _0807908C
_0807907C:
bl sub_08078A3C
b _0807908C
_08079082:
bl sub_08078F64
b _0807908C
_08079088:
bl sub_08078F90
_0807908C:
pop {r0}
bx r0
thumb_func_end sub_08078FC0
thumb_func_start sub_08079090
sub_08079090: @ 0x08079090
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
adds r0, r4, #0
movs r1, #6
bl __udivsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
ldr r3, _080790C4
ldr r0, [r3]
adds r0, #0x74
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne _080790BC
movs r0, #1
strb r0, [r1]
ldr r0, [r3]
adds r0, #0x76
adds r0, r0, r2
strb r4, [r0]
_080790BC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080790C4: .4byte 0x02031F3C
thumb_func_end sub_08079090
thumb_func_start sub_080790C8
sub_080790C8: @ 0x080790C8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x5c
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r0, _08079114
ldr r4, [r0]
adds r0, r4, #0
adds r0, #0x76
adds r0, r0, r7
ldrb r0, [r0]
movs r1, #1
str r1, [sp, #0x50]
cmp r0, #5
bhi _080790F0
movs r2, #0
str r2, [sp, #0x50]
_080790F0:
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
adds r0, r4, #0
adds r0, #0x74
adds r3, r0, r7
ldrb r0, [r3]
cmp r0, #2
bne _0807910A
b _080792A0
_0807910A:
cmp r0, #2
bgt _08079118
cmp r0, #1
beq _08079126
b _08079454
.align 2, 0
_08079114: .4byte 0x02031F3C
_08079118:
cmp r0, #3
bne _0807911E
b _080792D8
_0807911E:
cmp r0, #4
bne _08079124
b _0807941C
_08079124:
b _08079454
_08079126:
movs r5, #0
adds r1, r4, #0
adds r1, #0x36
adds r1, r1, r7
ldr r0, [sp, #0x50]
lsls r0, r0, #1
mov r8, r0
lsls r6, r7, #1
lsls r2, r7, #4
str r2, [sp, #0x58]
movs r0, #0
ldrb r1, [r1]
cmp r0, r1
bhs _0807917C
ldr r0, _0807928C
mov sb, r0
ldr r4, _08079290
ldr r0, [sp, #0x50]
add r0, r8
lsls r2, r0, #1
movs r3, #4
_08079150:
ldr r0, [r4]
adds r1, r5, r2
adds r0, #0x28
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
add r0, sb
adds r0, #0x3e
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, [r4]
adds r0, #0x36
adds r0, r0, r7
ldrb r0, [r0]
cmp r5, r0
blo _08079150
_0807917C:
movs r5, #0
adds r0, r6, r7
lsls r0, r0, #1
adds r4, r0, #2
_08079184:
lsls r0, r5, #0x18
asrs r0, r0, #0x18
adds r0, r0, r4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
bl ClearWindowTilemap
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #5
bls _08079184
ldr r1, _08079290
mov sb, r1
ldr r0, [r1]
ldr r6, [sp, #0x50]
add r6, r8
lsls r3, r6, #1
add sl, r3
adds r0, #0x28
add r0, sl
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r2, _0807928C
adds r0, r0, r2
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
mov r0, sb
ldr r4, [r0]
adds r4, #0x28
add r4, sl
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807928C
adds r0, r0, r1
movs r1, #0x14
strh r1, [r0, #0x2e]
ldrb r0, [r4]
lsls r2, r0, #4
adds r2, r2, r0
lsls r2, r2, #2
ldr r0, _0807928C
adds r2, r2, r0
ldr r5, _08079294
lsls r6, r6, #2
adds r0, r6, r5
ldrb r0, [r0]
adds r3, #1
lsls r3, r3, #1
adds r3, r3, r5
ldrb r1, [r3]
adds r0, r0, r1
asrs r0, r0, #1
lsls r0, r0, #3
adds r0, #0xe
strh r0, [r2, #0x32]
ldrb r0, [r4]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
ldr r2, _0807928C
adds r1, r1, r2
adds r5, #1
adds r6, r6, r5
ldrb r0, [r6]
lsls r0, r0, #3
subs r0, #0xc
strh r0, [r1, #0x36]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldr r1, _08079298
bl StoreSpriteCallbackInData6
mov r0, sb
ldr r1, [r0]
adds r1, #0x74
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
mov r1, sb
ldr r0, [r1]
adds r0, #0x28
add r0, sl
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r2, _0807928C
adds r0, r0, r2
bl sub_080A66B4
ldr r1, _0807929C
ldr r0, [sp, #0x58]
subs r2, r0, r7
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #0xf
str r0, [sp]
movs r0, #0x11
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
movs r3, #0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, #1
bl CopyBgTilemapBufferToVram
movs r0, #0
bl CopyBgTilemapBufferToVram
ldr r1, [sp, #0x50]
cmp r1, #0
beq _08079284
b _08079454
_08079284:
bl sub_080799AC
b _08079454
.align 2, 0
_0807928C: .4byte 0x020205AC
_08079290: .4byte 0x02031F3C
_08079294: .4byte 0x08300A1C
_08079298: .4byte 0x080D28B5
_0807929C: .4byte 0x082FEDCA
_080792A0:
ldr r2, _080792D0
ldr r1, [sp, #0x50]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
add r0, sl
adds r1, r4, #0
adds r1, #0x28
adds r1, r1, r0
ldrb r1, [r1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _080792D4
cmp r1, r0
beq _080792C8
b _08079454
_080792C8:
movs r0, #3
strb r0, [r3]
b _08079454
.align 2, 0
_080792D0: .4byte 0x020205AC
_080792D4: .4byte 0x080D28B5
_080792D8:
ldr r1, _08079404
ldr r0, [sp, #0x50]
lsls r2, r0, #4
subs r2, r2, r0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #0xf
str r0, [sp]
movs r0, #0x11
str r0, [sp, #4]
movs r0, #0
mov sb, r0
str r0, [sp, #8]
movs r0, #1
movs r3, #0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, #1
bl CopyBgTilemapBufferToVram
ldr r6, _08079408
ldr r1, _0807940C
ldr r4, [r1]
ldr r2, [sp, #0x50]
lsls r3, r2, #1
adds r3, r3, r2
lsls r1, r3, #1
mov r2, sl
adds r0, r2, r1
adds r4, #0x28
adds r4, r4, r0
ldrb r0, [r4]
lsls r2, r0, #4
adds r2, r2, r0
lsls r2, r2, #2
adds r2, r2, r6
ldr r5, _08079410
lsls r3, r3, #2
adds r0, r3, r5
ldrb r0, [r0]
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r5
ldrb r1, [r1]
adds r0, r0, r1
asrs r0, r0, #1
lsls r0, r0, #3
adds r0, #0xe
strh r0, [r2, #0x20]
ldrb r0, [r4]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
adds r5, #1
adds r3, r3, r5
ldrb r0, [r3]
lsls r0, r0, #3
subs r0, #0xc
strh r0, [r1, #0x22]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
mov r1, sb
strh r1, [r0, #0x24]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
mov r2, sb
strh r2, [r0, #0x26]
add r0, sp, #0x14
ldr r1, [sp, #0x50]
mov r2, sl
bl sub_0807946C
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r4, r7, #1
adds r5, r4, #0
adds r5, #0xe
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldr r6, _08079414
str r6, [sp]
mov r0, sb
str r0, [sp, #4]
add r1, sp, #0x14
str r1, [sp, #8]
adds r0, r5, #0
movs r1, #1
movs r2, #0
movs r3, #0
bl AddTextPrinterParameterized3
mov r2, sp
adds r2, #0x28
str r2, [sp, #0x54]
adds r0, r2, #0
ldr r1, [sp, #0x50]
mov r2, sl
bl sub_08079564
adds r4, #0xf
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
str r6, [sp]
mov r0, sb
str r0, [sp, #4]
ldr r0, _08079418
str r0, [sp, #8]
adds r0, r4, #0
movs r1, #1
movs r2, #0
movs r3, #0
bl AddTextPrinterParameterized3
mov r1, sb
str r1, [sp]
str r1, [sp, #4]
str r6, [sp, #8]
str r1, [sp, #0xc]
ldr r2, [sp, #0x54]
str r2, [sp, #0x10]
adds r0, r4, #0
movs r1, #1
movs r2, #0x18
movs r3, #0
bl AddTextPrinterParameterized4
adds r0, r5, #0
bl PutWindowTilemap
adds r0, r5, #0
movs r1, #3
bl CopyWindowToVram
adds r0, r4, #0
bl PutWindowTilemap
adds r0, r4, #0
movs r1, #3
bl CopyWindowToVram
ldr r0, _0807940C
ldr r1, [r0]
b _0807944A
.align 2, 0
_08079404: .4byte 0x082FEBCC
_08079408: .4byte 0x020205AC
_0807940C: .4byte 0x02031F3C
_08079410: .4byte 0x08300A1C
_08079414: .4byte 0x08300C00
_08079418: .4byte 0x08300A9B
_0807941C:
ldr r0, _08079464
lsls r1, r7, #1
adds r4, r1, r0
ldrb r2, [r4]
adds r2, #4
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r0, #1
adds r1, r1, r0
ldrb r3, [r1]
adds r3, #1
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
ldrb r0, [r4]
str r0, [sp]
ldrb r0, [r1]
str r0, [sp, #4]
adds r0, r7, #0
mov r1, sl
bl sub_08079740
ldr r2, _08079468
ldr r1, [r2]
_0807944A:
adds r1, #0x74
adds r1, r1, r7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_08079454:
add sp, #0x5c
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08079464: .4byte 0x08300D40
_08079468: .4byte 0x02031F3C
thumb_func_end sub_080790C8
thumb_func_start sub_0807946C
sub_0807946C: @ 0x0807946C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
adds r5, r0, #0
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
lsls r2, r2, #0x18
lsrs r6, r2, #0x18
cmp r7, #0
bne _08079494
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _08079490
b _0807949C
.align 2, 0
_08079490: .4byte 0x02024190
_08079494:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _0807952C
_0807949C:
adds r4, r4, r0
adds r0, r4, #0
movs r1, #2
mov r2, sp
bl GetMonData
adds r0, r5, #0
mov r1, sp
bl StringCopy10
adds r0, r4, #0
bl GetMonGender
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
adds r0, r4, #0
movs r1, #0x38
bl GetMonData
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
ldr r0, _08079530
mov sl, r0
ldr r4, [r0]
adds r0, r6, #0
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r7, #1
adds r1, r1, r7
lsls r1, r1, #1
adds r6, r0, r1
adds r4, #0x51
adds r4, r4, r6
ldrb r0, [r4]
cmp r0, #0
bne _080794F6
adds r0, r5, #0
mov r1, r8
bl AppendGenderSymbol
_080794F6:
ldr r1, _08079534
adds r0, r5, #0
bl StringAppend
mov r1, sl
ldr r0, [r1]
adds r0, #0x51
adds r0, r0, r6
ldrb r0, [r0]
cmp r0, #0
bne _0807953C
ldr r1, _08079538
adds r0, r5, #0
bl StringAppend
mov r0, sp
mov r1, sb
movs r2, #0
movs r3, #3
bl ConvertIntToDecimalStringN
adds r0, r5, #0
mov r1, sp
bl StringAppend
b _08079544
.align 2, 0
_0807952C: .4byte 0x020243E8
_08079530: .4byte 0x02031F3C
_08079534: .4byte 0x08300AA0
_08079538: .4byte 0x08300AA2
_0807953C:
ldr r1, _08079560
adds r0, r5, #0
bl StringAppend
_08079544:
adds r0, r5, #0
bl StringLength
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_08079560: .4byte 0x08300AA5
thumb_func_end sub_0807946C
thumb_func_start sub_08079564
sub_08079564: @ 0x08079564
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
adds r6, r0, #0
lsls r1, r1, #0x18
lsrs r7, r1, #0x18
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldr r0, _080795AC
ldr r1, [r0]
lsls r0, r7, #1
adds r0, r0, r7
lsls r0, r0, #1
adds r0, r2, r0
adds r1, #0x51
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0
bne _0807961C
movs r4, #0
movs r0, #0x64
adds r5, r2, #0
muls r5, r0, r5
ldr r0, _080795B0
mov sb, r0
ldr r2, _080795B4
mov r8, r2
_0807959E:
cmp r7, #0
bne _080795B8
adds r1, r4, #0
adds r1, #0xd
mov r2, sb
b _080795BE
.align 2, 0
_080795AC: .4byte 0x02031F3C
_080795B0: .4byte 0x02024190
_080795B4: .4byte 0x020243E8
_080795B8:
adds r1, r4, #0
adds r1, #0xd
mov r2, r8
_080795BE:
adds r0, r5, r2
movs r2, #0
bl GetMonData
lsls r1, r4, #1
add r1, sp
strh r0, [r1]
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #3
bls _0807959E
ldr r1, _08079610
adds r0, r6, #0
bl StringCopy
movs r4, #0
_080795E0:
lsls r0, r4, #1
mov r2, sp
adds r1, r2, r0
ldrh r0, [r1]
cmp r0, #0
beq _080795FA
adds r1, r0, #0
lsls r1, r1, #3
ldr r0, _08079614
adds r1, r1, r0
adds r0, r6, #0
bl StringAppend
_080795FA:
adds r0, r6, #0
ldr r1, _08079618
bl StringAppend
adds r0, r4, #1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #3
bls _080795E0
b _0807962C
.align 2, 0
_08079610: .4byte 0x08300A8A
_08079614: .4byte 0x082EACC4
_08079618: .4byte 0x08300A9E
_0807961C:
ldr r1, _0807963C
adds r0, r6, #0
bl StringCopy
ldr r1, _08079640
adds r0, r6, #0
bl StringAppend
_0807962C:
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807963C: .4byte 0x08300A8A
_08079640: .4byte 0x08300AA9
thumb_func_end sub_08079564
thumb_func_start sub_08079644
sub_08079644: @ 0x08079644
push {r4, lr}
sub sp, #0xc
adds r4, r1, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
adds r1, #2
lsls r4, r4, #0x18
asrs r4, r4, #0x18
adds r4, r4, r1
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r0, _0807968C
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
str r2, [sp, #8]
adds r0, r4, #0
movs r1, #1
movs r2, #0
movs r3, #0
bl AddTextPrinterParameterized3
adds r0, r4, #0
bl PutWindowTilemap
adds r0, r4, #0
movs r1, #3
bl CopyWindowToVram
add sp, #0xc
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807968C: .4byte 0x08300C00
thumb_func_end sub_08079644
thumb_func_start sub_08079690
sub_08079690: @ 0x08079690
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x34
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _08079734
mov sl, r0
cmp r5, #0
bne _080796AC
ldr r1, _08079738
mov sl, r1
_080796AC:
movs r6, #0
ldr r1, _0807973C
ldr r0, [r1]
adds r0, #0x36
adds r0, r0, r5
ldrb r0, [r0]
cmp r6, r0
bhs _08079724
add r7, sp, #0x14
mov r8, r1
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #1
mov sb, r0
_080796C8:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
add r4, sl
adds r0, r4, #0
movs r1, #2
mov r2, sp
bl GetMonData
adds r0, r7, #0
mov r1, sp
bl StringCopy10
adds r0, r4, #0
bl GetMonGender
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r3, r8
ldr r0, [r3]
mov r3, sb
adds r1, r6, r3
adds r0, #0x51
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
bne _08079706
adds r0, r7, #0
adds r1, r2, #0
bl AppendGenderSymbol
_08079706:
adds r0, r5, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_08079644
adds r0, r6, #1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
mov r1, r8
ldr r0, [r1]
adds r0, #0x36
adds r0, r0, r5
ldrb r0, [r0]
cmp r6, r0
blo _080796C8
_08079724:
add sp, #0x34
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08079734: .4byte 0x020243E8
_08079738: .4byte 0x02024190
_0807973C: .4byte 0x02031F3C
thumb_func_end sub_08079690
thumb_func_start sub_08079740
sub_08079740: @ 0x08079740
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
ldr r4, [sp, #0x30]
ldr r5, [sp, #0x34]
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
mov r8, r1
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
mov sb, r2
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
str r3, [sp, #0xc]
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldr r1, _0807979C
movs r0, #6
str r0, [sp]
movs r0, #3
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r0, #1
adds r2, r4, #0
adds r3, r5, #0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, #1
bl CopyBgTilemapBufferToVram
cmp r7, #0
bne _080797A4
movs r0, #0x64
mov r1, r8
muls r1, r0, r1
adds r0, r1, #0
ldr r1, _080797A0
b _080797AE
.align 2, 0
_0807979C: .4byte 0x082FFFC8
_080797A0: .4byte 0x02024190
_080797A4:
movs r0, #0x64
mov r3, r8
muls r3, r0, r3
adds r0, r3, #0
ldr r1, _08079824
_080797AE:
adds r0, r0, r1
movs r1, #0x38
movs r2, #0
bl GetMonData
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
ldr r0, _08079828
mov sl, r0
ldr r4, [r0]
lsls r0, r7, #1
adds r0, r0, r7
lsls r0, r0, #1
add r0, r8
adds r1, r4, #0
adds r1, #0x51
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0
bne _0807982C
adds r0, r6, #0
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, [sp, #0xc]
lsls r2, r1, #5
cmp r5, #0
beq _080797FE
mov r3, sb
adds r0, r3, r2
lsls r0, r0, #1
movs r3, #0x8f
lsls r3, r3, #4
adds r1, r4, r3
adds r1, r1, r0
adds r0, r5, #0
adds r0, #0x60
strh r0, [r1]
_080797FE:
mov r0, sl
ldr r4, [r0]
mov r1, sb
adds r0, r1, r2
adds r0, #1
lsls r0, r0, #1
movs r3, #0x8f
lsls r3, r3, #4
adds r4, r4, r3
adds r4, r4, r0
adds r0, r6, #0
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r0, #0x70
strh r0, [r4]
b _0807986A
.align 2, 0
_08079824: .4byte 0x020243E8
_08079828: .4byte 0x02031F3C
_0807982C:
ldr r1, [sp, #0xc]
lsls r0, r1, #5
mov r1, sb
adds r3, r1, r0
adds r1, r3, #0
subs r1, #0x20
lsls r1, r1, #1
movs r0, #0x8f
lsls r0, r0, #4
adds r2, r4, r0
adds r1, r2, r1
adds r0, r3, #0
subs r0, #0x21
lsls r0, r0, #1
adds r0, r2, r0
ldrh r0, [r0]
strh r0, [r1]
adds r1, r3, #0
subs r1, #0x1f
lsls r1, r1, #1
adds r1, r2, r1
adds r0, r3, #0
subs r0, #0x24
lsls r0, r0, #1
adds r2, r2, r0
ldrh r2, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
_0807986A:
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_08079740
thumb_func_start sub_0807987C
sub_0807987C: @ 0x0807987C
push {r4, r5, r6, r7, lr}
sub sp, #8
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r7, #0
ldr r0, _080798D4
ldr r0, [r0]
adds r0, #0x36
adds r0, r0, r6
ldrb r0, [r0]
cmp r7, r0
bge _080798CC
lsls r0, r6, #1
adds r0, r0, r6
ldr r1, _080798D8
lsls r0, r0, #2
adds r5, r0, r1
ldr r1, _080798DC
adds r4, r0, r1
_080798A2:
lsls r1, r7, #0x18
lsrs r1, r1, #0x18
ldrb r2, [r5]
ldrb r3, [r5, #1]
ldrb r0, [r4]
str r0, [sp]
ldrb r0, [r4, #1]
str r0, [sp, #4]
adds r0, r6, #0
bl sub_08079740
adds r5, #2
adds r4, #2
adds r7, #1
ldr r0, _080798D4
ldr r0, [r0]
adds r0, #0x36
adds r0, r0, r6
ldrb r0, [r0]
cmp r7, r0
blt _080798A2
_080798CC:
add sp, #8
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080798D4: .4byte 0x02031F3C
_080798D8: .4byte 0x08300A36
_080798DC: .4byte 0x08300A4E
thumb_func_end sub_0807987C
thumb_func_start sub_080798E0
sub_080798E0: @ 0x080798E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov ip, r0
movs r7, #0
ldr r3, _080799A0
ldr r0, [r3]
adds r0, #0x36
add r0, ip
ldrb r0, [r0]
cmp r7, r0
bge _08079992
ldr r6, _080799A4
mov sb, r3
mov r1, ip
lsls r0, r1, #1
add r0, ip
lsls r2, r0, #1
mov sl, r2
ldr r1, _080799A8
movs r2, #0
mov r8, r2
lsls r0, r0, #2
adds r5, r0, r1
_08079918:
mov r1, sb
ldr r0, [r1]
mov r2, sl
adds r4, r7, r2
adds r0, #0x28
adds r0, r0, r4
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
adds r1, #0x3e
ldrb r2, [r1]
movs r0, #5
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
mov r0, sb
ldr r3, [r0]
adds r2, r3, #0
adds r2, #0x28
adds r2, r2, r4
ldrb r0, [r2]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
ldrb r0, [r5]
lsls r0, r0, #3
adds r0, #0xe
strh r0, [r1, #0x20]
ldrb r0, [r2]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r6
ldrb r0, [r5, #1]
lsls r0, r0, #3
subs r0, #0xc
strh r0, [r1, #0x22]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
mov r1, r8
strh r1, [r0, #0x24]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
mov r2, r8
strh r2, [r0, #0x26]
adds r5, #2
adds r7, #1
adds r3, #0x36
add r3, ip
ldrb r3, [r3]
cmp r7, r3
blt _08079918
_08079992:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080799A0: .4byte 0x02031F3C
_080799A4: .4byte 0x020205AC
_080799A8: .4byte 0x08300A1C
thumb_func_end sub_080798E0
thumb_func_start sub_080799AC
sub_080799AC: @ 0x080799AC
push {lr}
movs r0, #1
bl rbox_fill_rectangle
movs r0, #1
bl sub_08079690
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_080799AC
thumb_func_start sub_080799C0
sub_080799C0: @ 0x080799C0
push {r4, r5, r6, lr}
sub sp, #0xc
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldr r1, _08079A28
lsls r2, r4, #4
subs r2, r2, r4
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #0xf
str r0, [sp]
movs r0, #0x11
str r0, [sp, #4]
movs r6, #0
str r6, [sp, #8]
movs r0, #1
movs r3, #0
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, #1
bl CopyBgTilemapBufferToVram
adds r0, r4, #0
bl sub_0807987C
adds r0, r4, #0
bl sub_08079690
adds r0, r4, #0
bl sub_080798E0
ldr r0, _08079A2C
ldr r0, [r0, #4]
ldr r5, _08079A30
ldr r1, [r5]
adds r1, #0x72
ldrh r1, [r1]
lsls r1, r1, #5
ldr r2, _08079A34
adds r1, r1, r2
movs r2, #0x18
bl sub_08079D3C
ldr r0, [r5]
adds r0, #0x74
adds r0, r0, r4
strb r6, [r0]
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08079A28: .4byte 0x082FEDCA
_08079A2C: .4byte 0x08300AFC
_08079A30: .4byte 0x02031F3C
_08079A34: .4byte 0x06010000
thumb_func_end sub_080799C0
thumb_func_start sub_08079A38
sub_08079A38: @ 0x08079A38
push {lr}
sub sp, #8
movs r0, #0x1e
str r0, [sp]
movs r0, #0x14
str r0, [sp, #4]
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl FillBgTilemapBufferRect_Palette0
movs r0, #0
bl CopyBgTilemapBufferToVram
add sp, #8
pop {r0}
bx r0
thumb_func_end sub_08079A38
thumb_func_start sub_08079A5C
sub_08079A5C: @ 0x08079A5C
push {lr}
sub sp, #8
movs r0, #0x1e
str r0, [sp]
movs r0, #0x14
str r0, [sp, #4]
movs r0, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl FillBgTilemapBufferRect_Palette0
movs r0, #0
bl CopyBgTilemapBufferToVram
add sp, #8
pop {r0}
bx r0
thumb_func_end sub_08079A5C
thumb_func_start sub_08079A80
sub_08079A80: @ 0x08079A80
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
movs r3, #0
ldr r4, _08079AC0
mov ip, r4
movs r7, #0x8d
lsls r7, r7, #4
_08079A94:
mov r1, ip
ldr r0, [r1]
lsls r1, r3, #3
adds r2, r0, r1
adds r0, r2, r7
ldrb r0, [r0]
cmp r0, #0
bne _08079AC8
ldr r3, _08079AC4
adds r0, r2, r3
strh r5, [r0]
adds r3, #2
adds r0, r2, r3
strb r6, [r0]
ldr r0, [r4]
adds r0, r0, r1
movs r1, #0x8d
lsls r1, r1, #4
adds r0, r0, r1
movs r1, #1
strb r1, [r0]
b _08079ACE
.align 2, 0
_08079AC0: .4byte 0x02031F3C
_08079AC4: .4byte 0x000008D2
_08079AC8:
adds r3, #1
cmp r3, #3
ble _08079A94
_08079ACE:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end sub_08079A80
thumb_func_start sub_08079AD4
sub_08079AD4: @ 0x08079AD4
push {lr}
movs r3, #0
ldr r0, _08079AF8
ldr r0, [r0]
movs r2, #0x8d
lsls r2, r2, #4
adds r1, r0, r2
movs r2, #3
_08079AE4:
ldrb r0, [r1]
adds r3, r3, r0
adds r1, #8
subs r2, #1
cmp r2, #0
bge _08079AE4
adds r0, r3, #0
pop {r1}
bx r1
.align 2, 0
_08079AF8: .4byte 0x02031F3C
thumb_func_end sub_08079AD4
thumb_func_start sub_08079AFC
sub_08079AFC: @ 0x08079AFC
push {r4, r5, lr}
movs r4, #0
ldr r3, _08079B28
_08079B02:
ldr r0, [r3]
lsls r1, r4, #3
adds r2, r0, r1
movs r5, #0x8d
lsls r5, r5, #4
adds r0, r2, r5
ldrb r0, [r0]
adds r5, r1, #0
cmp r0, #0
beq _08079BC4
ldr r0, _08079B2C
adds r1, r2, r0
ldrh r0, [r1]
cmp r0, #0
beq _08079B30
subs r0, #1
strh r0, [r1]
b _08079BC4
.align 2, 0
_08079B28: .4byte 0x02031F3C
_08079B2C: .4byte 0x000008D2
_08079B30:
ldr r1, _08079B44
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #8
bhi _08079BB2
lsls r0, r0, #2
ldr r1, _08079B48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08079B44: .4byte 0x000008D4
_08079B48: .4byte 0x08079B4C
_08079B4C: @ jump table
.4byte _08079B70 @ case 0
.4byte _08079B84 @ case 1
.4byte _08079B8C @ case 2
.4byte _08079B94 @ case 3
.4byte _08079B94 @ case 4
.4byte _08079B94 @ case 5
.4byte _08079B9C @ case 6
.4byte _08079BA4 @ case 7
.4byte _08079BAC @ case 8
_08079B70:
ldr r0, _08079B80
ldr r0, [r0]
adds r0, #0x80
movs r1, #0x14
bl sub_08076B78
b _08079BB2
.align 2, 0
_08079B80: .4byte 0x02031F3C
_08079B84:
movs r0, #0
bl sub_08079BD4
b _08079BB2
_08079B8C:
movs r0, #2
bl sub_08079BD4
b _08079BB2
_08079B94:
movs r0, #3
bl sub_08079BD4
b _08079BB2
_08079B9C:
movs r0, #6
bl sub_08079BD4
b _08079BB2
_08079BA4:
movs r0, #7
bl sub_08079BD4
b _08079BB2
_08079BAC:
movs r0, #8
bl sub_08079BD4
_08079BB2:
ldr r0, _08079BD0
ldr r1, [r0]
adds r1, r1, r5
movs r2, #0x8d
lsls r2, r2, #4
adds r1, r1, r2
movs r2, #0
strb r2, [r1]
adds r3, r0, #0
_08079BC4:
adds r4, #1
cmp r4, #3
ble _08079B02
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08079BD0: .4byte 0x02031F3C
thumb_func_end sub_08079AFC
thumb_func_start sub_08079BD4
sub_08079BD4: @ 0x08079BD4
push {r4, lr}
sub sp, #0xc
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r0, #0
movs r1, #0x11
bl FillWindowPixelBuffer
ldr r0, _08079C24
lsls r4, r4, #2
adds r4, r4, r0
ldr r2, [r4]
movs r0, #2
str r0, [sp]
movs r0, #0xff
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
movs r1, #1
movs r3, #2
bl AddTextPrinterParameterized
movs r0, #0
movs r1, #0x14
movs r2, #0xc
bl DrawTextBorderOuter
movs r0, #0
bl PutWindowTilemap
movs r0, #0
movs r1, #3
bl CopyWindowToVram
add sp, #0xc
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08079C24: .4byte 0x08300BDC
thumb_func_end sub_08079BD4
thumb_func_start sub_08079C28
sub_08079C28: @ 0x08079C28
push {r4, lr}
sub sp, #8
ldr r0, _08079C78
ldr r1, [r0]
adds r3, r1, #0
adds r3, #0xa8
ldrb r1, [r3]
adds r4, r0, #0
cmp r1, #0xc
bhi _08079C64
ldr r1, _08079C7C
ldrb r0, [r3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [sp]
ldr r0, _08079C80
ldr r2, [sp, #4]
ands r2, r0
movs r0, #0x80
lsls r0, r0, #1
orrs r2, r0
str r2, [sp, #4]
ldrb r1, [r3]
adds r1, #0xc8
lsls r1, r1, #0x10
ldr r0, _08079C84
ands r0, r2
orrs r0, r1
str r0, [sp, #4]
_08079C64:
ldr r0, [r4]
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x10
bhi _08079D30
lsls r0, r0, #2
ldr r1, _08079C88
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08079C78: .4byte 0x02031F3C
_08079C7C: .4byte 0x02031E2C
_08079C80: .4byte 0xFFFF0000
_08079C84: .4byte 0x0000FFFF
_08079C88: .4byte 0x08079C8C
_08079C8C: @ jump table
.4byte _08079CD0 @ case 0
.4byte _08079CD0 @ case 1
.4byte _08079CD0 @ case 2
.4byte _08079CD0 @ case 3
.4byte _08079CD0 @ case 4
.4byte _08079CD0 @ case 5
.4byte _08079CD0 @ case 6
.4byte _08079CD4 @ case 7
.4byte _08079CEC @ case 8
.4byte _08079CEC @ case 9
.4byte _08079CEC @ case 10
.4byte _08079CEC @ case 11
.4byte _08079CEC @ case 12
.4byte _08079CF0 @ case 13
.4byte _08079CFC @ case 14
.4byte _08079D08 @ case 15
.4byte _08079D24 @ case 16
_08079CD0:
mov r0, sp
b _08079D0A
_08079CD4:
mov r0, sp
bl LoadSpriteSheet
ldr r1, _08079CE8
ldr r1, [r1]
adds r2, r1, #0
adds r2, #0x72
strh r0, [r2]
b _08079D12
.align 2, 0
_08079CE8: .4byte 0x02031F3C
_08079CEC:
mov r0, sp
b _08079D0A
_08079CF0:
ldr r0, _08079CF8
bl LoadSpritePalette
b _08079D0E
.align 2, 0
_08079CF8: .4byte 0x083008DC
_08079CFC:
ldr r0, _08079D04
bl LoadSpritePalette
b _08079D0E
.align 2, 0
_08079D04: .4byte 0x0830083C
_08079D08:
ldr r0, _08079D1C
_08079D0A:
bl LoadSpriteSheet
_08079D0E:
ldr r0, _08079D20
ldr r1, [r0]
_08079D12:
adds r1, #0xa8
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08079D30
.align 2, 0
_08079D1C: .4byte 0x08300834
_08079D20: .4byte 0x02031F3C
_08079D24:
ldr r0, [r4]
adds r0, #0xa8
movs r1, #0
strb r1, [r0]
movs r0, #1
b _08079D32
_08079D30:
movs r0, #0
_08079D32:
add sp, #8
pop {r4}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08079C28
thumb_func_start sub_08079D3C
sub_08079D3C: @ 0x08079D3C
push {r4, r5, r6, lr}
sub sp, #0x24
adds r5, r0, #0
adds r6, r1, #0
lsls r2, r2, #0x18
lsrs r4, r2, #0x18
add r0, sp, #4
movs r1, #0
adds r2, r4, #0
bl StringFill
movs r2, #0
cmp r2, r4
bge _08079D7C
ldrb r1, [r5]
adds r0, r1, #0
cmp r0, #0xff
beq _08079D7C
add r0, sp, #4
_08079D62:
strb r1, [r0]
adds r2, #1
cmp r2, r4
bge _08079D7C
adds r0, r5, r2
ldrb r1, [r0]
adds r0, r1, #0
cmp r0, #0xff
beq _08079D7C
mov r0, sp
adds r0, r0, r2
adds r0, #4
b _08079D62
_08079D7C:
ldr r0, _08079D94
str r0, [sp]
add r0, sp, #4
adds r1, r6, #0
movs r2, #0
movs r3, #0
bl sub_080C66A4
add sp, #0x24
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08079D94: .4byte 0x0201C000
thumb_func_end sub_08079D3C
thumb_func_start sub_08079D98
sub_08079D98: @ 0x08079D98
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
cmp r0, #0
beq _08079DB0
cmp r0, #1
beq _08079E44
b _08079ED0
_08079DB0:
movs r7, #0
ldr r1, _08079DF0
ldr r0, [r1]
adds r0, #0x36
ldrb r0, [r0]
cmp r7, r0
blt _08079DC0
b _08079ED0
_08079DC0:
adds r6, r1, #0
movs r5, #0
mov sb, r5
_08079DC6:
movs r0, #0x64
adds r1, r7, #0
muls r1, r0, r1
ldr r0, _08079DF4
adds r4, r1, r0
adds r0, r4, #0
movs r1, #0x2d
bl GetMonData
adds r1, r0, #0
cmp r1, #1
bne _08079DF8
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
mov r2, sb
strb r2, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
b _08079E28
.align 2, 0
_08079DF0: .4byte 0x02031F3C
_08079DF4: .4byte 0x02024190
_08079DF8:
adds r0, r4, #0
movs r1, #0x39
bl GetMonData
adds r1, r0, #0
cmp r1, #0
bne _08079E16
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
b _08079E28
_08079E16:
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
mov r1, sb
_08079E28:
strb r1, [r0]
ldr r0, _08079E40
adds r5, #1
adds r7, #1
ldr r0, [r0]
adds r0, #0x36
add r0, r8
ldrb r0, [r0]
cmp r7, r0
blt _08079DC6
b _08079ED0
.align 2, 0
_08079E40: .4byte 0x02031F3C
_08079E44:
movs r7, #0
ldr r1, _08079E84
ldr r0, [r1]
adds r0, #0x37
ldrb r0, [r0]
cmp r7, r0
bge _08079ED0
adds r6, r1, #0
movs r5, #6
movs r2, #0
mov sb, r2
_08079E5A:
movs r0, #0x64
adds r1, r7, #0
muls r1, r0, r1
ldr r0, _08079E88
adds r4, r1, r0
adds r0, r4, #0
movs r1, #0x2d
bl GetMonData
adds r1, r0, #0
cmp r1, #1
bne _08079E8C
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
mov r2, sb
strb r2, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
b _08079EBC
.align 2, 0
_08079E84: .4byte 0x02031F3C
_08079E88: .4byte 0x020243E8
_08079E8C:
adds r0, r4, #0
movs r1, #0x39
bl GetMonData
adds r1, r0, #0
cmp r1, #0
bne _08079EAA
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
b _08079EBC
_08079EAA:
ldr r0, [r6]
adds r0, #0x45
adds r0, r0, r5
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
adds r0, #0x51
adds r0, r0, r5
mov r1, sb
_08079EBC:
strb r1, [r0]
ldr r0, _08079EDC
adds r5, #1
adds r7, #1
ldr r0, [r0]
adds r0, #0x36
add r0, r8
ldrb r0, [r0]
cmp r7, r0
blt _08079E5A
_08079ED0:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08079EDC: .4byte 0x02031F3C
thumb_func_end sub_08079D98
thumb_func_start sub_08079EE0
sub_08079EE0: @ 0x08079EE0
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _08079EF0
cmp r0, #1
beq _08079F50
b _08079FA4
_08079EF0:
movs r6, #0
ldr r1, _08079F48
ldr r0, [r1]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
bhs _08079FA4
adds r7, r1, #0
_08079F00:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _08079F4C
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x39
bl GetMonData
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r0, r4, #0
movs r1, #0x3a
bl GetMonData
adds r1, r0, #0
lsls r0, r5, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl GetHPBarLevel
ldr r1, [r7]
adds r1, #0x5d
adds r1, r1, r6
strb r0, [r1]
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, [r7]
adds r0, #0x36
ldrb r0, [r0]
cmp r6, r0
blo _08079F00
b _08079FA4
.align 2, 0
_08079F48: .4byte 0x02031F3C
_08079F4C: .4byte 0x02024190
_08079F50:
movs r6, #0
ldr r1, _08079FAC
ldr r0, [r1]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
bhs _08079FA4
adds r7, r1, #0
_08079F60:
movs r0, #0x64
adds r4, r6, #0
muls r4, r0, r4
ldr r0, _08079FB0
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x39
bl GetMonData
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r0, r4, #0
movs r1, #0x3a
bl GetMonData
adds r1, r0, #0
lsls r0, r5, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
bl GetHPBarLevel
ldr r1, [r7]
adds r1, #0x63
adds r1, r1, r6
strb r0, [r1]
adds r0, r6, #1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, [r7]
adds r0, #0x37
ldrb r0, [r0]
cmp r6, r0
blo _08079F60
_08079FA4:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08079FAC: .4byte 0x02031F3C
_08079FB0: .4byte 0x020243E8
thumb_func_end sub_08079EE0
thumb_func_start sub_08079FB4
sub_08079FB4: @ 0x08079FB4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r5, #0
_08079FBC:
movs r4, #0
ldr r2, _0807A020
ldr r0, [r2]
adds r0, #0x36
adds r0, r0, r5
adds r1, r5, #1
mov r8, r1
ldrb r0, [r0]
cmp r4, r0
bge _0807A00E
adds r6, r2, #0
lsls r0, r5, #1
adds r0, r0, r5
lsls r7, r0, #1
_08079FD8:
ldr r2, [r6]
adds r3, r4, r7
adds r0, r2, #0
adds r0, #0x28
adds r0, r0, r3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807A024
adds r0, r0, r1
adds r2, #0x5d
adds r2, r2, r3
ldrb r2, [r2]
movs r1, #4
subs r1, r1, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_080D2B68
adds r4, #1
ldr r0, [r6]
adds r0, #0x36
adds r0, r0, r5
ldrb r0, [r0]
cmp r4, r0
blt _08079FD8
_0807A00E:
mov r5, r8
cmp r5, #1
ble _08079FBC
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807A020: .4byte 0x02031F3C
_0807A024: .4byte 0x020205AC
thumb_func_end sub_08079FB4
thumb_func_start sub_0807A028
sub_0807A028: @ 0x0807A028
push {r4, r5, lr}
movs r2, #0
ldr r5, _0807A058
ldr r4, _0807A05C
ldr r3, _0807A060
_0807A032:
ldr r0, [r5]
adds r0, r0, r4
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne _0807A04C
ldr r0, [r3]
adds r0, #0xa9
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0
beq _0807A04C
strb r0, [r1]
_0807A04C:
adds r2, #1
cmp r2, #0xa
ble _0807A032
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807A058: .4byte 0x03005AEC
_0807A05C: .4byte 0x000031A8
_0807A060: .4byte 0x02031F3C
thumb_func_end sub_0807A028
thumb_func_start sub_0807A064
sub_0807A064: @ 0x0807A064
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x30
mov r8, r0
adds r7, r1, #0
mov sb, r2
movs r5, #0
cmp r5, r7
bge _0807A09E
mov r6, sp
_0807A07C:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
add r4, r8
adds r0, r4, #0
movs r1, #0x41
bl GetMonData
str r0, [r6, #0x18]
adds r0, r4, #0
movs r1, #0xb
bl GetMonData
stm r6!, {r0}
adds r5, #1
cmp r5, r7
blt _0807A07C
_0807A09E:
bl IsNationalPokedexEnabled
mov r1, sb
lsls r4, r1, #2
cmp r0, #0
bne _0807A0CC
add r0, sp, #0x18
adds r0, r0, r4
ldr r1, [r0]
movs r0, #0xce
lsls r0, r0, #1
cmp r1, r0
bne _0807A0BC
movs r0, #3
b _0807A188
_0807A0BC:
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A0CC
movs r0, #2
b _0807A188
_0807A0CC:
bl GetMultiplayerId
movs r1, #1
eors r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
ldr r0, _0807A10C
adds r1, r1, r0
ldrb r0, [r1]
subs r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bls _0807A11C
ldrb r1, [r1, #0x10]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _0807A11C
add r0, sp, #0x18
adds r0, r0, r4
ldr r1, [r0]
movs r0, #0xce
lsls r0, r0, #1
cmp r1, r0
bne _0807A110
movs r0, #5
b _0807A188
.align 2, 0
_0807A10C: .4byte 0x020226A0
_0807A110:
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
bl IsSpeciesInHoennDex
cmp r0, #0
beq _0807A142
_0807A11C:
mov r1, sp
adds r0, r1, r4
ldr r1, [r0]
movs r0, #0xcd
lsls r0, r0, #1
cmp r1, r0
beq _0807A12E
cmp r1, #0x97
bne _0807A146
_0807A12E:
movs r0, #0x64
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
add r0, r8
movs r1, #0x50
bl GetMonData
cmp r0, #0
bne _0807A146
_0807A142:
movs r0, #4
b _0807A188
_0807A146:
cmp r7, #0
ble _0807A164
movs r3, #0xce
lsls r3, r3, #1
movs r2, #0
add r1, sp, #0x18
adds r5, r7, #0
_0807A154:
ldr r0, [r1]
cmp r0, r3
bne _0807A15C
str r2, [r1]
_0807A15C:
adds r1, #4
subs r5, #1
cmp r5, #0
bne _0807A154
_0807A164:
movs r2, #0
movs r5, #0
cmp r2, r7
bge _0807A17E
add r1, sp, #0x18
_0807A16E:
cmp r5, sb
beq _0807A176
ldr r0, [r1]
adds r2, r2, r0
_0807A176:
adds r1, #4
adds r5, #1
cmp r5, r7
blt _0807A16E
_0807A17E:
cmp r2, #0
bne _0807A186
movs r0, #1
b _0807A188
_0807A186:
movs r0, #0
_0807A188:
add sp, #0x30
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0807A064
thumb_func_start sub_0807A198
sub_0807A198: @ 0x0807A198
push {r4, r5, r6, r7, lr}
ldr r0, _0807A218
ldrb r0, [r0]
cmp r0, #0
beq _0807A224
movs r4, #0
bl GetMultiplayerId
ldr r5, _0807A21C
movs r7, #1
eors r0, r7
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
ldrb r1, [r1]
subs r0, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bls _0807A224
subs r0, r1, #4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #1
bhi _0807A1D2
movs r4, #2
_0807A1D2:
cmp r4, #0
ble _0807A224
bl GetMultiplayerId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
ldrb r1, [r1, #0x10]
movs r6, #0xf0
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0807A220
cmp r4, #2
bne _0807A224
bl GetMultiplayerId
eors r0, r7
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
ldrb r1, [r1, #0x10]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _0807A224
movs r0, #2
b _0807A226
.align 2, 0
_0807A218: .4byte 0x030031C4
_0807A21C: .4byte 0x020226A0
_0807A220:
movs r0, #1
b _0807A226
_0807A224:
movs r0, #0
_0807A226:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_end sub_0807A198
thumb_func_start IsDeoxysOrMewUntradable
IsDeoxysOrMewUntradable: @ 0x0807A22C
push {lr}
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #0xcd
lsls r0, r0, #1
cmp r2, r0
beq _0807A242
cmp r2, #0x97
bne _0807A24A
_0807A242:
cmp r1, #0
bne _0807A24A
movs r0, #1
b _0807A24C
_0807A24A:
movs r0, #0
_0807A24C:
pop {r1}
bx r1
thumb_func_end IsDeoxysOrMewUntradable
thumb_func_start sub_0807A250
sub_0807A250: @ 0x0807A250
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, [sp, #0x20]
ldr r5, [sp, #0x24]
ldr r6, [sp, #0x28]
lsls r2, r2, #0x10
lsrs r7, r2, #0x10
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
mov r8, r3
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r2, r0, #0x17
lsrs r2, r2, #0x1f
mov sb, r2
lsls r0, r0, #0x18
lsrs r2, r0, #0x1f
lsls r0, r1, #0x17
lsrs r0, r0, #0x1f
mov sl, r0
lsls r0, r1, #0x18
lsrs r0, r0, #0x1f
lsls r1, r1, #0x12
lsrs r1, r1, #0x1c
cmp r1, #3
beq _0807A2A2
cmp r2, #0
bne _0807A29A
movs r0, #8
b _0807A330
_0807A29A:
cmp r0, #0
bne _0807A2A2
movs r0, #9
b _0807A330
_0807A2A2:
adds r0, r5, #0
adds r1, r6, #0
bl IsDeoxysOrMewUntradable
cmp r0, #0
bne _0807A308
movs r0, #0xce
lsls r0, r0, #1
cmp r8, r0
bne _0807A2BE
cmp r7, r8
beq _0807A2DC
movs r0, #2
b _0807A330
_0807A2BE:
ldr r0, _0807A2D8
lsls r1, r7, #3
subs r1, r1, r7
lsls r1, r1, #2
adds r1, r1, r0
ldrb r0, [r1, #6]
cmp r0, r4
beq _0807A2DC
ldrb r0, [r1, #7]
cmp r0, r4
beq _0807A2DC
movs r0, #1
b _0807A330
.align 2, 0
_0807A2D8: .4byte 0x082F0D54
_0807A2DC:
movs r0, #0xce
lsls r0, r0, #1
cmp r7, r0
bne _0807A2EC
cmp r7, r8
beq _0807A2EC
movs r0, #3
b _0807A330
_0807A2EC:
mov r0, sb
cmp r0, #0
bne _0807A31A
movs r0, #0xce
lsls r0, r0, #1
cmp r7, r0
bne _0807A2FE
movs r0, #6
b _0807A330
_0807A2FE:
adds r0, r7, #0
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A30C
_0807A308:
movs r0, #4
b _0807A330
_0807A30C:
mov r0, r8
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A31A
movs r0, #5
b _0807A330
_0807A31A:
mov r0, sl
cmp r0, #0
bne _0807A32E
adds r0, r7, #0
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A32E
movs r0, #7
b _0807A330
_0807A32E:
movs r0, #0
_0807A330:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0807A250
thumb_func_start sub_0807A340
sub_0807A340: @ 0x0807A340
push {r4, r5, r6, lr}
lsls r1, r1, #0x10
lsrs r5, r1, #0x10
adds r6, r5, #0
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
lsls r0, r0, #0x17
lsrs r4, r0, #0x1f
adds r0, r2, #0
adds r1, r3, #0
bl IsDeoxysOrMewUntradable
cmp r0, #0
bne _0807A37A
cmp r4, #0
bne _0807A37E
movs r0, #0xce
lsls r0, r0, #1
cmp r5, r0
bne _0807A370
movs r0, #2
b _0807A380
_0807A370:
adds r0, r6, #0
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A37E
_0807A37A:
movs r0, #1
b _0807A380
_0807A37E:
movs r0, #0
_0807A380:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0807A340
thumb_func_start sub_0807A388
sub_0807A388: @ 0x0807A388
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0x18
adds r6, r0, #0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov r8, r1
movs r5, #0
ldr r0, _0807A3D4
ldrb r0, [r0]
cmp r5, r0
bge _0807A3CA
mov r4, sp
_0807A3A4:
movs r0, #0x64
muls r0, r5, r0
adds r0, r6, r0
movs r1, #0x41
bl GetMonData
str r0, [r4]
movs r1, #0xce
lsls r1, r1, #1
cmp r0, r1
bne _0807A3BE
movs r0, #0
str r0, [r4]
_0807A3BE:
adds r4, #4
adds r5, #1
ldr r0, _0807A3D4
ldrb r0, [r0]
cmp r5, r0
blt _0807A3A4
_0807A3CA:
movs r7, #0
movs r6, #1
movs r5, #0
ldr r4, _0807A3D8
b _0807A3F0
.align 2, 0
_0807A3D4: .4byte 0x0202418D
_0807A3D8: .4byte 0x020226A0
_0807A3DC:
ldrb r0, [r4]
subs r0, #4
cmp r0, #1
bhi _0807A3E8
movs r7, #0
b _0807A3EC
_0807A3E8:
movs r0, #1
orrs r7, r0
_0807A3EC:
adds r4, #0x1c
adds r5, #1
_0807A3F0:
bl GetLinkPlayerCount
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r5, r0
blt _0807A3DC
movs r5, #0
movs r4, #0
b _0807A424
_0807A402:
ldr r0, _0807A44C
adds r2, r4, r0
ldrb r1, [r2, #0x10]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _0807A412
movs r6, #0
_0807A412:
cmp r7, #0
beq _0807A420
ldrb r0, [r2, #0x10]
lsrs r0, r0, #4
cmp r0, #0
beq _0807A420
movs r6, #0
_0807A420:
adds r4, #0x1c
adds r5, #1
_0807A424:
bl GetLinkPlayerCount
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r5, r0
blt _0807A402
cmp r6, #0
bne _0807A45A
mov r1, r8
lsls r0, r1, #2
mov r1, sp
adds r4, r1, r0
ldrh r0, [r4]
bl IsSpeciesInHoennDex
cmp r0, #0
bne _0807A450
movs r0, #2
b _0807A48A
.align 2, 0
_0807A44C: .4byte 0x020226A0
_0807A450:
ldr r0, [r4]
cmp r0, #0
bne _0807A45A
movs r0, #3
b _0807A48A
_0807A45A:
movs r2, #0
movs r5, #0
ldr r0, _0807A484
ldrb r0, [r0]
cmp r2, r0
bge _0807A47A
adds r3, r0, #0
mov r1, sp
_0807A46A:
cmp r8, r5
beq _0807A472
ldr r0, [r1]
adds r2, r2, r0
_0807A472:
adds r1, #4
adds r5, #1
cmp r5, r3
blt _0807A46A
_0807A47A:
cmp r2, #0
beq _0807A488
movs r0, #0
b _0807A48A
.align 2, 0
_0807A484: .4byte 0x0202418D
_0807A488:
movs r0, #1
_0807A48A:
add sp, #0x18
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_0807A388
thumb_func_start sub_0807A498
sub_0807A498: @ 0x0807A498
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa
bne _0807A4B4
movs r0, #0x17
bl PlaySE
movs r0, #0
strh r0, [r4, #0x2e]
_0807A4B4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A498
thumb_func_start sub_0807A4BC
sub_0807A4BC: @ 0x0807A4BC
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x3e
ldrb r1, [r0]
movs r0, #4
ands r0, r1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _0807A4E6
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa
bne _0807A4E6
movs r0, #0xc2
bl PlaySE
strh r5, [r4, #0x2e]
_0807A4E6:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end sub_0807A4BC
thumb_func_start sub_0807A4EC
sub_0807A4EC: @ 0x0807A4EC
push {lr}
adds r2, r0, #0
movs r0, #0x30
ldrsh r1, [r2, r0]
cmp r1, #0
bne _0807A522
ldrh r0, [r2, #0x2e]
adds r0, #1
strh r0, [r2, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
bne _0807A508
strh r1, [r2, #0x2e]
_0807A508:
movs r1, #0x2e
ldrsh r0, [r2, r1]
lsls r0, r0, #1
ldr r1, _0807A528
adds r0, r0, r1
ldrb r1, [r2, #5]
lsrs r1, r1, #4
adds r1, #0x10
lsls r1, r1, #4
adds r1, #4
movs r2, #2
bl LoadPalette
_0807A522:
pop {r0}
bx r0
.align 2, 0
_0807A528: .4byte 0x0830D0E8
thumb_func_end sub_0807A4EC
thumb_func_start sub_0807A52C
sub_0807A52C: @ 0x0807A52C
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x2e]
adds r1, #1
strh r1, [r2, #0x2e]
ldrh r0, [r2, #0x26]
adds r0, #1
strh r0, [r2, #0x26]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
bne _0807A54A
adds r0, r2, #0
bl DestroySprite
_0807A54A:
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A52C
thumb_func_start sub_0807A550
sub_0807A550: @ 0x0807A550
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x2e]
adds r1, #1
strh r1, [r2, #0x2e]
ldrh r0, [r2, #0x26]
subs r0, #1
strh r0, [r2, #0x26]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #0xa
bne _0807A56E
adds r0, r2, #0
bl DestroySprite
_0807A56E:
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A550
thumb_func_start sub_0807A574
sub_0807A574: @ 0x0807A574
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xf
bne _0807A590
movs r0, #0xcc
bl PlaySE
movs r0, #0
strh r0, [r4, #0x2e]
_0807A590:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A574
thumb_func_start sub_0807A598
sub_0807A598: @ 0x0807A598
push {r4, r5, lr}
sub sp, #0x20
ldr r0, _0807A624
ldr r0, [r0]
mov ip, r0
adds r0, #0xd4
ldrh r1, [r0]
lsls r1, r1, #8
adds r0, #2
ldrh r2, [r0]
lsls r2, r2, #8
adds r0, #6
movs r4, #0
ldrsh r3, [r0, r4]
adds r0, #2
movs r5, #0
ldrsh r0, [r0, r5]
str r0, [sp]
mov r4, ip
adds r4, #0xe8
movs r5, #0
ldrsh r0, [r4, r5]
str r0, [sp, #4]
movs r5, #0
ldrsh r0, [r4, r5]
str r0, [sp, #8]
mov r0, ip
adds r0, #0xec
ldrh r0, [r0]
str r0, [sp, #0xc]
add r0, sp, #0x10
bl DoBgAffineSet
add r0, sp, #0x10
ldrh r1, [r0]
movs r0, #0x20
bl SetGpuReg
add r0, sp, #0x10
ldrh r1, [r0, #2]
movs r0, #0x22
bl SetGpuReg
add r0, sp, #0x10
ldrh r1, [r0, #4]
movs r0, #0x24
bl SetGpuReg
add r0, sp, #0x10
ldrh r1, [r0, #6]
movs r0, #0x26
bl SetGpuReg
ldr r1, [sp, #0x18]
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
movs r0, #0x28
bl SetGpuReg
ldr r1, [sp, #0x1c]
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
movs r0, #0x2c
bl SetGpuReg
add sp, #0x20
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807A624: .4byte 0x02031F40
thumb_func_end sub_0807A598
thumb_func_start sub_0807A628
sub_0807A628: @ 0x0807A628
push {r4, lr}
ldr r4, _0807A670
ldr r0, [r4]
adds r0, #0xe0
ldrh r1, [r0]
movs r0, #0x16
bl SetGpuReg
ldr r0, [r4]
adds r0, #0xe2
ldrh r1, [r0]
movs r0, #0x14
bl SetGpuReg
movs r0, #0
bl GetGpuReg
lsls r0, r0, #0x10
movs r1, #0xe0
lsls r1, r1, #0xb
ands r1, r0
cmp r1, #0
bne _0807A674
ldr r0, [r4]
adds r0, #0xe4
ldrh r1, [r0]
movs r0, #0x1a
bl SetGpuReg
ldr r0, [r4]
adds r0, #0xe6
ldrh r1, [r0]
movs r0, #0x18
bl SetGpuReg
b _0807A678
.align 2, 0
_0807A670: .4byte 0x02031F40
_0807A674:
bl sub_0807A598
_0807A678:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A628
thumb_func_start sub_0807A680
sub_0807A680: @ 0x0807A680
push {lr}
bl sub_0807A628
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807A680
thumb_func_start sub_0807A698
sub_0807A698: @ 0x0807A698
push {r4, lr}
ldr r3, _0807A6BC
ldr r1, [r3]
movs r0, #0x8a
adds r0, r0, r1
mov ip, r0
movs r2, #0
movs r0, #0
mov r4, ip
strh r0, [r4]
adds r1, #0x88
strb r2, [r1]
ldr r0, [r3]
adds r0, #0x89
strb r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807A6BC: .4byte 0x02031F40
thumb_func_end sub_0807A698
thumb_func_start sub_0807A6C0
sub_0807A6C0: @ 0x0807A6C0
push {r4, r5, lr}
ldr r0, _0807A6E4
ldr r2, [r0]
adds r1, r2, #0
adds r1, #0x88
adds r3, r2, #0
adds r3, #0x89
ldrb r1, [r1]
adds r5, r0, #0
ldrb r3, [r3]
cmp r1, r3
bne _0807A6E8
adds r1, r2, #0
adds r1, #0x8a
ldrh r0, [r1]
adds r0, #1
b _0807A6EE
.align 2, 0
_0807A6E4: .4byte 0x02031F40
_0807A6E8:
adds r1, r2, #0
adds r1, #0x8a
movs r0, #0
_0807A6EE:
strh r0, [r1]
adds r4, r5, #0
ldr r0, [r4]
adds r0, #0x8a
ldrh r1, [r0]
movs r0, #0x96
lsls r0, r0, #1
cmp r1, r0
bls _0807A720
bl CloseLink
ldr r0, _0807A734
bl SetMainCallback2
ldr r1, [r4]
adds r3, r1, #0
adds r3, #0x8a
movs r2, #0
movs r0, #0
strh r0, [r3]
adds r1, #0x89
strb r2, [r1]
ldr r0, [r4]
adds r0, #0x88
strb r2, [r0]
_0807A720:
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x88
ldrb r1, [r1]
adds r0, #0x89
strb r1, [r0]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807A734: .4byte 0x0800AA0D
thumb_func_end sub_0807A6C0
thumb_func_start sub_0807A738
sub_0807A738: @ 0x0807A738
push {lr}
ldr r0, _0807A748
ldrb r0, [r0]
cmp r0, #0
bne _0807A74C
movs r0, #0
b _0807A754
.align 2, 0
_0807A748: .4byte 0x030031C4
_0807A74C:
bl GetMultiplayerId
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
_0807A754:
pop {r1}
bx r1
thumb_func_end sub_0807A738
thumb_func_start sub_0807A758
sub_0807A758: @ 0x0807A758
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
movs r4, #0
mov r8, r4
cmp r6, #0
bne _0807A77E
ldr r0, _0807A7A8
ldrb r1, [r0]
movs r0, #0x64
muls r1, r0, r1
ldr r0, _0807A7AC
adds r1, r1, r0
mov r8, r1
movs r4, #1
_0807A77E:
cmp r6, #1
bne _0807A79C
ldr r0, _0807A7A8
ldrb r0, [r0, #1]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x64
muls r1, r0, r1
ldr r0, _0807A7B0
adds r1, r1, r0
mov r8, r1
movs r4, #3
_0807A79C:
cmp r5, #0
beq _0807A7B4
cmp r5, #1
beq _0807A83C
b _0807A892
.align 2, 0
_0807A7A8: .4byte 0x02031F38
_0807A7AC: .4byte 0x02024190
_0807A7B0: .4byte 0x020243E8
_0807A7B4:
mov r0, r8
movs r1, #0x41
bl GetMonData
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
mov r0, r8
movs r1, #0
bl GetMonData
adds r7, r0, #0
cmp r6, #0
bne _0807A7F0
lsls r0, r5, #3
ldr r1, _0807A7E8
adds r0, r0, r1
ldr r1, _0807A7EC
ldr r1, [r1]
ldr r1, [r1, #8]
adds r2, r5, #0
adds r3, r7, #0
bl HandleLoadSpecialPokePic_2
movs r4, #0
b _0807A80E
.align 2, 0
_0807A7E8: .4byte 0x082DDA1C
_0807A7EC: .4byte 0x02024178
_0807A7F0:
lsls r0, r5, #3
ldr r1, _0807A830
adds r0, r0, r1
ldr r1, _0807A834
ldr r2, [r1]
lsls r4, r6, #1
adds r1, r4, #1
lsls r1, r1, #2
adds r2, #4
adds r2, r2, r1
ldr r1, [r2]
adds r2, r5, #0
adds r3, r7, #0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
_0807A80E:
mov r0, r8
bl GetMonSpritePalStruct
bl LoadCompressedSpritePalette
ldr r0, _0807A838
ldr r1, [r0]
adds r0, r1, #0
adds r0, #0xf0
adds r0, r0, r4
strh r5, [r0]
lsls r0, r6, #2
adds r1, #0x68
adds r1, r1, r0
str r7, [r1]
b _0807A892
.align 2, 0
_0807A830: .4byte 0x082DDA1C
_0807A834: .4byte 0x02024178
_0807A838: .4byte 0x02031F40
_0807A83C:
mov r0, r8
bl GetMonSpritePalStruct
ldrh r0, [r0, #4]
adds r1, r4, #0
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0807A89C
movs r1, #0x78
movs r2, #0x3c
movs r3, #6
bl CreateSprite
ldr r4, _0807A8A0
ldr r1, [r4]
adds r1, #0x8e
adds r1, r1, r6
strb r0, [r1]
ldr r3, _0807A8A4
ldr r0, [r4]
adds r0, #0x8e
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x8e
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r3, #0x1c
adds r0, r0, r3
ldr r1, _0807A8A8
str r1, [r0]
_0807A892:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807A89C: .4byte 0x02024640
_0807A8A0: .4byte 0x02031F40
_0807A8A4: .4byte 0x020205AC
_0807A8A8: .4byte 0x08007141
thumb_func_end sub_0807A758
thumb_func_start sub_0807A8AC
sub_0807A8AC: @ 0x0807A8AC
push {r4, r5, lr}
sub sp, #4
ldr r1, _0807A8CC
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, #0
cmp r0, #0xc
bls _0807A8C2
b _0807AB72
_0807A8C2:
lsls r0, r0, #2
ldr r1, _0807A8D0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807A8CC: .4byte 0x03002360
_0807A8D0: .4byte 0x0807A8D4
_0807A8D4: @ jump table
.4byte _0807A908 @ case 0
.4byte _0807A9B4 @ case 1
.4byte _0807A9F8 @ case 2
.4byte _0807AA18 @ case 3
.4byte _0807AA62 @ case 4
.4byte _0807AA90 @ case 5
.4byte _0807AAB4 @ case 6
.4byte _0807AACC @ case 7
.4byte _0807AAD6 @ case 8
.4byte _0807AAF0 @ case 9
.4byte _0807AB0C @ case 10
.4byte _0807AB30 @ case 11
.4byte _0807AB4C @ case 12
_0807A908:
ldr r0, _0807A99C
ldrb r0, [r0]
cmp r0, #0
bne _0807A91C
ldr r1, _0807A9A0
ldr r2, _0807A9A4
adds r0, r2, #0
strh r0, [r1]
bl CloseLink
_0807A91C:
ldr r4, _0807A9A8
movs r5, #0x80
lsls r5, r5, #1
adds r0, r5, #0
bl AllocZeroed
str r0, [r4]
bl AllocateMonSpritesGfx
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, _0807A9AC
bl SetVBlankCallback
bl sub_0807ABCC
bl sub_0807A698
ldr r1, _0807A9B0
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x8c
strh r2, [r0]
adds r0, #8
strh r2, [r0]
adds r1, #0xee
movs r0, #1
strb r0, [r1]
ldr r3, [r4]
adds r0, r3, #0
adds r0, #0xd4
movs r1, #0x40
strh r1, [r0]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r2, [r0]
adds r0, #2
strh r2, [r0]
adds r1, r3, #0
adds r1, #0xdc
movs r0, #0x78
strh r0, [r1]
adds r1, #2
movs r0, #0x50
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xe8
strh r5, [r0]
adds r0, #4
strh r2, [r0]
b _0807AB72
.align 2, 0
_0807A99C: .4byte 0x030031C4
_0807A9A0: .4byte 0x0202267E
_0807A9A4: .4byte 0x00001144
_0807A9A8: .4byte 0x02031F40
_0807A9AC: .4byte 0x0807A681
_0807A9B0: .4byte 0x03002360
_0807A9B4:
ldr r0, _0807A9E0
ldrb r5, [r0]
cmp r5, #0
bne _0807A9EC
ldr r4, _0807A9E4
ldr r0, [r4]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
bl OpenLink
ldr r1, _0807A9E8
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
str r5, [r0, #0x64]
b _0807AB72
.align 2, 0
_0807A9E0: .4byte 0x030031C4
_0807A9E4: .4byte 0x02031F40
_0807A9E8: .4byte 0x03002360
_0807A9EC:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #4
strb r0, [r1]
b _0807AB72
_0807A9F8:
ldr r0, _0807AA14
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x3c
bhi _0807AA08
b _0807AB72
_0807AA08:
movs r0, #0
str r0, [r1, #0x64]
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
b _0807AB40
.align 2, 0
_0807AA14: .4byte 0x02031F40
_0807AA18:
bl IsLinkMaster
lsls r0, r0, #0x18
cmp r0, #0
bne _0807AA24
b _0807AB38
_0807AA24:
bl GetLinkPlayerCount_2
adds r4, r0, #0
bl GetSavedPlayerCount
lsls r4, r4, #0x18
lsls r0, r0, #0x18
cmp r4, r0
blo _0807AA5C
ldr r0, _0807AA54
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x1e
bhi _0807AA46
b _0807AB72
_0807AA46:
bl CheckShouldAdvanceLinkState
ldr r1, _0807AA58
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _0807AB40
.align 2, 0
_0807AA54: .4byte 0x02031F40
_0807AA58: .4byte 0x03002360
_0807AA5C:
bl sub_0807A6C0
b _0807AB72
_0807AA62:
bl sub_0807A6C0
ldr r0, _0807AA88
ldrb r0, [r0]
cmp r0, #1
beq _0807AA70
b _0807AB72
_0807AA70:
bl IsLinkPlayerDataExchangeComplete
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0807AA7E
b _0807AB72
_0807AA7E:
ldr r1, _0807AA8C
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _0807AB40
.align 2, 0
_0807AA88: .4byte 0x030031C4
_0807AA8C: .4byte 0x03002360
_0807AA90:
ldr r2, _0807AAB0
ldr r0, [r2]
adds r0, #0x72
movs r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x73
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x93
strb r1, [r0]
movs r0, #0
bl sub_0807A758
b _0807AB38
.align 2, 0
_0807AAB0: .4byte 0x02031F40
_0807AAB4:
movs r0, #0
movs r1, #1
bl sub_0807A758
ldr r1, _0807AAC8
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _0807AB40
.align 2, 0
_0807AAC8: .4byte 0x03002360
_0807AACC:
movs r0, #1
movs r1, #0
bl sub_0807A758
b _0807AB38
_0807AAD6:
movs r0, #1
movs r1, #1
bl sub_0807A758
bl sub_0807ABB0
ldr r1, _0807AAEC
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _0807AB40
.align 2, 0
_0807AAEC: .4byte 0x03002360
_0807AAF0:
bl sub_0807B4CC
ldr r0, _0807AB04
bl LoadSpriteSheet
ldr r0, _0807AB08
bl LoadSpritePalette
b _0807AB38
.align 2, 0
_0807AB04: .4byte 0x0830CF5C
_0807AB08: .4byte 0x0830CF64
_0807AB0C:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
movs r0, #0
bl ShowBg
ldr r1, _0807AB2C
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
b _0807AB40
.align 2, 0
_0807AB2C: .4byte 0x03002360
_0807AB30:
bl sub_0807AB9C
bl SetTradeSceneStrings
_0807AB38:
ldr r1, _0807AB48
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
_0807AB40:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0807AB72
.align 2, 0
_0807AB48: .4byte 0x03002360
_0807AB4C:
ldr r0, _0807AB90
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807AB72
ldr r0, _0807AB94
ldrb r0, [r0]
cmp r0, #0
beq _0807AB6C
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, #0
movs r1, #0
bl CreateWirelessStatusIndicatorSprite
_0807AB6C:
ldr r0, _0807AB98
bl SetMainCallback2
_0807AB72:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807AB90: .4byte 0x02037C74
_0807AB94: .4byte 0x0300319C
_0807AB98: .4byte 0x0807E465
thumb_func_end sub_0807A8AC
thumb_func_start sub_0807AB9C
sub_0807AB9C: @ 0x0807AB9C
push {lr}
movs r0, #5
bl sub_0807B064
movs r0, #0
bl sub_0807B064
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807AB9C
thumb_func_start sub_0807ABB0
sub_0807ABB0: @ 0x0807ABB0
push {lr}
movs r0, #0
movs r1, #0xff
bl FillWindowPixelBuffer
movs r0, #0
bl PutWindowTilemap
movs r0, #0
movs r1, #3
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_0807ABB0
thumb_func_start sub_0807ABCC
sub_0807ABCC: @ 0x0807ABCC
push {r4, r5, r6, lr}
mov r6, sl
mov r5, sb
mov r4, r8
push {r4, r5, r6}
sub sp, #4
movs r0, #0
movs r1, #0
bl SetGpuReg
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0807ACB4
movs r0, #0
movs r2, #4
bl InitBgsFromTemplates
movs r0, #0
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #0
movs r1, #0
movs r2, #0
bl ChangeBgY
movs r5, #0x80
lsls r5, r5, #4
adds r0, r5, #0
bl Alloc
adds r1, r0, #0
movs r0, #0
bl SetBgTilemapBuffer
adds r0, r5, #0
bl Alloc
adds r1, r0, #0
movs r0, #1
bl SetBgTilemapBuffer
adds r0, r5, #0
bl Alloc
adds r1, r0, #0
movs r0, #3
bl SetBgTilemapBuffer
bl DeactivateAllTextPrinters
movs r0, #0x8c
lsls r0, r0, #0x14
mov sl, r0
movs r0, #0
mov sb, r0
str r0, [sp]
mov r1, sl
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
ldr r0, _0807ACB8
mov r8, r0
ldr r4, _0807ACBC
adds r1, r4, #0
bl LZDecompressVram
movs r0, #0
adds r1, r4, #0
adds r2, r5, #0
movs r3, #0
bl CopyToBgTilemapBuffer
ldr r6, _0807ACC0
adds r0, r6, #0
movs r1, #0
movs r2, #0x20
bl LoadCompressedPalette
ldr r0, _0807ACC4
bl InitWindows
mov r0, sb
str r0, [sp]
movs r0, #0
mov r1, sl
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
mov r0, r8
adds r1, r4, #0
bl LZDecompressVram
movs r0, #0
adds r1, r4, #0
adds r2, r5, #0
movs r3, #0
bl CopyToBgTilemapBuffer
adds r0, r6, #0
movs r1, #0
movs r2, #0x20
bl LoadCompressedPalette
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807ACB4: .4byte 0x0830D294
_0807ACB8: .4byte 0x08C00530
_0807ACBC: .4byte 0x0201C000
_0807ACC0: .4byte 0x08C004EC
_0807ACC4: .4byte 0x0830D27C
thumb_func_end sub_0807ABCC
thumb_func_start sub_0807ACC8
sub_0807ACC8: @ 0x0807ACC8
push {r4, r5, r6, lr}
sub sp, #0xc
ldr r0, _0807ACE8
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0xc
bls _0807ACDC
b _0807AE7A
_0807ACDC:
lsls r0, r0, #2
ldr r1, _0807ACEC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807ACE8: .4byte 0x03002360
_0807ACEC: .4byte 0x0807ACF0
_0807ACF0: @ jump table
.4byte _0807AD24 @ case 0
.4byte _0807AE7A @ case 1
.4byte _0807AE7A @ case 2
.4byte _0807AE7A @ case 3
.4byte _0807AE7A @ case 4
.4byte _0807ADE8 @ case 5
.4byte _0807ADF2 @ case 6
.4byte _0807ADFC @ case 7
.4byte _0807AE0C @ case 8
.4byte _0807AE2C @ case 9
.4byte _0807AE48 @ case 10
.4byte _0807AE50 @ case 11
.4byte _0807AE74 @ case 12
_0807AD24:
ldr r1, _0807ADC8
ldr r0, _0807ADCC
ldrh r0, [r0]
movs r5, #0
strb r0, [r1]
movs r0, #6
strb r0, [r1, #1]
ldr r4, _0807ADD0
ldr r0, _0807ADD4
ldr r1, [r0]
adds r0, r4, #0
bl StringCopy
ldr r0, _0807ADD8
movs r1, #7
mov r2, sp
bl GetMonData
adds r4, #0x1c
adds r0, r4, #0
mov r1, sp
bl StringCopy
ldr r4, _0807ADDC
movs r6, #0x80
lsls r6, r6, #1
adds r0, r6, #0
bl AllocZeroed
str r0, [r4]
bl AllocateMonSpritesGfx
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, _0807ADE0
bl SetVBlankCallback
bl sub_0807ABCC
ldr r0, [r4]
adds r0, #0xee
strb r5, [r0]
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x8c
strh r5, [r0]
adds r0, #8
strh r5, [r0]
adds r0, #0x40
movs r1, #0x40
strh r1, [r0]
adds r0, #2
strh r1, [r0]
adds r0, #2
strh r5, [r0]
adds r0, #2
strh r5, [r0]
adds r1, r2, #0
adds r1, #0xdc
movs r0, #0x78
strh r0, [r1]
adds r1, #2
movs r0, #0x50
strh r0, [r1]
adds r0, r2, #0
adds r0, #0xe8
strh r6, [r0]
adds r0, #4
strh r5, [r0]
str r5, [r2, #0x64]
ldr r0, _0807ADE4
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
b _0807AE7A
.align 2, 0
_0807ADC8: .4byte 0x02031F38
_0807ADCC: .4byte 0x02037282
_0807ADD0: .4byte 0x020226A8
_0807ADD4: .4byte 0x03005AF0
_0807ADD8: .4byte 0x020243E8
_0807ADDC: .4byte 0x02031F40
_0807ADE0: .4byte 0x0807A681
_0807ADE4: .4byte 0x03002360
_0807ADE8:
movs r0, #0
movs r1, #0
bl sub_0807A758
b _0807AE60
_0807ADF2:
movs r0, #0
movs r1, #1
bl sub_0807A758
b _0807AE60
_0807ADFC:
movs r0, #1
movs r1, #0
bl sub_0807A758
movs r0, #0
bl ShowBg
b _0807AE60
_0807AE0C:
movs r0, #1
movs r1, #1
bl sub_0807A758
movs r0, #0
movs r1, #0xff
bl FillWindowPixelBuffer
movs r0, #0
bl PutWindowTilemap
movs r0, #0
movs r1, #3
bl CopyWindowToVram
b _0807AE60
_0807AE2C:
bl sub_0807B4CC
ldr r0, _0807AE40
bl LoadSpriteSheet
ldr r0, _0807AE44
bl LoadSpritePalette
b _0807AE60
.align 2, 0
_0807AE40: .4byte 0x0830CF5C
_0807AE44: .4byte 0x0830CF64
_0807AE48:
movs r0, #0
bl ShowBg
b _0807AE60
_0807AE50:
movs r0, #5
bl sub_0807B064
movs r0, #0
bl sub_0807B064
bl SetTradeSceneStrings
_0807AE60:
ldr r1, _0807AE70
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0807AE7A
.align 2, 0
_0807AE70: .4byte 0x03002360
_0807AE74:
ldr r0, _0807AE98
bl SetMainCallback2
_0807AE7A:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807AE98: .4byte 0x0807B045
thumb_func_end sub_0807ACC8
thumb_func_start sub_0807AE9C
sub_0807AE9C: @ 0x0807AE9C
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x64
muls r1, r0, r1
ldr r0, _0807AEF8
adds r5, r1, r0
adds r0, r5, #0
movs r1, #0x2d
bl GetMonData
cmp r0, #0
bne _0807AEF0
adds r0, r5, #0
movs r1, #0xb
movs r2, #0
bl GetMonData
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r5, #0
movs r1, #0
movs r2, #0
bl GetMonData
adds r5, r0, #0
adds r0, r4, #0
bl HoennToNationalOrder
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #2
bl GetSetPokedexFlag
adds r0, r4, #0
movs r1, #3
adds r2, r5, #0
bl HandleSetPokedexFlag
_0807AEF0:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807AEF8: .4byte 0x02024190
thumb_func_end sub_0807AE9C
thumb_func_start sub_0807AEFC
sub_0807AEFC: @ 0x0807AEFC
push {lr}
bl GetMultiplayerId
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807AEFC
thumb_func_start sub_0807AF08
sub_0807AF08: @ 0x0807AF08
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r4, r1, #0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sb, r0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
movs r5, #0x64
mov r1, sb
muls r1, r5, r1
ldr r0, _0807AFD4
adds r7, r1, r0
adds r0, r7, #0
movs r1, #0x40
bl GetMonData
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r1, r4, #0
muls r1, r5, r1
ldr r0, _0807AFD8
adds r5, r1, r0
adds r0, r5, #0
movs r1, #0x40
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
cmp r6, #0xff
beq _0807AF62
ldr r0, _0807AFDC
lsls r1, r6, #3
adds r1, r1, r6
lsls r1, r1, #2
ldr r2, _0807AFE0
adds r1, r1, r2
ldr r0, [r0]
adds r0, r0, r1
bl ClearMailStruct
_0807AF62:
ldr r4, _0807AFE4
ldr r0, [r4]
adds r1, r7, #0
movs r2, #0x64
bl memcpy
adds r0, r7, #0
adds r1, r5, #0
movs r2, #0x64
bl memcpy
ldr r1, [r4]
adds r0, r5, #0
movs r2, #0x64
bl memcpy
movs r1, #0x46
mov r0, sp
strb r1, [r0]
adds r0, r7, #0
movs r1, #0x2d
bl GetMonData
cmp r0, #0
bne _0807AF9E
adds r0, r7, #0
movs r1, #0x20
mov r2, sp
bl SetMonData
_0807AF9E:
mov r0, r8
cmp r0, #0xff
beq _0807AFB4
lsls r1, r0, #3
add r1, r8
lsls r1, r1, #2
ldr r0, _0807AFE8
adds r1, r1, r0
adds r0, r7, #0
bl GiveMailToMon2
_0807AFB4:
mov r0, sb
bl sub_0807AE9C
ldr r0, _0807AFEC
ldrb r0, [r0]
cmp r0, #0
beq _0807AFC6
bl sub_0807AEFC
_0807AFC6:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807AFD4: .4byte 0x02024190
_0807AFD8: .4byte 0x020243E8
_0807AFDC: .4byte 0x03005AEC
_0807AFE0: .4byte 0x00002BE0
_0807AFE4: .4byte 0x02031F40
_0807AFE8: .4byte 0x02031E60
_0807AFEC: .4byte 0x030031C4
thumb_func_end sub_0807AF08
thumb_func_start sub_0807AFF0
sub_0807AFF0: @ 0x0807AFF0
push {r4, lr}
ldr r4, _0807B004
ldr r0, [r4]
adds r0, #0x93
ldrb r0, [r0]
cmp r0, #1
beq _0807B008
cmp r0, #2
beq _0807B02E
b _0807B038
.align 2, 0
_0807B004: .4byte 0x02031F40
_0807B008:
bl IsLinkTaskFinished
lsls r0, r0, #0x18
cmp r0, #0
beq _0807B02E
bl bitmask_all_link_players_but_self
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, [r4]
adds r1, #0x74
movs r2, #0x14
bl SendBlock
ldr r1, [r4]
adds r1, #0x93
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0807B02E:
ldr r0, _0807B040
ldr r0, [r0]
adds r0, #0x93
movs r1, #0
strb r1, [r0]
_0807B038:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807B040: .4byte 0x02031F40
thumb_func_end sub_0807AFF0
thumb_func_start sub_0807B044
sub_0807B044: @ 0x0807B044
push {lr}
bl sub_0807B600
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807B044
thumb_func_start sub_0807B064
sub_0807B064: @ 0x0807B064
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bls _0807B070
b _0807B4A0
_0807B070:
lsls r0, r0, #2
ldr r1, _0807B07C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807B07C: .4byte 0x0807B080
_0807B080: @ jump table
.4byte _0807B0A0 @ case 0
.4byte _0807B114 @ case 1
.4byte _0807B1BC @ case 2
.4byte _0807B230 @ case 3
.4byte _0807B278 @ case 4
.4byte _0807B344 @ case 5
.4byte _0807B35C @ case 6
.4byte _0807B434 @ case 7
_0807B0A0:
ldr r0, _0807B0F8
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0xe4
movs r0, #0
strh r0, [r2]
adds r1, #0xe6
movs r0, #0xb4
strh r0, [r1]
movs r1, #0xaa
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r1, _0807B0FC
movs r0, #0xc
bl SetGpuReg
ldr r0, _0807B100
movs r1, #0x10
movs r2, #0x60
bl LoadPalette
ldr r3, _0807B104
ldr r4, _0807B108
movs r5, #0xa1
lsls r5, r5, #5
ldr r1, _0807B10C
ldr r6, _0807B110
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x80
lsls r7, r7, #0x18
_0807B0E2:
str r3, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r3, r3, r2
adds r4, r4, r2
subs r5, r5, r2
cmp r5, r2
bhi _0807B0E2
b _0807B484
.align 2, 0
_0807B0F8: .4byte 0x02031F40
_0807B0FC: .4byte 0x00005206
_0807B100: .4byte 0x08305D24
_0807B104: .4byte 0x08305D84
_0807B108: .4byte 0x06004000
_0807B10C: .4byte 0x040000D4
_0807B110: .4byte 0x80000800
_0807B114:
ldr r4, _0807B14C
ldr r2, [r4]
adds r1, r2, #0
adds r1, #0xe2
movs r0, #0
strh r0, [r1]
adds r2, #0xe0
movs r1, #0xae
lsls r1, r1, #1
strh r1, [r2]
movs r0, #0x16
bl SetGpuReg
ldr r1, _0807B150
movs r0, #0xa
bl SetGpuReg
ldr r1, _0807B154
movs r0, #0xc
bl SetGpuReg
ldr r0, [r4]
adds r0, #0xfa
ldrb r0, [r0]
cmp r0, #0
beq _0807B15C
ldr r1, _0807B158
b _0807B15E
.align 2, 0
_0807B14C: .4byte 0x02031F40
_0807B150: .4byte 0x00008502
_0807B154: .4byte 0x00009206
_0807B158: .4byte 0x0830ABE4
_0807B15C:
ldr r1, _0807B1A8
_0807B15E:
ldr r2, _0807B1AC
ldr r0, _0807B1B0
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B1B4
str r1, [r0, #8]
ldr r0, [r0, #8]
ldr r3, _0807B1B8
movs r4, #0xc0
lsls r4, r4, #0x13
movs r5, #0xa1
lsls r5, r5, #5
ldr r1, _0807B1B0
ldr r6, _0807B1B4
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x80
lsls r7, r7, #0x18
_0807B182:
str r3, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r3, r3, r2
adds r4, r4, r2
subs r5, r5, r2
cmp r5, r2
bhi _0807B182
str r3, [r1]
str r4, [r1, #4]
lsrs r0, r5, #1
orrs r0, r7
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r1, #0x92
lsls r1, r1, #5
b _0807B258
.align 2, 0
_0807B1A8: .4byte 0x08309BE4
_0807B1AC: .4byte 0x06002800
_0807B1B0: .4byte 0x040000D4
_0807B1B4: .4byte 0x80000800
_0807B1B8: .4byte 0x08305D84
_0807B1BC:
ldr r0, _0807B1E8
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0xe0
movs r1, #0
strh r1, [r0]
adds r0, #2
strh r1, [r0]
adds r0, #0x18
ldrb r0, [r0]
cmp r0, #0
bne _0807B1F8
ldr r1, _0807B1EC
movs r0, #0
bl SetGpuReg
ldr r0, _0807B1F0
ldr r1, _0807B1F4
bl LZ77UnCompVram
movs r0, #8
b _0807B212
.align 2, 0
_0807B1E8: .4byte 0x02031F40
_0807B1EC: .4byte 0x00001241
_0807B1F0: .4byte 0x0830BBE4
_0807B1F4: .4byte 0x06002800
_0807B1F8:
ldr r1, _0807B21C
movs r0, #0
bl SetGpuReg
ldr r1, _0807B220
ldr r2, _0807B224
ldr r0, _0807B228
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B22C
str r1, [r0, #8]
ldr r0, [r0, #8]
movs r0, #1
_0807B212:
movs r1, #0x10
movs r2, #0
bl BlendPalettes
b _0807B4A0
.align 2, 0
_0807B21C: .4byte 0x00001241
_0807B220: .4byte 0x08302D64
_0807B224: .4byte 0x06002800
_0807B228: .4byte 0x040000D4
_0807B22C: .4byte 0x80000400
_0807B230:
ldr r0, _0807B260
movs r1, #0x30
movs r2, #0x20
bl LoadPalette
ldr r0, _0807B264
ldr r1, _0807B268
bl LZ77UnCompVram
ldr r0, _0807B26C
ldr r1, _0807B270
bl LZ77UnCompVram
ldr r0, _0807B274
ldr r0, [r0]
adds r0, #0xe4
movs r1, #0x50
strh r1, [r0]
movs r1, #0xb2
lsls r1, r1, #5
_0807B258:
movs r0, #0
bl SetGpuReg
b _0807B4A0
.align 2, 0
_0807B260: .4byte 0x0830C0E4
_0807B264: .4byte 0x0830C104
_0807B268: .4byte 0x06004000
_0807B26C: .4byte 0x0830C794
_0807B270: .4byte 0x06009000
_0807B274: .4byte 0x02031F40
_0807B278:
ldr r1, _0807B2FC
movs r0, #0
bl SetGpuReg
ldr r1, _0807B300
movs r0, #0xc
bl SetGpuReg
ldr r0, _0807B304
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0xd4
movs r2, #0
movs r0, #0x40
strh r0, [r1]
adds r1, #2
movs r0, #0x5c
strh r0, [r1]
adds r1, #0x12
movs r0, #0x20
strh r0, [r1]
adds r1, #2
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xec
strh r2, [r0]
ldr r3, _0807B308
ldr r4, _0807B30C
movs r5, #0xa1
lsls r5, r5, #6
ldr r1, _0807B310
ldr r6, _0807B314
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x80
lsls r7, r7, #0x18
_0807B2C4:
str r3, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r3, r3, r2
adds r4, r4, r2
subs r5, r5, r2
cmp r5, r2
bhi _0807B2C4
str r3, [r1]
str r4, [r1, #4]
lsrs r0, r5, #1
orrs r0, r7
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0807B304
ldr r0, [r0]
adds r0, #0xfa
ldrb r0, [r0]
cmp r0, #0
beq _0807B324
ldr r1, _0807B318
ldr r2, _0807B31C
ldr r0, _0807B310
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B320
b _0807B49C
.align 2, 0
_0807B2FC: .4byte 0x00001441
_0807B300: .4byte 0x00001287
_0807B304: .4byte 0x02031F40
_0807B308: .4byte 0x083071A4
_0807B30C: .4byte 0x06004000
_0807B310: .4byte 0x040000D4
_0807B314: .4byte 0x80000800
_0807B318: .4byte 0x083099E4
_0807B31C: .4byte 0x06009000
_0807B320: .4byte 0x80000080
_0807B324:
ldr r1, _0807B334
ldr r2, _0807B338
ldr r0, _0807B33C
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B340
b _0807B49C
.align 2, 0
_0807B334: .4byte 0x08309AE4
_0807B338: .4byte 0x06009000
_0807B33C: .4byte 0x040000D4
_0807B340: .4byte 0x80000080
_0807B344:
ldr r0, _0807B358
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0xe0
movs r2, #0
strh r2, [r1]
adds r0, #0xe2
strh r2, [r0]
b _0807B4A0
.align 2, 0
_0807B358: .4byte 0x02031F40
_0807B35C:
ldr r1, _0807B3EC
movs r0, #0
bl SetGpuReg
ldr r1, _0807B3F0
movs r0, #0xc
bl SetGpuReg
ldr r0, _0807B3F4
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0xd4
movs r2, #0
movs r0, #0x40
strh r0, [r1]
adds r1, #2
movs r0, #0x5c
strh r0, [r1]
adds r1, #0x12
adds r0, #0xa4
strh r0, [r1]
adds r1, #2
movs r0, #0x80
strh r0, [r1]
subs r1, #0xe
movs r0, #0x78
strh r0, [r1]
adds r1, #2
movs r0, #0x50
strh r0, [r1]
adds r0, r3, #0
adds r0, #0xec
strh r2, [r0]
ldr r3, _0807B3F8
ldr r4, _0807B3FC
movs r5, #0xa1
lsls r5, r5, #6
ldr r1, _0807B400
ldr r6, _0807B404
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x80
lsls r7, r7, #0x18
_0807B3B2:
str r3, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r3, r3, r2
adds r4, r4, r2
subs r5, r5, r2
cmp r5, r2
bhi _0807B3B2
str r3, [r1]
str r4, [r1, #4]
lsrs r0, r5, #1
orrs r0, r7
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _0807B3F4
ldr r0, [r0]
adds r0, #0xfa
ldrb r0, [r0]
cmp r0, #0
beq _0807B414
ldr r1, _0807B408
ldr r2, _0807B40C
ldr r0, _0807B400
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B410
b _0807B49C
.align 2, 0
_0807B3EC: .4byte 0x00001441
_0807B3F0: .4byte 0x00001287
_0807B3F4: .4byte 0x02031F40
_0807B3F8: .4byte 0x083071A4
_0807B3FC: .4byte 0x06004000
_0807B400: .4byte 0x040000D4
_0807B404: .4byte 0x80000800
_0807B408: .4byte 0x083099E4
_0807B40C: .4byte 0x06009000
_0807B410: .4byte 0x80000080
_0807B414:
ldr r1, _0807B424
ldr r2, _0807B428
ldr r0, _0807B42C
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B430
b _0807B49C
.align 2, 0
_0807B424: .4byte 0x08309AE4
_0807B428: .4byte 0x06009000
_0807B42C: .4byte 0x040000D4
_0807B430: .4byte 0x80000080
_0807B434:
ldr r0, _0807B4A8
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0xe4
movs r2, #0
strh r2, [r1]
adds r0, #0xe6
strh r2, [r0]
movs r0, #0x50
movs r1, #0
bl SetGpuReg
ldr r1, _0807B4AC
movs r0, #0xc
bl SetGpuReg
ldr r0, _0807B4B0
movs r1, #0x10
movs r2, #0x60
bl LoadPalette
ldr r3, _0807B4B4
ldr r4, _0807B4B8
movs r5, #0xa1
lsls r5, r5, #5
ldr r1, _0807B4BC
ldr r6, _0807B4C0
movs r2, #0x80
lsls r2, r2, #5
movs r7, #0x80
lsls r7, r7, #0x18
_0807B472:
str r3, [r1]
str r4, [r1, #4]
str r6, [r1, #8]
ldr r0, [r1, #8]
adds r3, r3, r2
adds r4, r4, r2
subs r5, r5, r2
cmp r5, r2
bhi _0807B472
_0807B484:
str r3, [r1]
str r4, [r1, #4]
lsrs r0, r5, #1
orrs r0, r7
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0807B4C4
ldr r2, _0807B4C8
ldr r0, _0807B4BC
str r1, [r0]
str r2, [r0, #4]
ldr r1, _0807B4C0
_0807B49C:
str r1, [r0, #8]
ldr r0, [r0, #8]
_0807B4A0:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807B4A8: .4byte 0x02031F40
_0807B4AC: .4byte 0x00005206
_0807B4B0: .4byte 0x08305D24
_0807B4B4: .4byte 0x08305D84
_0807B4B8: .4byte 0x06004000
_0807B4BC: .4byte 0x040000D4
_0807B4C0: .4byte 0x80000800
_0807B4C4: .4byte 0x08304D04
_0807B4C8: .4byte 0x06009000
thumb_func_end sub_0807B064
thumb_func_start sub_0807B4CC
sub_0807B4CC: @ 0x0807B4CC
push {lr}
ldr r0, _0807B4F8
bl LoadSpriteSheet
ldr r0, _0807B4FC
bl LoadSpriteSheet
ldr r0, _0807B500
bl LoadSpriteSheet
ldr r0, _0807B504
bl LoadSpriteSheet
ldr r0, _0807B508
bl LoadSpritePalette
ldr r0, _0807B50C
bl LoadSpritePalette
pop {r0}
bx r0
.align 2, 0
_0807B4F8: .4byte 0x0830CFB4
_0807B4FC: .4byte 0x0830D004
_0807B500: .4byte 0x0830D038
_0807B504: .4byte 0x0830D0B0
_0807B508: .4byte 0x0830CFBC
_0807B50C: .4byte 0x0830CFC4
thumb_func_end sub_0807B4CC
thumb_func_start SetTradeSceneStrings
SetTradeSceneStrings: @ 0x0807B510
push {r4, r5, lr}
sub sp, #0x14
ldr r0, _0807B580
ldr r0, [r0]
adds r0, #0xee
ldrb r0, [r0]
cmp r0, #0
beq _0807B5A0
bl GetMultiplayerId
lsls r0, r0, #0x18
ldr r3, _0807B584
movs r2, #0x80
lsls r2, r2, #0x11
eors r2, r0
lsrs r2, r2, #0x18
lsls r1, r2, #3
subs r1, r1, r2
lsls r1, r1, #2
ldr r0, _0807B588
adds r1, r1, r0
adds r0, r3, #0
bl StringCopy
ldr r5, _0807B58C
ldrb r0, [r5, #1]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r4, #0x64
muls r0, r4, r0
ldr r1, _0807B590
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0807B594
mov r1, sp
bl StringCopy10
ldrb r0, [r5]
muls r0, r4, r0
ldr r1, _0807B598
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0807B59C
mov r1, sp
bl StringCopy10
b _0807B5DC
.align 2, 0
_0807B580: .4byte 0x02031F40
_0807B584: .4byte 0x02021C40
_0807B588: .4byte 0x020226A8
_0807B58C: .4byte 0x02031F38
_0807B590: .4byte 0x020243E8
_0807B594: .4byte 0x02021C68
_0807B598: .4byte 0x02024190
_0807B59C: .4byte 0x02021C54
_0807B5A0:
ldr r0, _0807B5E4
ldrh r0, [r0]
lsls r4, r0, #4
subs r4, r4, r0
lsls r4, r4, #2
ldr r0, _0807B5E8
adds r4, r4, r0
ldr r0, _0807B5EC
adds r1, r4, #0
adds r1, #0x2b
bl StringCopy
ldr r0, _0807B5F0
adds r1, r4, #0
bl StringCopy10
ldr r0, _0807B5F4
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0807B5F8
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0807B5FC
mov r1, sp
bl StringCopy10
_0807B5DC:
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807B5E4: .4byte 0x02037280
_0807B5E8: .4byte 0x0830D114
_0807B5EC: .4byte 0x02021C40
_0807B5F0: .4byte 0x02021C68
_0807B5F4: .4byte 0x02037282
_0807B5F8: .4byte 0x02024190
_0807B5FC: .4byte 0x02021C54
thumb_func_end SetTradeSceneStrings
thumb_func_start sub_0807B600
sub_0807B600: @ 0x0807B600
push {lr}
ldr r0, _0807B614
ldr r0, [r0]
adds r0, #0xfa
ldrb r0, [r0]
cmp r0, #0
bne _0807B618
bl sub_0807CA00
b _0807B61C
.align 2, 0
_0807B614: .4byte 0x02031F40
_0807B618:
bl sub_0807B624
_0807B61C:
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
thumb_func_end sub_0807B600
thumb_func_start sub_0807B624
sub_0807B624: @ 0x0807B624
push {r4, r5, r6, r7, lr}
sub sp, #0x14
ldr r0, _0807B648
ldr r1, [r0]
adds r1, #0x94
ldrh r5, [r1]
ldr r1, _0807B64C
adds r7, r0, #0
cmp r5, r1
bls _0807B63C
bl _0807C9EC
_0807B63C:
lsls r0, r5, #2
ldr r1, _0807B650
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807B648: .4byte 0x02031F40
_0807B64C: .4byte 0x0000010B
_0807B650: .4byte 0x0807B654
_0807B654: @ jump table
.4byte _0807BA84 @ case 0
.4byte _0807BAFC @ case 1
.4byte _0807C9EC @ case 2
.4byte _0807C9EC @ case 3
.4byte _0807C9EC @ case 4
.4byte _0807C9EC @ case 5
.4byte _0807C9EC @ case 6
.4byte _0807C9EC @ case 7
.4byte _0807C9EC @ case 8
.4byte _0807C9EC @ case 9
.4byte _0807BB58 @ case 10
.4byte _0807BBA0 @ case 11
.4byte _0807BC14 @ case 12
.4byte _0807C9EC @ case 13
.4byte _0807BC80 @ case 14
.4byte _0807C9EC @ case 15
.4byte _0807C9EC @ case 16
.4byte _0807C9EC @ case 17
.4byte _0807C9EC @ case 18
.4byte _0807C9EC @ case 19
.4byte _0807BCA4 @ case 20
.4byte _0807BCD4 @ case 21
.4byte _0807BCE6 @ case 22
.4byte _0807BD08 @ case 23
.4byte _0807BD50 @ case 24
.4byte _0807BD80 @ case 25
.4byte _0807BDC8 @ case 26
.4byte _0807BE18 @ case 27
.4byte _0807BE6C @ case 28
.4byte _0807BEF0 @ case 29
.4byte _0807BF14 @ case 30
.4byte _0807BF60 @ case 31
.4byte _0807BFAC @ case 32
.4byte _0807C008 @ case 33
.4byte _0807C068 @ case 34
.4byte _0807C07C @ case 35
.4byte _0807C090 @ case 36
.4byte _0807C0A4 @ case 37
.4byte _0807C1CC @ case 38
.4byte _0807C29C @ case 39
.4byte _0807C324 @ case 40
.4byte _0807C39C @ case 41
.4byte _0807C3AC @ case 42
.4byte _0807C3CC @ case 43
.4byte _0807C41C @ case 44
.4byte _0807C43A @ case 45
.4byte _0807C478 @ case 46
.4byte _0807C488 @ case 47
.4byte _0807C500 @ case 48
.4byte _0807C9EC @ case 49
.4byte _0807C528 @ case 50
.4byte _0807C568 @ case 51
.4byte _0807C5A8 @ case 52
.4byte _0807C9EC @ case 53
.4byte _0807C9EC @ case 54
.4byte _0807C9EC @ case 55
.4byte _0807C9EC @ case 56
.4byte _0807C9EC @ case 57
.4byte _0807C9EC @ case 58
.4byte _0807C9EC @ case 59
.4byte _0807C5C8 @ case 60
.4byte _0807C5F0 @ case 61
.4byte _0807C60C @ case 62
.4byte _0807C62C @ case 63
.4byte _0807C6D4 @ case 64
.4byte _0807C708 @ case 65
.4byte _0807C754 @ case 66
.4byte _0807C814 @ case 67
.4byte _0807C88C @ case 68
.4byte _0807C8D8 @ case 69
.4byte _0807C8E8 @ case 70
.4byte _0807C8EE @ case 71
.4byte _0807C914 @ case 72
.4byte _0807C970 @ case 73
.4byte _0807C994 @ case 74
.4byte _0807C9EC @ case 75
.4byte _0807C9EC @ case 76
.4byte _0807C9EC @ case 77
.4byte _0807C9EC @ case 78
.4byte _0807C9EC @ case 79
.4byte _0807C9EC @ case 80
.4byte _0807C9EC @ case 81
.4byte _0807C9EC @ case 82
.4byte _0807C9EC @ case 83
.4byte _0807C9EC @ case 84
.4byte _0807C9EC @ case 85
.4byte _0807C9EC @ case 86
.4byte _0807C9EC @ case 87
.4byte _0807C9EC @ case 88
.4byte _0807C9EC @ case 89
.4byte _0807C9EC @ case 90
.4byte _0807C9EC @ case 91
.4byte _0807C9EC @ case 92
.4byte _0807C9EC @ case 93
.4byte _0807C9EC @ case 94
.4byte _0807C9EC @ case 95
.4byte _0807C9EC @ case 96
.4byte _0807C9EC @ case 97
.4byte _0807C9EC @ case 98
.4byte _0807C9EC @ case 99
.4byte _0807C9EC @ case 100
.4byte _0807C9EC @ case 101
.4byte _0807C9EC @ case 102
.4byte _0807C9EC @ case 103
.4byte _0807C9EC @ case 104
.4byte _0807C9EC @ case 105
.4byte _0807C9EC @ case 106
.4byte _0807C9EC @ case 107
.4byte _0807C9EC @ case 108
.4byte _0807C9EC @ case 109
.4byte _0807C9EC @ case 110
.4byte _0807C9EC @ case 111
.4byte _0807C9EC @ case 112
.4byte _0807C9EC @ case 113
.4byte _0807C9EC @ case 114
.4byte _0807C9EC @ case 115
.4byte _0807C9EC @ case 116
.4byte _0807C9EC @ case 117
.4byte _0807C9EC @ case 118
.4byte _0807C9EC @ case 119
.4byte _0807C9EC @ case 120
.4byte _0807C9EC @ case 121
.4byte _0807C9EC @ case 122
.4byte _0807C9EC @ case 123
.4byte _0807C9EC @ case 124
.4byte _0807C9EC @ case 125
.4byte _0807C9EC @ case 126
.4byte _0807C9EC @ case 127
.4byte _0807C9EC @ case 128
.4byte _0807C9EC @ case 129
.4byte _0807C9EC @ case 130
.4byte _0807C9EC @ case 131
.4byte _0807C9EC @ case 132
.4byte _0807C9EC @ case 133
.4byte _0807C9EC @ case 134
.4byte _0807C9EC @ case 135
.4byte _0807C9EC @ case 136
.4byte _0807C9EC @ case 137
.4byte _0807C9EC @ case 138
.4byte _0807C9EC @ case 139
.4byte _0807C9EC @ case 140
.4byte _0807C9EC @ case 141
.4byte _0807C9EC @ case 142
.4byte _0807C9EC @ case 143
.4byte _0807C9EC @ case 144
.4byte _0807C9EC @ case 145
.4byte _0807C9EC @ case 146
.4byte _0807C9EC @ case 147
.4byte _0807C9EC @ case 148
.4byte _0807C9EC @ case 149
.4byte _0807C9EC @ case 150
.4byte _0807C9EC @ case 151
.4byte _0807C9EC @ case 152
.4byte _0807C9EC @ case 153
.4byte _0807C9EC @ case 154
.4byte _0807C9EC @ case 155
.4byte _0807C9EC @ case 156
.4byte _0807C9EC @ case 157
.4byte _0807C9EC @ case 158
.4byte _0807C9EC @ case 159
.4byte _0807C9EC @ case 160
.4byte _0807C9EC @ case 161
.4byte _0807C9EC @ case 162
.4byte _0807C9EC @ case 163
.4byte _0807C9EC @ case 164
.4byte _0807C9EC @ case 165
.4byte _0807C9EC @ case 166
.4byte _0807C850 @ case 167
.4byte _0807C9EC @ case 168
.4byte _0807C9EC @ case 169
.4byte _0807C9EC @ case 170
.4byte _0807C9EC @ case 171
.4byte _0807C9EC @ case 172
.4byte _0807C9EC @ case 173
.4byte _0807C9EC @ case 174
.4byte _0807C9EC @ case 175
.4byte _0807C9EC @ case 176
.4byte _0807C9EC @ case 177
.4byte _0807C9EC @ case 178
.4byte _0807C9EC @ case 179
.4byte _0807C9EC @ case 180
.4byte _0807C9EC @ case 181
.4byte _0807C9EC @ case 182
.4byte _0807C9EC @ case 183
.4byte _0807C9EC @ case 184
.4byte _0807C9EC @ case 185
.4byte _0807C9EC @ case 186
.4byte _0807C9EC @ case 187
.4byte _0807C9EC @ case 188
.4byte _0807C9EC @ case 189
.4byte _0807C9EC @ case 190
.4byte _0807C9EC @ case 191
.4byte _0807C9EC @ case 192
.4byte _0807C9EC @ case 193
.4byte _0807C9EC @ case 194
.4byte _0807C9EC @ case 195
.4byte _0807C9EC @ case 196
.4byte _0807C9EC @ case 197
.4byte _0807C9EC @ case 198
.4byte _0807C9EC @ case 199
.4byte _0807BE98 @ case 200
.4byte _0807C9EC @ case 201
.4byte _0807C9EC @ case 202
.4byte _0807C9EC @ case 203
.4byte _0807C9EC @ case 204
.4byte _0807C9EC @ case 205
.4byte _0807C9EC @ case 206
.4byte _0807C9EC @ case 207
.4byte _0807C9EC @ case 208
.4byte _0807C9EC @ case 209
.4byte _0807C9EC @ case 210
.4byte _0807C9EC @ case 211
.4byte _0807C9EC @ case 212
.4byte _0807C9EC @ case 213
.4byte _0807C9EC @ case 214
.4byte _0807C9EC @ case 215
.4byte _0807C9EC @ case 216
.4byte _0807C9EC @ case 217
.4byte _0807C9EC @ case 218
.4byte _0807C9EC @ case 219
.4byte _0807C9EC @ case 220
.4byte _0807C9EC @ case 221
.4byte _0807C9EC @ case 222
.4byte _0807C9EC @ case 223
.4byte _0807C9EC @ case 224
.4byte _0807C9EC @ case 225
.4byte _0807C9EC @ case 226
.4byte _0807C9EC @ case 227
.4byte _0807C9EC @ case 228
.4byte _0807C9EC @ case 229
.4byte _0807C9EC @ case 230
.4byte _0807C9EC @ case 231
.4byte _0807C9EC @ case 232
.4byte _0807C9EC @ case 233
.4byte _0807C9EC @ case 234
.4byte _0807C9EC @ case 235
.4byte _0807C9EC @ case 236
.4byte _0807C9EC @ case 237
.4byte _0807C9EC @ case 238
.4byte _0807C9EC @ case 239
.4byte _0807C9EC @ case 240
.4byte _0807C9EC @ case 241
.4byte _0807C9EC @ case 242
.4byte _0807C9EC @ case 243
.4byte _0807C9EC @ case 244
.4byte _0807C9EC @ case 245
.4byte _0807C9EC @ case 246
.4byte _0807C9EC @ case 247
.4byte _0807C9EC @ case 248
.4byte _0807C9EC @ case 249
.4byte _0807C9EC @ case 250
.4byte _0807C9EC @ case 251
.4byte _0807C9EC @ case 252
.4byte _0807C9EC @ case 253
.4byte _0807C9EC @ case 254
.4byte _0807C9EC @ case 255
.4byte _0807C9EC @ case 256
.4byte _0807C9EC @ case 257
.4byte _0807C9EC @ case 258
.4byte _0807C9EC @ case 259
.4byte _0807C9EC @ case 260
.4byte _0807C9EC @ case 261
.4byte _0807C9EC @ case 262
.4byte _0807C9EC @ case 263
.4byte _0807C9EC @ case 264
.4byte _0807C9EC @ case 265
.4byte _0807C9EC @ case 266
.4byte _0807C870 @ case 267
_0807BA84:
ldr r3, _0807BAEC
ldr r0, [r7]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r1, _0807BAF0
strh r1, [r0, #0x24]
ldrb r0, [r2]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r3
ldr r2, _0807BAF4
adds r0, r4, #0
adds r0, #0xf0
ldrh r0, [r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrb r0, [r0, #1]
strh r0, [r1, #0x26]
adds r1, r4, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
bl GetCurrentMapMusic
ldr r1, [r7]
adds r1, #0xf4
strh r0, [r1]
ldr r0, _0807BAF8
bl PlayNewMapMusic
bl _0807C9EC
.align 2, 0
_0807BAEC: .4byte 0x020205AC
_0807BAF0: .4byte 0x0000FF4C
_0807BAF4: .4byte 0x082D45C8
_0807BAF8: .4byte 0x00000179
_0807BAFC:
ldr r5, [r7]
adds r6, r5, #0
adds r6, #0xe6
movs r1, #0
ldrsh r0, [r6, r1]
cmp r0, #0
ble _0807BB30
ldr r2, _0807BB2C
adds r0, r5, #0
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x24]
adds r1, #3
strh r1, [r0, #0x24]
ldrh r0, [r6]
subs r0, #3
strh r0, [r6]
bl _0807C9EC
.align 2, 0
_0807BB2C: .4byte 0x020205AC
_0807BB30:
ldr r2, _0807BB54
adds r0, r5, #0
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, 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 _0807C9EC
.align 2, 0
_0807BB54: .4byte 0x020205AC
_0807BB58:
ldr r4, _0807BB94
ldr r1, _0807BB98
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r4, _0807BB9C
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0xf0
ldrh r1, [r2]
movs r0, #0xce
lsls r0, r0, #1
cmp r1, r0
beq _0807BB86
adds r0, r1, #0
movs r1, #0
bl PlayCry1
_0807BB86:
ldr r3, [r4]
adds r1, r3, #0
adds r1, #0x94
movs r2, #0
movs r0, #0xb
bl _0807C83E
.align 2, 0
_0807BB94: .4byte 0x02021C7C
_0807BB98: .4byte 0x0830D240
_0807BB9C: .4byte 0x02031F40
_0807BBA0:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x50
beq _0807BBB0
bl _0807C9EC
_0807BBB0:
adds r0, r1, #0
adds r0, #0x8e
ldrb r0, [r0]
ldr r2, _0807BC04
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
ldrb r1, [r1, #5]
lsrs r1, r1, #4
movs r2, #2
str r2, [sp]
movs r2, #1
str r2, [sp, #4]
movs r2, #0x14
str r2, [sp, #8]
ldr r2, _0807BC08
str r2, [sp, #0xc]
movs r2, #0x78
movs r3, #0x20
bl sub_08076124
ldr r1, [r7]
adds r1, #0xd2
strb r0, [r1]
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r4, _0807BC0C
ldr r1, _0807BC10
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
bl _0807C9EC
.align 2, 0
_0807BC04: .4byte 0x020205AC
_0807BC08: .4byte 0x000FFFFF
_0807BC0C: .4byte 0x02021C7C
_0807BC10: .4byte 0x0830D24F
_0807BC14:
ldr r5, _0807BC70
ldr r0, [r7]
adds r0, #0xd2
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r4, r5, #0
adds r4, #0x1c
adds r0, r0, r4
ldr r1, [r0]
ldr r0, _0807BC74
cmp r1, r0
beq _0807BC34
bl _0807C9EC
_0807BC34:
ldr r0, _0807BC78
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0807BC7C
str r1, [r0]
adds r2, #0xd2
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
bl DestroySprite
ldr r1, [r7]
bl _0807C984
.align 2, 0
_0807BC70: .4byte 0x020205AC
_0807BC74: .4byte 0x08007141
_0807BC78: .4byte 0x0830CF6C
_0807BC7C: .4byte 0x0807E011
_0807BC80:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807BCA0
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x14
strh r1, [r0]
bl _0807C9EC
.align 2, 0
_0807BCA0: .4byte 0x02031F40
_0807BCA4:
ldr r0, _0807BCD0
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807BCB4
bl _0807C9EC
_0807BCB4:
movs r0, #4
bl sub_0807B064
movs r0, #0
movs r1, #0xff
bl FillWindowPixelBuffer
movs r0, #0
movs r1, #3
bl CopyWindowToVram
bl _0807C980
.align 2, 0
_0807BCD0: .4byte 0x02037C74
_0807BCD4:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
bl _0807C97C
_0807BCE6:
ldr r0, _0807BD04
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807BCF6
bl _0807C9EC
_0807BCF6:
ldr r0, [r7]
adds r0, #0x94
movs r1, #0x17
strh r1, [r0]
bl _0807C9EC
.align 2, 0
_0807BD04: .4byte 0x02037C74
_0807BD08:
ldr r4, _0807BD24
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0xea
ldrh r1, [r2]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
bls _0807BD28
adds r0, r1, #0
subs r0, #0x34
strh r0, [r2]
b _0807BD44
.align 2, 0
_0807BD24: .4byte 0x02031F40
_0807BD28:
movs r0, #1
bl sub_0807B064
ldr r3, [r4]
adds r1, r3, #0
adds r1, #0xea
movs r2, #0
movs r0, #0x80
strh r0, [r1]
subs r1, #0x56
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
str r2, [r3, #0x64]
_0807BD44:
ldr r0, _0807BD4C
ldr r4, [r0]
bl _0807C594
.align 2, 0
_0807BD4C: .4byte 0x02031F40
_0807BD50:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x14
bhi _0807BD60
bl _0807C9EC
_0807BD60:
bl sub_0807A598
ldr r0, _0807BD7C
movs r1, #0x78
movs r2, #0x50
movs r3, #0
bl CreateSprite
ldr r1, [r7]
adds r1, #0x91
strb r0, [r1]
ldr r1, [r7]
bl _0807C984
.align 2, 0
_0807BD7C: .4byte 0x0830D0B8
_0807BD80:
ldr r2, _0807BDC0
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1b
cmp r0, #0
blt _0807BDA0
bl _0807C9EC
_0807BDA0:
adds r0, r1, #0
bl DestroySprite
movs r1, #0xc8
lsls r1, r1, #3
movs r0, #0x50
bl SetGpuReg
ldr r1, _0807BDC4
movs r0, #0x52
bl SetGpuReg
ldr r1, [r7]
bl _0807C984
.align 2, 0
_0807BDC0: .4byte 0x020205AC
_0807BDC4: .4byte 0x0000040C
_0807BDC8:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xe0
ldrh r1, [r0]
subs r1, #1
strh r1, [r0]
lsls r1, r1, #0x10
movs r0, #0x9e
lsls r0, r0, #0x11
cmp r1, r0
bne _0807BDE8
adds r1, r2, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807BDE8:
ldr r0, [r7]
adds r0, #0xe0
movs r2, #0
ldrsh r1, [r0, r2]
movs r0, #0xa4
lsls r0, r0, #1
cmp r1, r0
beq _0807BDFC
bl _0807C9EC
_0807BDFC:
ldr r0, _0807BE14
movs r1, #0x80
movs r2, #0x41
movs r3, #0
bl CreateSprite
ldr r1, [r7]
adds r1, #0x92
strb r0, [r1]
bl _0807C9EC
.align 2, 0
_0807BE14: .4byte 0x0830D040
_0807BE18:
ldr r0, _0807BE5C
movs r1, #0x80
movs r2, #0x50
movs r3, #3
bl CreateSprite
ldr r4, _0807BE60
ldr r1, [r4]
adds r1, #0x90
strb r0, [r1]
ldr r0, _0807BE64
movs r1, #0x80
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, r0, r1
lsls r0, r0, #2
ldr r1, _0807BE68
adds r0, r0, r1
movs r1, #1
bl StartSpriteAnim
ldr r1, [r4]
bl _0807C984
.align 2, 0
_0807BE5C: .4byte 0x0830CFCC
_0807BE60: .4byte 0x02031F40
_0807BE64: .4byte 0x0830D00C
_0807BE68: .4byte 0x020205AC
_0807BE6C:
ldr r2, [r7]
adds r1, r2, #0
adds r1, #0xe0
ldrh r0, [r1]
subs r0, #2
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa6
bne _0807BE86
subs r1, #0x4c
movs r0, #0xc8
strh r0, [r1]
_0807BE86:
ldr r1, _0807BE94
movs r0, #0
bl SetGpuReg
bl _0807C9EC
.align 2, 0
_0807BE94: .4byte 0x00001241
_0807BE98:
ldr r2, _0807BEEC
ldr r4, [r7]
adds r3, r4, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x22]
subs r1, #2
strh r1, [r0, #0x22]
adds r0, r4, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x22]
subs r1, #2
strh r1, [r0, #0x22]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r3, #0x22
ldrsh r1, [r0, r3]
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
blt _0807BEDE
bl _0807C9EC
_0807BEDE:
adds r1, r4, #0
adds r1, #0x94
movs r0, #0x1d
strh r0, [r1]
bl _0807C9EC
.align 2, 0
_0807BEEC: .4byte 0x020205AC
_0807BEF0:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807BF10
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x1e
strh r1, [r0]
bl _0807C9EC
.align 2, 0
_0807BF10: .4byte 0x02031F40
_0807BF14:
ldr r0, _0807BF58
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807BF24
bl _0807C9EC
_0807BF24:
ldr r0, [r7]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807BF5C
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
movs r0, #2
bl sub_0807B064
ldr r1, [r7]
bl _0807C984
.align 2, 0
_0807BF58: .4byte 0x02037C74
_0807BF5C: .4byte 0x020205AC
_0807BF60:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r5, _0807BFA4
adds r0, r5, #0
movs r1, #0x6f
movs r2, #0xaa
movs r3, #0
bl CreateSprite
ldr r4, _0807BFA8
ldr r1, [r4]
adds r1, #0x90
strb r0, [r1]
movs r2, #0xa
rsbs r2, r2, #0
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 _0807C984
.align 2, 0
_0807BFA4: .4byte 0x0830D00C
_0807BFA8: .4byte 0x02031F40
_0807BFAC:
ldr r0, _0807BFFC
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807BFCA
movs r0, #0x2e
bl PlaySE
ldr r0, _0807C000
ldr r1, [r0]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807BFCA:
ldr r3, _0807C004
ldr r0, _0807C000
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r2, #0x91
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
bl _0807C9EC
.align 2, 0
_0807BFFC: .4byte 0x02037C74
_0807C000: .4byte 0x02031F40
_0807C004: .4byte 0x020205AC
_0807C008:
ldr r5, _0807C064
ldr r4, [r7]
adds r2, r4, #0
adds r2, #0x90
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r6, r4, #0
adds r6, #0x91
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r3, r0, r5
movs r0, #0x26
ldrsh r1, [r3, r0]
movs r0, #0x5a
rsbs r0, r0, #0
cmp r1, r0
ble _0807C04E
bl _0807C9EC
_0807C04E:
movs r2, #1
strh r2, [r3, #0x30]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
strh r2, [r0, #0x30]
adds r1, r4, #0
bl _0807C984
.align 2, 0
_0807C064: .4byte 0x020205AC
_0807C068:
ldr r2, _0807C078
movs r0, #1
movs r1, #0x10
bl BlendPalettes
bl _0807C980
.align 2, 0
_0807C078: .4byte 0x0000FFFF
_0807C07C:
ldr r2, _0807C08C
movs r0, #1
movs r1, #0
bl BlendPalettes
bl _0807C980
.align 2, 0
_0807C08C: .4byte 0x0000FFFF
_0807C090:
ldr r2, _0807C0A0
movs r0, #1
movs r1, #0x10
bl BlendPalettes
bl _0807C980
.align 2, 0
_0807C0A0: .4byte 0x0000FFFF
_0807C0A4:
ldr r5, _0807C110
ldr r0, [r5]
adds r0, #0xf0
ldrh r0, [r0]
bl IsMonSpriteNotFlipped
lsls r0, r0, #0x18
cmp r0, #0
bne _0807C11C
ldr r4, _0807C114
ldr r2, [r5]
adds r2, #0x8e
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x10
adds r0, r0, r1
ldr r1, _0807C118
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0, #1]
movs r2, #3
orrs r1, r2
strb r1, [r0, #1]
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0
movs r2, #3
movs r3, #3
bl CalcCenterToCornerVec
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0
bl StartSpriteAffineAnim
b _0807C132
.align 2, 0
_0807C110: .4byte 0x02031F40
_0807C114: .4byte 0x020205AC
_0807C118: .4byte 0x0830D110
_0807C11C:
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807C1C0
adds r0, r0, r1
movs r1, #0
bl StartSpriteAffineAnim
_0807C132:
ldr r5, _0807C1C4
ldr r0, [r5]
adds r0, #0x8f
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807C1C0
adds r0, 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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0x3c
strh r1, [r0, #0x20]
adds r2, #0x8f
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xb4
strh r1, [r0, #0x20]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xc0
strh r1, [r0, #0x22]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0807C1C8
strh r1, [r0, #0x22]
ldrb r0, [r3]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
adds r1, #0x3e
ldrb r3, [r1]
movs r2, #5
rsbs r2, r2, #0
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r1, [r5]
bl _0807C984
.align 2, 0
_0807C1C0: .4byte 0x020205AC
_0807C1C4: .4byte 0x02031F40
_0807C1C8: .4byte 0x0000FFE0
_0807C1CC:
ldr r4, _0807C294
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x8e
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
subs r1, #3
movs r5, #0
strh r1, [r0, #0x26]
adds r2, #0x8f
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r0, [r0, #0x26]
adds r0, #0xa3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bhi _0807C214
movs r0, #0x2d
bl PlaySE
_0807C214:
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x8e
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r6, #0x26
ldrsh r1, [r0, r6]
movs r0, #0xde
rsbs r0, r0, #0
cmp r1, r0
blt _0807C234
bl _0807C9EC
_0807C234:
adds r0, r2, #0
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x30]
adds r0, r2, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x30]
adds r1, r2, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x8f
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
ldr r2, _0807C298
movs r0, #1
movs r1, #0
bl BlendPalettes
b _0807C9EC
.align 2, 0
_0807C294: .4byte 0x020205AC
_0807C298: .4byte 0x0000FFFF
_0807C29C:
ldr r4, _0807C320
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r2, #0x91
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r2, #0x26
ldrsh r1, [r0, r2]
movs r0, #0xde
rsbs r0, r0, #0
cmp r1, r0
ble _0807C2DE
b _0807C9EC
_0807C2DE:
movs r1, #1
rsbs r1, r1, #0
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, #1
strh r0, [r2]
adds r1, #0x90
ldrb r1, [r1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
b _0807C9EC
.align 2, 0
_0807C320: .4byte 0x020205AC
_0807C324:
ldr r0, _0807C38C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807C332
b _0807C9EC
_0807C332:
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r0, #1
bl sub_0807B064
ldr r0, [r7]
adds r0, #0xe0
movs r1, #0xa6
strh r1, [r0]
ldr r0, _0807C390
movs r4, #0x14
rsbs r4, r4, #0
movs r1, #0x80
adds r2, r4, #0
movs r3, #3
bl CreateSprite
ldr r1, [r7]
adds r1, #0x90
strb r0, [r1]
ldr r0, _0807C394
movs r1, #0x80
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, r0, r1
lsls r0, r0, #2
ldr r1, _0807C398
adds r0, r0, r1
movs r1, #1
bl StartSpriteAnim
b _0807C9EC
.align 2, 0
_0807C38C: .4byte 0x02037C74
_0807C390: .4byte 0x0830CFCC
_0807C394: .4byte 0x0830D00C
_0807C398: .4byte 0x020205AC
_0807C39C:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
b _0807C97C
_0807C3AC:
movs r1, #0x92
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0807C3C8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807C3C4
b _0807C9EC
_0807C3C4:
b _0807C980
.align 2, 0
_0807C3C8: .4byte 0x02037C74
_0807C3CC:
ldr r2, _0807C418
ldr r4, [r7]
adds r3, r4, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
adds r0, r4, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r3, #0x26
ldrsh r1, [r0, r3]
movs r6, #0x22
ldrsh r0, [r0, r6]
adds r1, r1, r0
cmp r1, #0x40
beq _0807C412
b _0807C9EC
_0807C412:
adds r1, r4, #0
b _0807C984
.align 2, 0
_0807C418: .4byte 0x020205AC
_0807C41C:
ldr r1, [r7]
adds r5, r1, #0
adds r5, #0xe0
ldrh r0, [r5]
adds r0, #2
strh r0, [r5]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r6, #0x9e
lsls r6, r6, #1
cmp r0, r6
bgt _0807C436
b _0807C9EC
_0807C436:
strh r6, [r5]
b _0807C984
_0807C43A:
ldr r0, [r7]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807C474
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r3, [r7]
adds r2, r3, #0
adds r2, #0x94
ldrh r0, [r2]
adds r0, #1
movs r1, #0
strh r0, [r2]
str r1, [r3, #0x64]
b _0807C9EC
.align 2, 0
_0807C474: .4byte 0x020205AC
_0807C478:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0xa
beq _0807C486
b _0807C9EC
_0807C486:
b _0807C984
_0807C488:
ldr r1, [r7]
adds r2, r1, #0
adds r2, #0xe0
ldrh r0, [r2]
adds r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r3, #0xae
lsls r3, r3, #1
cmp r0, r3
ble _0807C4AA
strh r3, [r2]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807C4AA:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xe0
movs r3, #0
ldrsh r1, [r0, r3]
movs r0, #0xa4
lsls r0, r0, #1
cmp r1, r0
beq _0807C4BE
b _0807C9EC
_0807C4BE:
adds r0, r2, #0
adds r0, #0xfa
ldrb r0, [r0]
cmp r0, #0
bne _0807C4CA
b _0807C9EC
_0807C4CA:
ldr r0, _0807C4F4
movs r1, #0x80
movs r2, #0x41
movs r3, #0
bl CreateSprite
ldr r1, [r7]
adds r1, #0x92
strb r0, [r1]
ldr r2, _0807C4F8
ldr r0, [r7]
adds r0, #0x92
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, _0807C4FC
str r1, [r0]
b _0807C9EC
.align 2, 0
_0807C4F4: .4byte 0x0830D040
_0807C4F8: .4byte 0x020205AC
_0807C4FC: .4byte 0x0807A551
_0807C500:
ldr r0, _0807C520
movs r1, #0x78
movs r2, #0x50
movs r3, #0
bl CreateSprite
ldr r2, _0807C524
ldr r1, [r2]
adds r1, #0x91
strb r0, [r1]
ldr r0, [r2]
adds r0, #0x94
movs r1, #0x32
strh r1, [r0]
b _0807C9EC
.align 2, 0
_0807C520: .4byte 0x0830D0B8
_0807C524: .4byte 0x02031F40
_0807C528:
ldr r2, _0807C564
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1b
cmp r0, #0
blt _0807C546
b _0807C9EC
_0807C546:
adds r0, r1, #0
bl DestroySprite
movs r0, #6
bl sub_0807B064
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r0, #0x9f
bl PlaySE
b _0807C9EC
.align 2, 0
_0807C564: .4byte 0x020205AC
_0807C568:
ldr r1, [r7]
adds r2, r1, #0
adds r2, #0xea
ldrh r3, [r2]
ldr r0, _0807C580
cmp r3, r0
bhi _0807C584
adds r0, r3, #0
adds r0, #0x34
strh r0, [r2]
b _0807C592
.align 2, 0
_0807C580: .4byte 0x000003FF
_0807C584:
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807C592:
ldr r4, [r7]
_0807C594:
adds r0, r4, #0
adds r0, #0xea
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #8
bl __divsi3
adds r4, #0xe8
strh r0, [r4]
b _0807C9EC
_0807C5A8:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807C5C4
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x3c
strh r1, [r0]
b _0807C9EC
.align 2, 0
_0807C5C4: .4byte 0x02031F40
_0807C5C8:
ldr r4, _0807C5EC
ldrb r1, [r4, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807C5D6
b _0807C9EC
_0807C5D6:
movs r0, #5
bl sub_0807B064
movs r0, #7
bl sub_0807B064
ldrb r0, [r4, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #8]
b _0807C980
.align 2, 0
_0807C5EC: .4byte 0x02037C74
_0807C5F0:
ldr r2, _0807C608
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
b _0807C97C
.align 2, 0
_0807C608: .4byte 0x02037C74
_0807C60C:
movs r1, #0xa2
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0807C628
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807C624
b _0807C9EC
_0807C624:
b _0807C980
.align 2, 0
_0807C628: .4byte 0x02037C74
_0807C62C:
ldr r0, _0807C6C0
movs r2, #8
rsbs r2, r2, #0
movs r1, #0x78
movs r3, #0
bl CreateSprite
ldr r5, _0807C6C4
ldr r1, [r5]
adds r1, #0xd3
movs r6, #0
strb r0, [r1]
ldr r4, _0807C6C8
ldr r2, [r5]
adds r2, #0xd3
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0x4a
strh r1, [r0, #0x34]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0807C6CC
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #1
bl StartSpriteAnim
ldr r0, [r5]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #2
bl StartSpriteAffineAnim
ldr r0, [r5]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
ldr r2, _0807C6D0
movs r1, #0x10
bl BlendPalettes
ldr r2, [r5]
adds r1, r2, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
str r6, [r2, #0x64]
b _0807C9EC
.align 2, 0
_0807C6C0: .4byte 0x0830CF6C
_0807C6C4: .4byte 0x02031F40
_0807C6C8: .4byte 0x020205AC
_0807C6CC: .4byte 0x0807E0E5
_0807C6D0: .4byte 0x0000FFFF
_0807C6D4:
ldr r2, _0807C700
ldr r0, [r7]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
ldr r1, _0807C704
str r1, [sp]
movs r1, #1
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r1, [r7]
b _0807C984
.align 2, 0
_0807C700: .4byte 0x020205AC
_0807C704: .4byte 0x0000FFFF
_0807C708:
ldr r2, _0807C744
ldr r3, [r7]
adds r0, r3, #0
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _0807C748
cmp r1, r0
beq _0807C726
b _0807C9EC
_0807C726:
adds r0, r3, #0
adds r0, #0xf2
ldrh r2, [r0]
lsls r0, r2, #3
ldr r1, _0807C74C
adds r0, r0, r1
ldr r1, _0807C750
ldr r1, [r1]
ldr r1, [r1, #0x10]
ldr r3, [r3, #0x6c]
bl HandleLoadSpecialPokePic_2
ldr r1, [r7]
b _0807C984
.align 2, 0
_0807C744: .4byte 0x020205AC
_0807C748: .4byte 0x08007141
_0807C74C: .4byte 0x082DDA1C
_0807C750: .4byte 0x02024178
_0807C754:
ldr r4, _0807C808
ldr r2, [r7]
adds r6, r2, #0
adds r6, #0x8f
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r5, #0
movs r1, #0x78
strh r1, [r0, #0x20]
ldrb r0, [r6]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
ldr r3, _0807C80C
adds r2, #0xf2
ldrh r0, [r2]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r0, [r0, #1]
adds r0, #0x3c
strh r0, [r1, #0x22]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x24]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x26]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, 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, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
ldrb r1, [r1, #5]
lsrs r1, r1, #4
movs r2, #2
str r2, [sp]
movs r2, #1
str r2, [sp, #4]
movs r2, #0x14
str r2, [sp, #8]
ldr r2, _0807C810
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl FreeSpriteOamMatrix
ldr r0, [r7]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r1, [r7]
b _0807C984
.align 2, 0
_0807C808: .4byte 0x020205AC
_0807C80C: .4byte 0x082D45C8
_0807C810: .4byte 0x000FFFFF
_0807C814:
movs r1, #0xaa
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r4, _0807C844
ldr r1, _0807C848
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r0, _0807C84C
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0x94
movs r2, #0
movs r0, #0xa7
_0807C83E:
strh r0, [r1]
str r2, [r3, #0x64]
b _0807C9EC
.align 2, 0
_0807C844: .4byte 0x02021C7C
_0807C848: .4byte 0x0830D258
_0807C84C: .4byte 0x02031F40
_0807C850:
ldr r3, [r7]
ldr r0, [r3, #0x64]
adds r0, #1
str r0, [r3, #0x64]
cmp r0, #0x3c
bhi _0807C85E
b _0807C9EC
_0807C85E:
adds r0, r3, #0
adds r0, #0x94
movs r2, #0
ldr r1, _0807C86C
strh r1, [r0]
str r2, [r3, #0x64]
b _0807C9EC
.align 2, 0
_0807C86C: .4byte 0x0000010B
_0807C870:
bl IsCryFinished
lsls r0, r0, #0x18
cmp r0, #0
bne _0807C87C
b _0807C9EC
_0807C87C:
ldr r0, _0807C888
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x44
strh r1, [r0]
b _0807C9EC
.align 2, 0
_0807C888: .4byte 0x02031F40
_0807C88C:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0xa
bne _0807C89E
ldr r0, _0807C8CC
bl PlayFanfare
_0807C89E:
ldr r1, [r7]
ldr r0, [r1, #0x64]
cmp r0, #0xfa
beq _0807C8A8
b _0807C9EC
_0807C8A8:
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
movs r5, #0
strh r0, [r1]
ldr r4, _0807C8D0
ldr r1, _0807C8D4
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r0, [r7]
str r5, [r0, #0x64]
b _0807C9EC
.align 2, 0
_0807C8CC: .4byte 0x00000173
_0807C8D0: .4byte 0x02021C7C
_0807C8D4: .4byte 0x0830D26A
_0807C8D8:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x3c
beq _0807C8E6
b _0807C9EC
_0807C8E6:
b _0807C984
_0807C8E8:
bl sub_0807EB84
b _0807C980
_0807C8EE:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xee
ldrb r0, [r0]
cmp r0, #0
beq _0807C8FE
movs r0, #1
b _0807C9EE
_0807C8FE:
ldr r0, _0807C910
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0807C9EC
adds r1, r2, #0
b _0807C984
.align 2, 0
_0807C910: .4byte 0x03002360
_0807C914:
ldr r0, _0807C958
ldrb r0, [r0]
movs r1, #0
bl sub_0807AF08
ldr r1, _0807C95C
ldr r0, _0807C960
str r0, [r1]
ldr r7, _0807C964
ldrb r0, [r7]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _0807C968
adds r0, r0, r5
movs r1, #1
movs r2, #0
bl GetEvolutionTargetSpecies
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq _0807C980
ldrb r3, [r7]
adds r0, r3, #0
muls r0, r6, r0
adds r0, r0, r5
ldr r1, _0807C96C
ldr r1, [r1]
adds r1, #0x8f
ldrb r2, [r1]
adds r1, r4, #0
bl TradeEvolutionScene
b _0807C980
.align 2, 0
_0807C958: .4byte 0x02037282
_0807C95C: .4byte 0x03005F28
_0807C960: .4byte 0x0807B045
_0807C964: .4byte 0x02031F38
_0807C968: .4byte 0x02024190
_0807C96C: .4byte 0x02031F40
_0807C970:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
_0807C97C:
bl BeginNormalPaletteFade
_0807C980:
ldr r0, _0807C990
ldr r1, [r0]
_0807C984:
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0807C9EC
.align 2, 0
_0807C990: .4byte 0x02031F40
_0807C994:
ldr r0, _0807C9F8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0807C9EC
ldr r0, [r7]
adds r0, #0xf4
ldrh r0, [r0]
bl PlayNewMapMusic
ldr r0, [r7]
cmp r0, #0
beq _0807C9E2
bl FreeAllWindowBuffers
movs r0, #3
bl GetBgTilemapBuffer
bl Free
movs r0, #1
bl GetBgTilemapBuffer
bl Free
movs r0, #0
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
ldr r0, [r7]
bl Free
str r4, [r7]
_0807C9E2:
ldr r0, _0807C9FC
bl SetMainCallback2
bl sub_0807E1C4
_0807C9EC:
movs r0, #0
_0807C9EE:
add sp, #0x14
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0807C9F8: .4byte 0x02037C74
_0807C9FC: .4byte 0x08085A31
thumb_func_end sub_0807B624
thumb_func_start sub_0807CA00
sub_0807CA00: @ 0x0807CA00
push {r4, r5, r6, r7, lr}
sub sp, #0x14
ldr r0, _0807CA24
ldr r1, [r0]
adds r1, #0x94
ldrh r5, [r1]
ldr r1, _0807CA28
adds r7, r0, #0
cmp r5, r1
bls _0807CA18
bl _0807DE38
_0807CA18:
lsls r0, r5, #2
ldr r1, _0807CA2C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807CA24: .4byte 0x02031F40
_0807CA28: .4byte 0x0000010B
_0807CA2C: .4byte 0x0807CA30
_0807CA30: @ jump table
.4byte _0807CE60 @ case 0
.4byte _0807CED8 @ case 1
.4byte _0807DE38 @ case 2
.4byte _0807DE38 @ case 3
.4byte _0807DE38 @ case 4
.4byte _0807DE38 @ case 5
.4byte _0807DE38 @ case 6
.4byte _0807DE38 @ case 7
.4byte _0807DE38 @ case 8
.4byte _0807DE38 @ case 9
.4byte _0807CF34 @ case 10
.4byte _0807CF7C @ case 11
.4byte _0807CFF0 @ case 12
.4byte _0807DE38 @ case 13
.4byte _0807D05C @ case 14
.4byte _0807DE38 @ case 15
.4byte _0807DE38 @ case 16
.4byte _0807DE38 @ case 17
.4byte _0807DE38 @ case 18
.4byte _0807DE38 @ case 19
.4byte _0807D080 @ case 20
.4byte _0807D0B0 @ case 21
.4byte _0807D0C2 @ case 22
.4byte _0807D0E4 @ case 23
.4byte _0807DE38 @ case 24
.4byte _0807DE38 @ case 25
.4byte _0807D1DC @ case 26
.4byte _0807D1FC @ case 27
.4byte _0807D268 @ case 28
.4byte _0807D2EC @ case 29
.4byte _0807D310 @ case 30
.4byte _0807D35C @ case 31
.4byte _0807D3A8 @ case 32
.4byte _0807D404 @ case 33
.4byte _0807D470 @ case 34
.4byte _0807D484 @ case 35
.4byte _0807D498 @ case 36
.4byte _0807D4AC @ case 37
.4byte _0807D5D4 @ case 38
.4byte _0807D6A4 @ case 39
.4byte _0807D72C @ case 40
.4byte _0807D7CC @ case 41
.4byte _0807D7DC @ case 42
.4byte _0807D7FC @ case 43
.4byte _0807DE38 @ case 44
.4byte _0807DE38 @ case 45
.4byte _0807D920 @ case 46
.4byte _0807D930 @ case 47
.4byte _0807D94E @ case 48
.4byte _0807DE38 @ case 49
.4byte _0807D974 @ case 50
.4byte _0807D9B4 @ case 51
.4byte _0807D9F4 @ case 52
.4byte _0807DE38 @ case 53
.4byte _0807DE38 @ case 54
.4byte _0807DE38 @ case 55
.4byte _0807DE38 @ case 56
.4byte _0807DE38 @ case 57
.4byte _0807DE38 @ case 58
.4byte _0807DE38 @ case 59
.4byte _0807DA14 @ case 60
.4byte _0807DA3C @ case 61
.4byte _0807DA58 @ case 62
.4byte _0807DA78 @ case 63
.4byte _0807DB20 @ case 64
.4byte _0807DB54 @ case 65
.4byte _0807DBA0 @ case 66
.4byte _0807DC60 @ case 67
.4byte _0807DCD8 @ case 68
.4byte _0807DD24 @ case 69
.4byte _0807DD34 @ case 70
.4byte _0807DD3A @ case 71
.4byte _0807DD60 @ case 72
.4byte _0807DDBC @ case 73
.4byte _0807DDE0 @ case 74
.4byte _0807DE38 @ case 75
.4byte _0807DE38 @ case 76
.4byte _0807DE38 @ case 77
.4byte _0807DE38 @ case 78
.4byte _0807DE38 @ case 79
.4byte _0807DE38 @ case 80
.4byte _0807DE38 @ case 81
.4byte _0807DE38 @ case 82
.4byte _0807DE38 @ case 83
.4byte _0807DE38 @ case 84
.4byte _0807DE38 @ case 85
.4byte _0807DE38 @ case 86
.4byte _0807DE38 @ case 87
.4byte _0807DE38 @ case 88
.4byte _0807DE38 @ case 89
.4byte _0807DE38 @ case 90
.4byte _0807DE38 @ case 91
.4byte _0807DE38 @ case 92
.4byte _0807DE38 @ case 93
.4byte _0807DE38 @ case 94
.4byte _0807DE38 @ case 95
.4byte _0807DE38 @ case 96
.4byte _0807DE38 @ case 97
.4byte _0807DE38 @ case 98
.4byte _0807DE38 @ case 99
.4byte _0807DE38 @ case 100
.4byte _0807DE38 @ case 101
.4byte _0807DE38 @ case 102
.4byte _0807DE38 @ case 103
.4byte _0807DE38 @ case 104
.4byte _0807DE38 @ case 105
.4byte _0807DE38 @ case 106
.4byte _0807DE38 @ case 107
.4byte _0807DE38 @ case 108
.4byte _0807DE38 @ case 109
.4byte _0807DE38 @ case 110
.4byte _0807DE38 @ case 111
.4byte _0807DE38 @ case 112
.4byte _0807DE38 @ case 113
.4byte _0807DE38 @ case 114
.4byte _0807DE38 @ case 115
.4byte _0807DE38 @ case 116
.4byte _0807DE38 @ case 117
.4byte _0807DE38 @ case 118
.4byte _0807DE38 @ case 119
.4byte _0807DE38 @ case 120
.4byte _0807DE38 @ case 121
.4byte _0807DE38 @ case 122
.4byte _0807DE38 @ case 123
.4byte _0807D12C @ case 124
.4byte _0807D160 @ case 125
.4byte _0807D1B4 @ case 126
.4byte _0807DE38 @ case 127
.4byte _0807DE38 @ case 128
.4byte _0807DE38 @ case 129
.4byte _0807DE38 @ case 130
.4byte _0807DE38 @ case 131
.4byte _0807DE38 @ case 132
.4byte _0807DE38 @ case 133
.4byte _0807DE38 @ case 134
.4byte _0807DE38 @ case 135
.4byte _0807DE38 @ case 136
.4byte _0807DE38 @ case 137
.4byte _0807DE38 @ case 138
.4byte _0807DE38 @ case 139
.4byte _0807DE38 @ case 140
.4byte _0807DE38 @ case 141
.4byte _0807DE38 @ case 142
.4byte _0807DE38 @ case 143
.4byte _0807D854 @ case 144
.4byte _0807D8BC @ case 145
.4byte _0807D8F8 @ case 146
.4byte _0807DE38 @ case 147
.4byte _0807DE38 @ case 148
.4byte _0807DE38 @ case 149
.4byte _0807DE38 @ case 150
.4byte _0807DE38 @ case 151
.4byte _0807DE38 @ case 152
.4byte _0807DE38 @ case 153
.4byte _0807DE38 @ case 154
.4byte _0807DE38 @ case 155
.4byte _0807DE38 @ case 156
.4byte _0807DE38 @ case 157
.4byte _0807DE38 @ case 158
.4byte _0807DE38 @ case 159
.4byte _0807DE38 @ case 160
.4byte _0807DE38 @ case 161
.4byte _0807DE38 @ case 162
.4byte _0807DE38 @ case 163
.4byte _0807DE38 @ case 164
.4byte _0807DE38 @ case 165
.4byte _0807DE38 @ case 166
.4byte _0807DC9C @ case 167
.4byte _0807DE38 @ case 168
.4byte _0807DE38 @ case 169
.4byte _0807DE38 @ case 170
.4byte _0807DE38 @ case 171
.4byte _0807DE38 @ case 172
.4byte _0807DE38 @ case 173
.4byte _0807DE38 @ case 174
.4byte _0807DE38 @ case 175
.4byte _0807DE38 @ case 176
.4byte _0807DE38 @ case 177
.4byte _0807DE38 @ case 178
.4byte _0807DE38 @ case 179
.4byte _0807DE38 @ case 180
.4byte _0807DE38 @ case 181
.4byte _0807DE38 @ case 182
.4byte _0807DE38 @ case 183
.4byte _0807DE38 @ case 184
.4byte _0807DE38 @ case 185
.4byte _0807DE38 @ case 186
.4byte _0807DE38 @ case 187
.4byte _0807DE38 @ case 188
.4byte _0807DE38 @ case 189
.4byte _0807DE38 @ case 190
.4byte _0807DE38 @ case 191
.4byte _0807DE38 @ case 192
.4byte _0807DE38 @ case 193
.4byte _0807DE38 @ case 194
.4byte _0807DE38 @ case 195
.4byte _0807DE38 @ case 196
.4byte _0807DE38 @ case 197
.4byte _0807DE38 @ case 198
.4byte _0807DE38 @ case 199
.4byte _0807D294 @ case 200
.4byte _0807DE38 @ case 201
.4byte _0807DE38 @ case 202
.4byte _0807DE38 @ case 203
.4byte _0807DE38 @ case 204
.4byte _0807DE38 @ case 205
.4byte _0807DE38 @ case 206
.4byte _0807DE38 @ case 207
.4byte _0807DE38 @ case 208
.4byte _0807DE38 @ case 209
.4byte _0807DE38 @ case 210
.4byte _0807DE38 @ case 211
.4byte _0807DE38 @ case 212
.4byte _0807DE38 @ case 213
.4byte _0807DE38 @ case 214
.4byte _0807DE38 @ case 215
.4byte _0807DE38 @ case 216
.4byte _0807DE38 @ case 217
.4byte _0807DE38 @ case 218
.4byte _0807DE38 @ case 219
.4byte _0807DE38 @ case 220
.4byte _0807DE38 @ case 221
.4byte _0807DE38 @ case 222
.4byte _0807DE38 @ case 223
.4byte _0807DE38 @ case 224
.4byte _0807DE38 @ case 225
.4byte _0807DE38 @ case 226
.4byte _0807DE38 @ case 227
.4byte _0807DE38 @ case 228
.4byte _0807DE38 @ case 229
.4byte _0807DE38 @ case 230
.4byte _0807DE38 @ case 231
.4byte _0807DE38 @ case 232
.4byte _0807DE38 @ case 233
.4byte _0807DE38 @ case 234
.4byte _0807DE38 @ case 235
.4byte _0807DE38 @ case 236
.4byte _0807DE38 @ case 237
.4byte _0807DE38 @ case 238
.4byte _0807DE38 @ case 239
.4byte _0807DE38 @ case 240
.4byte _0807DE38 @ case 241
.4byte _0807DE38 @ case 242
.4byte _0807DE38 @ case 243
.4byte _0807DE38 @ case 244
.4byte _0807DE38 @ case 245
.4byte _0807DE38 @ case 246
.4byte _0807DE38 @ case 247
.4byte _0807DE38 @ case 248
.4byte _0807DE38 @ case 249
.4byte _0807DE38 @ case 250
.4byte _0807DE38 @ case 251
.4byte _0807DE38 @ case 252
.4byte _0807DE38 @ case 253
.4byte _0807DE38 @ case 254
.4byte _0807DE38 @ case 255
.4byte _0807DE38 @ case 256
.4byte _0807DE38 @ case 257
.4byte _0807DE38 @ case 258
.4byte _0807DE38 @ case 259
.4byte _0807DE38 @ case 260
.4byte _0807DE38 @ case 261
.4byte _0807DE38 @ case 262
.4byte _0807DE38 @ case 263
.4byte _0807DE38 @ case 264
.4byte _0807DE38 @ case 265
.4byte _0807DE38 @ case 266
.4byte _0807DCBC @ case 267
_0807CE60:
ldr r3, _0807CEC8
ldr r0, [r7]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldr r1, _0807CECC
strh r1, [r0, #0x24]
ldrb r0, [r2]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r3
ldr r2, _0807CED0
adds r0, r4, #0
adds r0, #0xf0
ldrh r0, [r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrb r0, [r0, #1]
strh r0, [r1, #0x26]
adds r1, r4, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
bl GetCurrentMapMusic
ldr r1, [r7]
adds r1, #0xf4
strh r0, [r1]
ldr r0, _0807CED4
bl PlayNewMapMusic
bl _0807DE38
.align 2, 0
_0807CEC8: .4byte 0x020205AC
_0807CECC: .4byte 0x0000FF4C
_0807CED0: .4byte 0x082D45C8
_0807CED4: .4byte 0x00000179
_0807CED8:
ldr r5, [r7]
adds r6, r5, #0
adds r6, #0xe6
movs r1, #0
ldrsh r0, [r6, r1]
cmp r0, #0
ble _0807CF0C
ldr r2, _0807CF08
adds r0, r5, #0
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x24]
adds r1, #3
strh r1, [r0, #0x24]
ldrh r0, [r6]
subs r0, #3
strh r0, [r6]
bl _0807DE38
.align 2, 0
_0807CF08: .4byte 0x020205AC
_0807CF0C:
ldr r2, _0807CF30
adds r0, r5, #0
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, 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 _0807DE38
.align 2, 0
_0807CF30: .4byte 0x020205AC
_0807CF34:
ldr r4, _0807CF70
ldr r1, _0807CF74
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r4, _0807CF78
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0xf0
ldrh r1, [r2]
movs r0, #0xce
lsls r0, r0, #1
cmp r1, r0
beq _0807CF62
adds r0, r1, #0
movs r1, #0
bl PlayCry1
_0807CF62:
ldr r3, [r4]
adds r1, r3, #0
adds r1, #0x94
movs r2, #0
movs r0, #0xb
bl _0807DC8A
.align 2, 0
_0807CF70: .4byte 0x02021C7C
_0807CF74: .4byte 0x0830D240
_0807CF78: .4byte 0x02031F40
_0807CF7C:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x50
beq _0807CF8C
bl _0807DE38
_0807CF8C:
adds r0, r1, #0
adds r0, #0x8e
ldrb r0, [r0]
ldr r2, _0807CFE0
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
ldrb r1, [r1, #5]
lsrs r1, r1, #4
movs r2, #2
str r2, [sp]
movs r2, #1
str r2, [sp, #4]
movs r2, #0x14
str r2, [sp, #8]
ldr r2, _0807CFE4
str r2, [sp, #0xc]
movs r2, #0x78
movs r3, #0x20
bl sub_08076124
ldr r1, [r7]
adds r1, #0xd2
strb r0, [r1]
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r4, _0807CFE8
ldr r1, _0807CFEC
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
bl _0807DE38
.align 2, 0
_0807CFE0: .4byte 0x020205AC
_0807CFE4: .4byte 0x000FFFFF
_0807CFE8: .4byte 0x02021C7C
_0807CFEC: .4byte 0x0830D24F
_0807CFF0:
ldr r5, _0807D04C
ldr r0, [r7]
adds r0, #0xd2
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r4, r5, #0
adds r4, #0x1c
adds r0, r0, r4
ldr r1, [r0]
ldr r0, _0807D050
cmp r1, r0
beq _0807D010
bl _0807DE38
_0807D010:
ldr r0, _0807D054
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0807D058
str r1, [r0]
adds r2, #0xd2
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
bl DestroySprite
ldr r1, [r7]
bl _0807DDD0
.align 2, 0
_0807D04C: .4byte 0x020205AC
_0807D050: .4byte 0x08007141
_0807D054: .4byte 0x0830CF6C
_0807D058: .4byte 0x0807E011
_0807D05C:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807D07C
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x14
strh r1, [r0]
bl _0807DE38
.align 2, 0
_0807D07C: .4byte 0x02031F40
_0807D080:
ldr r0, _0807D0AC
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807D090
bl _0807DE38
_0807D090:
movs r0, #4
bl sub_0807B064
movs r0, #0
movs r1, #0xff
bl FillWindowPixelBuffer
movs r0, #0
movs r1, #3
bl CopyWindowToVram
bl _0807DDCC
.align 2, 0
_0807D0AC: .4byte 0x02037C74
_0807D0B0:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
bl _0807DDC8
_0807D0C2:
ldr r0, _0807D0E0
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807D0D2
bl _0807DE38
_0807D0D2:
ldr r0, [r7]
adds r0, #0x94
movs r1, #0x17
strh r1, [r0]
bl _0807DE38
.align 2, 0
_0807D0E0: .4byte 0x02037C74
_0807D0E4:
ldr r4, _0807D100
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0xea
ldrh r1, [r2]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
bls _0807D104
adds r0, r1, #0
subs r0, #0x34
strh r0, [r2]
b _0807D11E
.align 2, 0
_0807D100: .4byte 0x02031F40
_0807D104:
movs r0, #1
bl sub_0807B064
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]
_0807D11E:
ldr r0, _0807D128
ldr r4, [r0]
bl _0807D9E0
.align 2, 0
_0807D128: .4byte 0x02031F40
_0807D12C:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x14
bhi _0807D13C
bl _0807DE38
_0807D13C:
movs r0, #3
bl sub_0807B064
ldr r0, _0807D15C
movs r1, #0x78
movs r2, #0x50
movs r3, #0
bl CreateSprite
ldr r1, [r7]
adds r1, #0x91
strb r0, [r1]
ldr r1, [r7]
bl _0807DDD0
.align 2, 0
_0807D15C: .4byte 0x0830D0D0
_0807D160:
ldr r2, _0807D1A8
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1b
cmp r0, #0
blt _0807D180
bl _0807DE38
_0807D180:
adds r0, r1, #0
bl DestroySprite
ldr r1, _0807D1AC
movs r0, #0x50
bl SetGpuReg
movs r1, #0x82
lsls r1, r1, #3
movs r0, #0x52
bl SetGpuReg
ldr r0, _0807D1B0
movs r1, #5
bl CreateTask
ldr r1, [r7]
bl _0807DDD0
.align 2, 0
_0807D1A8: .4byte 0x020205AC
_0807D1AC: .4byte 0x00000452
_0807D1B0: .4byte 0x0807EC49
_0807D1B4:
ldr r0, _0807D1D4
bl FuncIsActiveTask
lsls r0, r0, #0x18
cmp r0, #0
beq _0807D1C4
bl _0807DE38
_0807D1C4:
ldr r0, _0807D1D8
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x1a
strh r1, [r0]
bl _0807DE38
.align 2, 0
_0807D1D4: .4byte 0x0807EC49
_0807D1D8: .4byte 0x02031F40
_0807D1DC:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xe0
ldrh r1, [r0]
subs r1, #1
strh r1, [r0]
lsls r1, r1, #0x10
movs r0, #0x9e
lsls r0, r0, #0x11
cmp r1, r0
beq _0807D1F6
bl _0807DE38
_0807D1F6:
adds r1, r2, #0
bl _0807DDD0
_0807D1FC:
ldr r0, _0807D254
movs r1, #0x78
movs r2, #0x50
movs r3, #3
bl CreateSprite
ldr r4, _0807D258
ldr r1, [r4]
adds r1, #0x90
strb r0, [r1]
ldr r5, _0807D25C
ldr r0, [r4]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r5, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0807D260
str r1, [r0]
ldr r0, _0807D264
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #1
bl StartSpriteAnim
ldr r1, [r4]
bl _0807DDD0
.align 2, 0
_0807D254: .4byte 0x0830CFCC
_0807D258: .4byte 0x02031F40
_0807D25C: .4byte 0x020205AC
_0807D260: .4byte 0x0807A4BD
_0807D264: .4byte 0x0830D00C
_0807D268:
ldr r2, [r7]
adds r1, r2, #0
adds r1, #0xe0
ldrh r0, [r1]
subs r0, #3
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xa6
bne _0807D282
subs r1, #0x4c
movs r0, #0xc8
strh r0, [r1]
_0807D282:
ldr r1, _0807D290
movs r0, #0
bl SetGpuReg
bl _0807DE38
.align 2, 0
_0807D290: .4byte 0x00001241
_0807D294:
ldr r2, _0807D2E8
ldr r4, [r7]
adds r3, r4, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x22]
subs r1, #2
strh r1, [r0, #0x22]
adds r0, r4, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x22]
subs r1, #2
strh r1, [r0, #0x22]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r2, #0x22
ldrsh r1, [r0, r2]
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
blt _0807D2DA
bl _0807DE38
_0807D2DA:
adds r1, r4, #0
adds r1, #0x94
movs r0, #0x1d
strh r0, [r1]
bl _0807DE38
.align 2, 0
_0807D2E8: .4byte 0x020205AC
_0807D2EC:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807D30C
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x1e
strh r1, [r0]
bl _0807DE38
.align 2, 0
_0807D30C: .4byte 0x02031F40
_0807D310:
ldr r0, _0807D354
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807D320
bl _0807DE38
_0807D320:
ldr r0, [r7]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807D358
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
movs r0, #2
bl sub_0807B064
ldr r1, [r7]
bl _0807DDD0
.align 2, 0
_0807D354: .4byte 0x02037C74
_0807D358: .4byte 0x020205AC
_0807D35C:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r5, _0807D3A0
adds r0, r5, #0
movs r1, #0x6f
movs r2, #0xaa
movs r3, #0
bl CreateSprite
ldr r4, _0807D3A4
ldr r1, [r4]
adds r1, #0x90
strb r0, [r1]
movs r2, #0xa
rsbs r2, r2, #0
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 _0807DDD0
.align 2, 0
_0807D3A0: .4byte 0x0830D00C
_0807D3A4: .4byte 0x02031F40
_0807D3A8:
ldr r0, _0807D3F8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807D3C6
movs r0, #0x2e
bl PlaySE
ldr r0, _0807D3FC
ldr r1, [r0]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807D3C6:
ldr r3, _0807D400
ldr r0, _0807D3FC
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r2, #0x91
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
bl _0807DE38
.align 2, 0
_0807D3F8: .4byte 0x02037C74
_0807D3FC: .4byte 0x02031F40
_0807D400: .4byte 0x020205AC
_0807D404:
ldr r5, _0807D468
ldr r4, [r7]
adds r2, r4, #0
adds r2, #0x90
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r6, r4, #0
adds r6, #0x91
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r3, r0, r5
movs r0, #0x26
ldrsh r1, [r3, r0]
movs r0, #0x5a
rsbs r0, r0, #0
cmp r1, r0
ble _0807D44A
bl _0807DE38
_0807D44A:
movs r2, #1
strh r2, [r3, #0x30]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
strh r2, [r0, #0x30]
adds r1, r4, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r0, _0807D46C
b _0807D692
.align 2, 0
_0807D468: .4byte 0x020205AC
_0807D46C: .4byte 0x0807ED1D
_0807D470:
ldr r2, _0807D480
movs r0, #8
movs r1, #0x10
bl BlendPalettes
bl _0807DDCC
.align 2, 0
_0807D480: .4byte 0x0000FFFF
_0807D484:
ldr r2, _0807D494
movs r0, #8
movs r1, #0x10
bl BlendPalettes
bl _0807DDCC
.align 2, 0
_0807D494: .4byte 0x0000FFFF
_0807D498:
ldr r2, _0807D4A8
movs r0, #8
movs r1, #0x10
bl BlendPalettes
bl _0807DDCC
.align 2, 0
_0807D4A8: .4byte 0x0000FFFF
_0807D4AC:
ldr r5, _0807D518
ldr r0, [r5]
adds r0, #0xf0
ldrh r0, [r0]
bl IsMonSpriteNotFlipped
lsls r0, r0, #0x18
cmp r0, #0
bne _0807D524
ldr r4, _0807D51C
ldr r2, [r5]
adds r2, #0x8e
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x10
adds r0, r0, r1
ldr r1, _0807D520
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0, #1]
movs r2, #3
orrs r1, r2
strb r1, [r0, #1]
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0
movs r2, #3
movs r3, #3
bl CalcCenterToCornerVec
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0
bl StartSpriteAffineAnim
b _0807D53A
.align 2, 0
_0807D518: .4byte 0x02031F40
_0807D51C: .4byte 0x020205AC
_0807D520: .4byte 0x0830D110
_0807D524:
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807D5C8
adds r0, r0, r1
movs r1, #0
bl StartSpriteAffineAnim
_0807D53A:
ldr r5, _0807D5CC
ldr r0, [r5]
adds r0, #0x8f
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807D5C8
adds r0, 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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0x28
strh r1, [r0, #0x20]
adds r2, #0x8f
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xc8
strh r1, [r0, #0x20]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xc0
strh r1, [r0, #0x22]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0807D5D0
strh r1, [r0, #0x22]
ldrb r0, [r3]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
adds r1, #0x3e
ldrb r3, [r1]
movs r2, #5
rsbs r2, r2, #0
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r1, [r5]
bl _0807DDD0
.align 2, 0
_0807D5C8: .4byte 0x020205AC
_0807D5CC: .4byte 0x02031F40
_0807D5D0: .4byte 0x0000FFE0
_0807D5D4:
ldr r4, _0807D69C
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x8e
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
subs r1, #3
movs r5, #0
strh r1, [r0, #0x26]
adds r2, #0x8f
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r0, [r0, #0x26]
adds r0, #0xa3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #2
bhi _0807D61C
movs r0, #0x2d
bl PlaySE
_0807D61C:
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x8e
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r6, #0x26
ldrsh r1, [r0, r6]
movs r0, #0xde
rsbs r0, r0, #0
cmp r1, r0
blt _0807D63C
bl _0807DE38
_0807D63C:
adds r0, r2, #0
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x30]
adds r0, r2, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x30]
adds r1, r2, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x8f
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
ldr r0, _0807D6A0
_0807D692:
movs r1, #5
bl CreateTask
b _0807DE38
.align 2, 0
_0807D69C: .4byte 0x020205AC
_0807D6A0: .4byte 0x0807EDD5
_0807D6A4:
ldr r4, _0807D728
ldr r2, [r7]
adds r3, r2, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
subs r1, #3
strh r1, [r0, #0x26]
adds r2, #0x91
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x26]
adds r1, #3
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r2, #0x26
ldrsh r1, [r0, r2]
movs r0, #0xde
rsbs r0, r0, #0
cmp r1, r0
ble _0807D6E6
b _0807DE38
_0807D6E6:
movs r1, #1
rsbs r1, r1, #0
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, #1
strh r0, [r2]
adds r1, #0x90
ldrb r1, [r1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
b _0807DE38
.align 2, 0
_0807D728: .4byte 0x020205AC
_0807D72C:
ldr r0, _0807D7B8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807D73A
b _0807DE38
_0807D73A:
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r0, #1
bl sub_0807B064
ldr r0, [r7]
adds r0, #0xe0
movs r1, #0xa6
strh r1, [r0]
movs r0, #3
bl sub_0807B064
ldr r0, [r7]
adds r0, #0xe4
movs r1, #0xce
lsls r1, r1, #1
strh r1, [r0]
ldr r0, _0807D7BC
movs r4, #0x14
rsbs r4, r4, #0
movs r1, #0x78
adds r2, r4, #0
movs r3, #3
bl CreateSprite
ldr r1, [r7]
adds r1, #0x90
strb r0, [r1]
ldr r5, _0807D7C0
ldr r0, [r7]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r5, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0807D7C4
str r1, [r0]
ldr r0, _0807D7C8
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #1
bl StartSpriteAnim
b _0807DE38
.align 2, 0
_0807D7B8: .4byte 0x02037C74
_0807D7BC: .4byte 0x0830CFCC
_0807D7C0: .4byte 0x020205AC
_0807D7C4: .4byte 0x0807A4BD
_0807D7C8: .4byte 0x0830D00C
_0807D7CC:
movs r1, #1
rsbs r1, r1, #0
movs r0, #0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
b _0807DDC8
_0807D7DC:
movs r1, #0x92
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0807D7F8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807D7F4
b _0807DE38
_0807D7F4:
b _0807DDCC
.align 2, 0
_0807D7F8: .4byte 0x02037C74
_0807D7FC:
ldr r2, _0807D850
ldr r4, [r7]
adds r3, r4, #0
adds r3, #0x90
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x26]
adds r1, #4
strh r1, [r0, #0x26]
adds r0, r4, #0
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x26]
adds r1, #4
strh r1, [r0, #0x26]
ldrb r1, [r3]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r6, #0x26
ldrsh r1, [r0, r6]
movs r2, #0x22
ldrsh r0, [r0, r2]
adds r1, r1, r0
cmp r1, #0x40
beq _0807D842
b _0807DE38
_0807D842:
adds r0, r4, #0
adds r0, #0x94
movs r1, #0x90
strh r1, [r0]
movs r0, #0
str r0, [r4, #0x64]
b _0807DE38
.align 2, 0
_0807D850: .4byte 0x020205AC
_0807D854:
movs r1, #0xb2
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r4, _0807D8B0
ldr r2, [r4]
adds r1, r2, #0
adds r1, #0xe0
ldrh r0, [r1]
adds r0, #3
strh r0, [r1]
adds r1, #4
ldrh r0, [r1]
adds r0, #3
strh r0, [r1]
ldr r0, [r2, #0x64]
adds r0, #1
str r0, [r2, #0x64]
cmp r0, #0xa
bne _0807D898
ldr r0, _0807D8B4
movs r1, #5
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _0807D8B8
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
movs r0, #1
strh r0, [r1, #0xc]
_0807D898:
ldr r1, [r4]
adds r3, r1, #0
adds r3, #0xe0
movs r6, #0
ldrsh r0, [r3, r6]
movs r2, #0x9e
lsls r2, r2, #1
cmp r0, r2
bgt _0807D8AC
b _0807DE38
_0807D8AC:
strh r2, [r3]
b _0807DDD0
.align 2, 0
_0807D8B0: .4byte 0x02031F40
_0807D8B4: .4byte 0x0807EC49
_0807D8B8: .4byte 0x03005B60
_0807D8BC:
ldr r0, [r7]
adds r0, #0x90
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807D8F4
adds r0, r0, r4
bl DestroySprite
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r3, [r7]
adds r2, r3, #0
adds r2, #0x94
ldrh r0, [r2]
adds r0, #1
movs r1, #0
strh r0, [r2]
str r1, [r3, #0x64]
b _0807DE38
.align 2, 0
_0807D8F4: .4byte 0x020205AC
_0807D8F8:
ldr r0, _0807D918
bl FuncIsActiveTask
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _0807D908
b _0807DE38
_0807D908:
ldr r0, _0807D91C
ldr r2, [r0]
adds r1, r2, #0
adds r1, #0x94
movs r0, #0x2e
strh r0, [r1]
str r3, [r2, #0x64]
b _0807DE38
.align 2, 0
_0807D918: .4byte 0x0807EC49
_0807D91C: .4byte 0x02031F40
_0807D920:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0xa
beq _0807D92E
b _0807DE38
_0807D92E:
b _0807DDD0
_0807D930:
ldr r1, [r7]
adds r5, r1, #0
adds r5, #0xe0
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r6, #0xae
lsls r6, r6, #1
cmp r0, r6
bgt _0807D94A
b _0807DE38
_0807D94A:
strh r6, [r5]
b _0807DDD0
_0807D94E:
ldr r0, _0807D96C
movs r1, #0x78
movs r2, #0x50
movs r3, #0
bl CreateSprite
ldr r2, _0807D970
ldr r1, [r2]
adds r1, #0x91
strb r0, [r1]
ldr r0, [r2]
adds r0, #0x94
movs r1, #0x32
strh r1, [r0]
b _0807DE38
.align 2, 0
_0807D96C: .4byte 0x0830D0B8
_0807D970: .4byte 0x02031F40
_0807D974:
ldr r2, _0807D9B0
ldr r0, [r7]
adds r0, #0x91
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1b
cmp r0, #0
blt _0807D992
b _0807DE38
_0807D992:
adds r0, r1, #0
bl DestroySprite
movs r0, #6
bl sub_0807B064
ldr r1, [r7]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
movs r0, #0x9f
bl PlaySE
b _0807DE38
.align 2, 0
_0807D9B0: .4byte 0x020205AC
_0807D9B4:
ldr r1, [r7]
adds r2, r1, #0
adds r2, #0xea
ldrh r3, [r2]
ldr r0, _0807D9CC
cmp r3, r0
bhi _0807D9D0
adds r0, r3, #0
adds r0, #0x34
strh r0, [r2]
b _0807D9DE
.align 2, 0
_0807D9CC: .4byte 0x000003FF
_0807D9D0:
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0807D9DE:
ldr r4, [r7]
_0807D9E0:
adds r0, r4, #0
adds r0, #0xea
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #8
bl __divsi3
adds r4, #0xe8
strh r0, [r4]
b _0807DE38
_0807D9F4:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807DA10
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x3c
strh r1, [r0]
b _0807DE38
.align 2, 0
_0807DA10: .4byte 0x02031F40
_0807DA14:
ldr r4, _0807DA38
ldrb r1, [r4, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807DA22
b _0807DE38
_0807DA22:
movs r0, #5
bl sub_0807B064
movs r0, #7
bl sub_0807B064
ldrb r0, [r4, #8]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #8]
b _0807DDCC
.align 2, 0
_0807DA38: .4byte 0x02037C74
_0807DA3C:
ldr r2, _0807DA54
ldrb r1, [r2, #8]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #8]
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
b _0807DDC8
.align 2, 0
_0807DA54: .4byte 0x02037C74
_0807DA58:
movs r1, #0xa2
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0807DA74
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807DA70
b _0807DE38
_0807DA70:
b _0807DDCC
.align 2, 0
_0807DA74: .4byte 0x02037C74
_0807DA78:
ldr r0, _0807DB0C
movs r2, #8
rsbs r2, r2, #0
movs r1, #0x78
movs r3, #0
bl CreateSprite
ldr r5, _0807DB10
ldr r1, [r5]
adds r1, #0xd3
movs r6, #0
strb r0, [r1]
ldr r4, _0807DB14
ldr r2, [r5]
adds r2, #0xd3
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0x4a
strh r1, [r0, #0x34]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0807DB18
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #1
bl StartSpriteAnim
ldr r0, [r5]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #2
bl StartSpriteAffineAnim
ldr r0, [r5]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
ldr r2, _0807DB1C
movs r1, #0x10
bl BlendPalettes
ldr r2, [r5]
adds r1, r2, #0
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
str r6, [r2, #0x64]
b _0807DE38
.align 2, 0
_0807DB0C: .4byte 0x0830CF6C
_0807DB10: .4byte 0x02031F40
_0807DB14: .4byte 0x020205AC
_0807DB18: .4byte 0x0807E0E5
_0807DB1C: .4byte 0x0000FFFF
_0807DB20:
ldr r2, _0807DB4C
ldr r0, [r7]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
ldr r1, _0807DB50
str r1, [sp]
movs r1, #1
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r1, [r7]
b _0807DDD0
.align 2, 0
_0807DB4C: .4byte 0x020205AC
_0807DB50: .4byte 0x0000FFFF
_0807DB54:
ldr r2, _0807DB90
ldr r3, [r7]
adds r0, r3, #0
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _0807DB94
cmp r1, r0
beq _0807DB72
b _0807DE38
_0807DB72:
adds r0, r3, #0
adds r0, #0xf2
ldrh r2, [r0]
lsls r0, r2, #3
ldr r1, _0807DB98
adds r0, r0, r1
ldr r1, _0807DB9C
ldr r1, [r1]
ldr r1, [r1, #0x10]
ldr r3, [r3, #0x6c]
bl HandleLoadSpecialPokePic_2
ldr r1, [r7]
b _0807DDD0
.align 2, 0
_0807DB90: .4byte 0x020205AC
_0807DB94: .4byte 0x08007141
_0807DB98: .4byte 0x082DDA1C
_0807DB9C: .4byte 0x02024178
_0807DBA0:
ldr r4, _0807DC54
ldr r2, [r7]
adds r6, r2, #0
adds r6, #0x8f
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r5, #0
movs r1, #0x78
strh r1, [r0, #0x20]
ldrb r0, [r6]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
ldr r3, _0807DC58
adds r2, #0xf2
ldrh r0, [r2]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r0, [r0, #1]
adds r0, #0x3c
strh r0, [r1, #0x22]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x24]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r5, [r0, #0x26]
ldrb r1, [r6]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, 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, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
ldrb r1, [r1, #5]
lsrs r1, r1, #4
movs r2, #2
str r2, [sp]
movs r2, #1
str r2, [sp, #4]
movs r2, #0x14
str r2, [sp, #8]
ldr r2, _0807DC5C
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, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl FreeSpriteOamMatrix
ldr r0, [r7]
adds r0, #0xd3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r1, [r7]
b _0807DDD0
.align 2, 0
_0807DC54: .4byte 0x020205AC
_0807DC58: .4byte 0x082D45C8
_0807DC5C: .4byte 0x000FFFFF
_0807DC60:
movs r1, #0xaa
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r4, _0807DC90
ldr r1, _0807DC94
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r0, _0807DC98
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0x94
movs r2, #0
movs r0, #0xa7
_0807DC8A:
strh r0, [r1]
str r2, [r3, #0x64]
b _0807DE38
.align 2, 0
_0807DC90: .4byte 0x02021C7C
_0807DC94: .4byte 0x0830D258
_0807DC98: .4byte 0x02031F40
_0807DC9C:
ldr r3, [r7]
ldr r0, [r3, #0x64]
adds r0, #1
str r0, [r3, #0x64]
cmp r0, #0x3c
bhi _0807DCAA
b _0807DE38
_0807DCAA:
adds r0, r3, #0
adds r0, #0x94
movs r2, #0
ldr r1, _0807DCB8
strh r1, [r0]
str r2, [r3, #0x64]
b _0807DE38
.align 2, 0
_0807DCB8: .4byte 0x0000010B
_0807DCBC:
bl IsCryFinished
lsls r0, r0, #0x18
cmp r0, #0
bne _0807DCC8
b _0807DE38
_0807DCC8:
ldr r0, _0807DCD4
ldr r0, [r0]
adds r0, #0x94
movs r1, #0x44
strh r1, [r0]
b _0807DE38
.align 2, 0
_0807DCD4: .4byte 0x02031F40
_0807DCD8:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0xa
bne _0807DCEA
ldr r0, _0807DD18
bl PlayFanfare
_0807DCEA:
ldr r1, [r7]
ldr r0, [r1, #0x64]
cmp r0, #0xfa
beq _0807DCF4
b _0807DE38
_0807DCF4:
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
movs r5, #0
strh r0, [r1]
ldr r4, _0807DD1C
ldr r1, _0807DD20
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
ldr r0, [r7]
str r5, [r0, #0x64]
b _0807DE38
.align 2, 0
_0807DD18: .4byte 0x00000173
_0807DD1C: .4byte 0x02021C7C
_0807DD20: .4byte 0x0830D26A
_0807DD24:
ldr r1, [r7]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x3c
beq _0807DD32
b _0807DE38
_0807DD32:
b _0807DDD0
_0807DD34:
bl sub_0807EB84
b _0807DDCC
_0807DD3A:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xee
ldrb r0, [r0]
cmp r0, #0
beq _0807DD4A
movs r0, #1
b _0807DE3A
_0807DD4A:
ldr r0, _0807DD5C
ldrh r1, [r0, #0x2e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0807DE38
adds r1, r2, #0
b _0807DDD0
.align 2, 0
_0807DD5C: .4byte 0x03002360
_0807DD60:
ldr r0, _0807DDA4
ldrb r0, [r0]
movs r1, #0
bl sub_0807AF08
ldr r1, _0807DDA8
ldr r0, _0807DDAC
str r0, [r1]
ldr r7, _0807DDB0
ldrb r0, [r7]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _0807DDB4
adds r0, r0, r5
movs r1, #1
movs r2, #0
bl GetEvolutionTargetSpecies
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq _0807DDCC
ldrb r3, [r7]
adds r0, r3, #0
muls r0, r6, r0
adds r0, r0, r5
ldr r1, _0807DDB8
ldr r1, [r1]
adds r1, #0x8f
ldrb r2, [r1]
adds r1, r4, #0
bl TradeEvolutionScene
b _0807DDCC
.align 2, 0
_0807DDA4: .4byte 0x02037282
_0807DDA8: .4byte 0x03005F28
_0807DDAC: .4byte 0x0807B045
_0807DDB0: .4byte 0x02031F38
_0807DDB4: .4byte 0x02024190
_0807DDB8: .4byte 0x02031F40
_0807DDBC:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
_0807DDC8:
bl BeginNormalPaletteFade
_0807DDCC:
ldr r0, _0807DDDC
ldr r1, [r0]
_0807DDD0:
adds r1, #0x94
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0807DE38
.align 2, 0
_0807DDDC: .4byte 0x02031F40
_0807DDE0:
ldr r0, _0807DE44
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0807DE38
ldr r0, [r7]
adds r0, #0xf4
ldrh r0, [r0]
bl PlayNewMapMusic
ldr r0, [r7]
cmp r0, #0
beq _0807DE2E
bl FreeAllWindowBuffers
movs r0, #3
bl GetBgTilemapBuffer
bl Free
movs r0, #1
bl GetBgTilemapBuffer
bl Free
movs r0, #0
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
ldr r0, [r7]
bl Free
str r4, [r7]
_0807DE2E:
ldr r0, _0807DE48
bl SetMainCallback2
bl sub_0807E1C4
_0807DE38:
movs r0, #0
_0807DE3A:
add sp, #0x14
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0807DE44: .4byte 0x02037C74
_0807DE48: .4byte 0x08085A31
thumb_func_end sub_0807CA00
thumb_func_start c2_08053788
c2_08053788: @ 0x0807DE4C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _0807DE68
movs r2, #0x87
lsls r2, r2, #3
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
beq _0807DE6C
cmp r0, #4
beq _0807DE7C
b _0807DEEC
.align 2, 0
_0807DE68: .4byte 0x03002360
_0807DE6C:
movs r0, #4
strb r0, [r1]
ldr r1, _0807DE78
movs r0, #1
b _0807DEEA
.align 2, 0
_0807DE78: .4byte 0x030027A0
_0807DE7C:
ldr r0, _0807DEB8
ldr r1, _0807DEBC
mov r8, r1
str r1, [r0]
ldr r7, _0807DEC0
ldrb r0, [r7]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _0807DEC4
adds r0, r0, r5
movs r1, #1
movs r2, #0
bl GetEvolutionTargetSpecies
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq _0807DECC
ldrb r3, [r7]
adds r0, r3, #0
muls r0, r6, r0
adds r0, r0, r5
ldr r1, _0807DEC8
ldr r1, [r1]
adds r1, #0x8f
ldrb r2, [r1]
adds r1, r4, #0
bl TradeEvolutionScene
b _0807DEE6
.align 2, 0
_0807DEB8: .4byte 0x03005F28
_0807DEBC: .4byte 0x0807E589
_0807DEC0: .4byte 0x02031F38
_0807DEC4: .4byte 0x02024190
_0807DEC8: .4byte 0x02031F40
_0807DECC:
bl sub_08076C68
cmp r0, #0
beq _0807DEE0
ldr r0, _0807DEDC
bl SetMainCallback2
b _0807DEE6
.align 2, 0
_0807DEDC: .4byte 0x0807EE9D
_0807DEE0:
mov r0, r8
bl SetMainCallback2
_0807DEE6:
ldr r1, _0807DF10
movs r0, #0xff
_0807DEEA:
strb r0, [r1]
_0807DEEC:
bl HasLinkErrorOccurred
lsls r0, r0, #0x18
cmp r0, #0
bne _0807DEFA
bl RunTasks
_0807DEFA:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807DF10: .4byte 0x02031F38
thumb_func_end c2_08053788
thumb_func_start sub_0807DF14
sub_0807DF14: @ 0x0807DF14
push {r4, r5, r6, lr}
bl sub_0807A738
bl GetBlockReceivedStatus
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r6, #1
adds r0, r5, #0
ands r0, r6
cmp r0, #0
beq _0807DF52
ldr r4, _0807DF80
ldrh r1, [r4]
ldr r0, _0807DF84
cmp r1, r0
bne _0807DF3C
ldr r0, _0807DF88
bl SetMainCallback2
_0807DF3C:
ldrh r1, [r4]
ldr r0, _0807DF8C
cmp r1, r0
bne _0807DF4C
ldr r0, _0807DF90
ldr r0, [r0]
adds r0, #0x72
strb r6, [r0]
_0807DF4C:
movs r0, #0
bl ResetBlockReceivedFlag
_0807DF52:
movs r0, #2
ands r0, r5
cmp r0, #0
beq _0807DF7A
ldr r0, _0807DF80
movs r1, #0x80
lsls r1, r1, #1
adds r0, r0, r1
ldrh r1, [r0]
ldr r0, _0807DF8C
cmp r1, r0
bne _0807DF74
ldr r0, _0807DF90
ldr r0, [r0]
adds r0, #0x73
movs r1, #1
strb r1, [r0]
_0807DF74:
movs r0, #1
bl ResetBlockReceivedFlag
_0807DF7A:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807DF80: .4byte 0x0202207C
_0807DF84: .4byte 0x0000DCBA
_0807DF88: .4byte 0x0807DE4D
_0807DF8C: .4byte 0x0000ABCD
_0807DF90: .4byte 0x02031F40
thumb_func_end sub_0807DF14
thumb_func_start sub_0807DF94
sub_0807DF94: @ 0x0807DF94
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, r4, r0
strh r4, [r5, #0x22]
ldrh r0, [r5, #0x30]
ldrh r2, [r5, #0x38]
adds r0, r0, r2
strh r0, [r5, #0x38]
movs r1, #0x38
ldrsh r0, [r5, r1]
movs r1, #0xa
bl __divsi3
strh r0, [r5, #0x20]
lsls r4, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #0x4c
ble _0807DFE2
movs r0, #0x4c
strh r0, [r5, #0x22]
movs r2, #0x2e
ldrsh r1, [r5, r2]
movs r2, #0x32
ldrsh r0, [r5, r2]
muls r0, r1, r0
rsbs r0, r0, #0
movs r1, #0x64
bl __divsi3
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x34]
adds r0, #1
strh r0, [r5, #0x34]
_0807DFE2:
movs r1, #0x20
ldrsh r0, [r5, r1]
cmp r0, #0x78
bne _0807DFEE
movs r0, #0
strh r0, [r5, #0x30]
_0807DFEE:
ldrh r0, [r5, #0x36]
ldrh r2, [r5, #0x2e]
adds r0, r0, r2
strh r0, [r5, #0x2e]
movs r1, #0x34
ldrsh r0, [r5, r1]
cmp r0, #4
bne _0807E006
movs r0, #1
strh r0, [r5, #0x3c]
ldr r0, _0807E00C
str r0, [r5, #0x1c]
_0807E006:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807E00C: .4byte 0x08007141
thumb_func_end sub_0807DF94
thumb_func_start sub_0807E010
sub_0807E010: @ 0x0807E010
push {r4, lr}
sub sp, #4
adds r4, r0, #0
ldr r1, _0807E078
movs r2, #0x2e
ldrsh r0, [r4, r2]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x26]
adds r0, r0, r1
strh r0, [r4, #0x26]
movs r2, #0x2e
ldrsh r0, [r4, r2]
cmp r0, #0x16
bne _0807E038
movs r0, #0x38
bl PlaySE
_0807E038:
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x2c
bne _0807E06E
movs r0, #0x8c
bl PlaySE
ldr r0, _0807E07C
str r0, [r4, #0x1c]
movs r0, #0
strh r0, [r4, #0x2e]
ldrb r1, [r4, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
movs r1, #1
rsbs r1, r1, #0
ldr r2, _0807E080
str r2, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
_0807E06E:
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807E078: .4byte 0x0830D2A4
_0807E07C: .4byte 0x0807E085
_0807E080: .4byte 0x0000FFFF
thumb_func_end sub_0807E010
thumb_func_start sub_0807E084
sub_0807E084: @ 0x0807E084
push {r4, lr}
adds r4, r0, #0
movs r1, #0x30
ldrsh r0, [r4, r1]
cmp r0, #0x14
bne _0807E098
adds r0, r4, #0
movs r1, #1
bl StartSpriteAffineAnim
_0807E098:
ldrh r0, [r4, #0x30]
adds r0, #1
strh r0, [r4, #0x30]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _0807E0D6
ldr r1, _0807E0DC
movs r2, #0x2e
ldrsh r0, [r4, r2]
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
ldrh r0, [r4, #0x26]
subs r0, r0, r1
strh r0, [r4, #0x26]
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x17
bne _0807E0D6
adds r0, r4, #0
bl DestroySprite
ldr r0, _0807E0E0
ldr r0, [r0]
adds r0, #0x94
movs r1, #0xe
strh r1, [r0]
_0807E0D6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807E0DC: .4byte 0x0830D2A4
_0807E0E0: .4byte 0x02031F40
thumb_func_end sub_0807E084
thumb_func_start sub_0807E0E4
sub_0807E0E4: @ 0x0807E0E4
push {r4, lr}
adds r4, r0, #0
ldrh r2, [r4, #0x32]
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0807E114
ldrh r0, [r4, #0x22]
adds r0, #4
strh r0, [r4, #0x22]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r3, #0x34
ldrsh r1, [r4, r3]
cmp r0, r1
ble _0807E164
adds r0, r2, #1
strh r0, [r4, #0x32]
movs r0, #0x16
strh r0, [r4, #0x2e]
movs r0, #0x38
bl PlaySE
b _0807E164
_0807E114:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x42
bne _0807E122
movs r0, #0x39
bl PlaySE
_0807E122:
movs r2, #0x2e
ldrsh r0, [r4, r2]
cmp r0, #0x5c
bne _0807E130
movs r0, #0x3a
bl PlaySE
_0807E130:
movs r3, #0x2e
ldrsh r0, [r4, r3]
cmp r0, #0x6b
bne _0807E13E
movs r0, #0x3b
bl PlaySE
_0807E13E:
ldr r1, _0807E16C
movs r2, #0x2e
ldrsh r0, [r4, r2]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r4, #0x26]
adds r0, r0, r3
strh r0, [r4, #0x26]
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x6c
bne _0807E164
ldr r0, _0807E170
str r0, [r4, #0x1c]
_0807E164:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807E16C: .4byte 0x0830D2A4
_0807E170: .4byte 0x08007141
thumb_func_end sub_0807E0E4
thumb_func_start GetInGameTradeSpeciesInfo
GetInGameTradeSpeciesInfo: @ 0x0807E174
push {r4, r5, lr}
ldr r0, _0807E1B0
ldrh r0, [r0]
lsls r4, r0, #4
subs r4, r4, r0
lsls r4, r4, #2
ldr r0, _0807E1B4
adds r4, r4, r0
ldr r0, _0807E1B8
ldrh r2, [r4, #0x38]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #1
ldr r5, _0807E1BC
adds r1, r1, r5
bl StringCopy
ldr r0, _0807E1C0
ldrh r2, [r4, #0xc]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #1
adds r1, r1, r5
bl StringCopy
ldrh r0, [r4, #0x38]
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0807E1B0: .4byte 0x02037280
_0807E1B4: .4byte 0x0830D114
_0807E1B8: .4byte 0x02021C40
_0807E1BC: .4byte 0x082EA31C
_0807E1C0: .4byte 0x02021C54
thumb_func_end GetInGameTradeSpeciesInfo
thumb_func_start sub_0807E1C4
sub_0807E1C4: @ 0x0807E1C4
push {r4, lr}
sub sp, #0x20
ldr r0, _0807E20C
ldrh r0, [r0]
lsls r4, r0, #4
subs r4, r4, r0
lsls r4, r4, #2
ldr r0, _0807E210
adds r4, r4, r0
ldr r0, _0807E214
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0807E218
adds r0, r0, r1
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0807E21C
mov r1, sp
bl StringCopy10
ldr r0, _0807E220
ldrh r2, [r4, #0xc]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #1
ldr r2, _0807E224
adds r1, r1, r2
bl StringCopy
add sp, #0x20
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807E20C: .4byte 0x02037280
_0807E210: .4byte 0x0830D114
_0807E214: .4byte 0x02037282
_0807E218: .4byte 0x02024190
_0807E21C: .4byte 0x02021C40
_0807E220: .4byte 0x02021C54
_0807E224: .4byte 0x082EA31C
thumb_func_end sub_0807E1C4
thumb_func_start _CreateInGameTradePokemon
_CreateInGameTradePokemon: @ 0x0807E228
push {r4, r5, r6, r7, lr}
sub sp, #0x38
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsls r2, r1, #4
subs r2, r2, r1
lsls r2, r2, #2
ldr r1, _0807E384
adds r5, r2, r1
movs r1, #0x64
muls r0, r1, r0
ldr r1, _0807E388
adds r0, r0, r1
movs r1, #0x38
bl GetMonData
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
add r4, sp, #0x34
movs r0, #0xfe
strb r0, [r4]
ldr r6, _0807E38C
ldrh r1, [r5, #0xc]
movs r3, #1
str r3, [sp]
ldr r0, [r5, #0x24]
str r0, [sp, #4]
str r3, [sp, #8]
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, #2
adds r2, r5, #0
bl SetMonData
adds r2, r5, #0
adds r2, #0x2b
adds r0, r6, #0
movs r1, #7
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 _0807E3A0
bl ItemIsMail
lsls r0, r0, #0x18
cmp r0, #0
beq _0807E394
add r0, sp, #0x10
adds r1, r5, #0
bl sub_0807E3B4
ldr r0, _0807E390
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 _0807E3A0
.align 2, 0
_0807E384: .4byte 0x0830D114
_0807E388: .4byte 0x02024190
_0807E38C: .4byte 0x020243E8
_0807E390: .4byte 0x02031E60
_0807E394:
adds r2, r5, #0
adds r2, #0x28
adds r0, r6, #0
movs r1, #0xc
bl SetMonData
_0807E3A0:
ldr r0, _0807E3B0
bl CalculateMonStats
add sp, #0x38
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0807E3B0: .4byte 0x020243E8
thumb_func_end _CreateInGameTradePokemon
thumb_func_start sub_0807E3B4
sub_0807E3B4: @ 0x0807E3B4
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r2, _0807E408
adds r0, r5, #0
adds r0, #0x2a
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
adds r2, r0, r2
adds r1, r4, #0
movs r3, #8
_0807E3CE:
ldrh r0, [r2]
strh r0, [r1]
adds r2, #2
adds r1, #2
subs r3, #1
cmp r3, #0
bge _0807E3CE
adds r0, r4, #0
adds r0, #0x12
adds r1, r5, #0
adds r1, #0x2b
bl StringCopy
ldr r1, [r5, #0x18]
lsrs r0, r1, #0x18
strb r0, [r4, #0x1a]
lsrs r0, r1, #0x10
strb r0, [r4, #0x1b]
lsrs r0, r1, #8
strb r0, [r4, #0x1c]
strb r1, [r4, #0x1d]
ldrh r0, [r5, #0xc]
strh r0, [r4, #0x1e]
ldrh r0, [r5, #0x28]
strh r0, [r4, #0x20]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807E408: .4byte 0x0830D204
thumb_func_end sub_0807E3B4
thumb_func_start GetTradeSpecies
GetTradeSpecies: @ 0x0807E40C
push {r4, r5, r6, lr}
ldr r6, _0807E438
ldrh r0, [r6]
movs r5, #0x64
muls r0, r5, r0
ldr r4, _0807E43C
adds r0, r0, r4
movs r1, #0x2d
bl GetMonData
cmp r0, #0
bne _0807E440
ldrh r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
b _0807E442
.align 2, 0
_0807E438: .4byte 0x02037282
_0807E43C: .4byte 0x02024190
_0807E440:
movs r0, #0
_0807E442:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_end GetTradeSpecies
thumb_func_start CreateInGameTradePokemon
CreateInGameTradePokemon: @ 0x0807E448
push {lr}
ldr r0, _0807E45C
ldrb r0, [r0]
ldr r1, _0807E460
ldrb r1, [r1]
bl _CreateInGameTradePokemon
pop {r0}
bx r0
.align 2, 0
_0807E45C: .4byte 0x02037282
_0807E460: .4byte 0x02037280
thumb_func_end CreateInGameTradePokemon
thumb_func_start sub_0807E464
sub_0807E464: @ 0x0807E464
push {r4, r5, r6, lr}
bl sub_0807B600
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #1
bne _0807E4CE
ldr r5, _0807E4F0
ldr r0, [r5]
adds r0, #0x8e
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0807E4F4
adds r0, r0, r4
bl DestroySprite
ldr r0, [r5]
adds r0, #0x8f
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl FreeSpriteOamMatrix
ldr r0, _0807E4F8
ldrb r4, [r0]
ldrb r0, [r0, #1]
movs r1, #6
bl __umodsi3
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl sub_0807AF08
bl sub_08076C68
cmp r0, #0
bne _0807E4C8
ldr r0, [r5]
adds r2, r0, #0
adds r2, #0x74
ldr r1, _0807E4FC
strh r1, [r2]
adds r0, #0x93
strb r6, [r0]
_0807E4C8:
ldr r0, _0807E500
bl SetMainCallback2
_0807E4CE:
bl sub_0807AFF0
bl sub_0807DF14
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807E4F0: .4byte 0x02031F40
_0807E4F4: .4byte 0x020205AC
_0807E4F8: .4byte 0x02031F38
_0807E4FC: .4byte 0x0000ABCD
_0807E500: .4byte 0x0807E505
thumb_func_end sub_0807E464
thumb_func_start sub_0807E504
sub_0807E504: @ 0x0807E504
push {r4, lr}
bl sub_0807A738
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
bl sub_08076C68
cmp r0, #0
beq _0807E524
ldr r0, _0807E520
bl SetMainCallback2
b _0807E564
.align 2, 0
_0807E520: .4byte 0x0807DE4D
_0807E524:
bl sub_0807DF14
cmp r4, #0
bne _0807E564
ldr r4, _0807E57C
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x72
ldrh r1, [r0]
ldr r0, _0807E580
cmp r1, r0
bne _0807E564
adds r1, r2, #0
adds r1, #0x74
ldr r0, _0807E584
strh r0, [r1]
bl bitmask_all_link_players_but_self
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, [r4]
adds r1, #0x74
movs r2, #0x14
bl SendBlock
ldr r0, [r4]
adds r0, #0x72
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x73
strb r1, [r0]
_0807E564:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807E57C: .4byte 0x02031F40
_0807E580: .4byte 0x00000101
_0807E584: .4byte 0x0000DCBA
thumb_func_end sub_0807E504
thumb_func_start sub_0807E588
sub_0807E588: @ 0x0807E588
push {r4, lr}
sub sp, #4
ldr r1, _0807E5A8
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, #0
cmp r0, #0x65
bls _0807E59E
b _0807EA72
_0807E59E:
lsls r0, r0, #2
ldr r1, _0807E5AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807E5A8: .4byte 0x03002360
_0807E5AC: .4byte 0x0807E5B0
_0807E5B0: @ jump table
.4byte _0807E748 @ case 0
.4byte _0807E764 @ case 1
.4byte _0807E7D0 @ case 2
.4byte _0807EA72 @ case 3
.4byte _0807E8B0 @ case 4
.4byte _0807E974 @ case 5
.4byte _0807E99C @ case 6
.4byte _0807E9B6 @ case 7
.4byte _0807E9DC @ case 8
.4byte _0807EA28 @ case 9
.4byte _0807EA72 @ case 10
.4byte _0807EA72 @ case 11
.4byte _0807EA72 @ case 12
.4byte _0807EA72 @ case 13
.4byte _0807EA72 @ case 14
.4byte _0807EA72 @ case 15
.4byte _0807EA72 @ case 16
.4byte _0807EA72 @ case 17
.4byte _0807EA72 @ case 18
.4byte _0807EA72 @ case 19
.4byte _0807EA72 @ case 20
.4byte _0807EA72 @ case 21
.4byte _0807EA72 @ case 22
.4byte _0807EA72 @ case 23
.4byte _0807EA72 @ case 24
.4byte _0807EA72 @ case 25
.4byte _0807EA72 @ case 26
.4byte _0807EA72 @ case 27
.4byte _0807EA72 @ case 28
.4byte _0807EA72 @ case 29
.4byte _0807EA72 @ case 30
.4byte _0807EA72 @ case 31
.4byte _0807EA72 @ case 32
.4byte _0807EA72 @ case 33
.4byte _0807EA72 @ case 34
.4byte _0807EA72 @ case 35
.4byte _0807EA72 @ case 36
.4byte _0807EA72 @ case 37
.4byte _0807EA72 @ case 38
.4byte _0807EA72 @ case 39
.4byte _0807E8D4 @ case 40
.4byte _0807E924 @ case 41
.4byte _0807E952 @ case 42
.4byte _0807EA72 @ case 43
.4byte _0807EA72 @ case 44
.4byte _0807EA72 @ case 45
.4byte _0807EA72 @ case 46
.4byte _0807EA72 @ case 47
.4byte _0807EA72 @ case 48
.4byte _0807EA72 @ case 49
.4byte _0807E7F8 @ case 50
.4byte _0807E854 @ case 51
.4byte _0807E870 @ case 52
.4byte _0807EA72 @ case 53
.4byte _0807EA72 @ case 54
.4byte _0807EA72 @ case 55
.4byte _0807EA72 @ case 56
.4byte _0807EA72 @ case 57
.4byte _0807EA72 @ case 58
.4byte _0807EA72 @ case 59
.4byte _0807EA72 @ case 60
.4byte _0807EA72 @ case 61
.4byte _0807EA72 @ case 62
.4byte _0807EA72 @ case 63
.4byte _0807EA72 @ case 64
.4byte _0807EA72 @ case 65
.4byte _0807EA72 @ case 66
.4byte _0807EA72 @ case 67
.4byte _0807EA72 @ case 68
.4byte _0807EA72 @ case 69
.4byte _0807EA72 @ case 70
.4byte _0807EA72 @ case 71
.4byte _0807EA72 @ case 72
.4byte _0807EA72 @ case 73
.4byte _0807EA72 @ case 74
.4byte _0807EA72 @ case 75
.4byte _0807EA72 @ case 76
.4byte _0807EA72 @ case 77
.4byte _0807EA72 @ case 78
.4byte _0807EA72 @ case 79
.4byte _0807EA72 @ case 80
.4byte _0807EA72 @ case 81
.4byte _0807EA72 @ case 82
.4byte _0807EA72 @ case 83
.4byte _0807EA72 @ case 84
.4byte _0807EA72 @ case 85
.4byte _0807EA72 @ case 86
.4byte _0807EA72 @ case 87
.4byte _0807EA72 @ case 88
.4byte _0807EA72 @ case 89
.4byte _0807EA72 @ case 90
.4byte _0807EA72 @ case 91
.4byte _0807EA72 @ case 92
.4byte _0807EA72 @ case 93
.4byte _0807EA72 @ case 94
.4byte _0807EA72 @ case 95
.4byte _0807EA72 @ case 96
.4byte _0807EA72 @ case 97
.4byte _0807EA72 @ case 98
.4byte _0807EA72 @ case 99
.4byte _0807E77C @ case 100
.4byte _0807E7B4 @ case 101
_0807E748:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r4, _0807E75C
ldr r1, _0807E760
b _0807E7DE
.align 2, 0
_0807E75C: .4byte 0x02021C7C
_0807E760: .4byte 0x08595430
_0807E764:
movs r0, #0
bl sub_08076C90
ldr r0, _0807E778
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
movs r1, #0x64
b _0807E8C0
.align 2, 0
_0807E778: .4byte 0x03002360
_0807E77C:
ldr r0, _0807E7AC
ldr r3, [r0]
ldr r0, [r3, #0x64]
adds r0, #1
str r0, [r3, #0x64]
cmp r0, #0xb4
bls _0807E798
movs r1, #0x87
lsls r1, r1, #3
adds r0, r2, r1
movs r2, #0
movs r1, #0x65
strb r1, [r0]
str r2, [r3, #0x64]
_0807E798:
bl _IsLinkTaskFinished
cmp r0, #0
bne _0807E7A2
b _0807EA72
_0807E7A2:
ldr r0, _0807E7B0
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
b _0807E7C6
.align 2, 0
_0807E7AC: .4byte 0x02031F40
_0807E7B0: .4byte 0x03002360
_0807E7B4:
bl _IsLinkTaskFinished
cmp r0, #0
bne _0807E7BE
b _0807EA72
_0807E7BE:
ldr r0, _0807E7CC
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
_0807E7C6:
movs r1, #2
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E7CC: .4byte 0x03002360
_0807E7D0:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #0x32
strb r0, [r1]
ldr r4, _0807E7F0
ldr r1, _0807E7F4
_0807E7DE:
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
b _0807EA72
.align 2, 0
_0807E7F0: .4byte 0x02021C7C
_0807E7F4: .4byte 0x08277071
_0807E7F8:
bl InUnionRoom
cmp r0, #0
bne _0807E806
movs r0, #0x15
bl IncrementGameStat
_0807E806:
ldr r0, _0807E848
ldrb r0, [r0]
cmp r0, #0
beq _0807E82E
ldr r4, _0807E84C
bl GetMultiplayerId
movs r1, #1
eors r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r4, #4
adds r1, r1, r4
ldr r1, [r1]
movs r0, #2
bl sub_0801B4A8
_0807E82E:
bl SetContinueGameWarpStatusToDynamicWarp
bl sub_081532BC
ldr r1, _0807E850
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
b _0807E8C2
.align 2, 0
_0807E848: .4byte 0x0300319C
_0807E84C: .4byte 0x020226A0
_0807E850: .4byte 0x03002360
_0807E854:
ldr r0, _0807E86C
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #5
beq _0807E864
b _0807EA72
_0807E864:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
b _0807EA1C
.align 2, 0
_0807E86C: .4byte 0x02031F40
_0807E870:
bl sub_081532E8
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0807E894
bl ClearContinueGameWarpStatus
ldr r0, _0807E890
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #4
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E890: .4byte 0x03002360
_0807E894:
ldr r0, _0807E8A8
ldr r0, [r0]
str r1, [r0, #0x64]
ldr r0, _0807E8AC
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0x33
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E8A8: .4byte 0x02031F40
_0807E8AC: .4byte 0x03002360
_0807E8B0:
bl sub_0815331C
ldr r0, _0807E8CC
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
movs r1, #0x28
_0807E8C0:
strb r1, [r0]
_0807E8C2:
ldr r0, _0807E8D0
ldr r0, [r0]
str r2, [r0, #0x64]
b _0807EA72
.align 2, 0
_0807E8CC: .4byte 0x03002360
_0807E8D0: .4byte 0x02031F40
_0807E8D4:
ldr r4, _0807E908
ldr r1, [r4]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x32
bhi _0807E8E4
b _0807EA72
_0807E8E4:
bl GetMultiplayerId
lsls r0, r0, #0x18
cmp r0, #0
bne _0807E90C
bl Random
ldr r4, [r4]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x1e
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [r4, #0x64]
b _0807E912
.align 2, 0
_0807E908: .4byte 0x02031F40
_0807E90C:
ldr r1, [r4]
movs r0, #0
str r0, [r1, #0x64]
_0807E912:
ldr r0, _0807E920
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0x29
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E920: .4byte 0x03002360
_0807E924:
ldr r0, _0807E944
ldr r1, [r0]
ldr r0, [r1, #0x64]
cmp r0, #0
bne _0807E94C
movs r0, #1
bl sub_08076C90
ldr r0, _0807E948
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #0x2a
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E944: .4byte 0x02031F40
_0807E948: .4byte 0x03002360
_0807E94C:
subs r0, #1
str r0, [r1, #0x64]
b _0807EA72
_0807E952:
bl _IsLinkTaskFinished
cmp r0, #0
bne _0807E95C
b _0807EA72
_0807E95C:
bl sub_08153344
ldr r0, _0807E970
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
b _0807EA72
.align 2, 0
_0807E970: .4byte 0x03002360
_0807E974:
ldr r0, _0807E998
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x3c
bls _0807EA72
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #2
bl sub_08076C90
b _0807EA72
.align 2, 0
_0807E998: .4byte 0x02031F40
_0807E99C:
bl _IsLinkTaskFinished
cmp r0, #0
beq _0807EA72
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
b _0807EA14
_0807E9B6:
ldr r0, _0807E9D4
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807EA72
movs r0, #3
bl FadeOutBGMTemporarily
ldr r1, _0807E9D8
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
b _0807EA1C
.align 2, 0
_0807E9D4: .4byte 0x02037C74
_0807E9D8: .4byte 0x03002360
_0807E9DC:
bl IsBGMStopped
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _0807EA72
ldr r0, _0807EA04
ldrb r0, [r0]
cmp r0, #0
beq _0807EA10
ldr r0, _0807EA08
ldr r1, [r0, #8]
ldr r0, _0807EA0C
cmp r1, r0
bne _0807EA10
movs r0, #3
bl sub_08076C90
b _0807EA14
.align 2, 0
_0807EA04: .4byte 0x0300319C
_0807EA08: .4byte 0x03002360
_0807EA0C: .4byte 0x08076DB5
_0807EA10:
bl sub_0800A7F8
_0807EA14:
ldr r1, _0807EA24
movs r2, #0x87
lsls r2, r2, #3
adds r1, r1, r2
_0807EA1C:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0807EA72
.align 2, 0
_0807EA24: .4byte 0x03002360
_0807EA28:
ldr r0, _0807EA50
ldrb r0, [r0]
cmp r0, #0
beq _0807EA60
ldr r1, [r2, #8]
ldr r0, _0807EA54
cmp r1, r0
bne _0807EA60
bl _IsLinkTaskFinished
cmp r0, #0
beq _0807EA72
ldr r0, _0807EA58
movs r1, #0
strb r1, [r0]
ldr r0, _0807EA5C
bl SetMainCallback2
b _0807EA72
.align 2, 0
_0807EA50: .4byte 0x0300319C
_0807EA54: .4byte 0x08076DB5
_0807EA58: .4byte 0x030027A0
_0807EA5C: .4byte 0x0807EAA1
_0807EA60:
ldr r0, _0807EA94
ldrb r1, [r0]
cmp r1, #0
bne _0807EA72
ldr r0, _0807EA98
strb r1, [r0]
ldr r0, _0807EA9C
bl SetMainCallback2
_0807EA72:
bl HasLinkErrorOccurred
lsls r0, r0, #0x18
cmp r0, #0
bne _0807EA80
bl RunTasks
_0807EA80:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807EA94: .4byte 0x030031C4
_0807EA98: .4byte 0x030027A0
_0807EA9C: .4byte 0x0807EAA1
thumb_func_end sub_0807E588
thumb_func_start c2_080543C4
c2_080543C4: @ 0x0807EAA0
push {r4, r5, lr}
ldr r0, _0807EB0C
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _0807EAF6
bl FreeAllWindowBuffers
movs r0, #3
bl GetBgTilemapBuffer
bl Free
movs r0, #1
bl GetBgTilemapBuffer
bl Free
movs r0, #0
bl GetBgTilemapBuffer
bl Free
bl FreeMonSpritesGfx
ldr r4, _0807EB10
ldr r0, [r4]
bl Free
str r5, [r4]
ldr r0, _0807EB14
ldrb r0, [r0]
cmp r0, #0
beq _0807EAEE
bl DestroyWirelessStatusIndicatorSprite
_0807EAEE:
ldr r0, _0807EB18
ldr r0, [r0, #8]
bl SetMainCallback2
_0807EAF6:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807EB0C: .4byte 0x02037C74
_0807EB10: .4byte 0x02031F40
_0807EB14: .4byte 0x0300319C
_0807EB18: .4byte 0x03002360
thumb_func_end c2_080543C4
thumb_func_start DoInGameTradeScene
DoInGameTradeScene: @ 0x0807EB1C
push {lr}
sub sp, #4
bl ScriptContext2_Enable
ldr r0, _0807EB44
movs r1, #0xa
bl CreateTask
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
add sp, #4
pop {r0}
bx r0
.align 2, 0
_0807EB44: .4byte 0x0807EB49
thumb_func_end DoInGameTradeScene
thumb_func_start sub_0807EB48
sub_0807EB48: @ 0x0807EB48
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, _0807EB74
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807EB6C
ldr r0, _0807EB78
bl SetMainCallback2
ldr r1, _0807EB7C
ldr r0, _0807EB80
str r0, [r1]
adds r0, r4, #0
bl DestroyTask
_0807EB6C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807EB74: .4byte 0x02037C74
_0807EB78: .4byte 0x0807ACC9
_0807EB7C: .4byte 0x03005B0C
_0807EB80: .4byte 0x080AEA65
thumb_func_end sub_0807EB48
thumb_func_start sub_0807EB84
sub_0807EB84: @ 0x0807EB84
push {r4, r5, lr}
movs r5, #0
movs r4, #0
_0807EB8A:
ldr r0, _0807EBC8
ldrb r0, [r0, #1]
movs r1, #6
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r1, #0x64
muls r0, r1, r0
ldr r1, _0807EBCC
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x43
bl GetMonData
adds r0, r5, r0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0xb
bls _0807EB8A
cmp r5, #0
beq _0807EBC2
ldr r0, _0807EBD0
bl FlagSet
_0807EBC2:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807EBC8: .4byte 0x02031F38
_0807EBCC: .4byte 0x020243E8
_0807EBD0: .4byte 0x0000089B
thumb_func_end sub_0807EB84
thumb_func_start sub_0807EBD4
sub_0807EBD4: @ 0x0807EBD4
push {lr}
bl sub_0807ABCC
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807EBD4
thumb_func_start sub_0807EBE0
sub_0807EBE0: @ 0x0807EBE0
push {r4, r5, r6, lr}
sub sp, #0x14
adds r5, r0, #0
adds r6, r1, #0
adds r4, r2, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r5, #0
movs r1, #0xff
bl FillWindowPixelBuffer
ldr r2, _0807EC44
ldr r0, [r2]
adds r0, #0xf6
movs r3, #0
movs r1, #0xf
strb r1, [r0]
ldr r0, [r2]
adds r0, #0xf7
movs r1, #1
strb r1, [r0]
ldr r0, [r2]
adds r0, #0xf8
movs r1, #6
strb r1, [r0]
str r3, [sp]
str r3, [sp, #4]
ldr r0, [r2]
adds r0, #0xf6
str r0, [sp, #8]
lsls r4, r4, #0x18
asrs r4, r4, #0x18
str r4, [sp, #0xc]
str r6, [sp, #0x10]
adds r0, r5, #0
movs r1, #1
movs r2, #0
movs r3, #2
bl AddTextPrinterParameterized4
adds r0, r5, #0
movs r1, #3
bl CopyWindowToVram
add sp, #0x14
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807EC44: .4byte 0x02031F40
thumb_func_end sub_0807EBE0
thumb_func_start c3_08054588
c3_08054588: @ 0x0807EC48
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
ldr r1, _0807EC80
adds r4, r0, r1
ldr r1, _0807EC84
movs r2, #0
ldrsh r0, [r4, r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r1, r0, #4
adds r2, r1, #0
movs r3, #4
ldrsh r0, [r4, r3]
cmp r0, #0
bne _0807EC8C
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _0807EC94
lsls r0, r1, #1
ldr r1, _0807EC88
adds r0, r0, r1
b _0807EC96
.align 2, 0
_0807EC80: .4byte 0x03005B68
_0807EC84: .4byte 0x0830D310
_0807EC88: .4byte 0x0830BCE4
_0807EC8C:
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
bne _0807ECA4
_0807EC94:
ldr r0, _0807ECA0
_0807EC96:
movs r1, #0x30
movs r2, #0x20
bl LoadPalette
b _0807ECB2
.align 2, 0
_0807ECA0: .4byte 0x0830C0E4
_0807ECA4:
lsls r0, r2, #1
ldr r1, _0807ED08
adds r0, r0, r1
movs r1, #0x30
movs r2, #0x20
bl LoadPalette
_0807ECB2:
ldr r0, _0807ED0C
movs r2, #0
ldrsh r1, [r4, r2]
lsls r1, r1, #1
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0
bne _0807ECD0
movs r3, #2
ldrsh r0, [r4, r3]
cmp r0, #0
bne _0807ECD0
movs r0, #0xc3
bl PlaySE
_0807ECD0:
movs r0, #2
ldrsh r2, [r4, r0]
ldr r1, _0807ED0C
movs r3, #0
ldrsh r0, [r4, r3]
lsls r0, r0, #1
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
cmp r2, r0
bne _0807ED10
ldrh r0, [r4]
adds r0, #1
strh r0, [r4]
movs r0, #0
strh r0, [r4, #2]
movs r2, #0
ldrsh r0, [r4, r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0xff
bne _0807ED16
adds r0, r5, #0
bl DestroyTask
b _0807ED16
.align 2, 0
_0807ED08: .4byte 0x0830BEE4
_0807ED0C: .4byte 0x0830D310
_0807ED10:
ldrh r0, [r4, #2]
adds r0, #1
strh r0, [r4, #2]
_0807ED16:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end c3_08054588
thumb_func_start c3_0805465C
c3_0805465C: @ 0x0807ED1C
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r0, #0
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
ldr r1, _0807EDCC
adds r5, r0, r1
movs r0, #0
ldrsh r4, [r5, r0]
cmp r4, #0
bne _0807ED6E
ldr r2, _0807EDD0
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, r1, #6
movs r0, #0
bl SetGpuRegBits
movs r0, #0x4a
movs r1, #0x10
bl SetGpuReg
movs r0, #0x48
movs r1, #0x13
bl SetGpuReg
_0807ED6E:
ldr r4, _0807EDD0
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0xfd
ldrb r1, [r1]
adds r0, #0xfb
ldrb r0, [r0]
lsls r0, 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, r0, #8
orrs r1, r0
movs r0, #0x44
bl SetGpuReg
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
ldr r1, [r4]
adds r1, #0xfb
ldrb r0, [r1]
subs r0, #5
strb r0, [r1]
ldr r1, [r4]
adds r1, #0xfd
ldrb r0, [r1]
adds r0, #5
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xfb
ldrb r0, [r0]
cmp r0, #0x4f
bhi _0807EDC6
adds r0, r6, #0
bl DestroyTask
_0807EDC6:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0807EDCC: .4byte 0x03005B68
_0807EDD0: .4byte 0x02031F40
thumb_func_end c3_0805465C
thumb_func_start sub_0807EDD4
sub_0807EDD4: @ 0x0807EDD4
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r0, #0
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
ldr r1, _0807EE78
adds r5, r0, r1
movs r1, #0
ldrsh r0, [r5, r1]
cmp r0, #0
bne _0807EE10
ldr r2, _0807EE7C
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
_0807EE10:
ldr r4, _0807EE7C
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0xfd
ldrb r1, [r1]
adds r0, #0xfb
ldrb r0, [r0]
lsls r0, 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, r0, #8
orrs r1, r0
movs r0, #0x44
bl SetGpuReg
ldr r0, [r4]
adds r0, #0xfb
ldrb r0, [r0]
cmp r0, #0x78
beq _0807EE84
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
ldr r1, [r4]
adds r1, #0xfb
ldrb r0, [r1]
adds r0, #5
strb r0, [r1]
ldr r1, [r4]
adds r1, #0xfd
ldrb r0, [r1]
subs r0, #5
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xfb
ldrb r0, [r0]
cmp r0, #0x73
bls _0807EE94
ldr r2, _0807EE80
movs r0, #8
movs r1, #0
bl BlendPalettes
b _0807EE94
.align 2, 0
_0807EE78: .4byte 0x03005B68
_0807EE7C: .4byte 0x02031F40
_0807EE80: .4byte 0x0000FFFF
_0807EE84:
movs r1, #0x80
lsls r1, r1, #6
movs r0, #0
bl ClearGpuRegBits
adds r0, r6, #0
bl DestroyTask
_0807EE94:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0807EDD4
thumb_func_start sub_0807EE9C
sub_0807EE9C: @ 0x0807EE9C
push {r4, r5, lr}
sub sp, #4
ldr r1, _0807EEBC
movs r2, #0x87
lsls r2, r2, #3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, #0
cmp r0, #0xc
bls _0807EEB2
b _0807F144
_0807EEB2:
lsls r0, r0, #2
ldr r1, _0807EEC0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807EEBC: .4byte 0x03002360
_0807EEC0: .4byte 0x0807EEC4
_0807EEC4: @ jump table
.4byte _0807EEF8 @ case 0
.4byte _0807EF20 @ case 1
.4byte _0807EF38 @ case 2
.4byte _0807EF88 @ case 3
.4byte _0807EFA8 @ case 4
.4byte _0807EFE4 @ case 5
.4byte _0807F008 @ case 6
.4byte _0807F058 @ case 7
.4byte _0807F086 @ case 8
.4byte _0807F0A4 @ case 9
.4byte _0807F0CC @ case 10
.4byte _0807F0FC @ case 11
.4byte _0807F130 @ case 12
_0807EEF8:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #1
strb r0, [r1]
ldr r4, _0807EF18
ldr r1, _0807EF1C
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
b _0807F144
.align 2, 0
_0807EF18: .4byte 0x02021C7C
_0807EF1C: .4byte 0x08595430
_0807EF20:
movs r0, #0
bl sub_08076C90
ldr r0, _0807EF34
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
movs r1, #2
b _0807EFF4
.align 2, 0
_0807EF34: .4byte 0x03002360
_0807EF38:
bl _IsLinkTaskFinished
cmp r0, #0
bne _0807EF42
b _0807F144
_0807EF42:
ldr r0, _0807EF78
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r5, #0
movs r1, #3
strb r1, [r0]
ldr r4, _0807EF7C
ldr r1, _0807EF80
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807EBE0
movs r0, #0x15
bl IncrementGameStat
bl sub_081532BC
ldr r0, _0807EF84
ldr r0, [r0]
str r5, [r0, #0x64]
b _0807F144
.align 2, 0
_0807EF78: .4byte 0x03002360
_0807EF7C: .4byte 0x02021C7C
_0807EF80: .4byte 0x08277071
_0807EF84: .4byte 0x02031F40
_0807EF88:
ldr r0, _0807EFA4
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #5
beq _0807EF98
b _0807F144
_0807EF98:
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #4
strb r0, [r1]
b _0807F144
.align 2, 0
_0807EFA4: .4byte 0x02031F40
_0807EFA8:
bl sub_081532E8
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0807EFC8
ldr r0, _0807EFC4
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #5
strb r1, [r0]
b _0807F144
.align 2, 0
_0807EFC4: .4byte 0x03002360
_0807EFC8:
ldr r0, _0807EFDC
ldr r0, [r0]
str r1, [r0, #0x64]
ldr r0, _0807EFE0
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #3
strb r1, [r0]
b _0807F144
.align 2, 0
_0807EFDC: .4byte 0x02031F40
_0807EFE0: .4byte 0x03002360
_0807EFE4:
bl sub_0815331C
ldr r0, _0807F000
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r2, #0
movs r1, #6
_0807EFF4:
strb r1, [r0]
ldr r0, _0807F004
ldr r0, [r0]
str r2, [r0, #0x64]
b _0807F144
.align 2, 0
_0807F000: .4byte 0x03002360
_0807F004: .4byte 0x02031F40
_0807F008:
ldr r4, _0807F03C
ldr r1, [r4]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0xa
bhi _0807F018
b _0807F144
_0807F018:
bl GetMultiplayerId
lsls r0, r0, #0x18
cmp r0, #0
bne _0807F040
bl Random
ldr r4, [r4]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x1e
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [r4, #0x64]
b _0807F046
.align 2, 0
_0807F03C: .4byte 0x02031F40
_0807F040:
ldr r1, [r4]
movs r0, #0
str r0, [r1, #0x64]
_0807F046:
ldr r0, _0807F054
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #7
strb r1, [r0]
b _0807F144
.align 2, 0
_0807F054: .4byte 0x03002360
_0807F058:
ldr r0, _0807F078
ldr r1, [r0]
ldr r0, [r1, #0x64]
cmp r0, #0
bne _0807F080
movs r0, #1
bl sub_08076C90
ldr r0, _0807F07C
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #8
strb r1, [r0]
b _0807F144
.align 2, 0
_0807F078: .4byte 0x02031F40
_0807F07C: .4byte 0x03002360
_0807F080:
subs r0, #1
str r0, [r1, #0x64]
b _0807F144
_0807F086:
bl _IsLinkTaskFinished
cmp r0, #0
beq _0807F144
bl sub_08153344
ldr r0, _0807F0A0
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #9
strb r1, [r0]
b _0807F144
.align 2, 0
_0807F0A0: .4byte 0x03002360
_0807F0A4:
ldr r0, _0807F0C8
ldr r1, [r0]
ldr r0, [r1, #0x64]
adds r0, #1
str r0, [r1, #0x64]
cmp r0, #0x3c
bls _0807F144
movs r0, #0x87
lsls r0, r0, #3
adds r1, r2, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #2
bl sub_08076C90
b _0807F144
.align 2, 0
_0807F0C8: .4byte 0x02031F40
_0807F0CC:
bl _IsLinkTaskFinished
cmp r0, #0
beq _0807F144
movs r0, #3
bl FadeOutBGMTemporarily
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0807F0F8
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
movs r1, #0xb
strb r1, [r0]
b _0807F144
.align 2, 0
_0807F0F8: .4byte 0x03002360
_0807F0FC:
ldr r0, _0807F128
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0807F144
bl IsBGMStopped
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _0807F144
movs r0, #3
bl sub_08076C90
ldr r0, _0807F12C
movs r2, #0x87
lsls r2, r2, #3
adds r0, r0, r2
movs r1, #0xc
strb r1, [r0]
b _0807F144
.align 2, 0
_0807F128: .4byte 0x02037C74
_0807F12C: .4byte 0x03002360
_0807F130:
bl _IsLinkTaskFinished
cmp r0, #0
beq _0807F144
ldr r0, _0807F168
movs r1, #0
strb r1, [r0]
ldr r0, _0807F16C
bl SetMainCallback2
_0807F144:
bl HasLinkErrorOccurred
lsls r0, r0, #0x18
cmp r0, #0
bne _0807F152
bl RunTasks
_0807F152:
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0807F168: .4byte 0x030027A0
_0807F16C: .4byte 0x0807EAA1
thumb_func_end sub_0807EE9C