mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			3774 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			3774 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| 	.include "asm/macros.inc"
 | |
| 
 | |
| 	.include "constants/constants.inc"
 | |
| 
 | |
| 	.syntax unified
 | |
| 
 | |
| 	.text
 | |
| 
 | |
| 	thumb_func_start sub_080A3C6C
 | |
| sub_080A3C6C: @ 0x080A3C6C
 | |
| 	push {r4, r5, lr}
 | |
| 	ldr r0, _080A3C9C @ =gFadeControl
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A3C78
 | |
| 	b _080A3DA8
 | |
| _080A3C78:
 | |
| 	ldr r5, _080A3CA0 @ =gMenu
 | |
| 	movs r0, #2
 | |
| 	strb r0, [r5, #1]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r2, r0, #0x10
 | |
| 	ldr r0, [r5, #0x10]
 | |
| 	subs r4, r2, r0
 | |
| 	adds r1, r4, #0
 | |
| 	cmp r4, #0
 | |
| 	bge _080A3C92
 | |
| 	rsbs r1, r4, #0
 | |
| _080A3C92:
 | |
| 	ldr r0, _080A3CA4 @ =0x00001FFD
 | |
| 	cmp r1, r0
 | |
| 	bhi _080A3CA8
 | |
| 	str r2, [r5, #0x10]
 | |
| 	b _080A3CDE
 | |
| 	.align 2, 0
 | |
| _080A3C9C: .4byte gFadeControl
 | |
| _080A3CA0: .4byte gMenu
 | |
| _080A3CA4: .4byte 0x00001FFD
 | |
| _080A3CA8:
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r5, #1]
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_08000E44
 | |
| 	adds r2, r0, #0
 | |
| 	adds r0, r4, #0
 | |
| 	cmp r0, #0
 | |
| 	bge _080A3CBE
 | |
| 	ldr r1, _080A3D18 @ =0x0001FFFF
 | |
| 	adds r0, r0, r1
 | |
| _080A3CBE:
 | |
| 	asrs r4, r0, #0x11
 | |
| 	cmp r4, #0
 | |
| 	bge _080A3CC6
 | |
| 	rsbs r4, r4, #0
 | |
| _080A3CC6:
 | |
| 	cmp r4, #5
 | |
| 	ble _080A3CCC
 | |
| 	movs r4, #5
 | |
| _080A3CCC:
 | |
| 	ldr r0, _080A3D1C @ =gUnk_081280EE
 | |
| 	adds r0, r4, r0
 | |
| 	ldrb r1, [r0]
 | |
| 	ldr r0, _080A3D20 @ =0x00000666
 | |
| 	muls r0, r2, r0
 | |
| 	muls r1, r0, r1
 | |
| 	ldr r0, [r5, #0x10]
 | |
| 	adds r0, r0, r1
 | |
| 	str r0, [r5, #0x10]
 | |
| _080A3CDE:
 | |
| 	adds r3, r5, #0
 | |
| 	adds r3, #0x29
 | |
| 	ldrb r2, [r3]
 | |
| 	ldr r0, [r5, #0x10]
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r0, #0
 | |
| 	bge _080A3CF0
 | |
| 	ldr r4, _080A3D24 @ =0x0000FFFF
 | |
| 	adds r1, r0, r4
 | |
| _080A3CF0:
 | |
| 	asrs r1, r1, #0x10
 | |
| 	cmp r2, r1
 | |
| 	beq _080A3CFE
 | |
| 	strb r1, [r3]
 | |
| 	movs r0, #0x69
 | |
| 	bl SoundReq
 | |
| _080A3CFE:
 | |
| 	ldr r2, _080A3D28 @ =gInput
 | |
| 	ldrh r1, [r2, #2]
 | |
| 	ldr r0, _080A3D2C @ =0x0000020A
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A3D30
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A7114
 | |
| 	movs r0, #0x6c
 | |
| 	bl SoundReq
 | |
| 	b _080A3DA8
 | |
| 	.align 2, 0
 | |
| _080A3D18: .4byte 0x0001FFFF
 | |
| _080A3D1C: .4byte gUnk_081280EE
 | |
| _080A3D20: .4byte 0x00000666
 | |
| _080A3D24: .4byte 0x0000FFFF
 | |
| _080A3D28: .4byte gInput
 | |
| _080A3D2C: .4byte 0x0000020A
 | |
| _080A3D30:
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x28
 | |
| 	ldrb r4, [r0]
 | |
| 	ldrh r1, [r2, #4]
 | |
| 	adds r5, r0, #0
 | |
| 	cmp r1, #0x20
 | |
| 	beq _080A3D56
 | |
| 	cmp r1, #0x20
 | |
| 	bgt _080A3D4C
 | |
| 	cmp r1, #1
 | |
| 	beq _080A3D5E
 | |
| 	cmp r1, #0x10
 | |
| 	beq _080A3D5A
 | |
| 	b _080A3D8A
 | |
| _080A3D4C:
 | |
| 	cmp r1, #0x40
 | |
| 	beq _080A3D56
 | |
| 	cmp r1, #0x80
 | |
| 	beq _080A3D5A
 | |
| 	b _080A3D8A
 | |
| _080A3D56:
 | |
| 	subs r4, #1
 | |
| 	b _080A3D8A
 | |
| _080A3D5A:
 | |
| 	adds r4, #1
 | |
| 	b _080A3D8A
 | |
| _080A3D5E:
 | |
| 	ldr r2, _080A3DAC @ =gMenu
 | |
| 	ldrb r0, [r2, #1]
 | |
| 	cmp r0, #2
 | |
| 	bne _080A3D8A
 | |
| 	ldr r0, [r2, #0x10]
 | |
| 	cmp r0, #0
 | |
| 	bge _080A3D70
 | |
| 	ldr r1, _080A3DB0 @ =0x0000FFFF
 | |
| 	adds r0, r0, r1
 | |
| _080A3D70:
 | |
| 	asrs r4, r0, #0x10
 | |
| 	ldr r0, _080A3DB4 @ =gSave
 | |
| 	movs r1, #0x8c
 | |
| 	lsls r1, r1, #1
 | |
| 	adds r0, r0, r1
 | |
| 	adds r0, r4, r0
 | |
| 	ldrb r1, [r0]
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x2a
 | |
| 	strb r1, [r0]
 | |
| 	movs r0, #3
 | |
| 	bl sub_080A7114
 | |
| _080A3D8A:
 | |
| 	bl sub_080A3B48
 | |
| 	cmp r0, r4
 | |
| 	bgt _080A3D94
 | |
| 	subs r4, r0, #1
 | |
| _080A3D94:
 | |
| 	cmp r0, #1
 | |
| 	bgt _080A3D9A
 | |
| 	movs r4, #0
 | |
| _080A3D9A:
 | |
| 	cmp r4, #0
 | |
| 	bge _080A3DA0
 | |
| 	movs r4, #0
 | |
| _080A3DA0:
 | |
| 	ldrb r0, [r5]
 | |
| 	cmp r0, r4
 | |
| 	beq _080A3DA8
 | |
| 	strb r4, [r5]
 | |
| _080A3DA8:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A3DAC: .4byte gMenu
 | |
| _080A3DB0: .4byte 0x0000FFFF
 | |
| _080A3DB4: .4byte gSave
 | |
| 
 | |
| 	thumb_func_start sub_080A3DB8
 | |
| sub_080A3DB8: @ 0x080A3DB8
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A3DDC @ =gMenu
 | |
| 	ldrb r1, [r0, #1]
 | |
| 	cmp r1, #6
 | |
| 	bne _080A3DEE
 | |
| 	ldr r0, _080A3DE0 @ =gFuseInfo
 | |
| 	strb r1, [r0]
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	lsls r0, r0, #3
 | |
| 	ldr r1, _080A3DE4 @ =gUnk_080C9CBC
 | |
| 	adds r1, r0, r1
 | |
| 	ldrb r0, [r1, #3]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A3DE8
 | |
| 	ldrb r1, [r1, #4]
 | |
| 	bl MenuFadeIn
 | |
| 	b _080A3DF8
 | |
| 	.align 2, 0
 | |
| _080A3DDC: .4byte gMenu
 | |
| _080A3DE0: .4byte gFuseInfo
 | |
| _080A3DE4: .4byte gUnk_080C9CBC
 | |
| _080A3DE8:
 | |
| 	bl Subtask_Exit
 | |
| 	b _080A3DF8
 | |
| _080A3DEE:
 | |
| 	ldr r1, _080A3DFC @ =gFuseInfo
 | |
| 	movs r0, #5
 | |
| 	strb r0, [r1]
 | |
| 	bl Subtask_Exit
 | |
| _080A3DF8:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A3DFC: .4byte gFuseInfo
 | |
| 
 | |
| 	thumb_func_start sub_080A3E00
 | |
| sub_080A3E00: @ 0x080A3E00
 | |
| 	push {lr}
 | |
| 	ldr r1, _080A3E18 @ =gMenu
 | |
| 	movs r0, #3
 | |
| 	strb r0, [r1, #1]
 | |
| 	ldr r2, _080A3E1C @ =gUnk_081280F4
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r2
 | |
| 	ldr r0, [r0]
 | |
| 	bl _call_via_r0
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A3E18: .4byte gMenu
 | |
| _080A3E1C: .4byte gUnk_081280F4
 | |
| 
 | |
| 	thumb_func_start sub_080A3E20
 | |
| sub_080A3E20: @ 0x080A3E20
 | |
| 	push {lr}
 | |
| 	ldr r2, _080A3E44 @ =gMenu
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r2, #0x18]
 | |
| 	adds r1, r2, #0
 | |
| 	adds r1, #0x2c
 | |
| 	ldrb r0, [r1]
 | |
| 	adds r0, #2
 | |
| 	strb r0, [r1]
 | |
| 	lsls r0, r0, #0x18
 | |
| 	asrs r0, r0, #0x18
 | |
| 	cmp r0, #0x45
 | |
| 	ble _080A3E42
 | |
| 	movs r0, #0x46
 | |
| 	strb r0, [r1]
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r2, #6]
 | |
| _080A3E42:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A3E44: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A3E48
 | |
| sub_080A3E48: @ 0x080A3E48
 | |
| 	push {r4, lr}
 | |
| 	ldr r2, _080A3E78 @ =gUnk_080C9CBC
 | |
| 	ldr r3, _080A3E7C @ =gMenu
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x2a
 | |
| 	ldrb r0, [r0]
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r0, r0, r2
 | |
| 	ldrb r1, [r0, #5]
 | |
| 	ldr r0, _080A3E80 @ =gFuseInfo
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r0, r0, r2
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	cmp r1, r0
 | |
| 	beq _080A3E84
 | |
| 	movs r0, #0x8c
 | |
| 	lsls r0, r0, #1
 | |
| 	bl SoundReq
 | |
| 	movs r0, #4
 | |
| 	bl sub_080A7114
 | |
| 	b _080A3EC8
 | |
| 	.align 2, 0
 | |
| _080A3E78: .4byte gUnk_080C9CBC
 | |
| _080A3E7C: .4byte gMenu
 | |
| _080A3E80: .4byte gFuseInfo
 | |
| _080A3E84:
 | |
| 	movs r2, #0
 | |
| 	movs r0, #2
 | |
| 	strb r0, [r3, #6]
 | |
| 	movs r0, #0x14
 | |
| 	strh r0, [r3, #8]
 | |
| 	ldr r3, _080A3ECC @ =gScreen
 | |
| 	ldrh r0, [r3]
 | |
| 	movs r4, #0x80
 | |
| 	lsls r4, r4, #6
 | |
| 	adds r1, r4, #0
 | |
| 	orrs r0, r1
 | |
| 	strh r0, [r3]
 | |
| 	adds r1, r3, #0
 | |
| 	adds r1, #0x58
 | |
| 	ldr r0, _080A3ED0 @ =0x00006887
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #4
 | |
| 	ldr r0, _080A3ED4 @ =0x0000405F
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #4
 | |
| 	movs r0, #0x3f
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #2
 | |
| 	movs r0, #0x1f
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #4
 | |
| 	ldr r0, _080A3ED8 @ =0x00003F90
 | |
| 	strh r0, [r1]
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x6a
 | |
| 	strh r2, [r0]
 | |
| 	movs r0, #0xfa
 | |
| 	bl SoundReq
 | |
| _080A3EC8:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A3ECC: .4byte gScreen
 | |
| _080A3ED0: .4byte 0x00006887
 | |
| _080A3ED4: .4byte 0x0000405F
 | |
| _080A3ED8: .4byte 0x00003F90
 | |
| 
 | |
| 	thumb_func_start sub_080A3EDC
 | |
| sub_080A3EDC: @ 0x080A3EDC
 | |
| 	push {lr}
 | |
| 	ldr r2, _080A3F08 @ =gScreen
 | |
| 	adds r1, r2, #0
 | |
| 	adds r1, #0x6a
 | |
| 	ldrh r0, [r1]
 | |
| 	adds r0, #1
 | |
| 	strh r0, [r1]
 | |
| 	lsls r0, r0, #0x10
 | |
| 	lsrs r0, r0, #0x10
 | |
| 	cmp r0, #0xe
 | |
| 	bls _080A3F04
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r1]
 | |
| 	ldrh r1, [r2]
 | |
| 	ldr r0, _080A3F0C @ =0x0000DFFF
 | |
| 	ands r0, r1
 | |
| 	strh r0, [r2]
 | |
| 	movs r0, #5
 | |
| 	bl sub_080A7114
 | |
| _080A3F04:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A3F08: .4byte gScreen
 | |
| _080A3F0C: .4byte 0x0000DFFF
 | |
| 
 | |
| 	thumb_func_start sub_080A3F10
 | |
| sub_080A3F10: @ 0x080A3F10
 | |
| 	push {r4, lr}
 | |
| 	ldr r2, _080A3F48 @ =gMenu
 | |
| 	movs r0, #4
 | |
| 	strb r0, [r2, #1]
 | |
| 	adds r3, r2, #0
 | |
| 	adds r3, #0x2c
 | |
| 	ldrb r1, [r3]
 | |
| 	subs r1, #3
 | |
| 	strb r1, [r3]
 | |
| 	movs r4, #0x80
 | |
| 	lsls r4, r4, #1
 | |
| 	adds r0, r4, #0
 | |
| 	ldrh r4, [r2, #0x18]
 | |
| 	adds r0, r0, r4
 | |
| 	strh r0, [r2, #0x18]
 | |
| 	lsls r1, r1, #0x18
 | |
| 	cmp r1, #0
 | |
| 	bge _080A3F46
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r2, #0x18]
 | |
| 	strb r0, [r3]
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A7114
 | |
| 	movs r0, #0x6d
 | |
| 	bl SoundReq
 | |
| _080A3F46:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A3F48: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A3F4C
 | |
| sub_080A3F4C: @ 0x080A3F4C
 | |
| 	push {lr}
 | |
| 	ldr r1, _080A3F60 @ =gUnk_08128100
 | |
| 	ldr r0, _080A3F64 @ =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
 | |
| _080A3F60: .4byte gUnk_08128100
 | |
| _080A3F64: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A3F68
 | |
| sub_080A3F68: @ 0x080A3F68
 | |
| 	push {r4, r5, lr}
 | |
| 	ldr r5, _080A3FB4 @ =gMenu
 | |
| 	movs r0, #5
 | |
| 	strb r0, [r5, #1]
 | |
| 	ldr r4, _080A3FB8 @ =gUnk_02002C81
 | |
| 	ldr r0, _080A3FBC @ =gFuseInfo
 | |
| 	ldrb r1, [r0, #3]
 | |
| 	adds r0, r4, #0
 | |
| 	bl WriteBit
 | |
| 	ldr r0, _080A3FC0 @ =0xFFFFFED6
 | |
| 	adds r1, r4, r0
 | |
| 	ldrb r0, [r1]
 | |
| 	adds r0, #1
 | |
| 	strb r0, [r1]
 | |
| 	lsls r0, r0, #0x18
 | |
| 	lsrs r0, r0, #0x18
 | |
| 	cmp r0, #0x63
 | |
| 	bls _080A3F96
 | |
| 	ldr r0, _080A3FC4 @ =0xFFFFFED5
 | |
| 	adds r1, r4, r0
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r1]
 | |
| _080A3F96:
 | |
| 	bl sub_080A4468
 | |
| 	movs r0, #0xcd
 | |
| 	bl SoundReq
 | |
| 	ldr r0, _080A3FC8 @ =0x00000702
 | |
| 	movs r1, #0xe
 | |
| 	bl MessageAtHeight
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r5, #6]
 | |
| 	movs r0, #0x78
 | |
| 	strh r0, [r5, #8]
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A3FB4: .4byte gMenu
 | |
| _080A3FB8: .4byte gUnk_02002C81
 | |
| _080A3FBC: .4byte gFuseInfo
 | |
| _080A3FC0: .4byte 0xFFFFFED6
 | |
| _080A3FC4: .4byte 0xFFFFFED5
 | |
| _080A3FC8: .4byte 0x00000702
 | |
| 
 | |
| 	thumb_func_start sub_080A3FCC
 | |
| sub_080A3FCC: @ 0x080A3FCC
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A3FE8 @ =gMessage
 | |
| 	ldrb r1, [r0]
 | |
| 	movs r0, #0x7f
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	bne _080A3FE6
 | |
| 	ldr r0, _080A3FEC @ =gMenu
 | |
| 	movs r1, #2
 | |
| 	strb r1, [r0, #6]
 | |
| 	ldr r0, _080A3FF0 @ =0x00000147
 | |
| 	bl SoundReq
 | |
| _080A3FE6:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A3FE8: .4byte gMessage
 | |
| _080A3FEC: .4byte gMenu
 | |
| _080A3FF0: .4byte 0x00000147
 | |
| 
 | |
| 	thumb_func_start sub_080A3FF4
 | |
| sub_080A3FF4: @ 0x080A3FF4
 | |
| 	push {lr}
 | |
| 	ldr r2, _080A4014 @ =gMenu
 | |
| 	ldrh r0, [r2, #8]
 | |
| 	subs r0, #1
 | |
| 	strh r0, [r2, #8]
 | |
| 	lsls r0, r0, #0x10
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4018
 | |
| 	ldrh r0, [r2, #0x1a]
 | |
| 	ldrh r3, [r2, #0x18]
 | |
| 	adds r1, r0, r3
 | |
| 	strh r1, [r2, #0x18]
 | |
| 	adds r0, #0x20
 | |
| 	strh r0, [r2, #0x1a]
 | |
| 	b _080A4036
 | |
| 	.align 2, 0
 | |
| _080A4014: .4byte gMenu
 | |
| _080A4018:
 | |
| 	movs r0, #6
 | |
| 	strb r0, [r2, #1]
 | |
| 	movs r0, #3
 | |
| 	strb r0, [r2, #6]
 | |
| 	movs r0, #0x4f
 | |
| 	strh r0, [r2, #8]
 | |
| 	movs r0, #0xb3
 | |
| 	movs r1, #1
 | |
| 	movs r2, #0
 | |
| 	bl CreateObject
 | |
| 	movs r0, #0xe5
 | |
| 	lsls r0, r0, #1
 | |
| 	bl SoundReq
 | |
| _080A4036:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A4038
 | |
| sub_080A4038: @ 0x080A4038
 | |
| 	push {lr}
 | |
| 	ldr r1, _080A4050 @ =gMenu
 | |
| 	ldrh r0, [r1, #8]
 | |
| 	subs r0, #1
 | |
| 	strh r0, [r1, #8]
 | |
| 	lsls r0, r0, #0x10
 | |
| 	cmp r0, #0
 | |
| 	bge _080A404E
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A7114
 | |
| _080A404E:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4050: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A4054
 | |
| sub_080A4054: @ 0x080A4054
 | |
| 	push {lr}
 | |
| 	bl sub_080A422C
 | |
| 	bl sub_080A414C
 | |
| 	bl sub_080A4080
 | |
| 	movs r2, #0
 | |
| 	ldr r0, _080A407C @ =gUnk_02019EE0
 | |
| 	adds r1, r0, #1
 | |
| _080A4068:
 | |
| 	ldrb r0, [r1]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4072
 | |
| 	subs r0, #1
 | |
| 	strb r0, [r1]
 | |
| _080A4072:
 | |
| 	adds r1, #4
 | |
| 	adds r2, #1
 | |
| 	cmp r2, #0xf
 | |
| 	bls _080A4068
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A407C: .4byte gUnk_02019EE0
 | |
| 
 | |
| 	thumb_func_start sub_080A4080
 | |
| sub_080A4080: @ 0x080A4080
 | |
| .ifdef EU
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	ldr r4, _080A394C @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r4, #4]
 | |
| 	strh r0, [r4, #6]
 | |
| 	ldr r5, _080A3950 @ =gChooseFileState
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x2f
 | |
| 	movs r1, #0
 | |
| 	ldrsb r1, [r0, r1]
 | |
| 	movs r0, #0x10
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x40
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	movs r0, #0xfd
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0x94
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x50
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x90
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	ldr r7, _080A3954 @ =0x000001F9
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0xb8
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x94
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A3958 @ =gMain
 | |
| 	ldrh r0, [r0, #0xc]
 | |
| 	lsrs r0, r0, #2
 | |
| 	movs r1, #0xe
 | |
| 	ands r0, r1
 | |
| 	ldr r1, _080A395C @ =gUnk_08128110
 | |
| 	adds r6, r0, r1
 | |
| 	ldrb r1, [r6]
 | |
| 	movs r0, #0xa
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	bl sub_080A3B48
 | |
| 	subs r0, #1
 | |
| 	cmp r0, #0
 | |
| 	ble _080A3948
 | |
| 	ldr r1, [r5, #0x10]
 | |
| 	cmp r1, #0
 | |
| 	bge _080A3920
 | |
| 	ldr r2, _080A3960 @ =0x0000FFFF
 | |
| 	adds r1, r1, r2
 | |
| _080A3920:
 | |
| 	asrs r5, r1, #0x10
 | |
| 	cmp r5, r0
 | |
| 	beq _080A3934
 | |
| 	ldrb r0, [r6, #1]
 | |
| 	adds r0, #0x77
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A3934:
 | |
| 	cmp r5, #0
 | |
| 	beq _080A3948
 | |
| 	ldrb r1, [r6, #1]
 | |
| 	movs r0, #0x27
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #2
 | |
| 	bl DrawDirect
 | |
| _080A3948:
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A394C: .4byte gOamCmd
 | |
| _080A3950: .4byte gChooseFileState
 | |
| _080A3954: .4byte 0x000001F9
 | |
| _080A3958: .4byte gMain
 | |
| _080A395C: .4byte gUnk_08128110
 | |
| _080A3960: .4byte 0x0000FFFF
 | |
| .else
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	ldr r4, _080A4134 @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r4, #4]
 | |
| 	strh r0, [r4, #6]
 | |
| 	ldr r5, _080A4138 @ =gMenu
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x2f
 | |
| 	movs r1, #0
 | |
| 	ldrsb r1, [r0, r1]
 | |
| 	movs r0, #0x10
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x40
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	ldr r0, _080A413C @ =0x000001FB
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0x94
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x50
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x90
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	movs r7, #0xfd
 | |
| 	lsls r7, r7, #1
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0xb8
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x94
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A4140 @ =gMain
 | |
| 	ldrh r0, [r0, #0xc]
 | |
| 	lsrs r0, r0, #2
 | |
| 	movs r1, #0xe
 | |
| 	ands r0, r1
 | |
| 	ldr r1, _080A4144 @ =gUnk_08128110
 | |
| 	adds r6, r0, r1
 | |
| 	ldrb r1, [r6]
 | |
| 	movs r0, #0xa
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	bl sub_080A3B48
 | |
| 	subs r0, #1
 | |
| 	cmp r0, #0
 | |
| 	ble _080A4130
 | |
| 	ldr r1, [r5, #0x10]
 | |
| 	cmp r1, #0
 | |
| 	bge _080A4108
 | |
| 	ldr r2, _080A4148 @ =0x0000FFFF
 | |
| 	adds r1, r1, r2
 | |
| _080A4108:
 | |
| 	asrs r5, r1, #0x10
 | |
| 	cmp r5, r0
 | |
| 	beq _080A411C
 | |
| 	ldrb r0, [r6, #1]
 | |
| 	adds r0, #0x77
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A411C:
 | |
| 	cmp r5, #0
 | |
| 	beq _080A4130
 | |
| 	ldrb r1, [r6, #1]
 | |
| 	movs r0, #0x27
 | |
| 	subs r0, r0, r1
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #2
 | |
| 	bl DrawDirect
 | |
| _080A4130:
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4134: .4byte gOamCmd
 | |
| _080A4138: .4byte gMenu
 | |
| _080A413C: .4byte 0x000001FB
 | |
| _080A4140: .4byte gMain
 | |
| _080A4144: .4byte gUnk_08128110
 | |
| _080A4148: .4byte 0x0000FFFF
 | |
| .endif
 | |
| 
 | |
| 	thumb_func_start sub_080A414C
 | |
| sub_080A414C: @ 0x080A414C
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, sb
 | |
| 	mov r6, r8
 | |
| 	push {r6, r7}
 | |
| 	ldr r4, _080A4210 @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r4, #4]
 | |
| 	strh r0, [r4, #6]
 | |
| 	ldr r0, _080A4214 @ =gMenu
 | |
| 	ldrh r0, [r0, #0x10]
 | |
| 	ldr r1, _080A4218 @ =0x00000B21
 | |
| 	bl __divsi3
 | |
| 	lsls r0, r0, #0x10
 | |
| 	lsrs r0, r0, #0x10
 | |
| 	movs r5, #3
 | |
| 	rsbs r5, r5, #0
 | |
| 	movs r1, #0xff
 | |
| 	mov r8, r1
 | |
| 	adds r7, r4, #0
 | |
| 	ldr r6, _080A421C @ =gSineTable
 | |
| 	rsbs r0, r0, #0
 | |
| 	adds r4, r0, #0
 | |
| 	subs r4, #0x45
 | |
| 	ldr r2, _080A4220 @ =gUnk_02002B6B
 | |
| 	mov sb, r2
 | |
| _080A4180:
 | |
| 	adds r2, r4, #0
 | |
| 	mov r3, r8
 | |
| 	ands r2, r3
 | |
| 	lsls r0, r2, #1
 | |
| 	adds r0, r0, r6
 | |
| 	movs r3, #0
 | |
| 	ldrsh r1, [r0, r3]
 | |
| 	lsls r0, r1, #4
 | |
| 	adds r0, r0, r1
 | |
| 	lsls r0, r0, #2
 | |
| 	cmp r0, #0
 | |
| 	bge _080A419A
 | |
| 	adds r0, #0xff
 | |
| _080A419A:
 | |
| 	asrs r0, r0, #8
 | |
| 	adds r0, #0x4f
 | |
| 	strh r0, [r7, #2]
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x40
 | |
| 	mov r1, r8
 | |
| 	ands r0, r1
 | |
| 	lsls r0, r0, #1
 | |
| 	adds r0, r0, r6
 | |
| 	movs r2, #0
 | |
| 	ldrsh r1, [r0, r2]
 | |
| 	lsls r0, r1, #5
 | |
| 	adds r0, r0, r1
 | |
| 	lsls r0, r0, #1
 | |
| 	cmp r0, #0
 | |
| 	bge _080A41BC
 | |
| 	adds r0, #0xff
 | |
| _080A41BC:
 | |
| 	asrs r0, r0, #8
 | |
| 	subs r0, #0x10
 | |
| 	strh r0, [r7]
 | |
| 	ldr r2, _080A4214 @ =gMenu
 | |
| 	ldr r0, [r2, #0x10]
 | |
| 	cmp r0, #0
 | |
| 	bge _080A41CE
 | |
| 	ldr r3, _080A4224 @ =0x0000FFFF
 | |
| 	adds r0, r0, r3
 | |
| _080A41CE:
 | |
| 	asrs r0, r0, #0x10
 | |
| 	adds r3, r0, r5
 | |
| 	cmp r3, #0
 | |
| 	blt _080A4200
 | |
| 	mov r1, sb
 | |
| 	adds r0, r3, r1
 | |
| 	ldrb r1, [r0]
 | |
| 	ldr r0, _080A4228 @ =gSave
 | |
| 	cmp r5, #0
 | |
| 	bne _080A41EE
 | |
| 	ldrb r2, [r2, #1]
 | |
| 	cmp r2, #4
 | |
| 	bgt _080A41EE
 | |
| 	cmp r2, #3
 | |
| 	blt _080A41EE
 | |
| 	subs r1, #1
 | |
| _080A41EE:
 | |
| 	cmp r1, #0
 | |
| 	ble _080A4200
 | |
| 	movs r2, #0x8c
 | |
| 	lsls r2, r2, #1
 | |
| 	adds r0, r0, r2
 | |
| 	adds r0, r3, r0
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_080A42E0
 | |
| _080A4200:
 | |
| 	adds r4, #0x17
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #3
 | |
| 	ble _080A4180
 | |
| 	pop {r3, r4}
 | |
| 	mov r8, r3
 | |
| 	mov sb, r4
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4210: .4byte gOamCmd
 | |
| _080A4214: .4byte gMenu
 | |
| _080A4218: .4byte 0x00000B21
 | |
| _080A421C: .4byte gSineTable
 | |
| _080A4220: .4byte gUnk_02002B6B
 | |
| _080A4224: .4byte 0x0000FFFF
 | |
| _080A4228: .4byte gSave
 | |
| 
 | |
| 	thumb_func_start sub_080A422C
 | |
| sub_080A422C: @ 0x080A422C
 | |
| 	push {r4, r5, lr}
 | |
| 	ldr r5, _080A42A4 @ =gMenu
 | |
| 	ldrh r0, [r5, #0x18]
 | |
| 	lsrs r0, r0, #8
 | |
| 	movs r1, #0x1b
 | |
| 	bl __modsi3
 | |
| 	lsls r0, r0, #0x10
 | |
| 	lsrs r0, r0, #0x10
 | |
| 	ldr r1, _080A42A8 @ =gUnk_08128120
 | |
| 	adds r0, r0, r1
 | |
| 	movs r1, #0
 | |
| 	ldrsb r1, [r0, r1]
 | |
| 	lsls r1, r1, #4
 | |
| 	movs r4, #0x80
 | |
| 	lsls r4, r4, #1
 | |
| 	movs r0, #0
 | |
| 	adds r2, r4, #0
 | |
| 	movs r3, #0
 | |
| 	bl sub_0805ECEC
 | |
| 	ldr r1, _080A42AC @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r4, [r1, #4]
 | |
| 	strh r0, [r1, #6]
 | |
| 	movs r0, #0x4f
 | |
| 	strh r0, [r1, #2]
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x2a
 | |
| 	ldrb r2, [r0]
 | |
| 	adds r4, #0x80
 | |
| 	ldrb r0, [r5, #1]
 | |
| 	cmp r0, #5
 | |
| 	beq _080A42B6
 | |
| 	cmp r0, #5
 | |
| 	bgt _080A42B0
 | |
| 	cmp r0, #3
 | |
| 	blt _080A42C4
 | |
| 	adds r4, r5, #0
 | |
| 	adds r4, #0x2c
 | |
| 	movs r0, #0
 | |
| 	ldrsb r0, [r4, r0]
 | |
| 	adds r0, #0x32
 | |
| 	strh r0, [r1]
 | |
| 	adds r0, r2, #0
 | |
| 	movs r1, #0
 | |
| 	bl sub_080A42E0
 | |
| 	movs r1, #0
 | |
| 	ldrsb r1, [r4, r1]
 | |
| 	lsls r0, r1, #3
 | |
| 	adds r0, r0, r1
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r1, #0x46
 | |
| 	bl __divsi3
 | |
| 	movs r1, #0x8a
 | |
| 	subs r4, r1, r0
 | |
| 	b _080A42C6
 | |
| 	.align 2, 0
 | |
| _080A42A4: .4byte gMenu
 | |
| _080A42A8: .4byte gUnk_08128120
 | |
| _080A42AC: .4byte gOamCmd
 | |
| _080A42B0:
 | |
| 	cmp r0, #6
 | |
| 	beq _080A42C6
 | |
| 	b _080A42C4
 | |
| _080A42B6:
 | |
| 	movs r0, #0x78
 | |
| 	strh r0, [r1]
 | |
| 	adds r0, r2, #0
 | |
| 	movs r1, #0xff
 | |
| 	bl sub_080A42E0
 | |
| 	b _080A42C6
 | |
| _080A42C4:
 | |
| 	movs r4, #0x8a
 | |
| _080A42C6:
 | |
| 	ldr r0, _080A42D8 @ =gOamCmd
 | |
| 	strh r4, [r0]
 | |
| 	ldr r0, _080A42DC @ =gFuseInfo
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	movs r1, #0
 | |
| 	bl sub_080A42E0
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A42D8: .4byte gOamCmd
 | |
| _080A42DC: .4byte gFuseInfo
 | |
| 
 | |
| 	thumb_func_start sub_080A42E0
 | |
| sub_080A42E0: @ 0x080A42E0
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	adds r4, r1, #0
 | |
| 	lsls r0, r0, #3
 | |
| 	ldr r1, _080A42F4 @ =gUnk_080C9CBC
 | |
| 	adds r7, r0, r1
 | |
| 	cmp r4, #0xff
 | |
| 	bne _080A42F8
 | |
| 	ldrb r0, [r7, #2]
 | |
| 	b _080A42FA
 | |
| 	.align 2, 0
 | |
| _080A42F4: .4byte gUnk_080C9CBC
 | |
| _080A42F8:
 | |
| 	ldrb r0, [r7, #1]
 | |
| _080A42FA:
 | |
| 	bl sub_080A43A8
 | |
| 	adds r6, r0, #0
 | |
| 	cmp r4, #0
 | |
| 	beq _080A4372
 | |
| 	cmp r4, #0xff
 | |
| 	beq _080A4372
 | |
| 	lsls r1, r6, #2
 | |
| 	ldr r0, _080A4348 @ =gUnk_02019EE0
 | |
| 	adds r1, r1, r0
 | |
| 	lsls r5, r6, #1
 | |
| 	ldrb r0, [r1, #2]
 | |
| 	cmp r4, r0
 | |
| 	beq _080A4324
 | |
| 	strb r4, [r1, #2]
 | |
| 	movs r1, #0xb8
 | |
| 	lsls r1, r1, #2
 | |
| 	adds r0, r5, r1
 | |
| 	adds r1, r4, #0
 | |
| 	bl sub_0801C2F0
 | |
| _080A4324:
 | |
| 	ldr r1, _080A434C @ =gOamCmd
 | |
| 	ldr r2, _080A4350 @ =0x00003AE0
 | |
| 	adds r0, r5, r2
 | |
| 	strh r0, [r1, #8]
 | |
| 	movs r0, #0
 | |
| 	ldrsh r4, [r1, r0]
 | |
| 	movs r2, #2
 | |
| 	ldrsh r5, [r1, r2]
 | |
| 	ldr r0, _080A4354 @ =gMenu
 | |
| 	ldrb r0, [r0, #1]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4358
 | |
| 	ldrh r0, [r1]
 | |
| 	adds r0, #0x10
 | |
| 	strh r0, [r1]
 | |
| 	ldrh r0, [r1, #2]
 | |
| 	adds r0, #9
 | |
| 	b _080A4362
 | |
| 	.align 2, 0
 | |
| _080A4348: .4byte gUnk_02019EE0
 | |
| _080A434C: .4byte gOamCmd
 | |
| _080A4350: .4byte 0x00003AE0
 | |
| _080A4354: .4byte gMenu
 | |
| _080A4358:
 | |
| 	ldrh r0, [r1]
 | |
| 	adds r0, #8
 | |
| 	strh r0, [r1]
 | |
| 	ldrh r0, [r1, #2]
 | |
| 	adds r0, #0xa
 | |
| _080A4362:
 | |
| 	strh r0, [r1, #2]
 | |
| 	movs r0, #0
 | |
| 	movs r1, #5
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A4394 @ =gOamCmd
 | |
| 	strh r4, [r0]
 | |
| 	strh r5, [r0, #2]
 | |
| _080A4372:
 | |
| 	ldrb r1, [r7]
 | |
| 	lsls r1, r1, #0xc
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| 	orrs r1, r0
 | |
| 	lsls r0, r6, #4
 | |
| 	movs r2, #0xc0
 | |
| 	lsls r2, r2, #2
 | |
| 	adds r0, r0, r2
 | |
| 	orrs r1, r0
 | |
| 	ldr r0, _080A4394 @ =gOamCmd
 | |
| 	strh r1, [r0, #8]
 | |
| 	movs r0, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4394: .4byte gOamCmd
 | |
| 
 | |
| 	thumb_func_start sub_080A4398
 | |
| sub_080A4398: @ 0x080A4398
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A43A4 @ =gUnk_02019EE0
 | |
| 	movs r1, #0x40
 | |
| 	bl MemClear
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A43A4: .4byte gUnk_02019EE0
 | |
| 
 | |
| 	thumb_func_start sub_080A43A8
 | |
| sub_080A43A8: @ 0x080A43A8
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r5, r0, #0
 | |
| 	bl sub_080A43DC
 | |
| 	adds r4, r0, #0
 | |
| 	cmp r4, #0xf
 | |
| 	bls _080A43C8
 | |
| 	movs r0, #0xf
 | |
| 	ands r4, r0
 | |
| 	lsls r1, r4, #4
 | |
| 	movs r0, #0xc0
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r1, r1, r0
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_080A4418
 | |
| _080A43C8:
 | |
| 	lsls r0, r4, #2
 | |
| 	ldr r1, _080A43D8 @ =gUnk_02019EE0
 | |
| 	adds r0, r0, r1
 | |
| 	strb r5, [r0]
 | |
| 	movs r1, #2
 | |
| 	strb r1, [r0, #1]
 | |
| 	adds r0, r4, #0
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A43D8: .4byte gUnk_02019EE0
 | |
| 
 | |
| 	thumb_func_start sub_080A43DC
 | |
| sub_080A43DC: @ 0x080A43DC
 | |
| 	push {lr}
 | |
| 	movs r1, #0
 | |
| 	ldr r2, _080A43EC @ =gUnk_02019EE0
 | |
| _080A43E2:
 | |
| 	ldrb r3, [r2]
 | |
| 	cmp r0, r3
 | |
| 	bne _080A43F0
 | |
| 	adds r0, r1, #0
 | |
| 	b _080A4416
 | |
| 	.align 2, 0
 | |
| _080A43EC: .4byte gUnk_02019EE0
 | |
| _080A43F0:
 | |
| 	adds r2, #4
 | |
| 	adds r1, #1
 | |
| 	cmp r1, #0xf
 | |
| 	bls _080A43E2
 | |
| 	movs r1, #0
 | |
| 	ldr r2, _080A4408 @ =gUnk_02019EE0
 | |
| _080A43FC:
 | |
| 	ldrb r0, [r2, #1]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A440C
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x10
 | |
| 	b _080A4416
 | |
| 	.align 2, 0
 | |
| _080A4408: .4byte gUnk_02019EE0
 | |
| _080A440C:
 | |
| 	adds r2, #4
 | |
| 	adds r1, #1
 | |
| 	cmp r1, #0xf
 | |
| 	bls _080A43FC
 | |
| 	movs r0, #0
 | |
| _080A4416:
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A4418
 | |
| sub_080A4418: @ 0x080A4418
 | |
| 	push {lr}
 | |
| 	lsls r1, r1, #5
 | |
| 	ldr r2, _080A4444 @ =0x06010000
 | |
| 	adds r3, r1, r2
 | |
| 	ldr r1, _080A4448 @ =gUnk_080CA06C
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r1, [r0]
 | |
| 	movs r2, #0x80
 | |
| 	lsls r2, r2, #0x18
 | |
| 	ands r2, r1
 | |
| 	mvns r0, r2
 | |
| 	ands r0, r1
 | |
| 	ldr r1, _080A444C @ =gGlobalGfxAndPalettes
 | |
| 	adds r1, r0, r1
 | |
| 	cmp r2, #0
 | |
| 	beq _080A4450
 | |
| 	adds r0, r1, #0
 | |
| 	adds r1, r3, #0
 | |
| 	bl LZ77UnCompVram
 | |
| 	b _080A445C
 | |
| 	.align 2, 0
 | |
| _080A4444: .4byte 0x06010000
 | |
| _080A4448: .4byte gUnk_080CA06C
 | |
| _080A444C: .4byte gGlobalGfxAndPalettes
 | |
| _080A4450:
 | |
| 	ldr r0, _080A4460 @ =0x040000D4
 | |
| 	str r1, [r0]
 | |
| 	str r3, [r0, #4]
 | |
| 	ldr r1, _080A4464 @ =0x84000080
 | |
| 	str r1, [r0, #8]
 | |
| 	ldr r0, [r0, #8]
 | |
| _080A445C:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4460: .4byte 0x040000D4
 | |
| _080A4464: .4byte 0x84000080
 | |
| 
 | |
| 	thumb_func_start sub_080A4468
 | |
| sub_080A4468: @ 0x080A4468
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A4488 @ =gUnk_03003DF0
 | |
| 	movs r1, #0
 | |
| 	strb r1, [r0, #2]
 | |
| 	ldr r0, [r0, #4]
 | |
| 	strb r1, [r0, #3]
 | |
| 	ldr r0, _080A448C @ =gFuseInfo
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	bl sub_0801E6C8
 | |
| 	ldr r0, _080A4490 @ =gMenu
 | |
| 	adds r0, #0x2a
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_0801E798
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4488: .4byte gUnk_03003DF0
 | |
| _080A448C: .4byte gFuseInfo
 | |
| _080A4490: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A4494
 | |
| sub_080A4494: @ 0x080A4494
 | |
| 	push {r4, r5, lr}
 | |
| 	bl sub_0805F2C8
 | |
| 	adds r4, r0, #0
 | |
| 	cmp r4, #0
 | |
| 	beq _080A44D0
 | |
| 	ldr r0, _080A44D4 @ =gTextGfxBuffer
 | |
| 	str r0, [r4, #8]
 | |
| 	movs r1, #0
 | |
| 	strb r1, [r4, #2]
 | |
| 	movs r0, #5
 | |
| 	strb r0, [r4, #3]
 | |
| 	strb r1, [r4, #1]
 | |
| 	ldr r1, _080A44D8 @ =gUnk_02002AC0
 | |
| 	adds r0, r4, #0
 | |
| 	movs r2, #0x80
 | |
| 	bl sub_080A44E0
 | |
| 	ldr r0, _080A44DC @ =gFuseInfo
 | |
| 	ldr r0, [r0, #0xc]
 | |
| 	bl sub_08002632
 | |
| 	adds r0, r4, #0
 | |
| 	movs r2, #0xa0
 | |
| 	bl sub_080A44E0
 | |
| 	adds r5, r0, #0
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_0805F300
 | |
| _080A44D0:
 | |
| 	adds r0, r5, #0
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A44D4: .4byte gTextGfxBuffer
 | |
| _080A44D8: .4byte gUnk_02002AC0
 | |
| _080A44DC: .4byte gFuseInfo
 | |
| 
 | |
| 	thumb_func_start sub_080A44E0
 | |
| sub_080A44E0: @ 0x080A44E0
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	mov r6, r8
 | |
| 	push {r6}
 | |
| 	adds r4, r0, #0
 | |
| 	adds r6, r1, #0
 | |
| 	adds r5, r2, #0
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r4, #6]
 | |
| 	movs r0, #0x60
 | |
| 	strh r0, [r4, #4]
 | |
| 	movs r0, #0xc0
 | |
| 	lsls r0, r0, #2
 | |
| 	mov r8, r0
 | |
| 	ldr r0, [r4, #8]
 | |
| 	mov r1, r8
 | |
| 	bl MemClear
 | |
| 	adds r0, r6, #0
 | |
| 	adds r1, r4, #0
 | |
| 	bl sub_0805F76C
 | |
| 	adds r6, r0, #0
 | |
| 	ldr r0, [r4, #8]
 | |
| 	lsls r5, r5, #5
 | |
| 	ldr r1, _080A4524 @ =0x06010000
 | |
| 	adds r5, r5, r1
 | |
| 	adds r1, r5, #0
 | |
| 	mov r2, r8
 | |
| 	bl MemCopy
 | |
| 	adds r0, r6, #0
 | |
| 	pop {r3}
 | |
| 	mov r8, r3
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _080A4524: .4byte 0x06010000
 | |
| 
 | |
| 	thumb_func_start sub_080A4528
 | |
| sub_080A4528: @ 0x080A4528
 | |
| 	push {r4, lr}
 | |
| 	ldr r0, _080A4540 @ =gFuseInfo
 | |
| 	ldr r2, [r0, #0xc]
 | |
| 	ldrb r0, [r2, #8]
 | |
| 	cmp r0, #7
 | |
| 	bne _080A4544
 | |
| 	ldrb r0, [r2, #9]
 | |
| 	ldrb r1, [r2, #0xa]
 | |
| 	ldrb r2, [r2, #0xb]
 | |
| 	bl CreateNPC
 | |
| 	b _080A4550
 | |
| 	.align 2, 0
 | |
| _080A4540: .4byte gFuseInfo
 | |
| _080A4544:
 | |
| 	cmp r0, #3
 | |
| 	bne _080A45A2
 | |
| 	ldrb r0, [r2, #9]
 | |
| 	ldrb r1, [r2, #0xa]
 | |
| 	bl CreateEnemy
 | |
| _080A4550:
 | |
| 	adds r4, r0, #0
 | |
| 	cmp r4, #0
 | |
| 	beq _080A45A2
 | |
| 	ldrb r0, [r4, #8]
 | |
| 	cmp r0, #7
 | |
| 	bne _080A456A
 | |
| 	adds r0, r4, #0
 | |
| 	bl NPCInit
 | |
| 	ldrb r0, [r4, #9]
 | |
| 	strb r0, [r4, #0xf]
 | |
| 	movs r0, #0x56
 | |
| 	b _080A4576
 | |
| _080A456A:
 | |
| 	adds r0, r4, #0
 | |
| 	bl EnemyInit
 | |
| 	ldrb r0, [r4, #9]
 | |
| 	strb r0, [r4, #0xf]
 | |
| 	movs r0, #0x66
 | |
| _080A4576:
 | |
| 	strb r0, [r4, #9]
 | |
| 	movs r2, #0
 | |
| 	movs r0, #0xcc
 | |
| 	strh r0, [r4, #0x2e]
 | |
| 	movs r0, #0x60
 | |
| 	strh r0, [r4, #0x32]
 | |
| 	adds r3, r4, #0
 | |
| 	adds r3, #0x29
 | |
| 	ldrb r1, [r3]
 | |
| 	subs r0, #0x99
 | |
| 	ands r0, r1
 | |
| 	movs r1, #0x10
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r3]
 | |
| 	ldrb r1, [r4, #0x18]
 | |
| 	movs r0, #4
 | |
| 	rsbs r0, r0, #0
 | |
| 	ands r0, r1
 | |
| 	movs r1, #1
 | |
| 	orrs r0, r1
 | |
| 	strb r0, [r4, #0x18]
 | |
| 	str r2, [r4, #0x48]
 | |
| _080A45A2:
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start Subtask_FigurineMenu
 | |
| Subtask_FigurineMenu: @ 0x080A45A4
 | |
| .ifdef DEMO_USA
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| .else
 | |
| .ifdef DEMO_JP
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| .else
 | |
| 	push {lr}
 | |
| 	bl FlushSprites
 | |
| 	ldr r0, _080A45C4 @ =gUnk_02032EC0
 | |
| 	ldrb r0, [r0, #3]
 | |
| 	cmp r0, #0xff
 | |
| 	bne _080A45D0
 | |
| 	ldr r1, _080A45C8 @ =gUnk_0812815C
 | |
| 	ldr r0, _080A45CC @ =gMenu
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	bl _call_via_r0
 | |
| 	b _080A45E0
 | |
| 	.align 2, 0
 | |
| _080A45C4: .4byte gUnk_02032EC0
 | |
| _080A45C8: .4byte gUnk_0812815C
 | |
| _080A45CC: .4byte gMenu
 | |
| _080A45D0:
 | |
| 	ldr r1, _080A4600 @ =gUnk_0812814C
 | |
| 	ldr r0, _080A4604 @ =gMenu
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	bl _call_via_r0
 | |
| _080A45E0:
 | |
| 	bl UpdateEntities
 | |
| 	bl sub_0801C1D4
 | |
| 	bl DrawOAMCmd
 | |
| 	bl DrawEntities
 | |
| 	bl sub_080A4978
 | |
| 	bl CopyOAM
 | |
| 	bl sub_080A4B44
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4600: .4byte gUnk_0812814C
 | |
| _080A4604: .4byte gMenu
 | |
| .endif
 | |
| .endif
 | |
| 
 | |
| 	thumb_func_start sub_080A4608
 | |
| sub_080A4608: @ 0x080A4608
 | |
| 	push {r4, lr}
 | |
| 	movs r0, #0x80
 | |
| 	bl SetBgmVolume
 | |
| 	movs r0, #3
 | |
| 	bl sub_080A4DA8
 | |
| 	ldr r4, _080A46A0 @ =gPaletteBuffer
 | |
| 	movs r1, #0xfb
 | |
| 	lsls r1, r1, #1
 | |
| 	adds r0, r4, r1
 | |
| 	ldrh r1, [r0]
 | |
| 	movs r0, #0
 | |
| 	bl SetColor
 | |
| 	movs r0, #0xae
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r2, #0xd3
 | |
| 	lsls r2, r2, #1
 | |
| 	adds r1, r4, r2
 | |
| 	ldrh r1, [r1]
 | |
| 	bl SetColor
 | |
| 	ldr r0, _080A46A4 @ =gBG0Buffer
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #4
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A46A8 @ =gBG3Buffer
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #5
 | |
| 	bl MemClear
 | |
| 	ldr r2, _080A46AC @ =gScreen
 | |
| 	adds r1, r2, #0
 | |
| 	adds r1, #0x58
 | |
| 	movs r0, #0xf0
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #4
 | |
| 	ldr r0, _080A46B0 @ =0x00007898
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #4
 | |
| 	movs r0, #0x1f
 | |
| 	strh r0, [r1]
 | |
| 	adds r1, #2
 | |
| 	movs r0, #0x1d
 | |
| 	strh r0, [r1]
 | |
| 	movs r0, #1
 | |
| 	strh r0, [r2, #0x1a]
 | |
| 	movs r2, #0xee
 | |
| 	ldr r3, _080A46B4 @ =gMenu
 | |
| 	movs r1, #0xf
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0x1f
 | |
| _080A4674:
 | |
| 	strb r2, [r0]
 | |
| 	subs r0, #1
 | |
| 	subs r1, #1
 | |
| 	cmp r1, #0
 | |
| 	bge _080A4674
 | |
| 	ldr r0, _080A46B8 @ =gUnk_02032EC0
 | |
| 	ldrb r1, [r0, #3]
 | |
| 	ldr r0, _080A46BC @ =gSave
 | |
| 	ldrb r0, [r0, #6]
 | |
| 	movs r2, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A468E
 | |
| 	movs r2, #0x82
 | |
| _080A468E:
 | |
| 	cmp r2, r1
 | |
| 	bge _080A4694
 | |
| 	movs r1, #1
 | |
| _080A4694:
 | |
| 	strb r1, [r3, #0x1c]
 | |
| 	movs r0, #4
 | |
| 	movs r1, #8
 | |
| 	bl SetFade
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A46A0: .4byte gPaletteBuffer
 | |
| _080A46A4: .4byte gBG0Buffer
 | |
| _080A46A8: .4byte gBG3Buffer
 | |
| _080A46AC: .4byte gScreen
 | |
| _080A46B0: .4byte 0x00007898
 | |
| _080A46B4: .4byte gMenu
 | |
| _080A46B8: .4byte gUnk_02032EC0
 | |
| _080A46BC: .4byte gSave
 | |
| 
 | |
| 	thumb_func_start sub_080A46C0
 | |
| sub_080A46C0: @ 0x080A46C0
 | |
| 	push {lr}
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #1
 | |
| 	bl SetBgmVolume
 | |
| 	movs r0, #0x6c
 | |
| 	bl SoundReq
 | |
| 	movs r0, #2
 | |
| 	bl ClearRoomFlag
 | |
| 	bl Subtask_Exit
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A46DC
 | |
| sub_080A46DC: @ 0x080A46DC
 | |
| 	push {lr}
 | |
| 	bl sub_080A4608
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A7114
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080A46EC
 | |
| sub_080A46EC: @ 0x080A46EC
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A4714 @ =gFadeControl
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4710
 | |
| 	ldr r1, _080A4718 @ =gUnk_080FC3E4
 | |
| 	ldr r0, _080A471C @ =gMenu
 | |
| 	ldrb r0, [r0, #0x1c]
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r1, [r0, #7]
 | |
| 	movs r0, #0xa2
 | |
| 	movs r2, #0
 | |
| 	bl CreateObject
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A7114
 | |
| _080A4710:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4714: .4byte gFadeControl
 | |
| _080A4718: .4byte gUnk_080FC3E4
 | |
| _080A471C: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A4720
 | |
| sub_080A4720: @ 0x080A4720
 | |
| 	push {r4, lr}
 | |
| 	ldr r4, _080A4744 @ =gMenu
 | |
| 	ldrb r0, [r4]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A47C4
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0x20
 | |
| 	ldrb r0, [r1]
 | |
| 	adds r0, #1
 | |
| 	movs r3, #0
 | |
| 	strb r0, [r1]
 | |
| 	ldrb r0, [r1]
 | |
| 	cmp r0, #0x40
 | |
| 	beq _080A4748
 | |
| 	cmp r0, #0x80
 | |
| 	beq _080A4788
 | |
| 	b _080A475A
 | |
| 	.align 2, 0
 | |
| _080A4744: .4byte gMenu
 | |
| _080A4748:
 | |
| 	ldr r0, _080A477C @ =gUnk_02002B0E
 | |
| 	ldrb r1, [r4, #0x1c]
 | |
| 	bl WriteBit
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0x21
 | |
| 	strb r0, [r1]
 | |
| 	movs r0, #1
 | |
| 	strb r0, [r4, #1]
 | |
| _080A475A:
 | |
| 	ldr r0, _080A4780 @ =gMenu
 | |
| 	adds r0, #0x20
 | |
| 	ldrb r0, [r0]
 | |
| 	lsrs r1, r0, #2
 | |
| 	cmp r1, #0x10
 | |
| 	bls _080A476A
 | |
| 	movs r0, #0x20
 | |
| 	subs r1, r0, r1
 | |
| _080A476A:
 | |
| 	ldr r0, _080A4784 @ =gScreen
 | |
| 	adds r2, r0, #0
 | |
| 	adds r2, #0x6a
 | |
| 	strh r1, [r2]
 | |
| 	adds r0, #0x66
 | |
| 	movs r1, #0xbf
 | |
| 	strh r1, [r0]
 | |
| 	b _080A47C4
 | |
| 	.align 2, 0
 | |
| _080A477C: .4byte gUnk_02002B0E
 | |
| _080A4780: .4byte gMenu
 | |
| _080A4784: .4byte gScreen
 | |
| _080A4788:
 | |
| 	ldr r2, _080A47C8 @ =gScreen
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x6a
 | |
| 	strh r3, [r0]
 | |
| 	subs r0, #4
 | |
| 	strh r3, [r0]
 | |
| 	ldrh r1, [r2]
 | |
| 	movs r3, #0x80
 | |
| 	lsls r3, r3, #6
 | |
| 	adds r0, r3, #0
 | |
| 	orrs r0, r1
 | |
| 	strh r0, [r2]
 | |
| 	movs r0, #3
 | |
| 	bl sub_080A7114
 | |
| 	ldr r0, _080A47CC @ =gUnk_0812813C
 | |
| 	bl sub_080A70AC
 | |
| 	movs r0, #0x15
 | |
| 	strb r0, [r4, #1]
 | |
| 	adds r0, r4, #0
 | |
| 	adds r0, #0x21
 | |
| 	ldrb r0, [r0]
 | |
| 	movs r1, #0x6d
 | |
| 	cmp r0, #0
 | |
| 	bne _080A47BE
 | |
| 	adds r1, #0x9c
 | |
| _080A47BE:
 | |
| 	adds r0, r1, #0
 | |
| 	bl SoundReq
 | |
| _080A47C4:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A47C8: .4byte gScreen
 | |
| _080A47CC: .4byte gUnk_0812813C
 | |
| 
 | |
| 	thumb_func_start sub_080A47D0
 | |
| sub_080A47D0: @ 0x080A47D0
 | |
| 	push {r4, lr}
 | |
| 	ldr r0, _080A47EC @ =gMenu
 | |
| 	movs r4, #0x1f
 | |
| 	ldrsb r4, [r0, r4]
 | |
| 	ldr r0, _080A47F0 @ =gInput
 | |
| 	ldrh r0, [r0, #4]
 | |
| 	cmp r0, #8
 | |
| 	beq _080A47FE
 | |
| 	cmp r0, #8
 | |
| 	bgt _080A47F4
 | |
| 	cmp r0, #2
 | |
| 	beq _080A47FE
 | |
| 	b _080A480A
 | |
| 	.align 2, 0
 | |
| _080A47EC: .4byte gMenu
 | |
| _080A47F0: .4byte gInput
 | |
| _080A47F4:
 | |
| 	cmp r0, #0x10
 | |
| 	beq _080A4804
 | |
| 	cmp r0, #0x20
 | |
| 	beq _080A4808
 | |
| 	b _080A480A
 | |
| _080A47FE:
 | |
| 	bl sub_080A46C0
 | |
| 	b _080A480A
 | |
| _080A4804:
 | |
| 	adds r4, #8
 | |
| 	b _080A480A
 | |
| _080A4808:
 | |
| 	subs r4, #8
 | |
| _080A480A:
 | |
| 	ldr r1, _080A4828 @ =gMenu
 | |
| 	ldrb r0, [r1, #0x1e]
 | |
| 	cmp r4, #0
 | |
| 	bge _080A4814
 | |
| 	movs r4, #0
 | |
| _080A4814:
 | |
| 	cmp r0, r4
 | |
| 	bge _080A481A
 | |
| 	adds r4, r0, #0
 | |
| _080A481A:
 | |
| 	strb r4, [r1, #0x1f]
 | |
| 	ldr r1, _080A482C @ =gScreen
 | |
| 	adds r0, r4, #0
 | |
| 	subs r0, #0x70
 | |
| 	strh r0, [r1, #0x18]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A4828: .4byte gMenu
 | |
| _080A482C: .4byte gScreen
 | |
| 
 | |
| 	thumb_func_start sub_080A4830
 | |
| sub_080A4830: @ 0x080A4830
 | |
| 	push {lr}
 | |
| 	bl sub_080A4608
 | |
| 	ldr r2, _080A4858 @ =gScreen
 | |
| 	ldrh r1, [r2]
 | |
| 	movs r3, #0x80
 | |
| 	lsls r3, r3, #6
 | |
| 	adds r0, r3, #0
 | |
| 	orrs r0, r1
 | |
| 	strh r0, [r2]
 | |
| 	ldr r0, _080A485C @ =gUnk_0812813C
 | |
| 	bl sub_080A70AC
 | |
| 	ldr r1, _080A4860 @ =gMenu
 | |
| 	movs r0, #0xff
 | |
| 	strb r0, [r1, #1]
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A7114
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4858: .4byte gScreen
 | |
| _080A485C: .4byte gUnk_0812813C
 | |
| _080A4860: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A4864
 | |
| sub_080A4864: @ 0x080A4864
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	ldr r0, _080A4894 @ =gFadeControl
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4926
 | |
| 	ldr r0, _080A4898 @ =gMenu
 | |
| 	movs r5, #0x1f
 | |
| 	ldrsb r5, [r0, r5]
 | |
| 	ldrb r4, [r0, #0x1c]
 | |
| 	ldr r0, _080A489C @ =gInput
 | |
| 	ldrh r1, [r0, #4]
 | |
| 	cmp r1, #0x20
 | |
| 	beq _080A48DC
 | |
| 	cmp r1, #0x20
 | |
| 	bgt _080A48A0
 | |
| 	cmp r1, #2
 | |
| 	beq _080A48C0
 | |
| 	cmp r1, #2
 | |
| 	ble _080A48DE
 | |
| 	cmp r1, #8
 | |
| 	beq _080A48C0
 | |
| 	cmp r1, #0x10
 | |
| 	beq _080A48D8
 | |
| 	b _080A48DE
 | |
| 	.align 2, 0
 | |
| _080A4894: .4byte gFadeControl
 | |
| _080A4898: .4byte gMenu
 | |
| _080A489C: .4byte gInput
 | |
| _080A48A0:
 | |
| 	cmp r1, #0x80
 | |
| 	beq _080A48D4
 | |
| 	cmp r1, #0x80
 | |
| 	bgt _080A48AE
 | |
| 	cmp r1, #0x40
 | |
| 	beq _080A48D0
 | |
| 	b _080A48DE
 | |
| _080A48AE:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #1
 | |
| 	cmp r1, r0
 | |
| 	beq _080A48CC
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #2
 | |
| 	cmp r1, r0
 | |
| 	beq _080A48C8
 | |
| 	b _080A48DE
 | |
| _080A48C0:
 | |
| 	movs r0, #3
 | |
| 	bl sub_080A7114
 | |
| 	b _080A48DE
 | |
| _080A48C8:
 | |
| 	subs r4, #5
 | |
| 	b _080A48DE
 | |
| _080A48CC:
 | |
| 	adds r4, #5
 | |
| 	b _080A48DE
 | |
| _080A48D0:
 | |
| 	subs r4, #1
 | |
| 	b _080A48DE
 | |
| _080A48D4:
 | |
| 	adds r4, #1
 | |
| 	b _080A48DE
 | |
| _080A48D8:
 | |
| 	adds r5, #8
 | |
| 	b _080A48DE
 | |
| _080A48DC:
 | |
| 	subs r5, #8
 | |
| _080A48DE:
 | |
| 	ldr r0, _080A4928 @ =gSave
 | |
| 	ldrb r0, [r0, #6]
 | |
| 	movs r1, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A48EA
 | |
| 	movs r1, #0x82
 | |
| _080A48EA:
 | |
| 	cmp r4, #0
 | |
| 	bgt _080A48F0
 | |
| 	movs r4, #1
 | |
| _080A48F0:
 | |
| 	cmp r1, r4
 | |
| 	bge _080A48F6
 | |
| 	adds r4, r1, #0
 | |
| _080A48F6:
 | |
| 	ldr r6, _080A492C @ =gMenu
 | |
| 	ldrb r0, [r6, #0x1c]
 | |
| 	cmp r0, r4
 | |
| 	beq _080A490E
 | |
| 	strb r4, [r6, #0x1c]
 | |
| 	movs r0, #0x69
 | |
| 	bl SoundReq
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A7114
 | |
| 	movs r5, #0
 | |
| _080A490E:
 | |
| 	ldrb r0, [r6, #0x1e]
 | |
| 	cmp r5, #0
 | |
| 	bge _080A4916
 | |
| 	movs r5, #0
 | |
| _080A4916:
 | |
| 	cmp r0, r5
 | |
| 	bge _080A491C
 | |
| 	adds r5, r0, #0
 | |
| _080A491C:
 | |
| 	strb r5, [r6, #0x1f]
 | |
| 	ldr r1, _080A4930 @ =gScreen
 | |
| 	adds r0, r5, #0
 | |
| 	subs r0, #0x70
 | |
| 	strh r0, [r1, #0x18]
 | |
| _080A4926:
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _080A4928: .4byte gSave
 | |
| _080A492C: .4byte gMenu
 | |
| _080A4930: .4byte gScreen
 | |
| 
 | |
| 	thumb_func_start sub_080A4934
 | |
| sub_080A4934: @ 0x080A4934
 | |
| 	push {lr}
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A7114
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080A4940
 | |
| sub_080A4940: @ 0x080A4940
 | |
| 	push {lr}
 | |
| 	bl sub_080A46C0
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A4948
 | |
| sub_080A4948: @ 0x080A4948
 | |
| 	push {r4, lr}
 | |
| 	adds r1, r0, #0
 | |
| 	movs r4, #0
 | |
| 	ldr r3, _080A4974 @ =gSave
 | |
| 	ldrb r0, [r3, #6]
 | |
| 	movs r2, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A495A
 | |
| 	movs r2, #0x82
 | |
| _080A495A:
 | |
| 	cmp r1, #0
 | |
| 	bgt _080A4962
 | |
| 	cmp r2, r1
 | |
| 	blt _080A4970
 | |
| _080A4962:
 | |
| 	adds r0, r3, #0
 | |
| 	adds r0, #0xce
 | |
| 	bl ReadBit
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4970
 | |
| 	movs r4, #1
 | |
| _080A4970:
 | |
| 	adds r0, r4, #0
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A4974: .4byte gSave
 | |
| 
 | |
| 	thumb_func_start sub_080A4978
 | |
| sub_080A4978: @ 0x080A4978
 | |
| .ifdef EU
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, r8
 | |
| 	push {r7}
 | |
| 	ldr r5, _080A432C @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r5, #4]
 | |
| 	strh r0, [r5, #6]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| 	strh r0, [r5, #8]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r5]
 | |
| 	movs r0, #0x48
 | |
| 	strh r0, [r5, #2]
 | |
| 	ldr r7, _080A4330 @ =0x000001FB
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A4334 @ =gSave
 | |
| 	ldrb r0, [r0, #6]
 | |
| 	movs r2, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A41C2
 | |
| 	movs r2, #0x82
 | |
| _080A41C2:
 | |
| 	ldr r3, _080A4338 @ =gChooseFileState
 | |
| 	ldrb r1, [r3, #1]
 | |
| 	movs r0, #2
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4226
 | |
| 	ldrb r4, [r3, #0x1c]
 | |
| 	cmp r2, r4
 | |
| 	blt _080A4226
 | |
| 	movs r6, #0xe8
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0xa0
 | |
| 	lsls r0, r0, #7
 | |
| 	adds r1, r2, #0
 | |
| 	bl __divsi3
 | |
| 	subs r1, r4, #1
 | |
| 	muls r0, r1, r0
 | |
| 	cmp r0, #0
 | |
| 	bge _080A41EC
 | |
| 	adds r0, #0xff
 | |
| _080A41EC:
 | |
| 	asrs r0, r0, #8
 | |
| 	adds r0, #0x20
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A433C @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r0, #0x10
 | |
| 	ands r0, r1
 | |
| 	movs r4, #2
 | |
| 	cmp r0, #0
 | |
| 	beq _080A420A
 | |
| 	movs r4, #4
 | |
| _080A420A:
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0x1a
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	adds r1, r4, #0
 | |
| 	bl DrawDirect
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0x76
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r1, r4, #1
 | |
| 	adds r0, r7, #0
 | |
| 	bl DrawDirect
 | |
| _080A4226:
 | |
| 	ldr r0, _080A433C @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r2, #0x10
 | |
| 	adds r0, r2, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A427C
 | |
| 	ldr r5, _080A4338 @ =gChooseFileState
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	adds r0, r2, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A427C
 | |
| 	ldrb r0, [r5, #0x1e]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A427C
 | |
| 	ldr r4, _080A432C @ =gOamCmd
 | |
| 	strh r2, [r4, #2]
 | |
| 	movs r0, #0x1f
 | |
| 	ldrsb r0, [r5, r0]
 | |
| 	cmp r0, #0
 | |
| 	ble _080A4262
 | |
| 	movs r0, #6
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r4, #2]
 | |
| 	ldr r0, _080A4330 @ =0x000001FB
 | |
| 	movs r1, #6
 | |
| 	bl DrawDirect
 | |
| _080A4262:
 | |
| 	ldrb r1, [r5, #0x1e]
 | |
| 	movs r0, #0x1f
 | |
| 	ldrsb r0, [r5, r0]
 | |
| 	cmp r1, r0
 | |
| 	ble _080A427C
 | |
| 	movs r0, #0xea
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r4, #2]
 | |
| 	ldr r0, _080A4330 @ =0x000001FB
 | |
| 	movs r1, #7
 | |
| 	bl DrawDirect
 | |
| _080A427C:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A42D0
 | |
| 	ldr r2, _080A4338 @ =gChooseFileState
 | |
| 	ldrb r1, [r2, #1]
 | |
| 	movs r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A42D0
 | |
| 	ldr r1, _080A432C @ =gOamCmd
 | |
| 	movs r0, #0x10
 | |
| 	strh r0, [r1, #2]
 | |
| 	ldrb r4, [r2, #0x1c]
 | |
| 	movs r6, #2
 | |
| 	adds r7, r1, #0
 | |
| 	movs r5, #0x6b
 | |
| _080A42A0:
 | |
| 	strh r5, [r7]
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0xa
 | |
| 	bl __modsi3
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r2, #0x9e
 | |
| 	lsls r2, r2, #4
 | |
| 	adds r1, r2, #0
 | |
| 	orrs r0, r1
 | |
| 	strh r0, [r7, #8]
 | |
| 	movs r0, #0
 | |
| 	movs r1, #9
 | |
| 	bl DrawDirect
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0xa
 | |
| 	bl __divsi3
 | |
| 	adds r4, r0, #0
 | |
| 	subs r5, #7
 | |
| 	subs r6, #1
 | |
| 	cmp r6, #0
 | |
| 	bge _080A42A0
 | |
| _080A42D0:
 | |
| 	ldr r4, _080A4338 @ =gChooseFileState
 | |
| 	ldrb r1, [r4, #1]
 | |
| 	movs r0, #1
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4352
 | |
| 	ldrb r0, [r4, #0x1c]
 | |
| 	bl sub_080A4948
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4352
 | |
| 	ldr r1, _080A432C @ =gOamCmd
 | |
| 	movs r0, #0x2c
 | |
| 	strh r0, [r1]
 | |
| 	movs r0, #0x48
 | |
| 	strh r0, [r1, #2]
 | |
| 	movs r0, #0xd4
 | |
| 	lsls r0, r0, #7
 | |
| 	strh r0, [r1, #8]
 | |
| 	ldr r0, _080A4340 @ =0x000001F7
 | |
| 	ldrb r1, [r4, #0x1c]
 | |
| 	subs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldrb r1, [r4, #0x1c]
 | |
| 	ldrb r0, [r4, #0x1d]
 | |
| 	cmp r0, r1
 | |
| 	beq _080A4352
 | |
| 	strb r1, [r4, #0x1d]
 | |
| 	ldrb r4, [r4, #0x1c]
 | |
| 	lsls r4, r4, #4
 | |
| 	ldr r0, _080A4344 @ =gFigurines
 | |
| 	adds r4, r4, r0
 | |
| 	ldr r0, [r4]
 | |
| 	movs r1, #0x16
 | |
| 	movs r2, #9
 | |
| 	bl LoadPalettes
 | |
| 	ldr r0, [r4, #4]
 | |
| 	ldr r2, [r4, #8]
 | |
| 	cmp r2, #0
 | |
| 	bge _080A434CEU
 | |
| 	ldr r1, _080A4348EU @ =0x06014000
 | |
| 	bl LZ77UnCompVram
 | |
| 	b _080A4352
 | |
| 	.align 2, 0
 | |
| _080A432C: .4byte gOamCmd
 | |
| _080A4330: .4byte 0x000001FB
 | |
| _080A4334: .4byte gSave
 | |
| _080A4338: .4byte gChooseFileState
 | |
| _080A433C: .4byte gMain
 | |
| _080A4340: .4byte 0x000001F7
 | |
| _080A4344: .4byte gFigurines
 | |
| _080A4348EU: .4byte 0x06014000
 | |
| _080A434CEU:
 | |
| 	ldr r1, _080A4358EU @ =0x06014000
 | |
| 	bl LoadResourceAsync
 | |
| _080A4352:
 | |
| 	pop {r3}
 | |
| 	mov r8, r3
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4358EU: .4byte 0x06014000
 | |
| .else
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, r8
 | |
| 	push {r7}
 | |
| 	ldr r5, _080A4B1C @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r5, #4]
 | |
| 	strh r0, [r5, #6]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| 	strh r0, [r5, #8]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r5]
 | |
| 	movs r0, #0x48
 | |
| 	strh r0, [r5, #2]
 | |
| 	movs r7, #0xfe
 | |
| 	lsls r7, r7, #1
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A4B20 @ =gSave
 | |
| 	ldrb r0, [r0, #6]
 | |
| 	movs r2, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A49AC
 | |
| 	movs r2, #0x82
 | |
| _080A49AC:
 | |
| 	ldr r3, _080A4B24 @ =gMenu
 | |
| 	ldrb r1, [r3, #1]
 | |
| 	movs r0, #2
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4A10
 | |
| 	ldrb r4, [r3, #0x1c]
 | |
| 	cmp r2, r4
 | |
| 	blt _080A4A10
 | |
| 	movs r6, #0xe8
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0xa0
 | |
| 	lsls r0, r0, #7
 | |
| 	adds r1, r2, #0
 | |
| 	bl __divsi3
 | |
| 	subs r1, r4, #1
 | |
| 	muls r0, r1, r0
 | |
| 	cmp r0, #0
 | |
| 	bge _080A49D6
 | |
| 	adds r0, #0xff
 | |
| _080A49D6:
 | |
| 	asrs r0, r0, #8
 | |
| 	adds r0, #0x20
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	movs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, _080A4B28 @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r0, #0x10
 | |
| 	ands r0, r1
 | |
| 	movs r4, #2
 | |
| 	cmp r0, #0
 | |
| 	beq _080A49F4
 | |
| 	movs r4, #4
 | |
| _080A49F4:
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0x1a
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r0, r7, #0
 | |
| 	adds r1, r4, #0
 | |
| 	bl DrawDirect
 | |
| 	strh r6, [r5]
 | |
| 	movs r0, #0x76
 | |
| 	strh r0, [r5, #2]
 | |
| 	adds r1, r4, #1
 | |
| 	adds r0, r7, #0
 | |
| 	bl DrawDirect
 | |
| _080A4A10:
 | |
| 	ldr r0, _080A4B28 @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r2, #0x10
 | |
| 	adds r0, r2, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4A6A
 | |
| 	ldr r5, _080A4B24 @ =gMenu
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	adds r0, r2, #0
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4A6A
 | |
| 	ldrb r0, [r5, #0x1e]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4A6A
 | |
| 	ldr r4, _080A4B1C @ =gOamCmd
 | |
| 	strh r2, [r4, #2]
 | |
| 	movs r0, #0x1f
 | |
| 	ldrsb r0, [r5, r0]
 | |
| 	cmp r0, #0
 | |
| 	ble _080A4A4E
 | |
| 	movs r0, #6
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0xfe
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r1, #6
 | |
| 	bl DrawDirect
 | |
| _080A4A4E:
 | |
| 	ldrb r1, [r5, #0x1e]
 | |
| 	movs r0, #0x1f
 | |
| 	ldrsb r0, [r5, r0]
 | |
| 	cmp r1, r0
 | |
| 	ble _080A4A6A
 | |
| 	movs r0, #0xea
 | |
| 	strh r0, [r4]
 | |
| 	movs r0, #0x9c
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0xfe
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r1, #7
 | |
| 	bl DrawDirect
 | |
| _080A4A6A:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4ABE
 | |
| 	ldr r2, _080A4B24 @ =gMenu
 | |
| 	ldrb r1, [r2, #1]
 | |
| 	movs r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4ABE
 | |
| 	ldr r1, _080A4B1C @ =gOamCmd
 | |
| 	movs r0, #0x10
 | |
| 	strh r0, [r1, #2]
 | |
| 	ldrb r4, [r2, #0x1c]
 | |
| 	movs r6, #2
 | |
| 	adds r7, r1, #0
 | |
| 	movs r5, #0x6b
 | |
| _080A4A8E:
 | |
| 	strh r5, [r7]
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0xa
 | |
| 	bl __modsi3
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r2, #0x9e
 | |
| 	lsls r2, r2, #4
 | |
| 	adds r1, r2, #0
 | |
| 	orrs r0, r1
 | |
| 	strh r0, [r7, #8]
 | |
| 	movs r0, #0
 | |
| 	movs r1, #9
 | |
| 	bl DrawDirect
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0xa
 | |
| 	bl __divsi3
 | |
| 	adds r4, r0, #0
 | |
| 	subs r5, #7
 | |
| 	subs r6, #1
 | |
| 	cmp r6, #0
 | |
| 	bge _080A4A8E
 | |
| _080A4ABE:
 | |
| 	ldr r4, _080A4B24 @ =gMenu
 | |
| 	ldrb r1, [r4, #1]
 | |
| 	movs r0, #1
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4B3A
 | |
| 	ldrb r0, [r4, #0x1c]
 | |
| 	bl sub_080A4948
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4B3A
 | |
| 	ldr r1, _080A4B1C @ =gOamCmd
 | |
| 	movs r0, #0x2c
 | |
| 	strh r0, [r1]
 | |
| 	movs r0, #0x48
 | |
| 	strh r0, [r1, #2]
 | |
| 	movs r0, #0xd4
 | |
| 	lsls r0, r0, #7
 | |
| 	strh r0, [r1, #8]
 | |
| 	movs r0, #0xfc
 | |
| 	lsls r0, r0, #1
 | |
| 	ldrb r1, [r4, #0x1c]
 | |
| 	subs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldrb r1, [r4, #0x1c]
 | |
| 	ldrb r0, [r4, #0x1d]
 | |
| 	cmp r0, r1
 | |
| 	beq _080A4B3A
 | |
| 	strb r1, [r4, #0x1d]
 | |
| 	ldrb r4, [r4, #0x1c]
 | |
| 	lsls r4, r4, #4
 | |
| 	ldr r0, _080A4B2C @ =gFigurines
 | |
| 	adds r4, r4, r0
 | |
| 	ldr r0, [r4]
 | |
| 	movs r1, #0x16
 | |
| 	movs r2, #9
 | |
| 	bl LoadPalettes
 | |
| 	ldr r0, [r4, #4]
 | |
| 	ldr r2, [r4, #8]
 | |
| 	cmp r2, #0
 | |
| 	bge _080A4B34
 | |
| 	ldr r1, _080A4B30 @ =0x06014000
 | |
| 	bl LZ77UnCompVram
 | |
| 	b _080A4B3A
 | |
| 	.align 2, 0
 | |
| _080A4B1C: .4byte gOamCmd
 | |
| _080A4B20: .4byte gSave
 | |
| _080A4B24: .4byte gMenu
 | |
| _080A4B28: .4byte gMain
 | |
| _080A4B2C: .4byte gFigurines
 | |
| _080A4B30: .4byte 0x06014000
 | |
| _080A4B34:
 | |
| 	ldr r1, _080A4B40 @ =0x06014000
 | |
| 	bl LoadResourceAsync
 | |
| _080A4B3A:
 | |
| 	pop {r3}
 | |
| 	mov r8, r3
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4B40: .4byte 0x06014000
 | |
| .endif
 | |
| 
 | |
| 	thumb_func_start sub_080A4B44
 | |
| sub_080A4B44: @ 0x080A4B44
 | |
| 	push {r4, r5, lr}
 | |
| 	ldr r5, _080A4B9C @ =gMenu
 | |
| 	ldrb r4, [r5, #0x1c]
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	movs r0, #0x10
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4B5C
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_080A4CBC
 | |
| 	strb r0, [r5, #0x1e]
 | |
| _080A4B5C:
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	movs r0, #4
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4B6E
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #2
 | |
| 	bl sub_080A4BA0
 | |
| _080A4B6E:
 | |
| 	ldrb r1, [r5, #1]
 | |
| 	movs r0, #8
 | |
| 	ands r0, r1
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4B98
 | |
| 	subs r0, r4, #2
 | |
| 	movs r1, #0
 | |
| 	bl sub_080A4BA0
 | |
| 	subs r0, r4, #1
 | |
| 	movs r1, #1
 | |
| 	bl sub_080A4BA0
 | |
| 	adds r0, r4, #1
 | |
| 	movs r1, #3
 | |
| 	bl sub_080A4BA0
 | |
| 	adds r0, r4, #2
 | |
| 	movs r1, #4
 | |
| 	bl sub_080A4BA0
 | |
| _080A4B98:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A4B9C: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A4BA0
 | |
| sub_080A4BA0: @ 0x080A4BA0
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	sub sp, #0x54
 | |
| 	adds r5, r0, #0
 | |
| 	adds r6, r1, #0
 | |
| 	add r0, sp, #0x18
 | |
| 	movs r1, #0x30
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A4C08 @ =gUnk_0812816C
 | |
| 	mov r1, sp
 | |
| 	movs r2, #0x18
 | |
| 	bl MemCopy
 | |
| 	ldr r0, _080A4C0C @ =gUnk_08128184
 | |
| 	add r4, sp, #0x48
 | |
| 	adds r1, r4, #0
 | |
| 	movs r2, #0xc
 | |
| 	bl MemCopy
 | |
| 	lsls r1, r6, #1
 | |
| 	adds r1, r1, r6
 | |
| 	lsls r2, r1, #9
 | |
| 	ldr r0, [sp, #4]
 | |
| 	adds r0, r0, r2
 | |
| 	str r0, [sp, #4]
 | |
| 	mov r2, sp
 | |
| 	mov r0, sp
 | |
| 	lsls r1, r1, #4
 | |
| 	ldrh r0, [r0, #0x10]
 | |
| 	adds r1, r1, r0
 | |
| 	strh r1, [r2, #0x10]
 | |
| 	lsls r1, r6, #7
 | |
| 	ldr r0, [sp]
 | |
| 	adds r0, r0, r1
 | |
| 	str r0, [sp]
 | |
| 	cmp r6, #2
 | |
| 	bne _080A4BEE
 | |
| 	mov r0, sp
 | |
| 	strb r6, [r0, #0x14]
 | |
| _080A4BEE:
 | |
| 	ldr r0, _080A4C10 @ =gSave
 | |
| 	ldrb r0, [r0, #6]
 | |
| 	movs r1, #0x88
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4BFA
 | |
| 	movs r1, #0x82
 | |
| _080A4BFA:
 | |
| 	cmp r5, #0
 | |
| 	ble _080A4C02
 | |
| 	cmp r1, r5
 | |
| 	bge _080A4C14
 | |
| _080A4C02:
 | |
| 	movs r5, #1
 | |
| 	rsbs r5, r5, #0
 | |
| 	b _080A4C3E
 | |
| 	.align 2, 0
 | |
| _080A4C08: .4byte gUnk_0812816C
 | |
| _080A4C0C: .4byte gUnk_08128184
 | |
| _080A4C10: .4byte gSave
 | |
| _080A4C14:
 | |
| 	ldr r1, _080A4C30 @ =gUnk_020227E8
 | |
| 	ldr r2, _080A4C34 @ =0x00303030
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_08057044
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_080A4948
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4C38
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #8
 | |
| 	b _080A4C3C
 | |
| 	.align 2, 0
 | |
| _080A4C30: .4byte gUnk_020227E8
 | |
| _080A4C34: .4byte 0x00303030
 | |
| _080A4C38:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| _080A4C3C:
 | |
| 	adds r5, r5, r0
 | |
| _080A4C3E:
 | |
| 	ldr r0, _080A4C94 @ =gMenu
 | |
| 	lsls r1, r6, #1
 | |
| 	adds r0, #0x10
 | |
| 	adds r1, r1, r0
 | |
| 	ldrh r0, [r1]
 | |
| 	cmp r0, r5
 | |
| 	beq _080A4CB2
 | |
| 	strh r5, [r1]
 | |
| 	ldr r0, _080A4C98 @ =0x0000F00B
 | |
| 	cmp r6, #2
 | |
| 	bne _080A4C56
 | |
| 	subs r0, #7
 | |
| _080A4C56:
 | |
| 	ldr r1, [sp]
 | |
| 	movs r2, #0x80
 | |
| 	bl MemFill16
 | |
| 	cmp r5, #0
 | |
| 	ble _080A4CAC
 | |
| 	ldr r0, _080A4C9C @ =0x00007FFF
 | |
| 	cmp r5, r0
 | |
| 	ble _080A4C6A
 | |
| 	ldr r5, _080A4CA0 @ =0x00000889
 | |
| _080A4C6A:
 | |
| 	adds r0, r5, #0
 | |
| 	cmp r5, #0
 | |
| 	bge _080A4C72
 | |
| 	adds r0, #0xff
 | |
| _080A4C72:
 | |
| 	asrs r0, r0, #8
 | |
| 	strb r0, [r4, #8]
 | |
| 	strb r5, [r4, #9]
 | |
| 	ldr r0, [sp]
 | |
| 	adds r0, #0x16
 | |
| 	str r0, [sp]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4CA4
 | |
| 	adds r0, r4, #0
 | |
| 	mov r1, sp
 | |
| 	bl sub_0805F46C
 | |
| 	b _080A4CAC
 | |
| 	.align 2, 0
 | |
| _080A4C94: .4byte gMenu
 | |
| _080A4C98: .4byte 0x0000F00B
 | |
| _080A4C9C: .4byte 0x00007FFF
 | |
| _080A4CA0: .4byte 0x00000889
 | |
| _080A4CA4:
 | |
| 	adds r0, r5, #0
 | |
| 	mov r1, sp
 | |
| 	bl sub_0805F46C
 | |
| _080A4CAC:
 | |
| 	ldr r1, _080A4CB8 @ =gScreen
 | |
| 	movs r0, #1
 | |
| 	strh r0, [r1, #0x32]
 | |
| _080A4CB2:
 | |
| 	add sp, #0x54
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| _080A4CB8: .4byte gScreen
 | |
| 
 | |
| 	thumb_func_start sub_080A4CBC
 | |
| sub_080A4CBC: @ 0x080A4CBC
 | |
| 	push {r4, r5, r6, lr}
 | |
| 	adds r6, r0, #0
 | |
| 	ldr r1, _080A4D0C @ =gMenu
 | |
| 	ldrb r0, [r1, #0x1a]
 | |
| 	cmp r0, r6
 | |
| 	beq _080A4CFE
 | |
| 	strb r6, [r1, #0x1a]
 | |
| 	ldr r4, _080A4D10 @ =gBG1Buffer
 | |
| 	movs r5, #0x80
 | |
| 	lsls r5, r5, #4
 | |
| 	adds r0, r4, #0
 | |
| 	adds r1, r5, #0
 | |
| 	bl MemClear
 | |
| 	ldr r1, _080A4D14 @ =0x0600E000
 | |
| 	adds r0, r4, #0
 | |
| 	adds r2, r5, #0
 | |
| 	bl MemCopy
 | |
| 	adds r0, r6, #0
 | |
| 	bl sub_080A4948
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4CF8
 | |
| 	movs r1, #0x90
 | |
| 	lsls r1, r1, #4
 | |
| 	adds r0, r6, r1
 | |
| 	ldr r1, _080A4D18 @ =gUnk_08128190
 | |
| 	bl sub_0805F46C
 | |
| _080A4CF8:
 | |
| 	ldr r1, _080A4D1C @ =gScreen
 | |
| 	movs r0, #1
 | |
| 	strh r0, [r1, #0x1a]
 | |
| _080A4CFE:
 | |
| 	ldr r0, _080A4D18 @ =gUnk_08128190
 | |
| 	ldr r0, [r0]
 | |
| 	movs r2, #0x80
 | |
| 	lsls r2, r2, #1
 | |
| 	adds r1, r0, r2
 | |
| 	movs r2, #0
 | |
| 	b _080A4D28
 | |
| 	.align 2, 0
 | |
| _080A4D0C: .4byte gMenu
 | |
| _080A4D10: .4byte gBG1Buffer
 | |
| _080A4D14: .4byte 0x0600E000
 | |
| _080A4D18: .4byte gUnk_08128190
 | |
| _080A4D1C: .4byte gScreen
 | |
| _080A4D20:
 | |
| 	adds r1, #0x40
 | |
| 	adds r2, #1
 | |
| 	cmp r2, #0x13
 | |
| 	bhi _080A4D2E
 | |
| _080A4D28:
 | |
| 	ldrh r0, [r1]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4D20
 | |
| _080A4D2E:
 | |
| 	lsls r0, r2, #3
 | |
| 	pop {r4, r5, r6, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080A4D34
 | |
| sub_080A4D34: @ 0x080A4D34
 | |
| 	push {lr}
 | |
| 	bl LoadGfxGroups
 | |
| 	movs r0, #0xb5
 | |
| 	bl LoadPaletteGroup
 | |
| 	ldr r1, _080A4D50 @ =gSave
 | |
| 	adds r2, r1, #0
 | |
| 	adds r2, #0xaa
 | |
| 	ldrb r0, [r2]
 | |
| 	cmp r0, #8
 | |
| 	bhi _080A4D54
 | |
| 	movs r1, #2
 | |
| 	b _080A4D66
 | |
| 	.align 2, 0
 | |
| _080A4D50: .4byte gSave
 | |
| _080A4D54:
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0xab
 | |
| 	ldrb r0, [r0]
 | |
| 	ldrb r1, [r2]
 | |
| 	subs r0, r0, r1
 | |
| 	movs r1, #1
 | |
| 	cmp r0, #8
 | |
| 	bgt _080A4D66
 | |
| 	movs r1, #0
 | |
| _080A4D66:
 | |
| 	adds r0, r1, #0
 | |
| 	adds r0, #0x56
 | |
| 	bl LoadGfxGroup
 | |
| 	ldr r1, _080A4D80 @ =gScreen
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r1, #0x2e]
 | |
| 	strh r0, [r1, #0x30]
 | |
| 	ldr r0, _080A4D84 @ =0x00001E0B
 | |
| 	strh r0, [r1, #0x2c]
 | |
| 	movs r0, #1
 | |
| 	strh r0, [r1, #0x32]
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4D80: .4byte gScreen
 | |
| _080A4D84: .4byte 0x00001E0B
 | |
| 
 | |
| 	thumb_func_start sub_080A4D88
 | |
| sub_080A4D88: @ 0x080A4D88
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A4DA4 @ =gUnk_020344A0
 | |
| 	movs r1, #8
 | |
| 	bl MemClear
 | |
| 	movs r0, #1
 | |
| 	movs r1, #0
 | |
| 	bl MenuFadeIn
 | |
| 	movs r0, #0x80
 | |
| 	bl SetBgmVolume
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4DA4: .4byte gUnk_020344A0
 | |
| 
 | |
| 	thumb_func_start sub_080A4DA8
 | |
| sub_080A4DA8: @ 0x080A4DA8
 | |
| 	push {r4, lr}
 | |
| 	adds r4, r0, #0
 | |
| 	bl sub_080A4D34
 | |
| 	adds r0, r4, #0
 | |
| 	bl sub_080A4DB8
 | |
| 	pop {r4, pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A4DB8
 | |
| sub_080A4DB8: @ 0x080A4DB8
 | |
| 	push {r4, r5, lr}
 | |
| 	adds r5, r0, #0
 | |
| 	bl sub_08056250
 | |
| 	ldr r0, _080A4E58 @ =gBG0Buffer
 | |
| 	movs r4, #0x80
 | |
| 	lsls r4, r4, #4
 | |
| 	adds r1, r4, #0
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A4E5C @ =gBG1Buffer
 | |
| 	adds r1, r4, #0
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A4E60 @ =gBG2Buffer
 | |
| 	adds r1, r4, #0
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A4E64 @ =gUnk_0200AF34
 | |
| 	movs r1, #0xc0
 | |
| 	lsls r1, r1, #2
 | |
| 	bl MemClear
 | |
| 	ldr r4, _080A4E68 @ =gMenu
 | |
| 	adds r0, r4, #0
 | |
| 	movs r1, #0x30
 | |
| 	bl MemClear
 | |
| 	ldr r0, _080A4E6C @ =0x0000FFFF
 | |
| 	strh r0, [r4, #0x2e]
 | |
| 	ldr r0, _080A4E70 @ =gUnk_02034490
 | |
| 	adds r0, #2
 | |
| 	adds r0, r5, r0
 | |
| 	ldrb r0, [r0]
 | |
| 	movs r3, #0
 | |
| 	strb r0, [r4, #3]
 | |
| 	ldr r0, _080A4E74 @ =gUnk_08128A38
 | |
| 	lsls r5, r5, #3
 | |
| 	adds r5, r5, r0
 | |
| 	ldrb r0, [r5]
 | |
| 	lsls r0, r0, #3
 | |
| 	ldr r1, _080A4E78 @ =gUnk_08128AD8
 | |
| 	adds r4, r0, r1
 | |
| 	ldr r1, _080A4E7C @ =gScreen
 | |
| 	ldrh r2, [r4, #2]
 | |
| 	movs r5, #0xca
 | |
| 	lsls r5, r5, #5
 | |
| 	adds r0, r5, #0
 | |
| 	orrs r0, r2
 | |
| 	strh r0, [r1]
 | |
| 	strh r3, [r1, #0xa]
 | |
| 	strh r3, [r1, #0xc]
 | |
| 	movs r2, #1
 | |
| 	strh r2, [r1, #0xe]
 | |
| 	strh r3, [r1, #0x16]
 | |
| 	strh r3, [r1, #0x18]
 | |
| 	ldrh r0, [r4, #4]
 | |
| 	strh r0, [r1, #0x14]
 | |
| 	strh r2, [r1, #0x1a]
 | |
| 	strh r3, [r1, #0x22]
 | |
| 	strh r3, [r1, #0x24]
 | |
| 	ldrh r0, [r4, #6]
 | |
| 	strh r0, [r1, #0x20]
 | |
| 	strh r2, [r1, #0x26]
 | |
| 	strh r3, [r1, #0x2e]
 | |
| 	strh r3, [r1, #0x30]
 | |
| 	ldr r0, _080A4E80 @ =0x00001E0B
 | |
| 	strh r0, [r1, #0x2c]
 | |
| 	ldrb r0, [r4]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4E4A
 | |
| 	bl LoadPaletteGroup
 | |
| _080A4E4A:
 | |
| 	ldrb r0, [r4, #1]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4E54
 | |
| 	bl LoadGfxGroup
 | |
| _080A4E54:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A4E58: .4byte gBG0Buffer
 | |
| _080A4E5C: .4byte gBG1Buffer
 | |
| _080A4E60: .4byte gBG2Buffer
 | |
| _080A4E64: .4byte gUnk_0200AF34
 | |
| _080A4E68: .4byte gMenu
 | |
| _080A4E6C: .4byte 0x0000FFFF
 | |
| _080A4E70: .4byte gUnk_02034490
 | |
| _080A4E74: .4byte gUnk_08128A38
 | |
| _080A4E78: .4byte gUnk_08128AD8
 | |
| _080A4E7C: .4byte gScreen
 | |
| _080A4E80: .4byte 0x00001E0B
 | |
| 
 | |
| 	thumb_func_start sub_080A4E84
 | |
| sub_080A4E84: @ 0x080A4E84
 | |
| 	ldr r1, _080A4E8C @ =gUnk_02034490
 | |
| 	strb r0, [r1, #0x14]
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _080A4E8C: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080A4E90
 | |
| sub_080A4E90: @ 0x080A4E90
 | |
| 	ldr r1, _080A4E9C @ =gUnk_02034490
 | |
| 	movs r2, #0
 | |
| 	strb r0, [r1, #0x11]
 | |
| 	strb r2, [r1, #0x12]
 | |
| 	bx lr
 | |
| 	.align 2, 0
 | |
| _080A4E9C: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start Subtask_PauseMenu
 | |
| Subtask_PauseMenu: @ 0x080A4EA0
 | |
| 	push {r4, lr}
 | |
| 	ldr r4, _080A4EB8 @ =gUnk_02034490
 | |
| 	ldrb r0, [r4, #0x11]
 | |
| 	cmp r0, #6
 | |
| 	bne _080A4EBC
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #1
 | |
| 	bl SetBgmVolume
 | |
| 	bl Subtask_Exit
 | |
| 	b _080A4F14
 | |
| 	.align 2, 0
 | |
| _080A4EB8: .4byte gUnk_02034490
 | |
| _080A4EBC:
 | |
| 	bl FlushSprites
 | |
| 	ldr r1, _080A4F18 @ =gUnk_08128B30
 | |
| 	ldrb r0, [r4, #0x11]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	bl _call_via_r0
 | |
| 	bl sub_080A5128
 | |
| 	bl sub_0801C1D4
 | |
| 	bl DrawOAMCmd
 | |
| 	ldrb r0, [r4, #0x11]
 | |
| 	cmp r0, #4
 | |
| 	beq _080A4EF0
 | |
| 	ldr r0, _080A4F1C @ =gUnk_08128A38
 | |
| 	ldrb r1, [r4, #1]
 | |
| 	lsls r1, r1, #3
 | |
| 	adds r0, #4
 | |
| 	adds r1, r1, r0
 | |
| 	ldr r0, [r1]
 | |
| 	bl _call_via_r0
 | |
| _080A4EF0:
 | |
| 	bl CopyOAM
 | |
| 	movs r3, #0x16
 | |
| 	ldrsb r3, [r4, r3]
 | |
| 	movs r1, #0
 | |
| 	cmp r3, #0
 | |
| 	beq _080A4F00
 | |
| 	ldr r1, _080A4F20 @ =0x00000E46
 | |
| _080A4F00:
 | |
| 	ldr r2, _080A4F24 @ =gScreen
 | |
| 	adds r0, r2, #0
 | |
| 	adds r0, #0x66
 | |
| 	strh r1, [r0]
 | |
| 	lsls r1, r3, #8
 | |
| 	movs r0, #0x10
 | |
| 	subs r0, r0, r3
 | |
| 	orrs r1, r0
 | |
| 	adds r2, #0x68
 | |
| 	strh r1, [r2]
 | |
| _080A4F14:
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A4F18: .4byte gUnk_08128B30
 | |
| _080A4F1C: .4byte gUnk_08128A38
 | |
| _080A4F20: .4byte 0x00000E46
 | |
| _080A4F24: .4byte gScreen
 | |
| 
 | |
| 	thumb_func_start sub_080A4F28
 | |
| sub_080A4F28: @ 0x080A4F28
 | |
| 	push {r4, lr}
 | |
| 	bl sub_0801E8D4
 | |
| 	bl sub_080A4D34
 | |
| 	movs r1, #4
 | |
| 	ldr r3, _080A4F90 @ =gUnk_02034492
 | |
| 	movs r2, #0
 | |
| _080A4F38:
 | |
| 	adds r0, r1, r3
 | |
| 	strb r2, [r0]
 | |
| 	adds r1, #1
 | |
| 	cmp r1, #0xd
 | |
| 	ble _080A4F38
 | |
| 	ldr r1, _080A4F94 @ =gRoomTransition
 | |
| 	ldrh r0, [r1, #0x20]
 | |
| 	ldrh r1, [r1, #0x22]
 | |
| 	bl sub_080A6A80
 | |
| 	ldr r4, _080A4F98 @ =gUnk_02034490
 | |
| 	ldrb r0, [r0, #4]
 | |
| 	strb r0, [r4, #6]
 | |
| 	bl sub_0801DB94
 | |
| 	strb r0, [r4, #7]
 | |
| 	movs r0, #0x10
 | |
| 	bl IsItemEquipped
 | |
| 	movs r1, #0xf
 | |
| 	cmp r0, #2
 | |
| 	beq _080A4F66
 | |
| 	movs r1, #0x10
 | |
| _080A4F66:
 | |
| 	strb r1, [r4, #0x15]
 | |
| 	ldr r1, _080A4F9C @ =gUnk_08128A38
 | |
| 	ldrb r0, [r4, #1]
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r0, [r0, #1]
 | |
| 	bl sub_080A50A0
 | |
| 	strb r0, [r4, #1]
 | |
| 	strb r0, [r4, #0x14]
 | |
| 	bl sub_080A4DB8
 | |
| 	movs r0, #4
 | |
| 	movs r1, #0x20
 | |
| 	bl SetFade
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A4E90
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A4F90: .4byte gUnk_02034492
 | |
| _080A4F94: .4byte gRoomTransition
 | |
| _080A4F98: .4byte gUnk_02034490
 | |
| _080A4F9C: .4byte gUnk_08128A38
 | |
| 
 | |
| 	thumb_func_start sub_080A4FA0
 | |
| sub_080A4FA0: @ 0x080A4FA0
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A4FB4 @ =gFadeControl
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	bne _080A4FB0
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A4E90
 | |
| _080A4FB0:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A4FB4: .4byte gFadeControl
 | |
| 
 | |
| 	thumb_func_start sub_080A4FB8
 | |
| sub_080A4FB8: @ 0x080A4FB8
 | |
| 	push {r4, r5, lr}
 | |
| 	bl sub_080A51F4
 | |
| 	cmp r0, #0
 | |
| 	beq _080A5052
 | |
| 	ldr r0, _080A4FE4 @ =gMenu
 | |
| 	ldr r1, [r0, #0xc]
 | |
| 	adds r2, r0, #0
 | |
| 	cmp r1, #0
 | |
| 	beq _080A5052
 | |
| 	movs r4, #1
 | |
| 	rsbs r4, r4, #0
 | |
| 	ldr r0, _080A4FE8 @ =gInput
 | |
| 	ldrh r1, [r0, #2]
 | |
| 	cmp r1, #8
 | |
| 	beq _080A4FFE
 | |
| 	cmp r1, #8
 | |
| 	bgt _080A4FEC
 | |
| 	cmp r1, #2
 | |
| 	beq _080A500A
 | |
| 	b _080A500C
 | |
| 	.align 2, 0
 | |
| _080A4FE4: .4byte gMenu
 | |
| _080A4FE8: .4byte gInput
 | |
| _080A4FEC:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #1
 | |
| 	cmp r1, r0
 | |
| 	beq _080A5006
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #2
 | |
| 	cmp r1, r0
 | |
| 	beq _080A5002
 | |
| 	b _080A500C
 | |
| _080A4FFE:
 | |
| 	movs r4, #0
 | |
| 	b _080A5010
 | |
| _080A5002:
 | |
| 	movs r4, #1
 | |
| 	b _080A5010
 | |
| _080A5006:
 | |
| 	movs r4, #2
 | |
| 	b _080A5010
 | |
| _080A500A:
 | |
| 	movs r4, #3
 | |
| _080A500C:
 | |
| 	cmp r4, #0
 | |
| 	blt _080A5052
 | |
| _080A5010:
 | |
| 	ldr r0, [r2, #0xc]
 | |
| 	adds r0, r0, r4
 | |
| 	ldrb r5, [r0]
 | |
| 	cmp r5, #6
 | |
| 	bgt _080A5024
 | |
| 	cmp r5, #4
 | |
| 	bge _080A5028
 | |
| 	cmp r5, #0
 | |
| 	beq _080A5052
 | |
| 	b _080A5042
 | |
| _080A5024:
 | |
| 	cmp r5, #0xf
 | |
| 	bne _080A5042
 | |
| _080A5028:
 | |
| 	movs r0, #0x47
 | |
| 	bl GetInventoryValue
 | |
| 	cmp r0, #0
 | |
| 	bne _080A5042
 | |
| 	movs r1, #1
 | |
| 	cmp r4, #1
 | |
| 	bne _080A503A
 | |
| 	movs r1, #2
 | |
| _080A503A:
 | |
| 	ldr r0, _080A5078 @ =gMenu
 | |
| 	ldr r0, [r0, #0xc]
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r5, [r0]
 | |
| _080A5042:
 | |
| 	ldr r0, _080A507C @ =gUnk_02034490
 | |
| 	movs r4, #0
 | |
| 	strb r5, [r0, #0x14]
 | |
| 	movs r0, #0x65
 | |
| 	bl SoundReq
 | |
| 	ldr r0, _080A5078 @ =gMenu
 | |
| 	str r4, [r0, #0xc]
 | |
| _080A5052:
 | |
| 	ldr r4, _080A507C @ =gUnk_02034490
 | |
| 	movs r0, #0x14
 | |
| 	ldrsb r0, [r4, r0]
 | |
| 	bl sub_080A50A0
 | |
| 	adds r5, r0, #0
 | |
| 	ldrb r0, [r4, #1]
 | |
| 	cmp r0, r5
 | |
| 	beq _080A5096
 | |
| 	strb r5, [r4, #0x14]
 | |
| 	bl sub_080A51D4
 | |
| 	cmp r5, #0xe
 | |
| 	bne _080A5080
 | |
| 	movs r0, #6
 | |
| 	bl sub_080A4E90
 | |
| 	b _080A5096
 | |
| 	.align 2, 0
 | |
| _080A5078: .4byte gMenu
 | |
| _080A507C: .4byte gUnk_02034490
 | |
| _080A5080:
 | |
| 	movs r0, #3
 | |
| 	bl sub_080A4E90
 | |
| 	ldr r0, _080A5098 @ =gBG0Buffer
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #4
 | |
| 	bl MemClear
 | |
| 	ldr r1, _080A509C @ =gScreen
 | |
| 	movs r0, #1
 | |
| 	strh r0, [r1, #0xe]
 | |
| _080A5096:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A5098: .4byte gBG0Buffer
 | |
| _080A509C: .4byte gScreen
 | |
| 
 | |
| 	thumb_func_start sub_080A50A0
 | |
| sub_080A50A0: @ 0x080A50A0
 | |
| 	push {lr}
 | |
| 	adds r1, r0, #0
 | |
| 	cmp r1, #0xf
 | |
| 	bne _080A50B4
 | |
| 	bl AreaHasMap
 | |
| 	movs r1, #4
 | |
| 	cmp r0, #0
 | |
| 	beq _080A50B4
 | |
| 	movs r1, #5
 | |
| _080A50B4:
 | |
| 	adds r0, r1, #0
 | |
| 	pop {pc}
 | |
| 
 | |
| 	thumb_func_start sub_080A50B8
 | |
| sub_080A50B8: @ 0x080A50B8
 | |
| 	push {r4, lr}
 | |
| 	ldr r4, _080A50DC @ =gUnk_02034490
 | |
| 	movs r0, #0x16
 | |
| 	ldrsb r0, [r4, r0]
 | |
| 	adds r0, #2
 | |
| 	cmp r0, #0x10
 | |
| 	ble _080A50D8
 | |
| 	ldr r2, _080A50E0 @ =gScreen
 | |
| 	ldrh r1, [r2]
 | |
| 	ldr r0, _080A50E4 @ =0x0000F8FF
 | |
| 	ands r0, r1
 | |
| 	strh r0, [r2]
 | |
| 	movs r0, #4
 | |
| 	bl sub_080A4E90
 | |
| 	movs r0, #0x10
 | |
| _080A50D8:
 | |
| 	strb r0, [r4, #0x16]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A50DC: .4byte gUnk_02034490
 | |
| _080A50E0: .4byte gScreen
 | |
| _080A50E4: .4byte 0x0000F8FF
 | |
| 
 | |
| 	thumb_func_start sub_080A50E8
 | |
| sub_080A50E8: @ 0x080A50E8
 | |
| 	push {lr}
 | |
| 	ldr r1, _080A5104 @ =gUnk_02034490
 | |
| 	movs r0, #0x10
 | |
| 	strb r0, [r1, #0x16]
 | |
| 	movs r0, #0x14
 | |
| 	ldrsb r0, [r1, r0]
 | |
| 	strb r0, [r1, #1]
 | |
| 	bl sub_080A4DB8
 | |
| 	movs r0, #5
 | |
| 	bl sub_080A4E90
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A5104: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080A5108
 | |
| sub_080A5108: @ 0x080A5108
 | |
| 	push {r4, lr}
 | |
| 	ldr r4, _080A5124 @ =gUnk_02034490
 | |
| 	movs r0, #0x16
 | |
| 	ldrsb r0, [r4, r0]
 | |
| 	subs r0, #2
 | |
| 	cmp r0, #0
 | |
| 	bge _080A511E
 | |
| 	movs r0, #2
 | |
| 	bl sub_080A4E90
 | |
| 	movs r0, #0
 | |
| _080A511E:
 | |
| 	strb r0, [r4, #0x16]
 | |
| 	pop {r4, pc}
 | |
| 	.align 2, 0
 | |
| _080A5124: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080A5128
 | |
| sub_080A5128: @ 0x080A5128
 | |
| 	push {r4, r5, lr}
 | |
| 	sub sp, #0x18
 | |
| 	ldr r0, _080A5140 @ =gUnk_02034490
 | |
| 	ldrb r1, [r0, #1]
 | |
| 	adds r2, r0, #0
 | |
| 	cmp r1, #7
 | |
| 	blt _080A515A
 | |
| 	cmp r1, #8
 | |
| 	ble _080A5144
 | |
| 	cmp r1, #0xb
 | |
| 	bgt _080A515A
 | |
| 	b _080A51C6
 | |
| 	.align 2, 0
 | |
| _080A5140: .4byte gUnk_02034490
 | |
| _080A5144:
 | |
| 	movs r0, #0x60
 | |
| 	str r0, [sp]
 | |
| 	movs r0, #0x18
 | |
| 	str r0, [sp, #4]
 | |
| 	subs r0, #0x28
 | |
| 	str r0, [sp, #8]
 | |
| 	movs r1, #0x48
 | |
| 	str r1, [sp, #0xc]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #1
 | |
| 	b _080A5182
 | |
| _080A515A:
 | |
| 	movs r0, #0x40
 | |
| 	str r0, [sp]
 | |
| 	movs r0, #0x16
 | |
| 	ldrsb r0, [r2, r0]
 | |
| 	lsls r0, r0, #1
 | |
| 	movs r4, #0x10
 | |
| 	subs r0, r4, r0
 | |
| 	str r0, [sp, #4]
 | |
| 	movs r0, #0x16
 | |
| 	ldrsb r0, [r2, r0]
 | |
| 	movs r1, #3
 | |
| 	bl __divsi3
 | |
| 	lsls r0, r0, #0x18
 | |
| 	asrs r0, r0, #0x18
 | |
| 	subs r4, r4, r0
 | |
| 	str r4, [sp, #8]
 | |
| 	movs r1, #0x48
 | |
| 	str r1, [sp, #0xc]
 | |
| 	adds r0, #0xe0
 | |
| _080A5182:
 | |
| 	str r0, [sp, #0x10]
 | |
| 	str r1, [sp, #0x14]
 | |
| 	ldr r4, _080A51CC @ =gOamCmd
 | |
| 	movs r0, #0
 | |
| 	strh r0, [r4, #4]
 | |
| 	strh r0, [r4, #6]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #3
 | |
| 	strh r0, [r4, #8]
 | |
| 	ldr r0, [sp]
 | |
| 	strh r0, [r4]
 | |
| 	ldr r0, [sp, #4]
 | |
| 	strh r0, [r4, #2]
 | |
| .ifdef EU
 | |
| 	movs r5, #0xfd
 | |
| 	lsls r5, r5, #0x1
 | |
| .else
 | |
| 	ldr r5, _080A51D0 @ =0x000001FB
 | |
| .endif
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #0
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, [sp, #8]
 | |
| 	strh r0, [r4]
 | |
| 	ldr r0, [sp, #0xc]
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #1
 | |
| 	bl DrawDirect
 | |
| 	ldr r0, [sp, #0x10]
 | |
| 	strh r0, [r4]
 | |
| 	ldr r0, [sp, #0x14]
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r5, #0
 | |
| 	movs r1, #2
 | |
| 	bl DrawDirect
 | |
| _080A51C6:
 | |
| 	add sp, #0x18
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A51CC: .4byte gOamCmd
 | |
| .ifndef EU
 | |
| _080A51D0: .4byte 0x000001FB
 | |
| .endif
 | |
| 
 | |
| 	thumb_func_start sub_080A51D4
 | |
| sub_080A51D4: @ 0x080A51D4
 | |
| 	push {lr}
 | |
| 	ldr r0, _080A51EC @ =gUnk_02034490
 | |
| 	ldrb r1, [r0, #1]
 | |
| 	cmp r1, #0xd
 | |
| 	bhi _080A51E8
 | |
| 	adds r0, #2
 | |
| 	adds r0, r1, r0
 | |
| 	ldr r1, _080A51F0 @ =gMenu
 | |
| 	ldrb r1, [r1, #3]
 | |
| 	strb r1, [r0]
 | |
| _080A51E8:
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A51EC: .4byte gUnk_02034490
 | |
| _080A51F0: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A51F4
 | |
| sub_080A51F4: @ 0x080A51F4
 | |
| 	push {lr}
 | |
| 	movs r1, #1
 | |
| 	ldr r0, _080A5210 @ =gFadeControl
 | |
| 	ldrb r0, [r0]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A5202
 | |
| 	movs r1, #0
 | |
| _080A5202:
 | |
| 	ldr r0, _080A5214 @ =gUnk_02034490
 | |
| 	ldrb r0, [r0, #0x11]
 | |
| 	cmp r0, #2
 | |
| 	beq _080A520C
 | |
| 	movs r1, #0
 | |
| _080A520C:
 | |
| 	adds r0, r1, #0
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A5210: .4byte gFadeControl
 | |
| _080A5214: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080A5218
 | |
| sub_080A5218: @ 0x080A5218
 | |
| 	push {lr}
 | |
| 	ldr r1, _080A5230 @ =gUnk_08128B48
 | |
| 	ldr r0, _080A5234 @ =gMenu
 | |
| 	ldrb r0, [r0, #5]
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	bl _call_via_r0
 | |
| 	bl sub_080A5384
 | |
| 	pop {pc}
 | |
| 	.align 2, 0
 | |
| _080A5230: .4byte gUnk_08128B48
 | |
| _080A5234: .4byte gMenu
 | |
| 
 | |
| 	thumb_func_start sub_080A5238
 | |
| sub_080A5238: @ 0x080A5238
 | |
| 	push {r4, r5, lr}
 | |
| 	ldr r4, _080A528C @ =gMenu
 | |
| 	movs r0, #0
 | |
| 	str r0, [r4, #0xc]
 | |
| 	ldr r0, _080A5290 @ =gUnk_08128B50
 | |
| 	bl sub_080A70AC
 | |
| 	movs r5, #1
 | |
| 	adds r4, #0x10
 | |
| _080A524A:
 | |
| 	adds r0, r5, #0
 | |
| 	bl GetInventoryValue
 | |
| 	cmp r0, #1
 | |
| 	bne _080A527E
 | |
| 	ldr r1, _080A5294 @ =gUnk_080FD5B4
 | |
| 	lsls r0, r5, #3
 | |
| 	adds r0, r0, r1
 | |
| 	ldrb r1, [r0]
 | |
| 	cmp r1, #0x11
 | |
| 	bhi _080A527E
 | |
| 	cmp r5, #0x10
 | |
| 	bhi _080A526C
 | |
| 	cmp r5, #0xf
 | |
| 	blo _080A526C
 | |
| 	ldr r0, _080A5298 @ =gUnk_02034490
 | |
| 	ldrb r5, [r0, #0x15]
 | |
| _080A526C:
 | |
| 	adds r0, r1, r4
 | |
| 	strb r5, [r0]
 | |
| 	lsls r1, r1, #3
 | |
| 	movs r0, #0xd8
 | |
| 	lsls r0, r0, #2
 | |
| 	adds r1, r1, r0
 | |
| 	adds r0, r5, #0
 | |
| 	bl sub_080A5F48
 | |
| _080A527E:
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #0x1f
 | |
| 	bls _080A524A
 | |
| 	movs r0, #1
 | |
| 	bl sub_080A7114
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| _080A528C: .4byte gMenu
 | |
| _080A5290: .4byte gUnk_08128B50
 | |
| _080A5294: .4byte gUnk_080FD5B4
 | |
| _080A5298: .4byte gUnk_02034490
 | |
| 
 | |
| 	thumb_func_start sub_080A529C
 | |
| sub_080A529C: @ 0x080A529C
 | |
| 	push {r4, r5, lr}
 | |
| 	bl sub_080A51F4
 | |
| 	cmp r0, #0
 | |
| 	beq _080A5380
 | |
| 	ldr r1, _080A52D0 @ =gMenu
 | |
| 	ldr r0, _080A52D4 @ =gUnk_08128BF4
 | |
| 	str r0, [r1, #0xc]
 | |
| 	ldrb r4, [r1, #3]
 | |
| 	lsls r1, r4, #3
 | |
| 	ldr r0, _080A52D8 @ =gItemMenuTable
 | |
| 	adds r1, r1, r0
 | |
| 	ldr r0, _080A52DC @ =gInput
 | |
| 	ldrh r2, [r0, #2]
 | |
| 	adds r3, r0, #0
 | |
| 	cmp r2, #1
 | |
| 	beq _080A52E0
 | |
| 	cmp r2, #2
 | |
| 	beq _080A52EC
 | |
| 	ldrh r0, [r3, #4]
 | |
| 	cmp r0, #0x20
 | |
| 	beq _080A5330
 | |
| 	cmp r0, #0x20
 | |
| 	bgt _080A531E
 | |
| 	b _080A5318
 | |
| 	.align 2, 0
 | |
| _080A52D0: .4byte gMenu
 | |
| _080A52D4: .4byte gUnk_08128BF4
 | |
| _080A52D8: .4byte gItemMenuTable
 | |
| _080A52DC: .4byte gInput
 | |
| _080A52E0:
 | |
| 	cmp r4, #0x10
 | |
| 	bne _080A52EC
 | |
| .ifdef DEMO_USA
 | |
| 	movs r0, #0x6d
 | |
| 	bl SoundReq
 | |
| 	b _080A5336
 | |
| .else
 | |
| .ifdef DEMO_JP @ TODO same as DEMO_USA
 | |
| 	movs r0, #0x6d
 | |
| 	bl SoundReq
 | |
| 	b _080A5336
 | |
| .else
 | |
| 	movs r0, #0xb
 | |
| 	bl sub_080A4E84
 | |
| 	b _080A530A
 | |
| .endif
 | |
| .endif
 | |
| _080A52EC:
 | |
| 	ldr r0, _080A5314 @ =gMenu
 | |
| 	adds r0, #0x10
 | |
| 	adds r2, r4, r0
 | |
| 	ldrb r0, [r2]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A5336
 | |
| 	ldrh r0, [r3, #2]
 | |
| 	movs r1, #1
 | |
| 	eors r0, r1
 | |
| 	rsbs r1, r0, #0
 | |
| 	orrs r1, r0
 | |
| 	lsrs r1, r1, #0x1f
 | |
| 	ldrb r0, [r2]
 | |
| 	bl ForceEquipItem
 | |
| _080A530A:
 | |
| 	movs r0, #0x6a
 | |
| 	bl SoundReq
 | |
| 	b _080A5336
 | |
| 	.align 2, 0
 | |
| _080A5314: .4byte gMenu
 | |
| _080A5318:
 | |
| 	cmp r0, #0x10
 | |
| 	beq _080A5334
 | |
| 	b _080A5336
 | |
| _080A531E:
 | |
| 	cmp r0, #0x40
 | |
| 	beq _080A5328
 | |
| 	cmp r0, #0x80
 | |
| 	beq _080A532C
 | |
| 	b _080A5336
 | |
| _080A5328:
 | |
| 	ldrb r4, [r1]
 | |
| 	b _080A5336
 | |
| _080A532C:
 | |
| 	ldrb r4, [r1, #1]
 | |
| 	b _080A5336
 | |
| _080A5330:
 | |
| 	ldrb r4, [r1, #2]
 | |
| 	b _080A5336
 | |
| _080A5334:
 | |
| 	ldrb r4, [r1, #3]
 | |
| _080A5336:
 | |
| 	ldr r5, _080A535C @ =gMenu
 | |
| 	ldrb r0, [r5, #3]
 | |
| 	cmp r0, r4
 | |
| 	beq _080A5346
 | |
| 	strb r4, [r5, #3]
 | |
| 	movs r0, #0x69
 | |
| 	bl SoundReq
 | |
| _080A5346:
 | |
| 	adds r0, r5, #0
 | |
| 	adds r0, #0x10
 | |
| 	adds r0, r4, r0
 | |
| 	ldrb r1, [r0]
 | |
| 	cmp r4, #0xc
 | |
| 	blo _080A5376
 | |
| 	cmp r4, #0xf
 | |
| 	bls _080A5360
 | |
| 	cmp r4, #0x10
 | |
| 	beq _080A5374
 | |
| 	b _080A5376
 | |
| 	.align 2, 0
 | |
| _080A535C: .4byte gMenu
 | |
| _080A5360:
 | |
| 	cmp r1, #0
 | |
| 	beq _080A5376
 | |
| 	ldr r0, _080A5370 @ =gSave
 | |
| 	adds r0, r0, r1
 | |
| 	adds r0, #0x9a
 | |
| 	ldrb r1, [r0]
 | |
| 	b _080A5376
 | |
| 	.align 2, 0
 | |
| _080A5370: .4byte gSave
 | |
| _080A5374:
 | |
| 	movs r1, #0x73
 | |
| _080A5376:
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #3
 | |
| 	adds r0, r1, r0
 | |
| 	bl sub_080A6F6C
 | |
| _080A5380:
 | |
| 	pop {r4, r5, pc}
 | |
| 	.align 2, 0
 | |
| 
 | |
| 	thumb_func_start sub_080A5384
 | |
| sub_080A5384: @ 0x080A5384
 | |
| .ifdef EU
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, sl
 | |
| 	mov r6, sb
 | |
| 	mov r5, r8
 | |
| 	push {r5, r6, r7}
 | |
| 	ldr r0, _080A4C14EU @ =gOamCmd
 | |
| 	movs r2, #0
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #3
 | |
| 	strh r1, [r0, #4]
 | |
| 	strh r2, [r0, #6]
 | |
| 	strh r2, [r0, #8]
 | |
| 	movs r5, #0
 | |
| 	ldr r4, _080A4C18 @ =gSave
 | |
| 	movs r0, #0xb6
 | |
| 	adds r0, r0, r4
 | |
| 	mov sl, r0
 | |
| 	movs r1, #0xac
 | |
| 	adds r1, r1, r4
 | |
| 	mov sb, r1
 | |
| 	movs r2, #0xad
 | |
| 	adds r2, r2, r4
 | |
| 	mov r8, r2
 | |
| 	movs r6, #0
 | |
| _080A4BC8:
 | |
| 	ldr r0, _080A4C1C @ =gChooseFileState
 | |
| 	adds r0, #0x10
 | |
| 	adds r2, r5, r0
 | |
| 	ldrb r0, [r2]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4C68
 | |
| 	ldr r0, _080A4C20 @ =gItemMenuTable
 | |
| 	adds r1, r6, r0
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	ldr r3, _080A4C14EU @ =gOamCmd
 | |
| 	strh r0, [r3]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r3, #2]
 | |
| 	ldrb r3, [r2]
 | |
| 	cmp r3, #0x1f
 | |
| 	bhi _080A4BF4
 | |
| 	cmp r3, #0x1c
 | |
| 	blo _080A4BF4
 | |
| 	adds r0, r3, #0
 | |
| 	subs r0, #0x1c
 | |
| 	add r0, sl
 | |
| 	ldrb r3, [r0]
 | |
| _080A4BF4:
 | |
| 	movs r2, #3
 | |
| 	cmp r3, #7
 | |
| 	blo _080A4C42
 | |
| 	cmp r3, #8
 | |
| 	bhi _080A4C28
 | |
| 	ldr r0, _080A4C24 @ =gBombBagSizes
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0xae
 | |
| 	ldrb r1, [r1]
 | |
| 	adds r1, r1, r0
 | |
| 	ldrb r0, [r1]
 | |
| 	mov r7, sb
 | |
| 	ldrb r7, [r7]
 | |
| 	cmp r0, r7
 | |
| 	bhi _080A4C42
 | |
| 	b _080A4C40
 | |
| 	.align 2, 0
 | |
| _080A4C14EU: .4byte gOamCmd
 | |
| _080A4C18: .4byte gSave
 | |
| _080A4C1C: .4byte gChooseFileState
 | |
| _080A4C20: .4byte gItemMenuTable
 | |
| _080A4C24: .4byte gBombBagSizes
 | |
| _080A4C28:
 | |
| 	cmp r3, #0xa
 | |
| 	bhi _080A4C42
 | |
| 	ldr r0, _080A4D40 @ =gQuiverSizes
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0xaf
 | |
| 	ldrb r1, [r1]
 | |
| 	adds r1, r1, r0
 | |
| 	ldrb r0, [r1]
 | |
| 	mov r1, r8
 | |
| 	ldrb r1, [r1]
 | |
| 	cmp r0, r1
 | |
| 	bhi _080A4C42
 | |
| _080A4C40:
 | |
| 	movs r2, #4
 | |
| _080A4C42:
 | |
| 	lsls r2, r2, #0xc
 | |
| 	movs r7, #0xd8
 | |
| 	lsls r7, r7, #2
 | |
| 	adds r0, r6, r7
 | |
| 	movs r7, #0x80
 | |
| 	lsls r7, r7, #4
 | |
| 	adds r1, r7, #0
 | |
| 	orrs r0, r1
 | |
| 	orrs r2, r0
 | |
| 	ldr r0, _080A4D44 @ =gOamCmd
 | |
| 	strh r2, [r0, #8]
 | |
| 	ldr r1, _080A4D48 @ =gSpriteAnimations_322
 | |
| 	lsls r0, r3, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	ldrb r1, [r0]
 | |
| 	ldr r0, _080A4D4C @ =0x00000141
 | |
| 	bl DrawDirect
 | |
| _080A4C68:
 | |
| 	adds r6, #8
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #0x10
 | |
| 	bls _080A4BC8
 | |
| 	ldr r0, _080A4D44 @ =gOamCmd
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #4
 | |
| 	strh r1, [r0, #8]
 | |
| 	ldr r1, _080A4D50EU @ =gChooseFileState
 | |
| 	ldrb r1, [r1, #3]
 | |
| 	mov sb, r0
 | |
| 	cmp r1, #0x10
 | |
| 	bne _080A4C8E
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4C8E
 | |
| 	movs r1, #0x11
 | |
| _080A4C8E:
 | |
| 	lsls r0, r1, #3
 | |
| 	ldr r1, _080A4D54EU @ =gItemMenuTable
 | |
| 	mov r8, r1
 | |
| 	adds r1, r0, r1
 | |
| 	mov r4, sb
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	ldrb r2, [r1, #4]
 | |
| 	ldr r0, _080A4D58 @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r0, #0x10
 | |
| 	ands r0, r1
 | |
| 	adds r1, r2, #4
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4CB2EU
 | |
| 	adds r1, r2, #3
 | |
| _080A4CB2EU:
 | |
| 	movs r6, #0xfd
 | |
| 	lsls r6, r6, #1
 | |
| 	adds r0, r6, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	movs r1, #0x11
 | |
| 	cmp r0, #0
 | |
| 	beq _080A4CCA
 | |
| 	movs r1, #0x10
 | |
| _080A4CCA:
 | |
| 	lsls r0, r1, #3
 | |
| 	mov r2, r8
 | |
| 	adds r1, r0, r2
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| 	strh r0, [r4, #8]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #0x22
 | |
| 	bl DrawDirect
 | |
| 	ldr r7, _080A4D5C @ =gSave
 | |
| 	adds r0, r7, #0
 | |
| 	adds r0, #0xb4
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_080A554C
 | |
| 	adds r5, r0, #0
 | |
| 	cmp r5, #0x10
 | |
| 	bhi _080A4D0E
 | |
| 	lsls r0, r5, #3
 | |
| 	mov r3, r8
 | |
| 	adds r1, r0, r3
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A4D0E:
 | |
| 	adds r0, r7, #0
 | |
| 	adds r0, #0xb5
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_080A554C
 | |
| 	adds r5, r0, #0
 | |
| 	cmp r5, #0x10
 | |
| 	bhi _080A4D36
 | |
| 	lsls r0, r5, #3
 | |
| 	mov r7, r8
 | |
| 	adds r1, r0, r7
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	mov r2, sb
 | |
| 	strh r0, [r2]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r2, #2]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A4D36:
 | |
| 	pop {r3, r4, r5}
 | |
| 	mov r8, r3
 | |
| 	mov sb, r4
 | |
| 	mov sl, r5
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A4D40: .4byte gQuiverSizes
 | |
| _080A4D44: .4byte gOamCmd
 | |
| _080A4D48: .4byte gSpriteAnimations_322
 | |
| _080A4D4C: .4byte 0x00000141
 | |
| _080A4D50EU: .4byte gChooseFileState
 | |
| _080A4D54EU: .4byte gItemMenuTable
 | |
| _080A4D58: .4byte gMain
 | |
| _080A4D5C: .4byte gSave
 | |
| .else
 | |
| 	push {r4, r5, r6, r7, lr}
 | |
| 	mov r7, sl
 | |
| 	mov r6, sb
 | |
| 	mov r5, r8
 | |
| 	push {r5, r6, r7}
 | |
| 	ldr r0, _080A5400 @ =gOamCmd
 | |
| 	movs r2, #0
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #3
 | |
| 	strh r1, [r0, #4]
 | |
| 	strh r2, [r0, #6]
 | |
| 	strh r2, [r0, #8]
 | |
| 	movs r5, #0
 | |
| 	ldr r4, _080A5404 @ =gSave
 | |
| 	movs r0, #0xb6
 | |
| 	adds r0, r0, r4
 | |
| 	mov sl, r0
 | |
| 	movs r1, #0xac
 | |
| 	adds r1, r1, r4
 | |
| 	mov sb, r1
 | |
| 	movs r2, #0xad
 | |
| 	adds r2, r2, r4
 | |
| 	mov r8, r2
 | |
| 	movs r6, #0
 | |
| _080A53B4:
 | |
| 	ldr r0, _080A5408 @ =gMenu
 | |
| 	adds r0, #0x10
 | |
| 	adds r2, r5, r0
 | |
| 	ldrb r0, [r2]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A5456
 | |
| 	ldr r0, _080A540C @ =gItemMenuTable
 | |
| 	adds r1, r6, r0
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	ldr r3, _080A5400 @ =gOamCmd
 | |
| 	strh r0, [r3]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r3, #2]
 | |
| 	ldrb r3, [r2]
 | |
| 	cmp r3, #0x1f
 | |
| 	bhi _080A53E0
 | |
| 	cmp r3, #0x1c
 | |
| 	blo _080A53E0
 | |
| 	adds r0, r3, #0
 | |
| 	subs r0, #0x1c
 | |
| 	add r0, sl
 | |
| 	ldrb r3, [r0]
 | |
| _080A53E0:
 | |
| 	movs r2, #3
 | |
| 	cmp r3, #7
 | |
| 	blo _080A542E
 | |
| 	cmp r3, #8
 | |
| 	bhi _080A5414
 | |
| 	ldr r0, _080A5410 @ =gBombBagSizes
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0xae
 | |
| 	ldrb r1, [r1]
 | |
| 	adds r1, r1, r0
 | |
| 	ldrb r0, [r1]
 | |
| 	mov r7, sb
 | |
| 	ldrb r7, [r7]
 | |
| 	cmp r0, r7
 | |
| 	bhi _080A542E
 | |
| 	b _080A542C
 | |
| 	.align 2, 0
 | |
| _080A5400: .4byte gOamCmd
 | |
| _080A5404: .4byte gSave
 | |
| _080A5408: .4byte gMenu
 | |
| _080A540C: .4byte gItemMenuTable
 | |
| _080A5410: .4byte gBombBagSizes
 | |
| _080A5414:
 | |
| 	cmp r3, #0xa
 | |
| 	bhi _080A542E
 | |
| 	ldr r0, _080A552C @ =gQuiverSizes
 | |
| 	adds r1, r4, #0
 | |
| 	adds r1, #0xaf
 | |
| 	ldrb r1, [r1]
 | |
| 	adds r1, r1, r0
 | |
| 	ldrb r0, [r1]
 | |
| 	mov r1, r8
 | |
| 	ldrb r1, [r1]
 | |
| 	cmp r0, r1
 | |
| 	bhi _080A542E
 | |
| _080A542C:
 | |
| 	movs r2, #4
 | |
| _080A542E:
 | |
| 	lsls r2, r2, #0xc
 | |
| 	movs r7, #0xd8
 | |
| 	lsls r7, r7, #2
 | |
| 	adds r0, r6, r7
 | |
| 	movs r7, #0x80
 | |
| 	lsls r7, r7, #4
 | |
| 	adds r1, r7, #0
 | |
| 	orrs r0, r1
 | |
| 	orrs r2, r0
 | |
| 	ldr r0, _080A5530 @ =gOamCmd
 | |
| 	strh r2, [r0, #8]
 | |
| 	ldr r1, _080A5534 @ =gSpriteAnimations_322
 | |
| 	lsls r0, r3, #2
 | |
| 	adds r0, r0, r1
 | |
| 	ldr r0, [r0]
 | |
| 	ldrb r1, [r0]
 | |
| 	movs r0, #0xa1
 | |
| 	lsls r0, r0, #1
 | |
| 	bl DrawDirect
 | |
| _080A5456:
 | |
| 	adds r6, #8
 | |
| 	adds r5, #1
 | |
| 	cmp r5, #0x10
 | |
| 	bls _080A53B4
 | |
| 	ldr r0, _080A5530 @ =gOamCmd
 | |
| 	movs r1, #0x80
 | |
| 	lsls r1, r1, #4
 | |
| 	strh r1, [r0, #8]
 | |
| 	ldr r1, _080A5538 @ =gMenu
 | |
| 	ldrb r1, [r1, #3]
 | |
| 	mov sb, r0
 | |
| 	cmp r1, #0x10
 | |
| 	bne _080A547C
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	cmp r0, #0
 | |
| 	beq _080A547C
 | |
| 	movs r1, #0x11
 | |
| _080A547C:
 | |
| 	lsls r0, r1, #3
 | |
| 	ldr r1, _080A553C @ =gItemMenuTable
 | |
| 	mov r8, r1
 | |
| 	adds r1, r0, r1
 | |
| 	mov r4, sb
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	ldrb r2, [r1, #4]
 | |
| 	ldr r0, _080A5540 @ =gMain
 | |
| 	ldrh r1, [r0, #0xc]
 | |
| 	movs r0, #0x10
 | |
| 	ands r0, r1
 | |
| 	adds r1, r2, #4
 | |
| 	cmp r0, #0
 | |
| 	beq _080A54A0
 | |
| 	adds r1, r2, #3
 | |
| _080A54A0:
 | |
| 	ldr r6, _080A5544 @ =0x000001FB
 | |
| 	adds r0, r6, #0
 | |
| 	bl DrawDirect
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #0x12
 | |
| 	ldrb r0, [r0, #7]
 | |
| 	movs r1, #0x11
 | |
| 	cmp r0, #0
 | |
| 	beq _080A54B6
 | |
| 	movs r1, #0x10
 | |
| _080A54B6:
 | |
| 	lsls r0, r1, #3
 | |
| 	mov r2, r8
 | |
| 	adds r1, r0, r2
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	movs r0, #0x80
 | |
| 	lsls r0, r0, #4
 | |
| 	strh r0, [r4, #8]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #0x22
 | |
| 	bl DrawDirect
 | |
| 	ldr r7, _080A5548 @ =gSave
 | |
| 	adds r0, r7, #0
 | |
| 	adds r0, #0xb4
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_080A554C
 | |
| 	adds r5, r0, #0
 | |
| 	cmp r5, #0x10
 | |
| 	bhi _080A54FA
 | |
| 	lsls r0, r5, #3
 | |
| 	mov r3, r8
 | |
| 	adds r1, r0, r3
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	strh r0, [r4]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r4, #2]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A54FA:
 | |
| 	adds r0, r7, #0
 | |
| 	adds r0, #0xb5
 | |
| 	ldrb r0, [r0]
 | |
| 	bl sub_080A554C
 | |
| 	adds r5, r0, #0
 | |
| 	cmp r5, #0x10
 | |
| 	bhi _080A5522
 | |
| 	lsls r0, r5, #3
 | |
| 	mov r7, r8
 | |
| 	adds r1, r0, r7
 | |
| 	ldrb r0, [r1, #6]
 | |
| 	mov r2, sb
 | |
| 	strh r0, [r2]
 | |
| 	ldrb r0, [r1, #7]
 | |
| 	strh r0, [r2, #2]
 | |
| 	adds r0, r6, #0
 | |
| 	movs r1, #3
 | |
| 	bl DrawDirect
 | |
| _080A5522:
 | |
| 	pop {r3, r4, r5}
 | |
| 	mov r8, r3
 | |
| 	mov sb, r4
 | |
| 	mov sl, r5
 | |
| 	pop {r4, r5, r6, r7, pc}
 | |
| 	.align 2, 0
 | |
| _080A552C: .4byte gQuiverSizes
 | |
| _080A5530: .4byte gOamCmd
 | |
| _080A5534: .4byte gSpriteAnimations_322
 | |
| _080A5538: .4byte gMenu
 | |
| _080A553C: .4byte gItemMenuTable
 | |
| _080A5540: .4byte gMain
 | |
| _080A5544: .4byte 0x000001FB
 | |
| _080A5548: .4byte gSave
 | |
| .endif
 |