mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			1556 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			1556 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| 	.include "asm/macros.inc"
 | |
| 	.include "constants/constants.inc"
 | |
| 
 | |
| 	.syntax unified
 | |
| 
 | |
| 	.text
 | |
| 
 | |
| 	thumb_func_start sub_0806FB00
 | |
| sub_0806FB00: @ 0x0806FB00
 | |
| 	push {r4, lr}
 | |
| 	mov ip, r0
 | |
| 	adds r4, r1, #0
 | |
| 	cmp r3, #0
 | |
| 	bne _0806FB0C
 | |
| 	movs r3, #1
 | |
| _0806FB0C:
 | |
| 	mov r1, ip
 | |
| 	adds r1, #0x7e
 | |
| 	movs r0, #0
 | |
| 	strb r0, [r1]
 | |
| 	mov r0, ip
 | |
| 	adds r0, #0x7f
 | |
| 	strb r3, [r0]
 | |
| 	mov r0, ip
 | |
| 	ldrh r1, [r0, #0x2e]
 | |
| 	adds r0, #0x80
 | |
| 	strh r1, [r0]
 | |
| 	mov r1, ip
 | |
| 	ldrh r0, [r1, #0x32]
 | |
| 	adds r1, #0x82
 | |
| 	strh r0, [r1]
 | |
| 	mov r0, ip
 | |
| 	adds r0, #0x84
 | |
| 	strh r4, [r0]
 | |
| 	adds r0, #2
 | |
| 	strh r2, [r0]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0806FB38
 | |
| sub_0806FB38: @ 0x0806FB38
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	adds r5, r0, #0
 | |
| 	adds r6, r5, #0
 | |
| 	adds r6, #0x7e
 | |
| 	adds r7, r5, #0
 | |
| 	adds r7, #0x7f
 | |
| 	ldrb r0, [r6]
 | |
| 	ldrb r1, [r7]
 | |
| 	cmp r0, r1
 | |
| 	bhs _0806FBA0
 | |
| 	adds r0, #1
 | |
| 	strb r0, [r6]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x84
 | |
| 	movs r2, #0
 | |
| 	ldrsh r1, [r0, r2]
 | |
| 	adds r4, r5, #0
 | |
| 	adds r4, #0x80
 | |
| 	movs r2, #0
 | |
| 	ldrsh r0, [r4, r2]
 | |
| 	subs r1, r1, r0
 | |
| 	ldrb r0, [r6]
 | |
| 	muls r0, r1, r0
 | |
| 	lsls r0, r0, #8
 | |
| 	ldrb r1, [r7]
 | |
| 	bl __divsi3
 | |
| 	asrs r0, r0, #8
 | |
| 	ldrh r4, [r4]
 | |
| 	adds r0, r0, r4
 | |
| 	strh r0, [r5, #0x2e]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x86
 | |
| 	movs r2, #0
 | |
| 	ldrsh r1, [r0, r2]
 | |
| 	adds r4, r5, #0
 | |
| 	adds r4, #0x82
 | |
| 	movs r2, #0
 | |
| 	ldrsh r0, [r4, r2]
 | |
| 	subs r1, r1, r0
 | |
| 	ldrb r0, [r6]
 | |
| 	muls r0, r1, r0
 | |
| 	lsls r0, r0, #8
 | |
| 	ldrb r1, [r7]
 | |
| 	bl __divsi3
 | |
| 	asrs r0, r0, #8
 | |
| 	ldrh r4, [r4]
 | |
| 	adds r0, r0, r4
 | |
| 	strh r0, [r5, #0x32]
 | |
| 	movs r0, #0
 | |
| 	b _0806FBB2
 | |
| _0806FBA0:
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x84
 | |
| 	ldrh r0, [r0]
 | |
| 	strh r0, [r5, #0x2e]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x86
 | |
| 	ldrh r0, [r0]
 | |
| 	strh r0, [r5, #0x32]
 | |
| 	movs r0, #1
 | |
| _0806FBB2:
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FBB4
 | |
| sub_0806FBB4: @ 0x0806FBB4
 | |
| 	push {lr}
 | |
| 	adds r1, r0, #0
 | |
| 	ldr r0, _0806FBD0 @ =gScreenTransition
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FBC8
 | |
| 	ldr r0, _0806FBD4 @ =gLinkState
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FBCC
 | |
| _0806FBC8:
 | |
| 	movs r0, #6
 | |
| 	strb r0, [r1, #0xd]
 | |
| _0806FBCC:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _0806FBD0: .4byte gScreenTransition
 | |
| _0806FBD4: .4byte gLinkState
 | |
| 
 | |
| 	thumb_func_start sub_0806FBD8
 | |
| sub_0806FBD8: @ 0x0806FBD8
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	bl sub_0806FBEC
 | |
| 	movs r0, #0xc
 | |
| 	bl sub_0801D8E0
 | |
| 	str r0, [r4, #0x48]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0806FBEC
 | |
| sub_0806FBEC: @ 0x0806FBEC
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	ldr r0, [r4, #0x48]
 | |
| 	bl sub_0801DA0C
 | |
| 	movs r0, #0
 | |
| 	str r0, [r4, #0x48]
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FBFC
 | |
| sub_0806FBFC: @ 0x0806FBFC
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r5, r3, #0
 | |
| 	ldr r4, _0806FC20 @ =gLinkEntity
 | |
| 	movs r6, #0x2e
 | |
| 	ldrsh r3, [r4, r6]
 | |
| 	subs r3, r3, r0
 | |
| 	movs r6, #0x32
 | |
| 	ldrsh r0, [r4, r6]
 | |
| 	subs r0, r0, r1
 | |
| 	movs r1, #0
 | |
| 	cmp r3, r2
 | |
| 	bhs _0806FC1A
 | |
| 	cmp r0, r5
 | |
| 	bhs _0806FC1A
 | |
| 	movs r1, #1
 | |
| _0806FC1A:
 | |
| 	adds r0, r1, #0
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _0806FC20: .4byte gLinkEntity
 | |
| 
 | |
| 	thumb_func_start sub_0806FC24
 | |
| sub_0806FC24: @ 0x0806FC24
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r1, #0
 | |
| 	ldr r1, _0806FC44 @ =gUnk_080046A4
 | |
| 	bl sub_08007DD6
 | |
| 	cmp r0, #0
 | |
| 	beq _0806FC4C
 | |
| 	lsls r0, r0, #3
 | |
| 	ldr r1, _0806FC48 @ =gUnk_080047F6
 | |
| 	adds r0, r0, r1
 | |
| 	ldrh r0, [r0]
 | |
| 	asrs r0, r4
 | |
| 	movs r1, #1
 | |
| 	ands r0, r1
 | |
| 	b _0806FC4E
 | |
| 	.align 2, 0
 | |
| _0806FC44: .4byte gUnk_080046A4
 | |
| _0806FC48: .4byte gUnk_080047F6
 | |
| _0806FC4C:
 | |
| 	movs r0, #0
 | |
| _0806FC4E:
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FC50
 | |
| sub_0806FC50: @ 0x0806FC50
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r1, #0
 | |
| 	ldr r1, _0806FC74 @ =gUnk_080046A4
 | |
| 	bl sub_08007DD6
 | |
| 	cmp r0, #0
 | |
| 	beq _0806FC70
 | |
| 	ldr r1, _0806FC78 @ =gUnk_080047F6
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r2, r0, r1
 | |
| 	ldrh r0, [r2]
 | |
| 	asrs r0, r4
 | |
| 	movs r1, #1
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FC7C
 | |
| _0806FC70:
 | |
| 	movs r0, #0
 | |
| 	b _0806FC7E
 | |
| 	.align 2, 0
 | |
| _0806FC74: .4byte gUnk_080046A4
 | |
| _0806FC78: .4byte gUnk_080047F6
 | |
| _0806FC7C:
 | |
| 	adds r0, r2, #0
 | |
| _0806FC7E:
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FC80
 | |
| sub_0806FC80: @ 0x0806FC80
 | |
| 	push {r4, r5, lr}
 | |
| 	lsls r4, r2, #4
 | |
| 	movs r2, #0x2e
 | |
| 	ldrsh r3, [r1, r2]
 | |
| 	movs r5, #0x32
 | |
| 	ldrsh r2, [r1, r5]
 | |
| 	adds r1, r3, #0
 | |
| 	bl sub_080041DC
 | |
| 	cmp r4, r0
 | |
| 	bhs _0806FC9A
 | |
| 	movs r0, #0
 | |
| 	b _0806FC9C
 | |
| _0806FC9A:
 | |
| 	movs r0, #1
 | |
| _0806FC9C:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0806FCA0
 | |
| sub_0806FCA0: @ 0x0806FCA0
 | |
| 	push {lr}
 | |
| 	bl GetFacingDirection
 | |
| 	bl sub_0806F5A4
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FCAC
 | |
| sub_0806FCAC: @ 0x0806FCAC
 | |
| 	push {lr}
 | |
| 	bl GetFacingDirection
 | |
| 	bl sub_0806F5B0
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FCB8
 | |
| sub_0806FCB8: @ 0x0806FCB8
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	movs r5, #0x2e
 | |
| 	ldrsh r0, [r4, r5]
 | |
| 	subs r0, r0, r1
 | |
| 	movs r5, #0x32
 | |
| 	ldrsh r1, [r4, r5]
 | |
| 	subs r1, r1, r2
 | |
| 	adds r2, r3, #0
 | |
| 	bl sub_0806FCD0
 | |
| 	pop {r4, r5, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0806FCD0
 | |
| sub_0806FCD0: @ 0x0806FCD0
 | |
| 	push {r4, lr}
 | |
| 	movs r3, #0
 | |
| 	adds r4, r2, #0
 | |
| 	muls r4, r2, r4
 | |
| 	adds r2, r4, #0
 | |
| 	adds r4, r0, #0
 | |
| 	muls r4, r0, r4
 | |
| 	adds r0, r4, #0
 | |
| 	adds r4, r1, #0
 | |
| 	muls r4, r1, r4
 | |
| 	adds r1, r4, #0
 | |
| 	adds r0, r0, r1
 | |
| 	cmp r2, r0
 | |
| 	blt _0806FCEE
 | |
| 	movs r3, #1
 | |
| _0806FCEE:
 | |
| 	adds r0, r3, #0
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0806FCF4
 | |
| sub_0806FCF4: @ 0x0806FCF4
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r6, r0, #0
 | |
| 	adds r4, r2, #0
 | |
| 	adds r5, r3, #0
 | |
| 	movs r2, #0
 | |
| 	cmp r1, #0
 | |
| 	bge _0806FD04
 | |
| 	rsbs r1, r1, #0
 | |
| _0806FD04:
 | |
| 	cmp r4, #0
 | |
| 	beq _0806FD1A
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #9
 | |
| 	bl __divsi3
 | |
| 	adds r1, r0, #0
 | |
| 	adds r0, r4, #0
 | |
| 	muls r0, r1, r0
 | |
| 	lsrs r1, r0, #8
 | |
| 	subs r2, r4, r1
 | |
| _0806FD1A:
 | |
| 	cmp r5, #0
 | |
| 	beq _0806FD22
 | |
| 	cmp r5, #3
 | |
| 	bne _0806FD24
 | |
| _0806FD22:
 | |
| 	rsbs r2, r2, #0
 | |
| _0806FD24:
 | |
| 	cmp r5, #0
 | |
| 	beq _0806FD2C
 | |
| 	cmp r5, #2
 | |
| 	bne _0806FD32
 | |
| _0806FD2C:
 | |
| 	adds r0, r6, #0
 | |
| 	adds r0, #0x63
 | |
| 	b _0806FD36
 | |
| _0806FD32:
 | |
| 	adds r0, r6, #0
 | |
| 	adds r0, #0x62
 | |
| _0806FD36:
 | |
| 	strb r2, [r0]
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0806FD3C
 | |
| sub_0806FD3C: @ 0x0806FD3C
 | |
| 	ldrb r2, [r0, #0x18]
 | |
| 	movs r1, #0x31
 | |
| 	rsbs r1, r1, #0
 | |
| 	ands r1, r2
 | |
| 	strb r1, [r0, #0x18]
 | |
| 	adds r0, #0x29
 | |
| 	ldrb r2, [r0]
 | |
| 	movs r1, #0x39
 | |
| 	rsbs r1, r1, #0
 | |
| 	ands r1, r2
 | |
| 	strb r1, [r0]
 | |
| 	bx lr
 | |
| 
 | |
| 	thumb_func_start sub_0806FD54
 | |
| sub_0806FD54: @ 0x0806FD54
 | |
| 	push {r4, lr}
 | |
| 	adds r3, r0, #0
 | |
| 	ldr r0, _0806FD6C @ =gLinkState
 | |
| 	ldr r0, [r0, #0x30]
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #0x10
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FD70
 | |
| 	movs r0, #0
 | |
| 	b _0806FD84
 | |
| 	.align 2, 0
 | |
| _0806FD6C: .4byte gLinkState
 | |
| _0806FD70:
 | |
| 	ldr r0, _0806FD88 @ =gLinkEntity
 | |
| 	movs r2, #0x2e
 | |
| 	ldrsh r1, [r0, r2]
 | |
| 	movs r4, #0x32
 | |
| 	ldrsh r2, [r0, r4]
 | |
| 	subs r2, #9
 | |
| 	adds r0, r3, #0
 | |
| 	movs r3, #0x48
 | |
| 	bl sub_0806FCB8
 | |
| _0806FD84:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _0806FD88: .4byte gLinkEntity
 | |
| 
 | |
| 	thumb_func_start sub_0806FD8C
 | |
| sub_0806FD8C: @ 0x0806FD8C
 | |
| 	push {lr}
 | |
| 	ldr r0, _0806FD9C @ =gUnk_020000C0
 | |
| 	movs r1, #0xc0
 | |
| 	lsls r1, r1, #4
 | |
| 	bl _DmaZero
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _0806FD9C: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0806FDA0
 | |
| sub_0806FDA0: @ 0x0806FDA0
 | |
| 	push {r4, lr}
 | |
| 	movs r3, #1
 | |
| 	ldr r1, _0806FDD8 @ =gUnk_020000C0
 | |
| 	movs r4, #0xff
 | |
| 	movs r2, #0x61
 | |
| 	adds r2, r2, r1
 | |
| 	mov ip, r2
 | |
| 	adds r2, r1, #0
 | |
| 	adds r2, #0x40
 | |
| 	adds r1, r0, #0
 | |
| 	adds r1, #0x28
 | |
| _0806FDB6:
 | |
| 	ldrb r0, [r2]
 | |
| 	lsls r0, r0, #0x1f
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FDDC
 | |
| 	strb r3, [r1]
 | |
| 	ldrb r0, [r2]
 | |
| 	movs r1, #1
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r2]
 | |
| 	strb r4, [r2, #1]
 | |
| 	strb r4, [r2, #0x11]
 | |
| 	mov r0, ip
 | |
| 	strb r4, [r0]
 | |
| 	strb r4, [r0, #0x10]
 | |
| 	movs r0, #1
 | |
| 	b _0806FDEA
 | |
| 	.align 2, 0
 | |
| _0806FDD8: .4byte gUnk_020000C0
 | |
| _0806FDDC:
 | |
| 	movs r0, #0x40
 | |
| 	add ip, r0
 | |
| 	adds r2, #0x40
 | |
| 	adds r3, #1
 | |
| 	cmp r3, #0x2f
 | |
| 	bls _0806FDB6
 | |
| 	movs r0, #0
 | |
| _0806FDEA:
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start LoadExtraSpriteData
 | |
| LoadExtraSpriteData: @ 0x0806FDEC
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, r8
 | |
| 	push {r7}
 | |
| 	adds r6, r0, #0
 | |
| 	adds r4, r1, #0
 | |
| 	bl sub_0806FDA0
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FE02
 | |
| 	movs r0, #0
 | |
| 	b _0806FE74
 | |
| _0806FE02:
 | |
| 	adds r0, r6, #0
 | |
| 	bl sub_0801D230
 | |
| 	adds r0, r6, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #6
 | |
| 	ldr r1, _0806FE7C @ =gUnk_020000C0
 | |
| 	adds r5, r0, r1
 | |
| 	movs r7, #0
 | |
| 	ldrh r1, [r4, #2]
 | |
| 	ldr r0, _0806FE80 @ =0x000003FF
 | |
| 	ands r0, r1
 | |
| 	movs r1, #0x27
 | |
| 	adds r1, r1, r6
 | |
| 	mov r8, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0806FE6C
 | |
| _0806FE26:
 | |
| 	ldr r1, [r4]
 | |
| 	lsls r1, r1, #0x16
 | |
| 	lsrs r1, r1, #0x16
 | |
| 	adds r0, r6, #0
 | |
| 	bl sub_0801D040
 | |
| 	adds r2, r0, #0
 | |
| 	ldr r3, [r4]
 | |
| 	lsls r1, r3, #6
 | |
| 	lsrs r1, r1, #0x16
 | |
| 	lsls r3, r3, #0x10
 | |
| 	lsrs r3, r3, #0x1a
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_0806FEE8
 | |
| 	ldrb r1, [r4, #3]
 | |
| 	movs r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0806FE56
 | |
| 	adds r0, r5, #0
 | |
| 	adds r1, r6, #0
 | |
| 	bl sub_0806FEFC
 | |
| _0806FE56:
 | |
| 	adds r5, #0x10
 | |
| 	adds r4, #4
 | |
| 	adds r7, #1
 | |
| 	cmp r7, #3
 | |
| 	bhi _0806FE6C
 | |
| 	ldrh r1, [r4, #2]
 | |
| 	ldr r2, _0806FE80 @ =0x000003FF
 | |
| 	adds r0, r2, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0806FE26
 | |
| _0806FE6C:
 | |
| 	movs r0, #0
 | |
| 	mov r1, r8
 | |
| 	strb r0, [r1]
 | |
| 	movs r0, #1
 | |
| _0806FE74:
 | |
| 	pop {r3}
 | |
| 	mov r8, r3
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _0806FE7C: .4byte gUnk_020000C0
 | |
| _0806FE80: .4byte 0x000003FF
 | |
| 
 | |
| 	thumb_func_start sub_0806FE84
 | |
| sub_0806FE84: @ 0x0806FE84
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r2, [r0]
 | |
| 	movs r1, #0
 | |
| 	strb r1, [r0]
 | |
| 	subs r0, r2, #1
 | |
| 	cmp r0, #0x7e
 | |
| 	bhi _0806FEB4
 | |
| 	lsls r1, r2, #6
 | |
| 	ldr r0, _0806FEB8 @ =gUnk_020000C0
 | |
| 	adds r6, r1, r0
 | |
| 	movs r5, #0
 | |
| 	adds r4, r6, #0
 | |
| _0806FE9E:
 | |
| 	ldrb r0, [r4, #5]
 | |
| 	bl sub_0801D244
 | |
| 	adds r4, #0x10
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #3
 | |
| 	bls _0806FE9E
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #0x40
 | |
| 	bl _DmaZero
 | |
| _0806FEB4:
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _0806FEB8: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0806FEBC
 | |
| sub_0806FEBC: @ 0x0806FEBC
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r3, [r0]
 | |
| 	lsls r3, r3, #6
 | |
| 	lsls r1, r1, #4
 | |
| 	ldr r0, _0806FEE4 @ =gUnk_020000C0
 | |
| 	adds r1, r1, r0
 | |
| 	adds r3, r3, r1
 | |
| 	movs r0, #0
 | |
| 	str r0, [r3]
 | |
| 	str r0, [r3, #4]
 | |
| 	str r0, [r3, #8]
 | |
| 	str r2, [r3, #0xc]
 | |
| 	ldrb r0, [r3]
 | |
| 	movs r1, #1
 | |
| 	orrs r0, r1
 | |
| 	movs r1, #2
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r3]
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _0806FEE4: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0806FEE8
 | |
| sub_0806FEE8: @ 0x0806FEE8
 | |
| 	strb r3, [r0, #8]
 | |
| 	strh r1, [r0, #2]
 | |
| 	strb r2, [r0, #5]
 | |
| 	ldrb r1, [r0]
 | |
| 	movs r2, #8
 | |
| 	orrs r1, r2
 | |
| 	movs r2, #1
 | |
| 	orrs r1, r2
 | |
| 	strb r1, [r0]
 | |
| 	bx lr
 | |
| 
 | |
| 	thumb_func_start sub_0806FEFC
 | |
| sub_0806FEFC: @ 0x0806FEFC
 | |
| 	adds r1, #0x60
 | |
| 	ldrh r1, [r1]
 | |
| 	ldrb r2, [r0, #8]
 | |
| 	adds r1, r1, r2
 | |
| 	strh r1, [r0, #0xa]
 | |
| 	ldrb r1, [r0]
 | |
| 	movs r2, #4
 | |
| 	orrs r1, r2
 | |
| 	strb r1, [r0]
 | |
| 	bx lr
 | |
| 
 | |
| 	thumb_func_start sub_0806FF10
 | |
| sub_0806FF10: @ 0x0806FF10
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r6, r0, #0
 | |
| 	adds r5, r2, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r2, [r0]
 | |
| 	lsls r2, r2, #6
 | |
| 	lsls r1, r1, #4
 | |
| 	ldr r0, _0806FF44 @ =gUnk_020000C0
 | |
| 	adds r1, r1, r0
 | |
| 	adds r4, r2, r1
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_0801D108
 | |
| 	ldrb r1, [r4, #5]
 | |
| 	cmp r1, r0
 | |
| 	beq _0806FF40
 | |
| 	adds r0, r1, #0
 | |
| 	bl sub_0801D244
 | |
| 	adds r0, r6, #0
 | |
| 	adds r1, r5, #0
 | |
| 	bl sub_0801D040
 | |
| 	strb r0, [r4, #5]
 | |
| _0806FF40:
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _0806FF44: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0806FF48
 | |
| sub_0806FF48: @ 0x0806FF48
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #6
 | |
| 	lsls r1, r1, #4
 | |
| 	ldr r3, _0806FF5C @ =gUnk_020000C0
 | |
| 	adds r1, r1, r3
 | |
| 	adds r0, r0, r1
 | |
| 	strb r2, [r0, #4]
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _0806FF5C: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start SetExtraSpriteFrame
 | |
| SetExtraSpriteFrame: @ 0x0806FF60
 | |
| 	push {lr}
 | |
| 	adds r3, r2, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #6
 | |
| 	ldr r2, _0806FF84 @ =gUnk_020000C0
 | |
| 	adds r0, r0, r2
 | |
| 	lsls r1, r1, #4
 | |
| 	adds r2, r0, r1
 | |
| 	ldrb r0, [r2, #1]
 | |
| 	cmp r0, r3
 | |
| 	beq _0806FF82
 | |
| 	strb r3, [r2, #1]
 | |
| 	ldrb r0, [r2]
 | |
| 	movs r1, #8
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r2]
 | |
| _0806FF82:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _0806FF84: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start SetSpriteSubEntryOffsetData1
 | |
| SetSpriteSubEntryOffsetData1: @ 0x0806FF88
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r5, r1, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r4, [r0]
 | |
| 	lsls r4, r4, #6
 | |
| 	ldr r0, _0806FFB8 @ =gUnk_020000C0
 | |
| 	adds r4, r4, r0
 | |
| 	lsls r5, r5, #4
 | |
| 	adds r5, r4, r5
 | |
| 	lsls r2, r2, #4
 | |
| 	adds r4, r4, r2
 | |
| 	ldrh r0, [r5, #2]
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	bl GetSpriteSubEntryOffsetDataPointer
 | |
| 	ldrb r1, [r5, #6]
 | |
| 	ldrb r2, [r0]
 | |
| 	adds r1, r1, r2
 | |
| 	strb r1, [r4, #6]
 | |
| 	ldrb r1, [r5, #7]
 | |
| 	ldrb r0, [r0, #1]
 | |
| 	adds r1, r1, r0
 | |
| 	strb r1, [r4, #7]
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _0806FFB8: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0806FFBC
 | |
| sub_0806FFBC: @ 0x0806FFBC
 | |
| 	push {r4, lr}
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #6
 | |
| 	lsls r1, r1, #4
 | |
| 	ldr r4, _0806FFD4 @ =gUnk_020000C0
 | |
| 	adds r1, r1, r4
 | |
| 	adds r0, r0, r1
 | |
| 	strb r2, [r0, #6]
 | |
| 	strb r3, [r0, #7]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _0806FFD4: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start SetSpriteSubEntryOffsetData2
 | |
| SetSpriteSubEntryOffsetData2: @ 0x0806FFD8
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r5, r1, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r4, [r0]
 | |
| 	lsls r4, r4, #6
 | |
| 	ldr r0, _08070008 @ =gUnk_020000C0
 | |
| 	adds r4, r4, r0
 | |
| 	lsls r5, r5, #4
 | |
| 	adds r5, r4, r5
 | |
| 	lsls r2, r2, #4
 | |
| 	adds r4, r4, r2
 | |
| 	ldrh r0, [r5, #2]
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	bl GetSpriteSubEntryOffsetDataPointer
 | |
| 	ldrb r1, [r5, #6]
 | |
| 	ldrb r2, [r0, #2]
 | |
| 	adds r1, r1, r2
 | |
| 	strb r1, [r4, #6]
 | |
| 	ldrb r1, [r5, #7]
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	adds r1, r1, r0
 | |
| 	strb r1, [r4, #7]
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _08070008: .4byte gUnk_020000C0
 | |
| 
 | |
| 	thumb_func_start sub_0807000C
 | |
| sub_0807000C: @ 0x0807000C
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	adds r6, r0, #0
 | |
| 	adds r7, r6, #0
 | |
| 	adds r7, #0x28
 | |
| 	ldrb r4, [r7]
 | |
| 	lsls r4, r4, #6
 | |
| 	ldr r0, _08070074 @ =gUnk_020000C0
 | |
| 	adds r4, r4, r0
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0
 | |
| 	bl sub_0807007C
 | |
| 	adds r5, r0, #0
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #1
 | |
| 	bl sub_0807007C
 | |
| 	orrs r5, r0
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #2
 | |
| 	bl sub_0807007C
 | |
| 	orrs r5, r0
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #3
 | |
| 	bl sub_0807007C
 | |
| 	orrs r5, r0
 | |
| 	cmp r5, #0
 | |
| 	beq _08070072
 | |
| 	ldr r3, _08070078 @ =gUnk_02024490
 | |
| 	adds r2, r6, #0
 | |
| 	adds r2, #0x26
 | |
| 	ldrb r1, [r2]
 | |
| 	lsls r0, r1, #1
 | |
| 	adds r0, r0, r1
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r3
 | |
| 	ldrb r1, [r7]
 | |
| 	strb r1, [r0, #7]
 | |
| 	ldrb r1, [r2]
 | |
| 	lsls r0, r1, #1
 | |
| 	adds r0, r0, r1
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r3
 | |
| 	ldrb r2, [r0, #4]
 | |
| 	movs r1, #0xf
 | |
| 	ands r1, r2
 | |
| 	movs r2, #0x30
 | |
| 	orrs r1, r2
 | |
| 	strb r1, [r0, #4]
 | |
| _08070072:
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _08070074: .4byte gUnk_020000C0
 | |
| _08070078: .4byte gUnk_02024490
 | |
| 
 | |
| 	thumb_func_start sub_0807007C
 | |
| sub_0807007C: @ 0x0807007C
 | |
| 	push {lr}
 | |
| 	lsls r1, r1, #4
 | |
| 	adds r2, r0, r1
 | |
| 	ldrb r1, [r2]
 | |
| 	movs r0, #8
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080700C4
 | |
| 	movs r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080700C4
 | |
| 	ldrb r0, [r2, #1]
 | |
| 	cmp r0, #0xff
 | |
| 	beq _080700C4
 | |
| 	ldrh r0, [r2, #2]
 | |
| 	lsls r0, r0, #4
 | |
| 	ldr r1, _080700C0 @ =gUnk_080029B4
 | |
| 	adds r3, r0, r1
 | |
| 	ldr r1, [r3, #4]
 | |
| 	cmp r1, #0
 | |
| 	beq _080700C4
 | |
| 	ldrb r0, [r2, #1]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r1, r0
 | |
| 	ldrb r1, [r0]
 | |
| 	strb r1, [r2, #9]
 | |
| 	ldrh r1, [r0, #2]
 | |
| 	lsls r1, r1, #5
 | |
| 	ldr r0, [r3, #8]
 | |
| 	adds r0, r0, r1
 | |
| 	str r0, [r2, #0xc]
 | |
| 	movs r0, #1
 | |
| 	b _080700C6
 | |
| 	.align 2, 0
 | |
| _080700C0: .4byte gUnk_080029B4
 | |
| _080700C4:
 | |
| 	movs r0, #0
 | |
| _080700C6:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start GetSpriteSubEntryOffsetDataPointer
 | |
| GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8
 | |
| 	lsls r0, r0, #1
 | |
| 	ldr r2, _080700E4 @ =gUnk_089FB780
 | |
| 	adds r0, r0, r2
 | |
| 	ldrh r0, [r0]
 | |
| 	subs r2, #0x10
 | |
| 	adds r0, r0, r2
 | |
| 	adds r1, r0, r1
 | |
| 	ldrb r0, [r1]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r2
 | |
| 	ldr r1, [r2]
 | |
| 	adds r0, r1, r0
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _080700E4: .4byte gUnk_089FB780
 | |
| 
 | |
| 	thumb_func_start sub_080700E8
 | |
| sub_080700E8: @ 0x080700E8
 | |
| 	push {lr}
 | |
| 	ldr r2, _080700FC @ =gUnk_0811B98C
 | |
| 	ldrb r1, [r0, #0xc]
 | |
| 	lsls r1, r1, #2
 | |
| 	adds r1, r1, r2
 | |
| 	ldr r1, [r1]
 | |
| 	bl _call_via_r1
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080700FC: .4byte gUnk_0811B98C
 | |
| 
 | |
| 	thumb_func_start sub_08070100
 | |
| sub_08070100: @ 0x08070100
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r5, r0, #0
 | |
| 	movs r2, #1
 | |
| 	movs r3, #1
 | |
| 	strb r3, [r5, #0xc]
 | |
| 	ldrb r1, [r5, #0x18]
 | |
| 	movs r0, #4
 | |
| 	rsbs r0, r0, #0
 | |
| 	ands r0, r1
 | |
| 	orrs r0, r2
 | |
| 	strb r0, [r5, #0x18]
 | |
| 	ldrb r1, [r5, #0x10]
 | |
| 	movs r0, #0x80
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r5, #0x10]
 | |
| 	ldrb r0, [r5, #0x14]
 | |
| 	lsls r0, r0, #2
 | |
| 	strb r0, [r5, #0x15]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #2
 | |
| 	strh r0, [r5, #0x24]
 | |
| 	movs r0, #0x40
 | |
| 	str r0, [r5, #0x74]
 | |
| 	movs r0, #0xf0
 | |
| 	lsls r0, r0, #1
 | |
| 	str r0, [r5, #0x78]
 | |
| 	ldr r2, _0807017C @ =gLinkEntity
 | |
| 	ldr r1, _08070180 @ =gUnk_0811B9A0
 | |
| 	ldrb r0, [r5, #0x14]
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #0x18
 | |
| 	asrs r0, r0, #0x18
 | |
| 	ldrh r4, [r2, #0x2e]
 | |
| 	adds r0, r0, r4
 | |
| 	strh r0, [r5, #0x2e]
 | |
| 	ldrb r0, [r5, #0x14]
 | |
| 	adds r0, #1
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #0x18
 | |
| 	asrs r0, r0, #0x18
 | |
| 	ldrh r1, [r2, #0x32]
 | |
| 	adds r0, r0, r1
 | |
| 	strh r0, [r5, #0x32]
 | |
| 	adds r1, r5, #0
 | |
| 	adds r1, #0x3c
 | |
| 	movs r0, #7
 | |
| 	strb r0, [r1]
 | |
| 	subs r1, #1
 | |
| 	movs r0, #0x8a
 | |
| 	strb r0, [r1]
 | |
| 	ldr r0, _08070184 @ =gUnk_0811B9D0
 | |
| 	str r0, [r5, #0x48]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x38
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #2
 | |
| 	bne _08070188
 | |
| 	strb r3, [r5, #0xa]
 | |
| 	b _0807018C
 | |
| 	.align 2, 0
 | |
| _0807017C: .4byte gLinkEntity
 | |
| _08070180: .4byte gUnk_0811B9A0
 | |
| _08070184: .4byte gUnk_0811B9D0
 | |
| _08070188:
 | |
| 	movs r0, #0
 | |
| 	strb r0, [r5, #0xa]
 | |
| _0807018C:
 | |
| 	ldrb r1, [r2, #0x1b]
 | |
| 	lsrs r1, r1, #6
 | |
| 	lsls r1, r1, #6
 | |
| 	ldrb r2, [r5, #0x1b]
 | |
| 	movs r0, #0x3f
 | |
| 	ands r0, r2
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r5, #0x1b]
 | |
| 	ldrb r3, [r5, #0x14]
 | |
| 	lsrs r3, r3, #1
 | |
| 	lsls r3, r3, #3
 | |
| 	ldr r0, _080701F0 @ =gUnk_0811B9A8
 | |
| 	adds r3, r3, r0
 | |
| 	ldrb r1, [r3]
 | |
| 	movs r0, #1
 | |
| 	ands r1, r0
 | |
| 	lsls r1, r1, #6
 | |
| 	ldrb r2, [r5, #0x18]
 | |
| 	movs r0, #0x41
 | |
| 	rsbs r0, r0, #0
 | |
| 	ands r0, r2
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r5, #0x18]
 | |
| 	ldrb r1, [r3, #1]
 | |
| 	lsls r1, r1, #7
 | |
| 	movs r2, #0x7f
 | |
| 	ands r0, r2
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r5, #0x18]
 | |
| 	ldrb r0, [r3, #4]
 | |
| 	adds r4, r5, #0
 | |
| 	adds r4, #0x58
 | |
| 	strb r0, [r4]
 | |
| 	movs r0, #2
 | |
| 	ldrsb r0, [r3, r0]
 | |
| 	str r0, [r5, #0x6c]
 | |
| 	movs r0, #3
 | |
| 	ldrsb r0, [r3, r0]
 | |
| 	str r0, [r5, #0x70]
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_0801766C
 | |
| 	ldrb r1, [r4]
 | |
| 	adds r0, r5, #0
 | |
| 	bl InitializeAnimation
 | |
| 	ldr r0, _080701F4 @ =0x000001DD
 | |
| 	bl PlaySFX
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080701F0: .4byte gUnk_0811B9A8
 | |
| _080701F4: .4byte 0x000001DD
 | |
| 
 | |
| 	thumb_func_start sub_080701F8
 | |
| sub_080701F8: @ 0x080701F8
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	adds r5, r0, #0
 | |
| 	ldr r0, _08070244 @ =gUnk_0811B9C8
 | |
| 	ldrb r1, [r5, #0x14]
 | |
| 	adds r2, r1, r0
 | |
| 	movs r6, #0
 | |
| 	ldrsb r6, [r2, r6]
 | |
| 	adds r1, #1
 | |
| 	adds r1, r1, r0
 | |
| 	movs r7, #0
 | |
| 	ldrsb r7, [r1, r7]
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #0xa
 | |
| 	adds r2, r6, #0
 | |
| 	adds r3, r7, #0
 | |
| 	bl sub_08008782
 | |
| 	adds r4, r0, #0
 | |
| 	cmp r4, #0
 | |
| 	beq _08070248
 | |
| 	ldrb r1, [r4, #5]
 | |
| 	ldrb r2, [r4, #2]
 | |
| 	movs r0, #0x53
 | |
| 	bl CreateObject
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r1, #0
 | |
| 	beq _08070260
 | |
| 	ldrb r0, [r4, #3]
 | |
| 	strb r0, [r1, #0xe]
 | |
| 	ldrh r0, [r5, #0x2e]
 | |
| 	adds r0, r0, r6
 | |
| 	strh r0, [r1, #0x2e]
 | |
| 	ldrh r0, [r5, #0x32]
 | |
| 	adds r0, r0, r7
 | |
| 	strh r0, [r1, #0x32]
 | |
| 	b _08070260
 | |
| 	.align 2, 0
 | |
| _08070244: .4byte gUnk_0811B9C8
 | |
| _08070248:
 | |
| 	ldr r0, [r5, #0x74]
 | |
| 	subs r0, #1
 | |
| 	str r0, [r5, #0x74]
 | |
| 	movs r1, #1
 | |
| 	rsbs r1, r1, #0
 | |
| 	cmp r0, r1
 | |
| 	beq _08070260
 | |
| 	ldr r0, [r5, #0x78]
 | |
| 	subs r0, #1
 | |
| 	str r0, [r5, #0x78]
 | |
| 	cmp r0, r1
 | |
| 	bne _08070268
 | |
| _08070260:
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_08070458
 | |
| 	b _0807037A
 | |
| _08070268:
 | |
| 	adds r0, r5, #0
 | |
| 	bl GetNextFrame
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_0806F69C
 | |
| 	ldrb r0, [r5, #0xa]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070280
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_0800451C
 | |
| _08070280:
 | |
| 	movs r1, #0x2e
 | |
| 	ldrsh r0, [r5, r1]
 | |
| 	ldr r7, _08070354 @ =gRoomControls
 | |
| 	ldrh r1, [r7, #6]
 | |
| 	subs r0, r0, r1
 | |
| 	asrs r0, r0, #4
 | |
| 	movs r6, #0x3f
 | |
| 	ands r0, r6
 | |
| 	movs r2, #0x32
 | |
| 	ldrsh r1, [r5, r2]
 | |
| 	ldrh r2, [r7, #8]
 | |
| 	subs r1, r1, r2
 | |
| 	asrs r1, r1, #4
 | |
| 	ands r1, r6
 | |
| 	lsls r1, r1, #6
 | |
| 	orrs r0, r1
 | |
| 	ldr r1, _08070358 @ =gLinkEntity
 | |
| 	adds r1, #0x38
 | |
| 	ldrb r1, [r1]
 | |
| 	movs r2, #0x80
 | |
| 	bl sub_080002F0
 | |
| 	cmp r0, #0
 | |
| 	bne _0807036A
 | |
| 	ldr r1, _0807035C @ =gUnk_08003E44
 | |
| 	movs r3, #0x2e
 | |
| 	ldrsh r2, [r5, r3]
 | |
| 	movs r0, #0x32
 | |
| 	ldrsh r3, [r5, r0]
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_080040D8
 | |
| 	cmp r0, #0
 | |
| 	bne _08070364
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_080002B8
 | |
| 	cmp r0, #0x19
 | |
| 	bne _0807036A
 | |
| 	movs r0, #4
 | |
| 	strb r0, [r5, #0xc]
 | |
| 	ldrb r1, [r5, #0x10]
 | |
| 	movs r0, #0x7f
 | |
| 	ands r0, r1
 | |
| 	strb r0, [r5, #0x10]
 | |
| 	ldrh r2, [r5, #0x2e]
 | |
| 	movs r1, #0x10
 | |
| 	rsbs r1, r1, #0
 | |
| 	adds r0, r1, #0
 | |
| 	ands r0, r2
 | |
| 	movs r2, #8
 | |
| 	orrs r0, r2
 | |
| 	strh r0, [r5, #0x2e]
 | |
| 	ldrh r0, [r5, #0x32]
 | |
| 	ands r1, r0
 | |
| 	orrs r1, r2
 | |
| 	strh r1, [r5, #0x32]
 | |
| 	adds r2, r5, #0
 | |
| 	adds r2, #0x29
 | |
| 	ldrb r0, [r2]
 | |
| 	movs r1, #7
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r2]
 | |
| 	movs r1, #0x2e
 | |
| 	ldrsh r0, [r5, r1]
 | |
| 	ldrh r1, [r7, #6]
 | |
| 	subs r0, r0, r1
 | |
| 	asrs r0, r0, #4
 | |
| 	ands r0, r6
 | |
| 	movs r2, #0x32
 | |
| 	ldrsh r1, [r5, r2]
 | |
| 	ldrh r2, [r7, #8]
 | |
| 	subs r1, r1, r2
 | |
| 	asrs r1, r1, #4
 | |
| 	ands r1, r6
 | |
| 	lsls r1, r1, #6
 | |
| 	orrs r0, r1
 | |
| 	adds r4, r5, #0
 | |
| 	adds r4, #0x38
 | |
| 	ldrb r1, [r4]
 | |
| 	bl sub_080001DA
 | |
| 	str r0, [r5, #0x7c]
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #0x14
 | |
| 	bl InitializeAnimation
 | |
| 	ldr r0, _08070360 @ =0x00004020
 | |
| 	movs r3, #0x2e
 | |
| 	ldrsh r1, [r5, r3]
 | |
| 	ldrh r2, [r7, #6]
 | |
| 	subs r1, r1, r2
 | |
| 	asrs r1, r1, #4
 | |
| 	ands r1, r6
 | |
| 	movs r3, #0x32
 | |
| 	ldrsh r2, [r5, r3]
 | |
| 	ldrh r3, [r7, #8]
 | |
| 	subs r2, r2, r3
 | |
| 	asrs r2, r2, #4
 | |
| 	ands r2, r6
 | |
| 	lsls r2, r2, #6
 | |
| 	orrs r1, r2
 | |
| 	ldrb r2, [r4]
 | |
| 	bl SetTile
 | |
| 	b _0807037A
 | |
| 	.align 2, 0
 | |
| _08070354: .4byte gRoomControls
 | |
| _08070358: .4byte gLinkEntity
 | |
| _0807035C: .4byte gUnk_08003E44
 | |
| _08070360: .4byte 0x00004020
 | |
| _08070364:
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_08070458
 | |
| _0807036A:
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x41
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _0807037A
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_08070458
 | |
| _0807037A:
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 
 | |
| 	thumb_func_start sub_0807037C
 | |
| sub_0807037C: @ 0x0807037C
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	bl GetNextFrame
 | |
| 	adds r4, #0x5a
 | |
| 	ldrb r1, [r4]
 | |
| 	movs r0, #0x80
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _08070394
 | |
| 	bl DeleteThisEntity
 | |
| _08070394:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_08070398
 | |
| sub_08070398: @ 0x08070398
 | |
| 	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 _080703B8
 | |
| 	bl DeleteThisEntity
 | |
| _080703B8:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080703BC
 | |
| sub_080703BC: @ 0x080703BC
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	bl GetNextFrame
 | |
| 	movs r1, #0x2e
 | |
| 	ldrsh r0, [r4, r1]
 | |
| 	ldr r2, _08070404 @ =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
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0x38
 | |
| 	ldrb r1, [r1]
 | |
| 	bl sub_080001DA
 | |
| 	adds r1, r0, #0
 | |
| 	ldr r0, _08070408 @ =0x00004021
 | |
| 	cmp r1, r0
 | |
| 	beq _0807042E
 | |
| 	cmp r1, r0
 | |
| 	bhi _0807040C
 | |
| 	subs r0, #1
 | |
| 	cmp r1, r0
 | |
| 	beq _08070420
 | |
| 	b _08070412
 | |
| 	.align 2, 0
 | |
| _08070404: .4byte gRoomControls
 | |
| _08070408: .4byte 0x00004021
 | |
| _0807040C:
 | |
| 	ldr r0, _08070418 @ =0x00004070
 | |
| 	cmp r1, r0
 | |
| 	beq _0807041C
 | |
| _08070412:
 | |
| 	movs r0, #0
 | |
| 	str r0, [r4, #0x7c]
 | |
| 	b _0807042E
 | |
| 	.align 2, 0
 | |
| _08070418: .4byte 0x00004070
 | |
| _0807041C:
 | |
| 	movs r0, #0xff
 | |
| 	str r0, [r4, #0x78]
 | |
| _08070420:
 | |
| 	ldr r0, [r4, #0x78]
 | |
| 	subs r0, #1
 | |
| 	str r0, [r4, #0x78]
 | |
| 	movs r1, #1
 | |
| 	rsbs r1, r1, #0
 | |
| 	cmp r0, r1
 | |
| 	bne _08070436
 | |
| _0807042E:
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_08070458
 | |
| 	b _08070454
 | |
| _08070436:
 | |
| 	adds r0, r4, #0
 | |
| 	adds r0, #0x41
 | |
| 	ldrb r1, [r0]
 | |
| 	cmp r1, #0
 | |
| 	beq _08070454
 | |
| 	movs r0, #0x7f
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0807044E
 | |
| 	ldrb r0, [r4, #0xc]
 | |
| 	cmp r0, #0x1a
 | |
| 	bne _08070454
 | |
| _0807044E:
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_08070458
 | |
| _08070454:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_08070458
 | |
| sub_08070458: @ 0x08070458
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	movs r2, #0
 | |
| 	movs r0, #2
 | |
| 	strb r0, [r4, #0xc]
 | |
| 	ldrb r1, [r4, #0x10]
 | |
| 	movs r0, #0x7f
 | |
| 	ands r0, r1
 | |
| 	strb r0, [r4, #0x10]
 | |
| 	strh r2, [r4, #0x24]
 | |
| 	ldr r5, [r4, #0x7c]
 | |
| 	cmp r5, #0
 | |
| 	beq _0807049E
 | |
| 	movs r0, #0x2e
 | |
| 	ldrsh r1, [r4, r0]
 | |
| 	ldr r2, _080704B4 @ =gRoomControls
 | |
| 	ldrh r0, [r2, #6]
 | |
| 	subs r1, r1, r0
 | |
| 	asrs r1, r1, #4
 | |
| 	movs r3, #0x3f
 | |
| 	ands r1, r3
 | |
| 	movs r6, #0x32
 | |
| 	ldrsh r0, [r4, r6]
 | |
| 	ldrh r2, [r2, #8]
 | |
| 	subs r0, r0, r2
 | |
| 	asrs r0, r0, #4
 | |
| 	ands r0, r3
 | |
| 	lsls r0, r0, #6
 | |
| 	orrs r1, r0
 | |
| 	adds r0, r4, #0
 | |
| 	adds r0, #0x38
 | |
| 	ldrb r2, [r0]
 | |
| 	adds r0, r5, #0
 | |
| 	bl SetTile
 | |
| _0807049E:
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0x13
 | |
| 	bl InitializeAnimation
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_08017744
 | |
| 	ldr r0, _080704B8 @ =0x00000199
 | |
| 	bl PlaySFX
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _080704B4: .4byte gRoomControls
 | |
| _080704B8: .4byte 0x00000199
 | |
| 
 | |
| 	thumb_func_start sub_080704BC
 | |
| sub_080704BC: @ 0x080704BC
 | |
| 	push {lr}
 | |
| 	ldr r2, _080704D0 @ =gUnk_0811B9D8
 | |
| 	ldrb r1, [r0, #0xc]
 | |
| 	lsls r1, r1, #2
 | |
| 	adds r1, r1, r2
 | |
| 	ldr r1, [r1]
 | |
| 	bl _call_via_r1
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080704D0: .4byte gUnk_0811B9D8
 | |
| 
 | |
| 	thumb_func_start sub_080704D4
 | |
| sub_080704D4: @ 0x080704D4
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r4, #0xc]
 | |
| 	movs r0, #0xff
 | |
| 	strb r0, [r4, #0x1e]
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #1
 | |
| 	movs r2, #3
 | |
| 	bl sub_080AE008
 | |
| 	movs r0, #0x87
 | |
| 	lsls r0, r0, #1
 | |
| 	bl PlaySFX
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_080704FC
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080704FC
 | |
| sub_080704FC: @ 0x080704FC
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	ldr r5, _0807052C @ =gLinkEntity
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x5a
 | |
| 	ldrb r2, [r0]
 | |
| 	movs r0, #0x80
 | |
| 	ands r0, r2
 | |
| 	ldr r1, _08070530 @ =gLinkState
 | |
| 	cmp r0, #0
 | |
| 	bne _08070518
 | |
| 	ldr r0, [r1, #0x2c]
 | |
| 	cmp r4, r0
 | |
| 	beq _08070534
 | |
| _08070518:
 | |
| 	ldr r0, [r1, #0x2c]
 | |
| 	cmp r4, r0
 | |
| 	bne _08070522
 | |
| 	movs r0, #0
 | |
| 	str r0, [r1, #0x2c]
 | |
| _08070522:
 | |
| 	adds r0, r4, #0
 | |
| 	bl DeleteEntity
 | |
| 	b _08070566
 | |
| 	.align 2, 0
 | |
| _0807052C: .4byte gLinkEntity
 | |
| _08070530: .4byte gLinkState
 | |
| _08070534:
 | |
| 	movs r0, #0xf
 | |
| 	ands r0, r2
 | |
| 	cmp r0, #0xf
 | |
| 	beq _08070562
 | |
| 	ldrb r1, [r5, #0x1e]
 | |
| 	adds r0, #0x91
 | |
| 	subs r0, r1, r0
 | |
| 	ldrb r2, [r4, #0x1e]
 | |
| 	cmp r0, r2
 | |
| 	beq _08070558
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x6f
 | |
| 	strb r0, [r4, #0x1e]
 | |
| 	ldrb r1, [r4, #0x1e]
 | |
| 	ldrh r2, [r4, #0x12]
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_080042D0
 | |
| _08070558:
 | |
| 	adds r0, r4, #0
 | |
| 	adds r1, r5, #0
 | |
| 	bl sub_08078E84
 | |
| 	b _08070566
 | |
| _08070562:
 | |
| 	movs r0, #0xff
 | |
| 	strb r0, [r4, #0x1e]
 | |
| _08070566:
 | |
| 	ldr r2, _08070580 @ =gLinkEntity
 | |
| 	ldrb r1, [r2, #0x14]
 | |
| 	movs r0, #2
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _08070584
 | |
| 	ldrb r0, [r2, #0x18]
 | |
| 	lsls r0, r0, #0x19
 | |
| 	lsrs r2, r0, #0x1f
 | |
| 	movs r0, #1
 | |
| 	eors r2, r0
 | |
| 	b _0807058A
 | |
| 	.align 2, 0
 | |
| _08070580: .4byte gLinkEntity
 | |
| _08070584:
 | |
| 	ldrb r0, [r2, #0x18]
 | |
| 	lsls r0, r0, #0x19
 | |
| 	lsrs r2, r0, #0x1f
 | |
| _0807058A:
 | |
| 	lsls r2, r2, #6
 | |
| 	ldrb r1, [r4, #0x18]
 | |
| 	movs r0, #0x41
 | |
| 	rsbs r0, r0, #0
 | |
| 	ands r0, r1
 | |
| 	orrs r0, r2
 | |
| 	strb r0, [r4, #0x18]
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_0807059C
 | |
| sub_0807059C: @ 0x0807059C
 | |
| 	push {lr}
 | |
| 	ldr r0, _080705A8 @ =gUnk_02034490
 | |
| 	movs r1, #0x18
 | |
| 	bl _DmaZero
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080705A8: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080705AC
 | |
| sub_080705AC: @ 0x080705AC
 | |
| 	push {lr}
 | |
| 	ldr r0, _08070614 @ =gUnk_03000FF0
 | |
| 	ldrh r1, [r0, #2]
 | |
| 	movs r0, #8
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _08070674
 | |
| 	ldr r0, _08070618 @ =gUnk_03000FD0
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070674
 | |
| 	ldr r0, _0807061C @ =gUnk_02034490
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070674
 | |
| 	ldr r0, _08070620 @ =gTextBox
 | |
| 	ldrb r1, [r0]
 | |
| 	movs r0, #0x7f
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _08070674
 | |
| 	ldr r1, _08070624 @ =gUnk_02002A40
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0xaa
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08070674
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0xf2
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08070674
 | |
| 	ldr r1, _08070628 @ =gLinkState
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x8b
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070674
 | |
| 	ldr r0, _0807062C @ =gUnk_03003DC0
 | |
| 	ldrh r0, [r0, #8]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070674
 | |
| 	adds r2, r1, #0
 | |
| 	adds r2, #0xa8
 | |
| 	ldrb r0, [r2]
 | |
| 	cmp r0, #0
 | |
| 	bne _08070630
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0xa9
 | |
| 	ldrb r0, [r0]
 | |
| 	b _08070632
 | |
| 	.align 2, 0
 | |
| _08070614: .4byte gUnk_03000FF0
 | |
| _08070618: .4byte gUnk_03000FD0
 | |
| _0807061C: .4byte gUnk_02034490
 | |
| _08070620: .4byte gTextBox
 | |
| _08070624: .4byte gUnk_02002A40
 | |
| _08070628: .4byte gLinkState
 | |
| _0807062C: .4byte gUnk_03003DC0
 | |
| _08070630:
 | |
| 	ldrb r0, [r2]
 | |
| _08070632:
 | |
| 	subs r0, #0x12
 | |
| 	cmp r0, #0xa
 | |
| 	bhi _08070678
 | |
| 	lsls r0, r0, #2
 | |
| 	ldr r1, _08070644 @ =_08070648
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	mov pc, r0
 | |
| 	.align 2, 0
 | |
| _08070644: .4byte _08070648
 | |
| _08070648: @ jump table
 | |
| 	.4byte _08070674 @ case 0
 | |
| 	.4byte _08070674 @ case 1
 | |
| 	.4byte _08070678 @ case 2
 | |
| 	.4byte _08070674 @ case 3
 | |
| 	.4byte _08070674 @ case 4
 | |
| 	.4byte _08070678 @ case 5
 | |
| 	.4byte _08070678 @ case 6
 | |
| 	.4byte _08070678 @ case 7
 | |
| 	.4byte _08070678 @ case 8
 | |
| 	.4byte _08070678 @ case 9
 | |
| 	.4byte _08070674 @ case 10
 | |
| _08070674:
 | |
| 	movs r0, #0
 | |
| 	b _0807067E
 | |
| _08070678:
 | |
| 	bl sub_080A4D88
 | |
| 	movs r0, #1
 | |
| _0807067E:
 | |
| 	pop {pc}
 |