mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			639 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			639 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| 	.include "asm/macros.inc"
 | |
| 
 | |
| 	.include "constants/constants.inc"
 | |
| 
 | |
| 	.syntax unified
 | |
| 
 | |
| 	.text
 | |
| 
 | |
| 	thumb_func_start sub_08077698
 | |
| sub_08077698: @ 0x08077698
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	ldr r2, _0807771C @ =gPlayerState
 | |
| 	ldrb r1, [r2, #3]
 | |
| 	movs r0, #0xfe
 | |
| 	ands r0, r1
 | |
| 	strb r0, [r2, #3]
 | |
| 	ldrb r1, [r2, #4]
 | |
| 	movs r0, #0xf
 | |
| 	ands r0, r1
 | |
| 	strb r0, [r2, #4]
 | |
| 	ldrb r0, [r2, #7]
 | |
| 	ldrb r3, [r2, #2]
 | |
| 	orrs r0, r3
 | |
| 	movs r1, #0x80
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _08077700
 | |
| 	movs r0, #0x40
 | |
| 	ands r0, r3
 | |
| 	cmp r0, #0
 | |
| 	bne _08077700
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x26
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077700
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_08077758
 | |
| 	cmp r0, #0
 | |
| 	beq _08077700
 | |
| 	bl sub_080777A0
 | |
| 	cmp r0, #0
 | |
| 	bne _08077700
 | |
| 	ldr r4, _08077720 @ =gSave
 | |
| 	adds r0, r4, #0
 | |
| 	adds r0, #0xb4
 | |
| 	ldrb r0, [r0]
 | |
| 	movs r1, #1
 | |
| 	movs r2, #0
 | |
| 	bl sub_08077880
 | |
| 	adds r4, #0xb5
 | |
| 	ldrb r0, [r4]
 | |
| 	movs r1, #2
 | |
| 	movs r2, #0
 | |
| 	bl sub_08077880
 | |
| 	bl sub_080778CC
 | |
| _08077700:
 | |
| 	movs r5, #0
 | |
| 	ldr r4, _08077724 @ =gUnk_03000B80
 | |
| _08077704:
 | |
| 	ldrb r0, [r4, #9]
 | |
| 	cmp r0, #0
 | |
| 	beq _08077712
 | |
| 	adds r0, r4, #0
 | |
| 	adds r1, r5, #0
 | |
| 	bl sub_080752E8
 | |
| _08077712:
 | |
| 	adds r4, #0x1c
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #3
 | |
| 	bls _08077704
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _0807771C: .4byte gPlayerState
 | |
| _08077720: .4byte gSave
 | |
| _08077724: .4byte gUnk_03000B80
 | |
| 
 | |
| 	thumb_func_start sub_08077728
 | |
| sub_08077728: @ 0x08077728
 | |
| 	push {lr}
 | |
| 	cmp r0, #0
 | |
| 	bne _08077744
 | |
| 	ldr r0, _08077740 @ =gSave
 | |
| 	adds r0, #0xb4
 | |
| 	ldrb r0, [r0]
 | |
| 	movs r1, #1
 | |
| 	movs r2, #1
 | |
| 	bl sub_08077880
 | |
| 	b _08077752
 | |
| 	.align 2, 0
 | |
| _08077740: .4byte gSave
 | |
| _08077744:
 | |
| 	ldr r0, _08077754 @ =gSave
 | |
| 	adds r0, #0xb5
 | |
| 	ldrb r0, [r0]
 | |
| 	movs r1, #2
 | |
| 	movs r2, #1
 | |
| 	bl sub_08077880
 | |
| _08077752:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _08077754: .4byte gSave
 | |
| 
 | |
| 	thumb_func_start sub_08077758
 | |
| sub_08077758: @ 0x08077758
 | |
| 	push {lr}
 | |
| 	adds r3, r0, #0
 | |
| 	ldr r2, _08077794 @ =gPlayerState
 | |
| 	ldr r1, [r2, #0x30]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #7
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0807779C
 | |
| 	movs r0, #0xd5
 | |
| 	lsls r0, r0, #4
 | |
| 	ands r1, r0
 | |
| 	cmp r1, #0
 | |
| 	bne _08077798
 | |
| 	ldrb r0, [r2, #0x1e]
 | |
| 	ldrb r1, [r2, #0x1a]
 | |
| 	orrs r1, r0
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x7a
 | |
| 	ldrh r0, [r0]
 | |
| 	orrs r1, r0
 | |
| 	cmp r1, #0
 | |
| 	bne _0807779C
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x42
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807779C
 | |
| 	movs r0, #1
 | |
| 	b _0807779E
 | |
| 	.align 2, 0
 | |
| _08077794: .4byte gPlayerState
 | |
| _08077798:
 | |
| 	bl sub_0807A108
 | |
| _0807779C:
 | |
| 	movs r0, #0
 | |
| _0807779E:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080777A0
 | |
| sub_080777A0: @ 0x080777A0
 | |
| 	push {r4, lr}
 | |
| 	ldr r3, _080777D0 @ =gPlayerState
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x92
 | |
| 	ldrh r1, [r0]
 | |
| 	movs r4, #0x80
 | |
| 	adds r0, r4, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _08077870
 | |
| 	ldr r1, [r3, #0x30]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0xf
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080777D4
 | |
| 	adds r1, r3, #0
 | |
| 	adds r1, #0xa0
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r1]
 | |
| 	bl sub_0807A108
 | |
| _080777CC:
 | |
| 	movs r0, #1
 | |
| 	b _0807787C
 | |
| 	.align 2, 0
 | |
| _080777D0: .4byte gPlayerState
 | |
| _080777D4:
 | |
| 	ldr r2, _080777F4 @ =gArea
 | |
| 	ldrb r0, [r2, #0x18]
 | |
| 	cmp r0, #2
 | |
| 	beq _080777FC
 | |
| 	cmp r0, #3
 | |
| 	beq _08077810
 | |
| 	ldr r0, _080777F8 @ =gUnk_0200AF00
 | |
| 	adds r0, #0x2c
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0xc
 | |
| 	bne _0807787A
 | |
| 	adds r2, r3, #0
 | |
| 	ldrb r0, [r2, #0x1c]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807787A
 | |
| 	b _08077838
 | |
| 	.align 2, 0
 | |
| _080777F4: .4byte gArea
 | |
| _080777F8: .4byte gUnk_0200AF00
 | |
| _080777FC:
 | |
| 	ldrb r0, [r2, #0x1a]
 | |
| 	cmp r0, #0
 | |
| 	bne _080777CC
 | |
| 	ldr r1, _0807780C @ =gPlayerEntity
 | |
| 	ldrb r0, [r1, #0xd]
 | |
| 	adds r0, #1
 | |
| 	strb r0, [r1, #0xd]
 | |
| 	b _080777CC
 | |
| 	.align 2, 0
 | |
| _0807780C: .4byte gPlayerEntity
 | |
| _08077810:
 | |
| 	ldrb r0, [r2, #0x1a]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807787A
 | |
| 	ands r1, r4
 | |
| 	cmp r1, #0
 | |
| 	beq _0807787A
 | |
| 	ldr r0, _08077834 @ =gPlayerEntity
 | |
| 	ldrb r1, [r0, #0xd]
 | |
| 	adds r1, #1
 | |
| 	strb r1, [r0, #0xd]
 | |
| 	ldrb r2, [r0, #0x10]
 | |
| 	movs r1, #0x7f
 | |
| 	ands r1, r2
 | |
| 	strb r1, [r0, #0x10]
 | |
| 	movs r1, #0xb4
 | |
| 	bl RequestPriorityDuration
 | |
| 	b _080777CC
 | |
| 	.align 2, 0
 | |
| _08077834: .4byte gPlayerEntity
 | |
| _08077838:
 | |
| 	ldrb r0, [r2, #0x12]
 | |
| 	cmp r0, #0x11
 | |
| 	beq _0807787A
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x90
 | |
| 	ldrh r1, [r0]
 | |
| 	movs r0, #0xf0
 | |
| 	lsls r0, r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0807787A
 | |
| 	ldr r0, [r2, #0x30]
 | |
| 	ldr r1, _0807786C @ =0x00040400
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0807787A
 | |
| 	ldrb r0, [r2, #2]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807787A
 | |
| 	ldrb r0, [r2, #4]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807787A
 | |
| 	movs r0, #0x18
 | |
| 	strb r0, [r2, #0xc]
 | |
| 	b _0807787A
 | |
| 	.align 2, 0
 | |
| _0807786C: .4byte 0x00040400
 | |
| _08077870:
 | |
| 	ldr r0, [r3, #0x30]
 | |
| 	movs r1, #0x20
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _080777CC
 | |
| _0807787A:
 | |
| 	movs r0, #0
 | |
| _0807787C:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_08077880
 | |
| sub_08077880: @ 0x08077880
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	adds r6, r1, #0
 | |
| 	subs r0, r4, #1
 | |
| 	cmp r0, #0x1e
 | |
| 	bhi _080778C0
 | |
| 	lsls r0, r4, #1
 | |
| 	adds r0, r0, r4
 | |
| 	lsls r0, r0, #2
 | |
| 	ldr r1, _080778C4 @ =gUnk_0811BE48
 | |
| 	adds r5, r0, r1
 | |
| 	ldr r1, _080778C8 @ =gUnk_03004010
 | |
| 	ldrb r0, [r5]
 | |
| 	cmp r0, #0
 | |
| 	beq _080778A0
 | |
| 	adds r1, #2
 | |
| _080778A0:
 | |
| 	ldrh r0, [r1]
 | |
| 	ands r0, r6
 | |
| 	cmp r0, #0
 | |
| 	bne _080778AC
 | |
| 	cmp r2, #0
 | |
| 	beq _080778C0
 | |
| _080778AC:
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_0807794C
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r1, #0
 | |
| 	beq _080778C0
 | |
| 	ldrb r0, [r5, #1]
 | |
| 	strb r0, [r1, #9]
 | |
| 	strb r4, [r1, #1]
 | |
| 	strb r6, [r1, #3]
 | |
| _080778C0:
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _080778C4: .4byte gUnk_0811BE48
 | |
| _080778C8: .4byte gUnk_03004010
 | |
| 
 | |
| 	thumb_func_start sub_080778CC
 | |
| sub_080778CC: @ 0x080778CC
 | |
| 	push {lr}
 | |
| 	ldr r2, _08077920 @ =gPlayerState
 | |
| 	ldr r0, [r2, #0x30]
 | |
| 	ldr r1, _08077924 @ =0x000400A0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0807791C
 | |
| 	ldr r0, _08077928 @ =gPlayerEntity
 | |
| 	adds r0, #0x79
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _080778FA
 | |
| 	ldrb r0, [r2, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _080778FA
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x92
 | |
| 	ldrh r1, [r0]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #8
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0807791C
 | |
| _080778FA:
 | |
| 	bl sub_080789A8
 | |
| 	cmp r0, #0
 | |
| 	bne _08077910
 | |
| 	ldr r0, _08077920 @ =gPlayerState
 | |
| 	adds r0, #0x90
 | |
| 	ldrh r1, [r0]
 | |
| 	ldr r0, _0807792C @ =0x00000F03
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _0807791C
 | |
| _08077910:
 | |
| 	movs r0, #0x1b
 | |
| 	bl sub_0807794C
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r1, #0
 | |
| 	bne _08077930
 | |
| _0807791C:
 | |
| 	movs r0, #0
 | |
| 	b _08077940
 | |
| 	.align 2, 0
 | |
| _08077920: .4byte gPlayerState
 | |
| _08077924: .4byte 0x000400A0
 | |
| _08077928: .4byte gPlayerEntity
 | |
| _0807792C: .4byte 0x00000F03
 | |
| _08077930:
 | |
| 	movs r0, #0x1b
 | |
| 	strb r0, [r1, #1]
 | |
| 	ldr r0, _08077944 @ =gUnk_0811BE48
 | |
| 	ldr r2, _08077948 @ =0x00000145
 | |
| 	adds r0, r0, r2
 | |
| 	ldrb r0, [r0]
 | |
| 	strb r0, [r1, #9]
 | |
| 	movs r0, #1
 | |
| _08077940:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _08077944: .4byte gUnk_0811BE48
 | |
| _08077948: .4byte 0x00000145
 | |
| 
 | |
| 	thumb_func_start sub_0807794C
 | |
| sub_0807794C: @ 0x0807794C
 | |
| 	push {lr}
 | |
| 	adds r2, r0, #0
 | |
| 	ldr r0, _080779B8 @ =gPlayerState
 | |
| 	ldrb r1, [r0, #0xc]
 | |
| 	adds r3, r0, #0
 | |
| 	cmp r1, #0x18
 | |
| 	bne _0807795E
 | |
| 	cmp r2, #0x1b
 | |
| 	bne _080779B2
 | |
| _0807795E:
 | |
| 	ldr r0, [r3, #0x30]
 | |
| 	movs r1, #0x88
 | |
| 	lsls r1, r1, #0xf
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0807796E
 | |
| 	cmp r2, #6
 | |
| 	bhi _080779B2
 | |
| _0807796E:
 | |
| 	ldrb r0, [r3, #2]
 | |
| 	cmp r0, #0
 | |
| 	bne _0807797C
 | |
| 	ldr r0, _080779BC @ =gPlayerEntity
 | |
| 	ldr r0, [r0, #0x34]
 | |
| 	cmp r0, #0
 | |
| 	beq _08077980
 | |
| _0807797C:
 | |
| 	cmp r2, #6
 | |
| 	bhi _080779B2
 | |
| _08077980:
 | |
| 	ldr r0, [r3, #0x30]
 | |
| 	movs r1, #0x80
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _0807799A
 | |
| 	ldr r0, _080779C0 @ =gUnk_0811BE48
 | |
| 	lsls r1, r2, #1
 | |
| 	adds r1, r1, r2
 | |
| 	lsls r1, r1, #2
 | |
| 	adds r1, r1, r0
 | |
| 	ldrb r0, [r1, #8]
 | |
| 	cmp r0, #0
 | |
| 	beq _080779B2
 | |
| _0807799A:
 | |
| 	ldrb r0, [r3, #0x12]
 | |
| 	cmp r0, #0x11
 | |
| 	bne _080779C4
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x37
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _080779C4
 | |
| 	adds r0, r2, #0
 | |
| 	subs r0, #0x14
 | |
| 	cmp r0, #1
 | |
| 	bls _080779C4
 | |
| _080779B2:
 | |
| 	movs r0, #0
 | |
| 	b _080779DE
 | |
| 	.align 2, 0
 | |
| _080779B8: .4byte gPlayerState
 | |
| _080779BC: .4byte gPlayerEntity
 | |
| _080779C0: .4byte gUnk_0811BE48
 | |
| _080779C4:
 | |
| 	ldr r1, _080779E0 @ =gUnk_0811BE48
 | |
| 	lsls r0, r2, #1
 | |
| 	adds r0, r0, r2
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r0, [r0, #2]
 | |
| 	ldr r1, _080779E4 @ =gUnk_0811BFC8
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r1, [r0]
 | |
| 	adds r0, r2, #0
 | |
| 	bl _call_via_r1
 | |
| _080779DE:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080779E0: .4byte gUnk_0811BE48
 | |
| _080779E4: .4byte gUnk_0811BFC8
 | |
| 
 | |
| 	thumb_func_start sub_080779E8
 | |
| sub_080779E8: @ 0x080779E8
 | |
| 	movs r0, #0
 | |
| 	bx lr
 | |
| 
 | |
| 	thumb_func_start sub_080779EC
 | |
| sub_080779EC: @ 0x080779EC
 | |
| 	push {lr}
 | |
| 	ldr r1, _08077A00 @ =gUnk_03000B80
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x25
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077A04
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x1c
 | |
| 	b _08077A16
 | |
| 	.align 2, 0
 | |
| _08077A00: .4byte gUnk_03000B80
 | |
| _08077A04:
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x41
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08077A12
 | |
| 	movs r0, #0
 | |
| 	b _08077A16
 | |
| _08077A12:
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x38
 | |
| _08077A16:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_08077A18
 | |
| sub_08077A18: @ 0x08077A18
 | |
| 	push {lr}
 | |
| 	adds r1, r0, #0
 | |
| 	ldr r0, _08077A3C @ =gPlayerState
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077A44
 | |
| 	ldr r0, _08077A40 @ =gUnk_03000B80
 | |
| 	ldrb r2, [r0, #0x1d]
 | |
| 	cmp r1, r2
 | |
| 	beq _08077A44
 | |
| 	adds r0, #0x39
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r1, r0
 | |
| 	beq _08077A44
 | |
| 	adds r0, r1, #0
 | |
| 	bl sub_080779EC
 | |
| 	b _08077A46
 | |
| 	.align 2, 0
 | |
| _08077A3C: .4byte gPlayerState
 | |
| _08077A40: .4byte gUnk_03000B80
 | |
| _08077A44:
 | |
| 	movs r0, #0
 | |
| _08077A46:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_08077A48
 | |
| sub_08077A48: @ 0x08077A48
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r2, r0, #0
 | |
| 	ldr r6, _08077A88 @ =gPlayerState
 | |
| 	ldrb r0, [r6, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077A94
 | |
| 	ldrb r1, [r6, #2]
 | |
| 	movs r0, #0x20
 | |
| 	ands r0, r1
 | |
| 	lsls r0, r0, #0x18
 | |
| 	lsrs r4, r0, #0x18
 | |
| 	cmp r4, #0
 | |
| 	bne _08077A94
 | |
| 	ldr r0, _08077A8C @ =gUnk_0811BE48
 | |
| 	lsls r1, r2, #1
 | |
| 	adds r1, r1, r2
 | |
| 	lsls r1, r1, #2
 | |
| 	adds r1, r1, r0
 | |
| 	ldr r5, _08077A90 @ =gUnk_03000B80
 | |
| 	ldrb r0, [r1, #1]
 | |
| 	ldrb r1, [r5, #9]
 | |
| 	cmp r0, r1
 | |
| 	blo _08077A94
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #0
 | |
| 	bl sub_08077E78
 | |
| 	strb r4, [r6, #1]
 | |
| 	strb r4, [r6, #0x1c]
 | |
| 	strb r4, [r6, #0x1b]
 | |
| 	adds r0, r5, #0
 | |
| 	b _08077A96
 | |
| 	.align 2, 0
 | |
| _08077A88: .4byte gPlayerState
 | |
| _08077A8C: .4byte gUnk_0811BE48
 | |
| _08077A90: .4byte gUnk_03000B80
 | |
| _08077A94:
 | |
| 	movs r0, #0
 | |
| _08077A96:
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 
 | |
| 	thumb_func_start sub_08077A98
 | |
| sub_08077A98: @ 0x08077A98
 | |
| 	push {lr}
 | |
| 	ldr r0, _08077AB8 @ =gSave
 | |
| 	adds r0, #0xac
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _08077AC4
 | |
| 	ldr r0, _08077ABC @ =gPlayerState
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077AC4
 | |
| 	ldr r1, _08077AC0 @ =gUnk_03000B80
 | |
| 	ldrb r0, [r1, #9]
 | |
| 	cmp r0, #0
 | |
| 	bne _08077AC4
 | |
| 	adds r0, r1, #0
 | |
| 	b _08077AC6
 | |
| 	.align 2, 0
 | |
| _08077AB8: .4byte gSave
 | |
| _08077ABC: .4byte gPlayerState
 | |
| _08077AC0: .4byte gUnk_03000B80
 | |
| _08077AC4:
 | |
| 	movs r0, #0
 | |
| _08077AC6:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_08077AC8
 | |
| sub_08077AC8: @ 0x08077AC8
 | |
| 	push {lr}
 | |
| 	movs r2, #0
 | |
| 	ldr r1, _08077AD8 @ =gUnk_03000B80
 | |
| _08077ACE:
 | |
| 	ldrb r0, [r1, #9]
 | |
| 	cmp r0, #0
 | |
| 	beq _08077ADC
 | |
| 	movs r0, #0
 | |
| 	b _08077AE6
 | |
| 	.align 2, 0
 | |
| _08077AD8: .4byte gUnk_03000B80
 | |
| _08077ADC:
 | |
| 	adds r1, #0x1c
 | |
| 	adds r2, #1
 | |
| 	cmp r2, #3
 | |
| 	bls _08077ACE
 | |
| 	ldr r0, _08077AE8 @ =gUnk_03000BD4
 | |
| _08077AE6:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _08077AE8: .4byte gUnk_03000BD4
 | |
| 
 | |
| 	thumb_func_start sub_08077AEC
 | |
| sub_08077AEC: @ 0x08077AEC
 | |
| 	push {lr}
 | |
| 	ldr r0, _08077B14 @ =gUnk_03000BD4
 | |
| 	movs r1, #3
 | |
| 	bl sub_08077E78
 | |
| 	ldr r2, _08077B18 @ =gPlayerState
 | |
| 	ldr r0, [r2, #0x30]
 | |
| 	ldr r1, _08077B1C @ =0xFF7FFFFF
 | |
| 	ands r0, r1
 | |
| 	str r0, [r2, #0x30]
 | |
| 	movs r0, #0x10
 | |
| 	bl IsItemEquipped
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r1, #2
 | |
| 	beq _08077B12
 | |
| 	movs r0, #0xf
 | |
| 	bl ForceEquipItem
 | |
| _08077B12:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _08077B14: .4byte gUnk_03000BD4
 | |
| _08077B18: .4byte gPlayerState
 | |
| _08077B1C: .4byte 0xFF7FFFFF
 | |
| 
 | |
| 	thumb_func_start sub_08077B20
 | |
| sub_08077B20: @ 0x08077B20
 | |
| 	push {lr}
 | |
| 	bl ResetPlayer
 | |
| 	bl sub_08077AEC
 | |
| 	pop {pc}
 |