pokeruby/asm/rom_8074BAC.s
2016-08-30 01:36:24 -07:00

12469 lines
199 KiB
ArmAsm

.include "constants/gba_constants.s"
.include "constants/species_constants.s"
.include "asm/macros.s"
.syntax unified
.text
thumb_func_start sound_sources_off
sound_sources_off: @ 8074BAC
push {lr}
ldr r1, _08074BBC
movs r0, 0
strb r0, [r1]
bl map_music_set_to_zero
pop {r0}
bx r0
.align 2, 0
_08074BBC: .4byte 0x03004aec
thumb_func_end sound_sources_off
thumb_func_start sound_something
sound_something: @ 8074BC0
push {r4,r5,lr}
ldr r0, _08074BD8
ldrb r1, [r0]
adds r2, r0, 0
cmp r1, 0x7
bhi _08074CA2
lsls r0, r1, 2
ldr r1, _08074BDC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08074BD8: .4byte 0x030006d8
_08074BDC: .4byte _08074BE0
.align 2, 0
_08074BE0:
.4byte _08074CA2
.4byte _08074C00
.4byte _08074CA2
.4byte _08074CA2
.4byte _08074CA2
.4byte _08074C14
.4byte _08074C34
.4byte _08074C70
_08074C00:
movs r0, 0x2
strb r0, [r2]
ldr r0, _08074C10
ldrh r0, [r0]
bl sub_8075474
b _08074CA2
.align 2, 0
_08074C10: .4byte 0x030006d4
_08074C14:
bl sub_8075028
lsls r0, 24
cmp r0, 0
beq _08074CA2
ldr r0, _08074C2C
movs r1, 0
strh r1, [r0]
ldr r0, _08074C30
strb r1, [r0]
b _08074CA2
.align 2, 0
_08074C2C: .4byte 0x030006d6
_08074C30: .4byte 0x030006d8
_08074C34:
bl sub_8075028
lsls r0, 24
cmp r0, 0
beq _08074CA2
bl task_is_not_running_overworld_fanfare
lsls r0, 24
cmp r0, 0
beq _08074CA2
ldr r2, _08074C64
ldr r1, _08074C68
ldrh r0, [r1]
strh r0, [r2]
movs r0, 0
strh r0, [r1]
ldr r1, _08074C6C
movs r0, 0x2
strb r0, [r1]
ldrh r0, [r2]
bl sub_8075474
b _08074CA2
.align 2, 0
_08074C64: .4byte 0x030006d4
_08074C68: .4byte 0x030006d6
_08074C6C: .4byte 0x030006d8
_08074C70:
bl sub_8075028
lsls r0, 24
cmp r0, 0
beq _08074CA2
bl task_is_not_running_overworld_fanfare
lsls r0, 24
cmp r0, 0
beq _08074CA2
ldr r4, _08074CA8
ldrh r0, [r4]
ldr r5, _08074CAC
ldrb r1, [r5]
bl sub_8074F6C
ldr r1, _08074CB0
ldrh r0, [r4]
strh r0, [r1]
movs r2, 0
strh r2, [r4]
ldr r1, _08074CB4
movs r0, 0x2
strb r0, [r1]
strb r2, [r5]
_08074CA2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08074CA8: .4byte 0x030006d6
_08074CAC: .4byte 0x030006d9
_08074CB0: .4byte 0x030006d4
_08074CB4: .4byte 0x030006d8
thumb_func_end sound_something
thumb_func_start map_music_set_to_zero
map_music_set_to_zero: @ 8074CB8
ldr r0, _08074CCC
movs r1, 0
strh r1, [r0]
ldr r0, _08074CD0
strh r1, [r0]
ldr r0, _08074CD4
strb r1, [r0]
ldr r0, _08074CD8
strb r1, [r0]
bx lr
.align 2, 0
_08074CCC: .4byte 0x030006d4
_08074CD0: .4byte 0x030006d6
_08074CD4: .4byte 0x030006d8
_08074CD8: .4byte 0x030006d9
thumb_func_end map_music_set_to_zero
thumb_func_start current_map_music_get
current_map_music_get: @ 8074CDC
ldr r0, _08074CE4
ldrh r0, [r0]
bx lr
.align 2, 0
_08074CE4: .4byte 0x030006d4
thumb_func_end current_map_music_get
thumb_func_start current_map_music_set
current_map_music_set: @ 8074CE8
ldr r1, _08074CFC
strh r0, [r1]
ldr r1, _08074D00
movs r0, 0
strh r0, [r1]
ldr r1, _08074D04
movs r0, 0x1
strb r0, [r1]
bx lr
.align 2, 0
_08074CFC: .4byte 0x030006d4
_08074D00: .4byte 0x030006d6
_08074D04: .4byte 0x030006d8
thumb_func_end current_map_music_set
thumb_func_start sub_8074D08
sub_8074D08: @ 8074D08
ldr r0, _08074D1C
movs r1, 0
strh r1, [r0]
ldr r0, _08074D20
strh r1, [r0]
ldr r1, _08074D24
movs r0, 0x1
strb r0, [r1]
bx lr
.align 2, 0
_08074D1C: .4byte 0x030006d4
_08074D20: .4byte 0x030006d6
_08074D24: .4byte 0x030006d8
thumb_func_end sub_8074D08
thumb_func_start sub_8074D28
sub_8074D28: @ 8074D28
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8074E14
lsls r0, 24
cmp r0, 0
beq _08074D3E
adds r0, r4, 0
bl play_sound_effect
_08074D3E:
ldr r0, _08074D54
movs r1, 0
strh r1, [r0]
ldr r0, _08074D58
strh r1, [r0]
ldr r1, _08074D5C
movs r0, 0x5
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074D54: .4byte 0x030006d4
_08074D58: .4byte 0x030006d6
_08074D5C: .4byte 0x030006d8
thumb_func_end sub_8074D28
thumb_func_start sub_8074D60
sub_8074D60: @ 8074D60
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r0, 24
lsrs r0, 24
bl sub_8074D28
ldr r1, _08074D88
movs r0, 0
strh r0, [r1]
ldr r0, _08074D8C
strh r4, [r0]
ldr r1, _08074D90
movs r0, 0x6
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074D88: .4byte 0x030006d4
_08074D8C: .4byte 0x030006d6
_08074D90: .4byte 0x030006d8
thumb_func_end sub_8074D60
thumb_func_start sub_8074D94
sub_8074D94: @ 8074D94
push {r4,r5,lr}
adds r4, r0, 0
adds r0, r1, 0
adds r5, r2, 0
lsls r4, 16
lsrs r4, 16
lsls r0, 24
lsrs r0, 24
lsls r5, 24
lsrs r5, 24
bl sub_8074D28
ldr r1, _08074DC8
movs r0, 0
strh r0, [r1]
ldr r0, _08074DCC
strh r4, [r0]
ldr r1, _08074DD0
movs r0, 0x7
strb r0, [r1]
ldr r0, _08074DD4
strb r5, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08074DC8: .4byte 0x030006d4
_08074DCC: .4byte 0x030006d6
_08074DD0: .4byte 0x030006d8
_08074DD4: .4byte 0x030006d9
thumb_func_end sub_8074D94
thumb_func_start unref_sub_8074DD8
unref_sub_8074DD8: @ 8074DD8
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8074F6C
ldr r0, _08074E04
strh r4, [r0]
ldr r0, _08074E08
movs r2, 0
strh r2, [r0]
ldr r1, _08074E0C
movs r0, 0x2
strb r0, [r1]
ldr r0, _08074E10
strb r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074E04: .4byte 0x030006d4
_08074E08: .4byte 0x030006d6
_08074E0C: .4byte 0x030006d8
_08074E10: .4byte 0x030006d9
thumb_func_end unref_sub_8074DD8
thumb_func_start sub_8074E14
sub_8074E14: @ 8074E14
push {lr}
ldr r0, _08074E2C
ldrb r0, [r0]
cmp r0, 0x6
beq _08074E30
cmp r0, 0x5
beq _08074E30
cmp r0, 0x7
beq _08074E30
movs r0, 0x1
b _08074E32
.align 2, 0
_08074E2C: .4byte 0x030006d8
_08074E30:
movs r0, 0
_08074E32:
pop {r1}
bx r1
thumb_func_end sub_8074E14
thumb_func_start pause_music_for_sound_maybe
pause_music_for_sound_maybe: @ 8074E38
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08074E60
bl m4aMPlayStop
ldr r0, _08074E64
lsls r4, 2
adds r4, r0
ldrh r0, [r4]
ldr r2, _08074E68
ldrh r1, [r4, 0x2]
strh r1, [r2]
bl m4aSongNumStart
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074E60: .4byte 0x03007380
_08074E64: .4byte gUnknown_0837DEF4
_08074E68: .4byte 0x030006da
thumb_func_end pause_music_for_sound_maybe
thumb_func_start ducking_tick
ducking_tick: @ 8074E6C
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r2, _08074E84
ldrh r0, [r2]
cmp r0, 0
beq _08074E88
subs r0, 0x1
strh r0, [r2]
movs r0, 0
b _08074EA0
.align 2, 0
_08074E84: .4byte 0x030006da
_08074E88:
cmp r1, 0
bne _08074E98
ldr r0, _08074E94
bl m4aMPlayContinue
b _08074E9E
.align 2, 0
_08074E94: .4byte 0x03007380
_08074E98:
movs r0, 0
bl m4aSongNumStart
_08074E9E:
movs r0, 0x1
_08074EA0:
pop {r1}
bx r1
thumb_func_end ducking_tick
thumb_func_start unref_sub_8074EA4
unref_sub_8074EA4: @ 8074EA4
push {lr}
lsls r0, 24
ldr r1, _08074EB8
lsrs r0, 22
adds r0, r1
ldrh r0, [r0]
bl m4aSongNumStop
pop {r0}
bx r0
.align 2, 0
_08074EB8: .4byte gUnknown_0837DEF4
thumb_func_end unref_sub_8074EA4
thumb_func_start fanfare_play
fanfare_play: @ 8074EBC
push {lr}
lsls r0, 16
lsrs r3, r0, 16
movs r1, 0
ldr r2, _08074EDC
_08074EC6:
ldrh r0, [r2]
cmp r0, r3
bne _08074EE0
lsls r0, r1, 24
lsrs r0, 24
bl pause_music_for_sound_maybe
bl task_add_50_overworld_fanfare_if_not_running
b _08074EF2
.align 2, 0
_08074EDC: .4byte gUnknown_0837DEF4
_08074EE0:
adds r2, 0x4
adds r1, 0x1
cmp r1, 0xB
bls _08074EC6
movs r0, 0
bl pause_music_for_sound_maybe
bl task_add_50_overworld_fanfare_if_not_running
_08074EF2:
pop {r0}
bx r0
thumb_func_end fanfare_play
thumb_func_start task_is_not_running_overworld_fanfare
task_is_not_running_overworld_fanfare: @ 8074EF8
push {lr}
ldr r0, _08074F0C
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08074F10
movs r0, 0x1
b _08074F12
.align 2, 0
_08074F0C: .4byte task50_overworld_fanfare
_08074F10:
movs r0, 0
_08074F12:
pop {r1}
bx r1
thumb_func_end task_is_not_running_overworld_fanfare
thumb_func_start task50_overworld_fanfare
task50_overworld_fanfare: @ 8074F18
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08074F2C
ldrh r0, [r1]
cmp r0, 0
beq _08074F30
subs r0, 0x1
strh r0, [r1]
b _08074F3C
.align 2, 0
_08074F2C: .4byte 0x030006da
_08074F30:
ldr r0, _08074F44
bl m4aMPlayContinue
adds r0, r4, 0
bl DestroyTask
_08074F3C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074F44: .4byte 0x03007380
thumb_func_end task50_overworld_fanfare
thumb_func_start task_add_50_overworld_fanfare_if_not_running
task_add_50_overworld_fanfare_if_not_running: @ 8074F48
push {r4,lr}
ldr r4, _08074F68
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08074F62
adds r0, r4, 0
movs r1, 0x50
bl CreateTask
_08074F62:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08074F68: .4byte task50_overworld_fanfare
thumb_func_end task_add_50_overworld_fanfare_if_not_running
thumb_func_start sub_8074F6C
sub_8074F6C: @ 8074F6C
push {r4-r6,lr}
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 24
lsrs r6, r1, 24
ldr r0, _08074FAC
ldrb r0, [r0]
cmp r0, 0
beq _08074F80
movs r5, 0
_08074F80:
adds r0, r5, 0
bl m4aSongNumStart
ldr r4, _08074FB0
adds r0, r4, 0
bl m4aMPlayImmInit
ldr r1, _08074FB4
adds r0, r4, 0
movs r2, 0
bl m4aMPlayVolumeControl
adds r0, r5, 0
bl m4aSongNumStop
adds r0, r4, 0
adds r1, r6, 0
bl sub_81DE0F0
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08074FAC: .4byte 0x03004aec
_08074FB0: .4byte 0x03007380
_08074FB4: .4byte 0x0000ffff
thumb_func_end sub_8074F6C
thumb_func_start sub_8074FB8
sub_8074FB8: @ 8074FB8
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _08074FCC
bl sub_81DE0D0
pop {r0}
bx r0
.align 2, 0
_08074FCC: .4byte 0x03007380
thumb_func_end sub_8074FB8
thumb_func_start sub_8074FD0
sub_8074FD0: @ 8074FD0
push {lr}
ldr r0, _08074FE8
ldr r1, [r0, 0x4]
cmp r1, 0
blt _08074FF0
ldr r0, _08074FEC
ands r1, r0
cmp r1, 0
beq _08074FF0
movs r0, 0
b _08074FF2
.align 2, 0
_08074FE8: .4byte 0x03007380
_08074FEC: .4byte 0x0000ffff
_08074FF0:
movs r0, 0x1
_08074FF2:
pop {r1}
bx r1
thumb_func_end sub_8074FD0
thumb_func_start sub_8074FF8
sub_8074FF8: @ 8074FF8
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _0807500C
bl sub_81DE0F0
pop {r0}
bx r0
.align 2, 0
_0807500C: .4byte 0x03007380
thumb_func_end sub_8074FF8
thumb_func_start play_sound_effect
play_sound_effect: @ 8075010
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _08075024
bl m4aMPlayFadeOut
pop {r0}
bx r0
.align 2, 0
_08075024: .4byte 0x03007380
thumb_func_end play_sound_effect
thumb_func_start sub_8075028
sub_8075028: @ 8075028
push {lr}
ldr r0, _08075038
ldrh r0, [r0, 0x4]
cmp r0, 0
beq _0807503C
movs r0, 0
b _0807503E
.align 2, 0
_08075038: .4byte 0x03007380
_0807503C:
movs r0, 0x1
_0807503E:
pop {r1}
bx r1
thumb_func_end sub_8075028
thumb_func_start cry_related
cry_related: @ 8075044
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
adds r4, r1, 0
lsls r5, 16
lsrs r5, 16
lsls r4, 24
lsrs r4, 24
ldr r0, _08075084
ldr r1, _08075088
movs r2, 0x55
bl m4aMPlayVolumeControl
lsls r4, 24
asrs r4, 24
movs r0, 0
str r0, [sp]
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
ldr r1, _0807508C
movs r0, 0x2
strb r0, [r1]
bl sub_8075450
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08075084: .4byte 0x03007380
_08075088: .4byte 0x0000ffff
_0807508C: .4byte 0x0202f7a0
thumb_func_end cry_related
thumb_func_start sub_8075090
sub_8075090: @ 8075090
push {r4,lr}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
lsls r3, 24
lsrs r3, 24
lsls r1, 24
asrs r1, 24
lsls r2, 24
asrs r2, 24
movs r4, 0
str r4, [sp]
bl sub_80751C0
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8075090
thumb_func_start sub_80750B4
sub_80750B4: @ 80750B4
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r5, r1, 24
lsls r2, 24
lsrs r4, r2, 24
cmp r4, 0x1
bne _080750DA
lsls r1, r5, 24
asrs r1, 24
str r4, [sp]
adds r0, r6, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
b _080750FE
_080750DA:
ldr r0, _08075108
ldr r1, _0807510C
movs r2, 0x55
bl m4aMPlayVolumeControl
lsls r1, r5, 24
asrs r1, 24
str r4, [sp]
adds r0, r6, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
ldr r1, _08075110
movs r0, 0x2
strb r0, [r1]
bl sub_8075450
_080750FE:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08075108: .4byte 0x03007380
_0807510C: .4byte 0x0000ffff
_08075110: .4byte 0x0202f7a0
thumb_func_end sub_80750B4
thumb_func_start sub_8075114
sub_8075114: @ 8075114
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
adds r4, r2, 0
cmp r2, 0x1
bne _0807513E
lsls r1, 24
asrs r1, 24
str r2, [sp]
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
b _08075164
_0807513E:
ldr r0, _0807516C
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _08075154
ldr r0, _08075170
ldr r1, _08075174
movs r2, 0x55
bl m4aMPlayVolumeControl
_08075154:
lsls r1, r5, 24
asrs r1, 24
str r4, [sp]
adds r0, r6, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
_08075164:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0807516C: .4byte 0x020239f8
_08075170: .4byte 0x03007380
_08075174: .4byte 0x0000ffff
thumb_func_end sub_8075114
thumb_func_start sub_8075178
sub_8075178: @ 8075178
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
adds r4, r1, 0
lsls r5, 16
lsrs r5, 16
lsls r4, 24
lsrs r4, 24
ldr r0, _080751B4
ldr r1, _080751B8
movs r2, 0x55
bl m4aMPlayVolumeControl
str r4, [sp]
adds r0, r5, 0
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80751C0
ldr r1, _080751BC
movs r0, 0x2
strb r0, [r1]
bl sub_8075450
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080751B4: .4byte 0x03007380
_080751B8: .4byte 0x0000ffff
_080751BC: .4byte 0x0202f7a0
thumb_func_end sub_8075178
thumb_func_start sub_80751C0
sub_80751C0: @ 80751C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r4, [sp, 0x28]
lsls r0, 16
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
str r3, [sp]
lsls r4, 24
lsrs r4, 24
ldr r1, _0807520C
adds r0, r1
lsrs r0, 16
mov r8, r0
movs r0, 0
mov r9, r0
movs r6, 0
movs r7, 0x8C
movs r5, 0xF0
lsls r5, 6
movs r1, 0
str r1, [sp, 0x4]
cmp r4, 0x5
bhi _08075260
lsls r0, r4, 2
ldr r1, _08075210
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807520C: .4byte 0xffff0000
_08075210: .4byte _08075214
.align 2, 0
_08075214:
.4byte _08075260
.4byte _0807522C
.4byte _08075232
.4byte _08075244
.4byte _08075250
.4byte _0807525C
_0807522C:
movs r7, 0x14
movs r6, 0xE1
b _08075260
_08075232:
movs r7, 0x1E
movs r6, 0xE1
ldr r5, _08075240
movs r2, 0x14
str r2, [sp, 0x4]
movs r2, 0x50
b _08075260
.align 2, 0
_08075240: .4byte 0x00003cf0
_08075244:
movs r7, 0x32
movs r6, 0xC8
ldr r5, _0807524C
b _08075260
.align 2, 0
_0807524C: .4byte 0x000039d0
_08075250:
movs r7, 0x14
movs r6, 0xDC
ldr r5, _08075258
b _08075260
.align 2, 0
_08075258: .4byte 0x00003db8
_0807525C:
movs r6, 0xC8
ldr r5, _080752B8
_08075260:
adds r0, r2, 0
bl sub_81DF50C
mov r1, r10
lsls r0, r1, 24
asrs r0, 24
bl sub_81DF520
adds r0, r5, 0
bl sub_81DF538
adds r0, r7, 0
bl sub_81DF570
movs r0, 0
bl sub_81DF588
adds r0, r6, 0
bl sub_81DF57C
ldr r0, [sp, 0x4]
bl sub_81DF5AC
ldr r0, [sp]
bl sub_81DF618
mov r0, r8
bl speciesid_conv
mov r8, r0
movs r1, 0x7F
mov r2, r8
ands r1, r2
lsrs r0, r2, 7
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
cmp r0, 0x1
beq _080752EC
cmp r0, 0x1
bgt _080752BC
cmp r0, 0
beq _080752C6
b _0807535A
.align 2, 0
_080752B8: .4byte 0x000038a4
_080752BC:
cmp r2, 0x2
beq _08075310
cmp r2, 0x3
beq _08075334
b _0807535A
_080752C6:
mov r0, r9
cmp r0, 0
beq _080752DC
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080752D8
b _08075350
.align 2, 0
_080752D8: .4byte voicegroup_84537C0
_080752DC:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080752E8
b _08075350
.align 2, 0
_080752E8: .4byte voicegroup_8452590
_080752EC:
mov r2, r9
cmp r2, 0
beq _08075300
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080752FC
b _08075350
.align 2, 0
_080752FC: .4byte voicegroup_8453DC0
_08075300:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0807530C
b _08075350
.align 2, 0
_0807530C: .4byte voicegroup_8452B90
_08075310:
mov r0, r9
cmp r0, 0
beq _08075324
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08075320
b _08075350
.align 2, 0
_08075320: .4byte voicegroup_84543C0
_08075324:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08075330
b _08075350
.align 2, 0
_08075330: .4byte voicegroup_8453190
_08075334:
mov r2, r9
cmp r2, 0
beq _08075348
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08075344
b _08075350
.align 2, 0
_08075344: .4byte voicegroup_84549C0
_08075348:
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0807536C
_08075350:
adds r0, r1
bl sub_81DF43C
ldr r1, _08075370
str r0, [r1]
_0807535A:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0807536C: .4byte voicegroup_8453790
_08075370: .4byte 0x0202f79c
thumb_func_end sub_80751C0
thumb_func_start sub_8075374
sub_8075374: @ 8075374
push {lr}
ldr r0, _0807538C
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08075390
bl ClearPokemonCrySongs
movs r0, 0x1
b _08075392
.align 2, 0
_0807538C: .4byte sub_8075408
_08075390:
movs r0, 0
_08075392:
pop {r1}
bx r1
thumb_func_end sub_8075374
thumb_func_start sub_8075398
sub_8075398: @ 8075398
push {lr}
ldr r0, _080753AC
ldr r0, [r0]
bl m4aMPlayStop
bl ClearPokemonCrySongs
pop {r0}
bx r0
.align 2, 0
_080753AC: .4byte 0x0202f79c
thumb_func_end sub_8075398
thumb_func_start sub_80753B0
sub_80753B0: @ 80753B0
push {lr}
ldr r0, _080753C0
ldr r0, [r0]
bl m4aMPlayStop
pop {r0}
bx r0
.align 2, 0
_080753C0: .4byte 0x0202f79c
thumb_func_end sub_80753B0
thumb_func_start sub_80753C4
sub_80753C4: @ 80753C4
push {lr}
ldr r0, _080753DC
ldr r0, [r0]
bl sub_81DF594
cmp r0, 0
bne _080753E0
bl ClearPokemonCrySongs
movs r0, 0
b _080753E2
.align 2, 0
_080753DC: .4byte 0x0202f79c
_080753E0:
movs r0, 0x1
_080753E2:
pop {r1}
bx r1
thumb_func_end sub_80753C4
thumb_func_start sub_80753E8
sub_80753E8: @ 80753E8
push {lr}
ldr r0, _080753FC
ldr r0, [r0]
bl sub_81DF594
cmp r0, 0
bne _08075400
movs r0, 0
b _08075402
.align 2, 0
_080753FC: .4byte 0x0202f79c
_08075400:
movs r0, 0x1
_08075402:
pop {r1}
bx r1
thumb_func_end sub_80753E8
thumb_func_start sub_8075408
sub_8075408: @ 8075408
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0807541C
ldrb r0, [r1]
cmp r0, 0
beq _08075420
subs r0, 0x1
strb r0, [r1]
b _0807543E
.align 2, 0
_0807541C: .4byte 0x0202f7a0
_08075420:
ldr r0, _08075444
ldr r0, [r0]
bl sub_81DF594
cmp r0, 0
bne _0807543E
ldr r0, _08075448
ldr r1, _0807544C
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
adds r0, r4, 0
bl DestroyTask
_0807543E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075444: .4byte 0x0202f79c
_08075448: .4byte 0x03007380
_0807544C: .4byte 0x0000ffff
thumb_func_end sub_8075408
thumb_func_start sub_8075450
sub_8075450: @ 8075450
push {r4,lr}
ldr r4, _08075470
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0807546A
adds r0, r4, 0
movs r1, 0x50
bl CreateTask
_0807546A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075470: .4byte sub_8075408
thumb_func_end sub_8075450
thumb_func_start sub_8075474
sub_8075474: @ 8075474
push {lr}
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _08075490
ldrb r0, [r0]
cmp r0, 0
beq _08075484
movs r1, 0
_08075484:
adds r0, r1, 0
bl m4aSongNumStart
pop {r0}
bx r0
.align 2, 0
_08075490: .4byte 0x03004aec
thumb_func_end sub_8075474
thumb_func_start audio_play
audio_play: @ 8075494
push {lr}
lsls r0, 16
lsrs r0, 16
bl m4aSongNumStart
pop {r0}
bx r0
thumb_func_end audio_play
thumb_func_start audio_play_and_stuff
audio_play_and_stuff: @ 80754A4
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r4, 24
lsrs r4, 24
bl m4aSongNumStart
ldr r6, _080754EC
adds r0, r6, 0
bl m4aMPlayImmInit
ldr r0, _080754F0
mov r8, r0
bl m4aMPlayImmInit
ldr r5, _080754F4
lsls r4, 24
asrs r4, 24
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
mov r0, r8
adds r1, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080754EC: .4byte 0x030073c0
_080754F0: .4byte 0x03007400
_080754F4: .4byte 0x0000ffff
thumb_func_end audio_play_and_stuff
thumb_func_start sub_80754F8
sub_80754F8: @ 80754F8
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r4, 24
lsrs r4, 24
bl m4aSongNumStart
ldr r5, _08075524
adds r0, r5, 0
bl m4aMPlayImmInit
ldr r1, _08075528
lsls r4, 24
asrs r4, 24
adds r0, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08075524: .4byte 0x030073c0
_08075528: .4byte 0x0000ffff
thumb_func_end sub_80754F8
thumb_func_start sub_807552C
sub_807552C: @ 807552C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r4, 24
lsrs r4, 24
bl m4aSongNumStart
ldr r5, _08075558
adds r0, r5, 0
bl m4aMPlayImmInit
ldr r1, _0807555C
lsls r4, 24
asrs r4, 24
adds r0, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08075558: .4byte 0x03007400
_0807555C: .4byte 0x0000ffff
thumb_func_end sub_807552C
thumb_func_start sub_8075560
sub_8075560: @ 8075560
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, _08075584
ldr r5, _08075588
lsls r4, 24
asrs r4, 24
adds r1, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
ldr r0, _0807558C
adds r1, r5, 0
adds r2, r4, 0
bl m4aMPlayPanpotControl
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08075584: .4byte 0x030073c0
_08075588: .4byte 0x0000ffff
_0807558C: .4byte 0x03007400
thumb_func_end sub_8075560
thumb_func_start mplay_has_finished_maybe
mplay_has_finished_maybe: @ 8075590
push {lr}
ldr r0, _080755C0
ldr r1, [r0, 0x4]
movs r2, 0x80
lsls r2, 24
adds r3, r0, 0
cmp r1, 0
bge _080755AA
ldr r0, _080755C4
ldr r0, [r0, 0x4]
ands r0, r2
cmp r0, 0
bne _080755BC
_080755AA:
ldr r1, _080755C8
ldrh r0, [r3, 0x4]
cmp r0, 0
bne _080755CC
ldr r0, _080755C4
ldr r0, [r0, 0x4]
ands r0, r1
cmp r0, 0
bne _080755CC
_080755BC:
movs r0, 0
b _080755CE
.align 2, 0
_080755C0: .4byte 0x030073c0
_080755C4: .4byte 0x03007400
_080755C8: .4byte 0x0000ffff
_080755CC:
movs r0, 0x1
_080755CE:
pop {r1}
bx r1
thumb_func_end mplay_has_finished_maybe
thumb_func_start sub_80755D4
sub_80755D4: @ 80755D4
push {lr}
ldr r0, _080755EC
ldr r1, [r0, 0x4]
cmp r1, 0
blt _080755F4
ldr r0, _080755F0
ands r1, r0
cmp r1, 0
beq _080755F4
movs r0, 0x1
b _080755F6
.align 2, 0
_080755EC: .4byte 0x03007380
_080755F0: .4byte 0x0000ffff
_080755F4:
movs r0, 0
_080755F6:
pop {r1}
bx r1
thumb_func_end sub_80755D4
thumb_func_start sub_80755FC
sub_80755FC: @ 80755FC
push {lr}
ldr r0, _08075614
ldr r1, [r0, 0x4]
cmp r1, 0
blt _0807561C
ldr r0, _08075618
ands r1, r0
cmp r1, 0
beq _0807561C
movs r0, 0x1
b _0807561E
.align 2, 0
_08075614: .4byte 0x03007450
_08075618: .4byte 0x0000ffff
_0807561C:
movs r0, 0
_0807561E:
pop {r1}
bx r1
thumb_func_end sub_80755FC
thumb_func_start sub_8075624
sub_8075624: @ 8075624
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, _080756B8
movs r1, 0
strb r1, [r0]
ldr r0, _080756BC
strb r1, [r0]
ldr r0, _080756C0
strb r1, [r0]
ldr r0, _080756C4
strb r1, [r0]
ldr r0, _080756C8
movs r1, 0
str r1, [r0]
ldr r0, _080756CC
str r1, [r0]
ldr r0, _080756D0
movs r2, 0
strh r1, [r0]
ldr r0, _080756D4
strb r2, [r0]
ldr r4, _080756D8
ldr r5, _080756DC
ldr r6, _080756E0
ldr r7, _080756E4
ldr r0, _080756E8
mov r12, r0
ldr r1, _080756EC
mov r8, r1
ldr r0, _080756F0
mov r9, r0
ldr r1, _080756F4
adds r3, r1, 0
ldr r1, _080756F8
movs r2, 0x7
_0807566E:
ldrh r0, [r1]
orrs r0, r3
strh r0, [r1]
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bge _0807566E
ldr r1, _080756FC
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
_08075684:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _08075684
movs r1, 0
movs r0, 0xFF
strb r0, [r4]
movs r0, 0x1
negs r0, r0
strb r0, [r4, 0x1]
strb r1, [r5]
strb r1, [r6]
movs r0, 0
strh r1, [r7]
mov r1, r12
strb r0, [r1]
mov r1, r8
strb r0, [r1]
mov r1, r9
strb r0, [r1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080756B8: .4byte 0x0202f7b0
_080756BC: .4byte 0x0202f7b1
_080756C0: .4byte 0x0202f7b2
_080756C4: .4byte 0x0202f7b3
_080756C8: .4byte 0x0202f7b4
_080756CC: .4byte 0x0202f7b8
_080756D0: .4byte 0x0202f7bc
_080756D4: .4byte 0x0202f7be
_080756D8: .4byte 0x0202f7c2
_080756DC: .4byte 0x0202f7c4
_080756E0: .4byte 0x0202f7c5
_080756E4: .4byte 0x0202f7c6
_080756E8: .4byte 0x0202f7c8
_080756EC: .4byte 0x0202f7c9
_080756F0: .4byte 0x0202f7d2
_080756F4: .4byte 0x0000ffff
_080756F8: .4byte 0x03004b10
_080756FC: .4byte 0x03004b00
thumb_func_end sub_8075624
thumb_func_start move_anim_start_t1
move_anim_start_t1: @ 8075700
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r2, _08075724
ldr r0, _08075728
ldrb r0, [r0]
strb r0, [r2]
ldr r2, _0807572C
ldr r0, _08075730
ldrb r0, [r0]
strb r0, [r2]
ldr r0, _08075734
movs r2, 0x1
bl move_something
pop {r0}
bx r0
.align 2, 0
_08075724: .4byte 0x0202f7c8
_08075728: .4byte 0x02024c07
_0807572C: .4byte 0x0202f7c9
_08075730: .4byte 0x02024c08
_08075734: .4byte gBattleAnims_Moves
thumb_func_end move_anim_start_t1
thumb_func_start move_something
move_something: @ 8075738
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
str r0, [sp]
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 24
lsrs r2, 24
mov r9, r2
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080757D8
bl sub_8079E24
movs r0, 0
bl sub_8043EB4
movs r4, 0
mov r0, r8
lsls r0, 2
mov r10, r0
ldr r6, _0807578C
movs r7, 0x64
ldr r5, _08075790
_08075774:
lsls r0, r4, 24
lsrs r0, 24
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08075798
ldrh r0, [r6]
muls r0, r7
ldr r1, _08075794
b _0807579E
.align 2, 0
_0807578C: .4byte 0x02024a6a
_08075790: .4byte 0x0202f7ca
_08075794: .4byte 0x030045c0
_08075798:
ldrh r0, [r6]
muls r0, r7
ldr r1, _080757C0
_0807579E:
adds r0, r1
movs r1, 0xB
bl PokemonGetField
strh r0, [r5]
adds r6, 0x2
adds r5, 0x2
adds r4, 0x1
cmp r4, 0x3
ble _08075774
ldr r3, _080757C4
ldr r5, _080757C8
ldr r1, _080757CC
mov r12, r1
ldr r7, _080757D0
ldr r6, _080757D4
b _080757FC
.align 2, 0
_080757C0: .4byte 0x03004360
_080757C4: .4byte 0x0202f7c6
_080757C8: .4byte 0x0202f7c2
_080757CC: .4byte 0x0202f7b1
_080757D0: .4byte 0x0202f7ac
_080757D4: .4byte sub_80759D0
_080757D8:
ldr r3, _08075808
ldr r5, _0807580C
mov r0, r8
lsls r0, 2
mov r10, r0
ldr r1, _08075810
mov r12, r1
ldr r7, _08075814
ldr r6, _08075818
ldr r2, _0807581C
ldr r1, _08075820
movs r4, 0x3
_080757F0:
ldrh r0, [r2]
strh r0, [r1]
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _080757F0
_080757FC:
mov r0, r9
cmp r0, 0
bne _08075824
strh r0, [r3]
b _08075828
.align 2, 0
_08075808: .4byte 0x0202f7c6
_0807580C: .4byte 0x0202f7c2
_08075810: .4byte 0x0202f7b1
_08075814: .4byte 0x0202f7ac
_08075818: .4byte sub_80759D0
_0807581C: .4byte 0x02019348
_08075820: .4byte 0x0202f7ca
_08075824:
mov r1, r8
strh r1, [r3]
_08075828:
ldr r1, _0807587C
movs r2, 0
adds r0, r1, 0
adds r0, 0xE
_08075830:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _08075830
movs r0, 0xFF
strb r0, [r5]
movs r0, 0x1
negs r0, r0
strb r0, [r5, 0x1]
ldr r0, [sp]
add r0, r10
ldr r0, [r0]
ldr r1, _08075880
str r0, [r1]
movs r0, 0x1
mov r1, r12
strb r0, [r1]
movs r0, 0
ldr r1, _08075884
strb r0, [r1]
str r6, [r7]
ldr r0, _08075888
adds r2, r0, 0
ldr r1, _0807588C
movs r4, 0x7
_08075862:
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _08075862
mov r1, r9
cmp r1, 0
beq _080758AE
movs r4, 0
ldr r2, _08075890
b _08075896
.align 2, 0
_0807587C: .4byte 0x03004b00
_08075880: .4byte 0x0202f7a4
_08075884: .4byte 0x0202f7b0
_08075888: .4byte 0x0000ffff
_0807588C: .4byte 0x03004b10
_08075890: .4byte gUnknown_081C7160
_08075894:
adds r4, 0x1
_08075896:
lsls r0, r4, 1
adds r0, r2
ldrh r0, [r0]
ldr r1, _080758D0
cmp r0, r1
beq _080758AE
cmp r8, r0
bne _08075894
ldr r0, _080758D4
movs r2, 0x80
bl m4aMPlayVolumeControl
_080758AE:
ldr r0, _080758D8
movs r1, 0
strh r1, [r0]
ldr r0, _080758DC
strh r1, [r0]
ldr r0, _080758E0
strh r1, [r0]
ldr r0, _080758E4
strh r1, [r0]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080758D0: .4byte 0x0000ffff
_080758D4: .4byte 0x03007380
_080758D8: .4byte 0x030042c4
_080758DC: .4byte 0x03004240
_080758E0: .4byte 0x03004200
_080758E4: .4byte 0x03004244
thumb_func_end move_something
thumb_func_start move_anim_8072740
move_anim_8072740: @ 80758E8
push {r4,lr}
adds r4, r0, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
ldr r1, _08075904
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075904: .4byte 0x0202f7b2
thumb_func_end move_anim_8072740
thumb_func_start move_anim_task_del
move_anim_task_del: @ 8075908
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r1, _08075920
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08075920: .4byte 0x0202f7b2
thumb_func_end move_anim_task_del
thumb_func_start move_anim_related_task_del
move_anim_related_task_del: @ 8075924
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
ldr r1, _0807593C
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0807593C: .4byte 0x0202f7b3
thumb_func_end move_anim_related_task_del
thumb_func_start sub_8075940
sub_8075940: @ 8075940
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r4, _08075958
ldr r1, _0807595C
_0807594C:
ldrh r0, [r1]
cmp r0, r4
bne _08075960
strh r3, [r1]
b _08075968
.align 2, 0
_08075958: .4byte 0x0000ffff
_0807595C: .4byte 0x03004b10
_08075960:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _0807594C
_08075968:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8075940
thumb_func_start sub_8075970
sub_8075970: @ 8075970
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r0, _0807598C
adds r4, r0, 0
ldr r1, _08075990
_0807597E:
ldrh r0, [r1]
cmp r0, r3
bne _08075994
orrs r0, r4
strh r0, [r1]
b _0807599C
.align 2, 0
_0807598C: .4byte 0x0000ffff
_08075990: .4byte 0x03004b10
_08075994:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x7
ble _0807597E
_0807599C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8075970
thumb_func_start move_anim_waiter
move_anim_waiter: @ 80759A4
push {lr}
ldr r2, _080759BC
ldrb r1, [r2]
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0
bgt _080759C8
ldr r0, _080759C0
ldr r1, _080759C4
str r1, [r0]
movs r0, 0
b _080759CA
.align 2, 0
_080759BC: .4byte 0x0202f7b0
_080759C0: .4byte 0x0202f7ac
_080759C4: .4byte sub_80759D0
_080759C8:
subs r0, r1, 0x1
_080759CA:
strb r0, [r2]
pop {r0}
bx r0
thumb_func_end move_anim_waiter
thumb_func_start sub_80759D0
sub_80759D0: @ 80759D0
push {r4,lr}
ldr r4, _08075A00
_080759D4:
ldr r0, _08075A04
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, 2
adds r0, r4
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08075A08
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r0, 0
bne _080759F8
ldr r0, _08075A0C
ldrb r0, [r0]
cmp r0, 0
bne _080759D4
_080759F8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075A00: .4byte gUnknown_0837F4B8
_08075A04: .4byte 0x0202f7a4
_08075A08: .4byte 0x0202f7b0
_08075A0C: .4byte 0x0202f7b1
thumb_func_end sub_80759D0
thumb_func_start ma00_load_graphics
ma00_load_graphics: @ 8075A10
push {r4-r6,lr}
ldr r6, _08075A5C
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
lsls r5, r4, 3
ldr r0, _08075A60
adds r0, r5, r0
bl LoadCompressedObjectPic
ldr r0, _08075A64
adds r5, r0
adds r0, r5, 0
bl LoadCompressedObjectPalette
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
ldr r0, _08075A68
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
bl sub_8075940
ldr r1, _08075A6C
movs r0, 0x1
strb r0, [r1]
ldr r1, _08075A70
ldr r0, _08075A74
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08075A5C: .4byte 0x0202f7a4
_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
_08075A68: .4byte 0xffffd8f0
_08075A6C: .4byte 0x0202f7b0
_08075A70: .4byte 0x0202f7ac
_08075A74: .4byte move_anim_waiter
thumb_func_end ma00_load_graphics
thumb_func_start ma01_080728D0
ma01_080728D0: @ 8075A78
push {r4-r6,lr}
ldr r6, _08075AB8
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
ldr r1, _08075ABC
ldr r0, _08075AC0
adds r4, r0
lsls r0, r4, 3
adds r0, r1
ldrh r5, [r0, 0x6]
adds r0, r5, 0
bl FreeSpriteTilesByTag
adds r0, r5, 0
bl FreeSpritePaletteByTag
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
bl sub_8075970
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08075AB8: .4byte 0x0202f7a4
_08075ABC: .4byte gBattleAnimPicTable
_08075AC0: .4byte 0xffffd8f0
thumb_func_end ma01_080728D0
thumb_func_start ma02_instanciate_template
ma02_instanciate_template: @ 8075AC4
push {r4-r7,lr}
ldr r5, _08075B2C
ldr r1, [r5]
adds r3, r1, 0x1
str r3, [r5]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r7, r2, r0
adds r0, r1, 0x5
str r0, [r5]
ldrb r4, [r1, 0x5]
adds r0, r1, 0x6
str r0, [r5]
ldrb r0, [r1, 0x6]
adds r1, 0x7
str r1, [r5]
cmp r0, 0
beq _08075B14
adds r6, r5, 0
ldr r5, _08075B30
adds r3, r0, 0
_08075AFC:
ldr r2, [r6]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r5]
adds r2, 0x2
str r2, [r6]
adds r5, 0x2
subs r3, 0x1
cmp r3, 0
bne _08075AFC
_08075B14:
movs r0, 0x80
ands r0, r4
cmp r0, 0
beq _08075B44
movs r0, 0x80
eors r4, r0
cmp r4, 0x3F
bls _08075B34
adds r0, r4, 0
subs r0, 0x40
b _08075B36
.align 2, 0
_08075B2C: .4byte 0x0202f7a4
_08075B30: .4byte 0x03004b00
_08075B34:
negs r0, r4
_08075B36:
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08075B40
b _08075B56
.align 2, 0
_08075B40: .4byte 0x0202f7c9
_08075B44:
cmp r4, 0x3F
bls _08075B4E
adds r0, r4, 0
subs r0, 0x40
b _08075B50
_08075B4E:
negs r0, r4
_08075B50:
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08075BAC
_08075B56:
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 24
asrs r1, 24
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
lsls r0, r6, 16
asrs r0, 16
cmp r0, 0x2
bgt _08075B74
movs r6, 0x3
_08075B74:
ldr r5, _08075BB0
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
lsls r3, r6, 24
lsrs r3, 24
adds r0, r7, 0
adds r1, r4, 0
bl CreateSpriteAndAnimate
ldr r1, _08075BB4
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08075BAC: .4byte 0x0202f7c8
_08075BB0: .4byte 0x0202f7c9
_08075BB4: .4byte 0x0202f7b2
thumb_func_end ma02_instanciate_template
thumb_func_start sub_8075BB8
sub_8075BB8: @ 8075BB8
push {r4-r7,lr}
ldr r4, _08075C28
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r6, r2, r0
adds r0, r1, 0x5
str r0, [r4]
ldrb r7, [r1, 0x5]
adds r0, r1, 0x6
str r0, [r4]
ldrb r0, [r1, 0x6]
adds r1, 0x7
str r1, [r4]
cmp r0, 0
beq _08075C08
adds r5, r4, 0
ldr r4, _08075C2C
adds r3, r0, 0
_08075BF0:
ldr r2, [r5]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r4]
adds r2, 0x2
str r2, [r5]
adds r4, 0x2
subs r3, 0x1
cmp r3, 0
bne _08075BF0
_08075C08:
adds r0, r6, 0
adds r1, r7, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r6
ldr r1, _08075C30
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08075C28: .4byte 0x0202f7a4
_08075C2C: .4byte 0x03004b00
_08075C30: .4byte 0x0202f7b2
thumb_func_end sub_8075BB8
thumb_func_start ma04_wait_countdown
ma04_wait_countdown: @ 8075C34
push {r4,lr}
ldr r1, _08075C64
ldr r0, [r1]
adds r2, r0, 0x1
str r2, [r1]
ldr r3, _08075C68
ldrb r0, [r0, 0x1]
strb r0, [r3]
lsls r0, 24
cmp r0, 0
bne _08075C52
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
strb r0, [r3]
_08075C52:
adds r0, r2, 0x1
str r0, [r1]
ldr r1, _08075C6C
ldr r0, _08075C70
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075C64: .4byte 0x0202f7a4
_08075C68: .4byte 0x0202f7b0
_08075C6C: .4byte 0x0202f7ac
_08075C70: .4byte move_anim_waiter
thumb_func_end ma04_wait_countdown
thumb_func_start sub_8075C74
sub_8075C74: @ 8075C74
push {lr}
ldr r0, _08075C8C
ldrb r2, [r0]
cmp r2, 0
bne _08075C98
ldr r0, _08075C90
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
ldr r0, _08075C94
strb r2, [r0]
b _08075C9E
.align 2, 0
_08075C8C: .4byte 0x0202f7b2
_08075C90: .4byte 0x0202f7a4
_08075C94: .4byte 0x0202f7b0
_08075C98:
ldr r1, _08075CA4
movs r0, 0x1
strb r0, [r1]
_08075C9E:
pop {r0}
bx r0
.align 2, 0
_08075CA4: .4byte 0x0202f7b0
thumb_func_end sub_8075C74
thumb_func_start nullsub_53
nullsub_53: @ 8075CA8
bx lr
thumb_func_end nullsub_53
thumb_func_start nullsub_88
nullsub_88: @ 8075CAC
bx lr
thumb_func_end nullsub_88
thumb_func_start sub_8075CB0
sub_8075CB0: @ 8075CB0
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0
mov r8, r0
ldr r0, _08075CE0
ldrb r0, [r0]
cmp r0, 0
bne _08075CD8
ldr r0, _08075CE4
ldrb r0, [r0]
cmp r0, 0
bne _08075CD8
ldr r1, _08075CE8
ldrb r0, [r1]
cmp r0, 0xFF
bne _08075CD8
ldrb r0, [r1, 0x1]
cmp r0, 0xFF
beq _08075CF0
_08075CD8:
ldr r1, _08075CEC
movs r0, 0
strh r0, [r1]
b _08075D0A
.align 2, 0
_08075CE0: .4byte 0x0202f7b2
_08075CE4: .4byte 0x0202f7b3
_08075CE8: .4byte 0x0202f7c2
_08075CEC: .4byte 0x03004af0
_08075CF0:
bl mplay_has_finished_maybe
lsls r0, 24
cmp r0, 0
beq _08075D28
ldr r1, _08075D14
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5A
bhi _08075D1C
_08075D0A:
ldr r1, _08075D18
movs r0, 0x1
strb r0, [r1]
b _08075D8E
.align 2, 0
_08075D14: .4byte 0x03004af0
_08075D18: .4byte 0x0202f7b0
_08075D1C:
ldr r0, _08075D98
bl m4aMPlayStop
ldr r0, _08075D9C
bl m4aMPlayStop
_08075D28:
ldr r1, _08075DA0
movs r0, 0
strh r0, [r1]
movs r5, 0
ldr r7, _08075DA4
ldr r6, _08075DA8
ldr r4, _08075DAC
_08075D36:
ldrh r0, [r4]
cmp r0, r7
beq _08075D5A
lsls r0, 3
adds r0, r6
ldrh r0, [r0, 0x6]
bl FreeSpriteTilesByTag
ldrh r0, [r4]
lsls r0, 3
adds r0, r6
ldrh r0, [r0, 0x6]
bl FreeSpritePaletteByTag
ldrh r1, [r4]
adds r0, r7, 0
orrs r0, r1
strh r0, [r4]
_08075D5A:
adds r4, 0x2
adds r5, 0x1
cmp r5, 0x7
ble _08075D36
mov r1, r8
cmp r1, 0
bne _08075D8E
ldr r0, _08075DB0
ldr r1, _08075DA4
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08075D88
bl sub_8079E24
movs r0, 0x1
bl sub_8043EB4
_08075D88:
ldr r0, _08075DB4
mov r1, r8
strb r1, [r0]
_08075D8E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08075D98: .4byte 0x030073c0
_08075D9C: .4byte 0x03007400
_08075DA0: .4byte 0x03004af0
_08075DA4: .4byte 0x0000ffff
_08075DA8: .4byte gBattleAnimPicTable
_08075DAC: .4byte 0x03004b10
_08075DB0: .4byte 0x03007380
_08075DB4: .4byte 0x0202f7b1
thumb_func_end sub_8075CB0
thumb_func_start ma09_play_sound
ma09_play_sound: @ 8075DB8
push {r4,lr}
ldr r4, _08075DDC
ldr r0, [r4]
adds r1, r0, 0x1
str r1, [r4]
ldrb r0, [r0, 0x1]
ldrb r1, [r1, 0x1]
lsls r1, 8
orrs r0, r1
bl audio_play
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08075DDC: .4byte 0x0202f7a4
thumb_func_end ma09_play_sound
thumb_func_start sub_8075DE0
sub_8075DE0: @ 8075DE0
push {r4-r7,lr}
ldr r0, _08075DF4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r6, [r2, 0x1]
cmp r6, 0
bne _08075DF8
movs r6, 0x2
b _08075E02
.align 2, 0
_08075DF4: .4byte 0x0202f7a4
_08075DF8:
cmp r6, 0x1
bne _08075DFE
movs r6, 0x3
_08075DFE:
cmp r6, 0
beq _08075E06
_08075E02:
cmp r6, 0x2
bne _08075E10
_08075E06:
ldr r0, _08075E0C
b _08075E12
.align 2, 0
_08075E0C: .4byte 0x0202f7c8
_08075E10:
ldr r0, _08075E44
_08075E12:
ldrb r5, [r0]
adds r0, r5, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08075ECE
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08075E3E
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08075E48
_08075E3E:
movs r7, 0
b _08075E4A
.align 2, 0
_08075E44: .4byte 0x0202f7c9
_08075E48:
movs r7, 0x1
_08075E4A:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8076034
ldr r0, _08075E98
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08075E9C
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08075EA0
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r2, r0, r1
strh r4, [r2, 0x8]
ldr r1, _08075EA4
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x24]
ldrh r4, [r0, 0x20]
adds r1, r4
strh r1, [r2, 0xA]
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
strh r1, [r2, 0xC]
cmp r7, 0
bne _08075EB0
ldr r0, _08075EA8
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08075EAC
b _08075EB8
.align 2, 0
_08075E98: .4byte 0x02024be0
_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
_08075EA0: .4byte 0x03004b20
_08075EA4: .4byte 0x02020004
_08075EA8: .4byte 0x030042c0
_08075EAC: .4byte 0x030041b4
_08075EB0:
ldr r0, _08075F04
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08075F08
_08075EB8:
ldrh r0, [r0]
strh r0, [r2, 0x10]
ldr r0, _08075F0C
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r7, [r1, 0x12]
strh r5, [r1, 0x14]
ldr r0, _08075F10
strb r3, [r0]
_08075ECE:
movs r0, 0x2
eors r5, r0
cmp r6, 0x1
bls _08075F9A
adds r0, r5, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08075F9A
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08075F00
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08075F14
_08075F00:
movs r7, 0
b _08075F16
.align 2, 0
_08075F04: .4byte 0x03004288
_08075F08: .4byte 0x03004280
_08075F0C: .4byte 0x03004b20
_08075F10: .4byte 0x0202f7c2
_08075F14:
movs r7, 0x1
_08075F16:
adds r0, r5, 0
adds r1, r7, 0
bl sub_8076034
ldr r0, _08075F64
adds r0, r5, r0
ldrb r4, [r0]
ldr r0, _08075F68
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08075F6C
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
adds r2, r0, r1
strh r4, [r2, 0x8]
ldr r1, _08075F70
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x24]
ldrh r4, [r0, 0x20]
adds r1, r4
strh r1, [r2, 0xA]
ldrh r1, [r0, 0x26]
ldrh r0, [r0, 0x22]
adds r1, r0
strh r1, [r2, 0xC]
cmp r7, 0
bne _08075F7C
ldr r0, _08075F74
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08075F78
b _08075F84
.align 2, 0
_08075F64: .4byte 0x02024be0
_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
_08075F6C: .4byte 0x03004b20
_08075F70: .4byte 0x02020004
_08075F74: .4byte 0x030042c0
_08075F78: .4byte 0x030041b4
_08075F7C:
ldr r0, _08075FA8
ldrh r0, [r0]
strh r0, [r2, 0xE]
ldr r0, _08075FAC
_08075F84:
ldrh r0, [r0]
strh r0, [r2, 0x10]
ldr r0, _08075FB0
lsls r1, r3, 2
adds r1, r3
lsls r1, 3
adds r1, r0
strh r7, [r1, 0x12]
strh r5, [r1, 0x14]
ldr r0, _08075FB4
strb r3, [r0, 0x1]
_08075F9A:
ldr r1, _08075FB8
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08075FA8: .4byte 0x03004288
_08075FAC: .4byte 0x03004280
_08075FB0: .4byte 0x03004b20
_08075FB4: .4byte 0x0202f7c2
_08075FB8: .4byte 0x0202f7a4
thumb_func_end sub_8075DE0
thumb_func_start b_side_obj__get_some_boolean
b_side_obj__get_some_boolean: @ 8075FBC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08075FDC
ldr r0, _08075FD8
ldrb r0, [r0]
cmp r4, r0
beq _0807601C
b _0807602C
.align 2, 0
_08075FD8: .4byte 0x0202f7c8
_08075FDC:
adds r0, r4, 0
bl sub_8078874
lsls r0, 24
cmp r0, 0
beq _0807602C
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _0807601C
lsls r0, r5, 2
ldr r1, _08076020
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0807601C
ldr r2, _08076024
ldr r0, _08076028
adds r0, r5, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _0807602C
_0807601C:
movs r0, 0x1
b _0807602E
.align 2, 0
_08076020: .4byte 0x02017800
_08076024: .4byte 0x02020004
_08076028: .4byte 0x02024be0
_0807602C:
movs r0, 0
_0807602E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end b_side_obj__get_some_boolean
thumb_func_start sub_8076034
sub_8076034: @ 8076034
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 24
cmp r1, 0
beq _0807604E
b _08076220
_0807604E:
add r4, sp, 0x10
adds r0, r4, 0
bl sub_8078914
ldr r2, [sp, 0x10]
movs r3, 0x80
lsls r3, 6
add r6, sp, 0x1C
add r0, sp, 0x20
mov r10, r0
mov r1, r9
lsls r1, 5
str r1, [sp, 0x24]
movs r5, 0
ldr r1, _08076194
movs r4, 0x80
lsls r4, 5
mov r12, r6
ldr r7, _08076198
movs r0, 0x85
lsls r0, 24
mov r8, r0
_0807607A:
str r5, [sp, 0x1C]
mov r0, r12
str r0, [r1]
str r2, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _0807607A
str r5, [sp, 0x1C]
str r6, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
mov r2, r8
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0xC
movs r1, 0
strb r1, [r0]
strb r1, [r0]
ldr r1, [sp, 0x14]
movs r0, 0xFF
mov r3, r10
strh r0, [r3]
ldr r0, _08076194
str r3, [r0]
str r1, [r0, 0x4]
ldr r1, _0807619C
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
ldr r2, _080761A0
ldrb r1, [r2]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
movs r1, 0x40
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r2, 0x1]
ldr r0, _080761A4
add r0, r9
ldrb r4, [r0]
ldr r5, _080761A8
ldr r0, _080761AC
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x24]
ldrh r1, [r1, 0x20]
adds r0, r1
negs r0, r0
adds r0, 0x20
strh r0, [r5]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _0807611C
ldr r0, _080761B0
ldrh r0, [r0]
bl sub_80AEB1C
lsls r0, 24
cmp r0, 0
beq _0807611C
ldrh r0, [r5]
subs r0, 0x1
strh r0, [r5]
_0807611C:
ldr r3, _080761B4
ldr r2, _080761AC
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
negs r0, r0
adds r0, 0x20
strh r0, [r3]
ldr r0, _080761A4
add r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r1, _080761B8
ldr r0, _080761A8
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldrh r0, [r3]
strh r0, [r1]
ldr r4, _080761BC
ldr r0, [sp, 0x24]
adds r4, r0, r4
mov r2, sp
ldrb r1, [r2, 0x18]
lsls r1, 4
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
mov r3, sp
ldrb r0, [r3, 0x18]
lsls r0, 5
movs r1, 0xA0
lsls r1, 19
adds r0, r1
ldr r1, _08076194
str r4, [r1]
str r0, [r1, 0x4]
ldr r0, _080761C0
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080761C4
movs r2, 0
b _080761CE
.align 2, 0
_08076194: .4byte 0x040000d4
_08076198: .4byte 0x85000400
_0807619C: .4byte 0x81000800
_080761A0: .4byte REG_BG1CNT
_080761A4: .4byte 0x02024be0
_080761A8: .4byte 0x030042c0
_080761AC: .4byte 0x02020004
_080761B0: .4byte 0x02019348
_080761B4: .4byte 0x030041b4
_080761B8: .4byte REG_BG1HOFS
_080761BC: .4byte 0x0202ecc8
_080761C0: .4byte 0x84000008
_080761C4:
mov r0, r9
bl battle_get_per_side_status
lsls r0, 24
lsrs r2, r0, 24
_080761CE:
mov r0, sp
ldrb r3, [r0, 0x18]
ldr r0, [sp, 0x10]
lsls r0, 16
lsrs r0, 16
str r0, [sp]
ldr r4, [sp, 0x14]
movs r1, 0xFA
lsls r1, 24
adds r0, r4, r1
cmp r0, 0
bge _080761EA
ldr r1, _08076218
adds r0, r4, r1
_080761EA:
asrs r0, 11
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
ldr r0, _0807621C
ldr r0, [r0]
lsls r0, 28
lsrs r0, 30
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
bl sub_80E4EF8
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08076210
b _08076338
_08076210:
bl sub_8076380
b _08076338
.align 2, 0
_08076218: .4byte 0xfa0007ff
_0807621C: .4byte REG_BG1CNT
_08076220:
ldr r3, _08076348
movs r5, 0x80
lsls r5, 6
add r6, sp, 0x1C
ldr r2, _0807634C
mov r10, r2
mov r0, r9
lsls r0, 5
str r0, [sp, 0x24]
movs r4, 0
ldr r1, _08076350
movs r2, 0x80
lsls r2, 5
mov r12, r6
ldr r7, _08076354
movs r0, 0x85
lsls r0, 24
mov r8, r0
_08076244:
str r4, [sp, 0x1C]
mov r0, r12
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r2
subs r5, r2
cmp r5, r2
bhi _08076244
str r4, [sp, 0x1C]
str r6, [r1]
str r3, [r1, 0x4]
lsrs r0, r5, 2
mov r2, r8
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add r0, sp, 0xC
movs r1, 0
strb r1, [r0]
strb r1, [r0]
ldr r1, _08076358
movs r0, 0
str r0, [sp, 0x1C]
ldr r5, _08076350
str r6, [r5]
str r1, [r5, 0x4]
ldr r0, _0807635C
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
ldr r6, _08076360
ldrb r1, [r6]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r6]
ldrb r1, [r6, 0x1]
movs r0, 0x3F
ands r0, r1
movs r1, 0x40
orrs r0, r1
strb r0, [r6, 0x1]
ldrb r1, [r6, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r6, 0x1]
ldr r2, _08076364
add r2, r9
ldrb r4, [r2]
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
add r1, r10
ldrh r0, [r1, 0x24]
ldrh r3, [r1, 0x20]
adds r0, r3
negs r0, r0
adds r0, 0x20
ldr r3, _08076368
strh r0, [r3]
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
negs r0, r0
adds r0, 0x20
ldr r1, _0807636C
strh r0, [r1]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r1, _08076370
ldrh r0, [r3]
strh r0, [r1]
adds r1, 0x2
ldr r2, _0807636C
ldrh r0, [r2]
strh r0, [r1]
ldr r3, [sp, 0x24]
ldr r0, _08076374
adds r4, r3, r0
adds r0, r4, 0
movs r1, 0x90
movs r2, 0x20
bl LoadPalette
ldr r0, _08076378
str r4, [r5]
str r0, [r5, 0x4]
ldr r0, _0807637C
str r0, [r5, 0x8]
ldr r0, [r5, 0x8]
mov r0, r9
bl battle_get_per_side_status
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r0, 0xC0
lsls r0, 7
str r0, [sp]
movs r0, 0x1E
str r0, [sp, 0x4]
ldr r0, [r6]
lsls r0, 28
lsrs r0, 30
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r3, 0x9
bl sub_80E4EF8
_08076338:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076348: .4byte 0x06006000
_0807634C: .4byte 0x02020004
_08076350: .4byte 0x040000d4
_08076354: .4byte 0x85000400
_08076358: .4byte 0x0600f000
_0807635C: .4byte 0x85000200
_08076360: .4byte REG_BG2CNT
_08076364: .4byte 0x02024be0
_08076368: .4byte 0x03004288
_0807636C: .4byte 0x03004280
_08076370: .4byte REG_BG2HOFS
_08076374: .4byte 0x0202ecc8
_08076378: .4byte 0x05000120
_0807637C: .4byte 0x84000008
thumb_func_end sub_8076034
thumb_func_start sub_8076380
sub_8076380: @ 8076380
push {r4-r7,lr}
sub sp, 0xC
ldr r0, _080763F8
ldrh r0, [r0]
bl sub_80AEB1C
lsls r0, 24
cmp r0, 0
beq _080763EE
mov r0, sp
bl sub_8078914
ldr r6, [sp, 0x4]
movs r5, 0
movs r0, 0x7
mov r12, r0
movs r7, 0
_080763A2:
movs r4, 0
adds r3, r7, r6
mov r1, r12
lsls r0, r1, 1
adds r2, r0, r6
_080763AC:
ldrh r1, [r3]
ldrh r0, [r2]
strh r0, [r3]
strh r1, [r2]
adds r3, 0x2
subs r2, 0x2
adds r4, 0x1
cmp r4, 0x3
ble _080763AC
movs r0, 0x20
add r12, r0
adds r7, 0x40
adds r5, 0x1
cmp r5, 0x7
ble _080763A2
movs r5, 0
movs r1, 0x80
lsls r1, 3
adds r3, r1, 0
_080763D2:
adds r2, r5, 0x1
lsls r0, r5, 6
adds r1, r0, r6
movs r4, 0x7
_080763DA:
ldrh r0, [r1]
eors r0, r3
strh r0, [r1]
adds r1, 0x2
subs r4, 0x1
cmp r4, 0
bge _080763DA
adds r5, r2, 0
cmp r5, 0x7
ble _080763D2
_080763EE:
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080763F8: .4byte 0x02019348
thumb_func_end sub_8076380
thumb_func_start sub_80763FC
sub_80763FC: @ 80763FC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r12, r1
adds r7, r2, 0
lsls r0, 16
lsrs r6, r0, 16
lsls r3, 24
movs r0, 0x40
mov r9, r0
cmp r3, 0
bne _0807641A
movs r1, 0x20
mov r9, r1
_0807641A:
lsls r0, r6, 28
lsrs r6, r0, 16
movs r0, 0
cmp r0, r9
bcs _08076452
ldr r1, _08076460
mov r8, r1
_08076428:
movs r3, 0
adds r5, r0, 0x1
lsls r4, r0, 5
_0807642E:
adds r1, r4, r3
lsls r1, 1
add r1, r12
ldrh r2, [r1]
mov r0, r8
ands r0, r2
orrs r0, r6
adds r0, r7
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1F
bls _0807642E
lsls r0, r5, 24
lsrs r0, 24
cmp r0, r9
bcc _08076428
_08076452:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076460: .4byte 0x00000fff
thumb_func_end sub_80763FC
thumb_func_start sub_8076464
sub_8076464: @ 8076464
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
add r5, sp, 0x4
adds r0, r5, 0
bl sub_8078914
cmp r4, 0
beq _0807648C
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080764F0
_0807648C:
ldr r2, [sp, 0x4]
movs r3, 0x80
lsls r3, 6
add r5, sp, 0x10
ldr r0, _080764E0
mov r9, r0
ldr r0, _080764E4
mov r10, r0
movs r6, 0
ldr r1, _080764E8
movs r4, 0x80
lsls r4, 5
mov r12, r5
ldr r7, _080764EC
movs r0, 0x85
lsls r0, 24
mov r8, r0
_080764AE:
str r6, [sp, 0x10]
mov r0, r12
str r0, [r1]
str r2, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _080764AE
str r6, [sp, 0x10]
str r5, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
mov r2, r8
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
mov r0, sp
movs r1, 0
strb r1, [r0]
strb r1, [r0]
ldr r1, [sp, 0x8]
b _08076540
.align 2, 0
_080764E0: .4byte 0x030042c0
_080764E4: .4byte 0x030041b4
_080764E8: .4byte 0x040000d4
_080764EC: .4byte 0x85000400
_080764F0:
ldr r2, _08076568
movs r3, 0x80
lsls r3, 6
add r5, sp, 0x10
ldr r0, _0807656C
mov r9, r0
ldr r0, _08076570
mov r10, r0
movs r6, 0
ldr r1, _08076574
movs r4, 0x80
lsls r4, 5
mov r12, r5
ldr r7, _08076578
movs r0, 0x85
lsls r0, 24
mov r8, r0
_08076512:
str r6, [sp, 0x10]
mov r0, r12
str r0, [r1]
str r2, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r4
subs r3, r4
cmp r3, r4
bhi _08076512
str r6, [sp, 0x10]
str r5, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 2
mov r2, r8
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
mov r0, sp
movs r1, 0
strb r1, [r0]
strb r1, [r0]
ldr r1, _0807657C
_08076540:
movs r2, 0
str r2, [sp, 0x10]
ldr r0, _08076574
str r5, [r0]
str r1, [r0, 0x4]
ldr r1, _08076580
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
mov r0, r9
strh r2, [r0]
mov r0, r10
strh r2, [r0]
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076568: .4byte 0x06006000
_0807656C: .4byte 0x03004288
_08076570: .4byte 0x03004280
_08076574: .4byte 0x040000d4
_08076578: .4byte 0x85000400
_0807657C: .4byte 0x0600f000
_08076580: .4byte 0x85000200
thumb_func_end sub_8076464
thumb_func_start task_pA_ma0A_obj_to_bg_pal
task_pA_ma0A_obj_to_bg_pal: @ 8076584
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
ldr r2, _080765FC
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r5, r1, r2
ldrb r4, [r5, 0x8]
ldrb r6, [r5, 0x14]
mov r0, sp
bl sub_8078914
ldr r0, _08076600
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r2, [r1, 0x24]
ldrh r0, [r1, 0x20]
adds r2, r0
ldrh r0, [r5, 0xA]
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
ldrh r2, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r2, r1
ldrh r0, [r5, 0xC]
subs r0, r2
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x12
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08076614
ldr r1, _08076604
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
ldr r1, _08076608
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
adds r0, r5
strh r0, [r1]
lsls r2, r6, 5
ldr r1, _0807660C
adds r2, r1
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 5
ldr r3, _08076610
adds r1, r3
adds r0, r1
b _08076634
.align 2, 0
_080765FC: .4byte 0x03004b20
_08076600: .4byte 0x02020004
_08076604: .4byte 0x030042c0
_08076608: .4byte 0x030041b4
_0807660C: .4byte 0x0202f0c8
_08076610: .4byte 0xfffffe00
_08076614:
ldr r1, _08076648
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
ldr r1, _0807664C
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
adds r0, r5
strh r0, [r1]
lsls r2, r6, 5
ldr r0, _08076650
adds r2, r0
subs r0, 0xE0
_08076634:
ldr r1, _08076654
str r2, [r1]
str r0, [r1, 0x4]
ldr r0, _08076658
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08076648: .4byte 0x03004288
_0807664C: .4byte 0x03004280
_08076650: .4byte 0x0202f0c8
_08076654: .4byte 0x040000d4
_08076658: .4byte 0x84000008
thumb_func_end task_pA_ma0A_obj_to_bg_pal
thumb_func_start ma0B_0807324C
ma0B_0807324C: @ 807665C
push {r4,r5,lr}
ldr r0, _08076670
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r4, [r2, 0x1]
cmp r4, 0
bne _08076674
movs r4, 0x2
b _0807667E
.align 2, 0
_08076670: .4byte 0x0202f7a4
_08076674:
cmp r4, 0x1
bne _0807667A
movs r4, 0x3
_0807667A:
cmp r4, 0
beq _08076682
_0807667E:
cmp r4, 0x2
bne _0807668C
_08076682:
ldr r0, _08076688
b _0807668E
.align 2, 0
_08076688: .4byte 0x0202f7c8
_0807668C:
ldr r0, _080766E4
_0807668E:
ldrb r5, [r0]
ldr r3, _080766E8
ldrb r0, [r3]
cmp r0, 0xFF
beq _080766B4
ldr r2, _080766EC
ldr r0, _080766F0
adds r0, r5, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_080766B4:
cmp r4, 0x1
bls _080766F4
ldrb r0, [r3, 0x1]
cmp r0, 0xFF
beq _080766F4
ldr r3, _080766EC
ldr r2, _080766F0
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
b _080766F6
.align 2, 0
_080766E4: .4byte 0x0202f7c9
_080766E8: .4byte 0x0202f7c2
_080766EC: .4byte 0x02020004
_080766F0: .4byte 0x02024be0
_080766F4:
movs r4, 0
_080766F6:
ldr r0, _08076720
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08076724
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xC]
ldr r1, _08076728
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08076720: .4byte sub_807672C
_08076724: .4byte 0x03004b20
_08076728: .4byte 0x0202f7a4
thumb_func_end ma0B_0807324C
thumb_func_start sub_807672C
sub_807672C: @ 807672C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0807676C
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r1
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
beq _080767B6
ldrb r0, [r1, 0xC]
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08076768
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08076770
_08076768:
movs r4, 0
b _08076772
.align 2, 0
_0807676C: .4byte 0x03004b20
_08076770:
movs r4, 0x1
_08076772:
ldr r6, _080767BC
ldrb r0, [r6]
cmp r0, 0xFF
beq _0807678A
adds r0, r4, 0
bl sub_8076464
ldrb r0, [r6]
bl DestroyTask
movs r0, 0xFF
strb r0, [r6]
_0807678A:
ldr r0, _080767C0
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0x1
ble _080767B0
movs r0, 0x1
eors r4, r0
adds r0, r4, 0
bl sub_8076464
ldrb r0, [r6, 0x1]
bl DestroyTask
movs r0, 0xFF
strb r0, [r6, 0x1]
_080767B0:
adds r0, r5, 0
bl DestroyTask
_080767B6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080767BC: .4byte 0x0202f7c2
_080767C0: .4byte 0x03004b20
thumb_func_end sub_807672C
thumb_func_start sub_80767C4
sub_80767C4: @ 80767C4
push {r4,r5,lr}
ldr r0, _080767D8
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r5, [r2, 0x1]
cmp r5, 0
bne _080767DC
movs r5, 0x2
b _080767E6
.align 2, 0
_080767D8: .4byte 0x0202f7a4
_080767DC:
cmp r5, 0x1
bne _080767E2
movs r5, 0x3
_080767E2:
cmp r5, 0
beq _080767EA
_080767E6:
cmp r5, 0x2
bne _080767F4
_080767EA:
ldr r0, _080767F0
b _080767F6
.align 2, 0
_080767F0: .4byte 0x0202f7c8
_080767F4:
ldr r0, _08076828
_080767F6:
ldrb r4, [r0]
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08076850
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08076822
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _0807682C
_08076822:
movs r1, 0
b _0807682E
.align 2, 0
_08076828: .4byte 0x0202f7c9
_0807682C:
movs r1, 0x1
_0807682E:
adds r0, r4, 0
bl sub_8076034
ldr r2, _08076888
ldr r0, _0807688C
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_08076850:
movs r0, 0x2
eors r4, r0
cmp r5, 0x1
bls _080768B4
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _080768B4
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08076882
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08076890
_08076882:
movs r1, 0
b _08076892
.align 2, 0
_08076888: .4byte 0x02020004
_0807688C: .4byte 0x02024be0
_08076890:
movs r1, 0x1
_08076892:
adds r0, r4, 0
bl sub_8076034
ldr r2, _080768C4
ldr r0, _080768C8
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_080768B4:
ldr r1, _080768CC
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080768C4: .4byte 0x02020004
_080768C8: .4byte 0x02024be0
_080768CC: .4byte 0x0202f7a4
thumb_func_end sub_80767C4
thumb_func_start ma23_8073484
ma23_8073484: @ 80768D0
push {r4-r6,lr}
ldr r0, _080768E4
ldr r2, [r0]
adds r1, r2, 0x1
str r1, [r0]
ldrb r5, [r2, 0x1]
cmp r5, 0
bne _080768E8
movs r5, 0x2
b _080768F2
.align 2, 0
_080768E4: .4byte 0x0202f7a4
_080768E8:
cmp r5, 0x1
bne _080768EE
movs r5, 0x3
_080768EE:
cmp r5, 0
beq _080768F6
_080768F2:
cmp r5, 0x2
bne _08076900
_080768F6:
ldr r0, _080768FC
b _08076902
.align 2, 0
_080768FC: .4byte 0x0202f7c8
_08076900:
ldr r0, _08076960
_08076902:
ldrb r6, [r0]
adds r0, r6, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _0807692C
ldr r2, _08076964
ldr r0, _08076968
adds r0, r6, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_0807692C:
cmp r5, 0x1
bls _0807696C
movs r0, 0x2
adds r4, r6, 0
eors r4, r0
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _0807696C
ldr r2, _08076964
ldr r0, _08076968
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
b _0807696E
.align 2, 0
_08076960: .4byte 0x0202f7c9
_08076964: .4byte 0x02020004
_08076968: .4byte 0x02024be0
_0807696C:
movs r5, 0
_0807696E:
ldr r0, _08076998
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0807699C
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
strh r6, [r1, 0xC]
ldr r1, _080769A0
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08076998: .4byte sub_80769A4
_0807699C: .4byte 0x03004b20
_080769A0: .4byte 0x0202f7a4
thumb_func_end ma23_8073484
thumb_func_start sub_80769A4
sub_80769A4: @ 80769A4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _080769E8
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r1, r0, r1
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
beq _08076A32
ldrb r4, [r1, 0xC]
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _080769E2
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080769EC
_080769E2:
movs r5, 0
b _080769EE
.align 2, 0
_080769E8: .4byte 0x03004b20
_080769EC:
movs r5, 0x1
_080769EE:
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08076A00
adds r0, r5, 0
bl sub_8076464
_08076A00:
ldr r0, _08076A38
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0x1
ble _08076A2C
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08076A2C
movs r0, 0x1
eors r5, r0
adds r0, r5, 0
bl sub_8076464
_08076A2C:
adds r0, r6, 0
bl DestroyTask
_08076A32:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08076A38: .4byte 0x03004b20
thumb_func_end sub_80769A4
thumb_func_start sub_8076A3C
sub_8076A3C: @ 8076A3C
push {r4,lr}
ldr r2, _08076A6C
ldr r0, [r2]
adds r1, r0, 0x1
str r1, [r2]
ldrb r3, [r0, 0x1]
adds r0, r1, 0x1
str r0, [r2]
ldrb r1, [r1, 0x1]
lsls r1, 8
adds r0, 0x1
str r0, [r2]
ldr r2, _08076A70
movs r4, 0xFD
lsls r4, 6
adds r0, r4, 0
strh r0, [r2]
ldr r0, _08076A74
orrs r3, r1
strh r3, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08076A6C: .4byte 0x0202f7a4
_08076A70: .4byte REG_BLDCNT
_08076A74: .4byte REG_BLDALPHA
thumb_func_end sub_8076A3C
thumb_func_start sub_8076A78
sub_8076A78: @ 8076A78
ldr r2, _08076A98
ldr r0, [r2]
adds r1, r0, 0x1
str r1, [r2]
ldrb r3, [r0, 0x1]
adds r0, r1, 0x1
str r0, [r2]
ldrb r1, [r1, 0x1]
lsls r1, 8
adds r0, 0x1
str r0, [r2]
ldr r0, _08076A9C
orrs r3, r1
strh r3, [r0]
bx lr
.align 2, 0
_08076A98: .4byte 0x0202f7a4
_08076A9C: .4byte REG_BLDCNT
thumb_func_end sub_8076A78
thumb_func_start sub_8076AA0
sub_8076AA0: @ 8076AA0
ldr r1, _08076AB4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _08076AB8
movs r1, 0
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
bx lr
.align 2, 0
_08076AB4: .4byte 0x0202f7a4
_08076AB8: .4byte REG_BLDCNT
thumb_func_end sub_8076AA0
thumb_func_start ma0E_call
ma0E_call: @ 8076ABC
push {r4,lr}
ldr r4, _08076AE8
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldr r2, _08076AEC
adds r0, r1, 0x5
str r0, [r2]
ldrb r1, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08076AE8: .4byte 0x0202f7a4
_08076AEC: .4byte 0x0202f7a8
thumb_func_end ma0E_call
thumb_func_start sub_8076AF0
sub_8076AF0: @ 8076AF0
ldr r0, _08076AFC
ldr r1, _08076B00
ldr r1, [r1]
str r1, [r0]
bx lr
.align 2, 0
_08076AFC: .4byte 0x0202f7a4
_08076B00: .4byte 0x0202f7a8
thumb_func_end sub_8076AF0
thumb_func_start ma10_080736AC
ma10_080736AC: @ 8076B04
push {r4,r5,lr}
ldr r5, _08076B30
ldr r1, [r5]
adds r0, r1, 0x1
str r0, [r5]
ldrb r2, [r1, 0x1]
adds r3, r0, 0x1
str r3, [r5]
ldrb r4, [r0, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
orrs r4, r0
adds r1, 0x4
str r1, [r5]
ldr r0, _08076B34
lsls r2, 1
adds r2, r0
strh r4, [r2]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08076B30: .4byte 0x0202f7a4
_08076B34: .4byte 0x03004b00
thumb_func_end ma10_080736AC
thumb_func_start ma11_if_else
ma11_if_else: @ 8076B38
push {lr}
ldr r3, _08076B70
ldr r2, [r3]
adds r0, r2, 0x1
str r0, [r3]
ldr r0, _08076B74
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08076B52
adds r0, r2, 0x5
str r0, [r3]
_08076B52:
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r2, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r2, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r3]
pop {r0}
bx r0
.align 2, 0
_08076B70: .4byte 0x0202f7a4
_08076B74: .4byte 0x0202f7c4
thumb_func_end ma11_if_else
thumb_func_start ma12_cond_if
ma12_cond_if: @ 8076B78
push {r4,r5,lr}
ldr r5, _08076BA8
ldr r4, [r5]
adds r2, r4, 0x1
str r2, [r5]
ldrb r1, [r4, 0x1]
adds r3, r2, 0x1
str r3, [r5]
ldr r0, _08076BAC
ldrb r0, [r0]
cmp r1, r0
bne _08076BB0
ldrb r1, [r2, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r5]
b _08076BB4
.align 2, 0
_08076BA8: .4byte 0x0202f7a4
_08076BAC: .4byte 0x0202f7c4
_08076BB0:
adds r0, r4, 0x6
str r0, [r5]
_08076BB4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end ma12_cond_if
thumb_func_start sub_8076BBC
sub_8076BBC: @ 8076BBC
ldr r3, _08076BDC
ldr r0, [r3]
adds r2, r0, 0x1
str r2, [r3]
ldrb r1, [r0, 0x1]
ldrb r0, [r2, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r2, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r2, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r3]
bx lr
.align 2, 0
_08076BDC: .4byte 0x0202f7a4
thumb_func_end sub_8076BBC
thumb_func_start sub_8076BE0
sub_8076BE0: @ 8076BE0
push {lr}
ldr r0, _08076BF8
ldr r1, _08076BFC
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08076C00
movs r0, 0
b _08076C02
.align 2, 0
_08076BF8: .4byte 0x03001770
_08076BFC: .4byte 0x0000043d
_08076C00:
movs r0, 0x1
_08076C02:
pop {r1}
bx r1
thumb_func_end sub_8076BE0
thumb_func_start ma14_load_background
ma14_load_background: @ 8076C08
push {r4,lr}
ldr r1, _08076C3C
ldr r2, [r1]
adds r0, r2, 0x1
str r0, [r1]
ldrb r4, [r2, 0x1]
adds r0, 0x1
str r0, [r1]
ldr r0, _08076C40
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08076C44
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
ldr r1, _08076C48
movs r0, 0x1
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08076C3C: .4byte 0x0202f7a4
_08076C40: .4byte task_p5_load_battle_screen_elements
_08076C44: .4byte 0x03004b20
_08076C48: .4byte 0x0202f7c5
thumb_func_end ma14_load_background
thumb_func_start sub_8076C4C
sub_8076C4C: @ 8076C4C
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r2, _08076C8C
ldr r1, [r2]
adds r0, r1, 0x1
str r0, [r2]
ldrb r3, [r1, 0x1]
mov r8, r3
ldrb r7, [r0, 0x1]
ldrb r6, [r0, 0x2]
adds r1, 0x4
str r1, [r2]
ldr r0, _08076C90
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08076C98
ldr r1, _08076C94
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r6, [r0, 0x8]
b _08076CCA
.align 2, 0
_08076C8C: .4byte 0x0202f7a4
_08076C90: .4byte task_p5_load_battle_screen_elements
_08076C94: .4byte 0x03004b20
_08076C98:
ldr r0, _08076CB4
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08076CBC
ldr r1, _08076CB8
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r7, [r0, 0x8]
b _08076CCA
.align 2, 0
_08076CB4: .4byte 0x0202f7c9
_08076CB8: .4byte 0x03004b20
_08076CBC:
ldr r1, _08076CDC
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
mov r1, r8
strh r1, [r0, 0x8]
_08076CCA:
ldr r1, _08076CE0
movs r0, 0x1
strb r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076CDC: .4byte 0x03004b20
_08076CE0: .4byte 0x0202f7c5
thumb_func_end sub_8076C4C
thumb_func_start task_p5_load_battle_screen_elements
task_p5_load_battle_screen_elements: @ 8076CE4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08076D18
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r6, [r4, 0x1C]
movs r0, 0x1C
ldrsh r3, [r4, r0]
adds r7, r1, 0
cmp r3, 0
bne _08076D1C
str r3, [sp]
movs r0, 0xE8
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginHardwarePaletteFade
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
b _08076DAC
.align 2, 0
_08076D18: .4byte 0x03004b20
_08076D1C:
ldr r2, _08076D38
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08076DAC
cmp r3, 0x1
bne _08076D40
adds r0, r6, 0x1
strh r0, [r4, 0x1C]
ldr r1, _08076D3C
movs r0, 0x2
strb r0, [r1]
b _08076D84
.align 2, 0
_08076D38: .4byte 0x0202f388
_08076D3C: .4byte 0x0202f7c5
_08076D40:
cmp r3, 0x2
bne _08076D84
ldrh r0, [r4, 0x8]
lsls r2, r0, 16
asrs r1, r2, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08076D58
bl dp01t_11_3_message_for_player_only
b _08076D5E
_08076D58:
lsrs r0, r2, 16
bl sub_8076DB8
_08076D5E:
movs r0, 0x1
str r0, [sp]
movs r0, 0xE8
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginHardwarePaletteFade
ldr r1, _08076D80
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x1C]
adds r1, 0x1
strh r1, [r0, 0x1C]
b _08076DAC
.align 2, 0
_08076D80: .4byte 0x03004b20
_08076D84:
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _08076DAC
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r7
movs r1, 0x1C
ldrsh r0, [r0, r1]
cmp r0, 0x3
bne _08076DAC
adds r0, r5, 0
bl DestroyTask
ldr r0, _08076DB4
strb r4, [r0]
_08076DAC:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076DB4: .4byte 0x0202f7c5
thumb_func_end task_p5_load_battle_screen_elements
thumb_func_start sub_8076DB8
sub_8076DB8: @ 8076DB8
push {r4-r7,lr}
lsls r0, 16
lsrs r6, r0, 16
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08076E70
ldr r7, _08076E54
lsls r0, r6, 1
adds r0, r6
lsls r4, r0, 2
adds r0, r7, 0
adds r0, 0x8
adds r0, r4, r0
ldr r5, [r0]
bl sub_8076BE0
lsls r0, 24
ldr r1, _08076E58
cmp r0, 0
beq _08076DE8
ldr r0, _08076E5C
adds r1, r0
_08076DE8:
adds r0, r5, 0
bl sub_800D238
bl sub_80789BC
lsls r0, 24
lsrs r5, r0, 24
bl sub_8076BE0
lsls r0, 24
ldr r1, _08076E58
cmp r0, 0
beq _08076E06
ldr r0, _08076E5C
adds r1, r0
_08076E06:
movs r2, 0x80
lsls r2, 1
adds r0, r5, 0
movs r3, 0
bl sub_80763FC
bl sub_8076BE0
lsls r0, 24
ldr r2, _08076E58
cmp r0, 0
beq _08076E22
ldr r0, _08076E5C
adds r2, r0
_08076E22:
ldr r1, _08076E60
ldr r0, _08076E64
str r2, [r0]
str r1, [r0, 0x4]
ldr r1, _08076E68
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
adds r0, r4, r7
ldr r0, [r0]
ldr r1, _08076E6C
bl LZDecompressVram
adds r0, r7, 0x4
adds r0, r4, r0
ldr r4, [r0]
bl sub_80789BC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 20
adds r0, r4, 0
movs r2, 0x20
bl LoadCompressedPalette
b _08076E9E
.align 2, 0
_08076E54: .4byte gBattleAnimBackgroundTable
_08076E58: .4byte 0x02018000
_08076E5C: .4byte 0xffffc800
_08076E60: .4byte 0x0600d000
_08076E64: .4byte 0x040000d4
_08076E68: .4byte 0x84000200
_08076E6C: .4byte 0x06002000
_08076E70:
ldr r5, _08076EA4
lsls r4, r6, 1
adds r4, r6
lsls r4, 2
adds r0, r5, 0
adds r0, 0x8
adds r0, r4, r0
ldr r0, [r0]
ldr r1, _08076EA8
bl LZDecompressVram
adds r0, r4, r5
ldr r0, [r0]
ldr r1, _08076EAC
bl LZDecompressVram
adds r5, 0x4
adds r4, r5
ldr r0, [r4]
movs r1, 0x20
movs r2, 0x20
bl LoadCompressedPalette
_08076E9E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08076EA4: .4byte gBattleAnimBackgroundTable
_08076EA8: .4byte 0x0600d000
_08076EAC: .4byte 0x06008000
thumb_func_end sub_8076DB8
thumb_func_start dp01t_11_3_message_for_player_only
dp01t_11_3_message_for_player_only: @ 8076EB0
push {lr}
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08076EC2
bl sub_80AB2AC
b _08076EC6
_08076EC2:
bl sub_800D7B8
_08076EC6:
pop {r0}
bx r0
thumb_func_end dp01t_11_3_message_for_player_only
thumb_func_start ma15_load_battle_screen_elements
ma15_load_battle_screen_elements: @ 8076ECC
push {lr}
ldr r1, _08076EFC
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _08076F00
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08076F04
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _08076F08
strh r0, [r1, 0x8]
ldr r1, _08076F0C
movs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08076EFC: .4byte 0x0202f7a4
_08076F00: .4byte task_p5_load_battle_screen_elements
_08076F04: .4byte 0x03004b20
_08076F08: .4byte 0x0000ffff
_08076F0C: .4byte 0x0202f7c5
thumb_func_end ma15_load_battle_screen_elements
thumb_func_start ma16_wait_for_battle_screen_elements_s2
ma16_wait_for_battle_screen_elements_s2: @ 8076F10
push {lr}
ldr r0, _08076F28
ldrb r0, [r0]
cmp r0, 0x2
bne _08076F34
ldr r1, _08076F2C
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r1, _08076F30
movs r0, 0
b _08076F38
.align 2, 0
_08076F28: .4byte 0x0202f7c5
_08076F2C: .4byte 0x0202f7a4
_08076F30: .4byte 0x0202f7b0
_08076F34:
ldr r1, _08076F40
movs r0, 0x1
_08076F38:
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08076F40: .4byte 0x0202f7b0
thumb_func_end ma16_wait_for_battle_screen_elements_s2
thumb_func_start sub_8076F44
sub_8076F44: @ 8076F44
push {lr}
ldr r0, _08076F5C
ldrb r2, [r0]
cmp r2, 0
bne _08076F68
ldr r0, _08076F60
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
ldr r0, _08076F64
strb r2, [r0]
b _08076F6E
.align 2, 0
_08076F5C: .4byte 0x0202f7c5
_08076F60: .4byte 0x0202f7a4
_08076F64: .4byte 0x0202f7b0
_08076F68:
ldr r1, _08076F74
movs r0, 0x1
strb r0, [r1]
_08076F6E:
pop {r0}
bx r0
.align 2, 0
_08076F74: .4byte 0x0202f7b0
thumb_func_end sub_8076F44
thumb_func_start ma18_load_background_probably
ma18_load_background_probably: @ 8076F78
push {r4,lr}
ldr r4, _08076F94
ldr r1, [r4]
adds r0, r1, 0x1
str r0, [r4]
ldrb r0, [r1, 0x1]
bl sub_8076DB8
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08076F94: .4byte 0x0202f7a4
thumb_func_end ma18_load_background_probably
thumb_func_start sub_8076F98
sub_8076F98: @ 8076F98
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08076FDC
ldr r0, _08076FD4
ldrb r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _08076FD8
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08076FDC
adds r0, r2, 0
bl battle_side_get_owner
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
beq _0807706E
movs r4, 0x3F
b _0807706E
.align 2, 0
_08076FD4: .4byte 0x0202f7c8
_08076FD8: .4byte 0x02017810
_08076FDC:
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077004
ldr r0, _08076FFC
ldr r1, _08077000
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _08077068
cmp r0, 0x2
bne _08077068
cmp r4, 0x3F
beq _0807707A
b _08077068
.align 2, 0
_08076FFC: .4byte 0x0202f7c8
_08077000: .4byte 0x0202f7c9
_08077004:
ldr r0, _0807702C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08077042
ldr r0, _08077030
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0807706E
lsls r0, r4, 24
asrs r1, r0, 24
cmp r1, 0x3F
bne _08077034
movs r4, 0xC0
b _0807706E
.align 2, 0
_0807702C: .4byte 0x0202f7c8
_08077030: .4byte 0x0202f7c9
_08077034:
movs r0, 0x40
negs r0, r0
cmp r1, r0
beq _0807706E
negs r0, r1
lsls r0, 24
b _0807706C
_08077042:
ldr r0, _08077064
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08077068
lsls r0, r4, 24
asrs r0, 24
movs r1, 0x40
negs r1, r1
cmp r0, r1
bne _0807706E
movs r4, 0x3F
b _0807706E
.align 2, 0
_08077064: .4byte 0x0202f7c9
_08077068:
lsls r0, r4, 24
negs r0, r0
_0807706C:
lsrs r4, r0, 24
_0807706E:
lsls r0, r4, 24
asrs r0, 24
cmp r0, 0x3F
ble _0807707A
movs r4, 0x3F
b _08077088
_0807707A:
lsls r0, r4, 24
asrs r0, 24
movs r1, 0x40
negs r1, r1
cmp r0, r1
bge _08077088
movs r4, 0xC0
_08077088:
lsls r0, r4, 24
asrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8076F98
thumb_func_start sub_8077094
sub_8077094: @ 8077094
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080770D8
ldr r0, _080770D0
ldrb r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080770D4
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080770D8
adds r0, r2, 0
bl battle_side_get_owner
lsls r0, 24
movs r4, 0xC0
cmp r0, 0
beq _080770F6
movs r4, 0x3F
b _080770F6
.align 2, 0
_080770D0: .4byte 0x0202f7c8
_080770D4: .4byte 0x02017810
_080770D8:
ldr r0, _08077100
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _080770F0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080770F6
_080770F0:
lsls r0, r4, 24
negs r0, r0
lsrs r4, r0, 24
_080770F6:
lsls r0, r4, 24
asrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08077100: .4byte 0x0202f7c8
thumb_func_end sub_8077094
thumb_func_start sub_8077104
sub_8077104: @ 8077104
push {lr}
lsls r0, 16
lsrs r1, r0, 16
asrs r2, r0, 16
cmp r2, 0x3F
ble _08077114
movs r1, 0x3F
b _0807711E
_08077114:
movs r0, 0x40
negs r0, r0
cmp r2, r0
bge _0807711E
ldr r1, _08077128
_0807711E:
lsls r0, r1, 16
asrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08077128: .4byte 0x0000ffc0
thumb_func_end sub_8077104
thumb_func_start sub_807712C
sub_807712C: @ 807712C
push {lr}
lsls r2, 16
lsrs r2, 16
adds r3, r2, 0
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
cmp r0, r1
bge _0807714A
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0
bge _0807715A
b _08077158
_0807714A:
cmp r0, r1
ble _08077160
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0
bge _08077158
negs r0, r0
_08077158:
negs r0, r0
_0807715A:
lsls r0, 16
lsrs r0, 16
b _08077162
_08077160:
movs r0, 0
_08077162:
lsls r0, 16
asrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_807712C
thumb_func_start ma19_08073BC8
ma19_08073BC8: @ 807716C
push {r4,r5,lr}
ldr r5, _080771A0
ldr r0, [r5]
adds r1, r0, 0x1
str r1, [r5]
ldrb r4, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r4, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8076F98
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r4, 0
bl audio_play_and_stuff
ldr r0, [r5]
adds r0, 0x3
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080771A0: .4byte 0x0202f7a4
thumb_func_end ma19_08073BC8
thumb_func_start ma1A_8073C00
ma1A_8073C00: @ 80771A4
push {r4,lr}
ldr r4, _080771CC
ldr r1, [r4]
adds r0, r1, 0x1
str r0, [r4]
movs r0, 0x1
ldrsb r0, [r1, r0]
bl sub_8076F98
lsls r0, 24
asrs r0, 24
bl sub_8075560
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080771CC: .4byte 0x0202f7a4
thumb_func_end ma1A_8073C00
thumb_func_start ma1B_8073C2C
ma1B_8073C2C: @ 80771D0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _08077280
mov r10, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r10
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r9, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r9
orrs r2, r0
mov r9, r2
ldrb r4, [r1, 0x3]
ldrb r6, [r1, 0x4]
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8076F98
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
bl sub_8076F98
mov r8, r0
lsls r5, 24
asrs r5, 24
mov r0, r8
lsls r0, 24
asrs r0, 24
mov r8, r0
lsls r6, 24
asrs r6, 24
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
bl sub_807712C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08077284
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08077288
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
mov r2, r8
strh r2, [r1, 0xA]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xC]
strh r7, [r1, 0xE]
strh r5, [r1, 0x10]
mov r0, r9
adds r1, r5, 0
bl audio_play_and_stuff
ldr r1, _0807728C
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r1, r10
ldr r0, [r1]
adds r0, 0x6
str r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08077280: .4byte 0x0202f7a4
_08077284: .4byte c3_08073CEC
_08077288: .4byte 0x03004b20
_0807728C: .4byte 0x0202f7b3
thumb_func_end ma1B_8073C2C
thumb_func_start c3_08073CEC
c3_08073CEC: @ 8077290
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0
ldr r1, _080772D4
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x18]
adds r1, r0, 0x1
strh r1, [r2, 0x18]
lsls r0, 16
asrs r0, 16
movs r3, 0xE
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08077314
strh r7, [r2, 0x18]
ldrh r6, [r2, 0x8]
ldrh r3, [r2, 0xA]
movs r4, 0x10
ldrsh r0, [r2, r4]
movs r4, 0xC
ldrsh r1, [r2, r4]
adds r0, r1
lsls r0, 16
lsrs r4, r0, 16
strh r4, [r2, 0x10]
cmp r1, 0
bne _080772D8
lsls r2, r3, 16
b _080772FC
.align 2, 0
_080772D4: .4byte 0x03004b20
_080772D8:
lsls r1, r6, 16
lsls r0, r3, 16
asrs r3, r0, 16
adds r2, r0, 0
cmp r1, r2
bge _080772EE
lsls r0, r4, 16
asrs r0, 16
cmp r0, r3
blt _080772F8
b _080772FC
_080772EE:
lsls r0, r4, 16
asrs r0, 16
cmp r0, r3
bgt _080772F8
movs r7, 0x1
_080772F8:
cmp r7, 0
beq _0807730C
_080772FC:
lsrs r4, r2, 16
adds r0, r5, 0
bl DestroyTask
ldr r1, _0807731C
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_0807730C:
lsls r0, r4, 24
asrs r0, 24
bl sub_8075560
_08077314:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0807731C: .4byte 0x0202f7b3
thumb_func_end c3_08073CEC
thumb_func_start sub_8077320
sub_8077320: @ 8077320
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
ldr r0, _080773A4
mov r9, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r9
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r8, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r8
orrs r2, r0
mov r8, r2
ldrb r4, [r1, 0x2]
ldrb r5, [r1, 0x3]
ldrb r6, [r1, 0x4]
ldrb r1, [r1, 0x5]
mov r10, r1
ldr r0, _080773A8
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080773AC
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0x8]
lsls r5, 24
asrs r5, 24
strh r5, [r1, 0xA]
lsls r6, 24
asrs r6, 24
strh r6, [r1, 0xC]
mov r0, r10
strh r0, [r1, 0xE]
strh r4, [r1, 0x10]
mov r0, r8
adds r1, r4, 0
bl audio_play_and_stuff
ldr r1, _080773B0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r1, r9
ldr r0, [r1]
adds r0, 0x6
str r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080773A4: .4byte 0x0202f7a4
_080773A8: .4byte c3_08073CEC
_080773AC: .4byte 0x03004b20
_080773B0: .4byte 0x0202f7b3
thumb_func_end sub_8077320
thumb_func_start sub_80773B4
sub_80773B4: @ 80773B4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _08077464
mov r10, r0
ldr r0, [r0]
adds r1, r0, 0x1
mov r2, r10
str r1, [r2]
ldrb r0, [r0, 0x1]
mov r9, r0
ldrb r0, [r1, 0x1]
lsls r0, 8
mov r2, r9
orrs r2, r0
mov r9, r2
ldrb r4, [r1, 0x3]
ldrb r0, [r1, 0x4]
mov r8, r0
ldrb r7, [r1, 0x5]
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8077094
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, 24
asrs r4, 24
adds r0, r4, 0
bl sub_8077094
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r1, r8
lsls r1, 24
asrs r1, 24
mov r8, r1
mov r0, r8
bl sub_8077094
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08077468
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0807746C
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
lsls r6, 24
asrs r6, 24
strh r6, [r1, 0x8]
lsls r5, 24
asrs r5, 24
strh r5, [r1, 0xA]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xC]
strh r7, [r1, 0xE]
strh r6, [r1, 0x10]
mov r0, r9
adds r1, r6, 0
bl audio_play_and_stuff
ldr r1, _08077470
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
mov r2, r10
ldr r0, [r2]
adds r0, 0x6
str r0, [r2]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08077464: .4byte 0x0202f7a4
_08077468: .4byte c3_08073CEC
_0807746C: .4byte 0x03004b20
_08077470: .4byte 0x0202f7b3
thumb_func_end sub_80773B4
thumb_func_start ma1C_8073ED0
ma1C_8073ED0: @ 8077474
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r6, _080774EC
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r5, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r5, r0
ldrb r0, [r1, 0x3]
mov r8, r0
ldrb r2, [r1, 0x4]
mov r9, r2
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8076F98
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080774F0
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080774F4
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xA]
mov r2, r8
strh r2, [r1, 0xC]
mov r2, r9
strh r2, [r1, 0xE]
mov r2, r8
strh r2, [r1, 0x18]
ldr r1, [r1]
bl _call_via_r1
ldr r1, _080774F8
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x5
str r0, [r6]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080774EC: .4byte 0x0202f7a4
_080774F0: .4byte sub_80774FC
_080774F4: .4byte 0x03004b20
_080774F8: .4byte 0x0202f7b3
thumb_func_end ma1C_8073ED0
thumb_func_start sub_80774FC
sub_80774FC: @ 80774FC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08077550
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0x18]
adds r1, r0, 0x1
strh r1, [r2, 0x18]
lsls r0, 16
asrs r0, 16
movs r3, 0xC
ldrsh r1, [r2, r3]
cmp r0, r1
blt _0807754A
movs r0, 0
strh r0, [r2, 0x18]
ldrh r0, [r2, 0x8]
ldrb r1, [r2, 0xA]
ldrh r4, [r2, 0xE]
subs r4, 0x1
strh r4, [r2, 0xE]
lsls r4, 24
lsrs r4, 24
lsls r1, 24
asrs r1, 24
bl audio_play_and_stuff
cmp r4, 0
bne _0807754A
adds r0, r5, 0
bl DestroyTask
ldr r1, _08077554
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_0807754A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08077550: .4byte 0x03004b20
_08077554: .4byte 0x0202f7b3
thumb_func_end sub_80774FC
thumb_func_start ma1D_08073FB4
ma1D_08073FB4: @ 8077558
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r6, _080775BC
ldr r0, [r6]
adds r1, r0, 0x1
str r1, [r6]
ldrb r5, [r0, 0x1]
ldrb r0, [r1, 0x1]
lsls r0, 8
orrs r5, r0
ldrb r0, [r1, 0x3]
mov r8, r0
movs r0, 0x2
ldrsb r0, [r1, r0]
bl sub_8076F98
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080775C0
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080775C4
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r5, [r1, 0x8]
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0xA]
mov r0, r8
strh r0, [r1, 0xC]
ldr r1, _080775C8
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x4
str r0, [r6]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080775BC: .4byte 0x0202f7a4
_080775C0: .4byte sub_80775CC
_080775C4: .4byte 0x03004b20
_080775C8: .4byte 0x0202f7b3
thumb_func_end ma1D_08073FB4
thumb_func_start sub_80775CC
sub_80775CC: @ 80775CC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08077608
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r1
ldrh r0, [r2, 0xC]
subs r1, r0, 0x1
strh r1, [r2, 0xC]
lsls r0, 16
cmp r0, 0
bgt _08077600
ldrh r0, [r2, 0x8]
movs r1, 0xA
ldrsb r1, [r2, r1]
bl audio_play_and_stuff
adds r0, r4, 0
bl DestroyTask
ldr r1, _0807760C
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_08077600:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08077608: .4byte 0x03004b20
_0807760C: .4byte 0x0202f7b3
thumb_func_end sub_80775CC
thumb_func_start sub_8077610
sub_8077610: @ 8077610
push {r4-r6,lr}
ldr r4, _08077678
ldr r1, [r4]
adds r3, r1, 0x1
str r3, [r4]
ldrb r2, [r1, 0x1]
ldrb r0, [r3, 0x1]
lsls r0, 8
adds r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 16
adds r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 24
adds r6, r2, r0
adds r0, r1, 0x5
str r0, [r4]
ldrb r0, [r1, 0x5]
adds r1, 0x6
str r1, [r4]
cmp r0, 0
beq _0807765A
adds r5, r4, 0
ldr r4, _0807767C
adds r3, r0, 0
_08077642:
ldr r2, [r5]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
orrs r1, r0
strh r1, [r4]
adds r2, 0x2
str r2, [r5]
adds r4, 0x2
subs r3, 0x1
cmp r3, 0
bne _08077642
_0807765A:
adds r0, r6, 0
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r6
ldr r1, _08077680
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08077678: .4byte 0x0202f7a4
_0807767C: .4byte 0x03004b00
_08077680: .4byte 0x0202f7b3
thumb_func_end sub_8077610
thumb_func_start ma20_wait_for_something
ma20_wait_for_something: @ 8077684
push {r4,r5,lr}
ldr r0, _080776BC
ldrb r5, [r0]
cmp r5, 0
bne _080776CC
bl mplay_has_finished_maybe
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080776E4
ldr r4, _080776C0
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5A
bls _080776D2
ldr r0, _080776C4
bl m4aMPlayStop
ldr r0, _080776C8
bl m4aMPlayStop
strh r5, [r4]
b _080776F6
.align 2, 0
_080776BC: .4byte 0x0202f7b3
_080776C0: .4byte 0x03004af0
_080776C4: .4byte 0x030073c0
_080776C8: .4byte 0x03007400
_080776CC:
ldr r1, _080776DC
movs r0, 0
strh r0, [r1]
_080776D2:
ldr r1, _080776E0
movs r0, 0x1
strb r0, [r1]
b _080776F6
.align 2, 0
_080776DC: .4byte 0x03004af0
_080776E0: .4byte 0x0202f7b0
_080776E4:
ldr r0, _080776FC
movs r2, 0
strh r1, [r0]
ldr r1, _08077700
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _08077704
strb r2, [r0]
_080776F6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080776FC: .4byte 0x03004af0
_08077700: .4byte 0x0202f7a4
_08077704: .4byte 0x0202f7b0
thumb_func_end ma20_wait_for_something
thumb_func_start ma21_08074164
ma21_08074164: @ 8077708
push {r4-r6,lr}
ldr r5, _08077748
ldr r4, [r5]
adds r3, r4, 0x1
str r3, [r5]
ldrb r2, [r4, 0x1]
ldrb r1, [r3, 0x1]
ldrb r0, [r3, 0x2]
lsls r0, 8
orrs r1, r0
ldr r0, _0807774C
lsls r2, 1
adds r2, r0
lsls r1, 16
asrs r1, 16
movs r6, 0
ldrsh r0, [r2, r6]
cmp r1, r0
bne _08077750
ldrb r1, [r3, 0x3]
ldrb r0, [r3, 0x4]
lsls r0, 8
adds r1, r0
ldrb r0, [r3, 0x5]
lsls r0, 16
adds r1, r0
ldrb r0, [r3, 0x6]
lsls r0, 24
adds r1, r0
str r1, [r5]
b _08077756
.align 2, 0
_08077748: .4byte 0x0202f7a4
_0807774C: .4byte 0x03004b00
_08077750:
adds r0, r4, 0
adds r0, 0x8
str r0, [r5]
_08077756:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ma21_08074164
thumb_func_start sub_807775C
sub_807775C: @ 807775C
push {r4,lr}
ldr r4, _0807778C
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077790
ldr r2, [r4]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
lsls r0, 8
adds r1, r0
ldrb r0, [r2, 0x2]
lsls r0, 16
adds r1, r0
ldrb r0, [r2, 0x3]
lsls r0, 24
adds r1, r0
str r1, [r4]
b _08077796
.align 2, 0
_0807778C: .4byte 0x0202f7a4
_08077790:
ldr r0, [r4]
adds r0, 0x4
str r0, [r4]
_08077796:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_807775C
thumb_func_start sub_807779C
sub_807779C: @ 807779C
push {r4,lr}
ldr r0, _080777B0
ldr r1, [r0]
ldrb r2, [r1, 0x1]
adds r1, 0x2
str r1, [r0]
cmp r2, 0
beq _080777B8
ldr r0, _080777B4
b _080777BA
.align 2, 0
_080777B0: .4byte 0x0202f7a4
_080777B4: .4byte 0x0202f7c9
_080777B8:
ldr r0, _080777FC
_080777BA:
ldrb r0, [r0]
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080777F4
cmp r4, 0
beq _080777D6
cmp r4, 0x3
bne _080777F4
_080777D6:
ldr r3, _08077800
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
movs r2, 0x1
orrs r0, r2
strb r0, [r3]
ldr r2, _08077804
ldrb r0, [r2]
ands r1, r0
movs r0, 0x2
orrs r1, r0
strb r1, [r2]
_080777F4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080777FC: .4byte 0x0202f7c8
_08077800: .4byte REG_BG1CNT
_08077804: .4byte REG_BG2CNT
thumb_func_end sub_807779C
thumb_func_start sub_8077808
sub_8077808: @ 8077808
push {lr}
ldr r0, _08077840
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _0807783A
ldr r3, _08077844
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
movs r2, 0x1
orrs r0, r2
strb r0, [r3]
ldr r2, _08077848
ldrb r0, [r2]
ands r1, r0
movs r0, 0x2
orrs r1, r0
strb r1, [r2]
_0807783A:
pop {r0}
bx r0
.align 2, 0
_08077840: .4byte 0x0202f7a4
_08077844: .4byte REG_BG1CNT
_08077848: .4byte REG_BG2CNT
thumb_func_end sub_8077808
thumb_func_start sub_807784C
sub_807784C: @ 807784C
push {r4-r7,lr}
ldr r1, _0807787C
ldr r0, [r1]
ldrb r6, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
ldr r7, _08077880
ldrb r0, [r7]
bl battle_side_get_owner
adds r4, r0, 0
ldr r5, _08077884
ldrb r0, [r5]
bl battle_side_get_owner
lsls r4, 24
lsls r0, 24
cmp r4, r0
beq _080778C2
cmp r6, 0
beq _08077888
ldrb r0, [r5]
b _0807788A
.align 2, 0
_0807787C: .4byte 0x0202f7a4
_08077880: .4byte 0x0202f7c8
_08077884: .4byte 0x0202f7c9
_08077888:
ldrb r0, [r7]
_0807788A:
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080778C2
cmp r4, 0
beq _080778A4
cmp r4, 0x3
bne _080778C2
_080778A4:
ldr r3, _080778C8
ldrb r2, [r3]
movs r1, 0x4
negs r1, r1
adds r0, r1, 0
ands r0, r2
movs r2, 0x1
orrs r0, r2
strb r0, [r3]
ldr r2, _080778CC
ldrb r0, [r2]
ands r1, r0
movs r0, 0x2
orrs r1, r0
strb r1, [r2]
_080778C2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080778C8: .4byte REG_BG1CNT
_080778CC: .4byte REG_BG2CNT
thumb_func_end sub_807784C
thumb_func_start ma2B_make_side_invisible
ma2B_make_side_invisible: @ 80778D0
push {r4,lr}
ldr r4, _08077904
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080778F8
ldr r1, _08077908
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_080778F8:
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08077904: .4byte 0x0202f7a4
_08077908: .4byte 0x02020004
thumb_func_end ma2B_make_side_invisible
thumb_func_start ma2C_make_side_visible
ma2C_make_side_visible: @ 807790C
push {r4,lr}
ldr r4, _08077944
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _08077936
ldr r1, _08077948
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
_08077936:
ldr r0, [r4]
adds r0, 0x2
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08077944: .4byte 0x0202f7a4
_08077948: .4byte 0x02020004
thumb_func_end ma2C_make_side_visible
thumb_func_start sub_807794C
sub_807794C: @ 807794C
push {r4-r7,lr}
ldr r1, _08077998
ldr r0, [r1]
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080779F6
bl battle_type_is_double
lsls r0, 24
cmp r0, 0
beq _080779F6
ldr r6, _0807799C
ldrb r0, [r6]
bl battle_side_get_owner
adds r4, r0, 0
ldr r5, _080779A0
ldrb r0, [r5]
bl battle_side_get_owner
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080779F6
cmp r7, 0
bne _080779A4
ldrb r0, [r6]
bl battle_get_per_side_status_permutated
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
b _080779B0
.align 2, 0
_08077998: .4byte 0x0202f7a4
_0807799C: .4byte 0x0202f7c8
_080779A0: .4byte 0x0202f7c9
_080779A4:
ldrb r0, [r5]
bl battle_get_per_side_status_permutated
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
_080779B0:
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080779F6
ldr r1, _080779EC
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r2, r0, r1
adds r3, r2, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
cmp r4, 0x2
bne _080779E0
ldrb r0, [r2, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r2, 0x5]
_080779E0:
cmp r4, 0x1
bne _080779F0
movs r0, 0
bl sub_8076464
b _080779F6
.align 2, 0
_080779EC: .4byte 0x02020004
_080779F0:
movs r0, 0x1
bl sub_8076464
_080779F6:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_807794C
thumb_func_start sub_80779FC
sub_80779FC: @ 80779FC
push {r4-r7,lr}
ldr r1, _08077A48
ldr r0, [r1]
ldrb r7, [r0, 0x1]
adds r0, 0x2
str r0, [r1]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08077A88
bl battle_type_is_double
lsls r0, 24
cmp r0, 0
beq _08077A88
ldr r6, _08077A4C
ldrb r0, [r6]
bl battle_side_get_owner
adds r4, r0, 0
ldr r5, _08077A50
ldrb r0, [r5]
bl battle_side_get_owner
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _08077A88
cmp r7, 0
bne _08077A54
ldrb r0, [r6]
bl battle_get_per_side_status_permutated
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
b _08077A60
.align 2, 0
_08077A48: .4byte 0x0202f7a4
_08077A4C: .4byte 0x0202f7c8
_08077A50: .4byte 0x0202f7c9
_08077A54:
ldrb r0, [r5]
bl battle_get_per_side_status_permutated
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
_08077A60:
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _08077A88
cmp r4, 0x2
bne _08077A88
ldr r1, _08077A90
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x8
orrs r1, r2
strb r1, [r0, 0x5]
_08077A88:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08077A90: .4byte 0x02020004
thumb_func_end sub_80779FC
thumb_func_start ma2F_stop_music
ma2F_stop_music: @ 8077A94
push {lr}
ldr r0, _08077AB0
bl m4aMPlayStop
ldr r0, _08077AB4
bl m4aMPlayStop
ldr r1, _08077AB8
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08077AB0: .4byte 0x030073c0
_08077AB4: .4byte 0x03007400
_08077AB8: .4byte 0x0202f7a4
thumb_func_end ma2F_stop_music
thumb_func_start sub_8077ABC
sub_8077ABC: @ 8077ABC
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r4, r1, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077ADA
cmp r4, 0x3
bne _08077ADA
cmp r5, 0x3
bne _08077ADA
movs r4, 0x1
_08077ADA:
cmp r4, 0x4
bhi _08077B50
lsls r0, r4, 2
ldr r1, _08077AE8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08077AE8: .4byte _08077AEC
.align 2, 0
_08077AEC:
.4byte _08077B00
.4byte _08077B28
.4byte _08077B00
.4byte _08077B50
.4byte _08077B50
_08077B00:
ldr r4, _08077B20
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
ldr r1, _08077B24
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
lsls r1, 4
adds r0, r1
adds r0, r4
ldrb r0, [r0]
b _08077BF4
.align 2, 0
_08077B20: .4byte gUnknown_0837F578
_08077B24: .4byte 0x020239f8
_08077B28:
ldr r4, _08077B48
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 22
ldr r1, _08077B4C
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
lsls r1, 4
adds r0, r1
adds r0, r4
ldrb r0, [r0, 0x1]
b _08077BF4
.align 2, 0
_08077B48: .4byte gUnknown_0837F578
_08077B4C: .4byte 0x020239f8
_08077B50:
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077B74
ldr r2, _08077B6C
ldrb r1, [r2, 0x4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08077B70
ldrh r1, [r2, 0x2]
b _08077BDE
.align 2, 0
_08077B6C: .4byte 0x02019348
_08077B70:
ldrh r1, [r2]
b _08077BDE
_08077B74:
adds r0, r5, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08077BA8
lsls r0, r5, 2
ldr r1, _08077B9C
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08077BDC
ldr r1, _08077BA0
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08077BA4
b _08077BC2
.align 2, 0
_08077B9C: .4byte 0x02017800
_08077BA0: .4byte 0x02024a6a
_08077BA4: .4byte 0x030045c0
_08077BA8:
lsls r0, r5, 2
ldr r1, _08077BD0
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08077BDC
ldr r1, _08077BD4
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08077BD8
_08077BC2:
adds r0, r1
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r1, r0, 16
b _08077BDE
.align 2, 0
_08077BD0: .4byte 0x02017800
_08077BD4: .4byte 0x02024a6a
_08077BD8: .4byte 0x03004360
_08077BDC:
ldrh r1, [r1, 0x2]
_08077BDE:
cmp r4, 0x3
bne _08077BE8
adds r0, r5, 0
movs r2, 0x1
b _08077BEC
_08077BE8:
adds r0, r5, 0
movs r2, 0
_08077BEC:
bl sub_8077E44
lsls r0, 24
lsrs r0, 24
_08077BF4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8077ABC
thumb_func_start sub_8077BFC
sub_8077BFC: @ 8077BFC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 16
lsrs r5, r1, 16
adds r0, r4, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08077C1C
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077D04
_08077C1C:
cmp r5, 0xC9
bne _08077CCC
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077C44
ldr r2, _08077C3C
ldrb r1, [r2, 0x4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08077C40
ldr r2, [r2, 0x10]
b _08077C7E
.align 2, 0
_08077C3C: .4byte 0x02019348
_08077C40:
ldr r2, [r2, 0x8]
b _08077C7E
_08077C44:
lsls r1, r4, 2
ldr r0, _08077C6C
adds r0, r1, r0
ldrh r0, [r0, 0x2]
cmp r0, 0
bne _08077C78
ldr r1, _08077C70
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08077C74
adds r0, r1
movs r1, 0
bl PokemonGetField
adds r2, r0, 0
b _08077C7E
.align 2, 0
_08077C6C: .4byte 0x02017800
_08077C70: .4byte 0x02024a6a
_08077C74: .4byte 0x03004360
_08077C78:
ldr r0, _08077CB4
adds r0, r1, r0
ldr r2, [r0]
_08077C7E:
movs r0, 0xC0
lsls r0, 18
ands r0, r2
lsrs r0, 18
movs r1, 0xC0
lsls r1, 10
ands r1, r2
lsrs r1, 12
orrs r0, r1
movs r1, 0xC0
lsls r1, 2
ands r1, r2
lsrs r1, 6
orrs r0, r1
movs r1, 0x3
ands r1, r2
orrs r0, r1
movs r1, 0x1C
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _08077CB8
adds r0, r5, 0
b _08077CC2
.align 2, 0
_08077CB4: .4byte 0x02024e70
_08077CB8:
movs r1, 0xCE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
_08077CC2:
ldr r1, _08077CC8
lsls r0, 2
b _08077DC8
.align 2, 0
_08077CC8: .4byte gMonBackPicCoords
_08077CCC:
ldr r0, _08077CE0
cmp r5, r0
bne _08077CEC
ldr r0, _08077CE4
ldr r1, _08077CE8
adds r1, r4, r1
ldrb r1, [r1]
adds r1, r0
ldrb r0, [r1]
b _08077DCC
.align 2, 0
_08077CE0: .4byte SPECIES_CASTFORM
_08077CE4: .4byte gUnknown_0837F5AC
_08077CE8: .4byte 0x02024e84
_08077CEC:
movs r0, 0xCE
lsls r0, 1
cmp r5, r0
bls _08077CFC
ldr r0, _08077CF8
b _08077DCA
.align 2, 0
_08077CF8: .4byte gMonBackPicCoords
_08077CFC:
ldr r1, _08077D00
b _08077DC6
.align 2, 0
_08077D00: .4byte gMonBackPicCoords
_08077D04:
cmp r5, 0xC9
bne _08077D90
lsls r1, r4, 2
ldr r0, _08077D30
adds r0, r1, r0
ldrh r0, [r0, 0x2]
cmp r0, 0
bne _08077D3C
ldr r1, _08077D34
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08077D38
adds r0, r1
movs r1, 0
bl PokemonGetField
adds r2, r0, 0
b _08077D42
.align 2, 0
_08077D30: .4byte 0x02017800
_08077D34: .4byte 0x02024a6a
_08077D38: .4byte 0x030045c0
_08077D3C:
ldr r0, _08077D78
adds r0, r1, r0
ldr r2, [r0]
_08077D42:
movs r0, 0xC0
lsls r0, 18
ands r0, r2
lsrs r0, 18
movs r1, 0xC0
lsls r1, 10
ands r1, r2
lsrs r1, 12
orrs r0, r1
movs r1, 0xC0
lsls r1, 2
ands r1, r2
lsrs r1, 6
orrs r0, r1
movs r1, 0x3
ands r1, r2
orrs r0, r1
movs r1, 0x1C
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _08077D7C
adds r0, r5, 0
b _08077D86
.align 2, 0
_08077D78: .4byte 0x02024e70
_08077D7C:
movs r1, 0xCE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
_08077D86:
ldr r1, _08077D8C
lsls r0, 2
b _08077DC8
.align 2, 0
_08077D8C: .4byte gMonFrontPicCoords
_08077D90:
ldr r0, _08077DA8
cmp r5, r0
bne _08077DB4
ldr r0, _08077DAC
ldr r1, _08077DB0
adds r1, r4, r1
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x1]
b _08077DCC
.align 2, 0
_08077DA8: .4byte SPECIES_CASTFORM
_08077DAC: .4byte gUnknownCastformCoords_0837F598
_08077DB0: .4byte 0x02024e84
_08077DB4:
movs r0, 0xCE
lsls r0, 1
cmp r5, r0
bls _08077DC4
ldr r0, _08077DC0
b _08077DCA
.align 2, 0
_08077DC0: .4byte gMonFrontPicCoords
_08077DC4:
ldr r1, _08077DD4
_08077DC6:
lsls r0, r5, 2
_08077DC8:
adds r0, r1
_08077DCA:
ldrb r0, [r0, 0x1]
_08077DCC:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08077DD4: .4byte gMonFrontPicCoords
thumb_func_end sub_8077BFC
thumb_func_start sub_8077DD8
sub_8077DD8: @ 8077DD8
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 16
lsrs r4, r1, 16
adds r7, r4, 0
movs r5, 0
adds r0, r6, 0
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08077E36
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08077E36
ldr r0, _08077E14
cmp r4, r0 @ check if the given pokemon species is Castform
bne _08077E20
ldr r0, _08077E18
ldr r1, _08077E1C
adds r1, r6, r1
ldrb r1, [r1]
adds r1, r0
ldrb r5, [r1]
b _08077E36
.align 2, 0
_08077E14: .4byte SPECIES_CASTFORM
_08077E18: .4byte gUnknownCastformData_0837F5A8
_08077E1C: .4byte 0x02024e84
_08077E20:
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
bls _08077E30
ldr r0, _08077E2C
b _08077E34
.align 2, 0
_08077E2C: .4byte gEnemyMonElevation
_08077E30:
ldr r0, _08077E40
adds r0, r7, r0
_08077E34:
ldrb r5, [r0]
_08077E36:
adds r0, r5, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08077E40: .4byte gEnemyMonElevation
thumb_func_end sub_8077DD8
thumb_func_start sub_8077E44
sub_8077E44: @ 8077E44
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 24
lsrs r7, r2, 24
adds r0, r6, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08077E68
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077E76
_08077E68:
adds r0, r6, 0
adds r1, r5, 0
bl sub_8077BFC
lsls r0, 24
lsrs r4, r0, 24
b _08077E94
_08077E76:
adds r0, r6, 0
adds r1, r5, 0
bl sub_8077BFC
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_8077DD8
lsls r0, 24
lsrs r0, 24
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
_08077E94:
adds r0, r6, 0
bl battle_get_per_side_status
ldr r3, _08077EDC
lsls r0, 24
lsrs r0, 22
ldr r1, _08077EE0
ldrh r2, [r1]
movs r1, 0x1
ands r1, r2
lsls r1, 4
adds r0, r1
adds r0, r3
ldrb r0, [r0, 0x1]
adds r0, r4
lsls r0, 24
lsrs r4, r0, 24
cmp r7, 0
beq _08077ED4
adds r0, r6, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08077ECE
adds r0, r4, 0
adds r0, 0x8
lsls r0, 24
lsrs r4, r0, 24
_08077ECE:
cmp r4, 0x68
bls _08077ED4
movs r4, 0x68
_08077ED4:
adds r0, r4, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08077EDC: .4byte gUnknown_0837F578
_08077EE0: .4byte 0x020239f8
thumb_func_end sub_8077E44
thumb_func_start sub_8077EE4
sub_8077EE4: @ 8077EE4
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
movs r0, 0xFD
lsls r0, 24
adds r1, r0
lsrs r1, 24
cmp r1, 0x1
bhi _08077F56
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08077F1C
ldr r2, _08077F14
ldrb r1, [r2, 0x4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08077F18
ldrh r1, [r2, 0x2]
b _08077F3E
.align 2, 0
_08077F14: .4byte 0x02019348
_08077F18:
ldrh r1, [r2]
b _08077F3E
_08077F1C:
lsls r0, r4, 2
ldr r1, _08077F34
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08077F3C
ldr r1, _08077F38
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
b _08077F3E
.align 2, 0
_08077F34: .4byte 0x02017800
_08077F38: .4byte 0x0202f7ca
_08077F3C:
ldrh r1, [r1, 0x2]
_08077F3E:
cmp r5, 0x3
bne _08077F4C
adds r0, r4, 0
movs r2, 0x1
bl sub_8077E44
b _08077F5E
_08077F4C:
adds r0, r4, 0
movs r2, 0
bl sub_8077E44
b _08077F5E
_08077F56:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8077ABC
_08077F5E:
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8077EE4
thumb_func_start sub_8077F68
sub_8077F68: @ 8077F68
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0x4
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8077F68
thumb_func_start sub_8077F7C
sub_8077F7C: @ 8077F7C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08077FA0
adds r0, r4, 0
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r0, 8
movs r1, 0x80
lsls r1, 13
b _08077FB0
_08077FA0:
adds r0, r4, 0
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r0, 8
movs r1, 0x88
lsls r1, 13
_08077FB0:
adds r0, r1
lsrs r0, 16
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8077F7C
thumb_func_start sub_8077FC0
sub_8077FC0: @ 8077FC0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08078060
adds r0, r5, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08078010
lsls r0, r5, 2
ldr r1, _08078004
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08078044
ldr r1, _08078008
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0807800C
b _0807802A
.align 2, 0
_08078004: .4byte 0x02017800
_08078008: .4byte 0x02024a6a
_0807800C: .4byte 0x030045c0
_08078010:
lsls r0, r5, 2
ldr r1, _08078038
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08078044
ldr r1, _0807803C
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08078040
_0807802A:
adds r0, r1
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r4, r0, 16
b _08078046
.align 2, 0
_08078038: .4byte 0x02017800
_0807803C: .4byte 0x02024a6a
_08078040: .4byte 0x03004360
_08078044:
ldrh r4, [r1, 0x2]
_08078046:
adds r0, r5, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08078060
adds r0, r5, 0
adds r1, r4, 0
bl sub_8077DD8
subs r0, r6, r0
lsls r0, 24
lsrs r6, r0, 24
_08078060:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8077FC0
thumb_func_start obj_id_for_side_relative_to_move
obj_id_for_side_relative_to_move: @ 8078068
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0
bne _08078090
ldr r4, _08078088
ldrb r0, [r4]
bl sub_8078874
lsls r0, 24
cmp r0, 0
beq _080780DE
ldr r1, _0807808C
ldrb r0, [r4]
b _080780EE
.align 2, 0
_08078088: .4byte 0x0202f7c8
_0807808C: .4byte 0x02024be0
_08078090:
cmp r0, 0x1
bne _080780B0
ldr r4, _080780A8
ldrb r0, [r4]
bl sub_8078874
lsls r0, 24
cmp r0, 0
beq _080780DE
ldr r1, _080780AC
ldrb r0, [r4]
b _080780EE
.align 2, 0
_080780A8: .4byte 0x0202f7c9
_080780AC: .4byte 0x02024be0
_080780B0:
cmp r1, 0x2
bne _080780CC
ldr r5, _080780C8
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _080780DE
b _080780E8
.align 2, 0
_080780C8: .4byte 0x0202f7c8
_080780CC:
ldr r5, _080780E4
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
bne _080780E8
_080780DE:
movs r0, 0xFF
b _080780F2
.align 2, 0
_080780E4: .4byte 0x0202f7c9
_080780E8:
ldr r1, _080780F8
ldrb r0, [r5]
eors r0, r4
_080780EE:
adds r0, r1
ldrb r0, [r0]
_080780F2:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080780F8: .4byte 0x02024be0
thumb_func_end obj_id_for_side_relative_to_move
thumb_func_start oamt_set_x3A_32
oamt_set_x3A_32: @ 80780FC
strh r1, [r0, 0x3A]
lsrs r1, 16
strh r1, [r0, 0x3C]
bx lr
thumb_func_end oamt_set_x3A_32
thumb_func_start sub_8078104
sub_8078104: @ 8078104
ldrh r2, [r0, 0x3A]
movs r3, 0x3C
ldrsh r1, [r0, r3]
lsls r1, 16
orrs r2, r1
str r2, [r0, 0x1C]
bx lr
thumb_func_end sub_8078104
thumb_func_start sub_8078114
sub_8078114: @ 8078114
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08078168
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl sine
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _08078154
ldr r2, _08078150
b _0807815C
.align 2, 0
_08078150: .4byte 0xffffff00
_08078154:
cmp r0, 0
bge _08078160
movs r2, 0x80
lsls r2, 1
_0807815C:
adds r0, r1, r2
strh r0, [r4, 0x2E]
_08078160:
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
b _0807816E
_08078168:
adds r0, r4, 0
bl sub_8078104
_0807816E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078114
thumb_func_start sub_8078174
sub_8078174: @ 8078174
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080781E4
movs r2, 0x2E
ldrsh r0, [r4, r2]
ldrh r1, [r4, 0x38]
lsls r1, 16
asrs r1, 24
ldrh r2, [r4, 0x30]
adds r1, r2
lsls r1, 16
asrs r1, 16
bl sine
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x38]
lsls r1, 16
asrs r1, 24
ldrh r2, [r4, 0x30]
adds r1, r2
lsls r1, 16
asrs r1, 16
bl cosine
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
ldrh r0, [r4, 0x36]
ldrh r2, [r4, 0x38]
adds r0, r2
strh r0, [r4, 0x38]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _080781D0
ldr r2, _080781CC
b _080781D8
.align 2, 0
_080781CC: .4byte 0xffffff00
_080781D0:
cmp r0, 0
bge _080781DC
movs r2, 0x80
lsls r2, 1
_080781D8:
adds r0, r1, r2
strh r0, [r4, 0x2E]
_080781DC:
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
b _080781EA
_080781E4:
adds r0, r4, 0
bl sub_8078104
_080781EA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078174
thumb_func_start unref_sub_80781F0
unref_sub_80781F0: @ 80781F0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0807826C
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl sine
strh r0, [r4, 0x24]
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
ldrh r0, [r4, 0x38]
ldrh r2, [r4, 0x36]
adds r0, r2
strh r0, [r4, 0x36]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _08078238
ldr r2, _08078234
b _08078240
.align 2, 0
_08078234: .4byte 0xffffff00
_08078238:
cmp r0, 0
bge _08078244
movs r2, 0x80
lsls r2, 1
_08078240:
adds r0, r1, r2
strh r0, [r4, 0x2E]
_08078244:
ldrh r1, [r4, 0x36]
movs r2, 0x36
ldrsh r0, [r4, r2]
cmp r0, 0xFF
ble _08078258
ldr r2, _08078254
b _08078260
.align 2, 0
_08078254: .4byte 0xffffff00
_08078258:
cmp r0, 0
bge _08078264
movs r2, 0x80
lsls r2, 1
_08078260:
adds r0, r1, r2
strh r0, [r4, 0x36]
_08078264:
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
b _08078272
_0807826C:
adds r0, r4, 0
bl sub_8078104
_08078272:
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_80781F0
thumb_func_start sub_8078278
sub_8078278: @ 8078278
push {r4,lr}
adds r4, r0, 0
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080782CC
movs r2, 0x2E
ldrsh r0, [r4, r2]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl sine
strh r0, [r4, 0x24]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r2, 0x36
ldrsh r1, [r4, r2]
bl cosine
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x2E]
adds r1, r0, r2
strh r1, [r4, 0x2E]
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0xFF
ble _080782B8
ldr r2, _080782B4
b _080782C0
.align 2, 0
_080782B4: .4byte 0xffffff00
_080782B8:
cmp r0, 0
bge _080782C4
movs r2, 0x80
lsls r2, 1
_080782C0:
adds r0, r1, r2
strh r0, [r4, 0x2E]
_080782C4:
ldrh r0, [r4, 0x34]
subs r0, 0x1
strh r0, [r4, 0x34]
b _080782D2
_080782CC:
adds r0, r4, 0
bl sub_8078104
_080782D2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078278
thumb_func_start sub_80782D8
sub_80782D8: @ 80782D8
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x2E]
movs r3, 0x2E
ldrsh r0, [r1, r3]
cmp r0, 0
ble _080782EC
subs r0, r2, 0x1
strh r0, [r1, 0x2E]
b _080782F2
_080782EC:
adds r0, r1, 0
bl sub_8078104
_080782F2:
pop {r0}
bx r0
thumb_func_end sub_80782D8
thumb_func_start sub_80782F8
sub_80782F8: @ 80782F8
push {r4,lr}
adds r4, r0, 0
bl sub_8078314
ldr r1, _08078310
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078310: .4byte sub_8078364
thumb_func_end sub_80782F8
thumb_func_start sub_8078314
sub_8078314: @ 8078314
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x30
ldrsh r1, [r4, r0]
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r1, r0
ble _0807832A
ldrh r0, [r4, 0x2E]
negs r0, r0
strh r0, [r4, 0x2E]
_0807832A:
movs r1, 0x32
ldrsh r0, [r4, r1]
movs r2, 0x30
ldrsh r1, [r4, r2]
subs r0, r1
ldrh r5, [r4, 0x2E]
movs r2, 0x2E
ldrsh r1, [r4, r2]
bl __divsi3
cmp r0, 0
bge _08078344
negs r0, r0
_08078344:
strh r0, [r4, 0x2E]
movs r1, 0x36
ldrsh r0, [r4, r1]
movs r2, 0x34
ldrsh r1, [r4, r2]
subs r0, r1
movs r2, 0x2E
ldrsh r1, [r4, r2]
bl __divsi3
strh r0, [r4, 0x32]
strh r5, [r4, 0x30]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8078314
thumb_func_start sub_8078364
sub_8078364: @ 8078364
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x2E]
movs r3, 0x2E
ldrsh r0, [r1, r3]
cmp r0, 0
ble _08078388
subs r0, r2, 0x1
strh r0, [r1, 0x2E]
ldrh r0, [r1, 0x30]
ldrh r2, [r1, 0x24]
adds r0, r2
strh r0, [r1, 0x24]
ldrh r0, [r1, 0x32]
ldrh r3, [r1, 0x26]
adds r0, r3
strh r0, [r1, 0x26]
b _0807838E
_08078388:
adds r0, r1, 0
bl sub_8078104
_0807838E:
pop {r0}
bx r0
thumb_func_end sub_8078364
thumb_func_start sub_8078394
sub_8078394: @ 8078394
push {lr}
adds r2, r0, 0
ldrh r1, [r2, 0x2E]
movs r3, 0x2E
ldrsh r0, [r2, r3]
cmp r0, 0
ble _080783C4
subs r0, r1, 0x1
strh r0, [r2, 0x2E]
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x34]
adds r0, r1
strh r0, [r2, 0x34]
ldrh r1, [r2, 0x32]
ldrh r3, [r2, 0x36]
adds r1, r3
strh r1, [r2, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r2, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r2, 0x26]
b _080783CA
_080783C4:
adds r0, r2, 0
bl sub_8078104
_080783CA:
pop {r0}
bx r0
thumb_func_end sub_8078394
thumb_func_start sub_80783D0
sub_80783D0: @ 80783D0
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08078400
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x34]
adds r0, r1
strh r0, [r4, 0x34]
ldrh r1, [r4, 0x32]
ldrh r2, [r4, 0x36]
adds r1, r2
strh r1, [r4, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r4, 0x26]
b _08078406
_08078400:
adds r0, r4, 0
bl sub_8078104
_08078406:
adds r0, r4, 0
bl sub_809D638
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80783D0
thumb_func_start unref_sub_8078414
unref_sub_8078414: @ 8078414
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x26]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
ldr r5, _08078450
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, _08078454
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08078450: .4byte 0x0202f7c9
_08078454: .4byte sub_80782F8
thumb_func_end unref_sub_8078414
thumb_func_start sub_8078458
sub_8078458: @ 8078458
push {r4,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x2E]
movs r2, 0x2E
ldrsh r0, [r3, r2]
cmp r0, 0
ble _0807849C
subs r0, r1, 0x1
strh r0, [r3, 0x2E]
ldr r2, _08078498
movs r4, 0x34
ldrsh r1, [r3, r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0x30]
ldrh r4, [r0, 0x24]
adds r1, r4
strh r1, [r0, 0x24]
movs r0, 0x34
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r3, 0x32]
ldrh r2, [r0, 0x26]
adds r1, r2
strh r1, [r0, 0x26]
b _080784A2
.align 2, 0
_08078498: .4byte 0x02020004
_0807849C:
adds r0, r3, 0
bl sub_8078104
_080784A2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078458
thumb_func_start sub_80784A8
sub_80784A8: @ 80784A8
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _080784F8
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
ldrh r1, [r4, 0x30]
ldrh r0, [r4, 0x34]
adds r1, r0
strh r1, [r4, 0x34]
ldrh r0, [r4, 0x32]
ldrh r2, [r4, 0x36]
adds r0, r2
strh r0, [r4, 0x36]
ldr r3, _080784F4
movs r0, 0x38
ldrsh r2, [r4, r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r3
lsls r1, 16
asrs r1, 24
strh r1, [r0, 0x24]
movs r1, 0x38
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r1, 0x26]
b _080784FE
.align 2, 0
_080784F4: .4byte 0x02020004
_080784F8:
adds r0, r4, 0
bl sub_8078104
_080784FE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80784A8
thumb_func_start sub_8078504
sub_8078504: @ 8078504
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
ble _08078566
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
asrs r0, 24
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x30]
adds r1, r0
strh r1, [r4, 0x32]
ldrh r1, [r4, 0x36]
lsls r0, r1, 16
asrs r0, 24
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x34]
adds r1, r0
strh r1, [r4, 0x36]
movs r1, 0x2E
ldrsh r0, [r4, r1]
movs r2, 0x38
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0807856C
movs r1, 0x38
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0807856C
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _0807856C
_08078566:
adds r0, r4, 0
bl sub_8078104
_0807856C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078504
thumb_func_start move_anim_8074EE0
move_anim_8074EE0: @ 8078574
push {r4,lr}
adds r4, r0, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl move_anim_8072740
pop {r4}
pop {r0}
bx r0
thumb_func_end move_anim_8074EE0
thumb_func_start unref_sub_8078588
unref_sub_8078588: @ 8078588
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x26]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
ldr r5, _080785C4
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
ldr r0, _080785C8
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080785C4: .4byte 0x0202f7c8
_080785C8: .4byte sub_80782F8
thumb_func_end unref_sub_8078588
thumb_func_start unref_sub_80785CC
unref_sub_80785CC: @ 80785CC
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x38]
bl ResetPaletteStructByUid
adds r0, r4, 0
bl move_anim_8074EE0
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_80785CC
thumb_func_start sub_80785E4
sub_80785E4: @ 80785E4
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080785FA
adds r0, r2, 0
bl sub_8078104
_080785FA:
pop {r0}
bx r0
thumb_func_end sub_80785E4
thumb_func_start sub_8078600
sub_8078600: @ 8078600
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08078616
adds r0, r2, 0
bl sub_8078104
_08078616:
pop {r0}
bx r0
thumb_func_end sub_8078600
thumb_func_start sub_807861C
sub_807861C: @ 807861C
push {lr}
ldr r1, _08078630
movs r2, 0
strh r2, [r1]
adds r1, 0x2
strh r2, [r1]
bl move_anim_8072740
pop {r0}
bx r0
.align 2, 0
_08078630: .4byte REG_BLDCNT
thumb_func_end sub_807861C
thumb_func_start sub_8078634
sub_8078634: @ 8078634
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0807864C
movs r2, 0
strh r2, [r1]
adds r1, 0x2
strh r2, [r1]
bl move_anim_task_del
pop {r0}
bx r0
.align 2, 0
_0807864C: .4byte REG_BLDCNT
thumb_func_end sub_8078634
thumb_func_start sub_8078650
sub_8078650: @ 8078650
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _08078678
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08078678: .4byte 0x0202f7c8
thumb_func_end sub_8078650
thumb_func_start sub_807867C
sub_807867C: @ 807867C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
lsls r1, 16
lsrs r5, r1, 16
mov r8, r5
ldr r7, _080786B4
ldrb r0, [r7]
movs r1, 0
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080786B8
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
cmp r6, r0
bhi _080786C8
cmp r6, r0
bcs _080786BC
lsls r0, r5, 16
b _080786D8
.align 2, 0
_080786B4: .4byte 0x0202f7c8
_080786B8: .4byte 0x0202f7c9
_080786BC:
ldrb r0, [r7]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _080786D4
_080786C8:
ldrh r1, [r4, 0x20]
lsls r0, r5, 16
asrs r0, 16
subs r1, r0
strh r1, [r4, 0x20]
b _080786E0
_080786D4:
mov r1, r8
lsls r0, r1, 16
_080786D8:
asrs r0, 16
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
_080786E0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_807867C
thumb_func_start sub_80786EC
sub_80786EC: @ 80786EC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
movs r5, 0
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
movs r0, 0x2E
ldrsh r1, [r4, r0]
movs r0, 0x80
lsls r0, 8
bl __divsi3
strh r0, [r4, 0x3A]
strh r5, [r4, 0x3C]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80786EC
thumb_func_start sub_8078718
sub_8078718: @ 8078718
push {r4,lr}
adds r4, r0, 0
bl sub_8078B5C
lsls r0, 24
cmp r0, 0
bne _08078744
ldrh r0, [r4, 0x3A]
ldrh r1, [r4, 0x3C]
adds r0, r1
strh r0, [r4, 0x3C]
lsls r0, 16
lsrs r0, 24
movs r2, 0x38
ldrsh r1, [r4, r2]
bl sine
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
movs r0, 0
b _08078746
_08078744:
movs r0, 0x1
_08078746:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8078718
thumb_func_start oamt_add_pos2_onto_pos1
oamt_add_pos2_onto_pos1: @ 807874C
ldrh r1, [r0, 0x24]
ldrh r2, [r0, 0x20]
adds r1, r2
movs r2, 0
strh r1, [r0, 0x20]
ldrh r1, [r0, 0x26]
ldrh r3, [r0, 0x22]
adds r1, r3
strh r1, [r0, 0x22]
strh r2, [r0, 0x24]
strh r2, [r0, 0x26]
bx lr
thumb_func_end oamt_add_pos2_onto_pos1
thumb_func_start sub_8078764
sub_8078764: @ 8078764
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
cmp r1, 0
bne _0807878C
ldr r4, _080787A8
ldrb r0, [r4]
movs r1, 0
bl sub_8077EE4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077EE4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
_0807878C:
ldr r4, _080787AC
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
bl sub_807867C
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080787A8: .4byte 0x0202f7c9
_080787AC: .4byte 0x03004b00
thumb_func_end sub_8078764
thumb_func_start sub_80787B0
sub_80787B0: @ 80787B0
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
cmp r1, 0
bne _080787D4
ldr r4, _080787D0
ldrb r0, [r4]
movs r1, 0
bl sub_8077EE4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
b _080787E8
.align 2, 0
_080787D0: .4byte 0x0202f7c8
_080787D4:
ldr r4, _0807880C
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
_080787E8:
bl sub_8077EE4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r4, _08078810
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
bl sub_807867C
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807880C: .4byte 0x0202f7c8
_08078810: .4byte 0x03004b00
thumb_func_end sub_80787B0
thumb_func_start battle_side_get_owner
battle_side_get_owner: @ 8078814
lsls r0, 24
lsrs r0, 24
ldr r1, _08078824
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
bx lr
.align 2, 0
_08078824: .4byte 0x02024a72
thumb_func_end battle_side_get_owner
thumb_func_start battle_get_per_side_status
battle_get_per_side_status: @ 8078828
lsls r0, 24
lsrs r0, 24
ldr r1, _08078834
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_08078834: .4byte 0x02024a72
thumb_func_end battle_get_per_side_status
thumb_func_start battle_get_side_with_given_state
battle_get_side_with_given_state: @ 8078838
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r1, 0
ldr r0, _0807886C
ldrb r2, [r0]
cmp r1, r2
bcs _08078862
ldr r4, _08078870
ldrb r0, [r4]
cmp r0, r3
beq _08078862
_08078850:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r2
bcs _08078862
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, r3
bne _08078850
_08078862:
adds r0, r1, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0807886C: .4byte 0x02024a68
_08078870: .4byte 0x02024a72
thumb_func_end battle_get_side_with_given_state
thumb_func_start sub_8078874
sub_8078874: @ 8078874
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080788A0
ldr r0, _08078898
ldrb r0, [r0]
cmp r0, r4
beq _080788EE
ldr r0, _0807889C
ldrb r0, [r0]
cmp r0, r4
beq _080788EE
b _080788FC
.align 2, 0
_08078898: .4byte 0x0202f7c8
_0807889C: .4byte 0x0202f7c9
_080788A0:
ldr r0, _080788C8
adds r0, r4, r0
ldrb r0, [r0]
cmp r0, 0xFF
beq _080788FC
adds r0, r4, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _080788D4
ldr r1, _080788CC
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080788D0
b _080788E2
.align 2, 0
_080788C8: .4byte 0x02024a72
_080788CC: .4byte 0x02024a6a
_080788D0: .4byte 0x030045c0
_080788D4:
ldr r1, _080788F4
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080788F8
_080788E2:
adds r0, r1
movs r1, 0x39
bl PokemonGetField
cmp r0, 0
beq _080788FC
_080788EE:
movs r0, 0x1
b _080788FE
.align 2, 0
_080788F4: .4byte 0x02024a6a
_080788F8: .4byte 0x03004360
_080788FC:
movs r0, 0
_080788FE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8078874
thumb_func_start battle_type_is_double
battle_type_is_double: @ 8078904
ldr r0, _08078910
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
bx lr
.align 2, 0
_08078910: .4byte 0x020239f8
thumb_func_end battle_type_is_double
thumb_func_start sub_8078914
sub_8078914: @ 8078914
push {r4,lr}
adds r4, r0, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08078938
ldr r0, _08078930
str r0, [r4]
ldr r0, _08078934
str r0, [r4, 0x4]
movs r0, 0xE
b _08078942
.align 2, 0
_08078930: .4byte 0x06008000
_08078934: .4byte 0x0600f000
_08078938:
ldr r0, _0807894C
str r0, [r4]
ldr r0, _08078950
str r0, [r4, 0x4]
movs r0, 0x8
_08078942:
strb r0, [r4, 0x8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807894C: .4byte 0x06004000
_08078950: .4byte 0x0600e000
thumb_func_end sub_8078914
thumb_func_start sub_8078954
sub_8078954: @ 8078954
push {r4,lr}
adds r4, r0, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08078978
ldr r0, _08078970
str r0, [r4]
ldr r0, _08078974
str r0, [r4, 0x4]
movs r0, 0xE
b _080789AA
.align 2, 0
_08078970: .4byte 0x06008000
_08078974: .4byte 0x0600f000
_08078978:
ldr r0, _08078994
ldrb r0, [r0]
bl battle_get_per_side_status_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080789A0
ldr r0, _08078998
str r0, [r4]
ldr r0, _0807899C
str r0, [r4, 0x4]
movs r0, 0x8
b _080789AA
.align 2, 0
_08078994: .4byte 0x0202f7c8
_08078998: .4byte 0x06004000
_0807899C: .4byte 0x0600e000
_080789A0:
ldr r0, _080789B4
str r0, [r4]
ldr r0, _080789B8
str r0, [r4, 0x4]
movs r0, 0x9
_080789AA:
strb r0, [r4, 0x8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080789B4: .4byte 0x06006000
_080789B8: .4byte 0x0600f000
thumb_func_end sub_8078954
thumb_func_start sub_80789BC
sub_80789BC: @ 80789BC
push {lr}
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080789CC
movs r0, 0x2
b _080789CE
_080789CC:
movs r0, 0x1
_080789CE:
pop {r1}
bx r1
thumb_func_end sub_80789BC
thumb_func_start sub_80789D4
sub_80789D4: @ 80789D4
push {lr}
lsls r0, 24
cmp r0, 0
bne _080789F4
ldr r2, _080789F0
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r2, 0x1]
movs r1, 0x20
orrs r0, r1
b _08078A2A
.align 2, 0
_080789F0: .4byte REG_BG3CNT
_080789F4:
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08078A14
ldr r2, _08078A10
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
strb r0, [r2, 0x1]
ldrb r0, [r2, 0x1]
movs r1, 0x20
orrs r0, r1
b _08078A2A
.align 2, 0
_08078A10: .4byte REG_BG3CNT
_08078A14:
ldr r2, _08078A30
ldrb r1, [r2, 0x1]
movs r0, 0x3F
ands r0, r1
movs r1, 0x40
orrs r0, r1
strb r0, [r2, 0x1]
ldrb r1, [r2, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
_08078A2A:
strb r0, [r2, 0x1]
pop {r0}
bx r0
.align 2, 0
_08078A30: .4byte REG_BG3CNT
thumb_func_end sub_80789D4
thumb_func_start sub_8078A34
sub_8078A34: @ 8078A34
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl sub_8078A5C
ldr r1, _08078A58
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078A58: .4byte sub_80783D0
thumb_func_end sub_8078A34
thumb_func_start sub_8078A5C
sub_8078A5C: @ 8078A5C
push {r4-r6,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x32]
ldrh r1, [r5, 0x30]
subs r0, r1
ldrh r4, [r5, 0x36]
ldrh r1, [r5, 0x34]
subs r4, r1
lsls r4, 24
lsrs r4, 16
lsls r0, 24
asrs r0, 16
movs r2, 0x2E
ldrsh r1, [r5, r2]
bl __divsi3
movs r6, 0
strh r0, [r5, 0x30]
lsls r4, 16
asrs r4, 16
movs r0, 0x2E
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl __divsi3
strh r0, [r5, 0x32]
strh r6, [r5, 0x36]
strh r6, [r5, 0x34]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8078A5C
thumb_func_start obj_translate_based_on_private_1_2_3_4
obj_translate_based_on_private_1_2_3_4: @ 8078A9C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
movs r0, 0x32
ldrsh r1, [r7, r0]
movs r2, 0x30
ldrsh r0, [r7, r2]
subs r1, r0
movs r3, 0x36
ldrsh r2, [r7, r3]
movs r3, 0x34
ldrsh r0, [r7, r3]
subs r2, r0
lsrs r0, r1, 31
mov r8, r0
lsrs r3, r2, 31
mov r9, r3
cmp r1, 0
bge _08078AC8
negs r1, r1
_08078AC8:
lsls r0, r1, 24
lsrs r6, r0, 16
adds r0, r2, 0
cmp r0, 0
bge _08078AD4
negs r0, r0
_08078AD4:
lsls r0, 24
lsrs r5, r0, 16
movs r0, 0x2E
ldrsh r4, [r7, r0]
adds r0, r6, 0
adds r1, r4, 0
bl __divsi3
lsls r0, 16
lsrs r6, r0, 16
adds r0, r5, 0
adds r1, r4, 0
bl __divsi3
lsls r0, 16
lsrs r5, r0, 16
mov r2, r8
cmp r2, 0
beq _08078B00
movs r0, 0x1
orrs r6, r0
b _08078B04
_08078B00:
ldr r0, _08078B10
ands r6, r0
_08078B04:
mov r3, r9
cmp r3, 0
beq _08078B14
movs r0, 0x1
orrs r5, r0
b _08078B18
.align 2, 0
_08078B10: .4byte 0x0000fffe
_08078B14:
ldr r0, _08078B30
ands r5, r0
_08078B18:
movs r0, 0
strh r6, [r7, 0x30]
strh r5, [r7, 0x32]
strh r0, [r7, 0x36]
strh r0, [r7, 0x34]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08078B30: .4byte 0x0000fffe
thumb_func_end obj_translate_based_on_private_1_2_3_4
thumb_func_start sub_8078B34
sub_8078B34: @ 8078B34
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _08078B58
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078B58: .4byte sub_8078BB8
thumb_func_end sub_8078B34
thumb_func_start sub_8078B5C
sub_8078B5C: @ 8078B5C
push {r4-r6,lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
bne _08078B6C
movs r0, 0x1
b _08078BB0
_08078B6C:
ldrh r1, [r2, 0x30]
ldrh r4, [r2, 0x32]
ldrh r6, [r2, 0x34]
ldrh r5, [r2, 0x36]
adds r0, r6, r1
lsls r3, r0, 16
lsrs r6, r3, 16
adds r0, r5, r4
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0x1
ands r1, r0
cmp r1, 0
beq _08078B8E
lsrs r0, r3, 24
negs r0, r0
b _08078B90
_08078B8E:
lsrs r0, r3, 24
_08078B90:
strh r0, [r2, 0x24]
movs r0, 0x1
ands r4, r0
cmp r4, 0
beq _08078BA0
lsrs r0, r5, 8
negs r0, r0
b _08078BA2
_08078BA0:
lsrs r0, r5, 8
_08078BA2:
strh r0, [r2, 0x26]
strh r6, [r2, 0x34]
strh r5, [r2, 0x36]
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
movs r0, 0
_08078BB0:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8078B5C
thumb_func_start sub_8078BB8
sub_8078BB8: @ 8078BB8
push {r4,lr}
adds r4, r0, 0
bl sub_8078B5C
lsls r0, 24
cmp r0, 0
beq _08078BCC
adds r0, r4, 0
bl sub_8078104
_08078BCC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078BB8
thumb_func_start sub_8078BD4
sub_8078BD4: @ 8078BD4
push {r4,lr}
adds r4, r0, 0
movs r0, 0x32
ldrsh r1, [r4, r0]
movs r2, 0x30
ldrsh r0, [r4, r2]
subs r0, r1, r0
cmp r0, 0
bge _08078BE8
negs r0, r0
_08078BE8:
lsls r0, 8
movs r2, 0x2E
ldrsh r1, [r4, r2]
bl __divsi3
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl obj_translate_based_on_private_1_2_3_4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078BD4
thumb_func_start sub_8078C00
sub_8078C00: @ 8078C00
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl sub_8078BD4
ldr r1, _08078C24
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078C24: .4byte sub_8078BB8
thumb_func_end sub_8078C00
thumb_func_start sub_8078C28
sub_8078C28: @ 8078C28
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
movs r0, 0x32
ldrsh r1, [r7, r0]
movs r2, 0x30
ldrsh r0, [r7, r2]
subs r1, r0
movs r3, 0x36
ldrsh r2, [r7, r3]
movs r3, 0x34
ldrsh r0, [r7, r3]
subs r2, r0
lsrs r0, r1, 31
mov r8, r0
lsrs r3, r2, 31
mov r9, r3
cmp r1, 0
bge _08078C54
negs r1, r1
_08078C54:
lsls r0, r1, 20
lsrs r6, r0, 16
adds r0, r2, 0
cmp r0, 0
bge _08078C60
negs r0, r0
_08078C60:
lsls r0, 20
lsrs r5, r0, 16
movs r0, 0x2E
ldrsh r4, [r7, r0]
adds r0, r6, 0
adds r1, r4, 0
bl __divsi3
lsls r0, 16
lsrs r6, r0, 16
adds r0, r5, 0
adds r1, r4, 0
bl __divsi3
lsls r0, 16
lsrs r5, r0, 16
mov r2, r8
cmp r2, 0
beq _08078C8C
movs r0, 0x1
orrs r6, r0
b _08078C90
_08078C8C:
ldr r0, _08078C9C
ands r6, r0
_08078C90:
mov r3, r9
cmp r3, 0
beq _08078CA0
movs r0, 0x1
orrs r5, r0
b _08078CA4
.align 2, 0
_08078C9C: .4byte 0x0000fffe
_08078CA0:
ldr r0, _08078CBC
ands r5, r0
_08078CA4:
movs r0, 0
strh r6, [r7, 0x30]
strh r5, [r7, 0x32]
strh r0, [r7, 0x36]
strh r0, [r7, 0x34]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08078CBC: .4byte 0x0000fffe
thumb_func_end sub_8078C28
thumb_func_start sub_8078CC0
sub_8078CC0: @ 8078CC0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl sub_8078C28
ldr r1, _08078CE4
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078CE4: .4byte sub_8078D44
thumb_func_end sub_8078CC0
thumb_func_start sub_8078CE8
sub_8078CE8: @ 8078CE8
push {r4-r6,lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
bne _08078CF8
movs r0, 0x1
b _08078D3C
_08078CF8:
ldrh r1, [r2, 0x30]
ldrh r4, [r2, 0x32]
ldrh r6, [r2, 0x34]
ldrh r5, [r2, 0x36]
adds r0, r6, r1
lsls r3, r0, 16
lsrs r6, r3, 16
adds r0, r5, r4
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0x1
ands r1, r0
cmp r1, 0
beq _08078D1A
lsrs r0, r3, 20
negs r0, r0
b _08078D1C
_08078D1A:
lsrs r0, r3, 20
_08078D1C:
strh r0, [r2, 0x24]
movs r0, 0x1
ands r4, r0
cmp r4, 0
beq _08078D2C
lsrs r0, r5, 4
negs r0, r0
b _08078D2E
_08078D2C:
lsrs r0, r5, 4
_08078D2E:
strh r0, [r2, 0x26]
strh r6, [r2, 0x34]
strh r5, [r2, 0x36]
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
movs r0, 0
_08078D3C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8078CE8
thumb_func_start sub_8078D44
sub_8078D44: @ 8078D44
push {r4,lr}
adds r4, r0, 0
bl sub_8078CE8
lsls r0, 24
cmp r0, 0
beq _08078D58
adds r0, r4, 0
bl sub_8078104
_08078D58:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078D44
thumb_func_start sub_8078D60
sub_8078D60: @ 8078D60
push {r4,lr}
adds r4, r0, 0
movs r0, 0x32
ldrsh r1, [r4, r0]
movs r2, 0x30
ldrsh r0, [r4, r2]
subs r0, r1, r0
cmp r0, 0
bge _08078D74
negs r0, r0
_08078D74:
lsls r0, 4
movs r2, 0x2E
ldrsh r1, [r4, r2]
bl __divsi3
strh r0, [r4, 0x2E]
adds r0, r4, 0
bl sub_8078C28
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8078D60
thumb_func_start sub_8078D8C
sub_8078D8C: @ 8078D8C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
bl sub_8078D60
ldr r1, _08078DB0
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078DB0: .4byte sub_8078D44
thumb_func_end sub_8078D8C
thumb_func_start obj_id_set_rotscale
obj_id_set_rotscale: @ 8078DB4
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 16
lsls r3, 16
lsrs r3, 16
ldr r5, _08078E2C
lsls r2, 16
lsrs r1, 16
orrs r1, r2
str r1, [sp]
ldr r0, [sp, 0x4]
ands r0, r5
orrs r0, r3
str r0, [sp, 0x4]
bl sub_8078E38
lsls r0, 24
cmp r0, 0
beq _08078DF0
mov r0, sp
ldrh r0, [r0]
negs r0, r0
lsls r0, 16
lsrs r0, 16
ldr r1, [sp]
ands r1, r5
orrs r1, r0
str r1, [sp]
_08078DF0:
ldr r1, _08078E30
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r4, [r0, 0x3]
lsls r4, 26
lsrs r4, 27
add r5, sp, 0x8
mov r0, sp
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ObjAffineSet
ldr r0, _08078E34
lsls r4, 3
adds r4, r0
ldrh r0, [r5]
strh r0, [r4]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x2]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x4]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x6]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08078E2C: .4byte 0xffff0000
_08078E30: .4byte 0x02020004
_08078E34: .4byte 0x030027f0
thumb_func_end obj_id_set_rotscale
thumb_func_start sub_8078E38
sub_8078E38: @ 8078E38
push {r4,lr}
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08078E68
ldr r4, _08078E64
movs r0, 0
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
movs r2, 0x32
ldrsh r0, [r1, r2]
cmp r0, 0xC9
beq _08078E68
movs r0, 0x1
b _08078E6A
.align 2, 0
_08078E64: .4byte 0x02020004
_08078E68:
movs r0, 0
_08078E6A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8078E38
thumb_func_start sub_8078E70
sub_8078E70: @ 8078E70
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
ldr r1, _08078F38
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r4, r0, r1
ldrh r0, [r4, 0x2E]
lsls r0, 24
lsrs r7, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08078EA6
adds r0, r7, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08078EB4
_08078EA6:
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
_08078EB4:
ldr r1, _08078F38
lsls r4, r6, 4
adds r0, r4, r6
lsls r0, 2
adds r5, r0, r1
movs r0, 0x3
mov r1, r8
ands r1, r0
lsls r1, 2
ldrb r2, [r5, 0x1]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x1]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08078F0E
ldrb r0, [r5, 0x1]
lsls r0, 30
cmp r0, 0
bne _08078F0E
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
ldr r1, _08078F3C
adds r0, r1
ldrb r1, [r0, 0x6]
movs r0, 0x1F
ands r1, r0
lsls r1, 1
ldrb r2, [r5, 0x3]
movs r0, 0x3F
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x3]
_08078F0E:
ldr r1, _08078F38
adds r0, r4, r6
lsls r0, 2
adds r0, r1
ldrb r3, [r0, 0x1]
movs r1, 0x3
orrs r3, r1
strb r3, [r0, 0x1]
lsrs r1, r3, 6
ldrb r2, [r0, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
bl CalcCenterToCornerVec
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08078F38: .4byte 0x02020004
_08078F3C: .4byte 0x02017810
thumb_func_end sub_8078E70
thumb_func_start sub_8078F40
sub_8078F40: @ 8078F40
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r2, 0x80
lsls r2, 1
adds r0, r4, 0
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
ldr r1, _08078F98
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x1]
movs r1, 0x4
negs r1, r1
ands r1, r2
movs r2, 0x1
orrs r1, r2
movs r2, 0xD
negs r2, r2
ands r1, r2
strb r1, [r0, 0x1]
adds r3, r0, 0
adds r3, 0x2C
ldrb r2, [r3]
movs r1, 0x7F
ands r1, r2
strb r1, [r3]
ldrb r3, [r0, 0x1]
lsrs r1, r3, 6
ldrb r2, [r0, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
bl CalcCenterToCornerVec
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08078F98: .4byte 0x02020004
thumb_func_end sub_8078F40
thumb_func_start sub_8078F9C
sub_8078F9C: @ 8078F9C
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _08078FD4
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r2, r1, r2
ldrb r0, [r2, 0x3]
lsls r0, 26
lsrs r0, 27
ldr r1, _08078FD8
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x4]
movs r3, 0x4
ldrsh r0, [r0, r3]
cmp r0, 0
bge _08078FC8
negs r0, r0
lsls r0, 16
lsrs r1, r0, 16
_08078FC8:
lsls r0, r1, 16
asrs r0, 19
strh r0, [r2, 0x26]
pop {r0}
bx r0
.align 2, 0
_08078FD4: .4byte 0x02020004
_08078FD8: .4byte 0x030027f0
thumb_func_end sub_8078F9C
thumb_func_start sub_8078FDC
sub_8078FDC: @ 8078FDC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r4, r0, 0
ldr r0, [sp, 0x28]
lsls r1, 24
lsrs r6, r1, 24
lsls r2, 16
lsrs r5, r2, 16
lsls r3, 16
lsrs r7, r3, 16
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldrb r0, [r4, 0x1]
lsls r0, 30
lsrs r0, 30
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08079082
adds r0, r4, 0
adds r0, 0x2C
ldrb r1, [r0]
movs r2, 0x80
orrs r1, r2
strb r1, [r0]
cmp r6, 0
beq _0807902A
ldrb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
_0807902A:
ldr r6, _08079090
lsls r0, r7, 16
orrs r5, r0
str r5, [sp]
ldr r0, [sp, 0x4]
ands r0, r6
mov r1, r8
orrs r0, r1
str r0, [sp, 0x4]
bl sub_8078E38
lsls r0, 24
cmp r0, 0
beq _08079058
mov r0, sp
ldrh r0, [r0]
negs r0, r0
lsls r0, 16
lsrs r0, 16
ldr r1, [sp]
ands r1, r6
orrs r1, r0
str r1, [sp]
_08079058:
ldrb r4, [r4, 0x3]
lsls r4, 26
lsrs r4, 27
add r5, sp, 0x8
mov r0, sp
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ObjAffineSet
ldr r0, _08079094
lsls r4, 3
adds r4, r0
ldrh r0, [r5]
strh r0, [r4]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x2]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x4]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x6]
_08079082:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08079090: .4byte 0xffff0000
_08079094: .4byte 0x030027f0
thumb_func_end sub_8078FDC
thumb_func_start sub_8079098
sub_8079098: @ 8079098
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
movs r3, 0x80
lsls r3, 1
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0x1
adds r2, r3, 0
bl sub_8078FDC
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
ldrb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
lsls r3, 30
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8079098
thumb_func_start sub_80790D8
sub_80790D8: @ 80790D8
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl ArcTan2
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80790D8
thumb_func_start sub_80790F0
sub_80790F0: @ 80790F0
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl sub_80790D8
lsls r0, 16
negs r0, r0
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80790F0
thumb_func_start sub_8079108
sub_8079108: @ 8079108
push {r4-r7,lr}
lsls r1, 24
lsls r0, 20
lsrs r0, 16
cmp r1, 0
bne _08079184
ldr r2, _08079178
ldr r1, _0807917C
lsls r0, 1
adds r4, r0, r1
adds r5, r0, r2
movs r6, 0xF
_08079120:
ldr r0, [r5]
lsls r2, r0, 27
lsrs r2, 27
lsls r1, r0, 22
lsrs r1, 27
adds r2, r1
lsls r0, 17
lsrs r0, 27
adds r0, r2
movs r1, 0x3
bl __udivsi3
lsls r0, 16
lsrs r0, 16
movs r1, 0x1F
ands r0, r1
ldrb r1, [r4]
movs r3, 0x20
negs r3, r3
adds r2, r3, 0
ands r1, r2
orrs r1, r0
strb r1, [r4]
lsls r3, r0, 5
ldrh r1, [r4]
ldr r7, _08079180
adds r2, r7, 0
ands r1, r2
orrs r1, r3
strh r1, [r4]
lsls r0, 2
ldrb r1, [r4, 0x1]
movs r3, 0x7D
negs r3, r3
adds r2, r3, 0
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x1]
adds r4, 0x2
adds r5, 0x2
subs r6, 0x1
cmp r6, 0
bge _08079120
b _08079194
.align 2, 0
_08079178: .4byte 0x0202eac8
_0807917C: .4byte 0x0202eec8
_08079180: .4byte 0xfffffc1f
_08079184:
lsls r1, r0, 1
ldr r0, _0807919C
adds r0, r1, r0
ldr r2, _080791A0
adds r1, r2
ldr r2, _080791A4
bl CpuSet
_08079194:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0807919C: .4byte 0x0202eac8
_080791A0: .4byte 0x0202eec8
_080791A4: .4byte REG_BG0CNT
thumb_func_end sub_8079108
thumb_func_start sub_80791A8
sub_80791A8: @ 80791A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r4, [sp, 0x28]
ldr r5, [sp, 0x2C]
ldr r6, [sp, 0x30]
lsls r0, 24
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r4, 24
lsrs r4, 24
mov r10, r4
lsls r5, 24
lsrs r5, 24
str r5, [sp]
lsls r6, 24
lsrs r6, 24
str r6, [sp, 0x4]
movs r4, 0
cmp r0, 0
beq _080791FE
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080791F2
movs r4, 0xE
b _080791FE
_080791F2:
bl sub_80789BC
lsls r0, 24
lsrs r0, 24
movs r4, 0x1
lsls r4, r0
_080791FE:
cmp r7, 0
beq _08079210
ldr r0, _08079288
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_08079210:
mov r0, r8
cmp r0, 0
beq _08079224
ldr r0, _0807928C
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_08079224:
mov r0, r9
cmp r0, 0
beq _0807924A
ldr r6, _08079288
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _0807924A
ldrb r0, [r6]
eors r0, r5
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_0807924A:
mov r0, r10
cmp r0, 0
beq _08079270
ldr r6, _0807928C
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079270
ldrb r0, [r6]
eors r0, r5
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_08079270:
ldr r0, [sp]
cmp r0, 0
beq _08079296
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08079290
movs r0, 0x80
lsls r0, 1
b _08079294
.align 2, 0
_08079288: .4byte 0x0202f7c8
_0807928C: .4byte 0x0202f7c9
_08079290:
movs r0, 0x80
lsls r0, 7
_08079294:
orrs r4, r0
_08079296:
ldr r0, [sp, 0x4]
cmp r0, 0
beq _080792AC
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _080792AC
movs r0, 0x80
lsls r0, 2
orrs r4, r0
_080792AC:
adds r0, r4, 0
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80791A8
thumb_func_start sub_80792C0
sub_80792C0: @ 80792C0
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r6, r1, 24
lsls r2, 24
lsrs r7, r2, 24
lsls r3, 24
lsrs r3, 24
mov r8, r3
movs r4, 0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _080792EE
cmp r5, 0
beq _0807939C
movs r4, 0x80
lsls r4, 11
b _0807939C
_080792EE:
cmp r5, 0
beq _08079316
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079316
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r4, 0x1
lsls r4, r0
_08079316:
cmp r6, 0
beq _08079342
movs r0, 0x2
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079342
movs r0, 0x2
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_08079342:
cmp r7, 0
beq _0807936E
movs r0, 0x1
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _0807936E
movs r0, 0x1
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_0807936E:
mov r0, r8
cmp r0, 0
beq _0807939C
movs r0, 0x3
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _0807939C
movs r0, 0x3
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
orrs r4, r0
_0807939C:
adds r0, r4, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80792C0
thumb_func_start sub_80793A8
sub_80793A8: @ 80793A8
lsls r0, 24
lsrs r0, 24
bx lr
thumb_func_end sub_80793A8
thumb_func_start unref_sub_80793B0
unref_sub_80793B0: @ 80793B0
push {lr}
lsls r0, 24
lsrs r0, 24
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end unref_sub_80793B0
thumb_func_start sub_80793C4
sub_80793C4: @ 80793C4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08079402
ldr r2, _080793F0
movs r3, 0x6
ldrsh r0, [r2, r3]
movs r1, 0
cmp r0, 0
bne _080793DE
movs r1, 0x1
_080793DE:
movs r3, 0x4
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080793F4
adds r0, r4, 0
bl sub_80787B0
b _080793FA
.align 2, 0
_080793F0: .4byte 0x03004b00
_080793F4:
adds r0, r4, 0
bl sub_8078764
_080793FA:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _08079416
_08079402:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x30
ands r0, r1
cmp r0, 0
beq _08079416
adds r0, r4, 0
bl move_anim_8074EE0
_08079416:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80793C4
thumb_func_start sub_807941C
sub_807941C: @ 807941C
push {r4-r7,lr}
adds r5, r0, 0
ldr r6, _08079494
movs r1, 0xA
ldrsh r0, [r6, r1]
movs r1, 0xFF
lsls r1, 8
ands r0, r1
movs r1, 0
cmp r0, 0
bne _08079434
movs r1, 0x1
_08079434:
ldrb r0, [r6, 0xA]
movs r7, 0x1
cmp r0, 0
bne _0807943E
movs r7, 0x3
_0807943E:
adds r0, r5, 0
bl sub_80787B0
ldr r0, _08079498
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08079458
ldrh r0, [r6, 0x4]
negs r0, r0
strh r0, [r6, 0x4]
_08079458:
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldr r4, _0807949C
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
strh r0, [r5, 0x32]
ldrb r0, [r4]
adds r1, r7, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
adds r0, r6
strh r0, [r5, 0x36]
ldr r0, _080794A0
str r0, [r5, 0x1C]
ldr r1, _080794A4
adds r0, r5, 0
bl oamt_set_x3A_32
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08079494: .4byte 0x03004b00
_08079498: .4byte 0x0202f7c8
_0807949C: .4byte 0x0202f7c9
_080794A0: .4byte sub_8078B34
_080794A4: .4byte move_anim_8072740
thumb_func_end sub_807941C
thumb_func_start sub_80794A8
sub_80794A8: @ 80794A8
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
ldr r0, _08079508
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _080794C8
ldr r1, _0807950C
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080794C8:
ldr r4, _0807950C
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _08079510
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
strh r0, [r6, 0x36]
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
adds r0, r6, 0
bl sub_80786EC
ldr r0, _08079514
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08079508: .4byte 0x0202f7c8
_0807950C: .4byte 0x03004b00
_08079510: .4byte 0x0202f7c9
_08079514: .4byte sub_8079518
thumb_func_end sub_80794A8
thumb_func_start sub_8079518
sub_8079518: @ 8079518
push {r4,lr}
adds r4, r0, 0
bl sub_8078718
lsls r0, 24
cmp r0, 0
beq _0807952C
adds r0, r4, 0
bl move_anim_8072740
_0807952C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8079518
thumb_func_start sub_8079534
sub_8079534: @ 8079534
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, _08079548
movs r2, 0xC
ldrsh r1, [r0, r2]
cmp r1, 0
bne _0807954C
movs r4, 0x1
movs r7, 0x3
b _08079550
.align 2, 0
_08079548: .4byte 0x03004b00
_0807954C:
movs r4, 0
movs r7, 0x1
_08079550:
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08079568
adds r0, r5, 0
adds r1, r4, 0
bl sub_80787B0
ldr r0, _08079564
b _08079572
.align 2, 0
_08079564: .4byte 0x0202f7c8
_08079568:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8078764
ldr r0, _080795D0
_08079572:
ldrb r6, [r0]
ldr r0, _080795D4
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _0807958A
ldr r1, _080795D8
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_0807958A:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8078764
ldr r4, _080795D8
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
adds r0, r6, 0
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r2, [r4, 0x4]
adds r0, r2
strh r0, [r5, 0x32]
adds r0, r6, 0
adds r1, r7, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r5, 0x36]
ldr r0, _080795DC
str r0, [r5, 0x1C]
ldr r1, _080795E0
adds r0, r5, 0
bl oamt_set_x3A_32
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080795D0: .4byte 0x0202f7c9
_080795D4: .4byte 0x0202f7c8
_080795D8: .4byte 0x03004b00
_080795DC: .4byte sub_8078B34
_080795E0: .4byte move_anim_8072740
thumb_func_end sub_8079534
thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode
duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80795E4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
beq _0807964E
movs r6, 0
ldr r2, _08079640
lsls r0, r1, 4
adds r0, r1
lsls r1, r0, 2
_08079600:
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r4, r0, r2
adds r5, r4, 0
adds r5, 0x3E
ldrb r0, [r5]
lsls r0, 31
cmp r0, 0
bne _08079644
adds r0, r4, 0
adds r1, r2
movs r2, 0x44
bl memcpy
ldrb r1, [r4, 0x1]
movs r2, 0xD
negs r2, r2
adds r0, r2, 0
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r4, 0x1]
ldrb r0, [r5]
adds r2, 0x8
adds r1, r2, 0
ands r0, r1
strb r0, [r5]
lsls r0, r6, 16
asrs r0, 16
b _08079652
.align 2, 0
_08079640: .4byte 0x02020004
_08079644:
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0x3F
bls _08079600
_0807964E:
movs r0, 0x1
negs r0, r0
_08079652:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode
thumb_func_start obj_delete_but_dont_free_vram
obj_delete_but_dont_free_vram: @ 8079658
push {lr}
adds r3, r0, 0
adds r3, 0x3F
ldrb r1, [r3]
movs r2, 0x40
orrs r1, r2
strb r1, [r3]
bl DestroySprite
pop {r0}
bx r0
thumb_func_end obj_delete_but_dont_free_vram
thumb_func_start sub_8079670
sub_8079670: @ 8079670
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
movs r5, 0
movs r3, 0
ldr r4, _080796E4
movs r0, 0x4
ldrsh r1, [r4, r0]
movs r6, 0
ldrsh r0, [r4, r6]
cmp r1, r0
ble _0807968A
movs r3, 0x1
_0807968A:
cmp r1, r0
bge _08079690
ldr r3, _080796E8
_08079690:
movs r0, 0x6
ldrsh r1, [r4, r0]
movs r6, 0x2
ldrsh r0, [r4, r6]
cmp r1, r0
ble _0807969E
movs r5, 0x1
_0807969E:
cmp r1, r0
bge _080796A4
ldr r5, _080796E8
_080796A4:
ldr r0, _080796EC
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
movs r2, 0
strh r2, [r1, 0x8]
ldrh r0, [r4, 0x8]
strh r0, [r1, 0xA]
strh r2, [r1, 0xC]
ldrh r0, [r4]
strh r0, [r1, 0xE]
ldrh r0, [r4, 0x2]
strh r0, [r1, 0x10]
strh r3, [r1, 0x12]
strh r5, [r1, 0x14]
ldrh r0, [r4, 0x4]
strh r0, [r1, 0x16]
ldrh r0, [r4, 0x6]
strh r0, [r1, 0x18]
ldr r3, _080796F0
ldrh r0, [r4, 0x2]
lsls r0, 8
ldrh r2, [r4]
orrs r0, r2
strh r0, [r3]
ldr r0, _080796F4
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080796E4: .4byte 0x03004b00
_080796E8: .4byte 0x0000ffff
_080796EC: .4byte 0x03004b20
_080796F0: .4byte REG_BLDALPHA
_080796F4: .4byte sub_80796F8
thumb_func_end sub_8079670
thumb_func_start sub_80796F8
sub_80796F8: @ 80796F8
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _08079744
adds r3, r0, r1
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
lsls r0, 16
asrs r0, 16
movs r2, 0xA
ldrsh r1, [r3, r2]
cmp r0, r1
ble _08079786
movs r0, 0
strh r0, [r3, 0x8]
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08079748
ldrh r2, [r3, 0xE]
movs r5, 0xE
ldrsh r1, [r3, r5]
movs r5, 0x16
ldrsh r0, [r3, r5]
cmp r1, r0
beq _0807975C
ldrh r0, [r3, 0x12]
adds r0, r2, r0
strh r0, [r3, 0xE]
b _0807975C
.align 2, 0
_08079744: .4byte 0x03004b20
_08079748:
ldrh r2, [r3, 0x10]
movs r0, 0x10
ldrsh r1, [r3, r0]
movs r5, 0x18
ldrsh r0, [r3, r5]
cmp r1, r0
beq _0807975C
ldrh r0, [r3, 0x14]
adds r0, r2, r0
strh r0, [r3, 0x10]
_0807975C:
ldr r2, _0807978C
ldrh r0, [r3, 0x10]
lsls r0, 8
ldrh r1, [r3, 0xE]
orrs r0, r1
strh r0, [r2]
movs r0, 0xE
ldrsh r1, [r3, r0]
movs r2, 0x16
ldrsh r0, [r3, r2]
cmp r1, r0
bne _08079786
movs r5, 0x10
ldrsh r1, [r3, r5]
movs r2, 0x18
ldrsh r0, [r3, r2]
cmp r1, r0
bne _08079786
adds r0, r4, 0
bl move_anim_task_del
_08079786:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807978C: .4byte REG_BLDALPHA
thumb_func_end sub_80796F8
thumb_func_start sub_8079790
sub_8079790: @ 8079790
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080797B0
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
bne _080797B4
adds r0, r4, 0
bl move_anim_task_del
b _080797DA
.align 2, 0
_080797B0: .4byte 0x03004b00
_080797B4:
ldr r1, _080797E0
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r2, _080797E4
lsls r1, r3, 4
adds r1, r3
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x5]
lsrs r1, 4
lsls r1, 4
ldr r3, _080797E8
adds r2, r3, 0
adds r1, r2
strh r1, [r0, 0x8]
bl sub_80797EC
_080797DA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080797E0: .4byte 0x03004b20
_080797E4: .4byte 0x02020004
_080797E8: .4byte 0x00000101
thumb_func_end sub_8079790
thumb_func_start sub_80797EC
sub_80797EC: @ 80797EC
ldr r3, _0807980C
ldrh r1, [r3, 0x2]
movs r2, 0
strh r1, [r0, 0xA]
strh r2, [r0, 0xC]
ldrh r1, [r3, 0x4]
strh r1, [r0, 0xE]
strh r2, [r0, 0x10]
ldrh r1, [r3, 0x6]
strh r1, [r0, 0x12]
strh r2, [r0, 0x14]
ldrh r1, [r3, 0x8]
strh r1, [r0, 0x16]
ldr r1, _08079810
str r1, [r0]
bx lr
.align 2, 0
_0807980C: .4byte 0x03004b00
_08079810: .4byte sub_8079814
thumb_func_end sub_80797EC
thumb_func_start sub_8079814
sub_8079814: @ 8079814
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0807986C
adds r4, r0, r1
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r4, r2]
cmp r0, r1
blt _080798A4
movs r0, 0
strh r0, [r4, 0x10]
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08079870
ldrh r2, [r4, 0xC]
adds r2, 0x1
strh r2, [r4, 0xC]
ldrh r0, [r4, 0x8]
lsls r2, 24
lsrs r2, 24
ldrh r3, [r4, 0xA]
movs r1, 0xF
bl BlendPalette
movs r2, 0xC
ldrsh r1, [r4, r2]
movs r2, 0xE
ldrsh r0, [r4, r2]
cmp r1, r0
bne _080798A4
movs r0, 0x1
strh r0, [r4, 0x14]
b _080798A4
.align 2, 0
_0807986C: .4byte 0x03004b20
_08079870:
ldrh r2, [r4, 0xC]
subs r2, 0x1
strh r2, [r4, 0xC]
ldrh r0, [r4, 0x8]
lsls r2, 24
lsrs r2, 24
ldrh r3, [r4, 0xA]
movs r1, 0xF
bl BlendPalette
movs r0, 0xC
ldrsh r1, [r4, r0]
cmp r1, 0
bne _080798A4
ldrh r0, [r4, 0x16]
subs r0, 0x1
strh r0, [r4, 0x16]
lsls r0, 16
cmp r0, 0
beq _0807989E
strh r1, [r4, 0x10]
strh r1, [r4, 0x14]
b _080798A4
_0807989E:
adds r0, r5, 0
bl move_anim_task_del
_080798A4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8079814
thumb_func_start sub_80798AC
sub_80798AC: @ 80798AC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080798CC
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _080798D0
adds r0, r4, 0
bl move_anim_task_del
b _080798E6
.align 2, 0
_080798CC: .4byte 0x03004b00
_080798D0:
ldr r1, _080798EC
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
lsls r1, r2, 4
ldr r2, _080798F0
adds r1, r2
strh r1, [r0, 0x8]
bl sub_80797EC
_080798E6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080798EC: .4byte 0x03004b20
_080798F0: .4byte 0x00000101
thumb_func_end sub_80798AC
thumb_func_start sub_80798F4
sub_80798F4: @ 80798F4
push {r4,lr}
adds r3, r0, 0
adds r4, r1, 0
lsls r4, 24
lsrs r4, 24
movs r1, 0
strh r1, [r3, 0x16]
strh r1, [r3, 0x18]
strh r1, [r3, 0x1A]
strh r4, [r3, 0x26]
movs r0, 0x80
lsls r0, 1
strh r0, [r3, 0x1C]
strh r0, [r3, 0x1E]
strh r1, [r3, 0x20]
adds r0, r3, 0
adds r0, 0x22
adds r3, 0x24
adds r1, r3, 0
bl sub_8079BF4
adds r0, r4, 0
movs r1, 0
bl sub_8078E70
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80798F4
thumb_func_start sub_807992C
sub_807992C: @ 807992C
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, _080799CC
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x24
ldrsh r1, [r4, r2]
bl sub_8079BFC
movs r3, 0x16
ldrsh r1, [r4, r3]
lsls r1, 3
adds r1, r0, r1
str r1, [r5]
movs r6, 0
ldrsh r2, [r1, r6]
ldr r0, _080799D0
cmp r2, r0
beq _080799D4
cmp r2, r0
bgt _08079A34
subs r0, 0x1
cmp r2, r0
beq _080799DA
ldrb r0, [r1, 0x5]
cmp r0, 0
bne _0807997A
ldrh r0, [r1]
strh r0, [r4, 0x1C]
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x1E]
ldrb r0, [r1, 0x4]
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
adds r0, r1, 0
adds r0, 0x8
str r0, [r5]
_0807997A:
ldr r1, [r5]
ldrh r0, [r1]
ldrh r2, [r4, 0x1C]
adds r0, r2
strh r0, [r4, 0x1C]
ldrh r0, [r1, 0x2]
ldrh r3, [r4, 0x1E]
adds r0, r3
strh r0, [r4, 0x1E]
ldrh r0, [r4, 0x20]
ldrb r1, [r1, 0x4]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r6, 0x1C
ldrsh r1, [r4, r6]
movs r3, 0x1E
ldrsh r2, [r4, r3]
ldrh r3, [r4, 0x20]
bl obj_id_set_rotscale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_8079A64
ldrh r0, [r4, 0x18]
adds r0, 0x1
strh r0, [r4, 0x18]
lsls r0, 16
asrs r0, 16
ldr r1, [r5]
ldrb r1, [r1, 0x5]
cmp r0, r1
blt _08079A5A
movs r0, 0
strh r0, [r4, 0x18]
b _08079A2C
.align 2, 0
_080799CC: .4byte 0x0202f7d4
_080799D0: .4byte 0x00007ffe
_080799D4:
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x16]
b _08079A5A
_080799DA:
ldrh r2, [r1, 0x2]
movs r6, 0x2
ldrsh r0, [r1, r6]
cmp r0, 0
beq _08079A2C
ldrh r1, [r4, 0x1A]
movs r3, 0x1A
ldrsh r0, [r4, r3]
cmp r0, 0
beq _080799FA
subs r0, r1, 0x1
strh r0, [r4, 0x1A]
lsls r0, 16
cmp r0, 0
bne _080799FC
b _08079A2C
_080799FA:
strh r2, [r4, 0x1A]
_080799FC:
movs r6, 0x16
ldrsh r0, [r4, r6]
cmp r0, 0
beq _08079A5A
ldr r3, _08079A24
ldr r5, _08079A28
_08079A08:
ldrh r2, [r4, 0x16]
subs r1, r2, 0x1
strh r1, [r4, 0x16]
ldr r0, [r3]
subs r0, 0x8
str r0, [r3]
movs r6, 0
ldrsh r0, [r0, r6]
cmp r0, r5
beq _08079A58
lsls r0, r1, 16
cmp r0, 0
bne _08079A08
b _08079A5A
.align 2, 0
_08079A24: .4byte 0x0202f7d4
_08079A28: .4byte 0x00007ffd
_08079A2C:
ldrh r0, [r4, 0x16]
adds r0, 0x1
strh r0, [r4, 0x16]
b _08079A5A
_08079A34:
ldr r2, _08079A54
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strh r1, [r0, 0x26]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_8078F40
movs r0, 0
b _08079A5C
.align 2, 0
_08079A54: .4byte 0x02020004
_08079A58:
strh r2, [r4, 0x16]
_08079A5A:
movs r0, 0x1
_08079A5C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_807992C
thumb_func_start sub_8079A64
sub_8079A64: @ 8079A64
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_8079B10
lsls r0, 16
lsrs r0, 15
movs r1, 0x40
subs r5, r1, r0
ldr r1, _08079AB0
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r4, r0, r1
ldrb r1, [r4, 0x3]
lsls r1, 26
lsrs r1, 27
lsls r0, r5, 8
ldr r2, _08079AB4
lsls r1, 3
adds r1, r2
movs r2, 0x6
ldrsh r1, [r1, r2]
bl __divsi3
cmp r0, 0x80
ble _08079AA0
movs r0, 0x80
_08079AA0:
subs r0, r5, r0
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x26]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08079AB0: .4byte 0x02020004
_08079AB4: .4byte 0x030027f0
thumb_func_end sub_8079A64
thumb_func_start sub_8079AB8
sub_8079AB8: @ 8079AB8
push {r4,r5,lr}
adds r4, r0, 0
adds r0, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r0, 24
lsrs r0, 24
bl sub_8079B10
lsls r0, 16
lsrs r0, 15
movs r1, 0x40
subs r5, r1, r0
ldr r1, _08079B08
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r4, r0, r1
ldrb r1, [r4, 0x3]
lsls r1, 26
lsrs r1, 27
lsls r0, r5, 8
ldr r2, _08079B0C
lsls r1, 3
adds r1, r2
movs r2, 0x6
ldrsh r1, [r1, r2]
bl __divsi3
cmp r0, 0x80
ble _08079AF8
movs r0, 0x80
_08079AF8:
subs r0, r5, r0
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x26]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08079B08: .4byte 0x02020004
_08079B0C: .4byte 0x030027f0
thumb_func_end sub_8079AB8
thumb_func_start sub_8079B10
sub_8079B10: @ 8079B10
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _08079B44
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrh r0, [r0, 0x2E]
lsls r0, 24
movs r4, 0
ldr r1, _08079B48
ldr r6, _08079B4C
lsrs r5, r0, 22
_08079B2C:
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, r2
bne _08079BE0
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08079B54
ldr r0, _08079B50
ldrh r1, [r0]
b _08079B96
.align 2, 0
_08079B44: .4byte 0x02020004
_08079B48: .4byte 0x02024be0
_08079B4C: .4byte gMonBackPicCoords
_08079B50: .4byte 0x02019348
_08079B54:
lsls r0, r4, 24
lsrs r0, 24
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08079B9E
ldr r0, _08079B88
adds r1, r5, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08079B94
ldr r1, _08079B8C
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08079B90
adds r0, r1
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r1, r0, 16
b _08079B96
.align 2, 0
_08079B88: .4byte 0x02017800
_08079B8C: .4byte 0x02024a6a
_08079B90: .4byte 0x03004360
_08079B94:
ldrh r1, [r1, 0x2]
_08079B96:
lsls r0, r1, 2
adds r0, r6
ldrb r0, [r0, 0x1]
b _08079BEC
_08079B9E:
ldr r0, _08079BC4
adds r1, r5, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08079BD0
ldr r1, _08079BC8
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08079BCC
adds r0, r1
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r1, r0, 16
b _08079BD2
.align 2, 0
_08079BC4: .4byte 0x02017800
_08079BC8: .4byte 0x02024a6a
_08079BCC: .4byte 0x030045c0
_08079BD0:
ldrh r1, [r1, 0x2]
_08079BD2:
ldr r0, _08079BDC
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x1]
b _08079BEC
.align 2, 0
_08079BDC: .4byte gMonFrontPicCoords
_08079BE0:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _08079B2C
movs r0, 0x40
_08079BEC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8079B10
thumb_func_start sub_8079BF4
sub_8079BF4: @ 8079BF4
strh r2, [r0]
asrs r2, 16
strh r2, [r1]
bx lr
thumb_func_end sub_8079BF4
thumb_func_start sub_8079BFC
sub_8079BFC: @ 8079BFC
lsls r0, 16
lsrs r0, 16
lsls r1, 16
orrs r0, r1
bx lr
thumb_func_end sub_8079BFC
thumb_func_start sub_8079C08
sub_8079C08: @ 8079C08
push {r4-r6,lr}
mov r6, r8
push {r6}
mov r8, r0
adds r5, r3, 0
ldr r0, [sp, 0x14]
ldr r4, [sp, 0x18]
ldr r6, [sp, 0x1C]
lsls r1, 24
lsrs r1, 24
lsls r2, 16
lsrs r2, 16
lsls r5, 16
lsrs r5, 16
lsls r0, 16
lsrs r0, 16
lsls r4, 16
lsrs r4, 16
lsls r6, 16
lsrs r6, 16
mov r3, r8
strh r6, [r3, 0x18]
strh r1, [r3, 0x26]
strh r2, [r3, 0x1A]
strh r5, [r3, 0x1C]
strh r0, [r3, 0x22]
strh r4, [r3, 0x24]
lsls r0, 16
asrs r0, 16
lsls r2, 16
asrs r2, 16
subs r0, r2
adds r1, r6, 0
bl __divsi3
mov r1, r8
strh r0, [r1, 0x1E]
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
subs r4, r5
adds r0, r4, 0
adds r1, r6, 0
bl __divsi3
mov r3, r8
strh r0, [r3, 0x20]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8079C08
thumb_func_start sub_8079C74
sub_8079C74: @ 8079C74
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x18]
movs r2, 0x18
ldrsh r0, [r4, r2]
cmp r0, 0
bne _08079C86
movs r0, 0
b _08079CE2
_08079C86:
subs r0, r1, 0x1
strh r0, [r4, 0x18]
lsls r0, 16
cmp r0, 0
beq _08079CA0
ldrh r0, [r4, 0x1E]
ldrh r3, [r4, 0x1A]
adds r0, r3
strh r0, [r4, 0x1A]
ldrh r0, [r4, 0x20]
ldrh r1, [r4, 0x1C]
adds r0, r1
b _08079CA6
_08079CA0:
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x1A]
ldrh r0, [r4, 0x24]
_08079CA6:
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r2, 0x1A
ldrsh r1, [r4, r2]
movs r3, 0x1C
ldrsh r2, [r4, r3]
movs r3, 0
bl obj_id_set_rotscale
movs r0, 0x18
ldrsh r3, [r4, r0]
cmp r3, 0
beq _08079CD0
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_8079A64
b _08079CE0
_08079CD0:
ldr r2, _08079CE8
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x26]
_08079CE0:
ldrb r0, [r4, 0x18]
_08079CE2:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08079CE8: .4byte 0x02020004
thumb_func_end sub_8079C74
thumb_func_start sub_8079CEC
sub_8079CEC: @ 8079CEC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _08079D18
ldrb r0, [r0]
movs r1, 0
cmp r0, 0x1E
bls _08079D0A
movs r1, 0x1
cmp r0, 0x64
bls _08079D0A
movs r1, 0x3
cmp r0, 0xC8
bhi _08079D0A
movs r1, 0x2
_08079D0A:
ldr r0, _08079D1C
strh r1, [r0, 0xE]
adds r0, r2, 0
bl move_anim_task_del
pop {r0}
bx r0
.align 2, 0
_08079D18: .4byte 0x0202f7be
_08079D1C: .4byte 0x03004b00
thumb_func_end sub_8079CEC
thumb_func_start unref_sub_8079D20
unref_sub_8079D20: @ 8079D20
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
ldr r6, _08079E14
ldrb r0, [r6]
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079D60
ldr r2, _08079E18
ldr r1, _08079E1C
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0x3
adds r2, r4, 0
ands r2, r0
lsls r2, 2
ldrb r3, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x5]
_08079D60:
ldr r0, _08079E20
mov r8, r0
ldrb r0, [r0]
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079D98
ldr r2, _08079E18
ldr r1, _08079E1C
mov r3, r8
ldrb r0, [r3]
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0x3
adds r2, r4, 0
ands r2, r0
lsls r2, 2
ldrb r3, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x5]
_08079D98:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079DD0
ldr r2, _08079E18
ldr r1, _08079E1C
ldrb r0, [r6]
eors r0, r5
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0x3
adds r2, r4, 0
ands r2, r0
lsls r2, 2
ldrb r3, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x5]
_08079DD0:
mov r1, r8
ldrb r0, [r1]
eors r0, r5
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079E08
ldr r2, _08079E18
ldr r1, _08079E1C
mov r3, r8
ldrb r0, [r3]
eors r0, r5
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0x3
ands r7, r0
lsls r3, r7, 2
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
_08079E08:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08079E14: .4byte 0x0202f7c9
_08079E18: .4byte 0x02020004
_08079E1C: .4byte 0x02024be0
_08079E20: .4byte 0x0202f7c8
thumb_func_end unref_sub_8079D20
thumb_func_start sub_8079E24
sub_8079E24: @ 8079E24
push {r4-r6,lr}
movs r5, 0
ldr r0, _08079E84
ldrb r0, [r0]
cmp r5, r0
bge _08079E7E
ldr r6, _08079E88
_08079E32:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl b_side_obj__get_some_boolean
lsls r0, 24
cmp r0, 0
beq _08079E74
adds r0, r4, 0
bl sub_8079E90
ldr r3, _08079E8C
adds r3, r5, r3
ldrb r2, [r3]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r6
adds r1, 0x43
strb r0, [r1]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r2, [r0, 0x5]
movs r3, 0xD
negs r3, r3
adds r1, r3, 0
ands r2, r1
movs r1, 0x8
orrs r2, r1
strb r2, [r0, 0x5]
_08079E74:
adds r5, 0x1
ldr r0, _08079E84
ldrb r0, [r0]
cmp r5, r0
blt _08079E32
_08079E7E:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08079E84: .4byte 0x02024a68
_08079E88: .4byte 0x02020004
_08079E8C: .4byte 0x02024be0
thumb_func_end sub_8079E24
thumb_func_start sub_8079E90
sub_8079E90: @ 8079E90
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08079EAC
cmp r4, 0x2
bne _08079EA8
movs r0, 0x1E
b _08079ECC
_08079EA8:
movs r0, 0x28
b _08079ECC
_08079EAC:
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
movs r1, 0x1E
cmp r0, 0
beq _08079ECA
movs r1, 0x14
cmp r0, 0x2
beq _08079ECA
movs r1, 0x32
cmp r0, 0x1
bne _08079ECA
movs r1, 0x28
_08079ECA:
adds r0, r1, 0
_08079ECC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8079E90
thumb_func_start sub_8079ED4
sub_8079ED4: @ 8079ED4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _08079EF0
movs r0, 0x2
b _08079F08
_08079EF0:
cmp r4, 0
beq _08079EF8
cmp r4, 0x3
bne _08079F00
_08079EF8:
ldr r0, _08079EFC
b _08079F02
.align 2, 0
_08079EFC: .4byte REG_BG2CNT
_08079F00:
ldr r0, _08079F10
_08079F02:
ldr r0, [r0]
lsls r0, 30
lsrs r0, 30
_08079F08:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08079F10: .4byte REG_BG1CNT
thumb_func_end sub_8079ED4
thumb_func_start battle_get_per_side_status_permutated
battle_get_per_side_status_permutated: @ 8079F14
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _08079F3A
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08079F36
cmp r0, 0x3
bne _08079F3A
_08079F36:
movs r0, 0x2
b _08079F3C
_08079F3A:
movs r0, 0x1
_08079F3C:
pop {r4}
pop {r1}
bx r1
thumb_func_end battle_get_per_side_status_permutated
thumb_func_start sub_8079F44
sub_8079F44: @ 8079F44
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
ldr r4, [sp, 0x38]
ldr r5, [sp, 0x3C]
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r2, 24
lsrs r7, r2, 24
lsls r3, 16
lsrs r3, 16
mov r9, r3
lsls r4, 16
lsrs r4, 16
str r4, [sp, 0x10]
lsls r5, 24
lsrs r5, 24
str r5, [sp, 0x14]
lsls r0, r7, 3
ldr r1, _08079FE0
adds r0, r1
bl LoadSpriteSheet
lsls r0, 16
lsrs r0, 16
mov r10, r0
ldr r1, _08079FE4
lsls r0, r7, 1
adds r0, r7
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x2]
bl AllocSpritePalette
lsls r0, 24
lsrs r4, r0, 24
mov r0, r8
cmp r0, 0
bne _08079FF0
adds r0, r6, 0
ldr r1, [sp, 0x44]
ldr r2, [sp, 0x40]
bl species_and_otid_get_pal
lsls r1, r4, 20
movs r2, 0x80
lsls r2, 17
adds r1, r2
lsrs r1, 16
movs r2, 0x20
bl LoadCompressedPalette
lsls r0, r6, 3
ldr r1, _08079FE8
adds r0, r1
ldr r2, _08079FEC
lsls r5, r6, 2
adds r2, r5, r2
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
str r3, [sp]
str r6, [sp, 0x4]
ldr r4, [sp, 0x40]
str r4, [sp, 0x8]
movs r4, 0x1
str r4, [sp, 0xC]
bl sub_800D378
b _0807A02E
.align 2, 0
_08079FE0: .4byte gUnknown_0837F5E0
_08079FE4: .4byte gSpriteTemplate_837F5B0
_08079FE8: .4byte gMonFrontPicTable
_08079FEC: .4byte gMonFrontPicCoords
_08079FF0:
adds r0, r6, 0
ldr r1, [sp, 0x44]
ldr r2, [sp, 0x40]
bl species_and_otid_get_pal
lsls r1, r4, 20
movs r2, 0x80
lsls r2, 17
adds r1, r2
lsrs r1, 16
movs r2, 0x20
bl LoadCompressedPalette
lsls r0, r6, 3
ldr r1, _0807A068
adds r0, r1
ldr r2, _0807A06C
lsls r5, r6, 2
adds r2, r5, r2
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
str r3, [sp]
str r6, [sp, 0x4]
ldr r4, [sp, 0x40]
str r4, [sp, 0x8]
movs r4, 0
str r4, [sp, 0xC]
bl sub_800D378
_0807A02E:
movs r2, 0x80
lsls r2, 18
mov r6, r10
lsls r0, r6, 5
ldr r1, _0807A070
adds r0, r1
ldr r1, _0807A074
str r2, [r1]
str r0, [r1, 0x4]
ldr r0, _0807A078
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
mov r2, r8
cmp r2, 0
bne _0807A084
lsls r0, r7, 1
adds r0, r7
lsls r0, 3
ldr r1, _0807A07C
adds r0, r1
mov r3, r9
lsls r1, r3, 16
asrs r1, 16
ldr r2, _0807A080
adds r2, r5, r2
ldrb r2, [r2, 0x1]
ldr r4, [sp, 0x10]
adds r2, r4
b _0807A09E
.align 2, 0
_0807A068: .4byte gMonBackPicTable
_0807A06C: .4byte gMonBackPicCoords
_0807A070: .4byte 0x06010000
_0807A074: .4byte 0x040000d4
_0807A078: .4byte 0x84000200
_0807A07C: .4byte gSpriteTemplate_837F5B0
_0807A080: .4byte gMonFrontPicCoords
_0807A084:
lsls r0, r7, 1
adds r0, r7
lsls r0, 3
ldr r1, _0807A0E4
adds r0, r1
mov r6, r9
lsls r1, r6, 16
asrs r1, 16
ldr r2, _0807A0E8
adds r2, r5, r2
ldrb r2, [r2, 0x1]
ldr r3, [sp, 0x10]
adds r2, r3
_0807A09E:
lsls r2, 16
asrs r2, 16
ldr r3, [sp, 0x14]
bl CreateSprite
lsls r0, 24
lsrs r4, r0, 24
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _0807A0D0
ldr r3, _0807A0EC
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r1, r3, 0
adds r1, 0x10
adds r1, r0, r1
ldr r2, _0807A0F0
str r2, [r1]
adds r0, r3
movs r1, 0
bl StartSpriteAffineAnim
_0807A0D0:
adds r0, r4, 0
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0807A0E4: .4byte gSpriteTemplate_837F5B0
_0807A0E8: .4byte gMonBackPicCoords
_0807A0EC: .4byte 0x02020004
_0807A0F0: .4byte gSpriteAffineAnimTable_81E7C18
thumb_func_end sub_8079F44
thumb_func_start sub_807A0F4
sub_807A0F4: @ 807A0F4
push {lr}
bl DestroySpriteAndFreeResources
pop {r0}
bx r0
thumb_func_end sub_807A0F4
thumb_func_start sub_807A100
sub_807A100: @ 807A100
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 24
lsrs r1, 24
mov r9, r1
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
beq _0807A1A4
ldr r2, _0807A130
ldrb r1, [r2, 0x4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0807A134
ldrh r7, [r2, 0x2]
ldr r2, [r2, 0x10]
b _0807A138
.align 2, 0
_0807A130: .4byte 0x02019348
_0807A134:
ldrh r7, [r2]
ldr r2, [r2, 0x8]
_0807A138:
cmp r7, 0xC9
bne _0807A184
movs r0, 0xC0
lsls r0, 18
ands r0, r2
lsrs r0, 18
movs r1, 0xC0
lsls r1, 10
ands r1, r2
lsrs r1, 12
orrs r0, r1
movs r1, 0xC0
lsls r1, 2
ands r1, r2
lsrs r1, 6
orrs r0, r1
movs r1, 0x3
ands r1, r2
orrs r0, r1
movs r1, 0x1C
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _0807A170
movs r0, 0xC9
b _0807A17A
_0807A170:
movs r1, 0xCE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
_0807A17A:
lsls r1, r0, 2
ldr r0, _0807A180
b _0807A33C
.align 2, 0
_0807A180: .4byte gMonBackPicCoords
_0807A184:
ldr r0, _0807A19C
cmp r7, r0
bne _0807A18C
b _0807A30C
_0807A18C:
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
bhi _0807A258
lsls r1, r7, 2
ldr r0, _0807A1A0
b _0807A33C
.align 2, 0
_0807A19C: .4byte SPECIES_CASTFORM
_0807A1A0: .4byte gMonBackPicCoords
_0807A1A4:
mov r0, r8
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0807A26C
mov r0, r8
lsls r2, r0, 2
ldr r0, _0807A1EC
adds r1, r2, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _0807A1F8
ldr r0, _0807A1F0
mov r1, r8
lsls r4, r1, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, _0807A1F4
adds r0, r5
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r7, r0, 16
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0
bl PokemonGetField
adds r2, r0, 0
b _0807A200
.align 2, 0
_0807A1EC: .4byte 0x02017800
_0807A1F0: .4byte 0x02024a6a
_0807A1F4: .4byte 0x03004360
_0807A1F8:
ldrh r7, [r1, 0x2]
ldr r0, _0807A238
adds r0, r2, r0
ldr r2, [r0]
_0807A200:
cmp r7, 0xC9
bne _0807A250
movs r0, 0xC0
lsls r0, 18
ands r0, r2
lsrs r0, 18
movs r1, 0xC0
lsls r1, 10
ands r1, r2
lsrs r1, 12
orrs r0, r1
movs r1, 0xC0
lsls r1, 2
ands r1, r2
lsrs r1, 6
orrs r0, r1
movs r1, 0x3
ands r1, r2
orrs r0, r1
movs r1, 0x1C
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _0807A23C
movs r0, 0xC9
b _0807A246
.align 2, 0
_0807A238: .4byte 0x02024e70
_0807A23C:
movs r1, 0xCE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
_0807A246:
lsls r1, r0, 2
ldr r0, _0807A24C
b _0807A33C
.align 2, 0
_0807A24C: .4byte gMonBackPicCoords
_0807A250:
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
bls _0807A260
_0807A258:
ldr r4, _0807A25C
b _0807A33E
.align 2, 0
_0807A25C: .4byte gMonBackPicCoords
_0807A260:
lsls r1, r7, 2
ldr r0, _0807A268
b _0807A33C
.align 2, 0
_0807A268: .4byte gMonBackPicCoords
_0807A26C:
mov r0, r8
lsls r2, r0, 2
ldr r0, _0807A2A8
adds r1, r2, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _0807A2B4
ldr r0, _0807A2AC
mov r1, r8
lsls r4, r1, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, _0807A2B0
adds r0, r5
movs r1, 0xB
bl PokemonGetField
lsls r0, 16
lsrs r7, r0, 16
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0
bl PokemonGetField
adds r2, r0, 0
b _0807A2BC
.align 2, 0
_0807A2A8: .4byte 0x02017800
_0807A2AC: .4byte 0x02024a6a
_0807A2B0: .4byte 0x030045c0
_0807A2B4:
ldrh r7, [r1, 0x2]
ldr r0, _0807A2F4
adds r0, r2, r0
ldr r2, [r0]
_0807A2BC:
cmp r7, 0xC9
bne _0807A306
movs r0, 0xC0
lsls r0, 18
ands r0, r2
lsrs r0, 18
movs r1, 0xC0
lsls r1, 10
ands r1, r2
lsrs r1, 12
orrs r0, r1
movs r1, 0xC0
lsls r1, 2
ands r1, r2
lsrs r1, 6
orrs r0, r1
movs r1, 0x3
ands r1, r2
orrs r0, r1
movs r1, 0x1C
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _0807A2F8
movs r0, 0xC9
b _0807A302
.align 2, 0
_0807A2F4: .4byte 0x02024e70
_0807A2F8:
movs r1, 0xCE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
_0807A302:
lsls r1, r0, 2
b _0807A33A
_0807A306:
ldr r0, _0807A31C
cmp r7, r0
bne _0807A328
_0807A30C:
ldr r0, _0807A320
add r0, r8
ldrb r0, [r0]
lsls r0, 2
ldr r1, _0807A324
adds r4, r0, r1
b _0807A33E
.align 2, 0
_0807A31C: .4byte SPECIES_CASTFORM
_0807A320: .4byte 0x02024e84
_0807A324: .4byte gUnknownCastformCoords_0837F598
_0807A328:
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
bls _0807A338
ldr r4, _0807A334
b _0807A33E
.align 2, 0
_0807A334: .4byte gMonFrontPicCoords
_0807A338:
lsls r1, r7, 2
_0807A33A:
ldr r0, _0807A350
_0807A33C:
adds r4, r1, r0
_0807A33E:
mov r0, r9
cmp r0, 0x6
bhi _0807A3EE
lsls r0, 2
ldr r1, _0807A354
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807A350: .4byte gMonFrontPicCoords
_0807A354: .4byte _0807A358
.align 2, 0
_0807A358:
.4byte _0807A374
.4byte _0807A37E
.4byte _0807A3AA
.4byte _0807A3C2
.4byte _0807A386
.4byte _0807A398
.4byte _0807A3DA
_0807A374:
ldrb r1, [r4]
movs r0, 0xF
ands r0, r1
lsls r0, 3
b _0807A3F0
_0807A37E:
ldrb r0, [r4]
lsrs r0, 4
lsls r0, 3
b _0807A3F0
_0807A386:
mov r0, r8
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4]
lsrs r1, 4
b _0807A3BC
_0807A398:
mov r0, r8
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4]
lsrs r1, 4
b _0807A3D4
_0807A3AA:
mov r0, r8
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4]
movs r1, 0xF
ands r1, r2
_0807A3BC:
lsls r1, 2
subs r0, r1
b _0807A3F0
_0807A3C2:
mov r0, r8
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4]
movs r1, 0xF
ands r1, r2
_0807A3D4:
lsls r1, 2
adds r0, r1
b _0807A3F0
_0807A3DA:
mov r0, r8
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
ldrb r1, [r4, 0x1]
subs r0, r1
b _0807A3F0
_0807A3EE:
movs r0, 0
_0807A3F0:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_807A100
thumb_func_start sub_807A3FC
sub_807A3FC: @ 807A3FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r9, r2
mov r10, r3
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
cmp r1, 0
bne _0807A41A
movs r5, 0
movs r6, 0x1
b _0807A41E
_0807A41A:
movs r5, 0x2
movs r6, 0x3
_0807A41E:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
mov r8, r0
adds r0, r4, 0
adds r1, r6, 0
bl sub_8077ABC
lsls r0, 24
lsrs r7, r0, 24
bl battle_type_is_double
lsls r0, 24
cmp r0, 0
beq _0807A470
bl sub_8076BE0
lsls r0, 24
cmp r0, 0
bne _0807A470
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl sub_8077ABC
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
adds r1, r6, 0
bl sub_8077ABC
lsls r0, 24
lsrs r3, r0, 24
mov r0, r8
lsls r1, r0, 16
lsls r2, r7, 16
b _0807A47C
_0807A470:
mov r0, r8
lsls r1, r0, 16
lsrs r5, r1, 16
lsls r0, r7, 16
lsrs r3, r0, 16
adds r2, r0, 0
_0807A47C:
asrs r0, r1, 16
adds r0, r5
asrs r0, 1
mov r1, r9
strh r0, [r1]
asrs r0, r2, 16
adds r0, r3
asrs r0, 1
mov r1, r10
strh r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_807A3FC
thumb_func_start sub_807A4A0
sub_807A4A0: @ 807A4A0
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x4
lsls r6, r1, 24
lsrs r6, 24
ldr r0, _0807A538
mov r10, r0
bl object_new_hidden_with_callback
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _0807A53C
mov r9, r0
mov r0, r8
lsls r3, r0, 4
add r3, r8
lsls r3, 2
mov r0, r9
adds r5, r3, r0
lsls r4, r6, 4
adds r4, r6
lsls r4, 2
add r4, r9
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x44
str r3, [sp]
bl memcpy
adds r2, r5, 0
adds r2, 0x3F
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldrb r2, [r5, 0x5]
movs r1, 0xD
negs r1, r1
adds r0, r1, 0
ands r0, r2
strb r0, [r5, 0x5]
ldrb r0, [r5, 0x1]
ands r1, r0
movs r0, 0x8
orrs r1, r0
strb r1, [r5, 0x1]
ldrh r1, [r4, 0x4]
lsls r1, 22
lsrs r1, 22
ldrh r2, [r5, 0x4]
ldr r0, _0807A540
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
movs r0, 0x1C
add r9, r0
ldr r3, [sp]
add r3, r9
mov r0, r10
str r0, [r3]
mov r0, r8
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0807A538: .4byte SpriteCallbackDummy
_0807A53C: .4byte 0x02020004
_0807A540: .4byte 0xfffffc00
thumb_func_end sub_807A4A0
thumb_func_start sub_807A544
sub_807A544: @ 807A544
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
ldr r0, _0807A57C
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _0807A584
ldr r2, _0807A580
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x6]
negs r0, r0
strh r0, [r2, 0x6]
adds r3, r4, 0
adds r3, 0x3F
ldrb r0, [r3]
movs r1, 0x1
orrs r0, r1
strb r0, [r3]
adds r1, r2, 0
b _0807A58E
.align 2, 0
_0807A57C: .4byte 0x0202f7c8
_0807A580: .4byte 0x03004b00
_0807A584:
ldr r1, _0807A5B8
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
_0807A58E:
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x38]
ldr r1, _0807A5BC
adds r0, r4, 0
bl oamt_set_x3A_32
ldr r0, _0807A5C0
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807A5B8: .4byte 0x03004b00
_0807A5BC: .4byte move_anim_8074EE0
_0807A5C0: .4byte sub_8078504
thumb_func_end sub_807A544
thumb_func_start sub_807A5C4
sub_807A5C4: @ 807A5C4
push {r4,lr}
adds r4, r0, 0
ldr r0, _0807A5EC
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _0807A5F4
ldr r2, _0807A5F0
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
movs r1, 0x6
ldrsh r0, [r2, r1]
negs r0, r0
strh r0, [r2, 0x6]
adds r1, r2, 0
b _0807A5FE
.align 2, 0
_0807A5EC: .4byte 0x0202f7c8
_0807A5F0: .4byte 0x03004b00
_0807A5F4:
ldr r1, _0807A630
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
_0807A5FE:
ldrh r0, [r1, 0x2]
ldrh r2, [r4, 0x22]
adds r0, r2
strh r0, [r4, 0x22]
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0xA]
strh r0, [r4, 0x38]
ldrb r1, [r1, 0xC]
adds r0, r4, 0
bl StartSpriteAnim
ldr r1, _0807A634
adds r0, r4, 0
bl oamt_set_x3A_32
ldr r0, _0807A638
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807A630: .4byte 0x03004b00
_0807A634: .4byte move_anim_8074EE0
_0807A638: .4byte sub_8078504
thumb_func_end sub_807A5C4
thumb_func_start sub_807A63C
sub_807A63C: @ 807A63C
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
ldr r0, _0807A660
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _0807A668
ldr r0, _0807A664
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _0807A674
.align 2, 0
_0807A660: .4byte 0x0202f7c8
_0807A664: .4byte 0x03004b00
_0807A668:
ldr r1, _0807A690
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x20]
adds r0, r1, 0
_0807A674:
ldrh r0, [r0, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, _0807A694
str r0, [r4, 0x1C]
ldr r1, _0807A698
adds r0, r4, 0
bl oamt_set_x3A_32
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0807A690: .4byte 0x03004b00
_0807A694: .4byte sub_8078600
_0807A698: .4byte move_anim_8072740
thumb_func_end sub_807A63C
thumb_func_start sub_807A69C
sub_807A69C: @ 807A69C
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0807A730
adds r5, r1, r0
movs r0, 0
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x8]
ldr r7, _0807A734
ldrb r0, [r7]
bl battle_side_get_owner
lsls r0, 24
movs r1, 0x8
cmp r0, 0
beq _0807A6D0
movs r0, 0x8
negs r0, r0
adds r1, r0, 0
_0807A6D0:
strh r1, [r5, 0xA]
strh r6, [r5, 0xC]
strh r6, [r5, 0xE]
ldr r4, _0807A738
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x24]
ldrh r2, [r5, 0x8]
subs r1, r2
strh r1, [r0, 0x24]
ldr r0, _0807A73C
bl AllocSpritePalette
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x10]
strh r6, [r5, 0x12]
movs r1, 0x10
ldrsh r0, [r5, r1]
adds r0, 0x10
lsls r0, 20
lsrs r6, r0, 16
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
lsls r4, r0, 4
ldrb r0, [r7]
bl sub_8079E90
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
cmp r0, 0x14
beq _0807A72C
cmp r0, 0x28
bne _0807A740
_0807A72C:
movs r0, 0x2
b _0807A742
.align 2, 0
_0807A730: .4byte 0x03004b20
_0807A734: .4byte 0x0202f7c8
_0807A738: .4byte 0x02020004
_0807A73C: .4byte 0x00002771
_0807A740:
movs r0, 0x3
_0807A742:
strh r0, [r5, 0x14]
lsls r0, r4, 1
ldr r1, _0807A770
adds r0, r1
lsls r1, r6, 1
ldr r2, _0807A774
adds r1, r2
ldr r2, _0807A778
bl CpuSet
ldr r0, _0807A77C
ldrb r2, [r0, 0x2]
ldrh r3, [r0]
adds r0, r6, 0
movs r1, 0x10
bl BlendPalette
ldr r0, _0807A780
str r0, [r5]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0807A770: .4byte 0x0202eac8
_0807A774: .4byte 0x0202eec8
_0807A778: .4byte REG_BG0CNT
_0807A77C: .4byte 0x03004b00
_0807A780: .4byte sub_807A784
thumb_func_end sub_807A69C
thumb_func_start sub_807A784
sub_807A784: @ 807A784
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0807A7A8
adds r4, r0, r1
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _0807A7E8
cmp r0, 0x1
bgt _0807A7AC
cmp r0, 0
beq _0807A7B2
b _0807A844
.align 2, 0
_0807A7A8: .4byte 0x03004b20
_0807A7AC:
cmp r0, 0x2
beq _0807A830
b _0807A844
_0807A7B2:
adds r0, r4, 0
adds r1, r5, 0
bl sub_807A850
ldr r2, _0807A7E4
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r4, 0xA]
ldrh r2, [r0, 0x24]
adds r1, r2
strh r1, [r0, 0x24]
ldrh r1, [r4, 0xE]
adds r0, r1, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _0807A844
strh r1, [r4, 0xE]
b _0807A822
.align 2, 0
_0807A7E4: .4byte 0x02020004
_0807A7E8:
adds r0, r4, 0
adds r1, r5, 0
bl sub_807A850
ldr r3, _0807A82C
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x24]
ldrh r2, [r4, 0xA]
subs r1, r2
strh r1, [r0, 0x24]
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
lsls r0, 16
asrs r2, r0, 16
cmp r2, 0
bne _0807A844
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
strh r2, [r1, 0x24]
_0807A822:
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
b _0807A844
.align 2, 0
_0807A82C: .4byte 0x02020004
_0807A830:
movs r2, 0x12
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0807A844
ldr r0, _0807A84C
bl FreeSpritePaletteByTag
adds r0, r5, 0
bl move_anim_task_del
_0807A844:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807A84C: .4byte 0x00002771
thumb_func_end sub_807A784
thumb_func_start sub_807A850
sub_807A850: @ 807A850
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
mov r8, r1
movs r0, 0
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
lsrs r7, r0, 16
asrs r0, 16
cmp r0, 0
blt _0807A8C0
ldr r5, _0807A8CC
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r3, r4, r5
movs r0, 0x3
ldrb r1, [r6, 0x14]
ands r1, r0
lsls r1, 2
ldrb r2, [r3, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x5]
ldrb r1, [r6, 0x10]
lsls r1, 4
movs r2, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x5]
movs r0, 0x8
strh r0, [r3, 0x2E]
mov r0, r8
strh r0, [r3, 0x30]
strh r7, [r3, 0x32]
movs r0, 0x8
ldrsh r1, [r6, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r0, [r0, 0x24]
strh r0, [r3, 0x24]
adds r5, 0x1C
adds r4, r5
ldr r0, _0807A8D0
str r0, [r4]
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
_0807A8C0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0807A8CC: .4byte 0x02020004
_0807A8D0: .4byte sub_807A8D4
thumb_func_end sub_807A850
thumb_func_start sub_807A8D4
sub_807A8D4: @ 807A8D4
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
subs r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
cmp r0, 0
bne _0807A8FE
ldr r2, _0807A904
movs r0, 0x30
ldrsh r1, [r3, r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r1, [r0, 0x12]
subs r1, 0x1
strh r1, [r0, 0x12]
adds r0, r3, 0
bl obj_delete_but_dont_free_vram
_0807A8FE:
pop {r0}
bx r0
.align 2, 0
_0807A904: .4byte 0x03004b20
thumb_func_end sub_807A8D4
thumb_func_start sub_807A908
sub_807A908: @ 807A908
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _0807A93C
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0807A940
movs r0, 0x5
b _0807A942
.align 2, 0
_0807A93C: .4byte 0x0202f7c8
_0807A940:
ldr r0, _0807A954
_0807A942:
strh r0, [r5, 0x2E]
ldr r0, _0807A958
strh r0, [r5, 0x30]
ldr r0, _0807A95C
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807A954: .4byte 0x0000fff6
_0807A958: .4byte 0x0000ffd8
_0807A95C: .4byte sub_807A960
thumb_func_end sub_807A908
thumb_func_start sub_807A960
sub_807A960: @ 807A960
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
ldrh r5, [r4, 0x30]
ldrh r2, [r4, 0x34]
adds r0, r5, r2
strh r0, [r4, 0x34]
movs r1, 0x32
ldrsh r0, [r4, r1]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x24]
movs r2, 0x34
ldrsh r0, [r4, r2]
movs r1, 0xA
bl __divsi3
strh r0, [r4, 0x26]
lsls r0, r5, 16
asrs r0, 16
movs r1, 0x14
negs r1, r1
cmp r0, r1
bge _0807A99C
adds r0, r5, 0x1
strh r0, [r4, 0x30]
_0807A99C:
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x26
ldrsh r1, [r4, r2]
adds r0, r1
movs r1, 0x20
negs r1, r1
cmp r0, r1
bge _0807A9B4
adds r0, r4, 0
bl move_anim_8072740
_0807A9B4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_807A960
thumb_func_start sub_807A9BC
sub_807A9BC: @ 807A9BC
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _0807A9F4
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x32]
ldrh r0, [r5, 0xA]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x36]
ldr r0, _0807A9F8
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0807A9FC
ldrh r0, [r5, 0x8]
adds r0, 0x1E
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0xA]
subs r0, 0x14
b _0807AA0A
.align 2, 0
_0807A9F4: .4byte 0x03004b00
_0807A9F8: .4byte 0x0202f7c9
_0807A9FC:
ldrh r0, [r5, 0x8]
subs r0, 0x1E
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0xA]
subs r0, 0x50
_0807AA0A:
strh r0, [r4, 0x22]
ldr r0, _0807AA20
str r0, [r4, 0x1C]
ldr r1, _0807AA24
adds r0, r4, 0
bl oamt_set_x3A_32
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0807AA20: .4byte sub_8078B34
_0807AA24: .4byte move_anim_8072740
thumb_func_end sub_807A9BC