	.include "asm/macros.inc"

	.include "constants/constants.inc"

	.syntax unified

	.text


	thumb_func_start Object6A
Object6A: @ 0x08094A44
	push {lr}
	ldr r2, _08094A58 @ =gUnk_08122A34
	ldrb r1, [r0, #0xa]
	lsls r1, r1, #2
	adds r1, r1, r2
	ldr r1, [r1]
	bl _call_via_r1
	pop {pc}
	.align 2, 0
_08094A58: .4byte gUnk_08122A34

	thumb_func_start sub_08094A5C
sub_08094A5C: @ 0x08094A5C
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08094A78
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #4
	bl InitializeAnimation
_08094A78:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08094A90
sub_08094A90: @ 0x08094A90
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08094ACE
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r1, r4, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	adds r0, r4, #0
	bl UpdateSpriteForCollisionLayer
	ldr r1, _08094AE4 @ =gUnk_08114F30
	ldrb r2, [r4, #0x19]
	lsrs r0, r2, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r4, #0
	movs r1, #0
	bl InitAnimationForceUpdate
	adds r0, r4, #0
	bl sub_0807DD64
_08094ACE:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	pop {r4, pc}
	.align 2, 0
_08094AE4: .4byte gUnk_08114F30

	thumb_func_start sub_08094AE8
sub_08094AE8: @ 0x08094AE8
	push {r4, r5, lr}
	adds r5, r1, #0
	movs r0, #0x6a
	movs r1, #1
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08094B08
	ldr r1, [r5, #4]
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08094B08:
	pop {r4, r5, pc}
	.align 2, 0

	thumb_func_start sub_08094B0C
sub_08094B0C: @ 0x08094B0C
	push {lr}
	adds r2, r0, #0
	ldrh r0, [r2, #0x36]
	subs r0, #1
	movs r3, #0
	strh r0, [r2, #0x36]
	lsls r0, r0, #0x10
	asrs r0, r0, #0x10
	movs r1, #0x20
	rsbs r1, r1, #0
	cmp r0, r1
	bgt _08094B30
	ldr r0, _08094B2C @ =0x0000FFE0
	strh r0, [r2, #0x36]
	b _08094B34
	.align 2, 0
_08094B2C: .4byte 0x0000FFE0
_08094B30:
	ldr r0, _08094B38 @ =gActiveScriptInfo
	strb r3, [r0, #6]
_08094B34:
	pop {pc}
	.align 2, 0
_08094B38: .4byte gActiveScriptInfo

	thumb_func_start sub_08094B3C
sub_08094B3C: @ 0x08094B3C
	push {lr}
	adds r2, r0, #0
	ldr r0, [r2, #0x34]
	movs r1, #0x80
	lsls r1, r1, #8
	adds r0, r0, r1
	str r0, [r2, #0x34]
	movs r0, #0x36
	ldrsh r1, [r2, r0]
	movs r0, #0xd
	rsbs r0, r0, #0
	cmp r1, r0
	blt _08094B60
	ldr r0, _08094B5C @ =0x0000FFF3
	strh r0, [r2, #0x36]
	b _08094B66
	.align 2, 0
_08094B5C: .4byte 0x0000FFF3
_08094B60:
	ldr r1, _08094B68 @ =gActiveScriptInfo
	movs r0, #0
	strb r0, [r1, #6]
_08094B66:
	pop {pc}
	.align 2, 0
_08094B68: .4byte gActiveScriptInfo

	thumb_func_start sub_08094B6C
sub_08094B6C: @ 0x08094B6C
	adds r0, #0x29
	ldrb r2, [r0]
	movs r1, #0x39
	rsbs r1, r1, #0
	ands r1, r2
	movs r2, #0x18
	orrs r1, r2
	strb r1, [r0]
	bx lr
	.align 2, 0

	thumb_func_start sub_08094B80
sub_08094B80: @ 0x08094B80
	adds r0, #0x29
	ldrb r2, [r0]
	movs r1, #0x39
	rsbs r1, r1, #0
	ands r1, r2
	movs r2, #0x10
	orrs r1, r2
	strb r1, [r0]
	bx lr
	.align 2, 0

	thumb_func_start sub_08094B94
sub_08094B94: @ 0x08094B94
	push {r4, lr}
	movs r0, #0x6a
	movs r1, #0x22
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08094BD2
	ldr r0, _08094BD4 @ =gPlayerEntity
	adds r1, r4, #0
	bl CopyPosition
	ldr r0, _08094BD8 @ =0x0000FFD0
	strh r0, [r4, #0x36]
	ldr r1, _08094BDC @ =script_0800AEDC
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
	adds r0, r4, #0
	bl CreateDust
	ldrh r0, [r4, #0x36]
	adds r0, #0x10
	strh r0, [r4, #0x36]
	ldrh r0, [r4, #0x32]
	adds r0, #1
	strh r0, [r4, #0x32]
_08094BD2:
	pop {r4, pc}
	.align 2, 0
_08094BD4: .4byte gPlayerEntity
_08094BD8: .4byte 0x0000FFD0
_08094BDC: .4byte script_0800AEDC

	thumb_func_start sub_08094BE0
sub_08094BE0: @ 0x08094BE0
	push {r4, lr}
	sub sp, #4
	movs r0, #0
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #0x22
	bl FindEntity
	adds r4, r0, #0
	cmp r4, #0
	beq _08094C22
	ldr r0, _08094C28 @ =gPlayerEntity
	adds r1, r4, #0
	bl CopyPosition
	ldr r0, _08094C2C @ =0x0000FFF4
	strh r0, [r4, #0x36]
	ldrh r0, [r4, #0x32]
	adds r0, #1
	strh r0, [r4, #0x32]
	adds r1, r4, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	adds r0, r4, #0
	bl UpdateSpriteForCollisionLayer
	adds r0, r4, #0
	movs r1, #1
	bl InitAnimationForceUpdate
_08094C22:
	add sp, #4
	pop {r4, pc}
	.align 2, 0
_08094C28: .4byte gPlayerEntity
_08094C2C: .4byte 0x0000FFF4

	thumb_func_start sub_08094C30
sub_08094C30: @ 0x08094C30
	push {r4, r5, lr}
	adds r4, r0, #0
	ldr r5, [r4, #0x50]
	cmp r5, #0
	beq _08094C40
	ldr r0, [r5, #4]
	cmp r0, #0
	bne _08094C44
_08094C40:
	bl DeleteThisEntity
_08094C44:
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08094C74
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	movs r1, #2
	bl sub_0805E3A0
	ldr r1, _08094C84 @ =gUnk_08114F30
	ldrb r0, [r5, #0x19]
	lsrs r0, r0, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	ldrb r2, [r4, #0x19]
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r4, #0
	movs r1, #1
	bl InitAnimationForceUpdate
_08094C74:
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	pop {r4, r5, pc}
	.align 2, 0
_08094C84: .4byte gUnk_08114F30

	thumb_func_start sub_08094C88
sub_08094C88: @ 0x08094C88
	push {r4, r5, lr}
	adds r5, r0, #0
	ldrb r1, [r5, #0xc]
	cmp r1, #0
	beq _08094CA0
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _08094CCC
	bl DeleteThisEntity
	b _08094CDA
_08094CA0:
	adds r0, r1, #1
	strb r0, [r5, #0xc]
	ldrb r1, [r5, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	movs r1, #1
	orrs r0, r1
	strb r0, [r5, #0x18]
	adds r0, r5, #0
	movs r1, #3
	bl sub_0805E3A0
	ldrb r0, [r5, #0xb]
	cmp r0, #0x43
	bgt _08094CCC
	cmp r0, #0x40
	blt _08094CCC
	adds r0, r5, #0
	adds r1, r5, #0
	bl sub_0806FAD8
_08094CCC:
	ldrb r4, [r5, #0xa]
	ldrb r0, [r5, #0xb]
	strb r0, [r5, #0xa]
	adds r0, r5, #0
	bl sub_08080CB4
	strb r4, [r5, #0xa]
_08094CDA:
	pop {r4, r5, pc}

	thumb_func_start sub_08094CDC
sub_08094CDC: @ 0x08094CDC
	push {lr}
	movs r0, #0x6a
	movs r1, #3
	movs r2, #0x62
	bl CreateObject
	adds r2, r0, #0
	cmp r2, #0
	beq _08094D0A
	ldr r1, _08094D0C @ =gRoomControls
	ldrh r0, [r1, #6]
	adds r0, #0xe0
	strh r0, [r2, #0x2e]
	movs r3, #0x96
	lsls r3, r3, #2
	adds r0, r3, #0
	ldrh r1, [r1, #8]
	adds r0, r0, r1
	strh r0, [r2, #0x32]
	movs r0, #0xa2
	lsls r0, r0, #1
	bl SoundReq
_08094D0A:
	pop {pc}
	.align 2, 0
_08094D0C: .4byte gRoomControls

	thumb_func_start sub_08094D10
sub_08094D10: @ 0x08094D10
	push {lr}
	sub sp, #4
	movs r0, #0x62
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #3
	bl FindEntity
	adds r1, r0, #0
	cmp r1, #0
	beq _08094D2E
	movs r0, #0xff
	strb r0, [r1, #0xc]
_08094D2E:
	add sp, #4
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08094D34
sub_08094D34: @ 0x08094D34
	push {lr}
	movs r0, #0x6a
	movs r1, #0x15
	movs r2, #0xd
	bl CreateObject
	adds r2, r0, #0
	cmp r2, #0
	beq _08094D68
	ldr r1, _08094D6C @ =gRoomControls
	movs r3, #0x80
	lsls r3, r3, #1
	adds r0, r3, #0
	ldrh r3, [r1, #6]
	adds r0, r0, r3
	strh r0, [r2, #0x2e]
	movs r3, #0x96
	lsls r3, r3, #2
	adds r0, r3, #0
	ldrh r1, [r1, #8]
	adds r0, r0, r1
	strh r0, [r2, #0x32]
	movs r0, #0xa2
	lsls r0, r0, #1
	bl SoundReq
_08094D68:
	pop {pc}
	.align 2, 0
_08094D6C: .4byte gRoomControls

	thumb_func_start sub_08094D70
sub_08094D70: @ 0x08094D70
	push {lr}
	sub sp, #4
	movs r0, #0xd
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #0x15
	bl FindEntity
	adds r1, r0, #0
	cmp r1, #0
	beq _08094D8E
	movs r0, #0xff
	strb r0, [r1, #0xc]
_08094D8E:
	add sp, #4
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08094D94
sub_08094D94: @ 0x08094D94
	push {r4, lr}
	adds r4, r0, #0
	ldrb r1, [r4, #0xc]
	cmp r1, #0
	beq _08094DAC
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _08094DCE
	bl DeleteThisEntity
	b _08094DD4
_08094DAC:
	adds r0, r1, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	movs r1, #1
	orrs r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #3
	bl sub_0805E3A0
	adds r0, r4, #0
	movs r1, #0
	bl InitAnimationForceUpdate
_08094DCE:
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
_08094DD4:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08094DD8
sub_08094DD8: @ 0x08094DD8
	push {lr}
	movs r0, #0x6a
	movs r1, #4
	movs r2, #0
	bl CreateObject
	adds r2, r0, #0
	cmp r2, #0
	beq _08094E06
	ldr r1, _08094E08 @ =gRoomControls
	ldrh r0, [r1, #6]
	adds r0, #0xf0
	strh r0, [r2, #0x2e]
	movs r3, #0x96
	lsls r3, r3, #2
	adds r0, r3, #0
	ldrh r1, [r1, #8]
	adds r0, r0, r1
	strh r0, [r2, #0x32]
	movs r0, #0xa2
	lsls r0, r0, #1
	bl SoundReq
_08094E06:
	pop {pc}
	.align 2, 0
_08094E08: .4byte gRoomControls

	thumb_func_start sub_08094E0C
sub_08094E0C: @ 0x08094E0C
	push {lr}
	sub sp, #4
	movs r0, #0
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #4
	bl FindEntity
	adds r1, r0, #0
	cmp r1, #0
	beq _08094E2A
	movs r0, #0xff
	strb r0, [r1, #0xc]
_08094E2A:
	add sp, #4
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08094E30
sub_08094E30: @ 0x08094E30
	push {r4, r5, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xb]
	cmp r0, #0
	bne _08094E88
	ldr r0, _08094E80 @ =gScreenTransition
	ldr r0, [r0]
	movs r1, #0x1f
	ands r0, r1
	cmp r0, #0
	beq _08094E48
	b _08094F94
_08094E48:
	movs r0, #0x6a
	movs r1, #5
	movs r2, #1
	bl CreateObject
	adds r5, r0, #0
	cmp r5, #0
	bne _08094E5A
	b _08094F94
_08094E5A:
	bl Random
	ldr r4, _08094E84 @ =gRoomControls
	movs r1, #0xf0
	bl __modsi3
	ldrh r1, [r4, #0xa]
	adds r1, r1, r0
	strh r1, [r5, #0x2e]
	bl Random
	movs r1, #0xa0
	bl __modsi3
	ldrh r1, [r4, #0xc]
	adds r1, r1, r0
	strh r1, [r5, #0x32]
	b _08094F94
	.align 2, 0
_08094E80: .4byte gScreenTransition
_08094E84: .4byte gRoomControls
_08094E88:
	cmp r0, #1
	bne _08094F44
	ldrb r1, [r4, #0xc]
	cmp r1, #1
	beq _08094ED4
	cmp r1, #1
	bgt _08094E9C
	cmp r1, #0
	beq _08094EA6
	b _08094F94
_08094E9C:
	cmp r1, #2
	beq _08094F08
	cmp r1, #3
	beq _08094F22
	b _08094F94
_08094EA6:
	strb r0, [r4, #0xc]
	ldr r0, _08094ED0 @ =0xFF600000
	str r0, [r4, #0x34]
	str r1, [r4, #0x20]
	adds r0, r4, #0
	movs r1, #6
	bl sub_0805E3A0
	adds r0, r4, #0
	movs r1, #0
	bl InitializeAnimation
	adds r0, r4, #0
	bl sub_080002B8
	cmp r0, #0xd
	bne _08094F94
	movs r0, #3
	strb r0, [r4, #0xc]
	b _08094F94
	.align 2, 0
_08094ED0: .4byte 0xFF600000
_08094ED4:
	ldr r1, [r4, #0x34]
	ldr r0, [r4, #0x20]
	subs r1, r1, r0
	str r1, [r4, #0x34]
	ldr r2, _08094F04 @ =0xFFFFE000
	adds r0, r0, r2
	str r0, [r4, #0x20]
	cmp r1, #0
	ble _08094F94
	ldrb r0, [r4, #0xc]
	adds r0, #1
	movs r1, #0
	strb r0, [r4, #0xc]
	str r1, [r4, #0x34]
	str r1, [r4, #0x20]
	adds r0, r4, #0
	movs r1, #1
	bl InitializeAnimation
	movs r0, #0xbf
	lsls r0, r0, #1
	bl EnqueueSFX
	b _08094F94
	.align 2, 0
_08094F04: .4byte 0xFFFFE000
_08094F08:
	adds r0, r4, #0
	bl GetNextFrame
	adds r0, r4, #0
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _08094F94
	bl DeleteThisEntity
	b _08094F94
_08094F22:
	ldr r0, [r4, #0x34]
	ldr r1, [r4, #0x20]
	subs r0, r0, r1
	str r0, [r4, #0x34]
	ldr r0, _08094F40 @ =0xFFFFE000
	adds r1, r1, r0
	str r1, [r4, #0x20]
	adds r0, r4, #0
	bl sub_080040A8
	cmp r0, #0
	bne _08094F94
	bl DeleteThisEntity
	b _08094F94
	.align 2, 0
_08094F40: .4byte 0xFFFFE000
_08094F44:
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08094F94
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r0, [r4, #0xe]
	cmp r0, #1
	beq _08094F68
	cmp r0, #1
	bgt _08094F5E
	cmp r0, #0
	beq _08094F7A
	b _08094F94
_08094F5E:
	cmp r0, #2
	beq _08094F72
	cmp r0, #3
	beq _08094F84
	b _08094F94
_08094F68:
	adds r0, r4, #0
	movs r1, #2
	bl InitializeAnimation
	b _08094F94
_08094F72:
	ldrb r0, [r4, #0x18]
	movs r1, #0x40
	orrs r0, r1
	strb r0, [r4, #0x18]
_08094F7A:
	adds r0, r4, #0
	movs r1, #0
	bl InitializeAnimation
	b _08094F94
_08094F84:
	ldrb r0, [r4, #0x18]
	movs r1, #0x40
	orrs r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #2
	bl InitializeAnimation
_08094F94:
	pop {r4, r5, pc}
	.align 2, 0

	thumb_func_start sub_08094F98
sub_08094F98: @ 0x08094F98
	push {lr}
	movs r0, #0x6a
	movs r1, #5
	movs r2, #0
	bl CreateObject
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08094FA8
sub_08094FA8: @ 0x08094FA8
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #4
	bhi _08095086
	lsls r0, r0, #2
	ldr r1, _08094FBC @ =_08094FC0
	adds r0, r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08094FBC: .4byte _08094FC0
_08094FC0: @ jump table
	.4byte _08094FD4 @ case 0
	.4byte _08094FF0 @ case 1
	.4byte _08095024 @ case 2
	.4byte _08095040 @ case 3
	.4byte _08095070 @ case 4
_08094FD4:
	movs r1, #0
	movs r0, #1
	strb r0, [r4, #0xc]
	strb r1, [r4, #0x1e]
	adds r2, r4, #0
	adds r2, #0x29
	ldrb r0, [r2]
	movs r1, #7
	orrs r0, r1
	strb r0, [r2]
	adds r0, r4, #0
	bl sub_080787B4
	b _08095086
_08094FF0:
	adds r1, r4, #0
	adds r1, #0x39
	movs r0, #0
	ldrsb r0, [r1, r0]
	cmp r0, #0
	beq _08095086
	movs r0, #0
	strb r0, [r1]
	movs r0, #2
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_080788E0
	ldr r0, _08095020 @ =gPlayerState
	movs r1, #0xc
	strb r1, [r0, #0xc]
	adds r0, #0x38
	movs r1, #0x36
	strb r1, [r0]
	movs r0, #2
	bl sub_08078A90
	b _08095086
	.align 2, 0
_08095020: .4byte gPlayerState
_08095024:
	movs r0, #0x36
	bl GetInventoryValue
	cmp r0, #2
	bne _08095086
	movs r0, #3
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	subs r0, #7
	ands r0, r1
	movs r1, #1
	orrs r0, r1
	strb r0, [r4, #0x18]
	b _08095086
_08095040:
	ldr r0, _0809506C @ =gPlayerEntity
	ldrb r0, [r0, #0xc]
	cmp r0, #0xc
	beq _08095086
	movs r0, #4
	strb r0, [r4, #0xc]
	movs r0, #0x5b
	bl CheckGlobalFlag
	cmp r0, #0
	bne _08095086
	movs r0, #0x1c
	movs r1, #0
	movs r2, #0
	bl CreateItemEntity
	movs r0, #0x5b
	bl SetGlobalFlag
	movs r0, #0x3c
	strb r0, [r4, #0xe]
	b _08095086
	.align 2, 0
_0809506C: .4byte gPlayerEntity
_08095070:
	ldrb r0, [r4, #0xe]
	subs r0, #1
	strb r0, [r4, #0xe]
	lsls r0, r0, #0x18
	cmp r0, #0
	bne _08095086
	movs r0, #5
	strb r0, [r4, #0xc]
	movs r0, #1
	bl sub_08078A90
_08095086:
	pop {r4, pc}

	thumb_func_start sub_08095088
sub_08095088: @ 0x08095088
	push {r4, r5, lr}
	adds r5, r0, #0
	ldrb r0, [r5, #0xc]
	cmp r0, #1
	beq _080950C8
	cmp r0, #1
	bgt _0809509C
	cmp r0, #0
	beq _080950A2
	b _0809510A
_0809509C:
	cmp r0, #2
	beq _080950F0
	b _0809510A
_080950A2:
	movs r0, #0x5b
	bl GetInventoryValue
	cmp r0, #0
	beq _080950B0
	bl DeleteThisEntity
_080950B0:
	movs r0, #1
	strb r0, [r5, #0xc]
	adds r2, r5, #0
	adds r2, #0x29
	ldrb r0, [r2]
	movs r1, #7
	orrs r0, r1
	strb r0, [r2]
	adds r0, r5, #0
	bl sub_080787B4
	b _0809510A
_080950C8:
	adds r1, r5, #0
	adds r1, #0x39
	movs r0, #0
	ldrsb r0, [r1, r0]
	cmp r0, #0
	beq _0809510A
	movs r0, #0
	strb r0, [r1]
	movs r0, #2
	strb r0, [r5, #0xc]
	adds r0, r5, #0
	bl sub_080788E0
	ldr r0, _080950EC @ =0x00001F1F
	movs r1, #0
	bl sub_08078AA8
	b _0809510A
	.align 2, 0
_080950EC: .4byte 0x00001F1F
_080950F0:
	ldr r0, _0809511C @ =gTextBox
	ldrb r1, [r0]
	movs r0, #0x7f
	ands r0, r1
	cmp r0, #0
	bne _0809510A
	movs r0, #0x5b
	movs r1, #0
	movs r2, #0
	bl CreateItemEntity
	bl DeleteThisEntity
_0809510A:
	ldrb r4, [r5, #0xa]
	movs r0, #0x5b
	strb r0, [r5, #0xa]
	adds r0, r5, #0
	bl sub_08080CB4
	strb r4, [r5, #0xa]
	pop {r4, r5, pc}
	.align 2, 0
_0809511C: .4byte gTextBox

	thumb_func_start sub_08095120
sub_08095120: @ 0x08095120
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _0809514C
	movs r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	movs r1, #3
	bl sub_0805E3A0
	adds r0, r4, #0
	adds r1, r4, #0
	bl sub_0806FAD8
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #2
	bl InitAnimationForceUpdate
_0809514C:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095164
sub_08095164: @ 0x08095164
	push {lr}
	sub sp, #4
	movs r0, #0
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #8
	bl FindEntity
	cmp r0, #0
	beq _08095182
	movs r1, #3
	bl InitAnimationForceUpdate
_08095182:
	add sp, #4
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08095188
sub_08095188: @ 0x08095188
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080951B4
	movs r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	movs r1, #3
	bl sub_0805E3A0
	adds r0, r4, #0
	adds r1, r4, #0
	bl sub_0806FAD8
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #0
	bl InitAnimationForceUpdate
_080951B4:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	pop {r4, pc}

	thumb_func_start sub_080951C4
sub_080951C4: @ 0x080951C4
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080951E8
	adds r0, #1
	strb r0, [r4, #0xc]
	movs r1, #0
	ldr r0, _08095240 @ =0x0000FFF0
	strh r0, [r4, #0x36]
	strb r1, [r4, #0xe]
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #3
	bl InitializeAnimation
_080951E8:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	movs r1, #0x36
	ldrsh r0, [r4, r1]
	cmp r0, #0
	bne _08095218
	str r0, [r4, #0x34]
	str r0, [r4, #0x50]
	ldrb r0, [r4, #0xe]
	cmp r0, #0
	bne _08095218
	adds r0, #1
	strb r0, [r4, #0xe]
	movs r0, #0xe6
	bl SoundReq
_08095218:
	ldr r3, [r4, #0x50]
	cmp r3, #0
	beq _0809523C
	ldrb r1, [r3, #0x18]
	lsls r1, r1, #0x1e
	lsrs r1, r1, #0x1e
	ldrb r2, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x18]
	ldrh r0, [r3, #0x2e]
	adds r0, #0x10
	strh r0, [r4, #0x2e]
	ldrh r0, [r3, #0x32]
	subs r0, #0x10
	strh r0, [r4, #0x32]
_0809523C:
	pop {r4, pc}
	.align 2, 0
_08095240: .4byte 0x0000FFF0

	thumb_func_start sub_08095244
sub_08095244: @ 0x08095244
	push {r4, r5, lr}
	adds r5, r0, #0
	ldrb r0, [r5, #0xa]
	cmp r0, #0
	bne _0809527C
	movs r0, #0x6a
	movs r1, #0xa
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _0809527C
	str r5, [r4, #0x50]
	movs r2, #0x80
	lsls r2, r2, #0xd
	ldr r3, _08095280 @ =0xFFF00000
	adds r0, r5, #0
	adds r1, r4, #0
	bl PositionRelative
	ldr r1, _08095284 @ =script_0801183C
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_0809527C:
	pop {r4, r5, pc}
	.align 2, 0
_08095280: .4byte 0xFFF00000
_08095284: .4byte script_0801183C

	thumb_func_start sub_08095288
sub_08095288: @ 0x08095288
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	adds r1, r0, #0
	cmp r1, #0
	bne _080952AA
	adds r0, #1
	strb r0, [r4, #0xc]
	strb r1, [r4, #0xd]
	adds r0, r4, #0
	movs r1, #3
	bl sub_0805E3A0
	adds r0, r4, #0
	movs r1, #0
	bl InitAnimationForceUpdate
_080952AA:
	ldrb r0, [r4, #0xd]
	cmp r0, #0
	beq _080952F0
	movs r1, #0xc0
	lsls r1, r1, #5
	adds r0, r4, #0
	bl sub_080044EC
	cmp r0, #1
	bhi _080952D4
	movs r0, #0
	strb r0, [r4, #0xd]
	movs r2, #0x80
	lsls r2, r2, #1
	movs r3, #0xc0
	lsls r3, r3, #8
	adds r0, r4, #0
	adds r1, r2, #0
	bl sub_0805EC9C
	b _080952F0
_080952D4:
	movs r2, #0x80
	lsls r2, r2, #1
	ldrb r3, [r4, #0xe]
	lsls r3, r3, #8
	adds r0, r4, #0
	adds r1, r2, #0
	bl sub_0805EC9C
	ldrb r0, [r4, #0xe]
	adds r0, #0xa
	strb r0, [r4, #0xe]
	adds r0, r4, #0
	bl sub_0806F69C
_080952F0:
	ldr r3, [r4, #0x54]
	cmp r3, #0
	beq _080952FE
	adds r0, r3, #0
	adds r1, r4, #0
	bl CopyPosition
_080952FE:
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	ldr r3, [r4, #0x50]
	cmp r3, #0
	beq _08095328
	ldrb r1, [r3, #0x18]
	lsls r1, r1, #0x1e
	lsrs r1, r1, #0x1e
	ldrb r2, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x18]
	ldr r0, [r3, #4]
	cmp r0, #0
	bne _0809532C
	bl DeleteThisEntity
	b _0809532C
_08095328:
	bl DeleteThisEntity
_0809532C:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095330
sub_08095330: @ 0x08095330
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0xb
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _0809535E
	str r4, [r5, #0x54]
	str r5, [r4, #0x54]
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r0, _08095360 @ =0x0000FFF0
	strh r0, [r4, #0x36]
	adds r0, r4, #0
	adds r1, r4, #0
	bl ResolveEntityOnTop
_0809535E:
	pop {r4, r5, pc}
	.align 2, 0
_08095360: .4byte 0x0000FFF0

	thumb_func_start sub_08095364
sub_08095364: @ 0x08095364
	push {r4, r5, r6, lr}
	ldr r6, [r0, #0x54]
	cmp r6, #0
	beq _0809539E
	movs r5, #0
	movs r0, #2
	strb r0, [r6, #0x1e]
	adds r0, r6, #0
	adds r0, #0x38
	movs r4, #1
	strb r4, [r0]
	adds r0, r6, #0
	bl UpdateSpriteForCollisionLayer
	str r5, [r6, #0x54]
	strb r4, [r6, #0xd]
	ldr r0, _080953A0 @ =0x0000FFF0
	strh r0, [r6, #0x36]
	movs r0, #7
	strb r0, [r6, #0x15]
	movs r0, #0xc0
	lsls r0, r0, #0xa
	str r0, [r6, #0x20]
	movs r0, #0x80
	strh r0, [r6, #0x24]
	adds r0, r6, #0
	movs r1, #1
	bl InitAnimationForceUpdate
_0809539E:
	pop {r4, r5, r6, pc}
	.align 2, 0
_080953A0: .4byte 0x0000FFF0

	thumb_func_start sub_080953A4
sub_080953A4: @ 0x080953A4
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080953E0
	adds r0, #1
	strb r0, [r4, #0xc]
	ldr r0, _08095414 @ =0x0000FFF0
	strh r0, [r4, #0x36]
	adds r0, r4, #0
	movs r1, #2
	bl sub_0805E3A0
	ldr r1, _08095418 @ =gUnk_08114F30
	ldrb r2, [r4, #0x19]
	lsrs r0, r2, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r4, #0
	adds r1, r4, #0
	bl ResolveEntityOnTop
	adds r0, r4, #0
	bl sub_0807DD64
_080953E0:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	ldrb r0, [r4, #0xa]
	cmp r0, #0xd
	bne _08095412
	adds r0, r4, #0
	adds r0, #0x5b
	ldrb r1, [r0]
	movs r0, #1
	ands r0, r1
	ldr r1, _0809541C @ =0x00000139
	cmp r0, #0
	beq _0809540C
	movs r1, #0
_0809540C:
	adds r0, r4, #0
	bl sub_0801D2B4
_08095412:
	pop {r4, pc}
	.align 2, 0
_08095414: .4byte 0x0000FFF0
_08095418: .4byte gUnk_08114F30
_0809541C: .4byte 0x00000139

	thumb_func_start sub_08095420
sub_08095420: @ 0x08095420
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	adds r6, r1, #0
	movs r0, #0x6a
	movs r1, #0xc
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095450
	ldr r3, _08095454 @ =0xFFF00000
	adds r0, r5, #0
	adds r1, r4, #0
	movs r2, #0
	bl PositionRelative
	ldr r1, [r6, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095450:
	pop {r4, r5, r6, pc}
	.align 2, 0
_08095454: .4byte 0xFFF00000

	thumb_func_start nullsub_527
nullsub_527: @ 0x08095458
	bx lr
	.align 2, 0

	thumb_func_start sub_0809545C
sub_0809545C: @ 0x0809545C
	push {r4, r5, r6, lr}
	adds r4, r0, #0
	adds r6, r1, #0
	movs r0, #0x6a
	movs r1, #0xd
	movs r2, #0
	bl CreateObject
	adds r5, r0, #0
	cmp r5, #0
	beq _080954A6
	ldr r3, _080954A8 @ =0xFFF00000
	adds r0, r4, #0
	adds r1, r5, #0
	movs r2, #0
	bl PositionRelative
	ldr r1, [r6, #4]
	adds r0, r5, #0
	bl StartCutscene
	adds r1, r5, #0
	adds r1, #0x84
	str r0, [r1]
	movs r0, #0x6a
	movs r1, #2
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _080954A6
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	str r5, [r4, #0x50]
_080954A6:
	pop {r4, r5, r6, pc}
	.align 2, 0
_080954A8: .4byte 0xFFF00000

	thumb_func_start sub_080954AC
sub_080954AC: @ 0x080954AC
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0x1a
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _080954D6
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r1, _080954D8 @ =script_08015B14
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_080954D6:
	pop {r4, r5, pc}
	.align 2, 0
_080954D8: .4byte script_08015B14

	thumb_func_start sub_080954DC
sub_080954DC: @ 0x080954DC
	push {r4, r5, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #1
	beq _08095598
	cmp r0, #1
	bgt _080954F0
	cmp r0, #0
	beq _080954FC
	b _0809562C
_080954F0:
	cmp r0, #2
	beq _080955B8
	cmp r0, #3
	bne _080954FA
	b _08095620
_080954FA:
	b _0809562C
_080954FC:
	ldrb r0, [r4, #0xe]
	adds r5, r0, #0
	cmp r5, #0
	beq _0809550A
	subs r0, #1
	strb r0, [r4, #0xe]
	b _0809562C
_0809550A:
	movs r0, #1
	movs r2, #1
	strb r0, [r4, #0xc]
	strb r5, [r4, #0xd]
	ldrb r1, [r4, #0x18]
	subs r0, #5
	ands r0, r1
	orrs r0, r2
	strb r0, [r4, #0x18]
	strh r5, [r4, #0x36]
	adds r3, r4, #0
	adds r3, #0x29
	ldrb r1, [r3]
	movs r0, #8
	rsbs r0, r0, #0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3]
	ldrh r1, [r4, #0x2e]
	adds r0, r4, #0
	adds r0, #0x68
	strh r1, [r0]
	ldrh r0, [r4, #0x32]
	adds r1, r4, #0
	adds r1, #0x6a
	strh r0, [r1]
	adds r0, r4, #0
	adds r0, #0x6c
	strh r5, [r0]
	ldr r1, _08095590 @ =gUnk_08122AE0
	ldrb r0, [r4, #0xb]
	adds r0, r0, r1
	ldrb r0, [r0]
	adds r5, r4, #0
	adds r5, #0x6e
	strb r0, [r5]
	ldr r1, _08095594 @ =gUnk_08122AE8
	ldrb r0, [r4, #0xb]
	lsls r0, r0, #1
	adds r0, r0, r1
	ldrh r1, [r0]
	adds r0, r4, #0
	bl sub_0801D2B4
	adds r0, r4, #0
	bl sub_0807DD64
	ldrb r1, [r4, #0xb]
	adds r1, #2
	adds r0, r4, #0
	bl InitializeAnimation
	adds r0, r4, #0
	bl sub_08095754
	bl Random
	movs r1, #6
	bl __modsi3
	movs r1, #0xde
	lsls r1, r1, #1
	adds r0, r0, r1
	bl SoundReq
	adds r1, r5, #0
	b _08095630
	.align 2, 0
_08095590: .4byte gUnk_08122AE0
_08095594: .4byte gUnk_08122AE8
_08095598:
	ldrh r0, [r4, #0x36]
	subs r0, #1
	strh r0, [r4, #0x36]
	lsls r0, r0, #0x10
	asrs r0, r0, #0x10
	movs r2, #0x10
	rsbs r2, r2, #0
	adds r1, r4, #0
	adds r1, #0x6e
	cmp r0, r2
	bgt _08095630
	ldrb r0, [r4, #0xc]
	adds r0, #1
	strb r0, [r4, #0xc]
	strh r2, [r4, #0x36]
	b _08095630
_080955B8:
	adds r5, r4, #0
	adds r5, #0x6c
	ldrh r0, [r5]
	adds r0, #1
	strh r0, [r5]
	lsls r0, r0, #0x10
	lsrs r0, r0, #0x10
	cmp r0, #0x40
	bls _080955CE
	movs r0, #0x40
	strh r0, [r5]
_080955CE:
	ldr r3, _0809561C @ =gSineTable
	movs r2, #0x6e
	adds r2, r2, r4
	mov ip, r2
	ldrb r0, [r2]
	adds r0, #0x40
	lsls r0, r0, #1
	adds r0, r0, r3
	movs r2, #0
	ldrsh r1, [r0, r2]
	ldrh r0, [r5]
	lsls r0, r0, #8
	adds r2, r1, #0
	muls r2, r0, r2
	asrs r2, r2, #0x10
	strh r2, [r4, #0x2e]
	mov r1, ip
	ldrb r0, [r1]
	lsls r0, r0, #1
	adds r0, r0, r3
	movs r3, #0
	ldrsh r1, [r0, r3]
	ldrh r0, [r5]
	lsls r0, r0, #7
	muls r1, r0, r1
	asrs r1, r1, #0x10
	strh r1, [r4, #0x32]
	adds r0, r4, #0
	adds r0, #0x68
	ldrh r0, [r0]
	adds r2, r2, r0
	strh r2, [r4, #0x2e]
	adds r0, r4, #0
	adds r0, #0x6a
	ldrh r0, [r0]
	adds r1, r1, r0
	strh r1, [r4, #0x32]
	mov r1, ip
	b _08095630
	.align 2, 0
_0809561C: .4byte gSineTable
_08095620:
	movs r0, #0x24
	ldrsh r1, [r4, r0]
	ldrb r2, [r4, #0x15]
	adds r0, r4, #0
	bl sub_0806F62C
_0809562C:
	adds r1, r4, #0
	adds r1, #0x6e
_08095630:
	ldrb r0, [r1]
	adds r0, #4
	strb r0, [r1]
	ldrb r0, [r4, #0xd]
	cmp r0, #0
	beq _0809564A
	adds r0, r4, #0
	bl sub_080040A8
	cmp r0, #0
	bne _0809564A
	bl DeleteThisEntity
_0809564A:
	ldrb r1, [r4, #0x15]
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _0809565E
	ldrb r1, [r4, #0x18]
	movs r0, #0x41
	rsbs r0, r0, #0
	ands r0, r1
	b _08095664
_0809565E:
	ldrb r0, [r4, #0x18]
	movs r1, #0x40
	orrs r0, r1
_08095664:
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	pop {r4, r5, pc}

	thumb_func_start sub_0809567C
sub_0809567C: @ 0x0809567C
	push {r4, lr}
	adds r4, r0, #0
	movs r0, #3
	strb r0, [r4, #0xc]
	movs r0, #1
	strb r0, [r4, #0xd]
	movs r0, #0x80
	lsls r0, r0, #3
	strh r0, [r4, #0x24]
	adds r0, r4, #0
	adds r0, #0x68
	movs r2, #0
	ldrsh r1, [r0, r2]
	lsls r1, r1, #0x10
	ldr r0, [r4, #0x2c]
	subs r0, r0, r1
	adds r1, r4, #0
	adds r1, #0x6a
	movs r3, #0
	ldrsh r2, [r1, r3]
	lsls r2, r2, #0x10
	ldr r1, [r4, #0x30]
	subs r1, r1, r2
	bl sub_080045DA
	strb r0, [r4, #0x15]
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_080956B4
sub_080956B4: @ 0x080956B4
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	ldrb r0, [r5, #0xc]
	cmp r0, #0
	bne _080956E2
	adds r0, #1
	strb r0, [r5, #0xc]
	adds r0, r5, #0
	movs r1, #0
	bl InitializeAnimation
	adds r4, r5, #0
	adds r4, #0x68
	ldrh r2, [r5, #0x2e]
	ldrh r1, [r5, #0x32]
	movs r0, #7
_080956D4:
	strh r2, [r4]
	adds r4, #2
	strh r1, [r4]
	adds r4, #2
	subs r0, #1
	cmp r0, #0
	bge _080956D4
_080956E2:
	adds r0, r5, #0
	bl GetNextFrame
	ldrb r0, [r5, #0xb]
	ldr r1, _08095724 @ =gScreenTransition
	ldr r1, [r1]
	adds r0, r0, r1
	movs r1, #0xf
	ands r0, r1
	cmp r0, #0
	bne _080956FE
	adds r0, r5, #0
	bl sub_080957B4
_080956FE:
	ldr r6, [r5, #0x50]
	cmp r6, #0
	beq _08095728
	ldrb r1, [r6, #0x18]
	lsls r1, r1, #0x1e
	lsrs r1, r1, #0x1e
	ldrb r2, [r5, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r2
	orrs r0, r1
	strb r0, [r5, #0x18]
	ldr r0, [r6, #4]
	cmp r0, #0
	bne _0809572C
	bl DeleteThisEntity
	b _0809572C
	.align 2, 0
_08095724: .4byte gScreenTransition
_08095728:
	bl DeleteThisEntity
_0809572C:
	adds r4, r5, #0
	adds r4, #0x68
	adds r0, r5, #0
	adds r0, #0x6c
	adds r1, r4, #0
	movs r2, #0x1c
	bl MemCopy
	ldrh r0, [r4, #0x14]
	strh r0, [r5, #0x2e]
	ldrh r0, [r4, #0x16]
	strh r0, [r5, #0x32]
	ldrh r0, [r6, #0x36]
	strh r0, [r5, #0x36]
	ldrh r0, [r6, #0x2e]
	strh r0, [r4, #0x1c]
	ldrh r0, [r6, #0x32]
	strh r0, [r4, #0x1e]
	pop {r4, r5, r6, pc}
	.align 2, 0

	thumb_func_start sub_08095754
sub_08095754: @ 0x08095754
	push {r4, r5, lr}
	adds r5, r0, #0
	ldrb r2, [r5, #0xb]
	movs r0, #0x6a
	movs r1, #0xf
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _0809577A
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	adds r0, r5, #0
	adds r1, r4, #0
	bl sub_0806FAD8
_0809577A:
	pop {r4, r5, pc}

	thumb_func_start sub_0809577C
sub_0809577C: @ 0x0809577C
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095796
	adds r0, #1
	strb r0, [r4, #0xc]
	ldr r0, _080957B0 @ =0x0000FFF0
	strh r0, [r4, #0x36]
	adds r0, r4, #0
	movs r1, #1
	bl InitializeAnimation
_08095796:
	adds r0, r4, #0
	bl GetNextFrame
	adds r0, r4, #0
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _080957AE
	bl DeleteThisEntity
_080957AE:
	pop {r4, pc}
	.align 2, 0
_080957B0: .4byte 0x0000FFF0

	thumb_func_start sub_080957B4
sub_080957B4: @ 0x080957B4
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0x10
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _080957DA
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	adds r0, r5, #0
	adds r1, r4, #0
	bl sub_0806FAD8
_080957DA:
	pop {r4, r5, pc}

	thumb_func_start sub_080957DC
sub_080957DC: @ 0x080957DC
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080957F8
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #0
	bl InitAnimationForceUpdate
_080957F8:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095810
sub_08095810: @ 0x08095810
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0x11
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095844
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	adds r0, r5, #0
	adds r1, r4, #0
	bl ResolveEntityOnTop
	ldr r1, _08095848 @ =script_08011940
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095844:
	pop {r4, r5, pc}
	.align 2, 0
_08095848: .4byte script_08011940

	thumb_func_start sub_0809584C
sub_0809584C: @ 0x0809584C
	push {r4, r5, lr}
	adds r5, r0, #0
	adds r0, #0x45
	ldrb r1, [r0]
	movs r0, #0x7f
	ands r0, r1
	cmp r0, #0
	beq _0809586C
	ldr r0, _080958D0 @ =gUnk_020342F8
	subs r1, #1
	bl ReadBit
	cmp r0, #0
	bne _0809586C
	bl DeleteThisEntity
_0809586C:
	ldrb r0, [r5, #0xe]
	cmp r0, #0
	beq _08095880
	ldrb r0, [r5, #0xb]
	bl CheckKinstoneFused
	cmp r0, #0
	beq _08095880
	bl DeleteThisEntity
_08095880:
	ldrb r0, [r5, #0xc]
	cmp r0, #0
	bne _080958B2
	adds r0, #1
	strb r0, [r5, #0xc]
	adds r1, r5, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	adds r0, r5, #0
	bl UpdateSpriteForCollisionLayer
	ldr r1, _080958D4 @ =gUnk_08114F30
	ldrb r2, [r5, #0x19]
	lsrs r0, r2, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r5, #0x19]
	adds r0, r5, #0
	bl sub_0807DD64
_080958B2:
	adds r0, r5, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r5, #0
	bl HandleEntity0x82Actions
	ldrb r4, [r5, #0xa]
	movs r0, #0x5c
	strb r0, [r5, #0xa]
	adds r0, r5, #0
	bl sub_08080CB4
	strb r4, [r5, #0xa]
	pop {r4, r5, pc}
	.align 2, 0
_080958D0: .4byte gUnk_020342F8
_080958D4: .4byte gUnk_08114F30

	thumb_func_start sub_080958D8
sub_080958D8: @ 0x080958D8
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080958EC
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
_080958EC:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	adds r0, r4, #0
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #1
	ands r0, r1
	cmp r0, #0
	beq _08095914
	adds r0, r4, #0
	bl sub_08095954
_08095914:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095918
sub_08095918: @ 0x08095918
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _0809593C
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	movs r1, #6
	bl sub_0805E3A0
	adds r0, r4, #0
	bl sub_0807DD64
	adds r0, r4, #0
	movs r1, #0
	bl InitializeAnimation
_0809593C:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095954
sub_08095954: @ 0x08095954
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0x14
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _080959B8
	str r5, [r4, #0x50]
	ldrb r0, [r5, #0x14]
	ldr r1, _080959AC @ =gUnk_08122AF8
	adds r0, r0, r1
	movs r2, #0
	ldrsb r2, [r0, r2]
	lsls r2, r2, #0x10
	movs r3, #1
	ldrsb r3, [r0, r3]
	lsls r3, r3, #0x10
	adds r0, r5, #0
	adds r1, r4, #0
	bl PositionRelative
	ldr r0, _080959B0 @ =0x0000FFFD
	strh r0, [r4, #0x36]
	ldr r1, _080959B4 @ =script_08012C48
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
	movs r0, #0x92
	lsls r0, r0, #1
	bl EnqueueSFX
	adds r2, r5, #0
	adds r2, #0x5a
	ldrb r1, [r2]
	movs r0, #0xfe
	ands r0, r1
	strb r0, [r2]
	b _080959C4
	.align 2, 0
_080959AC: .4byte gUnk_08122AF8
_080959B0: .4byte 0x0000FFFD
_080959B4: .4byte script_08012C48
_080959B8:
	ldr r0, _080959C8 @ =gActiveScriptInfo
	ldr r1, [r0]
	movs r2, #0x80
	lsls r2, r2, #1
	orrs r1, r2
	str r1, [r0]
_080959C4:
	pop {r4, r5, pc}
	.align 2, 0
_080959C8: .4byte gActiveScriptInfo

	thumb_func_start sub_080959CC
sub_080959CC: @ 0x080959CC
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080959F2
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #3
	bl sub_0805E3A0
	adds r0, r4, #0
	bl sub_0807DD64
_080959F2:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	adds r0, r4, #0
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #0x81
	rsbs r0, r0, #0
	ands r1, r0
	adds r0, r4, #0
	bl sub_08095D30
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095A1C
sub_08095A1C: @ 0x08095A1C
	push {r4, r5, lr}
	adds r5, r1, #0
	movs r0, #0x6a
	movs r1, #0x16
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095A5E
	ldr r1, _08095A60 @ =gRoomControls
	ldrh r0, [r1, #6]
	adds r0, #0xe8
	strh r0, [r4, #0x2e]
	movs r2, #0x9c
	lsls r2, r2, #1
	adds r0, r2, #0
	ldrh r1, [r1, #8]
	adds r0, r0, r1
	strh r0, [r4, #0x32]
	ldr r0, _08095A64 @ =0x0000FFFC
	strh r0, [r4, #0x36]
	adds r1, r4, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	ldr r1, [r5, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095A5E:
	pop {r4, r5, pc}
	.align 2, 0
_08095A60: .4byte gRoomControls
_08095A64: .4byte 0x0000FFFC

	thumb_func_start sub_08095A68
sub_08095A68: @ 0x08095A68
	push {lr}
	sub sp, #4
	movs r0, #0
	str r0, [sp]
	movs r0, #6
	movs r1, #0x6a
	movs r2, #6
	movs r3, #0x16
	bl FindEntity
	adds r1, r0, #0
	cmp r1, #0
	beq _08095A86
	movs r0, #0xff
	strb r0, [r1, #0xc]
_08095A86:
	add sp, #4
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08095A8C
sub_08095A8C: @ 0x08095A8C
	push {r4, r5, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #5
	bhi _08095B44
	lsls r0, r0, #2
	ldr r1, _08095AA0 @ =_08095AA4
	adds r0, r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08095AA0: .4byte _08095AA4
_08095AA4: @ jump table
	.4byte _08095ABC @ case 0
	.4byte _08095ACC @ case 1
	.4byte _08095ADC @ case 2
	.4byte _08095AE6 @ case 3
	.4byte _08095B12 @ case 4
	.4byte _08095B1C @ case 5
_08095ABC:
	ldrb r0, [r4, #0xc]
	adds r0, #1
	movs r1, #0
	strb r0, [r4, #0xc]
	strb r1, [r4, #0x1e]
	adds r0, r4, #0
	bl sub_0807DD64
_08095ACC:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	b _08095B44
_08095ADC:
	ldrb r0, [r4, #0xc]
	adds r0, #1
	strb r0, [r4, #0xc]
	movs r0, #0x78
	strb r0, [r4, #0xe]
_08095AE6:
	ldrb r1, [r4, #0x18]
	lsls r0, r1, #0x1e
	lsrs r0, r0, #0x1e
	movs r5, #1
	eors r0, r5
	movs r3, #4
	rsbs r3, r3, #0
	adds r2, r3, #0
	ands r2, r1
	orrs r2, r0
	strb r2, [r4, #0x18]
	ldrb r0, [r4, #0xe]
	subs r0, #1
	strb r0, [r4, #0xe]
	lsls r0, r0, #0x18
	cmp r0, #0
	bne _08095B44
	movs r0, #1
	strb r5, [r4, #0xc]
	ands r2, r3
	orrs r2, r0
	b _08095B42
_08095B12:
	ldrb r0, [r4, #0xc]
	adds r0, #1
	strb r0, [r4, #0xc]
	movs r0, #0x78
	strb r0, [r4, #0xe]
_08095B1C:
	ldrb r1, [r4, #0x18]
	lsls r0, r1, #0x1e
	lsrs r0, r0, #0x1e
	movs r5, #1
	eors r0, r5
	movs r3, #4
	rsbs r3, r3, #0
	adds r2, r3, #0
	ands r2, r1
	orrs r2, r0
	strb r2, [r4, #0x18]
	ldrb r0, [r4, #0xe]
	subs r0, #1
	strb r0, [r4, #0xe]
	lsls r0, r0, #0x18
	cmp r0, #0
	bne _08095B44
	strb r5, [r4, #0xc]
	ands r2, r3
_08095B42:
	strb r2, [r4, #0x18]
_08095B44:
	pop {r4, r5, pc}
	.align 2, 0

	thumb_func_start sub_08095B48
sub_08095B48: @ 0x08095B48
	push {r4, r5, lr}
	adds r5, r0, #0
	ldrb r0, [r5, #0xc]
	cmp r0, #0
	bne _08095B78
	adds r0, #1
	strb r0, [r5, #0xc]
	adds r1, r5, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	adds r0, r5, #0
	bl UpdateSpriteForCollisionLayer
	ldr r1, _08095BA8 @ =gUnk_08114F30
	ldrb r2, [r5, #0x19]
	lsrs r0, r2, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r5, #0x19]
_08095B78:
	ldrb r0, [r5, #0x18]
	movs r4, #4
	rsbs r4, r4, #0
	adds r1, r4, #0
	ands r1, r0
	strb r1, [r5, #0x18]
	ldr r2, [r5, #0x50]
	cmp r2, #0
	beq _08095BCE
	adds r0, r2, #0
	adds r0, #0x5a
	ldrb r3, [r0]
	movs r0, #0x40
	ands r0, r3
	cmp r0, #0
	bne _08095BAC
	movs r0, #0x80
	ands r0, r3
	cmp r0, #0
	beq _08095BCE
	bl DeleteThisEntity
	b _08095BDC
	.align 2, 0
_08095BA8: .4byte gUnk_08114F30
_08095BAC:
	adds r0, r1, #0
	ands r0, r4
	movs r1, #1
	orrs r0, r1
	strb r0, [r5, #0x18]
	ldrh r0, [r2, #0x12]
	ldrb r1, [r2, #0x1e]
	bl GetSpriteSubEntryOffsetDataPointer
	ldrb r1, [r0]
	adds r2, r5, #0
	adds r2, #0x62
	strb r1, [r2]
	ldrb r0, [r0, #1]
	adds r1, r5, #0
	adds r1, #0x63
	strb r0, [r1]
_08095BCE:
	ldrb r4, [r5, #0xa]
	ldrb r0, [r5, #0xb]
	strb r0, [r5, #0xa]
	adds r0, r5, #0
	bl sub_08080CB4
	strb r4, [r5, #0xa]
_08095BDC:
	pop {r4, r5, pc}
	.align 2, 0

	thumb_func_start sub_08095BE0
sub_08095BE0: @ 0x08095BE0
	push {r4, lr}
	adds r4, r0, #0
	adds r2, r1, #0
	movs r0, #0x6a
	movs r1, #0x18
	bl CreateObject
	adds r1, r0, #0
	cmp r1, #0
	beq _08095BFC
	str r4, [r1, #0x50]
	adds r0, r4, #0
	bl CopyPosition
_08095BFC:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095C00
sub_08095C00: @ 0x08095C00
	push {lr}
	adds r2, r0, #0
	ldrb r1, [r2, #0xc]
	movs r0, #0x80
	ands r0, r1
	cmp r0, #0
	beq _08095C14
	bl DeleteThisEntity
	b _08095C46
_08095C14:
	ldr r3, [r2, #0x50]
	cmp r3, #0
	beq _08095C46
	adds r1, r2, #0
	adds r1, #0x60
	movs r0, #0xe8
	strh r0, [r1]
	ldrb r0, [r3, #0x18]
	lsls r0, r0, #0x1e
	lsrs r0, r0, #0x1e
	cmp r0, #1
	bne _08095C38
	ldrb r1, [r2, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	strb r0, [r2, #0x18]
	b _08095C46
_08095C38:
	ldrb r0, [r2, #0x18]
	movs r1, #4
	rsbs r1, r1, #0
	ands r1, r0
	movs r0, #1
	orrs r1, r0
	strb r1, [r2, #0x18]
_08095C46:
	pop {pc}

	thumb_func_start sub_08095C48
sub_08095C48: @ 0x08095C48
	push {r4, lr}
	adds r4, r0, #0
	movs r0, #0x6a
	movs r1, #0x19
	movs r2, #0
	bl CreateObject
	adds r1, r0, #0
	cmp r1, #0
	beq _08095C66
	str r1, [r4, #0x54]
	str r4, [r1, #0x50]
	adds r0, r4, #0
	bl CopyPosition
_08095C66:
	pop {r4, pc}

	thumb_func_start sub_08095C68
sub_08095C68: @ 0x08095C68
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095C80
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x1e]
	ldrh r2, [r4, #0x12]
	adds r0, r4, #0
	bl sub_080042D0
_08095C80:
	ldrb r0, [r4, #0xe]
	cmp r0, #0
	beq _08095CAA
	subs r0, #1
	strb r0, [r4, #0xe]
	lsls r0, r0, #0x18
	lsrs r0, r0, #0x18
	cmp r0, #7
	bhi _08095CA4
	ldrb r2, [r4, #0x18]
	lsls r1, r2, #0x1e
	lsrs r1, r1, #0x1e
	movs r0, #1
	eors r1, r0
	subs r0, #5
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x18]
_08095CA4:
	ldrb r0, [r4, #0xe]
	cmp r0, #0
	bne _08095CAE
_08095CAA:
	bl DeleteThisEntity
_08095CAE:
	pop {r4, pc}

	thumb_func_start sub_08095CB0
sub_08095CB0: @ 0x08095CB0
	push {r4, r5, lr}
	adds r5, r0, #0
	movs r0, #0x6a
	movs r1, #0x1b
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095CDC
	str r4, [r5, #0x54]
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	movs r0, #0x10
	strb r0, [r4, #0xe]
	ldrb r0, [r5, #0x1e]
	strb r0, [r4, #0x1e]
	ldrb r0, [r5, #0x1e]
	strb r0, [r4, #0x1f]
_08095CDC:
	pop {r4, r5, pc}
	.align 2, 0

	thumb_func_start sub_08095CE0
sub_08095CE0: @ 0x08095CE0
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095D06
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #6
	bl sub_0805E3A0
	adds r0, r4, #0
	bl sub_0807DD64
_08095D06:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl UpdateAnimationSingleFrame
	adds r0, r4, #0
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #0x81
	rsbs r0, r0, #0
	ands r1, r0
	adds r0, r4, #0
	bl sub_08095D30
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08095D30
sub_08095D30: @ 0x08095D30
	push {lr}
	adds r2, r0, #0
	adds r0, r1, #0
	cmp r0, #0
	beq _08095D4E
	ldr r1, _08095D50 @ =gUnk_08122B00
	lsls r0, r0, #1
	adds r0, r0, r1
	ldrh r1, [r0]
	movs r0, #0x81
	rsbs r0, r0, #0
	ands r1, r0
	adds r0, r2, #0
	bl sub_0801D2B4
_08095D4E:
	pop {pc}
	.align 2, 0
_08095D50: .4byte gUnk_08122B00

	thumb_func_start sub_08095D54
sub_08095D54: @ 0x08095D54
	push {r4, r5, lr}
	adds r5, r1, #0
	movs r0, #0x6a
	movs r1, #0x1c
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095D86
	ldr r0, _08095D88 @ =gPlayerEntity
	adds r1, r4, #0
	bl CopyPosition
	adds r1, r4, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	ldr r1, [r5, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095D86:
	pop {r4, r5, pc}
	.align 2, 0
_08095D88: .4byte gPlayerEntity

	thumb_func_start sub_08095D8C
sub_08095D8C: @ 0x08095D8C
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	adds r6, r1, #0
	movs r0, #0x6a
	movs r1, #0x1d
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095DB8
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r1, [r6, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095DB8:
	pop {r4, r5, r6, pc}
	.align 2, 0

	thumb_func_start sub_08095DBC
sub_08095DBC: @ 0x08095DBC
	push {r4, r5, lr}
	adds r4, r0, #0
	ldr r5, _08095DF0 @ =gActiveScriptInfo
	ldr r0, [r5]
	movs r1, #0x10
	ands r0, r1
	cmp r0, #0
	beq _08095DD0
	bl DeleteThisEntity
_08095DD0:
	ldrb r0, [r4, #0xb]
	cmp r0, #0
	bne _08095DF4
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095DE6
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
_08095DE6:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	b _08095E74
	.align 2, 0
_08095DF0: .4byte gActiveScriptInfo
_08095DF4:
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095E30
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	movs r1, #1
	orrs r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #0x4b
	bl InitializeAnimation
	ldr r1, _08095E78 @ =gUnk_08114F30
	ldrb r2, [r4, #0x19]
	lsrs r0, r2, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r4, #0
	adds r1, r4, #0
	bl ResolveEntityOnTop
_08095E30:
	ldrb r2, [r4, #0xb]
	movs r0, #0x80
	ands r0, r2
	cmp r0, #0
	bne _08095E56
	ldr r0, [r5]
	movs r1, #0x80
	lsls r1, r1, #0xa
	ands r0, r1
	cmp r0, #0
	beq _08095E56
	movs r0, #0xff
	strb r0, [r4, #0xb]
	movs r0, #0x80
	lsls r0, r0, #0xb
	str r0, [r4, #0x20]
	movs r0, #0xc0
	lsls r0, r0, #8
	strh r0, [r4, #0x24]
_08095E56:
	movs r0, #0x24
	ldrsh r1, [r4, r0]
	adds r0, r4, #0
	bl sub_08003FC4
	adds r0, r4, #0
	bl GetNextFrame
	adds r0, r4, #0
	bl sub_080040A8
	cmp r0, #0
	bne _08095E74
	bl DeleteThisEntity
_08095E74:
	pop {r4, r5, pc}
	.align 2, 0
_08095E78: .4byte gUnk_08114F30

	thumb_func_start sub_08095E7C
sub_08095E7C: @ 0x08095E7C
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	adds r6, r1, #0
	movs r0, #0x6a
	movs r1, #0x1e
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08095EA8
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r1, [r6, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08095EA8:
	pop {r4, r5, r6, pc}
	.align 2, 0

	thumb_func_start sub_08095EAC
sub_08095EAC: @ 0x08095EAC
	push {r4, r5, r6, r7, lr}
	mov r7, sl
	mov r6, sb
	mov r5, r8
	push {r5, r6, r7}
	mov sb, r0
	adds r4, r1, #0
	movs r0, #0x6a
	movs r1, #0x1e
	movs r2, #1
	bl CreateObject
	adds r5, r0, #0
	cmp r5, #0
	beq _08095F2A
	ldr r0, [r4, #4]
	cmp r0, #0
	bne _08095EE0
	movs r7, #0x10
	movs r6, #0x1f
	movs r0, #0x80
	lsls r0, r0, #7
	mov sl, r0
	movs r2, #0
	mov r8, r2
	b _08095F02
_08095EE0:
	movs r7, #8
	movs r6, #0xf
	movs r0, #0x80
	lsls r0, r0, #0xb
	mov sl, r0
	ldr r4, _08095F34 @ =gUnk_08122B0E
	bl Random
	movs r1, #7
	ands r1, r0
	lsls r1, r1, #1
	adds r1, r1, r4
	movs r0, #0
	ldrsh r2, [r1, r0]
	mov r8, r2
	movs r0, #0xff
	strb r0, [r5, #0xb]
_08095F02:
	bl Random
	adds r4, r0, #0
	ands r4, r6
	subs r4, r7, r4
	bl Random
	ands r6, r0
	subs r3, r7, r6
	lsls r4, r4, #0x10
	lsls r3, r3, #0x10
	mov r0, sb
	adds r1, r5, #0
	adds r2, r4, #0
	bl PositionRelative
	mov r2, sl
	str r2, [r5, #0x20]
	mov r0, r8
	strh r0, [r5, #0x24]
_08095F2A:
	pop {r3, r4, r5}
	mov r8, r3
	mov sb, r4
	mov sl, r5
	pop {r4, r5, r6, r7, pc}
	.align 2, 0
_08095F34: .4byte gUnk_08122B0E

	thumb_func_start sub_08095F38
sub_08095F38: @ 0x08095F38
	push {r4, r5, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _08095FC2
	movs r0, #1
	strb r0, [r4, #0xc]
	movs r0, #0xff
	strb r0, [r4, #0x1e]
	ldrb r0, [r4, #0xb]
	cmp r0, #4
	beq _08095F64
	cmp r0, #4
	bgt _08095F5A
	cmp r0, #3
	beq _08095F60
	b _08095F6A
_08095F5A:
	cmp r0, #6
	beq _08095F68
	b _08095F6A
_08095F60:
	movs r1, #0
	b _08095F6A
_08095F64:
	movs r1, #1
	b _08095F6A
_08095F68:
	movs r1, #4
_08095F6A:
	adds r0, r4, #0
	bl sub_0801D2B4
	ldr r0, _08095F90 @ =gPlayerEntity
	adds r0, #0x5a
	ldrb r1, [r0]
	movs r0, #1
	ands r0, r1
	cmp r0, #0
	bne _08095F98
	adds r1, r4, #0
	adds r1, #0x84
	ldr r0, _08095F94 @ =0x000008BF
	str r0, [r1]
	movs r0, #0x34
	strb r0, [r4, #0xe]
	movs r0, #0xb5
	b _08095FA6
	.align 2, 0
_08095F90: .4byte gPlayerEntity
_08095F94: .4byte 0x000008BF
_08095F98:
	adds r1, r4, #0
	adds r1, #0x84
	ldr r0, _08096020 @ =0x000008E3
	str r0, [r1]
	movs r0, #0x55
	strb r0, [r4, #0xe]
	movs r0, #0xd6
_08095FA6:
	strb r0, [r4, #0xf]
	ldr r0, _08096024 @ =gPlayerEntity
	adds r1, r4, #0
	bl CopyPosition
	adds r2, r4, #0
	adds r2, #0x29
	ldrb r1, [r2]
	movs r0, #8
	rsbs r0, r0, #0
	ands r0, r1
	movs r1, #3
	orrs r0, r1
	strb r0, [r2]
_08095FC2:
	ldr r5, _08096024 @ =gPlayerEntity
	adds r2, r5, #0
	adds r2, #0x5a
	ldrb r1, [r2]
	movs r0, #0x10
	ands r0, r1
	cmp r0, #0
	beq _08095FE0
	movs r0, #0xef
	ands r0, r1
	strb r0, [r2]
	movs r0, #0xea
	lsls r0, r0, #1
	bl SoundReq
_08095FE0:
	ldrh r0, [r5, #0x12]
	adds r1, r4, #0
	adds r1, #0x84
	ldr r2, [r1]
	lsrs r1, r2, #8
	cmp r0, r1
	bne _08095FFC
	adds r0, r5, #0
	adds r0, #0x58
	ldrb r1, [r0]
	lsls r0, r2, #0x18
	lsrs r0, r0, #0x18
	cmp r1, r0
	beq _08096000
_08095FFC:
	bl DeleteThisEntity
_08096000:
	ldr r0, _08096024 @ =gPlayerEntity
	ldrb r0, [r0, #0x1e]
	ldrb r1, [r4, #0xe]
	subs r0, r0, r1
	ldrb r1, [r4, #0xf]
	adds r0, r0, r1
	ldrb r1, [r4, #0x1e]
	cmp r0, r1
	beq _0809601E
	strb r0, [r4, #0x1e]
	ldrb r1, [r4, #0x1e]
	ldrh r2, [r4, #0x12]
	adds r0, r4, #0
	bl sub_080042D0
_0809601E:
	pop {r4, r5, pc}
	.align 2, 0
_08096020: .4byte 0x000008E3
_08096024: .4byte gPlayerEntity

	thumb_func_start sub_08096028
sub_08096028: @ 0x08096028
	push {r4, r5, lr}
	movs r4, #6
	movs r5, #0xc0
	lsls r5, r5, #2
	adds r0, r5, #0
	movs r1, #0x7b
	bl CheckLocalFlagByOffset
	cmp r0, #0
	bne _0809603E
	movs r4, #4
_0809603E:
	adds r0, r5, #0
	movs r1, #0x7a
	bl CheckLocalFlagByOffset
	cmp r0, #0
	bne _0809604C
	movs r4, #3
_0809604C:
	movs r0, #0x6a
	movs r1, #0x1f
	adds r2, r4, #0
	bl CreateObject
	pop {r4, r5, pc}

	thumb_func_start sub_08096058
sub_08096058: @ 0x08096058
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _0809606C
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
_0809606C:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_08096084
sub_08096084: @ 0x08096084
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _080960A0
	adds r0, #1
	strb r0, [r4, #0xc]
	adds r0, r4, #0
	bl sub_0807DD64
	ldrb r1, [r4, #0xb]
	adds r0, r4, #0
	bl InitializeAnimation
_080960A0:
	adds r0, r4, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r4, #0
	bl HandleEntity0x82Actions
	adds r0, r4, #0
	bl GetNextFrame
	ldr r0, [r4, #0x50]
	cmp r0, #0
	beq _080960C0
	adds r1, r4, #0
	bl CopyPosition
_080960C0:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_080960C4
sub_080960C4: @ 0x080960C4
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	adds r6, r1, #0
	movs r0, #0x6a
	movs r1, #0x23
	movs r2, #0x49
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _08096110
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r1, _08096160 @ =gUnk_08114F34
	ldrb r0, [r5, #0x19]
	lsrs r0, r0, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	ldrb r2, [r4, #0x19]
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r5, #0
	adds r1, r4, #0
	bl sub_0806FAD8
	ldr r1, [r6, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_08096110:
	movs r0, #0x6a
	movs r1, #0x24
	movs r2, #0x4a
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _0809615E
	str r5, [r4, #0x50]
	adds r0, r5, #0
	adds r1, r4, #0
	bl CopyPosition
	ldr r1, _08096164 @ =gUnk_08114F30
	ldrb r0, [r5, #0x19]
	lsrs r0, r0, #6
	adds r0, r0, r1
	ldrb r1, [r0]
	lsls r1, r1, #6
	ldrb r2, [r4, #0x19]
	movs r0, #0x3f
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, #0x19]
	adds r0, r5, #0
	adds r1, r4, #0
	bl ResolveEntityOnTop
	adds r1, r4, #0
	adds r1, #0x38
	movs r0, #2
	strb r0, [r1]
	ldr r1, [r6, #4]
	adds r0, r4, #0
	bl StartCutscene
	adds r1, r4, #0
	adds r1, #0x84
	str r0, [r1]
_0809615E:
	pop {r4, r5, r6, pc}
	.align 2, 0
_08096160: .4byte gUnk_08114F34
_08096164: .4byte gUnk_08114F30

	thumb_func_start sub_08096168
sub_08096168: @ 0x08096168
	push {r4, lr}
	adds r4, r0, #0
	ldrb r0, [r4, #0xc]
	cmp r0, #0
	bne _0809618C
	adds r0, #1
	strb r0, [r4, #0xc]
	ldrb r1, [r4, #0x18]
	movs r0, #4
	rsbs r0, r0, #0
	ands r0, r1
	movs r1, #1
	orrs r0, r1
	strb r0, [r4, #0x18]
	adds r0, r4, #0
	movs r1, #0x4b
	bl InitializeAnimation
_0809618C:
	adds r0, r4, #0
	bl GetNextFrame
	movs r0, #0x24
	ldrsh r1, [r4, r0]
	ldrb r2, [r4, #0x15]
	adds r0, r4, #0
	bl sub_0806F62C
	adds r0, r4, #0
	bl sub_080040A8
	cmp r0, #0
	bne _080961AC
	bl DeleteThisEntity
_080961AC:
	pop {r4, pc}
	.align 2, 0

	thumb_func_start sub_080961B0
sub_080961B0: @ 0x080961B0
	push {r4, r5, r6, r7, lr}
	adds r7, r0, #0
	movs r5, #0
	ldr r6, _080961F0 @ =gUnk_08122B1E
_080961B8:
	movs r0, #0x6a
	movs r1, #0x25
	movs r2, #0
	bl CreateObject
	adds r4, r0, #0
	cmp r4, #0
	beq _080961E6
	adds r0, r7, #0
	adds r1, r4, #0
	bl CopyPosition
	lsls r0, r5, #5
	strb r0, [r4, #0x15]
	bl Random
	movs r2, #0xf8
	lsls r2, r2, #1
	adds r1, r2, #0
	ands r0, r1
	ldrh r1, [r6]
	adds r0, r0, r1
	strh r0, [r4, #0x24]
_080961E6:
	adds r6, #2
	adds r5, #1
	cmp r5, #7
	ble _080961B8
	pop {r4, r5, r6, r7, pc}
	.align 2, 0
_080961F0: .4byte gUnk_08122B1E

	thumb_func_start sub_080961F4
sub_080961F4: @ 0x080961F4
	ldrb r2, [r0, #0x18]
	movs r1, #4
	rsbs r1, r1, #0
	ands r1, r2
	movs r2, #1
	orrs r1, r2
	strb r1, [r0, #0x18]
	movs r1, #0
	strb r1, [r0, #0x1e]
	bx lr

	thumb_func_start sub_08096208
sub_08096208: @ 0x08096208
	push {r4, r5, lr}
	adds r5, r0, #0
	lsls r1, r1, #1
	ldr r0, _08096238 @ =gUnk_08122B2E
	adds r4, r1, r0
	movs r0, #0x6a
	movs r1, #0x26
	movs r2, #0
	bl CreateObject
	adds r1, r0, #0
	cmp r1, #0
	beq _08096234
	movs r2, #0
	ldrsb r2, [r4, r2]
	lsls r2, r2, #0x10
	movs r3, #1
	ldrsb r3, [r4, r3]
	lsls r3, r3, #0x10
	adds r0, r5, #0
	bl PositionRelative
_08096234:
	pop {r4, r5, pc}
	.align 2, 0
_08096238: .4byte gUnk_08122B2E

	thumb_func_start sub_0809623C
sub_0809623C: @ 0x0809623C
	push {r4, lr}
	adds r4, r0, #0
	movs r0, #0x6a
	movs r1, #0x27
	movs r2, #0
	bl CreateObject
	adds r1, r0, #0
	cmp r1, #0
	beq _0809625A
	ldr r3, _0809625C @ =0xFFF00000
	adds r0, r4, #0
	movs r2, #0
	bl PositionRelative
_0809625A:
	pop {r4, pc}
	.align 2, 0
_0809625C: .4byte 0xFFF00000

	thumb_func_start sub_08096260
sub_08096260: @ 0x08096260
	push {r4, lr}
	adds r4, r0, #0
	movs r0, #0x6a
	movs r1, #0x28
	movs r2, #0
	bl CreateObject
	adds r1, r0, #0
	cmp r1, #0
	beq _0809627E
	ldr r3, _08096280 @ =0xFFF00000
	adds r0, r4, #0
	movs r2, #0
	bl PositionRelative
_0809627E:
	pop {r4, pc}
	.align 2, 0
_08096280: .4byte 0xFFF00000

	thumb_func_start sub_08096284
sub_08096284: @ 0x08096284
	push {lr}
	movs r1, #0xd
	bl sub_0809629C
	pop {pc}
	.align 2, 0

	thumb_func_start sub_08096290
sub_08096290: @ 0x08096290
	push {lr}
	movs r1, #0xe
	bl sub_0809629C
	pop {pc}
	.align 2, 0

	thumb_func_start sub_0809629C
sub_0809629C: @ 0x0809629C
	push {r4, r5, r6, lr}
	adds r5, r0, #0
	adds r6, r1, #0
	ldrb r0, [r5, #0xc]
	cmp r0, #0
	bne _080962B2
	movs r0, #1
	strb r0, [r5, #0xc]
	adds r0, r5, #0
	bl sub_0807DD64
_080962B2:
	adds r0, r5, #0
	movs r1, #0
	bl ExecuteScriptForEntity
	adds r0, r5, #0
	bl HandleEntity0x82Actions
	movs r1, #0x80
	lsls r1, r1, #5
	adds r0, r5, #0
	bl sub_08003FC4
	ldrb r4, [r5, #0xa]
	strb r6, [r5, #0xa]
	adds r0, r5, #0
	bl sub_08080CB4
	strb r4, [r5, #0xa]
	pop {r4, r5, r6, pc}

	thumb_func_start sub_080962D8
sub_080962D8: @ 0x080962D8
	push {lr}
	movs r1, #0x80
	lsls r1, r1, #1
	movs r0, #6
	bl DoFade
	pop {pc}
	.align 2, 0

	thumb_func_start sub_080962E8
sub_080962E8: @ 0x080962E8
	push {lr}
	movs r1, #0x80
	lsls r1, r1, #1
	movs r0, #7
	bl DoFade
	pop {pc}
	.align 2, 0

	thumb_func_start sub_080962F8
sub_080962F8: @ 0x080962F8
	push {r4, r5, lr}
	adds r5, r0, #0
	ldr r4, [r1, #4]
	lsls r4, r4, #4
	ldr r0, _08096318 @ =gUnk_08122B3C
	adds r4, r4, r0
	ldrb r2, [r4, #0xc]
	adds r3, r4, #0
	adds r3, #8
	adds r0, r5, #0
	movs r1, #1
	bl sub_08078850
	str r4, [r5, #0x48]
	pop {r4, r5, pc}
	.align 2, 0
_08096318: .4byte gUnk_08122B3C
