summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/rom3.s200
-rw-r--r--asm/rom4.s14876
-rw-r--r--asm/rom5.s972
-rw-r--r--asm/rom_8074BAC.s12466
-rw-r--r--data/data2.s4
-rw-r--r--ewram_syms.txt7
-rw-r--r--include/gba/defines.h5
-rw-r--r--include/gba/syscall.h4
-rw-r--r--include/gba/types.h8
-rw-r--r--include/palette.h68
-rw-r--r--ld_script.txt2
-rw-r--r--src/link.c16
-rw-r--r--src/palette.c819
-rw-r--r--src/text.c2
15 files changed, 13991 insertions, 15460 deletions
diff --git a/Makefile b/Makefile
index 38e8c1ff2..75d593cab 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ PREPROC := tools/preproc/preproc
C_SRCS := $(wildcard src/*.c)
C_OBJS := $(C_SRCS:%.c=%.o)
-ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom5.o \
+ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \
asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o asm/libc.o
DATA_ASM_OBJS := data/data1.o data/data2.o data/graphics.o data/sound_data.o
diff --git a/asm/rom3.s b/asm/rom3.s
index bdc94367b..f2ed5b6ae 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -10,7 +10,7 @@ CB2_MainMenu: @ 80096C4
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end CB2_MainMenu
@@ -20,7 +20,7 @@ VBlankCB_MainMenu: @ 80096DC
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end VBlankCB_MainMenu
@@ -102,7 +102,7 @@ InitMainMenu: @ 8009708
ldr r0, _080097CC
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _080097D0
movs r1, 0
movs r2, 0x20
@@ -123,7 +123,7 @@ InitMainMenu: @ 8009708
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080097EE
.align 2, 0
_080097BC: .4byte 0x040000d4
@@ -142,7 +142,7 @@ _080097DC:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080097EE:
ldr r0, _0800985C
movs r1, 0
@@ -817,7 +817,7 @@ MainMenuProcessKeyInput: @ 8009D6C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08009DAC
lsls r0, r4, 2
adds r0, r4
@@ -844,7 +844,7 @@ _08009DB4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08009DF4
movs r0, 0xF0
strh r0, [r1]
@@ -1443,7 +1443,7 @@ Task_Birch1: @ 800A1F4
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0800A2D0
ldr r2, _0800A2D4
adds r0, r2, 0
@@ -2463,7 +2463,7 @@ _0800AA48:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0800AA70
lsls r0, r5, 2
adds r0, r5
@@ -3094,7 +3094,7 @@ task_new_game_prof_birch_speech_part2_9: @ 800AED4
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x4
bl play_sound_effect
ldr r0, _0800AF80
@@ -3183,7 +3183,7 @@ sub_800AFC0: @ 800AFC0
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0800B030
str r0, [r4]
_0800B010:
@@ -3282,7 +3282,7 @@ new_game_prof_birch_speech_part2_start: @ 800B060
ldr r0, _0800B148
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _0800B14C
adds r1, r4, 0
bl LZ77UnCompVram
@@ -3373,7 +3373,7 @@ _0800B178:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0800B220
strh r4, [r0]
adds r0, 0x4
@@ -10384,7 +10384,7 @@ _0800E868:
ldr r4, _0800E92C
adds r0, r4, 0
bl SetUpWindowConfig
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _0800E930
movs r1, 0
strh r1, [r0]
@@ -12263,7 +12263,7 @@ sub_800F808: @ 800F808
bl BuildOamBuffer
ldr r0, _0800F824
bl sub_800374C
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
@@ -12966,7 +12966,7 @@ sub_800FCFC: @ 800FCFC
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -13370,7 +13370,7 @@ _08010084:
ble _08010084
adds r0, r5, 0
bl SetUpWindowConfig
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _08010164
movs r4, 0
strh r4, [r0]
@@ -13479,7 +13479,7 @@ sub_80101B8: @ 80101B8
bl c2_081284E0
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
@@ -13522,7 +13522,7 @@ _080101FC:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0801021A:
ldrb r0, [r4]
adds r0, 0x1
@@ -13563,7 +13563,7 @@ oac_poke_opponent: @ 8010248
movs r1, 0
movs r2, 0xA
movs r3, 0xA
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -13634,7 +13634,7 @@ sub_80102AC: @ 80102AC
movs r1, 0
movs r2, 0xA
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080102F4:
add sp, 0x4
pop {r4}
@@ -20813,7 +20813,7 @@ _08013D48:
bl sub_80BDEC8
_08013D4C:
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
movs r0, 0x5
bl sub_8074D28
ldr r1, _08013D6C
@@ -51939,7 +51939,7 @@ _08023BC0:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08023C04
ldr r2, _08023C08
adds r1, r2
@@ -67952,7 +67952,7 @@ _0802BB10:
movs r2, 0x10
movs r3, 0
_0802BB6E:
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0802BB72:
ldrb r0, [r7]
adds r0, 0x1
@@ -68195,7 +68195,7 @@ _0802BD36:
adds r0, 0x1
strb r0, [r1]
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
b _0802BEDA
.align 2, 0
_0802BD60: .4byte 0x03001770
@@ -76205,7 +76205,7 @@ sub_802FF60: @ 802FF60
movs r1, 0x2
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl dp01_tbl1_exec_completed
add sp, 0x4
pop {r0}
@@ -76909,7 +76909,7 @@ sub_8030530: @ 8030530
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0803057C
ldr r2, _08030580
ldrb r0, [r2]
@@ -77021,7 +77021,7 @@ _08030600:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08030668
ldr r2, _0803064C
ldrb r0, [r2]
@@ -77063,7 +77063,7 @@ sub_8030674: @ 8030674
movs r1, 0x2
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl dp01_tbl1_exec_completed
add sp, 0x4
pop {r0}
@@ -78587,7 +78587,7 @@ sub_80312A0: @ 80312A0
movs r0, 0x5
bl sub_8074D28
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
bl dp01_tbl1_exec_completed
ldr r1, _080312E4
ldrb r0, [r4]
@@ -79358,7 +79358,7 @@ _080318A2:
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
- bl pal_fade_1
+ bl BlendPalette
lsls r1, r7, 1
ldr r0, _080318F0
adds r0, r1, r0
@@ -79522,7 +79522,7 @@ _08031A0A:
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
- bl pal_fade_1
+ bl BlendPalette
lsls r1, r7, 1
ldr r0, _08031A58
adds r0, r1, r0
@@ -80295,7 +80295,7 @@ sub_8031FC4: @ 8031FC4
adds r0, r5, 0
movs r1, 0x10
movs r2, 0x6
- bl pal_fade_1
+ bl BlendPalette
lsls r1, r5, 1
ldr r0, _0803207C
adds r0, r1, r0
@@ -80568,7 +80568,7 @@ _08032288:
adds r0, r5, 0
movs r1, 0x10
movs r2, 0x6
- bl pal_fade_1
+ bl BlendPalette
lsls r1, r5, 1
ldr r0, _08032344
adds r0, r1, r0
@@ -96819,7 +96819,7 @@ _0803A688:
movs r0, 0x5
bl sub_8074D28
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
bl dp01_tbl4_exec_completed
ldr r1, _0803A6B0
ldr r0, _0803A6B4
@@ -110815,8 +110815,8 @@ _08041208: .4byte 0x00001121
_0804120C: .4byte gUnknown_082087DC
thumb_func_end unref_sub_80411CC
- thumb_func_start pal_fade_1
-pal_fade_1: @ 8041210
+ thumb_func_start BlendPalette
+BlendPalette: @ 8041210
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -110897,7 +110897,7 @@ _08041296:
.align 2, 0
_080412A8: .4byte 0x0202eac8
_080412AC: .4byte 0x0202eec8
- thumb_func_end pal_fade_1
+ thumb_func_end BlendPalette
thumb_func_start pokemon_get_nick
pokemon_get_nick: @ 80412B0
@@ -114254,7 +114254,7 @@ sub_8042C6C: @ 8042C6C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8042C6C
@@ -114273,7 +114273,7 @@ sub_8042C80: @ 8042C80
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -114705,7 +114705,7 @@ _08043068:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r1, 0x80
lsls r1, 19
movs r2, 0xBA
@@ -114955,7 +114955,7 @@ _08043288:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08043298:
ldr r0, _080432A4
ldr r1, [r0]
@@ -114979,7 +114979,7 @@ _080432BA:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x8
pop {r3-r5}
mov r8, r3
@@ -115220,7 +115220,7 @@ sub_8043484: @ 8043484
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080434A4:
ldrh r0, [r5, 0x2E]
cmp r0, 0x3
@@ -115313,7 +115313,7 @@ _08043540:
adds r0, r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0804355A:
movs r1, 0x2E
ldrsh r0, [r5, r1]
@@ -125355,7 +125355,7 @@ _08048448:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08048492
_0804845A:
movs r1, 0x80
@@ -125414,7 +125414,7 @@ _080484C6:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x14
pop {r3}
mov r8, r3
@@ -125918,7 +125918,7 @@ _08048950:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08048968
ldr r5, _0804896C
adds r1, r5
@@ -125975,7 +125975,7 @@ _080489CA:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x8
pop {r3}
mov r8, r3
@@ -125997,7 +125997,7 @@ sub_80489F4: @ 80489F4
bl sub_804A940
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
@@ -126024,7 +126024,7 @@ sub_8048A14: @ 8048A14
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, [r4]
adds r0, 0x7B
movs r1, 0xA
@@ -126122,7 +126122,7 @@ sub_8048AB4: @ 8048AB4
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
@@ -127018,7 +127018,7 @@ _08049234:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x4
bl sub_804AA0C
ldr r0, _08049254
@@ -127059,7 +127059,7 @@ _08049288:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080492A4
ldr r0, [r0]
adds r0, 0x7B
@@ -127245,7 +127245,7 @@ _080493DC:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, [r6]
adds r1, r0, 0
adds r1, 0x85
@@ -127675,7 +127675,7 @@ _0804975C:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, [r4]
adds r0, 0x7B
movs r1, 0x2
@@ -127842,7 +127842,7 @@ _0804989C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080498D8
ldr r0, [r0]
adds r0, 0x7B
@@ -131107,7 +131107,7 @@ sub_804B210: @ 804B210
bl sub_804B1BC
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_804B210
@@ -131710,7 +131710,7 @@ _0804B726:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0804B746:
ldr r1, _0804B758
ldr r2, _0804B754
@@ -131736,7 +131736,7 @@ _0804B76E:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -131981,7 +131981,7 @@ _0804B9AA:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0804B9CA:
ldr r1, _0804B9DC
ldr r2, _0804B9D8
@@ -132007,7 +132007,7 @@ _0804B9F2:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x10
pop {r3}
mov r8, r3
@@ -132241,7 +132241,7 @@ sub_804BBCC: @ 804BBCC
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_804BBCC
@@ -133511,7 +133511,7 @@ _0804C824:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0804C844
ldr r0, [r0]
adds r0, 0xC4
@@ -133819,7 +133819,7 @@ _0804CAB4:
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0804CAD4
ldr r0, [r0]
adds r0, 0xC4
@@ -133869,7 +133869,7 @@ _0804CB24:
adds r0, r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r5, _0804CB68
adds r0, r5, 0
movs r1, 0x6F
@@ -133989,7 +133989,7 @@ _0804CC2C:
ldr r2, _0804CC3C
movs r0, 0x1
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
bl _0804D538
.align 2, 0
_0804CC3C: .4byte 0x0000ffff
@@ -133997,7 +133997,7 @@ _0804CC40:
ldr r2, _0804CC50
movs r0, 0x1
movs r1, 0
- bl sub_8074B3C
+ bl BlendPalettes
bl _0804D538
.align 2, 0
_0804CC50: .4byte 0x0000ffff
@@ -134005,7 +134005,7 @@ _0804CC54:
ldr r2, _0804CC64
movs r0, 0x1
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
bl _0804D538
.align 2, 0
_0804CC64: .4byte 0x0000ffff
@@ -134248,7 +134248,7 @@ _0804CDFA:
ldr r2, _0804CE60
movs r0, 0x1
movs r1, 0
- bl sub_8074B3C
+ bl BlendPalettes
b _0804D570
.align 2, 0
_0804CE5C: .4byte 0x02020004
@@ -134295,7 +134295,7 @@ _0804CEA6:
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, [r6]
adds r2, r1, 0
adds r2, 0xC4
@@ -134654,7 +134654,7 @@ _0804D182:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0804D1A0
ldr r0, [r0]
adds r0, 0xC4
@@ -134769,7 +134769,7 @@ _0804D1F4:
lsls r0, r1
ldr r2, _0804D2A4
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
ldr r1, [r6]
adds r2, r1, 0
adds r2, 0xC4
@@ -134807,7 +134807,7 @@ _0804D2A8:
movs r1, 0x1
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, [r6]
b _0804D53C
.align 2, 0
@@ -135098,7 +135098,7 @@ _0804D528:
movs r2, 0
movs r3, 0x10
_0804D534:
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0804D538:
ldr r0, _0804D548
ldr r1, [r0]
@@ -135218,7 +135218,7 @@ _0804D614:
_0804D622:
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -135404,7 +135404,7 @@ _0804D760:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0804D796:
add sp, 0x4
pop {r4}
@@ -135939,7 +135939,7 @@ _0804DBE6:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4-r6}
pop {r0}
bx r0
@@ -135991,7 +135991,7 @@ _0804DC64:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
@@ -136414,7 +136414,7 @@ _0804E0A0:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0804E0F4
_0804E0BC:
ldr r0, _0804E0D8
@@ -136468,7 +136468,7 @@ _0804E11A:
_0804E128:
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -136493,7 +136493,7 @@ _0804E158:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
@@ -136515,7 +136515,7 @@ sub_804E174: @ 804E174
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -136665,7 +136665,7 @@ sub_804E2BC: @ 804E2BC
bl sub_80514F0
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_804E2BC
@@ -136675,7 +136675,7 @@ sub_804E2D8: @ 804E2D8
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_804E2D8
@@ -137095,7 +137095,7 @@ _0804E67C:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl sub_8051474
b _0804E6BE
_0804E692:
@@ -137145,7 +137145,7 @@ _0804E6D4:
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0804E71A
.align 2, 0
_0804E6FC: .4byte 0x03004854
@@ -137165,7 +137165,7 @@ _0804E700:
_0804E71A:
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -137802,7 +137802,7 @@ _0804ECE8:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0804F0AA
_0804ECFA:
bl sub_804E4FC
@@ -138288,7 +138288,7 @@ _0804F0CE:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r3}
mov r8, r3
@@ -138801,7 +138801,7 @@ _0804F4EC:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _0804F514
ldr r1, [r2]
ldrb r0, [r1]
@@ -139179,7 +139179,7 @@ _0804F7E6:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r3}
mov r8, r3
@@ -140491,7 +140491,7 @@ _0805027E:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4-r6}
pop {r0}
bx r0
@@ -141861,7 +141861,7 @@ _08050CB6:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4-r7}
pop {r0}
bx r0
@@ -142280,7 +142280,7 @@ _08051030:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08051050
ldr r1, [r0]
b _080510AC
@@ -142346,7 +142346,7 @@ _080510C4:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -142469,7 +142469,7 @@ _080511BC:
_080511D4: .4byte 0x03004854
_080511D8:
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
ldr r0, _080511EC
ldr r1, [r0]
adds r1, 0x6F
@@ -142505,7 +142505,7 @@ _0805121E:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
@@ -144921,7 +144921,7 @@ unref_sub_80524BC: @ 80524BC
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r1, _08052528
movs r0, 0xFA
lsls r0, 5
@@ -145659,7 +145659,7 @@ sub_8052AF8: @ 8052AF8
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8052AF8
diff --git a/asm/rom4.s b/asm/rom4.s
index 9c02fe0d6..4bd319a49 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -3016,7 +3016,7 @@ c2_overworld_basic: @ 8054370
bl CameraUpdate
bl UpdateCameraPanning
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl sub_8072EDC
pop {r0}
bx r0
@@ -3545,7 +3545,7 @@ VBlankCB_Field: @ 80547F4
bl ProcessSpriteCopyRequests
bl sub_8089668
bl sub_8057A58
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8072E74
pop {r0}
bx r0
@@ -4170,7 +4170,7 @@ sub_8054D4C: @ 8054D4C
adds r4, r0, 0
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
bl dp12_8087EA4
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
@@ -52981,7 +52981,7 @@ _0806AB16:
bl dp12_8087EA4
bl ResetSpriteData
bl ResetTasks
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r4, _0806ABA0
adds r0, r4, 0
bl SetUpWindowConfig
@@ -53020,7 +53020,7 @@ sub_806ABB0: @ 806ABB0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_806ABB0
@@ -53030,7 +53030,7 @@ sub_806ABC8: @ 806ABC8
push {lr}
bl ProcessSpriteCopyRequests
bl LoadOam
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_806ABC8
@@ -53191,7 +53191,7 @@ _0806AD18:
movs r1, 0x1
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x1
strh r0, [r5]
b _0806AEC4
@@ -53365,7 +53365,7 @@ _0806AE8C:
movs r1, 0x1
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x6
strh r0, [r5]
_0806AEAE:
@@ -53422,7 +53422,7 @@ _0806AEF8:
cmp r6, 0x5
ble _0806AEF8
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -53437,7 +53437,7 @@ sub_806AF34: @ 806AF34
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_806B548
pop {r0}
bx r0
@@ -54021,7 +54021,7 @@ _0806B40C:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _0806B434
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -62322,7 +62322,7 @@ sub_806F44C: @ 806F44C
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0806F488
lsls r0, r4, 2
adds r0, r4
@@ -66959,7 +66959,7 @@ _080719EA:
thumb_func_start sub_80719F0
sub_80719F0: @ 80719F0
push {lr}
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80719F0
@@ -67048,7 +67048,7 @@ _08071AA0: .4byte 0x81000800
_08071AA4:
bl ResetSpriteData
bl ResetTasks
- bl sub_8073B94
+ bl ResetPaletteFade
bl dp12_8087EA4
b _08071B10
_08071AB6:
@@ -67071,7 +67071,7 @@ _08071AD8:
negs r0, r0
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldr r0, _08071B00
bl SetVBlankCallback
ldr r3, _08071B04
@@ -67132,7 +67132,7 @@ _08071B50: .4byte sub_8071B54
sub_8071B54: @ 8071B54
push {lr}
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8071B54
@@ -67208,7 +67208,7 @@ _08071BEE:
movs r2, 0
movs r3, 0x10
_08071BFA:
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08071BFE:
ldrh r0, [r4]
adds r0, 0x1
@@ -71264,14845 +71264,3 @@ sub_80739EC: @ 80739EC
_08073A0C: .4byte gUnknown_0837DEDC
_08073A10: .4byte 0x06007e00
thumb_func_end sub_80739EC
-
- thumb_func_start LoadCompressedPalette
-LoadCompressedPalette: @ 8073A14
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- ldr r6, _08073A4C
- adds r1, r6, 0
- bl sub_800D238
- lsls r4, 1
- ldr r1, _08073A50
- adds r1, r4, r1
- lsrs r5, 17
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _08073A54
- adds r4, r0
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08073A4C: .4byte 0x0202f39c
-_08073A50: .4byte 0x0202eac8
-_08073A54: .4byte 0x0202eec8
- thumb_func_end LoadCompressedPalette
-
- thumb_func_start LoadPalette
-LoadPalette: @ 8073A58
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsls r5, 16
- lsrs r4, 15
- ldr r1, _08073A88
- adds r1, r4, r1
- lsrs r5, 17
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _08073A8C
- adds r4, r0
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08073A88: .4byte 0x0202eac8
-_08073A8C: .4byte 0x0202eec8
- thumb_func_end LoadPalette
-
- thumb_func_start FillPalette
-FillPalette: @ 8073A90
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r6, 16
- lsrs r6, 16
- lsls r4, 16
- lsls r5, 16
- mov r0, sp
- strh r6, [r0]
- lsrs r4, 15
- ldr r1, _08073AD8
- adds r1, r4, r1
- lsrs r5, 17
- movs r0, 0x80
- lsls r0, 17
- orrs r5, r0
- mov r0, sp
- adds r2, r5, 0
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- strh r6, [r0]
- ldr r1, _08073ADC
- adds r4, r1
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08073AD8: .4byte 0x0202eac8
-_08073ADC: .4byte 0x0202eec8
- thumb_func_end FillPalette
-
- thumb_func_start copy_pal_bg_faded_to_pal_ram
-copy_pal_bg_faded_to_pal_ram: @ 8073AE0
- push {r4,r5,lr}
- ldr r4, _08073B28
- ldrb r1, [r4, 0x8]
- movs r5, 0x80
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08073B22
- ldr r1, _08073B2C
- movs r2, 0xA0
- lsls r2, 19
- ldr r0, _08073B30
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08073B34
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _08073B38
- str r3, [r0]
- ldrb r1, [r4, 0x9]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _08073B22
- ldrb r1, [r4, 0x7]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08073B22
- bl sub_8074A88
-_08073B22:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08073B28: .4byte 0x0202f388
-_08073B2C: .4byte 0x0202eec8
-_08073B30: .4byte 0x040000d4
-_08073B34: .4byte 0x80000200
-_08073B38: .4byte 0x0202f398
- thumb_func_end copy_pal_bg_faded_to_pal_ram
-
- thumb_func_start fade_and_return_progress_probably
-fade_and_return_progress_probably: @ 8073B3C
- push {lr}
- ldr r0, _08073B4C
- ldr r0, [r0]
- cmp r0, 0
- beq _08073B50
- movs r0, 0xFF
- b _08073B88
- .align 2, 0
-_08073B4C: .4byte 0x0202f398
-_08073B50:
- ldr r0, _08073B64
- ldrb r0, [r0, 0x9]
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- bne _08073B68
- bl pal_fade__0
- b _08073B76
- .align 2, 0
-_08073B64: .4byte 0x0202f388
-_08073B68:
- cmp r1, 0x1
- bne _08073B72
- bl pal_fade__1
- b _08073B76
-_08073B72:
- bl pal_fade__2
-_08073B76:
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _08073B8C
- ldr r0, _08073B90
- ldr r0, [r0]
- movs r1, 0
- orrs r0, r1
- str r0, [r2]
- adds r0, r3, 0
-_08073B88:
- pop {r1}
- bx r1
- .align 2, 0
-_08073B8C: .4byte 0x0202f398
-_08073B90: .4byte 0x0202f388
- thumb_func_end fade_and_return_progress_probably
-
- thumb_func_start sub_8073B94
-sub_8073B94: @ 8073B94
- push {r4,lr}
- movs r4, 0
-_08073B98:
- adds r0, r4, 0
- bl palslot_dead_struct_update
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08073B98
- bl pal_fade_control_reset_maybe
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8073B94
-
- thumb_func_start sub_8073BB4
-sub_8073BB4: @ 8073BB4
- push {r4-r7,lr}
- movs r0, 0xA0
- lsls r0, 19
- mov r12, r0
- movs r4, 0
- ldr r7, _08073BE8
- ldr r6, _08073BEC
- ldr r5, _08073BF0
-_08073BC4:
- lsls r1, r4, 1
- adds r3, r1, r7
- mov r0, r12
- adds r2, r1, r0
- ldrh r0, [r2]
- strh r0, [r3]
- adds r1, r6
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bls _08073BC4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08073BE8: .4byte 0x0202eac8
-_08073BEC: .4byte 0x0202eec8
-_08073BF0: .4byte 0x000001ff
- thumb_func_end sub_8073BB4
-
- thumb_func_start pal_fade_maybe
-pal_fade_maybe: @ 8073BF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r5, _08073C24
- ldrb r1, [r5, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08073C28
- movs r0, 0
- b _08073D20
- .align 2, 0
-_08073C24: .4byte 0x0202f388
-_08073C28:
- ldrb r0, [r5, 0xA]
- movs r3, 0x79
- negs r3, r3
- adds r2, r3, 0
- ands r2, r0
- movs r0, 0x10
- orrs r2, r0
- strb r2, [r5, 0xA]
- lsls r0, r6, 24
- asrs r1, r0, 24
- cmp r1, 0
- bge _08073C56
- lsls r0, r2, 25
- lsrs r0, 28
- negs r1, r1
- adds r0, r1
- movs r1, 0xF
- ands r0, r1
- lsls r0, 3
- ands r2, r3
- orrs r2, r0
- strb r2, [r5, 0xA]
- movs r6, 0
-_08073C56:
- str r4, [r5]
- movs r4, 0x3F
- adds r1, r6, 0
- ands r1, r4
- ldrb r2, [r5, 0x4]
- movs r3, 0x40
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x4]
- ands r6, r4
- ldrb r0, [r5, 0x8]
- ands r3, r0
- orrs r3, r6
- strb r3, [r5, 0x8]
- movs r0, 0x1F
- mov r1, r12
- ands r1, r0
- lsls r1, 6
- ldrh r2, [r5, 0x4]
- ldr r0, _08073CC4
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- lsls r2, r7, 3
- ldrb r1, [r5, 0x5]
- movs r0, 0x7
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldr r1, _08073CC8
- mov r0, r8
- ands r1, r0
- ldrh r2, [r5, 0x6]
- ldr r0, _08073CCC
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x6]
- ldrb r0, [r5, 0x7]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r5, 0x7]
- ldrb r1, [r5, 0x9]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x9]
- cmp r12, r7
- bcs _08073CD0
- movs r0, 0x41
- negs r0, r0
- ands r3, r0
- b _08073CD4
- .align 2, 0
-_08073CC4: .4byte 0xfffff83f
-_08073CC8: .4byte 0x00007fff
-_08073CCC: .4byte 0xffff8000
-_08073CD0:
- movs r0, 0x40
- orrs r3, r0
-_08073CD4:
- strb r3, [r5, 0x8]
- bl fade_and_return_progress_probably
- ldr r4, _08073D2C
- ldrb r1, [r4, 0x8]
- lsrs r5, r1, 7
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- ldr r0, _08073D30
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08073D34
- bl CpuSet
- ldr r1, _08073D38
- movs r0, 0
- str r0, [r1]
- ldrb r1, [r4, 0x9]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _08073D10
- ldrb r1, [r4, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08073D10
- bl sub_8074A88
-_08073D10:
- ldr r2, _08073D2C
- lsls r3, r5, 7
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x8]
- movs r0, 0x1
-_08073D20:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08073D2C: .4byte 0x0202f388
-_08073D30: .4byte 0x0202eec8
-_08073D34: .4byte 0x04000100
-_08073D38: .4byte 0x0202f398
- thumb_func_end pal_fade_maybe
-
- thumb_func_start unref_sub_8073D3C
-unref_sub_8073D3C: @ 8073D3C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- ldr r5, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 16
- lsrs r5, 16
- str r3, [sp, 0x4]
- bl sub_8073BB4
- lsls r4, 24
- asrs r4, 24
- str r5, [sp]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r6, 0
- ldr r3, [sp, 0x4]
- bl pal_fade_maybe
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8073D3C
-
- thumb_func_start unref_sub_8073D84
-unref_sub_8073D84: @ 8073D84
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
-_08073D8E:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _08073DDC
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r0, 31
- cmp r0, 0
- beq _08073DEC
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- lsls r0, 31
- lsrs r0, 31
- cmp r0, r7
- bne _08073DEC
- ldrh r1, [r4, 0x6]
- lsls r1, 20
- lsrs r1, 25
- ldrb r0, [r2, 0xB]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- bne _08073DCA
- adds r0, r4, 0
- bl sub_8074020
- ldrb r0, [r4, 0x4]
- lsls r0, 31
- cmp r0, 0
- beq _08073DEC
-_08073DCA:
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- bne _08073DE0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8073DFC
- b _08073DE4
- .align 2, 0
-_08073DDC: .4byte 0x0202f2c8
-_08073DE0:
- subs r0, 0x1
- strb r0, [r4, 0x8]
-_08073DE4:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8073F60
-_08073DEC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08073D8E
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8073D84
-
- thumb_func_start sub_8073DFC
-sub_8073DFC: @ 8073DFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- mov r8, r1
- movs r6, 0
- ldrh r1, [r4, 0x6]
- lsls r1, 20
- lsrs r1, 25
- ldr r3, [r4]
- ldrb r0, [r3, 0x9]
- lsls r2, r0, 25
- lsrs r0, r2, 27
- adds r5, r1, 0
- muls r5, r0
- ldrb r1, [r3, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08073E98
- lsrs r0, r2, 27
- cmp r6, r0
- bcs _08073EE4
- ldr r0, _08073E88
- mov r12, r0
- ldr r7, _08073E8C
-_08073E30:
- ldr r0, [r4, 0x4]
- lsls r0, 11
- lsrs r0, 22
- lsls r0, 1
- add r0, r12
- ldr r1, [r3, 0x4]
- lsls r2, r5, 1
- adds r1, r2, r1
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, [r4, 0x4]
- lsls r0, 11
- lsrs r0, 22
- lsls r0, 1
- adds r0, r7
- ldr r1, [r4]
- ldr r1, [r1, 0x4]
- adds r2, r1
- ldrh r1, [r2]
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, [r4, 0x4]
- lsls r1, r2, 11
- lsrs r1, 22
- adds r1, 0x1
- ldr r0, _08073E90
- ands r1, r0
- lsls r1, 11
- ldr r0, _08073E94
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r3, [r4]
- ldrb r0, [r3, 0x9]
- lsls r0, 25
- lsrs r0, 27
- cmp r6, r0
- bcc _08073E30
- b _08073EE4
- .align 2, 0
-_08073E88: .4byte 0x0202eac8
-_08073E8C: .4byte 0x0202eec8
-_08073E90: .4byte 0x000003ff
-_08073E94: .4byte 0xffe007ff
-_08073E98:
- lsrs r0, r2, 27
- cmp r6, r0
- bcs _08073EE4
- ldr r3, _08073F50
-_08073EA0:
- ldr r1, [r4, 0x4]
- lsls r1, 11
- lsrs r1, 22
- lsls r1, 1
- adds r1, r3
- ldr r0, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, [r4, 0x4]
- lsls r1, r2, 11
- lsrs r1, 22
- adds r1, 0x1
- ldr r0, _08073F54
- ands r1, r0
- lsls r1, 11
- ldr r0, _08073F58
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4]
- ldrb r0, [r0, 0x9]
- lsls r0, 25
- lsrs r0, 27
- cmp r6, r0
- bcc _08073EA0
-_08073EE4:
- ldrh r0, [r4, 0x4]
- lsls r0, 21
- lsrs r0, 23
- lsls r0, 11
- ldr r1, [r4, 0x4]
- ldr r2, _08073F58
- ands r1, r2
- orrs r1, r0
- str r1, [r4, 0x4]
- ldr r3, [r4]
- ldrb r0, [r3, 0xA]
- strb r0, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- lsls r0, r2, 20
- lsrs r0, 25
- adds r0, 0x1
- movs r1, 0x7F
- ands r0, r1
- lsls r0, 5
- ldr r5, _08073F5C
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strh r1, [r4, 0x6]
- lsls r1, 20
- lsrs r1, 25
- ldrb r0, [r3, 0xB]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- blt _08073F34
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _08073F2C
- subs r0, 0x1
- strb r0, [r4, 0x9]
-_08073F2C:
- ldrh r1, [r4, 0x6]
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r4, 0x6]
-_08073F34:
- ldrh r0, [r4, 0x4]
- lsls r0, 21
- lsrs r0, 27
- movs r1, 0x1
- lsls r1, r0
- mov r2, r8
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08073F50: .4byte 0x0202eec8
-_08073F54: .4byte 0x000003ff
-_08073F58: .4byte 0xffe007ff
-_08073F5C: .4byte 0xfffff01f
- thumb_func_end sub_8073DFC
-
- thumb_func_start sub_8073F60
-sub_8073F60: @ 8073F60
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r3, _08073FB8
- ldrb r1, [r3, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08074014
- ldrh r0, [r4, 0x4]
- lsls r0, 21
- lsrs r6, r0, 23
- asrs r1, r6, 4
- movs r5, 0x1
- adds r0, r5, 0
- lsls r0, r1
- ldr r1, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08074014
- ldr r2, [r4]
- ldrb r1, [r2, 0x8]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08073FBC
- ldrb r1, [r3, 0x4]
- lsls r1, 26
- ldrb r0, [r3, 0x8]
- lsls r0, 26
- cmp r1, r0
- beq _08074014
- adds r0, r6, 0
- ldrb r1, [r2, 0x9]
- lsls r1, 25
- lsrs r1, 27
- ldrh r2, [r3, 0x4]
- lsls r2, 21
- lsrs r2, 27
- ldrh r3, [r3, 0x6]
- lsls r3, 17
- lsrs r3, 17
- bl pal_fade_1
- b _08074014
- .align 2, 0
-_08073FB8: .4byte 0x0202f388
-_08073FBC:
- ldrb r1, [r3, 0x4]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _08074014
- ldrb r0, [r4, 0x8]
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- beq _08074014
- ldrh r0, [r4, 0x6]
- lsls r0, 20
- lsrs r0, 25
- ldrb r1, [r2, 0x9]
- lsls r1, 25
- lsrs r2, r1, 27
- adds r5, r0, 0
- muls r5, r2
- movs r3, 0
- adds r1, r2, 0
- cmp r3, r1
- bcs _08074014
- ldr r6, _0807401C
-_08073FE8:
- ldrh r1, [r4, 0x4]
- lsls r1, 21
- lsrs r1, 23
- adds r1, r3
- lsls r1, 1
- adds r1, r6
- ldr r2, [r4]
- adds r0, r5, r3
- ldr r2, [r2, 0x4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, [r4]
- ldrb r0, [r0, 0x9]
- lsls r0, 25
- lsrs r0, 27
- cmp r3, r0
- bcc _08073FE8
-_08074014:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807401C: .4byte 0x0202eec8
- thumb_func_end sub_8073F60
-
- thumb_func_start sub_8074020
-sub_8074020: @ 8074020
- push {lr}
- adds r3, r0, 0
- ldrb r0, [r3, 0x9]
- cmp r0, 0
- bne _08074070
- ldr r2, [r3]
- ldrb r0, [r2, 0xB]
- lsrs r0, 5
- cmp r0, 0
- bne _08074060
- ldrh r1, [r3, 0x6]
- ldr r0, _08074058
- ands r0, r1
- strh r0, [r3, 0x6]
- ldrb r0, [r2, 0xA]
- strb r0, [r3, 0x8]
- ldrb r0, [r2, 0xC]
- strb r0, [r3, 0x9]
- ldrh r0, [r3, 0x4]
- lsls r0, 21
- lsrs r0, 23
- lsls r0, 11
- ldr r1, [r3, 0x4]
- ldr r2, _0807405C
- ands r1, r2
- orrs r1, r0
- str r1, [r3, 0x4]
- b _08074074
- .align 2, 0
-_08074058: .4byte 0xfffff01f
-_0807405C: .4byte 0xffe007ff
-_08074060:
- cmp r0, 0
- blt _08074074
- cmp r0, 0x2
- bgt _08074074
- ldrh r0, [r2]
- bl sub_8074078
- b _08074074
-_08074070:
- subs r0, 0x1
- strb r0, [r3, 0x9]
-_08074074:
- pop {r0}
- bx r0
- thumb_func_end sub_8074020
-
- thumb_func_start sub_8074078
-sub_8074078: @ 8074078
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_80741C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _0807408E
- bl palslot_dead_struct_update
-_0807408E:
- pop {r0}
- bx r0
- thumb_func_end sub_8074078
-
- thumb_func_start palslot_dead_struct_update
-palslot_dead_struct_update: @ 8074094
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080740DC
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080740E0
- str r0, [r1]
- ldrb r2, [r1, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x4]
- ldrh r2, [r1, 0x4]
- ldr r0, _080740E4
- ands r0, r2
- strh r0, [r1, 0x4]
- ldr r0, [r1, 0x4]
- ldr r2, _080740E8
- ands r0, r2
- str r0, [r1, 0x4]
- ldrh r2, [r1, 0x6]
- ldr r0, _080740EC
- ands r0, r2
- strh r0, [r1, 0x6]
- ldrb r2, [r1, 0x4]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x4]
- movs r0, 0
- strb r0, [r1, 0x8]
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_080740DC: .4byte 0x0202f2c8
-_080740E0: .4byte gUnknown_0837DEE4
-_080740E4: .4byte 0xfffff803
-_080740E8: .4byte 0xffe007ff
-_080740EC: .4byte 0xfffff01f
- thumb_func_end palslot_dead_struct_update
-
- thumb_func_start pal_fade_control_reset_maybe
-pal_fade_control_reset_maybe: @ 80740F0
- ldr r2, _08074158
- movs r0, 0
- str r0, [r2]
- subs r0, 0x40
- ldrb r1, [r2, 0x4]
- ands r0, r1
- strb r0, [r2, 0x4]
- ldrh r1, [r2, 0x4]
- ldr r0, _0807415C
- ands r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r2, 0x5]
- movs r0, 0x7
- ands r0, r1
- strb r0, [r2, 0x5]
- ldrh r1, [r2, 0x6]
- ldr r0, _08074160
- ands r0, r1
- strh r0, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x7]
- movs r0, 0
- strb r0, [r2, 0x8]
- ldrb r1, [r2, 0x9]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x9
- negs r1, r1
- ands r0, r1
- strb r0, [r2, 0x9]
- ldrb r1, [r2, 0xA]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0xA]
- ldr r0, [r2, 0x8]
- ldr r1, _08074164
- ands r0, r1
- str r0, [r2, 0x8]
- ldrb r0, [r2, 0xA]
- ands r3, r0
- movs r0, 0x79
- negs r0, r0
- ands r3, r0
- movs r0, 0x10
- orrs r3, r0
- strb r3, [r2, 0xA]
- bx lr
- .align 2, 0
-_08074158: .4byte 0x0202f388
-_0807415C: .4byte 0xfffff83f
-_08074160: .4byte 0xffff8000
-_08074164: .4byte 0xfffe0fff
- thumb_func_end pal_fade_control_reset_maybe
-
- thumb_func_start unref_sub_8074168
-unref_sub_8074168: @ 8074168
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_80741C4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _0807418C
- ldr r1, _08074190
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x4]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x4]
-_0807418C:
- pop {r0}
- bx r0
- .align 2, 0
-_08074190: .4byte 0x0202f2c8
- thumb_func_end unref_sub_8074168
-
- thumb_func_start unref_sub_8074194
-unref_sub_8074194: @ 8074194
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_80741C4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _080741BA
- ldr r0, _080741C0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x4]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x4]
-_080741BA:
- pop {r0}
- bx r0
- .align 2, 0
-_080741C0: .4byte 0x0202f2c8
- thumb_func_end unref_sub_8074194
-
- thumb_func_start sub_80741C4
-sub_80741C4: @ 80741C4
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _080741E4
-_080741CE:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrh r0, [r0]
- cmp r0, r2
- bne _080741E8
- adds r0, r1, 0
- b _080741F4
- .align 2, 0
-_080741E4: .4byte 0x0202f2c8
-_080741E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080741CE
- movs r0, 0x10
-_080741F4:
- pop {r1}
- bx r1
- thumb_func_end sub_80741C4
-
- thumb_func_start pal_fade__0
-pal_fade__0: @ 80741F8
- push {r4-r7,lr}
- ldr r4, _0807420C
- ldrb r1, [r4, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08074210
- movs r0, 0
- b _0807432C
- .align 2, 0
-_0807420C: .4byte 0x0202f388
-_08074210:
- bl sub_8074AD8
- lsls r0, 24
- cmp r0, 0
- beq _0807421E
- ldrb r0, [r4, 0x7]
- b _0807432A
-_0807421E:
- ldrb r1, [r4, 0xA]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08074252
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 26
- ldrb r0, [r4, 0x8]
- lsls r0, 26
- cmp r1, r0
- bcs _0807424A
- lsrs r0, r1, 26
- adds r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- movs r0, 0x2
- b _0807432C
-_0807424A:
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- strb r0, [r4, 0x4]
-_08074252:
- movs r5, 0
- ldr r2, _08074268
- ldrb r1, [r2, 0xA]
- movs r0, 0x4
- ands r0, r1
- adds r7, r2, 0
- cmp r0, 0
- bne _0807426C
- ldrh r4, [r7]
- b _08074272
- .align 2, 0
-_08074268: .4byte 0x0202f388
-_0807426C:
- ldrh r4, [r7, 0x2]
- movs r5, 0x80
- lsls r5, 1
-_08074272:
- cmp r4, 0
- beq _080742A4
- ldr r7, _080742E0
- adds r6, r7, 0
-_0807427A:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08074296
- ldrh r2, [r6, 0x4]
- lsls r2, 21
- lsrs r2, 27
- ldrh r3, [r6, 0x6]
- lsls r3, 17
- lsrs r3, 17
- adds r0, r5, 0
- movs r1, 0x10
- bl pal_fade_1
-_08074296:
- lsrs r4, 1
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- bne _0807427A
-_080742A4:
- ldrb r2, [r7, 0xA]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- ands r4, r2
- orrs r4, r1
- strb r4, [r7, 0xA]
- movs r0, 0x4
- ands r0, r4
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08074328
- ldrh r6, [r7, 0x4]
- lsls r2, r6, 21
- ldrb r0, [r7, 0x5]
- lsls r5, r0, 24
- lsrs r1, r2, 27
- lsrs r0, r5, 27
- cmp r1, r0
- bne _080742E4
- str r3, [r7]
- movs r0, 0x2
- orrs r4, r0
- strb r4, [r7, 0xA]
- b _08074328
- .align 2, 0
-_080742E0: .4byte 0x0202f388
-_080742E4:
- ldrb r1, [r7, 0x8]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08074300
- lsrs r3, r2, 27
- lsls r0, r4, 25
- lsrs r0, 28
- adds r3, r0, r3
- lsrs r0, r5, 27
- cmp r3, r0
- ble _08074316
- adds r3, r0, 0
- b _08074316
-_08074300:
- lsrs r3, r2, 27
- lsls r0, r4, 25
- lsrs r0, 28
- subs r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- asrs r0, 24
- lsrs r1, r5, 27
- cmp r0, r1
- bge _08074316
- adds r3, r1, 0
-_08074316:
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 6
- ldr r1, _08074334
- ands r1, r6
- orrs r1, r0
- strh r1, [r7, 0x4]
-_08074328:
- ldrb r0, [r7, 0x7]
-_0807432A:
- lsrs r0, 7
-_0807432C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08074334: .4byte 0xfffff83f
- thumb_func_end pal_fade__0
-
- thumb_func_start sub_8074338
-sub_8074338: @ 8074338
- push {r4-r7,lr}
- adds r1, r0, 0
- movs r3, 0
- cmp r1, 0
- beq _08074376
- ldr r7, _0807437C
-_08074344:
- movs r0, 0x1
- ands r0, r1
- lsrs r4, r1, 1
- adds r5, r3, 0
- adds r5, 0x10
- cmp r0, 0
- beq _0807436C
- movs r2, 0
- adds r6, r7, 0
-_08074356:
- adds r0, r3, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r0]
- mvns r1, r1
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08074356
-_0807436C:
- adds r1, r4, 0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r1, 0
- bne _08074344
-_08074376:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807437C: .4byte 0x0202eec8
- thumb_func_end sub_8074338
-
- thumb_func_start sub_8074380
-sub_8074380: @ 8074380
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- movs r0, 0
- mov r9, r0
- cmp r4, 0
- beq _0807443C
- lsls r1, 24
- str r1, [sp, 0x8]
-_080743AA:
- movs r0, 0x1
- ands r0, r4
- lsrs r4, 1
- str r4, [sp, 0xC]
- movs r1, 0x10
- add r1, r9
- mov r10, r1
- cmp r0, 0
- beq _0807442E
- movs r4, 0
- ldr r2, _0807444C
- mov r8, r2
- ldr r1, [sp]
- lsls r0, r1, 24
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- ldr r2, [sp, 0x8]
- asrs r2, 24
- mov r12, r2
- movs r5, 0x1F
- asrs r7, r0, 24
- asrs r6, r1, 24
-_080743D6:
- mov r0, r9
- adds r2, r0, r4
- lsls r2, 1
- add r2, r8
- ldr r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- add r1, r12
- ands r1, r5
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r2]
- lsls r1, 22
- lsrs r1, 27
- adds r1, r7
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 5
- ldrh r3, [r2]
- ldr r0, _08074450
- ands r0, r3
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r2]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r6
- ands r1, r5
- lsls r1, 2
- ldrb r3, [r2, 0x1]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080743D6
-_0807442E:
- ldr r4, [sp, 0xC]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r0, 16
- mov r9, r0
- cmp r4, 0
- bne _080743AA
-_0807443C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807444C: .4byte 0x0202eec8
-_08074450: .4byte 0xfffffc1f
- thumb_func_end sub_8074380
-
- thumb_func_start sub_8074454
-sub_8074454: @ 8074454
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r1, r0, 0
- movs r3, 0
- cmp r1, 0
- beq _0807449E
- ldr r0, _080744A8
- mov r8, r0
- ldr r0, _080744AC
- mov r12, r0
-_0807446A:
- movs r0, 0x1
- ands r0, r1
- lsrs r4, r1, 1
- adds r5, r3, 0
- adds r5, 0x10
- cmp r0, 0
- beq _08074494
- movs r2, 0
- mov r7, r8
- mov r6, r12
-_0807447E:
- adds r0, r3, r2
- lsls r0, 1
- adds r1, r0, r7
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0807447E
-_08074494:
- adds r1, r4, 0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r1, 0
- bne _0807446A
-_0807449E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080744A8: .4byte 0x0202eec8
-_080744AC: .4byte 0x0202eac8
- thumb_func_end sub_8074454
-
- thumb_func_start sub_80744B0
-sub_80744B0: @ 80744B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080744D0
- ldrb r2, [r3, 0xA]
- movs r1, 0x79
- negs r1, r1
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r3, 0xA]
- bl sub_80744D4
- pop {r0}
- bx r0
- .align 2, 0
-_080744D0: .4byte 0x0202f388
- thumb_func_end sub_80744B0
-
- thumb_func_start sub_80744D4
-sub_80744D4: @ 80744D4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r2, _08074548
- ldrh r0, [r2, 0x4]
- movs r3, 0xF8
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2, 0x4]
- movs r1, 0x3F
- ands r1, r4
- ldrb r3, [r2, 0x8]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldrb r0, [r2, 0x7]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x7]
- ldrb r1, [r2, 0x9]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- cmp r4, 0x2
- bne _08074526
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807454C
- ldr r2, _08074550
- mov r0, sp
- bl CpuSet
-_08074526:
- cmp r4, 0
- bne _0807453C
- mov r0, sp
- adds r0, 0x2
- ldr r2, _08074554
- adds r1, r2, 0
- strh r1, [r0]
- ldr r1, _0807454C
- ldr r2, _08074550
- bl CpuSet
-_0807453C:
- bl fade_and_return_progress_probably
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08074548: .4byte 0x0202f388
-_0807454C: .4byte 0x0202eec8
-_08074550: .4byte 0x01000200
-_08074554: .4byte 0x00007fff
- thumb_func_end sub_80744D4
-
- thumb_func_start pal_fade__1
-pal_fade__1: @ 8074558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, _08074574
- ldrb r1, [r4, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08074578
- movs r0, 0
- b _080748B2
- .align 2, 0
-_08074574: .4byte 0x0202f388
-_08074578:
- bl sub_8074AD8
- lsls r0, 24
- cmp r0, 0
- beq _08074586
- ldrb r0, [r4, 0x7]
- b _080748B0
-_08074586:
- ldrb r1, [r4, 0xA]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0807459C
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 2
- mov r10, r0
- b _080745A4
-_0807459C:
- movs r2, 0
- movs r1, 0x80
- lsls r1, 1
- mov r10, r1
-_080745A4:
- ldr r1, _080745BC
- ldrb r0, [r1, 0x8]
- lsls r0, 26
- lsrs r0, 26
- cmp r0, 0x1
- beq _08074664
- cmp r0, 0x1
- bgt _080745C0
- cmp r0, 0
- beq _080745CE
- b _080747B4
- .align 2, 0
-_080745BC: .4byte 0x0202f388
-_080745C0:
- cmp r0, 0x2
- bne _080745C6
- b _080746C8
-_080745C6:
- cmp r0, 0x3
- bne _080745CC
- b _08074750
-_080745CC:
- b _080747B4
-_080745CE:
- adds r7, r2, 0
- cmp r7, r10
- bcc _080745D6
- b _080747B4
-_080745D6:
- lsls r2, r7, 1
- ldr r0, _0807465C
- adds r0, r2, r0
- ldr r1, [r0]
- lsls r3, r1, 27
- lsls r0, r1, 22
- lsrs r0, 27
- mov r12, r0
- lsls r1, 17
- lsrs r1, 27
- mov r8, r1
- ldr r0, _08074660
- adds r2, r0
- mov r9, r2
- ldr r1, [r2]
- lsls r2, r1, 27
- lsrs r2, 3
- movs r4, 0xFE
- lsls r4, 24
- adds r2, r4
- lsls r0, r1, 22
- lsrs r0, 27
- subs r0, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 17
- lsrs r1, 27
- subs r1, 0x2
- lsls r1, 24
- lsrs r4, r1, 24
- lsrs r6, r2, 24
- asrs r2, 24
- lsrs r3, 3
- asrs r0, r3, 24
- cmp r2, r0
- bge _08074620
- lsrs r6, r3, 24
-_08074620:
- lsls r0, r5, 24
- asrs r0, 24
- mov r2, r12
- lsls r1, r2, 24
- cmp r0, r12
- bge _0807462E
- lsrs r5, r1, 24
-_0807462E:
- lsls r0, r4, 24
- asrs r0, 24
- mov r3, r8
- lsls r1, r3, 24
- cmp r0, r8
- bge _0807463C
- lsrs r4, r1, 24
-_0807463C:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 24
- asrs r0, 19
- orrs r1, r0
- lsls r0, r4, 24
- asrs r0, 14
- orrs r1, r0
- mov r4, r9
- strh r1, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _080745D6
- b _080747B4
- .align 2, 0
-_0807465C: .4byte 0x0202eac8
-_08074660: .4byte 0x0202eec8
-_08074664:
- adds r7, r2, 0
- cmp r7, r10
- bcc _0807466C
- b _080747B4
-_0807466C:
- lsls r1, r7, 1
- ldr r0, _080746C4
- adds r2, r1, r0
- ldr r1, [r2]
- lsls r0, r1, 27
- lsrs r0, 3
- movs r3, 0x80
- lsls r3, 18
- adds r0, r3
- lsrs r6, r0, 24
- lsls r0, r1, 22
- lsrs r0, 27
- adds r5, r0, 0x2
- lsls r1, 17
- lsrs r1, 27
- adds r4, r1, 0x2
- cmp r6, 0x1F
- ble _08074692
- movs r6, 0x1F
-_08074692:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0x1F
- ble _0807469C
- movs r5, 0x1F
-_0807469C:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x1F
- ble _080746A6
- movs r4, 0x1F
-_080746A6:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 24
- asrs r0, 19
- orrs r1, r0
- lsls r0, r4, 24
- asrs r0, 14
- orrs r1, r0
- strh r1, [r2]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _0807466C
- b _080747B4
- .align 2, 0
-_080746C4: .4byte 0x0202eec8
-_080746C8:
- adds r7, r2, 0
- cmp r7, r10
- bcs _080747B4
-_080746CE:
- lsls r2, r7, 1
- ldr r0, _08074748
- adds r0, r2, r0
- ldr r1, [r0]
- lsls r3, r1, 27
- lsls r0, r1, 22
- lsrs r0, 27
- mov r12, r0
- lsls r1, 17
- lsrs r1, 27
- mov r8, r1
- ldr r0, _0807474C
- adds r2, r0
- ldr r1, [r2]
- lsls r0, r1, 27
- lsrs r0, 3
- movs r4, 0x80
- lsls r4, 18
- adds r0, r4
- lsrs r6, r0, 24
- lsls r0, r1, 22
- lsrs r0, 27
- adds r5, r0, 0x2
- lsls r1, 17
- lsrs r1, 27
- adds r4, r1, 0x2
- lsrs r3, 3
- asrs r0, r3, 24
- cmp r6, r0
- ble _0807470C
- lsrs r6, r3, 24
-_0807470C:
- lsls r0, r5, 24
- asrs r0, 24
- mov r3, r12
- lsls r1, r3, 24
- cmp r0, r12
- ble _0807471A
- lsrs r5, r1, 24
-_0807471A:
- lsls r0, r4, 24
- asrs r0, 24
- mov r3, r8
- lsls r1, r3, 24
- cmp r0, r8
- ble _08074728
- lsrs r4, r1, 24
-_08074728:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 24
- asrs r0, 19
- orrs r1, r0
- lsls r0, r4, 24
- asrs r0, 14
- orrs r1, r0
- strh r1, [r2]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _080746CE
- b _080747B4
- .align 2, 0
-_08074748: .4byte 0x0202eac8
-_0807474C: .4byte 0x0202eec8
-_08074750:
- adds r7, r2, 0
- cmp r7, r10
- bcs _080747B4
- ldr r4, _080747DC
- mov r8, r4
-_0807475A:
- lsls r0, r7, 1
- mov r1, r8
- adds r3, r0, r1
- ldr r1, [r3]
- lsls r2, r1, 27
- lsrs r2, 3
- movs r4, 0xFE
- lsls r4, 24
- adds r2, r4
- lsls r0, r1, 22
- lsrs r0, 27
- subs r0, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 17
- lsrs r1, 27
- subs r1, 0x2
- lsls r1, 24
- lsrs r4, r1, 24
- lsrs r6, r2, 24
- cmp r2, 0
- bge _08074788
- movs r6, 0
-_08074788:
- lsls r0, r5, 24
- cmp r0, 0
- bge _08074790
- movs r5, 0
-_08074790:
- lsls r0, r4, 24
- cmp r0, 0
- bge _08074798
- movs r4, 0
-_08074798:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 24
- asrs r0, 19
- orrs r1, r0
- lsls r0, r4, 24
- asrs r0, 14
- orrs r1, r0
- strh r1, [r3]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _0807475A
-_080747B4:
- ldr r0, _080747E0
- ldrb r2, [r0, 0xA]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r3, 0x5
- negs r3, r3
- ands r3, r2
- orrs r3, r1
- ldr r1, _080747E0
- strb r3, [r1, 0xA]
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _080747E4
- ldrb r0, [r1, 0x7]
- b _080748B0
- .align 2, 0
-_080747DC: .4byte 0x0202eec8
-_080747E0: .4byte 0x0202f388
-_080747E4:
- ldr r2, _08074800
- ldrh r4, [r2, 0x4]
- lsls r5, r4, 21
- lsrs r0, r5, 27
- lsls r2, r3, 25
- lsrs r1, r2, 28
- subs r0, r1
- cmp r0, 0
- bge _08074808
- ldr r0, _08074804
- ands r0, r4
- ldr r3, _08074800
- strh r0, [r3, 0x4]
- b _0807481E
- .align 2, 0
-_08074800: .4byte 0x0202f388
-_08074804: .4byte 0xfffff83f
-_08074808:
- lsrs r1, r5, 27
- lsrs r0, r2, 28
- subs r1, r0
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 6
- ldr r0, _08074844
- ands r0, r4
- orrs r0, r1
- ldr r4, _08074848
- strh r0, [r4, 0x4]
-_0807481E:
- ldr r1, _08074848
- ldrh r0, [r1, 0x4]
- movs r1, 0xF8
- lsls r1, 3
- ands r1, r0
- cmp r1, 0
- bne _080748AC
- ldr r2, _08074848
- ldrb r0, [r2, 0x8]
- lsls r0, 26
- lsrs r0, 26
- cmp r0, 0x1
- beq _08074870
- cmp r0, 0x1
- bgt _0807484C
- cmp r0, 0
- beq _08074856
- b _08074898
- .align 2, 0
-_08074844: .4byte 0xfffff83f
-_08074848: .4byte 0x0202f388
-_0807484C:
- cmp r0, 0x2
- beq _08074856
- cmp r0, 0x3
- beq _0807488C
- b _08074898
-_08074856:
- ldr r0, _08074864
- ldr r1, _08074868
- ldr r2, _0807486C
- bl CpuSet
- b _08074898
- .align 2, 0
-_08074864: .4byte 0x0202eac8
-_08074868: .4byte 0x0202eec8
-_0807486C: .4byte 0x04000100
-_08074870:
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- ldr r1, _08074884
- ldr r2, _08074888
- mov r0, sp
- bl CpuSet
- b _08074898
- .align 2, 0
-_08074884: .4byte 0x0202eec8
-_08074888: .4byte 0x05000100
-_0807488C:
- str r1, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, _080748C4
- ldr r2, _080748C8
- bl CpuSet
-_08074898:
- ldr r2, _080748CC
- ldrb r1, [r2, 0x9]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldrb r0, [r2, 0xA]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0xA]
-_080748AC:
- ldr r3, _080748CC
- ldrb r0, [r3, 0x7]
-_080748B0:
- lsrs r0, 7
-_080748B2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080748C4: .4byte 0x0202eec8
-_080748C8: .4byte 0x05000100
-_080748CC: .4byte 0x0202f388
- thumb_func_end pal_fade__1
-
- thumb_func_start sub_80748D0
-sub_80748D0: @ 80748D0
- push {r4-r7,lr}
- ldr r5, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r7, _08074958
- str r0, [r7]
- movs r0, 0x3F
- ands r1, r0
- ldrb r4, [r7, 0x4]
- movs r6, 0x40
- negs r6, r6
- adds r0, r6, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r7, 0x4]
- ldrb r0, [r7, 0x8]
- ands r6, r0
- orrs r6, r1
- strb r6, [r7, 0x8]
- movs r0, 0x1F
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 6
- ldrh r4, [r7, 0x4]
- ldr r0, _0807495C
- ands r0, r4
- orrs r0, r1
- strh r0, [r7, 0x4]
- lsls r4, r3, 3
- ldrb r1, [r7, 0x5]
- movs r0, 0x7
- ands r0, r1
- orrs r0, r4
- strb r0, [r7, 0x5]
- ldrb r0, [r7, 0x7]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r7, 0x7]
- ldrb r1, [r7, 0x9]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- movs r1, 0x1
- ands r5, r1
- lsls r5, 2
- subs r1, 0x6
- ands r0, r1
- orrs r0, r5
- subs r1, 0x4
- ands r0, r1
- strb r0, [r7, 0x9]
- cmp r2, r3
- bcs _08074960
- movs r0, 0x41
- negs r0, r0
- ands r6, r0
- b _08074964
- .align 2, 0
-_08074958: .4byte 0x0202f388
-_0807495C: .4byte 0xfffff83f
-_08074960:
- movs r0, 0x40
- orrs r6, r0
-_08074964:
- strb r6, [r7, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80748D0
-
- thumb_func_start pal_fade__2
-pal_fade__2: @ 807496C
- push {r4-r7,lr}
- ldr r2, _08074980
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- bne _08074984
- movs r0, 0
- b _08074A7C
- .align 2, 0
-_08074980: .4byte 0x0202f388
-_08074984:
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 26
- ldrb r3, [r4, 0x8]
- lsls r0, r3, 26
- cmp r1, r0
- bcs _080749A6
- lsrs r0, r1, 26
- adds r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- movs r0, 0x2
- b _08074A7C
-_080749A6:
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- strb r0, [r4, 0x4]
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- bne _08074A04
- ldrh r1, [r4, 0x4]
- lsls r0, r1, 21
- lsrs r0, 27
- adds r0, 0x1
- movs r7, 0x1F
- ands r0, r7
- lsls r0, 6
- ldr r6, _08074A00
- adds r3, r6, 0
- ands r3, r1
- orrs r3, r0
- strh r3, [r4, 0x4]
- lsls r5, r3, 21
- ldrb r0, [r4, 0x5]
- lsrs r1, r5, 27
- lsrs r0, 3
- cmp r1, r0
- bls _08074A50
- ldrb r2, [r4, 0x9]
- lsls r1, r2, 28
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 3
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x9]
- lsrs r0, r5, 27
- subs r0, 0x1
- ands r0, r7
- lsls r0, 6
- ands r3, r6
- b _08074A4C
- .align 2, 0
-_08074A00: .4byte 0xfffff83f
-_08074A04:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 21
- lsrs r0, r1, 27
- subs r0, 0x1
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 6
- ldr r5, _08074A84
- adds r3, r5, 0
- ands r3, r2
- orrs r3, r0
- strh r3, [r4, 0x4]
- lsrs r1, 27
- subs r1, 0x1
- ldrb r0, [r4, 0x5]
- lsrs r0, 3
- cmp r1, r0
- bge _08074A50
- ldrb r2, [r4, 0x9]
- lsls r1, r2, 28
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 3
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x9]
- lsls r0, r3, 21
- lsrs r0, 27
- adds r0, 0x1
- ands r0, r6
- lsls r0, 6
- ands r3, r5
-_08074A4C:
- orrs r3, r0
- strh r3, [r4, 0x4]
-_08074A50:
- ldrb r1, [r4, 0x9]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08074A78
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08074A6E
- movs r0, 0
- str r0, [r4]
- ldrh r1, [r4, 0x4]
- ldr r0, _08074A84
- ands r0, r1
- strh r0, [r4, 0x4]
-_08074A6E:
- ldrb r1, [r4, 0x9]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x9]
-_08074A78:
- ldrb r0, [r4, 0x7]
- lsrs r0, 7
-_08074A7C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08074A84: .4byte 0xfffff83f
- thumb_func_end pal_fade__2
-
- thumb_func_start sub_8074A88
-sub_8074A88: @ 8074A88
- push {lr}
- ldr r1, _08074ACC
- ldr r2, _08074AD0
- ldr r0, [r2]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r3, [r2, 0x4]
- lsls r0, r3, 21
- lsrs r0, 27
- strh r0, [r1]
- ldrb r1, [r2, 0x9]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08074AC6
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- negs r1, r1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0
- str r0, [r2]
- ldr r0, _08074AD4
- ands r0, r3
- strh r0, [r2, 0x4]
- ldrb r1, [r2, 0x7]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x7]
-_08074AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_08074ACC: .4byte 0x04000050
-_08074AD0: .4byte 0x0202f388
-_08074AD4: .4byte 0xfffff83f
- thumb_func_end sub_8074A88
-
- thumb_func_start sub_8074AD8
-sub_8074AD8: @ 8074AD8
- push {r4,lr}
- ldr r3, _08074B10
- ldrb r4, [r3, 0xA]
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _08074B34
- ldr r2, [r3, 0x8]
- movs r0, 0xF8
- lsls r0, 9
- ands r0, r2
- movs r1, 0x80
- lsls r1, 7
- cmp r0, r1
- bne _08074B18
- ldrb r1, [r3, 0x7]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r3, 0x7]
- movs r0, 0x3
- negs r0, r0
- ands r0, r4
- strb r0, [r3, 0xA]
- ldr r0, [r3, 0x8]
- ldr r1, _08074B14
- ands r0, r1
- str r0, [r3, 0x8]
- b _08074B2C
- .align 2, 0
-_08074B10: .4byte 0x0202f388
-_08074B14: .4byte 0xfffe0fff
-_08074B18:
- lsls r0, r2, 15
- lsrs r0, 27
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 12
- ldr r1, _08074B30
- ands r1, r2
- orrs r1, r0
- str r1, [r3, 0x8]
-_08074B2C:
- movs r0, 0x1
- b _08074B36
- .align 2, 0
-_08074B30: .4byte 0xfffe0fff
-_08074B34:
- movs r0, 0
-_08074B36:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8074AD8
-
- thumb_func_start sub_8074B3C
-sub_8074B3C: @ 8074B3C
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 16
- lsrs r6, r2, 16
- movs r5, 0
- cmp r4, 0
- beq _08074B70
-_08074B4E:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08074B62
- adds r0, r5, 0
- movs r1, 0x10
- adds r2, r7, 0
- adds r3, r6, 0
- bl pal_fade_1
-_08074B62:
- lsrs r4, 1
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- bne _08074B4E
-_08074B70:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8074B3C
-
- thumb_func_start sub_8074B78
-sub_8074B78: @ 8074B78
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _08074B9C
- ldr r5, _08074BA0
- ldr r3, _08074BA4
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r4, _08074BA8
- str r4, [r3, 0x8]
- ldr r3, [r3, 0x8]
- bl sub_8074B3C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08074B9C: .4byte 0x0202eac8
-_08074BA0: .4byte 0x0202eec8
-_08074BA4: .4byte 0x040000d4
-_08074BA8: .4byte 0x84000100
- thumb_func_end sub_8074B78
-
- 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 gUnknown_084537C0
-_080752DC:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080752E8
- b _08075350
- .align 2, 0
-_080752E8: .4byte gUnknown_08452590
-_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 gUnknown_08453DC0
-_08075300:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0807530C
- b _08075350
- .align 2, 0
-_0807530C: .4byte gUnknown_08452B90
-_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 gUnknown_084543C0
-_08075324:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08075330
- b _08075350
- .align 2, 0
-_08075330: .4byte gUnknown_08453190
-_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 gUnknown_084549C0
-_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 gUnknown_08453790
-_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 gUnknown_081C7168
- 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 0x0400000a
-_080761A4: .4byte 0x02024be0
-_080761A8: .4byte 0x030042c0
-_080761AC: .4byte 0x02020004
-_080761B0: .4byte 0x02019348
-_080761B4: .4byte 0x030041b4
-_080761B8: .4byte 0x04000014
-_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 0x0400000a
-_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 0x0400000c
-_08076364: .4byte 0x02024be0
-_08076368: .4byte 0x03004288
-_0807636C: .4byte 0x03004280
-_08076370: .4byte 0x04000018
-_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 0x04000050
-_08076A74: .4byte 0x04000052
- 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 0x04000050
- 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 0x04000050
- 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 sub_80748D0
- 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 sub_80748D0
- 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 gUnknown_0837F374
-_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 gUnknown_0837F374
-_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 0x0400000a
-_08077804: .4byte 0x0400000c
- 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 0x0400000a
-_08077848: .4byte 0x0400000c
- 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 0x0400000a
-_080778CC: .4byte 0x0400000c
- 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 gUnknown_081E9114
-_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 0x00000181
-_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 gUnknown_081E9114
-_08077CFC:
- ldr r1, _08077D00
- b _08077DC6
- .align 2, 0
-_08077D00: .4byte gUnknown_081E9114
-_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 gUnknown_081E7C74
-_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 0x00000181
-_08077DAC: .4byte gUnknown_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 gUnknown_081E7C74
-_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 gUnknown_081E7C74
- 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
- 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 0x00000181
-_08077E18: .4byte gUnknown_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 gUnknown_081ECB14
-_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 gUnknown_081ECB14
- 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 sub_8074078
- 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 0x04000050
- 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 0x04000050
- 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 0x0400000e
-_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 0x0400000e
-_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 0x0400000e
- 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 0x04000008
- 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 0x04000052
-_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 0x04000052
- 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 pal_fade_1
- 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 pal_fade_1
- 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 gUnknown_081E9114
-_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 gUnknown_081E7C74
-_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 0x0400000c
-_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 0x0400000a
- 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 gUnknown_0837F5B0
-_08079FE8: .4byte gMonFrontPicTable
-_08079FEC: .4byte gUnknown_081E7C74
-_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 gUnknown_081E9114
-_0807A070: .4byte 0x06010000
-_0807A074: .4byte 0x040000d4
-_0807A078: .4byte 0x84000200
-_0807A07C: .4byte gUnknown_0837F5B0
-_0807A080: .4byte gUnknown_081E7C74
-_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 gUnknown_0837F5B0
-_0807A0E8: .4byte gUnknown_081E9114
-_0807A0EC: .4byte 0x02020004
-_0807A0F0: .4byte gUnknown_081E7C18
- 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 gUnknown_081E9114
-_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 0x00000181
-_0807A1A0: .4byte gUnknown_081E9114
-_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 gUnknown_081E9114
-_0807A250:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _0807A260
-_0807A258:
- ldr r4, _0807A25C
- b _0807A33E
- .align 2, 0
-_0807A25C: .4byte gUnknown_081E9114
-_0807A260:
- lsls r1, r7, 2
- ldr r0, _0807A268
- b _0807A33C
- .align 2, 0
-_0807A268: .4byte gUnknown_081E9114
-_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 0x00000181
-_0807A320: .4byte 0x02024e84
-_0807A324: .4byte gUnknown_0837F598
-_0807A328:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _0807A338
- ldr r4, _0807A334
- b _0807A33E
- .align 2, 0
-_0807A334: .4byte gUnknown_081E7C74
-_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 gUnknown_081E7C74
-_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 pal_fade_1
- ldr r0, _0807A780
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A770: .4byte 0x0202eac8
-_0807A774: .4byte 0x0202eec8
-_0807A778: .4byte 0x04000008
-_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
diff --git a/asm/rom5.s b/asm/rom5.s
index 17e783f1c..e1d7c1da0 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -92,7 +92,7 @@ _0807AE20:
ldr r4, _0807AE5C
adds r0, r4, 0
bl SetUpWindowConfig
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _0807AE60
adds r1, r4, 0
bl InitWindowFromConfig
@@ -324,7 +324,7 @@ _0807B010:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r2, _0807B05C
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -1278,7 +1278,7 @@ sub_807B7E0: @ 807B7E0
ldrb r2, [r4, 0x10]
ldrh r3, [r4, 0xA]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
ldrh r2, [r4, 0x12]
movs r1, 0x12
ldrsh r0, [r4, r1]
@@ -2431,7 +2431,7 @@ sub_807C0C8: @ 807C0C8
bl sub_8089668
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r0, _0807C0E8
ldr r1, _0807C0EC
ldrh r1, [r1]
@@ -2534,7 +2534,7 @@ _0807C130:
ldr r0, _0807C1D8
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _0807C1DC
ldr r1, _0807C1E0
adds r0, r1
@@ -2667,7 +2667,7 @@ _0807C308:
movs r1, 0x1
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0807C330
bl SetVBlankCallback
ldr r0, _0807C334
@@ -2775,7 +2775,7 @@ _0807C40C: .4byte 0x0000019d
_0807C410: .4byte 0x03001770
_0807C414: .4byte 0x0000043c
_0807C418:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -2809,7 +2809,7 @@ sub_807C454: @ 807C454
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_807C454
@@ -3088,7 +3088,7 @@ _0807C67A:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0807C6B0
bl SetMainCallback2
b _0807C74E
@@ -3124,7 +3124,7 @@ _0807C6C4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0807C6F8
bl SetMainCallback2
b _0807C74E
@@ -3168,7 +3168,7 @@ _0807C728:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0807C770
bl SetMainCallback2
_0807C74E:
@@ -3189,7 +3189,7 @@ _0807C770: .4byte sub_807C790
thumb_func_start sub_807C774
sub_807C774: @ 807C774
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0807C786
@@ -3205,7 +3205,7 @@ _0807C78C: .4byte CB2_InitMainMenu
thumb_func_start sub_807C790
sub_807C790: @ 807C790
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0807C7A2
@@ -3221,7 +3221,7 @@ _0807C7A8: .4byte sub_813BA88
thumb_func_start sub_807C7AC
sub_807C7AC: @ 807C7AC
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0807C7BE
@@ -3237,7 +3237,7 @@ _0807C7C4: .4byte c2_clear_save_data_screen_2
thumb_func_start sub_807C7C8
sub_807C7C8: @ 807C7C8
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0807C7DA
@@ -4588,7 +4588,7 @@ _0807D214:
adds r0, r6, 0
movs r1, 0x10
mov r2, r8
- bl pal_fade_1
+ bl BlendPalette
adds r0, r6, 0
adds r0, 0x10
lsls r0, 16
@@ -4743,7 +4743,7 @@ _0807D33C:
adds r0, r5, 0
movs r1, 0x10
adds r2, r6, 0
- bl pal_fade_1
+ bl BlendPalette
adds r0, r5, 0
adds r0, 0x10
lsls r0, 16
@@ -4869,7 +4869,7 @@ sub_807D424: @ 807D424
lsls r1, 1
movs r0, 0
adds r2, r7, 0
- bl pal_fade_1
+ bl BlendPalette
ldr r0, [sp]
lsls r1, r0, 27
lsrs r1, 27
@@ -4976,7 +4976,7 @@ _0807D510:
ldrh r3, [r1]
movs r1, 0x10
adds r2, r7, 0
- bl pal_fade_1
+ bl BlendPalette
adds r4, 0x1
mov r9, r4
_0807D524:
@@ -5215,7 +5215,7 @@ _0807D6C2:
str r4, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0807D6E8
ldr r3, _0807D6EC
adds r0, r3
@@ -5251,7 +5251,7 @@ _0807D714:
str r4, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0807D726:
ldr r4, _0807D760
ldr r1, _0807D764
@@ -5397,7 +5397,7 @@ _0807D820:
lsrs r3, 17
adds r0, r4, 0
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
b _0807D868
.align 2, 0
_0807D84C: .4byte 0x0202eec8
@@ -5410,7 +5410,7 @@ _0807D858:
adds r0, r4, 0
movs r1, 0x10
movs r2, 0xC
- bl pal_fade_1
+ bl BlendPalette
_0807D868:
pop {r4-r6}
pop {r0}
@@ -14947,7 +14947,7 @@ _080821D4: .4byte sub_80821D8
thumb_func_start sub_80821D8
sub_80821D8: @ 80821D8
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
bl sub_811AAE8
lsls r0, 24
@@ -31138,7 +31138,7 @@ _08089D60:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08089D8C
lsls r0, r4, 2
adds r0, r4
@@ -31437,7 +31437,7 @@ sub_8089FCC: @ 8089FCC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08089FFC
lsls r0, r4, 2
adds r0, r4
@@ -31740,7 +31740,7 @@ sub_808A228: @ 808A228
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808A270
lsls r0, r4, 2
adds r0, r4
@@ -32225,7 +32225,7 @@ sub_808A630: @ 808A630
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808A670
lsls r0, r4, 2
adds r0, r4
@@ -32451,7 +32451,7 @@ sub_808A810: @ 808A810
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808A840
lsls r0, r4, 2
adds r0, r4
@@ -32727,7 +32727,7 @@ _0808AA2C:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0808AADA
.align 2, 0
_0808AA78: .4byte gUnknown_0839F58C
@@ -33629,7 +33629,7 @@ _0808B184:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _0808B1DC
ldrb r0, [r2]
cmp r0, 0x1
@@ -33707,7 +33707,7 @@ sub_808B224: @ 808B224
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808B254
lsls r0, r4, 2
adds r0, r4
@@ -33785,7 +33785,7 @@ sub_808B2B4: @ 808B2B4
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808B2E4
lsls r0, r4, 2
adds r0, r4
@@ -33818,7 +33818,7 @@ sub_808B2EC: @ 808B2EC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808B320
lsls r0, r4, 2
adds r0, r4
@@ -34203,7 +34203,7 @@ sub_808B610: @ 808B610
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_808B610
@@ -34213,7 +34213,7 @@ sub_808B628: @ 808B628
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_808B628
@@ -34349,7 +34349,7 @@ _0808B74C: .4byte 0x81000800
_0808B750: .4byte 0x03001770
_0808B754: .4byte 0x0000043c
_0808B758:
- bl sub_8073B94
+ bl ResetPaletteFade
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
@@ -34405,7 +34405,7 @@ _0808B7D0:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808B7E8
ldr r2, _0808B7EC
adds r1, r2
@@ -34893,7 +34893,7 @@ sub_808BB80: @ 808BB80
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808BC0C
str r0, [r4]
add sp, 0x4
@@ -35553,7 +35553,7 @@ sub_808C0B8: @ 808C0B8
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_808C0B8
@@ -35871,7 +35871,7 @@ _0808C344:
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
bl FreeAllSpritePalettes
ldr r1, _0808C374
movs r0, 0x8
@@ -36093,7 +36093,7 @@ unref_sub_808C540: @ 808C540
bl sub_8091060
bl remove_some_task
bl ResetTasks
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r3, _0808C59C
ldrh r2, [r3]
movs r0, 0
@@ -36163,7 +36163,7 @@ sub_808C5F0: @ 808C5F0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_808C5F0
@@ -36272,7 +36272,7 @@ _0808C68C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, [r7]
add r0, r8
ldrh r1, [r0]
@@ -36353,7 +36353,7 @@ _0808C774:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl sub_8091E3C
ldr r1, _0808C7F4
lsls r3, r6, 2
@@ -36419,7 +36419,7 @@ _0808C814:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808C844
lsls r0, r6, 2
adds r0, r6
@@ -36607,7 +36607,7 @@ _0808C9A0:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808C9F0
lsls r0, r6, 2
adds r0, r6
@@ -37086,7 +37086,7 @@ _0808CD44:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808CDC8
lsls r0, r5, 2
adds r0, r5
@@ -37155,7 +37155,7 @@ _0808CE20:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl sub_8091E3C
ldr r2, _0808CE68
lsls r1, r5, 2
@@ -37192,7 +37192,7 @@ _0808CE78:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808CEA8
lsls r0, r5, 2
adds r0, r5
@@ -37391,7 +37391,7 @@ _0808D024:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808D04C
lsls r0, r6, 2
adds r0, r6
@@ -37412,7 +37412,7 @@ _0808D054:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0808D0A4
lsls r0, r6, 2
adds r0, r6
@@ -37869,7 +37869,7 @@ _0808D438:
ldr r1, _0808D460
bl LZ77UnCompVram
_0808D440:
- bl sub_8073B94
+ bl ResetPaletteFade
cmp r5, 0
bne _0808D46C
ldr r0, _0808D464
@@ -37996,7 +37996,7 @@ _0808D564:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808D584
bl SetVBlankCallback
ldr r1, _0808D588
@@ -42053,7 +42053,7 @@ _0808F5B0:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F5D0
ldr r0, [r0]
bl SetVBlankCallback
@@ -42201,7 +42201,7 @@ sub_808F6CC: @ 808F6CC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F708
str r0, [r5]
movs r0, 0x6C
@@ -42226,7 +42226,7 @@ _0808F70C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F740
str r0, [r5]
movs r0, 0x3
@@ -42271,7 +42271,7 @@ _0808F77C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F790
b _0808F7DA
.align 2, 0
@@ -42283,7 +42283,7 @@ _0808F794:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F7A8
b _0808F7DA
.align 2, 0
@@ -42308,7 +42308,7 @@ _0808F7C8:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808F7E4
_0808F7DA:
str r0, [r5]
@@ -42763,7 +42763,7 @@ _0808FB9C:
bl SetUpWindowConfig
adds r0, r4, 0
bl sub_8071C4C
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r1, _0808FBBC
ldr r0, _0808FBC0
adds r1, r0
@@ -42943,7 +42943,7 @@ _0808FD40:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808FD60
ldr r0, [r0]
bl SetVBlankCallback
@@ -43085,7 +43085,7 @@ _0808FE62:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808FEAC
bl m4aMPlayContinue
ldr r0, _0808FEB0
@@ -43132,7 +43132,7 @@ _0808FEDA:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808FF18
bl m4aMPlayContinue
ldr r0, _0808FF1C
@@ -43194,7 +43194,7 @@ _0808FF68:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0808FFA8
bl m4aMPlayContinue
ldr r0, _0808FFAC
@@ -43455,7 +43455,7 @@ _080901B4: .4byte 0x02024ea4
_080901B8: .4byte 0x03001770
_080901BC: .4byte 0x0000043c
_080901C0:
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r1, _080901CC
ldr r0, _080901D0
adds r1, r0
@@ -43615,7 +43615,7 @@ _08090318:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08090338
ldr r0, [r0]
bl SetVBlankCallback
@@ -43715,7 +43715,7 @@ sub_80903D0: @ 80903D0
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08090420
ldr r0, [r0]
ldr r1, _08090424
@@ -43759,7 +43759,7 @@ _0809044A:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08090488
ldr r0, [r0]
ldr r1, _0809048C
@@ -44251,7 +44251,7 @@ _08090800:
lsls r2, 2
movs r1, 0x2
bl sub_8091738
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _08090858
movs r1, 0x21
movs r2, 0x9E
@@ -44401,7 +44401,7 @@ _08090960:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080909B0
ldr r0, [r0]
bl SetVBlankCallback
@@ -44502,7 +44502,7 @@ sub_8090A3C: @ 8090A3C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _08090A94
ldr r0, _08090A98
lsls r1, r6, 2
@@ -44582,7 +44582,7 @@ _08090B0C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _08090B38
movs r0, 0xE
ldrsh r1, [r5, r0]
@@ -47265,7 +47265,7 @@ _08091FC0:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08091FD8
ldr r0, _08091FDC
adds r1, r0
@@ -48247,7 +48247,7 @@ sub_80927B8: @ 80927B8
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080927E8
lsls r0, r4, 2
adds r0, r4
@@ -49579,7 +49579,7 @@ sub_809323C: @ 809323C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_809323C
@@ -49589,7 +49589,7 @@ sub_8093254: @ 8093254
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r2, _0809329C
ldrb r0, [r2, 0x6]
adds r0, 0x1
@@ -50290,7 +50290,7 @@ _080937A0: .4byte 0x0000080e
thumb_func_start sub_80937A4
sub_80937A4: @ 80937A4
push {lr}
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
@@ -50412,7 +50412,7 @@ sub_8093864: @ 8093864
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -50540,7 +50540,7 @@ sub_8093954: @ 8093954
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0809397C
ldrb r0, [r1]
adds r0, 0x1
@@ -53860,7 +53860,7 @@ sub_809527C: @ 809527C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080952AC
lsls r0, r4, 2
adds r0, r4
@@ -53924,7 +53924,7 @@ _08095300:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08095328
lsls r0, r4, 2
adds r0, r4
@@ -54215,7 +54215,7 @@ sub_8095544: @ 8095544
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r4}
pop {r0}
@@ -56585,7 +56585,7 @@ _08096800: .4byte 0x04000010
thumb_func_start sub_8096804
sub_8096804: @ 8096804
push {lr}
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl FreeSpriteTileRanges
bl FreeAllSpritePalettes
@@ -56884,7 +56884,7 @@ _08096AAC:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08096AC4
bl SetVBlankCallback
b _08096AD8
@@ -56933,7 +56933,7 @@ sub_8096AFC: @ 8096AFC
bl LoadOam
bl ProcessSpriteCopyRequests
bl sub_809CFF0
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
@@ -57073,7 +57073,7 @@ _08096C16:
movs r1, 0
_08096C38:
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldrb r0, [r4, 0x4]
adds r0, 0x1
strb r0, [r4, 0x4]
@@ -57098,7 +57098,7 @@ _08096C64: .4byte sub_8096C84
thumb_func_start sub_8096C68
sub_8096C68: @ 8096C68
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08096C7A
@@ -58422,13 +58422,13 @@ _080977A0:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r0, [r5, 0x4]
adds r0, 0x1
strb r0, [r5, 0x4]
b _080977D4
_080977BC:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -58866,13 +58866,13 @@ _08097B5C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r0, [r5, 0x4]
adds r0, 0x1
strb r0, [r5, 0x4]
b _08097B8E
_08097B78:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08097B8E
@@ -63296,13 +63296,13 @@ _08099E36:
movs r1, 0x1
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08099E9A
.align 2, 0
_08099E4C: .4byte 0x00000d08
_08099E50: .4byte 0x0000ffff
_08099E54:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08099EA6
@@ -63320,13 +63320,13 @@ _08099E54:
movs r1, 0x1
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08099E9A
.align 2, 0
_08099E88: .4byte 0x00000d08
_08099E8C: .4byte 0x0000ffff
_08099E90:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08099EA6
@@ -70792,7 +70792,7 @@ sub_809D844: @ 809D844
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_809D844
@@ -70826,7 +70826,7 @@ sub_809D85C: @ 809D85C
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
@@ -71474,7 +71474,7 @@ _0809DE00:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r0, _0809DE30
bl SetMainCallback2
ldr r2, _0809DE34
@@ -71830,7 +71830,7 @@ sub_809E0FC: @ 809E0FC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0809E134
lsls r0, r4, 2
adds r0, r4
@@ -82086,7 +82086,7 @@ sub_80A3118: @ 80A3118
bl BuildOamBuffer
bl RunTasks
bl sub_80A740C
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80A3118
@@ -82096,7 +82096,7 @@ sub_80A3134: @ 80A3134
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r1, _080A3168
ldr r2, _080A316C
ldr r0, _080A3170
@@ -82191,7 +82191,7 @@ _080A320E:
_080A3220: .4byte 0x02000000
_080A3224: .4byte 0x0001ffff
_080A3228:
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _080A3240
ldrb r0, [r2, 0x8]
movs r1, 0x80
@@ -82408,7 +82408,7 @@ _080A3404:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _080A3450
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -87328,7 +87328,7 @@ sub_80A5AAC: @ 80A5AAC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080A5ADC
lsls r0, r4, 2
adds r0, r4
@@ -88148,7 +88148,7 @@ _080A6128:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080A616E
.align 2, 0
_080A6158: .4byte 0x03004b20
@@ -90049,7 +90049,7 @@ sub_80A7094: @ 80A7094
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -90345,7 +90345,7 @@ _080A72F4:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080A735E
.align 2, 0
_080A7344: .4byte 0x020219cc
@@ -95902,7 +95902,7 @@ sub_80A9BBC: @ 80A9BBC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080A9BE0
movs r1, 0xFF
bl CreateTask
@@ -96503,7 +96503,7 @@ sub_80AA064: @ 80AA064
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _080AA088
ldrh r0, [r0, 0x2E]
cmp r0, 0x4
@@ -96555,7 +96555,7 @@ sub_80AA090: @ 80AA090
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -96586,7 +96586,7 @@ sub_80AA10C: @ 80AA10C
bl SetVBlankCallback
bl sub_80A9F50
bl dp12_8087EA4
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
@@ -98066,7 +98066,7 @@ _080AACC0: .4byte 0x0203869c
thumb_func_start sub_80AACC4
sub_80AACC4: @ 80AACC4
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _080AACF8
ldrb r1, [r0, 0x7]
movs r0, 0x80
@@ -98116,7 +98116,7 @@ sub_80AAD08: @ 80AAD08
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080AAD32:
add sp, 0x4
pop {r4}
@@ -99052,7 +99052,7 @@ _080AB4AA:
bl sub_80AB320
bl sub_80AB1BC
bl dp12_8087EA4
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _080AB538
ldrb r1, [r0, 0x8]
movs r2, 0x80
@@ -99144,7 +99144,7 @@ _080AB578:
ldr r0, _080AB5BC
strh r1, [r0]
movs r0, 0x2
- bl sub_80744B0
+ bl BeginFastPaletteFade
ldr r2, _080AB5C0
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -99773,7 +99773,7 @@ sub_80ABAAC: @ 80ABAAC
bl AnimateSprites
bl RunTasks
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80ABAAC
@@ -99829,7 +99829,7 @@ sub_80ABAC4: @ 80ABAC4
ldr r0, _080ABB6C
ldrh r0, [r0]
strh r0, [r1]
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl sub_8089668
@@ -104172,7 +104172,7 @@ _080ADF2C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ADF48
_080ADF3E:
str r0, [r4]
@@ -104233,7 +104233,7 @@ sub_80ADF98: @ 80ADF98
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _080ADFCC
ldr r0, _080ADFD0
ldrb r1, [r0, 0x8]
@@ -109061,7 +109061,7 @@ _080B040C:
ldr r3, _080B0454
movs r1, 0x2
movs r2, 0
- bl pal_fade_1
+ bl BlendPalette
adds r0, r5, 0
bl DestroyTask
_080B0444:
@@ -109158,7 +109158,7 @@ _080B04DA:
ldrb r2, [r1]
movs r1, 0x2
ldr r3, _080B0514
- bl pal_fade_1
+ bl BlendPalette
_080B04F6:
adds r0, r6, 0x1
lsls r0, 24
@@ -109395,14 +109395,14 @@ _080B069C:
ldrb r2, [r5]
movs r1, 0x1
mov r3, r10
- bl pal_fade_1
+ bl BlendPalette
adds r4, 0xC
adds r4, r7
ldrb r2, [r5]
adds r0, r4, 0
movs r1, 0x1
mov r3, r10
- bl pal_fade_1
+ bl BlendPalette
_080B06C2:
adds r0, r7, 0x1
lsls r0, 24
@@ -109556,7 +109556,7 @@ _080B07D2:
movs r1, 0x3
adds r2, r5, 0
ldr r3, _080B07FC
- bl pal_fade_1
+ bl BlendPalette
cmp r5, 0
bne _080B0800
mov r0, r8
@@ -109603,7 +109603,7 @@ _080B0820:
ldrh r3, [r1]
movs r1, 0x3
adds r2, r5, 0
- bl pal_fade_1
+ bl BlendPalette
cmp r5, 0
bne _080B0858
mov r2, r8
@@ -109636,13 +109636,13 @@ _080B0858:
movs r1, 0x1
movs r2, 0x4
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
adds r4, 0x5
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
b _080B08EA
_080B0896:
cmp r7, 0x3
@@ -109660,7 +109660,7 @@ _080B0896:
movs r1, 0x3
adds r2, r5, 0
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -112014,7 +112014,7 @@ _080B1AA4:
ldrb r2, [r4, 0x10]
ldr r3, _080B1B0C
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -112041,7 +112041,7 @@ _080B1AD6:
movs r1, 0x1
movs r2, 0
movs r3, 0x1F
- bl pal_fade_1
+ bl BlendPalette
adds r0, r5, 0
bl DestroyTask
_080B1B06:
@@ -112654,12 +112654,12 @@ _080B1F84:
ldrh r3, [r4, 0x8]
movs r0, 0x11
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
ldrb r2, [r4, 0xA]
ldrh r3, [r4, 0x8]
movs r0, 0x1A
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
movs r2, 0xA
ldrsh r1, [r4, r2]
movs r2, 0xE
@@ -114838,7 +114838,7 @@ sub_80B3094: @ 80B3094
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80B3094
@@ -114848,7 +114848,7 @@ sub_80B30AC: @ 80B30AC
push {r4,lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r3, _080B30F0
ldr r1, _080B30F4
ldr r0, _080B30F8
@@ -114935,7 +114935,7 @@ BuyMenuDrawGraphics: @ 80B3108
movs r2, 0x20
bl LoadCompressedPalette
bl FreeAllSpritePalettes
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
ldr r4, _080B3228
@@ -114975,7 +114975,7 @@ BuyMenuDrawGraphics: @ 80B3108
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
mov r2, r8
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -117230,7 +117230,7 @@ sub_80B43F0: @ 80B43F0
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080B4430
lsls r0, r4, 2
adds r0, r4
@@ -120237,7 +120237,7 @@ sub_80B5AA0: @ 80B5AA0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80B5AA0
@@ -120247,7 +120247,7 @@ sub_80B5AB8: @ 80B5AB8
push {r4,lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r1, _080B5B00
ldr r4, _080B5B04
ldrh r0, [r4, 0x4]
@@ -120651,7 +120651,7 @@ _080B5DE0: .4byte gWindowConfig_81E6E88
thumb_func_start NamingScreen_ResetObjects
NamingScreen_ResetObjects: @ 80B5DE4
push {lr}
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
@@ -120752,7 +120752,7 @@ sub_80B5EA8: @ 80B5EA8
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080B5ECC
ldrb r0, [r1]
adds r0, 0x1
@@ -120980,7 +120980,7 @@ sub_80B606C: @ 80B606C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080B6090
ldrb r0, [r1]
adds r0, 0x1
@@ -129636,7 +129636,7 @@ sub_80BA0A8: @ 80BA0A8
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80BA0A8
@@ -129646,7 +129646,7 @@ sub_80BA0C0: @ 80BA0C0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r0, _080BA0E8
ldrb r0, [r0]
cmp r0, 0
@@ -129718,7 +129718,7 @@ unref_sub_80BA0EC: @ 80BA0EC
ldr r0, _080BA21C
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetTasks
bl ResetSpriteData
ldr r0, _080BA220
@@ -129731,7 +129731,7 @@ unref_sub_80BA0EC: @ 80BA0EC
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080BA228
strh r4, [r0]
adds r0, 0x4
@@ -130169,7 +130169,7 @@ _080BA538:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080BA568
lsls r0, r4, 2
adds r0, r4
@@ -131891,7 +131891,7 @@ _080BB306:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080BB398
strh r4, [r0]
adds r0, 0x2
@@ -146002,7 +146002,7 @@ sub_80C2358: @ 80C2358
bl SetVBlankCallback
bl sub_80C2020
bl dp12_8087EA4
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
@@ -146029,7 +146029,7 @@ sub_80C2358: @ 80C2358
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r1, [r5, 0x8]
movs r0, 0x7F
ands r0, r1
@@ -146078,7 +146078,7 @@ sub_80C2430: @ 80C2430
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80C2430
@@ -146136,7 +146136,7 @@ sub_80C2448: @ 80C2448
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -147340,7 +147340,7 @@ sub_80C2E14: @ 80C2E14
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r1, _080C2E98
lsls r0, r5, 2
adds r0, r5
@@ -147403,7 +147403,7 @@ _080C2EE8:
_080C2EEE:
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
@@ -147521,17 +147521,17 @@ _080C2FB8:
ldr r3, _080C3004
movs r0, 0x6B
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
ldrb r2, [r4, 0xA]
ldr r3, _080C3008
movs r0, 0x68
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
ldrb r2, [r4, 0xA]
ldr r3, _080C300C
movs r0, 0x6E
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
_080C2FE6:
ldr r1, _080C3000
lsls r0, r5, 2
@@ -149091,7 +149091,7 @@ sub_80C3BD8: @ 80C3BD8
ldr r3, _080C3C28
movs r0, 0x91
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -150775,7 +150775,7 @@ sub_80C48C8: @ 80C48C8
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -150837,7 +150837,7 @@ sub_80C4940: @ 80C4940
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -153526,7 +153526,7 @@ sub_80C5DCC: @ 80C5DCC
ldr r0, [r1, 0x10]
ldr r2, _080C5E14
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
ldr r0, _080C5E18
bl sub_80C61B0
ldr r1, [r4]
@@ -153774,7 +153774,7 @@ _080C5FBA:
ldr r0, [r2, 0x10]
ldr r2, _080C5FE4
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
ldr r0, _080C5FE8
bl SetHBlankCallback
ldr r1, [r4]
@@ -153792,7 +153792,7 @@ _080C5FEC:
negs r0, r0
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldr r1, [r4]
_080C6000:
ldrh r0, [r1, 0x8]
@@ -153940,7 +153940,7 @@ sub_80C60CC: @ 80C60CC
ldr r0, [r0, 0x10]
ldr r2, _080C6128
movs r1, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldr r0, _080C612C
bl SetHBlankCallback
_080C611C:
@@ -160005,7 +160005,7 @@ unknown_ItemMenu_Confirm: @ 80C9014
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -160210,7 +160210,7 @@ ItemUseOutOfBattle_Mail: @ 80C9194
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080C91C4
lsls r0, r4, 2
adds r0, r4
@@ -161675,7 +161675,7 @@ sub_80C9C7C: @ 80C9C7C
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080C9CF4
.align 2, 0
_080C9CC8: .4byte 0x03005d00
@@ -162579,7 +162579,7 @@ sub_80CA3C0: @ 80CA3C0
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -167026,7 +167026,7 @@ _080CC650:
adds r1, r4
ldrh r3, [r1]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
ldrh r0, [r5, 0x20]
ldrb r2, [r5, 0x1C]
movs r3, 0x1E
@@ -167035,7 +167035,7 @@ _080CC650:
adds r1, r4
ldrh r3, [r1]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
@@ -169058,7 +169058,7 @@ _080CD5D8:
lsls r1, 24
lsrs r1, 24
ldr r2, _080CD634
- bl sub_8074B3C
+ bl BlendPalettes
movs r3, 0x30
ldrsh r0, [r4, r3]
cmp r0, 0x10
@@ -171018,7 +171018,7 @@ sub_80CE3EC: @ 80CE3EC
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080CE4D0
str r1, [r6]
adds r0, r7, 0
@@ -171230,7 +171230,7 @@ _080CE618:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080CE640:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -171504,7 +171504,7 @@ _080CE838:
movs r1, 0x10
movs r2, 0xB
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
movs r0, 0
strh r0, [r6, 0xE]
movs r5, 0
@@ -177056,7 +177056,7 @@ sub_80D1318: @ 80D1318
ldrb r2, [r1, 0xA]
ldrh r3, [r1, 0x8]
movs r1, 0xF
- bl pal_fade_1
+ bl BlendPalette
_080D133E:
adds r0, r4, 0
movs r1, 0x1
@@ -178467,7 +178467,7 @@ sub_80D1D9C: @ 80D1D9C
bl sub_80791A8
ldr r2, _080D1DF4
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
b _080D1E1E
.align 2, 0
_080D1DEC: .4byte 0x03004b20
@@ -187119,7 +187119,7 @@ sub_80D6080: @ 80D6080
ldrb r2, [r1]
ldrh r3, [r1, 0x2]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
adds r0, r4, 0
bl move_anim_task_del
add sp, 0xC
@@ -204250,7 +204250,7 @@ _080DE500:
ldr r3, _080DE540
movs r1, 0x10
movs r2, 0xA
- bl pal_fade_1
+ bl BlendPalette
b _080DE604
.align 2, 0
_080DE534: .4byte 0x0202eac8
@@ -204514,7 +204514,7 @@ _080DE72C:
ldr r3, _080DE73C
movs r1, 0x10
movs r2, 0
- bl pal_fade_1
+ bl BlendPalette
b _080DE7AA
.align 2, 0
_080DE73C: .4byte 0x00003c0d
@@ -205439,7 +205439,7 @@ _080DEE8C:
movs r1, 0
movs r2, 0x10
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080DEEDC
str r0, [r4]
_080DEEBA:
@@ -209243,7 +209243,7 @@ _080E0C88:
ldrh r3, [r2, 0x4]
movs r1, 0x10
movs r2, 0xB
- bl pal_fade_1
+ bl BlendPalette
_080E0C94:
ldr r1, _080E0CC4
mov r2, r9
@@ -211462,7 +211462,7 @@ sub_80E1D84: @ 80E1D84
ldrb r3, [r4, 0x6]
ldrh r4, [r4, 0x8]
str r4, [sp]
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
@@ -211563,7 +211563,7 @@ sub_80E1E2C: @ 80E1E2C
bl sub_80E1DC4
ldrb r1, [r4, 0x8]
ldrh r2, [r4, 0x6]
- bl sub_8074B3C
+ bl BlendPalettes
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
@@ -211625,7 +211625,7 @@ _080E1EB8:
lsrs r1, 24
ldrh r2, [r4, 0x34]
adds r0, r3, 0
- bl sub_8074B3C
+ bl BlendPalettes
b _080E1EEC
_080E1EDE:
ldrh r1, [r4, 0x3A]
@@ -211633,7 +211633,7 @@ _080E1EDE:
lsrs r1, 24
ldrh r2, [r4, 0x38]
adds r0, r3, 0
- bl sub_8074B3C
+ bl BlendPalettes
_080E1EEC:
ldrh r0, [r4, 0x30]
movs r2, 0x80
@@ -211668,7 +211668,7 @@ sub_80E1F0C: @ 80E1F0C
bl sub_80E1DC4
movs r1, 0
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
adds r0, r4, 0
bl move_anim_8072740
_080E1F32:
@@ -211785,7 +211785,7 @@ sub_80E1FDC: @ 80E1FDC
str r2, [sp]
adds r2, r5, 0
adds r3, r6, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
@@ -211930,7 +211930,7 @@ sub_80E20E4: @ 80E20E4
adds r0, r2, 0
adds r2, r5, 0
adds r3, r6, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
@@ -212045,7 +212045,7 @@ sub_80E21A8: @ 80E21A8
adds r0, r1, 0
movs r1, 0
adds r2, r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080E2210
str r0, [r4]
add sp, 0x4
@@ -212116,7 +212116,7 @@ _080E2260:
adds r0, r2, 0
movs r1, 0
adds r2, r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080E229E
_080E228E:
ldrb r3, [r4, 0x14]
@@ -212125,7 +212125,7 @@ _080E228E:
adds r0, r2, 0
movs r1, 0
adds r2, r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080E229E:
ldr r0, _080E22C8
lsls r1, r5, 2
@@ -212184,7 +212184,7 @@ sub_80E22CC: @ 80E22CC
movs r1, 0
movs r2, 0
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
adds r0, r4, 0
bl move_anim_task_del
_080E2312:
@@ -212249,7 +212249,7 @@ _080E2370:
orrs r2, r0
_080E2382:
adds r0, r2, 0
- bl sub_8074338
+ bl InvertPlttBuffer
mov r0, r8
bl move_anim_task_del
add sp, 0xC
@@ -212371,7 +212371,7 @@ _080E2464:
movs r3, 0x16
ldrsb r3, [r4, r3]
adds r0, r5, 0
- bl sub_8074380
+ bl TintPlttBuffer
movs r2, 0x8
ldrsh r1, [r4, r2]
movs r2, 0xA
@@ -212379,7 +212379,7 @@ _080E2464:
cmp r1, r0
bne _080E248E
adds r0, r5, 0
- bl sub_8074454
+ bl UnfadePlttBuffer
mov r0, r8
bl move_anim_task_del
_080E248E:
@@ -213486,7 +213486,7 @@ _080E2D10:
ldrh r3, [r5, 0x12]
adds r0, r6, 0
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
_080E2D24:
adds r0, r6, 0
adds r0, 0x10
@@ -213550,7 +213550,7 @@ sub_80E2D78: @ 80E2D78
ldrb r3, [r4, 0x6]
ldrb r4, [r4, 0x8]
str r4, [sp]
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r1, _080E2DB0
lsls r0, r5, 2
adds r0, r5
@@ -215029,7 +215029,7 @@ _080E3958:
ldrb r2, [r4, 0xC]
movs r1, 0x10
ldr r3, _080E39AC
- bl pal_fade_1
+ bl BlendPalette
_080E3972:
movs r1, 0x24
ldrsh r0, [r4, r1]
@@ -215045,7 +215045,7 @@ _080E3972:
ldrb r2, [r4, 0xC]
movs r1, 0x10
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
_080E3992:
adds r0, r5, 0x1
lsls r0, 16
@@ -220514,7 +220514,7 @@ _080E6344:
strh r0, [r1]
movs r0, 0
bl SetVBlankCallback
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl dp12_8087EA4
bl remove_some_task
@@ -220572,7 +220572,7 @@ _080E63D8:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080E6402
_080E63EA:
movs r1, 0x80
@@ -221430,7 +221430,7 @@ sub_80E6A6C: @ 80E6A6C
bl LoadOam
bl ProcessSpriteCopyRequests
bl sub_80EAC5C
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -221454,7 +221454,7 @@ _080E6AA4: .4byte 0x02001000
thumb_func_start sub_80E6AA8
sub_80E6AA8: @ 80E6AA8
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080E6ABA
@@ -222785,13 +222785,13 @@ _080E7544:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x24]
adds r0, 0x1
strh r0, [r4, 0x24]
b _080E756C
_080E755C:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080E756C
@@ -231921,7 +231921,7 @@ _080EBB08:
bl SetVBlankCallback
b _080EBBC0
_080EBB10:
- bl sub_8073B94
+ bl ResetPaletteFade
b _080EBBC0
_080EBB16:
bl ResetSpriteData
@@ -232171,7 +232171,7 @@ sub_80EBD18: @ 80EBD18
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_80F1FF0
pop {r0}
bx r0
@@ -232182,7 +232182,7 @@ sub_80EBD30: @ 80EBD30
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_80FB260
bl sub_80EFE7C
pop {r0}
@@ -232194,7 +232194,7 @@ sub_80EBD4C: @ 80EBD4C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_80F5BF0
bl sub_8089668
pop {r0}
@@ -232206,7 +232206,7 @@ sub_80EBD68: @ 80EBD68
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_80F6F64
pop {r0}
bx r0
@@ -232233,7 +232233,7 @@ sub_80EBD90: @ 80EBD90
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl sub_80F19FC
pop {r0}
bx r0
@@ -232439,7 +232439,7 @@ _080EBF54:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _080EBF70
movs r0, 0xC1
lsls r0, 2
@@ -232664,7 +232664,7 @@ _080EC12A:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080EC150
bl SetVBlankCallback
movs r2, 0xC1
@@ -233175,7 +233175,7 @@ _080EC552:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -233271,7 +233271,7 @@ _080EC61E:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -233459,7 +233459,7 @@ _080EC7A0:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_080EC7B6:
movs r0, 0xC1
lsls r0, 2
@@ -233896,7 +233896,7 @@ _080ECB2E:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ECB54
bl SetVBlankCallback
movs r2, 0xC1
@@ -234224,7 +234224,7 @@ _080ECDFC:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0xC1
lsls r0, 2
adds r1, r4, r0
@@ -234364,7 +234364,7 @@ _080ECF10:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ECF38
bl SetVBlankCallback
movs r2, 0xC1
@@ -234574,7 +234574,7 @@ _080ED0E2:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -234730,7 +234730,7 @@ _080ED220:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ED248
bl SetVBlankCallback
movs r2, 0xC1
@@ -235010,7 +235010,7 @@ _080ED462:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ED494
bl SetVBlankCallback
movs r0, 0xC1
@@ -235097,7 +235097,7 @@ _080ED524:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -235162,7 +235162,7 @@ _080ED5A4:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ED5DC
bl SetVBlankCallback
movs r2, 0xC1
@@ -235286,7 +235286,7 @@ _080ED6C6:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -235379,7 +235379,7 @@ _080ED78A:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080ED7BC
bl SetVBlankCallback
movs r2, 0xC1
@@ -235792,7 +235792,7 @@ _080EDAE8:
str r4, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r5, r2
@@ -235923,7 +235923,7 @@ _080EDC32:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -236061,7 +236061,7 @@ _080EDD52:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080EDD78
bl SetVBlankCallback
movs r2, 0xC1
@@ -236224,7 +236224,7 @@ _080EDE96:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080EDEC4
_080EDEAE:
ldr r0, _080EDECC
@@ -236300,7 +236300,7 @@ _080EDF38:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080EE03C
_080EDF50:
ldr r0, _080EDF78
@@ -236390,7 +236390,7 @@ _080EDFF8:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080EE018
bl SetVBlankCallback
b _080EE03C
@@ -236741,7 +236741,7 @@ _080EE2E0:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -236811,7 +236811,7 @@ _080EE37A:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r2, 0xC1
lsls r2, 2
adds r1, r4, r2
@@ -236920,7 +236920,7 @@ _080EE466:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0xC1
lsls r0, 2
adds r1, r4, r0
@@ -237004,7 +237004,7 @@ _080EE516:
str r2, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080EE548
bl SetVBlankCallback
movs r0, 0xC1
@@ -237481,7 +237481,7 @@ _080EE91A:
str r2, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _080EE94C
_080EE932:
ldr r0, _080EE954
@@ -237532,7 +237532,7 @@ sub_80EE96C: @ 80EE96C
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
@@ -258207,7 +258207,7 @@ _080F8AB0:
.align 2, 0
_080F8AC4: .4byte 0x01000200
_080F8AC8:
- bl sub_8073B94
+ bl ResetPaletteFade
b _080F8D30
_080F8ACE:
bl ResetTasks
@@ -258475,7 +258475,7 @@ _080F8CC6:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _080F8D24
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -258752,7 +258752,7 @@ sub_80F8F18: @ 80F8F18
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80F8F18
@@ -258783,7 +258783,7 @@ _080F8F54: .4byte 0x02000000
thumb_func_start sub_80F8F58
sub_80F8F58: @ 80F8F58
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080F8F6C
@@ -258815,7 +258815,7 @@ sub_80F8F78: @ 80F8F78
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _080F8FAC
adds r0, 0xF0
ldr r1, _080F8FB0
@@ -258833,7 +258833,7 @@ _080F8FB0: .4byte sub_80F8FB4
thumb_func_start sub_80F8FB4
sub_80F8FB4: @ 80F8FB4
push {r4,lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080F9012
@@ -258872,7 +258872,7 @@ _080F9002:
lsls r2, 1
movs r1, 0
bl memset
- bl sub_8073B94
+ bl ResetPaletteFade
_080F9012:
pop {r4}
pop {r0}
@@ -260234,7 +260234,7 @@ sub_80F99CC: @ 80F99CC
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -260265,7 +260265,7 @@ sub_80F9A0C: @ 80F9A0C
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -260296,7 +260296,7 @@ sub_80F9A4C: @ 80F9A4C
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -265313,7 +265313,7 @@ _080FC0C4:
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl FreeSpriteTileRanges
bl FreeAllSpritePalettes
@@ -265395,7 +265395,7 @@ _080FC1AA:
negs r0, r0
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
ldr r0, _080FC1C0
bl SetVBlankCallback
b _080FC1E6
@@ -265443,7 +265443,7 @@ sub_80FC214: @ 80FC214
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80FC214
@@ -265926,13 +265926,13 @@ _080FC5CC:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x4]
adds r0, 0x1
strh r0, [r4, 0x4]
b _080FC5F4
_080FC5E4:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080FC5F4
@@ -266039,13 +266039,13 @@ _080FC6B4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x4]
adds r0, 0x1
strh r0, [r4, 0x4]
b _080FC792
_080FC6CC:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080FC792
@@ -276793,7 +276793,7 @@ sub_8101954: @ 8101954
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8101954
@@ -276803,7 +276803,7 @@ sub_810196C: @ 810196C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r1, _081019A8
ldr r2, _081019AC
adds r0, r2, 0
@@ -277211,7 +277211,7 @@ _08101C9C: .4byte gWindowConfig_81E7128
thumb_func_start sub_8101CA0
sub_8101CA0: @ 8101CA0
push {lr}
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
ldr r1, _08101CBC
movs r0, 0x80
@@ -277313,7 +277313,7 @@ sub_8101D5C: @ 8101D5C
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r4, _08101D88
ldrb r0, [r4, 0x2]
bl sub_810423C
@@ -278249,7 +278249,7 @@ sub_8102424: @ 8102424
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -283565,7 +283565,7 @@ sub_8104B3C: @ 8104B3C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -283615,7 +283615,7 @@ sub_8104B80: @ 8104B80
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -283645,7 +283645,7 @@ sub_8104BC8: @ 8104BC8
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -283678,7 +283678,7 @@ sub_8104BFC: @ 8104BFC
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -287245,7 +287245,7 @@ _081066B4:
_081066D0: .4byte 0x03005e8c
_081066D4: .4byte 0x02015de0
_081066D8:
- bl sub_8073B94
+ bl ResetPaletteFade
movs r2, 0xC0
lsls r2, 19
movs r3, 0xC0
@@ -287350,7 +287350,7 @@ _0810678C:
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
movs r0, 0x2
- bl sub_80744B0
+ bl BeginFastPaletteFade
ldr r0, _081067FC
bl SetVBlankCallback
ldr r0, _08106800
@@ -287383,7 +287383,7 @@ _08106804: .4byte sub_8106808
sub_8106808: @ 8106808
push {lr}
bl sub_810682C
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8106808
@@ -287461,7 +287461,7 @@ _08106892:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_081068A4:
ldr r0, _081068B8
ldrb r0, [r0]
@@ -287723,7 +287723,7 @@ sub_8106AAC: @ 8106AAC
bl sub_8106A58
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8106AAC
@@ -294615,7 +294615,7 @@ sub_8109E6C: @ 8109E6C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8109E6C
@@ -294702,7 +294702,7 @@ sub_8109E80: @ 8109E80
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
bl FreeAllSpritePalettes
ldr r0, _0810A0BC
movs r1, 0
@@ -294725,7 +294725,7 @@ sub_8109E80: @ 8109E80
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _0810A0D4
ldrh r2, [r3]
mov r0, r9
@@ -294906,7 +294906,7 @@ sub_810A11C: @ 810A11C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810A11C
@@ -295653,7 +295653,7 @@ sub_810A704: @ 810A704
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_810A704
@@ -295785,7 +295785,7 @@ _0810A816:
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
bl FreeAllSpritePalettes
ldr r0, _0810A854
bl LoadCompressedObjectPic
@@ -295820,7 +295820,7 @@ sub_810A864: @ 810A864
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _0810A8D0
ldrh r2, [r3]
strh r5, [r3]
@@ -296149,7 +296149,7 @@ sub_810AB3C: @ 810AB3C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810AB3C
@@ -296433,7 +296433,7 @@ sub_810AD58: @ 810AD58
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0810AD98
str r0, [r4]
add sp, 0x4
@@ -296535,7 +296535,7 @@ sub_810AE28: @ 810AE28
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0810AE58
lsls r0, r4, 2
adds r0, r4
@@ -297650,7 +297650,7 @@ sub_810B674: @ 810B674
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810B674
@@ -297660,7 +297660,7 @@ sub_810B68C: @ 810B68C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
ldr r1, _0810B6B0
ldr r2, _0810B6B4
ldr r0, _0810B6B8
@@ -297743,7 +297743,7 @@ _0810B764:
bl remove_some_task
b _0810B91C
_0810B76A:
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _0810B780
ldrb r0, [r2, 0x8]
movs r1, 0x80
@@ -297952,7 +297952,7 @@ _0810B934:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _0810B958
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -299215,7 +299215,7 @@ sub_810C31C: @ 810C31C
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0810C358
ldrb r0, [r0]
cmp r0, 0x1
@@ -299443,7 +299443,7 @@ sub_810C508: @ 810C508
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0810C538
lsls r0, r4, 2
adds r0, r4
@@ -299808,7 +299808,7 @@ _0810C808:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0810C84C
mov r2, r8
lsls r0, r2, 2
@@ -299870,7 +299870,7 @@ sub_810C854: @ 810C854
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0810C8CC
lsls r0, r5, 2
adds r0, r5
@@ -300394,7 +300394,7 @@ sub_810CC54: @ 810CC54
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810CC54
@@ -300404,7 +300404,7 @@ sub_810CC6C: @ 810CC6C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_810CC6C
@@ -300465,7 +300465,7 @@ sub_810CC80: @ 810CC80
ldr r0, _0810CD44
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetTasks
bl ResetSpriteData
ldr r3, _0810CD48
@@ -301706,7 +301706,7 @@ mapldr_080CA5C0: @ 810D64C
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl sp109_CreatePCMenu
bl sub_80B5838
ldr r0, _0810D680
@@ -307988,7 +307988,7 @@ _081106C8:
lsls r2, 7
adds r0, r2, 0
strh r0, [r1]
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl FreeSpriteTileRanges
@@ -308058,7 +308058,7 @@ _08110770:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _081107C0
_08110782:
ldr r1, _0811079C
@@ -308107,7 +308107,7 @@ sub_81107DC: @ 81107DC
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81107DC
@@ -308121,7 +308121,7 @@ sub_81107F0: @ 81107F0
bl sub_8111110
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
@@ -309530,7 +309530,7 @@ _0811129C:
strh r0, [r1, 0xC]
b _081112B2
_081112A2:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _081112B2
@@ -309608,13 +309608,13 @@ _0811132C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
b _08111358
_08111344:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08111358
@@ -309648,13 +309648,13 @@ _08111378:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
b _081113A4
_08111390:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _081113A4
@@ -309769,7 +309769,7 @@ _0811147C: .4byte 0x04000012
_08111480: .4byte 0x0000fff8
_08111484: .4byte 0x0400001a
_08111488:
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl FreeAllSpritePalettes
b _08111540
@@ -309822,7 +309822,7 @@ _081114F0:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08111540
_08111502:
ldr r1, _0811151C
@@ -309959,7 +309959,7 @@ _081115F8:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0811163C
_0811160A:
ldr r0, _08111630
@@ -310289,7 +310289,7 @@ _0811188E:
thumb_func_start sub_8111894
sub_8111894: @ 8111894
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
@@ -310323,7 +310323,7 @@ _081118CC:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -310458,7 +310458,7 @@ evolution_cutscene: @ 8111984
ldr r4, _08111C18
adds r0, r4, 0
bl SetUpWindowConfig
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _08111C1C
strh r5, [r0]
ldr r0, _08111C20
@@ -310797,7 +310797,7 @@ sub_8111C90: @ 8111C90
ldr r4, _08111E28
adds r0, r4, 0
bl SetUpWindowConfig
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _08111E2C
strh r5, [r0]
ldr r0, _08111E30
@@ -310902,7 +310902,7 @@ sub_8111C90: @ 8111C90
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -311064,7 +311064,7 @@ _08111F88:
adds r0, 0x4
bl sub_8064F08
bl sub_8071EF4
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r1, _08111FCC
ldr r0, _08111FD0
adds r1, r0
@@ -311183,7 +311183,7 @@ _081120B4:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081120E0
bl SetMainCallback2
movs r1, 0x80
@@ -311381,7 +311381,7 @@ sub_8112270: @ 8112270
bl BuildOamBuffer
ldr r0, _0811228C
bl sub_800374C
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
@@ -311398,7 +311398,7 @@ sub_8112290: @ 8112290
ldr r0, [r0]
adds r0, 0x4
bl sub_80035AC
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
@@ -311664,7 +311664,7 @@ _081124F8:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _08112530
ldr r0, _08112534
ldrb r1, [r0]
@@ -311767,7 +311767,7 @@ _081125CC:
movs r1, 0x4
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl _08112FD0
.align 2, 0
_081125F4: .4byte 0x00000179
@@ -311961,7 +311961,7 @@ _08112762:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08112992
.align 2, 0
_08112794: .4byte 0x03004b20
@@ -312100,7 +312100,7 @@ _081128C4:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081128E0
mov r3, r8
adds r1, r3, r7
@@ -312166,7 +312166,7 @@ _08112948:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
mov r3, r8
adds r1, r3, r7
lsls r1, 3
@@ -312572,7 +312572,7 @@ _08112CBC:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08112CE2:
ldr r0, _08112D2C
ldrh r1, [r0, 0x2E]
@@ -313066,7 +313066,7 @@ _0811311C:
movs r1, 0x4
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
bl _08113B3A
.align 2, 0
_08113144: .4byte 0x00000179
@@ -313262,7 +313262,7 @@ _081132B6:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_081132E2:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -313852,7 +313852,7 @@ _081137E4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0811380A:
ldr r0, _0811386C
ldrh r1, [r0, 0x2E]
@@ -316901,7 +316901,7 @@ sub_8114FD4: @ 8114FD4
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -316955,7 +316955,7 @@ sub_811505C: @ 811505C
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
@@ -317021,7 +317021,7 @@ sub_8115124: @ 8115124
sub sp, 0x4
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
bl sub_8117434
ldr r2, _08115188
ldr r3, _0811518C
@@ -317375,7 +317375,7 @@ _08115438: .4byte 0x06004000
_0811543C: .4byte 0x03001770
_08115440: .4byte 0x0000043c
_08115444:
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
ldr r1, _08115458
@@ -317524,7 +317524,7 @@ _0811558C:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r0, _08115618
movs r1, 0
bl CreateTask
@@ -317650,7 +317650,7 @@ sub_81156BC: @ 81156BC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
@@ -320183,7 +320183,7 @@ _08116B0C:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl sub_80748D0
+ bl BeginHardwarePaletteFade
ldr r1, _08116B38
lsls r0, r5, 2
adds r0, r5
@@ -320206,7 +320206,7 @@ sub_8116B40: @ 8116B40
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -320224,7 +320224,7 @@ sub_8116B40: @ 8116B40
strh r4, [r1]
bl sub_80F9368
bl FreeAllSpritePalettes
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetSpriteData
bl sub_80F9020
ldr r0, _08116BB0
@@ -321525,7 +321525,7 @@ sub_811755C: @ 811755C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _081175B4
ldrb r1, [r2, 0x8]
lsls r1, 26
@@ -321536,7 +321536,7 @@ sub_811755C: @ 811755C
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x4]
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r1, _081175B8
lsls r0, r4, 2
adds r0, r4
@@ -328667,7 +328667,7 @@ _0811AD32:
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0811AD54:
ldr r2, _0811AD7C
ldrh r0, [r4, 0xC]
@@ -328760,7 +328760,7 @@ sub_811ADE4: @ 811ADE4
movs r1, 0x4
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0811AE54
ldr r1, _0811AE58
movs r2, 0x14
@@ -328958,7 +328958,7 @@ sub_811AF7C: @ 811AF7C
movs r1, 0x4
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0811AFE4
ldr r0, _0811AFE8
movs r2, 0x16
@@ -330789,7 +330789,7 @@ _0811BD9E:
movs r2, 0
str r2, [sp]
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0811BDEC:
movs r5, 0x10
ldrsh r0, [r6, r5]
@@ -331818,7 +331818,7 @@ sub_811C5B4: @ 811C5B4
negs r0, r0
ldr r2, _0811C5E4
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
movs r0, 0xFF
strh r0, [r4, 0xE]
strh r6, [r5, 0xE]
@@ -332902,7 +332902,7 @@ sub_811CE14: @ 811CE14
negs r0, r0
ldr r2, _0811CE48
movs r1, 0x10
- bl sub_8074B3C
+ bl BlendPalettes
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -333895,7 +333895,7 @@ _0811D5B4:
negs r0, r0
ldrb r1, [r4, 0x16]
ldr r2, _0811D5DC
- bl sub_8074B3C
+ bl BlendPalettes
_0811D5C0:
movs r2, 0x16
ldrsh r0, [r4, r2]
@@ -333946,7 +333946,7 @@ _0811D60E:
negs r0, r0
ldrb r1, [r4, 0x16]
ldr r2, _0811D640
- bl sub_8074B3C
+ bl BlendPalettes
_0811D61A:
movs r0, 0x16
ldrsh r1, [r4, r0]
@@ -334001,7 +334001,7 @@ sub_811D67C: @ 811D67C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_811D67C
@@ -334054,7 +334054,7 @@ sub_811D6D4: @ 811D6D4
negs r0, r0
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
pop {r0}
bx r0
thumb_func_end sub_811D6D4
@@ -340409,7 +340409,7 @@ sub_8120A58: @ 8120A58
movs r0, 0x5
bl sub_8074D28
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
bl dp01_tbl3_exec_completed
ldr r1, _08120A9C
ldrb r0, [r4]
@@ -343508,7 +343508,7 @@ _08122354:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08122384
lsls r0, r4, 2
adds r0, r4
@@ -343699,7 +343699,7 @@ _081224D0:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _081224FC
lsls r0, r4, 2
adds r0, r4
@@ -343886,7 +343886,7 @@ sub_812265C: @ 812265C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0812268C
lsls r0, r4, 2
adds r0, r4
@@ -344631,7 +344631,7 @@ sub_8122C18: @ 8122C18
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08122C5C
str r0, [r4]
_08122C4E:
@@ -345186,7 +345186,7 @@ sub_81230BC: @ 81230BC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _081230EC
lsls r0, r4, 2
adds r0, r4
@@ -345248,7 +345248,7 @@ sub_8123138: @ 8123138
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08123168
lsls r0, r4, 2
adds r0, r4
@@ -345365,7 +345365,7 @@ sub_8123218: @ 8123218
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -345524,7 +345524,7 @@ _08123384:
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
- bl sub_8073B94
+ bl ResetPaletteFade
bl sub_807C828
movs r4, 0
ldr r0, _081233D4
@@ -345855,7 +345855,7 @@ _08123678:
movs r1, 0x3
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081236A4
movs r1, 0x1
bl sub_8074F6C
@@ -345931,7 +345931,7 @@ mainloop: @ 8123724
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl sound_something
pop {r0}
bx r0
@@ -345967,7 +345967,7 @@ _08123766:
bls _08123766
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _0812385C
movs r3, 0x80
lsls r3, 10
@@ -346240,7 +346240,7 @@ _0812397E:
movs r1, 0x3
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x4
bl play_sound_effect
b _081239D6
@@ -346620,7 +346620,7 @@ sub_8123C40: @ 8123C40
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r4}
pop {r0}
bx r0
@@ -363671,7 +363671,7 @@ sub_812BC14: @ 812BC14
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0812BC44
ldr r2, _0812BC48
ldrb r0, [r2]
@@ -364138,7 +364138,7 @@ sub_812BF54: @ 812BF54
movs r0, 0x5
bl sub_8074D28
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
bl dp01_tbl6_exec_completed
ldr r0, _0812BFA4
ldrh r1, [r0]
@@ -364251,7 +364251,7 @@ sub_812C01C: @ 812C01C
movs r1, 0x4
movs r2, 0
movs r3, 0x8
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0812C07C
movs r1, 0
bl CreateTask
@@ -364333,7 +364333,7 @@ _0812C0D0:
movs r1, 0x4
movs r2, 0x8
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0812C110
.align 2, 0
_0812C104: .4byte sub_812C118
@@ -372541,7 +372541,7 @@ sub_813003C: @ 813003C
ldrh r3, [r1]
movs r1, 0x10
movs r2, 0x8
- bl pal_fade_1
+ bl BlendPalette
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -372564,7 +372564,7 @@ _0813008C:
movs r1, 0x10
movs r2, 0
movs r3, 0
- bl pal_fade_1
+ bl BlendPalette
adds r0, r5, 0
bl move_anim_task_del
_0813009E:
@@ -376126,7 +376126,7 @@ _08131B94:
ldr r3, _08131C18
movs r1, 0x10
movs r2, 0x6
- bl pal_fade_1
+ bl BlendPalette
_08131BF2:
ldr r0, _08131C1C
mov r3, r8
@@ -377465,7 +377465,7 @@ sub_813265C: @ 813265C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_813265C
@@ -377484,7 +377484,7 @@ sub_8132670: @ 8132670
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
@@ -377575,7 +377575,7 @@ sub_81326D8: @ 81326D8
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _081327A0
bl SetMainCallback2
pop {r4,r5}
@@ -377651,7 +377651,7 @@ sub_81327A4: @ 81327A4
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _0813286C
bl SetMainCallback2
pop {r4,r5}
@@ -377719,7 +377719,7 @@ _081328C8:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r4}
pop {r0}
bx r0
@@ -377830,7 +377830,7 @@ _081329BC:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r1, 0x80
lsls r1, 19
movs r2, 0x9A
@@ -378256,7 +378256,7 @@ _08132D4C:
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08132FD6
.align 2, 0
_08132D64: .4byte 0x030007b0
@@ -378311,7 +378311,7 @@ _08132DC6:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08132FD6
_08132DD8:
movs r0, 0x1
@@ -378320,7 +378320,7 @@ _08132DD8:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08132DF4
ldr r1, [r0]
ldrb r0, [r1]
@@ -378350,7 +378350,7 @@ _08132E18:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r5, _08132E74
ldr r1, [r5]
ldrb r0, [r1]
@@ -385013,7 +385013,7 @@ sub_81361E4: @ 81361E4
bl _call_via_r0
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r4, [r4]
ldr r1, [r4]
ldr r0, _08136224
@@ -385044,7 +385044,7 @@ sub_813622C: @ 813622C
bl sub_81368A4
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_813622C
@@ -385058,7 +385058,7 @@ sub_8136244: @ 8136244
bl _call_via_r0
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
.align 2, 0
@@ -385070,7 +385070,7 @@ sub_8136264: @ 8136264
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
movs r0, 0x6
bl sub_80F5CDC
bl sub_8089668
@@ -385483,7 +385483,7 @@ _081365E4:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08136608
bl SetVBlankCallback
ldr r1, [r4]
@@ -385771,7 +385771,7 @@ _08136824:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, [r5]
adds r1, 0x50
ldrb r0, [r1]
@@ -385889,7 +385889,7 @@ _0813694C:
negs r0, r0
movs r1, 0x10
movs r2, 0
- bl sub_8074B3C
+ bl BlendPalettes
b _08136982
_0813695A:
movs r1, 0x80
@@ -385910,7 +385910,7 @@ _0813696C:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08136982:
ldr r0, _08136994
ldr r1, [r0]
@@ -386148,7 +386148,7 @@ _08136B6E:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08136B9C
_08136B80:
ldr r0, _08136B94
@@ -391110,7 +391110,7 @@ sub_81393EC: @ 81393EC
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813941C
ldr r2, _08139420
ldrb r0, [r2]
@@ -392111,7 +392111,7 @@ sub_8139BB8: @ 8139BB8
movs r0, 0x5
bl sub_8074D28
movs r0, 0x3
- bl sub_80744B0
+ bl BeginFastPaletteFade
bl dp01_tbl5_exec_completed
ldr r0, _08139C08
ldrh r1, [r0]
@@ -395606,7 +395606,7 @@ sub_813B784: @ 813B784
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_813B784
@@ -395617,7 +395617,7 @@ CB2_813B798: @ 813B798
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _0813B7C8
ldrh r0, [r0, 0x2E]
cmp r0, 0
@@ -395654,7 +395654,7 @@ _0813B7E8: .4byte 0x03005ed0
thumb_func_start CB2_813B7EC
CB2_813B7EC: @ 813B7EC
push {lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0813B7FE
@@ -395789,7 +395789,7 @@ _0813B890:
ldr r0, _0813B998
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
movs r1, 0xE0
lsls r1, 6
movs r0, 0
@@ -395806,7 +395806,7 @@ _0813B890:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813B9A0
movs r2, 0xE0
lsls r2, 3
@@ -395837,7 +395837,7 @@ _0813B890:
ldr r0, _0813B9B8
bl GameCubeMultiBoot_Init
_0813B962:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _0813B9BC
ldr r2, _0813B9C0
adds r0, r2
@@ -395879,7 +395879,7 @@ _0813B9C4:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
@@ -395887,7 +395887,7 @@ _0813B9C4:
.align 2, 0
_0813B9EC: .4byte 0x03005ee0
_0813B9F0:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0813BA38
@@ -396187,7 +396187,7 @@ task_intro_2: @ 813BC8C
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0813BCE0
bl SetVBlankCallback
movs r1, 0x80
@@ -396444,7 +396444,7 @@ _0813BEAC:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813BEE4
lsls r0, r4, 2
adds r0, r4
@@ -396614,7 +396614,7 @@ _0813BFDA:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _0813C078
bl SetVBlankCallback
movs r1, 0x80
@@ -396665,7 +396665,7 @@ sub_813C080: @ 813C080
movs r1, 0x10
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813C1C8
lsls r0, r4, 2
adds r0, r4
@@ -396902,7 +396902,7 @@ task_intro_10: @ 813C230
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813C2D8
ldr r2, _0813C2DC
adds r0, r2, 0
@@ -396999,7 +396999,7 @@ _0813C330:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0813C36E:
add sp, 0x4
pop {r4,r5}
@@ -397526,7 +397526,7 @@ _0813C790:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0813C7AE:
mov r3, r8
ldr r1, [r3]
@@ -397885,7 +397885,7 @@ _0813CA88:
movs r1, 0x4
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_0813CAA4:
mov r3, r8
ldr r1, [r3]
@@ -397995,7 +397995,7 @@ _0813CB60:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813CBB4
ldr r2, _0813CBB8
adds r0, r2, 0
@@ -398041,7 +398041,7 @@ _0813CBC4:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813CC18
ldr r2, _0813CC1C
adds r0, r2, 0
@@ -398087,7 +398087,7 @@ _0813CC28:
movs r1, 0x5
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813CC9C
ldr r2, _0813CCA0
adds r0, r2, 0
@@ -400762,7 +400762,7 @@ _0813DF54:
movs r1, 0
movs r2, 0x10
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
mov r2, r8
strh r2, [r7, 0x2E]
b _0813E0F8
@@ -402724,7 +402724,7 @@ sub_813EEE4: @ 813EEE4
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
add sp, 0x4
pop {r4}
pop {r0}
@@ -402743,7 +402743,7 @@ sub_813EFB0: @ 813EFB0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_813EFB0
@@ -402754,7 +402754,7 @@ sub_813EFC4: @ 813EFC4
bl sub_813EFDC
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_813EFC4
@@ -402838,7 +402838,7 @@ _0813F078:
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _0813F098
ldr r2, _0813F09C
adds r1, r2
@@ -403659,7 +403659,7 @@ _0813F732:
ldrb r2, [r4, 0xC]
ldr r3, _0813F758
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
movs r3, 0xC
ldrsh r0, [r4, r3]
cmp r0, 0x10
@@ -403687,7 +403687,7 @@ _0813F76A:
ldrb r2, [r4, 0xC]
ldr r3, _0813F794
movs r1, 0x1
- bl pal_fade_1
+ bl BlendPalette
movs r3, 0xC
ldrsh r0, [r4, r3]
cmp r0, 0
@@ -405452,7 +405452,7 @@ _08140502:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _0814058C
.align 2, 0
_08140548: .4byte 0x04000050
@@ -407246,7 +407246,7 @@ sub_8141314: @ 8141314
ldrh r3, [r1]
movs r1, 0x10
movs r2, 0
- bl pal_fade_1
+ bl BlendPalette
movs r0, 0x1
strh r0, [r5, 0xA]
b _081413AA
@@ -407266,7 +407266,7 @@ _08141384:
ldrh r3, [r1]
movs r1, 0x10
movs r2, 0x10
- bl pal_fade_1
+ bl BlendPalette
movs r0, 0x10
strh r0, [r5, 0x8]
ldr r0, _081413D0
@@ -407280,7 +407280,7 @@ _081413AA:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
mov r0, r8
add sp, 0x4
pop {r3,r4}
@@ -407328,7 +407328,7 @@ sub_81413DC: @ 81413DC
adds r1, r3
ldrh r3, [r1]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x8]
adds r0, r1
@@ -407356,7 +407356,7 @@ _08141434:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
adds r0, r5, 0
bl DestroyTask
_0814145C:
@@ -407395,7 +407395,7 @@ sub_814146C: @ 814146C
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081414B8
str r0, [r4]
_081414A4:
@@ -407440,7 +407440,7 @@ sub_81414BC: @ 81414BC
adds r1, r3
ldrh r3, [r1]
movs r1, 0x10
- bl pal_fade_1
+ bl BlendPalette
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x8]
adds r0, r1
@@ -408630,7 +408630,7 @@ sub_8141E38: @ 8141E38
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8141E38
@@ -408641,7 +408641,7 @@ sub_8141E4C: @ 8141E4C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8141E4C
@@ -408696,7 +408696,7 @@ _08141EC6:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08141F04
bl SetVBlankCallback
ldr r3, _08141F08
@@ -408753,7 +408753,7 @@ _08141F4C: .4byte 0x00003f42
_08141F50: .4byte 0x03001770
_08141F54: .4byte 0x0000043c
_08141F58:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _08141F7C
ldrb r1, [r0, 0x7]
movs r0, 0x80
@@ -409492,7 +409492,7 @@ _081424C4:
movs r1, 0
movs r2, 0xC
movs r3, 0xC
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0
ldrsh r1, [r6, r0]
lsls r0, r1, 4
@@ -409547,7 +409547,7 @@ sub_8142570: @ 8142570
str r1, [sp]
movs r2, 0
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r3, 0
lsls r1, r4, 2
adds r0, r1, r4
@@ -409695,7 +409695,7 @@ _08142698:
movs r1, 0
movs r2, 0xC
movs r3, 0xC
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
@@ -409922,7 +409922,7 @@ sub_8142850: @ 8142850
movs r1, 0x8
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08142898
lsls r0, r4, 2
adds r0, r4
@@ -410071,7 +410071,7 @@ _081429BC: .4byte 0x0000043c
_081429C0:
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
bl sub_80C5DCC
lsls r0, 24
cmp r0, 0
@@ -410393,7 +410393,7 @@ _08142C3C:
ldr r0, _08142CB0
ldr r2, _08142CB4
movs r1, 0xC
- bl sub_8074B3C
+ bl BlendPalettes
ldr r3, _08142CB8
ldr r1, _08142CBC
adds r0, r3, 0
@@ -410545,7 +410545,7 @@ _08142D36:
str r0, [r2]
ldr r2, _08142DE8
movs r1, 0xC
- bl sub_8074B78
+ bl BlendPalettesUnfaded
movs r0, 0xC
ldrsh r1, [r5, r0]
lsls r0, r1, 2
@@ -411502,7 +411502,7 @@ _0814350A:
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _0814356C
movs r1, 0
movs r2, 0x20
@@ -412023,7 +412023,7 @@ sub_8143948: @ 8143948
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8143948
@@ -412034,7 +412034,7 @@ sub_814395C: @ 814395C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _081439B8
ldrh r1, [r0, 0x2C]
movs r0, 0x2
@@ -412060,7 +412060,7 @@ sub_814395C: @ 814395C
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r1, _081439CC
movs r0, 0x1
strb r0, [r1]
@@ -412086,7 +412086,7 @@ sub_81439D0: @ 81439D0
bl sub_8144130
movs r0, 0
bl SetVBlankCallback
- bl sub_8073B94
+ bl ResetPaletteFade
bl ResetTasks
ldr r0, _08143AF0
movs r1, 0
@@ -412163,7 +412163,7 @@ _08143A0E:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _08143B14
ldrh r2, [r3]
mov r0, r8
@@ -412302,7 +412302,7 @@ _08143BA4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08143BD0
b _08143BEE
.align 2, 0
@@ -412319,7 +412319,7 @@ _08143BD4:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08143BF8
_08143BEE:
str r0, [r4]
@@ -412394,7 +412394,7 @@ c2_080C9BFC: @ 8143C40
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _08143CAC
ldrh r2, [r3]
strh r4, [r3]
@@ -412619,7 +412619,7 @@ _08143E0C:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08143EA8
strh r5, [r0]
ldr r1, _08143EAC
@@ -412687,7 +412687,7 @@ _08143EE4:
movs r1, 0xC
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08143F00
str r0, [r4]
_08143EF8:
@@ -412737,7 +412737,7 @@ sub_8143F3C: @ 8143F3C
lsls r5, 24
lsrs r5, 24
bl sub_8144130
- bl sub_8073B94
+ bl ResetPaletteFade
movs r1, 0xE0
lsls r1, 6
movs r0, 0
@@ -412752,7 +412752,7 @@ sub_8143F3C: @ 8143F3C
movs r1, 0x8
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08143FC4
movs r2, 0xE0
lsls r2, 3
@@ -412829,7 +412829,7 @@ _08144004:
movs r1, 0x6
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08144020
str r0, [r4]
_08144018:
@@ -412865,7 +412865,7 @@ sub_8144024: @ 8144024
movs r1, 0
movs r2, 0
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08144078
lsls r0, r5, 2
adds r0, r5
@@ -412922,7 +412922,7 @@ _081440AE:
movs r1, 0x8
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081440DC
str r0, [r4]
b _08144104
@@ -413235,7 +413235,7 @@ _0814433A:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08144446
.align 2, 0
_08144348: .4byte 0x00001967
@@ -413327,7 +413327,7 @@ _081443E6:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
b _08144446
.align 2, 0
_081443F4: .4byte 0x00001967
@@ -416576,7 +416576,7 @@ sub_8145D74: @ 8145D74
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8145D74
@@ -416655,7 +416655,7 @@ sub_8145D88: @ 8145D88
bl remove_some_task
bl ResetTasks
bl ResetSpriteData
- bl sub_8073B94
+ bl ResetPaletteFade
bl FreeAllSpritePalettes
ldr r0, _08145ED0
movs r1, 0
@@ -416672,7 +416672,7 @@ sub_8145D88: @ 8145D88
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _08145EDC
ldrh r2, [r3]
strh r5, [r3]
@@ -416742,7 +416742,7 @@ sub_8145EFC: @ 8145EFC
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8145EFC
@@ -416792,7 +416792,7 @@ sub_8145F44: @ 8145F44
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08145F84
lsls r0, r4, 2
adds r0, r4
@@ -416881,7 +416881,7 @@ sub_8146014: @ 8146014
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8146014
@@ -416897,7 +416897,7 @@ sub_814602C: @ 814602C
strh r1, [r0]
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
@@ -416953,7 +416953,7 @@ _081460B4:
.align 2, 0
_081460C8: .4byte 0x04000050
_081460CC:
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _081460E4
ldrb r0, [r2, 0x8]
movs r1, 0x80
@@ -417115,7 +417115,7 @@ _08146224:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _08146248
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -417386,7 +417386,7 @@ sub_8146440: @ 8146440
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08146478
lsls r0, r4, 2
adds r0, r4
@@ -417986,7 +417986,7 @@ sub_8146900: @ 8146900
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8146900
@@ -418039,7 +418039,7 @@ CB2_InitMysteryEventMenu: @ 8146930
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
movs r0, 0
movs r1, 0
movs r2, 0x2
@@ -418487,7 +418487,7 @@ _08146D6C:
movs r2, 0
movs r3, 0x10
_08146D78:
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08146D7C:
ldr r1, _08146D8C
ldr r0, _08146D90
@@ -418540,7 +418540,7 @@ _08146DE4:
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -418580,7 +418580,7 @@ sub_8146E3C: @ 8146E3C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8146E3C
@@ -418676,7 +418676,7 @@ _08146E6C:
bl LZ77UnCompVram
bl ResetSpriteData
bl ResetTasks
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r0, _08146FEC
movs r1, 0
movs r2, 0x40
@@ -418710,7 +418710,7 @@ _08146E6C:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r3, _08147000
ldrh r2, [r3]
strh r4, [r3]
@@ -418775,7 +418775,7 @@ _08147010: .4byte 0x00000703
_08147014: .4byte 0x00000602
_08147018: .4byte 0x00001f08
_0814701C:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _08147032
@@ -418970,7 +418970,7 @@ sub_81471A4: @ 81471A4
str r2, [sp]
movs r1, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081471E4
bl SetVBlankCallback
ldr r0, _081471E8
@@ -418989,7 +418989,7 @@ _081471E8: .4byte sub_81471EC
thumb_func_start sub_81471EC
sub_81471EC: @ 81471EC
push {r4,r5,lr}
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -419833,7 +419833,7 @@ sub_8147890: @ 8147890
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8147890
@@ -419843,7 +419843,7 @@ sub_81478A8: @ 81478A8
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81478A8
@@ -419897,7 +419897,7 @@ _0814791C:
_08147930: .4byte 0x03001770
_08147934: .4byte 0x0000043c
_08147938:
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _08147948
ldrb r0, [r2, 0x8]
movs r1, 0x80
@@ -420060,7 +420060,7 @@ _08147A8C:
str r1, [sp]
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _08147AC8
ldrb r1, [r2, 0x8]
movs r0, 0x7F
@@ -420638,7 +420638,7 @@ sub_8147F4C: @ 8147F4C
str r1, [sp]
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r1, _08147F7C
lsls r0, r4, 2
adds r0, r4
@@ -421676,7 +421676,7 @@ sub_814881C: @ 814881C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_814881C
@@ -421821,7 +421821,7 @@ _08148950: .4byte sub_8148B34
sub_8148954: @ 8148954
push {lr}
bl RunTasks
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8148954
@@ -421829,7 +421829,7 @@ sub_8148954: @ 8148954
thumb_func_start sub_8148964
sub_8148964: @ 8148964
push {lr}
- bl copy_pal_bg_faded_to_pal_ram
+ bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8148964
@@ -421904,7 +421904,7 @@ _08148986:
ldr r0, _08148ABC
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8073B94
+ bl ResetPaletteFade
ldr r2, _08148AC0
ldr r0, _08148AC4
strh r0, [r2]
@@ -421952,7 +421952,7 @@ _08148A2C:
movs r1, 0
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r2, _08148AEC
ldrh r1, [r2]
movs r0, 0
@@ -422010,7 +422010,7 @@ _08148AF8: .4byte sub_8148964
_08148AFC: .4byte 0x0400000e
_08148B00: .4byte 0x00000703
_08148B04:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _08148B20
ldrb r1, [r0, 0x7]
movs r0, 0x80
@@ -422053,7 +422053,7 @@ _08148B48:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
movs r0, 0x1
strb r0, [r4]
b _08148B80
@@ -422062,7 +422062,7 @@ _08148B60: .4byte 0x03001770
_08148B64: .4byte 0x0000043c
_08148B68: .4byte 0x0000ffff
_08148B6C:
- bl fade_and_return_progress_probably
+ bl UpdatePaletteFade
ldr r0, _08148B88
ldrb r1, [r0, 0x7]
movs r0, 0x80
@@ -423868,7 +423868,7 @@ sub_81499A0: @ 81499A0
movs r1, 0xA
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _081499EC
str r0, [r5]
movs r0, 0x8C
@@ -424242,7 +424242,7 @@ sub_8149C50: @ 8149C50
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08149CAC
str r0, [r5]
movs r0, 0xCA
@@ -424307,7 +424307,7 @@ _08149D00:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08149D10:
ldr r0, _08149D28
adds r1, r5, r6
@@ -424403,7 +424403,7 @@ sub_8149D8C: @ 8149D8C
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
ldr r0, _08149DE8
str r0, [r5]
movs r0, 0xCA
@@ -424468,7 +424468,7 @@ _08149E3C:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl pal_fade_maybe
+ bl BeginNormalPaletteFade
_08149E4C:
ldr r0, _08149E64
adds r1, r5, r6
diff --git a/asm/rom_8074BAC.s b/asm/rom_8074BAC.s
new file mode 100644
index 000000000..bcf480dc6
--- /dev/null
+++ b/asm/rom_8074BAC.s
@@ -0,0 +1,12466 @@
+ .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 gUnknown_084537C0
+_080752DC:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080752E8
+ b _08075350
+ .align 2, 0
+_080752E8: .4byte gUnknown_08452590
+_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 gUnknown_08453DC0
+_08075300:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0807530C
+ b _08075350
+ .align 2, 0
+_0807530C: .4byte gUnknown_08452B90
+_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 gUnknown_084543C0
+_08075324:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08075330
+ b _08075350
+ .align 2, 0
+_08075330: .4byte gUnknown_08453190
+_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 gUnknown_084549C0
+_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 gUnknown_08453790
+_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 gUnknown_081C7168
+ 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 0x0400000a
+_080761A4: .4byte 0x02024be0
+_080761A8: .4byte 0x030042c0
+_080761AC: .4byte 0x02020004
+_080761B0: .4byte 0x02019348
+_080761B4: .4byte 0x030041b4
+_080761B8: .4byte 0x04000014
+_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 0x0400000a
+_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 0x0400000c
+_08076364: .4byte 0x02024be0
+_08076368: .4byte 0x03004288
+_0807636C: .4byte 0x03004280
+_08076370: .4byte 0x04000018
+_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 0x04000050
+_08076A74: .4byte 0x04000052
+ 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 0x04000050
+ 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 0x04000050
+ 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 gUnknown_0837F374
+_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 gUnknown_0837F374
+_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 0x0400000a
+_08077804: .4byte 0x0400000c
+ 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 0x0400000a
+_08077848: .4byte 0x0400000c
+ 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 0x0400000a
+_080778CC: .4byte 0x0400000c
+ 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 gUnknown_081E9114
+_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 0x00000181
+_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 gUnknown_081E9114
+_08077CFC:
+ ldr r1, _08077D00
+ b _08077DC6
+ .align 2, 0
+_08077D00: .4byte gUnknown_081E9114
+_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 gUnknown_081E7C74
+_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 0x00000181
+_08077DAC: .4byte gUnknown_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 gUnknown_081E7C74
+_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 gUnknown_081E7C74
+ 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
+ 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 0x00000181
+_08077E18: .4byte gUnknown_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 gUnknown_081ECB14
+_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 gUnknown_081ECB14
+ 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 0x04000050
+ 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 0x04000050
+ 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 0x0400000e
+_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 0x0400000e
+_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 0x0400000e
+ 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 0x04000008
+ 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 0x04000052
+_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 0x04000052
+ 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 gUnknown_081E9114
+_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 gUnknown_081E7C74
+_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 0x0400000c
+_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 0x0400000a
+ 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 gUnknown_0837F5B0
+_08079FE8: .4byte gMonFrontPicTable
+_08079FEC: .4byte gUnknown_081E7C74
+_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 gUnknown_081E9114
+_0807A070: .4byte 0x06010000
+_0807A074: .4byte 0x040000d4
+_0807A078: .4byte 0x84000200
+_0807A07C: .4byte gUnknown_0837F5B0
+_0807A080: .4byte gUnknown_081E7C74
+_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 gUnknown_0837F5B0
+_0807A0E8: .4byte gUnknown_081E9114
+_0807A0EC: .4byte 0x02020004
+_0807A0F0: .4byte gUnknown_081E7C18
+ 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 gUnknown_081E9114
+_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 0x00000181
+_0807A1A0: .4byte gUnknown_081E9114
+_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 gUnknown_081E9114
+_0807A250:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r7, r0
+ bls _0807A260
+_0807A258:
+ ldr r4, _0807A25C
+ b _0807A33E
+ .align 2, 0
+_0807A25C: .4byte gUnknown_081E9114
+_0807A260:
+ lsls r1, r7, 2
+ ldr r0, _0807A268
+ b _0807A33C
+ .align 2, 0
+_0807A268: .4byte gUnknown_081E9114
+_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 0x00000181
+_0807A320: .4byte 0x02024e84
+_0807A324: .4byte gUnknown_0837F598
+_0807A328:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r7, r0
+ bls _0807A338
+ ldr r4, _0807A334
+ b _0807A33E
+ .align 2, 0
+_0807A334: .4byte gUnknown_081E7C74
+_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 gUnknown_081E7C74
+_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 0x04000008
+_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
diff --git a/data/data2.s b/data/data2.s
index 156a90656..84cce0306 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -4084,8 +4084,8 @@ gUnknown_0837DEDC: @ 837DEDC
.4byte Unknown_837DD7C
.4byte Unknown_837DD9C
- .global gUnknown_0837DEE4
-gUnknown_0837DEE4: @ 837DEE4
+ .global gDummyPaletteStructTemplate
+gDummyPaletteStructTemplate: @ 837DEE4
.incbin "baserom.gba", 0x0037dee4, 0x10
.global gUnknown_0837DEF4
diff --git a/ewram_syms.txt b/ewram_syms.txt
index ef93c424c..effd87696 100644
--- a/ewram_syms.txt
+++ b/ewram_syms.txt
@@ -5,6 +5,13 @@ gUnknown_020239F8 = 0x20239F8;
gSaveBlock2 = 0x2024EA4;
+gPlttBufferUnfaded = 0x202EAC8;
+gPlttBufferFaded = 0x202EEC8;
+gPlttBufferTransferPending = 0x202F398;
+gPaletteDecompressionBuffer = 0x202F39C;
+gPaletteStructs = 0x202F2C8;
+gPaletteFade = 0x202F388;
+
word_203855E = 0x203855E;
gUnknown_0203869A = 0x203869A;
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 4fd54975d..ea363109f 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -70,4 +70,9 @@
#define TOTAL_OBJ_TILE_COUNT 1024
+#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
+
+#define RGB_BLACK RGB(0, 0, 0)
+#define RGB_WHITE RGB(31, 31, 31)
+
#endif // GUARD_GBA_DEFINES
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 2008128d3..3f41abba1 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -21,11 +21,11 @@ void VBlankIntrWait(void);
#define CPU_SET_16BIT 0x00000000
#define CPU_SET_32BIT 0x04000000
-void CpuSet(void *src, void *dest, u32 control);
+void CpuSet(const void *src, void *dest, u32 control);
#define CPU_FAST_SET_SRC_FIXED 0x01000000
-void CpuFastSet(void *src, void *dest, u32 control);
+void CpuFastSet(const void *src, void *dest, u32 control);
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
diff --git a/include/gba/types.h b/include/gba/types.h
index 1274d4f0d..740c72d92 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -26,6 +26,14 @@ typedef u8 bool8;
typedef u16 bool16;
typedef u32 bool32;
+struct PlttData
+{
+ u16 r:5; // red
+ u16 g:5; // green
+ u16 b:5; // blue
+ u16 unused_15:1;
+};
+
struct OamData
{
u32 y:8;
diff --git a/include/palette.h b/include/palette.h
new file mode 100644
index 000000000..de2cf0083
--- /dev/null
+++ b/include/palette.h
@@ -0,0 +1,68 @@
+#ifndef GUARD_PALETTE_H
+#define GUARD_PALETTE_H
+
+#include "global.h"
+
+#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
+#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
+#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
+#define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade
+
+enum
+{
+ FAST_FADE_IN_FROM_WHITE,
+ FAST_FADE_OUT_TO_WHTIE,
+ FAST_FADE_IN_FROM_BLACK,
+ FAST_FADE_OUT_TO_BLACK,
+};
+
+struct PaletteFadeControl
+{
+ u32 multipurpose1;
+ u8 delayCounter:6;
+ u16 y:5; // blend coefficient
+ u16 targetY:5; // target blend coefficient
+ u16 blendColor:15;
+ u16 active:1;
+ u16 multipurpose2:6;
+ u16 yDec:1; // whether blend coefficient is decreasing
+ u16 bufferTransferDisabled:1;
+ u16 mode:2;
+ u16 shouldResetBlendRegisters:1;
+ u16 hardwareFadeFinishing:1;
+ u16 softwareFadeFinishingCounter:5;
+ u16 softwareFadeFinishing:1;
+ u16 objPaletteToggle:1;
+ u8 deltaY:4; // rate of change of blend coefficient
+};
+
+extern struct PaletteFadeControl gPaletteFade;
+extern u32 gPlttBufferTransferPending;
+extern u8 gPaletteDecompressionBuffer[];
+extern u16 gPlttBufferUnfaded[];
+extern u16 gPlttBufferFaded[];
+
+void LoadCompressedPalette(const void *, u16, u16);
+void LoadPalette(const void *, u16, u16);
+void FillPalette(u16, u16, u16);
+void TransferPlttBuffer(void);
+u8 UpdatePaletteFade(void);
+void ResetPaletteFade(void);
+void ReadPlttIntoBuffers(void);
+bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
+bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
+void unref_sub_8073D84(u8, u32 *);
+void ResetPaletteStructByUid(u16);
+void ResetPaletteStruct(u8);
+void ResetPaletteFadeControl();
+void unref_sub_8074168(u16);
+void unref_sub_8074194(u16);
+void InvertPlttBuffer(u32);
+void TintPlttBuffer(u32, s8, s8, s8);
+void UnfadePlttBuffer(u32);
+void BeginFastPaletteFade(u8);
+void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
+void BlendPalettes(u32, u8, u16);
+void BlendPalettesUnfaded(u32, u8, u16);
+
+#endif // GUARD_PALETTE_H
diff --git a/ld_script.txt b/ld_script.txt
index 394c572b8..5457ae574 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -68,6 +68,8 @@ SECTIONS {
asm/rom3.o(.text);
src/play_time.o(.text);
asm/rom4.o(.text);
+ src/palette.o(.text);
+ asm/rom_8074BAC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
} =0
diff --git a/src/link.c b/src/link.c
index 5a194e449..cb75ebca7 100644
--- a/src/link.c
+++ b/src/link.c
@@ -5,6 +5,7 @@
#include "sprite.h"
#include "songs.h"
#include "link.h"
+#include "palette.h"
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
@@ -25,12 +26,9 @@ struct LinkTestBGInfo
u32 dummy_C;
};
-extern void LoadPalette(const u16 *, u16, u32);
extern void sub_8071C4C(const struct WindowConfig *);
extern u16 Random(void);
extern void SeedRng(u16);
-extern s32 fade_and_return_progress_probably(void);
-extern void copy_pal_bg_faded_to_pal_ram(void);
extern void sub_80516C4(u8, u16);
extern u8 unk_2000000[];
@@ -263,7 +261,7 @@ static void LinkTestScreen(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- fade_and_return_progress_probably();
+ UpdatePaletteFade();
sDummy3 = 0;
InitLocalLinkPlayer();
CreateTask(Task_PrintTestData, 0);
@@ -298,7 +296,7 @@ static void VBlankCB_LinkTest(void)
{
LoadOam();
ProcessSpriteCopyRequests();
- copy_pal_bg_faded_to_pal_ram();
+ TransferPlttBuffer();
}
static void InitLink(void)
@@ -406,7 +404,7 @@ static void LinkTestProcessKeyInput(void)
if (gMain.heldKeys & B_BUTTON)
InitBlockSend(unk_2004000, 0x2004);
if (gMain.newKeys & L_BUTTON)
- pal_fade_maybe(-1, 0, 0x10, 0, 2);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 2);
if (gMain.newKeys & START_BUTTON)
SetSuppressLinkErrorMessage(TRUE);
if (gMain.newKeys & R_BUTTON)
@@ -430,7 +428,7 @@ static void CB2_LinkTest(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- fade_and_return_progress_probably();
+ UpdatePaletteFade();
}
u16 LinkMain2(u16 *heldKeys)
@@ -1222,7 +1220,7 @@ void CB2_LinkError(void)
{
ResetSpriteData();
FreeAllSpritePalettes();
- pal_fade_control_reset_maybe();
+ ResetPaletteFadeControl();
FillPalette(0, 0, 2);
ResetTasks();
SetVBlankCallback(VBlankCB_LinkTest);
@@ -1239,7 +1237,7 @@ void CB2_LinkError(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- fade_and_return_progress_probably();
+ UpdatePaletteFade();
SetMainCallback2(CB2_PrintErrorMessage);
}
diff --git a/src/palette.c b/src/palette.c
new file mode 100644
index 000000000..8ebbae68b
--- /dev/null
+++ b/src/palette.c
@@ -0,0 +1,819 @@
+#include "global.h"
+#include "palette.h"
+
+enum
+{
+ NORMAL_FADE,
+ FAST_FADE,
+ HARDWARE_FADE,
+};
+
+// These are structs for some unused palette system.
+// The full functionality of this system is unknown.
+
+struct PaletteStructTemplate
+{
+ u16 uid;
+ u16 *src;
+ u16 pst_field_8_0:1;
+ u16 pst_field_8_1:9;
+ u16 size:5;
+ u16 pst_field_9_7:1;
+ u8 pst_field_A;
+ u8 srcCount:5;
+ u8 pst_field_B_5:3;
+ u8 pst_field_C;
+};
+
+struct PaletteStruct
+{
+ struct PaletteStructTemplate *base;
+ u32 ps_field_4_0:1;
+ u16 ps_field_4_1:1;
+ u32 baseDestOffset:9;
+ u16 destOffset:10;
+ u16 srcIndex:7;
+ u8 ps_field_8;
+ u8 ps_field_9;
+};
+
+extern void sub_800D238(const void *src, void *dest);
+extern void BlendPalette(u16, u16, u8, u16);
+
+extern struct PaletteStruct gPaletteStructs[];
+
+extern struct PaletteStructTemplate gDummyPaletteStructTemplate;
+
+static void unused_sub_8073DFC(struct PaletteStruct *, u32 *);
+static void unused_sub_8073F60(struct PaletteStruct *, u32 *);
+static void unused_sub_8074020(struct PaletteStruct *);
+static u8 GetPaletteNumByUid(u16);
+static u8 UpdateNormalPaletteFade(void);
+static void BeginFastPaletteFadeInternal(u8);
+static u8 UpdateFastPaletteFade(void);
+static u8 UpdateHardwarePaletteFade(void);
+static void UpdateBlendRegisters(void);
+static bool8 IsSoftwarePaletteFadeFinishing(void);
+
+void LoadCompressedPalette(const void *src, u16 offset, u16 size)
+{
+ sub_800D238(src, gPaletteDecompressionBuffer);
+ CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size);
+ CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size);
+}
+
+void LoadPalette(const void *src, u16 offset, u16 size)
+{
+ CpuCopy16(src, gPlttBufferUnfaded + offset, size);
+ CpuCopy16(src, gPlttBufferFaded + offset, size);
+}
+
+void FillPalette(u16 value, u16 offset, u16 size)
+{
+ CpuFill16(gPlttBufferUnfaded + offset, value, size);
+ CpuFill16(gPlttBufferFaded + offset, value, size);
+}
+
+void TransferPlttBuffer(void)
+{
+ if (!gPaletteFade.bufferTransferDisabled)
+ {
+ void *src = gPlttBufferFaded;
+ void *dest = (void *)PLTT;
+ DmaCopy16(3, src, dest, PLTT_SIZE);
+ gPlttBufferTransferPending = 0;
+ if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
+ UpdateBlendRegisters();
+ }
+}
+
+u8 UpdatePaletteFade(void)
+{
+ u8 result;
+ u8 dummy = 0;
+
+ if (gPlttBufferTransferPending)
+ return -1;
+
+ if (gPaletteFade.mode == NORMAL_FADE)
+ result = UpdateNormalPaletteFade();
+ else if (gPaletteFade.mode == FAST_FADE)
+ result = UpdateFastPaletteFade();
+ else
+ result = UpdateHardwarePaletteFade();
+
+ gPlttBufferTransferPending = gPaletteFade.multipurpose1 | dummy;
+
+ return result;
+}
+
+void ResetPaletteFade(void)
+{
+ u8 i;
+
+ for (i = 0; i < 16; i++)
+ ResetPaletteStruct(i);
+
+ ResetPaletteFadeControl();
+}
+
+void ReadPlttIntoBuffers(void)
+{
+ u16 i;
+ u16 *pltt = (u16 *)PLTT;
+
+ for (i = 0; i < PLTT_SIZE / 2; i++)
+ {
+ gPlttBufferUnfaded[i] = pltt[i];
+ gPlttBufferFaded[i] = pltt[i];
+ }
+}
+
+bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targetY, u16 blendColor)
+{
+ u8 temp;
+ register u32 _blendColor asm("r8") = blendColor;
+
+ if (gPaletteFade.active)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gPaletteFade.deltaY = 2;
+
+ if (delay < 0)
+ {
+ gPaletteFade.deltaY += (delay * -1);
+ delay = 0;
+ }
+
+ gPaletteFade_selectedPalettes = selectedPalettes;
+ gPaletteFade.delayCounter = delay;
+ gPaletteFade_delay = delay;
+ gPaletteFade.y = startY;
+ gPaletteFade.targetY = targetY;
+ gPaletteFade.blendColor = _blendColor;
+ gPaletteFade.active = 1;
+ gPaletteFade.mode = NORMAL_FADE;
+
+ if (startY < targetY)
+ gPaletteFade.yDec = 0;
+ else
+ gPaletteFade.yDec = 1;
+
+ UpdatePaletteFade();
+
+ temp = gPaletteFade.bufferTransferDisabled;
+ gPaletteFade.bufferTransferDisabled = 0;
+ CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE);
+ gPlttBufferTransferPending = 0;
+ if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
+ UpdateBlendRegisters();
+ gPaletteFade.bufferTransferDisabled = temp;
+ return TRUE;
+ }
+}
+
+bool8 unref_sub_8073D3C(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5)
+{
+ ReadPlttIntoBuffers();
+ return BeginNormalPaletteFade(a1, a2, a3, a4, a5);
+}
+
+void unref_sub_8073D84(u8 a1, u32 *a2)
+{
+ u8 i;
+
+ for (i = 0; i < 16; i++)
+ {
+ struct PaletteStruct *palstruct = &gPaletteStructs[i];
+ if (palstruct->ps_field_4_0)
+ {
+ if (palstruct->base->pst_field_8_0 == a1)
+ {
+ u8 val1 = palstruct->srcIndex;
+ u8 val2 = palstruct->base->srcCount;
+ if (val1 == val2)
+ {
+ unused_sub_8074020(palstruct);
+ if (!palstruct->ps_field_4_0)
+ continue;
+ }
+ if (palstruct->ps_field_8 == 0)
+ unused_sub_8073DFC(palstruct, a2);
+ else
+ palstruct->ps_field_8--;
+
+ unused_sub_8073F60(palstruct, a2);
+ }
+ }
+ }
+}
+
+static void unused_sub_8073DFC(struct PaletteStruct *a1, u32 *a2)
+{
+ s32 srcIndex;
+ s32 srcCount;
+ u8 i = 0;
+ u16 srcOffset = a1->srcIndex * a1->base->size;
+
+ if (!a1->base->pst_field_8_0)
+ {
+ while (i < a1->base->size)
+ {
+ gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset];
+ gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
+ i++;
+ a1->destOffset++;
+ srcOffset++;
+ }
+ }
+ else
+ {
+ while (i < a1->base->size)
+ {
+ gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
+ i++;
+ a1->destOffset++;
+ srcOffset++;
+ }
+ }
+
+ a1->destOffset = a1->baseDestOffset;
+ a1->ps_field_8 = a1->base->pst_field_A;
+ a1->srcIndex++;
+
+ srcIndex = a1->srcIndex;
+ srcCount = a1->base->srcCount;
+
+ if (srcIndex >= srcCount)
+ {
+ if (a1->ps_field_9)
+ a1->ps_field_9--;
+ a1->srcIndex = 0;
+ }
+
+ *a2 |= 1 << (a1->baseDestOffset >> 4);
+}
+
+static void unused_sub_8073F60(struct PaletteStruct *a1, u32 *a2)
+{
+ if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes))
+ {
+ if (!a1->base->pst_field_8_0)
+ {
+ if (gPaletteFade.delayCounter != gPaletteFade_delay)
+ {
+ BlendPalette(
+ a1->baseDestOffset,
+ a1->base->size,
+ gPaletteFade.y,
+ gPaletteFade.blendColor);
+ }
+ }
+ else
+ {
+ if (!gPaletteFade.delayCounter)
+ {
+ if (a1->ps_field_8 != a1->base->pst_field_A)
+ {
+ u32 srcOffset = a1->srcIndex * a1->base->size;
+ u8 i;
+
+ for (i = 0; i < a1->base->size; i++)
+ gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i];
+ }
+ }
+ }
+ }
+}
+
+static void unused_sub_8074020(struct PaletteStruct *a1)
+{
+ if (!a1->ps_field_9)
+ {
+ s32 val = a1->base->pst_field_B_5;
+
+ if (!val)
+ {
+ a1->srcIndex = 0;
+ a1->ps_field_8 = a1->base->pst_field_A;
+ a1->ps_field_9 = a1->base->pst_field_C;
+ a1->destOffset = a1->baseDestOffset;
+ }
+ else
+ {
+ if (val < 0)
+ return;
+ if (val > 2)
+ return;
+ ResetPaletteStructByUid(a1->base->uid);
+ }
+ }
+ else
+ {
+ a1->ps_field_9--;
+ }
+}
+
+void ResetPaletteStructByUid(u16 a1)
+{
+ u8 paletteNum = GetPaletteNumByUid(a1);
+ if (paletteNum != 16)
+ ResetPaletteStruct(paletteNum);
+}
+
+void ResetPaletteStruct(u8 paletteNum)
+{
+ gPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate;
+ gPaletteStructs[paletteNum].ps_field_4_0 = 0;
+ gPaletteStructs[paletteNum].baseDestOffset = 0;
+ gPaletteStructs[paletteNum].destOffset = 0;
+ gPaletteStructs[paletteNum].srcIndex = 0;
+ gPaletteStructs[paletteNum].ps_field_4_1 = 0;
+ gPaletteStructs[paletteNum].ps_field_8 = 0;
+ gPaletteStructs[paletteNum].ps_field_9 = 0;
+}
+
+void ResetPaletteFadeControl()
+{
+ gPaletteFade.multipurpose1 = 0;
+ gPaletteFade.multipurpose2 = 0;
+ gPaletteFade.delayCounter = 0;
+ gPaletteFade.y = 0;
+ gPaletteFade.targetY = 0;
+ gPaletteFade.blendColor = 0;
+ gPaletteFade.active = 0;
+ gPaletteFade.multipurpose2 = 0; // assign same value twice
+ gPaletteFade.yDec = 0;
+ gPaletteFade.bufferTransferDisabled = 0;
+ gPaletteFade.shouldResetBlendRegisters = 0;
+ gPaletteFade.hardwareFadeFinishing = 0;
+ gPaletteFade.softwareFadeFinishing = 0;
+ gPaletteFade.softwareFadeFinishingCounter = 0;
+ gPaletteFade.objPaletteToggle = 0;
+ gPaletteFade.deltaY = 2;
+}
+
+void unref_sub_8074168(u16 uid)
+{
+ u8 paletteNum = GetPaletteNumByUid(uid);
+ if (paletteNum != 16)
+ gPaletteStructs[paletteNum].ps_field_4_1 = 1;
+}
+
+void unref_sub_8074194(u16 uid)
+{
+ u8 paletteNum = GetPaletteNumByUid(uid);
+ if (paletteNum != 16)
+ gPaletteStructs[paletteNum].ps_field_4_1 = 0;
+}
+
+static u8 GetPaletteNumByUid(u16 uid)
+{
+ u8 i;
+
+ for (i = 0; i < 16; i++)
+ if (gPaletteStructs[i].base->uid == uid)
+ return i;
+
+ return 16;
+}
+
+static u8 UpdateNormalPaletteFade()
+{
+ u16 paletteOffset;
+ u16 selectedPalettes;
+
+ if (!gPaletteFade.active)
+ return 0;
+
+ if (IsSoftwarePaletteFadeFinishing())
+ {
+ return gPaletteFade.active;
+ }
+ else
+ {
+ if (!gPaletteFade.objPaletteToggle)
+ {
+ if (gPaletteFade.delayCounter < gPaletteFade_delay)
+ {
+ gPaletteFade.delayCounter++;
+ return 2;
+ }
+ gPaletteFade.delayCounter = 0;
+ }
+
+ paletteOffset = 0;
+
+ if (!gPaletteFade.objPaletteToggle)
+ {
+ selectedPalettes = gPaletteFade_selectedPalettes;
+ }
+ else
+ {
+ selectedPalettes = gPaletteFade_selectedPalettes >> 16;
+ paletteOffset = 256;
+ }
+
+ while (selectedPalettes)
+ {
+ if (selectedPalettes & 1)
+ BlendPalette(
+ paletteOffset,
+ 16,
+ gPaletteFade.y,
+ gPaletteFade.blendColor);
+ selectedPalettes >>= 1;
+ paletteOffset += 16;
+ }
+
+ gPaletteFade.objPaletteToggle ^= 1;
+
+ if (!gPaletteFade.objPaletteToggle)
+ {
+ if (gPaletteFade.y == gPaletteFade.targetY)
+ {
+ gPaletteFade_selectedPalettes = 0;
+ gPaletteFade.softwareFadeFinishing = 1;
+ }
+ else
+ {
+ s8 val;
+
+ if (!gPaletteFade.yDec)
+ {
+ val = gPaletteFade.y;
+ val += gPaletteFade.deltaY;
+ if (val > gPaletteFade.targetY)
+ val = gPaletteFade.targetY;
+ gPaletteFade.y = val;
+ }
+ else
+ {
+ val = gPaletteFade.y;
+ val -= gPaletteFade.deltaY;
+ if (val < gPaletteFade.targetY)
+ val = gPaletteFade.targetY;
+ gPaletteFade.y = val;
+ }
+ }
+ }
+
+ return gPaletteFade.active;
+ }
+}
+
+void InvertPlttBuffer(u32 selectedPalettes)
+{
+ u16 paletteOffset = 0;
+
+ while (selectedPalettes)
+ {
+ if (selectedPalettes & 1)
+ {
+ u8 i;
+ for (i = 0; i < 16; i++)
+ gPlttBufferFaded[paletteOffset + i] = ~gPlttBufferFaded[paletteOffset + i];
+ }
+ selectedPalettes >>= 1;
+ paletteOffset += 16;
+ }
+}
+
+void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b)
+{
+ u16 paletteOffset = 0;
+
+ while (selectedPalettes)
+ {
+ if (selectedPalettes & 1)
+ {
+ u8 i;
+ for (i = 0; i < 16; i++)
+ {
+ struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[paletteOffset + i];
+ data->r += r;
+ data->g += g;
+ data->b += b;
+ }
+ }
+ selectedPalettes >>= 1;
+ paletteOffset += 16;
+ }
+}
+
+void UnfadePlttBuffer(u32 selectedPalettes)
+{
+ u16 paletteOffset = 0;
+
+ while (selectedPalettes)
+ {
+ if (selectedPalettes & 1)
+ {
+ u8 i;
+ for (i = 0; i < 16; i++)
+ gPlttBufferFaded[paletteOffset + i] = gPlttBufferUnfaded[paletteOffset + i];
+ }
+ selectedPalettes >>= 1;
+ paletteOffset += 16;
+ }
+}
+
+void BeginFastPaletteFade(u8 submode)
+{
+ gPaletteFade.deltaY = 2;
+ BeginFastPaletteFadeInternal(submode);
+}
+
+static void BeginFastPaletteFadeInternal(u8 submode)
+{
+ gPaletteFade.y = 31;
+ gPaletteFade_submode = submode & 0x3F;
+ gPaletteFade.active = 1;
+ gPaletteFade.mode = FAST_FADE;
+
+ if (submode == FAST_FADE_IN_FROM_BLACK)
+ CpuFill16(gPlttBufferFaded, RGB_BLACK, PLTT_SIZE);
+
+ if (submode == FAST_FADE_IN_FROM_WHITE)
+ CpuFill16(gPlttBufferFaded, RGB_WHITE, PLTT_SIZE);
+
+ UpdatePaletteFade();
+}
+
+static u8 UpdateFastPaletteFade(void)
+{
+ u16 i;
+ u16 paletteOffsetStart;
+ u16 paletteOffsetEnd;
+ s8 r0;
+ s8 g0;
+ s8 b0;
+ s8 r;
+ s8 g;
+ s8 b;
+ s8 val1;
+ s8 val2;
+
+ if (!gPaletteFade.active)
+ return 0;
+
+ if (IsSoftwarePaletteFadeFinishing())
+ return gPaletteFade.active;
+
+ if (gPaletteFade.objPaletteToggle)
+ {
+ paletteOffsetStart = 256;
+ paletteOffsetEnd = 512;
+ }
+ else
+ {
+ paletteOffsetStart = 0;
+ paletteOffsetEnd = 256;
+ }
+
+ switch (gPaletteFade_submode)
+ {
+ case FAST_FADE_IN_FROM_WHITE:
+ for (i = paletteOffsetStart; i < paletteOffsetEnd; i++)
+ {
+ struct PlttData *unfaded;
+ struct PlttData *faded;
+
+ unfaded = (struct PlttData *)&gPlttBufferUnfaded[i];
+ r0 = unfaded->r;
+ g0 = unfaded->g;
+ b0 = unfaded->b;
+
+ faded = (struct PlttData *)&gPlttBufferFaded[i];
+ r = faded->r - 2;
+ g = faded->g - 2;
+ b = faded->b - 2;
+
+ if (r < r0)
+ r = r0;
+ if (g < g0)
+ g = g0;
+ if (b < b0)
+ b = b0;
+
+ gPlttBufferFaded[i] = r | (g << 5) | (b << 10);
+ }
+ break;
+ case FAST_FADE_OUT_TO_WHTIE:
+ for (i = paletteOffsetStart; i < paletteOffsetEnd; i++)
+ {
+ struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[i];
+ r = data->r + 2;
+ g = data->g + 2;
+ b = data->b + 2;
+
+ if (r > 31)
+ r = 31;
+ if (g > 31)
+ g = 31;
+ if (b > 31)
+ b = 31;
+
+ gPlttBufferFaded[i] = r | (g << 5) | (b << 10);
+ }
+ break;
+ case FAST_FADE_IN_FROM_BLACK:
+ for (i = paletteOffsetStart; i < paletteOffsetEnd; i++)
+ {
+ struct PlttData *unfaded;
+ struct PlttData *faded;
+
+ unfaded = (struct PlttData *)&gPlttBufferUnfaded[i];
+ r0 = unfaded->r;
+ g0 = unfaded->g;
+ b0 = unfaded->b;
+
+ faded = (struct PlttData *)&gPlttBufferFaded[i];
+ r = faded->r + 2;
+ g = faded->g + 2;
+ b = faded->b + 2;
+
+ if (r > r0)
+ r = r0;
+ if (g > g0)
+ g = g0;
+ if (b > b0)
+ b = b0;
+
+ gPlttBufferFaded[i] = r | (g << 5) | (b << 10);
+ }
+ break;
+ case FAST_FADE_OUT_TO_BLACK:
+ for (i = paletteOffsetStart; i < paletteOffsetEnd; i++)
+ {
+ struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[i];
+ r = data->r - 2;
+ g = data->g - 2;
+ b = data->b - 2;
+
+ if (r < 0)
+ r = 0;
+ if (g < 0)
+ g = 0;
+ if (b < 0)
+ b = 0;
+
+ gPlttBufferFaded[i] = r | (g << 5) | (b << 10);
+ }
+ }
+
+ gPaletteFade.objPaletteToggle ^= 1;
+
+ if (gPaletteFade.objPaletteToggle)
+ return gPaletteFade.active;
+
+ if (gPaletteFade.y - gPaletteFade.deltaY < 0)
+ gPaletteFade.y = 0;
+ else
+ gPaletteFade.y -= gPaletteFade.deltaY;
+
+ if (gPaletteFade.y == 0)
+ {
+ switch (gPaletteFade_submode)
+ {
+ case FAST_FADE_IN_FROM_WHITE:
+ case FAST_FADE_IN_FROM_BLACK:
+ CpuCopy32(gPlttBufferUnfaded, gPlttBufferFaded, PLTT_SIZE);
+ break;
+ case FAST_FADE_OUT_TO_WHTIE:
+ CpuFill32(gPlttBufferFaded, 0xFFFFFFFF, PLTT_SIZE);
+ break;
+ case FAST_FADE_OUT_TO_BLACK:
+ CpuFill32(gPlttBufferFaded, 0, PLTT_SIZE);
+ break;
+ }
+
+ gPaletteFade.mode = NORMAL_FADE;
+ gPaletteFade.softwareFadeFinishing = 1;
+ }
+
+ return gPaletteFade.active;
+}
+
+void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 shouldResetBlendRegisters)
+{
+ gPaletteFade_blendCnt = blendCnt;
+ gPaletteFade.delayCounter = delay;
+ gPaletteFade_delay = delay;
+ gPaletteFade.y = y;
+ gPaletteFade.targetY = targetY;
+ gPaletteFade.active = 1;
+ gPaletteFade.mode = HARDWARE_FADE;
+ gPaletteFade.shouldResetBlendRegisters = shouldResetBlendRegisters & 1;
+ gPaletteFade.hardwareFadeFinishing = 0;
+
+ if (y < targetY)
+ gPaletteFade.yDec = 0;
+ else
+ gPaletteFade.yDec = 1;
+}
+
+static u8 UpdateHardwarePaletteFade(void)
+{
+ if (!gPaletteFade.active)
+ return 0;
+
+ if (gPaletteFade.delayCounter < gPaletteFade_delay)
+ {
+ gPaletteFade.delayCounter++;
+ return 2;
+ }
+
+ gPaletteFade.delayCounter = 0;
+
+ if (!gPaletteFade.yDec)
+ {
+ gPaletteFade.y++;
+ if (gPaletteFade.y > gPaletteFade.targetY)
+ {
+ gPaletteFade.hardwareFadeFinishing++;
+ gPaletteFade.y--;
+ }
+ }
+ else
+ {
+ s32 y = gPaletteFade.y--;
+ if (y - 1 < gPaletteFade.targetY)
+ {
+ gPaletteFade.hardwareFadeFinishing++;
+ gPaletteFade.y++;
+ }
+ }
+
+ if (gPaletteFade.hardwareFadeFinishing)
+ {
+ if (gPaletteFade.shouldResetBlendRegisters)
+ {
+ gPaletteFade_blendCnt = 0;
+ gPaletteFade.y = 0;
+ }
+ gPaletteFade.shouldResetBlendRegisters = 0;
+ }
+
+ return gPaletteFade.active;
+}
+
+static void UpdateBlendRegisters(void)
+{
+ REG_BLDCNT = gPaletteFade_blendCnt;
+ REG_BLDY = gPaletteFade.y;
+ if (gPaletteFade.hardwareFadeFinishing)
+ {
+ gPaletteFade.hardwareFadeFinishing = 0;
+ gPaletteFade.mode = 0;
+ gPaletteFade_blendCnt = 0;
+ gPaletteFade.y = 0;
+ gPaletteFade.active = 0;
+ }
+}
+
+static bool8 IsSoftwarePaletteFadeFinishing(void)
+{
+ if (gPaletteFade.softwareFadeFinishing)
+ {
+ if (gPaletteFade.softwareFadeFinishingCounter == 4)
+ {
+ gPaletteFade.active = 0;
+ gPaletteFade.softwareFadeFinishing = 0;
+ gPaletteFade.softwareFadeFinishingCounter = 0;
+ }
+ else
+ {
+ gPaletteFade.softwareFadeFinishingCounter++;
+ }
+
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color)
+{
+ u16 paletteOffset;
+
+ for (paletteOffset = 0; selectedPalettes; paletteOffset += 16)
+ {
+ if (selectedPalettes & 1)
+ BlendPalette(paletteOffset, 16, coeff, color);
+ selectedPalettes >>= 1;
+ }
+}
+
+void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color)
+{
+ void *src = gPlttBufferUnfaded;
+ void *dest = gPlttBufferFaded;
+ DmaCopy32(3, src, dest, PLTT_SIZE);
+ BlendPalettes(selectedPalettes, coeff, color);
+}
diff --git a/src/text.c b/src/text.c
index 276a2ccfb..8335e61c8 100644
--- a/src/text.c
+++ b/src/text.c
@@ -3,6 +3,7 @@
#include "main.h"
#include "string_util.h"
#include "songs.h"
+#include "palette.h"
enum
{
@@ -117,7 +118,6 @@ struct ShiftAmount
u32 right;
};
-extern void LoadPalette(const u16 *, u16, u32);
extern void sub_8075474(u16);
extern void audio_play(u16);
extern u8 mplay_has_finished_maybe(void);