diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/berry_blender.s | 2201 | 
1 files changed, 1 insertions, 2200 deletions
| diff --git a/asm/berry_blender.s b/asm/berry_blender.s index a6ef8fd38..f23057db6 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -8,2205 +8,6 @@ - -	thumb_func_start sub_804E9F8 -sub_804E9F8: @ 804E9F8 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	sub sp, 0x4 -	ldr r1, _0804EA18 @ =sBerryBlenderData -	ldr r0, [r1] -	ldrb r0, [r0] -	mov r8, r1 -	cmp r0, 0x66 -	bls _0804EA0E -	b _0804F0CE -_0804EA0E: -	lsls r0, 2 -	ldr r1, _0804EA1C @ =_0804EA20 -	adds r0, r1 -	ldr r0, [r0] -	mov pc, r0 -	.align 2, 0 -_0804EA18: .4byte sBerryBlenderData -_0804EA1C: .4byte _0804EA20 -	.align 2, 0 -_0804EA20: -	.4byte _0804EBBC -	.4byte _0804EC74 -	.4byte _0804EC94 -	.4byte _0804ECE8 -	.4byte _0804ECFA -	.4byte _0804ED14 -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804ED48 -	.4byte _0804ED94 -	.4byte _0804EDB8 -	.4byte _0804EE46 -	.4byte _0804EEA0 -	.4byte _0804EF16 -	.4byte _0804EF34 -	.4byte _0804EFD8 -	.4byte _0804F00C -	.4byte _0804F0CE -	.4byte _0804F020 -	.4byte _0804F024 -	.4byte _0804F02A -	.4byte _0804F03A -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F0CE -	.4byte _0804F084 -	.4byte _0804F0A0 -	.4byte _0804F0BC -_0804EBBC: -	bl ResetSpriteData -	bl FreeAllSpritePalettes -	bl ResetTasks -	ldr r0, _0804EC60 @ =VBlankCB0_BerryBlender -	bl SetVBlankCallback -	ldr r4, _0804EC64 @ =gWindowConfig_81E6F68 -	adds r0, r4, 0 -	bl SetUpWindowConfig -	adds r0, r4, 0 -	bl InitMenuWindow -	ldr r1, _0804EC68 @ =gLinkType -	ldr r2, _0804EC6C @ =0x00004422 -	adds r0, r2, 0 -	strh r0, [r1] -	ldr r3, _0804EC70 @ =sBerryBlenderData -	ldr r1, [r3] -	ldrb r0, [r1] -	adds r0, 0x1 -	movs r2, 0 -	strb r0, [r1] -	ldr r0, [r3] -	adds r4, r0, 0 -	adds r4, 0x4E -	movs r1, 0 -	strh r2, [r4] -	adds r0, 0x7E -	strb r1, [r0] -	ldr r1, [r3] -	movs r4, 0xA2 -	lsls r4, 1 -	adds r0, r1, r4 -	strh r2, [r0] -	adds r4, 0x2 -	adds r0, r1, r4 -	strh r2, [r0] -	movs r5, 0 -	movs r6, 0 -	mov r8, r3 -	movs r7, 0xA6 -	lsls r7, 1 -_0804EC18: -	ldr r0, [r3] -	lsls r1, r5, 1 -	adds r0, 0x70 -	adds r0, r1 -	strh r6, [r0] -	adds r4, r5, 0x1 -	adds r1, r5 -	lsls r1, 1 -	movs r2, 0x2 -_0804EC2A: -	ldr r0, [r3] -	adds r0, r7 -	adds r0, r1 -	strh r6, [r0] -	adds r1, 0x2 -	subs r2, 0x1 -	cmp r2, 0 -	bge _0804EC2A -	adds r5, r4, 0 -	cmp r5, 0x3 -	ble _0804EC18 -	mov r0, r8 -	ldr r3, [r0] -	adds r0, r3, 0 -	adds r0, 0x7C -	movs r2, 0 -	movs r1, 0 -	strh r1, [r0] -	subs r0, 0x26 -	strh r1, [r0] -	subs r0, 0x2 -	strh r1, [r0] -	adds r0, 0x6 -	strh r1, [r0] -	strb r2, [r3, 0x1] -	b _0804F0CE -	.align 2, 0 -_0804EC60: .4byte VBlankCB0_BerryBlender -_0804EC64: .4byte gWindowConfig_81E6F68 -_0804EC68: .4byte gLinkType -_0804EC6C: .4byte 0x00004422 -_0804EC70: .4byte sBerryBlenderData -_0804EC74: -	bl sub_804E2EC -	lsls r0, 24 -	cmp r0, 0 -	bne _0804EC80 -	b _0804F0CE -_0804EC80: -	ldr r0, _0804EC90 @ =sBerryBlenderData -	ldr r1, [r0] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	bl sub_8051474 -	b _0804F0CE -	.align 2, 0 -_0804EC90: .4byte sBerryBlenderData -_0804EC94: -	movs r5, 0 -	ldr r4, _0804ECD8 @ =sBlenderSyncArrowsPos -	ldr r6, _0804ECDC @ =sBerryBlenderData -_0804EC9A: -	ldrb r1, [r4] -	ldrb r2, [r4, 0x1] -	ldr r0, _0804ECE0 @ =sBlenderSyncArrow_SpriteTemplate -	movs r3, 0x1 -	bl CreateSprite -	ldr r1, [r6] -	adds r1, 0x60 -	adds r1, r5 -	strb r0, [r1] -	ldr r0, [r6] -	adds r0, 0x60 -	adds r0, r5 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r1, _0804ECE4 @ =gSprites -	adds r0, r1 -	adds r1, r5, 0 -	adds r1, 0x8 -	lsls r1, 24 -	lsrs r1, 24 -	bl StartSpriteAnim -	adds r4, 0x2 -	adds r5, 0x1 -	cmp r5, 0x3 -	ble _0804EC9A -	b _0804F0AA -	.align 2, 0 -_0804ECD8: .4byte sBlenderSyncArrowsPos -_0804ECDC: .4byte sBerryBlenderData -_0804ECE0: .4byte sBlenderSyncArrow_SpriteTemplate -_0804ECE4: .4byte gSprites -_0804ECE8: -	movs r0, 0x1 -	negs r0, r0 -	movs r1, 0 -	str r1, [sp] -	movs r2, 0x10 -	movs r3, 0 -	bl BeginNormalPaletteFade -	b _0804F0AA -_0804ECFA: -	bl sub_804E4FC -	ldr r0, _0804ED10 @ =gPaletteFade -	ldrb r1, [r0, 0x7] -	movs r0, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _0804ED0C -	b _0804F0CE -_0804ED0C: -	b _0804F0AA -	.align 2, 0 -_0804ED10: .4byte gPaletteFade -_0804ED14: -	movs r0, 0 -	movs r1, 0xD -	movs r2, 0x1D -	movs r3, 0x13 -	bl MenuDrawTextWindow -	ldr r0, _0804ED40 @ =gOtherText_LinkStandby3 -	movs r1, 0x1 -	movs r2, 0xE -	bl MenuPrint -	ldr r2, _0804ED44 @ =sBerryBlenderData -	ldr r1, [r2] -	movs r3, 0 -	movs r0, 0x8 -	strb r0, [r1] -	ldr r0, [r2] -	movs r1, 0x98 -	lsls r1, 1 -	adds r0, r1 -	str r3, [r0] -	b _0804F0CE -	.align 2, 0 -_0804ED40: .4byte gOtherText_LinkStandby3 -_0804ED44: .4byte sBerryBlenderData -_0804ED48: -	mov r2, r8 -	ldr r1, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	movs r5, 0 -	strb r0, [r1] -	ldr r0, [r2] -	movs r3, 0x9E -	lsls r3, 1 -	adds r0, r3 -	strb r5, [r0] -	ldr r0, [r2] -	movs r4, 0xBE -	lsls r4, 1 -	adds r0, r4 -	ldr r1, _0804ED8C @ =gScriptItemId -	ldrh r1, [r1] -	bl Blender_CopyBerryData -	ldr r0, _0804ED90 @ =gBlockSendBuffer -	mov r2, r8 -	ldr r1, [r2] -	adds r1, r4 -	movs r2, 0x10 -	bl memcpy -	bl sub_80084A4 -	mov r3, r8 -	ldr r0, [r3] -	subs r4, 0x4C -	adds r0, r4 -	str r5, [r0] -	b _0804F0CE -	.align 2, 0 -_0804ED8C: .4byte gScriptItemId -_0804ED90: .4byte gBlockSendBuffer -_0804ED94: -	bl sub_8007ECC -	lsls r0, 24 -	cmp r0, 0 -	bne _0804EDA0 -	b _0804F0CE -_0804EDA0: -	bl ResetBlockReceivedFlags -	bl GetMultiplayerId -	lsls r0, 24 -	cmp r0, 0 -	beq _0804EDB0 -	b _0804F0AA -_0804EDB0: -	movs r0, 0x4 -	bl sub_8007E9C -	b _0804F0AA -_0804EDB8: -	mov r0, r8 -	ldr r1, [r0] -	movs r2, 0x98 -	lsls r2, 1 -	adds r1, r2 -	ldr r0, [r1] -	adds r0, 0x1 -	str r0, [r1] -	cmp r0, 0x14 -	bgt _0804EDCE -	b _0804F0CE -_0804EDCE: -	bl MenuZeroFillScreen -	bl GetBlockReceivedStatus -	adds r4, r0, 0 -	bl sub_8008198 -	lsls r4, 24 -	lsls r0, 24 -	cmp r4, r0 -	beq _0804EDE6 -	b _0804F0CE -_0804EDE6: -	movs r5, 0 -	mov r7, r8 -	movs r6, 0xBE -	lsls r6, 1 -	b _0804EE18 -_0804EDF0: -	ldr r0, [r7] -	lsls r4, r5, 4 -	adds r0, r4, r0 -	adds r0, r6 -	lsls r1, r5, 8 -	ldr r2, _0804EE2C @ =gBlockRecvBuffer -	adds r1, r2 -	movs r2, 0x10 -	bl memcpy -	ldr r0, [r7] -	lsls r2, r5, 1 -	adds r1, r0, 0 -	adds r1, 0x80 -	adds r1, r2 -	adds r0, r4 -	adds r0, r6 -	ldrh r0, [r0] -	strh r0, [r1] -	adds r5, 0x1 -_0804EE18: -	bl GetLinkPlayerCount -	lsls r0, 24 -	lsrs r0, 24 -	cmp r5, r0 -	blt _0804EDF0 -	bl ResetBlockReceivedFlags -	b _0804F0AA -	.align 2, 0 -_0804EE2C: .4byte gBlockRecvBuffer -_0804EE30: -	ldrb r1, [r4] -	lsls r1, 1 -	adds r0, r2, 0 -	adds r0, 0x80 -	adds r0, r1 -	ldrh r0, [r0] -	lsls r1, r5, 24 -	lsrs r1, 24 -	bl sub_804E7C0 -	b _0804EE7A -_0804EE46: -	bl GetLinkPlayerCount -	ldr r2, _0804EE98 @ =sBerryBlenderData -	ldr r1, [r2] -	adds r1, 0x88 -	strb r0, [r1] -	movs r5, 0 -	ldr r2, [r2] -	movs r3, 0x9E -	lsls r3, 1 -	adds r4, r2, r3 -	ldr r1, _0804EE9C @ =gUnknown_082162EC -	adds r0, r2, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	lsls r0, 2 -	ldrb r3, [r4] -	adds r0, r1 -_0804EE6C: -	ldrb r1, [r0] -	cmp r3, r1 -	beq _0804EE30 -	adds r0, 0x1 -	adds r5, 0x1 -	cmp r5, 0x3 -	ble _0804EE6C -_0804EE7A: -	ldr r3, _0804EE98 @ =sBerryBlenderData -	ldr r1, [r3] -	movs r4, 0x98 -	lsls r4, 1 -	adds r2, r1, r4 -	movs r0, 0 -	str r0, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	ldr r1, [r3] -	movs r0, 0x9E -	lsls r0, 1 -	adds r1, r0 -	b _0804F0AE -	.align 2, 0 -_0804EE98: .4byte sBerryBlenderData -_0804EE9C: .4byte gUnknown_082162EC -_0804EEA0: -	mov r1, r8 -	ldr r2, [r1] -	movs r3, 0x98 -	lsls r3, 1 -	adds r1, r2, r3 -	ldr r0, [r1] -	adds r0, 0x1 -	str r0, [r1] -	cmp r0, 0x3C -	bgt _0804EEB6 -	b _0804F0CE -_0804EEB6: -	movs r4, 0x9E -	lsls r4, 1 -	adds r0, r2, r4 -	adds r1, r2, 0 -	adds r1, 0x88 -	ldrb r0, [r0] -	ldrb r1, [r1] -	cmp r0, r1 -	bcc _0804EF00 -	ldrb r0, [r2] -	adds r0, 0x1 -	strb r0, [r2] -	mov r0, r8 -	ldr r2, [r0] -	ldr r3, _0804EEF4 @ =gUnknown_082162F8 -	ldr r1, _0804EEF8 @ =gUnknown_08216300 -	adds r0, r2, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	adds r0, r1 -	ldrb r0, [r0] -	lsls r0, 1 -	adds r0, r3 -	ldr r3, _0804EEFC @ =0xffffa800 -	adds r1, r3, 0 -	ldrh r0, [r0] -	adds r1, r0 -	adds r2, 0x54 -	strh r1, [r2] -	b _0804EF06 -	.align 2, 0 -_0804EEF4: .4byte gUnknown_082162F8 -_0804EEF8: .4byte gUnknown_08216300 -_0804EEFC: .4byte 0xffffa800 -_0804EF00: -	ldrb r0, [r2] -	subs r0, 0x1 -	strb r0, [r2] -_0804EF06: -	mov r4, r8 -	ldr r0, [r4] -	movs r1, 0x98 -	lsls r1, 1 -	adds r0, r1 -	movs r1, 0 -	str r1, [r0] -	b _0804F0CE -_0804EF16: -	bl sub_8007ECC -	lsls r0, 24 -	cmp r0, 0 -	bne _0804EF22 -	b _0804F0CE -_0804EF22: -	ldr r2, _0804EF30 @ =sBerryBlenderData -	ldr r1, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	ldr r0, [r2] -	b _0804EFBC -	.align 2, 0 -_0804EF30: .4byte sBerryBlenderData -_0804EF34: -	movs r2, 0x80 -	lsls r2, 19 -	ldrh r0, [r2] -	movs r3, 0x80 -	lsls r3, 3 -	adds r1, r3, 0 -	orrs r0, r1 -	strh r0, [r2] -	mov r4, r8 -	ldr r2, [r4] -	adds r1, r2, 0 -	adds r1, 0x54 -	movs r3, 0x80 -	lsls r3, 2 -	adds r0, r3, 0 -	ldrh r4, [r1] -	adds r0, r4 -	strh r0, [r1] -	movs r0, 0xA1 -	lsls r0, 1 -	adds r1, r2, r0 -	ldrh r0, [r1] -	adds r0, 0x4 -	strh r0, [r1] -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0xFF -	bls _0804EFB8 -	ldrb r0, [r2] -	adds r0, 0x1 -	strb r0, [r2] -	mov r1, r8 -	ldr r3, [r1] -	movs r2, 0xA1 -	lsls r2, 1 -	adds r1, r3, r2 -	movs r0, 0x80 -	lsls r0, 1 -	strh r0, [r1] -	ldr r2, _0804EFC8 @ =gUnknown_082162F8 -	ldr r1, _0804EFCC @ =gUnknown_08216300 -	adds r0, r3, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	adds r0, r1 -	ldrb r0, [r0] -	lsls r0, 1 -	adds r0, r2 -	ldrh r1, [r0] -	adds r0, r3, 0 -	adds r0, 0x54 -	strh r1, [r0] -	ldr r1, _0804EFD0 @ =REG_BG2CNT -	ldr r4, _0804EFD4 @ =0x00004882 -	adds r0, r4, 0 -	strh r0, [r1] -	movs r0, 0x98 -	lsls r0, 1 -	adds r1, r3, r0 -	movs r0, 0 -	str r0, [r1] -	bl sub_804F238 -	bl BuyMenuDrawFieldObjects -_0804EFB8: -	mov r1, r8 -	ldr r0, [r1] -_0804EFBC: -	movs r2, 0xB4 -	lsls r2, 1 -	adds r0, r2 -	bl sub_8051414 -	b _0804F0CE -	.align 2, 0 -_0804EFC8: .4byte gUnknown_082162F8 -_0804EFCC: .4byte gUnknown_08216300 -_0804EFD0: .4byte REG_BG2CNT -_0804EFD4: .4byte 0x00004882 -_0804EFD8: -	bl sub_8051B8C -	lsls r0, 24 -	cmp r0, 0 -	beq _0804EFF6 -	ldr r0, _0804F008 @ =sBerryBlenderData -	ldr r1, [r0] -	movs r3, 0x98 -	lsls r3, 1 -	adds r2, r1, r3 -	movs r0, 0 -	str r0, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -_0804EFF6: -	ldr r0, _0804F008 @ =sBerryBlenderData -	ldr r0, [r0] -	movs r4, 0xB4 -	lsls r4, 1 -	adds r0, r4 -	bl sub_8051414 -	b _0804F0CE -	.align 2, 0 -_0804F008: .4byte sBerryBlenderData -_0804F00C: -	ldr r0, _0804F01C @ =gSpriteTemplate_8216548 -	movs r2, 0x10 -	negs r2, r2 -	movs r1, 0x78 -	movs r3, 0x3 -	bl CreateSprite -	b _0804F0AA -	.align 2, 0 -_0804F01C: .4byte gSpriteTemplate_8216548 -_0804F020: -	mov r0, r8 -	b _0804F0AC -_0804F024: -	bl sub_80084A4 -	b _0804F0AA -_0804F02A: -	bl sub_8007ECC -	lsls r0, 24 -	cmp r0, 0 -	beq _0804F0CE -	bl sub_8007E24 -	b _0804F0AA -_0804F03A: -	mov r1, r8 -	ldr r3, [r1] -	adds r2, r3, 0 -	adds r2, 0x56 -	movs r1, 0 -	movs r0, 0x80 -	strh r0, [r2] -	movs r2, 0x96 -	lsls r2, 1 -	adds r0, r3, r2 -	str r1, [r0] -	ldr r0, _0804F07C @ =sub_80501FC -	bl SetMainCallback2 -	bl GetCurrentMapMusic -	lsls r0, 16 -	lsrs r0, 16 -	ldr r4, _0804F080 @ =0x00000193 -	cmp r0, r4 -	beq _0804F074 -	bl GetCurrentMapMusic -	mov r3, r8 -	ldr r1, [r3] -	movs r2, 0xBC -	lsls r2, 1 -	adds r1, r2 -	strh r0, [r1] -_0804F074: -	adds r0, r4, 0 -	bl PlayBGM -	b _0804F0CE -	.align 2, 0 -_0804F07C: .4byte sub_80501FC -_0804F080: .4byte 0x00000193 -_0804F084: -	movs r0, 0 -	movs r1, 0xD -	movs r2, 0x1D -	movs r3, 0x13 -	bl MenuDrawTextWindow -	ldr r0, _0804F09C @ =gOtherText_LinkNotFound -	movs r1, 0x1 -	movs r2, 0xF -	bl MenuPrintMessage -	b _0804F0AA -	.align 2, 0 -_0804F09C: .4byte gOtherText_LinkNotFound -_0804F0A0: -	bl MenuUpdateWindowText -	lsls r0, 24 -	cmp r0, 0 -	beq _0804F0CE -_0804F0AA: -	ldr r0, _0804F0B8 @ =sBerryBlenderData -_0804F0AC: -	ldr r1, [r0] -_0804F0AE: -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	b _0804F0CE -	.align 2, 0 -_0804F0B8: .4byte sBerryBlenderData -_0804F0BC: -	ldr r0, _0804F0EC @ =gPaletteFade -	ldrb r1, [r0, 0x7] -	movs r0, 0x80 -	ands r0, r1 -	cmp r0, 0 -	bne _0804F0CE -	ldr r0, _0804F0F0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music -	bl SetMainCallback2 -_0804F0CE: -	bl RunTasks -	bl AnimateSprites -	bl BuildOamBuffer -	bl UpdatePaletteFade -	add sp, 0x4 -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F0EC: .4byte gPaletteFade -_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music -	thumb_func_end sub_804E9F8 - -	thumb_func_start sub_804F0F4 -sub_804F0F4: @ 804F0F4 -	push {r4,lr} -	movs r1, 0x80 -	lsls r1, 19 -	movs r0, 0 -	strh r0, [r1] -	bl ResetSpriteData -	bl FreeAllSpritePalettes -	bl ResetTasks -	ldr r0, _0804F158 @ =VBlankCB0_BerryBlender -	bl SetVBlankCallback -	ldr r4, _0804F15C @ =gWindowConfig_81E6F68 -	adds r0, r4, 0 -	bl SetUpWindowConfig -	adds r0, r4, 0 -	bl InitMenuWindow -	ldr r1, _0804F160 @ =gLinkType -	ldr r2, _0804F164 @ =0x00004422 -	adds r0, r2, 0 -	strh r0, [r1] -	ldr r0, _0804F168 @ =sBerryBlenderData -	ldr r2, [r0] -	adds r0, r2, 0 -	adds r0, 0x4E -	movs r1, 0 -	strh r1, [r0] -	adds r0, 0x8 -	strh r1, [r0] -	subs r0, 0x2 -	strh r1, [r0] -	adds r0, 0x6 -	strh r1, [r0] -	movs r3, 0xA2 -	lsls r3, 1 -	adds r0, r2, r3 -	strh r1, [r0] -	adds r3, 0x2 -	adds r0, r2, r3 -	strh r1, [r0] -	ldrb r0, [r2] -	adds r0, 0x1 -	strb r0, [r2] -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F158: .4byte VBlankCB0_BerryBlender -_0804F15C: .4byte gWindowConfig_81E6F68 -_0804F160: .4byte gLinkType -_0804F164: .4byte 0x00004422 -_0804F168: .4byte sBerryBlenderData -	thumb_func_end sub_804F0F4 - -	thumb_func_start task_tutorial_oak_boy_girl -task_tutorial_oak_boy_girl: @ 804F16C -	push {lr} -	lsls r0, 16 -	lsls r1, 24 -	lsrs r0, 24 -	adds r2, r0, 0 -	adds r2, 0x18 -	ldr r0, _0804F1A8 @ =sBerryBlenderData -	ldr r0, [r0] -	lsrs r1, 23 -	adds r0, 0xA2 -	adds r0, r1 -	ldrb r0, [r0] -	ldr r1, _0804F1AC @ =gUnknown_08216303 -	adds r0, r1 -	ldrb r1, [r0] -	cmp r2, r1 -	bcc _0804F1B4 -	adds r0, r1, 0 -	adds r0, 0x30 -	cmp r2, r0 -	bcs _0804F1B4 -	subs r0, 0x1C -	cmp r2, r0 -	bcc _0804F1B0 -	adds r0, 0x8 -	cmp r2, r0 -	bcs _0804F1B0 -	movs r0, 0x2 -	b _0804F1B6 -	.align 2, 0 -_0804F1A8: .4byte sBerryBlenderData -_0804F1AC: .4byte gUnknown_08216303 -_0804F1B0: -	movs r0, 0x1 -	b _0804F1B6 -_0804F1B4: -	movs r0, 0 -_0804F1B6: -	pop {r1} -	bx r1 -	thumb_func_end task_tutorial_oak_boy_girl - -	thumb_func_start sub_804F1BC -sub_804F1BC: @ 804F1BC -	push {r4-r7,lr} -	lsls r0, 16 -	lsrs r0, 16 -	lsls r1, 24 -	lsrs r1, 24 -	movs r4, 0 -	cmp r0, 0xAF -	bne _0804F1EE -	movs r3, 0 -	subs r5, r1, 0x1 -	adds r2, 0x9 -_0804F1D2: -	adds r0, r2, r4 -	adds r1, r2, r3 -	ldrb r0, [r0] -	ldrb r1, [r1] -	cmp r0, r1 -	bls _0804F1E0 -	adds r4, r3, 0 -_0804F1E0: -	adds r0, r3, 0x1 -	lsls r0, 16 -	lsrs r3, r0, 16 -	cmp r3, 0x4 -	bls _0804F1D2 -	adds r0, r4, 0x5 -	b _0804F204 -_0804F1EE: -	subs r0, 0x85 -	lsls r0, 16 -	lsrs r4, r0, 16 -	subs r5, r1, 0x1 -	cmp r4, 0x4 -	bls _0804F208 -	adds r0, r4, 0 -	movs r1, 0x5 -	bl __umodsi3 -	adds r0, 0x5 -_0804F204: -	lsls r0, 16 -	lsrs r4, r0, 16 -_0804F208: -	movs r3, 0 -	cmp r3, r5 -	bge _0804F22E -	ldr r7, _0804F234 @ =gUnknown_082165BC -	lsls r0, r4, 1 -	adds r6, r0, r4 -_0804F214: -	adds r4, r3, 0x1 -	lsls r0, r4, 24 -	lsrs r0, 24 -	adds r1, r3, r6 -	adds r1, r7 -	ldrb r1, [r1] -	adds r1, 0x85 -	bl sub_80516C4 -	lsls r4, 16 -	lsrs r3, r4, 16 -	cmp r3, r5 -	blt _0804F214 -_0804F22E: -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F234: .4byte gUnknown_082165BC -	thumb_func_end sub_804F1BC - -	thumb_func_start sub_804F238 -sub_804F238: @ 804F238 -	push {r4-r7,lr} -	movs r4, 0 -	ldr r7, _0804F2A0 @ =sBerryBlenderData -	movs r6, 0xFF -	ldr r5, _0804F2A4 @ =gUnknown_082162EC -_0804F242: -	ldr r3, [r7] -	lsls r2, r4, 1 -	adds r0, r3, 0 -	adds r0, 0xA2 -	adds r0, r2 -	strh r6, [r0] -	adds r1, r3, 0 -	adds r1, 0x9A -	adds r1, r2 -	adds r0, r3, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	lsls r0, 2 -	adds r0, r4, r0 -	adds r0, r5 -	ldrb r0, [r0] -	strh r0, [r1] -	adds r4, 0x1 -	cmp r4, 0x3 -	ble _0804F242 -	movs r3, 0 -	ldr r7, _0804F2A0 @ =sBerryBlenderData -_0804F270: -	movs r4, 0 -	adds r6, r3, 0x1 -	lsls r5, r3, 1 -_0804F276: -	ldr r2, [r7] -	lsls r0, r4, 1 -	adds r1, r2, 0 -	adds r1, 0x9A -	adds r1, r0 -	ldrh r0, [r1] -	cmp r0, r3 -	bne _0804F28E -	adds r0, r2, 0 -	adds r0, 0xA2 -	adds r0, r5 -	strh r4, [r0] -_0804F28E: -	adds r4, 0x1 -	cmp r4, 0x3 -	ble _0804F276 -	adds r3, r6, 0 -	cmp r3, 0x3 -	ble _0804F270 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F2A0: .4byte sBerryBlenderData -_0804F2A4: .4byte gUnknown_082162EC -	thumb_func_end sub_804F238 - -	thumb_func_start BuyMenuDrawFieldObjects -BuyMenuDrawFieldObjects: @ 804F2A8 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	movs r6, 0 -	ldr r7, _0804F360 @ =sBerryBlenderData -	ldr r0, _0804F364 @ =gUnknown_082162D4 -	mov r8, r0 -_0804F2B6: -	ldr r2, [r7] -	lsls r4, r6, 1 -	adds r0, r2, 0 -	adds r0, 0x9A -	adds r3, r0, r4 -	ldrh r0, [r3] -	cmp r0, 0xFF -	beq _0804F34A -	ldr r5, _0804F368 @ =gStringVar1 -	adds r1, r2, 0 -	adds r1, 0x5C -	ldrh r3, [r3] -	adds r1, r3 -	adds r0, r2, 0 -	adds r0, 0x60 -	adds r0, r6 -	ldrb r0, [r0] -	strb r0, [r1] -	ldr r0, [r7] -	adds r1, r0, 0 -	adds r1, 0x9A -	adds r1, r4 -	adds r0, 0x5C -	ldrh r1, [r1] -	adds r0, r1 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r1, _0804F36C @ =gSprites -	adds r0, r1 -	lsls r1, r6, 24 -	lsrs r1, 24 -	bl StartSpriteAnim -	bl GetMultiplayerId -	lsls r0, 24 -	ldr r1, [r7] -	adds r1, 0x9A -	adds r1, r4 -	lsrs r0, 24 -	ldrh r1, [r1] -	cmp r0, r1 -	bne _0804F31A -	adds r0, r5, 0 -	ldr r1, _0804F370 @ =gUnknown_082162C4 -	bl StringCopy -	adds r5, r0, 0 -_0804F31A: -	ldr r0, [r7] -	adds r0, 0x9A -	adds r0, r4 -	ldrh r0, [r0] -	lsls r1, r0, 3 -	subs r1, r0 -	lsls r1, 2 -	ldr r0, _0804F374 @ =gLinkPlayers + 0x8 -	adds r1, r0 -	adds r0, r5, 0 -	bl StringCopy -	mov r0, r8 -	ldrb r1, [r0] -	lsls r1, 3 -	adds r1, 0x1 -	lsls r1, 24 -	lsrs r1, 24 -	ldrb r2, [r0, 0x1] -	lsls r2, 3 -	ldr r0, _0804F368 @ =gStringVar1 -	movs r3, 0x1 -	bl MenuPrint_PixelCoords -_0804F34A: -	movs r0, 0x2 -	add r8, r0 -	adds r6, 0x1 -	cmp r6, 0x3 -	ble _0804F2B6 -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F360: .4byte sBerryBlenderData -_0804F364: .4byte gUnknown_082162D4 -_0804F368: .4byte gStringVar1 -_0804F36C: .4byte gSprites -_0804F370: .4byte gUnknown_082162C4 -_0804F374: .4byte gLinkPlayers + 0x8 -	thumb_func_end BuyMenuDrawFieldObjects - -	thumb_func_start sub_804F378 -sub_804F378: @ 804F378 -	push {r4-r7,lr} -	mov r7, r8 -	push {r7} -	sub sp, 0x4 -	ldr r1, _0804F398 @ =sBerryBlenderData -	ldr r0, [r1] -	ldrb r0, [r0] -	mov r8, r1 -	cmp r0, 0x15 -	bls _0804F38E -	b _0804F7E6 -_0804F38E: -	lsls r0, 2 -	ldr r1, _0804F39C @ =_0804F3A0 -	adds r0, r1 -	ldr r0, [r0] -	mov pc, r0 -	.align 2, 0 -_0804F398: .4byte sBerryBlenderData -_0804F39C: .4byte _0804F3A0 -	.align 2, 0 -_0804F3A0: -	.4byte _0804F3F8 -	.4byte _0804F474 -	.4byte _0804F494 -	.4byte _0804F4EC -	.4byte _0804F518 -	.4byte _0804F7E6 -	.4byte _0804F7E6 -	.4byte _0804F7E6 -	.4byte _0804F54C -	.4byte _0804F7E6 -	.4byte _0804F7E6 -	.4byte _0804F578 -	.4byte _0804F5C8 -	.4byte _0804F636 -	.4byte _0804F650 -	.4byte _0804F6F8 -	.4byte _0804F720 -	.4byte _0804F7E6 -	.4byte _0804F73C -	.4byte _0804F742 -	.4byte _0804F748 -	.4byte _0804F754 -_0804F3F8: -	bl sub_804F0F4 -	ldr r4, _0804F46C @ =gScriptItemId -	ldrh r1, [r4] -	movs r0, 0 -	bl sub_80516C4 -	ldr r5, _0804F470 @ =sBerryBlenderData -	ldr r0, [r5] -	movs r6, 0xBE -	lsls r6, 1 -	adds r0, r6 -	ldrh r1, [r4] -	bl Blender_CopyBerryData -	ldrh r0, [r4] -	ldr r2, [r5] -	adds r1, r2, 0 -	adds r1, 0x88 -	ldrb r1, [r1] -	adds r2, r6 -	bl sub_804F1BC -	movs r4, 0 -	movs r6, 0 -	mov r8, r5 -	movs r7, 0xA6 -	lsls r7, 1 -_0804F430: -	ldr r0, [r5] -	lsls r1, r4, 1 -	adds r0, 0x70 -	adds r0, r1 -	strh r6, [r0] -	adds r3, r4, 0x1 -	adds r1, r4 -	lsls r1, 1 -	movs r2, 0x2 -_0804F442: -	ldr r0, [r5] -	adds r0, r7 -	adds r0, r1 -	strh r6, [r0] -	adds r1, 0x2 -	subs r2, 0x1 -	cmp r2, 0 -	bge _0804F442 -	adds r4, r3, 0 -	cmp r4, 0x3 -	ble _0804F430 -	mov r0, r8 -	ldr r3, [r0] -	adds r1, r3, 0 -	adds r1, 0x7C -	movs r2, 0 -	movs r0, 0 -	strh r0, [r1] -	strb r2, [r3, 0x1] -	b _0804F7E6 -	.align 2, 0 -_0804F46C: .4byte gScriptItemId -_0804F470: .4byte sBerryBlenderData -_0804F474: -	bl sub_804E2EC -	lsls r0, 24 -	cmp r0, 0 -	bne _0804F480 -	b _0804F7E6 -_0804F480: -	ldr r0, _0804F490 @ =sBerryBlenderData -	ldr r1, [r0] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	bl sub_8051474 -	b _0804F7E6 -	.align 2, 0 -_0804F490: .4byte sBerryBlenderData -_0804F494: -	movs r4, 0 -	ldr r5, _0804F4DC @ =sBlenderSyncArrowsPos -	ldr r6, _0804F4E0 @ =sBerryBlenderData -_0804F49A: -	ldrb r1, [r5] -	ldrb r2, [r5, 0x1] -	ldr r0, _0804F4E4 @ =sBlenderSyncArrow_SpriteTemplate -	movs r3, 0x1 -	bl CreateSprite -	ldr r1, [r6] -	adds r1, 0x60 -	adds r1, r4 -	strb r0, [r1] -	ldr r0, [r6] -	adds r0, 0x60 -	adds r0, r4 -	ldrb r1, [r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	ldr r1, _0804F4E8 @ =gSprites -	adds r0, r1 -	adds r1, r4, 0 -	adds r1, 0x8 -	lsls r1, 24 -	lsrs r1, 24 -	bl StartSpriteAnim -	adds r5, 0x2 -	adds r4, 0x1 -	cmp r4, 0x3 -	ble _0804F49A -	ldr r0, _0804F4E0 @ =sBerryBlenderData -	ldr r1, [r0] -	b _0804F74C -	.align 2, 0 -_0804F4DC: .4byte sBlenderSyncArrowsPos -_0804F4E0: .4byte sBerryBlenderData -_0804F4E4: .4byte sBlenderSyncArrow_SpriteTemplate -_0804F4E8: .4byte gSprites -_0804F4EC: -	movs r0, 0x1 -	negs r0, r0 -	movs r4, 0 -	str r4, [sp] -	movs r1, 0 -	movs r2, 0x10 -	movs r3, 0 -	bl BeginNormalPaletteFade -	ldr r2, _0804F514 @ =sBerryBlenderData -	ldr r1, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	ldr r0, [r2] -	movs r1, 0x98 -	lsls r1, 1 -	adds r0, r1 -	str r4, [r0] -	b _0804F7E6 -	.align 2, 0 -_0804F514: .4byte sBerryBlenderData -_0804F518: -	mov r2, r8 -	ldr r1, [r2] -	movs r3, 0x98 -	lsls r3, 1 -	adds r1, r3 -	ldr r0, [r1] -	adds r0, 0x1 -	str r0, [r1] -	cmp r0, 0x2 -	bne _0804F530 -	bl sub_804E4FC -_0804F530: -	ldr r0, _0804F548 @ =gPaletteFade -	ldrb r1, [r0, 0x7] -	movs r0, 0x80 -	ands r0, r1 -	cmp r0, 0 -	beq _0804F53E -	b _0804F7E6 -_0804F53E: -	mov r5, r8 -	ldr r1, [r5] -	movs r0, 0x8 -	strb r0, [r1] -	b _0804F7E6 -	.align 2, 0 -_0804F548: .4byte gPaletteFade -_0804F54C: -	mov r0, r8 -	ldr r1, [r0] -	movs r2, 0 -	movs r0, 0xB -	strb r0, [r1] -	mov r1, r8 -	ldr r0, [r1] -	movs r3, 0x9E -	lsls r3, 1 -	adds r0, r3 -	strb r2, [r0] -	b _0804F7E6 -_0804F564: -	lsls r1, 1 -	adds r0, r3, 0 -	adds r0, 0x80 -	adds r0, r1 -	ldrh r0, [r0] -	lsls r1, r4, 24 -	lsrs r1, 24 -	bl sub_804E7C0 -	b _0804F5A2 -_0804F578: -	movs r4, 0 -	ldr r2, _0804F5C0 @ =gUnknown_082162EC -	ldr r0, _0804F5C4 @ =sBerryBlenderData -	ldr r3, [r0] -	adds r0, r3, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	lsls r0, 2 -	movs r5, 0x9E -	lsls r5, 1 -	adds r1, r3, r5 -	ldrb r1, [r1] -	adds r0, r2 -_0804F594: -	ldrb r2, [r0] -	cmp r1, r2 -	beq _0804F564 -	adds r0, 0x1 -	adds r4, 0x1 -	cmp r4, 0x3 -	ble _0804F594 -_0804F5A2: -	ldr r3, _0804F5C4 @ =sBerryBlenderData -	ldr r1, [r3] -	movs r5, 0x98 -	lsls r5, 1 -	adds r2, r1, r5 -	movs r0, 0 -	str r0, [r2] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	ldr r1, [r3] -	movs r0, 0x9E -	lsls r0, 1 -	adds r1, r0 -	b _0804F74C -	.align 2, 0 -_0804F5C0: .4byte gUnknown_082162EC -_0804F5C4: .4byte sBerryBlenderData -_0804F5C8: -	mov r1, r8 -	ldr r3, [r1] -	movs r2, 0x98 -	lsls r2, 1 -	adds r1, r3, r2 -	ldr r0, [r1] -	adds r0, 0x1 -	str r0, [r1] -	cmp r0, 0x3C -	bgt _0804F5DE -	b _0804F7E6 -_0804F5DE: -	movs r5, 0x9E -	lsls r5, 1 -	adds r0, r3, r5 -	adds r4, r3, 0 -	adds r4, 0x88 -	ldrb r0, [r0] -	ldrb r1, [r4] -	cmp r0, r1 -	bcc _0804F620 -	ldr r2, _0804F614 @ =gUnknown_082162F8 -	ldr r1, _0804F618 @ =gUnknown_08216300 -	ldrb r0, [r4] -	subs r0, 0x2 -	adds r0, r1 -	ldrb r0, [r0] -	lsls r0, 1 -	adds r0, r2 -	ldr r2, _0804F61C @ =0xffffa800 -	adds r1, r2, 0 -	ldrh r0, [r0] -	adds r1, r0 -	adds r0, r3, 0 -	adds r0, 0x54 -	strh r1, [r0] -	ldrb r0, [r3] -	adds r0, 0x1 -	b _0804F624 -	.align 2, 0 -_0804F614: .4byte gUnknown_082162F8 -_0804F618: .4byte gUnknown_08216300 -_0804F61C: .4byte 0xffffa800 -_0804F620: -	ldrb r0, [r3] -	subs r0, 0x1 -_0804F624: -	strb r0, [r3] -	mov r3, r8 -	ldr r0, [r3] -	movs r5, 0x98 -	lsls r5, 1 -	adds r0, r5 -	movs r1, 0 -	str r1, [r0] -	b _0804F7E6 -_0804F636: -	mov r1, r8 -	ldr r0, [r1] -	ldrb r1, [r0] -	adds r1, 0x1 -	strb r1, [r0] -	bl sub_804F238 -	movs r0, 0x2B -	bl PlaySE -	mov r2, r8 -	ldr r0, [r2] -	b _0804F710 -_0804F650: -	movs r2, 0x80 -	lsls r2, 19 -	ldrh r0, [r2] -	movs r5, 0x80 -	lsls r5, 3 -	adds r1, r5, 0 -	orrs r0, r1 -	strh r0, [r2] -	mov r0, r8 -	ldr r2, [r0] -	adds r1, r2, 0 -	adds r1, 0x54 -	movs r3, 0x80 -	lsls r3, 2 -	adds r0, r3, 0 -	ldrh r5, [r1] -	adds r0, r5 -	strh r0, [r1] -	movs r0, 0xA1 -	lsls r0, 1 -	adds r1, r2, r0 -	ldrh r0, [r1] -	adds r0, 0x4 -	strh r0, [r1] -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0xFF -	bls _0804F6D6 -	ldrb r0, [r2] -	adds r0, 0x1 -	strb r0, [r2] -	mov r1, r8 -	ldr r3, [r1] -	movs r2, 0xA1 -	lsls r2, 1 -	adds r1, r3, r2 -	movs r0, 0x80 -	lsls r0, 1 -	strh r0, [r1] -	ldr r2, _0804F6E8 @ =gUnknown_082162F8 -	ldr r1, _0804F6EC @ =gUnknown_08216300 -	adds r0, r3, 0 -	adds r0, 0x88 -	ldrb r0, [r0] -	subs r0, 0x2 -	adds r0, r1 -	ldrb r0, [r0] -	lsls r0, 1 -	adds r0, r2 -	ldrh r1, [r0] -	adds r0, r3, 0 -	adds r0, 0x54 -	strh r1, [r0] -	ldr r1, _0804F6F0 @ =REG_BG2CNT -	ldr r5, _0804F6F4 @ =0x00004882 -	adds r0, r5, 0 -	strh r0, [r1] -	movs r0, 0x98 -	lsls r0, 1 -	adds r1, r3, r0 -	movs r0, 0 -	str r0, [r1] -	movs r0, 0x34 -	bl PlaySE -	bl BuyMenuDrawFieldObjects -_0804F6D6: -	mov r1, r8 -	ldr r0, [r1] -	movs r2, 0xB4 -	lsls r2, 1 -	adds r0, r2 -	bl sub_8051414 -	b _0804F7E6 -	.align 2, 0 -_0804F6E8: .4byte gUnknown_082162F8 -_0804F6EC: .4byte gUnknown_08216300 -_0804F6F0: .4byte REG_BG2CNT -_0804F6F4: .4byte 0x00004882 -_0804F6F8: -	bl sub_8051B8C -	lsls r0, 24 -	cmp r0, 0 -	beq _0804F70C -	ldr r0, _0804F71C @ =sBerryBlenderData -	ldr r1, [r0] -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -_0804F70C: -	ldr r0, _0804F71C @ =sBerryBlenderData -	ldr r0, [r0] -_0804F710: -	movs r3, 0xB4 -	lsls r3, 1 -	adds r0, r3 -	bl sub_8051414 -	b _0804F7E6 -	.align 2, 0 -_0804F71C: .4byte sBerryBlenderData -_0804F720: -	ldr r0, _0804F734 @ =gSpriteTemplate_8216548 -	movs r2, 0x10 -	negs r2, r2 -	movs r1, 0x78 -	movs r3, 0x3 -	bl CreateSprite -	ldr r0, _0804F738 @ =sBerryBlenderData -	ldr r1, [r0] -	b _0804F74C -	.align 2, 0 -_0804F734: .4byte gSpriteTemplate_8216548 -_0804F738: .4byte sBerryBlenderData -_0804F73C: -	mov r5, r8 -	ldr r1, [r5] -	b _0804F74C -_0804F742: -	mov r0, r8 -	ldr r1, [r0] -	b _0804F74C -_0804F748: -	mov r2, r8 -	ldr r1, [r2] -_0804F74C: -	ldrb r0, [r1] -	adds r0, 0x1 -	strb r0, [r1] -	b _0804F7E6 -_0804F754: -	bl sub_804F81C -	ldr r3, _0804F804 @ =sBerryBlenderData -	ldr r4, [r3] -	adds r5, r4, 0 -	adds r5, 0x56 -	movs r2, 0 -	movs r1, 0 -	movs r0, 0x80 -	strh r0, [r5] -	movs r5, 0x96 -	lsls r5, 1 -	adds r0, r4, r5 -	str r1, [r0] -	ldr r1, _0804F808 @ =0x0000014b -	adds r0, r4, r1 -	strb r2, [r0] -	ldr r0, [r3] -	adds r0, 0x7E -	strb r2, [r0] -	ldr r0, _0804F80C @ =sub_80501FC -	bl SetMainCallback2 -	movs r4, 0 -	ldr r0, _0804F810 @ =gSpecialVar_0x8004 -	ldrh r0, [r0] -	cmp r4, r0 -	bge _0804F7B8 -	movs r5, 0xA0 -	lsls r5, 20 -	ldr r6, _0804F814 @ =gUnknown_08216308 -_0804F792: -	ldm r6!, {r0} -	lsrs r1, r5, 24 -	bl CreateTask -	ldr r1, _0804F804 @ =sBerryBlenderData -	ldr r1, [r1] -	movs r2, 0xA4 -	lsls r2, 1 -	adds r1, r2 -	adds r1, r4 -	strb r0, [r1] -	movs r3, 0x80 -	lsls r3, 17 -	adds r5, r3 -	adds r4, 0x1 -	ldr r0, _0804F810 @ =gSpecialVar_0x8004 -	ldrh r0, [r0] -	cmp r4, r0 -	blt _0804F792 -_0804F7B8: -	bl GetCurrentMapMusic -	lsls r0, 16 -	lsrs r0, 16 -	ldr r4, _0804F818 @ =0x00000193 -	cmp r0, r4 -	beq _0804F7D6 -	bl GetCurrentMapMusic -	ldr r1, _0804F804 @ =sBerryBlenderData -	ldr r1, [r1] -	movs r5, 0xBC -	lsls r5, 1 -	adds r1, r5 -	strh r0, [r1] -_0804F7D6: -	adds r0, r4, 0 -	bl PlayBGM -	movs r0, 0x35 -	bl PlaySE -	bl Blender_ControlHitPitch -_0804F7E6: -	bl RunTasks -	bl AnimateSprites -	bl BuildOamBuffer -	bl UpdatePaletteFade -	add sp, 0x4 -	pop {r3} -	mov r8, r3 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F804: .4byte sBerryBlenderData -_0804F808: .4byte 0x0000014b -_0804F80C: .4byte sub_80501FC -_0804F810: .4byte gSpecialVar_0x8004 -_0804F814: .4byte gUnknown_08216308 -_0804F818: .4byte 0x00000193 -	thumb_func_end sub_804F378 - -	thumb_func_start sub_804F81C -sub_804F81C: @ 804F81C -	push {lr} -	ldr r3, _0804F83C @ =gSendCmd -	movs r0, 0 -	ldr r1, _0804F840 @ =gRecvCmds -	movs r2, 0x3 -_0804F826: -	strh r0, [r3] -	strh r0, [r3, 0x4] -	strh r0, [r1] -	strh r0, [r1, 0x10] -	adds r1, 0x2 -	subs r2, 0x1 -	cmp r2, 0 -	bge _0804F826 -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F83C: .4byte gSendCmd -_0804F840: .4byte gRecvCmds -	thumb_func_end sub_804F81C - -	thumb_func_start sub_804F844 -sub_804F844: @ 804F844 -	push {r4,lr} -	lsls r0, 24 -	lsrs r3, r0, 24 -	ldr r1, _0804F884 @ =gTasks -	lsls r0, r3, 2 -	adds r0, r3 -	lsls r0, 3 -	adds r2, r0, r1 -	ldrh r0, [r2, 0x8] -	adds r0, 0x1 -	strh r0, [r2, 0x8] -	lsls r0, 16 -	asrs r0, 16 -	movs r4, 0xA -	ldrsh r1, [r2, r4] -	cmp r0, r1 -	ble _0804F87C -	ldr r0, _0804F888 @ =gRecvCmds -	movs r4, 0xC -	ldrsh r1, [r2, r4] -	lsls r1, 1 -	adds r0, 0x10 -	adds r1, r0 -	ldr r0, _0804F88C @ =0x00002345 -	strh r0, [r1] -	adds r0, r3, 0 -	bl DestroyTask -_0804F87C: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F884: .4byte gTasks -_0804F888: .4byte gRecvCmds -_0804F88C: .4byte 0x00002345 -	thumb_func_end sub_804F844 - -	thumb_func_start sub_804F890 -sub_804F890: @ 804F890 -	push {r4,r5,lr} -	adds r5, r0, 0 -	adds r4, r1, 0 -	lsls r5, 24 -	lsrs r5, 24 -	lsls r4, 24 -	lsrs r4, 24 -	ldr r0, _0804F8C0 @ =sub_804F844 -	movs r1, 0x50 -	bl CreateTask -	lsls r0, 24 -	lsrs r0, 24 -	ldr r2, _0804F8C4 @ =gTasks -	lsls r1, r0, 2 -	adds r1, r0 -	lsls r1, 3 -	adds r1, r2 -	strh r4, [r1, 0xA] -	strh r5, [r1, 0xC] -	pop {r4,r5} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F8C0: .4byte sub_804F844 -_0804F8C4: .4byte gTasks -	thumb_func_end sub_804F890 - -	thumb_func_start sub_804F8C8 -sub_804F8C8: @ 804F8C8 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r5, r0, 24 -	ldr r4, _0804F934 @ =sBerryBlenderData -	ldr r0, [r4] -	adds r0, 0x54 -	ldrh r0, [r0] -	movs r1, 0x1 -	bl task_tutorial_oak_boy_girl -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x2 -	beq _0804F8E6 -	b _0804F9DC -_0804F8E6: -	ldr r2, _0804F938 @ =gTasks -	lsls r1, r5, 2 -	adds r0, r1, r5 -	lsls r0, 3 -	adds r0, r2 -	movs r2, 0x8 -	ldrsh r0, [r0, r2] -	adds r6, r1, 0 -	cmp r0, 0 -	beq _0804F8FC -	b _0804F9EA -_0804F8FC: -	ldr r0, [r4] -	ldr r1, _0804F93C @ =0x0000014b -	adds r0, r1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _0804F9BE -	bl Random -	lsls r0, 16 -	lsrs r0, 16 -	ldr r1, _0804F940 @ =0x0000028f -	bl __udivsi3 -	lsls r0, 24 -	lsrs r1, r0, 24 -	adds r3, r1, 0 -	ldr r0, [r4] -	adds r0, 0x56 -	movs r4, 0 -	ldrsh r2, [r0, r4] -	ldr r0, _0804F944 @ =0x000001f3 -	cmp r2, r0 -	bgt _0804F964 -	cmp r1, 0x4B -	bls _0804F950 -	ldr r1, _0804F948 @ =gRecvCmds -	ldr r0, _0804F94C @ =0x00004523 -	b _0804F954 -	.align 2, 0 -_0804F934: .4byte sBerryBlenderData -_0804F938: .4byte gTasks -_0804F93C: .4byte 0x0000014b -_0804F940: .4byte 0x0000028f -_0804F944: .4byte 0x000001f3 -_0804F948: .4byte gRecvCmds -_0804F94C: .4byte 0x00004523 -_0804F950: -	ldr r1, _0804F95C @ =gRecvCmds -	ldr r0, _0804F960 @ =0x00005432 -_0804F954: -	strh r0, [r1, 0x12] -	ldr r0, _0804F960 @ =0x00005432 -	b _0804F9C2 -	.align 2, 0 -_0804F95C: .4byte gRecvCmds -_0804F960: .4byte 0x00005432 -_0804F964: -	ldr r0, _0804F980 @ =0x000005db -	cmp r2, r0 -	bgt _0804F992 -	cmp r1, 0x50 -	bhi _0804F9BE -	adds r0, r1, 0 -	subs r0, 0x15 -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x3B -	bhi _0804F98C -	ldr r1, _0804F984 @ =gRecvCmds -	ldr r0, _0804F988 @ =0x00005432 -	b _0804F9C2 -	.align 2, 0 -_0804F980: .4byte 0x000005db -_0804F984: .4byte gRecvCmds -_0804F988: .4byte 0x00005432 -_0804F98C: -	cmp r1, 0x9 -	bhi _0804F9C4 -	b _0804F9B4 -_0804F992: -	cmp r1, 0x5A -	bhi _0804F9BE -	adds r0, r1, 0 -	subs r0, 0x47 -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x13 -	bhi _0804F9B0 -	ldr r1, _0804F9A8 @ =gRecvCmds -	ldr r0, _0804F9AC @ =0x00005432 -	b _0804F9C2 -	.align 2, 0 -_0804F9A8: .4byte gRecvCmds -_0804F9AC: .4byte 0x00005432 -_0804F9B0: -	cmp r3, 0x1D -	bhi _0804F9C4 -_0804F9B4: -	movs r0, 0x1 -	movs r1, 0x5 -	bl sub_804F890 -	b _0804F9C4 -_0804F9BE: -	ldr r1, _0804F9D0 @ =gRecvCmds -	ldr r0, _0804F9D4 @ =0x00004523 -_0804F9C2: -	strh r0, [r1, 0x12] -_0804F9C4: -	ldr r0, _0804F9D8 @ =gTasks -	adds r1, r6, r5 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0x1 -	b _0804F9E8 -	.align 2, 0 -_0804F9D0: .4byte gRecvCmds -_0804F9D4: .4byte 0x00004523 -_0804F9D8: .4byte gTasks -_0804F9DC: -	ldr r0, _0804F9F0 @ =gTasks -	lsls r1, r5, 2 -	adds r1, r5 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0 -_0804F9E8: -	strh r0, [r1, 0x8] -_0804F9EA: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804F9F0: .4byte gTasks -	thumb_func_end sub_804F8C8 - -	thumb_func_start sub_804F9F4 -sub_804F9F4: @ 804F9F4 -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r6, _0804FA78 @ =sBerryBlenderData -	ldr r3, [r6] -	adds r0, r3, 0 -	adds r0, 0x54 -	ldrh r0, [r0] -	movs r1, 0xC0 -	lsls r1, 5 -	adds r0, r1 -	ldr r1, _0804FA7C @ =0x0000ffff -	ands r0, r1 -	adds r1, r3, 0 -	adds r1, 0xA6 -	ldrb r1, [r1] -	lsrs r2, r0, 8 -	ldr r0, _0804FA80 @ =gUnknown_08216303 -	adds r1, r0 -	ldrb r1, [r1] -	adds r0, r1, 0 -	adds r0, 0x14 -	cmp r2, r0 -	bls _0804FB04 -	adds r0, 0x14 -	cmp r2, r0 -	bcs _0804FB04 -	ldr r2, _0804FA84 @ =gTasks -	lsls r1, r4, 2 -	adds r0, r1, r4 -	lsls r0, 3 -	adds r2, r0, r2 -	movs r5, 0x8 -	ldrsh r0, [r2, r5] -	adds r5, r1, 0 -	cmp r0, 0 -	bne _0804FB12 -	ldr r1, _0804FA88 @ =0x0000014b -	adds r0, r3, r1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _0804FAF0 -	bl Random -	lsls r0, 16 -	lsrs r0, 16 -	ldr r1, _0804FA8C @ =0x0000028f -	bl __udivsi3 -	lsls r0, 24 -	lsrs r2, r0, 24 -	adds r3, r2, 0 -	ldr r0, [r6] -	adds r0, 0x56 -	movs r6, 0 -	ldrsh r1, [r0, r6] -	ldr r0, _0804FA90 @ =0x000001f3 -	cmp r1, r0 -	bgt _0804FAAC -	cmp r2, 0x42 -	bls _0804FA9C -	ldr r1, _0804FA94 @ =gRecvCmds -	ldr r0, _0804FA98 @ =0x00004523 -	strh r0, [r1, 0x14] -	b _0804FAD4 -	.align 2, 0 -_0804FA78: .4byte sBerryBlenderData -_0804FA7C: .4byte 0x0000ffff -_0804FA80: .4byte gUnknown_08216303 -_0804FA84: .4byte gTasks -_0804FA88: .4byte 0x0000014b -_0804FA8C: .4byte 0x0000028f -_0804FA90: .4byte 0x000001f3 -_0804FA94: .4byte gRecvCmds -_0804FA98: .4byte 0x00004523 -_0804FA9C: -	ldr r1, _0804FAA4 @ =gRecvCmds -	ldr r0, _0804FAA8 @ =0x00005432 -	strh r0, [r1, 0x14] -	b _0804FAD4 -	.align 2, 0 -_0804FAA4: .4byte gRecvCmds -_0804FAA8: .4byte 0x00005432 -_0804FAAC: -	cmp r2, 0x41 -	bls _0804FAB6 -	ldr r1, _0804FAE0 @ =gRecvCmds -	ldr r0, _0804FAE4 @ =0x00004523 -	strh r0, [r1, 0x14] -_0804FAB6: -	adds r0, r2, 0 -	subs r0, 0x29 -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x18 -	bhi _0804FAC8 -	ldr r1, _0804FAE0 @ =gRecvCmds -	ldr r0, _0804FAE8 @ =0x00005432 -	strh r0, [r1, 0x14] -_0804FAC8: -	cmp r3, 0x9 -	bhi _0804FAD4 -	movs r0, 0x2 -	movs r1, 0x5 -	bl sub_804F890 -_0804FAD4: -	ldr r0, _0804FAEC @ =gTasks -	adds r1, r5, r4 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0x1 -	b _0804FB10 -	.align 2, 0 -_0804FAE0: .4byte gRecvCmds -_0804FAE4: .4byte 0x00004523 -_0804FAE8: .4byte 0x00005432 -_0804FAEC: .4byte gTasks -_0804FAF0: -	ldr r0, _0804FAFC @ =gRecvCmds -	ldr r1, _0804FB00 @ =0x00004523 -	strh r1, [r0, 0x14] -	movs r0, 0x1 -	strh r0, [r2, 0x8] -	b _0804FB12 -	.align 2, 0 -_0804FAFC: .4byte gRecvCmds -_0804FB00: .4byte 0x00004523 -_0804FB04: -	ldr r0, _0804FB18 @ =gTasks -	lsls r1, r4, 2 -	adds r1, r4 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0 -_0804FB10: -	strh r0, [r1, 0x8] -_0804FB12: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804FB18: .4byte gTasks -	thumb_func_end sub_804F9F4 - -	thumb_func_start sub_804FB1C -sub_804FB1C: @ 804FB1C -	push {r4-r6,lr} -	lsls r0, 24 -	lsrs r4, r0, 24 -	ldr r5, _0804FB9C @ =sBerryBlenderData -	ldr r3, [r5] -	adds r0, r3, 0 -	adds r0, 0x54 -	ldrh r0, [r0] -	movs r1, 0xC0 -	lsls r1, 5 -	adds r0, r1 -	ldr r1, _0804FBA0 @ =0x0000ffff -	ands r0, r1 -	adds r1, r3, 0 -	adds r1, 0xA8 -	ldrb r1, [r1] -	lsrs r2, r0, 8 -	ldr r0, _0804FBA4 @ =gUnknown_08216303 -	adds r1, r0 -	ldrb r1, [r1] -	adds r0, r1, 0 -	adds r0, 0x14 -	cmp r2, r0 -	bls _0804FC30 -	adds r0, 0x14 -	cmp r2, r0 -	bcs _0804FC30 -	ldr r2, _0804FBA8 @ =gTasks -	lsls r1, r4, 2 -	adds r0, r1, r4 -	lsls r0, 3 -	adds r2, r0, r2 -	movs r6, 0x8 -	ldrsh r0, [r2, r6] -	adds r6, r1, 0 -	cmp r0, 0 -	bne _0804FC3E -	ldr r1, _0804FBAC @ =0x0000014b -	adds r0, r3, r1 -	ldrb r0, [r0] -	cmp r0, 0 -	bne _0804FC1C -	bl Random -	lsls r0, 16 -	lsrs r0, 16 -	ldr r1, _0804FBB0 @ =0x0000028f -	bl __udivsi3 -	lsls r0, 24 -	lsrs r2, r0, 24 -	ldr r0, [r5] -	adds r0, 0x56 -	movs r3, 0 -	ldrsh r1, [r0, r3] -	ldr r0, _0804FBB4 @ =0x000001f3 -	cmp r1, r0 -	bgt _0804FBD0 -	cmp r2, 0x58 -	bls _0804FBC0 -	ldr r1, _0804FBB8 @ =gRecvCmds -	ldr r0, _0804FBBC @ =0x00004523 -	strh r0, [r1, 0x16] -	b _0804FC02 -	.align 2, 0 -_0804FB9C: .4byte sBerryBlenderData -_0804FBA0: .4byte 0x0000ffff -_0804FBA4: .4byte gUnknown_08216303 -_0804FBA8: .4byte gTasks -_0804FBAC: .4byte 0x0000014b -_0804FBB0: .4byte 0x0000028f -_0804FBB4: .4byte 0x000001f3 -_0804FBB8: .4byte gRecvCmds -_0804FBBC: .4byte 0x00004523 -_0804FBC0: -	ldr r1, _0804FBC8 @ =gRecvCmds -	ldr r0, _0804FBCC @ =0x00005432 -	strh r0, [r1, 0x16] -	b _0804FC02 -	.align 2, 0 -_0804FBC8: .4byte gRecvCmds -_0804FBCC: .4byte 0x00005432 -_0804FBD0: -	cmp r2, 0x3C -	bls _0804FBE4 -	ldr r1, _0804FBDC @ =gRecvCmds -	ldr r0, _0804FBE0 @ =0x00004523 -	b _0804FBF4 -	.align 2, 0 -_0804FBDC: .4byte gRecvCmds -_0804FBE0: .4byte 0x00004523 -_0804FBE4: -	adds r0, r2, 0 -	subs r0, 0x38 -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x4 -	bhi _0804FBF6 -	ldr r1, _0804FC10 @ =gRecvCmds -	ldr r0, _0804FC14 @ =0x00005432 -_0804FBF4: -	strh r0, [r1, 0x16] -_0804FBF6: -	cmp r2, 0x4 -	bhi _0804FC02 -	movs r0, 0x3 -	movs r1, 0x5 -	bl sub_804F890 -_0804FC02: -	ldr r0, _0804FC18 @ =gTasks -	adds r1, r6, r4 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0x1 -	b _0804FC3C -	.align 2, 0 -_0804FC10: .4byte gRecvCmds -_0804FC14: .4byte 0x00005432 -_0804FC18: .4byte gTasks -_0804FC1C: -	ldr r0, _0804FC28 @ =gRecvCmds -	ldr r1, _0804FC2C @ =0x00004523 -	strh r1, [r0, 0x16] -	movs r0, 0x1 -	strh r0, [r2, 0x8] -	b _0804FC3E -	.align 2, 0 -_0804FC28: .4byte gRecvCmds -_0804FC2C: .4byte 0x00004523 -_0804FC30: -	ldr r0, _0804FC44 @ =gTasks -	lsls r1, r4, 2 -	adds r1, r4 -	lsls r1, 3 -	adds r1, r0 -	movs r0, 0 -_0804FC3C: -	strh r0, [r1, 0x8] -_0804FC3E: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0804FC44: .4byte gTasks -	thumb_func_end sub_804FB1C -  	thumb_func_start sub_804FC48  sub_804FC48: @ 804FC48  	push {r4-r7,lr} @@ -2821,7 +622,7 @@ _0805010A:  	lsls r1, 24  	lsrs r1, 24  	adds r0, r4, 0 -	bl task_tutorial_oak_boy_girl +	bl sub_804F16C  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x2 | 
