summaryrefslogtreecommitdiff
path: root/asm/code_8070BC0.s
blob: 4435a85aa37996d941266a1691f9827986e44a77 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
	#include "asm/constants/gba_constants.inc"
	#include "asm/macros.inc"

	.syntax unified

	.text

	thumb_func_start sub_8070BC0
sub_8070BC0:
	push {r4-r6,lr}
	adds r4, r0, 0
	ldr r5, [r4, 0x70]
	movs r1, 0
	bl IsCharging
	lsls r0, 24
	cmp r0, 0
	bne _08070C56
	adds r6, r5, 0
	adds r6, 0xA8
	ldrb r0, [r6]
	cmp r0, 0x4
	beq _08070C56
	cmp r0, 0x3
	beq _08070C56
	adds r0, r4, 0
	bl ShouldAvoidEnemies
	lsls r0, 24
	cmp r0, 0
	bne _08070C56
	adds r0, r5, 0
	adds r0, 0xEC
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08070C56
	adds r0, r5, 0
	adds r0, 0xB0
	ldrb r1, [r0]
	cmp r1, 0x6
	beq _08070C56
	cmp r1, 0x1
	beq _08070C56
	adds r0, r5, 0
	adds r0, 0xBC
	ldrb r3, [r0]
	adds r4, r0, 0
	cmp r3, 0x2
	beq _08070C56
	ldrb r2, [r6]
	cmp r2, 0x1
	beq _08070C56
	adds r0, r5, 0
	adds r0, 0xE4
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08070C56
	cmp r2, 0x5
	beq _08070C56
	cmp r3, 0x1
	beq _08070C56
	cmp r1, 0x3
	beq _08070C56
	cmp r1, 0x4
	beq _08070C56
	adds r0, r5, 0
	adds r0, 0xE8
	ldrb r1, [r0]
	cmp r1, 0x2
	beq _08070C56
	adds r0, r5, 0
	adds r0, 0xC8
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _08070C56
	cmp r1, 0x1
	beq _08070C56
	ldrb r0, [r4]
	cmp r0, 0x7
	beq _08070C56
	cmp r0, 0x3
	beq _08070C56
	movs r0, 0x1
	b _08070C58
_08070C56:
	movs r0, 0
_08070C58:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8070BC0

	.align 2, 0