mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			5623 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			5623 lines
		
	
	
		
			94 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	.include "asm/macros.inc"
 | 
						|
 | 
						|
	.include "constants/constants.inc"
 | 
						|
 | 
						|
	.syntax unified
 | 
						|
 | 
						|
	.text
 | 
						|
 | 
						|
	thumb_func_start sub_08019444
 | 
						|
sub_08019444: @ 0x08019444
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	bl GetNextFrame
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0806F69C
 | 
						|
	movs r1, #0x80
 | 
						|
	lsls r1, r1, #6
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08003FC4
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019464
 | 
						|
	bl DeleteThisEntity
 | 
						|
_08019464:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_08019468
 | 
						|
sub_08019468: @ 0x08019468
 | 
						|
	push {lr}
 | 
						|
	adds r1, r0, #0
 | 
						|
	adds r0, #0x40
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xe
 | 
						|
	bne _0801947E
 | 
						|
	adds r0, r1, #0
 | 
						|
	movs r1, #0x50
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateFx
 | 
						|
_0801947E:
 | 
						|
	pop {pc}
 | 
						|
 | 
						|
	thumb_func_start SwordBeam
 | 
						|
SwordBeam: @ 0x08019480
 | 
						|
	push {lr}
 | 
						|
	ldr r2, _08019494 @ =gUnk_080B43F4
 | 
						|
	ldrb r1, [r0, #0xc]
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldr r1, [r1]
 | 
						|
	bl _call_via_r1
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019494: .4byte gUnk_080B43F4
 | 
						|
 | 
						|
	thumb_func_start sub_08019498
 | 
						|
sub_08019498: @ 0x08019498
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r4, _08019504 @ =gLinkEntity
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r1, r5, #0
 | 
						|
	bl CopyPosition
 | 
						|
	ldrb r0, [r5, #0xc]
 | 
						|
	adds r0, #1
 | 
						|
	movs r2, #0
 | 
						|
	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 r4, #0x3c
 | 
						|
	ldrb r0, [r4]
 | 
						|
	adds r0, #1
 | 
						|
	adds r1, r5, #0
 | 
						|
	adds r1, #0x3c
 | 
						|
	strb r0, [r1]
 | 
						|
	ldr r0, _08019508 @ =gUnk_080B4408
 | 
						|
	str r0, [r5, #0x48]
 | 
						|
	movs r0, #0xe0
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strh r0, [r5, #0x24]
 | 
						|
	movs r0, #2
 | 
						|
	str r0, [r5, #0x74]
 | 
						|
	str r2, [r5, #0x70]
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #2
 | 
						|
	bne _080194E6
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r5, #0xb]
 | 
						|
_080194E6:
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r5, #0x15]
 | 
						|
	movs r0, #0x3c
 | 
						|
	str r0, [r5, #0x6c]
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	adds r2, r0, #0
 | 
						|
	cmp r0, #2
 | 
						|
	beq _08019534
 | 
						|
	cmp r0, #2
 | 
						|
	bgt _0801950C
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019516
 | 
						|
	b _0801954E
 | 
						|
	.align 2, 0
 | 
						|
_08019504: .4byte gLinkEntity
 | 
						|
_08019508: .4byte gUnk_080B4408
 | 
						|
_0801950C:
 | 
						|
	cmp r0, #4
 | 
						|
	beq _0801952C
 | 
						|
	cmp r0, #6
 | 
						|
	beq _08019542
 | 
						|
	b _0801954E
 | 
						|
_08019516:
 | 
						|
	ldrh r0, [r5, #0x2e]
 | 
						|
	subs r0, #3
 | 
						|
	strh r0, [r5, #0x2e]
 | 
						|
	ldrh r0, [r5, #0x32]
 | 
						|
	subs r0, #8
 | 
						|
	strh r0, [r5, #0x32]
 | 
						|
	ldrb r0, [r5, #0x18]
 | 
						|
	movs r1, #0x80
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r5, #0x18]
 | 
						|
	b _0801954E
 | 
						|
_0801952C:
 | 
						|
	ldrh r0, [r5, #0x2e]
 | 
						|
	adds r0, #2
 | 
						|
	strh r0, [r5, #0x2e]
 | 
						|
	b _0801954E
 | 
						|
_08019534:
 | 
						|
	ldrb r0, [r5, #0x18]
 | 
						|
	movs r1, #0x40
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r5, #0x18]
 | 
						|
	ldrh r0, [r5, #0x2e]
 | 
						|
	adds r0, #1
 | 
						|
	b _08019546
 | 
						|
_08019542:
 | 
						|
	ldrh r0, [r5, #0x2e]
 | 
						|
	subs r0, #1
 | 
						|
_08019546:
 | 
						|
	strh r0, [r5, #0x2e]
 | 
						|
	ldrh r0, [r5, #0x32]
 | 
						|
	subs r0, #4
 | 
						|
	strh r0, [r5, #0x32]
 | 
						|
_0801954E:
 | 
						|
	ldr r1, _08019578 @ =gUnk_080B43FC
 | 
						|
	lsrs r0, r2, #1
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl InitializeAnimation
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801766C
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0806F69C
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_08019580
 | 
						|
	ldr r0, _0801957C @ =0x0000013F
 | 
						|
	bl PlaySFX
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019578: .4byte gUnk_080B43FC
 | 
						|
_0801957C: .4byte 0x0000013F
 | 
						|
 | 
						|
	thumb_func_start sub_08019580
 | 
						|
sub_08019580: @ 0x08019580
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r0, [r4, #0x6c]
 | 
						|
	subs r0, #1
 | 
						|
	str r0, [r4, #0x6c]
 | 
						|
	movs r1, #1
 | 
						|
	rsbs r1, r1, #0
 | 
						|
	cmp r0, r1
 | 
						|
	beq _08019638
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetNextFrame
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0806F69C
 | 
						|
	ldrb r0, [r4, #0xe]
 | 
						|
	adds r0, #1
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	ldrb r0, [r4, #0xb]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _080195B0
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0800451C
 | 
						|
_080195B0:
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	ldr r2, _0801962C @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r0, r3
 | 
						|
	movs r5, #0x32
 | 
						|
	ldrsh r1, [r4, r5]
 | 
						|
	ldrh r2, [r2, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	asrs r1, r1, #4
 | 
						|
	ands r1, r3
 | 
						|
	lsls r1, r1, #6
 | 
						|
	orrs r0, r1
 | 
						|
	ldr r1, _08019630 @ =gLinkEntity
 | 
						|
	adds r1, #0x38
 | 
						|
	ldrb r1, [r1]
 | 
						|
	movs r2, #0x80
 | 
						|
	bl sub_080002F0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019602
 | 
						|
	ldr r1, _08019634 @ =gUnk_08003E44
 | 
						|
	movs r0, #0x2e
 | 
						|
	ldrsh r2, [r4, r0]
 | 
						|
	movs r5, #0x32
 | 
						|
	ldrsh r3, [r4, r5]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_080040D8
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019602
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x19
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateFx
 | 
						|
	bl DeleteThisEntity
 | 
						|
_08019602:
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x41
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801961A
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x19
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateFx
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801961A:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0xc
 | 
						|
	bl sub_08008790
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801963C
 | 
						|
	bl DeleteThisEntity
 | 
						|
	b _0801963C
 | 
						|
	.align 2, 0
 | 
						|
_0801962C: .4byte gRoomControls
 | 
						|
_08019630: .4byte gLinkEntity
 | 
						|
_08019634: .4byte gUnk_08003E44
 | 
						|
_08019638:
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801963C:
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08019644
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_08019644
 | 
						|
sub_08019644: @ 0x08019644
 | 
						|
	push {lr}
 | 
						|
	adds r2, r0, #0
 | 
						|
	ldr r0, [r2, #0x74]
 | 
						|
	subs r1, r0, #1
 | 
						|
	str r1, [r2, #0x74]
 | 
						|
	cmp r1, #0
 | 
						|
	bne _08019674
 | 
						|
	movs r0, #2
 | 
						|
	str r0, [r2, #0x74]
 | 
						|
	ldr r0, [r2, #0x70]
 | 
						|
	adds r0, #1
 | 
						|
	str r0, [r2, #0x70]
 | 
						|
	ldr r3, _08019678 @ =gUnk_080B4400
 | 
						|
	adds r0, r0, r3
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xff
 | 
						|
	bne _08019668
 | 
						|
	str r1, [r2, #0x70]
 | 
						|
_08019668:
 | 
						|
	ldr r0, [r2, #0x70]
 | 
						|
	adds r0, r0, r3
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r2, #0
 | 
						|
	bl sub_0801D2B4
 | 
						|
_08019674:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019678: .4byte gUnk_080B4400
 | 
						|
 | 
						|
	thumb_func_start sub_0801967C
 | 
						|
sub_0801967C: @ 0x0801967C
 | 
						|
	push {lr}
 | 
						|
	ldr r1, _08019690 @ =gUnk_080B4458
 | 
						|
	ldr r0, _08019694 @ =gMenu
 | 
						|
	ldrb r0, [r0, #6]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	bl _call_via_r0
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019690: .4byte gUnk_080B4458
 | 
						|
_08019694: .4byte gMenu
 | 
						|
 | 
						|
	thumb_func_start sub_08019698
 | 
						|
sub_08019698: @ 0x08019698
 | 
						|
	push {r4, r5, lr}
 | 
						|
	ldr r0, _08019724 @ =gUnk_02032EC0
 | 
						|
	ldrb r1, [r0, #3]
 | 
						|
	lsls r0, r1, #3
 | 
						|
	subs r0, r0, r1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _08019728 @ =gUnk_080B4410
 | 
						|
	adds r4, r0, r1
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldrh r1, [r4, #4]
 | 
						|
	bl SetLocalFlagByOffset
 | 
						|
	ldrh r0, [r4]
 | 
						|
	ldrh r1, [r4, #2]
 | 
						|
	bl sub_08052FD8
 | 
						|
	ldr r5, _0801972C @ =gRoomControls
 | 
						|
	ldrh r0, [r4, #6]
 | 
						|
	ldrh r1, [r5, #0xa]
 | 
						|
	adds r0, r0, r1
 | 
						|
	strh r0, [r5, #0xa]
 | 
						|
	ldrh r0, [r4, #8]
 | 
						|
	ldrh r2, [r5, #0xc]
 | 
						|
	adds r0, r0, r2
 | 
						|
	strh r0, [r5, #0xc]
 | 
						|
	ldr r1, _08019730 @ =gUnk_02000070
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r1]
 | 
						|
	bl sub_08000108
 | 
						|
	ldr r2, _08019734 @ =gScreen
 | 
						|
	ldrh r1, [r2]
 | 
						|
	ldr r0, _08019738 @ =0x0000FEFF
 | 
						|
	ands r0, r1
 | 
						|
	strh r0, [r2]
 | 
						|
	movs r0, #0x2c
 | 
						|
	movs r1, #0
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateObject
 | 
						|
	adds r1, r0, #0
 | 
						|
	cmp r1, #0
 | 
						|
	beq _08019700
 | 
						|
	ldrh r0, [r4, #0xa]
 | 
						|
	ldrh r2, [r5, #0xa]
 | 
						|
	adds r0, r0, r2
 | 
						|
	strh r0, [r1, #0x2e]
 | 
						|
	ldrh r0, [r4, #0xc]
 | 
						|
	ldrh r5, [r5, #0xc]
 | 
						|
	adds r0, r0, r5
 | 
						|
	strh r0, [r1, #0x32]
 | 
						|
_08019700:
 | 
						|
	movs r0, #0x11
 | 
						|
	bl sub_0801D7EC
 | 
						|
	bl sub_080AD90C
 | 
						|
	bl sub_080AD9B0
 | 
						|
	bl sub_080AD918
 | 
						|
	movs r0, #4
 | 
						|
	movs r1, #8
 | 
						|
	bl DoFade
 | 
						|
	ldr r1, _0801973C @ =gUnk_02018EB0
 | 
						|
	ldrb r0, [r1]
 | 
						|
	adds r0, #1
 | 
						|
	strb r0, [r1]
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019724: .4byte gUnk_02032EC0
 | 
						|
_08019728: .4byte gUnk_080B4410
 | 
						|
_0801972C: .4byte gRoomControls
 | 
						|
_08019730: .4byte gUnk_02000070
 | 
						|
_08019734: .4byte gScreen
 | 
						|
_08019738: .4byte 0x0000FEFF
 | 
						|
_0801973C: .4byte gUnk_02018EB0
 | 
						|
 | 
						|
	thumb_func_start sub_08019740
 | 
						|
sub_08019740: @ 0x08019740
 | 
						|
	push {lr}
 | 
						|
	ldr r0, _0801975C @ =gUnk_03000FD0
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019758
 | 
						|
	ldr r0, _08019760 @ =gUnk_02018EB0
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r1, #1
 | 
						|
	strb r1, [r0]
 | 
						|
	movs r1, #0xc3
 | 
						|
	lsls r1, r1, #1
 | 
						|
	strh r1, [r0, #4]
 | 
						|
_08019758:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801975C: .4byte gUnk_03000FD0
 | 
						|
_08019760: .4byte gUnk_02018EB0
 | 
						|
 | 
						|
	thumb_func_start sub_08019764
 | 
						|
sub_08019764: @ 0x08019764
 | 
						|
	push {lr}
 | 
						|
	bl sub_080AD90C
 | 
						|
	bl sub_0805E5C0
 | 
						|
	bl sub_080AD9B0
 | 
						|
	bl sub_080AD918
 | 
						|
	ldr r2, _08019798 @ =gUnk_02018EB0
 | 
						|
	ldrh r0, [r2, #4]
 | 
						|
	subs r0, #1
 | 
						|
	strh r0, [r2, #4]
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019790
 | 
						|
	ldr r0, _0801979C @ =gUnk_03000FF0
 | 
						|
	ldrh r1, [r0, #2]
 | 
						|
	movs r0, #0xa
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019796
 | 
						|
_08019790:
 | 
						|
	ldrb r0, [r2]
 | 
						|
	adds r0, #1
 | 
						|
	strb r0, [r2]
 | 
						|
_08019796:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_08019798: .4byte gUnk_02018EB0
 | 
						|
_0801979C: .4byte gUnk_03000FF0
 | 
						|
 | 
						|
	thumb_func_start sub_080197A0
 | 
						|
sub_080197A0: @ 0x080197A0
 | 
						|
	push {lr}
 | 
						|
	movs r0, #2
 | 
						|
	movs r1, #0xb
 | 
						|
	bl MenuFadeIn
 | 
						|
	pop {pc}
 | 
						|
 | 
						|
	thumb_func_start sub_080197AC
 | 
						|
sub_080197AC: @ 0x080197AC
 | 
						|
	ldr r0, _080197C4 @ =gUnk_02025EB0
 | 
						|
	ldr r1, _080197C8 @ =gBGAffSettings
 | 
						|
	str r1, [r0]
 | 
						|
	ldr r2, _080197CC @ =gUnk_080B77C0
 | 
						|
	ldrh r0, [r2]
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r0, _080197D0 @ =gUnk_0200B650
 | 
						|
	subs r1, #0xc
 | 
						|
	str r1, [r0]
 | 
						|
	ldrh r0, [r2, #2]
 | 
						|
	strh r0, [r1]
 | 
						|
	bx lr
 | 
						|
	.align 2, 0
 | 
						|
_080197C4: .4byte gUnk_02025EB0
 | 
						|
_080197C8: .4byte gBGAffSettings
 | 
						|
_080197CC: .4byte gUnk_080B77C0
 | 
						|
_080197D0: .4byte gUnk_0200B650
 | 
						|
 | 
						|
	thumb_func_start sub_080197D4
 | 
						|
sub_080197D4: @ 0x080197D4
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	movs r5, #0x80
 | 
						|
	lsls r5, r5, #0x18
 | 
						|
_080197DC:
 | 
						|
	ldr r3, [r4, #4]
 | 
						|
	cmp r3, #0
 | 
						|
	beq _08019824
 | 
						|
	ldr r1, [r4]
 | 
						|
	ldr r0, _08019808 @ =0x7FFFFFFF
 | 
						|
	ands r1, r0
 | 
						|
	ldr r0, _0801980C @ =gUnk_08324AE4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldr r2, [r4, #8]
 | 
						|
	adds r0, r2, #0
 | 
						|
	ands r0, r5
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801981A
 | 
						|
	lsrs r0, r3, #0x18
 | 
						|
	cmp r0, #6
 | 
						|
	bne _08019810
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r1, r3, #0
 | 
						|
	bl LZ77UnCompVram
 | 
						|
	b _0801982E
 | 
						|
	.align 2, 0
 | 
						|
_08019808: .4byte 0x7FFFFFFF
 | 
						|
_0801980C: .4byte gUnk_08324AE4
 | 
						|
_08019810:
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r1, r3, #0
 | 
						|
	bl LZ77UnCompWram
 | 
						|
	b _0801982E
 | 
						|
_0801981A:
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r1, r3, #0
 | 
						|
	bl sub_0801D66C
 | 
						|
	b _0801982E
 | 
						|
_08019824:
 | 
						|
	ldrh r0, [r4]
 | 
						|
	bl LoadPalettesByPaletteGroupIndex
 | 
						|
	bl sub_080533CC
 | 
						|
_0801982E:
 | 
						|
	adds r4, #0xc
 | 
						|
	adds r0, r4, #0
 | 
						|
	subs r0, #0xc
 | 
						|
	ldr r0, [r0]
 | 
						|
	ands r0, r5
 | 
						|
	cmp r0, #0
 | 
						|
	bne _080197DC
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_08019840
 | 
						|
sub_08019840: @ 0x08019840
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sb
 | 
						|
	mov r6, r8
 | 
						|
	push {r6, r7}
 | 
						|
	ldr r0, _0801985C @ =gLinkState
 | 
						|
	adds r2, r0, #0
 | 
						|
	adds r2, #0xa8
 | 
						|
	ldrb r1, [r2]
 | 
						|
	adds r7, r0, #0
 | 
						|
	cmp r1, #0
 | 
						|
	bne _08019860
 | 
						|
	adds r0, #0xa9
 | 
						|
	ldrb r0, [r0]
 | 
						|
	b _08019862
 | 
						|
	.align 2, 0
 | 
						|
_0801985C: .4byte gLinkState
 | 
						|
_08019860:
 | 
						|
	ldrb r0, [r2]
 | 
						|
_08019862:
 | 
						|
	cmp r0, #0x12
 | 
						|
	bne _0801986A
 | 
						|
	bl _0801A2A4
 | 
						|
_0801986A:
 | 
						|
	cmp r0, #0x12
 | 
						|
	bgt _08019878
 | 
						|
	cmp r0, #3
 | 
						|
	bne _08019876
 | 
						|
	bl _0801A2A4
 | 
						|
_08019876:
 | 
						|
	b _08019880
 | 
						|
_08019878:
 | 
						|
	cmp r0, #0x16
 | 
						|
	bne _08019880
 | 
						|
	bl _0801A2A4
 | 
						|
_08019880:
 | 
						|
	ldrb r0, [r7, #0x1e]
 | 
						|
	ldr r1, _08019898 @ =gLinkEntity
 | 
						|
	mov sb, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019890
 | 
						|
	ldrb r0, [r1, #0xc]
 | 
						|
	cmp r0, #0x1d
 | 
						|
	bne _0801989C
 | 
						|
_08019890:
 | 
						|
	mov r2, sb
 | 
						|
	ldrb r4, [r2, #0x15]
 | 
						|
	b _0801989E
 | 
						|
	.align 2, 0
 | 
						|
_08019898: .4byte gLinkEntity
 | 
						|
_0801989C:
 | 
						|
	ldrb r4, [r7, #0xd]
 | 
						|
_0801989E:
 | 
						|
	movs r0, #0x83
 | 
						|
	ands r0, r4
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801997C
 | 
						|
	ldrb r0, [r7, #0xa]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801997C
 | 
						|
	lsrs r1, r4, #2
 | 
						|
	mov r0, sb
 | 
						|
	bl sub_0807BDB8
 | 
						|
	adds r4, r0, #0
 | 
						|
	cmp r4, #0xff
 | 
						|
	beq _0801997C
 | 
						|
	ldr r5, _08019960 @ =gRoomControls
 | 
						|
	ldrb r1, [r5, #0xf]
 | 
						|
	movs r0, #4
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801997C
 | 
						|
	lsls r1, r4, #2
 | 
						|
	ldr r0, _08019964 @ =gUnk_080B4490
 | 
						|
	adds r6, r1, r0
 | 
						|
	mov r3, sb
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r3, r1]
 | 
						|
	movs r2, #0
 | 
						|
	ldrsh r1, [r6, r2]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrh r1, [r5, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r0, r3
 | 
						|
	mov r1, sb
 | 
						|
	movs r2, #0x32
 | 
						|
	ldrsh r1, [r1, r2]
 | 
						|
	mov r8, r1
 | 
						|
	movs r1, #2
 | 
						|
	ldrsh r6, [r6, r1]
 | 
						|
	mov r2, r8
 | 
						|
	adds r1, r2, r6
 | 
						|
	ldrh r2, [r5, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	asrs r1, r1, #4
 | 
						|
	ands r1, r3
 | 
						|
	lsls r1, r1, #6
 | 
						|
	orrs r0, r1
 | 
						|
	mov r1, sb
 | 
						|
	adds r1, #0x38
 | 
						|
	ldrb r1, [r1]
 | 
						|
	bl sub_080002E0
 | 
						|
	cmp r0, #0xff
 | 
						|
	bne _0801997C
 | 
						|
	ldr r0, [r7, #0x30]
 | 
						|
	ldr r1, _08019968 @ =0x00010002
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801995A
 | 
						|
	ldrb r1, [r7, #0x1b]
 | 
						|
	movs r0, #0x10
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801995A
 | 
						|
	mov r3, sb
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r3, r1]
 | 
						|
	ldrh r1, [r5, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	movs r2, #0x32
 | 
						|
	ldrsh r1, [r3, r2]
 | 
						|
	ldrh r2, [r5, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	adds r2, r4, #0
 | 
						|
	movs r3, #5
 | 
						|
	bl sub_080806BC
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801996C
 | 
						|
	ldrb r0, [r7, #5]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801995A
 | 
						|
	ldrb r1, [r7, #0x1c]
 | 
						|
	movs r0, #0xf
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801995A
 | 
						|
	mov r0, sb
 | 
						|
	adds r1, r4, #0
 | 
						|
	bl sub_0807BD14
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801996C
 | 
						|
_0801995A:
 | 
						|
	movs r0, #3
 | 
						|
	bl _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019960: .4byte gRoomControls
 | 
						|
_08019964: .4byte gUnk_080B4490
 | 
						|
_08019968: .4byte 0x00010002
 | 
						|
_0801996C:
 | 
						|
	ldr r1, _08019978 @ =gLinkEntity
 | 
						|
	lsls r0, r4, #3
 | 
						|
	strb r0, [r1, #0x15]
 | 
						|
	movs r0, #0xf
 | 
						|
	bl _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019978: .4byte gLinkEntity
 | 
						|
_0801997C:
 | 
						|
	ldr r4, _080199DC @ =gLinkEntity
 | 
						|
	adds r5, r4, #0
 | 
						|
	adds r5, #0x38
 | 
						|
	ldrb r0, [r5]
 | 
						|
	bl GetLayerByIndex
 | 
						|
	mov r8, r0
 | 
						|
	ldrb r1, [r4, #0x14]
 | 
						|
	movs r0, #6
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _080199E0 @ =gUnk_080B4468
 | 
						|
	adds r6, r0, r1
 | 
						|
	movs r3, #0x2e
 | 
						|
	ldrsh r0, [r4, r3]
 | 
						|
	movs r2, #0
 | 
						|
	ldrsh r1, [r6, r2]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r3, _080199E4 @ =gRoomControls
 | 
						|
	ldrh r1, [r3, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r7, r0, #4
 | 
						|
	movs r2, #0x3f
 | 
						|
	ands r7, r2
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	movs r4, #2
 | 
						|
	ldrsh r1, [r6, r4]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrh r1, [r3, #8]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r2
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r7, r0
 | 
						|
	ldrb r1, [r5]
 | 
						|
	adds r0, r7, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r6, r0, #0
 | 
						|
	ldr r0, _080199E8 @ =0x00003FFF
 | 
						|
	cmp r6, r0
 | 
						|
	bhi _080199EC
 | 
						|
	adds r0, r6, #0
 | 
						|
	bl sub_080002E4
 | 
						|
	adds r4, r0, #0
 | 
						|
	b _080199EE
 | 
						|
	.align 2, 0
 | 
						|
_080199DC: .4byte gLinkEntity
 | 
						|
_080199E0: .4byte gUnk_080B4468
 | 
						|
_080199E4: .4byte gRoomControls
 | 
						|
_080199E8: .4byte 0x00003FFF
 | 
						|
_080199EC:
 | 
						|
	adds r4, r6, #0
 | 
						|
_080199EE:
 | 
						|
	ldr r5, _08019A28 @ =gLinkEntity
 | 
						|
	ldrb r1, [r5, #0x14]
 | 
						|
	adds r3, r1, #0
 | 
						|
	ldr r0, _08019A2C @ =0x00004036
 | 
						|
	mov sb, r5
 | 
						|
	cmp r4, r0
 | 
						|
	bne _080199FE
 | 
						|
	b _08019F0C
 | 
						|
_080199FE:
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019AE0
 | 
						|
	cmp r4, #0x71
 | 
						|
	bne _08019A08
 | 
						|
	b _08019D94
 | 
						|
_08019A08:
 | 
						|
	cmp r4, #0x71
 | 
						|
	bhi _08019A4E
 | 
						|
	cmp r4, #0x3a
 | 
						|
	bne _08019A12
 | 
						|
	b _08019CFC
 | 
						|
_08019A12:
 | 
						|
	cmp r4, #0x3a
 | 
						|
	bhi _08019A30
 | 
						|
	cmp r4, #0x1a
 | 
						|
	bne _08019A1C
 | 
						|
	b _08019D48
 | 
						|
_08019A1C:
 | 
						|
	cmp r4, #0x28
 | 
						|
	bne _08019A22
 | 
						|
	b _08019BB8
 | 
						|
_08019A22:
 | 
						|
	bl _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019A28: .4byte gLinkEntity
 | 
						|
_08019A2C: .4byte 0x00004036
 | 
						|
_08019A30:
 | 
						|
	cmp r4, #0x5b
 | 
						|
	bne _08019A36
 | 
						|
	b _08019CFC
 | 
						|
_08019A36:
 | 
						|
	cmp r4, #0x5b
 | 
						|
	bhi _08019A44
 | 
						|
	cmp r4, #0x3d
 | 
						|
	bne _08019A40
 | 
						|
	b _08019DD4
 | 
						|
_08019A40:
 | 
						|
	bl _0801A2A4
 | 
						|
_08019A44:
 | 
						|
	cmp r4, #0x70
 | 
						|
	bne _08019A4A
 | 
						|
	b _08019CC0
 | 
						|
_08019A4A:
 | 
						|
	bl _0801A2A4
 | 
						|
_08019A4E:
 | 
						|
	ldr r0, _08019A6C @ =0x0000400B
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019A56
 | 
						|
	b _08019E44
 | 
						|
_08019A56:
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019A70
 | 
						|
	cmp r4, #0x72
 | 
						|
	bne _08019A60
 | 
						|
	b _08019FA8
 | 
						|
_08019A60:
 | 
						|
	subs r0, #0xb
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019A68
 | 
						|
	b _08019B78
 | 
						|
_08019A68:
 | 
						|
	bl _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019A6C: .4byte 0x0000400B
 | 
						|
_08019A70:
 | 
						|
	ldr r0, _08019AD4 @ =0x0000401B
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019A78
 | 
						|
	b _08019C70
 | 
						|
_08019A78:
 | 
						|
	cmp r4, r0
 | 
						|
	bhs _08019A80
 | 
						|
	bl _0801A2A4
 | 
						|
_08019A80:
 | 
						|
	adds r0, #0x12
 | 
						|
	cmp r4, r0
 | 
						|
	bls _08019A8A
 | 
						|
	bl _0801A2A4
 | 
						|
_08019A8A:
 | 
						|
	subs r0, #2
 | 
						|
	cmp r4, r0
 | 
						|
	bhs _08019A94
 | 
						|
	bl _0801A2A4
 | 
						|
_08019A94:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl sub_0801A370
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019AA4
 | 
						|
	bl _0801A2A4
 | 
						|
_08019AA4:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r2, r8
 | 
						|
	adds r2, #4
 | 
						|
	adds r2, r2, r0
 | 
						|
	ldrb r1, [r5, #0x14]
 | 
						|
	movs r0, #4
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r0, r0, #0x1a
 | 
						|
	ldr r3, _08019AD8 @ =0x00004030
 | 
						|
	adds r1, r3, #0
 | 
						|
	adds r0, r0, r1
 | 
						|
	strh r0, [r2]
 | 
						|
	ldr r2, _08019ADC @ =gLinkState
 | 
						|
	ldr r1, [r2, #0x30]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r1, r0
 | 
						|
	adds r7, r2, #0
 | 
						|
	mov sb, r5
 | 
						|
	cmp r1, #0
 | 
						|
	bne _08019AD0
 | 
						|
	b _0801A09A
 | 
						|
_08019AD0:
 | 
						|
	b _0801A094
 | 
						|
	.align 2, 0
 | 
						|
_08019AD4: .4byte 0x0000401B
 | 
						|
_08019AD8: .4byte 0x00004030
 | 
						|
_08019ADC: .4byte gLinkState
 | 
						|
_08019AE0:
 | 
						|
	ldr r0, _08019B04 @ =0x00004053
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019AE8
 | 
						|
	b _0801A13C
 | 
						|
_08019AE8:
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019B24
 | 
						|
	subs r0, #0xb
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019B08
 | 
						|
	subs r0, #8
 | 
						|
	cmp r4, r0
 | 
						|
	blo _08019AFA
 | 
						|
	b _08019DD4
 | 
						|
_08019AFA:
 | 
						|
	subs r0, #2
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B02
 | 
						|
	b _08019F50
 | 
						|
_08019B02:
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019B04: .4byte 0x00004053
 | 
						|
_08019B08:
 | 
						|
	ldr r0, _08019B20 @ =0x00004051
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B10
 | 
						|
	b _08019CFC
 | 
						|
_08019B10:
 | 
						|
	cmp r4, r0
 | 
						|
	bls _08019B16
 | 
						|
	b _0801A120
 | 
						|
_08019B16:
 | 
						|
	subs r0, #7
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B1E
 | 
						|
	b _0801A0BC
 | 
						|
_08019B1E:
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019B20: .4byte 0x00004051
 | 
						|
_08019B24:
 | 
						|
	ldr r0, _08019B48 @ =0x00004058
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B2C
 | 
						|
	b _0801A19A
 | 
						|
_08019B2C:
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019B4C
 | 
						|
	subs r0, #2
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B38
 | 
						|
	b _0801A15A
 | 
						|
_08019B38:
 | 
						|
	cmp r4, r0
 | 
						|
	bls _08019B3E
 | 
						|
	b _0801A198
 | 
						|
_08019B3E:
 | 
						|
	subs r0, #1
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B46
 | 
						|
	b _0801A158
 | 
						|
_08019B46:
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019B48: .4byte 0x00004058
 | 
						|
_08019B4C:
 | 
						|
	ldr r0, _08019B64 @ =0x0000405F
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B54
 | 
						|
	b _0801A1D4
 | 
						|
_08019B54:
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _08019B68
 | 
						|
	subs r0, #5
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B60
 | 
						|
	b _08019EC8
 | 
						|
_08019B60:
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019B64: .4byte 0x0000405F
 | 
						|
_08019B68:
 | 
						|
	ldr r0, _08019B74 @ =0x0000407D
 | 
						|
	cmp r4, r0
 | 
						|
	bne _08019B70
 | 
						|
	b _0801A23C
 | 
						|
_08019B70:
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_08019B74: .4byte 0x0000407D
 | 
						|
_08019B78:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #2
 | 
						|
	bl sub_0801A458
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019B88
 | 
						|
	b _0801A2A4
 | 
						|
_08019B88:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r1, r8
 | 
						|
	adds r1, #4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r4, _08019BB0 @ =0x00004001
 | 
						|
	adds r0, r0, r4
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r2, _08019BB4 @ =gLinkState
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	adds r7, r2, #0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019BAA
 | 
						|
	b _0801A0F8
 | 
						|
_08019BAA:
 | 
						|
	movs r0, #0xc0
 | 
						|
	b _0801A0FA
 | 
						|
	.align 2, 0
 | 
						|
_08019BB0: .4byte 0x00004001
 | 
						|
_08019BB4: .4byte gLinkState
 | 
						|
_08019BB8:
 | 
						|
	ldr r1, _08019C50 @ =gLinkState
 | 
						|
	ldr r0, [r1, #0x30]
 | 
						|
	movs r2, #0x80
 | 
						|
	ands r0, r2
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019BC6
 | 
						|
	b _0801A2A4
 | 
						|
_08019BC6:
 | 
						|
	ldrb r0, [r1, #0xa]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019BCE
 | 
						|
	b _0801A2A4
 | 
						|
_08019BCE:
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldrb r1, [r1, #0xd]
 | 
						|
	cmp r0, r1
 | 
						|
	beq _08019BDA
 | 
						|
	b _0801A2A4
 | 
						|
_08019BDA:
 | 
						|
	ldrb r1, [r5, #0x15]
 | 
						|
	adds r0, r2, #0
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019BE6
 | 
						|
	b _0801A2A4
 | 
						|
_08019BE6:
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r7, #0
 | 
						|
	bl sub_080002E0
 | 
						|
	cmp r0, #0xf
 | 
						|
	beq _08019BF8
 | 
						|
	b _0801A2A4
 | 
						|
_08019BF8:
 | 
						|
	bl sub_08079778
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019C02
 | 
						|
	b _0801A2A4
 | 
						|
_08019C02:
 | 
						|
	ldrb r1, [r5, #0x14]
 | 
						|
	movs r0, #6
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _08019C54 @ =gUnk_080B4478
 | 
						|
	adds r6, r0, r1
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r5, r1]
 | 
						|
	ldr r4, _08019C58 @ =gRoomControls
 | 
						|
	ldrh r1, [r4, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	movs r2, #0
 | 
						|
	ldrsh r1, [r6, r2]
 | 
						|
	adds r0, r0, r1
 | 
						|
	movs r3, #0x32
 | 
						|
	ldrsh r1, [r5, r3]
 | 
						|
	ldrh r2, [r4, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	movs r3, #2
 | 
						|
	ldrsh r2, [r6, r3]
 | 
						|
	adds r1, r1, r2
 | 
						|
	bl sub_08080734
 | 
						|
	adds r2, r0, #0
 | 
						|
	cmp r2, #0
 | 
						|
	bne _08019C38
 | 
						|
	b _0801A2A4
 | 
						|
_08019C38:
 | 
						|
	ldrb r1, [r5, #0x14]
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019C5C
 | 
						|
	ldrh r0, [r2, #4]
 | 
						|
	ldrh r4, [r4, #8]
 | 
						|
	adds r0, r0, r4
 | 
						|
	adds r0, #6
 | 
						|
	strh r0, [r5, #0x32]
 | 
						|
	b _08019C64
 | 
						|
	.align 2, 0
 | 
						|
_08019C50: .4byte gLinkState
 | 
						|
_08019C54: .4byte gUnk_080B4478
 | 
						|
_08019C58: .4byte gRoomControls
 | 
						|
_08019C5C:
 | 
						|
	ldrh r0, [r2, #2]
 | 
						|
	ldrh r4, [r4, #6]
 | 
						|
	adds r0, r0, r4
 | 
						|
	strh r0, [r5, #0x2e]
 | 
						|
_08019C64:
 | 
						|
	movs r0, #4
 | 
						|
	movs r1, #0
 | 
						|
	movs r2, #1
 | 
						|
	bl sub_08078AC0
 | 
						|
	b _0801A2A4
 | 
						|
_08019C70:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #0xb
 | 
						|
	bl sub_0801A2B0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019C80
 | 
						|
	b _0801A2A4
 | 
						|
_08019C80:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r1, r8
 | 
						|
	adds r1, #4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r4, _08019CB8 @ =0x0000401C
 | 
						|
	adds r0, r0, r4
 | 
						|
	movs r3, #0
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r1, _08019CBC @ =gLinkState
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r1, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r1, #0xc]
 | 
						|
	ldr r0, [r1, #0x30]
 | 
						|
	movs r2, #1
 | 
						|
	orrs r0, r2
 | 
						|
	str r0, [r1, #0x30]
 | 
						|
	strh r3, [r5, #0x2c]
 | 
						|
	strh r3, [r5, #0x30]
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r5, #0x15]
 | 
						|
	strb r2, [r5, #0xa]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019CB8: .4byte 0x0000401C
 | 
						|
_08019CBC: .4byte gLinkState
 | 
						|
_08019CC0:
 | 
						|
	ldr r0, _08019CF8 @ =gLinkState
 | 
						|
	adds r2, r0, #0
 | 
						|
	adds r2, #0x35
 | 
						|
	ldrb r1, [r2]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019CD2
 | 
						|
	b _0801A2A4
 | 
						|
_08019CD2:
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019CE2
 | 
						|
	b _0801A2A4
 | 
						|
_08019CE2:
 | 
						|
	ldrb r0, [r2]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	adds r1, r6, #0
 | 
						|
	adds r2, r7, #0
 | 
						|
	bl sub_0801A9F0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019CF4
 | 
						|
	b _0801A2A4
 | 
						|
_08019CF4:
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019CF8: .4byte gLinkState
 | 
						|
_08019CFC:
 | 
						|
	ldr r2, _08019D40 @ =gLinkState
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019D0A
 | 
						|
	b _0801A2A4
 | 
						|
_08019D0A:
 | 
						|
	mov r1, sb
 | 
						|
	ldrb r0, [r1, #0x14]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019D14
 | 
						|
	b _0801A2A4
 | 
						|
_08019D14:
 | 
						|
	ldr r0, _08019D44 @ =gUnk_0200AF00
 | 
						|
	adds r0, #0x2d
 | 
						|
	movs r1, #4
 | 
						|
	strb r1, [r0]
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x92
 | 
						|
	ldrh r1, [r0]
 | 
						|
	movs r0, #0xc0
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019D2C
 | 
						|
	b _0801A2A4
 | 
						|
_08019D2C:
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r2, #0x1a]
 | 
						|
	mov r0, sb
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r7, #0
 | 
						|
	bl sub_080A7CFC
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019D40: .4byte gLinkState
 | 
						|
_08019D44: .4byte gUnk_0200AF00
 | 
						|
_08019D48:
 | 
						|
	cmp r3, #0
 | 
						|
	beq _08019D4E
 | 
						|
	b _0801A2A4
 | 
						|
_08019D4E:
 | 
						|
	ldr r2, _08019D8C @ =gLinkState
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #0x81
 | 
						|
	lsls r1, r1, #7
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019D5E
 | 
						|
	b _0801A2A4
 | 
						|
_08019D5E:
 | 
						|
	ldr r0, _08019D90 @ =gUnk_0200AF00
 | 
						|
	adds r0, #0x2d
 | 
						|
	movs r1, #6
 | 
						|
	strb r1, [r0]
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x92
 | 
						|
	ldrh r1, [r0]
 | 
						|
	movs r0, #0x88
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019D76
 | 
						|
	b _0801A2A4
 | 
						|
_08019D76:
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r2, #0x1a]
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r7, #0
 | 
						|
	bl sub_080A7C8C
 | 
						|
	movs r0, #2
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019D8C: .4byte gLinkState
 | 
						|
_08019D90: .4byte gUnk_0200AF00
 | 
						|
_08019D94:
 | 
						|
	bl sub_08052734
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019D9E
 | 
						|
	b _0801A2A4
 | 
						|
_08019D9E:
 | 
						|
	ldr r0, _08019DCC @ =gUnk_0200AF00
 | 
						|
	adds r0, #0x2d
 | 
						|
	movs r1, #6
 | 
						|
	strb r1, [r0]
 | 
						|
	ldr r2, _08019DD0 @ =gLinkState
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x92
 | 
						|
	ldrh r1, [r0]
 | 
						|
	movs r0, #0x88
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019DB8
 | 
						|
	b _0801A2A4
 | 
						|
_08019DB8:
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r2, #0x1a]
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r7, #0
 | 
						|
	bl sub_0804B388
 | 
						|
	movs r0, #2
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019DCC: .4byte gUnk_0200AF00
 | 
						|
_08019DD0: .4byte gLinkState
 | 
						|
_08019DD4:
 | 
						|
	ldr r4, _08019E3C @ =gLinkState
 | 
						|
	ldr r0, [r4, #0x30]
 | 
						|
	movs r1, #0x80
 | 
						|
	lsls r1, r1, #7
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019DE4
 | 
						|
	b _0801A2A4
 | 
						|
_08019DE4:
 | 
						|
	bl sub_08079778
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019DEE
 | 
						|
	b _0801A2A4
 | 
						|
_08019DEE:
 | 
						|
	ldrb r0, [r4, #0xa]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019DF6
 | 
						|
	b _0801A2A4
 | 
						|
_08019DF6:
 | 
						|
	ldr r2, _08019E40 @ =gLinkEntity
 | 
						|
	ldrb r0, [r2, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldrb r3, [r4, #0xd]
 | 
						|
	cmp r0, r3
 | 
						|
	beq _08019E04
 | 
						|
	b _0801A2A4
 | 
						|
_08019E04:
 | 
						|
	ldrb r1, [r2, #0x15]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019E10
 | 
						|
	b _0801A2A4
 | 
						|
_08019E10:
 | 
						|
	ldrb r0, [r2, #0xf]
 | 
						|
	cmp r0, #5
 | 
						|
	bhi _08019E18
 | 
						|
	b _0801A2A4
 | 
						|
_08019E18:
 | 
						|
	movs r0, #0x81
 | 
						|
	strb r0, [r4, #2]
 | 
						|
	ldr r0, [r4, #0x30]
 | 
						|
	movs r1, #0x20
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r4, #0x30]
 | 
						|
	movs r0, #0x15
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #0xa
 | 
						|
	str r0, [r2, #0x20]
 | 
						|
	ldrb r1, [r2, #0x10]
 | 
						|
	movs r0, #0x7f
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r2, #0x10]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019E3C: .4byte gLinkState
 | 
						|
_08019E40: .4byte gLinkEntity
 | 
						|
_08019E44:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #8
 | 
						|
	bl sub_0801A2B0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019E54
 | 
						|
	b _0801A2A4
 | 
						|
_08019E54:
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r0, [r0]
 | 
						|
	lsls r1, r7, #1
 | 
						|
	cmp r0, #3
 | 
						|
	bne _08019E84
 | 
						|
	ldr r0, _08019E7C @ =gUnk_0200B650
 | 
						|
	adds r0, #4
 | 
						|
	adds r2, r1, r0
 | 
						|
	ldrh r0, [r2]
 | 
						|
	cmp r0, r4
 | 
						|
	bne _08019E84
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r4, _08019E80 @ =0x0000400C
 | 
						|
	adds r0, r0, r4
 | 
						|
	strh r0, [r2]
 | 
						|
	mov sb, r5
 | 
						|
	b _08019E98
 | 
						|
	.align 2, 0
 | 
						|
_08019E7C: .4byte gUnk_0200B650
 | 
						|
_08019E80: .4byte 0x0000400C
 | 
						|
_08019E84:
 | 
						|
	mov r0, r8
 | 
						|
	adds r0, #4
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r2, _08019EBC @ =gLinkEntity
 | 
						|
	ldrb r1, [r2, #0x14]
 | 
						|
	lsrs r1, r1, #1
 | 
						|
	ldr r3, _08019EC0 @ =0x0000400C
 | 
						|
	adds r1, r1, r3
 | 
						|
	strh r1, [r0]
 | 
						|
	mov sb, r2
 | 
						|
_08019E98:
 | 
						|
	ldr r2, _08019EC4 @ =gLinkState
 | 
						|
	movs r3, #0
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	mov r4, sb
 | 
						|
	strh r3, [r4, #0x2c]
 | 
						|
	strh r3, [r4, #0x30]
 | 
						|
	ldrb r0, [r4, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r4, #0x15]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_08019EBC: .4byte gLinkEntity
 | 
						|
_08019EC0: .4byte 0x0000400C
 | 
						|
_08019EC4: .4byte gLinkState
 | 
						|
_08019EC8:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #2
 | 
						|
	bl sub_0801A2B0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019ED8
 | 
						|
	b _0801A2A4
 | 
						|
_08019ED8:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r1, r8
 | 
						|
	adds r1, #4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r2, _08019F04 @ =0x0000405B
 | 
						|
	adds r0, r0, r2
 | 
						|
	movs r3, #0
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r2, _08019F08 @ =gLinkState
 | 
						|
	movs r0, #0x98
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	strh r3, [r5, #0x2c]
 | 
						|
	strh r3, [r5, #0x30]
 | 
						|
	b _0801A228
 | 
						|
	.align 2, 0
 | 
						|
_08019F04: .4byte 0x0000405B
 | 
						|
_08019F08: .4byte gLinkState
 | 
						|
_08019F0C:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #0xb
 | 
						|
	bl sub_0801A2B0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019F1C
 | 
						|
	b _0801A2A4
 | 
						|
_08019F1C:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r1, r8
 | 
						|
	adds r1, #4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r3, _08019F48 @ =0x00004037
 | 
						|
	adds r0, r0, r3
 | 
						|
	movs r3, #0
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r2, _08019F4C @ =gLinkState
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	strh r3, [r5, #0x2c]
 | 
						|
	strh r3, [r5, #0x30]
 | 
						|
	b _0801A228
 | 
						|
	.align 2, 0
 | 
						|
_08019F48: .4byte 0x00004037
 | 
						|
_08019F4C: .4byte gLinkState
 | 
						|
_08019F50:
 | 
						|
	cmp r3, #0
 | 
						|
	beq _08019F56
 | 
						|
	b _0801A2A4
 | 
						|
_08019F56:
 | 
						|
	ldr r2, _08019FA0 @ =gLinkState
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	ldrb r1, [r2, #0xd]
 | 
						|
	orrs r0, r1
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019F6C
 | 
						|
	b _0801A2A4
 | 
						|
_08019F6C:
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019F7C
 | 
						|
	b _0801A2A4
 | 
						|
_08019F7C:
 | 
						|
	lsls r1, r7, #1
 | 
						|
	mov r0, r8
 | 
						|
	adds r0, #4
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r1, _08019FA4 @ =0x0000403F
 | 
						|
	strh r1, [r0]
 | 
						|
	movs r0, #0x82
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	strh r3, [r5, #0x2c]
 | 
						|
	strh r3, [r5, #0x30]
 | 
						|
	b _0801A228
 | 
						|
	.align 2, 0
 | 
						|
_08019FA0: .4byte gLinkState
 | 
						|
_08019FA4: .4byte 0x0000403F
 | 
						|
_08019FA8:
 | 
						|
	ldr r0, _0801A07C @ =gLinkState
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _08019FB8
 | 
						|
	b _0801A2A4
 | 
						|
_08019FB8:
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _08019FC8
 | 
						|
	b _0801A2A4
 | 
						|
_08019FC8:
 | 
						|
	adds r0, r5, #0
 | 
						|
	movs r1, #1
 | 
						|
	bl sub_0801A570
 | 
						|
	adds r7, r0, #0
 | 
						|
	ldr r0, _0801A080 @ =0x0000FFFF
 | 
						|
	cmp r7, r0
 | 
						|
	bne _08019FDA
 | 
						|
	b _0801A2A4
 | 
						|
_08019FDA:
 | 
						|
	lsrs r0, r7, #0xc
 | 
						|
	subs r0, #1
 | 
						|
	mov r8, r0
 | 
						|
	ldr r0, _0801A084 @ =0x00000FFF
 | 
						|
	ands r7, r0
 | 
						|
	movs r4, #0
 | 
						|
	movs r6, #0
 | 
						|
	ldr r5, _0801A088 @ =gUnk_03004040
 | 
						|
	mov sb, r5
 | 
						|
_08019FEC:
 | 
						|
	mov r1, sb
 | 
						|
	ldr r0, [r1]
 | 
						|
	movs r1, #1
 | 
						|
	lsls r1, r4
 | 
						|
	ldr r0, [r0, #0x6c]
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A00A
 | 
						|
	ldr r0, [r5]
 | 
						|
	movs r1, #0
 | 
						|
	bl sub_0801A570
 | 
						|
	cmp r0, r7
 | 
						|
	bne _0801A00A
 | 
						|
	adds r6, #1
 | 
						|
_0801A00A:
 | 
						|
	adds r5, #4
 | 
						|
	adds r4, #1
 | 
						|
	cmp r4, #2
 | 
						|
	bls _08019FEC
 | 
						|
	cmp r6, r8
 | 
						|
	bhs _0801A018
 | 
						|
	b _0801A2A4
 | 
						|
_0801A018:
 | 
						|
	movs r0, #7
 | 
						|
	mov r1, r8
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateObject
 | 
						|
	adds r5, r0, #0
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801A02A
 | 
						|
	b _0801A2A4
 | 
						|
_0801A02A:
 | 
						|
	ldr r3, _0801A08C @ =gLinkEntity
 | 
						|
	ldrb r0, [r3, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	movs r4, #0
 | 
						|
	strb r0, [r5, #0x15]
 | 
						|
	movs r1, #0x3f
 | 
						|
	adds r0, r7, #0
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #4
 | 
						|
	adds r0, #8
 | 
						|
	ldr r2, _0801A090 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r5, #0x2e]
 | 
						|
	movs r0, #0xfc
 | 
						|
	lsls r0, r0, #4
 | 
						|
	ands r0, r7
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	adds r0, #8
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r5, #0x32]
 | 
						|
	adds r0, r3, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	strb r1, [r0]
 | 
						|
	ldr r2, _0801A07C @ =gLinkState
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	strh r4, [r3, #0x2c]
 | 
						|
	strh r4, [r3, #0x30]
 | 
						|
	ldrb r0, [r5, #0x15]
 | 
						|
	b _0801A0B6
 | 
						|
	.align 2, 0
 | 
						|
_0801A07C: .4byte gLinkState
 | 
						|
_0801A080: .4byte 0x0000FFFF
 | 
						|
_0801A084: .4byte 0x00000FFF
 | 
						|
_0801A088: .4byte gUnk_03004040
 | 
						|
_0801A08C: .4byte gLinkEntity
 | 
						|
_0801A090: .4byte gRoomControls
 | 
						|
_0801A094:
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	b _0801A09E
 | 
						|
_0801A09A:
 | 
						|
	movs r0, #0x90
 | 
						|
	strb r0, [r7, #6]
 | 
						|
_0801A09E:
 | 
						|
	movs r2, #0
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r7, #0xc]
 | 
						|
	ldr r0, [r7, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r7, #0x30]
 | 
						|
	mov r3, sb
 | 
						|
	strh r2, [r3, #0x2c]
 | 
						|
	strh r2, [r3, #0x30]
 | 
						|
	ldrb r0, [r3, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
_0801A0B6:
 | 
						|
	strb r0, [r3, #0x15]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
_0801A0BC:
 | 
						|
	mov r0, r8
 | 
						|
	adds r1, r7, #0
 | 
						|
	movs r2, #8
 | 
						|
	bl sub_0801A458
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A0CC
 | 
						|
	b _0801A2A4
 | 
						|
_0801A0CC:
 | 
						|
	lsls r0, r7, #1
 | 
						|
	mov r1, r8
 | 
						|
	adds r1, #4
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	ldr r4, _0801A0F0 @ =0x0000404B
 | 
						|
	adds r0, r0, r4
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r2, _0801A0F4 @ =gLinkState
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	adds r7, r2, #0
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A0F8
 | 
						|
	movs r0, #0xc0
 | 
						|
	b _0801A0FA
 | 
						|
	.align 2, 0
 | 
						|
_0801A0F0: .4byte 0x0000404B
 | 
						|
_0801A0F4: .4byte gLinkState
 | 
						|
_0801A0F8:
 | 
						|
	movs r0, #0xa0
 | 
						|
_0801A0FA:
 | 
						|
	strb r0, [r7, #6]
 | 
						|
	movs r2, #0
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r7, #0xc]
 | 
						|
	ldr r0, [r7, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r7, #0x30]
 | 
						|
	ldr r1, _0801A11C @ =gLinkEntity
 | 
						|
	strh r2, [r1, #0x2c]
 | 
						|
	strh r2, [r1, #0x30]
 | 
						|
	ldrb r0, [r1, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r1, #0x15]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_0801A11C: .4byte gLinkEntity
 | 
						|
_0801A120:
 | 
						|
	ldr r0, _0801A134 @ =gLinkState
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A12C
 | 
						|
	b _0801A2A4
 | 
						|
_0801A12C:
 | 
						|
	ldr r0, _0801A138 @ =0x00004054
 | 
						|
	adds r1, r5, #0
 | 
						|
	b _0801A28C
 | 
						|
	.align 2, 0
 | 
						|
_0801A134: .4byte gLinkState
 | 
						|
_0801A138: .4byte 0x00004054
 | 
						|
_0801A13C:
 | 
						|
	ldr r0, _0801A150 @ =gLinkState
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #6
 | 
						|
	beq _0801A148
 | 
						|
	b _0801A2A4
 | 
						|
_0801A148:
 | 
						|
	ldr r0, _0801A154 @ =0x00004054
 | 
						|
	adds r1, r5, #0
 | 
						|
	b _0801A28C
 | 
						|
	.align 2, 0
 | 
						|
_0801A150: .4byte gLinkState
 | 
						|
_0801A154: .4byte 0x00004054
 | 
						|
_0801A158:
 | 
						|
	subs r7, #1
 | 
						|
_0801A15A:
 | 
						|
	ldr r0, _0801A190 @ =gLinkState
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A166
 | 
						|
	b _0801A2A4
 | 
						|
_0801A166:
 | 
						|
	mov r0, sb
 | 
						|
	ldrh r1, [r0, #0x32]
 | 
						|
	movs r0, #0xf
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #9
 | 
						|
	bgt _0801A174
 | 
						|
	b _0801A2A4
 | 
						|
_0801A174:
 | 
						|
	movs r4, #0
 | 
						|
	ldr r5, _0801A194 @ =gUnk_03004040
 | 
						|
_0801A178:
 | 
						|
	ldr r0, [r5]
 | 
						|
	movs r1, #0
 | 
						|
	bl sub_0801A8D0
 | 
						|
	cmp r0, r7
 | 
						|
	bne _0801A186
 | 
						|
	b _0801A288
 | 
						|
_0801A186:
 | 
						|
	adds r5, #4
 | 
						|
	adds r4, #1
 | 
						|
	cmp r4, #2
 | 
						|
	bls _0801A178
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_0801A190: .4byte gLinkState
 | 
						|
_0801A194: .4byte gUnk_03004040
 | 
						|
_0801A198:
 | 
						|
	subs r7, #0x40
 | 
						|
_0801A19A:
 | 
						|
	ldr r0, _0801A1CC @ =gLinkState
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #6
 | 
						|
	beq _0801A1A6
 | 
						|
	b _0801A2A4
 | 
						|
_0801A1A6:
 | 
						|
	mov r2, sb
 | 
						|
	ldrh r1, [r2, #0x2e]
 | 
						|
	movs r0, #0xf
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #9
 | 
						|
	ble _0801A2A4
 | 
						|
	movs r4, #0
 | 
						|
	ldr r5, _0801A1D0 @ =gUnk_03004040
 | 
						|
_0801A1B6:
 | 
						|
	ldr r0, [r5]
 | 
						|
	movs r1, #6
 | 
						|
	bl sub_0801A8D0
 | 
						|
	cmp r0, r7
 | 
						|
	beq _0801A288
 | 
						|
	adds r5, #4
 | 
						|
	adds r4, #1
 | 
						|
	cmp r4, #2
 | 
						|
	bls _0801A1B6
 | 
						|
	b _0801A2A4
 | 
						|
	.align 2, 0
 | 
						|
_0801A1CC: .4byte gLinkState
 | 
						|
_0801A1D0: .4byte gUnk_03004040
 | 
						|
_0801A1D4:
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A2A4
 | 
						|
	ldr r6, _0801A234 @ =gLinkState
 | 
						|
	adds r0, r6, #0
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	ldrb r1, [r6, #0xd]
 | 
						|
	orrs r0, r1
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r4, r0, #0x18
 | 
						|
	cmp r4, #0
 | 
						|
	bne _0801A2A4
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r3, #1
 | 
						|
	mov r8, r3
 | 
						|
	mov r0, r8
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A2A4
 | 
						|
	ldr r0, _0801A238 @ =0x00004074
 | 
						|
	adds r1, r5, #0
 | 
						|
	adds r1, #0x38
 | 
						|
	ldrb r2, [r1]
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl SetTile
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r6, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r6, #0xc]
 | 
						|
	ldr r0, [r6, #0x30]
 | 
						|
	mov r1, r8
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r6, #0x30]
 | 
						|
	strh r4, [r5, #0x2c]
 | 
						|
	strh r4, [r5, #0x30]
 | 
						|
_0801A228:
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r5, #0x15]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_0801A234: .4byte gLinkState
 | 
						|
_0801A238: .4byte 0x00004074
 | 
						|
_0801A23C:
 | 
						|
	cmp r3, #4
 | 
						|
	bne _0801A2A4
 | 
						|
	ldr r1, _0801A280 @ =gLinkState
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	ldrb r1, [r1, #0xd]
 | 
						|
	orrs r0, r1
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A2A4
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A2A4
 | 
						|
	ldr r0, _0801A284 @ =0x00004074
 | 
						|
	adds r4, r5, #0
 | 
						|
	adds r4, #0x38
 | 
						|
	ldrb r2, [r4]
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl SetTile
 | 
						|
	ldrb r2, [r4]
 | 
						|
	movs r0, #0xd
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl sub_080001D0
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_0801A280: .4byte gLinkState
 | 
						|
_0801A284: .4byte 0x00004074
 | 
						|
_0801A288:
 | 
						|
	ldr r0, _0801A29C @ =0x00004059
 | 
						|
	ldr r1, _0801A2A0 @ =gLinkEntity
 | 
						|
_0801A28C:
 | 
						|
	adds r1, #0x38
 | 
						|
	ldrb r2, [r1]
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl SetTile
 | 
						|
	movs r0, #4
 | 
						|
	b _0801A2A6
 | 
						|
	.align 2, 0
 | 
						|
_0801A29C: .4byte 0x00004059
 | 
						|
_0801A2A0: .4byte gLinkEntity
 | 
						|
_0801A2A4:
 | 
						|
	movs r0, #0
 | 
						|
_0801A2A6:
 | 
						|
	pop {r3, r4}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801A2B0
 | 
						|
sub_0801A2B0: @ 0x0801A2B0
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	adds r4, r1, #0
 | 
						|
	adds r6, r2, #0
 | 
						|
	ldr r1, _0801A31C @ =gUnk_080B4488
 | 
						|
	ldr r2, _0801A320 @ =gLinkEntity
 | 
						|
	ldrb r0, [r2, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrh r3, [r0]
 | 
						|
	ldr r1, _0801A324 @ =gLinkState
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	ldrb r1, [r1, #0xd]
 | 
						|
	orrs r0, r1
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A36C
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A36C
 | 
						|
	adds r0, r4, r3
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r4, r0, #0x10
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	bl sub_080002E4
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r0, r0, #0x10
 | 
						|
	adds r1, r0, #0
 | 
						|
	cmp r0, #0x52
 | 
						|
	beq _0801A36C
 | 
						|
	cmp r0, #0x52
 | 
						|
	bgt _0801A328
 | 
						|
	cmp r0, #0x26
 | 
						|
	blt _0801A32C
 | 
						|
	cmp r0, #0x27
 | 
						|
	ble _0801A36C
 | 
						|
	cmp r0, #0x29
 | 
						|
	beq _0801A36C
 | 
						|
	b _0801A32C
 | 
						|
	.align 2, 0
 | 
						|
_0801A31C: .4byte gUnk_080B4488
 | 
						|
_0801A320: .4byte gLinkEntity
 | 
						|
_0801A324: .4byte gLinkState
 | 
						|
_0801A328:
 | 
						|
	cmp r1, #0x74
 | 
						|
	beq _0801A36C
 | 
						|
_0801A32C:
 | 
						|
	ldr r0, _0801A364 @ =0x00002004
 | 
						|
	adds r3, r5, r0
 | 
						|
	adds r0, r3, r4
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0x28
 | 
						|
	beq _0801A36C
 | 
						|
	movs r1, #0x3f
 | 
						|
	ands r1, r4
 | 
						|
	ldr r0, _0801A368 @ =gRoomControls
 | 
						|
	lsls r1, r1, #4
 | 
						|
	ldrh r2, [r0, #6]
 | 
						|
	adds r1, r1, r2
 | 
						|
	lsrs r2, r4, #6
 | 
						|
	lsls r2, r2, #4
 | 
						|
	ldrh r0, [r0, #8]
 | 
						|
	adds r2, r2, r0
 | 
						|
	lsls r1, r1, #0x10
 | 
						|
	asrs r1, r1, #0x10
 | 
						|
	lsls r2, r2, #0x10
 | 
						|
	asrs r2, r2, #0x10
 | 
						|
	adds r0, r3, #0
 | 
						|
	adds r3, r6, #0
 | 
						|
	bl sub_080AE4CC
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A36C
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A36E
 | 
						|
	.align 2, 0
 | 
						|
_0801A364: .4byte 0x00002004
 | 
						|
_0801A368: .4byte gRoomControls
 | 
						|
_0801A36C:
 | 
						|
	movs r0, #0
 | 
						|
_0801A36E:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801A370
 | 
						|
sub_0801A370: @ 0x0801A370
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, r8
 | 
						|
	push {r7}
 | 
						|
	mov r8, r0
 | 
						|
	adds r4, r1, #0
 | 
						|
	ldr r5, _0801A3C8 @ =gLinkEntity
 | 
						|
	ldrb r1, [r5, #0x14]
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A44E
 | 
						|
	bl sub_0801A4F8
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A44E
 | 
						|
	movs r0, #2
 | 
						|
	bl GetLayerByIndex
 | 
						|
	adds r7, r0, #0
 | 
						|
	ldr r1, _0801A3CC @ =gUnk_080B4488
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r0, r0, r1
 | 
						|
	movs r1, #0
 | 
						|
	ldrsh r6, [r0, r1]
 | 
						|
	adds r4, r4, r6
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r1, r0, #0
 | 
						|
	ldr r0, _0801A3D0 @ =0x0000402B
 | 
						|
	cmp r1, r0
 | 
						|
	beq _0801A3D4
 | 
						|
	cmp r1, r0
 | 
						|
	blo _0801A3D6
 | 
						|
	adds r0, #4
 | 
						|
	cmp r1, r0
 | 
						|
	bhi _0801A3D6
 | 
						|
_0801A3C4:
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A450
 | 
						|
	.align 2, 0
 | 
						|
_0801A3C8: .4byte gLinkEntity
 | 
						|
_0801A3CC: .4byte gUnk_080B4488
 | 
						|
_0801A3D0: .4byte 0x0000402B
 | 
						|
_0801A3D4:
 | 
						|
	adds r4, r4, r6
 | 
						|
_0801A3D6:
 | 
						|
	adds r0, r7, r4
 | 
						|
	ldr r1, _0801A40C @ =0x00001F84
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0x46
 | 
						|
	beq _0801A44E
 | 
						|
	ldr r0, _0801A410 @ =gLinkEntity
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	bl sub_080002E4
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r0, r0, #0x10
 | 
						|
	cmp r0, #0x52
 | 
						|
	beq _0801A44E
 | 
						|
	cmp r0, #0x52
 | 
						|
	bgt _0801A414
 | 
						|
	cmp r0, #0x26
 | 
						|
	blt _0801A418
 | 
						|
	cmp r0, #0x27
 | 
						|
	ble _0801A44E
 | 
						|
	cmp r0, #0x29
 | 
						|
	beq _0801A44E
 | 
						|
	b _0801A418
 | 
						|
	.align 2, 0
 | 
						|
_0801A40C: .4byte 0x00001F84
 | 
						|
_0801A410: .4byte gLinkEntity
 | 
						|
_0801A414:
 | 
						|
	cmp r0, #0x74
 | 
						|
	beq _0801A44E
 | 
						|
_0801A418:
 | 
						|
	ldr r0, _0801A434 @ =0x00002004
 | 
						|
	add r0, r8
 | 
						|
	adds r0, r0, r4
 | 
						|
	ldrb r0, [r0]
 | 
						|
	adds r1, r0, #0
 | 
						|
	cmp r0, #0xa
 | 
						|
	beq _0801A446
 | 
						|
	cmp r0, #0xa
 | 
						|
	bgt _0801A438
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A3C4
 | 
						|
	cmp r0, #5
 | 
						|
	beq _0801A440
 | 
						|
	b _0801A44E
 | 
						|
	.align 2, 0
 | 
						|
_0801A434: .4byte 0x00002004
 | 
						|
_0801A438:
 | 
						|
	cmp r1, #0x44
 | 
						|
	beq _0801A446
 | 
						|
	cmp r1, #0x45
 | 
						|
	bne _0801A44E
 | 
						|
_0801A440:
 | 
						|
	cmp r6, #1
 | 
						|
	bne _0801A44E
 | 
						|
	b _0801A3C4
 | 
						|
_0801A446:
 | 
						|
	movs r0, #1
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	cmp r6, r0
 | 
						|
	beq _0801A3C4
 | 
						|
_0801A44E:
 | 
						|
	movs r0, #0
 | 
						|
_0801A450:
 | 
						|
	pop {r3}
 | 
						|
	mov r8, r3
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801A458
 | 
						|
sub_0801A458: @ 0x0801A458
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, r8
 | 
						|
	push {r7}
 | 
						|
	adds r7, r0, #0
 | 
						|
	adds r5, r1, #0
 | 
						|
	mov r8, r2
 | 
						|
	ldr r0, _0801A4A4 @ =gUnk_080B4488
 | 
						|
	ldr r6, _0801A4A8 @ =gLinkEntity
 | 
						|
	ldrb r1, [r6, #0x14]
 | 
						|
	lsrs r1, r1, #1
 | 
						|
	lsls r1, r1, #1
 | 
						|
	adds r1, r1, r0
 | 
						|
	movs r0, #0
 | 
						|
	ldrsh r4, [r1, r0]
 | 
						|
	bl sub_0801A4F8
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A4F0
 | 
						|
	adds r4, r5, r4
 | 
						|
	adds r0, r6, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	bl sub_080002E4
 | 
						|
	cmp r0, #0x52
 | 
						|
	beq _0801A4F0
 | 
						|
	cmp r0, #0x52
 | 
						|
	bhi _0801A4AC
 | 
						|
	cmp r0, #0x26
 | 
						|
	blo _0801A4B0
 | 
						|
	cmp r0, #0x27
 | 
						|
	bls _0801A4F0
 | 
						|
	cmp r0, #0x29
 | 
						|
	beq _0801A4F0
 | 
						|
	b _0801A4B0
 | 
						|
	.align 2, 0
 | 
						|
_0801A4A4: .4byte gUnk_080B4488
 | 
						|
_0801A4A8: .4byte gLinkEntity
 | 
						|
_0801A4AC:
 | 
						|
	cmp r0, #0x74
 | 
						|
	beq _0801A4F0
 | 
						|
_0801A4B0:
 | 
						|
	ldr r2, _0801A4E8 @ =0x00002004
 | 
						|
	adds r3, r7, r2
 | 
						|
	adds r5, r3, r4
 | 
						|
	ldrb r0, [r5]
 | 
						|
	cmp r0, #0x28
 | 
						|
	beq _0801A4F0
 | 
						|
	movs r1, #0x3f
 | 
						|
	ands r1, r4
 | 
						|
	ldr r0, _0801A4EC @ =gRoomControls
 | 
						|
	lsls r1, r1, #4
 | 
						|
	ldrh r2, [r0, #6]
 | 
						|
	adds r1, r1, r2
 | 
						|
	lsrs r2, r4, #6
 | 
						|
	lsls r2, r2, #4
 | 
						|
	ldrh r0, [r0, #8]
 | 
						|
	adds r2, r2, r0
 | 
						|
	adds r0, r3, #0
 | 
						|
	mov r3, r8
 | 
						|
	bl sub_080AE4CC
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A4F0
 | 
						|
	ldrb r0, [r5]
 | 
						|
	subs r0, #1
 | 
						|
	cmp r0, #0xe
 | 
						|
	bls _0801A4F0
 | 
						|
	movs r0, #1
 | 
						|
	b _0801A4F2
 | 
						|
	.align 2, 0
 | 
						|
_0801A4E8: .4byte 0x00002004
 | 
						|
_0801A4EC: .4byte gRoomControls
 | 
						|
_0801A4F0:
 | 
						|
	movs r0, #0
 | 
						|
_0801A4F2:
 | 
						|
	pop {r3}
 | 
						|
	mov r8, r3
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801A4F8
 | 
						|
sub_0801A4F8: @ 0x0801A4F8
 | 
						|
	push {r4, r5, lr}
 | 
						|
	ldr r4, _0801A538 @ =gLinkState
 | 
						|
	ldr r0, [r4, #0x30]
 | 
						|
	movs r5, #0x80
 | 
						|
	ands r0, r5
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A544
 | 
						|
	movs r0, #0x45
 | 
						|
	bl GetInventoryValue
 | 
						|
	cmp r0, #1
 | 
						|
	bne _0801A564
 | 
						|
	ldrb r1, [r4, #0xd]
 | 
						|
	adds r0, r5, #0
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A564
 | 
						|
	ldr r2, _0801A53C @ =gLinkEntity
 | 
						|
	ldrb r0, [r2, #0x15]
 | 
						|
	cmp r1, r0
 | 
						|
	bne _0801A564
 | 
						|
	ldrb r0, [r2, #0x15]
 | 
						|
	adds r0, #4
 | 
						|
	movs r1, #0x18
 | 
						|
	ands r0, r1
 | 
						|
	ldr r1, _0801A540 @ =gUnk_080B44A0
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrh r1, [r0]
 | 
						|
	ldrh r0, [r2, #0x2a]
 | 
						|
	b _0801A55E
 | 
						|
	.align 2, 0
 | 
						|
_0801A538: .4byte gLinkState
 | 
						|
_0801A53C: .4byte gLinkEntity
 | 
						|
_0801A540: .4byte gUnk_080B44A0
 | 
						|
_0801A544:
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x35
 | 
						|
	ldrb r0, [r0]
 | 
						|
	ldrb r1, [r4, #0xd]
 | 
						|
	orrs r0, r1
 | 
						|
	movs r1, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A564
 | 
						|
	ldr r0, _0801A568 @ =gLinkEntity
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #1
 | 
						|
_0801A55E:
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A56C
 | 
						|
_0801A564:
 | 
						|
	movs r0, #0
 | 
						|
	b _0801A56E
 | 
						|
	.align 2, 0
 | 
						|
_0801A568: .4byte gLinkEntity
 | 
						|
_0801A56C:
 | 
						|
	movs r0, #1
 | 
						|
_0801A56E:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801A570
 | 
						|
sub_0801A570: @ 0x0801A570
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sl
 | 
						|
	mov r6, sb
 | 
						|
	mov r5, r8
 | 
						|
	push {r5, r6, r7}
 | 
						|
	adds r6, r0, #0
 | 
						|
	mov sl, r1
 | 
						|
	cmp r6, #0
 | 
						|
	bne _0801A58C
 | 
						|
	ldr r0, _0801A588 @ =0x0000FFFF
 | 
						|
	b _0801A8C2
 | 
						|
	.align 2, 0
 | 
						|
_0801A588: .4byte 0x0000FFFF
 | 
						|
_0801A58C:
 | 
						|
	adds r4, r6, #0
 | 
						|
	adds r4, #0x38
 | 
						|
	ldrb r0, [r4]
 | 
						|
	bl GetLayerByIndex
 | 
						|
	mov r8, r0
 | 
						|
	ldr r0, _0801A668 @ =0x00005004
 | 
						|
	add r0, r8
 | 
						|
	mov ip, r0
 | 
						|
	movs r5, #4
 | 
						|
	movs r7, #2
 | 
						|
	ldrb r0, [r6, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	mov sb, r4
 | 
						|
	cmp r0, #1
 | 
						|
	beq _0801A678
 | 
						|
	cmp r0, #1
 | 
						|
	ble _0801A5BC
 | 
						|
	cmp r0, #2
 | 
						|
	bne _0801A5B6
 | 
						|
	b _0801A73C
 | 
						|
_0801A5B6:
 | 
						|
	cmp r0, #3
 | 
						|
	bne _0801A5BC
 | 
						|
	b _0801A7FC
 | 
						|
_0801A5BC:
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldr r2, _0801A66C @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r4, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r4, r3
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, #0xa
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r3
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	mov r2, r8
 | 
						|
	adds r2, #4
 | 
						|
	movs r3, #0xdc
 | 
						|
	lsls r3, r3, #2
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A5EA:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	add r0, ip
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r3
 | 
						|
	beq _0801A600
 | 
						|
	subs r1, #2
 | 
						|
	subs r4, #1
 | 
						|
	subs r5, #1
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801A5EA
 | 
						|
_0801A600:
 | 
						|
	subs r4, #0x40
 | 
						|
	movs r3, #0xdd
 | 
						|
	lsls r3, r3, #2
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A60A:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	add r0, ip
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r3
 | 
						|
	bne _0801A620
 | 
						|
	adds r7, #1
 | 
						|
	subs r1, #0x80
 | 
						|
	subs r4, #0x40
 | 
						|
	cmp r7, #3
 | 
						|
	bls _0801A60A
 | 
						|
_0801A620:
 | 
						|
	mov r2, sl
 | 
						|
	cmp r2, #0
 | 
						|
	bne _0801A628
 | 
						|
	b _0801A8C0
 | 
						|
_0801A628:
 | 
						|
	mov r0, sb
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r1, _0801A670 @ =0xFFFFFC97
 | 
						|
	adds r0, r5, r1
 | 
						|
	cmp r0, #1
 | 
						|
	bls _0801A63E
 | 
						|
	b _0801A8B4
 | 
						|
_0801A63E:
 | 
						|
	ldr r2, _0801A674 @ =0x00001FC4
 | 
						|
	adds r0, r4, r2
 | 
						|
	mov r2, r8
 | 
						|
	adds r1, r2, r0
 | 
						|
	movs r5, #0
 | 
						|
	cmp r5, r7
 | 
						|
	blo _0801A64E
 | 
						|
	b _0801A8B6
 | 
						|
_0801A64E:
 | 
						|
	ldrb r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A656
 | 
						|
	b _0801A8B4
 | 
						|
_0801A656:
 | 
						|
	adds r5, #1
 | 
						|
	cmp r5, r7
 | 
						|
	blo _0801A65E
 | 
						|
	b _0801A8B6
 | 
						|
_0801A65E:
 | 
						|
	adds r0, r1, r5
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A656
 | 
						|
	b _0801A8B4
 | 
						|
	.align 2, 0
 | 
						|
_0801A668: .4byte 0x00005004
 | 
						|
_0801A66C: .4byte gRoomControls
 | 
						|
_0801A670: .4byte 0xFFFFFC97
 | 
						|
_0801A674: .4byte 0x00001FC4
 | 
						|
_0801A678:
 | 
						|
	movs r0, #0x2e
 | 
						|
	ldrsh r1, [r6, r0]
 | 
						|
	ldr r3, _0801A730 @ =gRoomControls
 | 
						|
	ldrh r0, [r3, #6]
 | 
						|
	subs r0, #0xa
 | 
						|
	subs r1, r1, r0
 | 
						|
	asrs r4, r1, #4
 | 
						|
	movs r2, #0x3f
 | 
						|
	ands r4, r2
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldrh r1, [r3, #8]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r2
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	mov r2, r8
 | 
						|
	adds r2, #4
 | 
						|
	mov r3, ip
 | 
						|
	movs r6, #0xdc
 | 
						|
	lsls r6, r6, #2
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A6A8:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r0, r3, r0
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r6
 | 
						|
	beq _0801A6BE
 | 
						|
	adds r1, #0x80
 | 
						|
	adds r4, #0x40
 | 
						|
	subs r5, #1
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801A6A8
 | 
						|
_0801A6BE:
 | 
						|
	subs r4, #0x40
 | 
						|
	movs r3, #0xdd
 | 
						|
	lsls r3, r3, #2
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A6C8:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	add r0, ip
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r3
 | 
						|
	bne _0801A6DE
 | 
						|
	adds r7, #1
 | 
						|
	subs r1, #0x80
 | 
						|
	subs r4, #0x40
 | 
						|
	cmp r7, #3
 | 
						|
	bls _0801A6C8
 | 
						|
_0801A6DE:
 | 
						|
	mov r2, sl
 | 
						|
	cmp r2, #0
 | 
						|
	bne _0801A6E6
 | 
						|
	b _0801A8C0
 | 
						|
_0801A6E6:
 | 
						|
	mov r0, sb
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r0, _0801A734 @ =0x00000369
 | 
						|
	cmp r5, r0
 | 
						|
	beq _0801A700
 | 
						|
	adds r0, #4
 | 
						|
	cmp r5, r0
 | 
						|
	beq _0801A700
 | 
						|
	b _0801A8B4
 | 
						|
_0801A700:
 | 
						|
	adds r0, r4, r7
 | 
						|
	ldr r1, _0801A738 @ =0x00002004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r2, r8
 | 
						|
	adds r1, r2, r0
 | 
						|
	movs r5, #0
 | 
						|
	cmp r5, r7
 | 
						|
	blo _0801A712
 | 
						|
	b _0801A8B6
 | 
						|
_0801A712:
 | 
						|
	ldrb r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A71A
 | 
						|
	b _0801A8B4
 | 
						|
_0801A71A:
 | 
						|
	adds r5, #1
 | 
						|
	cmp r5, r7
 | 
						|
	blo _0801A722
 | 
						|
	b _0801A8B6
 | 
						|
_0801A722:
 | 
						|
	lsls r0, r5, #6
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A71A
 | 
						|
	b _0801A8B4
 | 
						|
	.align 2, 0
 | 
						|
_0801A730: .4byte gRoomControls
 | 
						|
_0801A734: .4byte 0x00000369
 | 
						|
_0801A738: .4byte 0x00002004
 | 
						|
_0801A73C:
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldr r2, _0801A7E8 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r4, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r4, r3
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	subs r1, #0xa
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r3
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	mov r2, r8
 | 
						|
	adds r2, #4
 | 
						|
	mov r3, ip
 | 
						|
	ldr r6, _0801A7EC @ =0x0000036F
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A76A:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r0, r3, r0
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r6
 | 
						|
	beq _0801A780
 | 
						|
	adds r1, #2
 | 
						|
	adds r4, #1
 | 
						|
	subs r5, #1
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801A76A
 | 
						|
_0801A780:
 | 
						|
	subs r4, #1
 | 
						|
	ldr r3, _0801A7F0 @ =0x00000372
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A788:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	add r0, ip
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r3
 | 
						|
	bne _0801A79E
 | 
						|
	adds r7, #1
 | 
						|
	subs r1, #2
 | 
						|
	subs r4, #1
 | 
						|
	cmp r7, #3
 | 
						|
	bls _0801A788
 | 
						|
_0801A79E:
 | 
						|
	mov r2, sl
 | 
						|
	cmp r2, #0
 | 
						|
	bne _0801A7A6
 | 
						|
	b _0801A8C0
 | 
						|
_0801A7A6:
 | 
						|
	mov r0, sb
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r0, _0801A7F4 @ =0x00000369
 | 
						|
	cmp r5, r0
 | 
						|
	beq _0801A7BE
 | 
						|
	adds r0, #2
 | 
						|
	cmp r5, r0
 | 
						|
	bne _0801A8B4
 | 
						|
_0801A7BE:
 | 
						|
	lsls r0, r7, #6
 | 
						|
	adds r0, r4, r0
 | 
						|
	ldr r1, _0801A7F8 @ =0x00002004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r2, r8
 | 
						|
	adds r1, r2, r0
 | 
						|
	movs r5, #0
 | 
						|
	cmp r5, r7
 | 
						|
	bhs _0801A8B6
 | 
						|
	ldrb r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801A8B4
 | 
						|
_0801A7D6:
 | 
						|
	adds r5, #1
 | 
						|
	cmp r5, r7
 | 
						|
	bhs _0801A8B6
 | 
						|
	adds r0, r1, r5
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A7D6
 | 
						|
	b _0801A8B4
 | 
						|
	.align 2, 0
 | 
						|
_0801A7E8: .4byte gRoomControls
 | 
						|
_0801A7EC: .4byte 0x0000036F
 | 
						|
_0801A7F0: .4byte 0x00000372
 | 
						|
_0801A7F4: .4byte 0x00000369
 | 
						|
_0801A7F8: .4byte 0x00002004
 | 
						|
_0801A7FC:
 | 
						|
	movs r0, #0x2e
 | 
						|
	ldrsh r1, [r6, r0]
 | 
						|
	ldr r3, _0801A890 @ =gRoomControls
 | 
						|
	ldrh r0, [r3, #6]
 | 
						|
	adds r0, #0xa
 | 
						|
	subs r1, r1, r0
 | 
						|
	asrs r4, r1, #4
 | 
						|
	movs r2, #0x3f
 | 
						|
	ands r4, r2
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r6, r1]
 | 
						|
	ldrh r1, [r3, #8]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r2
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	mov r2, r8
 | 
						|
	adds r2, #4
 | 
						|
	mov r3, ip
 | 
						|
	ldr r6, _0801A894 @ =0x0000036F
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A82A:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r0, r3, r0
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r6
 | 
						|
	beq _0801A840
 | 
						|
	subs r1, #0x80
 | 
						|
	subs r4, #0x40
 | 
						|
	subs r5, #1
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801A82A
 | 
						|
_0801A840:
 | 
						|
	subs r4, #1
 | 
						|
	ldr r3, _0801A898 @ =0x00000372
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r1, r0, r2
 | 
						|
_0801A848:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	lsls r0, r0, #1
 | 
						|
	add r0, ip
 | 
						|
	ldrh r0, [r0]
 | 
						|
	cmp r0, r3
 | 
						|
	bne _0801A85E
 | 
						|
	adds r7, #1
 | 
						|
	subs r1, #2
 | 
						|
	subs r4, #1
 | 
						|
	cmp r7, #3
 | 
						|
	bls _0801A848
 | 
						|
_0801A85E:
 | 
						|
	mov r2, sl
 | 
						|
	cmp r2, #0
 | 
						|
	beq _0801A8C0
 | 
						|
	mov r0, sb
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetTileType
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r0, _0801A89C @ =0x00000369
 | 
						|
	cmp r5, r0
 | 
						|
	beq _0801A87C
 | 
						|
	adds r0, #3
 | 
						|
	cmp r5, r0
 | 
						|
	bne _0801A8B4
 | 
						|
_0801A87C:
 | 
						|
	ldr r1, _0801A8A0 @ =0x00002003
 | 
						|
	adds r0, r4, r1
 | 
						|
	mov r2, r8
 | 
						|
	adds r1, r2, r0
 | 
						|
	movs r5, #0
 | 
						|
	cmp r5, r7
 | 
						|
	bhs _0801A8B6
 | 
						|
	ldrb r0, [r1]
 | 
						|
	b _0801A8B0
 | 
						|
	.align 2, 0
 | 
						|
_0801A890: .4byte gRoomControls
 | 
						|
_0801A894: .4byte 0x0000036F
 | 
						|
_0801A898: .4byte 0x00000372
 | 
						|
_0801A89C: .4byte 0x00000369
 | 
						|
_0801A8A0: .4byte 0x00002003
 | 
						|
_0801A8A4:
 | 
						|
	adds r5, #1
 | 
						|
	cmp r5, r7
 | 
						|
	bhs _0801A8B6
 | 
						|
	lsls r0, r5, #6
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r0, [r0]
 | 
						|
_0801A8B0:
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A8A4
 | 
						|
_0801A8B4:
 | 
						|
	ldr r4, _0801A8CC @ =0x0000FFFF
 | 
						|
_0801A8B6:
 | 
						|
	mov r0, sl
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801A8C0
 | 
						|
	lsls r0, r7, #0xc
 | 
						|
	orrs r4, r0
 | 
						|
_0801A8C0:
 | 
						|
	adds r0, r4, #0
 | 
						|
_0801A8C2:
 | 
						|
	pop {r3, r4, r5}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	mov sl, r5
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801A8CC: .4byte 0x0000FFFF
 | 
						|
 | 
						|
	thumb_func_start sub_0801A8D0
 | 
						|
sub_0801A8D0: @ 0x0801A8D0
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	adds r4, r1, #0
 | 
						|
	cmp r5, #0
 | 
						|
	beq _0801A978
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r0, [r0]
 | 
						|
	bl GetLayerByIndex
 | 
						|
	adds r6, r0, #4
 | 
						|
	cmp r4, #0
 | 
						|
	bne _0801A92C
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r5, r1]
 | 
						|
	ldr r2, _0801A91C @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r4, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r4, r3
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r5, r1]
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, #8
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r3
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r0, r0, r6
 | 
						|
	ldrh r1, [r0]
 | 
						|
	ldr r0, _0801A920 @ =0x00004055
 | 
						|
	cmp r1, r0
 | 
						|
	bne _0801A924
 | 
						|
	subs r0, r4, #1
 | 
						|
	b _0801A97A
 | 
						|
	.align 2, 0
 | 
						|
_0801A91C: .4byte gRoomControls
 | 
						|
_0801A920: .4byte 0x00004055
 | 
						|
_0801A924:
 | 
						|
	ldr r0, _0801A928 @ =0x00004056
 | 
						|
	b _0801A96A
 | 
						|
	.align 2, 0
 | 
						|
_0801A928: .4byte 0x00004056
 | 
						|
_0801A92C:
 | 
						|
	movs r0, #0x2e
 | 
						|
	ldrsh r1, [r5, r0]
 | 
						|
	ldr r3, _0801A960 @ =gRoomControls
 | 
						|
	ldrh r0, [r3, #6]
 | 
						|
	adds r0, #8
 | 
						|
	subs r1, r1, r0
 | 
						|
	asrs r4, r1, #4
 | 
						|
	movs r2, #0x3f
 | 
						|
	ands r4, r2
 | 
						|
	movs r1, #0x32
 | 
						|
	ldrsh r0, [r5, r1]
 | 
						|
	ldrh r1, [r3, #8]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	ands r0, r2
 | 
						|
	lsls r0, r0, #6
 | 
						|
	orrs r4, r0
 | 
						|
	lsls r0, r4, #1
 | 
						|
	adds r0, r0, r6
 | 
						|
	ldrh r1, [r0]
 | 
						|
	ldr r0, _0801A964 @ =0x00004057
 | 
						|
	cmp r1, r0
 | 
						|
	bne _0801A968
 | 
						|
	adds r0, r4, #0
 | 
						|
	subs r0, #0x40
 | 
						|
	b _0801A97A
 | 
						|
	.align 2, 0
 | 
						|
_0801A960: .4byte gRoomControls
 | 
						|
_0801A964: .4byte 0x00004057
 | 
						|
_0801A968:
 | 
						|
	ldr r0, _0801A974 @ =0x00004058
 | 
						|
_0801A96A:
 | 
						|
	cmp r1, r0
 | 
						|
	bne _0801A978
 | 
						|
	adds r0, r4, #0
 | 
						|
	b _0801A97A
 | 
						|
	.align 2, 0
 | 
						|
_0801A974: .4byte 0x00004058
 | 
						|
_0801A978:
 | 
						|
	ldr r0, _0801A97C @ =0x0000FFFF
 | 
						|
_0801A97A:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801A97C: .4byte 0x0000FFFF
 | 
						|
 | 
						|
	thumb_func_start sub_0801A980
 | 
						|
sub_0801A980: @ 0x0801A980
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	ldr r4, _0801A9E0 @ =gLinkEntity
 | 
						|
	adds r6, r4, #0
 | 
						|
	adds r6, #0x38
 | 
						|
	ldrb r0, [r6]
 | 
						|
	bl GetLayerByIndex
 | 
						|
	ldrb r0, [r4, #0x14]
 | 
						|
	movs r2, #6
 | 
						|
	ands r2, r0
 | 
						|
	lsls r2, r2, #1
 | 
						|
	ldr r0, _0801A9E4 @ =gUnk_080B44A8
 | 
						|
	adds r2, r2, r0
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	movs r3, #0
 | 
						|
	ldrsh r1, [r2, r3]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r5, _0801A9E8 @ =gRoomControls
 | 
						|
	ldrh r1, [r5, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r0, r3
 | 
						|
	movs r7, #0x32
 | 
						|
	ldrsh r1, [r4, r7]
 | 
						|
	movs r4, #2
 | 
						|
	ldrsh r2, [r2, r4]
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldrh r2, [r5, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	asrs r1, r1, #4
 | 
						|
	ands r1, r3
 | 
						|
	lsls r1, r1, #6
 | 
						|
	orrs r0, r1
 | 
						|
	ldrb r1, [r6]
 | 
						|
	bl GetTileType
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r1, r0, #0x10
 | 
						|
	ldr r0, _0801A9EC @ =0x00003FFF
 | 
						|
	cmp r1, r0
 | 
						|
	bhi _0801A9DC
 | 
						|
	adds r0, r1, #0
 | 
						|
	bl sub_080002E4
 | 
						|
_0801A9DC:
 | 
						|
	movs r0, #0
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801A9E0: .4byte gLinkEntity
 | 
						|
_0801A9E4: .4byte gUnk_080B44A8
 | 
						|
_0801A9E8: .4byte gRoomControls
 | 
						|
_0801A9EC: .4byte 0x00003FFF
 | 
						|
 | 
						|
	thumb_func_start sub_0801A9F0
 | 
						|
sub_0801A9F0: @ 0x0801A9F0
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r3, r0, #0
 | 
						|
	adds r4, r2, #0
 | 
						|
	movs r2, #0
 | 
						|
	ldr r5, _0801AA0C @ =0xFFFFFCA0
 | 
						|
	adds r0, r1, r5
 | 
						|
	cmp r0, #4
 | 
						|
	bhi _0801AA40
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801AA10 @ =_0801AA14
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	mov pc, r0
 | 
						|
	.align 2, 0
 | 
						|
_0801AA0C: .4byte 0xFFFFFCA0
 | 
						|
_0801AA10: .4byte _0801AA14
 | 
						|
_0801AA14: @ jump table
 | 
						|
	.4byte _0801AA44 @ case 0
 | 
						|
	.4byte _0801AA28 @ case 1
 | 
						|
	.4byte _0801AA34 @ case 2
 | 
						|
	.4byte _0801AA3A @ case 3
 | 
						|
	.4byte _0801AA2E @ case 4
 | 
						|
_0801AA28:
 | 
						|
	cmp r3, #0
 | 
						|
	bne _0801AA40
 | 
						|
	b _0801AA44
 | 
						|
_0801AA2E:
 | 
						|
	cmp r3, #8
 | 
						|
	bne _0801AA40
 | 
						|
	b _0801AA44
 | 
						|
_0801AA34:
 | 
						|
	cmp r3, #0x10
 | 
						|
	bne _0801AA40
 | 
						|
	b _0801AA44
 | 
						|
_0801AA3A:
 | 
						|
	cmp r3, #0x18
 | 
						|
	bne _0801AA40
 | 
						|
	movs r2, #1
 | 
						|
_0801AA40:
 | 
						|
	cmp r2, #0
 | 
						|
	beq _0801AA54
 | 
						|
_0801AA44:
 | 
						|
	ldr r0, _0801AA50 @ =gLinkEntity
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r2, r3, #0
 | 
						|
	bl sub_0801AA58
 | 
						|
	b _0801AA56
 | 
						|
	.align 2, 0
 | 
						|
_0801AA50: .4byte gLinkEntity
 | 
						|
_0801AA54:
 | 
						|
	movs r0, #0
 | 
						|
_0801AA56:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801AA58
 | 
						|
sub_0801AA58: @ 0x0801AA58
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, r8
 | 
						|
	push {r7}
 | 
						|
	adds r6, r0, #0
 | 
						|
	adds r5, r1, #0
 | 
						|
	adds r7, r2, #0
 | 
						|
	movs r0, #0x38
 | 
						|
	adds r0, r0, r6
 | 
						|
	mov r8, r0
 | 
						|
	ldrb r0, [r0]
 | 
						|
	bl GetLayerByIndex
 | 
						|
	ldr r2, _0801AAF0 @ =gUnk_080B4488
 | 
						|
	lsrs r1, r7, #3
 | 
						|
	lsls r1, r1, #1
 | 
						|
	adds r1, r1, r2
 | 
						|
	movs r2, #0
 | 
						|
	ldrsh r1, [r1, r2]
 | 
						|
	adds r1, r5, r1
 | 
						|
	ldr r2, _0801AAF4 @ =0x00002004
 | 
						|
	adds r0, r0, r2
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AA94
 | 
						|
	subs r0, #0x20
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r0, r0, #0x18
 | 
						|
	cmp r0, #0x1f
 | 
						|
	bhi _0801AB00
 | 
						|
_0801AA94:
 | 
						|
	movs r0, #7
 | 
						|
	movs r1, #0
 | 
						|
	movs r2, #0
 | 
						|
	bl CreateObject
 | 
						|
	adds r4, r0, #0
 | 
						|
	cmp r4, #0
 | 
						|
	beq _0801AB00
 | 
						|
	movs r3, #0
 | 
						|
	strb r7, [r4, #0x15]
 | 
						|
	movs r1, #0x3f
 | 
						|
	adds r0, r5, #0
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #4
 | 
						|
	adds r0, #8
 | 
						|
	ldr r2, _0801AAF8 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r4, #0x2e]
 | 
						|
	movs r0, #0xfc
 | 
						|
	lsls r0, r0, #4
 | 
						|
	ands r0, r5
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	adds r0, #8
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r4, #0x32]
 | 
						|
	mov r0, r8
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	strb r1, [r0]
 | 
						|
	ldr r2, _0801AAFC @ =gLinkState
 | 
						|
	movs r0, #0xa0
 | 
						|
	strb r0, [r2, #6]
 | 
						|
	movs r0, #5
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	ldr r0, [r2, #0x30]
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	str r0, [r2, #0x30]
 | 
						|
	strh r3, [r6, #0x2c]
 | 
						|
	strh r3, [r6, #0x30]
 | 
						|
	strb r7, [r6, #0x15]
 | 
						|
	movs r0, #1
 | 
						|
	b _0801AB02
 | 
						|
	.align 2, 0
 | 
						|
_0801AAF0: .4byte gUnk_080B4488
 | 
						|
_0801AAF4: .4byte 0x00002004
 | 
						|
_0801AAF8: .4byte gRoomControls
 | 
						|
_0801AAFC: .4byte gLinkState
 | 
						|
_0801AB00:
 | 
						|
	movs r0, #0
 | 
						|
_0801AB02:
 | 
						|
	pop {r3}
 | 
						|
	mov r8, r3
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801AB08
 | 
						|
sub_0801AB08: @ 0x0801AB08
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sl
 | 
						|
	mov r6, sb
 | 
						|
	mov r5, r8
 | 
						|
	push {r5, r6, r7}
 | 
						|
	sub sp, #8
 | 
						|
	adds r5, r0, #0
 | 
						|
	mov r8, r1
 | 
						|
	ldr r0, _0801AB4C @ =gUnk_02025EB0
 | 
						|
	movs r1, #2
 | 
						|
	cmp r8, r0
 | 
						|
	bne _0801AB22
 | 
						|
	movs r1, #1
 | 
						|
_0801AB22:
 | 
						|
	lsls r2, r1, #0xc
 | 
						|
	ldr r7, _0801AB50 @ =0x00003004
 | 
						|
	add r7, r8
 | 
						|
	mov r6, r8
 | 
						|
	adds r6, #4
 | 
						|
	movs r0, #0
 | 
						|
	ldr r1, _0801AB54 @ =0x00003FFF
 | 
						|
	mov sb, r1
 | 
						|
_0801AB32:
 | 
						|
	movs r3, #0
 | 
						|
	mov sl, r3
 | 
						|
	adds r0, #1
 | 
						|
	str r0, [sp]
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r4, r5, r0
 | 
						|
_0801AB40:
 | 
						|
	ldrh r0, [r6]
 | 
						|
	cmp r0, sb
 | 
						|
	bhi _0801AB58
 | 
						|
	lsls r0, r0, #2
 | 
						|
	b _0801AB64
 | 
						|
	.align 2, 0
 | 
						|
_0801AB4C: .4byte gUnk_02025EB0
 | 
						|
_0801AB50: .4byte 0x00003004
 | 
						|
_0801AB54: .4byte 0x00003FFF
 | 
						|
_0801AB58:
 | 
						|
	ldrh r1, [r7]
 | 
						|
	adds r0, r2, #0
 | 
						|
	str r2, [sp, #4]
 | 
						|
	bl sub_0801AC68
 | 
						|
	ldr r2, [sp, #4]
 | 
						|
_0801AB64:
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _0801AB8C @ =0x00007004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r3, r8
 | 
						|
	adds r1, r3, r0
 | 
						|
	ldrh r0, [r1]
 | 
						|
	strh r0, [r5]
 | 
						|
	ldrh r0, [r1, #2]
 | 
						|
	strh r0, [r5, #2]
 | 
						|
	ldrh r0, [r1, #4]
 | 
						|
	strh r0, [r4]
 | 
						|
	ldrh r0, [r1, #6]
 | 
						|
	strh r0, [r4, #2]
 | 
						|
	adds r4, #4
 | 
						|
	adds r5, #4
 | 
						|
	ldrh r0, [r6, #2]
 | 
						|
	cmp r0, sb
 | 
						|
	bhi _0801AB90
 | 
						|
	lsls r0, r0, #2
 | 
						|
	b _0801AB9C
 | 
						|
	.align 2, 0
 | 
						|
_0801AB8C: .4byte 0x00007004
 | 
						|
_0801AB90:
 | 
						|
	adds r0, r2, #1
 | 
						|
	ldrh r1, [r7, #2]
 | 
						|
	str r2, [sp, #4]
 | 
						|
	bl sub_0801AC68
 | 
						|
	ldr r2, [sp, #4]
 | 
						|
_0801AB9C:
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _0801ABC4 @ =0x00007004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r3, r8
 | 
						|
	adds r1, r3, r0
 | 
						|
	ldrh r0, [r1]
 | 
						|
	strh r0, [r5]
 | 
						|
	ldrh r0, [r1, #2]
 | 
						|
	strh r0, [r5, #2]
 | 
						|
	ldrh r0, [r1, #4]
 | 
						|
	strh r0, [r4]
 | 
						|
	ldrh r0, [r1, #6]
 | 
						|
	strh r0, [r4, #2]
 | 
						|
	adds r4, #4
 | 
						|
	adds r5, #4
 | 
						|
	ldrh r0, [r6, #4]
 | 
						|
	cmp r0, sb
 | 
						|
	bhi _0801ABC8
 | 
						|
	lsls r0, r0, #2
 | 
						|
	b _0801ABD4
 | 
						|
	.align 2, 0
 | 
						|
_0801ABC4: .4byte 0x00007004
 | 
						|
_0801ABC8:
 | 
						|
	adds r0, r2, #2
 | 
						|
	ldrh r1, [r7, #4]
 | 
						|
	str r2, [sp, #4]
 | 
						|
	bl sub_0801AC68
 | 
						|
	ldr r2, [sp, #4]
 | 
						|
_0801ABD4:
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _0801ABFC @ =0x00007004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r3, r8
 | 
						|
	adds r1, r3, r0
 | 
						|
	ldrh r0, [r1]
 | 
						|
	strh r0, [r5]
 | 
						|
	ldrh r0, [r1, #2]
 | 
						|
	strh r0, [r5, #2]
 | 
						|
	ldrh r0, [r1, #4]
 | 
						|
	strh r0, [r4]
 | 
						|
	ldrh r0, [r1, #6]
 | 
						|
	strh r0, [r4, #2]
 | 
						|
	adds r4, #4
 | 
						|
	adds r5, #4
 | 
						|
	ldrh r0, [r6, #6]
 | 
						|
	cmp r0, sb
 | 
						|
	bhi _0801AC00
 | 
						|
	lsls r0, r0, #2
 | 
						|
	b _0801AC0C
 | 
						|
	.align 2, 0
 | 
						|
_0801ABFC: .4byte 0x00007004
 | 
						|
_0801AC00:
 | 
						|
	adds r0, r2, #3
 | 
						|
	ldrh r1, [r7, #6]
 | 
						|
	str r2, [sp, #4]
 | 
						|
	bl sub_0801AC68
 | 
						|
	ldr r2, [sp, #4]
 | 
						|
_0801AC0C:
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _0801AC64 @ =0x00007004
 | 
						|
	adds r0, r0, r1
 | 
						|
	mov r3, r8
 | 
						|
	adds r1, r3, r0
 | 
						|
	ldrh r0, [r1]
 | 
						|
	strh r0, [r5]
 | 
						|
	ldrh r0, [r1, #2]
 | 
						|
	strh r0, [r5, #2]
 | 
						|
	ldrh r0, [r1, #4]
 | 
						|
	strh r0, [r4]
 | 
						|
	ldrh r0, [r1, #6]
 | 
						|
	strh r0, [r4, #2]
 | 
						|
	adds r4, #4
 | 
						|
	adds r5, #4
 | 
						|
	adds r6, #8
 | 
						|
	adds r7, #8
 | 
						|
	adds r0, r2, #4
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r2, r0, #0x10
 | 
						|
	mov r0, sl
 | 
						|
	adds r0, #1
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	lsrs r0, r0, #0x10
 | 
						|
	mov sl, r0
 | 
						|
	cmp r0, #0xf
 | 
						|
	bhi _0801AC44
 | 
						|
	b _0801AB40
 | 
						|
_0801AC44:
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #1
 | 
						|
	adds r5, r5, r0
 | 
						|
	ldr r1, [sp]
 | 
						|
	lsls r0, r1, #0x10
 | 
						|
	lsrs r0, r0, #0x10
 | 
						|
	cmp r0, #0x3f
 | 
						|
	bhi _0801AC56
 | 
						|
	b _0801AB32
 | 
						|
_0801AC56:
 | 
						|
	add sp, #8
 | 
						|
	pop {r3, r4, r5}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	mov sl, r5
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801AC64: .4byte 0x00007004
 | 
						|
 | 
						|
	thumb_func_start sub_0801AC68
 | 
						|
sub_0801AC68: @ 0x0801AC68
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r2, _0801AC84 @ =gUnk_0200B240
 | 
						|
	ldr r0, _0801AC88 @ =gRoomVars
 | 
						|
	ldrh r3, [r0, #0xe]
 | 
						|
	movs r0, #0
 | 
						|
	cmp r0, r3
 | 
						|
	bhs _0801AC94
 | 
						|
_0801AC78:
 | 
						|
	ldrh r5, [r2]
 | 
						|
	cmp r4, r5
 | 
						|
	bne _0801AC8C
 | 
						|
	ldrh r0, [r2, #2]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	b _0801AC96
 | 
						|
	.align 2, 0
 | 
						|
_0801AC84: .4byte gUnk_0200B240
 | 
						|
_0801AC88: .4byte gRoomVars
 | 
						|
_0801AC8C:
 | 
						|
	adds r2, #4
 | 
						|
	adds r0, #1
 | 
						|
	cmp r0, r3
 | 
						|
	blo _0801AC78
 | 
						|
_0801AC94:
 | 
						|
	lsls r0, r1, #2
 | 
						|
_0801AC96:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801AC98
 | 
						|
sub_0801AC98: @ 0x0801AC98
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sl
 | 
						|
	mov r6, sb
 | 
						|
	mov r5, r8
 | 
						|
	push {r5, r6, r7}
 | 
						|
	sub sp, #8
 | 
						|
	ldr r0, _0801ACD0 @ =gRoomControls
 | 
						|
	ldrh r1, [r0, #0x1e]
 | 
						|
	lsrs r1, r1, #4
 | 
						|
	mov r8, r1
 | 
						|
	ldrh r0, [r0, #0x20]
 | 
						|
	lsrs r0, r0, #4
 | 
						|
	str r0, [sp]
 | 
						|
	movs r6, #0
 | 
						|
	movs r1, #0
 | 
						|
	cmp r1, r0
 | 
						|
	bhs _0801AD5C
 | 
						|
_0801ACBA:
 | 
						|
	movs r0, #0
 | 
						|
	adds r1, #1
 | 
						|
	str r1, [sp, #4]
 | 
						|
	cmp r0, r8
 | 
						|
	bhs _0801AD4C
 | 
						|
_0801ACC4:
 | 
						|
	ldr r5, _0801ACD4 @ =gUnk_080B44C0
 | 
						|
	adds r0, #1
 | 
						|
	mov sl, r0
 | 
						|
	adds r0, r6, #1
 | 
						|
	mov sb, r0
 | 
						|
	b _0801ACDA
 | 
						|
	.align 2, 0
 | 
						|
_0801ACD0: .4byte gRoomControls
 | 
						|
_0801ACD4: .4byte gUnk_080B44C0
 | 
						|
_0801ACD8:
 | 
						|
	adds r5, #0xc
 | 
						|
_0801ACDA:
 | 
						|
	ldrh r0, [r5]
 | 
						|
	ldr r1, _0801AD0C @ =0x0000FFFF
 | 
						|
	cmp r0, r1
 | 
						|
	beq _0801AD06
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r0, r6, #0
 | 
						|
	movs r1, #1
 | 
						|
	bl GetTileType
 | 
						|
	cmp r4, r0
 | 
						|
	bne _0801ACD8
 | 
						|
	ldrh r0, [r5, #0xa]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801AD10 @ =gUnk_080B44B8
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801ACD8
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r1, r6, #0
 | 
						|
	bl sub_0801AD6C
 | 
						|
_0801AD06:
 | 
						|
	ldr r5, _0801AD14 @ =gUnk_080B44C2
 | 
						|
	ldr r7, _0801AD0C @ =0x0000FFFF
 | 
						|
	b _0801AD1A
 | 
						|
	.align 2, 0
 | 
						|
_0801AD0C: .4byte 0x0000FFFF
 | 
						|
_0801AD10: .4byte gUnk_080B44B8
 | 
						|
_0801AD14: .4byte gUnk_080B44C2
 | 
						|
_0801AD18:
 | 
						|
	adds r5, #0xc
 | 
						|
_0801AD1A:
 | 
						|
	ldrh r0, [r5]
 | 
						|
	cmp r0, r7
 | 
						|
	beq _0801AD44
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r0, r6, #0
 | 
						|
	movs r1, #2
 | 
						|
	bl GetTileType
 | 
						|
	cmp r4, r0
 | 
						|
	bne _0801AD18
 | 
						|
	ldrh r0, [r5, #0xa]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801AD68 @ =gUnk_080B44B8
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AD18
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r1, r6, #0
 | 
						|
	bl sub_0801AD6C
 | 
						|
_0801AD44:
 | 
						|
	mov r0, sl
 | 
						|
	mov r6, sb
 | 
						|
	cmp r0, r8
 | 
						|
	blo _0801ACC4
 | 
						|
_0801AD4C:
 | 
						|
	adds r0, r6, #0
 | 
						|
	adds r0, #0x40
 | 
						|
	mov r1, r8
 | 
						|
	subs r6, r0, r1
 | 
						|
	ldr r1, [sp, #4]
 | 
						|
	ldr r0, [sp]
 | 
						|
	cmp r1, r0
 | 
						|
	blo _0801ACBA
 | 
						|
_0801AD5C:
 | 
						|
	add sp, #8
 | 
						|
	pop {r3, r4, r5}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	mov sl, r5
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801AD68: .4byte gUnk_080B44B8
 | 
						|
 | 
						|
	thumb_func_start sub_0801AD6C
 | 
						|
sub_0801AD6C: @ 0x0801AD6C
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r6, r1, #0
 | 
						|
	ldrh r0, [r4, #2]
 | 
						|
	cmp r0, #9
 | 
						|
	beq _0801ADDC
 | 
						|
	bl GetEmptyEntity
 | 
						|
	adds r5, r0, #0
 | 
						|
	cmp r5, #0
 | 
						|
	beq _0801AE26
 | 
						|
	ldrh r0, [r4, #2]
 | 
						|
	strb r0, [r5, #8]
 | 
						|
	ldrh r0, [r4, #4]
 | 
						|
	strb r0, [r5, #9]
 | 
						|
	ldrh r0, [r4, #6]
 | 
						|
	strb r0, [r5, #0xa]
 | 
						|
	ldrh r0, [r4, #8]
 | 
						|
	strb r0, [r5, #0xb]
 | 
						|
	movs r1, #0x3f
 | 
						|
	adds r0, r6, #0
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #4
 | 
						|
	adds r0, #8
 | 
						|
	ldr r2, _0801ADD4 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	adds r1, r1, r0
 | 
						|
	movs r3, #0
 | 
						|
	strh r1, [r5, #0x2e]
 | 
						|
	movs r0, #0xfc
 | 
						|
	lsls r0, r0, #4
 | 
						|
	ands r0, r6
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	adds r0, #8
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r5, #0x32]
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	strb r3, [r0]
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_08016A30
 | 
						|
	ldr r1, _0801ADD8 @ =gUnk_081091E4
 | 
						|
	ldrb r0, [r5, #8]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0805EA2C
 | 
						|
	b _0801AE26
 | 
						|
	.align 2, 0
 | 
						|
_0801ADD4: .4byte gRoomControls
 | 
						|
_0801ADD8: .4byte gUnk_081091E4
 | 
						|
_0801ADDC:
 | 
						|
	bl sub_0805E8D4
 | 
						|
	adds r3, r0, #0
 | 
						|
	cmp r3, #0
 | 
						|
	beq _0801AE26
 | 
						|
	ldrh r0, [r4, #2]
 | 
						|
	strb r0, [r3, #8]
 | 
						|
	ldrh r0, [r4, #4]
 | 
						|
	strb r0, [r3, #9]
 | 
						|
	ldrh r0, [r4, #6]
 | 
						|
	strb r0, [r3, #0xa]
 | 
						|
	ldrh r0, [r4, #8]
 | 
						|
	strb r0, [r3, #0xb]
 | 
						|
	movs r1, #0x3f
 | 
						|
	adds r0, r6, #0
 | 
						|
	ands r0, r1
 | 
						|
	lsls r0, r0, #4
 | 
						|
	adds r0, #8
 | 
						|
	ldr r2, _0801AE28 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r3, #0x38]
 | 
						|
	movs r0, #0xfc
 | 
						|
	lsls r0, r0, #4
 | 
						|
	ands r0, r6
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	adds r0, #8
 | 
						|
	ldrh r1, [r2, #8]
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r1, [r3, #0x3a]
 | 
						|
	ldr r1, _0801AE2C @ =gUnk_081091E4
 | 
						|
	ldrb r0, [r3, #8]
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r0, r3, #0
 | 
						|
	bl sub_0805EA2C
 | 
						|
_0801AE26:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801AE28: .4byte gRoomControls
 | 
						|
_0801AE2C: .4byte gUnk_081091E4
 | 
						|
 | 
						|
	thumb_func_start sub_0801AE30
 | 
						|
sub_0801AE30: @ 0x0801AE30
 | 
						|
	movs r0, #1
 | 
						|
	bx lr
 | 
						|
 | 
						|
	thumb_func_start sub_0801AE34
 | 
						|
sub_0801AE34: @ 0x0801AE34
 | 
						|
	ldr r0, _0801AE40 @ =gRoomControls
 | 
						|
	ldrb r0, [r0, #0xf]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	movs r1, #1
 | 
						|
	ands r0, r1
 | 
						|
	bx lr
 | 
						|
	.align 2, 0
 | 
						|
_0801AE40: .4byte gRoomControls
 | 
						|
 | 
						|
	thumb_func_start sub_0801AE44
 | 
						|
sub_0801AE44: @ 0x0801AE44
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r1, _0801AEE0 @ =gRoomControls
 | 
						|
	movs r0, #0
 | 
						|
	str r0, [r1, #0x34]
 | 
						|
	bl sub_0807BFD0
 | 
						|
	cmp r4, #0
 | 
						|
	beq _0801AE5A
 | 
						|
	bl sub_0807C0DC
 | 
						|
_0801AE5A:
 | 
						|
	bl sub_080809D4
 | 
						|
	bl sub_080805F8
 | 
						|
	ldr r0, _0801AEE4 @ =gScreenTransition
 | 
						|
	adds r0, #0x2d
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AE70
 | 
						|
	bl sub_0807C898
 | 
						|
_0801AE70:
 | 
						|
	ldr r4, _0801AEE8 @ =gArea
 | 
						|
	ldrb r0, [r4, #0xc]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AE8C
 | 
						|
	ldr r1, _0801AEEC @ =0x0600F000
 | 
						|
	movs r2, #0x80
 | 
						|
	lsls r2, r2, #4
 | 
						|
	movs r0, #0xf
 | 
						|
	bl _DmaFill16
 | 
						|
	movs r0, #1
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	bl sub_0805BB74
 | 
						|
_0801AE8C:
 | 
						|
	movs r0, #5
 | 
						|
	bl GetCurrentRoomProperty
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AE9A
 | 
						|
	bl _call_via_r0
 | 
						|
_0801AE9A:
 | 
						|
	ldr r0, _0801AEF0 @ =gUnk_03004030
 | 
						|
	ldrb r0, [r0, #8]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801AEB6
 | 
						|
	ldr r1, _0801AEF4 @ =0x0000088C
 | 
						|
	adds r0, r4, r1
 | 
						|
	ldr r1, [r0]
 | 
						|
	cmp r1, #0
 | 
						|
	beq _0801AEB6
 | 
						|
	ldr r2, _0801AEF8 @ =0x00000888
 | 
						|
	adds r0, r4, r2
 | 
						|
	ldr r0, [r0]
 | 
						|
	bl _call_via_r1
 | 
						|
_0801AEB6:
 | 
						|
	ldr r0, _0801AEE0 @ =gRoomControls
 | 
						|
	ldrb r1, [r0, #0xf]
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801AF0C
 | 
						|
	ldr r1, _0801AEFC @ =gUnk_02025EB0
 | 
						|
	ldr r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AED0
 | 
						|
	ldr r0, _0801AF00 @ =gUnk_02019EE0
 | 
						|
	bl sub_0801AB08
 | 
						|
_0801AED0:
 | 
						|
	ldr r1, _0801AF04 @ =gUnk_0200B650
 | 
						|
	ldr r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801AF10
 | 
						|
	ldr r0, _0801AF08 @ =gUnk_02002F00
 | 
						|
	bl sub_0801AB08
 | 
						|
	b _0801AF10
 | 
						|
	.align 2, 0
 | 
						|
_0801AEE0: .4byte gRoomControls
 | 
						|
_0801AEE4: .4byte gScreenTransition
 | 
						|
_0801AEE8: .4byte gArea
 | 
						|
_0801AEEC: .4byte 0x0600F000
 | 
						|
_0801AEF0: .4byte gUnk_03004030
 | 
						|
_0801AEF4: .4byte 0x0000088C
 | 
						|
_0801AEF8: .4byte 0x00000888
 | 
						|
_0801AEFC: .4byte gUnk_02025EB0
 | 
						|
_0801AF00: .4byte gUnk_02019EE0
 | 
						|
_0801AF04: .4byte gUnk_0200B650
 | 
						|
_0801AF08: .4byte gUnk_02002F00
 | 
						|
_0801AF0C:
 | 
						|
	bl sub_0807C4F8
 | 
						|
_0801AF10:
 | 
						|
	bl sub_08000108
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801AF18
 | 
						|
sub_0801AF18: @ 0x0801AF18
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r6, r1, #0
 | 
						|
	adds r5, r2, #0
 | 
						|
	movs r1, #0
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	movs r1, #1
 | 
						|
	rsbs r1, r1, #0
 | 
						|
	cmp r0, r1
 | 
						|
	beq _0801AF46
 | 
						|
	adds r7, r1, #0
 | 
						|
_0801AF2E:
 | 
						|
	ldrh r0, [r4]
 | 
						|
	movs r2, #2
 | 
						|
	ldrsh r1, [r4, r2]
 | 
						|
	adds r1, r6, r1
 | 
						|
	adds r2, r5, #0
 | 
						|
	bl SetTile
 | 
						|
	adds r4, #4
 | 
						|
	movs r1, #0
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	cmp r0, r7
 | 
						|
	bne _0801AF2E
 | 
						|
_0801AF46:
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801AF48
 | 
						|
sub_0801AF48: @ 0x0801AF48
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r6, r1, #0
 | 
						|
	adds r5, r2, #0
 | 
						|
	ldr r0, _0801AF7C @ =0x00003FFF
 | 
						|
	cmp r4, r0
 | 
						|
	bhi _0801AF7A
 | 
						|
	ldr r0, _0801AF80 @ =gScreenTransition
 | 
						|
	adds r0, #0x30
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801AF7A
 | 
						|
	ldr r2, _0801AF84 @ =gRoomVars
 | 
						|
	ldrh r3, [r2, #0xe]
 | 
						|
	cmp r3, #0xff
 | 
						|
	bhi _0801AF7A
 | 
						|
	ldr r0, _0801AF88 @ =gUnk_0200B240
 | 
						|
	lsls r1, r3, #2
 | 
						|
	adds r1, r1, r0
 | 
						|
	strh r4, [r1, #2]
 | 
						|
	lsls r0, r5, #0xc
 | 
						|
	orrs r0, r6
 | 
						|
	strh r0, [r1]
 | 
						|
	adds r0, r3, #1
 | 
						|
	strh r0, [r2, #0xe]
 | 
						|
_0801AF7A:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801AF7C: .4byte 0x00003FFF
 | 
						|
_0801AF80: .4byte gScreenTransition
 | 
						|
_0801AF84: .4byte gRoomVars
 | 
						|
_0801AF88: .4byte gUnk_0200B240
 | 
						|
 | 
						|
	thumb_func_start DeleteLoadedTileEntity
 | 
						|
DeleteLoadedTileEntity: @ 0x0801AF8C
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	lsls r1, r1, #0xc
 | 
						|
	orrs r4, r1
 | 
						|
	ldr r2, _0801AFB8 @ =gUnk_0200B240
 | 
						|
	ldr r0, _0801AFBC @ =gRoomVars
 | 
						|
	ldrh r1, [r0, #0xe]
 | 
						|
	movs r3, #0
 | 
						|
	adds r5, r2, #0
 | 
						|
	cmp r3, r1
 | 
						|
	bhs _0801AFE0
 | 
						|
	ldrh r6, [r2]
 | 
						|
	cmp r4, r6
 | 
						|
	bne _0801AFC0
 | 
						|
	subs r1, #1
 | 
						|
	strh r1, [r0, #0xe]
 | 
						|
	lsls r0, r1, #2
 | 
						|
	adds r0, r0, r2
 | 
						|
	ldr r0, [r0]
 | 
						|
	str r0, [r2]
 | 
						|
	b _0801AFE0
 | 
						|
	.align 2, 0
 | 
						|
_0801AFB8: .4byte gUnk_0200B240
 | 
						|
_0801AFBC: .4byte gRoomVars
 | 
						|
_0801AFC0:
 | 
						|
	adds r2, #4
 | 
						|
	adds r3, #1
 | 
						|
	cmp r3, r1
 | 
						|
	bhs _0801AFE0
 | 
						|
	ldrh r6, [r2]
 | 
						|
	cmp r4, r6
 | 
						|
	bne _0801AFC0
 | 
						|
	subs r1, #1
 | 
						|
	strh r1, [r0, #0xe]
 | 
						|
	adds r2, r5, #0
 | 
						|
	lsls r0, r3, #2
 | 
						|
	adds r0, r0, r2
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldr r1, [r1]
 | 
						|
	str r1, [r0]
 | 
						|
_0801AFE0:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801AFE4
 | 
						|
sub_0801AFE4: @ 0x0801AFE4
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sl
 | 
						|
	mov r6, sb
 | 
						|
	mov r5, r8
 | 
						|
	push {r5, r6, r7}
 | 
						|
	ldr r3, _0801B018 @ =gUnk_02027EB4
 | 
						|
	ldr r0, _0801B01C @ =gRoomControls
 | 
						|
	ldrh r1, [r0, #0x1e]
 | 
						|
	lsrs r1, r1, #4
 | 
						|
	mov sl, r1
 | 
						|
	ldrh r0, [r0, #0x20]
 | 
						|
	lsrs r0, r0, #4
 | 
						|
	mov sb, r0
 | 
						|
	movs r7, #0
 | 
						|
	cmp r7, sb
 | 
						|
	bhs _0801B054
 | 
						|
_0801B004:
 | 
						|
	movs r2, #0
 | 
						|
	adds r0, r7, #1
 | 
						|
	mov r8, r0
 | 
						|
	cmp r2, sl
 | 
						|
	bhs _0801B046
 | 
						|
_0801B00E:
 | 
						|
	ldr r1, _0801B020 @ =gUnk_080B44D0
 | 
						|
	adds r4, r3, #1
 | 
						|
	adds r5, r2, #1
 | 
						|
	b _0801B026
 | 
						|
	.align 2, 0
 | 
						|
_0801B018: .4byte gUnk_02027EB4
 | 
						|
_0801B01C: .4byte gRoomControls
 | 
						|
_0801B020: .4byte gUnk_080B44D0
 | 
						|
_0801B024:
 | 
						|
	adds r1, #4
 | 
						|
_0801B026:
 | 
						|
	ldrh r0, [r1]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B03E
 | 
						|
	ldrb r6, [r3]
 | 
						|
	cmp r0, r6
 | 
						|
	bne _0801B024
 | 
						|
	ldrh r0, [r1, #2]
 | 
						|
	lsls r1, r7, #6
 | 
						|
	adds r1, r1, r2
 | 
						|
	movs r2, #1
 | 
						|
	bl SetTile
 | 
						|
_0801B03E:
 | 
						|
	adds r3, r4, #0
 | 
						|
	adds r2, r5, #0
 | 
						|
	cmp r2, sl
 | 
						|
	blo _0801B00E
 | 
						|
_0801B046:
 | 
						|
	adds r0, r3, #0
 | 
						|
	adds r0, #0x40
 | 
						|
	mov r1, sl
 | 
						|
	subs r3, r0, r1
 | 
						|
	mov r7, r8
 | 
						|
	cmp r7, sb
 | 
						|
	blo _0801B004
 | 
						|
_0801B054:
 | 
						|
	pop {r3, r4, r5}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	mov sl, r5
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B060
 | 
						|
sub_0801B060: @ 0x0801B060
 | 
						|
	push {r4, r5, lr}
 | 
						|
	movs r3, #0
 | 
						|
	ldr r4, _0801B0B0 @ =gUnk_02000CC0
 | 
						|
	movs r5, #8
 | 
						|
_0801B068:
 | 
						|
	ldr r2, [r4]
 | 
						|
	cmp r2, #0
 | 
						|
	beq _0801B0C2
 | 
						|
	ldrh r1, [r4, #6]
 | 
						|
	subs r0, r1, #1
 | 
						|
	strh r0, [r4, #6]
 | 
						|
	lsls r0, r0, #0x10
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B0BA
 | 
						|
	cmp r3, #0
 | 
						|
	bne _0801B0B8
 | 
						|
	ldr r0, _0801B0B4 @ =gUnk_03000FD0
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B08C
 | 
						|
	ldr r0, [r2]
 | 
						|
	bl sub_0801B0EC
 | 
						|
_0801B08C:
 | 
						|
	ldr r0, [r4]
 | 
						|
	adds r0, #4
 | 
						|
	bl sub_0801B0C4
 | 
						|
	strh r0, [r4, #6]
 | 
						|
	ldr r0, [r4]
 | 
						|
	adds r1, r0, #0
 | 
						|
	adds r1, #8
 | 
						|
	str r1, [r4]
 | 
						|
	ldr r0, [r0, #8]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B0AC
 | 
						|
	ldr r0, [r1, #4]
 | 
						|
	lsls r0, r0, #3
 | 
						|
	subs r0, r1, r0
 | 
						|
	str r0, [r4]
 | 
						|
_0801B0AC:
 | 
						|
	movs r3, #1
 | 
						|
	b _0801B0BA
 | 
						|
	.align 2, 0
 | 
						|
_0801B0B0: .4byte gUnk_02000CC0
 | 
						|
_0801B0B4: .4byte gUnk_03000FD0
 | 
						|
_0801B0B8:
 | 
						|
	strh r1, [r4, #6]
 | 
						|
_0801B0BA:
 | 
						|
	adds r4, #8
 | 
						|
	subs r5, #1
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801B068
 | 
						|
_0801B0C2:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B0C4
 | 
						|
sub_0801B0C4: @ 0x0801B0C4
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r0, [r4]
 | 
						|
	cmp r0, #0
 | 
						|
	bge _0801B0E6
 | 
						|
	bl Random
 | 
						|
	ldr r1, _0801B0E8 @ =gUnk_080B4550
 | 
						|
	ldrb r2, [r4]
 | 
						|
	lsls r2, r2, #2
 | 
						|
	adds r2, r2, r1
 | 
						|
	movs r1, #7
 | 
						|
	ands r1, r0
 | 
						|
	ldr r0, [r2]
 | 
						|
	lsls r1, r1, #1
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldrh r0, [r1]
 | 
						|
_0801B0E6:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B0E8: .4byte gUnk_080B4550
 | 
						|
 | 
						|
	thumb_func_start sub_0801B0EC
 | 
						|
sub_0801B0EC: @ 0x0801B0EC
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
_0801B0F0:
 | 
						|
	ldr r1, [r4, #4]
 | 
						|
	ldr r0, _0801B110 @ =gUnk_085A2E80
 | 
						|
	adds r5, r1, r0
 | 
						|
	ldrb r2, [r4, #2]
 | 
						|
	ldrh r3, [r4]
 | 
						|
	ldr r0, [r4]
 | 
						|
	lsrs r0, r0, #0x1c
 | 
						|
	movs r1, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B114
 | 
						|
	lsrs r1, r3, #5
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801D754
 | 
						|
	b _0801B122
 | 
						|
	.align 2, 0
 | 
						|
_0801B110: .4byte gUnk_085A2E80
 | 
						|
_0801B114:
 | 
						|
	movs r0, #0xc0
 | 
						|
	lsls r0, r0, #0x13
 | 
						|
	adds r1, r3, r0
 | 
						|
	lsls r2, r2, #5
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801D66C
 | 
						|
_0801B122:
 | 
						|
	ldr r0, [r4]
 | 
						|
	cmp r0, #0
 | 
						|
	bge _0801B12C
 | 
						|
	adds r4, #8
 | 
						|
	b _0801B0F0
 | 
						|
_0801B12C:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B130
 | 
						|
sub_0801B130: @ 0x0801B130
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	bl sub_0801B170
 | 
						|
	ldr r5, _0801B164 @ =gUnk_02000CC0
 | 
						|
	ldrh r0, [r4]
 | 
						|
	ldr r1, _0801B168 @ =0x0000FFFF
 | 
						|
	cmp r0, r1
 | 
						|
	beq _0801B162
 | 
						|
	ldr r7, _0801B16C @ =gUnk_080B7278
 | 
						|
	adds r6, r1, #0
 | 
						|
_0801B146:
 | 
						|
	ldrh r0, [r4]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	adds r0, r0, r7
 | 
						|
	ldr r0, [r0]
 | 
						|
	str r0, [r5]
 | 
						|
	adds r0, #4
 | 
						|
	bl sub_0801B0C4
 | 
						|
	strh r0, [r5, #6]
 | 
						|
	adds r5, #8
 | 
						|
	adds r4, #2
 | 
						|
	ldrh r0, [r4]
 | 
						|
	cmp r0, r6
 | 
						|
	bne _0801B146
 | 
						|
_0801B162:
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B164: .4byte gUnk_02000CC0
 | 
						|
_0801B168: .4byte 0x0000FFFF
 | 
						|
_0801B16C: .4byte gUnk_080B7278
 | 
						|
 | 
						|
	thumb_func_start sub_0801B170
 | 
						|
sub_0801B170: @ 0x0801B170
 | 
						|
	push {lr}
 | 
						|
	movs r1, #0
 | 
						|
	movs r2, #0
 | 
						|
	ldr r0, _0801B184 @ =gUnk_02000CC0
 | 
						|
_0801B178:
 | 
						|
	str r2, [r0]
 | 
						|
	adds r0, #8
 | 
						|
	adds r1, #1
 | 
						|
	cmp r1, #7
 | 
						|
	bls _0801B178
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B184: .4byte gUnk_02000CC0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B188
 | 
						|
sub_0801B188: @ 0x0801B188
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r0, _0801B1E0 @ =gUnk_080B77C8
 | 
						|
	ldrb r1, [r4, #0xc]
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r0
 | 
						|
	ldr r1, [r1]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl _call_via_r1
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl GetNextFrame
 | 
						|
	ldrb r2, [r4, #0xc]
 | 
						|
	cmp r2, #3
 | 
						|
	beq _0801B24E
 | 
						|
	ldrb r1, [r4, #0xe]
 | 
						|
	cmp r1, #0
 | 
						|
	beq _0801B1E4
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #7
 | 
						|
	bne _0801B1BC
 | 
						|
	subs r0, r1, #1
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
_0801B1BC:
 | 
						|
	ldrb r1, [r4, #0xe]
 | 
						|
	cmp r1, #0
 | 
						|
	bne _0801B24E
 | 
						|
	movs r0, #0x50
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
	str r1, [r4, #0x68]
 | 
						|
	ldrb r0, [r4, #0x19]
 | 
						|
	movs r1, #3
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x19]
 | 
						|
	movs r2, #0x80
 | 
						|
	lsls r2, r2, #1
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r1, r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl sub_0805EC9C
 | 
						|
	b _0801B24E
 | 
						|
	.align 2, 0
 | 
						|
_0801B1E0: .4byte gUnk_080B77C8
 | 
						|
_0801B1E4:
 | 
						|
	ldrb r0, [r4, #0xf]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B24E
 | 
						|
	subs r0, #1
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r1, r0, #0x18
 | 
						|
	cmp r1, #0
 | 
						|
	bne _0801B248
 | 
						|
	cmp r2, #2
 | 
						|
	bne _0801B204
 | 
						|
	ldrb r0, [r4, #0xd]
 | 
						|
	cmp r0, #1
 | 
						|
	bne _0801B204
 | 
						|
	ldr r0, _0801B244 @ =gLinkState
 | 
						|
	strb r1, [r0, #5]
 | 
						|
_0801B204:
 | 
						|
	movs r0, #3
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	adds r2, r4, #0
 | 
						|
	adds r2, #0x29
 | 
						|
	ldrb r1, [r2]
 | 
						|
	subs r0, #0x3c
 | 
						|
	ands r0, r1
 | 
						|
	movs r1, #0x10
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r2]
 | 
						|
	movs r0, #0xf
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	ldrb r1, [r4, #0x18]
 | 
						|
	subs r0, #0x13
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r4, #0x18]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0805EC60
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08078954
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x20
 | 
						|
	movs r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B418
 | 
						|
	b _0801B24E
 | 
						|
	.align 2, 0
 | 
						|
_0801B244: .4byte gLinkState
 | 
						|
_0801B248:
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B3A4
 | 
						|
_0801B24E:
 | 
						|
	pop {r4, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B250
 | 
						|
sub_0801B250: @ 0x0801B250
 | 
						|
	push {lr}
 | 
						|
	adds r2, r0, #0
 | 
						|
	ldrb r1, [r2, #0x18]
 | 
						|
	movs r0, #4
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	ands r0, r1
 | 
						|
	movs r1, #1
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r2, #0x18]
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	adds r3, r2, #0
 | 
						|
	adds r3, #0x29
 | 
						|
	ldrb r1, [r3]
 | 
						|
	subs r0, #0x3a
 | 
						|
	ands r0, r1
 | 
						|
	movs r1, #0x18
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r3]
 | 
						|
	ldrb r1, [r2, #0x10]
 | 
						|
	movs r0, #0x7f
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r2, #0x10]
 | 
						|
	ldrb r1, [r2, #0xa]
 | 
						|
	adds r0, r1, #0
 | 
						|
	cmp r0, #0xff
 | 
						|
	bne _0801B28A
 | 
						|
	movs r0, #0x3c
 | 
						|
	b _0801B29C
 | 
						|
_0801B28A:
 | 
						|
	cmp r0, #0xfe
 | 
						|
	bne _0801B29A
 | 
						|
	movs r0, #0xf
 | 
						|
	strb r0, [r2, #0xe]
 | 
						|
	movs r0, #0xff
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r2, #0xa]
 | 
						|
	b _0801B29E
 | 
						|
_0801B29A:
 | 
						|
	movs r0, #0x96
 | 
						|
_0801B29C:
 | 
						|
	strb r0, [r2, #0xe]
 | 
						|
_0801B29E:
 | 
						|
	ldr r0, _0801B2BC @ =gUnk_080B77F4
 | 
						|
	str r0, [r2, #0x48]
 | 
						|
	movs r0, #0
 | 
						|
	strb r0, [r2, #0x16]
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #7
 | 
						|
	bne _0801B2C0
 | 
						|
	adds r0, r2, #0
 | 
						|
	movs r1, #5
 | 
						|
	bl InitializeAnimation
 | 
						|
	b _0801B2C8
 | 
						|
	.align 2, 0
 | 
						|
_0801B2BC: .4byte gUnk_080B77F4
 | 
						|
_0801B2C0:
 | 
						|
	adds r0, r2, #0
 | 
						|
	movs r1, #0x15
 | 
						|
	bl InitializeAnimation
 | 
						|
_0801B2C8:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B2CC
 | 
						|
sub_0801B2CC: @ 0x0801B2CC
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	bl sub_0800442E
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B2DE
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08078930
 | 
						|
_0801B2DE:
 | 
						|
	movs r0, #8
 | 
						|
	bl IsItemEquipped
 | 
						|
	cmp r0, #1
 | 
						|
	beq _0801B2F6
 | 
						|
	cmp r0, #1
 | 
						|
	blo _0801B2F2
 | 
						|
	cmp r0, #2
 | 
						|
	beq _0801B2FA
 | 
						|
	b _0801B2FC
 | 
						|
_0801B2F2:
 | 
						|
	movs r5, #1
 | 
						|
	b _0801B2FC
 | 
						|
_0801B2F6:
 | 
						|
	movs r5, #2
 | 
						|
	b _0801B2FC
 | 
						|
_0801B2FA:
 | 
						|
	movs r5, #0
 | 
						|
_0801B2FC:
 | 
						|
	ldr r0, _0801B314 @ =gLinkState
 | 
						|
	adds r0, #0x92
 | 
						|
	ldrh r0, [r0]
 | 
						|
	ands r5, r0
 | 
						|
	cmp r5, #0
 | 
						|
	beq _0801B310
 | 
						|
	movs r0, #0
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
_0801B310:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B314: .4byte gLinkState
 | 
						|
 | 
						|
	thumb_func_start sub_0801B318
 | 
						|
sub_0801B318: @ 0x0801B318
 | 
						|
	push {lr}
 | 
						|
	ldr r2, _0801B32C @ =gUnk_080B77D8
 | 
						|
	ldrb r1, [r0, #0xd]
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldr r1, [r1]
 | 
						|
	bl _call_via_r1
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B32C: .4byte gUnk_080B77D8
 | 
						|
 | 
						|
	thumb_func_start sub_0801B330
 | 
						|
sub_0801B330: @ 0x0801B330
 | 
						|
	push {lr}
 | 
						|
	ldrb r1, [r0, #0xd]
 | 
						|
	adds r1, #1
 | 
						|
	strb r1, [r0, #0xd]
 | 
						|
	bl sub_08079BD8
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B340
 | 
						|
sub_0801B340: @ 0x0801B340
 | 
						|
	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_0801B354
 | 
						|
sub_0801B354: @ 0x0801B354
 | 
						|
	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_0801B368
 | 
						|
sub_0801B368: @ 0x0801B368
 | 
						|
	push {lr}
 | 
						|
	adds r2, r0, #0
 | 
						|
	ldrb r0, [r2, #0xc]
 | 
						|
	subs r0, #1
 | 
						|
	movs r1, #0
 | 
						|
	strb r0, [r2, #0xc]
 | 
						|
	strb r1, [r2, #0xd]
 | 
						|
	ldrb r0, [r2, #0xe]
 | 
						|
	cmp r0, #0x3c
 | 
						|
	bls _0801B380
 | 
						|
	movs r0, #0x3c
 | 
						|
	strb r0, [r2, #0xe]
 | 
						|
_0801B380:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B384
 | 
						|
sub_0801B384: @ 0x0801B384
 | 
						|
	push {lr}
 | 
						|
	bl DeleteThisEntity
 | 
						|
	pop {pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B38C
 | 
						|
sub_0801B38C: @ 0x0801B38C
 | 
						|
	push {lr}
 | 
						|
	ldrb r1, [r0, #0xe]
 | 
						|
	subs r1, #1
 | 
						|
	strb r1, [r0, #0xe]
 | 
						|
	lsls r1, r1, #0x18
 | 
						|
	lsrs r1, r1, #0x18
 | 
						|
	cmp r1, #0xff
 | 
						|
	bne _0801B3A0
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801B3A0:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B3A4
 | 
						|
sub_0801B3A4: @ 0x0801B3A4
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldrb r0, [r4, #0xf]
 | 
						|
	movs r5, #8
 | 
						|
	cmp r0, #0x28
 | 
						|
	bhi _0801B3F4
 | 
						|
	movs r5, #4
 | 
						|
	ldr r1, [r4, #0x68]
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #8
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B3C4
 | 
						|
	adds r0, r1, #0
 | 
						|
	subs r0, #0x10
 | 
						|
	b _0801B3C8
 | 
						|
_0801B3C4:
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r0, #0x10
 | 
						|
_0801B3C8:
 | 
						|
	str r0, [r4, #0x68]
 | 
						|
	ldr r1, [r4, #0x68]
 | 
						|
	movs r2, #0xf0
 | 
						|
	adds r0, r1, #0
 | 
						|
	ands r0, r2
 | 
						|
	subs r0, #1
 | 
						|
	cmp r0, #0x7f
 | 
						|
	bls _0801B3E0
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #8
 | 
						|
	eors r1, r0
 | 
						|
	str r1, [r4, #0x68]
 | 
						|
_0801B3E0:
 | 
						|
	ldr r0, [r4, #0x68]
 | 
						|
	ands r0, r2
 | 
						|
	movs r2, #0x98
 | 
						|
	lsls r2, r2, #1
 | 
						|
	subs r2, r2, r0
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r1, r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl sub_0805EC9C
 | 
						|
_0801B3F4:
 | 
						|
	ldrb r0, [r4, #0xf]
 | 
						|
	ands r0, r5
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B408
 | 
						|
	ldrb r1, [r4, #0x1a]
 | 
						|
	movs r0, #0x10
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r4, #0x1a]
 | 
						|
	b _0801B416
 | 
						|
_0801B408:
 | 
						|
	ldrb r0, [r4, #0x1a]
 | 
						|
	lsrs r2, r0, #4
 | 
						|
	movs r1, #0x10
 | 
						|
	rsbs r1, r1, #0
 | 
						|
	ands r1, r0
 | 
						|
	orrs r1, r2
 | 
						|
	strb r1, [r4, #0x1a]
 | 
						|
_0801B416:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B418
 | 
						|
sub_0801B418: @ 0x0801B418
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	mov r7, sb
 | 
						|
	mov r6, r8
 | 
						|
	push {r6, r7}
 | 
						|
	adds r5, r0, #0
 | 
						|
	movs r6, #0x10
 | 
						|
	movs r0, #0x10
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	mov sb, r0
 | 
						|
	mov r8, sb
 | 
						|
_0801B42C:
 | 
						|
	movs r4, #0x10
 | 
						|
	adds r7, r6, #0
 | 
						|
	subs r7, #0x10
 | 
						|
_0801B432:
 | 
						|
	movs r0, #0x2e
 | 
						|
	ldrsh r2, [r5, r0]
 | 
						|
	adds r2, r2, r4
 | 
						|
	movs r0, #0x32
 | 
						|
	ldrsh r3, [r5, r0]
 | 
						|
	adds r3, r3, r6
 | 
						|
	adds r0, r5, #0
 | 
						|
	movs r1, #3
 | 
						|
	bl sub_08008796
 | 
						|
	subs r4, #0x10
 | 
						|
	cmp r4, r8
 | 
						|
	bge _0801B432
 | 
						|
	adds r6, r7, #0
 | 
						|
	cmp r6, sb
 | 
						|
	bge _0801B42C
 | 
						|
	pop {r3, r4}
 | 
						|
	mov r8, r3
 | 
						|
	mov sb, r4
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B45C
 | 
						|
sub_0801B45C: @ 0x0801B45C
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r1, _0801B48C @ =gUnk_080B77FC
 | 
						|
	ldrb r0, [r4, #0xc]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r1, [r0]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl _call_via_r1
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x58
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xb
 | 
						|
	beq _0801B4AC
 | 
						|
	ldrb r0, [r4, #0x14]
 | 
						|
	cmp r0, #6
 | 
						|
	bne _0801B490
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x86
 | 
						|
	movs r2, #0x80
 | 
						|
	lsls r2, r2, #6
 | 
						|
	b _0801B496
 | 
						|
	.align 2, 0
 | 
						|
_0801B48C: .4byte gUnk_080B77FC
 | 
						|
_0801B490:
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x86
 | 
						|
	ldr r2, _0801B4C4 @ =0xFFFFE000
 | 
						|
_0801B496:
 | 
						|
	adds r0, r2, #0
 | 
						|
	ldrh r2, [r1]
 | 
						|
	adds r0, r0, r2
 | 
						|
	strh r0, [r1]
 | 
						|
	movs r2, #0x80
 | 
						|
	lsls r2, r2, #1
 | 
						|
	ldrh r3, [r1]
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r1, r2, #0
 | 
						|
	bl sub_0805EC9C
 | 
						|
_0801B4AC:
 | 
						|
	ldrb r0, [r4, #0xf]
 | 
						|
	subs r0, #1
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
	movs r1, #0xf
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B4C0
 | 
						|
	movs r0, #0xfb
 | 
						|
	bl sub_08004488
 | 
						|
_0801B4C0:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B4C4: .4byte 0xFFFFE000
 | 
						|
 | 
						|
	thumb_func_start sub_0801B4C8
 | 
						|
sub_0801B4C8: @ 0x0801B4C8
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r3, _0801B52C @ =gLinkState
 | 
						|
	str r4, [r3, #0x2c]
 | 
						|
	movs r2, #0
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	ldr r0, _0801B530 @ =gUnk_081271CC
 | 
						|
	str r0, [r4, #0x48]
 | 
						|
	movs r0, #0xff
 | 
						|
	strb r0, [r4, #0x1e]
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x80
 | 
						|
	strb r2, [r0]
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x58
 | 
						|
	movs r0, #0xb
 | 
						|
	strb r0, [r1]
 | 
						|
	ldr r5, _0801B534 @ =gLinkEntity
 | 
						|
	str r5, [r4, #0x50]
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x86
 | 
						|
	strh r2, [r0]
 | 
						|
	ldrb r1, [r4, #0x14]
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B518
 | 
						|
	ldrb r0, [r5, #0x18]
 | 
						|
	lsls r0, r0, #0x19
 | 
						|
	lsrs r0, r0, #0x1f
 | 
						|
	movs r1, #1
 | 
						|
	bics r1, r0
 | 
						|
	lsls r1, r1, #6
 | 
						|
	ldrb r2, [r4, #0x18]
 | 
						|
	movs r0, #0x41
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	ands r0, r2
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x18]
 | 
						|
_0801B518:
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xc
 | 
						|
	bne _0801B538
 | 
						|
	movs r0, #0xa0
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strh r0, [r4, #0x24]
 | 
						|
	movs r0, #0x3c
 | 
						|
	b _0801B540
 | 
						|
	.align 2, 0
 | 
						|
_0801B52C: .4byte gLinkState
 | 
						|
_0801B530: .4byte gUnk_081271CC
 | 
						|
_0801B534: .4byte gLinkEntity
 | 
						|
_0801B538:
 | 
						|
	movs r0, #0x80
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strh r0, [r4, #0x24]
 | 
						|
	movs r0, #0x1e
 | 
						|
_0801B540:
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	ldrb r1, [r3, #0xd]
 | 
						|
	movs r0, #0xd
 | 
						|
	ldrsb r0, [r3, r0]
 | 
						|
	cmp r0, #0
 | 
						|
	blt _0801B550
 | 
						|
	strb r1, [r4, #0x15]
 | 
						|
	b _0801B556
 | 
						|
_0801B550:
 | 
						|
	ldrb r0, [r4, #0x14]
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strb r0, [r4, #0x15]
 | 
						|
_0801B556:
 | 
						|
	ldrb r0, [r4, #0x15]
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x83
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x38
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #2
 | 
						|
	bne _0801B56C
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xb]
 | 
						|
_0801B56C:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #1
 | 
						|
	movs r2, #3
 | 
						|
	bl sub_080AE008
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801766C
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B584
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B584
 | 
						|
sub_0801B584: @ 0x0801B584
 | 
						|
	push {r4, r5, r6, r7, lr}
 | 
						|
	adds r6, r0, #0
 | 
						|
	bl sub_0801B804
 | 
						|
	ldr r1, _0801B5F8 @ =gLinkState
 | 
						|
	ldrb r0, [r1, #4]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B5A8
 | 
						|
	ldrb r0, [r1, #0x1a]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B5A8
 | 
						|
	ldr r0, [r1, #0x2c]
 | 
						|
	cmp r0, r6
 | 
						|
	bne _0801B5B4
 | 
						|
	ldr r0, _0801B5FC @ =gLinkEntity
 | 
						|
	ldrb r0, [r0, #0xc]
 | 
						|
	cmp r0, #1
 | 
						|
	beq _0801B5B8
 | 
						|
_0801B5A8:
 | 
						|
	ldr r1, _0801B5F8 @ =gLinkState
 | 
						|
	ldr r0, [r1, #0x2c]
 | 
						|
	cmp r0, r6
 | 
						|
	bne _0801B5B4
 | 
						|
	movs r0, #0
 | 
						|
	str r0, [r1, #0x2c]
 | 
						|
_0801B5B4:
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801B5B8:
 | 
						|
	ldr r7, _0801B5FC @ =gLinkEntity
 | 
						|
	adds r0, r7, #0
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r3, #1
 | 
						|
	movs r0, #1
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B600
 | 
						|
	adds r0, r6, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	movs r2, #0
 | 
						|
	cmp r0, #0xc
 | 
						|
	bne _0801B5D8
 | 
						|
	movs r2, #6
 | 
						|
_0801B5D8:
 | 
						|
	lsrs r0, r1, #4
 | 
						|
	adds r1, r0, r2
 | 
						|
	ldrb r0, [r6, #0x1e]
 | 
						|
	cmp r0, r1
 | 
						|
	beq _0801B5EE
 | 
						|
	strb r1, [r6, #0x1e]
 | 
						|
	ldrb r1, [r6, #0x1e]
 | 
						|
	ldrh r2, [r6, #0x12]
 | 
						|
	adds r0, r6, #0
 | 
						|
	bl sub_080042D0
 | 
						|
_0801B5EE:
 | 
						|
	adds r0, r6, #0
 | 
						|
	adds r1, r7, #0
 | 
						|
	bl sub_08078E84
 | 
						|
	b _0801B674
 | 
						|
	.align 2, 0
 | 
						|
_0801B5F8: .4byte gLinkState
 | 
						|
_0801B5FC: .4byte gLinkEntity
 | 
						|
_0801B600:
 | 
						|
	movs r5, #0
 | 
						|
	movs r0, #2
 | 
						|
	strb r0, [r6, #0xc]
 | 
						|
	adds r1, r6, #0
 | 
						|
	adds r1, #0x60
 | 
						|
	movs r0, #0xd5
 | 
						|
	strh r0, [r1]
 | 
						|
	ldrb r0, [r6, #0x10]
 | 
						|
	movs r4, #0x80
 | 
						|
	orrs r0, r4
 | 
						|
	strb r0, [r6, #0x10]
 | 
						|
	subs r1, #0x24
 | 
						|
	ldrb r0, [r1]
 | 
						|
	orrs r0, r3
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r0, r7, #0
 | 
						|
	adds r0, #0x3b
 | 
						|
	ldrb r0, [r0]
 | 
						|
	adds r2, r6, #0
 | 
						|
	adds r2, #0x3b
 | 
						|
	strb r0, [r2]
 | 
						|
	movs r0, #0xa6
 | 
						|
	strh r0, [r6, #0x12]
 | 
						|
	ldrb r1, [r6, #0x18]
 | 
						|
	subs r0, #0xe7
 | 
						|
	ands r0, r1
 | 
						|
	movs r1, #4
 | 
						|
	rsbs r1, r1, #0
 | 
						|
	ands r0, r1
 | 
						|
	orrs r0, r3
 | 
						|
	strb r0, [r6, #0x18]
 | 
						|
	ldrb r1, [r6, #0x14]
 | 
						|
	lsrs r1, r1, #1
 | 
						|
	lsls r1, r1, #1
 | 
						|
	ldr r2, _0801B678 @ =gUnk_080B7826
 | 
						|
	adds r0, r1, r2
 | 
						|
	ldrb r0, [r0]
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	asrs r0, r0, #0x18
 | 
						|
	ldrh r3, [r6, #0x2e]
 | 
						|
	adds r0, r0, r3
 | 
						|
	strh r0, [r6, #0x2e]
 | 
						|
	adds r1, #1
 | 
						|
	adds r1, r1, r2
 | 
						|
	movs r0, #0
 | 
						|
	ldrsb r0, [r1, r0]
 | 
						|
	ldrh r1, [r6, #0x32]
 | 
						|
	adds r0, r0, r1
 | 
						|
	strh r0, [r6, #0x32]
 | 
						|
	adds r0, r6, #0
 | 
						|
	movs r1, #0
 | 
						|
	bl InitializeAnimation
 | 
						|
	ldr r0, _0801B67C @ =gLinkState
 | 
						|
	str r5, [r0, #0x2c]
 | 
						|
	ldrb r1, [r0, #4]
 | 
						|
	orrs r4, r1
 | 
						|
	strb r4, [r0, #4]
 | 
						|
_0801B674:
 | 
						|
	pop {r4, r5, r6, r7, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B678: .4byte gUnk_080B7826
 | 
						|
_0801B67C: .4byte gLinkState
 | 
						|
 | 
						|
	thumb_func_start sub_0801B680
 | 
						|
sub_0801B680: @ 0x0801B680
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	bl sub_0801B804
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xc
 | 
						|
	bne _0801B6DC
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x80
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B6DC
 | 
						|
	ldr r3, _0801B6C4 @ =gLinkState
 | 
						|
	ldrb r1, [r3, #0xd]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B6DC
 | 
						|
	adds r2, r4, #0
 | 
						|
	adds r2, #0x83
 | 
						|
	ldrb r0, [r2]
 | 
						|
	ldrb r1, [r3, #0xd]
 | 
						|
	subs r0, r0, r1
 | 
						|
	movs r3, #0x1f
 | 
						|
	ands r0, r3
 | 
						|
	cmp r0, #0x10
 | 
						|
	ble _0801B6C8
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x82
 | 
						|
	ldrh r0, [r1]
 | 
						|
	adds r0, #0x40
 | 
						|
	b _0801B6D0
 | 
						|
	.align 2, 0
 | 
						|
_0801B6C4: .4byte gLinkState
 | 
						|
_0801B6C8:
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x82
 | 
						|
	ldrh r0, [r1]
 | 
						|
	subs r0, #0x40
 | 
						|
_0801B6D0:
 | 
						|
	strh r0, [r1]
 | 
						|
	ldrb r1, [r2]
 | 
						|
	adds r0, r3, #0
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r2]
 | 
						|
	strb r0, [r4, #0x15]
 | 
						|
_0801B6DC:
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0806F69C
 | 
						|
	movs r5, #0
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B864
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B6FE
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #0xc
 | 
						|
	eors r1, r0
 | 
						|
	rsbs r0, r1, #0
 | 
						|
	orrs r0, r1
 | 
						|
	lsrs r5, r0, #0x1f
 | 
						|
_0801B6FE:
 | 
						|
	movs r1, #0x2e
 | 
						|
	ldrsh r0, [r4, r1]
 | 
						|
	ldr r2, _0801B780 @ =gRoomControls
 | 
						|
	ldrh r1, [r2, #6]
 | 
						|
	subs r0, r0, r1
 | 
						|
	asrs r0, r0, #4
 | 
						|
	movs r3, #0x3f
 | 
						|
	ands r0, r3
 | 
						|
	movs r6, #0x32
 | 
						|
	ldrsh r1, [r4, r6]
 | 
						|
	ldrh r2, [r2, #8]
 | 
						|
	subs r1, r1, r2
 | 
						|
	asrs r1, r1, #4
 | 
						|
	ands r1, r3
 | 
						|
	lsls r1, r1, #6
 | 
						|
	orrs r0, r1
 | 
						|
	ldr r1, _0801B784 @ =gLinkEntity
 | 
						|
	adds r1, #0x38
 | 
						|
	ldrb r1, [r1]
 | 
						|
	movs r2, #0x80
 | 
						|
	bl sub_080002F0
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B73C
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801B790
 | 
						|
	ldr r1, _0801B788 @ =gUnk_08003E44
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_080040E2
 | 
						|
	adds r5, r0, #0
 | 
						|
_0801B73C:
 | 
						|
	cmp r5, #0
 | 
						|
	bne _0801B790
 | 
						|
	ldrb r0, [r4, #0xe]
 | 
						|
	subs r0, #1
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r0, r0, #0x18
 | 
						|
	cmp r0, #0xb
 | 
						|
	bhi _0801B754
 | 
						|
	ldrh r0, [r4, #0x24]
 | 
						|
	subs r0, #0x10
 | 
						|
	strh r0, [r4, #0x24]
 | 
						|
_0801B754:
 | 
						|
	ldrb r0, [r4, #0xe]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B75C
 | 
						|
	movs r5, #1
 | 
						|
_0801B75C:
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x41
 | 
						|
	ldrb r1, [r0]
 | 
						|
	movs r0, #0x80
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B76C
 | 
						|
	movs r5, #1
 | 
						|
_0801B76C:
 | 
						|
	cmp r5, #0
 | 
						|
	beq _0801B7A4
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0xc
 | 
						|
	bne _0801B78C
 | 
						|
	movs r0, #0x1e
 | 
						|
	b _0801B792
 | 
						|
	.align 2, 0
 | 
						|
_0801B780: .4byte gRoomControls
 | 
						|
_0801B784: .4byte gLinkEntity
 | 
						|
_0801B788: .4byte gUnk_08003E44
 | 
						|
_0801B78C:
 | 
						|
	movs r0, #0xc
 | 
						|
	b _0801B792
 | 
						|
_0801B790:
 | 
						|
	movs r0, #1
 | 
						|
_0801B792:
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	cmp r5, #0
 | 
						|
	beq _0801B7A4
 | 
						|
	ldrb r0, [r4, #0xc]
 | 
						|
	adds r0, #1
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	movs r0, #0xe0
 | 
						|
	lsls r0, r0, #1
 | 
						|
	strh r0, [r4, #0x24]
 | 
						|
_0801B7A4:
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B7A8
 | 
						|
sub_0801B7A8: @ 0x0801B7A8
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	bl sub_0801B804
 | 
						|
	ldrb r0, [r5, #0xe]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B7BC
 | 
						|
	subs r0, #1
 | 
						|
	strb r0, [r5, #0xe]
 | 
						|
	b _0801B7FA
 | 
						|
_0801B7BC:
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801B864
 | 
						|
	ldrh r2, [r5, #0x24]
 | 
						|
	movs r0, #0x24
 | 
						|
	ldrsh r1, [r5, r0]
 | 
						|
	ldr r0, _0801B7FC @ =0x0000027F
 | 
						|
	cmp r1, r0
 | 
						|
	bgt _0801B7D4
 | 
						|
	adds r0, r2, #0
 | 
						|
	adds r0, #8
 | 
						|
	strh r0, [r5, #0x24]
 | 
						|
_0801B7D4:
 | 
						|
	ldr r4, _0801B800 @ =gLinkEntity
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r1, r4, #0
 | 
						|
	bl GetFacingDirection
 | 
						|
	strb r0, [r5, #0x15]
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0806F69C
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r1, r4, #0
 | 
						|
	movs r2, #2
 | 
						|
	movs r3, #2
 | 
						|
	bl sub_0800419C
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B7FA
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801B7FA:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B7FC: .4byte 0x0000027F
 | 
						|
_0801B800: .4byte gLinkEntity
 | 
						|
 | 
						|
	thumb_func_start sub_0801B804
 | 
						|
sub_0801B804: @ 0x0801B804
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	movs r0, #0xc
 | 
						|
	bl IsItemEquipped
 | 
						|
	cmp r0, #1
 | 
						|
	beq _0801B820
 | 
						|
	cmp r0, #1
 | 
						|
	blo _0801B81C
 | 
						|
	cmp r0, #2
 | 
						|
	beq _0801B824
 | 
						|
	b _0801B826
 | 
						|
_0801B81C:
 | 
						|
	movs r4, #1
 | 
						|
	b _0801B826
 | 
						|
_0801B820:
 | 
						|
	movs r4, #2
 | 
						|
	b _0801B826
 | 
						|
_0801B824:
 | 
						|
	movs r4, #0
 | 
						|
_0801B826:
 | 
						|
	ldr r3, _0801B850 @ =gLinkState
 | 
						|
	adds r0, r3, #0
 | 
						|
	adds r0, #0x90
 | 
						|
	ldrh r0, [r0]
 | 
						|
	ands r4, r0
 | 
						|
	cmp r4, #0
 | 
						|
	bne _0801B854
 | 
						|
	adds r1, r5, #0
 | 
						|
	adds r1, #0x80
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r1]
 | 
						|
	ldrb r2, [r3, #0xa]
 | 
						|
	movs r1, #0x7f
 | 
						|
	adds r0, r1, #0
 | 
						|
	ands r0, r2
 | 
						|
	strb r0, [r3, #0xa]
 | 
						|
	ldrb r0, [r3, #0xb]
 | 
						|
	ands r1, r0
 | 
						|
	strb r1, [r3, #0xb]
 | 
						|
	b _0801B862
 | 
						|
	.align 2, 0
 | 
						|
_0801B850: .4byte gLinkState
 | 
						|
_0801B854:
 | 
						|
	ldrb r1, [r3, #0xa]
 | 
						|
	movs r0, #0x80
 | 
						|
	orrs r1, r0
 | 
						|
	strb r1, [r3, #0xa]
 | 
						|
	ldrb r1, [r3, #0xb]
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r3, #0xb]
 | 
						|
_0801B862:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801B864
 | 
						|
sub_0801B864: @ 0x0801B864
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldrb r0, [r4, #0xb]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B874
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0800451C
 | 
						|
_0801B874:
 | 
						|
	ldrb r0, [r4, #0x15]
 | 
						|
	lsrs r0, r0, #2
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r3, _0801B894 @ =gUnk_080B782E
 | 
						|
	adds r1, r0, r3
 | 
						|
	movs r2, #0
 | 
						|
	ldrsb r2, [r1, r2]
 | 
						|
	adds r0, #1
 | 
						|
	adds r0, r0, r3
 | 
						|
	movs r3, #0
 | 
						|
	ldrsb r3, [r0, r3]
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #2
 | 
						|
	bl sub_08008782
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B894: .4byte gUnk_080B782E
 | 
						|
 | 
						|
	thumb_func_start sub_0801B898
 | 
						|
sub_0801B898: @ 0x0801B898
 | 
						|
	push {lr}
 | 
						|
	ldr r2, _0801B8AC @ =gUnk_080B7840
 | 
						|
	ldrb r1, [r0, #0xc]
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldr r1, [r1]
 | 
						|
	bl _call_via_r1
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B8AC: .4byte gUnk_080B7840
 | 
						|
 | 
						|
	thumb_func_start sub_0801B8B0
 | 
						|
sub_0801B8B0: @ 0x0801B8B0
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r1, _0801B8F0 @ =gLinkState
 | 
						|
	ldrb r0, [r1, #0x1e]
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B8F4
 | 
						|
	str r4, [r1, #0x2c]
 | 
						|
	ldrb r1, [r4, #0x10]
 | 
						|
	movs r0, #0x20
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x10]
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x3b
 | 
						|
	movs r0, #8
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #1
 | 
						|
	movs r2, #3
 | 
						|
	bl sub_080AE008
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08079BD8
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801766C
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B8FC
 | 
						|
	b _0801B8F8
 | 
						|
	.align 2, 0
 | 
						|
_0801B8F0: .4byte gLinkState
 | 
						|
_0801B8F4:
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801B8F8:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B8FC
 | 
						|
sub_0801B8FC: @ 0x0801B8FC
 | 
						|
	push {lr}
 | 
						|
	ldr r1, _0801B90C @ =gLinkState
 | 
						|
	ldr r2, [r1, #0x2c]
 | 
						|
	cmp r2, r0
 | 
						|
	beq _0801B910
 | 
						|
	bl DeleteThisEntity
 | 
						|
	b _0801B934
 | 
						|
	.align 2, 0
 | 
						|
_0801B90C: .4byte gLinkState
 | 
						|
_0801B910:
 | 
						|
	ldrb r0, [r1, #0x1e]
 | 
						|
	cmp r0, #0
 | 
						|
	bne _0801B91E
 | 
						|
	str r0, [r1, #0x2c]
 | 
						|
	bl DeleteThisEntity
 | 
						|
	b _0801B934
 | 
						|
_0801B91E:
 | 
						|
	ldrb r1, [r2, #0x10]
 | 
						|
	movs r0, #0x80
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r2, #0x10]
 | 
						|
	adds r1, r2, #0
 | 
						|
	adds r1, #0x3c
 | 
						|
	movs r0, #0x21
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r0, r2, #0
 | 
						|
	bl sub_0801B938
 | 
						|
_0801B934:
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
 | 
						|
	thumb_func_start sub_0801B938
 | 
						|
sub_0801B938: @ 0x0801B938
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldrb r1, [r4, #0x14]
 | 
						|
	movs r0, #2
 | 
						|
	ands r0, r1
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801B960
 | 
						|
	ldr r3, _0801B95C @ =gLinkEntity
 | 
						|
	ldrb r1, [r3, #0x18]
 | 
						|
	lsls r1, r1, #0x19
 | 
						|
	lsrs r1, r1, #0x1f
 | 
						|
	movs r0, #1
 | 
						|
	eors r1, r0
 | 
						|
	lsls r1, r1, #6
 | 
						|
	ldrb r2, [r4, #0x18]
 | 
						|
	subs r0, #0x42
 | 
						|
	b _0801B96E
 | 
						|
	.align 2, 0
 | 
						|
_0801B95C: .4byte gLinkEntity
 | 
						|
_0801B960:
 | 
						|
	ldr r3, _0801B998 @ =gLinkEntity
 | 
						|
	ldrb r0, [r3, #0x18]
 | 
						|
	movs r1, #0x40
 | 
						|
	ands r1, r0
 | 
						|
	ldrb r2, [r4, #0x18]
 | 
						|
	movs r0, #0x41
 | 
						|
	rsbs r0, r0, #0
 | 
						|
_0801B96E:
 | 
						|
	ands r0, r2
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x18]
 | 
						|
	adds r0, r3, #0
 | 
						|
	adds r0, #0x58
 | 
						|
	ldrb r0, [r0]
 | 
						|
	adds r0, #0x68
 | 
						|
	lsls r0, r0, #0x18
 | 
						|
	lsrs r0, r0, #0x18
 | 
						|
	cmp r0, #3
 | 
						|
	bhi _0801B99C
 | 
						|
	ldrb r0, [r3, #0x1e]
 | 
						|
	adds r0, #0x2e
 | 
						|
	strb r0, [r4, #0x1e]
 | 
						|
	ldrb r1, [r4, #0x1e]
 | 
						|
	ldrh r2, [r4, #0x12]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_080042D0
 | 
						|
	b _0801B9A0
 | 
						|
	.align 2, 0
 | 
						|
_0801B998: .4byte gLinkEntity
 | 
						|
_0801B99C:
 | 
						|
	movs r0, #0xff
 | 
						|
	strb r0, [r4, #0x1e]
 | 
						|
_0801B9A0:
 | 
						|
	ldrb r3, [r4, #0x14]
 | 
						|
	lsrs r3, r3, #1
 | 
						|
	lsls r0, r3, #3
 | 
						|
	ldr r1, _0801B9E0 @ =gUnk_080B7850
 | 
						|
	adds r0, r0, r1
 | 
						|
	str r0, [r4, #0x48]
 | 
						|
	lsls r3, r3, #1
 | 
						|
	ldr r0, _0801B9E4 @ =gUnk_080B7848
 | 
						|
	adds r3, r3, r0
 | 
						|
	ldr r0, _0801B9E8 @ =gLinkState
 | 
						|
	adds r0, #0xac
 | 
						|
	ldrh r0, [r0]
 | 
						|
	movs r1, #8
 | 
						|
	ands r1, r0
 | 
						|
	lsls r1, r1, #0x10
 | 
						|
	lsrs r1, r1, #0x10
 | 
						|
	rsbs r1, r1, #0
 | 
						|
	lsrs r1, r1, #0x1f
 | 
						|
	movs r2, #0
 | 
						|
	ldrsb r2, [r3, r2]
 | 
						|
	ldrb r3, [r3, #1]
 | 
						|
	lsls r3, r3, #0x18
 | 
						|
	asrs r3, r3, #0x18
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08008782
 | 
						|
	ldr r1, _0801B9EC @ =gLinkEntity
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08078E84
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801B9E0: .4byte gUnk_080B7850
 | 
						|
_0801B9E4: .4byte gUnk_080B7848
 | 
						|
_0801B9E8: .4byte gLinkState
 | 
						|
_0801B9EC: .4byte gLinkEntity
 | 
						|
 | 
						|
	thumb_func_start sub_0801B9F0
 | 
						|
sub_0801B9F0: @ 0x0801B9F0
 | 
						|
	push {lr}
 | 
						|
	ldrb r2, [r0, #0x10]
 | 
						|
	movs r1, #0x7f
 | 
						|
	ands r1, r2
 | 
						|
	strb r1, [r0, #0x10]
 | 
						|
	bl sub_08017744
 | 
						|
	pop {pc}
 | 
						|
 | 
						|
	thumb_func_start SwordSpin
 | 
						|
SwordSpin: @ 0x0801BA00
 | 
						|
	push {lr}
 | 
						|
	ldr r2, _0801BA14 @ =gUnk_080B7870
 | 
						|
	ldrb r1, [r0, #0xc]
 | 
						|
	lsls r1, r1, #2
 | 
						|
	adds r1, r1, r2
 | 
						|
	ldr r1, [r1]
 | 
						|
	bl _call_via_r1
 | 
						|
	pop {pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801BA14: .4byte gUnk_080B7870
 | 
						|
 | 
						|
	thumb_func_start sub_0801BA18
 | 
						|
sub_0801BA18: @ 0x0801BA18
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x68
 | 
						|
	ldrb r0, [r1]
 | 
						|
	cmp r0, #0x36
 | 
						|
	bne _0801BA2A
 | 
						|
	movs r0, #0x36
 | 
						|
	b _0801BA34
 | 
						|
_0801BA2A:
 | 
						|
	ldrb r1, [r1]
 | 
						|
	ldr r0, _0801BA4C @ =gUnk_02002A40
 | 
						|
	adds r0, r0, r1
 | 
						|
	adds r0, #0x9a
 | 
						|
	ldrb r0, [r0]
 | 
						|
_0801BA34:
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x6f
 | 
						|
	strb r0, [r1]
 | 
						|
	subs r0, #0x20
 | 
						|
	cmp r0, #0x11
 | 
						|
	bhi _0801BB02
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801BA50 @ =_0801BA54
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	mov pc, r0
 | 
						|
	.align 2, 0
 | 
						|
_0801BA4C: .4byte gUnk_02002A40
 | 
						|
_0801BA50: .4byte _0801BA54
 | 
						|
_0801BA54: @ jump table
 | 
						|
	.4byte _0801BA9C @ case 0
 | 
						|
	.4byte _0801BAF8 @ case 1
 | 
						|
	.4byte _0801BAF8 @ case 2
 | 
						|
	.4byte _0801BAF8 @ case 3
 | 
						|
	.4byte _0801BAF8 @ case 4
 | 
						|
	.4byte _0801BAF8 @ case 5
 | 
						|
	.4byte _0801BB02 @ case 6
 | 
						|
	.4byte _0801BB02 @ case 7
 | 
						|
	.4byte _0801BB02 @ case 8
 | 
						|
	.4byte _0801BAF8 @ case 9
 | 
						|
	.4byte _0801BAF8 @ case 10
 | 
						|
	.4byte _0801BAF8 @ case 11
 | 
						|
	.4byte _0801BAF8 @ case 12
 | 
						|
	.4byte _0801BAF8 @ case 13
 | 
						|
	.4byte _0801BAF8 @ case 14
 | 
						|
	.4byte _0801BB02 @ case 15
 | 
						|
	.4byte _0801BB02 @ case 16
 | 
						|
	.4byte _0801BB02 @ case 17
 | 
						|
_0801BA9C:
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0806FBD8
 | 
						|
	cmp r0, #0
 | 
						|
	beq _0801BB26
 | 
						|
	ldrb r1, [r4, #0x10]
 | 
						|
	movs r0, #0x80
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x10]
 | 
						|
	ldr r1, _0801BAF4 @ =gLinkEntity
 | 
						|
	adds r0, r1, #0
 | 
						|
	adds r0, #0x3c
 | 
						|
	ldrb r0, [r0]
 | 
						|
	adds r0, #1
 | 
						|
	movs r2, #0x20
 | 
						|
	adds r3, r4, #0
 | 
						|
	adds r3, #0x3c
 | 
						|
	orrs r0, r2
 | 
						|
	strb r0, [r3]
 | 
						|
	adds r1, #0x3b
 | 
						|
	ldrb r0, [r1]
 | 
						|
	adds r1, r4, #0
 | 
						|
	adds r1, #0x3b
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r1, #5
 | 
						|
	movs r0, #0x1f
 | 
						|
	strb r0, [r1]
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xa]
 | 
						|
	movs r0, #0x20
 | 
						|
	strb r0, [r4, #0xb]
 | 
						|
	movs r0, #0x52
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	movs r0, #0x1b
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801766C
 | 
						|
	movs r0, #0xee
 | 
						|
	lsls r0, r0, #1
 | 
						|
	bl PlaySFX
 | 
						|
	b _0801BB0A
 | 
						|
	.align 2, 0
 | 
						|
_0801BAF4: .4byte gLinkEntity
 | 
						|
_0801BAF8:
 | 
						|
	movs r0, #0xd5
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	movs r0, #0x3c
 | 
						|
	strb r0, [r4, #0xf]
 | 
						|
	b _0801BB0A
 | 
						|
_0801BB02:
 | 
						|
	movs r1, #0
 | 
						|
	movs r0, #0x37
 | 
						|
	strb r0, [r4, #0xe]
 | 
						|
	strb r1, [r4, #0xf]
 | 
						|
_0801BB0A:
 | 
						|
	movs r0, #1
 | 
						|
	strb r0, [r4, #0xc]
 | 
						|
	movs r0, #0xff
 | 
						|
	strb r0, [r4, #0x1e]
 | 
						|
	ldr r0, _0801BB28 @ =gLinkState
 | 
						|
	str r4, [r0, #0x2c]
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #1
 | 
						|
	movs r2, #3
 | 
						|
	bl sub_080AE008
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801BB2C
 | 
						|
_0801BB26:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801BB28: .4byte gLinkState
 | 
						|
 | 
						|
	thumb_func_start sub_0801BB2C
 | 
						|
sub_0801BB2C: @ 0x0801BB2C
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r5, r0, #0
 | 
						|
	ldr r0, _0801BB88 @ =gLinkState
 | 
						|
	ldr r0, [r0, #0x2c]
 | 
						|
	cmp r0, r5
 | 
						|
	beq _0801BB68
 | 
						|
	ldrb r0, [r5, #0xa]
 | 
						|
	cmp r0, #1
 | 
						|
	bne _0801BB64
 | 
						|
	ldrb r0, [r5, #0xb]
 | 
						|
	cmp r0, #0x20
 | 
						|
	beq _0801BB64
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r4, [r0]
 | 
						|
	subs r4, #0x1c
 | 
						|
	ldrb r0, [r5, #0xb]
 | 
						|
	adds r1, r4, #0
 | 
						|
	bl SetBottleContents
 | 
						|
	ldrb r0, [r5, #0xb]
 | 
						|
	adds r1, r4, #0
 | 
						|
	movs r2, #5
 | 
						|
	bl sub_080A7C18
 | 
						|
	ldr r0, _0801BB8C @ =0x00000109
 | 
						|
	bl PlaySFX
 | 
						|
_0801BB64:
 | 
						|
	bl DeleteThisEntity
 | 
						|
_0801BB68:
 | 
						|
	ldr r1, _0801BB90 @ =gLinkEntity
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801BDE8
 | 
						|
	adds r0, r5, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r0, [r0]
 | 
						|
	subs r0, #0x20
 | 
						|
	cmp r0, #0x11
 | 
						|
	bhi _0801BC04
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801BB94 @ =_0801BB98
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	mov pc, r0
 | 
						|
	.align 2, 0
 | 
						|
_0801BB88: .4byte gLinkState
 | 
						|
_0801BB8C: .4byte 0x00000109
 | 
						|
_0801BB90: .4byte gLinkEntity
 | 
						|
_0801BB94: .4byte _0801BB98
 | 
						|
_0801BB98: @ jump table
 | 
						|
	.4byte _0801BBE0 @ case 0
 | 
						|
	.4byte _0801BBE8 @ case 1
 | 
						|
	.4byte _0801BBE8 @ case 2
 | 
						|
	.4byte _0801BBE8 @ case 3
 | 
						|
	.4byte _0801BBE8 @ case 4
 | 
						|
	.4byte _0801BBE8 @ case 5
 | 
						|
	.4byte _0801BC04 @ case 6
 | 
						|
	.4byte _0801BC04 @ case 7
 | 
						|
	.4byte _0801BC04 @ case 8
 | 
						|
	.4byte _0801BBE8 @ case 9
 | 
						|
	.4byte _0801BBE8 @ case 10
 | 
						|
	.4byte _0801BBE8 @ case 11
 | 
						|
	.4byte _0801BBE8 @ case 12
 | 
						|
	.4byte _0801BBE8 @ case 13
 | 
						|
	.4byte _0801BBE8 @ case 14
 | 
						|
	.4byte _0801BC04 @ case 15
 | 
						|
	.4byte _0801BC04 @ case 16
 | 
						|
	.4byte _0801BC04 @ case 17
 | 
						|
_0801BBE0:
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801BC0C
 | 
						|
	b _0801BC0A
 | 
						|
_0801BBE8:
 | 
						|
	ldr r0, _0801BC00 @ =gLinkEntity
 | 
						|
	adds r1, r0, #0
 | 
						|
	adds r1, #0x5a
 | 
						|
	ldrb r0, [r1]
 | 
						|
	cmp r0, #1
 | 
						|
	bne _0801BC0A
 | 
						|
	movs r0, #0
 | 
						|
	strb r0, [r1]
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801BC14
 | 
						|
	b _0801BC0A
 | 
						|
	.align 2, 0
 | 
						|
_0801BC00: .4byte gLinkEntity
 | 
						|
_0801BC04:
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl sub_0801BCB4
 | 
						|
_0801BC0A:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801BC0C
 | 
						|
sub_0801BC0C: @ 0x0801BC0C
 | 
						|
	push {lr}
 | 
						|
	bl sub_0801BE38
 | 
						|
	pop {pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801BC14
 | 
						|
sub_0801BC14: @ 0x0801BC14
 | 
						|
	push {r4, r5, r6, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	movs r6, #0x20
 | 
						|
	movs r5, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r0, [r0]
 | 
						|
	subs r0, #0x21
 | 
						|
	cmp r0, #0xd
 | 
						|
	bhi _0801BC98
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801BC30 @ =_0801BC34
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	mov pc, r0
 | 
						|
	.align 2, 0
 | 
						|
_0801BC30: .4byte _0801BC34
 | 
						|
_0801BC34: @ jump table
 | 
						|
	.4byte _0801BC76 @ case 0
 | 
						|
	.4byte _0801BC6C @ case 1
 | 
						|
	.4byte _0801BC6E @ case 2
 | 
						|
	.4byte _0801BC76 @ case 3
 | 
						|
	.4byte _0801BC72 @ case 4
 | 
						|
	.4byte _0801BC98 @ case 5
 | 
						|
	.4byte _0801BC98 @ case 6
 | 
						|
	.4byte _0801BC98 @ case 7
 | 
						|
	.4byte _0801BC7A @ case 8
 | 
						|
	.4byte _0801BC7A @ case 9
 | 
						|
	.4byte _0801BC7A @ case 10
 | 
						|
	.4byte _0801BC7A @ case 11
 | 
						|
	.4byte _0801BC7A @ case 12
 | 
						|
	.4byte _0801BC7A @ case 13
 | 
						|
_0801BC6C:
 | 
						|
	movs r6, #0x23
 | 
						|
_0801BC6E:
 | 
						|
	movs r5, #0x28
 | 
						|
	b _0801BC98
 | 
						|
_0801BC72:
 | 
						|
	movs r5, #0x50
 | 
						|
	b _0801BC98
 | 
						|
_0801BC76:
 | 
						|
	movs r5, #0xa0
 | 
						|
	b _0801BC98
 | 
						|
_0801BC7A:
 | 
						|
	ldr r1, _0801BCB0 @ =gUnk_02002A40
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r0, [r0]
 | 
						|
	adds r2, r1, #0
 | 
						|
	adds r2, #0xb3
 | 
						|
	strb r0, [r2]
 | 
						|
	adds r1, #0xc6
 | 
						|
	movs r0, #0xe1
 | 
						|
	lsls r0, r0, #2
 | 
						|
	strh r0, [r1]
 | 
						|
	movs r0, #0x88
 | 
						|
	lsls r0, r0, #2
 | 
						|
	bl PlaySFX
 | 
						|
_0801BC98:
 | 
						|
	adds r0, r5, #0
 | 
						|
	bl ModHealth
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x68
 | 
						|
	ldrb r1, [r0]
 | 
						|
	subs r1, #0x1c
 | 
						|
	adds r0, r6, #0
 | 
						|
	bl SetBottleContents
 | 
						|
	pop {r4, r5, r6, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801BCB0: .4byte gUnk_02002A40
 | 
						|
 | 
						|
	thumb_func_start sub_0801BCB4
 | 
						|
sub_0801BCB4: @ 0x0801BCB4
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	ldr r0, _0801BCEC @ =gLinkEntity
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #1
 | 
						|
	bne _0801BD6C
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r1, [r0]
 | 
						|
	adds r5, r0, #0
 | 
						|
	cmp r1, #0x36
 | 
						|
	beq _0801BCDA
 | 
						|
	subs r0, #7
 | 
						|
	ldrb r1, [r0]
 | 
						|
	subs r1, #0x1c
 | 
						|
	movs r0, #0x20
 | 
						|
	bl SetBottleContents
 | 
						|
_0801BCDA:
 | 
						|
	ldrb r0, [r5]
 | 
						|
	subs r0, #0x26
 | 
						|
	cmp r0, #0xb
 | 
						|
	bhi _0801BD6C
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801BCF0 @ =_0801BCF4
 | 
						|
	adds r0, r0, r1
 | 
						|
	ldr r0, [r0]
 | 
						|
	mov pc, r0
 | 
						|
	.align 2, 0
 | 
						|
_0801BCEC: .4byte gLinkEntity
 | 
						|
_0801BCF0: .4byte _0801BCF4
 | 
						|
_0801BCF4: @ jump table
 | 
						|
	.4byte _0801BD24 @ case 0
 | 
						|
	.4byte _0801BD32 @ case 1
 | 
						|
	.4byte _0801BD40 @ case 2
 | 
						|
	.4byte _0801BD6C @ case 3
 | 
						|
	.4byte _0801BD6C @ case 4
 | 
						|
	.4byte _0801BD6C @ case 5
 | 
						|
	.4byte _0801BD6C @ case 6
 | 
						|
	.4byte _0801BD6C @ case 7
 | 
						|
	.4byte _0801BD6C @ case 8
 | 
						|
	.4byte _0801BD54 @ case 9
 | 
						|
	.4byte _0801BD54 @ case 10
 | 
						|
	.4byte _0801BD54 @ case 11
 | 
						|
_0801BD24:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	b _0801BD6C
 | 
						|
_0801BD32:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #1
 | 
						|
	movs r3, #1
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	b _0801BD6C
 | 
						|
_0801BD40:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #2
 | 
						|
	movs r3, #2
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	movs r0, #0x20
 | 
						|
	bl ModHealth
 | 
						|
	b _0801BD6C
 | 
						|
_0801BD54:
 | 
						|
	ldr r1, _0801BD88 @ =gUnk_02002A40
 | 
						|
	ldrb r0, [r5]
 | 
						|
	adds r2, r1, #0
 | 
						|
	adds r2, #0xb2
 | 
						|
	strb r0, [r2]
 | 
						|
	adds r1, #0xc4
 | 
						|
	movs r0, #0xe1
 | 
						|
	lsls r0, r0, #4
 | 
						|
	strh r0, [r1]
 | 
						|
	ldr r0, _0801BD8C @ =0x000001CF
 | 
						|
	bl PlaySFX
 | 
						|
_0801BD6C:
 | 
						|
	ldr r0, _0801BD90 @ =gLinkEntity
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #2
 | 
						|
	bne _0801BDAE
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0x26
 | 
						|
	beq _0801BD94
 | 
						|
	cmp r0, #0x27
 | 
						|
	beq _0801BDA2
 | 
						|
	b _0801BDAE
 | 
						|
	.align 2, 0
 | 
						|
_0801BD88: .4byte gUnk_02002A40
 | 
						|
_0801BD8C: .4byte 0x000001CF
 | 
						|
_0801BD90: .4byte gLinkEntity
 | 
						|
_0801BD94:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	b _0801BDAE
 | 
						|
_0801BDA2:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #1
 | 
						|
	movs r3, #1
 | 
						|
	bl CreateObjectWithParent
 | 
						|
_0801BDAE:
 | 
						|
	ldr r0, _0801BDC8 @ =gLinkEntity
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #3
 | 
						|
	bne _0801BDE6
 | 
						|
	adds r0, r4, #0
 | 
						|
	adds r0, #0x6f
 | 
						|
	ldrb r0, [r0]
 | 
						|
	cmp r0, #0x26
 | 
						|
	beq _0801BDCC
 | 
						|
	cmp r0, #0x27
 | 
						|
	beq _0801BDDA
 | 
						|
	b _0801BDE6
 | 
						|
	.align 2, 0
 | 
						|
_0801BDC8: .4byte gLinkEntity
 | 
						|
_0801BDCC:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #0
 | 
						|
	movs r3, #0
 | 
						|
	bl CreateObjectWithParent
 | 
						|
	b _0801BDE6
 | 
						|
_0801BDDA:
 | 
						|
	adds r0, r4, #0
 | 
						|
	movs r1, #0x68
 | 
						|
	movs r2, #1
 | 
						|
	movs r3, #0
 | 
						|
	bl CreateObjectWithParent
 | 
						|
_0801BDE6:
 | 
						|
	pop {r4, r5, pc}
 | 
						|
 | 
						|
	thumb_func_start sub_0801BDE8
 | 
						|
sub_0801BDE8: @ 0x0801BDE8
 | 
						|
	push {r4, r5, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r5, r1, #0
 | 
						|
	ldrb r0, [r5, #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 _0801BE0A
 | 
						|
	strb r0, [r4, #0x1e]
 | 
						|
	ldrb r1, [r4, #0x1e]
 | 
						|
	ldrh r2, [r4, #0x12]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_080042D0
 | 
						|
_0801BE0A:
 | 
						|
	ldrb r1, [r5, #0x18]
 | 
						|
	lsls r1, r1, #0x19
 | 
						|
	lsrs r1, r1, #0x1f
 | 
						|
	ldrb r0, [r5, #0x14]
 | 
						|
	lsrs r0, r0, #1
 | 
						|
	movs r2, #1
 | 
						|
	ands r0, r2
 | 
						|
	eors r1, r0
 | 
						|
	lsls r1, r1, #6
 | 
						|
	ldrb r2, [r4, #0x18]
 | 
						|
	movs r0, #0x41
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	ands r0, r2
 | 
						|
	orrs r0, r1
 | 
						|
	strb r0, [r4, #0x18]
 | 
						|
	ldr r1, _0801BE34 @ =gLinkEntity
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_08078E84
 | 
						|
	pop {r4, r5, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801BE34: .4byte gLinkEntity
 | 
						|
 | 
						|
	thumb_func_start sub_0801BE38
 | 
						|
sub_0801BE38: @ 0x0801BE38
 | 
						|
	push {r4, lr}
 | 
						|
	adds r4, r0, #0
 | 
						|
	adds r2, r4, #0
 | 
						|
	adds r2, #0x41
 | 
						|
	ldrb r0, [r2]
 | 
						|
	movs r1, #0x7f
 | 
						|
	ands r1, r0
 | 
						|
	cmp r1, #0x49
 | 
						|
	beq _0801BE54
 | 
						|
	cmp r1, #0x4d
 | 
						|
	beq _0801BE60
 | 
						|
	movs r0, #0
 | 
						|
	strb r0, [r2]
 | 
						|
	b _0801BE6A
 | 
						|
_0801BE54:
 | 
						|
	movs r0, #0x28
 | 
						|
	strb r0, [r4, #0xb]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B9F0
 | 
						|
	b _0801BE6A
 | 
						|
_0801BE60:
 | 
						|
	movs r0, #0x27
 | 
						|
	strb r0, [r4, #0xb]
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_0801B9F0
 | 
						|
_0801BE6A:
 | 
						|
	ldrb r0, [r4, #0x1e]
 | 
						|
	subs r0, #0x1b
 | 
						|
	lsls r0, r0, #2
 | 
						|
	ldr r1, _0801BE84 @ =gUnk_080B788A
 | 
						|
	adds r2, r0, r1
 | 
						|
	ldrb r0, [r4, #0x18]
 | 
						|
	lsls r0, r0, #0x19
 | 
						|
	cmp r0, #0
 | 
						|
	bge _0801BE88
 | 
						|
	ldr r1, [r4, #0x48]
 | 
						|
	ldrb r0, [r2]
 | 
						|
	rsbs r0, r0, #0
 | 
						|
	b _0801BE8C
 | 
						|
	.align 2, 0
 | 
						|
_0801BE84: .4byte gUnk_080B788A
 | 
						|
_0801BE88:
 | 
						|
	ldr r1, [r4, #0x48]
 | 
						|
	ldrb r0, [r2]
 | 
						|
_0801BE8C:
 | 
						|
	strb r0, [r1]
 | 
						|
	ldr r1, [r4, #0x48]
 | 
						|
	ldrb r0, [r2, #1]
 | 
						|
	strb r0, [r1, #1]
 | 
						|
	ldr r1, [r4, #0x48]
 | 
						|
	ldrb r0, [r2, #2]
 | 
						|
	strb r0, [r1, #6]
 | 
						|
	ldr r1, [r4, #0x48]
 | 
						|
	ldrb r0, [r2, #3]
 | 
						|
	strb r0, [r1, #7]
 | 
						|
	ldr r0, _0801BEF0 @ =gLinkEntity
 | 
						|
	adds r0, #0x5a
 | 
						|
	ldrb r0, [r0]
 | 
						|
	movs r1, #0xf
 | 
						|
	ands r1, r0
 | 
						|
	cmp r1, #0
 | 
						|
	beq _0801BEDE
 | 
						|
	ldrb r0, [r4, #0xb]
 | 
						|
	cmp r0, #0x20
 | 
						|
	bne _0801BEE4
 | 
						|
	subs r0, r1, #1
 | 
						|
	lsls r0, r0, #1
 | 
						|
	ldr r1, _0801BEF4 @ =gUnk_080B7878
 | 
						|
	adds r2, r0, r1
 | 
						|
	movs r1, #0
 | 
						|
	ldrsb r1, [r2, r1]
 | 
						|
	ldrb r0, [r4, #0x18]
 | 
						|
	lsls r0, r0, #0x19
 | 
						|
	cmp r0, #0
 | 
						|
	bge _0801BECA
 | 
						|
	rsbs r1, r1, #0
 | 
						|
_0801BECA:
 | 
						|
	ldrb r2, [r2, #1]
 | 
						|
	lsls r2, r2, #0x18
 | 
						|
	asrs r2, r2, #0x18
 | 
						|
	adds r0, r4, #0
 | 
						|
	bl sub_080002B4
 | 
						|
	cmp r0, #0x10
 | 
						|
	bne _0801BEDE
 | 
						|
	movs r0, #0x26
 | 
						|
	strb r0, [r4, #0xb]
 | 
						|
_0801BEDE:
 | 
						|
	ldrb r0, [r4, #0xb]
 | 
						|
	cmp r0, #0x20
 | 
						|
	beq _0801BEEE
 | 
						|
_0801BEE4:
 | 
						|
	ldr r2, _0801BEF0 @ =gLinkEntity
 | 
						|
	ldrb r1, [r2, #0x10]
 | 
						|
	movs r0, #0x7f
 | 
						|
	ands r0, r1
 | 
						|
	strb r0, [r2, #0x10]
 | 
						|
_0801BEEE:
 | 
						|
	pop {r4, pc}
 | 
						|
	.align 2, 0
 | 
						|
_0801BEF0: .4byte gLinkEntity
 | 
						|
_0801BEF4: .4byte gUnk_080B7878 |