summaryrefslogtreecommitdiff
path: root/arm7/asm/itcm.s
blob: ac320e6c6c511d07cf96fcebe066181b05aa1cde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* arm7_rom.s TODO: Disassemble */
	.include "asm/macros.inc"
	.include "global.inc"

	.section .text
	arm_func_start WVR_ShelterExtWram
WVR_ShelterExtWram: ; 0x027E0000 load at 0x023801B0
	stmdb	sp!, {r4, r5, r6, lr}
	ldr	r6, _027E00C0	; =0x023801B0
	ldr	r3, _027E00C4	; =0x023A92F8
	ldr	r0, _027E00C8	; =0x023A931C
	b	_027E00B0
_027E0014:
	mov	r2, r3
	ldr	r5, [r3, #4]
	add	r1, r3, #8
	add	r3, r3, #12
	ldr	r4, [r1]
	ldr	r1, [r2]
	cmp	r1, #100663296	; 0x6000000
	bne	_027E00AC
	ldr	r3, _027E00CC	; =0x027E00DC
	ldr	r0, _027E00D0	; =_0380A3F4
	str	r3, [r0]
	add	r2, r5, r4
	ldr	r0, _027E00D4	; =_0380A3FC
	str	r2, [r0]
	ldr	r1, _027E00D8	; =0x027FAFCC
	add	r0, r3, r2
	cmp	r1, r0
	beq	_027E0060
	bl	OS_Terminate
_027E0060:
	ldr	r0, _027E00D0	; =_0380A3F4
	ldr	r3, [r0]
	mov	r2, #0
	mov	r1, r5, lsr #2
	b	_027E0080
_027E0074:
	ldr	r0, [r6], #4
	str	r0, [r3], #4
	add	r2, r2, #1
_027E0080:
	cmp	r2, r1
	bcc	_027E0074
	mov	r1, #0
	mov	r2, r4, lsr #2
	mov	r0, r1
	b	_027E00A0
_027E0098:
	str	r0, [r3], #4
	add	r1, r1, #1
_027E00A0:
	cmp	r1, r2
	bcc	_027E0098
	b	_027E00B8
_027E00AC:
	add	r6, r6, r5
_027E00B0:
	cmp	r3, r0
	bne	_027E0014
_027E00B8:
	ldmia	sp!, {r4, r5, r6, lr}
	bx	lr
_027E00C0: .word 0x023801B0
_027E00C4: .word 0x023A92F8
_027E00C8: .word 0x023A931C
_027E00CC: .word 0x027E00DC
_027E00D0: .word _0380A3F4
_027E00D4: .word _0380A3FC
_027E00D8: .word 0x027FAFCC