summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/rom3.s35476
-rw-r--r--asm/rom5.s10
-rw-r--r--asm/rom_8040EB4.s35453
-rw-r--r--iwram_syms.txt2
-rw-r--r--ld_script.txt2
-rw-r--r--src/rng.c14
7 files changed, 35477 insertions, 35482 deletions
diff --git a/Makefile b/Makefile
index b50fbdf65..37b4e7ffc 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,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/rom_8074BAC.o asm/rom5.o \
+ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.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
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 7e453c4ac..a988fb6a6 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -110316,35479 +110316,3 @@ cosine2: @ 8040E6C
pop {r1}
bx r1
thumb_func_end cosine2
-
- thumb_func_start Random
-Random: @ 8040E84
- ldr r2, _08040E98
- ldr r1, [r2]
- ldr r0, _08040E9C
- muls r0, r1
- ldr r1, _08040EA0
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08040E98: .4byte 0x03004818
-_08040E9C: .4byte 0x41c64e6d
-_08040EA0: .4byte 0x00006073
- thumb_func_end Random
-
- thumb_func_start SeedRng
-SeedRng: @ 8040EA4
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08040EB0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08040EB0: .4byte 0x03004818
- thumb_func_end SeedRng
-
- thumb_func_start object_new_hidden_with_callback
-object_new_hidden_with_callback: @ 8040EB4
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08040EE8
- movs r1, 0xF8
- movs r2, 0xA8
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08040EEC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r4, 0x4
- orrs r1, r4
- strb r1, [r3]
- adds r5, 0x1C
- adds r2, r5
- str r6, [r2]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08040EE8: .4byte gSpriteTemplate_82087AC
-_08040EEC: .4byte 0x02020004
- thumb_func_end object_new_hidden_with_callback
-
- thumb_func_start StoreWordInTwoHalfwords
-StoreWordInTwoHalfwords: @ 8040EF0
- strh r1, [r0]
- lsrs r1, 16
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end StoreWordInTwoHalfwords
-
- thumb_func_start LoadWordFromTwoHalfwords
-LoadWordFromTwoHalfwords: @ 8040EF8
- ldrh r2, [r0]
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r2, r0
- str r2, [r1]
- bx lr
- thumb_func_end LoadWordFromTwoHalfwords
-
- thumb_func_start sub_8040F08
-sub_8040F08: @ 8040F08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r7, [sp, 0x24]
- mov r8, r7
- str r1, [r0]
- str r2, [r0, 0x4]
- strh r3, [r0, 0x8]
- strh r4, [r0, 0xA]
- strh r5, [r0, 0xC]
- strh r6, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8040F08
-
- thumb_func_start sub_8040F34
-sub_8040F34: @ 8040F34
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x24
- mov r8, r0
- ldr r0, [sp, 0x38]
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- ldr r6, [sp, 0x44]
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- asrs r3, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- add r0, sp, 0x10
- bl sub_8040F08
- add r0, sp, 0x10
- mov r1, r8
- movs r2, 0x1
- bl BgAffineSet
- add sp, 0x24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8040F34
-
- thumb_func_start sub_8040F80
-sub_8040F80: @ 8040F80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r2, [sp, 0x20]
- adds r4, r3, 0
- ldr r7, [sp, 0x5C]
- lsls r0, 24
- lsls r1, 24
- ldr r2, _08041008
- lsrs r1, 23
- lsrs r0, 21
- adds r1, r0
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- str r0, [sp, 0x24]
- adds r1, r2
- ldrb r1, [r1]
- str r1, [sp, 0x28]
- movs r1, 0
- cmp r1, r0
- bcc _08040FB4
- b _08041136
-_08040FB4:
- movs r0, 0x20
- ldr r2, [sp, 0x28]
- subs r0, r2
- lsls r0, 1
- str r0, [sp, 0x2C]
-_08040FBE:
- movs r2, 0
- adds r1, 0x1
- str r1, [sp, 0x34]
- ldr r3, [sp, 0x28]
- cmp r2, r3
- bcc _08040FCC
- b _08041124
-_08040FCC:
- ldr r0, _0804100C
- mov r8, r0
-_08040FD0:
- ldrh r1, [r4]
- ldr r0, _08041010
- ands r0, r1
- lsls r0, 5
- mov r12, r0
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- mov r3, sp
- strh r1, [r3, 0x38]
- cmp r0, 0
- bne _08041018
- ldr r0, [sp, 0x20]
- add r0, r12
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r3, _08041014
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, 0x2
- str r4, [sp, 0x30]
- adds r7, 0x20
- mov r10, r7
- adds r2, 0x1
- mov r9, r2
- b _08041112
- .align 2, 0
-_08041008: .4byte gUnknown_082087C4
-_0804100C: .4byte 0x040000d4
-_08041010: .4byte 0x000003ff
-_08041014: .4byte 0x84000008
-_08041018:
- movs r1, 0x80
- lsls r1, 4
- cmp r0, r1
- bne _08041068
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
- ldr r4, _08041060
- ldr r6, _08041064
- movs r5, 0x7
-_08041036:
- lsls r2, r3, 24
- asrs r2, 24
- subs r0, r5, r2
- lsls r0, 2
- add r0, r12
- ldr r1, [sp, 0x20]
- adds r0, r1, r0
- lsls r1, r2, 2
- adds r1, r7, r1
- str r0, [r4]
- str r1, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x1
- lsls r2, 24
- lsrs r3, r2, 24
- asrs r2, 24
- cmp r2, 0x7
- ble _08041036
- b _08041112
- .align 2, 0
-_08041060: .4byte 0x040000d4
-_08041064: .4byte 0x84000001
-_08041068:
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
-_08041078:
- movs r2, 0
- lsls r4, r3, 24
- lsls r0, r4, 2
- lsrs r0, 24
- adds r6, r0, 0x3
- mov r1, r12
- adds r5, r1, r0
-_08041086:
- lsls r1, r2, 24
- asrs r1, 24
- subs r0, r6, r1
- mov r2, sp
- adds r3, r2, r0
- adds r0, r5, r1
- ldr r2, [sp, 0x20]
- adds r0, r2, r0
- ldrb r2, [r0]
- movs r0, 0xF
- ands r0, r2
- lsls r0, 4
- lsrs r2, 4
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x1
- lsls r1, 24
- lsrs r2, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _08041086
- movs r3, 0x80
- lsls r3, 17
- adds r0, r4, r3
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x7
- ble _08041078
- movs r0, 0x80
- lsls r0, 4
- mov r1, sp
- ldrh r1, [r1, 0x38]
- ands r0, r1
- cmp r0, 0
- beq _08041104
- movs r3, 0
- ldr r4, _080410FC
- ldr r6, _08041100
- movs r5, 0x7
-_080410D4:
- lsls r1, r3, 24
- asrs r1, 24
- subs r0, r5, r1
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- lsls r0, r1, 2
- adds r0, r7, r0
- str r2, [r4]
- str r0, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r1, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- asrs r1, 24
- cmp r1, 0x7
- ble _080410D4
- b _08041112
- .align 2, 0
-_080410FC: .4byte 0x040000d4
-_08041100: .4byte 0x84000001
-_08041104:
- mov r0, sp
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r2, _08041148
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08041112:
- ldr r4, [sp, 0x30]
- mov r7, r10
- mov r3, r9
- lsls r0, r3, 24
- lsrs r2, r0, 24
- ldr r0, [sp, 0x28]
- cmp r2, r0
- bcs _08041124
- b _08040FD0
-_08041124:
- ldr r1, [sp, 0x2C]
- adds r4, r1
- ldr r2, [sp, 0x34]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x24]
- cmp r1, r3
- bcs _08041136
- b _08040FBE
-_08041136:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041148: .4byte 0x84000008
- thumb_func_end sub_8040F80
-
- thumb_func_start sub_804114C
-sub_804114C: @ 804114C
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- movs r3, 0x1
-_08041154:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08041160
- adds r0, r1, 0
- b _0804116E
-_08041160:
- lsrs r2, 1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08041154
- movs r0, 0
-_0804116E:
- pop {r1}
- bx r1
- thumb_func_end sub_804114C
-
- thumb_func_start sub_8041174
-sub_8041174: @ 8041174
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r2, _080411A4
- movs r3, 0
- cmp r3, r4
- bge _080411C0
- movs r6, 0x1
- ldr r0, _080411A8
- adds r5, r0, 0
-_08041188:
- adds r0, r7, r3
- ldrb r0, [r0]
- eors r2, r0
- movs r1, 0
- adds r3, 0x1
-_08041192:
- adds r0, r2, 0
- ands r0, r6
- cmp r0, 0
- beq _080411AC
- lsrs r0, r2, 1
- eors r0, r5
- lsls r0, 16
- lsrs r2, r0, 16
- b _080411AE
- .align 2, 0
-_080411A4: .4byte 0x00001121
-_080411A8: .4byte 0x00008408
-_080411AC:
- lsrs r2, 1
-_080411AE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08041192
- lsls r0, r3, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _08041188
-_080411C0:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8041174
-
- thumb_func_start unref_sub_80411CC
-unref_sub_80411CC: @ 80411CC
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r2, _08041208
- movs r3, 0
- cmp r3, r4
- bge _080411FA
- ldr r6, _0804120C
-_080411DC:
- lsrs r1, r2, 8
- adds r0, r5, r3
- ldrb r0, [r0]
- eors r2, r0
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- adds r2, r0, 0
- eors r2, r1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _080411DC
-_080411FA:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041208: .4byte 0x00001121
-_0804120C: .4byte gUnknown_082087DC
- thumb_func_end unref_sub_80411CC
-
- thumb_func_start BlendPalette
-BlendPalette: @ 8041210
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r12, r1
- lsls r2, 24
- lsrs r7, r2, 24
- mov r0, sp
- strh r3, [r0]
- movs r6, 0
- cmp r6, r12
- bcs _08041296
- ldr r0, _080412A8
- mov r10, r0
- ldr r1, _080412AC
- mov r9, r1
-_0804123E:
- mov r0, r8
- adds r5, r6, r0
- lsls r5, 16
- lsrs r5, 15
- mov r1, r10
- adds r0, r5, r1
- ldr r3, [r0]
- lsls r4, r3, 27
- lsls r2, r3, 22
- lsls r3, 17
- add r5, r9
- lsrs r4, 27
- ldr r1, [sp]
- lsls r0, r1, 27
- lsrs r0, 27
- subs r0, r4
- muls r0, r7
- asrs r0, 4
- adds r4, r0
- lsrs r2, 27
- lsls r0, r1, 22
- lsrs r0, 27
- subs r0, r2
- muls r0, r7
- asrs r0, 4
- adds r2, r0
- lsls r2, 5
- orrs r4, r2
- lsrs r3, 27
- lsls r1, 17
- lsrs r1, 27
- subs r1, r3
- adds r0, r1, 0
- muls r0, r7
- asrs r0, 4
- adds r3, r0
- lsls r3, 10
- orrs r4, r3
- strh r4, [r5]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r12
- bcc _0804123E
-_08041296:
- 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
-_080412A8: .4byte 0x0202eac8
-_080412AC: .4byte 0x0202eec8
- thumb_func_end BlendPalette
-
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetEncryptedField
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
- thumb_func_start sub_8041324
-sub_8041324: @ 8041324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- movs r7, 0
- movs r5, 0
- mov r6, r10
- adds r6, 0x74
- movs r0, 0x1
- mov r8, r0
-_0804133E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _0804136E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0xC
- bl PokemonGetEncryptedField
- adds r1, r0, 0
- cmp r1, 0
- bne _0804136E
- lsls r0, r5, 1
- adds r0, r6, r0
- b _08041374
-_0804136E:
- lsls r0, r5, 1
- adds r0, r6, r0
- mov r1, r8
-_08041374:
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804133E
- mov r0, r10
- str r7, [r0, 0x70]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8041324
-
- thumb_func_start daycare_empty_slot
-daycare_empty_slot: @ 8041394
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0804139A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- bne _080413B2
- lsls r0, r4, 24
- asrs r0, 24
- b _080413C0
-_080413B2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0804139A
- movs r0, 0x1
- negs r0, r0
-_080413C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end daycare_empty_slot
-
- thumb_func_start sub_80413C8
-sub_80413C8: @ 80413C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r8, r1
- mov r0, r8
- bl daycare_empty_slot
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- adds r0, r7, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _0804144A
- lsls r0, r4, 24
- asrs r0, 24
- lsls r4, r0, 3
- subs r4, r0
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA0
- add r5, r8
- adds r6, r5, 0
- adds r6, 0x24
- ldr r1, _08041490
- adds r0, r6, 0
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0xFC
- bl sub_814A518
- adds r6, 0x8
- adds r0, r7, 0
- adds r1, r6, 0
- bl pokemon_get_nick
- adds r0, r7, 0
- movs r1, 0x40
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- add r4, r8
- ldr r2, _08041494
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r4, 0xA0
- ldr r0, _08041498
- adds r1, r0
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r7, 0
- bl sub_80A2DF8
-_0804144A:
- mov r2, r9
- lsls r4, r2, 24
- asrs r4, 24
- lsls r5, r4, 2
- adds r4, r5, r4
- lsls r4, 4
- add r4, r8
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl pokemon_restore_pp
- movs r0, 0x88
- lsls r0, 1
- add r0, r8
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r7, 0
- bl zero_pokemon_struct
- bl party_compaction
- bl calc_player_party_count
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041490: .4byte 0x02024ea4
-_08041494: .4byte 0x02025734
-_08041498: .4byte 0x00002b4c
- thumb_func_end sub_80413C8
-
- thumb_func_start daycare_send
-daycare_send: @ 804149C
- push {lr}
- ldr r0, _080414B4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080414B8
- adds r0, r1
- ldr r1, _080414BC
- bl sub_80413C8
- pop {r0}
- bx r0
- .align 2, 0
-_080414B4: .4byte 0x03005ce0
-_080414B8: .4byte 0x03004360
-_080414BC: .4byte 0x020286d0
- thumb_func_end daycare_send
-
- thumb_func_start sub_80414C0
-sub_80414C0: @ 80414C0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _08041516
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- adds r6, r0, 0
- cmp r6, 0
- bne _08041516
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl zero_pokemon_boxed_data
- adds r0, r5, 0
- adds r0, 0xA0
- adds r4, 0x88
- adds r1, r4, 0
- movs r2, 0x38
- bl memcpy
- movs r0, 0x88
- lsls r0, 1
- adds r2, r5, r0
- adds r0, 0x4
- adds r1, r5, r0
- ldr r0, [r1]
- str r0, [r2]
- str r6, [r1]
- adds r0, r4, 0
- bl sub_80417F4
-_08041516:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80414C0
-
- thumb_func_start sub_804151C
-sub_804151C: @ 804151C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08041538
-_08041524:
- adds r0, r4, 0
- bl sub_8040300
- lsls r0, 24
- cmp r0, 0
- beq _08041560
- movs r6, 0x1
- adds r5, 0x1
- b _0804154C
- .align 2, 0
-_08041538: .4byte 0x0000ffff
-_0804153C:
- movs r6, 0
- cmp r0, r7
- bne _0804154C
- ldr r0, _0804156C
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_803B8D4
-_0804154C:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0804153C
- cmp r5, 0x63
- ble _08041524
-_08041560:
- adds r0, r4, 0
- bl pokemon_calc_effective_stats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804156C: .4byte 0x02024e82
- thumb_func_end sub_804151C
-
- thumb_func_start sub_8041570
-sub_8041570: @ 8041570
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x68
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r7, r4, 2
- adds r0, r7, r4
- lsls r0, 4
- adds r6, r5, r0
- ldr r1, _08041640
- adds r0, r6, 0
- bl pokemon_get_nick_
- adds r0, r6, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r6, 0
- mov r1, sp
- bl sub_803B4B4
- mov r0, sp
- movs r1, 0x38
- bl PokemonGetField
- cmp r0, 0x64
- beq _080415D8
- mov r0, sp
- movs r1, 0x19
- bl PokemonGetField
- movs r2, 0x88
- lsls r2, 1
- adds r1, r5, r2
- adds r1, r7
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x64]
- add r2, sp, 0x64
- mov r0, sp
- movs r1, 0x19
- bl pokemon_setattr
- mov r0, sp
- bl sub_804151C
-_080415D8:
- ldr r0, _08041644
- movs r1, 0xFA
- lsls r1, 1
- adds r1, r0
- mov r8, r1
- mov r0, r8
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08041610
- adds r4, r1, 0
- adds r4, 0xA0
- adds r4, r5, r4
- mov r0, r8
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80417F4
-_08041610:
- bl party_compaction
- adds r0, r6, 0
- bl zero_pokemon_boxed_data
- movs r2, 0x88
- lsls r2, 1
- adds r0, r5, r2
- adds r0, r7
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80414C0
- bl calc_player_party_count
- mov r0, r9
- add sp, 0x68
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041640: .4byte 0x020231cc
-_08041644: .4byte 0x03004360
- thumb_func_end sub_8041570
-
- thumb_func_start sub_8041648
-sub_8041648: @ 8041648
- push {lr}
- ldr r0, _0804165C
- ldr r1, _08041660
- ldrb r1, [r1]
- bl sub_8041570
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0804165C: .4byte 0x020286d0
-_08041660: .4byte 0x0202e8cc
- thumb_func_end sub_8041648
-
- thumb_func_start sub_8041664
-sub_8041664: @ 8041664
- push {r4,r5,lr}
- sub sp, 0x54
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x19
- bl PokemonGetEncryptedField
- adds r0, r5
- str r0, [sp, 0x50]
- add r2, sp, 0x50
- mov r0, sp
- movs r1, 0x19
- bl PokemonSetEncryptedField
- mov r0, sp
- bl sub_803B570
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x54
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8041664
-
- thumb_func_start sub_80416A0
-sub_80416A0: @ 80416A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- mov r8, r0
- add r4, r8
- lsls r4, 4
- adds r4, r5, r4
- adds r0, r4, 0
- bl sub_803B570
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x88
- lsls r0, 1
- adds r5, r0
- add r5, r8
- ldr r1, [r5]
- adds r0, r4, 0
- bl sub_8041664
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80416A0
-
- thumb_func_start sub_80416E8
-sub_80416E8: @ 80416E8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041720
- adds r0, r6, 0
- bl pokemon_get_nick_
- ldr r0, _08041724
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041720: .4byte 0x020231cc
-_08041724: .4byte 0x020232cc
- thumb_func_end sub_80416E8
-
- thumb_func_start sub_8041728
-sub_8041728: @ 8041728
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041768
- adds r0, r6, 0
- bl pokemon_get_nick_
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- adds r4, 0x64
- ldr r0, _0804176C
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041768: .4byte 0x020231cc
-_0804176C: .4byte 0x020232cc
- thumb_func_end sub_8041728
-
- thumb_func_start sub_8041770
-sub_8041770: @ 8041770
- push {lr}
- ldr r0, _08041784
- ldr r1, _08041788
- ldrb r1, [r1]
- bl sub_8041728
- ldr r1, _0804178C
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08041784: .4byte 0x020286d0
-_08041788: .4byte 0x0202e8cc
-_0804178C: .4byte 0x0202e8ce
- thumb_func_end sub_8041770
-
- thumb_func_start sub_8041790
-sub_8041790: @ 8041790
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080417AC
- ldr r1, _080417B0
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _080417B4
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_080417AC: .4byte 0x02025734
-_080417B0: .4byte 0x000030ac
-_080417B4: .4byte 0x000030b0
- thumb_func_end sub_8041790
-
- thumb_func_start sub_80417B8
-sub_80417B8: @ 80417B8
- push {r4,r5,lr}
- ldr r5, _080417D8
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- ldr r4, _080417DC
- adds r0, r4
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- bne _080417E0
- movs r0, 0
- b _080417EC
- .align 2, 0
-_080417D8: .4byte 0x0202e8cc
-_080417DC: .4byte 0x020286d0
-_080417E0:
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80416E8
- lsls r0, 24
- lsrs r0, 24
-_080417EC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80417B8
-
- thumb_func_start sub_80417F4
-sub_80417F4: @ 80417F4
- push {lr}
- movs r3, 0
- movs r2, 0x7
- adds r1, r0, 0
- adds r1, 0x2B
-_080417FE:
- strb r3, [r1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080417FE
- adds r2, r0, 0
- adds r2, 0x2C
- movs r3, 0
- adds r1, r0, 0
- adds r1, 0x36
-_08041812:
- strb r3, [r1]
- subs r1, 0x1
- cmp r1, r2
- bge _08041812
- bl sub_80A2B40
- pop {r0}
- bx r0
- thumb_func_end sub_80417F4
-
- thumb_func_start unref_sub_8041824
-unref_sub_8041824: @ 8041824
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
-_0804182A:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- bl zero_pokemon_boxed_data
- movs r1, 0x88
- lsls r1, 1
- adds r0, r6, r1
- adds r0, r4
- movs r4, 0
- str r4, [r0]
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 3
- adds r0, 0xA0
- adds r0, r6, r0
- bl sub_80417F4
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804182A
- movs r2, 0x8C
- lsls r2, 1
- adds r0, r6, r2
- movs r1, 0
- strh r4, [r0]
- adds r2, 0x2
- adds r0, r6, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8041824
-
- thumb_func_start sub_8041870
-sub_8041870: @ 8041870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804189C
- mov r12, r0
-_08041882:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08041890:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- b _080418CC
- .align 2, 0
-_0804189C: .4byte gEvolutionTable
-_080418A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080418B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080418B6:
- cmp r7, 0
- bne _080418CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080418EC
- cmp r6, r0
- ble _08041890
-_080418CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080418DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08041882
-_080418DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080418EC: .4byte 0x0000019b
- thumb_func_end sub_8041870
-
- thumb_func_start sub_80418F0
-sub_80418F0: @ 80418F0
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041918
- bl __umodsi3
- adds r0, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08041918: .4byte 0x0000fffe
- thumb_func_end sub_80418F0
-
- thumb_func_start sub_804191C
-sub_804191C: @ 804191C
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- orrs r1, r0
- strh r1, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804191C
-
- thumb_func_start sub_8041940
-sub_8041940: @ 8041940
- push {lr}
- ldr r0, _0804194C
- bl sub_80418F0
- pop {r0}
- bx r0
- .align 2, 0
-_0804194C: .4byte 0x020286d0
- thumb_func_end sub_8041940
-
- thumb_func_start sub_8041950
-sub_8041950: @ 8041950
- push {lr}
- ldr r0, _0804195C
- bl sub_804191C
- pop {r0}
- bx r0
- .align 2, 0
-_0804195C: .4byte 0x020286d0
- thumb_func_end sub_8041950
-
- thumb_func_start sub_8041960
-sub_8041960: @ 8041960
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
-_08041972:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041972
- movs r3, 0
- movs r2, 0
-_08041986:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08041998
- adds r0, r4, r3
- strb r1, [r0]
- adds r3, 0x1
-_08041998:
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041986
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8041960
-
- thumb_func_start sub_80419A8
-sub_80419A8: @ 80419A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- mov r8, r1
- movs r5, 0
- add r1, sp, 0x4
- add r7, sp, 0xC
- adds r2, r1, 0
-_080419BE:
- adds r0, r2, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080419BE
- movs r5, 0
- adds r6, r1, 0
-_080419D0:
- bl Random
- mov r1, sp
- adds r4, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- subs r1, r5
- bl __modsi3
- adds r0, r6, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl sub_8041960
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080419D0
- movs r5, 0
- movs r4, 0x1
-_08041A00:
- bl Random
- adds r1, r7, r5
- lsls r0, 16
- lsrs r0, 16
- ands r0, r4
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A00
- movs r5, 0
-_08041A1A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08041B02
- lsls r0, 2
- ldr r1, _08041A30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041A30: .4byte _08041A34
- .align 2, 0
-_08041A34:
- .4byte _08041A4C
- .4byte _08041A6C
- .4byte _08041A88
- .4byte _08041AA4
- .4byte _08041AC0
- .4byte _08041AE2
-_08041A4C:
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x27
- bl PokemonGetEncryptedField
- add r2, sp, 0x10
- strb r0, [r2]
- mov r0, r9
- movs r1, 0x27
- bl pokemon_setattr
- b _08041B02
-_08041A6C:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x28
- bl PokemonGetEncryptedField
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x28
- b _08041ADA
-_08041A88:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x29
- bl PokemonGetEncryptedField
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x29
- b _08041ADA
-_08041AA4:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2A
- bl PokemonGetEncryptedField
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2A
- b _08041ADA
-_08041AC0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2B
- bl PokemonGetEncryptedField
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2B
-_08041ADA:
- adds r2, r4, 0
- bl pokemon_setattr
- b _08041B02
-_08041AE2:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2C
- bl PokemonGetEncryptedField
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2C
- adds r2, r4, 0
- bl pokemon_setattr
-_08041B02:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A1A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80419A8
-
- thumb_func_start pokemon_get_eggmoves
-pokemon_get_eggmoves: @ 8041B1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r6, 0
- movs r4, 0
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _08041B44
- ldrh r1, [r5]
- ldr r7, _08041B48
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- movs r4, 0x1
- b _08041B6E
- .align 2, 0
-_08041B44: .4byte gEggMoves
-_08041B48: .4byte 0x00004e20
-_08041B4C:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08041BB8
- ldr r5, _08041BBC
- cmp r2, r0
- bhi _08041B6E
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r7, _08041BC0
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08041B6E:
- movs r2, 0
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, _08041BC0
- cmp r0, r1
- bhi _08041BAA
- adds r7, r5, 0
- adds r3, r1, 0
-_08041B80:
- lsls r1, r2, 1
- add r1, r8
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bhi _08041BAA
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r3
- bls _08041B80
-_08041BAA:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041BB8: .4byte 0x00000471
-_08041BBC: .4byte gEggMoves
-_08041BC0: .4byte 0x00004e20
- thumb_func_end pokemon_get_eggmoves
-
- thumb_func_start daycare_build_child_moveset
-daycare_build_child_moveset: @ 8041BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- mov r10, r1
- mov r9, r2
- movs r0, 0
- str r0, [sp]
- movs r6, 0
- ldr r5, _08041CC8
- movs r2, 0
- ldr r4, _08041CCC
- ldr r3, _08041CD0
-_08041BE4:
- lsls r1, r6, 1
- adds r0, r1, r5
- strh r2, [r0]
- adds r0, r1, r4
- strh r2, [r0]
- adds r1, r3
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041BE4
- movs r6, 0
- ldr r2, _08041CD4
- movs r1, 0
-_08041C02:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08041C02
- movs r6, 0
- ldr r2, _08041CD8
- movs r1, 0
-_08041C18:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x31
- bls _08041C18
- adds r0, r7, 0
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041CD8
- bl sub_804051C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r6, 0
- ldr r1, _08041CCC
- mov r8, r1
-_08041C46:
- adds r5, r6, 0
- adds r5, 0xD
- mov r0, r10
- adds r1, r5, 0
- bl PokemonGetEncryptedField
- lsls r4, r6, 1
- mov r2, r8
- adds r1, r4, r2
- strh r0, [r1]
- mov r0, r9
- adds r1, r5, 0
- bl PokemonGetEncryptedField
- ldr r1, _08041CC8
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041C46
- ldr r1, _08041CD4
- adds r0, r7, 0
- bl pokemon_get_eggmoves
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
-_08041C82:
- ldr r0, _08041CCC
- lsls r1, r6, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- mov r9, r0
- cmp r1, 0
- beq _08041CF8
- movs r5, 0
- cmp r5, r8
- bcs _08041CEA
- adds r4, r2, 0
- ldr r2, _08041CDC
-_08041C9A:
- ldr r0, _08041CD4
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08041CE0
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl pokemon_moveset_pad_
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041CEA
- ldrh r1, [r4]
- adds r0, r7, 0
- bl sub_803B8D4
- b _08041CEA
- .align 2, 0
-_08041CC8: .4byte 0x03000500
-_08041CCC: .4byte 0x030004d8
-_08041CD0: .4byte 0x030004e0
-_08041CD4: .4byte 0x030004e8
-_08041CD8: .4byte 0x03000470
-_08041CDC: .4byte 0x0000ffff
-_08041CE0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _08041C9A
-_08041CEA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _08041E14
- mov r9, r3
- cmp r6, 0x3
- bls _08041C82
-_08041CF8:
- movs r6, 0
-_08041CFA:
- lsls r0, r6, 1
- mov r2, r9
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- adds r6, 0x1
- mov r8, r6
- cmp r1, 0
- beq _08041D5C
- movs r5, 0
- ldr r0, _08041E14
- adds r4, r2, r0
- ldr r6, _08041E18
- mov r9, r0
-_08041D16:
- ldr r3, _08041E1C
- adds r0, r5, r3
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBattleMoveId
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _08041D52
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl sub_8040374
- cmp r0, 0
- beq _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl pokemon_moveset_pad_
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bne _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl sub_803B8D4
-_08041D52:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x39
- bls _08041D16
-_08041D5C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041CFA
- movs r6, 0
- mov r2, r9
- ldrh r0, [r2]
- ldr r3, _08041E20
- mov r10, r3
- cmp r0, 0
- beq _08041DC6
- mov r4, r9
- ldr r0, _08041E24
- mov r9, r0
- mov r12, r10
-_08041D7C:
- movs r5, 0
- lsls r2, r6, 1
- adds r6, 0x1
- mov r8, r6
- adds r3, r2, r4
-_08041D86:
- lsls r0, r5, 1
- add r0, r9
- ldrh r2, [r3]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bne _08041DA8
- cmp r1, 0
- beq _08041DA8
- ldr r1, [sp]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 1
- add r1, r12
- strh r2, [r1]
-_08041DA8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08041D86
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041DC6
- lsls r0, r6, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _08041D7C
-_08041DC6:
- movs r6, 0
- mov r2, r10
- ldrh r0, [r2]
- cmp r0, 0
- beq _08041E50
-_08041DD0:
- movs r5, 0
- adds r3, r6, 0x1
- mov r8, r3
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcs _08041E38
- ldr r2, _08041E18
-_08041DDE:
- ldr r1, _08041E28
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08041E2C
- lsls r0, r6, 1
- mov r3, r10
- adds r4, r0, r3
- ldrh r0, [r4]
- cmp r0, r1
- bne _08041E2C
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl pokemon_moveset_pad_
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041E38
- ldrh r1, [r4]
- adds r0, r7, 0
- bl sub_803B8D4
- b _08041E38
- .align 2, 0
-_08041E14: .4byte 0x030004d8
-_08041E18: .4byte 0x0000ffff
-_08041E1C: .4byte 0x00000121
-_08041E20: .4byte 0x030004e0
-_08041E24: .4byte 0x03000500
-_08041E28: .4byte 0x03000470
-_08041E2C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcc _08041DDE
-_08041E38:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041E50
- ldr r0, _08041E60
- lsls r1, r6, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r10, r0
- cmp r1, 0
- bne _08041DD0
-_08041E50:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041E60: .4byte 0x030004e0
- thumb_func_end daycare_build_child_moveset
-
- thumb_func_start sub_8041E64
-sub_8041E64: @ 8041E64
- adds r3, r0, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r3, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r3, r1
- strb r2, [r0]
- bx lr
- thumb_func_end sub_8041E64
-
- thumb_func_start sub_8041E7C
-sub_8041E7C: @ 8041E7C
- push {lr}
- ldr r0, _08041E88
- bl sub_8041E64
- pop {r0}
- bx r0
- .align 2, 0
-_08041E88: .4byte 0x020286d0
- thumb_func_end sub_8041E7C
-
- thumb_func_start incense_effects
-incense_effects: @ 8041E8C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrh r1, [r4]
- movs r7, 0xB4
- lsls r7, 1
- cmp r1, r7
- beq _08041EA4
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
-_08041EA4:
- adds r0, r5, 0
- movs r1, 0xC
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0xC
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4]
- cmp r0, r7
- bne _08041ED0
- cmp r6, 0xDD
- beq _08041ED0
- cmp r2, 0xDD
- beq _08041ED0
- movs r0, 0xCA
- strh r0, [r4]
-_08041ED0:
- ldrh r1, [r4]
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
- cmp r6, 0xDC
- beq _08041EE6
- cmp r2, 0xDC
- beq _08041EE6
- movs r0, 0xB7
- strh r0, [r4]
-_08041EE6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end incense_effects
-
- thumb_func_start sub_8041EEC
-sub_8041EEC: @ 8041EEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- movs r4, 0
- movs r7, 0x1
-_08041EFC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bne _08041F26
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6]
- strb r4, [r6, 0x1]
- b _08041F3C
-_08041F26:
- adds r0, r5, 0
- bl pokemon_roll_gender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _08041F3C
- strb r4, [r6]
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6, 0x1]
-_08041F3C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08041EFC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- bl sub_8041870
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bne _08041F6E
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F6E
- movs r4, 0x20
-_08041F6E:
- ldr r0, _08041FC0
- cmp r4, r0
- bne _08041F88
- subs r0, 0x6B
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F88
- movs r4, 0xC1
- lsls r4, 1
-_08041F88:
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, 0x84
- bne _08041FB2
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- bl pokemon_roll_gender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- beq _08041FB2
- ldrb r1, [r6, 0x1]
- ldrb r0, [r6]
- strb r0, [r6, 0x1]
- strb r1, [r6]
-_08041FB2:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041FC0: .4byte 0x00000183
- thumb_func_end sub_8041EEC
-
- thumb_func_start sub_8041FC4
-sub_8041FC4: @ 8041FC4
- push {r4-r6,lr}
- sub sp, 0x6C
- adds r5, r0, 0
- add r6, sp, 0x64
- adds r1, r6, 0
- bl sub_8041EEC
- add r4, sp, 0x68
- strh r0, [r4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl incense_effects
- ldrh r1, [r4]
- mov r0, sp
- adds r2, r5, 0
- bl sub_80420FC
- mov r0, sp
- adds r1, r5, 0
- bl sub_80419A8
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r1, r5, r1
- ldrb r0, [r6]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 4
- adds r2, r5, r2
- mov r0, sp
- bl daycare_build_child_moveset
- mov r2, sp
- adds r2, 0x6A
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl pokemon_setattr
- ldr r0, _08042040
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- bl party_compaction
- bl calc_player_party_count
- adds r0, r5, 0
- bl sub_8041E64
- add sp, 0x6C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042040: .4byte 0x03004360
- thumb_func_end sub_8041FC4
-
- thumb_func_start sub_8042044
-sub_8042044: @ 8042044
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r7, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl create_pokemon_set_level
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- strb r4, [r0]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- movs r0, 0x1
- mov r9, r0
- mov r0, r9
- strb r0, [r4]
- adds r0, r7, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl pokemon_setattr
- ldr r2, _080420F4
- adds r0, r7, 0
- movs r1, 0x2
- bl pokemon_setattr
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _080420F8
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x20
- bl pokemon_setattr
- adds r0, r7, 0
- movs r1, 0x24
- mov r2, r8
- bl pokemon_setattr
- adds r0, r7, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl pokemon_setattr
- cmp r6, 0
- beq _080420D6
- add r2, sp, 0x14
- movs r0, 0xFD
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x23
- bl pokemon_setattr
-_080420D6:
- mov r2, sp
- adds r2, 0x15
- mov r0, r9
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x2D
- bl pokemon_setattr
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080420F4: .4byte gUnknown_08209AD4
-_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_8042044
-
- thumb_func_start sub_80420FC
-sub_80420FC: @ 80420FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- bl Random
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- ldrh r1, [r4]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x1
- mov r8, r0
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl create_pokemon_set_level
- movs r1, 0x12
- add r1, sp
- mov r9, r1
- strb r4, [r1]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- mov r0, r8
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl pokemon_setattr
- ldr r2, _08042198
- adds r0, r6, 0
- movs r1, 0x2
- bl pokemon_setattr
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _0804219C
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x20
- bl pokemon_setattr
- adds r0, r6, 0
- movs r1, 0x24
- mov r2, r9
- bl pokemon_setattr
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl pokemon_setattr
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042198: .4byte gUnknown_08209AD4
-_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_80420FC
-
- thumb_func_start sp0B8_daycare
-sp0B8_daycare: @ 80421A0
- push {lr}
- ldr r0, _080421AC
- bl sub_8041FC4
- pop {r0}
- bx r0
- .align 2, 0
-_080421AC: .4byte 0x020286d0
- thumb_func_end sp0B8_daycare
-
- thumb_func_start sub_80421B0
-sub_80421B0: @ 80421B0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r7, r0, 0
- movs r2, 0
- movs r6, 0
- adds r5, r7, 0
-_080421BC:
- lsls r4, r6, 2
- adds r0, r5, 0
- movs r1, 0x5
- str r2, [sp, 0x4]
- bl PokemonGetEncryptedField
- ldr r2, [sp, 0x4]
- cmp r0, 0
- beq _080421DE
- movs r0, 0x88
- lsls r0, 1
- adds r1, r7, r0
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r2, 0x1
-_080421DE:
- adds r5, 0x50
- adds r6, 0x1
- cmp r6, 0x1
- bls _080421BC
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08042226
- cmp r2, 0x2
- bne _08042226
- subs r1, 0x4
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042226
- adds r0, r7, 0
- bl daycare_relationship_score
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08042240
- bl __udivsi3
- cmp r4, r0
- bls _08042226
- bl sub_8041940
-_08042226:
- movs r0, 0x8D
- lsls r0, 1
- adds r1, r7, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08042290
- movs r6, 0
- b _08042288
- .align 2, 0
-_08042240: .4byte 0x0000ffff
-_08042244:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08042270
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- beq _08042286
- adds r0, r4, 0
- movs r1, 0x20
- bl PokemonGetField
- str r0, [sp]
- cmp r0, 0
- bne _08042278
- ldr r0, _08042274
- strh r6, [r0]
- movs r0, 0x1
- b _08042292
- .align 2, 0
-_08042270: .4byte 0x03004360
-_08042274: .4byte 0x0202e8cc
-_08042278:
- subs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl pokemon_setattr
-_08042286:
- adds r6, 0x1
-_08042288:
- ldr r0, _0804229C
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08042244
-_08042290:
- movs r0, 0
-_08042292:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804229C: .4byte 0x03004350
- thumb_func_end sub_80421B0
-
- thumb_func_start sub_80422A0
-sub_80422A0: @ 80422A0
- push {lr}
- ldr r0, _080422B0
- bl sub_80421B0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080422B0: .4byte 0x020286d0
- thumb_func_end sub_80422A0
-
- thumb_func_start sub_80422B4
-sub_80422B4: @ 80422B4
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_80422B4
-
- thumb_func_start sub_80422C4
-sub_80422C4: @ 80422C4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _080422FC
- ldr r1, _0804231C
- adds r0, r6, 0
- bl pokemon_get_nick_
- adds r0, r6, 0
- movs r1, 0x3
- bl PokemonGetEncryptedField
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08042320
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r5, 0
- bl PokemonGetEncryptedField
- adds r0, r5, 0
- adds r1, r4, 0
- bl ConvertInternationalString
-_080422FC:
- adds r4, r6, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _08042314
- ldr r1, _08042324
- adds r0, r4, 0
- bl pokemon_get_nick_
-_08042314:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804231C: .4byte 0x020231cc
-_08042320: .4byte 0x020233cc
-_08042324: .4byte 0x020232cc
- thumb_func_end sub_80422C4
-
- thumb_func_start sub_8042328
-sub_8042328: @ 8042328
- push {r4-r6,lr}
- ldr r6, _08042354
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08042358
- adds r0, r4
- ldr r1, _0804235C
- bl pokemon_get_nick_
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08042354: .4byte 0x03005ce0
-_08042358: .4byte 0x03004360
-_0804235C: .4byte 0x020231cc
- thumb_func_end sub_8042328
-
- thumb_func_start sp0B5_daycare
-sp0B5_daycare: @ 8042360
- push {lr}
- ldr r0, _0804236C
- bl sub_80422C4
- pop {r0}
- bx r0
- .align 2, 0
-_0804236C: .4byte 0x020286d0
- thumb_func_end sp0B5_daycare
-
- thumb_func_start sp0B6_daycare
-sp0B6_daycare: @ 8042370
- push {r4,lr}
- ldr r4, _08042384
- adds r0, r4, 0
- bl sub_80422B4
- lsls r0, 24
- cmp r0, 0
- beq _08042388
- movs r0, 0x1
- b _080423A0
- .align 2, 0
-_08042384: .4byte 0x020286d0
-_08042388:
- adds r0, r4, 0
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0804239A
- movs r0, 0
- b _080423A0
-_0804239A:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080423A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sp0B6_daycare
-
- thumb_func_start sub_80423A8
-sub_80423A8: @ 80423A8
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- adds r1, r0, 0
-_080423B0:
- movs r3, 0
- ldrh r0, [r1]
- adds r2, r5, 0
-_080423B6:
- ldrh r6, [r2]
- cmp r0, r6
- bne _080423C0
- movs r0, 0x1
- b _080423D2
-_080423C0:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x1
- ble _080423B6
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x1
- ble _080423B0
- movs r0, 0
-_080423D2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A8
-
- thumb_func_start daycare_relationship_score
-daycare_relationship_score: @ 80423D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r1, 0
- mov r8, r1
- mov r2, sp
- adds r2, 0x8
- str r2, [sp, 0x1C]
- add r1, sp, 0xC
- mov r10, r1
- adds r2, 0xC
- str r2, [sp, 0x20]
- mov r1, sp
- adds r1, 0x2
- ldr r2, _08042488
- mov r9, r2
- ldr r5, [sp, 0x1C]
- adds r7, r1, 0
- mov r6, sp
- ldr r1, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r2, r10
- str r2, [sp, 0x28]
- adds r4, r0, 0
-_0804240E:
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetEncryptedField
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl PokemonGetEncryptedField
- ldr r1, [sp, 0x28]
- stm r1!, {r0}
- str r1, [sp, 0x28]
- adds r0, r4, 0
- movs r1, 0
- bl PokemonGetEncryptedField
- adds r1, r0, 0
- ldrh r0, [r5]
- bl pokemon_species_get_gender_info
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x24]
- stm r2!, {r0}
- str r2, [sp, 0x24]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x14]
- strh r0, [r6]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x15]
- strh r0, [r7]
- adds r5, 0x2
- adds r7, 0x4
- adds r6, 0x4
- adds r4, 0x50
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x1
- bls _0804240E
- mov r0, sp
- ldrh r1, [r0]
- cmp r1, 0xF
- beq _08042484
- ldrh r0, [r0, 0x4]
- cmp r0, 0xF
- beq _08042484
- cmp r1, 0xD
- bne _0804248C
- cmp r0, 0xD
- bne _08042490
-_08042484:
- movs r0, 0
- b _080424E4
- .align 2, 0
-_08042488: .4byte gBaseStats
-_0804248C:
- cmp r0, 0xD
- bne _0804249C
-_08042490:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424DE
- b _080424E2
-_0804249C:
- ldr r0, [sp, 0x14]
- ldr r2, [sp, 0x20]
- ldr r1, [r2, 0x4]
- cmp r0, r1
- beq _08042484
- cmp r0, 0xFF
- beq _08042484
- cmp r1, 0xFF
- beq _08042484
- add r1, sp, 0x4
- mov r0, sp
- bl sub_80423A8
- lsls r0, 24
- cmp r0, 0
- beq _08042484
- ldr r0, [sp, 0x1C]
- ldrh r1, [r0, 0x2]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080424D4
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424E2
- movs r0, 0x46
- b _080424E4
-_080424D4:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bne _080424E2
-_080424DE:
- movs r0, 0x14
- b _080424E4
-_080424E2:
- movs r0, 0x32
-_080424E4:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end daycare_relationship_score
-
- thumb_func_start daycare_relationship_score_from_savegame
-daycare_relationship_score_from_savegame: @ 80424F4
- push {lr}
- ldr r0, _08042504
- bl daycare_relationship_score
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042504: .4byte 0x020286d0
- thumb_func_end daycare_relationship_score_from_savegame
-
- thumb_func_start sp0B9_daycare_relationship_comment
-sp0B9_daycare_relationship_comment: @ 8042508
- push {lr}
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- movs r1, 0
- cmp r0, 0
- bne _0804251C
- movs r1, 0x3
-_0804251C:
- cmp r0, 0x14
- bne _08042522
- movs r1, 0x2
-_08042522:
- cmp r0, 0x32
- bne _08042528
- movs r1, 0x1
-_08042528:
- cmp r2, 0x46
- bne _0804252E
- movs r1, 0
-_0804252E:
- ldr r0, _08042540
- ldr r2, _08042544
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_08042540: .4byte 0x020234cc
-_08042544: .4byte gUnknown_08209AC4
- thumb_func_end sp0B9_daycare_relationship_comment
-
- thumb_func_start sub_8042548
-sub_8042548: @ 8042548
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r2, sp
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x1]
- strb r0, [r2]
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0804258C
-_08042564:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0xB5
- bne _08042572
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08042572:
- ldrb r0, [r1]
- cmp r0, 0xB6
- bne _0804257E
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- strb r0, [r2, 0x1]
-_0804257E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042564
-_0804258C:
- cmp r5, 0
- bne _080425A0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _080425A0
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B4
-_080425A0:
- cmp r5, 0xFE
- bne _080425B8
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B8
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _080425B8
-_080425B4:
- movs r0, 0x1
- b _080425BA
-_080425B8:
- movs r0, 0
-_080425BA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8042548
-
- thumb_func_start sub_80425C4
-sub_80425C4: @ 80425C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080425E4
- movs r1, 0
- bl sub_8042548
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425E0
- b _08042602
- .align 2, 0
-_080425E0: .4byte gUnknown_0820C33D
-_080425E4:
- cmp r1, 0xFE
- bne _08042600
- adds r0, r4, 0
- movs r1, 0xFE
- bl sub_8042548
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425FC
- b _08042602
- .align 2, 0
-_080425FC: .4byte gUnknown_0820C33F
-_08042600:
- ldr r1, _08042610
-_08042602:
- adds r0, r4, 0
- bl StringAppend
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08042610: .4byte gUnknown_0820C341
- thumb_func_end sub_80425C4
-
- thumb_func_start sub_8042614
-sub_8042614: @ 8042614
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl pokemon_roll_gender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80425C4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8042614
-
- thumb_func_start sub_8042630
-sub_8042630: @ 8042630
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0xFF
- strb r0, [r7]
- movs r6, 0
- add r0, sp, 0x14
- mov r9, r0
-_08042648:
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 4
- add r4, r8
- lsls r0, 2
- mov r1, sp
- adds r5, r1, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl pokemon_get_nick_
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8042614
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _08042648
- adds r0, r7, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _080426A8
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- adds r0, r7, 0
- mov r1, r9
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r1, _080426AC
- adds r0, r7, 0
- bl StringAppend
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080426A8: .4byte gUnknown_0842CC28
-_080426AC: .4byte gUnknown_0842CC2A
- thumb_func_end sub_8042630
-
- thumb_func_start sub_80426B0
-sub_80426B0: @ 80426B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r5, 0
- movs r0, 0xFC
- mov r8, r0
- movs r7, 0x14
-_080426C6:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 4
- adds r0, r6, r0
- movs r3, 0x88
- lsls r3, 1
- adds r1, r6, r3
- adds r1, r2
- ldr r1, [r1]
- bl sub_8041664
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- mov r0, r8
- strb r0, [r4, 0x1]
- strb r7, [r4, 0x2]
- movs r0, 0x6
- strb r0, [r4, 0x3]
- adds r0, r4, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, r0, 0
- mov r3, r8
- strb r3, [r4]
- strb r7, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x2]
- adds r0, r4, 0x3
- ldr r1, _08042728
- bl StringCopy
- adds r4, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _080426C6
- movs r0, 0xFF
- strb r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042728: .4byte gUnknown_0842CC28
- thumb_func_end sub_80426B0
-
- thumb_func_start sub_804272C
-sub_804272C: @ 804272C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08042760
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042768
- ldr r0, _08042764
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08042816
- subs r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- negs r0, r0
- b _0804278A
- .align 2, 0
-_08042760: .4byte 0x03001770
-_08042764: .4byte 0x03004b20
-_08042768:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804279C
- ldr r0, _08042798
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- beq _08042816
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
-_0804278A:
- bl MoveMenuCursor
- movs r0, 0x5
- bl audio_play
- b _08042816
- .align 2, 0
-_08042798: .4byte 0x03004b20
-_0804279C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080427E8
- bl sub_8072DEC
- movs r0, 0x5
- bl audio_play
- ldr r3, _080427DC
- ldr r2, _080427E0
- ldr r1, _080427E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strh r0, [r2]
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- bl script_env_2_enable_and_set_ctx_running
- b _08042816
- .align 2, 0
-_080427DC: .4byte 0x03005ce0
-_080427E0: .4byte 0x0202e8dc
-_080427E4: .4byte 0x03004b20
-_080427E8:
- movs r4, 0x2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08042816
- bl sub_8072DEC
- ldr r0, _0804281C
- ldr r1, _08042820
- strh r4, [r1]
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- bl script_env_2_enable_and_set_ctx_running
-_08042816:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804281C: .4byte 0x03005ce0
-_08042820: .4byte 0x0202e8dc
- thumb_func_end sub_804272C
-
- thumb_func_start sub_8042824
-sub_8042824: @ 8042824
- push {r4,lr}
- sub sp, 0x6C
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl DrawDefaultWindow
- ldr r4, _08042880
- adds r0, r4, 0
- add r1, sp, 0x8
- bl sub_8042630
- add r0, sp, 0x8
- movs r1, 0x10
- movs r2, 0x7
- bl Print
- adds r0, r4, 0
- add r1, sp, 0x8
- bl sub_80426B0
- add r0, sp, 0x8
- movs r1, 0xCE
- movs r2, 0x38
- movs r3, 0x1
- bl sub_80729D8
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x7
- movs r3, 0x3
- bl InitMenu
- ldr r0, _08042884
- movs r1, 0x3
- bl CreateTask
- add sp, 0x6C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042880: .4byte 0x020286d0
-_08042884: .4byte sub_804272C
- thumb_func_end sub_8042824
-
- thumb_func_start sub_8042888
-sub_8042888: @ 8042888
- push {lr}
- movs r0, 0x6
- movs r1, 0
- bl sub_806AFAC
- ldr r1, _0804289C
- ldr r0, _080428A0
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0804289C: .4byte 0x03001770
-_080428A0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8042888
-
- thumb_func_start sub_80428A4
-sub_80428A4: @ 80428A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x48
- adds r6, r0, 0
- adds r5, r1, 0
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0
- add r7, sp, 0x18
- mov r0, sp
- adds r0, 0x31
- str r0, [sp, 0x38]
- mov r1, sp
- adds r1, 0x32
- str r1, [sp, 0x3C]
- add r0, sp, 0x30
- mov r9, r0
- adds r1, 0x1
- str r1, [sp, 0x40]
- mov r0, sp
- adds r0, 0x34
- str r0, [sp, 0x44]
-_080428DE:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl PokemonGetField
- lsls r1, r4, 1
- add r1, sp
- adds r1, 0x10
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080428DE
- adds r0, r6, 0
- movs r1, 0
- bl PokemonGetField
- mov r8, r0
- movs r4, 0
-_08042906:
- adds r1, r4, 0
- adds r1, 0x27
- adds r0, r6, 0
- bl PokemonGetField
- lsls r1, r4, 2
- adds r1, r7, r1
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08042906
- adds r0, r6, 0
- movs r1, 0x25
- bl PokemonGetField
- ldr r1, [sp, 0x38]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x8
- bl PokemonGetField
- ldr r1, [sp, 0x3C]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x22
- bl PokemonGetField
- str r0, [sp, 0x34]
- movs r0, 0x1
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x5
- movs r3, 0x20
- bl create_pokemon_set_level
- movs r4, 0
-_0804295E:
- adds r1, r4, 0
- adds r1, 0xD
- lsls r0, r4, 1
- mov r2, sp
- adds r2, r0
- adds r2, 0x10
- adds r0, r5, 0
- bl pokemon_setattr
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0804295E
- movs r4, 0
-_0804297C:
- adds r1, r4, 0
- adds r1, 0x27
- lsls r2, r4, 2
- adds r2, r7, r2
- adds r0, r5, 0
- bl pokemon_setattr
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0804297C
- movs r0, 0x2
- mov r1, r9
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, r9
- bl pokemon_setattr
- adds r0, r5, 0
- movs r1, 0x25
- ldr r2, [sp, 0x38]
- bl pokemon_setattr
- adds r0, r5, 0
- movs r1, 0x8
- ldr r2, [sp, 0x3C]
- bl pokemon_setattr
- movs r0, 0x78
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x20
- ldr r2, [sp, 0x40]
- bl pokemon_setattr
- adds r0, r5, 0
- movs r1, 0x22
- ldr r2, [sp, 0x44]
- bl pokemon_setattr
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- add sp, 0x48
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80428A4
-
- thumb_func_start sub_80429EC
-sub_80429EC: @ 80429EC
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r0, _08042A9C
- adds r5, r0
- ldr r1, _08042AA0
- adds r0, r5, 0
- bl sub_80428A4
- add r2, sp, 0xC
- movs r6, 0
- strb r6, [r2]
- adds r0, r5, 0
- movs r1, 0x2D
- bl pokemon_setattr
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- adds r1, r4, 0
- bl GetSpeciesName
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8090D90
- ldr r1, _08042AA4
- adds r0, r5, 0
- bl pokemon_get_nick
- mov r2, sp
- adds r2, 0xE
- movs r0, 0x4
- strh r0, [r2]
- adds r0, r5, 0
- movs r1, 0x26
- bl pokemon_setattr
- add r2, sp, 0x10
- strh r6, [r2]
- adds r0, r5, 0
- movs r1, 0x24
- bl pokemon_setattr
- bl sav1_map_get_name
- mov r2, sp
- adds r2, 0x12
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x23
- bl pokemon_setattr
- adds r0, r5, 0
- bl sub_8040B1C
- adds r0, r5, 0
- bl pokemon_calc_effective_stats
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042A9C: .4byte 0x03004360
-_08042AA0: .4byte 0x030045c0
-_08042AA4: .4byte 0x020231cc
- thumb_func_end sub_80429EC
-
- thumb_func_start sub_8042AA8
-sub_8042AA8: @ 8042AA8
- push {lr}
- ldr r0, _08042AB8
- ldrb r0, [r0]
- bl sub_80429EC
- pop {r0}
- bx r0
- .align 2, 0
-_08042AB8: .4byte 0x0202e8cc
- thumb_func_end sub_8042AA8
-
- thumb_func_start sub_8042ABC
-sub_8042ABC: @ 8042ABC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- mov r1, sp
- bl pokemon_get_nick_
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08042B40
- adds r0, r1, 0
- adds r0, 0xA0
- adds r5, r0
- adds r6, r5, 0
- adds r6, 0x2C
- mov r0, sp
- adds r1, r6, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08042B08
- ldr r0, _08042B30
- adds r1, r5, 0
- adds r1, 0x24
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _08042B40
-_08042B08:
- ldr r0, _08042B34
- mov r1, sp
- bl StringCopy
- ldr r4, _08042B38
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _08042B3C
- adds r1, r6, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- movs r0, 0x1
- b _08042B42
- .align 2, 0
-_08042B30: .4byte 0x02024ea4
-_08042B34: .4byte 0x020231cc
-_08042B38: .4byte 0x020232cc
-_08042B3C: .4byte 0x020233cc
-_08042B40:
- movs r0, 0
-_08042B42:
- add sp, 0x20
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8042ABC
-
- thumb_func_start sub_8042B4C
-sub_8042B4C: @ 8042B4C
- push {lr}
- ldr r0, _08042B60
- ldr r1, _08042B64
- ldrb r1, [r1]
- bl sub_8042ABC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042B60: .4byte 0x020286d0
-_08042B64: .4byte 0x0202e8cc
- thumb_func_end sub_8042B4C
-
- thumb_func_start sub_8042B68
-sub_8042B68: @ 8042B68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r1, r2, 24
- adds r2, r1, 0
- movs r5, 0
- mov r9, r5
- movs r7, 0
- cmp r3, 0
- bne _08042B96
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08042BB0
- adds r7, r1, r0
- movs r5, 0x1
-_08042B96:
- cmp r3, 0x1
- bne _08042BA6
- movs r0, 0x64
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _08042BB0
- adds r7, r1, r0
- movs r5, 0x3
-_08042BA6:
- cmp r6, 0
- beq _08042BB4
- cmp r6, 0x1
- beq _08042C14
- b _08042C50
- .align 2, 0
-_08042BB0: .4byte 0x03004360
-_08042BB4:
- adds r0, r7, 0
- movs r1, 0xB
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- movs r1, 0
- bl PokemonGetField
- mov r8, r0
- lsls r0, r5, 3
- ldr r1, _08042C04
- adds r0, r1
- ldr r1, _08042C08
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08042C0C
- ldr r6, _08042C10
- lsls r4, 1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r6
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r7, 0
- bl sub_8040990
- bl LoadCompressedObjectPalette
- b _08042C50
- .align 2, 0
-_08042C04: .4byte gMonFrontPicTable
-_08042C08: .4byte gMonFrontPicCoords
-_08042C0C: .4byte 0x02000000
-_08042C10: .4byte gUnknown_081FAF4C
-_08042C14:
- adds r0, r7, 0
- bl sub_8040990
- ldrh r0, [r0, 0x4]
- adds r1, r5, 0
- bl gpu_pal_obj_decompress_and_apply
- ldr r0, _08042C60
- movs r1, 0x78
- movs r2, 0x46
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _08042C64
- lsls r1, r0, 4
- add r1, r9
- lsls r1, 2
- adds r2, r1, r4
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r2]
- adds r4, 0x1C
- adds r1, r4
- ldr r0, _08042C68
- str r0, [r1]
-_08042C50:
- mov r0, r9
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08042C60: .4byte 0x02024e8c
-_08042C64: .4byte 0x02020004
-_08042C68: .4byte SpriteCallbackDummy
- thumb_func_end sub_8042B68
-
- thumb_func_start sub_8042C6C
-sub_8042C6C: @ 8042C6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8042C6C
-
- thumb_func_start sub_8042C80
-sub_8042C80: @ 8042C80
- push {lr}
- sub sp, 0x4
- bl script_env_2_enable
- ldr r0, _08042CA8
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08042CA8: .4byte sub_8042CAC
- thumb_func_end sub_8042C80
-
- thumb_func_start sub_8042CAC
-sub_8042CAC: @ 8042CAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08042CD8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08042CD0
- ldr r0, _08042CDC
- bl SetMainCallback2
- ldr r1, _08042CE0
- ldr r0, _08042CE4
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08042CD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042CD8: .4byte 0x0202f388
-_08042CDC: .4byte sub_8042CE8
-_08042CE0: .4byte 0x0300485c
-_08042CE4: .4byte sub_8080990
- thumb_func_end sub_8042CAC
-
- thumb_func_start sub_8042CE8
-sub_8042CE8: @ 8042CE8
- push {r4-r7,lr}
- ldr r0, _08042D04
- ldr r1, _08042D08
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08042CF8
- b _08042F6E
-_08042CF8:
- lsls r0, 2
- ldr r1, _08042D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042D04: .4byte 0x03001770
-_08042D08: .4byte 0x0000043c
-_08042D0C: .4byte _08042D10
- .align 2, 0
-_08042D10:
- .4byte _08042D34
- .4byte _08042D90
- .4byte _08042DC4
- .4byte _08042E20
- .4byte _08042E40
- .4byte _08042E74
- .4byte _08042E88
- .4byte _08042EB0
- .4byte _08042F40
-_08042D34:
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08042D74
- ldr r0, _08042D78
- str r0, [r1]
- ldr r1, _08042D7C
- ldrh r1, [r1]
- strb r1, [r0, 0x4]
- adds r0, 0x3A
- strb r2, [r0]
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _08042D80
- bl SetVBlankCallback
- ldr r1, _08042D84
- ldr r2, _08042D88
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl current_map_music_get
- ldr r1, _08042D8C
- strh r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042D74: .4byte 0x0300481c
-_08042D78: .4byte 0x02018000
-_08042D7C: .4byte 0x0202e8cc
-_08042D80: .4byte sub_8042C6C
-_08042D84: .4byte 0x03001770
-_08042D88: .4byte 0x0000043c
-_08042D8C: .4byte 0x0202e8ce
-_08042D90:
- ldr r5, _08042DBC
- adds r0, r5, 0
- bl SetUpWindowConfig
- ldr r4, _08042DC0
- ldr r0, [r4]
- adds r0, 0x8
- adds r1, r5, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl sub_8064EF4
- ldr r1, [r4]
- adds r1, 0x38
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_8064F08
- b _08042F04
- .align 2, 0
-_08042DBC: .4byte gWindowConfig_81E6F84
-_08042DC0: .4byte 0x0300481c
-_08042DC4:
- ldr r0, _08042DFC
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _08042E00
- ldr r4, _08042E04
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r1, _08042E08
- str r4, [r1]
- ldr r0, _08042E0C
- str r0, [r1, 0x4]
- ldr r0, _08042E10
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _08042E14
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08042E18
- ldr r2, _08042E1C
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042DFC: .4byte gUnknown_08D00000
-_08042E00: .4byte gUnknown_08D00524
-_08042E04: .4byte 0x02000000
-_08042E08: .4byte 0x040000d4
-_08042E0C: .4byte 0x06002800
-_08042E10: .4byte 0x80000280
-_08042E14: .4byte gUnknown_08D004E0
-_08042E18: .4byte 0x03001770
-_08042E1C: .4byte 0x0000043c
-_08042E20:
- ldr r0, _08042E34
- bl LoadSpriteSheet
- ldr r0, _08042E38
- bl LoadSpriteSheet
- ldr r0, _08042E3C
- bl LoadSpritePalette
- b _08042F04
- .align 2, 0
-_08042E34: .4byte gUnknown_0820A3B0
-_08042E38: .4byte gUnknown_0820A3B8
-_08042E3C: .4byte gUnknown_0820A3C0
-_08042E40:
- ldr r0, _08042E64
- movs r1, 0x78
- movs r2, 0x4B
- movs r3, 0x5
- bl CreateSprite
- ldr r2, _08042E68
- ldr r1, [r2]
- strb r0, [r1]
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- bl sub_80429EC
- ldr r1, _08042E6C
- ldr r2, _08042E70
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042E64: .4byte gSpriteTemplate_820A3C8
-_08042E68: .4byte 0x0300481c
-_08042E6C: .4byte 0x03001770
-_08042E70: .4byte 0x0000043c
-_08042E74:
- ldr r0, _08042E84
- ldr r0, [r0]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_8042B68
- b _08042F04
- .align 2, 0
-_08042E84: .4byte 0x0300481c
-_08042E88:
- ldr r4, _08042EA4
- ldr r0, [r4]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0x1
- bl sub_8042B68
- ldr r1, [r4]
- strb r0, [r1, 0x1]
- ldr r1, _08042EA8
- ldr r2, _08042EAC
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042EA4: .4byte 0x0300481c
-_08042EA8: .4byte 0x03001770
-_08042EAC: .4byte 0x0000043c
-_08042EB0:
- ldr r0, _08042F14
- ldr r2, _08042F18
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08042F1C
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _08042F20
- ldr r4, _08042F24
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _08042F28
- ldr r6, _08042F2C
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08042ED6:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08042ED6
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08042F30
- ldr r2, _08042F34
- ldr r0, _08042F28
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08042F2C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
-_08042F04:
- ldr r1, _08042F38
- ldr r0, _08042F3C
- adds r1, r0
-_08042F0A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042F14: .4byte 0x0400000c
-_08042F18: .4byte 0x00004c06
-_08042F1C: .4byte gUnknown_0820C9F8
-_08042F20: .4byte gUnknown_0820CA98
-_08042F24: .4byte 0x06004000
-_08042F28: .4byte 0x040000d4
-_08042F2C: .4byte 0x80000800
-_08042F30: .4byte gUnknown_0820F798
-_08042F34: .4byte 0x06006000
-_08042F38: .4byte 0x03001770
-_08042F3C: .4byte 0x0000043c
-_08042F40:
- ldr r1, _08042F74
- ldr r2, _08042F78
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08042F7C
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08042F80
- bl SetMainCallback2
- ldr r0, _08042F84
- ldr r0, [r0]
- strb r4, [r0, 0x2]
-_08042F6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042F74: .4byte 0x0400000a
-_08042F78: .4byte 0x00000501
-_08042F7C: .4byte 0x04000010
-_08042F80: .4byte sub_804300C
-_08042F84: .4byte 0x0300481c
- thumb_func_end sub_8042CE8
-
- thumb_func_start sub_8042F88
-sub_8042F88: @ 8042F88
- push {lr}
- ldr r0, _08042FA8
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08042FAC
- adds r0, r1
- ldr r2, _08042FB0
- movs r1, 0x2
- bl pokemon_setattr
- ldr r0, _08042FB4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08042FA8: .4byte 0x0202e8cc
-_08042FAC: .4byte 0x03004360
-_08042FB0: .4byte 0x020233cc
-_08042FB4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8042F88
-
- thumb_func_start c3_080472E4
-c3_080472E4: @ 8042FB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08043004
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08042FD4
- bl sub_8074D08
-_08042FD4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08042FE4
- movs r0, 0xBC
- lsls r0, 1
- bl sub_8075474
-_08042FE4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- ble _08042FF8
- ldr r0, _08043008
- bl sub_8075474
- adds r0, r5, 0
- bl DestroyTask
-_08042FF8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043004: .4byte 0x03004b20
-_08043008: .4byte 0x00000179
- thumb_func_end c3_080472E4
-
- thumb_func_start sub_804300C
-sub_804300C: @ 804300C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r1, _08043030
- ldr r0, [r1]
- ldrb r0, [r0, 0x2]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _08043026
- b _080432BA
-_08043026:
- lsls r0, 2
- ldr r1, _08043034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08043030: .4byte 0x0300481c
-_08043034: .4byte _08043038
- .align 2, 0
-_08043038:
- .4byte _08043068
- .4byte _080430A0
- .4byte _080430C0
- .4byte _080430F8
- .4byte _08043124
- .4byte _08043164
- .4byte _08043172
- .4byte _08043180
- .4byte _080431B8
- .4byte _080431DA
- .4byte _08043288
- .4byte _080432A8
-_08043068:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08043098
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r0, _0804309C
- movs r1, 0x5
- bl CreateTask
- b _080432BA
- .align 2, 0
-_08043098: .4byte 0x0300481c
-_0804309C: .4byte c3_080472E4
-_080430A0:
- ldr r0, _080430BC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080430B2
- b _080432BA
-_080430B2:
- ldr r0, [r5]
- strb r1, [r0, 0x3]
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080430BC: .4byte 0x0202f388
-_080430C0:
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _080430D2
- b _080432BA
-_080430D2:
- ldr r1, [r5]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r2, _080430F0
- ldr r0, [r5]
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080430F4
- str r1, [r0]
- b _080432BA
- .align 2, 0
-_080430F0: .4byte 0x02020004
-_080430F4: .4byte sub_80432E4
-_080430F8:
- ldr r2, _0804311C
- ldr r3, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08043120
- cmp r1, r0
- beq _08043112
- b _080432BA
-_08043112:
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
- b _080432BA
- .align 2, 0
-_0804311C: .4byte 0x02020004
-_08043120: .4byte SpriteCallbackDummy
-_08043124:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08043150
- adds r0, r1
- ldr r1, _08043154
- bl pokemon_get_nick
- ldr r4, _08043158
- ldr r1, _0804315C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl sub_80436FC
- ldr r0, _08043160
- bl fanfare_play
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_08043150: .4byte 0x03004360
-_08043154: .4byte 0x020231cc
-_08043158: .4byte 0x020234cc
-_0804315C: .4byte gUnknown_0842CC38
-_08043160: .4byte 0x00000173
-_08043164:
- bl task_is_not_running_overworld_fanfare
- lsls r0, 24
- cmp r0, 0
- bne _08043170
- b _080432BA
-_08043170:
- b _08043298
-_08043172:
- bl task_is_not_running_overworld_fanfare
- lsls r0, 24
- cmp r0, 0
- bne _0804317E
- b _080432BA
-_0804317E:
- b _08043298
-_08043180:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080431A8
- adds r0, r1
- ldr r1, _080431AC
- bl pokemon_get_nick
- ldr r4, _080431B0
- ldr r1, _080431B4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl sub_80436D4
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080431A8: .4byte 0x03004360
-_080431AC: .4byte 0x020231cc
-_080431B0: .4byte 0x020234cc
-_080431B4: .4byte gUnknown_0842CC5A
-_080431B8:
- bl sub_8043724
- lsls r0, 24
- cmp r0, 0
- beq _080432BA
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x1B
- movs r3, 0xD
- bl DrawDefaultWindow
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x4
- bl sub_807292C
- b _08043298
-_080431DA:
- bl FillWindowPixelBuffer
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- movs r1, 0x2
- negs r1, r1
- cmp r0, r1
- beq _080432BA
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08043298
- cmp r1, 0x1
- beq _08043298
- ldr r0, _08043278
- mov r9, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r6, _0804327C
- adds r0, r6
- ldr r1, _08043280
- mov r10, r1
- bl pokemon_get_nick
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl pokemon_get_gender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- ldr r0, _08043284
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- b _080432BA
- .align 2, 0
-_08043278: .4byte 0x0300481c
-_0804327C: .4byte 0x03004360
-_08043280: .4byte 0x020233cc
-_08043284: .4byte sub_8042F88
-_08043288:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08043298:
- ldr r0, _080432A4
- ldr r1, [r0]
-_0804329C:
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- b _080432BA
- .align 2, 0
-_080432A4: .4byte 0x0300481c
-_080432A8:
- ldr r0, _080432DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080432BA
- ldr r0, _080432E0
- bl SetMainCallback2
-_080432BA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080432DC: .4byte 0x0202f388
-_080432E0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_804300C
-
- thumb_func_start sub_80432E4
-sub_80432E4: @ 80432E4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08043304
- ldr r0, _08043300
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- b _08043334
- .align 2, 0
-_08043300: .4byte sub_804333C
-_08043304:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl sine
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043334
- movs r0, 0x17
- bl audio_play
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- bl sub_80435FC
-_08043334:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80432E4
-
- thumb_func_start sub_804333C
-sub_804333C: @ 804333C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08043398
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0804336C
- ldr r0, _08043368
- str r0, [r4, 0x1C]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x32]
- b _08043398
- .align 2, 0
-_08043368: .4byte sub_80433A0
-_0804336C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl sine
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043398
- movs r0, 0x17
- bl audio_play
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_08043398:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804333C
-
- thumb_func_start sub_80433A0
-sub_80433A0: @ 80433A0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _0804345A
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x26
- ble _08043418
- ldr r0, _08043404
- str r0, [r4, 0x1C]
- strh r6, [r4, 0x2E]
- ldr r5, _08043408
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804340C
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- ldr r4, _08043410
- ldr r3, [r5]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r6, [r1, 0x24]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08043414
- lsrs r0, 14
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- b _0804345A
- .align 2, 0
-_08043404: .4byte sub_8043460
-_08043408: .4byte 0x0300481c
-_0804340C: .4byte 0x03004360
-_08043410: .4byte 0x02020004
-_08043414: .4byte gMonFrontPicCoords
-_08043418:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl sine
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _0804344C
- movs r0, 0x17
- bl audio_play
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- bl sub_80435FC
- bl sub_80435FC
-_0804344C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- bne _0804345A
- movs r0, 0x17
- bl audio_play
-_0804345A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80433A0
-
- thumb_func_start sub_8043460
-sub_8043460: @ 8043460
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _0804347A
- ldr r0, _08043480
- str r0, [r1, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x2E]
-_0804347A:
- pop {r0}
- bx r0
- .align 2, 0
-_08043480: .4byte sub_8043484
- thumb_func_end sub_8043460
-
- thumb_func_start sub_8043484
-sub_8043484: @ 8043484
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080434A4
- movs r1, 0x1
- negs r1, r1
- ldr r0, _080434F8
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080434A4:
- ldrh r0, [r5, 0x2E]
- cmp r0, 0x3
- bhi _080434C0
- movs r4, 0
-_080434AC:
- bl sub_80435FC
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080434AC
-_080434C0:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- ldr r0, _080434FC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080434EE
- movs r0, 0x71
- bl audio_play
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08043500
- str r0, [r5, 0x1C]
- strh r4, [r5, 0x2E]
-_080434EE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080434F8: .4byte 0x0000ffff
-_080434FC: .4byte 0x0202f388
-_08043500: .4byte sub_8043504
- thumb_func_end sub_8043484
-
- thumb_func_start sub_8043504
-sub_8043504: @ 8043504
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08043540
- ldr r4, _08043594
- ldr r3, _08043598
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08043540:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x8
- bne _0804355A
- movs r1, 0x1
- negs r1, r1
- ldr r0, _0804359C
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804355A:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x9
- bgt _08043578
- ldr r2, _08043594
- ldr r0, _08043598
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_08043578:
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x28
- ble _08043586
- ldr r0, _080435A0
- str r0, [r5, 0x1C]
-_08043586:
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043594: .4byte 0x02020004
-_08043598: .4byte 0x0300481c
-_0804359C: .4byte 0x0000ffff
-_080435A0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8043504
-
- thumb_func_start sub_80435A4
-sub_80435A4: @ 80435A4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x38]
- adds r0, r1, r3
- strh r0, [r2, 0x38]
- movs r4, 0x36
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bge _080435C2
- adds r0, 0xFF
-_080435C2:
- asrs r0, 8
- strh r0, [r2, 0x24]
- movs r3, 0x38
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _080435D0
- adds r0, 0xFF
-_080435D0:
- asrs r0, 8
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r3, r1, r0
- strh r3, [r2, 0x32]
- movs r4, 0x22
- ldrsh r1, [r2, r4]
- movs r4, 0x26
- ldrsh r0, [r2, r4]
- adds r0, r1, r0
- adds r1, 0x14
- cmp r0, r1
- ble _080435F6
- lsls r0, r3, 16
- cmp r0, 0
- ble _080435F6
- adds r0, r2, 0
- bl DestroySprite
-_080435F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80435A4
-
- thumb_func_start sub_80435FC
-sub_80435FC: @ 80435FC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r3, _0804364C
- ldr r0, _08043650
- ldr r4, [r0]
- adds r4, 0x3A
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r1, r0, r3
- ldrh r6, [r1]
- adds r3, 0x2
- adds r0, r3
- ldrh r5, [r0]
- adds r2, 0x1
- strb r2, [r4]
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- movs r0, 0x64
- str r0, [sp]
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x3C
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_8043654
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804364C: .4byte gUnknown_0820A430
-_08043650: .4byte 0x0300481c
- thumb_func_end sub_80435FC
-
- thumb_func_start sub_8043654
-sub_8043654: @ 8043654
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x1C]
- mov r9, r0
- ldr r1, [sp, 0x20]
- mov r10, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080436CC
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080436D0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x30]
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r1, r9
- strh r1, [r0, 0x34]
- mov r1, r10
- bl StartSpriteAnim
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080436CC: .4byte gSpriteTemplate_820A418
-_080436D0: .4byte 0x02020004
- thumb_func_end sub_8043654
-
- thumb_func_start sub_80436D4
-sub_80436D4: @ 80436D4
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _080436F8
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8002EB0
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080436F8: .4byte 0x0300481c
- thumb_func_end sub_80436D4
-
- thumb_func_start sub_80436FC
-sub_80436FC: @ 80436FC
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _08043720
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08043720: .4byte 0x0300481c
- thumb_func_end sub_80436FC
-
- thumb_func_start sub_8043724
-sub_8043724: @ 8043724
- push {lr}
- ldr r0, _08043738
- ldr r0, [r0]
- adds r0, 0x8
- bl sub_80035AC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08043738: .4byte 0x0300481c
- thumb_func_end sub_8043724
-
- thumb_func_start sub_804373C
-sub_804373C: @ 804373C
- movs r0, 0x9
- bx lr
- thumb_func_end sub_804373C
-
- thumb_func_start sub_8043740
-sub_8043740: @ 8043740
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r3, 0
- movs r2, 0
-_0804375C:
- lsls r0, r3, 24
- asrs r0, 24
- mov r3, sp
- adds r1, r3, r0
- strb r2, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0804375C
- movs r3, 0x3
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- mov r8, sp
-_0804377C:
- lsls r0, r5, 16
- asrs r6, r0, 16
- cmp r6, 0
- ble _080437AA
- lsls r4, r3, 24
- asrs r4, 24
- mov r1, sp
- adds r5, r1, r4
- adds r0, r6, 0
- movs r1, 0xA
- bl __modsi3
- strb r0, [r5]
- adds r0, r6, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- subs r4, 0x1
- lsls r4, 24
- lsrs r3, r4, 24
- b _0804377C
-_080437AA:
- lsls r1, r3, 24
- asrs r0, r1, 24
- cmp r0, r9
- ble _080437CE
- movs r4, 0xFF
- movs r3, 0x1
- negs r3, r3
-_080437B8:
- asrs r2, r1, 24
- mov r5, sp
- adds r1, r5, r2
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- subs r2, 0x1
- lsls r1, r2, 24
- asrs r0, r1, 24
- cmp r0, r3
- bgt _080437B8
-_080437CE:
- mov r1, r8
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFF
- bne _080437DA
- movs r0, 0
- strb r0, [r1, 0x3]
-_080437DA:
- mov r2, r10
- cmp r2, 0
- bne _0804386A
- movs r3, 0
- movs r1, 0
- movs r6, 0xFC
- lsls r6, 8
- movs r5, 0x1E
- mov r12, r5
-_080437EC:
- lsls r1, 24
- asrs r2, r1, 24
- mov r0, sp
- adds r5, r0, r2
- ldrb r0, [r5]
- mov r8, r1
- cmp r0, 0xFF
- bne _08043822
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r12
- orrs r0, r2
- strh r0, [r1]
- lsls r3, 24
- asrs r1, r3, 23
- adds r1, r7
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r5, r12
- orrs r0, r5
- strh r0, [r1]
- b _08043852
-_08043822:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- lsls r4, r3, 24
- asrs r3, r4, 24
- lsls r2, r3, 1
- adds r2, r7
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- mov r5, sp
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
- adds r3, r4, 0
-_08043852:
- movs r0, 0x80
- lsls r0, 17
- add r0, r8
- lsrs r1, r0, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r3, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080437EC
- b _080438CE
-_0804386A:
- movs r3, 0
- movs r4, 0xFC
- lsls r4, 8
- movs r6, 0x1E
-_08043872:
- lsls r1, r3, 24
- asrs r2, r1, 24
- mov r3, sp
- adds r5, r3, r2
- ldrb r0, [r5]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0804389E
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- b _080438C0
-_0804389E:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
-_080438C0:
- movs r5, 0x80
- lsls r5, 17
- adds r0, r3, r5
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _08043872
-_080438CE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8043740
-
- thumb_func_start unref_sub_80438E0
-unref_sub_80438E0: @ 80438E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- movs r1, 0x1E
- strh r1, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- adds r1, r5, 0
- movs r2, 0
- bl sub_8043740
- lsls r4, 16
- asrs r4, 16
- adds r5, 0xA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8043740
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80438E0
-
- thumb_func_start battle_make_oam_normal_battle
-battle_make_oam_normal_battle: @ 8043914
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08043A28
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080439AC
- ldr r4, _0804399C
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080439A0
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r4
- ldrb r0, [r2, 0x1]
- ands r3, r0
- strb r3, [r2, 0x1]
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r4, _080439A4
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080439A8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- b _080439F2
- .align 2, 0
-_0804399C: .4byte gSpriteTemplate_820A4EC
-_080439A0: .4byte 0x02020004
-_080439A4: .4byte 0x000003ff
-_080439A8: .4byte 0xfffffc00
-_080439AC:
- ldr r4, _08043A14
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08043A18
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043A1C
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043A20
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- movs r0, 0x2
- str r0, [sp]
-_080439F2:
- ldr r2, _08043A18
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r2
- strh r7, [r0, 0x6]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r1, r0, r2
- strh r6, [r1, 0x38]
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08043A24
- str r1, [r0]
- b _08043B50
- .align 2, 0
-_08043A14: .4byte gSpriteTemplate_820A51C
-_08043A18: .4byte 0x02020004
-_08043A1C: .4byte 0x000003ff
-_08043A20: .4byte 0xfffffc00
-_08043A24: .4byte sub_8043D5C
-_08043A28:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08043ACC
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, _08043AB8
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _08043ABC
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043AC0
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043AC4
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, _08043AC8
- str r0, [r2]
- movs r0, 0x1
- b _08043B4E
- .align 2, 0
-_08043AB8: .4byte gSpriteTemplate_820A4EC
-_08043ABC: .4byte 0x02020004
-_08043AC0: .4byte 0x000003ff
-_08043AC4: .4byte 0xfffffc00
-_08043AC8: .4byte sub_8043D5C
-_08043ACC:
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, _08043C14
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _08043C18
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043C1C
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043C20
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, _08043C24
- str r0, [r2]
- movs r0, 0x2
-_08043B4E:
- str r0, [sp]
-_08043B50:
- ldr r0, _08043C28
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _08043C2C
- adds r0, r1
- movs r1, 0x8C
- movs r2, 0x3C
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, _08043C18
- mov r8, r1
- add r4, r8
- mov r0, r10
- bl battle_side_get_owner
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 21
- ldr r0, _08043C30
- adds r1, r0
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r2, r4, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r2, 0x4
- mov r9, r2
- mov r1, r9
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0x1
- bl sub_8043CDC
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _08043C34
- adds r1, r2
- ldr r2, _08043C38
- bl CpuSet
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- strh r5, [r0, 0x38]
- mov r2, r10
- strh r2, [r0, 0x3A]
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r5, r9
- orrs r1, r5
- strb r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- adds r0, r6, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043C14: .4byte gSpriteTemplate_820A51C
-_08043C18: .4byte 0x02020004
-_08043C1C: .4byte 0x000003ff
-_08043C20: .4byte 0xfffffc00
-_08043C24: .4byte sub_8043D5C
-_08043C28: .4byte 0x02024a72
-_08043C2C: .4byte gSpriteTemplate_820A56C
-_08043C30: .4byte gUnknown_0820A684
-_08043C34: .4byte 0x06010000
-_08043C38: .4byte 0x04000010
- thumb_func_end battle_make_oam_normal_battle
-
- thumb_func_start battle_make_oam_safari_battle
-battle_make_oam_safari_battle: @ 8043C3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _08043CC8
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08043CCC
- mov r9, r1
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- add r4, r9
- ldrb r3, [r4, 0x1]
- movs r2, 0x3F
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r4, 0x1]
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- mov r7, r9
- adds r5, r3, r7
- ldrb r1, [r5, 0x1]
- ands r2, r1
- strb r2, [r5, 0x1]
- ldrh r1, [r5, 0x4]
- mov r8, r1
- mov r7, r8
- lsls r2, r7, 22
- lsrs r2, 22
- adds r2, 0x40
- ldr r7, _08043CD0
- adds r1, r7, 0
- ands r2, r1
- ldr r1, _08043CD4
- mov r7, r8
- ands r1, r7
- orrs r1, r2
- strh r1, [r5, 0x4]
- strh r0, [r4, 0x6]
- strh r6, [r5, 0x38]
- movs r0, 0x1C
- add r9, r0
- add r3, r9
- ldr r0, _08043CD8
- str r0, [r3]
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043CC8: .4byte gSpriteTemplate_820A54C
-_08043CCC: .4byte 0x02020004
-_08043CD0: .4byte 0x000003ff
-_08043CD4: .4byte 0xfffffc00
-_08043CD8: .4byte sub_8043D5C
- thumb_func_end battle_make_oam_safari_battle
-
- thumb_func_start sub_8043CDC
-sub_8043CDC: @ 8043CDC
- lsls r0, 24
- lsrs r0, 19
- ldr r1, _08043CE8
- adds r0, r1
- bx lr
- .align 2, 0
-_08043CE8: .4byte gUnknown_08D1216C
- thumb_func_end sub_8043CDC
-
- thumb_func_start sub_8043CEC
-sub_8043CEC: @ 8043CEC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08043D1C
- cmp r0, 0x1
- bgt _08043D30
- cmp r0, 0
- bne _08043D30
- ldr r2, _08043D18
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08043D3E
- .align 2, 0
-_08043D18: .4byte 0x02020004
-_08043D1C:
- ldr r2, _08043D2C
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08043D3E
- .align 2, 0
-_08043D2C: .4byte 0x02020004
-_08043D30:
- ldr r2, _08043D58
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
-_08043D3E:
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- strh r1, [r4, 0x24]
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043D58: .4byte 0x02020004
- thumb_func_end sub_8043CEC
-
- thumb_func_start sub_8043D5C
-sub_8043D5C: @ 8043D5C
- ldrh r1, [r0, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08043D80
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x20]
- adds r1, 0x40
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x22]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x24]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08043D80: .4byte 0x02020004
- thumb_func_end sub_8043D5C
-
- thumb_func_start sub_8043D84
-sub_8043D84: @ 8043D84
- push {r4,r5,lr}
- ldr r5, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 2
- ldr r0, _08043DA8
- adds r4, r0
- strb r1, [r4]
- str r2, [r4, 0x4]
- str r3, [r4, 0x8]
- str r5, [r4, 0xC]
- ldr r0, _08043DAC
- str r0, [r4, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043DA8: .4byte 0x02017850
-_08043DAC: .4byte 0xffff8000
- thumb_func_end sub_8043D84
-
- thumb_func_start sub_8043DB0
-sub_8043DB0: @ 8043DB0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08043DF8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08043DF8: .4byte 0x02020004
- thumb_func_end sub_8043DB0
-
- thumb_func_start sub_8043DFC
-sub_8043DFC: @ 8043DFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08043E4C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- adds r4, r2, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r4, [r0]
- adds r1, r3, 0
- ands r1, r4
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043E4C: .4byte 0x02020004
- thumb_func_end sub_8043DFC
-
- thumb_func_start sub_8043E50
-sub_8043E50: @ 8043E50
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08043E6C
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- strh r1, [r3, 0x20]
- strh r2, [r3, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08043E6C: .4byte 0x02020004
- thumb_func_end sub_8043E50
-
- thumb_func_start unref_sub_8043E70
-unref_sub_8043E70: @ 8043E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08043EAC
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- ldrh r1, [r4, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043EAC: .4byte 0x02020004
- thumb_func_end unref_sub_8043E70
-
- thumb_func_start nullsub_11
-nullsub_11: @ 8043EB0
- bx lr
- thumb_func_end nullsub_11
-
- thumb_func_start sub_8043EB4
-sub_8043EB4: @ 8043EB4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- ldr r1, _08043F38
- mov r8, r1
- ldrb r2, [r1]
- cmp r6, r2
- bge _08043F2C
- ldr r1, _08043F3C
- mov r12, r1
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r7, 0xD
- negs r7, r7
- ldr r2, _08043F40
- mov r9, r2
-_08043EDE:
- mov r1, r9
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r4, [r1, 0x6]
- ldrh r3, [r1, 0x38]
- lsls r3, 24
- lsrs r3, 24
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- adds r6, 0x1
- mov r2, r8
- ldrb r2, [r2]
- cmp r6, r2
- blt _08043EDE
-_08043F2C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043F38: .4byte 0x02024a68
-_08043F3C: .4byte 0x02020004
-_08043F40: .4byte 0x03004340
- thumb_func_end sub_8043EB4
-
- thumb_func_start sub_8043F44
-sub_8043F44: @ 8043F44
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08043F70
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08043F6A
- movs r5, 0x2C
- movs r4, 0x1E
- b _08043FA8
-_08043F6A:
- movs r5, 0x9E
- movs r4, 0x58
- b _08043FA8
-_08043F70:
- adds r0, r6, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08043F9E
- cmp r0, 0x1
- bgt _08043F88
- cmp r0, 0
- beq _08043F92
- b _08043FA8
-_08043F88:
- cmp r0, 0x2
- beq _08043F98
- cmp r0, 0x3
- beq _08043FA4
- b _08043FA8
-_08043F92:
- movs r5, 0x9F
- movs r4, 0x4D
- b _08043FA8
-_08043F98:
- movs r5, 0xAB
- movs r4, 0x66
- b _08043FA8
-_08043F9E:
- movs r5, 0x2C
- movs r4, 0x13
- b _08043FA8
-_08043FA4:
- movs r5, 0x20
- movs r4, 0x2C
-_08043FA8:
- ldr r0, _08043FBC
- adds r0, r6, r0
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8043E50
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08043FBC: .4byte 0x03004340
- thumb_func_end sub_8043F44
-
- thumb_func_start sub_8043FC0
-sub_8043FC0: @ 8043FC0
- push {r4-r7,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _08044000
- mov r0, sp
- movs r2, 0x1E
- bl memcpy
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08044010
- ldr r1, _08044004
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08044008
- cmp r0, 0
- bne _0804402E
- ldr r7, _0804400C
- b _0804402E
- .align 2, 0
-_08044000: .4byte gUnknown_0820A81C
-_08044004: .4byte 0x02020004
-_08044008: .4byte gUnknown_0820A80C
-_0804400C: .4byte gUnknown_0820A804
-_08044010:
- ldr r1, _08044040
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08044044
- cmp r0, 0
- bne _0804402E
- ldr r7, _08044048
-_0804402E:
- mov r3, sp
- adds r3, 0x6
- cmp r6, 0x64
- bne _0804404C
- adds r0, r3, 0
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- b _0804408C
- .align 2, 0
-_08044040: .4byte 0x02020004
-_08044044: .4byte gUnknown_0820A80C
-_08044048: .4byte gUnknown_0820A814
-_0804404C:
- movs r1, 0xFC
- strb r1, [r3]
- mov r3, sp
- adds r3, 0x7
- movs r0, 0x11
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0x1
- strb r0, [r3]
- adds r3, 0x1
- strb r1, [r3]
- adds r3, 0x1
- movs r2, 0x14
- strb r2, [r3]
- adds r3, 0x1
- movs r0, 0x4
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0xF0
- strb r0, [r3]
- adds r3, 0x1
- strb r1, [r3]
- adds r3, 0x1
- strb r2, [r3]
- adds r3, 0x1
- movs r0, 0
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
-_0804408C:
- bl ConvertIntToDecimalStringN
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0x13
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0xF
- strb r0, [r3]
- movs r0, 0xFF
- strb r0, [r3, 0x1]
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- ldr r1, _080440E0
- adds r0, r4, r5
- lsls r0, 2
- adds r6, r0, r1
- ldr r5, _080440E4
- movs r4, 0x2
-_080440BC:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _080440E8
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080440BC
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080440E0: .4byte 0x02020004
-_080440E4: .4byte 0x02000020
-_080440E8: .4byte 0x04000008
- thumb_func_end sub_8043FC0
-
- thumb_func_start sub_80440EC
-sub_80440EC: @ 80440EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, _08044144
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _08044148
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x3A
- ldrsh r5, [r4, r0]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08044136
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0804414C
-_08044136:
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r7, 0
- mov r2, r8
- bl sub_8044210
- b _080441F0
- .align 2, 0
-_08044144: .4byte gUnknown_0820A864
-_08044148: .4byte 0x02020004
-_0804414C:
- mov r5, sp
- adds r5, 0x6
- mov r0, r8
- cmp r0, 0
- bne _08044190
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _08044188
- cmp r0, 0
- bne _0804416A
- ldr r4, _0804418C
-_0804416A:
- movs r0, 0x3
- mov r8, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x13
- movs r3, 0x1
- bl sub_8003504
- adds r5, r0, 0
- movs r0, 0xBA
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- b _080441B6
- .align 2, 0
-_08044188: .4byte gUnknown_0820A848
-_0804418C: .4byte gUnknown_0820A83C
-_08044190:
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _080441FC
- cmp r0, 0
- bne _080441A4
- ldr r4, _08044200
-_080441A4:
- movs r0, 0x2
- mov r8, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8003504
-_080441B6:
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- mov r0, r8
- cmp r0, 0
- beq _080441F0
- ldr r1, _08044204
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r1
- adds r7, r4, 0
- ldr r5, _08044208
- mov r4, r8
-_080441D6:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _0804420C
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080441D6
-_080441F0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080441FC: .4byte gUnknown_0820A85C
-_08044200: .4byte gUnknown_0820A854
-_08044204: .4byte 0x02020004
-_08044208: .4byte 0x02000020
-_0804420C: .4byte 0x04000008
- thumb_func_end sub_80440EC
-
- thumb_func_start sub_8044210
-sub_8044210: @ 8044210
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- mov r9, r6
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r1, _0804427C
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _08044280
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- mov r8, r0
- movs r1, 0x3A
- ldrsh r4, [r0, r1]
- lsls r0, r4, 2
- ldr r1, _08044284
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08044312
- mov r2, sp
- adds r2, 0x6
- cmp r7, 0
- bne _0804428C
- ldr r7, _08044288
- movs r0, 0x6
- mov r10, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0x2B
- movs r3, 0x1
- bl sub_8003504
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xFF
- strb r0, [r2, 0x1]
- b _080442CE
- .align 2, 0
-_0804427C: .4byte gUnknown_0820A89C
-_08044280: .4byte 0x02020004
-_08044284: .4byte 0x02017800
-_08044288: .4byte gUnknown_0820A87C
-_0804428C:
- ldr r7, _08044324
- movs r1, 0x2
- mov r10, r1
- mov r0, r9
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8003504
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080442CE
- movs r0, 0x74
- bl sub_8043CDC
- mov r2, r8
- ldrh r1, [r2, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0xD0
- lsls r2, 3
- adds r1, r2
- ldr r2, _08044328
- adds r1, r2
- ldr r2, _0804432C
- bl CpuSet
-_080442CE:
- ldr r6, _08044330
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r6
- movs r1, 0x38
- ldrsh r4, [r0, r1]
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- mov r2, r10
- cmp r2, 0
- beq _08044312
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r6, r0, r6
- ldr r5, _08044334
- mov r4, r10
-_080442F8:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _0804432C
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080442F8
-_08044312:
- 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
-_08044324: .4byte gUnknown_0820A894
-_08044328: .4byte 0x06010000
-_0804432C: .4byte 0x04000008
-_08044330: .4byte 0x02020004
-_08044334: .4byte 0x02000020
- thumb_func_end sub_8044210
-
- thumb_func_start sub_8044338
-sub_8044338: @ 8044338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r1, _080443CC
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _080443D0
- ldr r2, [sp, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r3, _080443D4
- adds r6, r1, r3
- movs r0, 0x5
- mov r8, r0
- adds r0, r4, 0
- bl GetNature
- lsls r0, 24
- mov r4, sp
- adds r4, 0x6
- ldr r1, _080443D8
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r0, r6, 0
- mov r1, sp
- bl sub_80034D4
- movs r7, 0x6
- movs r5, 0
- mov r1, sp
- adds r1, 0x9
- str r1, [sp, 0x1C]
-_080443AA:
- mov r2, sp
- adds r0, r2, r7
- ldrb r1, [r0]
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080443C8
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080443DC
-_080443C8:
- movs r0, 0x2C
- b _080443FA
- .align 2, 0
-_080443CC: .4byte gUnknown_0820A864
-_080443D0: .4byte 0x02020004
-_080443D4: .4byte 0x02000520
-_080443D8: .4byte gNatureNames
-_080443DC:
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080443F4
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080443F8
-_080443F4:
- movs r0, 0x2D
- b _080443FA
-_080443F8:
- movs r0, 0x2B
-_080443FA:
- bl sub_8043CDC
- lsls r1, r5, 6
- adds r1, r6, r1
- ldr r2, _080444F8
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x1
- cmp r5, r8
- bcc _080443AA
- movs r7, 0x1
- ldr r3, [sp, 0x14]
- lsls r3, 4
- str r3, [sp, 0x18]
- movs r0, 0x1
- add r0, r8
- mov r9, r0
- cmp r7, r9
- bge _08044486
- ldr r1, _080444FC
- ldr r2, _080444F8
- mov r10, r2
- ldr r2, [sp, 0x14]
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- mov r8, r0
-_08044436:
- mov r3, r8
- ldrh r0, [r3, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r5, r7, 0
- cmp r7, 0
- bge _08044446
- adds r5, r7, 0x7
-_08044446:
- asrs r5, 3
- lsls r4, r5, 3
- subs r4, r7, r4
- adds r0, r4
- lsls r5, 6
- adds r0, r5
- lsls r0, 5
- ldr r2, _08044500
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- mov r3, r8
- ldrh r0, [r3, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r4, 0x8
- adds r0, r4
- adds r0, r5
- lsls r0, 5
- ldr r2, _08044500
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- adds r7, 0x1
- cmp r7, r9
- blt _08044436
-_08044486:
- ldr r6, _080444FC
- ldr r3, [sp, 0x18]
- ldr r1, [sp, 0x14]
- adds r0, r3, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x38]
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08044504
- ldr r2, _08044508
- adds r0, r4, r2
- ldrb r1, [r0]
- mov r0, sp
- adds r0, 0x6
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r3, _0804450C
- adds r4, r3
- ldrb r1, [r4]
- ldr r0, [sp, 0x1C]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0xBA
- strb r0, [r1, 0x8]
- movs r0, 0x80
- lsls r0, 18
- bl sub_80034D4
- movs r7, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r5, r0, r6
- ldr r4, _08044510
-_080444DA:
- cmp r7, 0x1
- bgt _08044514
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r0, r7, 0x2
- adds r1, r0
- lsls r1, 5
- ldr r0, _08044500
- adds r1, r0
- adds r0, r4, 0
- ldr r2, _080444F8
- bl CpuSet
- b _0804452A
- .align 2, 0
-_080444F8: .4byte 0x04000008
-_080444FC: .4byte 0x02020004
-_08044500: .4byte 0x06010000
-_08044504: .4byte 0x02000000
-_08044508: .4byte 0x00016089
-_0804450C: .4byte 0x00016088
-_08044510: .4byte 0x02000020
-_08044514:
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r7, r1
- lsls r1, 5
- ldr r2, _08044544
- adds r1, r2
- adds r0, r4, 0
- ldr r2, _08044548
- bl CpuSet
-_0804452A:
- adds r4, 0x40
- adds r7, 0x1
- cmp r7, 0x4
- ble _080444DA
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044544: .4byte 0x060100c0
-_08044548: .4byte 0x04000008
- thumb_func_end sub_8044338
-
- thumb_func_start sub_804454C
-sub_804454C: @ 804454C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, _0804466C
- ldrb r0, [r0]
- cmp r8, r0
- blt _08044566
- b _080447E4
-_08044566:
- ldr r1, _08044670
- mov r9, r1
- movs r2, 0x64
- mov r10, r2
- ldr r7, _08044674
-_08044570:
- ldr r0, _08044678
- mov r6, r8
- adds r5, r6, r0
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0804467C
- cmp r1, r0
- beq _0804458E
- b _080447D4
-_0804458E:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080445A2
- b _080447D4
-_080445A2:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080445BA
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080445BA
- b _080447D4
-_080445BA:
- mov r0, r8
- lsls r3, r0, 2
- ldr r0, _08044680
- adds r3, r0
- ldr r0, [r3]
- lsls r0, 27
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- lsls r2, 4
- ldrb r0, [r3]
- movs r6, 0x11
- negs r6, r6
- adds r1, r6, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldr r0, [r3]
- lsls r0, 27
- lsrs r6, r0, 31
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080446DC
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080445FA
- b _080447D4
-_080445FA:
- ldr r0, _08044684
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0804460C
- b _080447D4
-_0804460C:
- cmp r6, 0x1
- bne _08044694
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r0, _08044688
- adds r1, r0
- mov r0, sp
- ldr r2, _0804468C
- bl CpuSet
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08044690
- adds r0, r2
- movs r1, 0x39
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8044210
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r6, r10
- muls r6, r0
- adds r0, r6, 0
- ldr r1, _08044690
- b _08044766
- .align 2, 0
-_0804466C: .4byte 0x02024a68
-_08044670: .4byte 0x02020004
-_08044674: .4byte 0x02024a6a
-_08044678: .4byte 0x03004340
-_0804467C: .4byte SpriteCallbackDummy
-_08044680: .4byte 0x02017800
-_08044684: .4byte 0x020239f8
-_08044688: .4byte 0x06010000
-_0804468C: .4byte 0x05000040
-_08044690: .4byte 0x03004360
-_08044694:
- ldrb r0, [r5]
- bl draw_status_ailment_maybe
- ldrb r0, [r5]
- ldrh r1, [r7]
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _080446D0
- adds r1, r6
- movs r2, 0x5
- bl sub_8045A5C
- movs r0, 0x75
- bl sub_8043CDC
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _080446D4
- adds r1, r2
- ldr r2, _080446D8
- bl CpuSet
- b _080447BE
- .align 2, 0
-_080446D0: .4byte 0x03004360
-_080446D4: .4byte 0x06010680
-_080446D8: .4byte 0x04000008
-_080446DC:
- cmp r6, 0x1
- bne _0804478C
- ldr r0, _08044704
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0804470C
- ldrb r0, [r5]
- ldrh r1, [r7]
- mov r6, r10
- muls r6, r1
- adds r1, r6, 0
- ldr r2, _08044708
- adds r1, r2
- bl sub_8044338
- b _080447BE
- .align 2, 0
-_08044704: .4byte 0x020239f8
-_08044708: .4byte 0x030045c0
-_0804470C:
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r6, _08044780
- adds r1, r6
- mov r0, sp
- ldr r2, _08044784
- bl CpuSet
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08044788
- adds r0, r2
- movs r1, 0x39
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8044210
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r6, r10
- muls r6, r0
- adds r0, r6, 0
- ldr r1, _08044788
-_08044766:
- adds r0, r1
- movs r1, 0x3A
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8044210
- b _080447BE
- .align 2, 0
-_08044780: .4byte 0x06010000
-_08044784: .4byte 0x05000040
-_08044788: .4byte 0x030045c0
-_0804478C:
- ldrb r0, [r5]
- bl draw_status_ailment_maybe
- ldrb r0, [r5]
- ldrh r1, [r7]
- movs r6, 0x64
- muls r1, r6
- ldr r4, _080447F4
- adds r1, r4
- movs r2, 0x5
- bl sub_8045A5C
- ldr r0, _080447F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080447BE
- ldrb r0, [r5]
- ldrh r1, [r7]
- muls r1, r6
- adds r1, r4
- movs r2, 0x4
- bl sub_8045A5C
-_080447BE:
- ldr r0, _080447FC
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x3C]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x3C]
-_080447D4:
- adds r7, 0x2
- movs r2, 0x1
- add r8, r2
- ldr r0, _08044800
- ldrb r0, [r0]
- cmp r8, r0
- bge _080447E4
- b _08044570
-_080447E4:
- 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
-_080447F4: .4byte 0x030045c0
-_080447F8: .4byte 0x020239f8
-_080447FC: .4byte 0x03004340
-_08044800: .4byte 0x02024a68
- thumb_func_end sub_804454C
-
- thumb_func_start sub_8044804
-sub_8044804: @ 8044804
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r1, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- adds r4, r2, 0
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- cmp r4, 0
- beq _08044834
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08044878
-_08044834:
- ldr r0, [sp, 0x8]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08044854
- movs r7, 0
- movs r1, 0x88
- movs r2, 0x60
- movs r0, 0x64
- mov r8, r0
- ldr r5, _08044850
- b _08044884
- .align 2, 0
-_08044850: .4byte 0x0000fffb
-_08044854:
- movs r7, 0x1
- cmp r4, 0
- beq _08044864
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0804486A
-_08044864:
- movs r1, 0x68
- movs r2, 0x28
- b _0804486E
-_0804486A:
- movs r1, 0x68
- movs r2, 0x10
-_0804486E:
- ldr r3, _08044874
- mov r8, r3
- b _08044882
- .align 2, 0
-_08044874: .4byte 0x0000ff9c
-_08044878:
- movs r7, 0x1
- movs r1, 0x68
- movs r2, 0x28
- ldr r5, _08044930
- mov r8, r5
-_08044882:
- movs r5, 0x5
-_08044884:
- movs r6, 0
- str r6, [sp, 0x14]
- lsls r4, r7, 3
- ldr r0, _08044934
- mov r10, r0
- lsls r3, r7, 1
- mov r9, r3
- lsls r1, 16
- str r1, [sp, 0x20]
- lsls r2, 16
- str r2, [sp, 0x24]
- ldr r2, _08044938
- ldr r1, [sp, 0xC]
- movs r6, 0x5
-_080448A0:
- ldrh r0, [r1]
- cmp r0, r2
- beq _080448B4
- ldr r3, [sp, 0x14]
- lsls r0, r3, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 24
- str r0, [sp, 0x14]
-_080448B4:
- adds r1, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _080448A0
- mov r6, r10
- adds r0, r4, r6
- bl LoadCompressedObjectPic
- ldr r0, _0804493C
- adds r0, r4, r0
- bl LoadSpriteSheet
- ldr r0, _08044940
- adds r0, r4, r0
- bl LoadSpritePalette
- ldr r0, _08044944
- adds r0, r4, r0
- bl LoadSpritePalette
- mov r1, r9
- adds r0, r1, r7
- lsls r0, 3
- ldr r1, _08044948
- adds r0, r1
- ldr r2, [sp, 0x20]
- asrs r1, r2, 16
- ldr r3, [sp, 0x24]
- asrs r2, r3, 16
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- lsls r0, 4
- ldr r6, [sp, 0x18]
- adds r0, r6
- lsls r0, 2
- ldr r1, _0804494C
- adds r4, r0, r1
- ldr r1, _08044950
- adds r0, r4, 0
- bl SetSubspriteTables
- mov r0, r8
- strh r0, [r4, 0x24]
- strh r5, [r4, 0x2E]
- cmp r7, 0
- beq _08044954
- ldrh r0, [r4, 0x20]
- subs r0, 0x60
- strh r0, [r4, 0x20]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x3]
- b _0804495A
- .align 2, 0
-_08044930: .4byte 0x0000ff9c
-_08044934: .4byte gUnknown_0820A754
-_08044938: .4byte 0x0000ffff
-_0804493C: .4byte gUnknown_0820A784
-_08044940: .4byte gUnknown_0820A764
-_08044944: .4byte gUnknown_0820A774
-_08044948: .4byte gSpriteTemplate_820A7A4
-_0804494C: .4byte 0x02020004
-_08044950: .4byte gUnknown_0820A6E4
-_08044954:
- ldrh r0, [r4, 0x20]
- adds r0, 0x60
- strh r0, [r4, 0x20]
-_0804495A:
- movs r6, 0
- ldr r1, _08044A04
- mov r10, r1
- mov r4, sp
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- str r0, [sp, 0x1C]
- movs r3, 0xA
- mov r9, r3
- mov r8, r6
-_08044970:
- ldr r0, _08044A08
- ldr r5, [sp, 0x24]
- ldr r1, _08044A0C
- adds r2, r5, r1
- ldr r3, [sp, 0x1C]
- adds r0, r3, r0
- ldr r5, [sp, 0x20]
- asrs r1, r5, 16
- asrs r2, 16
- movs r3, 0x9
- bl CreateSpriteAtEnd
- strb r0, [r4]
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _080449A0
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _08044A10
- adds r1, r2
- ldr r0, _08044A14
- str r0, [r1]
-_080449A0:
- ldr r5, _08044A04
- cmp r7, 0
- bne _080449BE
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- strh r7, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- strh r7, [r0, 0x26]
-_080449BE:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- mov r3, sp
- ldrh r3, [r3, 0x18]
- strh r3, [r0, 0x2E]
- cmp r7, 0
- bne _08044A18
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- adds r0, 0x18
- add r0, r8
- strh r0, [r1, 0x20]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x78
- b _08044A56
- .align 2, 0
-_08044A04: .4byte 0x02020004
-_08044A08: .4byte gSpriteTemplate_820A7D4
-_08044A0C: .4byte 0xfffc0000
-_08044A10: .4byte 0x02020020
-_08044A14: .4byte sub_8045180
-_08044A18:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x20]
- subs r3, 0x18
- movs r1, 0x5
- subs r1, r6
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- subs r3, r0
- strh r3, [r2, 0x20]
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r1, 0x6
- subs r1, r6
- lsls r0, r1, 3
- subs r0, r1
- adds r0, 0xA
- strh r0, [r2, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08044AC4
-_08044A56:
- strh r1, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x32]
- adds r4, 0x1
- movs r2, 0x7
- add r9, r2
- movs r3, 0xA
- add r8, r3
- adds r6, 0x1
- cmp r6, 0x5
- bgt _08044A76
- b _08044970
-_08044A76:
- ldr r0, [sp, 0x8]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08044B5E
- movs r6, 0
- ldr r5, _08044AC8
- mov r10, r5
- ldr r0, _08044ACC
- mov r9, r0
- ldr r7, _08044AD0
- ldr r1, _08044AD4
- mov r12, r1
- ldr r2, _08044AD8
- mov r8, r2
- mov r4, sp
- ldr r5, [sp, 0xC]
-_08044A9A:
- mov r3, r10
- ldrh r1, [r3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044ADC
- ldrh r0, [r5]
- cmp r0, r9
- beq _08044AE6
- cmp r0, 0
- bne _08044B2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044B46
- .align 2, 0
-_08044AC4: .4byte 0x0000ff88
-_08044AC8: .4byte 0x020239f8
-_08044ACC: .4byte 0x0000ffff
-_08044AD0: .4byte 0x02020004
-_08044AD4: .4byte 0x000003ff
-_08044AD8: .4byte 0xfffffc00
-_08044ADC:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- asrs r0, 24
- cmp r6, r0
- blt _08044B14
-_08044AE6:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _08044B52
-_08044B14:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08044B2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044B46
-_08044B2E:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _08044B52
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08044B46:
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08044B52:
- adds r4, 0x1
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044A9A
- b _08044C38
-_08044B5E:
- movs r6, 0
- ldr r1, _08044BA4
- mov r10, r1
- ldr r2, _08044BA8
- mov r9, r2
- ldr r7, _08044BAC
- ldr r3, _08044BB0
- mov r12, r3
- ldr r5, _08044BB4
- mov r8, r5
- ldr r5, [sp, 0xC]
- mov r4, sp
- adds r4, 0x5
-_08044B78:
- mov r0, r10
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044BB8
- ldrh r0, [r5]
- cmp r0, r9
- beq _08044BC2
- cmp r0, 0
- bne _08044C0A
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044C22
- .align 2, 0
-_08044BA4: .4byte 0x020239f8
-_08044BA8: .4byte 0x0000ffff
-_08044BAC: .4byte 0x02020004
-_08044BB0: .4byte 0x000003ff
-_08044BB4: .4byte 0xfffffc00
-_08044BB8:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- asrs r0, 24
- cmp r6, r0
- blt _08044BF0
-_08044BC2:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _08044C2E
-_08044BF0:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08044C0A
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044C22
-_08044C0A:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _08044C2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08044C22:
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08044C2E:
- subs r4, 0x1
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044B78
-_08044C38:
- ldr r0, _08044C98
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _08044C9C
- lsls r3, r4, 2
- adds r1, r3, r4
- lsls r1, 3
- adds r0, r1, r2
- mov r5, sp
- ldrh r5, [r5, 0x8]
- strh r5, [r0, 0x8]
- mov r6, sp
- ldrh r6, [r6, 0x18]
- strh r6, [r0, 0xA]
- movs r6, 0
- adds r0, r2, 0
- adds r0, 0xE
- adds r1, r0
-_08044C62:
- mov r5, sp
- adds r0, r5, r6
- ldrb r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044C62
- adds r0, r3, r4
- lsls r0, 3
- adds r0, r2
- ldrh r6, [r5, 0x10]
- strh r6, [r0, 0x1C]
- movs r0, 0x72
- movs r1, 0
- bl audio_play_and_stuff
- adds r0, r4, 0
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08044C98: .4byte TaskDummy
-_08044C9C: .4byte 0x03004b20
- thumb_func_end sub_8044804
-
- thumb_func_start sub_8044CA0
-sub_8044CA0: @ 8044CA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08044DB4
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r0, r1, r2
- ldrb r4, [r0, 0x1C]
- mov r9, r4
- ldrb r4, [r0, 0xA]
- mov r10, r4
- ldrb r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r5, 0
- adds r7, r2, 0
- ldr r0, _08044DB8
- mov r12, r0
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r1, r0
-_08044CD8:
- mov r4, sp
- adds r1, r4, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044CD8
- ldr r1, _08044DBC
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r7
- movs r1, 0x10
- strh r1, [r0, 0x26]
- movs r5, 0
- mov r4, r10
- lsls r4, 4
- str r4, [sp, 0x10]
- ldr r4, _08044DB8
- movs r6, 0xD
- negs r6, r6
- movs r3, 0x4
-_08044D14:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044D14
- ldr r2, [sp, 0x10]
- add r2, r10
- lsls r2, 2
- add r2, r12
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x1]
- mov r2, r9
- cmp r2, 0
- bne _08044D50
- b _08044E54
-_08044D50:
- movs r5, 0
- mov r6, r12
- mov r9, r5
- adds r3, r6, 0
- adds r3, 0x1C
- mov r4, sp
- movs r7, 0
-_08044D5E:
- ldr r0, [sp, 0x8]
- str r3, [sp, 0x14]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, [sp, 0x14]
- cmp r2, 0
- beq _08044DC4
- movs r0, 0x5
- subs r0, r5
- mov r1, sp
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _08044DC0
- str r1, [r0]
- ldr r2, _08044DB8
- mov r12, r2
- b _08044DFA
- .align 2, 0
-_08044DB4: .4byte 0x03004b20
-_08044DB8: .4byte 0x02020004
-_08044DBC: .4byte 0x04000050
-_08044DC0: .4byte sub_8045110
-_08044DC4:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x34]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x36]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _08044E3C
- str r1, [r0]
- ldr r0, _08044E40
- mov r12, r0
-_08044DFA:
- adds r4, 0x1
- adds r7, 0x7
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044D5E
- ldr r3, [sp, 0x10]
- add r3, r10
- lsls r3, 2
- mov r1, r12
- adds r0, r3, r1
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- mov r1, r12
- adds r1, 0x1C
- adds r3, r1
- ldr r1, _08044E44
- str r1, [r3]
- ldr r1, _08044E48
- bl SetSubspriteTables
- ldr r1, _08044E4C
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08044E50
- b _08044E5E
- .align 2, 0
-_08044E3C: .4byte sub_8045110
-_08044E40: .4byte 0x02020004
-_08044E44: .4byte sub_8045048
-_08044E48: .4byte gUnknown_0820A6EC
-_08044E4C: .4byte 0x03004b20
-_08044E50: .4byte sub_8044E74
-_08044E54:
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r7
- ldr r1, _08044E70
-_08044E5E:
- str r1, [r0]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044E70: .4byte sub_8044F70
- thumb_func_end sub_8044CA0
-
- thumb_func_start sub_8044E74
-sub_8044E74: @ 8044E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08044EC0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1E]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08044EAE
- ldrh r0, [r3, 0x26]
- subs r2, r0, 0x1
- strh r2, [r3, 0x26]
- lsls r0, r2, 16
- cmp r0, 0
- blt _08044EBA
- ldr r1, _08044EC4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1]
-_08044EAE:
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08044EBA
- ldr r0, _08044EC8
- str r0, [r3]
-_08044EBA:
- pop {r0}
- bx r0
- .align 2, 0
-_08044EC0: .4byte 0x03004b20
-_08044EC4: .4byte 0x04000052
-_08044EC8: .4byte sub_8044ECC
- thumb_func_end sub_8044E74
-
- thumb_func_start sub_8044ECC
-sub_8044ECC: @ 8044ECC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08044F44
- lsls r0, r3, 2
- adds r0, r3
- lsls r4, r0, 3
- adds r1, r4, r6
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- movs r5, 0
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r2, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bne _08044F4C
- ldrb r3, [r1, 0xA]
- adds r0, r6, 0
- adds r0, 0xE
- adds r2, r4, r0
-_08044EFA:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044EFA
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r4, _08044F48
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- movs r5, 0x1
-_08044F2A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044F2A
- b _08044F62
- .align 2, 0
-_08044F44: .4byte 0x03004b20
-_08044F48: .4byte 0x02020004
-_08044F4C:
- movs r0, 0x3
- negs r0, r0
- cmp r2, r0
- bne _08044F62
- ldr r0, _08044F6C
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_08044F62:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08044F6C: .4byte 0x04000050
- thumb_func_end sub_8044ECC
-
- thumb_func_start sub_8044F70
-sub_8044F70: @ 8044F70
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r7, _08044FA4
- lsls r0, r4, 2
- adds r0, r4
- lsls r6, r0, 3
- adds r3, r6, r7
- ldrh r0, [r3, 0x26]
- subs r2, r0, 0x1
- movs r5, 0
- strh r2, [r3, 0x26]
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r1, 0
- blt _08044FAC
- ldr r1, _08044FA8
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1]
- b _08045022
- .align 2, 0
-_08044FA4: .4byte 0x03004b20
-_08044FA8: .4byte 0x04000052
-_08044FAC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0804500C
- ldrb r3, [r3, 0xA]
- movs r5, 0
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r6, r0
-_08044FBE:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044FBE
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r4, _08045008
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- movs r5, 0x1
-_08044FEE:
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044FEE
- b _08045022
- .align 2, 0
-_08045008: .4byte 0x02020004
-_0804500C:
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _08045022
- ldr r0, _0804502C
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_08045022:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804502C: .4byte 0x04000050
- thumb_func_end sub_8044F70
-
- thumb_func_start sub_8045030
-sub_8045030: @ 8045030
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x24]
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08045044
- ldrh r0, [r1, 0x2E]
- adds r0, r2, r0
- strh r0, [r1, 0x24]
-_08045044:
- pop {r0}
- bx r0
- thumb_func_end sub_8045030
-
- thumb_func_start sub_8045048
-sub_8045048: @ 8045048
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- adds r1, 0x20
- strh r1, [r2, 0x30]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _08045066
- lsls r0, r1, 16
- asrs r0, 20
- ldrh r1, [r2, 0x24]
- adds r0, r1
- b _0804506E
-_08045066:
- lsls r1, 16
- asrs r1, 20
- ldrh r0, [r2, 0x24]
- subs r0, r1
-_0804506E:
- strh r0, [r2, 0x24]
- ldrh r1, [r2, 0x30]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r2, 0x30]
- pop {r0}
- bx r0
- thumb_func_end sub_8045048
-
- thumb_func_start sub_804507C
-sub_804507C: @ 804507C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08045090
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08045106
-_08045090:
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r3, r0, 24
- ldrh r2, [r4, 0x34]
- adds r0, r2, 0
- adds r0, 0x38
- lsls r1, r0, 16
- lsrs r2, r1, 16
- ldr r0, _080450C0
- ands r2, r0
- strh r2, [r4, 0x34]
- cmp r3, 0
- beq _080450C4
- lsrs r0, r1, 20
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080450D4
- movs r0, 0
- strh r0, [r4, 0x24]
- b _080450D4
- .align 2, 0
-_080450C0: .4byte 0x0000fff0
-_080450C4:
- lsrs r1, 20
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _080450D4
- strh r3, [r4, 0x24]
-_080450D4:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08045106
- movs r1, 0x3F
- cmp r3, 0
- beq _080450E4
- movs r1, 0xC0
-_080450E4:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080450F8
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x74
- bl sub_807552C
- b _08045102
-_080450F8:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x73
- bl sub_80754F8
-_08045102:
- ldr r0, _0804510C
- str r0, [r4, 0x1C]
-_08045106:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804510C: .4byte SpriteCallbackDummy
- thumb_func_end sub_804507C
-
- thumb_func_start sub_8045110
-sub_8045110: @ 8045110
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _08045124
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _08045174
-_08045124:
- ldrh r0, [r3, 0x32]
- lsls r0, 24
- ldrh r2, [r3, 0x34]
- adds r1, r2, 0
- adds r1, 0x38
- lsls r4, r1, 16
- lsrs r2, r4, 16
- ldr r1, _08045144
- ands r2, r1
- strh r2, [r3, 0x34]
- cmp r0, 0
- beq _08045148
- lsrs r0, r4, 20
- ldrh r1, [r3, 0x24]
- adds r0, r1
- b _0804514E
- .align 2, 0
-_08045144: .4byte 0x0000fff0
-_08045148:
- lsrs r1, r4, 20
- ldrh r0, [r3, 0x24]
- subs r0, r1
-_0804514E:
- strh r0, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bls _08045174
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0804517C
- str r0, [r3, 0x1C]
-_08045174:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804517C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8045110
-
- thumb_func_start sub_8045180
-sub_8045180: @ 8045180
- ldrh r2, [r0, 0x2E]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0804519C
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- strh r2, [r0, 0x24]
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0804519C: .4byte 0x02020004
- thumb_func_end sub_8045180
-
- thumb_func_start sub_80451A0
-sub_80451A0: @ 80451A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _08045238
- ldr r1, _0804523C
- adds r0, r4, 0
- bl StringCopy
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- mov r0, sp
- bl StringGetEnd10
- adds r4, 0x3
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0xFC
- strb r1, [r5]
- movs r0, 0x3
- strb r0, [r5, 0x1]
- movs r0, 0x2
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x1
- strb r0, [r5, 0x4]
- adds r5, 0x5
- adds r0, r7, 0
- bl pokemon_get_gender
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0xB
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0x3
- bl PokemonGetField
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- mov r1, sp
- bl sub_8040D3C
- cmp r0, 0
- beq _08045222
- movs r6, 0x64
-_08045222:
- cmp r6, 0
- beq _08045240
- cmp r6, 0xFE
- beq _08045248
- movs r0, 0xB
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08045256
- .align 2, 0
-_08045238: .4byte 0x020238cc
-_0804523C: .4byte gUnknown_0820A8B0
-_08045240:
- movs r0, 0xB
- strb r0, [r5]
- movs r0, 0xB5
- b _0804524E
-_08045248:
- movs r0, 0xA
- strb r0, [r5]
- movs r0, 0xB6
-_0804524E:
- strb r0, [r5, 0x1]
- movs r0, 0xFF
- strb r0, [r5, 0x2]
- adds r5, 0x2
-_08045256:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x37
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r1, _080452D8
- mov r0, r9
- lsls r4, r0, 4
- adds r0, r4, r0
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r2, _080452DC
- adds r5, r1, r2
- ldr r0, _080452E0
- mov r8, r0
- adds r0, r5, 0
- mov r1, r8
- bl sub_80034D4
- movs r6, 0
- movs r1, 0x7
- mov r10, r1
- adds r0, r7, 0
- movs r1, 0x3
- bl PokemonGetField
- str r4, [sp, 0xC]
- cmp r0, 0x1
- bne _08045338
- adds r0, r7, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _08045338
- mov r4, r8
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08045338
- adds r7, r5, 0
-_080452C2:
- cmp r1, 0xFC
- bne _080452E4
- ldrb r0, [r4, 0x1]
- bl GetExtCtrlCodeLength
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- adds r4, r0
- b _08045330
- .align 2, 0
-_080452D8: .4byte 0x02020004
-_080452DC: .4byte 0x02000520
-_080452E0: .4byte 0x020238cc
-_080452E4:
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080452FC
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08045300
-_080452FC:
- movs r0, 0x2C
- b _0804531E
-_08045300:
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _08045318
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0804531C
-_08045318:
- movs r0, 0x2D
- b _0804531E
-_0804531C:
- movs r0, 0x2B
-_0804531E:
- bl sub_8043CDC
- adds r1, r7, 0
- ldr r2, _080453C8
- bl CpuSet
- adds r7, 0x40
- adds r6, 0x1
- adds r4, 0x1
-_08045330:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080452C2
-_08045338:
- cmp r6, r10
- bge _0804535A
- lsls r0, r6, 6
- adds r4, r0, r5
- mov r2, r10
- subs r6, r2, r6
-_08045344:
- movs r0, 0x2B
- bl sub_8043CDC
- adds r1, r4, 0
- ldr r2, _080453C8
- bl CpuSet
- adds r4, 0x40
- subs r6, 0x1
- cmp r6, 0
- bne _08045344
-_0804535A:
- ldr r1, _080453CC
- ldr r0, [sp, 0xC]
- add r0, r9
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080453D4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080453D4
- ldr r1, _080453D0
- mov r0, r10
- cmp r0, 0
- beq _08045438
- mov r8, r6
- mov r9, r1
- ldr r7, _080453C8
- mov r6, r10
-_0804538E:
- mov r1, r9
- adds r1, 0x4
- mov r9, r1
- subs r1, 0x4
- ldm r1!, {r4}
- mov r2, r8
- ldrh r0, [r2, 0x4]
- lsls r0, 22
- lsrs r0, 17
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- subs r6, 0x1
- cmp r6, 0
- bne _0804538E
- b _08045438
- .align 2, 0
-_080453C8: .4byte 0x04000008
-_080453CC: .4byte 0x02020004
-_080453D0: .4byte gUnknown_0820A8B4
-_080453D4:
- ldr r1, _08045448
- ldr r0, [sp, 0xC]
- add r0, r9
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _0804544C
- cmp r0, 0
- bne _080453F2
- ldr r1, _08045450
-_080453F2:
- mov r2, r10
- cmp r2, 0
- beq _08045438
- mov r8, r4
- mov r9, r1
- ldr r7, _08045454
- mov r6, r10
-_08045400:
- mov r0, r9
- adds r0, 0x4
- mov r9, r0
- subs r0, 0x4
- ldm r0!, {r4}
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 17
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- subs r6, 0x1
- cmp r6, 0
- bne _08045400
-_08045438:
- 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
-_08045448: .4byte 0x02020004
-_0804544C: .4byte gUnknown_0820A8DC
-_08045450: .4byte gUnknown_0820A904
-_08045454: .4byte 0x04000008
- thumb_func_end sub_80451A0
-
- thumb_func_start sub_8045458
-sub_8045458: @ 8045458
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080454F4
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0804552E
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0804552E
- ldr r6, _080454F8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r6
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0804552E
- ldr r1, _080454FC
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08045500
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0804552E
- ldrh r0, [r5, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _0804550C
- movs r0, 0x46
- bl sub_8043CDC
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
- ldr r2, _08045504
- adds r1, r2
- ldr r2, _08045508
- bl CpuSet
- b _0804552E
- .align 2, 0
-_080454F4: .4byte 0x020239f8
-_080454F8: .4byte 0x02020004
-_080454FC: .4byte 0x02024a6a
-_08045500: .4byte 0x030045c0
-_08045504: .4byte 0x06010000
-_08045508: .4byte 0x04000008
-_0804550C:
- str r7, [sp]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- ldr r0, _08045538
- adds r1, r0
- ldr r2, _0804553C
- mov r0, sp
- bl CpuSet
-_0804552E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045538: .4byte 0x06010000
-_0804553C: .4byte 0x05000008
- thumb_func_end sub_8045458
-
- thumb_func_start draw_status_ailment_maybe
-draw_status_ailment_maybe: @ 8045540
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080455A4
- mov r2, r9
- lsls r1, r2, 4
- add r1, r9
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r1, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080455B0
- ldr r1, _080455A8
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080455AC
- adds r0, r1
- movs r1, 0x37
- bl PokemonGetField
- adds r4, r0, 0
- bl battle_type_is_double
- lsls r0, 24
- movs r3, 0x12
- mov r8, r3
- cmp r0, 0
- bne _080455CC
- movs r0, 0x1A
- mov r8, r0
- b _080455CC
- .align 2, 0
-_080455A4: .4byte 0x02020004
-_080455A8: .4byte 0x02024a6a
-_080455AC: .4byte 0x03004360
-_080455B0:
- ldr r1, _080455EC
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080455F0
- adds r0, r1
- movs r1, 0x37
- bl PokemonGetField
- adds r4, r0, 0
- movs r1, 0x11
- mov r8, r1
-_080455CC:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _080455F4
- movs r0, 0x1B
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x2
- b _080456FC
- .align 2, 0
-_080455EC: .4byte 0x02024a6a
-_080455F0: .4byte 0x030045c0
-_080455F4:
- movs r0, 0x88
- ands r0, r4
- cmp r0, 0
- beq _08045612
- movs r0, 0x15
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0
- b _080456FC
-_08045612:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _08045630
- movs r0, 0x21
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x4
- b _080456FC
-_08045630:
- movs r0, 0x20
- ands r0, r4
- cmp r0, 0
- beq _0804564E
- movs r0, 0x1E
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x3
- b _080456FC
-_0804564E:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _0804566C
- movs r0, 0x18
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x1
- b _080456FC
-_0804566C:
- movs r0, 0x27
- bl sub_8043CDC
- adds r6, r0, 0
- movs r4, 0
- mov r2, r9
- lsls r0, r2, 4
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsls r7, 2
- ldr r1, _080456E8
- add r0, r9
- lsls r0, 2
- adds r5, r0, r1
-_0804568A:
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- mov r2, r8
- asrs r0, r2, 16
- adds r1, r0
- adds r1, r4
- lsls r1, 5
- ldr r3, _080456EC
- adds r1, r3
- adds r0, r6, 0
- ldr r2, _080456F0
- bl CpuSet
- adds r4, 0x1
- cmp r4, 0x2
- ble _0804568A
- ldr r0, _080456F4
- adds r0, r7, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080456DC
- movs r0, 0x1
- bl sub_8043CDC
- ldr r2, _080456E8
- mov r3, r10
- lsls r1, r3, 4
- add r1, r10
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _080456EC
- adds r1, r2
- ldr r2, _080456F8
- bl CpuSet
-_080456DC:
- mov r0, r9
- movs r1, 0x1
- bl sub_8045458
- b _080457BA
- .align 2, 0
-_080456E8: .4byte 0x02020004
-_080456EC: .4byte 0x06010000
-_080456F0: .4byte 0x04000008
-_080456F4: .4byte 0x02017800
-_080456F8: .4byte 0x04000010
-_080456FC:
- mov r1, r9
- lsls r5, r1, 4
- add r5, r9
- lsls r5, 2
- ldr r2, _080457C8
- adds r5, r2
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- adds r4, 0xC
- adds r4, r7
- lsls r0, 1
- ldr r1, _080457CC
- adds r0, r1
- ldrh r0, [r0]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r4, r3
- movs r2, 0x2
- bl FillPalette
- lsls r4, 1
- ldr r0, _080457D0
- adds r0, r4, r0
- ldr r1, _080457D4
- adds r4, r1
- adds r1, r4, 0
- movs r2, 0x1
- bl CpuSet
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- add r1, r8
- lsls r1, 5
- ldr r2, _080457D8
- mov r8, r2
- add r1, r8
- ldr r2, _080457DC
- adds r0, r6, 0
- bl CpuSet
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804576A
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080457B2
-_0804576A:
- lsls r0, r7, 2
- ldr r1, _080457E0
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080457B2
- movs r0, 0
- bl sub_8043CDC
- mov r3, r10
- lsls r4, r3, 4
- add r4, r10
- lsls r4, 2
- ldr r1, _080457C8
- adds r4, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- add r1, r8
- ldr r5, _080457E4
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x41
- bl sub_8043CDC
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- adds r1, 0x20
- add r1, r8
- adds r2, r5, 0
- bl CpuSet
-_080457B2:
- mov r0, r9
- movs r1, 0
- bl sub_8045458
-_080457BA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080457C8: .4byte 0x02020004
-_080457CC: .4byte gUnknown_08E903F8
-_080457D0: .4byte 0x0202ecc8
-_080457D4: .4byte 0x05000200
-_080457D8: .4byte 0x06010000
-_080457DC: .4byte 0x04000018
-_080457E0: .4byte 0x02017800
-_080457E4: .4byte 0x04000008
- thumb_func_end draw_status_ailment_maybe
-
- thumb_func_start sub_80457E8
-sub_80457E8: @ 80457E8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsrs r2, r0, 24
- adds r0, r2, 0
- subs r0, 0x15
- cmp r0, 0xC
- bhi _080458A8
- lsls r0, 2
- ldr r1, _08045804
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08045804: .4byte _08045808
- .align 2, 0
-_08045808:
- .4byte _0804583C
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045852
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045868
- .4byte _080458A8
- .4byte _080458A8
- .4byte _0804587E
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045894
-_0804583C:
- movs r2, 0x15
- cmp r3, 0
- beq _080458A8
- movs r2, 0x47
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x65
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x56
- b _080458A8
-_08045852:
- movs r2, 0x18
- cmp r3, 0
- beq _080458A8
- movs r2, 0x4A
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x68
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x59
- b _080458A8
-_08045868:
- movs r2, 0x1B
- cmp r3, 0
- beq _080458A8
- movs r2, 0x4D
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x6B
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x5C
- b _080458A8
-_0804587E:
- movs r2, 0x1E
- cmp r3, 0
- beq _080458A8
- movs r2, 0x50
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x6E
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x5F
- b _080458A8
-_08045894:
- movs r2, 0x21
- cmp r3, 0
- beq _080458A8
- movs r2, 0x53
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x71
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x62
-_080458A8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80457E8
-
- thumb_func_start sub_80458B0
-sub_80458B0: @ 80458B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08045984
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r0, _08045988
- adds r6, r1, r0
- movs r1, 0x7
- mov r8, r1
- ldr r1, _0804598C
- adds r0, r6, 0
- bl sub_80034D4
- movs r4, 0
-_080458EE:
- movs r0, 0x2B
- bl sub_8043CDC
- lsls r1, r4, 6
- adds r1, r6, r1
- ldr r2, _08045990
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080458EE
- movs r7, 0x3
- movs r2, 0x3
- add r2, r8
- mov r9, r2
- cmp r7, r9
- bge _08045974
- ldr r1, _08045984
- ldr r0, _08045990
- mov r10, r0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- mov r8, r0
-_08045924:
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r5, r7, 0
- cmp r7, 0
- bge _08045934
- adds r5, r7, 0x7
-_08045934:
- asrs r5, 3
- lsls r4, r5, 3
- subs r4, r7, r4
- adds r0, r4
- lsls r5, 6
- adds r0, r5
- lsls r0, 5
- ldr r2, _08045994
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r4, 0x8
- adds r0, r4
- adds r0, r5
- lsls r0, 5
- ldr r2, _08045994
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- adds r7, 0x1
- cmp r7, r9
- blt _08045924
-_08045974:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045984: .4byte 0x02020004
-_08045988: .4byte 0x02000520
-_0804598C: .4byte gUnknown_08400DD6
-_08045990: .4byte 0x04000008
-_08045994: .4byte 0x06010000
- thumb_func_end sub_80458B0
-
- thumb_func_start sub_8045998
-sub_8045998: @ 8045998
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08045A38
- mov r8, r0
- ldr r1, _08045A3C
- bl StringCopy
- adds r7, r0, 0
- ldr r0, _08045A40
- ldrb r1, [r0]
- adds r0, r7, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_8003504
- adds r7, r0, 0
- ldr r1, _08045A44
- bl StringAppend
- ldr r0, _08045A48
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 7
- ldr r0, _08045A4C
- adds r7, r4, r0
- movs r6, 0x5
- adds r0, r7, 0
- mov r1, r8
- bl sub_80034D4
- ldr r0, _08045A50
- adds r7, r4, r0
- movs r4, 0x6
-_080459F8:
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r2, r0, 22
- adds r0, r4, 0
- cmp r4, 0
- bge _08045A06
- adds r0, r4, 0x7
-_08045A06:
- asrs r0, 3
- lsls r1, r0, 3
- subs r1, r4, r1
- adds r1, 0x18
- adds r1, r2, r1
- lsls r0, 6
- adds r1, r0
- lsls r1, 5
- ldr r0, _08045A54
- adds r1, r0
- adds r0, r7, 0
- ldr r2, _08045A58
- bl CpuSet
- adds r7, 0x40
- adds r4, 0x1
- adds r0, r6, 0x6
- cmp r4, r0
- blt _080459F8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045A38: .4byte 0x020238cc
-_08045A3C: .4byte gUnknown_08400DE6
-_08045A40: .4byte 0x02038808
-_08045A44: .4byte gUnknown_08400DF0
-_08045A48: .4byte 0x02020004
-_08045A4C: .4byte 0x02000520
-_08045A50: .4byte 0x02000540
-_08045A54: .4byte 0x06010000
-_08045A58: .4byte 0x04000008
- thumb_func_end sub_8045998
-
- thumb_func_start sub_8045A5C
-sub_8045A5C: @ 8045A5C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r1, _08045BE4
- lsls r0, 4
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08045A92
- b _08045BF0
-_08045A92:
- cmp r7, 0x3
- beq _08045A9A
- cmp r7, 0
- bne _08045AAE
-_08045A9A:
- mov r0, r9
- movs r1, 0x38
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8043FC0
-_08045AAE:
- cmp r7, 0x1
- bhi _08045AC8
- mov r0, r9
- movs r1, 0x39
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- movs r2, 0
- bl sub_80440EC
-_08045AC8:
- cmp r7, 0x2
- beq _08045AD0
- cmp r7, 0
- bne _08045AE6
-_08045AD0:
- mov r0, r9
- movs r1, 0x3A
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- movs r2, 0x1
- bl sub_80440EC
-_08045AE6:
- cmp r7, 0x5
- beq _08045AEE
- cmp r7, 0
- bne _08045B22
-_08045AEE:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0x3A
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r9
- movs r1, 0x39
- bl PokemonGetField
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- adds r2, r4, 0
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
-_08045B22:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0
- bne _08045BA6
- cmp r7, 0x6
- beq _08045B38
- cmp r7, 0
- bne _08045BA6
-_08045B38:
- movs r0, 0x3
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0xB
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- movs r1, 0x38
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- movs r1, 0x19
- bl PokemonGetField
- adds r3, r0, 0
- ldr r6, _08045BE8
- lsls r1, r4, 2
- ldr r2, _08045BEC
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, [sp, 0x4]
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
-_08045BA6:
- cmp r7, 0x4
- beq _08045BAE
- cmp r7, 0
- bne _08045BB6
-_08045BAE:
- mov r0, r8
- mov r1, r9
- bl sub_80451A0
-_08045BB6:
- cmp r7, 0x9
- beq _08045BBE
- cmp r7, 0
- bne _08045BC4
-_08045BBE:
- mov r0, r8
- bl draw_status_ailment_maybe
-_08045BC4:
- cmp r7, 0xA
- bne _08045BCE
- mov r0, r8
- bl sub_80458B0
-_08045BCE:
- adds r0, r7, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08045C66
- mov r0, r8
- bl sub_8045998
- b _08045C66
- .align 2, 0
-_08045BE4: .4byte 0x02020004
-_08045BE8: .4byte gExperienceTables
-_08045BEC: .4byte gBaseStats
-_08045BF0:
- cmp r7, 0x3
- beq _08045BF8
- cmp r7, 0
- bne _08045C0C
-_08045BF8:
- mov r0, r9
- movs r1, 0x38
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8043FC0
-_08045C0C:
- cmp r7, 0x5
- beq _08045C14
- cmp r7, 0
- bne _08045C48
-_08045C14:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0x3A
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r9
- movs r1, 0x39
- bl PokemonGetField
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- adds r2, r4, 0
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
-_08045C48:
- cmp r7, 0x4
- beq _08045C50
- cmp r7, 0
- bne _08045C58
-_08045C50:
- mov r0, r8
- mov r1, r9
- bl sub_80451A0
-_08045C58:
- cmp r7, 0x9
- beq _08045C60
- cmp r7, 0
- bne _08045C66
-_08045C60:
- mov r0, r8
- bl draw_status_ailment_maybe
-_08045C66:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8045A5C
-
- thumb_func_start sub_8045C78
-sub_8045C78: @ 8045C78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- cmp r2, 0
- bne _08045CBC
- lsls r5, r7, 2
- adds r3, r5, r7
- lsls r3, 2
- ldr r4, _08045CB8
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- movs r4, 0x6
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_8045F58
- adds r6, r0, 0
- adds r4, r5, 0
- b _08045D0A
- .align 2, 0
-_08045CB8: .4byte 0x02017850
-_08045CBC:
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 2
- mov r10, r0
- ldr r6, _08045D50
- add r6, r10
- ldr r0, [r6, 0x8]
- ldr r1, [r6, 0xC]
- ldr r2, [r6, 0x4]
- movs r3, 0x8
- bl sub_8046188
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08045CDE
- movs r5, 0x1
-_08045CDE:
- ldr r0, [r6, 0xC]
- mov r8, r0
- adds r1, r5, 0
- bl __divsi3
- cmp r0, 0
- bge _08045CEE
- negs r0, r0
-_08045CEE:
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r6, 0x4]
- ldr r1, [r6, 0x8]
- ldr r3, _08045D50
- adds r3, 0x10
- add r3, r10
- movs r2, 0x8
- str r2, [sp]
- str r5, [sp, 0x4]
- mov r2, r8
- bl sub_8045F58
- adds r6, r0, 0
-_08045D0A:
- mov r0, r9
- cmp r0, 0x1
- beq _08045D22
- cmp r0, 0
- bne _08045D2A
- ldr r0, _08045D54
- adds r0, r4, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08045D2A
-_08045D22:
- adds r0, r7, 0
- mov r1, r9
- bl sub_8045D58
-_08045D2A:
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- bne _08045D3E
- adds r0, r4, r7
- lsls r0, 2
- ldr r1, _08045D50
- adds r0, r1
- movs r1, 0
- str r1, [r0, 0x10]
-_08045D3E:
- adds r0, r6, 0
- 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
-_08045D50: .4byte 0x02017850
-_08045D54: .4byte 0x02017800
- thumb_func_end sub_8045C78
-
- thumb_func_start sub_8045D58
-sub_8045D58: @ 8045D58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08045D72
- cmp r1, 0x1
- beq _08045E54
- b _08045F42
-_08045D72:
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- ldr r4, _08045E00
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_804602C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- mov r8, r1
- adds r1, r5, 0
- cmp r0, 0x18
- bhi _08045DAC
- movs r2, 0x38
- mov r8, r2
- cmp r0, 0x9
- bls _08045DAC
- movs r4, 0x2F
- mov r8, r4
-_08045DAC:
- movs r5, 0
- ldr r7, _08045E04
- adds r0, r1, r6
- lsls r6, r0, 2
-_08045DB4:
- ldr r0, _08045E00
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0x1
- bhi _08045E10
- mov r0, r8
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0x2
- adds r1, r2
- lsls r1, 5
- ldr r2, _08045E08
- adds r1, r2
- ldr r2, _08045E0C
- bl CpuSet
- b _08045E3E
- .align 2, 0
-_08045E00: .4byte 0x02017850
-_08045E04: .4byte 0x02020004
-_08045E08: .4byte 0x06010000
-_08045E0C: .4byte 0x04000008
-_08045E10:
- mov r0, r8
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r4, _08045E4C
- adds r1, r4
- ldr r2, _08045E50
- bl CpuSet
-_08045E3E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08045DB4
- b _08045F42
- .align 2, 0
-_08045E4C: .4byte 0x06010040
-_08045E50: .4byte 0x04000008
-_08045E54:
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- ldr r4, _08045EF0
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x8
- str r4, [sp, 0x4]
- bl sub_804602C
- ldr r1, _08045EF4
- lsls r0, r6, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08045EF8
- adds r0, r1
- movs r1, 0x38
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- cmp r0, 0x64
- bne _08045EAA
- movs r5, 0
- movs r2, 0
-_08045E98:
- mov r0, sp
- adds r0, r5
- adds r0, 0x8
- strb r2, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08045E98
-_08045EAA:
- movs r5, 0
- ldr r7, _08045EFC
- adds r0, r1, r6
- lsls r0, 2
- ldr r1, _08045EF0
- adds r4, r0, r1
-_08045EB6:
- cmp r5, 0x3
- bhi _08045F08
- movs r0, 0xC
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0
- adds r2, 0x24
- adds r1, r2
- lsls r1, 5
- ldr r2, _08045F00
- adds r1, r2
- ldr r2, _08045F04
- bl CpuSet
- b _08045F38
- .align 2, 0
-_08045EF0: .4byte 0x02017850
-_08045EF4: .4byte 0x02024a6a
-_08045EF8: .4byte 0x03004360
-_08045EFC: .4byte 0x02020004
-_08045F00: .4byte 0x06010000
-_08045F04: .4byte 0x04000008
-_08045F08:
- movs r0, 0xC
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r2, _08045F50
- adds r1, r2
- ldr r2, _08045F54
- bl CpuSet
-_08045F38:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08045EB6
-_08045F42:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045F50: .4byte 0x06010b80
-_08045F54: .4byte 0x04000008
- thumb_func_end sub_8045D58
-
- thumb_func_start sub_8045F58
-sub_8045F58: @ 8045F58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- mov r8, r2
- adds r5, r3, 0
- ldr r1, [sp, 0x18]
- ldr r0, [sp, 0x1C]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 27
- lsrs r2, r1, 24
- ldr r1, [r5]
- ldr r0, _08045F84
- cmp r1, r0
- bne _08045F8A
- cmp r7, r2
- bge _08045F88
- lsls r0, r4, 8
- str r0, [r5]
- b _08045F8A
- .align 2, 0
-_08045F84: .4byte 0xffff8000
-_08045F88:
- str r4, [r5]
-_08045F8A:
- mov r0, r8
- subs r4, r0
- cmp r4, 0
- bge _08045F96
- movs r4, 0
- b _08045F9C
-_08045F96:
- cmp r4, r7
- ble _08045F9C
- adds r4, r7, 0
-_08045F9C:
- cmp r7, r2
- bge _08045FB8
- ldr r0, [r5]
- asrs r1, r0, 8
- adds r6, r0, 0
- cmp r4, r1
- bne _08045FC4
- movs r0, 0xFF
- ands r0, r6
- cmp r0, 0
- bne _08045FC4
- movs r0, 0x1
- negs r0, r0
- b _08046020
-_08045FB8:
- ldr r6, [r5]
- cmp r4, r6
- bne _08045FC4
- movs r0, 0x1
- negs r0, r0
- b _08046020
-_08045FC4:
- cmp r7, r2
- bge _08045FFE
- lsls r0, r7, 8
- adds r1, r2, 0
- bl __divsi3
- mov r1, r8
- cmp r1, 0
- bge _08045FE2
- adds r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- cmp r2, r4
- blt _0804601E
- b _08045FF6
-_08045FE2:
- subs r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- movs r1, 0xFF
- ands r0, r1
- cmp r0, 0
- ble _08045FF2
- adds r2, 0x1
-_08045FF2:
- cmp r2, r4
- bgt _0804601E
-_08045FF6:
- lsls r0, r4, 8
- str r0, [r5]
- adds r2, r4, 0
- b _0804601E
-_08045FFE:
- mov r0, r8
- cmp r0, 0
- bge _08046010
- ldr r0, [r5]
- adds r0, r3
- str r0, [r5]
- cmp r0, r4
- ble _0804601C
- b _0804601A
-_08046010:
- ldr r0, [r5]
- subs r0, r3
- str r0, [r5]
- cmp r0, r4
- bge _0804601C
-_0804601A:
- str r4, [r5]
-_0804601C:
- ldr r2, [r5]
-_0804601E:
- adds r0, r2, 0
-_08046020:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8045F58
-
- thumb_func_start sub_804602C
-sub_804602C: @ 804602C
- push {r4-r7,lr}
- adds r4, r0, 0
- mov r12, r3
- ldr r7, [sp, 0x14]
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r6, r0, 24
- subs r5, r1, r2
- cmp r5, 0
- bge _08046044
- movs r5, 0
- b _0804604A
-_08046044:
- cmp r5, r4
- ble _0804604A
- adds r5, r4, 0
-_0804604A:
- lsls r0, r6, 27
- lsrs r3, r0, 24
- movs r1, 0
- cmp r1, r6
- bcs _08046064
- movs r2, 0
-_08046056:
- adds r0, r7, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08046056
-_08046064:
- cmp r4, r3
- bge _08046078
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
- asrs r0, 8
- b _08046084
-_08046078:
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
-_08046084:
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r3, 0
- bne _0804609A
- cmp r5, 0
- ble _0804609A
- movs r0, 0x1
- strb r0, [r7]
- movs r3, 0x1
- b _080460BE
-_0804609A:
- movs r1, 0
- movs r4, 0x8
-_0804609E:
- cmp r1, r6
- bcs _080460BE
- cmp r2, 0x7
- bls _080460BA
- adds r0, r7, r1
- strb r4, [r0]
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- b _0804609E
-_080460BA:
- adds r0, r7, r1
- strb r2, [r0]
-_080460BE:
- adds r0, r3, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804602C
-
- thumb_func_start sub_80460C8
-sub_80460C8: @ 80460C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- movs r3, 0x6
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_8045F58
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8046128
- ldr r0, [r5]
- cmp r0, 0x2F
- bgt _08046108
- ldr r0, [r6]
- lsls r0, 8
- lsrs r1, r0, 16
- b _0804610A
-_08046108:
- ldrh r1, [r6]
-_0804610A:
- movs r2, 0
- ldrsh r0, [r5, r2]
- lsls r1, 16
- asrs r1, 16
- mov r2, r8
- bl sub_804373C
- lsls r0, r7, 16
- asrs r0, 16
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80460C8
-
- thumb_func_start sub_8046128
-sub_8046128: @ 8046128
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- adds r5, r0, 0
- adds r3, r1, 0
- mov r8, r2
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_804602C
- movs r3, 0
- add r7, sp, 0x10
- mov r12, r7
- ldrb r0, [r5, 0xC]
- lsls r6, r0, 27
- ldr r4, [r5, 0x10]
-_08046154:
- lsls r2, r3, 1
- add r2, r12
- lsrs r1, r6, 15
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- ldrb r0, [r0]
- adds r0, r4, r0
- orrs r1, r0
- strh r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _08046154
- adds r0, r7, 0
- mov r1, r8
- movs r2, 0x6
- bl CpuSet
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8046128
-
- thumb_func_start sub_8046188
-sub_8046188: @ 8046188
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r3, 27
- lsrs r7, r3, 24
- subs r5, r0, r1
- cmp r5, 0
- bge _0804619A
- movs r5, 0
- b _080461A0
-_0804619A:
- cmp r5, r6
- ble _080461A0
- adds r5, r6, 0
-_080461A0:
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- subs r0, r4, r0
- cmp r0, 0
- bge _080461C8
- negs r0, r0
-_080461C8:
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8046188
-
- thumb_func_start sub_80461D4
-sub_80461D4: @ 80461D4
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- muls r0, r2
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080461F8
- cmp r4, 0
- ble _080461F8
- movs r0, 0x1
-_080461F8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80461D4
-
- thumb_func_start sub_8046200
-sub_8046200: @ 8046200
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08046212
- movs r0, 0x4
- b _0804622E
-_08046212:
- movs r2, 0x30
- bl sub_80461D4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x3
- cmp r1, 0x18
- bhi _0804622E
- movs r0, 0x2
- cmp r1, 0x9
- bhi _0804622E
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0804622E:
- pop {r1}
- bx r1
- thumb_func_end sub_8046200
-
- thumb_func_start sub_8046234
-sub_8046234: @ 8046234
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r5, _0804636C
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08046370
- cmp r0, r1
- bne _08046266
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08046374
- bl LoadCompressedObjectPalette
-_08046266:
- ldr r0, _08046378
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r0, _0804637C
- adds r5, r0
- strh r4, [r5, 0x30]
- ldr r0, _08046380
- mov r9, r0
- lsls r6, 16
- asrs r0, r6, 16
- mov r10, r0
- ldr r0, _08046384
- adds r6, r0
- asrs r6, 16
- lsls r4, r7, 16
- asrs r7, r4, 16
- adds r4, r0
- asrs r4, 16
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0804637C
- adds r1, r0
- mov r0, r8
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r1, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804636C: .4byte gUnknown_081FAEA4
-_08046370: .4byte 0xffff0000
-_08046374: .4byte gUnknown_081FAEAC
-_08046378: .4byte sub_8046388
-_0804637C: .4byte 0x02020004
-_08046380: .4byte gSpriteTemplate_81FAF0C
-_08046384: .4byte 0xfff00000
- thumb_func_end sub_8046234
-
- thumb_func_start sub_8046388
-sub_8046388: @ 8046388
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463C0
- ldr r0, _080463B4
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _080463B8
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463BC
- adds r0, r4, 0
- bl DestroySprite
- b _080463C0
- .align 2, 0
-_080463B4: .4byte gUnknown_081FAEA4
-_080463B8: .4byte gUnknown_081FAEAC
-_080463BC:
- ldr r0, _080463C8
- str r0, [r4, 0x1C]
-_080463C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080463C8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046388
-
- thumb_func_start sub_80463CC
-sub_80463CC: @ 80463CC
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080463F6
- ldr r2, _080463FC
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- subs r1, 0x1
- strh r1, [r0, 0x2E]
- adds r0, r3, 0
- bl DestroySprite
-_080463F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080463FC: .4byte 0x02020004
- thumb_func_end sub_80463CC
-
- thumb_func_start sub_8046400
-sub_8046400: @ 8046400
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _08046450
- movs r0, 0x1
- strb r0, [r1]
- ldr r6, _08046454
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08046458
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0804645C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046460
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldrb r0, [r6]
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08046450: .4byte 0x02024e6d
-_08046454: .4byte 0x02024a60
-_08046458: .4byte 0x02017810
-_0804645C: .4byte sub_8046464
-_08046460: .4byte 0x03004b20
- thumb_func_end sub_8046400
-
- thumb_func_start sub_8046464
-sub_8046464: @ 8046464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- ldr r1, _08046498
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0804649C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- b _08046616
- .align 2, 0
-_08046498: .4byte 0x03004b20
-_0804649C:
- ldrh r0, [r1, 0xC]
- mov r8, r0
- ldrb r5, [r1, 0xE]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080464C8
- ldr r1, _080464C0
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080464C4
- b _080464D6
- .align 2, 0
-_080464C0: .4byte 0x02024a6a
-_080464C4: .4byte 0x030045c0
-_080464C8:
- ldr r1, _08046544
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08046548
-_080464D6:
- adds r0, r1
- movs r1, 0x26
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0804654C
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08046550
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- adds r4, r6, r2
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- movs r3, 0
- strh r3, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x3C]
- mov r2, r8
- cmp r2, 0xFE
- beq _0804655C
- cmp r2, 0xFF
- bne _08046598
- ldr r0, _08046554
- strb r5, [r0]
- movs r0, 0x18
- strh r0, [r4, 0x20]
- movs r0, 0x44
- strh r0, [r4, 0x22]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046558
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046544: .4byte 0x02024a6a
-_08046548: .4byte 0x03004360
-_0804654C: .4byte gSpriteTemplate_820AAB4
-_08046550: .4byte 0x02020004
-_08046554: .4byte 0x02024c08
-_08046558: .4byte sub_8047074
-_0804655C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x22]
- ldr r0, _08046590
- strb r5, [r0]
- movs r3, 0
- strh r3, [r4, 0x2E]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046594
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046590: .4byte 0x02024c08
-_08046594: .4byte sub_8047254
-_08046598:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080465C4
- strb r0, [r1]
- movs r0, 0x1
- str r0, [sp]
-_080465A6:
- ldr r0, _080465C8
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r4, r1, r0
- ldr r5, _080465C4
- ldrb r0, [r5]
- strh r0, [r4, 0x3A]
- ldr r2, [sp]
- cmp r2, 0
- bne _080465CC
- mov r0, r10
- bl DestroyTask
- b _08046616
- .align 2, 0
-_080465C4: .4byte 0x02024c08
-_080465C8: .4byte 0x02020004
-_080465CC:
- movs r0, 0x22
- strh r0, [r4, 0x2E]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r4, 0x36]
- ldr r0, _08046628
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- mov r3, r10
- strh r3, [r4, 0x6]
- ldr r1, _0804662C
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r5]
- strh r1, [r0, 0x10]
- ldr r1, _08046630
- str r1, [r0]
- movs r0, 0x3D
- bl audio_play
-_08046616:
- 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
-_08046628: .4byte 0x0000ffd8
-_0804662C: .4byte 0x03004b20
-_08046630: .4byte TaskDummy
- thumb_func_end sub_8046464
-
- thumb_func_start objc_0804ABD4
-objc_0804ABD4: @ 8046634
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080466D4
- ldrb r6, [r7, 0x6]
- ldr r1, _080466E0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x10]
- ldrb r0, [r0, 0xC]
- mov r8, r0
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r2, [r7, 0x22]
- adds r0, r2
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x24]
- strh r1, [r7, 0x26]
- strh r1, [r7, 0x38]
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r7, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x2E]
- strh r5, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, _080466E4
- str r0, [r7, 0x1C]
-_080466D4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080466E0: .4byte 0x03004b20
-_080466E4: .4byte sub_80466E8
- thumb_func_end objc_0804ABD4
-
- thumb_func_start sub_80466E8
-sub_80466E8: @ 80466E8
- ldr r1, _080466F0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080466F0: .4byte sub_80466F4
- thumb_func_end sub_80466E8
-
- thumb_func_start sub_80466F4
-sub_80466F4: @ 80466F4
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804674E
- strh r7, [r6, 0x38]
- ldr r0, _08046754
- str r0, [r6, 0x1C]
- ldr r5, _08046758
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804675C
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x30]
-_0804674E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046754: .4byte sub_8046760
-_08046758: .4byte 0x02024be0
-_0804675C: .4byte 0x02020004
- thumb_func_end sub_80466F4
-
- thumb_func_start sub_8046760
-sub_8046760: @ 8046760
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _08046778
- movs r0, 0x3C
- bl audio_play
-_08046778:
- ldr r6, _080467C4
- ldr r5, _080467C8
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080467D0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _080467CC
- str r0, [r4, 0x1C]
- b _080467F0
- .align 2, 0
-_080467C4: .4byte 0x02020004
-_080467C8: .4byte 0x02024be0
-_080467CC: .4byte sub_80467F8
-_080467D0:
- ldrh r0, [r1, 0x30]
- adds r0, 0x60
- strh r0, [r1, 0x30]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
-_080467F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046760
-
- thumb_func_start sub_80467F8
-sub_80467F8: @ 80467F8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046840
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046840
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl cosine
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl cosine
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08046848
- str r0, [r4, 0x1C]
-_08046840:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046848: .4byte sub_804684C
- thumb_func_end sub_80467F8
-
- thumb_func_start sub_804684C
-sub_804684C: @ 804684C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _08046862
- cmp r1, 0x1
- beq _080468D6
- b _08046902
-_08046862:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl cosine
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _08046902
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _080468AC
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _0804689E
- movs r5, 0x1
-_0804689E:
- cmp r0, 0x2
- beq _080468BE
- cmp r0, 0x2
- bgt _080468B0
- cmp r0, 0x1
- beq _080468B6
- b _080468CE
- .align 2, 0
-_080468AC: .4byte 0x00000101
-_080468B0:
- cmp r0, 0x3
- beq _080468C6
- b _080468CE
-_080468B6:
- movs r0, 0x38
- bl audio_play
- b _08046902
-_080468BE:
- movs r0, 0x39
- bl audio_play
- b _08046902
-_080468C6:
- movs r0, 0x3A
- bl audio_play
- b _08046902
-_080468CE:
- movs r0, 0x3B
- bl audio_play
- b _08046902
-_080468D6:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl cosine
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _08046902
- strh r5, [r4, 0x38]
- ldr r0, _08046928
- ands r0, r2
- strh r0, [r4, 0x34]
-_08046902:
- cmp r5, 0
- beq _0804693A
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl cosine
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08046930
- ldr r0, _0804692C
- str r0, [r4, 0x1C]
- b _0804693A
- .align 2, 0
-_08046928: .4byte 0xffffff00
-_0804692C: .4byte sub_8046C78
-_08046930:
- ldr r0, _08046940
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0804693A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046940: .4byte sub_8046944
- thumb_func_end sub_804684C
-
- thumb_func_start sub_8046944
-sub_8046944: @ 8046944
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046978
- movs r0, 0
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08046980
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl audio_play
-_08046978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046980: .4byte sub_8046984
- thumb_func_end sub_8046944
-
- thumb_func_start sub_8046984
-sub_8046984: @ 8046984
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x4
- bhi _08046A84
- lsls r0, r1, 2
- ldr r1, _0804699C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804699C: .4byte _080469A0
- .align 2, 0
-_080469A0:
- .4byte _080469B4
- .4byte _080469E6
- .4byte _080469B4
- .4byte _08046A3A
- .4byte _08046A84
-_080469B4:
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08046ACA
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- movs r0, 0
- strh r0, [r4, 0x38]
- b _08046ACA
-_080469E6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046A2C
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _08046A22
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A22:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A2C:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08046ACA
-_08046A3A:
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r2, [r4, 0x34]
- adds r0, r2
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08046A5C
- ldr r0, _08046A58
- str r0, [r4, 0x1C]
- b _08046ACA
- .align 2, 0
-_08046A58: .4byte sub_8046C78
-_08046A5C:
- cmp r1, 0x4
- bne _08046A70
- cmp r0, 0x3
- bne _08046A70
- ldr r0, _08046A6C
- str r0, [r4, 0x1C]
- b _08046A76
- .align 2, 0
-_08046A6C: .4byte sub_8046E7C
-_08046A70:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_08046A76:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _08046ACA
-_08046A84:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046ACA
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _08046AB8
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08046ABC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08046AC4
- .align 2, 0
-_08046AB8: .4byte 0xffffff00
-_08046ABC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08046AC4:
- movs r0, 0x17
- bl audio_play
-_08046ACA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8046984
-
- thumb_func_start sub_8046AD0
-sub_8046AD0: @ 8046AD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08046AFC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r6, [r0, 0xC]
- ldrb r3, [r0, 0xA]
- ldrh r5, [r0, 0x8]
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x20
- bhi _08046B88
- lsls r0, 2
- ldr r1, _08046B00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08046AFC: .4byte 0x03004b20
-_08046B00: .4byte _08046B04
- .align 2, 0
-_08046B04:
- .4byte _08046B88
- .4byte _08046BA6
- .4byte _08046BB2
- .4byte _08046BF6
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046BD0
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046C08
- .4byte _08046C20
- .4byte _08046C48
-_08046B88:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x18]
- movs r3, 0x18
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _08046BA0
- adds r0, r2, 0x1
- strh r0, [r1, 0x18]
- b _08046C72
-_08046BA0:
- adds r0, r6, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
-_08046BA6:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- bl cry_related
- b _08046BEE
-_08046BB2:
- bl sub_8075398
- ldr r1, _08046BCC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x1C]
- movs r1, 0x14
- strh r1, [r0, 0x26]
- b _08046C72
- .align 2, 0
-_08046BCC: .4byte 0x03004b20
-_08046BD0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _08046C5A
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8075114
-_08046BEE:
- adds r0, r4, 0
- bl DestroyTask
- b _08046C72
-_08046BF6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x1C]
- movs r1, 0x1E
- strh r1, [r0, 0x26]
- b _08046C72
-_08046C08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r3, 0x1C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08046C5A
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
-_08046C20:
- bl sub_80753C4
- lsls r0, 24
- cmp r0, 0
- bne _08046C72
- bl sub_8075398
- ldr r0, _08046C44
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
- .align 2, 0
-_08046C44: .4byte 0x03004b20
-_08046C48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08046C60
-_08046C5A:
- subs r0, r2, 0x1
- strh r0, [r1, 0x1C]
- b _08046C72
-_08046C60:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_8075114
- adds r0, r4, 0
- bl DestroyTask
-_08046C72:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046AD0
-
- thumb_func_start sub_8046C78
-sub_8046C78: @ 8046C78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldrh r1, [r6, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x2E]
- ldr r0, _08046D0C
- str r0, [r6, 0x1C]
- ldr r0, _08046D10
- ldr r1, _08046D14
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08046CE8
- b _08046E1C
-_08046CE8:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08046D20
- ldr r1, _08046D18
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D1C
- adds r0, r1, r0
- movs r3, 0x19
- mov r8, r3
- b _08046D34
- .align 2, 0
-_08046D0C: .4byte sub_8046E9C
-_08046D10: .4byte 0x03001770
-_08046D14: .4byte 0x0000043d
-_08046D18: .4byte 0x02024a6a
-_08046D1C: .4byte 0x030045c0
-_08046D20:
- ldr r1, _08046D90
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D94
- adds r0, r1, r0
- movs r1, 0xE7
- mov r8, r1
-_08046D34:
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046D5A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DAE
-_08046D5A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D98
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D9C
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08046DA4
- bl sub_80755D4
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046DA0
- bl m4aMPlayStop
- b _08046DAE
- .align 2, 0
-_08046D90: .4byte 0x02024a6a
-_08046D94: .4byte 0x03004360
-_08046D98: .4byte 0x02017840
-_08046D9C: .4byte 0x020239f8
-_08046DA0: .4byte 0x03007380
-_08046DA4:
- ldr r0, _08046DC8
- ldr r1, _08046DCC
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_08046DAE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DC4
- ldr r0, _08046DD0
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08046DD4
-_08046DC4:
- movs r4, 0
- b _08046DF6
- .align 2, 0
-_08046DC8: .4byte 0x03007380
-_08046DCC: .4byte 0x0000ffff
-_08046DD0: .4byte 0x02017840
-_08046DD4:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046DF0
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DF4
-_08046DF0:
- movs r4, 0x1
- b _08046DF6
-_08046DF4:
- movs r4, 0x2
-_08046DF6:
- ldr r0, _08046E6C
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046E70
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r7, [r1, 0x8]
- mov r3, r8
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r2, [r1, 0x26]
-_08046E1C:
- ldr r5, _08046E74
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08046E78
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r3, 0x3A
- ldrsh r0, [r6, r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046E6C: .4byte sub_8046AD0
-_08046E70: .4byte 0x03004b20
-_08046E74: .4byte 0x02024be0
-_08046E78: .4byte 0x02020004
- thumb_func_end sub_8046C78
-
- thumb_func_start sub_8046E7C
-sub_8046E7C: @ 8046E7C
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08046E98
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08046E98: .4byte sub_8046FBC
- thumb_func_end sub_8046E7C
-
- thumb_func_start sub_8046E9C
-sub_8046E9C: @ 8046E9C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r7, 0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08046F00
- ldr r0, _08046F04
- adds r3, r4, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046EDE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08046EDE:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08046F08
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r7, 0x1
- b _08046F24
- .align 2, 0
-_08046F00: .4byte 0x02020004
-_08046F04: .4byte 0x02024be0
-_08046F08:
- ldr r2, _08046FA8
- adds r0, r2, 0
- ldrh r2, [r1, 0x30]
- adds r0, r2
- strh r0, [r1, 0x30]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08046F24:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046FA0
- cmp r7, 0
- beq _08046FA0
- ldr r2, _08046FAC
- ldr r0, _08046FB0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r0, _08046FB4
- strb r2, [r0]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r4, _08046FB8
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
- movs r3, 0
- movs r5, 0x8
- adds r2, r4, 0
- movs r4, 0x3
-_08046F78:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08046F84
- adds r3, 0x1
-_08046F84:
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08046F78
- cmp r3, 0x4
- bne _08046FA0
- movs r4, 0
-_08046F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_804794C
- adds r4, 0x1
- cmp r4, 0xB
- ble _08046F92
-_08046FA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046FA8: .4byte 0xfffffee0
-_08046FAC: .4byte 0x02020004
-_08046FB0: .4byte 0x02024be0
-_08046FB4: .4byte 0x02024e6d
-_08046FB8: .4byte 0x02017810
- thumb_func_end sub_8046E9C
-
- thumb_func_start sub_8046FBC
-sub_8046FBC: @ 8046FBC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _08047056
- cmp r1, 0x5F
- bne _08046FF4
- ldr r0, _08046FEC
- movs r1, 0
- strb r1, [r0]
- bl m4aMPlayAllStop
- ldr r0, _08046FF0
- bl audio_play
- b _08047056
- .align 2, 0
-_08046FEC: .4byte 0x02024e6d
-_08046FF0: .4byte 0x00000173
-_08046FF4:
- ldr r0, _0804705C
- cmp r1, r0
- bne _08047056
- ldr r5, _08047060
- ldr r4, _08047064
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r6, 0
- bl DestroySpriteAndFreeResources
- ldr r0, _08047068
- ldr r1, _0804706C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08047056
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 2
- ldr r0, _08047070
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08047056:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804705C: .4byte 0x0000013b
-_08047060: .4byte 0x02020004
-_08047064: .4byte 0x02024be0
-_08047068: .4byte 0x03001770
-_0804706C: .4byte 0x0000043d
-_08047070: .4byte 0x02017810
- thumb_func_end sub_8046FBC
-
- thumb_func_start sub_8047074
-sub_8047074: @ 8047074
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x19
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x36]
- ldr r0, _080470BC
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x6]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080470C0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080470BC: .4byte 0x0000ffe2
-_080470C0: .4byte sub_80470C4
- thumb_func_end sub_8047074
-
- thumb_func_start sub_80470C4
-sub_80470C4: @ 80470C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- lsrs r0, 8
- subs r0, 0x23
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2C
- bhi _080471B8
- ldrh r1, [r5, 0x6]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- bne _08047126
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x2
- negs r1, r1
- adds r4, r1, 0
- ands r0, r4
- orrs r6, r0
- strh r6, [r5, 0x30]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- ands r0, r4
- orrs r7, r0
- strh r7, [r5, 0x32]
- adds r0, r5, 0
- movs r1, 0x4
- bl StartSpriteAffineAnim
-_08047126:
- ldrh r4, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, r1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 24
- mov r2, r8
- ands r0, r2
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- bl sine
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r5, 0x6]
- adds r0, r1
- strh r0, [r5, 0x6]
- lsls r0, 16
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08047176
- strh r4, [r5, 0x2E]
- b _0804717E
-_08047176:
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, 0x1
- strh r0, [r5, 0x2E]
-_0804717E:
- ldrh r0, [r5, 0x3C]
- lsrs r0, 8
- cmp r0, 0x4F
- ble _08047220
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x2
- negs r1, r1
- adds r2, r1, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r5, 0x30]
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- ands r0, r2
- orrs r0, r7
- strh r0, [r5, 0x32]
- b _08047220
-_080471B8:
- adds r0, r5, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08047220
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldrb r0, [r5, 0x6]
- strh r0, [r5, 0x3A]
- strh r1, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08047214
- ldr r0, _0804720C
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08047214
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08047214
- ldr r0, _08047210
- b _08047216
- .align 2, 0
-_0804720C: .4byte 0x02017840
-_08047210: .4byte sub_8047230
-_08047214:
- ldr r0, _0804722C
-_08047216:
- str r0, [r5, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
-_08047220:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804722C: .4byte sub_8046C78
- thumb_func_end sub_80470C4
-
- thumb_func_start sub_8047230
-sub_8047230: @ 8047230
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _0804724A
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldr r0, _08047250
- str r0, [r2, 0x1C]
-_0804724A:
- pop {r0}
- bx r0
- .align 2, 0
-_08047250: .4byte sub_8046C78
- thumb_func_end sub_8047230
-
- thumb_func_start sub_8047254
-sub_8047254: @ 8047254
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080472A4
- movs r0, 0
- strh r0, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080472A0
- ldr r0, _08047298
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080472A0
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080472A0
- ldr r0, _0804729C
- b _080472A2
- .align 2, 0
-_08047298: .4byte 0x02017840
-_0804729C: .4byte sub_8047230
-_080472A0:
- ldr r0, _080472AC
-_080472A2:
- str r0, [r5, 0x1C]
-_080472A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080472AC: .4byte sub_8046C78
- thumb_func_end sub_8047254
-
- thumb_func_start sub_80472B0
-sub_80472B0: @ 80472B0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80472B0
-
- thumb_func_start sub_80472D8
-sub_80472D8: @ 80472D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80472D8
-
- thumb_func_start AddTextPrinterForMessage
-AddTextPrinterForMessage: @ 80472F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r9, r2
- mov r10, r3
- ldr r6, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r0, [sp, 0x2C]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080473BC
- bl LoadCompressedObjectPic
- ldr r0, _080473C0
- bl LoadCompressedObjectPalette
- ldr r0, _080473C4
- mov r1, r9
- mov r2, r10
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080473C8
- mov r8, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4, r3
- strh r5, [r1, 0x2E]
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- add r2, r8
- ldrh r0, [r2, 0x20]
- strh r0, [r1, 0x38]
- ldrh r0, [r2, 0x22]
- strh r0, [r1, 0x3A]
- mov r0, r9
- strh r0, [r2, 0x20]
- mov r3, r10
- strh r3, [r2, 0x22]
- strh r7, [r1, 0x30]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x32]
- mov r3, sp
- ldrh r3, [r3, 0x30]
- strh r3, [r1, 0x34]
- ldr r3, [sp, 0x30]
- lsrs r0, r3, 16
- strh r0, [r1, 0x36]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r6
- strb r0, [r1, 0x5]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _080473CC
- str r0, [r4]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- 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
-_080473BC: .4byte gUnknown_0820A92C
-_080473C0: .4byte gUnknown_0820A98C
-_080473C4: .4byte gSpriteTemplate_820AAB4
-_080473C8: .4byte 0x02020004
-_080473CC: .4byte sub_80473D0
- thumb_func_end AddTextPrinterForMessage
-
- thumb_func_start sub_80473D0
-sub_80473D0: @ 80473D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r1, [r6, 0x30]
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0804747C
- ldrh r0, [r6, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r4, [r6, 0x34]
- ldrh r0, [r6, 0x36]
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804740A
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0804740C
-_0804740A:
- movs r5, 0
-_0804740C:
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r5, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r4, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x30]
- ldr r0, _08047474
- str r0, [r6, 0x1C]
- ldr r0, _08047478
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r4, 0x30]
- strh r5, [r6, 0x3C]
- b _08047480
- .align 2, 0
-_08047474: .4byte sub_804748C
-_08047478: .4byte 0x02020004
-_0804747C:
- subs r0, r1, 0x1
- strh r0, [r6, 0x30]
-_08047480:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80473D0
-
- thumb_func_start sub_804748C
-sub_804748C: @ 804748C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r0, 0
- mov r12, r0
- movs r6, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080474B6
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080474B6:
- ldr r0, _08047544
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r5, r1, r0
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080474D8
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r1, 0x1
- mov r12, r1
-_080474D8:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r7, 0x20
- ldrsh r1, [r4, r7]
- subs r0, r1
- movs r1, 0x3C
- ldrsh r2, [r4, r1]
- muls r0, r2
- cmp r0, 0
- bge _080474EE
- adds r0, 0x7F
-_080474EE:
- asrs r0, 7
- ldrh r7, [r4, 0x20]
- adds r0, r7
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r7, 0x22
- ldrsh r1, [r4, r7]
- subs r0, r1
- muls r0, r2
- cmp r0, 0
- bge _0804750A
- adds r0, 0x7F
-_0804750A:
- asrs r0, 7
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r3, [r5, 0x20]
- strh r0, [r5, 0x22]
- ldrh r2, [r4, 0x3C]
- movs r7, 0x3C
- ldrsh r0, [r4, r7]
- cmp r0, 0x7F
- bgt _0804754C
- ldr r1, _08047548
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08047530
- adds r0, 0x7
-_08047530:
- asrs r0, 3
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- adds r1, r2, 0x4
- strh r1, [r4, 0x3C]
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- b _0804755A
- .align 2, 0
-_08047544: .4byte 0x02020004
-_08047548: .4byte gUnknown_08208344
-_0804754C:
- ldrh r0, [r4, 0x38]
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x3A]
- strh r0, [r5, 0x22]
- strh r6, [r5, 0x24]
- strh r6, [r5, 0x26]
- movs r6, 0x1
-_0804755A:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047578
- mov r2, r12
- cmp r2, 0
- beq _08047578
- cmp r6, 0
- beq _08047578
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
-_08047578:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804748C
-
- thumb_func_start sub_8047580
-sub_8047580: @ 8047580
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r6, r2, 0
- mov r8, r3
- ldr r5, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r0, [sp, 0x28]
- mov r9, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _08047624
- bl LoadCompressedObjectPic
- ldr r0, _08047628
- bl LoadCompressedObjectPalette
- ldr r0, _0804762C
- adds r1, r6, 0
- mov r2, r8
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08047630
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r6
- mov r1, r10
- strh r1, [r2, 0x2E]
- mov r4, r9
- strh r4, [r2, 0x30]
- strh r7, [r2, 0x32]
- mov r1, sp
- ldrh r1, [r1, 0x2C]
- strh r1, [r2, 0x34]
- ldr r4, [sp, 0x2C]
- lsrs r1, r4, 16
- strh r1, [r2, 0x36]
- movs r1, 0x3
- ands r5, r1
- lsls r5, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r5
- strb r1, [r2, 0x5]
- adds r6, 0x1C
- adds r3, r6
- ldr r1, _08047634
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08047624: .4byte gUnknown_0820A92C
-_08047628: .4byte gUnknown_0820A98C
-_0804762C: .4byte gSpriteTemplate_820AAB4
-_08047630: .4byte 0x02020004
-_08047634: .4byte sub_8047638
- thumb_func_end sub_8047580
-
- thumb_func_start sub_8047638
-sub_8047638: @ 8047638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080476D0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r5, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- orrs r5, r0
- adds r0, r4, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _08047672
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _08047674
-_08047672:
- movs r6, 0
-_08047674:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r6, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r5, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x30]
- ldr r0, _080476C8
- str r0, [r4, 0x1C]
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _080476CC
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- strh r5, [r4, 0x30]
- b _080476D4
- .align 2, 0
-_080476C8: .4byte sub_80476E0
-_080476CC: .4byte 0x02020004
-_080476D0:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_080476D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8047638
-
- thumb_func_start sub_80476E0
-sub_80476E0: @ 80476E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080476F8
- movs r0, 0x3C
- bl audio_play
-_080476F8:
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08047734
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0804773C
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r5, 0x38]
- ldr r0, _08047738
- str r0, [r5, 0x1C]
- b _0804774C
- .align 2, 0
-_08047734: .4byte 0x02020004
-_08047738: .4byte sub_8047754
-_0804773C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x60
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- asrs r0, 8
- strh r0, [r4, 0x26]
-_0804774C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80476E0
-
- thumb_func_start sub_8047754
-sub_8047754: @ 8047754
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047768
- ldr r0, _0804776C
- str r0, [r2, 0x1C]
-_08047768:
- pop {r0}
- bx r0
- .align 2, 0
-_0804776C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047754
-
- thumb_func_start obj_delete_and_free_associated_resources_
-obj_delete_and_free_associated_resources_: @ 8047770
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end obj_delete_and_free_associated_resources_
-
- thumb_func_start sub_804777C
-sub_804777C: @ 804777C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _080477FC
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08047800
- adds r4, r0, r6
- movs r1, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x73
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldr r0, _08047804
- str r0, [r4, 0x1C]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080477CA
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080477CA:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080477F4
- ldr r0, _08047808
- str r0, [r4, 0x1C]
-_080477F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080477FC: .4byte 0x03004340
-_08047800: .4byte 0x02020004
-_08047804: .4byte sub_8047830
-_08047808: .4byte sub_804780C
- thumb_func_end sub_804777C
-
- thumb_func_start sub_804780C
-sub_804780C: @ 804780C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _08047826
- movs r0, 0
- strh r0, [r1, 0x30]
- ldr r0, _0804782C
- str r0, [r1, 0x1C]
-_08047826:
- pop {r0}
- bx r0
- .align 2, 0
-_0804782C: .4byte sub_8047830
- thumb_func_end sub_804780C
-
- thumb_func_start sub_8047830
-sub_8047830: @ 8047830
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- ldrh r1, [r2, 0x30]
- subs r0, r1
- strh r0, [r2, 0x26]
- ldr r0, [r2, 0x24]
- cmp r0, 0
- bne _0804784E
- ldr r0, _08047854
- str r0, [r2, 0x1C]
-_0804784E:
- pop {r0}
- bx r0
- .align 2, 0
-_08047854: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047830
-
- thumb_func_start sub_8047858
-sub_8047858: @ 8047858
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08047890
- adds r0, r5, 0
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08047894
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r2
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _08047898
- adds r4, r0
- ldrb r0, [r4]
- strh r0, [r3, 0x30]
- adds r2, 0x1C
- adds r1, r2
- str r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047890: .4byte oamc_804BEB4
-_08047894: .4byte 0x02020004
-_08047898: .4byte 0x03004340
- thumb_func_end sub_8047858
-
- thumb_func_start oamc_804BEB4
-oamc_804BEB4: @ 804789C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080478D8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r0, [r3, 0x2E]
- movs r2, 0
- strh r0, [r1, 0x26]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080478D4
- strh r2, [r1, 0x24]
- strh r2, [r1, 0x26]
- adds r0, r3, 0
- bl DestroySprite
-_080478D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080478D8: .4byte 0x02020004
- thumb_func_end oamc_804BEB4
-
- thumb_func_start sub_80478DC
-sub_80478DC: @ 80478DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08047938
- lsls r6, r4, 3
- adds r5, r6, r0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _0804793C
- cmp r0, r1
- bne _08047904
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08047940
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_08047904:
- cmp r4, 0x6
- beq _08047930
- cmp r4, 0x6
- blt _08047914
- cmp r4, 0xB
- bgt _08047914
- cmp r4, 0xA
- bge _08047930
-_08047914:
- ldr r1, _08047938
- lsls r0, r4, 3
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _08047944
- lsrs r1, 11
- ldr r2, _08047948
- adds r1, r2
- bl LZDecompressVram
-_08047930:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047938: .4byte gUnknown_0820A92C
-_0804793C: .4byte 0xffff0000
-_08047940: .4byte gUnknown_0820A98C
-_08047944: .4byte gUnknown_08D030D0
-_08047948: .4byte 0x06010100
- thumb_func_end sub_80478DC
-
- thumb_func_start sub_804794C
-sub_804794C: @ 804794C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _08047970
- lsrs r4, 21
- adds r0, r4, r0
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _08047974
- adds r4, r0
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047970: .4byte gUnknown_0820A92C
-_08047974: .4byte gUnknown_0820A98C
- thumb_func_end sub_804794C
-
- thumb_func_start sub_8047978
-sub_8047978: @ 8047978
- 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 _080479A4
- ldr r1, _0804799C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479A0
- b _080479B2
- .align 2, 0
-_0804799C: .4byte 0x02024a6a
-_080479A0: .4byte 0x030045c0
-_080479A4:
- ldr r1, _080479C4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479C8
-_080479B2:
- adds r0, r1
- movs r1, 0x26
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080479C4: .4byte 0x02024a6a
-_080479C8: .4byte 0x03004360
- thumb_func_end sub_8047978
-
- thumb_func_start CheckForFlashMemory
-CheckForFlashMemory: @ 80479CC
- push {lr}
- bl IdentifyFlash
- lsls r0, 16
- cmp r0, 0
- bne _080479E8
- ldr r1, _080479E4
- movs r0, 0x1
- str r0, [r1]
- bl InitFlashTimer
- b _080479EE
- .align 2, 0
-_080479E4: .4byte 0x03004820
-_080479E8:
- ldr r1, _080479F4
- movs r0, 0
- str r0, [r1]
-_080479EE:
- pop {r0}
- bx r0
- .align 2, 0
-_080479F4: .4byte 0x03004820
- thumb_func_end CheckForFlashMemory
-
- thumb_func_start sub_80479F8
-sub_80479F8: @ 80479F8
- ldr r0, _08047A00
- ldrb r0, [r0, 0x9]
- bx lr
- .align 2, 0
-_08047A00: .4byte 0x02024ea4
- thumb_func_end sub_80479F8
-
- thumb_func_start sub_8047A04
-sub_8047A04: @ 8047A04
- ldr r1, _08047A0C
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A0C: .4byte 0x02024ea4
- thumb_func_end sub_8047A04
-
- thumb_func_start sub_8047A10
-sub_8047A10: @ 8047A10
- ldr r1, _08047A18
- movs r0, 0x1
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A18: .4byte 0x02024ea4
- thumb_func_end sub_8047A10
-
- thumb_func_start sub_8047A1C
-sub_8047A1C: @ 8047A1C
- push {lr}
- movs r0, 0
- bl gpu_sync_bg_hide
- ldr r1, _08047A30
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_08047A30: .4byte 0x02024ea4
- thumb_func_end sub_8047A1C
-
- thumb_func_start sub_8047A34
-sub_8047A34: @ 8047A34
- ldr r1, _08047A3C
- movs r0, 0
- strb r0, [r1, 0x9]
- bx lr
- .align 2, 0
-_08047A3C: .4byte 0x02024ea4
- thumb_func_end sub_8047A34
-
- thumb_func_start sub_8047A40
-sub_8047A40: @ 8047A40
- push {r4-r6,lr}
- ldr r2, _08047A78
- ldr r0, _08047A7C
- ldrb r1, [r0]
- movs r3, 0x8D
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- movs r6, 0
- movs r0, 0x8E
- lsls r0, 2
- adds r5, r2, r0
- movs r4, 0
-_08047A5A:
- ldr r1, _08047A80
- adds r1, r4, r1
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- adds r6, 0x1
- cmp r6, 0x5
- ble _08047A5A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047A78: .4byte 0x02025734
-_08047A7C: .4byte 0x03004350
-_08047A80: .4byte 0x03004360
- thumb_func_end sub_8047A40
-
- thumb_func_start copy_player_party_from_sav1
-copy_player_party_from_sav1: @ 8047A84
- push {r4-r6,lr}
- ldr r0, _08047AC0
- ldr r1, _08047AC4
- movs r2, 0x8D
- lsls r2, 2
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _08047AC8
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r4, r0
-_08047A9E:
- ldr r1, _08047AC4
- adds r1, r5, r1
- movs r2, 0x8E
- lsls r2, 2
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _08047A9E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AC0: .4byte 0x03004350
-_08047AC4: .4byte 0x02025734
-_08047AC8: .4byte 0x03004360
- thumb_func_end copy_player_party_from_sav1
-
- thumb_func_start sub_8047ACC
-sub_8047ACC: @ 8047ACC
- push {r4-r7,lr}
- ldr r0, _08047AFC
- ldr r4, _08047B00
- movs r1, 0x9E
- lsls r1, 4
- adds r3, r0, r1
- movs r2, 0xF
-_08047ADA:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047ADA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047AFC: .4byte 0x02025734
-_08047B00: .4byte 0x030048a0
- thumb_func_end sub_8047ACC
-
- thumb_func_start save_deserialize_npcs
-save_deserialize_npcs: @ 8047B04
- push {r4-r7,lr}
- ldr r0, _08047B34
- movs r1, 0x9E
- lsls r1, 4
- adds r4, r0, r1
- ldr r3, _08047B38
- movs r2, 0xF
-_08047B12:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047B12
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047B34: .4byte 0x02025734
-_08047B38: .4byte 0x030048a0
- thumb_func_end save_deserialize_npcs
-
- thumb_func_start save_serialize_game
-save_serialize_game: @ 8047B3C
- push {lr}
- bl sub_8047A40
- bl sub_8047ACC
- pop {r0}
- bx r0
- thumb_func_end save_serialize_game
-
- thumb_func_start save_deserialize_game
-save_deserialize_game: @ 8047B4C
- push {lr}
- bl copy_player_party_from_sav1
- bl save_deserialize_npcs
- pop {r0}
- bx r0
- thumb_func_end save_deserialize_game
-
- thumb_func_start copy_bags_and_unk_data_from_save_blocks
-copy_bags_and_unk_data_from_save_blocks: @ 8047B5C
- push {r4-r7,lr}
- ldr r0, _08047C0C
- movs r1, 0xAC
- lsls r1, 3
- adds r3, r0, r1
- ldr r1, _08047C10
- movs r2, 0x13
-_08047B6A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B6A
- ldr r1, _08047C10
- ldr r0, _08047C0C
- movs r2, 0xB6
- lsls r2, 3
- adds r3, r0, r2
- adds r1, 0x50
- movs r2, 0x13
-_08047B82:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B82
- ldr r1, _08047C10
- ldr r0, _08047C0C
- movs r5, 0xC0
- lsls r5, 3
- adds r3, r0, r5
- adds r1, 0xA0
- movs r2, 0xF
-_08047B9A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047B9A
- ldr r1, _08047C10
- ldr r0, _08047C0C
- movs r6, 0xC8
- lsls r6, 3
- adds r3, r0, r6
- adds r1, 0xE0
- movs r2, 0x3F
-_08047BB2:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BB2
- ldr r1, _08047C10
- ldr r0, _08047C0C
- movs r7, 0xE8
- lsls r7, 3
- adds r3, r0, r7
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0
- movs r2, 0x2D
-_08047BCE:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047BCE
- ldr r0, _08047C10
- ldr r4, _08047C0C
- movs r1, 0xA6
- lsls r1, 2
- adds r3, r0, r1
- ldr r2, _08047C14
- mov r12, r2
- movs r2, 0xF
-_08047BE8:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047BE8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047C0C: .4byte 0x02025734
-_08047C10: .4byte 0x020291f4
-_08047C14: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_from_save_blocks
-
- thumb_func_start copy_bags_and_unk_data_to_save_blocks
-copy_bags_and_unk_data_to_save_blocks: @ 8047C18
- push {r4-r7,lr}
- ldr r0, _08047CCC
- ldr r3, _08047CD0
- movs r2, 0xAC
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x13
-_08047C26:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C26
- ldr r1, _08047CCC
- ldr r0, _08047CD0
- adds r3, r0, 0
- adds r3, 0x50
- movs r5, 0xB6
- lsls r5, 3
- adds r1, r5
- movs r2, 0x13
-_08047C40:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C40
- ldr r1, _08047CCC
- ldr r0, _08047CD0
- adds r3, r0, 0
- adds r3, 0xA0
- movs r6, 0xC0
- lsls r6, 3
- adds r1, r6
- movs r2, 0xF
-_08047C5A:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C5A
- ldr r1, _08047CCC
- ldr r0, _08047CD0
- adds r3, r0, 0
- adds r3, 0xE0
- movs r7, 0xC8
- lsls r7, 3
- adds r1, r7
- movs r2, 0x3F
-_08047C74:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C74
- ldr r1, _08047CCC
- ldr r0, _08047CD0
- movs r2, 0xF0
- lsls r2, 1
- adds r3, r0, r2
- movs r5, 0xE8
- lsls r5, 3
- adds r1, r5
- movs r2, 0x2D
-_08047C90:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _08047C90
- ldr r0, _08047CCC
- ldr r4, _08047CD0
- ldr r6, _08047CD4
- adds r3, r0, r6
- movs r7, 0xA6
- lsls r7, 2
- mov r12, r7
- movs r2, 0xF
-_08047CAA:
- adds r1, r3, 0
- mov r5, r12
- adds r0, r4, r5
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r4, 0x24
- adds r3, 0x24
- subs r2, 0x1
- cmp r2, 0
- bge _08047CAA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047CCC: .4byte 0x02025734
-_08047CD0: .4byte 0x020291f4
-_08047CD4: .4byte 0x00002b4c
- thumb_func_end copy_bags_and_unk_data_to_save_blocks
-
- thumb_func_start sub_8047CD8
-sub_8047CD8: @ 8047CD8
- push {lr}
- ldr r0, _08047CE4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08047CE4: .4byte sub_8047EC0
- thumb_func_end sub_8047CD8
-
- thumb_func_start sub_8047CE8
-sub_8047CE8: @ 8047CE8
- push {r4-r6,lr}
- ldr r6, _08047D44
- ldr r5, _08047D48
- ldr r1, [r5]
- ldr r2, _08047D4C
- adds r0, r6, 0
- movs r3, 0xC
- bl sub_804AFB8
- bl GetMultiplayerId
- lsls r0, 24
- ldr r1, [r5, 0xC]
- movs r3, 0x80
- lsls r3, 17
- eors r3, r0
- lsrs r3, 24
- lsls r2, r3, 3
- subs r2, r3
- lsls r2, 2
- ldr r0, _08047D50
- adds r2, r0
- adds r0, r6, 0
- movs r3, 0xC
- bl sub_804AFB8
- ldr r1, [r5, 0x18]
- ldr r4, _08047D54
- ldr r2, [r4]
- adds r0, r6, 0
- movs r3, 0x8
- bl sub_804AFB8
- ldr r0, [r4, 0x4]
- ldr r1, [r5, 0x20]
- movs r2, 0x14
- bl sub_804ACD8
- movs r0, 0x3
- movs r1, 0
- bl nullsub_5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047D44: .4byte gWindowConfig_81E725C
-_08047D48: .4byte 0x020296cc
-_08047D4C: .4byte 0x02024ea4
-_08047D50: .4byte 0x03002978
-_08047D54: .4byte gUnknown_0820C14C
- thumb_func_end sub_8047CE8
-
- thumb_func_start sub_8047D58
-sub_8047D58: @ 8047D58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r0, _08047E30
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- cmp r0, 0x5
- bls _08047D72
- movs r1, 0x1
-_08047D72:
- movs r5, 0
- lsls r2, r1, 2
- mov r6, sp
- ldr r0, _08047E34
- adds r1, r0, 0x1
- adds r1, r2
- mov r8, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r4, r0, 16
-_08047D86:
- mov r1, sp
- ldr r0, _08047E38
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldrh r0, [r6]
- adds r0, r5
- strh r0, [r6]
- asrs r1, r4, 16
- mov r0, sp
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r4, r7
- adds r5, 0x1
- cmp r5, 0x2
- ble _08047D86
- bl GetMultiplayerId
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- eors r1, r0
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08047E3C
- adds r0, r1
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- cmp r0, 0x5
- bls _08047DDA
- movs r1, 0x1
-_08047DDA:
- movs r5, 0
- lsls r2, r1, 2
- mov r6, sp
- ldr r0, _08047E40
- adds r1, r2, r0
- mov r8, r1
- subs r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r4, r0, 16
-_08047DEE:
- mov r1, sp
- ldr r0, _08047E38
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r5, 0x3
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r6]
- asrs r1, r4, 16
- mov r0, sp
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r4, r7
- adds r5, 0x1
- cmp r5, 0x2
- ble _08047DEE
- movs r0, 0x5
- movs r1, 0
- bl nullsub_5
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047E30: .4byte 0x02024ea4
-_08047E34: .4byte gUnknown_0820C2E6
-_08047E38: .4byte gSpriteTemplate_820C0EC
-_08047E3C: .4byte 0x03002978
-_08047E40: .4byte gUnknown_0820C2E9
- thumb_func_end sub_8047D58
-
- thumb_func_start sub_8047E44
-sub_8047E44: @ 8047E44
- push {r4-r7,lr}
- sub sp, 0x18
- movs r4, 0
- mov r5, sp
- movs r6, 0xD6
- lsls r6, 16
-_08047E50:
- mov r1, sp
- ldr r0, _08047EBC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0x6
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x98
- movs r3, 0x1
- bl CreateSprite
- movs r2, 0x80
- lsls r2, 14
- adds r6, r2
- adds r4, 0x1
- cmp r4, 0x1
- ble _08047E50
- movs r4, 0
- mov r5, sp
- movs r6, 0xC0
- lsls r6, 13
-_08047E84:
- mov r1, sp
- ldr r0, _08047EBC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0
- adds r0, 0x8
- ldrh r3, [r5]
- adds r0, r3
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x96
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r6, r7
- adds r4, 0x1
- cmp r4, 0x4
- ble _08047E84
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047EBC: .4byte gSpriteTemplate_820C0EC
- thumb_func_end sub_8047E44
-
- thumb_func_start sub_8047EC0
-sub_8047EC0: @ 8047EC0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r1, _08047EE4
- ldr r2, _08047EE8
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x15
- bls _08047ED8
- b _080484C6
-_08047ED8:
- lsls r0, 2
- ldr r1, _08047EEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08047EE4: .4byte 0x03001770
-_08047EE8: .4byte 0x0000043c
-_08047EEC: .4byte _08047EF0
- .align 2, 0
-_08047EF0:
- .4byte _08047F48
- .4byte _08048048
- .4byte _080480B4
- .4byte _080480E0
- .4byte _08048130
- .4byte _08048160
- .4byte _08048172
- .4byte _080482B4
- .4byte _080482DC
- .4byte _08048300
- .4byte _08048328
- .4byte _0804834C
- .4byte _08048360
- .4byte _080483B8
- .4byte _08048400
- .4byte _08048418
- .4byte _08048430
- .4byte _08048448
- .4byte _0804845A
- .4byte _08048470
- .4byte _08048488
- .4byte _080484A8
-_08047F48:
- ldr r5, _08048018
- ldr r6, _0804801C
- str r6, [r5]
- bl sub_804AA88
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, [r5]
- adds r0, 0xC8
- ldr r1, _08048020
- bl sub_804A964
- ldr r0, _08048024
- bl SetVBlankCallback
- ldr r0, _08048028
- bl sub_8071C4C
- ldr r4, _0804802C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl sub_8064EF4
- ldr r1, [r5]
- adds r1, 0x7A
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8064F08
- bl sub_8071EF4
- bl sub_809D51C
- ldr r0, [r5]
- adds r0, 0x75
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x80
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x81
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0xB4
- strb r4, [r0]
- ldr r0, _08048030
- strb r4, [r0]
- ldr r1, _08048034
- ldr r3, _08048038
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl sub_804AA0C
- add r0, sp, 0x10
- strh r4, [r0]
- movs r0, 0xC0
- lsls r0, 7
- adds r1, r6, r0
- ldr r2, _0804803C
- add r0, sp, 0x10
- bl CpuSet
- ldr r1, _08048040
- movs r2, 0xD8
- lsls r2, 7
- adds r6, r2
- adds r0, r1, 0
- adds r0, 0x30
- ldr r2, _08048044
-_0804800A:
- str r6, [r0]
- adds r6, r2
- subs r0, 0x4
- cmp r0, r1
- bge _0804800A
- b _080484C6
- .align 2, 0
-_08048018: .4byte 0x03004824
-_0804801C: .4byte 0x02017000
-_08048020: .4byte 0x06002800
-_08048024: .4byte sub_80489F4
-_08048028: .4byte gWindowConfig_81E6CE4
-_0804802C: .4byte gWindowConfig_81E6F84
-_08048030: .4byte 0x03000508
-_08048034: .4byte 0x03001770
-_08048038: .4byte 0x0000043c
-_0804803C: .4byte 0x01000680
-_08048040: .4byte 0x020296cc
-_08048044: .4byte 0xffffff00
-_08048048:
- ldr r1, _08048098
- ldr r3, _0804809C
- adds r0, r3, 0
- strh r0, [r1]
- bl OpenLink
- movs r6, 0
- movs r4, 0
-_08048058:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080480A0
- adds r0, r1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- movs r3, 0x20
- bl create_pokemon_set_level
- adds r6, 0x1
- cmp r6, 0x5
- ble _08048058
- ldr r1, _080480A4
- ldr r0, _080480A8
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _080480AC
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- ldr r0, _080480B0
- movs r1, 0x1
- bl CreateTask
- b _080484C6
- .align 2, 0
-_08048098: .4byte 0x03002b74
-_0804809C: .4byte 0x00001122
-_080480A0: .4byte 0x030045c0
-_080480A4: .4byte 0x03001770
-_080480A8: .4byte 0x0000043c
-_080480AC: .4byte 0x03004824
-_080480B0: .4byte sub_8083C50
-_080480B4:
- ldr r2, _080480D8
- ldr r1, [r2]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0xB4
- ldrb r0, [r1]
- cmp r0, 0xB
- bhi _080480CE
- b _080484C6
-_080480CE:
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080480DC
- adds r1, r3, r2
- b _08048498
- .align 2, 0
-_080480D8: .4byte 0x03004824
-_080480DC: .4byte 0x0000043c
-_080480E0:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080480F4
- b _080484C6
-_080480F4:
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _08048120
- ldr r0, _0804811C
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _08048114
- b _080484C6
-_08048114:
- bl sub_8007F4C
- b _08048492
- .align 2, 0
-_0804811C: .4byte 0x03004824
-_08048120:
- ldr r1, _08048128
- ldr r0, _0804812C
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048128: .4byte 0x03001770
-_0804812C: .4byte 0x0000043c
-_08048130:
- ldr r0, _08048154
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804813A
- b _080484C6
-_0804813A:
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08048148
- b _080484C6
-_08048148:
- bl calc_player_party_count
- ldr r1, _08048158
- ldr r2, _0804815C
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048154: .4byte 0x03002fa4
-_08048158: .4byte 0x03001770
-_0804815C: .4byte 0x0000043c
-_08048160:
- bl sub_8048D44
- lsls r0, 24
- cmp r0, 0
- bne _0804816C
- b _080484C6
-_0804816C:
- bl sub_804AF84
- b _08048492
-_08048172:
- bl calc_enemy_party_count
- ldr r4, _08048294
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x1D
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r0, [r4]
- ldr r1, _08048298
- ldrb r1, [r1]
- adds r0, 0x42
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0804829C
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- movs r6, 0
- ldr r0, [r4]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bge _08048216
- mov r8, r4
- ldr r7, _080482A0
-_080481BA:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080482A4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl PokemonGetField
- ldrb r2, [r7]
- lsls r2, 19
- movs r1, 0xE0
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080482A8
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080482AC
- bl sub_809D2FC
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x34
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- blt _080481BA
-_08048216:
- movs r6, 0
- ldr r1, _08048294
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bge _0804828A
- ldr r0, _080482A0
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0xC
-_0804822C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080482B0
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl PokemonGetField
- ldrb r2, [r7]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080482A8
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080482AC
- bl sub_809D2FC
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x3A
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- blt _0804822C
-_0804828A:
- movs r0, 0x2
- movs r1, 0
- bl nullsub_5
- b _08048492
- .align 2, 0
-_08048294: .4byte 0x03004824
-_08048298: .4byte 0x03004350
-_0804829C: .4byte 0x030045b8
-_080482A0: .4byte gUnknown_0820C29C
-_080482A4: .4byte 0x03004360
-_080482A8: .4byte 0xfff40000
-_080482AC: .4byte sub_809D62C
-_080482B0: .4byte 0x030045c0
-_080482B4:
- bl sub_806DA98
- ldr r0, _080482D0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0
- bl sub_806DB90
- ldr r1, _080482D4
- ldr r0, _080482D8
- adds r1, r0
- b _08048498
- .align 2, 0
-_080482D0: .4byte 0x03004824
-_080482D4: .4byte 0x03001770
-_080482D8: .4byte 0x0000043c
-_080482DC:
- ldr r0, _080482F4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0x1
- bl sub_806DB90
- ldr r1, _080482F8
- ldr r2, _080482FC
- adds r1, r2
- b _08048498
- .align 2, 0
-_080482F4: .4byte 0x03004824
-_080482F8: .4byte 0x03001770
-_080482FC: .4byte 0x0000043c
-_08048300:
- bl sub_8047CE8
- ldr r1, _0804831C
- ldr r3, _08048320
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08048324
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- b _080484C6
- .align 2, 0
-_0804831C: .4byte 0x03001770
-_08048320: .4byte 0x0000043c
-_08048324: .4byte 0x03004824
-_08048328:
- movs r0, 0x4
- movs r1, 0
- bl nullsub_5
- bl sub_804ABF8
- lsls r0, 24
- cmp r0, 0
- bne _0804833C
- b _080484C6
-_0804833C:
- ldr r1, _08048344
- ldr r0, _08048348
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048344: .4byte 0x03001770
-_08048348: .4byte 0x0000043c
-_0804834C:
- bl sub_8047D58
- ldr r1, _08048358
- ldr r2, _0804835C
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048358: .4byte 0x03001770
-_0804835C: .4byte 0x0000043c
-_08048360:
- bl sub_8047E44
- ldr r0, _080483A4
- ldr r2, _080483A8
- ldrb r1, [r2]
- lsls r1, 19
- movs r3, 0x80
- lsls r3, 14
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2, 0x1]
- lsls r2, 3
- movs r3, 0x2
- bl CreateSprite
- ldr r2, _080483AC
- ldr r1, [r2]
- adds r1, 0x40
- movs r3, 0
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x41
- strb r3, [r0]
- ldr r1, _080483B0
- ldr r0, _080483B4
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x6
- movs r1, 0
- bl nullsub_5
- b _080484C6
- .align 2, 0
-_080483A4: .4byte gSpriteTemplate_820C134
-_080483A8: .4byte gUnknown_0820C29C
-_080483AC: .4byte 0x03004824
-_080483B0: .4byte 0x03001770
-_080483B4: .4byte 0x0000043c
-_080483B8:
- movs r0, 0
- bl sub_804ACF4
- movs r0, 0
- bl sub_804A41C
- ldr r2, _080483F0
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- bl sub_8048C70
- ldr r1, _080483F4
- ldr r2, _080483F8
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x7
- movs r1, 0
- bl nullsub_5
- ldr r0, _080483FC
- bl sub_8075474
- b _080484C6
- .align 2, 0
-_080483F0: .4byte 0x03004824
-_080483F4: .4byte 0x03001770
-_080483F8: .4byte 0x0000043c
-_080483FC: .4byte 0x000001b3
-_08048400:
- movs r0, 0x1
- bl sub_804ACF4
- movs r0, 0x1
- bl sub_804A41C
- ldr r1, _08048428
- ldr r3, _0804842C
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08048418:
- movs r0, 0
- bl sub_8048B0C
- ldr r1, _08048428
- ldr r0, _0804842C
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048428: .4byte 0x03001770
-_0804842C: .4byte 0x0000043c
-_08048430:
- movs r0, 0x1
- bl sub_8048B0C
- ldr r1, _08048440
- ldr r2, _08048444
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048440: .4byte 0x03001770
-_08048444: .4byte 0x0000043c
-_08048448:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08048492
-_0804845A:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804846C
- adds r1, r3, r0
- b _08048498
- .align 2, 0
-_0804846C: .4byte 0x0000043c
-_08048470:
- movs r0, 0
- bl sub_804AE3C
- ldr r1, _08048480
- ldr r2, _08048484
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048480: .4byte 0x03001770
-_08048484: .4byte 0x0000043c
-_08048488:
- movs r0, 0x1
- bl sub_804AE3C
- bl sub_804AF10
-_08048492:
- ldr r1, _080484A0
- ldr r3, _080484A4
- adds r1, r3
-_08048498:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080484C6
- .align 2, 0
-_080484A0: .4byte 0x03001770
-_080484A4: .4byte 0x0000043c
-_080484A8:
- ldr r0, _080484E4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080484C6
- ldr r0, _080484E8
- str r0, [r3]
- ldr r0, _080484EC
- bl SetMainCallback2
- ldr r0, _080484F0
- strb r4, [r0]
-_080484C6:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080484E4: .4byte 0x0202f388
-_080484E8: .4byte sub_80494D8
-_080484EC: .4byte sub_8048AB4
-_080484F0: .4byte 0x03000508
- thumb_func_end sub_8047EC0
-
- thumb_func_start sub_80484F4
-sub_80484F4: @ 80484F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r1, _08048518
- ldr r2, _0804851C
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x15
- bls _0804850C
- b _080489CA
-_0804850C:
- lsls r0, 2
- ldr r1, _08048520
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048518: .4byte 0x03001770
-_0804851C: .4byte 0x0000043c
-_08048520: .4byte _08048524
- .align 2, 0
-_08048524:
- .4byte _0804857C
- .4byte _0804865C
- .4byte _08048668
- .4byte _08048674
- .4byte _08048680
- .4byte _08048694
- .4byte _080486A0
- .4byte _080487E8
- .4byte _08048810
- .4byte _08048834
- .4byte _0804885C
- .4byte _08048880
- .4byte _08048894
- .4byte _080489CA
- .4byte _080489CA
- .4byte _08048914
- .4byte _0804891C
- .4byte _08048950
- .4byte _08048970
- .4byte _08048988
- .4byte _08048994
- .4byte _080489B0
-_0804857C:
- ldr r5, _08048630
- ldr r6, _08048634
- str r6, [r5]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, [r5]
- adds r0, 0xC8
- ldr r1, _08048638
- bl sub_804A964
- ldr r0, _0804863C
- bl SetVBlankCallback
- ldr r0, _08048640
- bl sub_8071C4C
- ldr r4, _08048644
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl sub_8064EF4
- ldr r1, [r5]
- adds r1, 0x7A
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8064F08
- bl sub_8071EF4
- bl sub_809D51C
- ldr r0, [r5]
- adds r0, 0x75
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x80
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x81
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0xB4
- strb r4, [r0]
- ldr r0, _08048648
- strb r4, [r0]
- ldr r1, _0804864C
- ldr r3, _08048650
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08048654
- movs r5, 0xD8
- lsls r5, 7
- adds r6, r5
- adds r0, r1, 0
- adds r0, 0x30
- ldr r2, _08048658
-_08048622:
- str r6, [r0]
- adds r6, r2
- subs r0, 0x4
- cmp r0, r1
- bge _08048622
- b _080489CA
- .align 2, 0
-_08048630: .4byte 0x03004824
-_08048634: .4byte 0x02017000
-_08048638: .4byte 0x06002800
-_0804863C: .4byte sub_80489F4
-_08048640: .4byte gWindowConfig_81E6CE4
-_08048644: .4byte gWindowConfig_81E6F84
-_08048648: .4byte 0x03000508
-_0804864C: .4byte 0x03001770
-_08048650: .4byte 0x0000043c
-_08048654: .4byte 0x020296cc
-_08048658: .4byte 0xffffff00
-_0804865C:
- ldr r0, _08048664
- adds r1, r2, r0
- b _0804883E
- .align 2, 0
-_08048664: .4byte 0x0000043c
-_08048668:
- ldr r3, _08048670
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_08048670: .4byte 0x0000043c
-_08048674:
- ldr r5, _0804867C
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_0804867C: .4byte 0x0000043c
-_08048680:
- bl calc_player_party_count
- ldr r1, _0804868C
- ldr r0, _08048690
- adds r1, r0
- b _0804899E
- .align 2, 0
-_0804868C: .4byte 0x03001770
-_08048690: .4byte 0x0000043c
-_08048694:
- ldr r3, _0804869C
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_0804869C: .4byte 0x0000043c
-_080486A0:
- bl calc_enemy_party_count
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r4, _080487C0
- ldr r0, [r4]
- ldr r1, _080487C4
- ldrb r1, [r1]
- adds r0, 0x42
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080487C8
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- movs r0, 0
- bl sub_804A41C
- movs r0, 0x1
- bl sub_804A41C
- movs r6, 0
- ldr r0, [r4]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bge _0804873C
- mov r8, r4
- ldr r7, _080487CC
-_080486DE:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487D0
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl PokemonGetField
- ldrb r2, [r7]
- lsls r2, 19
- movs r1, 0xE0
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8
- bl sub_809D2FC
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x34
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- blt _080486DE
-_0804873C:
- movs r6, 0
- ldr r1, _080487C0
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bge _080487B0
- ldr r0, _080487CC
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0xC
-_08048752:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487DC
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl PokemonGetField
- ldrb r2, [r7]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8
- bl sub_809D2FC
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x3A
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- blt _08048752
-_080487B0:
- movs r0, 0x2
- movs r1, 0
- bl nullsub_5
- ldr r1, _080487E0
- ldr r3, _080487E4
- adds r1, r3
- b _0804899E
- .align 2, 0
-_080487C0: .4byte 0x03004824
-_080487C4: .4byte 0x03004350
-_080487C8: .4byte 0x030045b8
-_080487CC: .4byte gUnknown_0820C29C
-_080487D0: .4byte 0x03004360
-_080487D4: .4byte 0xfff40000
-_080487D8: .4byte sub_809D62C
-_080487DC: .4byte 0x030045c0
-_080487E0: .4byte 0x03001770
-_080487E4: .4byte 0x0000043c
-_080487E8:
- bl sub_806DA98
- ldr r0, _08048804
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0
- bl sub_806DB90
- ldr r1, _08048808
- ldr r5, _0804880C
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048804: .4byte 0x03004824
-_08048808: .4byte 0x03001770
-_0804880C: .4byte 0x0000043c
-_08048810:
- ldr r0, _08048828
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0x1
- bl sub_806DB90
- ldr r1, _0804882C
- ldr r0, _08048830
- adds r1, r0
- b _0804899E
- .align 2, 0
-_08048828: .4byte 0x03004824
-_0804882C: .4byte 0x03001770
-_08048830: .4byte 0x0000043c
-_08048834:
- bl sub_8047CE8
- ldr r1, _08048850
- ldr r2, _08048854
- adds r1, r2
-_0804883E:
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08048858
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- b _080489CA
- .align 2, 0
-_08048850: .4byte 0x03001770
-_08048854: .4byte 0x0000043c
-_08048858: .4byte 0x03004824
-_0804885C:
- movs r0, 0x4
- movs r1, 0
- bl nullsub_5
- bl sub_804ABF8
- lsls r0, 24
- cmp r0, 0
- bne _08048870
- b _080489CA
-_08048870:
- ldr r1, _08048878
- ldr r3, _0804887C
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048878: .4byte 0x03001770
-_0804887C: .4byte 0x0000043c
-_08048880:
- bl sub_8047D58
- ldr r1, _0804888C
- ldr r5, _08048890
- adds r1, r5
- b _0804899E
- .align 2, 0
-_0804888C: .4byte 0x03001770
-_08048890: .4byte 0x0000043c
-_08048894:
- bl sub_8047E44
- ldr r2, _080488AC
- ldr r0, _080488B0
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _080488B4
- ldrb r0, [r2, 0x9]
- b _080488B8
- .align 2, 0
-_080488AC: .4byte 0x02018000
-_080488B0: .4byte 0x03004824
-_080488B4:
- ldrb r0, [r2, 0x9]
- adds r0, 0x6
-_080488B8:
- strb r0, [r1]
- ldr r0, _08048900
- ldr r3, _08048904
- ldr r4, _08048908
- ldr r1, [r4]
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r2, 1
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 19
- movs r5, 0x80
- lsls r5, 14
- adds r1, r5
- asrs r1, 16
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- lsls r2, 3
- movs r3, 0x2
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x40
- strb r0, [r1]
- ldr r0, _0804890C
- ldr r1, _08048910
- adds r0, r1
- movs r1, 0xF
- strb r1, [r0]
- movs r0, 0x6
- movs r1, 0
- bl nullsub_5
- b _080489CA
- .align 2, 0
-_08048900: .4byte gSpriteTemplate_820C134
-_08048904: .4byte gUnknown_0820C29C
-_08048908: .4byte 0x03004824
-_0804890C: .4byte 0x03001770
-_08048910: .4byte 0x0000043c
-_08048914:
- movs r0, 0
- bl sub_8048B0C
- b _08048998
-_0804891C:
- movs r0, 0x1
- bl sub_8048B0C
- ldr r2, _08048944
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- bl sub_8048C70
- movs r0, 0x7
- movs r1, 0
- bl nullsub_5
- ldr r1, _08048948
- ldr r3, _0804894C
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048944: .4byte 0x03004824
-_08048948: .4byte 0x03001770
-_0804894C: .4byte 0x0000043c
-_08048950:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08048968
- ldr r5, _0804896C
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048968: .4byte 0x03001770
-_0804896C: .4byte 0x0000043c
-_08048970:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _08048984
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_08048984: .4byte 0x0000043c
-_08048988:
- ldr r0, _08048990
- adds r1, r2, r0
- b _0804899E
- .align 2, 0
-_08048990: .4byte 0x0000043c
-_08048994:
- bl sub_804AF10
-_08048998:
- ldr r1, _080489A8
- ldr r2, _080489AC
- adds r1, r2
-_0804899E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080489CA
- .align 2, 0
-_080489A8: .4byte 0x03001770
-_080489AC: .4byte 0x0000043c
-_080489B0:
- ldr r0, _080489E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080489CA
- ldr r0, _080489EC
- bl SetMainCallback2
- ldr r0, _080489F0
- strb r4, [r0]
-_080489CA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080489E8: .4byte 0x0202f388
-_080489EC: .4byte sub_8048AB4
-_080489F0: .4byte 0x03000508
- thumb_func_end sub_80484F4
-
- thumb_func_start sub_80489F4
-sub_80489F4: @ 80489F4
- push {lr}
- ldr r0, _08048A10
- ldr r0, [r0]
- adds r0, 0xC8
- bl sub_804A940
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08048A10: .4byte 0x03004824
- thumb_func_end sub_80489F4
-
- thumb_func_start sub_8048A14
-sub_8048A14: @ 8048A14
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08048A4C
- ldr r1, [r4]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _08048A44
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xA
- strb r1, [r0]
-_08048A44:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048A4C: .4byte 0x03004824
- thumb_func_end sub_8048A14
-
- thumb_func_start sub_8048A50
-sub_8048A50: @ 8048A50
- push {r4,lr}
- ldr r0, _08048A84
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08048A7E
- ldr r2, _08048A88
- ldr r4, _08048A8C
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r1, [r1]
- strb r1, [r2]
- adds r0, 0x8A
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- bl sub_800832C
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xD
- strb r1, [r0]
-_08048A7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048A84: .4byte 0x0202f388
-_08048A88: .4byte 0x020297d8
-_08048A8C: .4byte 0x03004824
- thumb_func_end sub_8048A50
-
- thumb_func_start sub_8048A90
-sub_8048A90: @ 8048A90
- push {lr}
- ldr r0, _08048AA8
- ldrb r1, [r0]
- cmp r1, 0
- bne _08048AA4
- ldr r0, _08048AAC
- str r1, [r0]
- ldr r0, _08048AB0
- bl SetMainCallback2
-_08048AA4:
- pop {r0}
- bx r0
- .align 2, 0
-_08048AA8: .4byte 0x03002fa4
-_08048AAC: .4byte 0x03001770
-_08048AB0: .4byte sub_804B41C
- thumb_func_end sub_8048A90
-
- thumb_func_start sub_8048AB4
-sub_8048AB4: @ 8048AB4
- push {r4,lr}
- bl sub_8049DE0
- bl sub_804AB30
- movs r0, 0
- bl sub_8049ED4
- movs r0, 0x1
- bl sub_8049ED4
- ldr r4, _08048B04
- ldr r3, _08048B08
- ldr r2, [r3]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r4, 0x4
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r2, 0x1]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048B04: .4byte 0x04000018
-_08048B08: .4byte 0x03004824
- thumb_func_end sub_8048AB4
-
- thumb_func_start sub_8048B0C
-sub_8048B0C: @ 8048B0C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08048B1C
- cmp r0, 0x1
- beq _08048BD0
- b _08048C3A
-_08048B1C:
- ldr r5, _08048BA0
- ldr r0, _08048BA4
- mov r12, r0
- ldr r1, _08048BA8
- ldr r4, _08048BAC
- ldr r3, _08048BB0
- movs r2, 0x2F
-_08048B2A:
- ldrh r0, [r1]
- strh r0, [r3]
- ldrh r0, [r1]
- strh r0, [r4]
- adds r1, 0x2
- adds r4, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08048B2A
- adds r3, r5, 0
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0x94
- lsls r5, 5
- ldr r1, _08048BB4
- ldr r6, _08048BB8
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08048B54:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08048B54
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- ldr r5, _08048BBC
- ldr r4, _08048BC0
- ldr r3, _08048BC4
-_08048B7A:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0xDA
- adds r0, r1
- ldrh r1, [r3]
- strh r1, [r0]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r5
- ble _08048B7A
- ldr r1, _08048BC8
- ldr r0, _08048BB4
- mov r2, r12
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08048BCC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _08048C3A
- .align 2, 0
-_08048BA0: .4byte gUnknown_08EA0348
-_08048BA4: .4byte gUnknown_0820AFEC
-_08048BA8: .4byte gUnknown_08EA02C8
-_08048BAC: .4byte 0x0202eec8
-_08048BB0: .4byte 0x0202eac8
-_08048BB4: .4byte 0x040000d4
-_08048BB8: .4byte 0x80000800
-_08048BBC: .4byte 0x000003ff
-_08048BC0: .4byte 0x03004824
-_08048BC4: .4byte gUnknown_08EA15C8
-_08048BC8: .4byte 0x06003000
-_08048BCC: .4byte 0x80000400
-_08048BD0:
- ldr r1, _08048C40
- ldr r2, _08048C44
- ldr r0, _08048C48
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08048C4C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0
- bl sub_804A6DC
- movs r0, 0x1
- bl sub_804A6DC
- ldr r0, _08048C50
- ldr r0, [r0]
- adds r0, 0xC8
- bl sub_804A938
- ldr r2, _08048C54
- ldrh r1, [r2]
- ldr r0, _08048C58
- ands r0, r1
- strh r0, [r2]
- ldr r1, _08048C5C
- ldr r2, _08048C60
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08048C64
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08048C68
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08048C6C
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
-_08048C3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08048C40: .4byte gUnknown_0820B7EC
-_08048C44: .4byte 0x06003800
-_08048C48: .4byte 0x040000d4
-_08048C4C: .4byte 0x80000400
-_08048C50: .4byte 0x03004824
-_08048C54: .4byte 0x04000008
-_08048C58: .4byte 0x0000fffc
-_08048C5C: .4byte 0x0400000a
-_08048C60: .4byte 0x00000501
-_08048C64: .4byte 0x00000602
-_08048C68: .4byte 0x00000703
-_08048C6C: .4byte 0x04000010
- thumb_func_end sub_8048B0C
-
- thumb_func_start sub_8048C70
-sub_8048C70: @ 8048C70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r3, 0
- ldr r5, _08048CC0
- mov r8, r5
- ldr r0, _08048CC4
- mov r12, r0
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
- movs r4, 0x6
- movs r7, 0x1
- movs r6, 0
-_08048C8E:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x42
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CC8
- adds r0, 0x34
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r3
- strb r7, [r0]
- b _08048CCE
- .align 2, 0
-_08048CC0: .4byte 0x03004824
-_08048CC4: .4byte 0x02020004
-_08048CC8:
- adds r0, 0x44
- adds r0, r3
- strb r6, [r0]
-_08048CCE:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x43
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CFE
- adds r0, 0x3A
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r4
- strb r7, [r0]
- b _08048D04
-_08048CFE:
- adds r0, 0x44
- adds r0, r4
- strb r6, [r0]
-_08048D04:
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, 0x5
- ble _08048C8E
- ldr r0, [r5]
- adds r0, 0x50
- movs r1, 0x1
- strb r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8048C70
-
- thumb_func_start nullsub_5
-nullsub_5: @ 8048D20
- bx lr
- thumb_func_end nullsub_5
-
- thumb_func_start sub_8048D24
-sub_8048D24: @ 8048D24
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- cmp r3, r2
- bcs _08048D3E
-_08048D30:
- adds r0, r5, r3
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, r2
- bcc _08048D30
-_08048D3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8048D24
-
- thumb_func_start sub_8048D44
-sub_8048D44: @ 8048D44
- push {r4-r7,lr}
- sub sp, 0xC
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _08048D90
- ldr r0, [r6]
- adds r0, 0x75
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl SetLinkDebugValues
- ldr r0, [r6]
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _08048D86
- b _0804907C
-_08048D86:
- lsls r0, 2
- ldr r1, _08048D94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048D90: .4byte 0x03004824
-_08048D94: .4byte _08048D98
- .align 2, 0
-_08048D98:
- .4byte _08048DDC
- .4byte _08048DF8
- .4byte _08048E28
- .4byte _08048E3C
- .4byte _08048E74
- .4byte _08048E90
- .4byte _08048EA4
- .4byte _08048EDC
- .4byte _08048EF8
- .4byte _08048F0C
- .4byte _08048F44
- .4byte _08048F60
- .4byte _08048F74
- .4byte _08048FAC
- .4byte _08048FC8
- .4byte _08048FDC
- .4byte _08049018
-_08048DDC:
- ldr r0, _08048DEC
- ldr r1, _08048DF0
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048DF4
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048DEC: .4byte 0x03002a70
-_08048DF0: .4byte 0x03004360
-_08048DF4: .4byte 0x03004824
-_08048DF8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _08048E04
- b _0804907C
-_08048E04:
- bl GetBlockRecievedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08048E18
- ldr r0, _08048E14
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E14: .4byte 0x03004824
-_08048E18:
- bl ResetBlockReceivedFlags
- ldr r0, _08048E24
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E24: .4byte 0x03004824
-_08048E28:
- cmp r7, 0
- bne _08048E32
- movs r0, 0x1
- bl sub_8007E9C
-_08048E32:
- ldr r0, _08048E38
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E38: .4byte 0x03004824
-_08048E3C:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048E4A
- b _0804907C
-_08048E4A:
- ldr r0, _08048E68
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048E6C
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048E70
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E68: .4byte 0x030045c0
-_08048E6C: .4byte 0x03002b80
-_08048E70: .4byte 0x03004824
-_08048E74:
- ldr r0, _08048E84
- ldr r1, _08048E88
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048E8C
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E84: .4byte 0x03002a70
-_08048E88: .4byte 0x03004428
-_08048E8C: .4byte 0x03004824
-_08048E90:
- cmp r7, 0
- bne _08048E9A
- movs r0, 0x1
- bl sub_8007E9C
-_08048E9A:
- ldr r0, _08048EA0
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048EA0: .4byte 0x03004824
-_08048EA4:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048EB2
- b _0804907C
-_08048EB2:
- ldr r0, _08048ED0
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048ED4
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048ED8
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048ED0: .4byte 0x03004688
-_08048ED4: .4byte 0x03002b80
-_08048ED8: .4byte 0x03004824
-_08048EDC:
- ldr r0, _08048EEC
- ldr r1, _08048EF0
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048EF4
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048EEC: .4byte 0x03002a70
-_08048EF0: .4byte 0x030044f0
-_08048EF4: .4byte 0x03004824
-_08048EF8:
- cmp r7, 0
- bne _08048F02
- movs r0, 0x1
- bl sub_8007E9C
-_08048F02:
- ldr r0, _08048F08
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F08: .4byte 0x03004824
-_08048F0C:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048F1A
- b _0804907C
-_08048F1A:
- ldr r0, _08048F38
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048F3C
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048F40
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F38: .4byte 0x03004750
-_08048F3C: .4byte 0x03002b80
-_08048F40: .4byte 0x03004824
-_08048F44:
- ldr r0, _08048F54
- ldr r1, _08048F58
- movs r2, 0xDC
- bl sub_8048D24
- ldr r0, _08048F5C
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F54: .4byte 0x03002a70
-_08048F58: .4byte 0x02028280
-_08048F5C: .4byte 0x03004824
-_08048F60:
- cmp r7, 0
- bne _08048F6A
- movs r0, 0x3
- bl sub_8007E9C
-_08048F6A:
- ldr r0, _08048F70
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F70: .4byte 0x03004824
-_08048F74:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048F82
- b _0804907C
-_08048F82:
- ldr r0, _08048FA0
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048FA4
- adds r1, r2
- movs r2, 0xD8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048FA8
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FA0: .4byte 0x02029700
-_08048FA4: .4byte 0x03002b80
-_08048FA8: .4byte 0x03004824
-_08048FAC:
- ldr r0, _08048FBC
- ldr r1, _08048FC0
- movs r2, 0xB
- bl sub_8048D24
- ldr r0, _08048FC4
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FBC: .4byte 0x03002a70
-_08048FC0: .4byte 0x02028844
-_08048FC4: .4byte 0x03004824
-_08048FC8:
- cmp r7, 0
- bne _08048FD2
- movs r0, 0x4
- bl sub_8007E9C
-_08048FD2:
- ldr r0, _08048FD8
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FD8: .4byte 0x03004824
-_08048FDC:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0804907C
- ldr r4, _08049010
- ldr r0, [r4]
- adds r0, 0xB5
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08049014
- adds r1, r2
- movs r2, 0xB
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r1, [r4]
-_08049006:
- adds r1, 0x75
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804907C
- .align 2, 0
-_08049010: .4byte 0x03004824
-_08049014: .4byte 0x03002b80
-_08049018:
- ldr r4, _0804906C
- ldr r6, _08049070
- movs r5, 0x5
-_0804901E:
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0804905E
- cmp r0, r6
- bne _0804905E
- adds r0, r4, 0
- movs r1, 0x3
- bl PokemonGetField
- cmp r0, 0x1
- beq _0804905E
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- mov r0, sp
- ldr r1, _08049074
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0804905E
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, _08049078
- bl pokemon_setattr
-_0804905E:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _0804901E
- movs r0, 0x1
- b _0804907E
- .align 2, 0
-_0804906C: .4byte 0x030045c0
-_08049070: .4byte 0x0000012f
-_08049074: .4byte gUnknown_0820C3B0
-_08049078: .4byte gSpeciesNames + 0xD05
-_0804907C:
- movs r0, 0
-_0804907E:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048D44
-
- thumb_func_start sub_8049088
-sub_8049088: @ 8049088
- push {lr}
- sub sp, 0x1C
- ldr r1, _080490B0
- mov r0, sp
- bl StringCopy
- ldr r0, _080490B4
- ldr r0, [r0]
- adds r0, 0x7E
- ldrh r1, [r0]
- lsls r1, 5
- ldr r0, _080490B8
- adds r1, r0
- mov r0, sp
- movs r2, 0x14
- bl sub_804ACD8
- add sp, 0x1C
- pop {r0}
- bx r0
- .align 2, 0
-_080490B0: .4byte gUnknown_0842C7B6
-_080490B4: .4byte 0x03004824
-_080490B8: .4byte 0x06010000
- thumb_func_end sub_8049088
-
- thumb_func_start sub_80490BC
-sub_80490BC: @ 80490BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0x1
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08049148
- ldr r1, _080490EC
- lsls r0, r2, 8
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _080490F0
- cmp r1, r0
- beq _08049128
- cmp r1, r0
- bgt _080490F8
- ldr r0, _080490F4
- cmp r1, r0
- beq _08049118
- b _08049142
- .align 2, 0
-_080490EC: .4byte 0x03002b80
-_080490F0: .4byte 0x0000bbbb
-_080490F4: .4byte 0x0000aabb
-_080490F8:
- ldr r0, _0804910C
- cmp r1, r0
- beq _08049138
- ldr r0, _08049110
- cmp r1, r0
- bne _08049142
- ldr r0, _08049114
- ldr r0, [r0]
- adds r0, 0x84
- b _0804913E
- .align 2, 0
-_0804910C: .4byte 0x0000bbcc
-_08049110: .4byte 0x0000eeaa
-_08049114: .4byte 0x03004824
-_08049118:
- ldr r0, _08049124
- ldr r0, [r0]
- adds r0, 0x84
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049124: .4byte 0x03004824
-_08049128:
- ldr r0, _08049134
- ldr r0, [r0]
- adds r0, 0x86
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049134: .4byte 0x03004824
-_08049138:
- ldr r0, _08049170
- ldr r0, [r0]
- adds r0, 0x86
-_0804913E:
- movs r1, 0x2
- strb r1, [r0]
-_08049142:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_08049148:
- movs r2, 0x2
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _080491DA
- ldr r3, _08049174
- movs r1, 0x80
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- ldr r0, _08049178
- cmp r1, r0
- beq _080491BC
- cmp r1, r0
- bgt _08049180
- ldr r0, _0804917C
- cmp r1, r0
- beq _080491A0
- b _080491D4
- .align 2, 0
-_08049170: .4byte 0x03004824
-_08049174: .4byte 0x03002b80
-_08049178: .4byte 0x0000bbbb
-_0804917C: .4byte 0x0000aabb
-_08049180:
- ldr r0, _08049194
- cmp r1, r0
- beq _080491CC
- ldr r0, _08049198
- cmp r1, r0
- bne _080491D4
- ldr r0, _0804919C
- ldr r0, [r0]
- adds r0, 0x85
- b _080491D2
- .align 2, 0
-_08049194: .4byte 0x0000bbcc
-_08049198: .4byte 0x0000eeaa
-_0804919C: .4byte 0x03004824
-_080491A0:
- ldr r2, _080491B8
- ldr r1, [r2]
- movs r4, 0x81
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r0, 0x6
- adds r1, 0x8A
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x85
- b _080491C2
- .align 2, 0
-_080491B8: .4byte 0x03004824
-_080491BC:
- ldr r0, _080491C8
- ldr r0, [r0]
- adds r0, 0x87
-_080491C2:
- movs r1, 0x1
- strb r1, [r0]
- b _080491D4
- .align 2, 0
-_080491C8: .4byte 0x03004824
-_080491CC:
- ldr r0, _080491E0
- ldr r0, [r0]
- adds r0, 0x87
-_080491D2:
- strb r2, [r0]
-_080491D4:
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_080491DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080491E0: .4byte 0x03004824
- thumb_func_end sub_80490BC
-
- thumb_func_start sub_80491E4
-sub_80491E4: @ 80491E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _080492BE
- ldr r2, _08049210
- ldrh r1, [r2]
- ldr r0, _08049214
- cmp r1, r0
- beq _080492A8
- cmp r1, r0
- bgt _08049220
- ldr r0, _08049218
- cmp r1, r0
- beq _08049288
- ldr r0, _0804921C
- cmp r1, r0
- beq _0804925C
- b _080492B8
- .align 2, 0
-_08049210: .4byte 0x03002b80
-_08049214: .4byte 0x0000ddee
-_08049218: .4byte 0x0000ccdd
-_0804921C: .4byte 0x0000dddd
-_08049220:
- ldr r0, _08049230
- cmp r1, r0
- beq _08049234
- adds r0, 0x11
- cmp r1, r0
- beq _08049258
- b _080492B8
- .align 2, 0
-_08049230: .4byte 0x0000eebb
-_08049234:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl sub_804AA0C
- ldr r0, _08049254
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xB
- b _080492B6
- .align 2, 0
-_08049254: .4byte 0x03004824
-_08049258:
- movs r0, 0x5
- b _080492AA
-_0804925C:
- ldr r4, _08049284
- ldr r1, [r4]
- ldrb r0, [r2, 0x2]
- adds r0, 0x6
- adds r1, 0x8A
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x41
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x8A
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x7
- b _080492B6
- .align 2, 0
-_08049284: .4byte 0x03004824
-_08049288:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080492A4
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xA
- b _080492B6
- .align 2, 0
-_080492A4: .4byte 0x03004824
-_080492A8:
- movs r0, 0x1
-_080492AA:
- bl sub_804AA0C
- ldr r0, _080492D4
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x8
-_080492B6:
- strb r1, [r0]
-_080492B8:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_080492BE:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080492CC
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_080492CC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080492D4: .4byte 0x03004824
- thumb_func_end sub_80491E4
-
- thumb_func_start sub_80492D8
-sub_80492D8: @ 80492D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08049334
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x84
- ldrb r0, [r1]
- cmp r0, 0
- bne _080492EC
- b _08049420
-_080492EC:
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- cmp r0, 0
- bne _080492F8
- b _08049420
-_080492F8:
- ldrh r1, [r1]
- ldr r0, _08049338
- cmp r1, r0
- bne _08049340
- adds r1, r2, 0
- adds r1, 0x7B
- movs r0, 0x6
- strb r0, [r1]
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x8C
- movs r4, 0
- ldr r0, _0804933C
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, 0x4D
- strh r1, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r2, r0, 0
- adds r2, 0x85
- strb r4, [r2]
- adds r0, 0x84
- strb r4, [r0]
- b _08049420
- .align 2, 0
-_08049334: .4byte 0x03004824
-_08049338: .4byte 0x00000101
-_0804933C: .4byte 0x0000dddd
-_08049340:
- ldr r0, _08049388
- cmp r1, r0
- bne _08049390
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _0804938C
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_08049388: .4byte 0x00000201
-_0804938C: .4byte 0x0000eecc
-_08049390:
- movs r0, 0x81
- lsls r0, 1
- cmp r1, r0
- bne _080493DC
- movs r0, 0x5
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080493D8
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_080493D8: .4byte 0x0000ddee
-_080493DC:
- ldr r0, _080494C0
- cmp r1, r0
- bne _08049420
- adds r1, r2, 0
- adds r1, 0x8C
- movs r5, 0
- movs r4, 0
- ldr r0, _080494C4
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x8E
- strh r4, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r5, [r1]
- adds r0, 0x84
- strb r5, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0xB
-_0804941E:
- strb r1, [r0]
-_08049420:
- ldr r5, _080494C8
- ldr r3, [r5]
- adds r1, r3, 0
- adds r1, 0x86
- ldrb r0, [r1]
- cmp r0, 0
- beq _080494B8
- adds r0, r3, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0
- beq _080494B8
- ldrh r1, [r1]
- ldr r0, _080494CC
- cmp r1, r0
- bne _0804946E
- adds r1, r3, 0
- adds r1, 0x8C
- movs r4, 0
- movs r2, 0
- ldr r0, _080494D0
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8E
- strh r2, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x9
- strb r1, [r0]
-_0804946E:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x86
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08049484
- adds r0, r1, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080494B8
-_08049484:
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080494D4
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x8
- strb r1, [r0]
-_080494B8:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080494C0: .4byte 0x00000202
-_080494C4: .4byte 0x0000eebb
-_080494C8: .4byte 0x03004824
-_080494CC: .4byte 0x00000101
-_080494D0: .4byte 0x0000ccdd
-_080494D4: .4byte 0x0000ddee
- thumb_func_end sub_80492D8
-
- thumb_func_start sub_80494D8
-sub_80494D8: @ 80494D8
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08049504
- cmp r4, 0
- bne _080494FA
- movs r0, 0
- bl sub_80490BC
- b _08049500
-_080494FA:
- adds r0, r4, 0
- bl sub_80491E4
-_08049500:
- bl ResetBlockReceivedFlags
-_08049504:
- cmp r4, 0
- bne _0804950C
- bl sub_80492D8
-_0804950C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80494D8
-
- thumb_func_start sub_8049514
-sub_8049514: @ 8049514
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r6, 0
- movs r5, 0
- ldr r2, _08049548
- ldr r3, [r2]
- ldr r4, _0804954C
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r3, 0x44
- adds r2, r1
- adds r2, r4
-_0804953A:
- ldrb r1, [r2]
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08049550
- adds r6, r1, 0
- b _08049558
- .align 2, 0
-_08049548: .4byte 0x03004824
-_0804954C: .4byte gUnknown_0820C164
-_08049550:
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804953A
-_08049558:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8049514
-
- thumb_func_start sub_8049560
-sub_8049560: @ 8049560
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r7]
- bl sub_8049514
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xC
- bne _080495B8
- ldr r5, _080495B0
- ldr r0, [r5]
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080495B4
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r5]
- adds r2, 0x40
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xE0
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- b _08049600
- .align 2, 0
-_080495B0: .4byte 0x03004824
-_080495B4: .4byte 0x02020004
-_080495B8:
- ldr r4, _08049614
- ldr r0, [r4]
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08049618
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, [r4]
- adds r4, 0x40
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r2, _0804961C
- lsls r3, r6, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x20
- strh r0, [r1, 0x20]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, 0x1
- adds r3, r2
- ldrb r0, [r3]
- lsls r0, 3
- strh r0, [r1, 0x22]
-_08049600:
- ldrb r0, [r7]
- cmp r0, r6
- beq _0804960C
- movs r0, 0x5
- bl audio_play
-_0804960C:
- strb r6, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08049614: .4byte 0x03004824
-_08049618: .4byte 0x02020004
-_0804961C: .4byte gUnknown_0820C29C
- thumb_func_end sub_8049560
-
- thumb_func_start sub_8049620
-sub_8049620: @ 8049620
- push {r4,lr}
- movs r0, 0
- bl sub_804AA0C
- ldr r4, _08049668
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x5
- strb r1, [r0]
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08049670
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _0804966C
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, 0x4D
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- b _08049678
- .align 2, 0
-_08049668: .4byte 0x03004824
-_0804966C: .4byte 0x0000aabb
-_08049670:
- ldr r0, [r4]
- adds r0, 0x84
- movs r1, 0x1
- strb r1, [r0]
-_08049678:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8049620
-
- thumb_func_start sub_8049680
-sub_8049680: @ 8049680
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _080496A0
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080496A8
- ldr r0, _080496A4
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496A0: .4byte 0x03001770
-_080496A4: .4byte 0x03004824
-_080496A8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080496C4
- ldr r0, _080496C0
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x1
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496C0: .4byte 0x03004824
-_080496C4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080496E0
- ldr r0, _080496DC
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x2
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496DC: .4byte 0x03004824
-_080496E0:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080496F4
- ldr r0, _08049750
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x3
- bl sub_8049560
-_080496F4:
- ldr r0, _08049754
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080497B6
- movs r0, 0x5
- bl audio_play
- ldr r4, _08049750
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r1, [r1]
- cmp r1, 0x5
- bhi _0804975C
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x12
- movs r2, 0xE
- movs r3, 0x1C
- bl AddTextPrinterParametrized
- ldr r3, _08049758
- movs r0, 0x13
- movs r1, 0xF
- movs r2, 0x2
- bl PrintStringArray
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x13
- movs r2, 0xF
- movs r3, 0x2
- bl InitMenu
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x1
- strb r1, [r0]
- b _080497B6
- .align 2, 0
-_08049750: .4byte 0x03004824
-_08049754: .4byte 0x03001770
-_08049758: .4byte gUnknown_0820C320
-_0804975C:
- cmp r1, 0xB
- bhi _0804977A
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x2
- strb r1, [r0]
- b _080497B6
-_0804977A:
- cmp r1, 0xC
- bne _080497B6
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x1D
- bl AddTextPrinterParametrized
- movs r0, 0x18
- movs r1, 0xE
- movs r2, 0x4
- bl sub_807292C
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _080497F4
- ldr r0, [r0, 0x10]
- ldr r1, [r4]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _080497F8
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
-_080497B6:
- ldr r0, _080497FC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080497EC
- movs r2, 0
- ldr r3, _08049800
-_080497C8:
- ldr r0, [r3]
- lsls r1, r2, 1
- adds r0, 0x8C
- adds r0, r1
- strh r2, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080497C8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08049800
- ldr r1, [r1]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_080497EC:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080497F4: .4byte gUnknown_0820C14C
-_080497F8: .4byte 0x06010000
-_080497FC: .4byte 0x03001770
-_08049800: .4byte 0x03004824
- thumb_func_end sub_8049680
-
- thumb_func_start sub_8049804
-sub_8049804: @ 8049804
- push {lr}
- bl sub_8072DEC
- bl sub_804A80C
- ldr r3, _08049850
- ldr r0, [r3]
- adds r0, 0x7B
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08049854
- ldr r0, [r3]
- adds r0, 0x40
- 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]
- ldr r0, _08049858
- ldr r0, [r0, 0x4]
- ldr r1, [r3]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _0804985C
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
- pop {r0}
- bx r0
- .align 2, 0
-_08049850: .4byte 0x03004824
-_08049854: .4byte 0x02020004
-_08049858: .4byte gUnknown_0820C14C
-_0804985C: .4byte 0x06010000
- thumb_func_end sub_8049804
-
- thumb_func_start sub_8049860
-sub_8049860: @ 8049860
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0804987C
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049880
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- b _08049890
- .align 2, 0
-_0804987C: .4byte 0x03001770
-_08049880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804989C
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
-_08049890:
- bl MoveMenuCursor
- ldr r1, _080498D8
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_0804989C:
- ldr r0, _080498DC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049938
- movs r0, 0x5
- bl audio_play
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080498E0
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080498D8
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x2
- strb r1, [r0]
- b _0804994A
- .align 2, 0
-_080498D8: .4byte 0x03004824
-_080498DC: .4byte 0x03001770
-_080498E0:
- ldr r4, _08049910
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x51
- adds r1, r2, 0
- adds r1, 0x42
- ldrb r1, [r1]
- adds r2, 0x41
- ldrb r2, [r2]
- bl sub_80499F0
- lsls r0, 24
- cmp r0, 0
- bne _08049914
- movs r0, 0x3
- movs r1, 0x2
- bl sub_804AADC
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x8
- strb r1, [r0]
- b _0804994A
- .align 2, 0
-_08049910: .4byte 0x03004824
-_08049914:
- bl sub_8049620
- ldr r2, _08049934
- ldr r0, [r4]
- adds r0, 0x40
- 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]
- b _0804994A
- .align 2, 0
-_08049934: .4byte 0x02020004
-_08049938:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804994A
- movs r0, 0x5
- bl audio_play
- bl sub_8049804
-_0804994A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8049860
-
- thumb_func_start sub_8049954
-sub_8049954: @ 8049954
- push {lr}
- ldr r0, _08049978
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804996A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049974
-_0804996A:
- movs r0, 0x5
- bl audio_play
- bl sub_8049804
-_08049974:
- pop {r0}
- bx r0
- .align 2, 0
-_08049978: .4byte 0x03001770
- thumb_func_end sub_8049954
-
- thumb_func_start sub_804997C
-sub_804997C: @ 804997C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080499B4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080499E0
- ldr r0, _080499B8
- ldr r2, [r0]
- adds r3, r2, 0
- adds r3, 0x41
- ldrb r1, [r3]
- cmp r1, 0x5
- bhi _080499C4
- ldr r0, _080499BC
- ldrb r1, [r3]
- adds r2, 0x42
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080499C0
- movs r4, 0x4
- str r4, [sp]
- bl sub_809D8BC
- b _080499E0
- .align 2, 0
-_080499B4: .4byte 0x0202f388
-_080499B8: .4byte 0x03004824
-_080499BC: .4byte 0x03004360
-_080499C0: .4byte sub_80484F4
-_080499C4:
- ldr r0, _080499E8
- subs r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x43
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080499EC
- movs r4, 0x4
- str r4, [sp]
- bl sub_809D8BC
-_080499E0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080499E8: .4byte 0x030045c0
-_080499EC: .4byte sub_80484F4
- thumb_func_end sub_804997C
-
- thumb_func_start sub_80499F0
-sub_80499F0: @ 80499F0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- movs r3, 0
- cmp r1, r4
- bge _08049A18
-_08049A04:
- cmp r2, r3
- beq _08049A12
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r1, r0, 24
-_08049A12:
- adds r3, 0x1
- cmp r3, r4
- blt _08049A04
-_08049A18:
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80499F0
-
- thumb_func_start sub_8049A20
-sub_8049A20: @ 8049A20
- push {r4,r5,lr}
- sub sp, 0xC
- movs r2, 0
- ldr r0, _08049A80
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0x42
- adds r5, r0, 0
- ldrb r0, [r3]
- cmp r2, r0
- bge _08049A4C
- adds r4, r1, 0
- adds r4, 0x51
-_08049A3A:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- ldrb r0, [r3]
- cmp r2, r0
- blt _08049A3A
-_08049A4C:
- adds r4, r5, 0
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x42
- ldrb r1, [r1]
- adds r0, 0x41
- ldrb r2, [r0]
- mov r0, sp
- bl sub_80499F0
- lsls r0, 24
- cmp r0, 0
- bne _08049A88
- movs r0, 0x3
- movs r1, 0x2
- bl sub_804AADC
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049A84
- strh r1, [r0]
- movs r0, 0xB4
- movs r1, 0
- bl sub_804AADC
- b _08049AB4
- .align 2, 0
-_08049A80: .4byte 0x03004824
-_08049A84: .4byte 0x0000bbcc
-_08049A88:
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x8C
- ldr r1, _08049ABC
- strh r1, [r0]
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08049AB4
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r5]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_08049AB4:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08049ABC: .4byte 0x0000bbbb
- thumb_func_end sub_8049A20
-
- thumb_func_start sub_8049AC0
-sub_8049AC0: @ 8049AC0
- push {r4,lr}
- ldr r0, _08049ADC
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049AE0
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- b _08049AF0
- .align 2, 0
-_08049ADC: .4byte 0x03001770
-_08049AE0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08049AFC
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
-_08049AF0:
- bl MoveMenuCursor
- ldr r1, _08049B20
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049AFC:
- ldr r0, _08049B24
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049B64
- movs r0, 0x5
- bl audio_play
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- bne _08049B28
- bl sub_8049A20
- b _08049B56
- .align 2, 0
-_08049B20: .4byte 0x03004824
-_08049B24: .4byte 0x03001770
-_08049B28:
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08049B56
- ldr r4, _08049B5C
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049B60
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_08049B56:
- ldr r0, _08049B5C
- ldr r0, [r0]
- b _08049BAA
- .align 2, 0
-_08049B5C: .4byte 0x03004824
-_08049B60: .4byte 0x0000bbcc
-_08049B64:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049BB0
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- bne _08049B8C
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08049BB8
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049B8C:
- ldr r4, _08049BB8
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049BBC
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- ldr r0, [r4]
-_08049BAA:
- adds r0, 0x7B
- movs r1, 0x64
- strb r1, [r0]
-_08049BB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049BB8: .4byte 0x03004824
-_08049BBC: .4byte 0x0000bbcc
- thumb_func_end sub_8049AC0
-
- thumb_func_start sub_8049BC0
-sub_8049BC0: @ 8049BC0
- push {r4,r5,lr}
- ldr r0, _08049BDC
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049BE0
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- b _08049BF0
- .align 2, 0
-_08049BDC: .4byte 0x03001770
-_08049BE0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08049BFC
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
-_08049BF0:
- bl MoveMenuCursor
- ldr r1, _08049C5C
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049BFC:
- ldr r0, _08049C60
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049C72
- movs r0, 0x5
- bl audio_play
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08049C6C
- movs r0, 0x4
- bl sub_804AA0C
- ldr r4, _08049C5C
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x8C
- ldr r1, _08049C64
- strh r1, [r2]
- adds r0, 0x8E
- strh r5, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r2, _08049C68
- ldr r0, [r4]
- adds r0, 0x40
- 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 r0, [r4]
- adds r0, 0x7B
- movs r1, 0x64
- strb r1, [r0]
- b _08049C84
- .align 2, 0
-_08049C5C: .4byte 0x03004824
-_08049C60: .4byte 0x03001770
-_08049C64: .4byte 0x0000eeaa
-_08049C68: .4byte 0x02020004
-_08049C6C:
- bl sub_8049804
- b _08049C84
-_08049C72:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049C84
- movs r0, 0x5
- bl audio_play
- bl sub_8049804
-_08049C84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8049BC0
-
- thumb_func_start sub_8049C8C
-sub_8049C8C: @ 8049C8C
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08049CAE
- ldr r4, _08049CC0
- ldr r0, [r4]
- adds r0, 0x41
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x8A
- ldrb r0, [r0]
- bl sub_8049E9C
-_08049CAE:
- ldr r0, _08049CC0
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x7
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049CC0: .4byte 0x03004824
- thumb_func_end sub_8049C8C
-
- thumb_func_start sub_8049CC4
-sub_8049CC4: @ 8049CC4
- push {r4,lr}
- ldr r4, _08049CE8
- ldr r0, [r4]
- adds r0, 0x80
- ldrh r1, [r0]
- ldr r0, _08049CEC
- cmp r1, r0
- bne _08049CE0
- bl sub_8049088
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xE
- strb r1, [r0]
-_08049CE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049CE8: .4byte 0x03004824
-_08049CEC: .4byte 0x00000505
- thumb_func_end sub_8049CC4
-
- thumb_func_start DisplayMessageAndContinueTask
-DisplayMessageAndContinueTask: @ 8049CF0
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08049D40
- ldr r1, [r4]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xB4
- ldrb r0, [r0]
- cmp r0, 0x78
- bls _08049D36
- adds r0, r1, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x1D
- bl AddTextPrinterParametrized
- movs r0, 0x18
- movs r1, 0xE
- movs r2, 0x4
- bl sub_807292C
- ldr r0, [r4]
- adds r0, 0xB4
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x3
- strb r1, [r0]
-_08049D36:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049D40: .4byte 0x03004824
- thumb_func_end DisplayMessageAndContinueTask
-
- thumb_func_start sub_8049D44
-sub_8049D44: @ 8049D44
- push {lr}
- ldr r0, _08049D90
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049D8A
- movs r0, 0x5
- bl audio_play
- movs r0, 0
- bl sub_804A840
- movs r0, 0x1
- bl sub_804A840
- ldr r2, _08049D94
- ldr r0, [r2]
- adds r0, 0x7B
- movs r1, 0
- strb r1, [r0]
- ldr r3, _08049D98
- ldr r0, [r2]
- adds r0, 0x40
- 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]
-_08049D8A:
- pop {r0}
- bx r0
- .align 2, 0
-_08049D90: .4byte 0x03001770
-_08049D94: .4byte 0x03004824
-_08049D98: .4byte 0x02020004
- thumb_func_end sub_8049D44
-
- thumb_func_start sub_8049D9C
-sub_8049D9C: @ 8049D9C
- push {lr}
- ldr r0, _08049DBC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08049DB8
- bl sub_800832C
- ldr r0, _08049DC0
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xC
- strb r1, [r0]
-_08049DB8:
- pop {r0}
- bx r0
- .align 2, 0
-_08049DBC: .4byte 0x0202f388
-_08049DC0: .4byte 0x03004824
- thumb_func_end sub_8049D9C
-
- thumb_func_start sub_8049DC4
-sub_8049DC4: @ 8049DC4
- push {lr}
- ldr r0, _08049DD8
- ldrb r0, [r0]
- cmp r0, 0
- bne _08049DD4
- ldr r0, _08049DDC
- bl SetMainCallback2
-_08049DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08049DD8: .4byte 0x03002fa4
-_08049DDC: .4byte sub_805465C
- thumb_func_end sub_8049DC4
-
- thumb_func_start sub_8049DE0
-sub_8049DE0: @ 8049DE0
- push {lr}
- ldr r0, _08049DF8
- ldr r0, [r0]
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0xF
- bhi _08049E98
- lsls r0, 2
- ldr r1, _08049DFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08049DF8: .4byte 0x03004824
-_08049DFC: .4byte _08049E00
- .align 2, 0
-_08049E00:
- .4byte _08049E40
- .4byte _08049E46
- .4byte _08049E4C
- .4byte _08049E52
- .4byte _08049E58
- .4byte _08049E98
- .4byte _08049E5E
- .4byte _08049E64
- .4byte _08049E6A
- .4byte _08049E70
- .4byte _08049E76
- .4byte _08049E7C
- .4byte _08049E82
- .4byte _08049E88
- .4byte _08049E8E
- .4byte _08049E94
-_08049E40:
- bl sub_8049680
- b _08049E98
-_08049E46:
- bl sub_8049860
- b _08049E98
-_08049E4C:
- bl sub_804997C
- b _08049E98
-_08049E52:
- bl sub_8049AC0
- b _08049E98
-_08049E58:
- bl sub_8049BC0
- b _08049E98
-_08049E5E:
- bl sub_8049C8C
- b _08049E98
-_08049E64:
- bl sub_8049CC4
- b _08049E98
-_08049E6A:
- bl sub_8049D44
- b _08049E98
-_08049E70:
- bl sub_8048A14
- b _08049E98
-_08049E76:
- bl sub_8048A50
- b _08049E98
-_08049E7C:
- bl sub_8049D9C
- b _08049E98
-_08049E82:
- bl sub_8049DC4
- b _08049E98
-_08049E88:
- bl sub_8048A90
- b _08049E98
-_08049E8E:
- bl DisplayMessageAndContinueTask
- b _08049E98
-_08049E94:
- bl sub_8049954
-_08049E98:
- pop {r0}
- bx r0
- thumb_func_end sub_8049DE0
-
- thumb_func_start sub_8049E9C
-sub_8049E9C: @ 8049E9C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _08049ED0
- ldr r0, [r3]
- adds r0, 0x80
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08049EC8
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x82
- adds r0, r2
- strb r4, [r0]
-_08049EC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049ED0: .4byte 0x03004824
- thumb_func_end sub_8049E9C
-
- thumb_func_start sub_8049ED4
-sub_8049ED4: @ 8049ED4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08049F24
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x82
- add r0, r10
- ldrb r0, [r0]
- movs r1, 0x1
- str r1, [sp, 0x6C]
- cmp r0, 0x5
- bhi _08049EFE
- movs r2, 0
- str r2, [sp, 0x6C]
-_08049EFE:
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x80
- mov r1, r10
- adds r3, r0, r1
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _08049F1A
- b _0804A0AC
-_08049F1A:
- cmp r0, 0x2
- bgt _08049F28
- cmp r0, 0x1
- beq _08049F36
- b _0804A294
- .align 2, 0
-_08049F24: .4byte 0x03004824
-_08049F28:
- cmp r0, 0x3
- bne _08049F2E
- b _0804A0E4
-_08049F2E:
- cmp r0, 0x4
- bne _08049F34
- b _0804A244
-_08049F34:
- b _0804A294
-_08049F36:
- movs r4, 0
- adds r0, r5, 0
- adds r0, 0x42
- add r0, r10
- ldr r7, _0804A094
- ldr r2, [sp, 0x6C]
- lsls r2, 1
- mov r9, r2
- ldr r3, _0804A098
- mov r12, r3
- mov r5, r10
- lsls r5, 4
- str r5, [sp, 0x70]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08049F8E
- adds r6, r7, 0
- ldr r2, _0804A09C
- ldr r0, [sp, 0x6C]
- add r0, r9
- lsls r3, r0, 1
- movs r5, 0x4
-_08049F62:
- ldr r0, [r2]
- adds r1, r4, r3
- adds r0, 0x34
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r2]
- adds r0, 0x42
- add r0, r10
- ldrb r0, [r0]
- cmp r4, r0
- bcc _08049F62
-_08049F8E:
- ldr r1, _0804A09C
- ldr r0, [r1]
- ldr r5, [sp, 0x6C]
- add r5, r9
- lsls r3, r5, 1
- mov r2, r8
- adds r6, r2, r3
- adds r0, 0x34
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, _0804A09C
- ldr r4, [r0]
- adds r4, 0x34
- adds r4, r6
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- lsls r5, 2
- mov r1, r12
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, 0x1
- lsls r3, 1
- add r3, r12
- ldrb r1, [r3]
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r2, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- mov r0, r12
- adds r0, 0x1
- adds r5, r0
- ldrb r0, [r5]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x36]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _0804A0A0
- bl oamt_set_x3A_32
- ldr r2, _0804A09C
- ldr r1, [r2]
- adds r1, 0x80
- add r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x34
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl sub_8078A34
- bl sub_8072DEC
- ldr r3, _0804A09C
- ldr r0, [r3]
- adds r0, 0x4
- ldr r1, _0804A0A4
- mov r5, r9
- adds r2, r5, r1
- ldrb r2, [r2]
- adds r1, 0x1
- add r1, r9
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r1, _0804A09C
- ldr r0, [r1]
- adds r0, 0xC8
- ldr r2, [sp, 0x70]
- mov r3, r10
- subs r1, r2, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0804A0A8
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x11
- str r2, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r2, 0
- bl sub_804A96C
- ldr r0, [sp, 0x6C]
- cmp r0, 0
- beq _0804A08C
- b _0804A294
-_0804A08C:
- bl sub_804A80C
- b _0804A294
- .align 2, 0
-_0804A094: .4byte 0x02020004
-_0804A098: .4byte gUnknown_0820C29C
-_0804A09C: .4byte 0x03004824
-_0804A0A0: .4byte sub_809D62C
-_0804A0A4: .4byte gUnknown_0820C330
-_0804A0A8: .4byte gUnknown_0820ADEE
-_0804A0AC:
- ldr r2, _0804A0DC
- ldr r1, [sp, 0x6C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x34
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0804A0E0
- cmp r1, r0
- beq _0804A0D4
- b _0804A294
-_0804A0D4:
- movs r0, 0x3
- strb r0, [r3]
- b _0804A294
- .align 2, 0
-_0804A0DC: .4byte 0x02020004
-_0804A0E0: .4byte sub_809D62C
-_0804A0E4:
- adds r0, r5, 0
- adds r0, 0xC8
- ldr r2, [sp, 0x6C]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0804A228
- movs r2, 0xF
- str r2, [sp]
- movs r7, 0x11
- str r7, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r2, 0
- bl sub_804A96C
- ldr r0, _0804A22C
- ldr r3, [r0]
- ldr r1, [sp, 0x6C]
- lsls r6, r1, 1
- adds r1, r6
- mov r9, r1
- lsls r1, 1
- mov r2, r8
- adds r0, r2, r1
- adds r3, 0x34
- adds r3, r0
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r5, _0804A230
- adds r2, r5
- ldr r4, _0804A234
- mov r0, r9
- lsls r5, r0, 2
- adds r0, r5, r4
- ldrb r0, [r0]
- adds r1, 0x1
- lsls r1, 1
- adds r1, r4
- ldrb r1, [r1]
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r2, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _0804A230
- adds r1, r2
- adds r4, 0x1
- adds r5, r4
- ldrb r0, [r5]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x22]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r5, 0
- strh r5, [r0, 0x24]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- mov r0, sp
- adds r0, 0x12
- ldr r1, [sp, 0x6C]
- mov r2, r8
- bl sub_804A2B4
- add r1, sp, 0xC
- movs r3, 0xFC
- strb r3, [r1]
- adds r2, r1, 0
- movs r1, 0x6
- strb r1, [r2, 0x1]
- movs r1, 0x4
- strb r1, [r2, 0x2]
- adds r1, r2, 0
- strb r3, [r1, 0x3]
- strb r7, [r1, 0x4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x40
- subs r1, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- strb r1, [r2, 0x5]
- ldr r0, _0804A22C
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x7A
- ldrb r2, [r1]
- mov r1, r9
- lsls r1, 6
- mov r9, r1
- add r2, r9
- ldr r4, _0804A238
- ldr r3, [sp, 0x6C]
- lsls r1, r3, 2
- adds r3, r1, r4
- ldrb r3, [r3]
- ldr r5, _0804A23C
- adds r1, r5
- ldrb r1, [r1]
- str r1, [sp]
- add r1, sp, 0xC
- bl sub_8003460
- add r7, sp, 0x34
- adds r0, r7, 0
- ldr r1, [sp, 0x6C]
- mov r2, r8
- bl sub_804A33C
- ldr r0, _0804A22C
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _0804A240
- adds r2, 0x7A
- ldrb r2, [r2]
- add r2, r9
- adds r2, 0x20
- adds r6, 0x1
- lsls r6, 1
- adds r4, r6, r4
- ldrb r5, [r4]
- ldr r3, _0804A23C
- adds r6, r3
- ldrb r4, [r6]
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- adds r3, r5, 0
- bl sub_8003460
- ldr r0, _0804A22C
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x7A
- ldrb r2, [r1]
- add r2, r9
- adds r2, 0x26
- str r4, [sp]
- adds r1, r7, 0
- adds r3, r5, 0
- bl sub_8003460
- ldr r2, _0804A22C
- ldr r1, [r2]
- b _0804A28A
- .align 2, 0
-_0804A228: .4byte gUnknown_0820ABF0
-_0804A22C: .4byte 0x03004824
-_0804A230: .4byte 0x02020004
-_0804A234: .4byte gUnknown_0820C29C
-_0804A238: .4byte gUnknown_0820C334
-_0804A23C: .4byte gUnknown_0820C335
-_0804A240: .4byte gUnknown_0842C7CA
-_0804A244:
- ldr r0, _0804A2A4
- ldr r0, [r0, 0x14]
- adds r1, r5, 0
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r3, _0804A2A8
- adds r1, r3
- movs r2, 0x14
- bl sub_804ACD8
- ldr r0, _0804A2AC
- mov r5, r10
- lsls r1, r5, 1
- adds r4, r1, r0
- ldrb r2, [r4]
- adds r2, 0x4
- lsls r2, 24
- lsrs r2, 24
- adds r0, 0x1
- adds r1, r0
- ldrb r3, [r1]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- ldrb r0, [r1]
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- bl sub_804A51C
- ldr r0, _0804A2B0
- ldr r1, [r0]
-_0804A28A:
- adds r1, 0x80
- add r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804A294:
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A2A4: .4byte gUnknown_0820C14C
-_0804A2A8: .4byte 0x06010000
-_0804A2AC: .4byte gUnknown_0820C3D1
-_0804A2B0: .4byte 0x03004824
- thumb_func_end sub_8049ED4
-
- thumb_func_start sub_804A2B4
-sub_804A2B4: @ 804A2B4
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- bne _0804A2F4
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A2F0
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl pokemon_get_gender
- adds r0, r4, 0
- movs r1, 0x38
- bl PokemonGetField
- b _0804A31E
- .align 2, 0
-_0804A2F0: .4byte 0x03004360
-_0804A2F4:
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A334
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl pokemon_get_gender
- adds r0, r4, 0
- movs r1, 0x38
- bl PokemonGetField
-_0804A31E:
- ldr r0, _0804A338
- adds r1, r5, 0
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804A334: .4byte 0x030045c0
-_0804A338: .4byte gWindowConfig_81E7294
- thumb_func_end sub_804A2B4
-
- thumb_func_start sub_804A33C
-sub_804A33C: @ 804A33C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0804A384
- ldr r1, [r0]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 1
- adds r0, r2, r0
- adds r1, 0x5D
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804A3F4
- movs r4, 0
- movs r0, 0x64
- adds r5, r2, 0
- muls r5, r0
- ldr r0, _0804A388
- mov r9, r0
- ldr r2, _0804A38C
- mov r8, r2
-_0804A376:
- cmp r7, 0
- bne _0804A390
- adds r1, r4, 0
- adds r1, 0xD
- mov r2, r9
- b _0804A396
- .align 2, 0
-_0804A384: .4byte 0x03004824
-_0804A388: .4byte 0x03004360
-_0804A38C: .4byte 0x030045c0
-_0804A390:
- adds r1, r4, 0
- adds r1, 0xD
- mov r2, r8
-_0804A396:
- adds r0, r5, r2
- movs r2, 0
- bl PokemonGetField
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _0804A376
- ldr r1, _0804A3E8
- adds r0, r6, 0
- bl StringCopy
- movs r4, 0
-_0804A3B8:
- lsls r0, r4, 1
- mov r2, sp
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0804A3D4
- adds r1, r0, 0
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0804A3EC
- adds r1, r0
- adds r0, r6, 0
- bl StringAppend
-_0804A3D4:
- adds r0, r6, 0
- ldr r1, _0804A3F0
- bl StringAppend
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _0804A3B8
- b _0804A404
- .align 2, 0
-_0804A3E8: .4byte gUnknown_0820C33C
-_0804A3EC: .4byte gMoveNames
-_0804A3F0: .4byte gUnknown_0842C7CB
-_0804A3F4:
- ldr r1, _0804A414
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _0804A418
- adds r0, r6, 0
- bl StringAppend
-_0804A404:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A414: .4byte gUnknown_0820C33C
-_0804A418: .4byte gUnknown_0842C7D6
- thumb_func_end sub_804A33C
-
- thumb_func_start sub_804A41C
-sub_804A41C: @ 804A41C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- lsls r0, 24
- lsrs r5, r0, 24
- add r3, sp, 0x1C
- movs r2, 0
- movs r1, 0xFC
- strb r1, [r3]
- movs r0, 0x6
- strb r0, [r3, 0x1]
- movs r0, 0x4
- strb r0, [r3, 0x2]
- strb r1, [r3, 0x3]
- movs r0, 0x11
- strb r0, [r3, 0x4]
- strb r2, [r3, 0x5]
- movs r6, 0
- ldr r1, _0804A470
- ldr r0, [r1]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804A504
- mov r8, r3
- adds r7, r1, 0
- ldr r0, _0804A474
- mov r9, r0
- movs r4, 0x1
- add r4, r9
- mov r10, r4
-_0804A462:
- cmp r5, 0
- bne _0804A47C
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804A478
- b _0804A484
- .align 2, 0
-_0804A470: .4byte 0x03004824
-_0804A474: .4byte gUnknown_0820C29C
-_0804A478: .4byte 0x03004360
-_0804A47C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804A514
-_0804A484:
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0x4
- bl PokemonGetField
- mov r0, sp
- adds r0, 0x22
- add r1, sp, 0x4
- bl StringCopy10
- adds r0, r4, 0
- bl pokemon_get_gender
- mov r1, sp
- adds r1, 0x22
- ldr r0, _0804A518
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x32
- subs r1, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- mov r0, r8
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- adds r0, r1, 0x4
- adds r1, 0x7A
- lsls r2, r5, 5
- adds r2, r5
- lsls r2, 2
- ldrb r1, [r1]
- adds r2, r1
- movs r1, 0x16
- muls r1, r6
- adds r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 1
- adds r1, r6, r1
- lsls r1, 1
- mov r4, r9
- adds r3, r1, r4
- ldrb r3, [r3]
- add r1, r10
- ldrb r1, [r1]
- str r1, [sp]
- mov r1, r8
- bl sub_8003460
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [r7]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804A462
-_0804A504:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A514: .4byte 0x030045c0
-_0804A518: .4byte gWindowConfig_81E7294
- thumb_func_end sub_804A41C
-
- thumb_func_start sub_804A51C
-sub_804A51C: @ 804A51C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- ldr r5, [sp, 0x4C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x24]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0804A59C
- ldr r0, [r0]
- adds r0, 0xC8
- ldr r3, _0804A5A0
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804A96C
- mov r0, r8
- cmp r0, 0
- bne _0804A5A8
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0804A5A4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- bl pokemon_get_gender
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0xC
- bl PokemonGetField
- b _0804A5D4
- .align 2, 0
-_0804A59C: .4byte 0x03004824
-_0804A5A0: .4byte gUnknown_08EA1DC8
-_0804A5A4: .4byte 0x03004360
-_0804A5A8:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0804A65C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- bl pokemon_get_gender
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0xC
- bl PokemonGetField
-_0804A5D4:
- ldr r1, _0804A660
- ldr r5, [r1]
- mov r3, r8
- lsls r0, r3, 1
- add r0, r8
- lsls r0, 1
- add r0, r9
- adds r1, r5, 0
- adds r1, 0x5D
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804A690
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [sp, 0x24]
- lsls r2, r0, 5
- cmp r4, 0
- beq _0804A614
- mov r1, r10
- adds r0, r1, r2
- lsls r0, 1
- adds r1, r5, 0
- adds r1, 0xDA
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x60
- strh r0, [r1]
-_0804A614:
- ldr r3, _0804A660
- ldr r4, [r3]
- mov r0, r10
- adds r5, r0, r2
- adds r0, r5, 0x1
- lsls r0, 1
- adds r4, 0xDA
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x70
- strh r0, [r4]
- cmp r7, 0
- bne _0804A664
- add r0, sp, 0xC
- movs r1, 0
- bl sub_8042548
- lsls r0, 24
- cmp r0, 0
- bne _0804A6CC
- ldr r3, _0804A660
- ldr r1, [r3]
- adds r0, r5, 0
- subs r0, 0x1F
- lsls r0, 1
- adds r1, 0xDA
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804A6CA
- .align 2, 0
-_0804A65C: .4byte 0x030045c0
-_0804A660: .4byte 0x03004824
-_0804A664:
- cmp r7, 0xFE
- bne _0804A6CC
- add r0, sp, 0xC
- movs r1, 0xFE
- bl sub_8042548
- lsls r0, 24
- cmp r0, 0
- bne _0804A6CC
- ldr r0, _0804A68C
- ldr r1, [r0]
- adds r0, r5, 0
- subs r0, 0x1F
- lsls r0, 1
- adds r1, 0xDA
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x2
- b _0804A6CA
- .align 2, 0
-_0804A68C: .4byte 0x03004824
-_0804A690:
- ldr r1, [sp, 0x24]
- lsls r0, r1, 5
- mov r1, r10
- adds r3, r1, r0
- adds r1, r3, 0
- subs r1, 0x20
- lsls r1, 1
- adds r2, r5, 0
- adds r2, 0xDA
- adds r1, r2, r1
- adds r0, r3, 0
- subs r0, 0x21
- lsls r0, 1
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, r3, 0
- subs r1, 0x1F
- lsls r1, 1
- adds r1, r2, r1
- adds r0, r3, 0
- subs r0, 0x24
- lsls r0, 1
- adds r2, r0
- ldrh r2, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- orrs r0, r2
-_0804A6CA:
- strh r0, [r1]
-_0804A6CC:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804A51C
-
- thumb_func_start sub_804A6DC
-sub_804A6DC: @ 804A6DC
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r0, _0804A734
- ldr r0, [r0]
- adds r0, 0x42
- adds r0, r6
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804A72C
- lsls r0, r6, 1
- adds r0, r6
- ldr r1, _0804A738
- lsls r0, 2
- adds r5, r0, r1
- ldr r1, _0804A73C
- adds r4, r0, r1
-_0804A702:
- lsls r1, r7, 24
- lsrs r1, 24
- ldrb r2, [r5]
- ldrb r3, [r5, 0x1]
- ldrb r0, [r4]
- str r0, [sp]
- ldrb r0, [r4, 0x1]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl sub_804A51C
- adds r5, 0x2
- adds r4, 0x2
- adds r7, 0x1
- ldr r0, _0804A734
- ldr r0, [r0]
- adds r0, 0x42
- adds r0, r6
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804A702
-_0804A72C:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A734: .4byte 0x03004824
-_0804A738: .4byte gUnknown_0820C2B6
-_0804A73C: .4byte gUnknown_0820C2CE
- thumb_func_end sub_804A6DC
-
- thumb_func_start sub_804A740
-sub_804A740: @ 804A740
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r7, 0
- ldr r3, _0804A800
- ldr r0, [r3]
- adds r0, 0x42
- add r0, r12
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804A7F2
- ldr r6, _0804A804
- mov r9, r3
- mov r1, r12
- lsls r0, r1, 1
- add r0, r12
- lsls r2, r0, 1
- mov r10, r2
- ldr r1, _0804A808
- movs r2, 0
- mov r8, r2
- lsls r0, 2
- adds r5, r0, r1
-_0804A778:
- mov r1, r9
- ldr r0, [r1]
- mov r2, r10
- adds r4, r7, r2
- adds r0, 0x34
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- mov r0, r9
- ldr r3, [r0]
- adds r2, r3, 0
- adds r2, 0x34
- adds r2, r4
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r5]
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r1, 0x20]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r5, 0x1]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r2, r8
- strh r2, [r0, 0x26]
- adds r5, 0x2
- adds r7, 0x1
- adds r3, 0x42
- add r3, r12
- ldrb r3, [r3]
- cmp r7, r3
- blt _0804A778
-_0804A7F2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A800: .4byte 0x03004824
-_0804A804: .4byte 0x02020004
-_0804A808: .4byte gUnknown_0820C29C
- thumb_func_end sub_804A740
-
- thumb_func_start sub_804A80C
-sub_804A80C: @ 804A80C
- push {lr}
- sub sp, 0x8
- ldr r0, _0804A838
- ldr r0, [r0]
- adds r0, 0x4
- ldr r1, _0804A83C
- ldrb r2, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- movs r0, 0x1
- bl sub_804A41C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0804A838: .4byte 0x03004824
-_0804A83C: .4byte gUnknown_0820C330
- thumb_func_end sub_804A80C
-
- thumb_func_start sub_804A840
-sub_804A840: @ 804A840
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0804A8A8
- ldr r4, _0804A89C
- ldr r0, [r4]
- adds r0, 0x4
- ldr r1, _0804A8A0
- ldrb r2, [r1]
- ldrb r1, [r1, 0x1]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, [r4]
- adds r0, 0xC8
- ldr r3, _0804A8A4
- movs r1, 0xF
- str r1, [sp]
- movs r1, 0x11
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- bl sub_804A96C
- movs r0, 0
- bl sub_804A6DC
- movs r0, 0
- bl sub_804A41C
- movs r0, 0
- bl sub_804A740
- ldr r0, [r4]
- adds r0, 0xC8
- bl sub_804A938
- b _0804A8FA
- .align 2, 0
-_0804A89C: .4byte 0x03004824
-_0804A8A0: .4byte gUnknown_0820C330
-_0804A8A4: .4byte gUnknown_0820ADEE
-_0804A8A8:
- bl sub_8072DEC
- ldr r4, _0804A924
- ldr r0, [r4]
- adds r0, 0x4
- ldr r1, _0804A928
- ldrb r2, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, [r4]
- adds r0, 0xC8
- ldr r3, _0804A92C
- movs r1, 0xF
- str r1, [sp]
- movs r1, 0x11
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0xF
- movs r2, 0
- bl sub_804A96C
- movs r0, 0x1
- bl sub_804A6DC
- movs r0, 0x1
- bl sub_804A41C
- movs r0, 0x1
- bl sub_804A740
- ldr r0, [r4]
- adds r0, 0xC8
- bl sub_804A938
-_0804A8FA:
- ldr r0, _0804A930
- ldr r0, [r0, 0x4]
- ldr r4, _0804A924
- ldr r1, [r4]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _0804A934
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
- ldr r0, [r4]
- adds r0, 0x80
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A924: .4byte 0x03004824
-_0804A928: .4byte gUnknown_0820C330
-_0804A92C: .4byte gUnknown_0820ADEE
-_0804A930: .4byte gUnknown_0820C14C
-_0804A934: .4byte 0x06010000
- thumb_func_end sub_804A840
-
- thumb_func_start sub_804A938
-sub_804A938: @ 804A938
- movs r1, 0x1
- strb r1, [r0, 0x10]
- bx lr
- thumb_func_end sub_804A938
-
- thumb_func_start sub_804A940
-sub_804A940: @ 804A940
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _0804A95C
- adds r0, r4, 0
- adds r0, 0x12
- ldr r1, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- movs r0, 0
- strb r0, [r4, 0x10]
-_0804A95C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804A940
-
- thumb_func_start sub_804A964
-sub_804A964: @ 804A964
- movs r2, 0
- strb r2, [r0, 0x10]
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end sub_804A964
-
- thumb_func_start sub_804A96C
-sub_804A96C: @ 804A96C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- mov r10, r3
- ldr r0, [sp, 0x24]
- ldr r3, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r4, 16
- lsrs r7, r4, 16
- movs r2, 0
- cmp r2, r12
- bge _0804A9DE
- ldr r0, [sp]
- adds r0, 0x12
- mov r9, r0
- lsls r0, r6, 5
- adds r0, r1
- mov r8, r0
-_0804A9AA:
- movs r4, 0
- adds r6, r2, 0x1
- cmp r4, r5
- bge _0804A9D8
- lsls r1, r2, 5
- add r1, r8
- adds r0, r5, 0
- muls r0, r2
- lsls r0, 1
- mov r2, r10
- adds r3, r0, r2
- lsls r1, 1
- mov r0, r9
- adds r2, r1, r0
-_0804A9C6:
- ldrh r1, [r3]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r5
- blt _0804A9C6
-_0804A9D8:
- adds r2, r6, 0
- cmp r2, r12
- blt _0804A9AA
-_0804A9DE:
- movs r0, 0x1
- ldr r1, [sp]
- strb r0, [r1, 0x10]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804A96C
-
- thumb_func_start sub_804A9F4
-sub_804A9F4: @ 804A9F4
- push {lr}
- bl sub_8071EF4
- pop {r0}
- bx r0
- thumb_func_end sub_804A9F4
-
- thumb_func_start sub_804AA00
-sub_804AA00: @ 804AA00
- push {lr}
- bl sub_8071EF4
- pop {r0}
- bx r0
- thumb_func_end sub_804AA00
-
- thumb_func_start sub_804AA0C
-sub_804AA0C: @ 804AA0C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _0804AA7C
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0x4
- ldr r2, _0804AA80
- lsrs r4, 22
- adds r1, r4, r2
- ldrb r6, [r1]
- adds r1, r2, 0x1
- adds r1, r4, r1
- ldrb r5, [r1]
- adds r1, r2, 0x2
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r2, 0x3
- adds r2, r4, r2
- ldrb r1, [r2]
- str r1, [sp]
- adds r1, r6, 0
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- mov r1, r8
- ldr r3, [r1]
- adds r0, r3, 0x4
- ldr r1, _0804AA84
- adds r4, r1
- ldr r1, [r4]
- adds r3, 0x7A
- movs r4, 0xC0
- lsls r4, 1
- adds r2, r4, 0
- ldrb r3, [r3]
- adds r2, r3
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp]
- adds r3, r6, 0
- bl sub_8003460
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AA7C: .4byte 0x03004824
-_0804AA80: .4byte gUnknown_0820C308
-_0804AA84: .4byte gUnknown_0820C2F0
- thumb_func_end sub_804AA0C
-
- thumb_func_start sub_804AA88
-sub_804AA88: @ 804AA88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- ldr r5, _0804AAD0
- ldr r0, _0804AAD4
- mov r8, r0
- movs r4, 0
- ldr r2, _0804AAD8
- mov r12, r2
- movs r7, 0x8E
- lsls r7, 4
- movs r6, 0xFF
-_0804AAA2:
- ldr r0, [r5]
- lsls r2, r3, 3
- adds r0, r2
- add r0, r8
- strb r4, [r0]
- ldr r1, [r5]
- adds r1, r2
- mov r2, r12
- adds r0, r1, r2
- strh r4, [r0]
- adds r1, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x3
- ble _0804AAA2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AAD0: .4byte 0x03004824
-_0804AAD4: .4byte 0x000008dc
-_0804AAD8: .4byte 0x000008de
- thumb_func_end sub_804AA88
-
- thumb_func_start sub_804AADC
-sub_804AADC: @ 804AADC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- movs r3, 0
- ldr r4, _0804AB18
- mov r12, r4
- ldr r7, _0804AB1C
-_0804AAEE:
- mov r1, r12
- ldr r0, [r1]
- lsls r1, r3, 3
- adds r2, r0, r1
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804AB24
- ldr r3, _0804AB20
- adds r0, r2, r3
- strh r5, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strb r6, [r0]
- ldr r0, [r4]
- adds r0, r1
- ldr r1, _0804AB1C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0804AB2A
- .align 2, 0
-_0804AB18: .4byte 0x03004824
-_0804AB1C: .4byte 0x000008dc
-_0804AB20: .4byte 0x000008de
-_0804AB24:
- adds r3, 0x1
- cmp r3, 0x3
- ble _0804AAEE
-_0804AB2A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804AADC
-
- thumb_func_start sub_804AB30
-sub_804AB30: @ 804AB30
- push {r4,r5,lr}
- movs r4, 0
- ldr r3, _0804AB58
-_0804AB36:
- ldr r0, [r3]
- lsls r1, r4, 3
- adds r2, r0, r1
- ldr r5, _0804AB5C
- adds r0, r2, r5
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _0804ABE2
- ldr r0, _0804AB60
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0804AB64
- subs r0, 0x1
- strh r0, [r1]
- b _0804ABE2
- .align 2, 0
-_0804AB58: .4byte 0x03004824
-_0804AB5C: .4byte 0x000008dc
-_0804AB60: .4byte 0x000008de
-_0804AB64:
- movs r1, 0x8E
- lsls r1, 4
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0804ABD2
- lsls r0, 2
- ldr r1, _0804AB7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804AB7C: .4byte _0804AB80
- .align 2, 0
-_0804AB80:
- .4byte _0804AB98
- .4byte _0804ABB4
- .4byte _0804ABBC
- .4byte _0804ABC4
- .4byte _0804ABC4
- .4byte _0804ABCC
-_0804AB98:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0804ABB0
- ldr r1, [r1]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- b _0804ABD2
- .align 2, 0
-_0804ABB0: .4byte 0x03004824
-_0804ABB4:
- movs r0, 0
- bl sub_804AA0C
- b _0804ABD2
-_0804ABBC:
- movs r0, 0x2
- bl sub_804AA0C
- b _0804ABD2
-_0804ABC4:
- movs r0, 0x3
- bl sub_804AA0C
- b _0804ABD2
-_0804ABCC:
- movs r0, 0x3
- bl sub_804AA0C
-_0804ABD2:
- ldr r0, _0804ABF0
- ldr r1, [r0]
- adds r1, r5
- ldr r2, _0804ABF4
- adds r1, r2
- movs r2, 0
- strb r2, [r1]
- adds r3, r0, 0
-_0804ABE2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804AB36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804ABF0: .4byte 0x03004824
-_0804ABF4: .4byte 0x000008dc
- thumb_func_end sub_804AB30
-
- thumb_func_start sub_804ABF8
-sub_804ABF8: @ 804ABF8
- push {r4,lr}
- ldr r0, _0804AC14
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r1, [r1]
- subs r1, 0x8
- adds r4, r0, 0
- cmp r1, 0x8
- bhi _0804ACB0
- lsls r0, r1, 2
- ldr r1, _0804AC18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804AC14: .4byte 0x03004824
-_0804AC18: .4byte _0804AC1C
- .align 2, 0
-_0804AC1C:
- .4byte _0804AC40
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804AC60
- .4byte _0804AC74
- .4byte _0804AC88
- .4byte _0804AC9A
-_0804AC40:
- ldr r0, [r4]
- adds r0, 0xB4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _0804AC5C
- adds r0, r1
- bl LoadSpriteSheet
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x7E
- strh r0, [r2]
- b _0804ACC2
- .align 2, 0
-_0804AC5C: .4byte gUnknown_0820C07C
-_0804AC60:
- ldr r0, _0804AC6C
- bl LoadSpritePalette
- ldr r0, _0804AC70
- ldr r1, [r0]
- b _0804ACC2
- .align 2, 0
-_0804AC6C: .4byte gUnknown_0820C0E4
-_0804AC70: .4byte 0x03004824
-_0804AC74:
- ldr r0, _0804AC80
- bl LoadSpritePalette
- ldr r0, _0804AC84
- ldr r1, [r0]
- b _0804ACC2
- .align 2, 0
-_0804AC80: .4byte gUnknown_0820C12C
-_0804AC84: .4byte 0x03004824
-_0804AC88:
- ldr r0, _0804ACA8
- bl LoadSpriteSheet
- ldr r0, _0804ACAC
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804AC9A:
- ldr r0, _0804ACAC
- ldr r0, [r0]
- adds r0, 0xB4
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0804ACCC
- .align 2, 0
-_0804ACA8: .4byte gUnknown_0820C124
-_0804ACAC: .4byte 0x03004824
-_0804ACB0:
- ldr r0, [r4]
- adds r0, 0xB4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _0804ACD4
- adds r0, r1
- bl LoadSpriteSheet
- ldr r1, [r4]
-_0804ACC2:
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0804ACCC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0804ACD4: .4byte gUnknown_0820C07C
- thumb_func_end sub_804ABF8
-
- thumb_func_start sub_804ACD8
-sub_804ACD8: @ 804ACD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r3, r2, 24
- lsrs r3, 24
- ldr r0, _0804ACF0
- adds r2, r4, 0
- bl sub_804AFB8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804ACF0: .4byte gWindowConfig_81E725C
- thumb_func_end sub_804ACD8
-
- thumb_func_start sub_804ACF4
-sub_804ACF4: @ 804ACF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0
- beq _0804AD0C
- cmp r0, 0x1
- beq _0804ADA0
- b _0804AE2C
-_0804AD0C:
- movs r7, 0
- ldr r1, _0804AD4C
- ldr r0, [r1]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804AD1C
- b _0804AE2C
-_0804AD1C:
- adds r6, r1, 0
- movs r5, 0
- mov r9, r5
-_0804AD22:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0804AD50
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- adds r1, r0, 0
- cmp r1, 0x1
- bne _0804AD54
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- mov r2, r9
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AD84
- .align 2, 0
-_0804AD4C: .4byte 0x03004824
-_0804AD50: .4byte 0x03004360
-_0804AD54:
- adds r0, r4, 0
- movs r1, 0x39
- bl PokemonGetField
- adds r1, r0, 0
- cmp r1, 0
- bne _0804AD72
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AD84
-_0804AD72:
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- mov r1, r9
-_0804AD84:
- strb r1, [r0]
- ldr r0, _0804AD9C
- adds r5, 0x1
- adds r7, 0x1
- ldr r0, [r0]
- adds r0, 0x42
- add r0, r8
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804AD22
- b _0804AE2C
- .align 2, 0
-_0804AD9C: .4byte 0x03004824
-_0804ADA0:
- movs r7, 0
- ldr r1, _0804ADE0
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804AE2C
- adds r6, r1, 0
- movs r5, 0x6
- movs r2, 0
- mov r9, r2
-_0804ADB6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0804ADE4
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- adds r1, r0, 0
- cmp r1, 0x1
- bne _0804ADE8
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- mov r2, r9
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AE18
- .align 2, 0
-_0804ADE0: .4byte 0x03004824
-_0804ADE4: .4byte 0x030045c0
-_0804ADE8:
- adds r0, r4, 0
- movs r1, 0x39
- bl PokemonGetField
- adds r1, r0, 0
- cmp r1, 0
- bne _0804AE06
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AE18
-_0804AE06:
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- mov r1, r9
-_0804AE18:
- strb r1, [r0]
- ldr r0, _0804AE38
- adds r5, 0x1
- adds r7, 0x1
- ldr r0, [r0]
- adds r0, 0x42
- add r0, r8
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804ADB6
-_0804AE2C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AE38: .4byte 0x03004824
- thumb_func_end sub_804ACF4
-
- thumb_func_start sub_804AE3C
-sub_804AE3C: @ 804AE3C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0804AE4C
- cmp r0, 0x1
- beq _0804AEAC
- b _0804AF00
-_0804AE4C:
- movs r6, 0
- ldr r1, _0804AEA4
- ldr r0, [r1]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804AF00
- adds r7, r1, 0
-_0804AE5C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804AEA8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl PokemonGetField
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x3A
- bl PokemonGetField
- adds r1, r0, 0
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl sub_8046200
- ldr r1, [r7]
- adds r1, 0x69
- adds r1, r6
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804AE5C
- b _0804AF00
- .align 2, 0
-_0804AEA4: .4byte 0x03004824
-_0804AEA8: .4byte 0x03004360
-_0804AEAC:
- movs r6, 0
- ldr r1, _0804AF08
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804AF00
- adds r7, r1, 0
-_0804AEBC:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804AF0C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl PokemonGetField
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x3A
- bl PokemonGetField
- adds r1, r0, 0
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl sub_8046200
- ldr r1, [r7]
- adds r1, 0x6F
- adds r1, r6
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804AEBC
-_0804AF00:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AF08: .4byte 0x03004824
-_0804AF0C: .4byte 0x030045c0
- thumb_func_end sub_804AE3C
-
- thumb_func_start sub_804AF10
-sub_804AF10: @ 804AF10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
-_0804AF18:
- movs r4, 0
- ldr r2, _0804AF7C
- ldr r0, [r2]
- adds r0, 0x42
- adds r0, r5
- adds r1, r5, 0x1
- mov r8, r1
- ldrb r0, [r0]
- cmp r4, r0
- bge _0804AF6A
- adds r6, r2, 0
- lsls r0, r5, 1
- adds r0, r5
- lsls r7, r0, 1
-_0804AF34:
- ldr r2, [r6]
- adds r3, r4, r7
- adds r0, r2, 0
- adds r0, 0x34
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804AF80
- adds r0, r1
- adds r2, 0x69
- adds r2, r3
- ldrb r2, [r2]
- movs r1, 0x4
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_809D824
- adds r4, 0x1
- ldr r0, [r6]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804AF34
-_0804AF6A:
- mov r5, r8
- cmp r5, 0x1
- ble _0804AF18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AF7C: .4byte 0x03004824
-_0804AF80: .4byte 0x02020004
- thumb_func_end sub_804AF10
-
- thumb_func_start sub_804AF84
-sub_804AF84: @ 804AF84
- push {r4,lr}
- movs r2, 0
- ldr r4, _0804AFB0
- ldr r3, _0804AFB4
-_0804AF8C:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804AFA2
- ldr r0, [r3]
- adds r0, 0xB5
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804AFA2
- strb r0, [r1]
-_0804AFA2:
- adds r2, 0x1
- cmp r2, 0xA
- ble _0804AF8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AFB0: .4byte 0x02028844
-_0804AFB4: .4byte 0x03004824
- thumb_func_end sub_804AF84
-
- thumb_func_start sub_804AFB8
-sub_804AFB8: @ 804AFB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- mov r8, r1
- mov r10, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r6, 0x3
- lsrs r6, r0, 2
- ldr r7, _0804B054
- mov r0, sp
- movs r5, 0
- strh r5, [r0]
- lsls r4, r6, 6
- movs r0, 0x80
- lsls r0, 17
- orrs r4, r0
- mov r0, sp
- adds r1, r7, 0
- adds r2, r4, 0
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- strh r5, [r0]
- mov r2, r9
- ldrb r1, [r2, 0xD]
- lsls r1, 5
- adds r1, r7
- adds r2, r4, 0
- bl CpuSet
- mov r0, r9
- adds r1, r7, 0
- mov r2, r10
- bl sub_8004E3C
- movs r4, 0
- cmp r4, r6
- bcs _0804B042
-_0804B010:
- lsls r0, r4, 7
- adds r0, r7, r0
- lsls r1, r4, 8
- add r1, r8
- movs r2, 0x40
- bl CpuSet
- lsls r0, r4, 2
- mov r1, r9
- ldrb r1, [r1, 0xD]
- adds r0, r1
- lsls r0, 5
- adds r0, r7, r0
- lsls r1, r4, 3
- adds r1, 0x4
- lsls r1, 5
- add r1, r8
- movs r2, 0x40
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _0804B010
-_0804B042:
- 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
-_0804B054: .4byte 0x02039360
- thumb_func_end sub_804AFB8
-
- thumb_func_start sub_804B058
-sub_804B058: @ 804B058
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804B074
- movs r0, 0x17
- bl audio_play
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0804B074:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804B058
-
- thumb_func_start sub_804B07C
-sub_804B07C: @ 804B07C
- push {lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- bne _0804B0B2
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _0804B098
- strh r1, [r2, 0x2E]
-_0804B098:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldr r1, _0804B0B8
- adds r0, r1
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- lsls r1, 4
- adds r1, 0x4
- movs r2, 0x2
- bl LoadPalette
-_0804B0B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0804B0B8: .4byte gUnknown_08215A98
- thumb_func_end sub_804B07C
-
- thumb_func_start sub_804B0BC
-sub_804B0BC: @ 804B0BC
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- adds r1, 0x1
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xA
- bne _0804B0DA
- adds r0, r2, 0
- bl DestroySprite
-_0804B0DA:
- pop {r0}
- bx r0
- thumb_func_end sub_804B0BC
-
- thumb_func_start sub_804B0E0
-sub_804B0E0: @ 804B0E0
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- adds r1, 0x1
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x26]
- subs r0, 0x1
- strh r0, [r2, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xA
- bne _0804B0FE
- adds r0, r2, 0
- bl DestroySprite
-_0804B0FE:
- pop {r0}
- bx r0
- thumb_func_end sub_804B0E0
-
- thumb_func_start sub_804B104
-sub_804B104: @ 804B104
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _0804B120
- movs r0, 0xCC
- bl audio_play
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0804B120:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804B104
-
- thumb_func_start sub_804B128
-sub_804B128: @ 804B128
- push {r4,r5,lr}
- sub sp, 0x20
- ldr r0, _0804B1B4
- ldr r0, [r0]
- mov r12, r0
- movs r0, 0x82
- lsls r0, 1
- add r0, r12
- ldrh r1, [r0]
- lsls r1, 8
- movs r0, 0x83
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- lsls r2, 8
- movs r0, 0x86
- lsls r0, 1
- add r0, r12
- movs r4, 0
- ldrsh r3, [r0, r4]
- movs r0, 0x87
- lsls r0, 1
- add r0, r12
- movs r5, 0
- ldrsh r0, [r0, r5]
- str r0, [sp]
- movs r4, 0x8C
- lsls r4, 1
- add r4, r12
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x8]
- movs r0, 0x8E
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- bl sub_8040F34
- ldr r1, _0804B1B8
- add r0, sp, 0x10
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [sp, 0x18]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [sp, 0x1C]
- str r0, [r1]
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B1B4: .4byte 0x03004828
-_0804B1B8: .4byte 0x04000020
- thumb_func_end sub_804B128
-
- thumb_func_start sub_804B1BC
-sub_804B1BC: @ 804B1BC
- push {lr}
- ldr r1, _0804B1FC
- ldr r0, _0804B200
- ldr r2, [r0]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 19
- ldrh r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0804B208
- ldr r1, _0804B204
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- b _0804B20C
- .align 2, 0
-_0804B1FC: .4byte 0x04000016
-_0804B200: .4byte 0x03004828
-_0804B204: .4byte 0x0400001a
-_0804B208:
- bl sub_804B128
-_0804B20C:
- pop {r0}
- bx r0
- thumb_func_end sub_804B1BC
-
- thumb_func_start sub_804B210
-sub_804B210: @ 804B210
- push {lr}
- bl sub_804B1BC
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804B210
-
- thumb_func_start sub_804B228
-sub_804B228: @ 804B228
- push {r4,lr}
- ldr r4, _0804B248
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0xB4
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- adds r1, 0xB2
- strb r3, [r1]
- ldr r0, [r4]
- adds r0, 0xB3
- strb r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B248: .4byte 0x03004828
- thumb_func_end sub_804B228
-
- thumb_func_start sub_804B24C
-sub_804B24C: @ 804B24C
- push {r4,r5,lr}
- ldr r1, _0804B270
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB2
- adds r3, r2, 0
- adds r3, 0xB3
- ldrb r0, [r0]
- adds r5, r1, 0
- ldrb r3, [r3]
- cmp r0, r3
- bne _0804B274
- adds r1, r2, 0
- adds r1, 0xB4
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804B27A
- .align 2, 0
-_0804B270: .4byte 0x03004828
-_0804B274:
- adds r1, r2, 0
- adds r1, 0xB4
- movs r0, 0
-_0804B27A:
- strh r0, [r1]
- adds r4, r5, 0
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0xB4
- ldrh r0, [r2]
- cmp r0, 0xB4
- bls _0804B29C
- movs r1, 0
- movs r0, 0
- strh r0, [r2]
- adds r0, r3, 0
- adds r0, 0xB3
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xB2
- strb r1, [r0]
-_0804B29C:
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r1, [r1]
- adds r0, 0xB3
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_804B24C
-
- thumb_func_start sub_804B2B0
-sub_804B2B0: @ 804B2B0
- push {lr}
- ldr r0, _0804B2C0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804B2C4
- movs r0, 0
- b _0804B2CC
- .align 2, 0
-_0804B2C0: .4byte 0x03002fa4
-_0804B2C4:
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
-_0804B2CC:
- pop {r1}
- bx r1
- thumb_func_end sub_804B2B0
-
- thumb_func_start sub_804B2D0
-sub_804B2D0: @ 804B2D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0
- mov r10, r4
- cmp r7, 0
- bne _0804B2FC
- ldr r0, _0804B324
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0804B328
- adds r1, r0
- mov r10, r1
- movs r4, 0x1
-_0804B2FC:
- cmp r7, 0x1
- bne _0804B31A
- ldr r0, _0804B324
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0804B32C
- adds r1, r0
- mov r10, r1
- movs r4, 0x3
-_0804B31A:
- cmp r5, 0
- beq _0804B330
- cmp r5, 0x1
- beq _0804B3A4
- b _0804B3FA
- .align 2, 0
-_0804B324: .4byte 0x020297d8
-_0804B328: .4byte 0x03004360
-_0804B32C: .4byte 0x030045c0
-_0804B330:
- mov r0, r10
- movs r1, 0x41
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, r10
- movs r1, 0
- bl PokemonGetField
- mov r9, r0
- lsls r0, r5, 3
- ldr r1, _0804B390
- adds r0, r1
- ldr r1, _0804B394
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _0804B398
- ldr r6, _0804B39C
- lsls r7, 1
- mov r8, r7
- mov r4, r8
- adds r4, 0x1
- lsls r4, 2
- adds r4, r6
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r4, r9
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r10
- bl sub_8040990
- bl LoadCompressedObjectPalette
- ldr r0, _0804B3A0
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- add r0, r8
- strh r5, [r0]
- b _0804B3FA
- .align 2, 0
-_0804B390: .4byte gMonFrontPicTable
-_0804B394: .4byte gMonFrontPicCoords
-_0804B398: .4byte 0x02000000
-_0804B39C: .4byte gUnknown_081FAF4C
-_0804B3A0: .4byte 0x03004828
-_0804B3A4:
- mov r0, r10
- bl sub_8040990
- ldrh r0, [r0, 0x4]
- adds r1, r4, 0
- bl gpu_pal_obj_decompress_and_apply
- ldr r0, _0804B40C
- movs r1, 0x78
- movs r2, 0x3C
- movs r3, 0x6
- bl CreateSprite
- ldr r4, _0804B410
- ldr r1, [r4]
- adds r1, 0xB8
- adds r1, r7
- strb r0, [r1]
- ldr r3, _0804B414
- ldr r0, [r4]
- adds r0, 0xB8
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xB8
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _0804B418
- str r1, [r0]
-_0804B3FA:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B40C: .4byte 0x02024e8c
-_0804B410: .4byte 0x03004828
-_0804B414: .4byte 0x02020004
-_0804B418: .4byte SpriteCallbackDummy
- thumb_func_end sub_804B2D0
-
- thumb_func_start sub_804B41C
-sub_804B41C: @ 804B41C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0804B43C
- ldr r2, _0804B440
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0804B430
- b _0804B76E
-_0804B430:
- lsls r0, 2
- ldr r1, _0804B444
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804B43C: .4byte 0x03001770
-_0804B440: .4byte 0x0000043c
-_0804B444: .4byte _0804B448
- .align 2, 0
-_0804B448:
- .4byte _0804B47C
- .4byte _0804B5AC
- .4byte _0804B5D4
- .4byte _0804B5FC
- .4byte _0804B648
- .4byte _0804B678
- .4byte _0804B6A8
- .4byte _0804B6B2
- .4byte _0804B6CC
- .4byte _0804B6E4
- .4byte _0804B71C
- .4byte _0804B726
- .4byte _0804B75C
-_0804B47C:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetTasks
- bl CloseLink
- ldr r6, _0804B570
- ldr r5, _0804B574
- str r5, [r6]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0804B578
- bl SetVBlankCallback
- bl sub_804B228
- ldr r4, _0804B57C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r6]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x2
- bl sub_8064EF4
- ldr r1, [r6]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- bl sub_8064F08
- bl sub_8071EF4
- ldr r1, _0804B580
- ldr r4, _0804B584
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, _0804B588
- ldr r0, _0804B58C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _0804B590
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804B594
- ldr r1, _0804B598
- adds r5, r1
- movs r2, 0x80
- lsls r2, 4
- adds r1, r5, 0
- bl CpuSet
- ldr r1, _0804B59C
- ldr r0, _0804B5A0
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804B5A4
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804B5A8
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xB6
- movs r2, 0
- strh r2, [r0]
- adds r0, 0xE
- strh r2, [r0]
- movs r4, 0x8F
- lsls r4, 1
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, [r6]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0x40
- strh r1, [r0]
- subs r4, 0x18
- adds r0, r3, r4
- strh r1, [r0]
- adds r1, 0xC8
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x4
- adds r0, r3, r4
- strh r2, [r0]
- movs r0, 0x86
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r4, 0x4
- adds r1, r3, r4
- movs r0, 0x50
- strh r0, [r1]
- adds r0, 0xC8
- adds r1, r3, r0
- subs r0, 0x18
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- b _0804B76E
- .align 2, 0
-_0804B570: .4byte 0x03004828
-_0804B574: .4byte 0x0201f000
-_0804B578: .4byte sub_804B210
-_0804B57C: .4byte gWindowConfig_81E6F84
-_0804B580: .4byte 0x03002b74
-_0804B584: .4byte 0x00001144
-_0804B588: .4byte 0x03001770
-_0804B58C: .4byte 0x0000043c
-_0804B590: .4byte gUnknown_08D00000
-_0804B594: .4byte gUnknown_08D00524
-_0804B598: .4byte 0xfffe1000
-_0804B59C: .4byte 0x06002800
-_0804B5A0: .4byte 0x040000d4
-_0804B5A4: .4byte 0x80000280
-_0804B5A8: .4byte gUnknown_08D004E0
-_0804B5AC:
- bl OpenLink
- ldr r1, _0804B5C8
- ldr r2, _0804B5CC
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _0804B5D0
- ldr r0, [r0]
- adds r0, 0xC0
- str r2, [r0]
- b _0804B76E
- .align 2, 0
-_0804B5C8: .4byte 0x03001770
-_0804B5CC: .4byte 0x0000043c
-_0804B5D0: .4byte 0x03004828
-_0804B5D4:
- ldr r0, _0804B5F4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bhi _0804B5E8
- b _0804B76E
-_0804B5E8:
- movs r0, 0
- str r0, [r1]
- ldr r4, _0804B5F8
- adds r1, r2, r4
- b _0804B74C
- .align 2, 0
-_0804B5F4: .4byte 0x03004828
-_0804B5F8: .4byte 0x0000043c
-_0804B5FC:
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _0804B608
- b _0804B746
-_0804B608:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _0804B61C
- b _0804B76E
-_0804B61C:
- ldr r0, _0804B63C
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x1E
- bhi _0804B62E
- b _0804B76E
-_0804B62E:
- bl sub_8007F4C
- ldr r1, _0804B640
- ldr r0, _0804B644
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B63C: .4byte 0x03004828
-_0804B640: .4byte 0x03001770
-_0804B644: .4byte 0x0000043c
-_0804B648:
- bl sub_804B24C
- ldr r0, _0804B66C
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804B656
- b _0804B76E
-_0804B656:
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804B664
- b _0804B76E
-_0804B664:
- ldr r1, _0804B670
- ldr r4, _0804B674
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B66C: .4byte 0x03002fa4
-_0804B670: .4byte 0x03001770
-_0804B674: .4byte 0x0000043c
-_0804B678:
- ldr r2, _0804B69C
- ldr r0, [r2]
- adds r0, 0x9C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x9D
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xBD
- strb r1, [r0]
- movs r0, 0
- bl sub_804B2D0
- ldr r1, _0804B6A0
- ldr r0, _0804B6A4
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B69C: .4byte 0x03004828
-_0804B6A0: .4byte 0x03001770
-_0804B6A4: .4byte 0x0000043c
-_0804B6A8:
- movs r0, 0
- movs r1, 0x1
- bl sub_804B2D0
- b _0804B746
-_0804B6B2:
- movs r0, 0x1
- movs r1, 0
- bl sub_804B2D0
- ldr r1, _0804B6C4
- ldr r4, _0804B6C8
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B6C4: .4byte 0x03001770
-_0804B6C8: .4byte 0x0000043c
-_0804B6CC:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B6DC
- ldr r0, _0804B6E0
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B6DC: .4byte 0x03001770
-_0804B6E0: .4byte 0x0000043c
-_0804B6E4:
- bl sub_804C164
- ldr r0, _0804B704
- bl LoadSpriteSheet
- ldr r0, _0804B708
- bl LoadSpritePalette
- ldr r1, _0804B70C
- ldr r2, _0804B710
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0804B714
- ldr r4, _0804B718
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B704: .4byte gUnknown_0821594C
-_0804B708: .4byte gUnknown_08215954
-_0804B70C: .4byte 0x0400000a
-_0804B710: .4byte 0x00000502
-_0804B714: .4byte 0x03001770
-_0804B718: .4byte 0x0000043c
-_0804B71C:
- ldr r0, _0804B754
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804B726:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0
- bl sub_804BBE8
- bl sub_804C1A8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804B746:
- ldr r1, _0804B758
- ldr r2, _0804B754
- adds r1, r2
-_0804B74C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804B76E
- .align 2, 0
-_0804B754: .4byte 0x0000043c
-_0804B758: .4byte 0x03001770
-_0804B75C:
- ldr r0, _0804B788
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804B76E
- ldr r0, _0804B78C
- bl SetMainCallback2
-_0804B76E:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B788: .4byte 0x0202f388
-_0804B78C: .4byte sub_804DB84
- thumb_func_end sub_804B41C
-
- thumb_func_start sub_804B790
-sub_804B790: @ 804B790
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r1, _0804B7B4
- ldr r2, _0804B7B8
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0804B7A8
- b _0804B9F2
-_0804B7A8:
- lsls r0, 2
- ldr r1, _0804B7BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804B7B4: .4byte 0x03001770
-_0804B7B8: .4byte 0x0000043c
-_0804B7BC: .4byte _0804B7C0
- .align 2, 0
-_0804B7C0:
- .4byte _0804B7F4
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B914
- .4byte _0804B92C
- .4byte _0804B944
- .4byte _0804B94E
- .4byte _0804B968
- .4byte _0804B9A0
- .4byte _0804B9AA
- .4byte _0804B9E0
-_0804B7F4:
- ldr r1, _0804B8E0
- ldr r0, _0804B8E4
- ldrh r0, [r0]
- movs r6, 0
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0804B8E8
- ldr r1, _0804B8EC
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _0804B8F0
- movs r1, 0x7
- add r2, sp, 0x4
- bl PokemonGetField
- adds r4, 0x1C
- adds r0, r4, 0
- add r1, sp, 0x4
- bl StringCopy
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- mov r8, r3
- strh r6, [r0]
- bl ResetTasks
- ldr r5, _0804B8F4
- ldr r0, _0804B8F8
- str r0, [r5]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0804B8FC
- bl SetVBlankCallback
- bl sub_804B228
- ldr r4, _0804B900
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x2
- bl sub_8064EF4
- ldr r1, [r5]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8064F08
- bl sub_8071EF4
- ldr r1, _0804B904
- ldr r2, _0804B908
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, [r5]
- movs r3, 0x8F
- lsls r3, 1
- adds r0, r3
- mov r1, r8
- strb r1, [r0]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0xB6
- strh r6, [r0]
- adds r0, 0xE
- strh r6, [r0]
- subs r3, 0x1A
- adds r0, r2, r3
- movs r1, 0x40
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- adds r1, 0xC8
- adds r0, r2, r1
- strh r6, [r0]
- adds r3, 0x4
- adds r0, r2, r3
- strh r6, [r0]
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0x50
- strh r0, [r1]
- adds r0, 0xC8
- adds r1, r2, r0
- subs r0, 0x18
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r2, r1
- strh r6, [r0]
- adds r0, r2, 0
- adds r0, 0xC0
- str r6, [r0]
- ldr r0, _0804B90C
- ldr r2, _0804B910
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- b _0804B9F2
- .align 2, 0
-_0804B8E0: .4byte 0x020297d8
-_0804B8E4: .4byte 0x0202e8ce
-_0804B8E8: .4byte 0x03002978
-_0804B8EC: .4byte 0x02024ea4
-_0804B8F0: .4byte 0x030045c0
-_0804B8F4: .4byte 0x03004828
-_0804B8F8: .4byte 0x0201f000
-_0804B8FC: .4byte sub_804B210
-_0804B900: .4byte gWindowConfig_81E717C
-_0804B904: .4byte 0x03002b74
-_0804B908: .4byte 0x00001144
-_0804B90C: .4byte 0x03001770
-_0804B910: .4byte 0x0000043c
-_0804B914:
- movs r0, 0
- movs r1, 0
- bl sub_804B2D0
- ldr r1, _0804B924
- ldr r3, _0804B928
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B924: .4byte 0x03001770
-_0804B928: .4byte 0x0000043c
-_0804B92C:
- movs r0, 0
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B93C
- ldr r0, _0804B940
- adds r1, r0
- b _0804B9D0
- .align 2, 0
-_0804B93C: .4byte 0x03001770
-_0804B940: .4byte 0x0000043c
-_0804B944:
- movs r0, 0x1
- movs r1, 0
- bl sub_804B2D0
- b _0804B9CA
-_0804B94E:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B960
- ldr r3, _0804B964
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B960: .4byte 0x03001770
-_0804B964: .4byte 0x0000043c
-_0804B968:
- bl sub_804C164
- ldr r0, _0804B988
- bl LoadSpriteSheet
- ldr r0, _0804B98C
- bl LoadSpritePalette
- ldr r1, _0804B990
- ldr r2, _0804B994
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0804B998
- ldr r3, _0804B99C
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B988: .4byte gUnknown_0821594C
-_0804B98C: .4byte gUnknown_08215954
-_0804B990: .4byte 0x0400000a
-_0804B994: .4byte 0x00000502
-_0804B998: .4byte 0x03001770
-_0804B99C: .4byte 0x0000043c
-_0804B9A0:
- ldr r0, _0804B9D8
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804B9AA:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0
- bl sub_804BBE8
- bl sub_804C1A8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804B9CA:
- ldr r1, _0804B9DC
- ldr r2, _0804B9D8
- adds r1, r2
-_0804B9D0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804B9F2
- .align 2, 0
-_0804B9D8: .4byte 0x0000043c
-_0804B9DC: .4byte 0x03001770
-_0804B9E0:
- ldr r0, _0804BA10
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804B9F2
- ldr r0, _0804BA14
- bl SetMainCallback2
-_0804B9F2:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA10: .4byte 0x0202f388
-_0804BA14: .4byte sub_804BBCC
- thumb_func_end sub_804B790
-
- thumb_func_start sub_804BA18
-sub_804BA18: @ 804BA18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0804BA60
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0804BA5A
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8090D90
-_0804BA5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA60: .4byte 0x03004360
- thumb_func_end sub_804BA18
-
- thumb_func_start sub_804BA64
-sub_804BA64: @ 804BA64
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- ldr r2, _0804BA90
- movs r1, 0x80
- lsls r1, 17
- eors r1, r0
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2]
- movs r0, 0x80
- lsls r0, 8
- cmp r1, r0
- bne _0804BA8C
- bl sub_80690F0
-_0804BA8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA90: .4byte 0x03002970
- thumb_func_end sub_804BA64
-
- thumb_func_start sub_804BA94
-sub_804BA94: @ 804BA94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x64
- mov r1, r9
- muls r1, r5
- ldr r0, _0804BB60
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x40
- bl PokemonGetField
- lsls r0, 16
- lsrs r6, r0, 16
- adds r1, r4, 0
- muls r1, r5
- ldr r0, _0804BB64
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x40
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r6, 0xFF
- beq _0804BAE8
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 2
- ldr r1, _0804BB68
- adds r0, r1
- bl sub_80A2B40
-_0804BAE8:
- ldr r4, _0804BB6C
- ldr r0, [r4]
- adds r0, 0x38
- adds r1, r7, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- ldr r1, [r4]
- adds r1, 0x38
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- movs r1, 0x46
- mov r0, sp
- strb r1, [r0]
- adds r0, r7, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0804BB28
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl pokemon_setattr
-_0804BB28:
- mov r0, r8
- cmp r0, 0xFF
- beq _0804BB3E
- lsls r1, r0, 3
- add r1, r8
- lsls r1, 2
- ldr r0, _0804BB70
- adds r1, r0
- adds r0, r7, 0
- bl sub_80A2D88
-_0804BB3E:
- mov r0, r9
- bl sub_804BA18
- ldr r0, _0804BB74
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804BB50
- bl sub_804BA64
-_0804BB50:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BB60: .4byte 0x03004360
-_0804BB64: .4byte 0x030045c0
-_0804BB68: .4byte 0x02028280
-_0804BB6C: .4byte 0x03004828
-_0804BB70: .4byte 0x02029700
-_0804BB74: .4byte 0x03002fa4
- thumb_func_end sub_804BA94
-
- thumb_func_start sub_804BB78
-sub_804BB78: @ 804BB78
- push {r4,lr}
- ldr r4, _0804BB8C
- ldr r0, [r4]
- adds r0, 0xBD
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804BB90
- cmp r0, 0x2
- beq _0804BBB6
- b _0804BBC0
- .align 2, 0
-_0804BB8C: .4byte 0x03004828
-_0804BB90:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804BBB6
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x9E
- movs r2, 0x14
- bl SendBlock
- ldr r1, [r4]
- adds r1, 0xBD
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804BBB6:
- ldr r0, _0804BBC8
- ldr r0, [r0]
- adds r0, 0xBD
- movs r1, 0
- strb r1, [r0]
-_0804BBC0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BBC8: .4byte 0x03004828
- thumb_func_end sub_804BB78
-
- thumb_func_start sub_804BBCC
-sub_804BBCC: @ 804BBCC
- push {lr}
- bl sub_804C29C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_804BBCC
-
- thumb_func_start sub_804BBE8
-sub_804BBE8: @ 804BBE8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bls _0804BBF4
- b _0804C0CA
-_0804BBF4:
- lsls r0, 2
- ldr r1, _0804BC00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804BC00: .4byte _0804BC04
- .align 2, 0
-_0804BC04:
- .4byte _0804BC24
- .4byte _0804BCC4
- .4byte _0804BD5C
- .4byte _0804BDA4
- .4byte _0804BE48
- .4byte _0804BEF8
- .4byte _0804BFA0
- .4byte _0804C060
-_0804BC24:
- ldr r0, _0804BCA0
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _0804BCA4
- ldr r4, _0804BCA8
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _0804BCAC
- ldr r6, _0804BCB0
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BC42:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BC42
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BCB4
- ldr r2, _0804BCB8
- ldr r0, _0804BCAC
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BCB0
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804BCBC
- ldr r2, [r0]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- movs r3, 0x8B
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0xB4
- strh r0, [r1]
- movs r1, 0x80
- lsls r1, 19
- movs r4, 0xBA
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r2, _0804BCC0
- adds r0, r2, 0
- strh r0, [r1]
- b _0804C0CA
- .align 2, 0
-_0804BCA0: .4byte gUnknown_0820C9F8
-_0804BCA4: .4byte gUnknown_0820CA98
-_0804BCA8: .4byte 0x06004000
-_0804BCAC: .4byte 0x040000d4
-_0804BCB0: .4byte 0x80000800
-_0804BCB4: .4byte gUnknown_0820F798
-_0804BCB8: .4byte 0x06009000
-_0804BCBC: .4byte 0x03004828
-_0804BCC0: .4byte 0x00005206
-_0804BCC4:
- ldr r0, _0804BD3C
- ldr r2, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0xAE
- lsls r1, 1
- strh r1, [r0]
- ldr r0, _0804BD40
- strh r1, [r0]
- ldr r1, _0804BD44
- ldr r2, _0804BD48
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BD4C
- ldr r2, _0804BD50
- movs r3, 0x80
- lsls r3, 5
- adds r1, 0xCA
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r4, [r1, 0x8]
- ldr r4, _0804BD54
- movs r5, 0xC0
- lsls r5, 19
- movs r6, 0x98
- lsls r6, 5
- adds r7, r0, 0
-_0804BD10:
- str r4, [r1]
- str r5, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r3
- adds r5, r3
- subs r6, r3
- cmp r6, r3
- bhi _0804BD10
- str r4, [r1]
- str r5, [r1, 0x4]
- lsrs r0, r6, 1
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0804BD58
- adds r0, r3, 0
- strh r0, [r1]
- b _0804C0CA
- .align 2, 0
-_0804BD3C: .4byte 0x03004828
-_0804BD40: .4byte 0x04000016
-_0804BD44: .4byte 0x0400000a
-_0804BD48: .4byte 0x00008502
-_0804BD4C: .4byte gUnknown_08210798
-_0804BD50: .4byte 0x06002800
-_0804BD54: .4byte gUnknown_0820CA98
-_0804BD58: .4byte 0x00001241
-_0804BD5C:
- ldr r0, _0804BD8C
- ldr r2, [r0]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 19
- ldr r4, _0804BD90
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, _0804BD94
- ldr r2, _0804BD98
- ldr r0, _0804BD9C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BDA0
- b _0804C0C6
- .align 2, 0
-_0804BD8C: .4byte 0x03004828
-_0804BD90: .4byte 0x00001241
-_0804BD94: .4byte gUnknown_08211798
-_0804BD98: .4byte 0x06002800
-_0804BD9C: .4byte 0x040000d4
-_0804BDA0: .4byte 0x80000400
-_0804BDA4:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x92
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BE24
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r4, 0x2
- adds r1, r3, r4
- strh r0, [r1]
- adds r0, 0xCC
- adds r1, r3, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r4, 0x8
- adds r1, r3, r4
- ldr r0, _0804BE28
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804BE2C
- ldr r4, _0804BE30
- movs r5, 0xD0
- lsls r5, 5
- ldr r2, _0804BE34
- mov r12, r2
- ldr r1, _0804BE38
- ldr r6, _0804BE3C
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BDF6:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BDF6
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BE40
- ldr r0, _0804BE38
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804BE44
- b _0804C0C6
- .align 2, 0
-_0804BE24: .4byte 0x03004828
-_0804BE28: .4byte 0x0000ffba
-_0804BE2C: .4byte gUnknown_0820DD98
-_0804BE30: .4byte 0x06004000
-_0804BE34: .4byte gUnknown_08211F98
-_0804BE38: .4byte 0x040000d4
-_0804BE3C: .4byte 0x80000800
-_0804BE40: .4byte 0x06009000
-_0804BE44: .4byte 0x80000080
-_0804BE48:
- movs r1, 0x80
- lsls r1, 19
- ldr r4, _0804BED0
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r2, _0804BED4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BED8
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r0, 0xC6
- adds r1, r3, r0
- movs r0, 0x5C
- strh r0, [r1]
- adds r4, 0x14
- adds r1, r3, r4
- movs r0, 0x20
- strh r0, [r1]
- adds r0, 0xFA
- adds r1, r3, r0
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804BEDC
- ldr r4, _0804BEE0
- movs r5, 0x81
- lsls r5, 6
- ldr r2, _0804BEE4
- mov r12, r2
- ldr r1, _0804BEE8
- ldr r6, _0804BEEC
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BEA4:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BEA4
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BEF0
- ldr r0, _0804BEE8
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804BEF4
- b _0804C0C6
- .align 2, 0
-_0804BED0: .4byte 0x00001441
-_0804BED4: .4byte 0x00001287
-_0804BED8: .4byte 0x03004828
-_0804BEDC: .4byte gUnknown_08213738
-_0804BEE0: .4byte 0x06004000
-_0804BEE4: .4byte gUnknown_08215778
-_0804BEE8: .4byte 0x040000d4
-_0804BEEC: .4byte 0x80000800
-_0804BEF0: .4byte 0x06009000
-_0804BEF4: .4byte 0x80000080
-_0804BEF8:
- ldr r0, _0804BF78
- ldr r2, [r0]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _0804BF7C
- ldr r4, _0804BF80
- adds r0, r4, 0
- strh r0, [r1]
- ldr r0, _0804BF84
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804BF88
- ldr r4, _0804BF8C
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r0, _0804BF90
- movs r1, 0x70
- movs r2, 0x20
- bl LoadCompressedPalette
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- movs r0, 0xE0
- lsls r0, 7
- adds r2, r0, 0
- movs r1, 0xA0
- lsls r1, 2
-_0804BF4C:
- ldrh r0, [r4]
- orrs r0, r2
- strh r0, [r4]
- adds r4, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _0804BF4C
- ldr r1, _0804BF8C
- ldr r2, _0804BF94
- ldr r0, _0804BF98
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BF9C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl Reset
- b _0804C0CA
- .align 2, 0
-_0804BF78: .4byte 0x03004828
-_0804BF7C: .4byte 0x0400000a
-_0804BF80: .4byte 0x00000502
-_0804BF84: .4byte gUnknown_08D00000
-_0804BF88: .4byte gUnknown_08D00524
-_0804BF8C: .4byte 0x02000000
-_0804BF90: .4byte gUnknown_08D004E0
-_0804BF94: .4byte 0x06002800
-_0804BF98: .4byte 0x040000d4
-_0804BF9C: .4byte 0x80000280
-_0804BFA0:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0804C038
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r3, _0804C03C
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0804C040
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r0, 0xC6
- adds r1, r3, r0
- movs r0, 0x5C
- strh r0, [r1]
- adds r4, 0x14
- adds r1, r3, r4
- adds r0, 0xA4
- strh r0, [r1]
- adds r0, 0x1A
- adds r1, r3, r0
- movs r0, 0x80
- strh r0, [r1]
- subs r4, 0xC
- adds r1, r3, r4
- movs r0, 0x78
- strh r0, [r1]
- adds r0, 0x96
- adds r1, r3, r0
- movs r0, 0x50
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804C044
- ldr r4, _0804C048
- movs r5, 0x81
- lsls r5, 6
- ldr r2, _0804C04C
- mov r12, r2
- ldr r1, _0804C050
- ldr r6, _0804C054
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804C00A:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804C00A
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804C058
- ldr r0, _0804C050
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804C05C
- b _0804C0C6
- .align 2, 0
-_0804C038: .4byte 0x00001441
-_0804C03C: .4byte 0x00001287
-_0804C040: .4byte 0x03004828
-_0804C044: .4byte gUnknown_08213738
-_0804C048: .4byte 0x06004000
-_0804C04C: .4byte gUnknown_08215778
-_0804C050: .4byte 0x040000d4
-_0804C054: .4byte 0x80000800
-_0804C058: .4byte 0x06009000
-_0804C05C: .4byte 0x80000080
-_0804C060:
- ldr r0, _0804C0D0
- ldr r2, [r0]
- movs r4, 0x8A
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x8B
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _0804C0D4
- ldr r4, _0804C0D8
- adds r0, r4, 0
- strh r0, [r1]
- ldr r0, _0804C0DC
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _0804C0E0
- ldr r4, _0804C0E4
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _0804C0E8
- ldr r6, _0804C0EC
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804C09C:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804C09C
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804C0F0
- ldr r2, _0804C0F4
- ldr r0, _0804C0E8
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804C0EC
-_0804C0C6:
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
-_0804C0CA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C0D0: .4byte 0x03004828
-_0804C0D4: .4byte 0x0400000c
-_0804C0D8: .4byte 0x00005206
-_0804C0DC: .4byte gUnknown_0820C9F8
-_0804C0E0: .4byte gUnknown_0820CA98
-_0804C0E4: .4byte 0x06004000
-_0804C0E8: .4byte 0x040000d4
-_0804C0EC: .4byte 0x80000800
-_0804C0F0: .4byte gUnknown_0820F798
-_0804C0F4: .4byte 0x06009000
- thumb_func_end sub_804BBE8
-
- thumb_func_start sub_804C0F8
-sub_804C0F8: @ 804C0F8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0804C130
- ldr r0, _0804C128
- ldr r2, [r0]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _0804C12C
- cmp r1, r0
- bgt _0804C15A
- adds r0, 0x5
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r2, r3
- b _0804C154
- .align 2, 0
-_0804C128: .4byte 0x03004828
-_0804C12C: .4byte 0x00000109
-_0804C130:
- ldr r0, _0804C160
- ldr r0, [r0]
- mov r12, r0
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _0804C15A
- subs r0, r3, 0x1
- strh r0, [r2]
- movs r1, 0x8E
- lsls r1, 1
- add r1, r12
-_0804C154:
- ldrh r0, [r1]
- adds r0, 0x40
- strh r0, [r1]
-_0804C15A:
- pop {r0}
- bx r0
- .align 2, 0
-_0804C160: .4byte 0x03004828
- thumb_func_end sub_804C0F8
-
- thumb_func_start sub_804C164
-sub_804C164: @ 804C164
- push {lr}
- ldr r0, _0804C190
- bl LoadSpriteSheet
- ldr r0, _0804C194
- bl LoadSpriteSheet
- ldr r0, _0804C198
- bl LoadSpriteSheet
- ldr r0, _0804C19C
- bl LoadSpriteSheet
- ldr r0, _0804C1A0
- bl LoadSpritePalette
- ldr r0, _0804C1A4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0804C190: .4byte gUnknown_082159A4
-_0804C194: .4byte gUnknown_082159F4
-_0804C198: .4byte gUnknown_08215A28
-_0804C19C: .4byte gUnknown_08215A78
-_0804C1A0: .4byte gUnknown_082159AC
-_0804C1A4: .4byte gUnknown_082159B4
- thumb_func_end sub_804C164
-
- thumb_func_start sub_804C1A8
-sub_804C1A8: @ 804C1A8
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, _0804C21C
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804C23C
- bl GetMultiplayerId
- lsls r0, 24
- ldr r3, _0804C220
- movs r2, 0x80
- lsls r2, 17
- eors r2, r0
- lsrs r2, 24
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _0804C224
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r5, _0804C228
- ldrb r0, [r5, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x64
- muls r0, r4
- ldr r1, _0804C22C
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- ldr r0, _0804C230
- mov r1, sp
- bl StringCopy10
- ldrb r0, [r5]
- muls r0, r4
- ldr r1, _0804C234
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- ldr r0, _0804C238
- mov r1, sp
- bl StringCopy10
- b _0804C278
- .align 2, 0
-_0804C21C: .4byte 0x03004828
-_0804C220: .4byte 0x020231cc
-_0804C224: .4byte 0x03002978
-_0804C228: .4byte 0x020297d8
-_0804C22C: .4byte 0x030045c0
-_0804C230: .4byte 0x020233cc
-_0804C234: .4byte 0x03004360
-_0804C238: .4byte 0x020232cc
-_0804C23C:
- ldr r0, _0804C280
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804C284
- adds r4, r0
- ldr r0, _0804C288
- adds r1, r4, 0
- adds r1, 0x2B
- bl StringCopy
- ldr r0, _0804C28C
- adds r1, r4, 0
- bl StringCopy10
- ldr r0, _0804C290
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804C294
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- ldr r0, _0804C298
- mov r1, sp
- bl StringCopy10
-_0804C278:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C280: .4byte 0x0202e8cc
-_0804C284: .4byte gIngameTrades
-_0804C288: .4byte 0x020231cc
-_0804C28C: .4byte 0x020233cc
-_0804C290: .4byte 0x0202e8ce
-_0804C294: .4byte 0x03004360
-_0804C298: .4byte 0x020232cc
- thumb_func_end sub_804C1A8
-
- thumb_func_start sub_804C29C
-sub_804C29C: @ 804C29C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r1, _0804C2C0
- ldr r0, [r1]
- adds r0, 0xC4
- ldrh r0, [r0]
- adds r6, r1, 0
- cmp r0, 0xC8
- bls _0804C2B6
- bl _0804D570
-_0804C2B6:
- lsls r0, 2
- ldr r1, _0804C2C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804C2C0: .4byte 0x03004828
-_0804C2C4: .4byte _0804C2C8
- .align 2, 0
-_0804C2C8:
- .4byte _0804C5EC
- .4byte _0804C66C
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804C6C8
- .4byte _0804C704
- .4byte _0804C79C
- .4byte _0804D570
- .4byte _0804C824
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804C848
- .4byte _0804C868
- .4byte _0804C87A
- .4byte _0804C89C
- .4byte _0804C8F4
- .4byte _0804C92C
- .4byte _0804C978
- .4byte _0804C9C8
- .4byte _0804CA1C
- .4byte _0804CAB4
- .4byte _0804CAD8
- .4byte _0804CB24
- .4byte _0804CB70
- .4byte _0804CBCC
- .4byte _0804CC2C
- .4byte _0804CC40
- .4byte _0804CC54
- .4byte _0804CC68
- .4byte _0804CD94
- .4byte _0804CE64
- .4byte _0804CEEC
- .4byte _0804CF68
- .4byte _0804CF78
- .4byte _0804CFA0
- .4byte _0804CFFC
- .4byte _0804D028
- .4byte _0804D054
- .4byte _0804D06A
- .4byte _0804D0D4
- .4byte _0804D570
- .4byte _0804D0FC
- .4byte _0804D13C
- .4byte _0804D182
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D1A4
- .4byte _0804D1C4
- .4byte _0804D1D2
- .4byte _0804D1F4
- .4byte _0804D2A8
- .4byte _0804D2E4
- .4byte _0804D314
- .4byte _0804D3C4
- .4byte _0804D41C
- .4byte _0804D48C
- .4byte _0804D4A0
- .4byte _0804D4A6
- .4byte _0804D4CC
- .4byte _0804D528
- .4byte _0804D54C
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804CA54
-_0804C5EC:
- ldr r3, _0804C65C
- ldr r0, [r6]
- adds r0, 0xB8
- 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]
- ldr r4, [r6]
- adds r2, r4, 0
- adds r2, 0xB8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _0804C660
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _0804C664
- movs r3, 0x90
- lsls r3, 1
- adds r0, r4, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- adds r1, r4, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl current_map_music_get
- ldr r1, [r6]
- movs r7, 0x92
- lsls r7, 1
- adds r1, r7
- strh r0, [r1]
- ldr r0, _0804C668
- bl sub_8075474
- bl _0804D570
- .align 2, 0
-_0804C65C: .4byte 0x02020004
-_0804C660: .4byte 0x0000ff4c
-_0804C664: .4byte gMonFrontPicCoords
-_0804C668: .4byte 0x00000179
-_0804C66C:
- ldr r4, [r6]
- movs r0, 0x8B
- lsls r0, 1
- adds r5, r4, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _0804C6A0
- ldr r2, _0804C69C
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x3
- strh r1, [r0, 0x24]
- ldrh r0, [r5]
- subs r0, 0x3
- strh r0, [r5]
- bl _0804D570
- .align 2, 0
-_0804C69C: .4byte 0x02020004
-_0804C6A0:
- ldr r2, _0804C6C4
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r5]
- adds r1, r4, 0
- adds r1, 0xC4
- movs r0, 0xA
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804C6C4: .4byte 0x02020004
-_0804C6C8:
- ldr r5, _0804C6F8
- ldr r1, _0804C6FC
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r4, _0804C700
- ldr r1, [r4]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0x2
- bl sub_8003460
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0xC4
- movs r3, 0
- movs r0, 0xB
- bl _0804D40C
- .align 2, 0
-_0804C6F8: .4byte 0x020234cc
-_0804C6FC: .4byte gUnknown_0842C60B
-_0804C700: .4byte 0x03004828
-_0804C704:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x50
- beq _0804C718
- bl _0804D570
-_0804C718:
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- ldr r2, _0804C78C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _0804C790
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x20
- bl sub_8047580
- ldr r1, [r6]
- movs r2, 0x81
- lsls r2, 1
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r2, r0, 0
- adds r2, 0xC4
- ldrh r1, [r2]
- adds r1, 0x1
- strh r1, [r2]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804C794
- ldr r1, _0804C798
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
- bl _0804D570
- .align 2, 0
-_0804C78C: .4byte 0x02020004
-_0804C790: .4byte 0x000fffff
-_0804C794: .4byte 0x020234cc
-_0804C798: .4byte gUnknown_0842C622
-_0804C79C:
- ldr r7, _0804C810
- ldr r2, [r6]
- movs r5, 0x81
- lsls r5, 1
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r7, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r1, [r0]
- ldr r0, _0804C814
- cmp r1, r0
- beq _0804C7C0
- bl _0804D570
-_0804C7C0:
- adds r0, r2, 0x4
- bl sub_80035AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804C7D2
- bl _0804D570
-_0804C7D2:
- ldr r0, _0804C818
- movs r1, 0x78
- movs r2, 0x20
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- ldr r2, _0804C81C
- adds r1, r2
- strb r0, [r1]
- ldr r3, [r6]
- adds r2, r3, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0804C820
- str r1, [r0]
- adds r3, r5
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl DestroySprite
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C810: .4byte 0x02020004
-_0804C814: .4byte SpriteCallbackDummy
-_0804C818: .4byte gSpriteTemplate_821595C
-_0804C81C: .4byte 0x00000103
-_0804C820: .4byte sub_804D738
-_0804C824:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804C844
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x14
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804C844: .4byte 0x03004828
-_0804C848:
- ldr r0, _0804C864
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804C858
- bl _0804D570
-_0804C858:
- movs r0, 0x4
- bl sub_804BBE8
- bl _0804D538
- .align 2, 0
-_0804C864: .4byte 0x0202f388
-_0804C868:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl _0804D534
-_0804C87A:
- ldr r0, _0804C898
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804C88A
- bl _0804D570
-_0804C88A:
- ldr r0, [r6]
- adds r0, 0xC4
- movs r1, 0x17
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804C898: .4byte 0x0202f388
-_0804C89C:
- ldr r4, _0804C8B8
- ldr r0, [r4]
- movs r3, 0x8D
- lsls r3, 1
- adds r2, r0, r3
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bls _0804C8BC
- adds r0, r1, 0
- subs r0, 0x34
- strh r0, [r2]
- b _0804C8E0
- .align 2, 0
-_0804C8B8: .4byte 0x03004828
-_0804C8BC:
- movs r0, 0x1
- bl sub_804BBE8
- ldr r3, [r4]
- movs r7, 0x8D
- lsls r7, 1
- adds r1, r3, r7
- movs r2, 0
- movs r0, 0x80
- strh r0, [r1]
- adds r1, r3, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0xC0
- str r2, [r0]
-_0804C8E0:
- ldr r0, _0804C8F0
- ldr r4, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r4, r1
- bl _0804D16E
- .align 2, 0
-_0804C8F0: .4byte 0x03004828
-_0804C8F4:
- ldr r1, [r6]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bhi _0804C906
- bl _0804D570
-_0804C906:
- movs r0, 0x3
- bl sub_804BBE8
- bl sub_804B128
- ldr r0, _0804C928
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C928: .4byte gSpriteTemplate_8215A80
-_0804C92C:
- ldr r2, _0804C96C
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _0804C94C
- bl _0804D570
-_0804C94C:
- adds r0, r1, 0
- bl DestroySprite
- ldr r1, _0804C970
- movs r3, 0xC8
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r7, _0804C974
- adds r0, r7, 0
- strh r0, [r1]
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C96C: .4byte 0x02020004
-_0804C970: .4byte 0x04000050
-_0804C974: .4byte 0x0000040c
-_0804C978:
- ldr r2, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r1, [r0]
- subs r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x9E
- lsls r0, 17
- cmp r1, r0
- bne _0804C99A
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804C99A:
- ldr r0, [r6]
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- beq _0804C9AE
- bl _0804D570
-_0804C9AE:
- ldr r0, _0804C9C4
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBC
- strb r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804C9C4: .4byte gSpriteTemplate_8215A30
-_0804C9C8:
- ldr r0, _0804CA0C
- movs r1, 0x80
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- ldr r4, _0804CA10
- ldr r1, [r4]
- adds r1, 0xBA
- strb r0, [r1]
- ldr r0, _0804CA14
- movs r1, 0x80
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CA18
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, [r4]
- bl _0804D53C
- .align 2, 0
-_0804CA0C: .4byte gSpriteTemplate_82159BC
-_0804CA10: .4byte 0x03004828
-_0804CA14: .4byte gSpriteTemplate_82159FC
-_0804CA18: .4byte 0x02020004
-_0804CA1C:
- ldr r2, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r1, r2, r3
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA6
- bne _0804CA3A
- adds r1, r2, 0
- adds r1, 0xC4
- movs r0, 0xC8
- strh r0, [r1]
-_0804CA3A:
- movs r0, 0
- bl sub_804C0F8
- movs r1, 0x80
- lsls r1, 19
- ldr r7, _0804CA50
- adds r0, r7, 0
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804CA50: .4byte 0x00001641
-_0804CA54:
- ldr r4, _0804CAB0
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- movs r0, 0
- bl sub_804C0F8
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _0804CAA4
- bl _0804D570
-_0804CAA4:
- adds r1, r2, 0
- adds r1, 0xC4
- movs r0, 0x1D
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804CAB0: .4byte 0x02020004
-_0804CAB4:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804CAD4
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x1E
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804CAD4: .4byte 0x03004828
-_0804CAD8:
- ldr r0, _0804CB1C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CAE8
- bl _0804D570
-_0804CAE8:
- ldr r0, [r6]
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804CB20
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r0, 0x2
- bl sub_804BBE8
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804CB1C: .4byte 0x0202f388
-_0804CB20: .4byte 0x02020004
-_0804CB24:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _0804CB68
- adds r0, r5, 0
- movs r1, 0x6F
- movs r2, 0xAA
- movs r3, 0
- bl CreateSprite
- ldr r4, _0804CB6C
- ldr r1, [r4]
- adds r1, 0xBA
- strb r0, [r1]
- movs r2, 0xA
- negs r2, r2
- adds r0, r5, 0
- movs r1, 0x81
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r1, [r4]
- bl _0804D53C
- .align 2, 0
-_0804CB68: .4byte gSpriteTemplate_82159FC
-_0804CB6C: .4byte 0x03004828
-_0804CB70:
- ldr r0, _0804CBC0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804CB8E
- movs r0, 0x2E
- bl audio_play
- ldr r0, _0804CBC4
- ldr r1, [r0]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804CB8E:
- ldr r3, _0804CBC8
- ldr r0, _0804CBC4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- bl _0804D570
- .align 2, 0
-_0804CBC0: .4byte 0x0202f388
-_0804CBC4: .4byte 0x03004828
-_0804CBC8: .4byte 0x02020004
-_0804CBCC:
- ldr r5, _0804CC28
- ldr r4, [r6]
- adds r2, r4, 0
- adds r2, 0xBA
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r6, r4, 0
- adds r6, 0xBB
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- movs r7, 0x26
- ldrsh r1, [r3, r7]
- movs r0, 0x5A
- negs r0, r0
- cmp r1, r0
- ble _0804CC12
- bl _0804D570
-_0804CC12:
- movs r2, 0x1
- strh r2, [r3, 0x30]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x30]
- adds r1, r4, 0
- bl _0804D53C
- .align 2, 0
-_0804CC28: .4byte 0x02020004
-_0804CC2C:
- ldr r2, _0804CC3C
- movs r0, 0x1
- movs r1, 0x10
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC3C: .4byte 0x0000ffff
-_0804CC40:
- ldr r2, _0804CC50
- movs r0, 0x1
- movs r1, 0
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC50: .4byte 0x0000ffff
-_0804CC54:
- ldr r2, _0804CC64
- movs r0, 0x1
- movs r1, 0x10
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC64: .4byte 0x0000ffff
-_0804CC68:
- ldr r5, _0804CCD8
- ldr r0, [r5]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _0804CCE4
- ldr r4, _0804CCDC
- ldr r2, [r5]
- adds r2, 0xB8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0804CCE0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- b _0804CCFA
- .align 2, 0
-_0804CCD8: .4byte 0x03004828
-_0804CCDC: .4byte 0x02020004
-_0804CCE0: .4byte gUnknown_08215AC0
-_0804CCE4:
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CD88
- adds r0, r1
- movs r1, 0
- bl StartSpriteAffineAnim
-_0804CCFA:
- ldr r5, _0804CD8C
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804CD88
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r2, [r5]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x3C
- strh r1, [r0, 0x20]
- adds r2, 0xB9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB4
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xC0
- strh r1, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0804CD90
- strh r1, [r0, 0x22]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r1, [r5]
- bl _0804D53C
- .align 2, 0
-_0804CD88: .4byte 0x02020004
-_0804CD8C: .4byte 0x03004828
-_0804CD90: .4byte 0x0000ffe0
-_0804CD94:
- ldr r4, _0804CE5C
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- movs r5, 0
- strh r1, [r0, 0x26]
- adds r2, 0xB9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x26]
- adds r0, 0xA3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0804CDDC
- movs r0, 0x2D
- bl audio_play
-_0804CDDC:
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r7, 0x26
- ldrsh r1, [r0, r7]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- blt _0804CDFA
- b _0804D570
-_0804CDFA:
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r0, r2, 0
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _0804CE60
- movs r0, 0x1
- movs r1, 0
- bl BlendPalettes
- b _0804D570
- .align 2, 0
-_0804CE5C: .4byte 0x02020004
-_0804CE60: .4byte 0x0000ffff
-_0804CE64:
- ldr r4, _0804CEE8
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xBA
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- ble _0804CEA6
- b _0804D570
-_0804CEA6:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0xBA
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- b _0804D570
- .align 2, 0
-_0804CEE8: .4byte 0x02020004
-_0804CEEC:
- ldr r0, _0804CF58
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CEFA
- b _0804D570
-_0804CEFA:
- ldr r1, [r6]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
- bl sub_804BBE8
- ldr r0, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3
- movs r1, 0xA6
- strh r1, [r0]
- ldr r0, _0804CF5C
- movs r4, 0x14
- negs r4, r4
- movs r1, 0x80
- adds r2, r4, 0
- movs r3, 0x3
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBA
- strb r0, [r1]
- ldr r0, _0804CF60
- movs r1, 0x80
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CF64
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- b _0804D570
- .align 2, 0
-_0804CF58: .4byte 0x0202f388
-_0804CF5C: .4byte gSpriteTemplate_82159BC
-_0804CF60: .4byte gSpriteTemplate_82159FC
-_0804CF64: .4byte 0x02020004
-_0804CF68:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- b _0804D534
-_0804CF78:
- movs r1, 0x80
- lsls r1, 19
- ldr r7, _0804CF98
- adds r0, r7, 0
- strh r0, [r1]
- movs r0, 0x1
- bl sub_804C0F8
- ldr r0, _0804CF9C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CF96
- b _0804D570
-_0804CF96:
- b _0804D538
- .align 2, 0
-_0804CF98: .4byte 0x00001641
-_0804CF9C: .4byte 0x0202f388
-_0804CFA0:
- movs r0, 0x1
- bl sub_804C0F8
- ldr r2, _0804CFF4
- ldr r0, _0804CFF8
- ldr r3, [r0]
- adds r4, r3, 0
- adds r4, 0xBA
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- adds r0, r3, 0
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- movs r7, 0x22
- ldrsh r0, [r0, r7]
- adds r1, r0
- cmp r1, 0x40
- beq _0804CFEE
- b _0804D570
-_0804CFEE:
- adds r1, r3, 0
- b _0804D53C
- .align 2, 0
-_0804CFF4: .4byte 0x02020004
-_0804CFF8: .4byte 0x03004828
-_0804CFFC:
- movs r0, 0x1
- bl sub_804C0F8
- ldr r0, _0804D024
- ldr r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- adds r2, r1, r0
- ldrh r0, [r2]
- adds r0, 0x2
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x9E
- lsls r3, 1
- cmp r0, r3
- bgt _0804D020
- b _0804D570
-_0804D020:
- strh r3, [r2]
- b _0804D53C
- .align 2, 0
-_0804D024: .4byte 0x03004828
-_0804D028:
- ldr r0, [r6]
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804D050
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- b _0804D400
- .align 2, 0
-_0804D050: .4byte 0x02020004
-_0804D054:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xA
- beq _0804D066
- b _0804D570
-_0804D066:
- adds r1, 0x4
- b _0804D53E
-_0804D06A:
- ldr r1, [r6]
- movs r4, 0x88
- lsls r4, 1
- adds r2, r1, r4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xAE
- lsls r3, 1
- cmp r0, r3
- ble _0804D08E
- strh r3, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804D08E:
- ldr r0, [r6]
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _0804D0B0
- ldr r0, _0804D0C8
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBC
- strb r0, [r1]
-_0804D0B0:
- ldr r2, _0804D0CC
- ldr r0, [r6]
- adds r0, 0xBC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0804D0D0
- str r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D0C8: .4byte gSpriteTemplate_8215A30
-_0804D0CC: .4byte 0x02020004
-_0804D0D0: .4byte sub_804B0E0
-_0804D0D4:
- ldr r0, _0804D0F4
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r2, _0804D0F8
- ldr r1, [r2]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0xC4
- movs r1, 0x32
- strh r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D0F4: .4byte gSpriteTemplate_8215A80
-_0804D0F8: .4byte 0x03004828
-_0804D0FC:
- ldr r2, _0804D138
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _0804D11A
- b _0804D570
-_0804D11A:
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x6
- bl sub_804BBE8
- ldr r1, [r6]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x9F
- bl audio_play
- b _0804D570
- .align 2, 0
-_0804D138: .4byte 0x02020004
-_0804D13C:
- ldr r1, [r6]
- movs r3, 0x8D
- lsls r3, 1
- adds r2, r1, r3
- ldrh r3, [r2]
- ldr r0, _0804D154
- cmp r3, r0
- bhi _0804D158
- adds r0, r3, 0
- adds r0, 0x34
- strh r0, [r2]
- b _0804D166
- .align 2, 0
-_0804D154: .4byte 0x000003ff
-_0804D158:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804D166:
- ldr r4, [r6]
- movs r7, 0x8D
- lsls r7, 1
- adds r0, r4, r7
-_0804D16E:
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- movs r2, 0x8C
- lsls r2, 1
- adds r1, r4, r2
- strh r0, [r1]
- b _0804D570
-_0804D182:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804D1A0
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x3C
- strh r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D1A0: .4byte 0x03004828
-_0804D1A4:
- ldr r0, _0804D1C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804D1B2
- b _0804D570
-_0804D1B2:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0x7
- bl sub_804BBE8
- b _0804D538
- .align 2, 0
-_0804D1C0: .4byte 0x0202f388
-_0804D1C4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _0804D534
-_0804D1D2:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xA2
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0804D1F0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804D1EC
- b _0804D570
-_0804D1EC:
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D1F0: .4byte 0x0202f388
-_0804D1F4:
- ldr r0, _0804D290
- movs r2, 0x8
- negs r2, r2
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- ldr r6, _0804D294
- ldr r1, [r6]
- ldr r5, _0804D298
- adds r1, r5
- movs r7, 0
- mov r8, r7
- strb r0, [r1]
- ldr r4, _0804D29C
- ldr r2, [r6]
- adds r2, r5
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x4A
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0804D2A0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r2, _0804D2A4
- movs r1, 0x10
- bl BlendPalettes
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0xC0
- mov r0, r8
- str r0, [r1]
- b _0804D570
- .align 2, 0
-_0804D290: .4byte gSpriteTemplate_821595C
-_0804D294: .4byte 0x03004828
-_0804D298: .4byte 0x00000103
-_0804D29C: .4byte 0x02020004
-_0804D2A0: .4byte sub_804D80C
-_0804D2A4: .4byte 0x0000ffff
-_0804D2A8:
- ldr r2, _0804D2D8
- ldr r0, [r6]
- ldr r1, _0804D2DC
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r1, _0804D2E0
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D2D8: .4byte 0x02020004
-_0804D2DC: .4byte 0x00000103
-_0804D2E0: .4byte 0x0000ffff
-_0804D2E4:
- ldr r2, _0804D308
- ldr r3, [r6]
- ldr r7, _0804D30C
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0804D310
- cmp r1, r0
- beq _0804D302
- b _0804D570
-_0804D302:
- adds r1, r3, 0
- b _0804D53C
- .align 2, 0
-_0804D308: .4byte 0x02020004
-_0804D30C: .4byte 0x00000103
-_0804D310: .4byte SpriteCallbackDummy
-_0804D314:
- ldr r4, _0804D3B4
- ldr r0, [r6]
- mov r8, r0
- mov r5, r8
- adds r5, 0xB9
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r2, _0804D3B8
- movs r0, 0x91
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- adds r0, 0x3C
- strh r0, [r1, 0x22]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x24]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x26]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _0804D3BC
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x54
- bl AddTextPrinterForMessage
- ldr r0, [r6]
- ldr r5, _0804D3C0
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D3B4: .4byte 0x02020004
-_0804D3B8: .4byte gMonFrontPicCoords
-_0804D3BC: .4byte 0x000fffff
-_0804D3C0: .4byte 0x00000103
-_0804D3C4:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804D414
- ldr r1, _0804D418
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
-_0804D400:
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- movs r3, 0
-_0804D40C:
- strh r0, [r2]
- adds r1, 0xC0
- str r3, [r1]
- b _0804D570
- .align 2, 0
-_0804D414: .4byte 0x020234cc
-_0804D418: .4byte gUnknown_0842C62F
-_0804D41C:
- ldr r1, [r6]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x4
- bne _0804D430
- ldr r0, _0804D480
- bl fanfare_play
-_0804D430:
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xC0
- ldr r0, [r0]
- cmp r0, 0xF0
- beq _0804D43E
- b _0804D570
-_0804D43E:
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r1]
- adds r0, r2, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804D484
- ldr r1, _0804D488
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
- ldr r0, [r6]
- adds r0, 0xC0
- str r5, [r0]
- b _0804D570
- .align 2, 0
-_0804D480: .4byte 0x00000173
-_0804D484: .4byte 0x020234cc
-_0804D488: .4byte gUnknown_0842C640
-_0804D48C:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bne _0804D570
- adds r1, 0x4
- b _0804D53E
-_0804D4A0:
- bl sub_804E1DC
- b _0804D538
-_0804D4A6:
- ldr r2, [r6]
- movs r3, 0x8F
- lsls r3, 1
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804D4B8
- movs r0, 0x1
- b _0804D572
-_0804D4B8:
- ldr r0, _0804D4C8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804D570
- adds r1, r2, 0
- b _0804D53C
- .align 2, 0
-_0804D4C8: .4byte 0x03001770
-_0804D4CC:
- ldr r0, _0804D510
- ldrb r0, [r0]
- movs r1, 0
- bl sub_804BA94
- ldr r1, _0804D514
- ldr r0, _0804D518
- str r0, [r1]
- ldr r7, _0804D51C
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0804D520
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0804D538
- ldrb r3, [r7]
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- ldr r1, _0804D524
- ldr r1, [r1]
- adds r1, 0xB9
- ldrb r2, [r1]
- adds r1, r4, 0
- bl sub_81120E4
- b _0804D538
- .align 2, 0
-_0804D510: .4byte 0x0202e8ce
-_0804D514: .4byte 0x03005e94
-_0804D518: .4byte sub_804BBCC
-_0804D51C: .4byte 0x020297d8
-_0804D520: .4byte 0x03004360
-_0804D524: .4byte 0x03004828
-_0804D528:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_0804D534:
- bl BeginNormalPaletteFade
-_0804D538:
- ldr r0, _0804D548
- ldr r1, [r0]
-_0804D53C:
- adds r1, 0xC4
-_0804D53E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0804D570
- .align 2, 0
-_0804D548: .4byte 0x03004828
-_0804D54C:
- ldr r0, _0804D580
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804D570
- ldr r0, [r6]
- movs r7, 0x92
- lsls r7, 1
- adds r0, r7
- ldrh r0, [r0]
- bl sub_8075474
- ldr r0, _0804D584
- bl SetMainCallback2
- bl sub_804D8E4
-_0804D570:
- movs r0, 0
-_0804D572:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804D580: .4byte 0x0202f388
-_0804D584: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_804C29C
-
- thumb_func_start sub_804D588
-sub_804D588: @ 804D588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0804D5A0
- ldr r2, _0804D5A4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0804D5A8
- cmp r0, 0x4
- beq _0804D5B8
- b _0804D614
- .align 2, 0
-_0804D5A0: .4byte 0x03001770
-_0804D5A4: .4byte 0x0000043c
-_0804D5A8:
- movs r0, 0x4
- strb r0, [r1]
- ldr r1, _0804D5B4
- movs r0, 0x1
- b _0804D612
- .align 2, 0
-_0804D5B4: .4byte 0x03001bb4
-_0804D5B8:
- ldr r0, _0804D5F4
- ldr r1, _0804D5F8
- mov r8, r1
- str r1, [r0]
- ldr r7, _0804D5FC
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0804D600
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0804D608
- ldrb r3, [r7]
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- ldr r1, _0804D604
- ldr r1, [r1]
- adds r1, 0xB9
- ldrb r2, [r1]
- adds r1, r4, 0
- bl sub_81120E4
- b _0804D60E
- .align 2, 0
-_0804D5F4: .4byte 0x03005e94
-_0804D5F8: .4byte sub_804DC88
-_0804D5FC: .4byte 0x020297d8
-_0804D600: .4byte 0x03004360
-_0804D604: .4byte 0x03004828
-_0804D608:
- mov r0, r8
- bl SetMainCallback2
-_0804D60E:
- ldr r1, _0804D638
- movs r0, 0xFF
-_0804D612:
- strb r0, [r1]
-_0804D614:
- bl HasLinkErrorOccurred
- lsls r0, 24
- cmp r0, 0
- bne _0804D622
- bl RunTasks
-_0804D622:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D638: .4byte 0x020297d8
- thumb_func_end sub_804D588
-
- thumb_func_start sub_804D63C
-sub_804D63C: @ 804D63C
- push {r4-r6,lr}
- bl sub_804B2B0
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r6
- cmp r0, 0
- beq _0804D67A
- ldr r4, _0804D6A8
- ldrh r1, [r4]
- ldr r0, _0804D6AC
- cmp r1, r0
- bne _0804D664
- ldr r0, _0804D6B0
- bl SetMainCallback2
-_0804D664:
- ldrh r1, [r4]
- ldr r0, _0804D6B4
- cmp r1, r0
- bne _0804D674
- ldr r0, _0804D6B8
- ldr r0, [r0]
- adds r0, 0x9C
- strb r6, [r0]
-_0804D674:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_0804D67A:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _0804D6A2
- ldr r0, _0804D6A8
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0804D6B4
- cmp r1, r0
- bne _0804D69C
- ldr r0, _0804D6B8
- ldr r0, [r0]
- adds r0, 0x9D
- movs r1, 0x1
- strb r1, [r0]
-_0804D69C:
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_0804D6A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D6A8: .4byte 0x03002b80
-_0804D6AC: .4byte 0x0000dcba
-_0804D6B0: .4byte sub_804D588
-_0804D6B4: .4byte 0x0000abcd
-_0804D6B8: .4byte 0x03004828
- thumb_func_end sub_804D63C
-
- thumb_func_start sub_804D6BC
-sub_804D6BC: @ 804D6BC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r4, [r5, 0x22]
- adds r4, r0
- strh r4, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- ldrh r2, [r5, 0x38]
- adds r0, r2
- strh r0, [r5, 0x38]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0x4C
- ble _0804D70A
- movs r0, 0x4C
- strh r0, [r5, 0x22]
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- muls r0, r1
- negs r0, r0
- movs r1, 0x64
- bl __divsi3
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
-_0804D70A:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _0804D716
- movs r0, 0
- strh r0, [r5, 0x30]
-_0804D716:
- ldrh r0, [r5, 0x36]
- ldrh r2, [r5, 0x2E]
- adds r0, r2
- strh r0, [r5, 0x2E]
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bne _0804D72E
- movs r0, 0x1
- strh r0, [r5, 0x3C]
- ldr r0, _0804D734
- str r0, [r5, 0x1C]
-_0804D72E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D734: .4byte SpriteCallbackDummy
- thumb_func_end sub_804D6BC
-
- thumb_func_start sub_804D738
-sub_804D738: @ 804D738
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0804D7A0
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x16
- bne _0804D760
- movs r0, 0x38
- bl audio_play
-_0804D760:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bne _0804D796
- movs r0, 0x8C
- bl audio_play
- ldr r0, _0804D7A4
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x1
- negs r1, r1
- ldr r2, _0804D7A8
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0804D796:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D7A0: .4byte gUnknown_08215BA0
-_0804D7A4: .4byte sub_804D7AC
-_0804D7A8: .4byte 0x0000ffff
- thumb_func_end sub_804D738
-
- thumb_func_start sub_804D7AC
-sub_804D7AC: @ 804D7AC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bne _0804D7C0
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0804D7C0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0804D7FE
- ldr r1, _0804D804
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- bne _0804D7FE
- adds r0, r4, 0
- bl DestroySprite
- ldr r0, _0804D808
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0xE
- strh r1, [r0]
-_0804D7FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D804: .4byte gUnknown_08215BA0
-_0804D808: .4byte 0x03004828
- thumb_func_end sub_804D7AC
-
- thumb_func_start sub_804D80C
-sub_804D80C: @ 804D80C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0804D83C
- ldrh r0, [r4, 0x22]
- adds r0, 0x4
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _0804D88C
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x16
- strh r0, [r4, 0x2E]
- movs r0, 0x38
- bl audio_play
- b _0804D88C
-_0804D83C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x42
- bne _0804D84A
- movs r0, 0x39
- bl audio_play
-_0804D84A:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5C
- bne _0804D858
- movs r0, 0x3A
- bl audio_play
-_0804D858:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x6B
- bne _0804D866
- movs r0, 0x3B
- bl audio_play
-_0804D866:
- ldr r1, _0804D894
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6C
- bne _0804D88C
- ldr r0, _0804D898
- str r0, [r4, 0x1C]
-_0804D88C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D894: .4byte gUnknown_08215BA0
-_0804D898: .4byte SpriteCallbackDummy
- thumb_func_end sub_804D80C
-
- thumb_func_start sub_804D89C
-sub_804D89C: @ 804D89C
- push {r4-r6,lr}
- ldr r0, _0804D8D0
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804D8D4
- adds r4, r0
- ldr r0, _0804D8D8
- ldrh r1, [r4, 0x38]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _0804D8DC
- adds r1, r5
- bl StringCopy
- ldr r0, _0804D8E0
- ldrh r1, [r4, 0xC]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldrh r0, [r4, 0x38]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0804D8D0: .4byte 0x0202e8cc
-_0804D8D4: .4byte gIngameTrades
-_0804D8D8: .4byte 0x020231cc
-_0804D8DC: .4byte gSpeciesNames
-_0804D8E0: .4byte 0x020232cc
- thumb_func_end sub_804D89C
-
- thumb_func_start sub_804D8E4
-sub_804D8E4: @ 804D8E4
- push {r4,lr}
- sub sp, 0x20
- ldr r0, _0804D92C
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804D930
- adds r4, r0
- ldr r0, _0804D934
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804D938
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- ldr r0, _0804D93C
- mov r1, sp
- bl StringCopy10
- ldr r0, _0804D940
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _0804D944
- adds r1, r2
- bl StringCopy
- add sp, 0x20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D92C: .4byte 0x0202e8cc
-_0804D930: .4byte gIngameTrades
-_0804D934: .4byte 0x0202e8ce
-_0804D938: .4byte 0x03004360
-_0804D93C: .4byte 0x020231cc
-_0804D940: .4byte 0x020232cc
-_0804D944: .4byte gSpeciesNames
- thumb_func_end sub_804D8E4
-
- thumb_func_start sub_804D948
-sub_804D948: @ 804D948
- push {r4-r7,lr}
- sub sp, 0x38
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 2
- ldr r1, _0804DAA4
- adds r5, r2, r1
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0804DAA8
- adds r0, r1
- movs r1, 0x38
- bl PokemonGetField
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- add r4, sp, 0x34
- movs r0, 0xFE
- strb r0, [r4]
- ldr r6, _0804DAAC
- ldrh r1, [r5, 0xC]
- movs r3, 0x1
- str r3, [sp]
- ldr r0, [r5, 0x24]
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- ldr r0, [r5, 0x18]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r3, 0x20
- bl create_pokemon_set_level
- adds r2, r5, 0
- adds r2, 0xE
- adds r0, r6, 0
- movs r1, 0x27
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0xF
- adds r0, r6, 0
- movs r1, 0x28
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x10
- adds r0, r6, 0
- movs r1, 0x29
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x11
- adds r0, r6, 0
- movs r1, 0x2A
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x12
- adds r0, r6, 0
- movs r1, 0x2B
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x13
- adds r0, r6, 0
- movs r1, 0x2C
- bl pokemon_setattr
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x2B
- adds r0, r6, 0
- movs r1, 0x7
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x36
- adds r0, r6, 0
- movs r1, 0x31
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x14
- adds r0, r6, 0
- movs r1, 0x2E
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x1D
- adds r0, r6, 0
- movs r1, 0x17
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x1E
- adds r0, r6, 0
- movs r1, 0x18
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x1C
- adds r0, r6, 0
- movs r1, 0x16
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x1F
- adds r0, r6, 0
- movs r1, 0x21
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x20
- adds r0, r6, 0
- movs r1, 0x2F
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x37
- adds r0, r6, 0
- movs r1, 0x30
- bl pokemon_setattr
- adds r0, r6, 0
- movs r1, 0x23
- adds r2, r4, 0
- bl pokemon_setattr
- mov r4, sp
- adds r4, 0x35
- movs r0, 0
- strb r0, [r4]
- ldrh r0, [r5, 0x28]
- cmp r0, 0
- beq _0804DAC0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0804DAB4
- add r0, sp, 0x10
- adds r1, r5, 0
- bl sub_804DAD4
- ldr r0, _0804DAB0
- add r1, sp, 0x10
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl pokemon_setattr
- adds r2, r5, 0
- adds r2, 0x28
- adds r0, r6, 0
- movs r1, 0xC
- bl pokemon_setattr
- b _0804DAC0
- .align 2, 0
-_0804DAA4: .4byte gIngameTrades
-_0804DAA8: .4byte 0x03004360
-_0804DAAC: .4byte 0x030045c0
-_0804DAB0: .4byte 0x02029700
-_0804DAB4:
- adds r2, r5, 0
- adds r2, 0x28
- adds r0, r6, 0
- movs r1, 0xC
- bl pokemon_setattr
-_0804DAC0:
- ldr r0, _0804DAD0
- bl pokemon_calc_effective_stats
- add sp, 0x38
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DAD0: .4byte 0x030045c0
- thumb_func_end sub_804D948
-
- thumb_func_start sub_804DAD4
-sub_804DAD4: @ 804DAD4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r2, _0804DB28
- adds r0, r5, 0
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r1, r4, 0
- movs r3, 0x8
-_0804DAEE:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _0804DAEE
- adds r0, r4, 0
- adds r0, 0x12
- adds r1, r5, 0
- adds r1, 0x2B
- bl StringCopy
- ldr r1, [r5, 0x18]
- lsrs r0, r1, 24
- strb r0, [r4, 0x1A]
- lsrs r0, r1, 16
- strb r0, [r4, 0x1B]
- lsrs r0, r1, 8
- strb r0, [r4, 0x1C]
- strb r1, [r4, 0x1D]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x1E]
- ldrh r0, [r5, 0x28]
- strh r0, [r4, 0x20]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DB28: .4byte gUnknown_08215B78
- thumb_func_end sub_804DAD4
-
- thumb_func_start sub_804DB2C
-sub_804DB2C: @ 804DB2C
- push {r4-r6,lr}
- ldr r6, _0804DB58
- ldrh r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0804DB5C
- adds r0, r4
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0804DB60
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- b _0804DB62
- .align 2, 0
-_0804DB58: .4byte 0x0202e8ce
-_0804DB5C: .4byte 0x03004360
-_0804DB60:
- movs r0, 0
-_0804DB62:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_804DB2C
-
- thumb_func_start sub_804DB68
-sub_804DB68: @ 804DB68
- push {lr}
- ldr r0, _0804DB7C
- ldrb r0, [r0]
- ldr r1, _0804DB80
- ldrb r1, [r1]
- bl sub_804D948
- pop {r0}
- bx r0
- .align 2, 0
-_0804DB7C: .4byte 0x0202e8ce
-_0804DB80: .4byte 0x0202e8cc
- thumb_func_end sub_804DB68
-
- thumb_func_start sub_804DB84
-sub_804DB84: @ 804DB84
- push {r4-r6,lr}
- bl sub_804C29C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _0804DBE6
- ldr r5, _0804DC04
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804DC08
- adds r0, r4
- bl DestroySprite
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldr r0, _0804DC0C
- ldrb r4, [r0]
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_804BA94
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x9E
- ldr r1, _0804DC10
- strh r1, [r2]
- adds r0, 0xBD
- strb r6, [r0]
- ldr r0, _0804DC14
- bl SetMainCallback2
-_0804DBE6:
- bl sub_804BB78
- bl sub_804D63C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DC04: .4byte 0x03004828
-_0804DC08: .4byte 0x02020004
-_0804DC0C: .4byte 0x020297d8
-_0804DC10: .4byte 0x0000abcd
-_0804DC14: .4byte sub_804DC18
- thumb_func_end sub_804DB84
-
- thumb_func_start sub_804DC18
-sub_804DC18: @ 804DC18
- push {r4,lr}
- bl sub_804B2B0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_804D63C
- cmp r4, 0
- bne _0804DC64
- ldr r4, _0804DC7C
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x9C
- ldrh r1, [r0]
- ldr r0, _0804DC80
- cmp r1, r0
- bne _0804DC64
- adds r1, r2, 0
- adds r1, 0x9E
- ldr r0, _0804DC84
- strh r0, [r1]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x9E
- movs r2, 0x14
- bl SendBlock
- ldr r0, [r4]
- adds r0, 0x9C
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9D
- strb r1, [r0]
-_0804DC64:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DC7C: .4byte 0x03004828
-_0804DC80: .4byte 0x00000101
-_0804DC84: .4byte 0x0000dcba
- thumb_func_end sub_804DC18
-
- thumb_func_start sub_804DC88
-sub_804DC88: @ 804DC88
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0804DCA8
- ldr r2, _0804DCAC
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x65
- bls _0804DC9C
- b _0804E11A
-_0804DC9C:
- lsls r0, 2
- ldr r1, _0804DCB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804DCA8: .4byte 0x03001770
-_0804DCAC: .4byte 0x0000043c
-_0804DCB0: .4byte _0804DCB4
- .align 2, 0
-_0804DCB4:
- .4byte _0804DE4C
- .4byte _0804DE9C
- .4byte _0804DF14
- .4byte _0804E11A
- .4byte _0804DFE0
- .4byte _0804E078
- .4byte _0804E0A0
- .4byte _0804E0BC
- .4byte _0804E0E4
- .4byte _0804E10C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E008
- .4byte _0804E034
- .4byte _0804E04C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804DF54
- .4byte _0804DF7C
- .4byte _0804DF9C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804DEB4
- .4byte _0804DEF4
-_0804DE4C:
- ldr r5, _0804DE88
- ldr r0, _0804DE8C
- str r0, [r5]
- ldr r1, _0804DE90
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0x1
- strb r1, [r2]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804DE94
- ldr r1, _0804DE98
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r5]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- b _0804DF3E
- .align 2, 0
-_0804DE88: .4byte 0x03004828
-_0804DE8C: .4byte 0x0201f000
-_0804DE90: .4byte 0x0000043c
-_0804DE94: .4byte 0x020234cc
-_0804DE98: .4byte gUnknown_0842D1EE
-_0804DE9C:
- bl sub_80084A4
- ldr r0, _0804DEAC
- ldr r2, _0804DEB0
- adds r0, r2
- movs r2, 0
- movs r1, 0x64
- b _0804DFEE
- .align 2, 0
-_0804DEAC: .4byte 0x03001770
-_0804DEB0: .4byte 0x0000043c
-_0804DEB4:
- ldr r0, _0804DEE8
- ldr r0, [r0]
- adds r3, r0, 0
- adds r3, 0xC0
- ldr r0, [r3]
- adds r0, 0x1
- str r0, [r3]
- cmp r0, 0xB4
- bls _0804DED2
- ldr r1, _0804DEEC
- adds r0, r2, r1
- movs r2, 0
- movs r1, 0x65
- strb r1, [r0]
- str r2, [r3]
-_0804DED2:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804DEDE
- b _0804E11A
-_0804DEDE:
- ldr r0, _0804DEF0
- ldr r2, _0804DEEC
- adds r0, r2
- b _0804DF06
- .align 2, 0
-_0804DEE8: .4byte 0x03004828
-_0804DEEC: .4byte 0x0000043c
-_0804DEF0: .4byte 0x03001770
-_0804DEF4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804DF00
- b _0804E11A
-_0804DF00:
- ldr r0, _0804DF0C
- ldr r1, _0804DF10
- adds r0, r1
-_0804DF06:
- movs r1, 0x2
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DF0C: .4byte 0x03001770
-_0804DF10: .4byte 0x0000043c
-_0804DF14:
- ldr r0, _0804DF48
- adds r1, r2, r0
- movs r0, 0x32
- strb r0, [r1]
- ldr r4, _0804DF4C
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _0804DF50
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
-_0804DF3E:
- movs r3, 0x2
- bl sub_8003460
- b _0804E11A
- .align 2, 0
-_0804DF48: .4byte 0x0000043c
-_0804DF4C: .4byte 0x03004828
-_0804DF50: .4byte gUnknown_08411905
-_0804DF54:
- bl sub_8047A1C
- movs r0, 0x15
- bl sav12_xor_increment
- bl sub_8125D80
- ldr r1, _0804DF74
- ldr r2, _0804DF78
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- b _0804DFF0
- .align 2, 0
-_0804DF74: .4byte 0x03001770
-_0804DF78: .4byte 0x0000043c
-_0804DF7C:
- ldr r0, _0804DF94
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x5
- beq _0804DF8E
- b _0804E11A
-_0804DF8E:
- ldr r0, _0804DF98
- adds r1, r2, r0
- b _0804E0FA
- .align 2, 0
-_0804DF94: .4byte 0x03004828
-_0804DF98: .4byte 0x0000043c
-_0804DF9C:
- bl sub_8125DA8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804DFC0
- bl sub_8047A34
- ldr r0, _0804DFB8
- ldr r1, _0804DFBC
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFB8: .4byte 0x03001770
-_0804DFBC: .4byte 0x0000043c
-_0804DFC0:
- ldr r0, _0804DFD4
- ldr r0, [r0]
- adds r0, 0xC0
- str r1, [r0]
- ldr r0, _0804DFD8
- ldr r2, _0804DFDC
- adds r0, r2
- movs r1, 0x33
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFD4: .4byte 0x03004828
-_0804DFD8: .4byte 0x03001770
-_0804DFDC: .4byte 0x0000043c
-_0804DFE0:
- bl sub_8125DDC
- ldr r0, _0804DFFC
- ldr r1, _0804E000
- adds r0, r1
- movs r2, 0
- movs r1, 0x28
-_0804DFEE:
- strb r1, [r0]
-_0804DFF0:
- ldr r0, _0804E004
- ldr r0, [r0]
- adds r0, 0xC0
- str r2, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFFC: .4byte 0x03001770
-_0804E000: .4byte 0x0000043c
-_0804E004: .4byte 0x03004828
-_0804E008:
- ldr r0, _0804E02C
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x32
- bhi _0804E01C
- b _0804E11A
-_0804E01C:
- movs r0, 0
- str r0, [r1]
- ldr r0, _0804E030
- adds r1, r2, r0
- movs r0, 0x29
- strb r0, [r1]
- b _0804E11A
- .align 2, 0
-_0804E02C: .4byte 0x03004828
-_0804E030: .4byte 0x0000043c
-_0804E034:
- bl sub_80084A4
- ldr r0, _0804E044
- ldr r1, _0804E048
- adds r0, r1
- movs r1, 0x2A
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804E044: .4byte 0x03001770
-_0804E048: .4byte 0x0000043c
-_0804E04C:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804E11A
- bl sub_8125E04
- ldr r1, _0804E06C
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0804E070
- ldr r2, _0804E074
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804E06C: .4byte 0x03001bb4
-_0804E070: .4byte 0x03001770
-_0804E074: .4byte 0x0000043c
-_0804E078:
- ldr r0, _0804E098
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bls _0804E11A
- ldr r0, _0804E09C
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_80084A4
- b _0804E11A
- .align 2, 0
-_0804E098: .4byte 0x03004828
-_0804E09C: .4byte 0x0000043c
-_0804E0A0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804E11A
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0804E0F4
-_0804E0BC:
- ldr r0, _0804E0D8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E11A
- movs r0, 0x3
- bl play_sound_effect
- ldr r1, _0804E0DC
- ldr r0, _0804E0E0
- adds r1, r0
- b _0804E0FA
- .align 2, 0
-_0804E0D8: .4byte 0x0202f388
-_0804E0DC: .4byte 0x03001770
-_0804E0E0: .4byte 0x0000043c
-_0804E0E4:
- bl sub_8075028
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0804E11A
- bl sub_800832C
-_0804E0F4:
- ldr r1, _0804E104
- ldr r2, _0804E108
- adds r1, r2
-_0804E0FA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804E11A
- .align 2, 0
-_0804E104: .4byte 0x03001770
-_0804E108: .4byte 0x0000043c
-_0804E10C:
- ldr r0, _0804E13C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804E11A
- ldr r0, _0804E140
- bl SetMainCallback2
-_0804E11A:
- bl HasLinkErrorOccurred
- lsls r0, 24
- cmp r0, 0
- bne _0804E128
- bl RunTasks
-_0804E128:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E13C: .4byte 0x03002fa4
-_0804E140: .4byte sub_804E144
- thumb_func_end sub_804DC88
-
- thumb_func_start sub_804E144
-sub_804E144: @ 804E144
- push {lr}
- ldr r0, _0804E16C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E158
- ldr r0, _0804E170
- bl SetMainCallback2
-_0804E158:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_0804E16C: .4byte 0x0202f388
-_0804E170: .4byte sub_8047CD8
- thumb_func_end sub_804E144
-
- thumb_func_start sub_804E174
-sub_804E174: @ 804E174
- push {lr}
- sub sp, 0x4
- bl script_env_2_enable
- ldr r0, _0804E19C
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0804E19C: .4byte sub_804E1A0
- thumb_func_end sub_804E174
-
- thumb_func_start sub_804E1A0
-sub_804E1A0: @ 804E1A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0804E1CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E1C4
- ldr r0, _0804E1D0
- bl SetMainCallback2
- ldr r1, _0804E1D4
- ldr r0, _0804E1D8
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0804E1C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E1CC: .4byte 0x0202f388
-_0804E1D0: .4byte sub_804B790
-_0804E1D4: .4byte 0x0300485c
-_0804E1D8: .4byte sub_8080990
- thumb_func_end sub_804E1A0
-
- thumb_func_start sub_804E1DC
-sub_804E1DC: @ 804E1DC
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_0804E1E2:
- ldr r0, _0804E220
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0804E224
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- bl PokemonGetField
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _0804E1E2
- cmp r5, 0
- beq _0804E21A
- ldr r0, _0804E228
- bl FlagSet
-_0804E21A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E220: .4byte 0x020297d8
-_0804E224: .4byte 0x030045c0
-_0804E228: .4byte 0x0000083b
- thumb_func_end sub_804E1DC
-
- thumb_func_start sub_804E22C
-sub_804E22C: @ 804E22C
- push {r4,lr}
- ldr r0, _0804E26C
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804E270
- ldr r4, _0804E274
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r1, _0804E278
- ldr r0, _0804E27C
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804E280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804E284
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0804E288
- ldr r2, _0804E28C
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E26C: .4byte gUnknown_08D00000
-_0804E270: .4byte gUnknown_08D00524
-_0804E274: .4byte 0x02000000
-_0804E278: .4byte 0x06002800
-_0804E27C: .4byte 0x040000d4
-_0804E280: .4byte 0x80000280
-_0804E284: .4byte gUnknown_08D004E0
-_0804E288: .4byte 0x0400000a
-_0804E28C: .4byte 0x00000502
- thumb_func_end sub_804E22C
-
- thumb_func_start sub_804E290
-sub_804E290: @ 804E290
- push {lr}
- ldr r0, _0804E2B0
- ldr r1, _0804E2B4
- ldr r2, _0804E2B8
- ldr r2, [r2]
- adds r2, 0x56
- movs r3, 0
- ldrsh r2, [r2, r3]
- subs r2, 0x80
- lsls r2, 17
- asrs r2, 16
- bl m4aMPlayPitchControl
- pop {r0}
- bx r0
- .align 2, 0
-_0804E2B0: .4byte 0x03007400
-_0804E2B4: .4byte 0x0000ffff
-_0804E2B8: .4byte 0x03004854
- thumb_func_end sub_804E290
-
- thumb_func_start sub_804E2BC
-sub_804E2BC: @ 804E2BC
- push {lr}
- bl sub_80514A4
- bl sub_80514F0
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2BC
-
- thumb_func_start sub_804E2D8
-sub_804E2D8: @ 804E2D8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2D8
-
- thumb_func_start sub_804E2EC
-sub_804E2EC: @ 804E2EC
- push {r4-r7,lr}
- ldr r1, _0804E308
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- mov r12, r1
- cmp r0, 0x9
- bls _0804E2FC
- b _0804E4F4
-_0804E2FC:
- lsls r0, 2
- ldr r1, _0804E30C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E308: .4byte 0x03004854
-_0804E30C: .4byte _0804E310
- .align 2, 0
-_0804E310:
- .4byte _0804E338
- .4byte _0804E34C
- .4byte _0804E380
- .4byte _0804E3C4
- .4byte _0804E3D8
- .4byte _0804E3EC
- .4byte _0804E410
- .4byte _0804E434
- .4byte _0804E48C
- .4byte _0804E4BC
-_0804E338:
- ldr r0, _0804E344
- ldr r1, _0804E348
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E344: .4byte gUnknown_08E6C100
-_0804E348: .4byte 0x02010000
-_0804E34C:
- ldr r1, _0804E36C
- ldr r2, _0804E370
- ldr r0, _0804E374
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E378
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804E37C
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E36C: .4byte gUnknown_08215C2C
-_0804E370: .4byte 0x06004000
-_0804E374: .4byte 0x040000d4
-_0804E378: .4byte 0x80000200
-_0804E37C: .4byte gUnknown_08215C0C
-_0804E380:
- ldr r3, _0804E3B8
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0x80
- lsls r5, 6
- ldr r1, _0804E3BC
- ldr r6, _0804E3C0
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804E396:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804E396
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E3B8: .4byte 0x02010000
-_0804E3BC: .4byte 0x040000d4
-_0804E3C0: .4byte 0x80000800
-_0804E3C4:
- ldr r0, _0804E3D0
- ldr r1, _0804E3D4
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3D0: .4byte gUnknown_08E6C920
-_0804E3D4: .4byte 0x02010000
-_0804E3D8:
- ldr r0, _0804E3E4
- ldr r1, _0804E3E8
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3E4: .4byte gUnknown_08E6D354
-_0804E3E8: .4byte 0x02013000
-_0804E3EC:
- ldr r1, _0804E400
- ldr r2, _0804E404
- ldr r0, _0804E408
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E40C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E400: .4byte 0x02010000
-_0804E404: .4byte 0x0600e000
-_0804E408: .4byte 0x040000d4
-_0804E40C: .4byte 0x80000800
-_0804E410:
- ldr r1, _0804E424
- ldr r2, _0804E428
- ldr r0, _0804E42C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E430
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E424: .4byte 0x02011000
-_0804E428: .4byte 0x0600f000
-_0804E42C: .4byte 0x040000d4
-_0804E430: .4byte 0x80000800
-_0804E434:
- ldr r3, _0804E474
- movs r2, 0
- adds r6, r3, 0
- ldr r7, _0804E478
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0, 0
- ldr r4, _0804E47C
-_0804E444:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bls _0804E444
- ldr r1, _0804E480
- ldr r0, _0804E484
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804E488
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r7, 0
- movs r1, 0x80
- movs r2, 0x20
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E474: .4byte 0x02013000
-_0804E478: .4byte gUnknown_0821602C
-_0804E47C: .4byte 0x0000027f
-_0804E480: .4byte 0x06006000
-_0804E484: .4byte 0x040000d4
-_0804E488: .4byte 0x80000280
-_0804E48C:
- ldr r0, _0804E4AC
- bl LoadSpriteSheet
- ldr r0, _0804E4B0
- bl LoadSpriteSheet
- ldr r0, _0804E4B4
- bl LoadSpriteSheet
-_0804E49E:
- ldr r0, _0804E4B8
-_0804E4A0:
- ldr r1, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- b _0804E4F4
- .align 2, 0
-_0804E4AC: .4byte gUnknown_082163DC
-_0804E4B0: .4byte gUnknown_082164F4
-_0804E4B4: .4byte gUnknown_08216454
-_0804E4B8: .4byte 0x03004854
-_0804E4BC:
- ldr r0, _0804E4E0
- bl LoadSpriteSheet
- ldr r0, _0804E4E4
- bl LoadSpriteSheet
- ldr r0, _0804E4E8
- bl LoadSpritePalette
- ldr r0, _0804E4EC
- bl LoadSpritePalette
- ldr r0, _0804E4F0
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1]
- movs r0, 0x1
- b _0804E4F6
- .align 2, 0
-_0804E4E0: .4byte gUnknown_08216540
-_0804E4E4: .4byte gUnknown_08216574
-_0804E4E8: .4byte gUnknown_082163EC
-_0804E4EC: .4byte gUnknown_082163E4
-_0804E4F0: .4byte 0x03004854
-_0804E4F4:
- movs r0, 0
-_0804E4F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804E2EC
-
- thumb_func_start sub_804E4FC
-sub_804E4FC: @ 804E4FC
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0804E52C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0xC
- movs r2, 0x91
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0804E530
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804E534
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0804E52C: .4byte 0x00001341
-_0804E530: .4byte 0x00000c0d
-_0804E534: .4byte 0x04000010
- thumb_func_end sub_804E4FC
-
- thumb_func_start sub_804E538
-sub_804E538: @ 804E538
- push {lr}
- ldr r1, _0804E55C
- ldr r0, _0804E560
- str r0, [r1]
- adds r2, r0, 0
- adds r2, 0x6F
- movs r1, 0
- strb r1, [r0]
- strb r1, [r2]
- ldr r0, _0804E564
- ldrb r0, [r0]
- bl sub_804E884
- ldr r0, _0804E568
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0804E55C: .4byte 0x03004854
-_0804E560: .4byte 0x02018000
-_0804E564: .4byte 0x0202e8cc
-_0804E568: .4byte sub_804E56C
- thumb_func_end sub_804E538
-
- thumb_func_start sub_804E56C
-sub_804E56C: @ 804E56C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0804E588
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _0804E57C
- b _0804E71A
-_0804E57C:
- lsls r0, 2
- ldr r1, _0804E58C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E588: .4byte 0x03004854
-_0804E58C: .4byte _0804E590
- .align 2, 0
-_0804E590:
- .4byte _0804E5AC
- .4byte _0804E614
- .4byte _0804E67C
- .4byte _0804E692
- .4byte _0804E6A8
- .4byte _0804E6D4
- .4byte _0804E700
-_0804E5AC:
- movs r0, 0x80
- lsls r0, 19
- movs r5, 0
- strh r5, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0804E60C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- ldr r3, _0804E610
- ldr r2, [r3]
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2]
- ldr r2, [r3]
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- subs r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- movs r0, 0xA1
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0x50
- strh r0, [r3]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- strb r5, [r2, 0x1]
- bl sub_8051474
- b _0804E71A
- .align 2, 0
-_0804E60C: .4byte gWindowConfig_81E6F68
-_0804E610: .4byte 0x03004854
-_0804E614:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804E620
- b _0804E71A
-_0804E620:
- movs r4, 0
- ldr r5, _0804E668
- ldr r6, _0804E66C
-_0804E626:
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldr r0, _0804E670
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x5C
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5C
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804E674
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804E626
- ldr r0, _0804E678
- bl SetVBlankCallback
- b _0804E6BE
- .align 2, 0
-_0804E668: .4byte gUnknown_082162E4
-_0804E66C: .4byte 0x03004854
-_0804E670: .4byte gSpriteTemplate_82163F4
-_0804E674: .4byte 0x02020004
-_0804E678: .4byte sub_804E2BC
-_0804E67C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_8051474
- b _0804E6BE
-_0804E692:
- bl sub_804E4FC
- ldr r0, _0804E6A4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E71A
- b _0804E6BE
- .align 2, 0
-_0804E6A4: .4byte 0x0202f388
-_0804E6A8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _0804E6CC
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
-_0804E6BE:
- ldr r0, _0804E6D0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804E71A
- .align 2, 0
-_0804E6CC: .4byte gUnknown_0842D307
-_0804E6D0: .4byte 0x03004854
-_0804E6D4:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _0804E71A
- ldr r0, _0804E6FC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0804E71A
- .align 2, 0
-_0804E6FC: .4byte 0x03004854
-_0804E700:
- ldr r0, _0804E730
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804E71A
- bl sub_80A6978
- ldr r0, _0804E734
- ldr r0, [r0]
- strb r4, [r0]
-_0804E71A:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E730: .4byte 0x0202f388
-_0804E734: .4byte 0x03004854
- thumb_func_end sub_804E56C
-
- thumb_func_start sub_804E738
-sub_804E738: @ 804E738
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- subs r1, r2
- ldrh r0, [r4, 0x3C]
- adds r1, r0
- strh r1, [r4, 0x32]
- ldrh r3, [r4, 0x2E]
- adds r0, r3
- strh r0, [r4, 0x2E]
- subs r2, 0x1
- strh r2, [r4, 0x36]
- lsls r0, 16
- lsls r1, 16
- cmp r0, r1
- bge _0804E786
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0804E780
- adds r0, r4, 0
- bl DestroySprite
- b _0804E786
-_0804E780:
- movs r0, 0x74
- bl audio_play
-_0804E786:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804E738
-
- thumb_func_start sub_804E794
-sub_804E794: @ 804E794
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- ldr r6, [sp, 0x14]
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0
- strh r2, [r0, 0x2E]
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- strh r3, [r0, 0x34]
- movs r1, 0xA
- strh r1, [r0, 0x36]
- strh r4, [r0, 0x38]
- strh r5, [r0, 0x3A]
- strh r6, [r0, 0x3C]
- ldr r1, _0804E7BC
- str r1, [r0, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E7BC: .4byte sub_804E738
- thumb_func_end sub_804E794
-
- thumb_func_start sub_804E7C0
-sub_804E7C0: @ 804E7C0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, 24
- movs r1, 0xF6
- lsls r1, 23
- adds r0, r1
- lsrs r0, 24
- movs r3, 0x1
- ands r3, r6
- movs r1, 0
- movs r2, 0x50
- bl sub_80A7DEC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- mov r8, r2
- add r8, r0
- mov r3, r8
- lsls r3, 2
- mov r8, r3
- ldr r0, _0804E83C
- add r8, r0
- ldr r5, _0804E840
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 1
- adds r0, r4, r5
- movs r6, 0
- ldrsh r1, [r0, r6]
- adds r0, r5, 0x2
- adds r0, r4, r0
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r5, 0x4
- adds r0, r4, r0
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r0, r5, 0x6
- adds r0, r4, r0
- movs r6, 0
- ldrsh r0, [r0, r6]
- str r0, [sp]
- adds r5, 0x8
- adds r4, r5
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- mov r0, r8
- bl sub_804E794
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E83C: .4byte 0x02020004
-_0804E840: .4byte gUnknown_08216594
- thumb_func_end sub_804E7C0
-
- thumb_func_start sub_804E844
-sub_804E844: @ 804E844
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- adds r0, r5, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- strh r5, [r6]
- adds r0, r6, 0x2
- adds r1, r4, 0
- bl StringCopy
- ldrb r0, [r4, 0x15]
- strb r0, [r6, 0x9]
- ldrb r0, [r4, 0x16]
- strb r0, [r6, 0xA]
- ldrb r0, [r4, 0x17]
- strb r0, [r6, 0xB]
- ldrb r0, [r4, 0x18]
- strb r0, [r6, 0xC]
- ldrb r0, [r4, 0x19]
- strb r0, [r6, 0xD]
- ldrb r0, [r4, 0x1A]
- strb r0, [r6, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_804E844
-
- thumb_func_start sub_804E884
-sub_804E884: @ 804E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804E89E
- ldr r2, _0804E8AC
- movs r3, 0x2
- adds r0, r2, 0
- adds r0, 0x54
-_0804E896:
- strh r3, [r0, 0x1A]
- subs r0, 0x1C
- cmp r0, r2
- bge _0804E896
-_0804E89E:
- cmp r1, 0x1
- beq _0804E8C4
- cmp r1, 0x1
- bgt _0804E8B0
- cmp r1, 0
- beq _0804E8BA
- b _0804E974
- .align 2, 0
-_0804E8AC: .4byte 0x03002970
-_0804E8B0:
- cmp r1, 0x2
- beq _0804E8F8
- cmp r1, 0x3
- beq _0804E93C
- b _0804E974
-_0804E8BA:
- ldr r0, _0804E8C0
- strb r1, [r0]
- b _0804E974
- .align 2, 0
-_0804E8C0: .4byte 0x03004834
-_0804E8C4:
- ldr r0, _0804E8E4
- strb r1, [r0]
- ldr r0, _0804E8E8
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x2
- strb r1, [r0]
- ldr r4, _0804E8EC
- ldr r1, _0804E8F0
- adds r0, r4, 0
- bl StringCopy
- adds r4, 0x1C
- ldr r0, _0804E8F4
- ldr r1, [r0]
- b _0804E920
- .align 2, 0
-_0804E8E4: .4byte 0x03004834
-_0804E8E8: .4byte 0x03004854
-_0804E8EC: .4byte 0x03002978
-_0804E8F0: .4byte 0x02024ea4
-_0804E8F4: .4byte gUnknown_082162B8
-_0804E8F8:
- ldr r0, _0804E928
- strb r1, [r0]
- ldr r0, _0804E92C
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _0804E930
- ldr r1, _0804E934
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E938
- ldr r1, [r5]
- bl StringCopy
- adds r4, 0x38
- ldr r1, [r5, 0x4]
-_0804E920:
- adds r0, r4, 0
- bl StringCopy
- b _0804E974
- .align 2, 0
-_0804E928: .4byte 0x03004834
-_0804E92C: .4byte 0x03004854
-_0804E930: .4byte 0x03002978
-_0804E934: .4byte 0x02024ea4
-_0804E938: .4byte gUnknown_082162B8
-_0804E93C:
- ldr r0, _0804E97C
- strb r1, [r0]
- ldr r0, _0804E980
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x4
- strb r1, [r0]
- ldr r4, _0804E984
- ldr r1, _0804E988
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E98C
- ldr r1, [r5]
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x38
- ldr r1, [r5, 0x4]
- bl StringCopy
- adds r4, 0x54
- ldr r1, [r5, 0x8]
- adds r0, r4, 0
- bl StringCopy
-_0804E974:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E97C: .4byte 0x03004834
-_0804E980: .4byte 0x03004854
-_0804E984: .4byte 0x03002978
-_0804E988: .4byte 0x02024ea4
-_0804E98C: .4byte gUnknown_082162B8
- thumb_func_end sub_804E884
-
- thumb_func_start sub_804E990
-sub_804E990: @ 804E990
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r3, _0804E9D8
- ldr r0, _0804E9DC
- str r0, [r3]
- movs r1, 0
- strb r2, [r0]
- movs r2, 0x9A
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- movs r2, 0
- ldr r5, _0804E9E0
- adds r4, r3, 0
- movs r3, 0
-_0804E9B4:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0x80
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _0804E9B4
- ldrb r0, [r5]
- bl sub_804E884
- ldrh r0, [r5]
- cmp r0, 0
- bne _0804E9E8
- ldr r0, _0804E9E4
- bl SetMainCallback2
- b _0804E9EE
- .align 2, 0
-_0804E9D8: .4byte 0x03004854
-_0804E9DC: .4byte 0x02018000
-_0804E9E0: .4byte 0x0202e8cc
-_0804E9E4: .4byte sub_804E9F8
-_0804E9E8:
- ldr r0, _0804E9F4
- bl SetMainCallback2
-_0804E9EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E9F4: .4byte sub_804F378
- thumb_func_end sub_804E990
-
- thumb_func_start sub_804E9F8
-sub_804E9F8: @ 804E9F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _0804EA18
- ldr r0, [r1]
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0x66
- bls _0804EA0E
- b _0804F0CE
-_0804EA0E:
- lsls r0, 2
- ldr r1, _0804EA1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804EA18: .4byte 0x03004854
-_0804EA1C: .4byte _0804EA20
- .align 2, 0
-_0804EA20:
- .4byte _0804EBBC
- .4byte _0804EC74
- .4byte _0804EC94
- .4byte _0804ECE8
- .4byte _0804ECFA
- .4byte _0804ED14
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804ED48
- .4byte _0804ED94
- .4byte _0804EDB8
- .4byte _0804EE46
- .4byte _0804EEA0
- .4byte _0804EF16
- .4byte _0804EF34
- .4byte _0804EFD8
- .4byte _0804F00C
- .4byte _0804F0CE
- .4byte _0804F020
- .4byte _0804F024
- .4byte _0804F02A
- .4byte _0804F03A
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F084
- .4byte _0804F0A0
- .4byte _0804F0BC
-_0804EBBC:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0804EC60
- bl SetVBlankCallback
- ldr r4, _0804EC64
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- ldr r1, _0804EC68
- ldr r2, _0804EC6C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0804EC70
- ldr r1, [r3]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, [r3]
- adds r4, r0, 0
- adds r4, 0x4E
- movs r1, 0
- strh r2, [r4]
- adds r0, 0x7E
- strb r1, [r0]
- ldr r1, [r3]
- movs r4, 0xA2
- lsls r4, 1
- adds r0, r1, r4
- strh r2, [r0]
- adds r4, 0x2
- adds r0, r1, r4
- strh r2, [r0]
- movs r5, 0
- movs r6, 0
- mov r8, r3
- movs r7, 0xA6
- lsls r7, 1
-_0804EC18:
- ldr r0, [r3]
- lsls r1, r5, 1
- adds r0, 0x70
- adds r0, r1
- strh r6, [r0]
- adds r4, r5, 0x1
- adds r1, r5
- lsls r1, 1
- movs r2, 0x2
-_0804EC2A:
- ldr r0, [r3]
- adds r0, r7
- adds r0, r1
- strh r6, [r0]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804EC2A
- adds r5, r4, 0
- cmp r5, 0x3
- ble _0804EC18
- mov r0, r8
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x7C
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x26
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- strb r2, [r3, 0x1]
- b _0804F0CE
- .align 2, 0
-_0804EC60: .4byte sub_804E2BC
-_0804EC64: .4byte gWindowConfig_81E6F68
-_0804EC68: .4byte 0x03002b74
-_0804EC6C: .4byte 0x00004422
-_0804EC70: .4byte 0x03004854
-_0804EC74:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804EC80
- b _0804F0CE
-_0804EC80:
- ldr r0, _0804EC90
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8051474
- b _0804F0CE
- .align 2, 0
-_0804EC90: .4byte 0x03004854
-_0804EC94:
- movs r5, 0
- ldr r4, _0804ECD8
- ldr r6, _0804ECDC
-_0804EC9A:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- ldr r0, _0804ECE0
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x60
- adds r1, r5
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x60
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804ECE4
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0804EC9A
- b _0804F0AA
- .align 2, 0
-_0804ECD8: .4byte gUnknown_082162E4
-_0804ECDC: .4byte 0x03004854
-_0804ECE0: .4byte gSpriteTemplate_82163F4
-_0804ECE4: .4byte 0x02020004
-_0804ECE8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0804F0AA
-_0804ECFA:
- bl sub_804E4FC
- ldr r0, _0804ED10
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804ED0C
- b _0804F0CE
-_0804ED0C:
- b _0804F0AA
- .align 2, 0
-_0804ED10: .4byte 0x0202f388
-_0804ED14:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _0804ED40
- movs r1, 0x1
- movs r2, 0xE
- bl Print
- ldr r2, _0804ED44
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- str r3, [r0]
- b _0804F0CE
- .align 2, 0
-_0804ED40: .4byte gUnknown_0842D3A5
-_0804ED44: .4byte 0x03004854
-_0804ED48:
- mov r2, r8
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r5, 0
- strb r0, [r1]
- ldr r0, [r2]
- movs r3, 0x9E
- lsls r3, 1
- adds r0, r3
- strb r5, [r0]
- ldr r0, [r2]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r1, _0804ED8C
- ldrh r1, [r1]
- bl sub_804E844
- ldr r0, _0804ED90
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- movs r2, 0x10
- bl memcpy
- bl sub_80084A4
- mov r3, r8
- ldr r0, [r3]
- subs r4, 0x4C
- adds r0, r4
- str r5, [r0]
- b _0804F0CE
- .align 2, 0
-_0804ED8C: .4byte 0x0203855e
-_0804ED90: .4byte 0x03002a70
-_0804ED94:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804EDA0
- b _0804F0CE
-_0804EDA0:
- bl ResetBlockReceivedFlags
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _0804EDB0
- b _0804F0AA
-_0804EDB0:
- movs r0, 0x4
- bl sub_8007E9C
- b _0804F0AA
-_0804EDB8:
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bgt _0804EDCE
- b _0804F0CE
-_0804EDCE:
- bl sub_8071EF4
- bl GetBlockRecievedStatus
- adds r4, r0, 0
- bl sub_8008198
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0804EDE6
- b _0804F0CE
-_0804EDE6:
- movs r5, 0
- mov r7, r8
- movs r6, 0xBE
- lsls r6, 1
- b _0804EE18
-_0804EDF0:
- ldr r0, [r7]
- lsls r4, r5, 4
- adds r0, r4, r0
- adds r0, r6
- lsls r1, r5, 8
- ldr r2, _0804EE2C
- adds r1, r2
- movs r2, 0x10
- bl memcpy
- ldr r0, [r7]
- lsls r2, r5, 1
- adds r1, r0, 0
- adds r1, 0x80
- adds r1, r2
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r5, 0x1
-_0804EE18:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- blt _0804EDF0
- bl ResetBlockReceivedFlags
- b _0804F0AA
- .align 2, 0
-_0804EE2C: .4byte 0x03002b80
-_0804EE30:
- ldrb r1, [r4]
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x80
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl sub_804E7C0
- b _0804EE7A
-_0804EE46:
- bl GetLinkPlayerCount
- ldr r2, _0804EE98
- ldr r1, [r2]
- adds r1, 0x88
- strb r0, [r1]
- movs r5, 0
- ldr r2, [r2]
- movs r3, 0x9E
- lsls r3, 1
- adds r4, r2, r3
- ldr r1, _0804EE9C
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- ldrb r3, [r4]
- adds r0, r1
-_0804EE6C:
- ldrb r1, [r0]
- cmp r3, r1
- beq _0804EE30
- adds r0, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _0804EE6C
-_0804EE7A:
- ldr r3, _0804EE98
- ldr r1, [r3]
- movs r4, 0x98
- lsls r4, 1
- adds r2, r1, r4
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r3]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r0
- b _0804F0AE
- .align 2, 0
-_0804EE98: .4byte 0x03004854
-_0804EE9C: .4byte gUnknown_082162EC
-_0804EEA0:
- mov r1, r8
- ldr r2, [r1]
- movs r3, 0x98
- lsls r3, 1
- adds r1, r2, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _0804EEB6
- b _0804F0CE
-_0804EEB6:
- movs r4, 0x9E
- lsls r4, 1
- adds r0, r2, r4
- adds r1, r2, 0
- adds r1, 0x88
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0804EF00
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r0, r8
- ldr r2, [r0]
- ldr r3, _0804EEF4
- ldr r1, _0804EEF8
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldr r3, _0804EEFC
- adds r1, r3, 0
- ldrh r0, [r0]
- adds r1, r0
- adds r2, 0x54
- strh r1, [r2]
- b _0804EF06
- .align 2, 0
-_0804EEF4: .4byte gUnknown_082162F8
-_0804EEF8: .4byte gUnknown_08216300
-_0804EEFC: .4byte 0xffffa800
-_0804EF00:
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_0804EF06:
- mov r4, r8
- ldr r0, [r4]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _0804F0CE
-_0804EF16:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804EF22
- b _0804F0CE
-_0804EF22:
- ldr r2, _0804EF30
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- b _0804EFBC
- .align 2, 0
-_0804EF30: .4byte 0x03004854
-_0804EF34:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- mov r4, r8
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x54
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r4, [r1]
- adds r0, r4
- strh r0, [r1]
- movs r0, 0xA1
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _0804EFB8
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0xA1
- lsls r2, 1
- adds r1, r3, r2
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r2, _0804EFC8
- ldr r1, _0804EFCC
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldr r1, _0804EFD0
- ldr r4, _0804EFD4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0
- str r0, [r1]
- bl sub_804F238
- bl BuyMenuDrawFieldObjects
-_0804EFB8:
- mov r1, r8
- ldr r0, [r1]
-_0804EFBC:
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2
- bl sub_8051414
- b _0804F0CE
- .align 2, 0
-_0804EFC8: .4byte gUnknown_082162F8
-_0804EFCC: .4byte gUnknown_08216300
-_0804EFD0: .4byte 0x0400000c
-_0804EFD4: .4byte 0x00004882
-_0804EFD8:
- bl sub_8051B8C
- lsls r0, 24
- cmp r0, 0
- beq _0804EFF6
- ldr r0, _0804F008
- ldr r1, [r0]
- movs r3, 0x98
- lsls r3, 1
- adds r2, r1, r3
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804EFF6:
- ldr r0, _0804F008
- ldr r0, [r0]
- movs r4, 0xB4
- lsls r4, 1
- adds r0, r4
- bl sub_8051414
- b _0804F0CE
- .align 2, 0
-_0804F008: .4byte 0x03004854
-_0804F00C:
- ldr r0, _0804F01C
- movs r2, 0x10
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x3
- bl CreateSprite
- b _0804F0AA
- .align 2, 0
-_0804F01C: .4byte gSpriteTemplate_8216548
-_0804F020:
- mov r0, r8
- b _0804F0AC
-_0804F024:
- bl sub_80084A4
- b _0804F0AA
-_0804F02A:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804F0CE
- bl sub_8007E24
- b _0804F0AA
-_0804F03A:
- mov r1, r8
- ldr r3, [r1]
- adds r2, r3, 0
- adds r2, 0x56
- movs r1, 0
- movs r0, 0x80
- strh r0, [r2]
- movs r2, 0x96
- lsls r2, 1
- adds r0, r3, r2
- str r1, [r0]
- ldr r0, _0804F07C
- bl SetMainCallback2
- bl current_map_music_get
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0804F080
- cmp r0, r4
- beq _0804F074
- bl current_map_music_get
- mov r3, r8
- ldr r1, [r3]
- movs r2, 0xBC
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
-_0804F074:
- adds r0, r4, 0
- bl sub_8075474
- b _0804F0CE
- .align 2, 0
-_0804F07C: .4byte sub_80501FC
-_0804F080: .4byte 0x00000193
-_0804F084:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _0804F09C
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- b _0804F0AA
- .align 2, 0
-_0804F09C: .4byte gUnknown_0842D2D9
-_0804F0A0:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _0804F0CE
-_0804F0AA:
- ldr r0, _0804F0B8
-_0804F0AC:
- ldr r1, [r0]
-_0804F0AE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804F0CE
- .align 2, 0
-_0804F0B8: .4byte 0x03004854
-_0804F0BC:
- ldr r0, _0804F0EC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804F0CE
- ldr r0, _0804F0F0
- bl SetMainCallback2
-_0804F0CE:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F0EC: .4byte 0x0202f388
-_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_804E9F8
-
- thumb_func_start sub_804F0F4
-sub_804F0F4: @ 804F0F4
- push {r4,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0804F158
- bl SetVBlankCallback
- ldr r4, _0804F15C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- ldr r1, _0804F160
- ldr r2, _0804F164
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804F168
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4E
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F158: .4byte sub_804E2BC
-_0804F15C: .4byte gWindowConfig_81E6F68
-_0804F160: .4byte 0x03002b74
-_0804F164: .4byte 0x00004422
-_0804F168: .4byte 0x03004854
- thumb_func_end sub_804F0F4
-
- thumb_func_start task_tutorial_oak_boy_girl
-task_tutorial_oak_boy_girl: @ 804F16C
- push {lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r0, 24
- adds r2, r0, 0
- adds r2, 0x18
- ldr r0, _0804F1A8
- ldr r0, [r0]
- lsrs r1, 23
- adds r0, 0xA2
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0804F1AC
- adds r0, r1
- ldrb r1, [r0]
- cmp r2, r1
- bcc _0804F1B4
- adds r0, r1, 0
- adds r0, 0x30
- cmp r2, r0
- bcs _0804F1B4
- subs r0, 0x1C
- cmp r2, r0
- bcc _0804F1B0
- adds r0, 0x8
- cmp r2, r0
- bcs _0804F1B0
- movs r0, 0x2
- b _0804F1B6
- .align 2, 0
-_0804F1A8: .4byte 0x03004854
-_0804F1AC: .4byte gUnknown_08216303
-_0804F1B0:
- movs r0, 0x1
- b _0804F1B6
-_0804F1B4:
- movs r0, 0
-_0804F1B6:
- pop {r1}
- bx r1
- thumb_func_end task_tutorial_oak_boy_girl
-
- thumb_func_start sub_804F1BC
-sub_804F1BC: @ 804F1BC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r0, 0xAF
- bne _0804F1EE
- movs r3, 0
- subs r5, r1, 0x1
- adds r2, 0x9
-_0804F1D2:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _0804F1E0
- adds r4, r3, 0
-_0804F1E0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _0804F1D2
- adds r0, r4, 0x5
- b _0804F204
-_0804F1EE:
- subs r0, 0x85
- lsls r0, 16
- lsrs r4, r0, 16
- subs r5, r1, 0x1
- cmp r4, 0x4
- bls _0804F208
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- adds r0, 0x5
-_0804F204:
- lsls r0, 16
- lsrs r4, r0, 16
-_0804F208:
- movs r3, 0
- cmp r3, r5
- bge _0804F22E
- ldr r7, _0804F234
- lsls r0, r4, 1
- adds r6, r0, r4
-_0804F214:
- adds r4, r3, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- adds r1, r3, r6
- adds r1, r7
- ldrb r1, [r1]
- adds r1, 0x85
- bl sub_80516C4
- lsls r4, 16
- lsrs r3, r4, 16
- cmp r3, r5
- blt _0804F214
-_0804F22E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F234: .4byte gUnknown_082165BC
- thumb_func_end sub_804F1BC
-
- thumb_func_start sub_804F238
-sub_804F238: @ 804F238
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0804F2A0
- movs r6, 0xFF
- ldr r5, _0804F2A4
-_0804F242:
- ldr r3, [r7]
- lsls r2, r4, 1
- adds r0, r3, 0
- adds r0, 0xA2
- adds r0, r2
- strh r6, [r0]
- adds r1, r3, 0
- adds r1, 0x9A
- adds r1, r2
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- adds r0, r4, r0
- adds r0, r5
- ldrb r0, [r0]
- strh r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F242
- movs r3, 0
- ldr r7, _0804F2A0
-_0804F270:
- movs r4, 0
- adds r6, r3, 0x1
- lsls r5, r3, 1
-_0804F276:
- ldr r2, [r7]
- lsls r0, r4, 1
- adds r1, r2, 0
- adds r1, 0x9A
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r3
- bne _0804F28E
- adds r0, r2, 0
- adds r0, 0xA2
- adds r0, r5
- strh r4, [r0]
-_0804F28E:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F276
- adds r3, r6, 0
- cmp r3, 0x3
- ble _0804F270
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F2A0: .4byte 0x03004854
-_0804F2A4: .4byte gUnknown_082162EC
- thumb_func_end sub_804F238
-
- thumb_func_start BuyMenuDrawFieldObjects
-BuyMenuDrawFieldObjects: @ 804F2A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r7, _0804F360
- ldr r0, _0804F364
- mov r8, r0
-_0804F2B6:
- ldr r2, [r7]
- lsls r4, r6, 1
- adds r0, r2, 0
- adds r0, 0x9A
- adds r3, r0, r4
- ldrh r0, [r3]
- cmp r0, 0xFF
- beq _0804F34A
- ldr r5, _0804F368
- adds r1, r2, 0
- adds r1, 0x5C
- ldrh r3, [r3]
- adds r1, r3
- adds r0, r2, 0
- adds r0, 0x60
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r1, r0, 0
- adds r1, 0x9A
- adds r1, r4
- adds r0, 0x5C
- ldrh r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804F36C
- adds r0, r1
- lsls r1, r6, 24
- lsrs r1, 24
- bl StartSpriteAnim
- bl GetMultiplayerId
- lsls r0, 24
- ldr r1, [r7]
- adds r1, 0x9A
- adds r1, r4
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _0804F31A
- adds r0, r5, 0
- ldr r1, _0804F370
- bl StringCopy
- adds r5, r0, 0
-_0804F31A:
- ldr r0, [r7]
- adds r0, 0x9A
- adds r0, r4
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _0804F374
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0x1]
- lsls r2, 3
- ldr r0, _0804F368
- movs r3, 0x1
- bl sub_80729D8
-_0804F34A:
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0804F2B6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F360: .4byte 0x03004854
-_0804F364: .4byte gUnknown_082162D4
-_0804F368: .4byte 0x020231cc
-_0804F36C: .4byte 0x02020004
-_0804F370: .4byte gUnknown_082162C4
-_0804F374: .4byte 0x03002978
- thumb_func_end BuyMenuDrawFieldObjects
-
- thumb_func_start sub_804F378
-sub_804F378: @ 804F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _0804F398
- ldr r0, [r1]
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0x15
- bls _0804F38E
- b _0804F7E6
-_0804F38E:
- lsls r0, 2
- ldr r1, _0804F39C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804F398: .4byte 0x03004854
-_0804F39C: .4byte _0804F3A0
- .align 2, 0
-_0804F3A0:
- .4byte _0804F3F8
- .4byte _0804F474
- .4byte _0804F494
- .4byte _0804F4EC
- .4byte _0804F518
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F54C
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F578
- .4byte _0804F5C8
- .4byte _0804F636
- .4byte _0804F650
- .4byte _0804F6F8
- .4byte _0804F720
- .4byte _0804F7E6
- .4byte _0804F73C
- .4byte _0804F742
- .4byte _0804F748
- .4byte _0804F754
-_0804F3F8:
- bl sub_804F0F4
- ldr r4, _0804F46C
- ldrh r1, [r4]
- movs r0, 0
- bl sub_80516C4
- ldr r5, _0804F470
- ldr r0, [r5]
- movs r6, 0xBE
- lsls r6, 1
- adds r0, r6
- ldrh r1, [r4]
- bl sub_804E844
- ldrh r0, [r4]
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x88
- ldrb r1, [r1]
- adds r2, r6
- bl sub_804F1BC
- movs r4, 0
- movs r6, 0
- mov r8, r5
- movs r7, 0xA6
- lsls r7, 1
-_0804F430:
- ldr r0, [r5]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- strh r6, [r0]
- adds r3, r4, 0x1
- adds r1, r4
- lsls r1, 1
- movs r2, 0x2
-_0804F442:
- ldr r0, [r5]
- adds r0, r7
- adds r0, r1
- strh r6, [r0]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804F442
- adds r4, r3, 0
- cmp r4, 0x3
- ble _0804F430
- mov r0, r8
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0x7C
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- strb r2, [r3, 0x1]
- b _0804F7E6
- .align 2, 0
-_0804F46C: .4byte 0x0203855e
-_0804F470: .4byte 0x03004854
-_0804F474:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804F480
- b _0804F7E6
-_0804F480:
- ldr r0, _0804F490
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8051474
- b _0804F7E6
- .align 2, 0
-_0804F490: .4byte 0x03004854
-_0804F494:
- movs r4, 0
- ldr r5, _0804F4DC
- ldr r6, _0804F4E0
-_0804F49A:
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldr r0, _0804F4E4
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x60
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x60
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804F4E8
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F49A
- ldr r0, _0804F4E0
- ldr r1, [r0]
- b _0804F74C
- .align 2, 0
-_0804F4DC: .4byte gUnknown_082162E4
-_0804F4E0: .4byte 0x03004854
-_0804F4E4: .4byte gSpriteTemplate_82163F4
-_0804F4E8: .4byte 0x02020004
-_0804F4EC:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0804F514
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- str r4, [r0]
- b _0804F7E6
- .align 2, 0
-_0804F514: .4byte 0x03004854
-_0804F518:
- mov r2, r8
- ldr r1, [r2]
- movs r3, 0x98
- lsls r3, 1
- adds r1, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x2
- bne _0804F530
- bl sub_804E4FC
-_0804F530:
- ldr r0, _0804F548
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804F53E
- b _0804F7E6
-_0804F53E:
- mov r5, r8
- ldr r1, [r5]
- movs r0, 0x8
- strb r0, [r1]
- b _0804F7E6
- .align 2, 0
-_0804F548: .4byte 0x0202f388
-_0804F54C:
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0xB
- strb r0, [r1]
- mov r1, r8
- ldr r0, [r1]
- movs r3, 0x9E
- lsls r3, 1
- adds r0, r3
- strb r2, [r0]
- b _0804F7E6
-_0804F564:
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x80
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_804E7C0
- b _0804F5A2
-_0804F578:
- movs r4, 0
- ldr r2, _0804F5C0
- ldr r0, _0804F5C4
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- movs r5, 0x9E
- lsls r5, 1
- adds r1, r3, r5
- ldrb r1, [r1]
- adds r0, r2
-_0804F594:
- ldrb r2, [r0]
- cmp r1, r2
- beq _0804F564
- adds r0, 0x1
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F594
-_0804F5A2:
- ldr r3, _0804F5C4
- ldr r1, [r3]
- movs r5, 0x98
- lsls r5, 1
- adds r2, r1, r5
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r3]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r0
- b _0804F74C
- .align 2, 0
-_0804F5C0: .4byte gUnknown_082162EC
-_0804F5C4: .4byte 0x03004854
-_0804F5C8:
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r3, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _0804F5DE
- b _0804F7E6
-_0804F5DE:
- movs r5, 0x9E
- lsls r5, 1
- adds r0, r3, r5
- adds r4, r3, 0
- adds r4, 0x88
- ldrb r0, [r0]
- ldrb r1, [r4]
- cmp r0, r1
- bcc _0804F620
- ldr r2, _0804F614
- ldr r1, _0804F618
- ldrb r0, [r4]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldr r2, _0804F61C
- adds r1, r2, 0
- ldrh r0, [r0]
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldrb r0, [r3]
- adds r0, 0x1
- b _0804F624
- .align 2, 0
-_0804F614: .4byte gUnknown_082162F8
-_0804F618: .4byte gUnknown_08216300
-_0804F61C: .4byte 0xffffa800
-_0804F620:
- ldrb r0, [r3]
- subs r0, 0x1
-_0804F624:
- strb r0, [r3]
- mov r3, r8
- ldr r0, [r3]
- movs r5, 0x98
- lsls r5, 1
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- b _0804F7E6
-_0804F636:
- mov r1, r8
- ldr r0, [r1]
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- bl sub_804F238
- movs r0, 0x2B
- bl audio_play
- mov r2, r8
- ldr r0, [r2]
- b _0804F710
-_0804F650:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r5, 0x80
- lsls r5, 3
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r2]
- mov r0, r8
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x54
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- movs r0, 0xA1
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _0804F6D6
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0xA1
- lsls r2, 1
- adds r1, r3, r2
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r2, _0804F6E8
- ldr r1, _0804F6EC
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldr r1, _0804F6F0
- ldr r5, _0804F6F4
- adds r0, r5, 0
- strh r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0
- str r0, [r1]
- movs r0, 0x34
- bl audio_play
- bl BuyMenuDrawFieldObjects
-_0804F6D6:
- mov r1, r8
- ldr r0, [r1]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2
- bl sub_8051414
- b _0804F7E6
- .align 2, 0
-_0804F6E8: .4byte gUnknown_082162F8
-_0804F6EC: .4byte gUnknown_08216300
-_0804F6F0: .4byte 0x0400000c
-_0804F6F4: .4byte 0x00004882
-_0804F6F8:
- bl sub_8051B8C
- lsls r0, 24
- cmp r0, 0
- beq _0804F70C
- ldr r0, _0804F71C
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804F70C:
- ldr r0, _0804F71C
- ldr r0, [r0]
-_0804F710:
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r3
- bl sub_8051414
- b _0804F7E6
- .align 2, 0
-_0804F71C: .4byte 0x03004854
-_0804F720:
- ldr r0, _0804F734
- movs r2, 0x10
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x3
- bl CreateSprite
- ldr r0, _0804F738
- ldr r1, [r0]
- b _0804F74C
- .align 2, 0
-_0804F734: .4byte gSpriteTemplate_8216548
-_0804F738: .4byte 0x03004854
-_0804F73C:
- mov r5, r8
- ldr r1, [r5]
- b _0804F74C
-_0804F742:
- mov r0, r8
- ldr r1, [r0]
- b _0804F74C
-_0804F748:
- mov r2, r8
- ldr r1, [r2]
-_0804F74C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804F7E6
-_0804F754:
- bl sub_804F81C
- ldr r3, _0804F804
- ldr r4, [r3]
- adds r5, r4, 0
- adds r5, 0x56
- movs r2, 0
- movs r1, 0
- movs r0, 0x80
- strh r0, [r5]
- movs r5, 0x96
- lsls r5, 1
- adds r0, r4, r5
- str r1, [r0]
- ldr r1, _0804F808
- adds r0, r4, r1
- strb r2, [r0]
- ldr r0, [r3]
- adds r0, 0x7E
- strb r2, [r0]
- ldr r0, _0804F80C
- bl SetMainCallback2
- movs r4, 0
- ldr r0, _0804F810
- ldrh r0, [r0]
- cmp r4, r0
- bge _0804F7B8
- movs r5, 0xA0
- lsls r5, 20
- ldr r6, _0804F814
-_0804F792:
- ldm r6!, {r0}
- lsrs r1, r5, 24
- bl CreateTask
- ldr r1, _0804F804
- ldr r1, [r1]
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- movs r3, 0x80
- lsls r3, 17
- adds r5, r3
- adds r4, 0x1
- ldr r0, _0804F810
- ldrh r0, [r0]
- cmp r4, r0
- blt _0804F792
-_0804F7B8:
- bl current_map_music_get
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0804F818
- cmp r0, r4
- beq _0804F7D6
- bl current_map_music_get
- ldr r1, _0804F804
- ldr r1, [r1]
- movs r5, 0xBC
- lsls r5, 1
- adds r1, r5
- strh r0, [r1]
-_0804F7D6:
- adds r0, r4, 0
- bl sub_8075474
- movs r0, 0x35
- bl audio_play
- bl sub_804E290
-_0804F7E6:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F804: .4byte 0x03004854
-_0804F808: .4byte 0x0000014b
-_0804F80C: .4byte sub_80501FC
-_0804F810: .4byte 0x0202e8cc
-_0804F814: .4byte gUnknown_08216308
-_0804F818: .4byte 0x00000193
- thumb_func_end sub_804F378
-
- thumb_func_start sub_804F81C
-sub_804F81C: @ 804F81C
- push {lr}
- ldr r3, _0804F83C
- movs r0, 0
- ldr r1, _0804F840
- movs r2, 0x3
-_0804F826:
- strh r0, [r3]
- strh r0, [r3, 0x4]
- strh r0, [r1]
- strh r0, [r1, 0x10]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804F826
- pop {r0}
- bx r0
- .align 2, 0
-_0804F83C: .4byte 0x03002f90
-_0804F840: .4byte 0x03002a20
- thumb_func_end sub_804F81C
-
- thumb_func_start sub_804F844
-sub_804F844: @ 804F844
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0804F884
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- cmp r0, r1
- ble _0804F87C
- ldr r0, _0804F888
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- lsls r1, 1
- adds r0, 0x10
- adds r1, r0
- ldr r0, _0804F88C
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroyTask
-_0804F87C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F884: .4byte 0x03004b20
-_0804F888: .4byte 0x03002a20
-_0804F88C: .4byte 0x00002345
- thumb_func_end sub_804F844
-
- thumb_func_start sub_804F890
-sub_804F890: @ 804F890
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0804F8C0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0804F8C4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F8C0: .4byte sub_804F844
-_0804F8C4: .4byte 0x03004b20
- thumb_func_end sub_804F890
-
- thumb_func_start sub_804F8C8
-sub_804F8C8: @ 804F8C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0804F934
- ldr r0, [r4]
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0x1
- bl task_tutorial_oak_boy_girl
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _0804F8E6
- b _0804F9DC
-_0804F8E6:
- ldr r2, _0804F938
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0
- beq _0804F8FC
- b _0804F9EA
-_0804F8FC:
- ldr r0, [r4]
- ldr r1, _0804F93C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804F9BE
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804F940
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, r1, 0
- ldr r0, [r4]
- adds r0, 0x56
- movs r4, 0
- ldrsh r2, [r0, r4]
- ldr r0, _0804F944
- cmp r2, r0
- bgt _0804F964
- cmp r1, 0x4B
- bls _0804F950
- ldr r1, _0804F948
- ldr r0, _0804F94C
- b _0804F954
- .align 2, 0
-_0804F934: .4byte 0x03004854
-_0804F938: .4byte 0x03004b20
-_0804F93C: .4byte 0x0000014b
-_0804F940: .4byte 0x0000028f
-_0804F944: .4byte 0x000001f3
-_0804F948: .4byte 0x03002a20
-_0804F94C: .4byte 0x00004523
-_0804F950:
- ldr r1, _0804F95C
- ldr r0, _0804F960
-_0804F954:
- strh r0, [r1, 0x12]
- ldr r0, _0804F960
- b _0804F9C2
- .align 2, 0
-_0804F95C: .4byte 0x03002a20
-_0804F960: .4byte 0x00005432
-_0804F964:
- ldr r0, _0804F980
- cmp r2, r0
- bgt _0804F992
- cmp r1, 0x50
- bhi _0804F9BE
- adds r0, r1, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _0804F98C
- ldr r1, _0804F984
- ldr r0, _0804F988
- b _0804F9C2
- .align 2, 0
-_0804F980: .4byte 0x000005db
-_0804F984: .4byte 0x03002a20
-_0804F988: .4byte 0x00005432
-_0804F98C:
- cmp r1, 0x9
- bhi _0804F9C4
- b _0804F9B4
-_0804F992:
- cmp r1, 0x5A
- bhi _0804F9BE
- adds r0, r1, 0
- subs r0, 0x47
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _0804F9B0
- ldr r1, _0804F9A8
- ldr r0, _0804F9AC
- b _0804F9C2
- .align 2, 0
-_0804F9A8: .4byte 0x03002a20
-_0804F9AC: .4byte 0x00005432
-_0804F9B0:
- cmp r3, 0x1D
- bhi _0804F9C4
-_0804F9B4:
- movs r0, 0x1
- movs r1, 0x5
- bl sub_804F890
- b _0804F9C4
-_0804F9BE:
- ldr r1, _0804F9D0
- ldr r0, _0804F9D4
-_0804F9C2:
- strh r0, [r1, 0x12]
-_0804F9C4:
- ldr r0, _0804F9D8
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804F9E8
- .align 2, 0
-_0804F9D0: .4byte 0x03002a20
-_0804F9D4: .4byte 0x00004523
-_0804F9D8: .4byte 0x03004b20
-_0804F9DC:
- ldr r0, _0804F9F0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804F9E8:
- strh r0, [r1, 0x8]
-_0804F9EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F9F0: .4byte 0x03004b20
- thumb_func_end sub_804F8C8
-
- thumb_func_start sub_804F9F4
-sub_804F9F4: @ 804F9F4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _0804FA78
- ldr r3, [r6]
- adds r0, r3, 0
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldr r1, _0804FA7C
- ands r0, r1
- adds r1, r3, 0
- adds r1, 0xA6
- ldrb r1, [r1]
- lsrs r2, r0, 8
- ldr r0, _0804FA80
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r1, 0
- adds r0, 0x14
- cmp r2, r0
- bls _0804FB04
- adds r0, 0x14
- cmp r2, r0
- bcs _0804FB04
- ldr r2, _0804FA84
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r2
- movs r5, 0x8
- ldrsh r0, [r2, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _0804FB12
- ldr r1, _0804FA88
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804FAF0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804FA8C
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- ldr r0, [r6]
- adds r0, 0x56
- movs r6, 0
- ldrsh r1, [r0, r6]
- ldr r0, _0804FA90
- cmp r1, r0
- bgt _0804FAAC
- cmp r2, 0x42
- bls _0804FA9C
- ldr r1, _0804FA94
- ldr r0, _0804FA98
- strh r0, [r1, 0x14]
- b _0804FAD4
- .align 2, 0
-_0804FA78: .4byte 0x03004854
-_0804FA7C: .4byte 0x0000ffff
-_0804FA80: .4byte gUnknown_08216303
-_0804FA84: .4byte 0x03004b20
-_0804FA88: .4byte 0x0000014b
-_0804FA8C: .4byte 0x0000028f
-_0804FA90: .4byte 0x000001f3
-_0804FA94: .4byte 0x03002a20
-_0804FA98: .4byte 0x00004523
-_0804FA9C:
- ldr r1, _0804FAA4
- ldr r0, _0804FAA8
- strh r0, [r1, 0x14]
- b _0804FAD4
- .align 2, 0
-_0804FAA4: .4byte 0x03002a20
-_0804FAA8: .4byte 0x00005432
-_0804FAAC:
- cmp r2, 0x41
- bls _0804FAB6
- ldr r1, _0804FAE0
- ldr r0, _0804FAE4
- strh r0, [r1, 0x14]
-_0804FAB6:
- adds r0, r2, 0
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- bhi _0804FAC8
- ldr r1, _0804FAE0
- ldr r0, _0804FAE8
- strh r0, [r1, 0x14]
-_0804FAC8:
- cmp r3, 0x9
- bhi _0804FAD4
- movs r0, 0x2
- movs r1, 0x5
- bl sub_804F890
-_0804FAD4:
- ldr r0, _0804FAEC
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804FB10
- .align 2, 0
-_0804FAE0: .4byte 0x03002a20
-_0804FAE4: .4byte 0x00004523
-_0804FAE8: .4byte 0x00005432
-_0804FAEC: .4byte 0x03004b20
-_0804FAF0:
- ldr r0, _0804FAFC
- ldr r1, _0804FB00
- strh r1, [r0, 0x14]
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _0804FB12
- .align 2, 0
-_0804FAFC: .4byte 0x03002a20
-_0804FB00: .4byte 0x00004523
-_0804FB04:
- ldr r0, _0804FB18
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804FB10:
- strh r0, [r1, 0x8]
-_0804FB12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FB18: .4byte 0x03004b20
- thumb_func_end sub_804F9F4
-
- thumb_func_start sub_804FB1C
-sub_804FB1C: @ 804FB1C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0804FB9C
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldr r1, _0804FBA0
- ands r0, r1
- adds r1, r3, 0
- adds r1, 0xA8
- ldrb r1, [r1]
- lsrs r2, r0, 8
- ldr r0, _0804FBA4
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r1, 0
- adds r0, 0x14
- cmp r2, r0
- bls _0804FC30
- adds r0, 0x14
- cmp r2, r0
- bcs _0804FC30
- ldr r2, _0804FBA8
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r2
- movs r6, 0x8
- ldrsh r0, [r2, r6]
- adds r6, r1, 0
- cmp r0, 0
- bne _0804FC3E
- ldr r1, _0804FBAC
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804FC1C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804FBB0
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, [r5]
- adds r0, 0x56
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _0804FBB4
- cmp r1, r0
- bgt _0804FBD0
- cmp r2, 0x58
- bls _0804FBC0
- ldr r1, _0804FBB8
- ldr r0, _0804FBBC
- strh r0, [r1, 0x16]
- b _0804FC02
- .align 2, 0
-_0804FB9C: .4byte 0x03004854
-_0804FBA0: .4byte 0x0000ffff
-_0804FBA4: .4byte gUnknown_08216303
-_0804FBA8: .4byte 0x03004b20
-_0804FBAC: .4byte 0x0000014b
-_0804FBB0: .4byte 0x0000028f
-_0804FBB4: .4byte 0x000001f3
-_0804FBB8: .4byte 0x03002a20
-_0804FBBC: .4byte 0x00004523
-_0804FBC0:
- ldr r1, _0804FBC8
- ldr r0, _0804FBCC
- strh r0, [r1, 0x16]
- b _0804FC02
- .align 2, 0
-_0804FBC8: .4byte 0x03002a20
-_0804FBCC: .4byte 0x00005432
-_0804FBD0:
- cmp r2, 0x3C
- bls _0804FBE4
- ldr r1, _0804FBDC
- ldr r0, _0804FBE0
- b _0804FBF4
- .align 2, 0
-_0804FBDC: .4byte 0x03002a20
-_0804FBE0: .4byte 0x00004523
-_0804FBE4:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0804FBF6
- ldr r1, _0804FC10
- ldr r0, _0804FC14
-_0804FBF4:
- strh r0, [r1, 0x16]
-_0804FBF6:
- cmp r2, 0x4
- bhi _0804FC02
- movs r0, 0x3
- movs r1, 0x5
- bl sub_804F890
-_0804FC02:
- ldr r0, _0804FC18
- adds r1, r6, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804FC3C
- .align 2, 0
-_0804FC10: .4byte 0x03002a20
-_0804FC14: .4byte 0x00005432
-_0804FC18: .4byte 0x03004b20
-_0804FC1C:
- ldr r0, _0804FC28
- ldr r1, _0804FC2C
- strh r1, [r0, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _0804FC3E
- .align 2, 0
-_0804FC28: .4byte 0x03002a20
-_0804FC2C: .4byte 0x00004523
-_0804FC30:
- ldr r0, _0804FC44
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804FC3C:
- strh r0, [r1, 0x8]
-_0804FC3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FC44: .4byte 0x03004b20
- thumb_func_end sub_804FB1C
-
- thumb_func_start sub_804FC48
-sub_804FC48: @ 804FC48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- mov r8, r7
- lsls r1, 24
- ldr r0, _0804FCBC
- ldr r4, _0804FCC0
- lsrs r1, 23
- adds r2, r1, r4
- ldrb r6, [r2]
- ldr r5, _0804FCC4
- adds r2, r1, r5
- movs r3, 0
- ldrsb r3, [r2, r3]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 1
- subs r6, r2
- adds r4, 0x1
- adds r4, r1, r4
- ldrb r2, [r4]
- adds r5, 0x1
- adds r1, r5
- movs r3, 0
- ldrsb r3, [r1, r3]
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 1
- subs r2, r1
- adds r1, r6, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0804FCC8
- cmp r7, r0
- bne _0804FCD4
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r5, _0804FCCC
- adds r0, r4, r5
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0804FCD0
- str r0, [r4]
- movs r0, 0x28
- bl audio_play
- b _0804FD18
- .align 2, 0
-_0804FCBC: .4byte gSpriteTemplate_821645C
-_0804FCC0: .4byte gUnknown_082162E4
-_0804FCC4: .4byte gUnknown_082162CC
-_0804FCC8: .4byte 0x00004523
-_0804FCCC: .4byte 0x02020004
-_0804FCD0: .4byte sub_8051684
-_0804FCD4:
- ldr r0, _0804FCF4
- cmp r7, r0
- bne _0804FCFC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804FCF8
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x1F
- bl audio_play
- b _0804FD18
- .align 2, 0
-_0804FCF4: .4byte 0x00005432
-_0804FCF8: .4byte 0x02020004
-_0804FCFC:
- ldr r0, _0804FD28
- cmp r8, r0
- bne _0804FD18
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r1, _0804FD2C
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x20
- bl audio_play
-_0804FD18:
- bl sub_805156C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FD28: .4byte 0x00002345
-_0804FD2C: .4byte 0x02020004
- thumb_func_end sub_804FC48
-
- thumb_func_start sub_804FD30
-sub_804FD30: @ 804FD30
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_804E290
- ldr r0, _0804FD50
- cmp r4, r0
- beq _0804FD64
- cmp r4, r0
- bgt _0804FD58
- ldr r0, _0804FD54
- cmp r4, r0
- beq _0804FE34
- b _0804FE60
- .align 2, 0
-_0804FD50: .4byte 0x00004523
-_0804FD54: .4byte 0x00002345
-_0804FD58:
- ldr r0, _0804FD60
- cmp r5, r0
- beq _0804FDFC
- b _0804FE60
- .align 2, 0
-_0804FD60: .4byte 0x00005432
-_0804FD64:
- ldr r7, _0804FD94
- ldr r4, [r7]
- adds r5, r4, 0
- adds r5, 0x56
- ldrh r6, [r5]
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldr r0, _0804FD98
- cmp r1, r0
- bgt _0804FDA0
- ldr r1, _0804FD9C
- adds r0, r4, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- bl __divsi3
- adds r0, r6, r0
- strh r0, [r5]
- b _0804FE60
- .align 2, 0
-_0804FD94: .4byte 0x03004854
-_0804FD98: .4byte 0x000005db
-_0804FD9C: .4byte gUnknown_082165DA
-_0804FDA0:
- ldr r1, _0804FDF8
- adds r0, r4, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- bl __divsi3
- adds r0, r6, r0
- strh r0, [r5]
- movs r1, 0xA2
- lsls r1, 1
- adds r4, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- subs r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8051AC8
- ldr r0, [r7]
- movs r1, 0xA3
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- subs r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8051AC8
- b _0804FE60
- .align 2, 0
-_0804FDF8: .4byte gUnknown_082165DA
-_0804FDFC:
- ldr r0, _0804FE28
- ldr r2, [r0]
- adds r4, r2, 0
- adds r4, 0x56
- ldrh r5, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, _0804FE2C
- cmp r1, r0
- bgt _0804FE60
- ldr r1, _0804FE30
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- bl __divsi3
- adds r0, r5, r0
- b _0804FE5E
- .align 2, 0
-_0804FE28: .4byte 0x03004854
-_0804FE2C: .4byte 0x000005db
-_0804FE30: .4byte gUnknown_082165DA
-_0804FE34:
- ldr r0, _0804FE68
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0x56
- ldr r1, _0804FE6C
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- bl __divsi3
- ldrh r1, [r4]
- subs r1, r0
- strh r1, [r4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- bgt _0804FE60
- movs r0, 0x80
-_0804FE5E:
- strh r0, [r4]
-_0804FE60:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FE68: .4byte 0x03004854
-_0804FE6C: .4byte gUnknown_082165DA
- thumb_func_end sub_804FD30
-
- thumb_func_start sub_804FE70
-sub_804FE70: @ 804FE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0804FF40
- ldrh r0, [r0]
- cmp r0, 0
- beq _0804FEB6
- ldr r3, _0804FF44
- ldrh r0, [r3, 0x4]
- ldr r2, _0804FF48
- cmp r0, 0
- beq _0804FE98
- movs r1, 0
- strh r0, [r2, 0x10]
- ldr r0, _0804FF4C
- strh r0, [r2]
- strh r1, [r3, 0x4]
-_0804FE98:
- ldr r0, _0804FF48
- ldr r3, _0804FF4C
- adds r1, r2, 0x2
- adds r2, r0, 0
- adds r2, 0x12
- movs r6, 0x2
-_0804FEA4:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0804FEAC
- strh r3, [r1]
-_0804FEAC:
- adds r1, 0x2
- adds r2, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _0804FEA4
-_0804FEB6:
- movs r6, 0
- ldr r7, _0804FF50
- adds r1, r7, 0
- ldr r0, [r1]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- blt _0804FEC8
- b _0805005C
-_0804FEC8:
- movs r2, 0
- str r2, [sp]
- mov r9, r2
- ldr r0, _0804FF48
- adds r0, 0x10
- mov r8, r0
- ldr r1, _0804FF54
- mov r10, r1
-_0804FED8:
- ldr r2, [sp]
- ldr r1, _0804FF48
- adds r0, r2, r1
- ldrh r1, [r0]
- ldr r0, _0804FF4C
- cmp r1, r0
- beq _0804FEE8
- b _0805003E
-_0804FEE8:
- ldr r0, [r7]
- adds r0, 0xA2
- adds r0, r2
- ldrh r5, [r0]
- mov r2, r8
- ldrh r4, [r2]
- ldr r0, _0804FF58
- cmp r4, r0
- bne _0804FF60
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0x9F
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x37
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- lsls r1, 16
- ldr r0, _0804FF5C
- cmp r1, r0
- bls _0804FF26
- movs r0, 0xFA
- lsls r0, 2
- strh r0, [r4]
-_0804FF26:
- lsls r1, r5, 24
- lsrs r1, 24
- ldr r0, _0804FF58
- bl sub_804FC48
- ldr r1, [r7]
- movs r0, 0xA6
- lsls r0, 1
- adds r1, r0
- add r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804FFCA
- .align 2, 0
-_0804FF40: .4byte 0x0202e8cc
-_0804FF44: .4byte 0x03002f90
-_0804FF48: .4byte 0x03002a20
-_0804FF4C: .4byte 0x00004444
-_0804FF50: .4byte 0x03004854
-_0804FF54: .4byte 0x00005432
-_0804FF58: .4byte 0x00004523
-_0804FF5C: .4byte 0x03e70000
-_0804FF60:
- cmp r4, r10
- bne _0804FF9E
- mov r0, r10
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0x9F
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x46
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r10
- bl sub_804FC48
- ldr r1, [r7]
- movs r0, 0xA7
- lsls r0, 1
- adds r1, r0
- add r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804FFCA
-_0804FF9E:
- ldr r0, _08050018
- cmp r4, r0
- bne _0804FFD6
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_804FC48
- adds r0, r4, 0
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 1
- adds r0, r1
- mov r2, r9
- adds r1, r0, r2
- ldrh r2, [r1]
- ldr r0, _0805001C
- cmp r2, r0
- bhi _0804FFCC
- adds r0, r2, 0x1
-_0804FFCA:
- strh r0, [r1]
-_0804FFCC:
- mov r0, r8
- ldrh r1, [r0]
- ldr r0, _08050018
- cmp r1, r0
- beq _0804FFE4
-_0804FFD6:
- mov r1, r8
- ldrh r0, [r1]
- ldr r2, _08050020
- cmp r0, r2
- beq _0804FFE4
- cmp r0, r10
- bne _0805003E
-_0804FFE4:
- ldr r0, _08050024
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0x56
- movs r0, 0
- ldrsh r1, [r2, r0]
- ldr r0, _08050028
- cmp r1, r0
- ble _08050034
- adds r0, r1, 0
- ldr r2, _0805002C
- adds r0, r2
- movs r1, 0x14
- bl __divsi3
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08050030
- bl m4aMPlayTempoControl
- b _0805003E
- .align 2, 0
-_08050018: .4byte 0x00002345
-_0805001C: .4byte 0x000003e6
-_08050020: .4byte 0x00004523
-_08050024: .4byte 0x03004854
-_08050028: .4byte 0x000005dc
-_0805002C: .4byte 0xfffffd12
-_08050030: .4byte 0x03007380
-_08050034:
- ldr r0, _08050098
- movs r1, 0x80
- lsls r1, 1
- bl m4aMPlayTempoControl
-_0805003E:
- ldr r1, [sp]
- adds r1, 0x2
- str r1, [sp]
- movs r2, 0x6
- add r9, r2
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- ldr r7, _0805009C
- ldr r0, [r7]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bge _0805005C
- b _0804FED8
-_0805005C:
- ldr r0, _080500A0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08050088
- movs r6, 0
- ldr r3, _0805009C
- ldr r0, [r3]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bge _08050088
- movs r2, 0
- ldr r1, _080500A4
-_08050076:
- strh r2, [r1]
- strh r2, [r1, 0x10]
- adds r1, 0x2
- adds r6, 0x1
- ldr r0, [r3]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- blt _08050076
-_08050088:
- 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
-_08050098: .4byte 0x03007380
-_0805009C: .4byte 0x03004854
-_080500A0: .4byte 0x0202e8cc
-_080500A4: .4byte 0x03002a20
- thumb_func_end sub_804FE70
-
- thumb_func_start sub_80500A8
-sub_80500A8: @ 80500A8
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _080500EC
- ldr r4, [r5]
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 23
- adds r4, 0xA2
- adds r4, r0
- ldrb r3, [r4]
- ldr r0, [r5]
- adds r0, 0x6F
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805018A
- ldr r0, _080500F0
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _080500FC
- ldr r2, _080500F4
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805010A
- ldrh r0, [r2, 0x28]
- ldr r1, _080500F8
- bics r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
- b _0805010A
- .align 2, 0
-_080500EC: .4byte 0x03004854
-_080500F0: .4byte 0x02024ea4
-_080500F4: .4byte 0x03001770
-_080500F8: .4byte 0x00000201
-_080500FC:
- ldr r0, _0805015C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805010A
- movs r6, 0x1
-_0805010A:
- cmp r6, 0
- beq _0805018A
- ldr r4, _08050160
- ldr r1, [r4]
- lsls r2, r3, 1
- adds r0, r1, 0
- adds r0, 0x9A
- adds r0, r2
- adds r1, 0x5C
- ldrh r0, [r0]
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08050164
- adds r0, r1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, [r4]
- adds r0, 0x54
- ldrh r4, [r0]
- bl GetMultiplayerId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl task_tutorial_oak_boy_girl
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08050170
- ldr r1, _08050168
- ldr r0, _0805016C
- b _08050188
- .align 2, 0
-_0805015C: .4byte 0x03001770
-_08050160: .4byte 0x03004854
-_08050164: .4byte 0x02020004
-_08050168: .4byte 0x03002f90
-_0805016C: .4byte 0x00004523
-_08050170:
- cmp r0, 0x1
- bne _08050184
- ldr r1, _0805017C
- ldr r0, _08050180
- b _08050188
- .align 2, 0
-_0805017C: .4byte 0x03002f90
-_08050180: .4byte 0x00005432
-_08050184:
- ldr r1, _080501E4
- ldr r0, _080501E8
-_08050188:
- strh r0, [r1, 0x4]
-_0805018A:
- ldr r2, _080501EC
- ldr r1, [r2]
- adds r1, 0x7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _080501BA
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x56
- ldrh r3, [r1]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0x80
- ble _080501B2
- subs r0, r3, 0x1
- strh r0, [r1]
-_080501B2:
- ldr r0, [r2]
- adds r0, 0x7E
- movs r1, 0
- strb r1, [r0]
-_080501BA:
- ldr r0, _080501F0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080501DE
- ldr r0, _080501F4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080501DE
- ldr r0, [r2]
- ldr r1, _080501F8
- adds r2, r0, r1
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2]
-_080501DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080501E4: .4byte 0x03002f90
-_080501E8: .4byte 0x00002345
-_080501EC: .4byte 0x03004854
-_080501F0: .4byte 0x020297ed
-_080501F4: .4byte 0x03001770
-_080501F8: .4byte 0x0000014b
- thumb_func_end sub_80500A8
-
- thumb_func_start sub_80501FC
-sub_80501FC: @ 80501FC
- push {r4-r6,lr}
- bl sub_8051474
- ldr r4, _08050294
- ldr r0, [r4]
- movs r1, 0x96
- lsls r1, 1
- adds r2, r0, r1
- ldr r1, [r2]
- ldr r0, _08050298
- cmp r1, r0
- bhi _08050218
- adds r0, r1, 0x1
- str r0, [r2]
-_08050218:
- bl sub_80500A8
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- movs r5, 0x9F
- lsls r5, 1
- adds r1, r5
- ldrh r1, [r1]
- bl SetLinkDebugValues
- bl sub_804FE70
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- movs r6, 0xFA
- lsls r6, 2
- adds r1, r6, 0
- bl sub_805194C
- ldr r0, [r4]
- adds r0, 0x56
- ldrh r0, [r0]
- bl sub_8051A3C
- bl sub_8051B18
- bl sub_805123C
- ldr r2, [r4]
- adds r3, r2, 0
- adds r3, 0x6F
- ldrb r0, [r3]
- cmp r0, 0
- bne _0805027E
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r2, r1
- ldrh r1, [r0]
- ldr r0, _0805029C
- cmp r1, r0
- bls _0805027E
- adds r0, r2, r5
- strh r6, [r0]
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, _080502A0
- bl SetMainCallback2
-_0805027E:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08050294: .4byte 0x03004854
-_08050298: .4byte 0x00057e03
-_0805029C: .4byte 0x000003e7
-_080502A0: .4byte sub_8050954
- thumb_func_end sub_80501FC
-
- thumb_func_start help_system_is_not_first_time
-help_system_is_not_first_time: @ 80502A4
- push {r4,r5,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r1, 20
- adds r4, r1, r0
- lsrs r2, 20
- adds r5, r2, r0
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080502E2
- adds r0, r4, 0x2
- adds r1, r5, 0x2
- bl StringCompare
- cmp r0, 0
- bne _080502F0
- ldr r0, [r4, 0x8]
- ldr r2, _080502E8
- ands r0, r2
- ldr r1, [r5, 0x8]
- ands r1, r2
- cmp r0, r1
- bne _080502F0
- ldr r0, [r4, 0xC]
- ldr r2, _080502EC
- ands r0, r2
- ldr r1, [r5, 0xC]
- ands r1, r2
- cmp r0, r1
- bne _080502F0
-_080502E2:
- movs r0, 0x1
- b _080502F2
- .align 2, 0
-_080502E8: .4byte 0xffffff00
-_080502EC: .4byte 0x00ffffff
-_080502F0:
- movs r0, 0
-_080502F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end help_system_is_not_first_time
-
- thumb_func_start sub_80502F8
-sub_80502F8: @ 80502F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- mov r2, sp
- movs r4, 0x5
-_08050314:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08050314
- movs r6, 0
- mov r1, sp
- movs r4, 0x4
-_08050328:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08050332
- adds r6, 0x1
-_08050332:
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08050328
- cmp r6, 0x5
- beq _08050386
- cmp r3, 0x3
- bhi _08050386
- movs r4, 0
- ldr r3, [sp, 0x10]
- cmp r4, r3
- bge _0805039E
- mov r3, r10
-_0805034C:
- movs r6, 0
- ldr r7, [sp, 0x10]
- cmp r6, r7
- bge _08050394
- mov r9, r3
- mov r5, r10
- lsls r0, r4, 24
- mov r8, r0
-_0805035C:
- mov r1, r9
- ldrh r0, [r1]
- ldrh r2, [r5]
- cmp r0, r2
- bne _0805038A
- cmp r4, r6
- beq _0805038A
- cmp r0, 0xAF
- bne _08050386
- lsls r2, r6, 24
- lsrs r2, 24
- mov r0, r10
- mov r7, r8
- lsrs r1, r7, 24
- str r3, [sp, 0xC]
- bl help_system_is_not_first_time
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _0805038A
-_08050386:
- movs r0, 0xC
- b _080504DE
-_0805038A:
- adds r5, 0x10
- adds r6, 0x1
- ldr r0, [sp, 0x10]
- cmp r6, r0
- blt _0805035C
-_08050394:
- adds r3, 0x10
- adds r4, 0x1
- ldr r1, [sp, 0x10]
- cmp r4, r1
- blt _0805034C
-_0805039E:
- movs r2, 0
- mov r1, sp
- movs r4, 0x4
-_080503A4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080503B2
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080503B2:
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080503A4
- cmp r2, 0x3
- bls _080503C2
- movs r0, 0xD
- b _080504DE
-_080503C2:
- cmp r2, 0x3
- bne _080503CA
- movs r0, 0xB
- b _080504DE
-_080503CA:
- movs r4, 0
- mov r1, sp
-_080503CE:
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, 0x32
- ble _080503D8
- b _080504D8
-_080503D8:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x4
- ble _080503CE
- cmp r2, 0x1
- bne _0805042A
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _080503F2
- movs r0, 0x1
- b _080504DE
-_080503F2:
- mov r0, sp
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- ble _08050400
- movs r0, 0x2
- b _080504DE
-_08050400:
- mov r0, sp
- movs r3, 0x4
- ldrsh r0, [r0, r3]
- cmp r0, 0
- ble _0805040E
- movs r0, 0x3
- b _080504DE
-_0805040E:
- mov r0, sp
- movs r4, 0x6
- ldrsh r0, [r0, r4]
- cmp r0, 0
- ble _0805041C
- movs r0, 0x4
- b _080504DE
-_0805041C:
- mov r0, sp
- movs r7, 0x8
- ldrsh r0, [r0, r7]
- cmp r0, 0
- ble _0805042A
- movs r0, 0x5
- b _080504DE
-_0805042A:
- cmp r2, 0x2
- bne _080504DC
- movs r4, 0
- ldr r5, _08050474
- mov r1, sp
- adds r2, r5, 0
-_08050436:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08050442
- strh r4, [r2]
- adds r2, 0x2
-_08050442:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x4
- ble _08050436
- movs r4, 0
- ldrsh r3, [r5, r4]
- lsls r0, r3, 1
- mov r7, sp
- adds r1, r7, r0
- movs r0, 0x2
- ldrsh r2, [r5, r0]
- lsls r0, r2, 1
- add r0, sp
- movs r4, 0
- ldrsh r1, [r1, r4]
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r1, r0
- blt _08050498
- adds r0, r3, 0
- cmp r0, 0
- bne _08050478
- lsls r0, r2, 16
- b _080504A2
- .align 2, 0
-_08050474: .4byte 0x03000520
-_08050478:
- cmp r0, 0x1
- bne _08050480
- lsls r0, r2, 16
- b _080504AE
-_08050480:
- cmp r0, 0x2
- bne _08050488
- lsls r0, r2, 16
- b _080504BA
-_08050488:
- cmp r0, 0x3
- bne _08050490
- lsls r0, r2, 16
- b _080504C6
-_08050490:
- cmp r0, 0x4
- bne _080504DC
- lsls r0, r2, 16
- b _080504D2
-_08050498:
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080504A8
- lsls r0, r3, 16
-_080504A2:
- movs r1, 0x6
- orrs r0, r1
- b _080504DE
-_080504A8:
- cmp r0, 0x1
- bne _080504B4
- lsls r0, r3, 16
-_080504AE:
- movs r1, 0x7
- orrs r0, r1
- b _080504DE
-_080504B4:
- cmp r0, 0x2
- bne _080504C0
- lsls r0, r3, 16
-_080504BA:
- movs r1, 0x8
- orrs r0, r1
- b _080504DE
-_080504C0:
- cmp r0, 0x3
- bne _080504CC
- lsls r0, r3, 16
-_080504C6:
- movs r1, 0x9
- orrs r0, r1
- b _080504DE
-_080504CC:
- cmp r0, 0x4
- bne _080504DC
- lsls r0, r3, 16
-_080504D2:
- movs r1, 0xA
- orrs r0, r1
- b _080504DE
-_080504D8:
- movs r0, 0xE
- b _080504DE
-_080504DC:
- movs r0, 0
-_080504DE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80502F8
-
- thumb_func_start sub_80504F0
-sub_80504F0: @ 80504F0
- ldr r1, _080504F8
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080504F8: .4byte 0x0300052c
- thumb_func_end sub_80504F0
-
- thumb_func_start unref_sub_80504FC
-unref_sub_80504FC: @ 80504FC
- ldr r0, _08050504
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08050504: .4byte 0x0300052c
- thumb_func_end unref_sub_80504FC
-
- thumb_func_start sub_8050508
-sub_8050508: @ 8050508
- ldr r1, _08050510
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08050510: .4byte 0x0300052e
- thumb_func_end sub_8050508
-
- thumb_func_start unref_sub_8050514
-unref_sub_8050514: @ 8050514
- ldr r0, _0805051C
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0805051C: .4byte 0x0300052e
- thumb_func_end unref_sub_8050514
-
- thumb_func_start sub_8050520
-sub_8050520: @ 8050520
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp]
- mov r8, r1
- str r3, [sp, 0x4]
- ldr r0, [sp, 0x30]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r7, _080505DC
- adds r2, r7, 0
- movs r1, 0
- adds r0, r7, 0
- adds r0, 0xA
-_0805054A:
- strh r1, [r0]
- subs r0, 0x2
- cmp r0, r2
- bge _0805054A
- movs r6, 0
- cmp r6, r9
- bge _08050580
- ldr r0, _080505DC
- mov r12, r0
- ldr r5, [sp]
- adds r5, 0x9
-_08050560:
- movs r3, 0
- adds r4, r5, 0
- mov r2, r12
-_08050566:
- adds r1, r4, r3
- ldrh r0, [r2]
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x5
- ble _08050566
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r9
- blt _08050560
-_08050580:
- movs r1, 0
- ldrsh r3, [r7, r1]
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- subs r0, r1
- strh r0, [r7]
- ldrh r0, [r7, 0x4]
- subs r1, r0
- strh r1, [r7, 0x2]
- ldrh r1, [r7, 0x6]
- subs r0, r1
- strh r0, [r7, 0x4]
- ldrh r0, [r7, 0x8]
- subs r1, r0
- strh r1, [r7, 0x6]
- subs r0, r3
- strh r0, [r7, 0x8]
- movs r3, 0
- movs r2, 0
- adds r1, r7, 0
- movs r6, 0x4
-_080505AA:
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bge _080505B6
- strh r2, [r1]
- adds r3, 0x1
-_080505B6:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505AA
- lsls r0, r3, 24
- lsrs r0, 24
- mov r10, r0
- movs r4, 0
- ldr r1, _080505DC
- movs r6, 0x4
-_080505CA:
- ldrh r2, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0
- ble _080505E4
- cmp r0, r3
- bge _080505E0
- strh r4, [r1]
- b _080505E4
- .align 2, 0
-_080505DC: .4byte 0x03000510
-_080505E0:
- subs r0, r2, r3
- strh r0, [r1]
-_080505E4:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505CA
- ldr r1, _080506C4
- ldr r2, _080506C8
- movs r6, 0x4
-_080505F2:
- movs r3, 0
- ldrsh r0, [r1, r3]
- stm r2!, {r0}
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505F2
- ldr r1, _080506CC
- ldr r0, [sp, 0x8]
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- adds r3, 0x64
- ldr r4, _080506D0
- str r3, [r4]
- movs r6, 0x4
-_08050616:
- movs r0, 0
- ldrsh r5, [r7, r0]
- adds r0, r5, 0
- muls r0, r3
- movs r1, 0xA
- str r3, [sp, 0xC]
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0xA
- bl __modsi3
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- ldr r3, [sp, 0xC]
- cmp r4, 0x4
- ble _08050642
- adds r5, 0x1
-_08050642:
- strh r5, [r7]
- adds r7, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08050616
- ldr r1, _080506C4
- ldr r2, _080506D4
- movs r6, 0x4
-_08050652:
- movs r3, 0
- ldrsh r0, [r1, r3]
- stm r2!, {r0}
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08050652
- ldr r4, _080506C4
- ldr r0, [sp]
- adds r1, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_80502F8
- mov r5, r8
- strb r0, [r5]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- mov r1, r9
- bl __divsi3
- mov r3, r9
- subs r0, r3
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0805068C
- movs r0, 0
- strh r0, [r4, 0xA]
-_0805068C:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0xC
- bne _080506E6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r6, 0
- ldr r0, _080506D8
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0
- movs r4, 0x1
- movs r3, 0x2
-_080506B4:
- adds r2, r0, 0
- asrs r2, r6
- ands r2, r4
- cmp r2, 0
- beq _080506DC
- strh r3, [r1]
- b _080506DE
- .align 2, 0
-_080506C4: .4byte 0x03000510
-_080506C8: .4byte 0x03000530
-_080506CC: .4byte 0x0000014d
-_080506D0: .4byte 0x0300055c
-_080506D4: .4byte 0x03000548
-_080506D8: .4byte gUnknown_082165DF
-_080506DC:
- strh r2, [r1]
-_080506DE:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _080506B4
-_080506E6:
- ldr r7, _08050740
- movs r2, 0xFF
- adds r1, r7, 0
- movs r6, 0x5
-_080506EE:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0xFF
- ble _080506F8
- strh r2, [r1]
-_080506F8:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080506EE
- ldrh r0, [r7]
- mov r4, r8
- strb r0, [r4, 0x1]
- ldrh r0, [r7, 0x2]
- strb r0, [r4, 0x2]
- ldrh r0, [r7, 0x4]
- strb r0, [r4, 0x3]
- ldrh r0, [r7, 0x6]
- strb r0, [r4, 0x4]
- ldrh r0, [r7, 0x8]
- strb r0, [r4, 0x5]
- ldrh r0, [r7, 0xA]
- strb r0, [r4, 0x6]
- movs r6, 0
- adds r2, r7, 0
-_0805071E:
- ldr r5, [sp, 0x4]
- adds r1, r5, r6
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x5
- ble _0805071E
- 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
-_08050740: .4byte 0x03000510
- thumb_func_end sub_8050520
-
- thumb_func_start sub_8050744
-sub_8050744: @ 8050744
- push {r4,lr}
- sub sp, 0x4
- ldr r4, [sp, 0xC]
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp]
- bl sub_8050520
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8050744
-
- thumb_func_start sub_8050760
-sub_8050760: @ 8050760
- push {r4-r6,lr}
- ldr r0, _08050780
- ldr r0, [r0]
- movs r2, 0x96
- lsls r2, 1
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r0, 0x5A
- ldrh r4, [r0]
- movs r2, 0
- ldr r5, _08050784
- cmp r1, r5
- bhi _08050788
- movs r2, 0x5
- b _080507DA
- .align 2, 0
-_08050780: .4byte 0x03004854
-_08050784: .4byte 0x00000383
-_08050788:
- ldr r3, _0805079C
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080507A0
- cmp r0, r3
- bhi _080507A4
- movs r2, 0x4
- b _080507DA
- .align 2, 0
-_0805079C: .4byte 0xfffffc7c
-_080507A0: .4byte 0x00000257
-_080507A4:
- ldr r6, _080507B4
- adds r0, r1, r6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r3
- bhi _080507B8
- movs r2, 0x3
- b _080507DA
- .align 2, 0
-_080507B4: .4byte 0xfffffa24
-_080507B8:
- ldr r3, _080507C8
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bhi _080507CC
- movs r2, 0x2
- b _080507DA
- .align 2, 0
-_080507C8: .4byte 0xfffff7cc
-_080507CC:
- ldr r6, _080507F8
- adds r0, r1, r6
- lsls r0, 16
- ldr r1, _080507FC
- cmp r0, r1
- bhi _080507DA
- movs r2, 0x1
-_080507DA:
- lsls r0, r2, 16
- asrs r0, 16
- bl sub_8050508
- movs r2, 0
- cmp r4, 0x40
- bhi _080508BC
- adds r0, r4, 0
- subs r0, 0x32
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050804
- ldr r2, _08050800
- b _080508BC
- .align 2, 0
-_080507F8: .4byte 0xfffff31c
-_080507FC: .4byte 0x012b0000
-_08050800: .4byte 0x0000ffff
-_08050804:
- adds r0, r4, 0
- subs r0, 0x64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050818
- ldr r2, _08050814
- b _080508BC
- .align 2, 0
-_08050814: .4byte 0x0000fffe
-_08050818:
- adds r0, r4, 0
- subs r0, 0x96
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805082C
- ldr r2, _08050828
- b _080508BC
- .align 2, 0
-_08050828: .4byte 0x0000fffd
-_0805082C:
- adds r0, r4, 0
- subs r0, 0xC8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050840
- ldr r2, _0805083C
- b _080508BC
- .align 2, 0
-_0805083C: .4byte 0x0000fffc
-_08050840:
- adds r0, r4, 0
- subs r0, 0xFA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050854
- ldr r2, _08050850
- b _080508BC
- .align 2, 0
-_08050850: .4byte 0x0000fffb
-_08050854:
- ldr r1, _08050864
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805086C
- ldr r2, _08050868
- b _080508BC
- .align 2, 0
-_08050864: .4byte 0xfffffea2
-_08050868: .4byte 0x0000fffa
-_0805086C:
- ldr r3, _0805087C
- adds r0, r4, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050884
- ldr r2, _08050880
- b _080508BC
- .align 2, 0
-_0805087C: .4byte 0xfffffe70
-_08050880: .4byte 0x0000fff9
-_08050884:
- ldr r6, _08050894
- adds r0, r4, r6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805089C
- ldr r2, _08050898
- b _080508BC
- .align 2, 0
-_08050894: .4byte 0xfffffe0c
-_08050898: .4byte 0x0000fff8
-_0805089C:
- ldr r1, _080508AC
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _080508B4
- ldr r2, _080508B0
- b _080508BC
- .align 2, 0
-_080508AC: .4byte 0xfffffdda
-_080508B0: .4byte 0x0000fff7
-_080508B4:
- ldr r0, _080508CC
- cmp r4, r0
- bls _080508BC
- ldr r2, _080508D0
-_080508BC:
- lsls r0, r2, 16
- asrs r0, 16
- bl sub_80504F0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080508CC: .4byte 0x00000257
-_080508D0: .4byte 0x0000fff6
- thumb_func_end sub_8050760
-
- thumb_func_start sub_80508D4
-sub_80508D4: @ 80508D4
- push {lr}
- ldr r2, _080508F8
- ldr r1, [r2]
- adds r1, 0xAA
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0xAA
- ldrb r1, [r0]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC0
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_080508F8: .4byte 0x03004854
- thumb_func_end sub_80508D4
-
- thumb_func_start sub_80508FC
-sub_80508FC: @ 80508FC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08050944
- ldr r0, [r4]
- adds r0, 0xAA
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl DrawDefaultWindow
- ldr r1, _08050948
- ldr r3, _0805094C
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- ldr r0, _08050950
- movs r1, 0x18
- movs r2, 0x9
- bl Print
- ldr r0, [r4]
- adds r0, 0xAA
- ldrb r0, [r0]
- bl sub_80508D4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08050944: .4byte 0x03004854
-_08050948: .4byte 0x0000ffff
-_0805094C: .4byte 0x00002d9f
-_08050950: .4byte gUnknown_0842D2C5
- thumb_func_end sub_80508FC
-
- thumb_func_start sub_8050954
-sub_8050954: @ 8050954
- push {r4-r7,lr}
- bl sub_8051474
- bl GetMultiplayerId
- ldr r0, _08050978
- ldr r0, [r0]
- adds r0, 0x6F
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0xC
- bls _0805096E
- b _08050CB6
-_0805096E:
- lsls r0, 2
- ldr r1, _0805097C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050978: .4byte 0x03004854
-_0805097C: .4byte _08050980
- .align 2, 0
-_08050980:
- .4byte _080509B4
- .4byte _080509F8
- .4byte _08050A4C
- .4byte _08050A94
- .4byte _08050AD0
- .4byte _08050ADE
- .4byte _08050B08
- .4byte _08050B34
- .4byte _08050B42
- .4byte _08050B58
- .4byte _08050BE0
- .4byte _08050C64
- .4byte _08050C98
-_080509B4:
- bl ClearLinkCallback
- ldr r0, _080509C8
- movs r1, 0x80
- lsls r1, 1
- bl m4aMPlayTempoControl
- movs r4, 0
- b _080509E4
- .align 2, 0
-_080509C8: .4byte 0x03007380
-_080509CC:
- ldr r0, _080509F0
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080509E4:
- ldr r0, _080509F4
- ldrh r0, [r0]
- cmp r4, r0
- bcc _080509CC
- b _08050C82
- .align 2, 0
-_080509F0: .4byte 0x03004854
-_080509F4: .4byte 0x0202e8cc
-_080509F8:
- ldr r1, _08050A24
- ldr r3, [r1]
- adds r2, r3, 0
- adds r2, 0x56
- ldrh r0, [r2]
- subs r0, 0x20
- strh r0, [r2]
- lsls r0, 16
- adds r4, r1, 0
- cmp r0, 0
- bgt _08050A40
- movs r0, 0
- strh r0, [r2]
- ldr r0, _08050A28
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050A2C
- adds r1, r3, 0
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- b _08050A32
- .align 2, 0
-_08050A24: .4byte 0x03004854
-_08050A28: .4byte 0x03002fa4
-_08050A2C:
- adds r1, r3, 0
- adds r1, 0x6F
- movs r0, 0x5
-_08050A32:
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08050A48
- bl m4aMPlayStop
-_08050A40:
- bl sub_804E290
- b _08050CB6
- .align 2, 0
-_08050A48: .4byte 0x03007400
-_08050A4C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _08050A58
- b _08050C82
-_08050A58:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _08050A64
- b _08050CB6
-_08050A64:
- ldr r4, _08050A90
- ldr r3, [r4]
- movs r2, 0xDE
- lsls r2, 1
- adds r1, r3, r2
- movs r5, 0x96
- lsls r5, 1
- adds r0, r3, r5
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0x5A
- ldrh r2, [r0]
- adds r5, 0x94
- adds r0, r3, r5
- strh r2, [r0]
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- ldr r1, [r4]
- b _08050C86
- .align 2, 0
-_08050A90: .4byte 0x03004854
-_08050A94:
- bl GetBlockRecievedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08050AA0
- b _08050CB6
-_08050AA0:
- ldr r2, _08050AC8
- ldr r0, _08050ACC
- ldr r3, [r0]
- ldrh r0, [r2, 0x4]
- adds r1, r3, 0
- adds r1, 0x5A
- strh r0, [r1]
- movs r0, 0x96
- lsls r0, 1
- adds r1, r3, r0
- ldr r0, [r2]
- str r0, [r1]
- adds r1, r3, 0
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl ResetBlockReceivedFlags
- b _08050CB6
- .align 2, 0
-_08050AC8: .4byte 0x03002b80
-_08050ACC: .4byte 0x03004854
-_08050AD0:
- bl sub_8052228
- lsls r0, 24
- cmp r0, 0
- bne _08050ADC
- b _08050CB6
-_08050ADC:
- b _08050C82
-_08050ADE:
- bl sub_8051C58
- lsls r0, 24
- cmp r0, 0
- bne _08050AEA
- b _08050CB6
-_08050AEA:
- ldr r0, _08050AFC
- ldrb r0, [r0]
- cmp r0, 0
- bne _08050B00
- movs r0, 0x22
- bl sav12_xor_increment
- b _08050C82
- .align 2, 0
-_08050AFC: .4byte 0x03004834
-_08050B00:
- movs r0, 0x21
- bl sav12_xor_increment
- b _08050C82
-_08050B08:
- ldr r0, _08050B2C
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08050B30
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- b _08050CB6
- .align 2, 0
-_08050B2C: .4byte 0x03004854
-_08050B30: .4byte gUnknown_0842D3B5
-_08050B34:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- bne _08050B40
- b _08050CB6
-_08050B40:
- b _08050C82
-_08050B42:
- ldr r4, _08050B54
- ldr r0, [r4]
- adds r0, 0xAA
- movs r1, 0
- strb r1, [r0]
- bl sub_80508FC
- ldr r1, [r4]
- b _08050C86
- .align 2, 0
-_08050B54: .4byte 0x03004854
-_08050B58:
- ldr r0, _08050B80
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08050B88
- ldr r0, _08050B84
- ldr r0, [r0]
- adds r0, 0xAA
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050B76
- movs r0, 0x5
- bl audio_play
-_08050B76:
- movs r0, 0
- bl sub_80508D4
- b _08050CB6
- .align 2, 0
-_08050B80: .4byte 0x03001770
-_08050B84: .4byte 0x03004854
-_08050B88:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08050BA8
- ldr r0, _08050BA4
- ldr r0, [r0]
- adds r0, 0xAA
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08050BD4
- movs r0, 0x5
- bl audio_play
- b _08050BD4
- .align 2, 0
-_08050BA4: .4byte 0x03004854
-_08050BA8:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08050BB8
- movs r0, 0x5
- bl audio_play
- b _08050C82
-_08050BB8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08050BC2
- b _08050CB6
-_08050BC2:
- movs r0, 0x5
- bl audio_play
- ldr r0, _08050BDC
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08050BD4:
- movs r0, 0x1
- bl sub_80508D4
- b _08050CB6
- .align 2, 0
-_08050BDC: .4byte 0x03004854
-_08050BE0:
- ldr r6, _08050C10
- movs r7, 0
- ldr r0, _08050C14
- strh r0, [r6]
- ldr r4, _08050C18
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xAA
- ldrb r5, [r0]
- cmp r5, 0
- bne _08050C50
- movs r0, 0x4
- bl IsBagPocketNonEmpty
- lsls r0, 24
- cmp r0, 0
- bne _08050C20
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x2
- strh r1, [r0]
- ldr r0, _08050C1C
- b _08050C48
- .align 2, 0
-_08050C10: .4byte 0x03002f90
-_08050C14: .4byte 0x00002fff
-_08050C18: .4byte 0x03004854
-_08050C1C: .4byte 0x00009999
-_08050C20:
- bl sub_810CA00
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08050C40
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _08050C3C
- b _08050C48
- .align 2, 0
-_08050C3C: .4byte 0x0000aaaa
-_08050C40:
- ldr r0, [r4]
- adds r0, 0x7C
- strh r5, [r0]
- ldr r0, _08050C4C
-_08050C48:
- strh r0, [r6, 0x2]
- b _08050C82
- .align 2, 0
-_08050C4C: .4byte 0x00007779
-_08050C50:
- adds r1, r2, 0
- adds r1, 0x7C
- movs r0, 0x1
- strh r0, [r1]
- ldr r0, _08050C60
- strh r0, [r6, 0x2]
- subs r1, 0xD
- b _08050C88
- .align 2, 0
-_08050C60: .4byte 0x00008888
-_08050C64:
- ldr r0, _08050C70
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050C78
- ldr r0, _08050C74
- b _08050CA4
- .align 2, 0
-_08050C70: .4byte 0x03004834
-_08050C74: .4byte sub_80510E8
-_08050C78:
- ldr r0, _08050C90
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
-_08050C82:
- ldr r0, _08050C94
- ldr r1, [r0]
-_08050C86:
- adds r1, 0x6F
-_08050C88:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08050CB6
- .align 2, 0
-_08050C90: .4byte gUnknown_0842D3A5
-_08050C94: .4byte 0x03004854
-_08050C98:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _08050CB6
- ldr r0, _08050CE0
-_08050CA4:
- bl SetMainCallback2
- ldr r2, _08050CE4
- ldr r0, [r2]
- adds r0, 0x6F
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0]
-_08050CB6:
- bl sub_8051B18
- ldr r0, _08050CE4
- ldr r0, [r0]
- adds r0, 0x56
- ldrh r0, [r0]
- bl sub_8051A3C
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08050CE0: .4byte sub_8050E30
-_08050CE4: .4byte 0x03004854
- thumb_func_end sub_8050954
-
- thumb_func_start sub_8050CE8
-sub_8050CE8: @ 8050CE8
- push {r4,lr}
- ldr r1, _08050D08
- ldr r0, [r1]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _08050CFE
- b _08050E28
-_08050CFE:
- lsls r0, 2
- ldr r1, _08050D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050D08: .4byte 0x03004854
-_08050D0C: .4byte _08050D10
- .align 2, 0
-_08050D10:
- .4byte _08050D2C
- .4byte _08050D44
- .4byte _08050D70
- .4byte _08050D80
- .4byte _08050DA6
- .4byte _08050DEC
- .4byte _08050E06
-_08050D2C:
- bl sub_80084A4
- ldr r0, _08050D40
- ldr r2, [r0]
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x1
- b _08050DF8
- .align 2, 0
-_08050D40: .4byte 0x03004854
-_08050D44:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08050E28
- ldr r0, _08050D68
- ldr r1, [r0]
- movs r2, 0xE2
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08050D6C
- movs r0, 0x1
- strb r0, [r1]
- b _08050E28
- .align 2, 0
-_08050D68: .4byte 0x03004854
-_08050D6C: .4byte 0x03001bb4
-_08050D70:
- bl sub_8125E2C
- ldr r0, _08050D7C
- ldr r2, [r0]
- b _08050DEE
- .align 2, 0
-_08050D7C: .4byte 0x03004854
-_08050D80:
- ldr r1, [r4]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xA
- bne _08050E28
- bl sub_80084A4
- ldr r1, [r4]
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _08050E28
-_08050DA6:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08050E28
- bl sub_8125E6C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08050DD0
- ldr r0, _08050DCC
- ldr r0, [r0]
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x5
- str r1, [r0]
- b _08050E28
- .align 2, 0
-_08050DCC: .4byte 0x03004854
-_08050DD0:
- ldr r0, _08050DE8
- ldr r1, [r0]
- movs r3, 0x98
- lsls r3, 1
- adds r0, r1, r3
- str r2, [r0]
- movs r0, 0xE2
- lsls r0, 1
- adds r1, r0
- movs r0, 0x3
- str r0, [r1]
- b _08050E28
- .align 2, 0
-_08050DE8: .4byte 0x03004854
-_08050DEC:
- ldr r2, [r4]
-_08050DEE:
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r2, r3
- ldr r0, [r1]
- adds r0, 0x1
-_08050DF8:
- str r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- str r0, [r1]
- b _08050E28
-_08050E06:
- ldr r1, [r4]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x5
- ble _08050E28
- ldr r1, _08050E24
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- b _08050E2A
- .align 2, 0
-_08050E24: .4byte 0x03001bb4
-_08050E28:
- movs r0, 0
-_08050E2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8050CE8
-
- thumb_func_start sub_8050E30
-sub_8050E30: @ 8050E30
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _08050E50
- ldr r0, [r1]
- adds r0, 0x6F
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xC
- bls _08050E44
- b _080510C4
-_08050E44:
- lsls r0, 2
- ldr r1, _08050E54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050E50: .4byte 0x03004854
-_08050E54: .4byte _08050E58
- .align 2, 0
-_08050E58:
- .4byte _08050E8C
- .4byte _08050ED8
- .4byte _08050F18
- .4byte _08050F6C
- .4byte _08050F8C
- .4byte _08050FAA
- .4byte _08050FD4
- .4byte _08051004
- .4byte _08051020
- .4byte _08051030
- .4byte _08051054
- .4byte _08051094
- .4byte _080510B6
-_08050E8C:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r2, [r0]
- ldr r0, _08050EB8
- cmp r2, r0
- bne _08050E9C
- b _08050FA2
-_08050E9C:
- ldr r0, _08050EBC
- cmp r2, r0
- beq _08050EA4
- b _080510C4
-_08050EA4:
- adds r0, r1, 0
- adds r0, 0x78
- ldrh r2, [r0]
- ldr r0, _08050EC0
- cmp r2, r0
- bne _08050EC4
- adds r1, 0x6F
- movs r0, 0x2
- strb r0, [r1]
- b _080510C4
- .align 2, 0
-_08050EB8: .4byte 0x00002222
-_08050EBC: .4byte 0x00001111
-_08050EC0: .4byte 0x00009999
-_08050EC4:
- ldr r0, _08050ED4
- cmp r2, r0
- bne _08050FA2
- adds r1, 0x6F
- movs r0, 0x1
- strb r0, [r1]
- b _080510C4
- .align 2, 0
-_08050ED4: .4byte 0x0000aaaa
-_08050ED8:
- ldr r0, [r5]
- adds r0, 0x6F
- movs r1, 0x3
- strb r1, [r0]
- bl sub_814A7FC
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl Reset
- ldr r4, _08050F0C
- ldr r0, [r5]
- adds r0, 0x7A
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _08050F10
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08050F14
- b _08050F4C
- .align 2, 0
-_08050F0C: .4byte 0x020234cc
-_08050F10: .4byte 0x03002978
-_08050F14: .4byte gUnknown_0842D461
-_08050F18:
- ldr r1, [r5]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_814A7FC
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl Reset
- ldr r4, _08050F60
- ldr r0, [r5]
- adds r0, 0x7A
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _08050F64
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08050F68
-_08050F4C:
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- b _080510C4
- .align 2, 0
-_08050F60: .4byte 0x020234cc
-_08050F64: .4byte 0x03002978
-_08050F68: .4byte gUnknown_0842D434
-_08050F6C:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- bne _08050F78
- b _080510C4
-_08050F78:
- ldr r0, _08050F88
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _080510AC
- .align 2, 0
-_08050F88: .4byte 0x03004854
-_08050F8C:
- ldr r2, [r5]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _08050FA0
- b _080510C4
-_08050FA0:
- adds r1, r2, 0
-_08050FA2:
- adds r1, 0x6F
- movs r0, 0x5
- strb r0, [r1]
- b _080510C4
-_08050FAA:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08050FCC
- movs r1, 0x2
- movs r2, 0xF
- bl Print
- bl sub_80084A4
- ldr r0, _08050FD0
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_08050FCC: .4byte gUnknown_0842C328
-_08050FD0: .4byte 0x03004854
-_08050FD4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- ldr r3, _08051000
- ldr r1, [r3]
- movs r2, 0x98
- lsls r2, 1
- adds r0, r1, r2
- movs r2, 0
- str r2, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r1
- str r2, [r0]
- b _080510C4
- .align 2, 0
-_08051000: .4byte 0x03004854
-_08051004:
- bl sub_8050CE8
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- movs r0, 0x37
- bl audio_play
- ldr r0, _0805101C
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_0805101C: .4byte 0x03004854
-_08051020:
- ldr r1, [r5]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_80084A4
- b _080510C4
-_08051030:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08051050
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_08051050: .4byte 0x03004854
-_08051054:
- ldr r0, _0805107C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080510C4
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x70
- ldrh r1, [r0]
- ldr r0, _08051080
- cmp r1, r0
- bne _08051088
- ldr r0, _08051084
- bl SetMainCallback2
- b _080510C4
- .align 2, 0
-_0805107C: .4byte 0x0202f388
-_08051080: .4byte 0x00002222
-_08051084: .4byte sub_804E538
-_08051088:
- movs r1, 0x98
- lsls r1, 1
- adds r0, r2, r1
- str r3, [r0]
- adds r1, r2, 0
- b _080510AC
-_08051094:
- ldr r1, [r5]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x1E
- ble _080510C4
- bl sub_800832C
- ldr r1, [r5]
-_080510AC:
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080510C4
-_080510B6:
- ldr r0, _080510E0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080510C4
- ldr r0, _080510E4
- bl SetMainCallback2
-_080510C4:
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080510E0: .4byte 0x03002fa4
-_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8050E30
-
- thumb_func_start sub_80510E8
-sub_80510E8: @ 80510E8
- push {lr}
- ldr r1, _08051104
- ldr r0, [r1]
- adds r0, 0x6F
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xA
- bls _080510FA
- b _0805121E
-_080510FA:
- lsls r0, 2
- ldr r1, _08051108
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08051104: .4byte 0x03004854
-_08051108: .4byte _0805110C
- .align 2, 0
-_0805110C:
- .4byte _08051138
- .4byte _0805116E
- .4byte _08051190
- .4byte _080511BC
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _080511D8
- .4byte _080511F0
-_08051138:
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _0805114A
- adds r1, 0x6F
- movs r0, 0x9
- strb r0, [r1]
-_0805114A:
- ldr r2, [r3]
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r1, [r0]
- cmp r1, 0x2
- bne _0805115A
- subs r0, 0xD
- strb r1, [r0]
-_0805115A:
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _0805121E
- adds r1, 0x6F
- movs r0, 0x1
- strb r0, [r1]
- b _0805121E
-_0805116E:
- ldr r0, [r3]
- adds r0, 0x6F
- movs r1, 0x3
- strb r1, [r0]
- bl sub_814A7FC
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl Reset
- ldr r0, _0805118C
- b _080511AC
- .align 2, 0
-_0805118C: .4byte gUnknown_0842D41A
-_08051190:
- ldr r0, [r3]
- adds r0, 0x6F
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- bl sub_814A7FC
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl Reset
- ldr r0, _080511B8
-_080511AC:
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- b _0805121E
- .align 2, 0
-_080511B8: .4byte gUnknown_0842D3DC
-_080511BC:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _0805121E
- ldr r0, _080511D4
- ldr r0, [r0]
- adds r0, 0x6F
- movs r1, 0x9
- strb r1, [r0]
- b _0805121E
- .align 2, 0
-_080511D4: .4byte 0x03004854
-_080511D8:
- movs r0, 0x3
- bl BeginFastPaletteFade
- ldr r0, _080511EC
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0805121E
- .align 2, 0
-_080511EC: .4byte 0x03004854
-_080511F0:
- ldr r0, _08051210
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0805121E
- ldr r0, [r3]
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _08051218
- ldr r0, _08051214
- bl SetMainCallback2
- b _0805121E
- .align 2, 0
-_08051210: .4byte 0x0202f388
-_08051214: .4byte sub_804E538
-_08051218:
- ldr r0, _08051238
- bl SetMainCallback2
-_0805121E:
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80510E8
-
- thumb_func_start sub_805123C
-sub_805123C: @ 805123C
- push {r4-r6,lr}
- ldr r0, _0805126C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08051248
- b _08051404
-_08051248:
- ldr r4, _08051270
- ldrh r1, [r4]
- ldr r0, _08051274
- cmp r1, r0
- bne _080512C6
- ldrh r1, [r4, 0x8]
- ldr r0, _08051278
- cmp r1, r0
- bne _080512B8
- ldrh r3, [r4, 0x10]
- ldr r0, _0805127C
- cmp r3, r0
- beq _08051298
- cmp r3, r0
- bgt _08051284
- ldr r0, _08051280
- b _08051286
- .align 2, 0
-_0805126C: .4byte 0x03002fa4
-_08051270: .4byte 0x03002a20
-_08051274: .4byte 0x00002fff
-_08051278: .4byte 0x00001111
-_0805127C: .4byte 0x00009999
-_08051280: .4byte 0x00008888
-_08051284:
- ldr r0, _08051290
-_08051286:
- cmp r3, r0
- beq _08051298
- ldr r2, _08051294
- b _080512A8
- .align 2, 0
-_08051290: .4byte 0x0000aaaa
-_08051294: .4byte 0x03004854
-_08051298:
- ldr r2, _080512B0
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x78
- strh r3, [r1]
- ldrh r1, [r4, 0x18]
- adds r0, 0x7A
- strh r1, [r0]
-_080512A8:
- ldr r0, [r2]
- adds r0, 0x70
- ldr r1, _080512B4
- b _080512C4
- .align 2, 0
-_080512B0: .4byte 0x03004854
-_080512B4: .4byte 0x00001111
-_080512B8:
- ldr r0, _080512F4
- cmp r1, r0
- bne _080512C6
- ldr r0, _080512F8
- ldr r0, [r0]
- adds r0, 0x70
-_080512C4:
- strh r1, [r0]
-_080512C6:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _080512D2
- b _08051404
-_080512D2:
- ldr r2, _080512F8
- ldr r0, [r2]
- adds r0, 0x70
- ldrh r1, [r0]
- ldr r0, _080512FC
- cmp r1, r0
- bne _080512E2
- b _08051404
-_080512E2:
- ldr r0, _080512F4
- cmp r1, r0
- bne _080512EA
- b _08051404
-_080512EA:
- movs r4, 0
- ldr r6, _08051300
- adds r5, r2, 0
- b _0805134E
- .align 2, 0
-_080512F4: .4byte 0x00002222
-_080512F8: .4byte 0x03004854
-_080512FC: .4byte 0x00001111
-_08051300: .4byte 0x00002fff
-_08051304:
- ldr r1, _08051328
- lsls r2, r4, 1
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _08051348
- adds r0, r1, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldrh r1, [r0]
- ldr r0, _0805132C
- cmp r1, r0
- beq _08051340
- cmp r1, r0
- bgt _08051334
- ldr r0, _08051330
- b _0805133C
- .align 2, 0
-_08051328: .4byte 0x03002a20
-_0805132C: .4byte 0x00008888
-_08051330: .4byte 0x00007779
-_08051334:
- ldr r0, _08051360
- cmp r1, r0
- beq _08051340
- ldr r0, _08051364
-_0805133C:
- cmp r1, r0
- bne _08051348
-_08051340:
- ldr r0, [r5]
- adds r0, 0x70
- adds r0, r2
- strh r1, [r0]
-_08051348:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0805134E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08051304
- movs r4, 0
- b _0805136E
- .align 2, 0
-_08051360: .4byte 0x00009999
-_08051364: .4byte 0x0000aaaa
-_08051368:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0805136E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _0805138A
- ldr r0, _0805139C
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08051368
-_0805138A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08051404
- movs r4, 0
- ldr r5, _080513A0
- b _080513AA
- .align 2, 0
-_0805139C: .4byte 0x03004854
-_080513A0: .4byte 0x00007779
-_080513A4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080513AA:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _080513C6
- ldr r0, _080513E0
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _080513A4
-_080513C6:
- ldr r5, _080513E4
- movs r6, 0
- ldr r0, _080513E8
- strh r0, [r5]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080513F0
- ldr r0, _080513EC
- strh r0, [r5, 0x2]
- b _08051404
- .align 2, 0
-_080513E0: .4byte 0x03004854
-_080513E4: .4byte 0x03002f90
-_080513E8: .4byte 0x00002fff
-_080513EC: .4byte 0x00002222
-_080513F0:
- ldr r0, _0805140C
- strh r0, [r5, 0x2]
- ldr r0, _08051410
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- strh r4, [r5, 0x6]
-_08051404:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805140C: .4byte 0x00001111
-_08051410: .4byte 0x03004854
- thumb_func_end sub_805123C
-
- thumb_func_start sub_8051414
-sub_8051414: @ 8051414
- push {lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0xF0
- lsls r0, 7
- str r0, [sp]
- movs r0, 0xA0
- lsls r0, 7
- str r0, [sp, 0x4]
- mov r3, sp
- ldr r0, _08051470
- ldr r0, [r0]
- mov r12, r0
- movs r0, 0xA2
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- movs r0, 0x78
- subs r0, r2
- strh r0, [r3, 0x8]
- movs r0, 0xA3
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- movs r0, 0x50
- subs r0, r2
- strh r0, [r3, 0xA]
- mov r2, sp
- movs r3, 0xA1
- lsls r3, 1
- add r3, r12
- ldrh r0, [r3]
- strh r0, [r2, 0xC]
- ldrh r0, [r3]
- strh r0, [r2, 0xE]
- mov r0, r12
- adds r0, 0x54
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- mov r0, sp
- movs r2, 0x1
- bl BgAffineSet
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_08051470: .4byte 0x03004854
- thumb_func_end sub_8051414
-
- thumb_func_start sub_8051474
-sub_8051474: @ 8051474
- push {lr}
- ldr r0, _080514A0
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0x54
- ldrh r2, [r1]
- adds r0, r3, 0
- adds r0, 0x58
- strh r2, [r0]
- subs r0, 0x2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r3, r1
- bl sub_8051414
- pop {r0}
- bx r0
- .align 2, 0
-_080514A0: .4byte 0x03004854
- thumb_func_end sub_8051474
-
- thumb_func_start sub_80514A4
-sub_80514A4: @ 80514A4
- ldr r1, _080514E8
- ldr r0, _080514EC
- ldr r2, [r0]
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- adds r3, 0x4
- adds r0, r2, r3
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080514E8: .4byte 0x04000020
-_080514EC: .4byte 0x03004854
- thumb_func_end sub_80514A4
-
- thumb_func_start sub_80514F0
-sub_80514F0: @ 80514F0
- ldr r1, _0805151C
- ldr r0, _08051520
- ldr r3, [r0]
- movs r0, 0xA2
- lsls r0, 1
- adds r2, r3, r0
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA3
- lsls r0, 1
- adds r3, r0
- ldrh r0, [r3]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0805151C: .4byte 0x04000014
-_08051520: .4byte 0x03004854
- thumb_func_end sub_80514F0
-
- thumb_func_start sub_8051524
-sub_8051524: @ 8051524
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r0, r1
- strh r0, [r2, 0x34]
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _08051542
- adds r0, 0x7
-_08051542:
- asrs r0, 3
- strh r0, [r2, 0x24]
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _08051550
- adds r0, 0x7
-_08051550:
- asrs r0, 3
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08051568
- adds r0, r2, 0
- bl DestroySprite
-_08051568:
- pop {r0}
- bx r0
- thumb_func_end sub_8051524
-
- thumb_func_start sub_805156C
-sub_805156C: @ 805156C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl Random
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0x1
- ands r1, r0
- adds r0, r1, 0x1
- cmp r0, 0
- beq _08051628
- ldr r0, _08051638
- mov r9, r0
- ldr r2, _0805163C
- mov r10, r2
- adds r6, r1, 0x1
- movs r3, 0x1F
- mov r8, r3
- movs r7, 0x10
-_08051598:
- bl Random
- ldr r1, _08051640
- ldr r4, [r1]
- adds r4, 0x54
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- ldrh r1, [r4]
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 1
- add r0, r9
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- bge _080515CC
- adds r1, 0x3
-_080515CC:
- asrs r1, 2
- lsls r0, r2, 1
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _080515DC
- adds r0, 0x3
-_080515DC:
- asrs r2, r0, 2
- adds r1, 0x78
- adds r2, 0x50
- ldr r0, _08051644
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- mov r3, r10
- adds r4, r5, r3
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- ands r0, r1
- subs r0, r7, r0
- strh r0, [r4, 0x2E]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r2, r8
- ands r0, r2
- subs r0, r7, r0
- strh r0, [r4, 0x30]
- ldr r3, _08051648
- adds r5, r3
- ldr r0, _0805164C
- str r0, [r5]
- subs r6, 0x1
- cmp r6, 0
- bne _08051598
-_08051628:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08051638: .4byte gUnknown_08208344
-_0805163C: .4byte 0x02020004
-_08051640: .4byte 0x03004854
-_08051644: .4byte gSpriteTemplate_82164FC
-_08051648: .4byte 0x02020020
-_0805164C: .4byte sub_8051524
- thumb_func_end sub_805156C
-
- thumb_func_start sub_8051650
-sub_8051650: @ 8051650
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0805167C
- adds r0, r4, 0
- bl DestroySprite
-_0805167C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8051650
-
- thumb_func_start sub_8051684
-sub_8051684: @ 8051684
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- lsls r0, 1
- negs r0, r0
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xC
- negs r1, r1
- cmp r0, r1
- bge _080516A8
- ldr r0, _080516C0
- strh r0, [r2, 0x26]
-_080516A8:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080516BC
- adds r0, r2, 0
- bl DestroySprite
-_080516BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080516C0: .4byte 0x0000fff4
- thumb_func_end sub_8051684
-
- thumb_func_start sub_80516C4
-sub_80516C4: @ 80516C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080516F4
- ldr r3, [r2]
- lsls r4, r0, 1
- adds r2, r3, 0
- adds r2, 0x80
- adds r2, r4
- strh r1, [r2]
- lsls r0, 4
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- adds r3, r0
- adds r0, r3, 0
- bl sub_804E844
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080516F4: .4byte 0x03004854
- thumb_func_end sub_80516C4
-
- thumb_func_start unref_sub_80516F8
-unref_sub_80516F8: @ 80516F8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080517B8
- adds r4, r0, r1
- ldr r6, _080517BC
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805180C
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080517D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _08051730
- strh r1, [r4, 0x8]
-_08051730:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x64
- bne _080517A0
- ldr r0, _080517C0
- ldr r0, [r0]
- adds r0, 0x4
- movs r1, 0x14
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl ZeroFillWindowRect
- movs r0, 0x4
- movs r1, 0x4
- movs r2, 0xA
- movs r3, 0xC
- bl DrawDefaultWindow
- movs r2, 0
- ldr r6, _080517C4
-_0805175C:
- adds r4, r2, 0x1
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- cmp r0, 0
- beq _08051784
- ldr r1, _080517C8
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r2, 25
- movs r1, 0xA0
- lsls r1, 19
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x5
- bl Print
-_08051784:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _080517CC
- movs r1, 0x1
- movs r2, 0xF
- bl Print
- adds r2, r4, 0
- cmp r2, 0x2
- ble _0805175C
-_080517A0:
- ldr r0, _080517D0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805180C
- bl sub_8007E4C
- adds r0, r5, 0
- bl DestroyTask
- b _0805180C
- .align 2, 0
-_080517B8: .4byte 0x03004b20
-_080517BC: .4byte 0x03002fa4
-_080517C0: .4byte 0x03004854
-_080517C4: .4byte 0x03002974
-_080517C8: .4byte gUnknown_08216284
-_080517CC: .4byte gUnknown_0842D373
-_080517D0: .4byte 0x03001770
-_080517D4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080517E6
- ldr r0, _08051814
- movs r1, 0x3
- movs r2, 0xA
- bl Print
-_080517E6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080517F8
- movs r0, 0
- strh r0, [r4, 0x8]
-_080517F8:
- ldr r0, _08051818
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0805180C
- ldrb r0, [r6]
- cmp r0, 0x1
- bne _0805180C
- adds r0, r5, 0
- bl DestroyTask
-_0805180C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08051814: .4byte gUnknown_0842D390
-_08051818: .4byte 0x03002a68
- thumb_func_end unref_sub_80516F8
-
- thumb_func_start sub_805181C
-sub_805181C: @ 805181C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08051858
- cmp r0, 0x1
- bgt _08051832
- cmp r0, 0
- beq _08051838
- b _080518BE
-_08051832:
- cmp r0, 0x2
- beq _08051872
- b _080518BE
-_08051838:
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x58
- ble _080518BE
- movs r0, 0x58
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x38
- bl audio_play
- b _080518BE
-_08051858:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080518BE
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x32]
- b _080518BE
-_08051872:
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB0
- ble _080518BE
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- adds r1, r0, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080518AC
- adds r0, r4, 0
- bl DestroySprite
- ldr r0, _080518A8
- movs r2, 0x14
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x2
- bl CreateSprite
- b _080518BE
- .align 2, 0
-_080518A8: .4byte gSpriteTemplate_821657C
-_080518AC:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080518C8
- strh r0, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080518BE:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080518C8: .4byte 0x0000fff0
- thumb_func_end sub_805181C
-
- thumb_func_start sub_80518CC
-sub_80518CC: @ 80518CC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08051908
- cmp r0, 0x1
- bgt _080518E2
- cmp r0, 0
- beq _080518E8
- b _0805193C
-_080518E2:
- cmp r0, 0x2
- beq _0805191E
- b _0805193C
-_080518E8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5C
- ble _0805193C
- movs r0, 0x5C
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x15
- bl audio_play
- b _0805193C
-_08051908:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0805193C
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0805193C
-_0805191E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB0
- ble _0805193C
- ldr r0, _08051948
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0805193C:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08051948: .4byte 0x03004854
- thumb_func_end sub_80518CC
-
- thumb_func_start sub_805194C
-sub_805194C: @ 805194C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r1, _08051978
- ldr r1, [r1]
- movs r2, 0xA0
- lsls r2, 1
- adds r1, r2
- ldrh r2, [r1]
- cmp r2, r0
- bcs _08051972
- adds r0, r2, 0x2
- strh r0, [r1]
- ldrh r0, [r1]
- adds r1, r3, 0
- bl sub_805197C
-_08051972:
- pop {r0}
- bx r0
- .align 2, 0
-_08051978: .4byte 0x03004854
- thumb_func_end sub_805194C
-
- thumb_func_start sub_805197C
-sub_805197C: @ 805197C
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r7, _08051A0C
- lsrs r0, 10
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _08051994
- adds r0, r1, 0x7
-_08051994:
- asrs r4, r0, 3
- movs r3, 0
- cmp r3, r4
- bge _080519BC
- ldr r0, _08051A10
- adds r6, r0, 0
- adds r0, 0x10
- adds r5, r0, 0
- adds r2, r7, 0
- adds r2, 0x56
- adds r0, r7, 0
- adds r3, r4, 0
-_080519AC:
- strh r6, [r0, 0x16]
- strh r5, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _080519AC
- adds r3, r4, 0
-_080519BC:
- adds r0, r1, 0
- cmp r1, 0
- bge _080519C4
- adds r0, r1, 0x7
-_080519C4:
- asrs r2, r0, 3
- lsls r0, r2, 3
- subs r2, r1, r0
- cmp r2, 0
- beq _080519E2
- lsls r0, r3, 1
- adds r0, r7
- ldr r4, _08051A14
- adds r1, r2, r4
- strh r1, [r0, 0x16]
- adds r0, 0x56
- adds r4, 0x10
- adds r1, r2, r4
- strh r1, [r0]
- adds r3, 0x1
-_080519E2:
- cmp r3, 0x7
- bgt _08051A06
- ldr r0, _08051A18
- adds r4, r0, 0
- adds r0, 0x10
- adds r2, r0, 0
- lsls r1, r3, 1
- adds r0, r1, 0
- adds r0, 0x56
- adds r0, r7
- adds r1, r7
-_080519F8:
- strh r4, [r1, 0x16]
- strh r2, [r0]
- adds r0, 0x2
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _080519F8
-_08051A06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08051A0C: .4byte 0x06006000
-_08051A10: .4byte 0x000081e9
-_08051A14: .4byte 0xffff81e1
-_08051A18: .4byte 0x000081e1
- thumb_func_end sub_805197C
-
- thumb_func_start sub_8051A1C
-sub_8051A1C: @ 8051A1C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08051A34
- muls r0, r1
- cmp r0, 0
- bge _08051A2E
- ldr r1, _08051A38
- adds r0, r1
-_08051A2E:
- asrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08051A34: .4byte 0x00057e40
-_08051A38: .4byte 0x0000ffff
- thumb_func_end sub_8051A1C
-
- thumb_func_start sub_8051A3C
-sub_8051A3C: @ 8051A3C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r0, 16
- bl sub_8051A1C
- adds r5, r0, 0
- ldr r0, _08051ABC
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x5A
- ldrh r0, [r1]
- cmp r0, r5
- bcs _08051A5A
- strh r5, [r1]
-_08051A5A:
- movs r6, 0
-_08051A5C:
- mov r0, sp
- adds r4, r0, r6
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- strb r0, [r4]
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _08051A5C
- ldr r2, _08051AC0
- mov r0, sp
- ldr r3, _08051AC4
- adds r1, r3, 0
- ldrb r0, [r0, 0x4]
- adds r0, r1, r0
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0, 0x3]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0, 0x2]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x4
- mov r0, sp
- ldrb r0, [r0, 0x1]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0]
- adds r1, r0
- strh r1, [r2]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08051ABC: .4byte 0x03004854
-_08051AC0: .4byte 0x06006458
-_08051AC4: .4byte 0x00008172
- thumb_func_end sub_8051A3C
-
- thumb_func_start sub_8051AC8
-sub_8051AC8: @ 8051AC8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 16
- lsrs r5, r4, 16
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08051AEC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsrs r1, r4, 17
- subs r0, r1
- strh r0, [r6]
-_08051AEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8051AC8
-
- thumb_func_start sub_8051AF4
-sub_8051AF4: @ 8051AF4
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bge _08051B06
- adds r0, r2, 0x1
- strh r0, [r1]
-_08051B06:
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08051B14
- subs r0, r2, 0x1
- strh r0, [r1]
-_08051B14:
- pop {r0}
- bx r0
- thumb_func_end sub_8051AF4
-
- thumb_func_start sub_8051B18
-sub_8051B18: @ 8051B18
- push {r4,lr}
- ldr r4, _08051B3C
- ldr r0, [r4]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r1
- bl sub_8051AF4
- ldr r0, [r4]
- movs r1, 0xA3
- lsls r1, 1
- adds r0, r1
- bl sub_8051AF4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08051B3C: .4byte 0x03004854
- thumb_func_end sub_8051B18
-
- thumb_func_start sub_8051B40
-sub_8051B40: @ 8051B40
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r5, 0x8
- cmp r1, 0x9
- bhi _08051B50
- movs r5, 0x10
-_08051B50:
- ldrh r0, [r4]
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08051B6E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- lsrs r1, r5, 1
- subs r0, r1
- b _08051B82
-_08051B6E:
- cmp r1, 0
- bge _08051B76
- adds r0, 0x1
- strh r0, [r4]
-_08051B76:
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08051B84
- subs r0, r1, 0x1
-_08051B82:
- strh r0, [r4]
-_08051B84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8051B40
-
- thumb_func_start sub_8051B8C
-sub_8051B8C: @ 8051B8C
- push {r4,r5,lr}
- ldr r5, _08051BE4
- ldr r2, [r5]
- movs r4, 0x98
- lsls r4, 1
- adds r0, r2, r4
- ldr r1, [r0]
- cmp r1, 0
- bne _08051BAC
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
-_08051BAC:
- ldr r0, [r5]
- adds r2, r0, r4
- ldr r1, [r2]
- adds r1, 0x1
- str r1, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r2
- lsls r1, 16
- lsrs r1, 16
- bl sub_8051B40
- ldr r1, [r5]
- movs r3, 0xA3
- lsls r3, 1
- adds r0, r1, r3
- adds r1, r4
- ldrh r1, [r1]
- bl sub_8051B40
- ldr r2, [r5]
- adds r0, r2, r4
- ldr r0, [r0]
- cmp r0, 0x14
- beq _08051BE8
- movs r0, 0
- b _08051BFC
- .align 2, 0
-_08051BE4: .4byte 0x03004854
-_08051BE8:
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0xA3
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r0, 0x1
-_08051BFC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8051B8C
-
- thumb_func_start sub_8051C04
-sub_8051C04: @ 8051C04
- ldr r1, _08051C20
- ldr r2, [r1]
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r2, r3
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x24]
- adds r3, 0x2
- adds r1, r2, r3
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08051C20: .4byte 0x03004854
- thumb_func_end sub_8051C04
-
- thumb_func_start sub_8051C24
-sub_8051C24: @ 8051C24
- push {lr}
- ldr r2, _08051C4C
- ldr r0, _08051C50
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 1
- ldr r3, _08051C54
- adds r2, r3
- adds r2, r0, r2
- adds r1, 0x5A
- ldrh r1, [r1]
- ldrh r0, [r2]
- cmp r0, r1
- bcs _08051C48
- strh r1, [r2]
-_08051C48:
- pop {r0}
- bx r0
- .align 2, 0
-_08051C4C: .4byte 0x02025734
-_08051C50: .4byte 0x03004854
-_08051C54: .4byte 0x0000096c
- thumb_func_end sub_8051C24
-
- thumb_func_start sub_8051C58
-sub_8051C58: @ 8051C58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r1, _08051C7C
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bls _08051C72
- b _0805200A
-_08051C72:
- lsls r0, 2
- ldr r1, _08051C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08051C7C: .4byte 0x03004854
-_08051C80: .4byte _08051C84
- .align 2, 0
-_08051C84:
- .4byte _08051CA0
- .4byte _08051CB6
- .4byte _08051CD0
- .4byte _08051D20
- .4byte _08051F44
- .4byte _08051F58
- .4byte _08051FF8
-_08051CA0:
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0x11
- str r1, [r0]
- b _0805200A
-_08051CB6:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- subs r0, 0xA
- str r0, [r2]
- cmp r0, 0
- blt _08051CCA
- b _0805200A
-_08051CCA:
- movs r0, 0
- str r0, [r2]
- b _08051FE2
-_08051CD0:
- ldr r1, [r2]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bgt _08051CE4
- b _0805200A
-_08051CE4:
- movs r6, 0
-_08051CE6:
- ldr r4, _08051D18
- ldr r0, [r4]
- adds r0, 0x50
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08051D1C
- adds r0, r1
- bl DestroySprite
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x2
- bls _08051CE6
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08051FE2
- .align 2, 0
-_08051D18: .4byte 0x03004854
-_08051D1C: .4byte 0x02020004
-_08051D20:
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x19
- movs r3, 0x11
- bl DrawDefaultWindow
- ldr r0, _08051F14
- movs r1, 0x5
- movs r2, 0x3
- movs r3, 0xA0
- bl Free
- movs r6, 0
- ldr r1, _08051F18
- ldr r0, [r1]
- adds r0, 0x88
- add r2, sp, 0xC
- mov r9, r2
- mov r2, sp
- adds r2, 0x16
- str r2, [sp, 0x30]
- ldrb r0, [r0]
- cmp r6, r0
- bcs _08051E04
- mov r8, r1
- ldr r0, _08051F1C
- mov r10, r0
-_08051D56:
- mov r1, r8
- ldr r2, [r1]
- movs r1, 0xB2
- lsls r1, 1
- adds r0, r2, r1
- adds r0, r6
- ldrb r5, [r0]
- mov r7, r9
- lsls r1, r5, 4
- adds r1, r2
- movs r2, 0xBF
- lsls r2, 1
- adds r1, r2
- adds r0, r7, 0
- bl StringCopy
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- mov r1, r10
- adds r0, r4, r1
- ldrb r1, [r0, 0x1A]
- adds r0, r7, 0
- bl ConvertInternationalString
- adds r0, r7, 0
- ldr r1, _08051F20
- bl StringAppend
- mov r2, r8
- ldr r0, [r2]
- adds r7, r0, 0
- adds r7, 0xAB
- adds r5, r6, 0x1
- adds r0, r7, 0
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- adds r7, r0, 0
- movs r1, 0
- strb r1, [r7]
- movs r0, 0xAD
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- adds r7, 0x3
- ldr r0, _08051F24
- adds r4, r0
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x58
- movs r3, 0
- bl sub_8072C74
- adds r7, r0, 0
- add r1, sp, 0xC
- movs r2, 0x9D
- movs r3, 0
- bl sub_8072C74
- mov r2, r8
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xAB
- ldr r3, _08051F28
- adds r1, 0x88
- ldrb r2, [r1]
- adds r3, r2, r3
- ldr r1, _08051F2C
- adds r2, r1
- ldrb r1, [r2]
- adds r2, r6, 0
- muls r2, r1
- ldrb r3, [r3]
- adds r2, r3
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x5
- bl Print
- lsls r5, 16
- lsrs r6, r5, 16
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08051D56
-_08051E04:
- ldr r6, _08051F18
- ldr r0, [r6]
- adds r0, 0x5A
- ldrh r0, [r0]
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r7, r0, 0
- adds r7, 0xAB
- ldr r1, _08051F30
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r0, [r6]
- adds r0, 0x5A
- ldrh r0, [r0]
- movs r1, 0x64
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r7, 0
- movs r2, 0x79
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r1, 0
- strb r1, [r7]
- movs r0, 0xAD
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x8E
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F34
- bl StringCopy
- ldr r0, [r6]
- adds r0, 0xAB
- movs r1, 0x5
- movs r2, 0xD
- bl Print
- ldr r0, [r6]
- movs r2, 0x96
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x3C
- bl __udivsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x3C
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [sp, 0x30]
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r7, r0, 0
- adds r7, 0xAB
- ldr r1, _08051F38
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r1, r9
- movs r2, 0x66
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F3C
- bl StringAppend
- adds r7, r0, 0
- ldr r1, [sp, 0x30]
- movs r2, 0x88
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F40
- bl StringCopy
- ldr r0, [r6]
- adds r0, 0xAB
- movs r1, 0x5
- movs r2, 0xF
- bl Print
- ldr r1, [r6]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08051FE2
- .align 2, 0
-_08051F14: .4byte gUnknown_0842D479
-_08051F18: .4byte 0x03004854
-_08051F1C: .4byte 0x03002970
-_08051F20: .4byte gUnknown_0842D498
-_08051F24: .4byte 0x03002978
-_08051F28: .4byte gUnknown_082165E9
-_08051F2C: .4byte gUnknown_082165EE
-_08051F30: .4byte gUnknown_0842D4B7
-_08051F34: .4byte gUnknown_0842D4C5
-_08051F38: .4byte gUnknown_0842D49F
-_08051F3C: .4byte gUnknown_0842D4AD
-_08051F40: .4byte gUnknown_0842D4B2
-_08051F44:
- ldr r0, _08051F54
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805200A
- ldr r1, [r2]
- b _08051FE2
- .align 2, 0
-_08051F54: .4byte 0x03001770
-_08051F58:
- bl sub_8071EF4
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- movs r6, 0
- add r5, sp, 0x28
- ldr r0, _08051FEC
- ldr r0, [r0]
- adds r3, r0, 0
- adds r3, 0x80
- add r2, sp, 0x20
-_08051F76:
- lsls r1, r6, 1
- adds r0, r3, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08051F86
- adds r1, r2, r1
- subs r0, 0x85
- strh r0, [r1]
-_08051F86:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08051F76
- bl sub_8050760
- ldr r4, _08051FEC
- ldr r3, [r4]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r3, r1
- adds r1, r3, 0
- adds r1, 0x88
- ldrb r2, [r1]
- subs r1, 0x2E
- ldrh r1, [r1]
- str r1, [sp]
- adds r1, r5, 0
- add r3, sp, 0x4
- bl sub_8050520
- ldr r1, [r4]
- adds r1, 0xAB
- adds r0, r5, 0
- bl sub_805201C
- ldr r0, _08051FF0
- movs r1, 0x6
- bl CreateTask
- ldr r0, [r4]
- adds r0, 0xAB
- movs r1, 0x1
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- ldr r0, _08051FF4
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r5, 0
- bl sub_810CA34
- ldr r1, [r4]
-_08051FE2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0805200A
- .align 2, 0
-_08051FEC: .4byte 0x03004854
-_08051FF0: .4byte sub_8052BD0
-_08051FF4: .4byte 0x0203855e
-_08051FF8:
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _0805200A
- bl sub_8051C24
- movs r0, 0x1
- b _0805200C
-_0805200A:
- movs r0, 0
-_0805200C:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8051C58
-
- thumb_func_start sub_805201C
-sub_805201C: @ 805201C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- strb r0, [r6]
- ldr r1, _080520B0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _080520B4
- adds r0, r6, 0
- bl StringAppend
- ldr r1, _080520B8
- adds r0, r6, 0
- bl StringAppend
- adds r0, r5, 0
- bl sub_810C9B0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_810C9E8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080520BC
- adds r0, r6, 0
- bl StringAppend
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- ldr r1, _080520C0
- adds r0, r6, 0
- bl StringAppend
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- ldr r1, _080520C4
- adds r0, r6, 0
- bl StringAppend
- ldr r1, _080520C8
- adds r0, r6, 0
- bl StringAppend
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080520B0: .4byte gUnknown_083F7EB8
-_080520B4: .4byte gUnknown_0842D368
-_080520B8: .4byte gUnknown_082162C8
-_080520BC: .4byte gUnknown_0842D4D3
-_080520C0: .4byte gUnknown_0842D4E1
-_080520C4: .4byte gUnknown_0842D4F4
-_080520C8: .4byte gUnknown_08216249
- thumb_func_end sub_805201C
-
- thumb_func_start sub_80520CC
-sub_80520CC: @ 80520CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- mov r12, r2
- lsls r1, 24
- lsrs r7, r1, 24
- movs r0, 0
- cmp r0, r7
- bge _08052118
-_080520E2:
- movs r5, 0
- adds r1, r0, 0x1
- mov r8, r1
- cmp r5, r7
- bge _08052112
- mov r1, r9
- adds r6, r1, r0
-_080520F0:
- ldrb r4, [r6]
- lsls r1, r4, 2
- add r1, r12
- mov r0, r9
- adds r2, r0, r5
- ldrb r3, [r2]
- lsls r0, r3, 2
- add r0, r12
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- bls _0805210C
- strb r3, [r6]
- strb r4, [r2]
-_0805210C:
- adds r5, 0x1
- cmp r5, r7
- blt _080520F0
-_08052112:
- mov r0, r8
- cmp r0, r7
- blt _080520E2
-_08052118:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80520CC
-
- thumb_func_start sub_8052124
-sub_8052124: @ 8052124
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r5, 0
- ldr r1, _08052144
- ldr r0, [r1]
- adds r0, 0x88
- mov r10, r1
- mov r2, sp
- adds r2, 0x4
- str r2, [sp, 0x14]
- b _08052158
- .align 2, 0
-_08052144: .4byte 0x03004854
-_08052148:
- mov r4, sp
- adds r0, r4, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r1]
- adds r0, 0x88
-_08052158:
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08052148
- movs r5, 0
- mov r1, r10
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x88
- ldrb r2, [r1]
- cmp r5, r2
- bcs _080521D6
- ldr r4, [sp, 0x14]
- mov r9, r4
- movs r2, 0xA6
- lsls r2, 1
- adds r2, r0
- mov r8, r2
- mov r12, r1
- movs r4, 0xA7
- lsls r4, 1
- adds r7, r0, r4
- movs r1, 0xA8
- lsls r1, 1
- adds r6, r0, r1
-_08052188:
- lsls r4, r5, 2
- add r4, r9
- lsls r3, r5, 1
- adds r3, r5
- lsls r3, 1
- mov r2, r8
- adds r0, r2, r3
- ldrh r2, [r0]
- lsls r0, r2, 5
- subs r0, r2
- lsls r1, r0, 6
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r1, 6
- str r1, [r4]
- adds r0, r7, r3
- ldrh r2, [r0]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- str r1, [r4]
- movs r0, 0xFA
- lsls r0, 2
- adds r1, r0
- adds r3, r6, r3
- ldrh r0, [r3]
- subs r1, r0
- str r1, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r12
- ldrb r1, [r1]
- cmp r5, r1
- bcc _08052188
-_080521D6:
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x88
- ldrb r1, [r0]
- mov r0, sp
- ldr r2, [sp, 0x14]
- bl sub_80520CC
- movs r5, 0
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r5, r0
- bcs _08052218
- mov r2, r10
- movs r3, 0xB2
- lsls r3, 1
-_080521FA:
- ldr r1, [r2]
- adds r1, r3
- adds r1, r5
- mov r4, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r2]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080521FA
-_08052218:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8052124
-
- thumb_func_start sub_8052228
-sub_8052228: @ 8052228
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08052248
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bls _0805223C
- b _080524AE
-_0805223C:
- lsls r0, 2
- ldr r1, _0805224C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08052248: .4byte 0x03004854
-_0805224C: .4byte _08052250
- .align 2, 0
-_08052250:
- .4byte _0805226C
- .4byte _08052282
- .4byte _0805229C
- .4byte _080522B6
- .4byte _08052464
- .4byte _0805247E
- .4byte _080524A4
-_0805226C:
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- str r1, [r0]
- b _080524AE
-_08052282:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- subs r0, 0xA
- str r0, [r2]
- cmp r0, 0
- blt _08052296
- b _080524AE
-_08052296:
- movs r0, 0
- str r0, [r2]
- b _08052494
-_0805229C:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- adds r0, 0x1
- str r0, [r2]
- cmp r0, 0x14
- bgt _080522B0
- b _080524AE
-_080522B0:
- movs r0, 0
- str r0, [r2]
- b _08052494
-_080522B6:
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x19
- movs r3, 0x11
- bl DrawDefaultWindow
- ldr r0, _0805236C
- movs r1, 0x5
- movs r2, 0x3
- movs r3, 0xA0
- bl Free
- ldr r6, _08052370
- adds r0, r6, 0
- movs r1, 0x8C
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r7, _08052374
- ldr r1, [r7]
- adds r1, 0x50
- strb r0, [r1]
- ldr r1, _08052378
- mov r8, r1
- ldr r2, [r7]
- adds r2, 0x50
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r5, r8
- adds r5, 0x1C
- adds r0, r5
- ldr r4, _0805237C
- str r4, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r6, 0
- movs r1, 0xA4
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x51
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x51
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r4, [r0]
- adds r0, r6, 0
- movs r1, 0xBC
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x52
- strb r0, [r1]
- ldr r2, [r7]
- adds r2, 0x52
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r4, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl StartSpriteAnim
- bl sub_8052124
- movs r2, 0
- mov r8, r2
- b _0805243C
- .align 2, 0
-_0805236C: .4byte gUnknown_0842D4CB
-_08052370: .4byte gSpriteTemplate_821645C
-_08052374: .4byte 0x03004854
-_08052378: .4byte 0x02020004
-_0805237C: .4byte SpriteCallbackDummy
-_08052380:
- ldr r1, [r7]
- movs r2, 0xB2
- lsls r2, 1
- adds r0, r1, r2
- add r0, r8
- ldrb r5, [r0]
- adds r2, r1, 0
- adds r2, 0xAB
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- mov r6, r8
- adds r6, 0x1
- adds r0, r2, 0
- adds r1, r6, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xAD
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- ldr r0, _08052458
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, [r7]
- lsls r4, r5, 1
- adds r4, r5
- lsls r4, 1
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x6C
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- ldr r0, [r7]
- movs r1, 0xA7
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x84
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x9C
- movs r3, 0x1
- bl sub_8072C14
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xAB
- ldr r2, _0805245C
- adds r1, 0x88
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- mov r2, r8
- muls r2, r1
- adds r2, 0x8
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x5
- bl Print
- lsls r6, 16
- lsrs r6, 16
- mov r8, r6
-_0805243C:
- ldr r0, [r7]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r8, r0
- bcc _08052380
- ldr r0, _08052460
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08052494
- .align 2, 0
-_08052458: .4byte 0x03002978
-_0805245C: .4byte gUnknown_082165F3
-_08052460: .4byte 0x03004854
-_08052464:
- ldr r2, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- ble _080524AE
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _080524AE
-_0805247E:
- ldr r0, _0805249C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080524AE
- movs r0, 0x5
- bl audio_play
- ldr r0, _080524A0
- ldr r1, [r0]
-_08052494:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080524AE
- .align 2, 0
-_0805249C: .4byte 0x03001770
-_080524A0: .4byte 0x03004854
-_080524A4:
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- b _080524B0
-_080524AE:
- movs r0, 0
-_080524B0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8052228
-
- thumb_func_start unref_sub_80524BC
-unref_sub_80524BC: @ 80524BC
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0805251C
- bl SetVBlankCallback
- ldr r4, _08052520
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- ldr r0, _08052524
- ldrh r0, [r0, 0x20]
- bl SeedRng
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xAA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _08052528
- movs r0, 0xFA
- lsls r0, 5
- strh r0, [r1, 0x1A]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
- ldr r0, _0805252C
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805251C: .4byte sub_804E2D8
-_08052520: .4byte gWindowConfig_81E6CE4
-_08052524: .4byte 0x03001770
-_08052528: .4byte 0x03000560
-_0805252C: .4byte sub_8052AF8
- thumb_func_end unref_sub_80524BC
-
- thumb_func_start sub_8052530
-sub_8052530: @ 8052530
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x98
- ldr r1, _080525C8
- mov r0, sp
- bl StringCopy
- mov r0, sp
- movs r1, 0x2
- movs r2, 0
- bl Print
- ldr r4, _080525CC
- movs r1, 0x1A
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x6
- movs r2, 0
- bl Print
- movs r6, 0
- mov r2, sp
- adds r2, 0x3
- str r2, [sp, 0x84]
- mov r3, sp
- adds r3, 0x6
- str r3, [sp, 0x88]
- mov r0, sp
- adds r0, 0x9
- str r0, [sp, 0x8C]
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x90]
- adds r2, 0xC
- str r2, [sp, 0x94]
- mov r8, r4
- mov r7, sp
- ldr r3, _080525D0
- mov r9, r3
- ldr r0, _080525D4
- mov r10, r0
-_0805259E:
- mov r1, r8
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, r6
- bne _080525D8
- movs r0, 0xEF
- strb r0, [r7]
- mov r0, r8
- adds r0, 0x1
- adds r0, r6, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- adds r1, 0x1
- bl itemid_copy_name
- b _080525F8
- .align 2, 0
-_080525C8: .4byte gUnknown_082165FA
-_080525CC: .4byte 0x03000560
-_080525D0: .4byte gBerries
-_080525D4: .4byte gUnknown_082165F8
-_080525D8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r6, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl itemid_copy_name
- movs r0, 0
- strb r0, [r7, 0x6]
- movs r0, 0xFF
- strb r0, [r7, 0x7]
-_080525F8:
- lsls r5, r6, 1
- adds r5, r6
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- mov r0, sp
- movs r1, 0x2
- adds r2, r5, 0
- bl Print
- mov r4, r8
- adds r4, 0x1
- adds r4, r6, r4
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x15]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x16]
- ldr r0, [sp, 0x84]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x17]
- ldr r0, [sp, 0x88]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x18]
- ldr r0, [sp, 0x8C]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x19]
- ldr r0, [sp, 0x90]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x1A]
- ldr r0, [sp, 0x94]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- negs r2, r2
- add r3, sp, 0x80
- strb r2, [r3]
- movs r0, 0xFF
- strb r0, [r7, 0x11]
- mov r0, sp
- movs r1, 0x7
- adds r2, r5, 0
- bl Print
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080526EC
- b _0805259E
-_080526EC:
- mov r1, r8
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _080527A4
- ldr r1, _080527B4
- mov r2, r8
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- bl StringCopy
- mov r0, sp
- movs r1, 0x2
- movs r2, 0xF
- bl Print
- mov r3, r8
- ldrb r1, [r3, 0x11]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- ldr r4, _080527B8
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r0, r8
- ldrb r1, [r0, 0x12]
- ldr r0, [sp, 0x84]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r2, r8
- ldrb r1, [r2, 0x13]
- ldr r0, [sp, 0x88]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r3, r8
- ldrb r1, [r3, 0x14]
- ldr r0, [sp, 0x8C]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r0, r8
- ldrb r1, [r0, 0x15]
- ldr r0, [sp, 0x90]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r2, r8
- ldrb r1, [r2, 0x16]
- ldr r0, [sp, 0x94]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r1, sp
- ldrb r0, [r1, 0x11]
- add r3, sp, 0x80
- ldrb r3, [r3]
- orrs r0, r3
- strb r0, [r1, 0x11]
- mov r0, sp
- movs r1, 0x7
- movs r2, 0x11
- bl Print
-_080527A4:
- add sp, 0x98
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080527B4: .4byte gUnknown_083F7EB8
-_080527B8: .4byte gUnknown_082165F8
- thumb_func_end sub_8052530
-
- thumb_func_start sub_80527BC
-sub_80527BC: @ 80527BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- ldr r0, _08052844
- ldrb r0, [r0]
- add r6, sp, 0x48
- cmp r0, 0x1
- bne _08052814
- movs r1, 0
- ldr r3, _08052848
- movs r2, 0
-_080527D6:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9
- bls _080527D6
- bl Random
- ldr r1, _0805284C
- strh r0, [r1]
- ldr r1, _08052850
- movs r0, 0
- str r0, [r1]
- ldr r1, _08052844
- movs r0, 0x2
- strb r0, [r1]
- movs r4, 0
- ldr r2, _08052854
- movs r1, 0
-_08052800:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xC7
- bls _08052800
- ldr r1, _08052858
- movs r0, 0
- strb r0, [r1]
-_08052814:
- movs r4, 0
- movs r0, 0x1
- mov r8, r0
- ldr r7, _08052858
- ldr r5, _08052850
- ldr r1, _08052854
- mov r9, r1
- ldr r3, _0805285C
-_08052824:
- str r3, [sp, 0x54]
- bl Random
- lsls r0, 16
- lsrs r0, 31
- mov r1, r8
- ands r0, r1
- ldr r3, [sp, 0x54]
- ldrb r1, [r7]
- cmp r0, r1
- bne _08052860
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- b _0805287A
- .align 2, 0
-_08052844: .4byte 0x020297dc
-_08052848: .4byte 0x03004840
-_0805284C: .4byte 0x03004830
-_08052850: .4byte 0x020297e0
-_08052854: .4byte 0x02000000
-_08052858: .4byte 0x020297e8
-_0805285C: .4byte 0x020297e4
-_08052860:
- ldr r2, [r3]
- lsls r0, r2, 1
- add r0, r9
- ldr r1, [r5]
- strh r1, [r0]
- adds r2, 0x1
- str r2, [r3]
- movs r0, 0
- str r0, [r5]
- ldrb r0, [r7]
- mov r1, r8
- eors r0, r1
- strb r0, [r7]
-_0805287A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x63
- bls _08052824
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, _08052900
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x8
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- ldr r1, _08052904
- mov r0, sp
- bl StringAppend
- ldr r0, _08052908
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x8
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- ldr r1, _0805290C
- mov r0, sp
- bl StringAppend
- ldr r4, _08052910
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _080528E8
- ldr r0, _08052914
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x10
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- movs r0, 0
- strb r0, [r4]
-_080528E8:
- mov r0, sp
- movs r1, 0x2
- movs r2, 0xF
- bl Print
- add sp, 0x58
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052900: .4byte 0x03004830
-_08052904: .4byte gUnknown_082165F8
-_08052908: .4byte 0x020297e0
-_0805290C: .4byte gUnknown_08216600
-_08052910: .4byte 0x020297dc
-_08052914: .4byte 0x020297e4
- thumb_func_end sub_80527BC
-
- thumb_func_start sub_8052918
-sub_8052918: @ 8052918
- push {r4-r6,lr}
- sub sp, 0x4C
- ldr r2, _08052A88
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- ldr r4, _08052A8C
- cmp r0, 0
- beq _0805294C
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r1, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- ldr r1, _08052A90
- cmp r0, r1
- ble _08052946
- movs r0, 0xFA
- lsls r0, 2
- strh r0, [r4, 0x1A]
-_08052946:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_0805294C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _08052972
- ldr r1, _08052A94
- adds r0, r1, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- cmp r0, 0
- bge _0805296C
- ldr r0, _08052A98
- strh r0, [r4, 0x1A]
-_0805296C:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_08052972:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08052992
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bge _0805298C
- movs r0, 0x3
- strb r0, [r4]
-_0805298C:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_08052992:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080529B4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080529AE
- movs r0, 0
- strb r0, [r4]
-_080529AE:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_080529B4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080529E4
- adds r3, r4, 0
- movs r1, 0
- ldrsb r1, [r3, r1]
- adds r5, r3, 0x1
- adds r1, r5
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080529DE
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, r5
- movs r1, 0x2A
- strb r1, [r0]
-_080529DE:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_080529E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08052A16
- ldr r3, _08052A8C
- movs r1, 0
- ldrsb r1, [r3, r1]
- adds r4, r3, 0x1
- adds r1, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2A
- ble _08052A10
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
-_08052A10:
- ldrb r0, [r3, 0x10]
- adds r0, 0x1
- strb r0, [r3, 0x10]
-_08052A16:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08052AA0
- movs r6, 0
- movs r4, 0
- ldr r5, _08052A8C
-_08052A26:
- adds r0, r5, 0x1
- adds r2, r4, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x2A
- beq _08052A64
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r4, 1
- mov r1, sp
- adds r1, r0
- adds r1, 0x4
- movs r0, 0
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- add r0, sp, 0xC
- lsls r1, r4, 4
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r2, r1]
- adds r1, 0x85
- lsls r1, 16
- lsrs r1, 16
- bl sub_804E844
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08052A26
-_08052A64:
- cmp r6, 0x1
- bls _08052A9C
- add r0, sp, 0xC
- adds r1, r5, 0
- adds r1, 0x8
- lsls r2, r6, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0x11
- ldrh r4, [r5, 0x1A]
- str r4, [sp]
- bl sub_8050744
- ldrb r0, [r5, 0x10]
- adds r0, 0x1
- strb r0, [r5, 0x10]
- b _08052AA0
- .align 2, 0
-_08052A88: .4byte 0x03001770
-_08052A8C: .4byte 0x03000560
-_08052A90: .4byte 0x75300000
-_08052A94: .4byte 0xfffffc18
-_08052A98: .4byte 0x00007530
-_08052A9C:
- movs r0, 0xFF
- strb r0, [r5, 0x8]
-_08052AA0:
- ldr r4, _08052AE8
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _08052AB0
- bl sub_8052530
- movs r0, 0
- strb r0, [r4, 0x10]
-_08052AB0:
- ldr r3, _08052AEC
- ldrh r1, [r3, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08052AD4
- ldr r2, _08052AF0
- ldrb r0, [r2]
- adds r1, r0, 0
- cmp r1, 0
- bne _08052ADC
- adds r0, 0x1
- strb r0, [r2]
- ldr r0, _08052AF4
- str r1, [r0]
- ldrh r0, [r3, 0x20]
- bl SeedRng
-_08052AD4:
- ldr r0, _08052AF0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08052AE0
-_08052ADC:
- bl sub_80527BC
-_08052AE0:
- add sp, 0x4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052AE8: .4byte 0x03000560
-_08052AEC: .4byte 0x03001770
-_08052AF0: .4byte 0x020297dc
-_08052AF4: .4byte 0x020297e0
- thumb_func_end sub_8052918
-
- thumb_func_start sub_8052AF8
-sub_8052AF8: @ 8052AF8
- push {lr}
- bl sub_8052918
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8052AF8
-
- thumb_func_start ShowBerryBlenderRecordWindow
-ShowBerryBlenderRecordWindow: @ 8052B14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x20
- movs r0, 0x6
- movs r1, 0x3
- movs r2, 0x17
- movs r3, 0x10
- bl DrawDefaultWindow
- ldr r0, _08052BBC
- movs r1, 0x8
- movs r2, 0x4
- bl Print
- ldr r0, _08052BC0
- movs r1, 0x8
- movs r2, 0x9
- bl Print
- movs r0, 0
- mov r8, r0
- ldr r0, _08052BC4
- movs r7, 0x90
- lsls r7, 20
- ldr r1, _08052BC8
- adds r6, r0, r1
- movs r0, 0
- mov r9, r0
-_08052B50:
- ldrh r4, [r6]
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0x12
- movs r3, 0x1
- bl sub_8072C14
- adds r5, r0, 0
- mov r1, r9
- strb r1, [r5]
- movs r0, 0xAD
- strb r0, [r5, 0x1]
- strb r1, [r5, 0x2]
- adds r5, 0x3
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- ldr r1, _08052BCC
- bl StringAppend
- lsrs r2, r7, 24
- mov r0, sp
- movs r1, 0xF
- bl Print
- movs r0, 0x80
- lsls r0, 18
- adds r7, r0
- adds r6, 0x2
- movs r1, 0x1
- add r8, r1
- mov r0, r8
- cmp r0, 0x2
- ble _08052B50
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052BBC: .4byte gUnknown_0842C2E6
-_08052BC0: .4byte gUnknown_0842C30A
-_08052BC4: .4byte 0x02025734
-_08052BC8: .4byte 0x0000096c
-_08052BCC: .4byte gUnknown_0842D4C5
- thumb_func_end ShowBerryBlenderRecordWindow
-
- thumb_func_start sub_8052BD0
-sub_8052BD0: @ 8052BD0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _08052C1C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08052BF6
- ldr r0, _08052C20
- bl fanfare_play
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08052BF6:
- bl task_is_not_running_overworld_fanfare
- lsls r0, 24
- cmp r0, 0
- beq _08052C16
- ldr r0, _08052C24
- ldr r0, [r0]
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8075474
- adds r0, r5, 0
- bl DestroyTask
-_08052C16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08052C1C: .4byte 0x03004b20
-_08052C20: .4byte 0x0000016f
-_08052C24: .4byte 0x03004854
- thumb_func_end sub_8052BD0
diff --git a/asm/rom5.s b/asm/rom5.s
index cec4f51e6..7c62b5254 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -99345,7 +99345,7 @@ _080AB6F2:
_080AB6F8: .4byte 0x03004b20
_080AB6FC: .4byte 0x02019204
_080AB700: .4byte sub_80AB960
-_080AB704: .4byte 0x03004818
+_080AB704: .4byte gRngValue
_080AB708: .4byte 0x03005d28
thumb_func_end sub_80AB6B4
@@ -100742,7 +100742,7 @@ _080AC2B6:
.align 2, 0
_080AC2BC: .4byte 0x03004b20
_080AC2C0: .4byte 0x02019204
-_080AC2C4: .4byte 0x03004818
+_080AC2C4: .4byte gRngValue
_080AC2C8: .4byte sub_80AC2CC
thumb_func_end sub_80AC284
@@ -104063,7 +104063,7 @@ _080ADE2C: .4byte 0x02019260
_080ADE30: .4byte 0x02038680
_080ADE34: .4byte 0x02038695
_080ADE38: .4byte 0x03005d28
-_080ADE3C: .4byte 0x03004818
+_080ADE3C: .4byte gRngValue
_080ADE40: .4byte 0x020234cc
_080ADE44: .4byte gUnknown_083CB02C
_080ADE48: .4byte 0x0202e908
@@ -159120,7 +159120,7 @@ _080C88D8:
bl sub_80C857C
b _080C891E
.align 2, 0
-_080C88F8: .4byte 0x03004818
+_080C88F8: .4byte gRngValue
_080C88FC:
movs r0, 0
bl sub_80C85AC
@@ -159145,7 +159145,7 @@ _080C8924:
pop {r0}
bx r0
.align 2, 0
-_080C892C: .4byte 0x03004818
+_080C892C: .4byte gRngValue
_080C8930: .4byte 0x03002b80
_080C8934: .4byte 0x03005d28
thumb_func_end sub_80C88AC
diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s
new file mode 100644
index 000000000..67ee5c939
--- /dev/null
+++ b/asm/rom_8040EB4.s
@@ -0,0 +1,35453 @@
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start object_new_hidden_with_callback
+object_new_hidden_with_callback: @ 8040EB4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _08040EE8
+ movs r1, 0xF8
+ movs r2, 0xA8
+ movs r3, 0xE
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08040EEC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r3, r2, r5
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r4, 0x4
+ orrs r1, r4
+ strb r1, [r3]
+ adds r5, 0x1C
+ adds r2, r5
+ str r6, [r2]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040EE8: .4byte gSpriteTemplate_82087AC
+_08040EEC: .4byte 0x02020004
+ thumb_func_end object_new_hidden_with_callback
+
+ thumb_func_start StoreWordInTwoHalfwords
+StoreWordInTwoHalfwords: @ 8040EF0
+ strh r1, [r0]
+ lsrs r1, 16
+ strh r1, [r0, 0x2]
+ bx lr
+ thumb_func_end StoreWordInTwoHalfwords
+
+ thumb_func_start LoadWordFromTwoHalfwords
+LoadWordFromTwoHalfwords: @ 8040EF8
+ ldrh r2, [r0]
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ lsls r0, 16
+ orrs r2, r0
+ str r2, [r1]
+ bx lr
+ thumb_func_end LoadWordFromTwoHalfwords
+
+ thumb_func_start sub_8040F08
+sub_8040F08: @ 8040F08
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r7, [sp, 0x24]
+ mov r8, r7
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ strh r3, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ strh r5, [r0, 0xC]
+ strh r6, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040F08
+
+ thumb_func_start sub_8040F34
+sub_8040F34: @ 8040F34
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x24
+ mov r8, r0
+ ldr r0, [sp, 0x38]
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ ldr r6, [sp, 0x44]
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp, 0x4]
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ add r0, sp, 0x10
+ bl sub_8040F08
+ add r0, sp, 0x10
+ mov r1, r8
+ movs r2, 0x1
+ bl BgAffineSet
+ add sp, 0x24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040F34
+
+ thumb_func_start sub_8040F80
+sub_8040F80: @ 8040F80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ str r2, [sp, 0x20]
+ adds r4, r3, 0
+ ldr r7, [sp, 0x5C]
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, _08041008
+ lsrs r1, 23
+ lsrs r0, 21
+ adds r1, r0
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ str r0, [sp, 0x24]
+ adds r1, r2
+ ldrb r1, [r1]
+ str r1, [sp, 0x28]
+ movs r1, 0
+ cmp r1, r0
+ bcc _08040FB4
+ b _08041136
+_08040FB4:
+ movs r0, 0x20
+ ldr r2, [sp, 0x28]
+ subs r0, r2
+ lsls r0, 1
+ str r0, [sp, 0x2C]
+_08040FBE:
+ movs r2, 0
+ adds r1, 0x1
+ str r1, [sp, 0x34]
+ ldr r3, [sp, 0x28]
+ cmp r2, r3
+ bcc _08040FCC
+ b _08041124
+_08040FCC:
+ ldr r0, _0804100C
+ mov r8, r0
+_08040FD0:
+ ldrh r1, [r4]
+ ldr r0, _08041010
+ ands r0, r1
+ lsls r0, 5
+ mov r12, r0
+ movs r0, 0xC0
+ lsls r0, 4
+ ands r0, r1
+ mov r3, sp
+ strh r1, [r3, 0x38]
+ cmp r0, 0
+ bne _08041018
+ ldr r0, [sp, 0x20]
+ add r0, r12
+ mov r1, r8
+ str r0, [r1]
+ str r7, [r1, 0x4]
+ ldr r3, _08041014
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, 0x2
+ str r4, [sp, 0x30]
+ adds r7, 0x20
+ mov r10, r7
+ adds r2, 0x1
+ mov r9, r2
+ b _08041112
+ .align 2, 0
+_08041008: .4byte gUnknown_082087C4
+_0804100C: .4byte 0x040000d4
+_08041010: .4byte 0x000003ff
+_08041014: .4byte 0x84000008
+_08041018:
+ movs r1, 0x80
+ lsls r1, 4
+ cmp r0, r1
+ bne _08041068
+ movs r3, 0
+ adds r4, 0x2
+ str r4, [sp, 0x30]
+ movs r0, 0x20
+ adds r0, r7
+ mov r10, r0
+ adds r2, 0x1
+ mov r9, r2
+ ldr r4, _08041060
+ ldr r6, _08041064
+ movs r5, 0x7
+_08041036:
+ lsls r2, r3, 24
+ asrs r2, 24
+ subs r0, r5, r2
+ lsls r0, 2
+ add r0, r12
+ ldr r1, [sp, 0x20]
+ adds r0, r1, r0
+ lsls r1, r2, 2
+ adds r1, r7, r1
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r6, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r3, r2, 24
+ asrs r2, 24
+ cmp r2, 0x7
+ ble _08041036
+ b _08041112
+ .align 2, 0
+_08041060: .4byte 0x040000d4
+_08041064: .4byte 0x84000001
+_08041068:
+ movs r3, 0
+ adds r4, 0x2
+ str r4, [sp, 0x30]
+ movs r0, 0x20
+ adds r0, r7
+ mov r10, r0
+ adds r2, 0x1
+ mov r9, r2
+_08041078:
+ movs r2, 0
+ lsls r4, r3, 24
+ lsls r0, r4, 2
+ lsrs r0, 24
+ adds r6, r0, 0x3
+ mov r1, r12
+ adds r5, r1, r0
+_08041086:
+ lsls r1, r2, 24
+ asrs r1, 24
+ subs r0, r6, r1
+ mov r2, sp
+ adds r3, r2, r0
+ adds r0, r5, r1
+ ldr r2, [sp, 0x20]
+ adds r0, r2, r0
+ ldrb r2, [r0]
+ movs r0, 0xF
+ ands r0, r2
+ lsls r0, 4
+ lsrs r2, 4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r2, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _08041086
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r4, r3
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x7
+ ble _08041078
+ movs r0, 0x80
+ lsls r0, 4
+ mov r1, sp
+ ldrh r1, [r1, 0x38]
+ ands r0, r1
+ cmp r0, 0
+ beq _08041104
+ movs r3, 0
+ ldr r4, _080410FC
+ ldr r6, _08041100
+ movs r5, 0x7
+_080410D4:
+ lsls r1, r3, 24
+ asrs r1, 24
+ subs r0, r5, r1
+ lsls r0, 2
+ mov r3, sp
+ adds r2, r3, r0
+ lsls r0, r1, 2
+ adds r0, r7, r0
+ str r2, [r4]
+ str r0, [r4, 0x4]
+ str r6, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r3, r1, 24
+ asrs r1, 24
+ cmp r1, 0x7
+ ble _080410D4
+ b _08041112
+ .align 2, 0
+_080410FC: .4byte 0x040000d4
+_08041100: .4byte 0x84000001
+_08041104:
+ mov r0, sp
+ mov r1, r8
+ str r0, [r1]
+ str r7, [r1, 0x4]
+ ldr r2, _08041148
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_08041112:
+ ldr r4, [sp, 0x30]
+ mov r7, r10
+ mov r3, r9
+ lsls r0, r3, 24
+ lsrs r2, r0, 24
+ ldr r0, [sp, 0x28]
+ cmp r2, r0
+ bcs _08041124
+ b _08040FD0
+_08041124:
+ ldr r1, [sp, 0x2C]
+ adds r4, r1
+ ldr r2, [sp, 0x34]
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ ldr r3, [sp, 0x24]
+ cmp r1, r3
+ bcs _08041136
+ b _08040FBE
+_08041136:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041148: .4byte 0x84000008
+ thumb_func_end sub_8040F80
+
+ thumb_func_start sub_804114C
+sub_804114C: @ 804114C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+ movs r3, 0x1
+_08041154:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08041160
+ adds r0, r1, 0
+ b _0804116E
+_08041160:
+ lsrs r2, 1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1F
+ bls _08041154
+ movs r0, 0
+_0804116E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804114C
+
+ thumb_func_start sub_8041174
+sub_8041174: @ 8041174
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ ldr r2, _080411A4
+ movs r3, 0
+ cmp r3, r4
+ bge _080411C0
+ movs r6, 0x1
+ ldr r0, _080411A8
+ adds r5, r0, 0
+_08041188:
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ eors r2, r0
+ movs r1, 0
+ adds r3, 0x1
+_08041192:
+ adds r0, r2, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080411AC
+ lsrs r0, r2, 1
+ eors r0, r5
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080411AE
+ .align 2, 0
+_080411A4: .4byte 0x00001121
+_080411A8: .4byte 0x00008408
+_080411AC:
+ lsrs r2, 1
+_080411AE:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _08041192
+ lsls r0, r3, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ blt _08041188
+_080411C0:
+ mvns r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8041174
+
+ thumb_func_start unref_sub_80411CC
+unref_sub_80411CC: @ 80411CC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r2, _08041208
+ movs r3, 0
+ cmp r3, r4
+ bge _080411FA
+ ldr r6, _0804120C
+_080411DC:
+ lsrs r1, r2, 8
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ eors r2, r0
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r6
+ ldrh r0, [r0]
+ adds r2, r0, 0
+ eors r2, r1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ blt _080411DC
+_080411FA:
+ mvns r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041208: .4byte 0x00001121
+_0804120C: .4byte gUnknown_082087DC
+ thumb_func_end unref_sub_80411CC
+
+ thumb_func_start BlendPalette
+BlendPalette: @ 8041210
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r12, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ mov r0, sp
+ strh r3, [r0]
+ movs r6, 0
+ cmp r6, r12
+ bcs _08041296
+ ldr r0, _080412A8
+ mov r10, r0
+ ldr r1, _080412AC
+ mov r9, r1
+_0804123E:
+ mov r0, r8
+ adds r5, r6, r0
+ lsls r5, 16
+ lsrs r5, 15
+ mov r1, r10
+ adds r0, r5, r1
+ ldr r3, [r0]
+ lsls r4, r3, 27
+ lsls r2, r3, 22
+ lsls r3, 17
+ add r5, r9
+ lsrs r4, 27
+ ldr r1, [sp]
+ lsls r0, r1, 27
+ lsrs r0, 27
+ subs r0, r4
+ muls r0, r7
+ asrs r0, 4
+ adds r4, r0
+ lsrs r2, 27
+ lsls r0, r1, 22
+ lsrs r0, 27
+ subs r0, r2
+ muls r0, r7
+ asrs r0, 4
+ adds r2, r0
+ lsls r2, 5
+ orrs r4, r2
+ lsrs r3, 27
+ lsls r1, 17
+ lsrs r1, 27
+ subs r1, r3
+ adds r0, r1, 0
+ muls r0, r7
+ asrs r0, 4
+ adds r3, r0
+ lsls r3, 10
+ orrs r4, r3
+ strh r4, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r12
+ bcc _0804123E
+_08041296:
+ 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
+_080412A8: .4byte 0x0202eac8
+_080412AC: .4byte 0x0202eec8
+ thumb_func_end BlendPalette
+
+ thumb_func_start pokemon_get_nick
+pokemon_get_nick: @ 80412B0
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r1, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy10
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_nick
+
+ thumb_func_start pokemon_get_nick_
+pokemon_get_nick_: @ 80412D0
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r1, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetEncryptedField
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy10
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_nick_
+
+ thumb_func_start daycare_count_pokemon
+daycare_count_pokemon: @ 80412F0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r4, 0
+_080412F8:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r6, r0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ beq _08041310
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08041310:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _080412F8
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_count_pokemon
+
+ thumb_func_start sub_8041324
+sub_8041324: @ 8041324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ mov r10, r1
+ movs r7, 0
+ movs r5, 0
+ mov r6, r10
+ adds r6, 0x74
+ movs r0, 0x1
+ mov r8, r0
+_0804133E:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ beq _0804136E
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl PokemonGetEncryptedField
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0804136E
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ b _08041374
+_0804136E:
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ mov r1, r8
+_08041374:
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0804133E
+ mov r0, r10
+ str r7, [r0, 0x70]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041324
+
+ thumb_func_start daycare_empty_slot
+daycare_empty_slot: @ 8041394
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0804139A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r5, r0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ bne _080413B2
+ lsls r0, r4, 24
+ asrs r0, 24
+ b _080413C0
+_080413B2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0804139A
+ movs r0, 0x1
+ negs r0, r0
+_080413C0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_empty_slot
+
+ thumb_func_start sub_80413C8
+sub_80413C8: @ 80413C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ mov r8, r1
+ mov r0, r8
+ bl daycare_empty_slot
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r9, r4
+ adds r0, r7, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804144A
+ lsls r0, r4, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ subs r4, r0
+ lsls r4, 3
+ adds r5, r4, 0
+ adds r5, 0xA0
+ add r5, r8
+ adds r6, r5, 0
+ adds r6, 0x24
+ ldr r1, _08041490
+ adds r0, r6, 0
+ bl StringCopy
+ adds r0, r6, 0
+ movs r1, 0xFC
+ bl sub_814A518
+ adds r6, 0x8
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl pokemon_get_nick
+ adds r0, r7, 0
+ movs r1, 0x40
+ bl PokemonGetField
+ lsls r0, 24
+ lsrs r0, 24
+ add r4, r8
+ ldr r2, _08041494
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r4, 0xA0
+ ldr r0, _08041498
+ adds r1, r0
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ adds r0, r7, 0
+ bl sub_80A2DF8
+_0804144A:
+ mov r2, r9
+ lsls r4, r2, 24
+ asrs r4, 24
+ lsls r5, r4, 2
+ adds r4, r5, r4
+ lsls r4, 4
+ add r4, r8
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ bl pokemon_restore_pp
+ movs r0, 0x88
+ lsls r0, 1
+ add r0, r8
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r7, 0
+ bl zero_pokemon_struct
+ bl party_compaction
+ bl calc_player_party_count
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041490: .4byte 0x02024ea4
+_08041494: .4byte 0x02025734
+_08041498: .4byte 0x00002b4c
+ thumb_func_end sub_80413C8
+
+ thumb_func_start daycare_send
+daycare_send: @ 804149C
+ push {lr}
+ ldr r0, _080414B4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080414B8
+ adds r0, r1
+ ldr r1, _080414BC
+ bl sub_80413C8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080414B4: .4byte 0x03005ce0
+_080414B8: .4byte 0x03004360
+_080414BC: .4byte 0x020286d0
+ thumb_func_end daycare_send
+
+ thumb_func_start sub_80414C0
+sub_80414C0: @ 80414C0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ beq _08041516
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ adds r6, r0, 0
+ cmp r6, 0
+ bne _08041516
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ bl zero_pokemon_boxed_data
+ adds r0, r5, 0
+ adds r0, 0xA0
+ adds r4, 0x88
+ adds r1, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ movs r0, 0x88
+ lsls r0, 1
+ adds r2, r5, r0
+ adds r0, 0x4
+ adds r1, r5, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ str r6, [r1]
+ adds r0, r4, 0
+ bl sub_80417F4
+_08041516:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80414C0
+
+ thumb_func_start sub_804151C
+sub_804151C: @ 804151C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldr r7, _08041538
+_08041524:
+ adds r0, r4, 0
+ bl sub_8040300
+ lsls r0, 24
+ cmp r0, 0
+ beq _08041560
+ movs r6, 0x1
+ adds r5, 0x1
+ b _0804154C
+ .align 2, 0
+_08041538: .4byte 0x0000ffff
+_0804153C:
+ movs r6, 0
+ cmp r0, r7
+ bne _0804154C
+ ldr r0, _0804156C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_803B8D4
+_0804154C:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0804153C
+ cmp r5, 0x63
+ ble _08041524
+_08041560:
+ adds r0, r4, 0
+ bl pokemon_calc_effective_stats
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804156C: .4byte 0x02024e82
+ thumb_func_end sub_804151C
+
+ thumb_func_start sub_8041570
+sub_8041570: @ 8041570
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x68
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r7, r4, 2
+ adds r0, r7, r4
+ lsls r0, 4
+ adds r6, r5, r0
+ ldr r1, _08041640
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_803B4B4
+ mov r0, sp
+ movs r1, 0x38
+ bl PokemonGetField
+ cmp r0, 0x64
+ beq _080415D8
+ mov r0, sp
+ movs r1, 0x19
+ bl PokemonGetField
+ movs r2, 0x88
+ lsls r2, 1
+ adds r1, r5, r2
+ adds r1, r7
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [sp, 0x64]
+ add r2, sp, 0x64
+ mov r0, sp
+ movs r1, 0x19
+ bl pokemon_setattr
+ mov r0, sp
+ bl sub_804151C
+_080415D8:
+ ldr r0, _08041644
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r1, r0
+ mov r8, r1
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r1, r0, 3
+ adds r0, r5, r1
+ adds r0, 0xC0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08041610
+ adds r4, r1, 0
+ adds r4, 0xA0
+ adds r4, r5, r4
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80417F4
+_08041610:
+ bl party_compaction
+ adds r0, r6, 0
+ bl zero_pokemon_boxed_data
+ movs r2, 0x88
+ lsls r2, 1
+ adds r0, r5, r2
+ adds r0, r7
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_80414C0
+ bl calc_player_party_count
+ mov r0, r9
+ add sp, 0x68
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041640: .4byte 0x020231cc
+_08041644: .4byte 0x03004360
+ thumb_func_end sub_8041570
+
+ thumb_func_start sub_8041648
+sub_8041648: @ 8041648
+ push {lr}
+ ldr r0, _0804165C
+ ldr r1, _08041660
+ ldrb r1, [r1]
+ bl sub_8041570
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804165C: .4byte 0x020286d0
+_08041660: .4byte 0x0202e8cc
+ thumb_func_end sub_8041648
+
+ thumb_func_start sub_8041664
+sub_8041664: @ 8041664
+ push {r4,r5,lr}
+ sub sp, 0x54
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl PokemonGetEncryptedField
+ adds r0, r5
+ str r0, [sp, 0x50]
+ add r2, sp, 0x50
+ mov r0, sp
+ movs r1, 0x19
+ bl PokemonSetEncryptedField
+ mov r0, sp
+ bl sub_803B570
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x54
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8041664
+
+ thumb_func_start sub_80416A0
+sub_80416A0: @ 80416A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ mov r8, r0
+ add r4, r8
+ lsls r4, 4
+ adds r4, r5, r4
+ adds r0, r4, 0
+ bl sub_803B570
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x88
+ lsls r0, 1
+ adds r5, r0
+ add r5, r8
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl sub_8041664
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80416A0
+
+ thumb_func_start sub_80416E8
+sub_80416E8: @ 80416E8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_80416A0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r6, r0
+ ldr r1, _08041720
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ ldr r0, _08041724
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041720: .4byte 0x020231cc
+_08041724: .4byte 0x020232cc
+ thumb_func_end sub_80416E8
+
+ thumb_func_start sub_8041728
+sub_8041728: @ 8041728
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_80416A0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r6, r0
+ ldr r1, _08041768
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ adds r4, 0x64
+ ldr r0, _0804176C
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041768: .4byte 0x020231cc
+_0804176C: .4byte 0x020232cc
+ thumb_func_end sub_8041728
+
+ thumb_func_start sub_8041770
+sub_8041770: @ 8041770
+ push {lr}
+ ldr r0, _08041784
+ ldr r1, _08041788
+ ldrb r1, [r1]
+ bl sub_8041728
+ ldr r1, _0804178C
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041784: .4byte 0x020286d0
+_08041788: .4byte 0x0202e8cc
+_0804178C: .4byte 0x0202e8ce
+ thumb_func_end sub_8041770
+
+ thumb_func_start sub_8041790
+sub_8041790: @ 8041790
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080417AC
+ ldr r1, _080417B0
+ adds r3, r2, r1
+ ldr r1, [r3]
+ adds r1, r0
+ str r1, [r3]
+ ldr r1, _080417B4
+ adds r2, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+ bx lr
+ .align 2, 0
+_080417AC: .4byte 0x02025734
+_080417B0: .4byte 0x000030ac
+_080417B4: .4byte 0x000030b0
+ thumb_func_end sub_8041790
+
+ thumb_func_start sub_80417B8
+sub_80417B8: @ 80417B8
+ push {r4,r5,lr}
+ ldr r5, _080417D8
+ ldrh r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ ldr r4, _080417DC
+ adds r0, r4
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ bne _080417E0
+ movs r0, 0
+ b _080417EC
+ .align 2, 0
+_080417D8: .4byte 0x0202e8cc
+_080417DC: .4byte 0x020286d0
+_080417E0:
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80416E8
+ lsls r0, 24
+ lsrs r0, 24
+_080417EC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80417B8
+
+ thumb_func_start sub_80417F4
+sub_80417F4: @ 80417F4
+ push {lr}
+ movs r3, 0
+ movs r2, 0x7
+ adds r1, r0, 0
+ adds r1, 0x2B
+_080417FE:
+ strb r3, [r1]
+ subs r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080417FE
+ adds r2, r0, 0
+ adds r2, 0x2C
+ movs r3, 0
+ adds r1, r0, 0
+ adds r1, 0x36
+_08041812:
+ strb r3, [r1]
+ subs r1, 0x1
+ cmp r1, r2
+ bge _08041812
+ bl sub_80A2B40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80417F4
+
+ thumb_func_start unref_sub_8041824
+unref_sub_8041824: @ 8041824
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+_0804182A:
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ bl zero_pokemon_boxed_data
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r6, r1
+ adds r0, r4
+ movs r4, 0
+ str r4, [r0]
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 3
+ adds r0, 0xA0
+ adds r0, r6, r0
+ bl sub_80417F4
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0804182A
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r0, r6, r2
+ movs r1, 0
+ strh r4, [r0]
+ adds r2, 0x2
+ adds r0, r6, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8041824
+
+ thumb_func_start sub_8041870
+sub_8041870: @ 8041870
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _0804189C
+ mov r12, r0
+_08041882:
+ movs r7, 0
+ movs r6, 0x1
+ movs r4, 0x80
+ lsls r4, 9
+ movs r5, 0x28
+ mov r3, r12
+ adds r3, 0x28
+_08041890:
+ movs r1, 0
+ ldrh r0, [r3, 0x4]
+ cmp r0, r2
+ bne _080418A0
+ lsrs r2, r4, 16
+ b _080418CC
+ .align 2, 0
+_0804189C: .4byte gEvolutionTable
+_080418A0:
+ adds r1, 0x1
+ cmp r1, 0x4
+ bgt _080418B6
+ lsls r0, r1, 3
+ adds r0, r5
+ add r0, r12
+ ldrh r0, [r0, 0x4]
+ cmp r0, r2
+ bne _080418A0
+ lsrs r2, r4, 16
+ movs r7, 0x1
+_080418B6:
+ cmp r7, 0
+ bne _080418CC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r5, 0x28
+ adds r3, 0x28
+ adds r6, 0x1
+ ldr r0, _080418EC
+ cmp r6, r0
+ ble _08041890
+_080418CC:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ beq _080418DE
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x4
+ ble _08041882
+_080418DE:
+ adds r0, r2, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080418EC: .4byte 0x0000019b
+ thumb_func_end sub_8041870
+
+ thumb_func_start sub_80418F0
+sub_80418F0: @ 80418F0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08041918
+ bl __umodsi3
+ adds r0, 0x1
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ movs r0, 0x86
+ bl FlagSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041918: .4byte 0x0000fffe
+ thumb_func_end sub_80418F0
+
+ thumb_func_start sub_804191C
+sub_804191C: @ 804191C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r4, r2
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, 0x86
+ bl FlagSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804191C
+
+ thumb_func_start sub_8041940
+sub_8041940: @ 8041940
+ push {lr}
+ ldr r0, _0804194C
+ bl sub_80418F0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804194C: .4byte 0x020286d0
+ thumb_func_end sub_8041940
+
+ thumb_func_start sub_8041950
+sub_8041950: @ 8041950
+ push {lr}
+ ldr r0, _0804195C
+ bl sub_804191C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804195C: .4byte 0x020286d0
+ thumb_func_end sub_8041950
+
+ thumb_func_start sub_8041960
+sub_8041960: @ 8041960
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r2, 0
+_08041972:
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _08041972
+ movs r3, 0
+ movs r2, 0
+_08041986:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _08041998
+ adds r0, r4, r3
+ strb r1, [r0]
+ adds r3, 0x1
+_08041998:
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _08041986
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041960
+
+ thumb_func_start sub_80419A8
+sub_80419A8: @ 80419A8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r9, r0
+ mov r8, r1
+ movs r5, 0
+ add r1, sp, 0x4
+ add r7, sp, 0xC
+ adds r2, r1, 0
+_080419BE:
+ adds r0, r2, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080419BE
+ movs r5, 0
+ adds r6, r1, 0
+_080419D0:
+ bl Random
+ mov r1, sp
+ adds r4, r1, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ subs r1, r5
+ bl __modsi3
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl sub_8041960
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080419D0
+ movs r5, 0
+ movs r4, 0x1
+_08041A00:
+ bl Random
+ adds r1, r7, r5
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r4
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08041A00
+ movs r5, 0
+_08041A1A:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08041B02
+ lsls r0, 2
+ ldr r1, _08041A30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08041A30: .4byte _08041A34
+ .align 2, 0
+_08041A34:
+ .4byte _08041A4C
+ .4byte _08041A6C
+ .4byte _08041A88
+ .4byte _08041AA4
+ .4byte _08041AC0
+ .4byte _08041AE2
+_08041A4C:
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x27
+ bl PokemonGetEncryptedField
+ add r2, sp, 0x10
+ strb r0, [r2]
+ mov r0, r9
+ movs r1, 0x27
+ bl pokemon_setattr
+ b _08041B02
+_08041A6C:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x28
+ bl PokemonGetEncryptedField
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x28
+ b _08041ADA
+_08041A88:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x29
+ bl PokemonGetEncryptedField
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x29
+ b _08041ADA
+_08041AA4:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2A
+ bl PokemonGetEncryptedField
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2A
+ b _08041ADA
+_08041AC0:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2B
+ bl PokemonGetEncryptedField
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2B
+_08041ADA:
+ adds r2, r4, 0
+ bl pokemon_setattr
+ b _08041B02
+_08041AE2:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2C
+ bl PokemonGetEncryptedField
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2C
+ adds r2, r4, 0
+ bl pokemon_setattr
+_08041B02:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08041A1A
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80419A8
+
+ thumb_func_start pokemon_get_eggmoves
+pokemon_get_eggmoves: @ 8041B1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ movs r6, 0
+ movs r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r5, _08041B44
+ ldrh r1, [r5]
+ ldr r7, _08041B48
+ adds r0, r3, r7
+ cmp r1, r0
+ bne _08041B4C
+ movs r4, 0x1
+ b _08041B6E
+ .align 2, 0
+_08041B44: .4byte gEggMoves
+_08041B48: .4byte 0x00004e20
+_08041B4C:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _08041BB8
+ ldr r5, _08041BBC
+ cmp r2, r0
+ bhi _08041B6E
+ lsls r0, r2, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r7, _08041BC0
+ adds r0, r3, r7
+ cmp r1, r0
+ bne _08041B4C
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08041B6E:
+ movs r2, 0
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r1, _08041BC0
+ cmp r0, r1
+ bhi _08041BAA
+ adds r7, r5, 0
+ adds r3, r1, 0
+_08041B80:
+ lsls r1, r2, 1
+ add r1, r8
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bhi _08041BAA
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bls _08041B80
+_08041BAA:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041BB8: .4byte 0x00000471
+_08041BBC: .4byte gEggMoves
+_08041BC0: .4byte 0x00004e20
+ thumb_func_end pokemon_get_eggmoves
+
+ thumb_func_start daycare_build_child_moveset
+daycare_build_child_moveset: @ 8041BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ mov r10, r1
+ mov r9, r2
+ movs r0, 0
+ str r0, [sp]
+ movs r6, 0
+ ldr r5, _08041CC8
+ movs r2, 0
+ ldr r4, _08041CCC
+ ldr r3, _08041CD0
+_08041BE4:
+ lsls r1, r6, 1
+ adds r0, r1, r5
+ strh r2, [r0]
+ adds r0, r1, r4
+ strh r2, [r0]
+ adds r1, r3
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041BE4
+ movs r6, 0
+ ldr r2, _08041CD4
+ movs r1, 0
+_08041C02:
+ lsls r0, r6, 1
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _08041C02
+ movs r6, 0
+ ldr r2, _08041CD8
+ movs r1, 0
+_08041C18:
+ lsls r0, r6, 1
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x31
+ bls _08041C18
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08041CD8
+ bl sub_804051C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r6, 0
+ ldr r1, _08041CCC
+ mov r8, r1
+_08041C46:
+ adds r5, r6, 0
+ adds r5, 0xD
+ mov r0, r10
+ adds r1, r5, 0
+ bl PokemonGetEncryptedField
+ lsls r4, r6, 1
+ mov r2, r8
+ adds r1, r4, r2
+ strh r0, [r1]
+ mov r0, r9
+ adds r1, r5, 0
+ bl PokemonGetEncryptedField
+ ldr r1, _08041CC8
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041C46
+ ldr r1, _08041CD4
+ adds r0, r7, 0
+ bl pokemon_get_eggmoves
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r6, 0
+_08041C82:
+ ldr r0, _08041CCC
+ lsls r1, r6, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ mov r9, r0
+ cmp r1, 0
+ beq _08041CF8
+ movs r5, 0
+ cmp r5, r8
+ bcs _08041CEA
+ adds r4, r2, 0
+ ldr r2, _08041CDC
+_08041C9A:
+ ldr r0, _08041CD4
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08041CE0
+ adds r1, r0, 0
+ adds r0, r7, 0
+ str r2, [sp, 0x8]
+ bl pokemon_moveset_pad_
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _08041CEA
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl sub_803B8D4
+ b _08041CEA
+ .align 2, 0
+_08041CC8: .4byte 0x03000500
+_08041CCC: .4byte 0x030004d8
+_08041CD0: .4byte 0x030004e0
+_08041CD4: .4byte 0x030004e8
+_08041CD8: .4byte 0x03000470
+_08041CDC: .4byte 0x0000ffff
+_08041CE0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _08041C9A
+_08041CEA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, _08041E14
+ mov r9, r3
+ cmp r6, 0x3
+ bls _08041C82
+_08041CF8:
+ movs r6, 0
+_08041CFA:
+ lsls r0, r6, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ adds r6, 0x1
+ mov r8, r6
+ cmp r1, 0
+ beq _08041D5C
+ movs r5, 0
+ ldr r0, _08041E14
+ adds r4, r2, r0
+ ldr r6, _08041E18
+ mov r9, r0
+_08041D16:
+ ldr r3, _08041E1C
+ adds r0, r5, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl ItemIdToBattleMoveId
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bne _08041D52
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ bl sub_8040374
+ cmp r0, 0
+ beq _08041D52
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl pokemon_moveset_pad_
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bne _08041D52
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl sub_803B8D4
+_08041D52:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x39
+ bls _08041D16
+_08041D5C:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041CFA
+ movs r6, 0
+ mov r2, r9
+ ldrh r0, [r2]
+ ldr r3, _08041E20
+ mov r10, r3
+ cmp r0, 0
+ beq _08041DC6
+ mov r4, r9
+ ldr r0, _08041E24
+ mov r9, r0
+ mov r12, r10
+_08041D7C:
+ movs r5, 0
+ lsls r2, r6, 1
+ adds r6, 0x1
+ mov r8, r6
+ adds r3, r2, r4
+_08041D86:
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r2, [r3]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08041DA8
+ cmp r1, 0
+ beq _08041DA8
+ ldr r1, [sp]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 1
+ add r1, r12
+ strh r2, [r1]
+_08041DA8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _08041D86
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bhi _08041DC6
+ lsls r0, r6, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08041D7C
+_08041DC6:
+ movs r6, 0
+ mov r2, r10
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08041E50
+_08041DD0:
+ movs r5, 0
+ adds r3, r6, 0x1
+ mov r8, r3
+ ldr r0, [sp, 0x4]
+ cmp r5, r0
+ bcs _08041E38
+ ldr r2, _08041E18
+_08041DDE:
+ ldr r1, _08041E28
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08041E2C
+ lsls r0, r6, 1
+ mov r3, r10
+ adds r4, r0, r3
+ ldrh r0, [r4]
+ cmp r0, r1
+ bne _08041E2C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ str r2, [sp, 0x8]
+ bl pokemon_moveset_pad_
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _08041E38
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl sub_803B8D4
+ b _08041E38
+ .align 2, 0
+_08041E14: .4byte 0x030004d8
+_08041E18: .4byte 0x0000ffff
+_08041E1C: .4byte 0x00000121
+_08041E20: .4byte 0x030004e0
+_08041E24: .4byte 0x03000500
+_08041E28: .4byte 0x03000470
+_08041E2C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [sp, 0x4]
+ cmp r5, r0
+ bcc _08041DDE
+_08041E38:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bhi _08041E50
+ ldr r0, _08041E60
+ lsls r1, r6, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r10, r0
+ cmp r1, 0
+ bne _08041DD0
+_08041E50:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E60: .4byte 0x030004e0
+ thumb_func_end daycare_build_child_moveset
+
+ thumb_func_start sub_8041E64
+sub_8041E64: @ 8041E64
+ adds r3, r0, 0
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r1, 0x8D
+ lsls r1, 1
+ adds r0, r3, r1
+ strb r2, [r0]
+ bx lr
+ thumb_func_end sub_8041E64
+
+ thumb_func_start sub_8041E7C
+sub_8041E7C: @ 8041E7C
+ push {lr}
+ ldr r0, _08041E88
+ bl sub_8041E64
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E88: .4byte 0x020286d0
+ thumb_func_end sub_8041E7C
+
+ thumb_func_start incense_effects
+incense_effects: @ 8041E8C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrh r1, [r4]
+ movs r7, 0xB4
+ lsls r7, 1
+ cmp r1, r7
+ beq _08041EA4
+ movs r0, 0xAF
+ lsls r0, 1
+ cmp r1, r0
+ bne _08041EE6
+_08041EA4:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl PokemonGetEncryptedField
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r0, 0x50
+ movs r1, 0xC
+ bl PokemonGetEncryptedField
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08041ED0
+ cmp r6, 0xDD
+ beq _08041ED0
+ cmp r2, 0xDD
+ beq _08041ED0
+ movs r0, 0xCA
+ strh r0, [r4]
+_08041ED0:
+ ldrh r1, [r4]
+ movs r0, 0xAF
+ lsls r0, 1
+ cmp r1, r0
+ bne _08041EE6
+ cmp r6, 0xDC
+ beq _08041EE6
+ cmp r2, 0xDC
+ beq _08041EE6
+ movs r0, 0xB7
+ strh r0, [r4]
+_08041EE6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end incense_effects
+
+ thumb_func_start sub_8041EEC
+sub_8041EEC: @ 8041EEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ movs r4, 0
+ movs r7, 0x1
+_08041EFC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ mov r1, r8
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ lsls r1, r4, 1
+ add r1, sp
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bne _08041F26
+ adds r0, r4, 0
+ eors r0, r7
+ strb r0, [r6]
+ strb r4, [r6, 0x1]
+ b _08041F3C
+_08041F26:
+ adds r0, r5, 0
+ bl pokemon_roll_gender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFE
+ bne _08041F3C
+ strb r4, [r6]
+ adds r0, r4, 0
+ eors r0, r7
+ strb r0, [r6, 0x1]
+_08041F3C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08041EFC
+ ldrb r0, [r6]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ bl sub_8041870
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bne _08041F6E
+ movs r0, 0x8C
+ lsls r0, 1
+ add r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08041F6E
+ movs r4, 0x20
+_08041F6E:
+ ldr r0, _08041FC0
+ cmp r4, r0
+ bne _08041F88
+ subs r0, 0x6B
+ add r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08041F88
+ movs r4, 0xC1
+ lsls r4, 1
+_08041F88:
+ ldrb r0, [r6, 0x1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x84
+ bne _08041FB2
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ bl pokemon_roll_gender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFE
+ beq _08041FB2
+ ldrb r1, [r6, 0x1]
+ ldrb r0, [r6]
+ strb r0, [r6, 0x1]
+ strb r1, [r6]
+_08041FB2:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041FC0: .4byte 0x00000183
+ thumb_func_end sub_8041EEC
+
+ thumb_func_start sub_8041FC4
+sub_8041FC4: @ 8041FC4
+ push {r4-r6,lr}
+ sub sp, 0x6C
+ adds r5, r0, 0
+ add r6, sp, 0x64
+ adds r1, r6, 0
+ bl sub_8041EEC
+ add r4, sp, 0x68
+ strh r0, [r4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl incense_effects
+ ldrh r1, [r4]
+ mov r0, sp
+ adds r2, r5, 0
+ bl sub_80420FC
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80419A8
+ ldrb r0, [r6, 0x1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 4
+ adds r1, r5, r1
+ ldrb r0, [r6]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 4
+ adds r2, r5, r2
+ mov r0, sp
+ bl daycare_build_child_moveset
+ mov r2, sp
+ adds r2, 0x6A
+ movs r0, 0x1
+ strb r0, [r2]
+ mov r0, sp
+ movs r1, 0x2D
+ bl pokemon_setattr
+ ldr r0, _08042040
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ bl party_compaction
+ bl calc_player_party_count
+ adds r0, r5, 0
+ bl sub_8041E64
+ add sp, 0x6C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042040: .4byte 0x03004360
+ thumb_func_end sub_8041FC4
+
+ thumb_func_start sub_8042044
+sub_8042044: @ 8042044
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ adds r7, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 24
+ lsrs r6, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0x20
+ bl create_pokemon_set_level
+ movs r0, 0x12
+ add r0, sp
+ mov r8, r0
+ strb r4, [r0]
+ movs r1, 0x4
+ add r0, sp, 0x10
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x13
+ movs r0, 0x1
+ mov r9, r0
+ mov r0, r9
+ strb r0, [r4]
+ adds r0, r7, 0
+ movs r1, 0x26
+ add r2, sp, 0x10
+ bl pokemon_setattr
+ ldr r2, _080420F4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl pokemon_setattr
+ lsls r2, r5, 3
+ subs r2, r5
+ lsls r2, 2
+ ldr r0, _080420F8
+ adds r2, r0
+ adds r0, r7, 0
+ movs r1, 0x20
+ bl pokemon_setattr
+ adds r0, r7, 0
+ movs r1, 0x24
+ mov r2, r8
+ bl pokemon_setattr
+ adds r0, r7, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl pokemon_setattr
+ cmp r6, 0
+ beq _080420D6
+ add r2, sp, 0x14
+ movs r0, 0xFD
+ strb r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x23
+ bl pokemon_setattr
+_080420D6:
+ mov r2, sp
+ adds r2, 0x15
+ mov r0, r9
+ strb r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl pokemon_setattr
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080420F4: .4byte gUnknown_08209AD4
+_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
+ thumb_func_end sub_8042044
+
+ thumb_func_start sub_80420FC
+sub_80420FC: @ 80420FC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl Random
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r1
+ ldrh r1, [r4]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x1
+ mov r8, r0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0x20
+ bl create_pokemon_set_level
+ movs r1, 0x12
+ add r1, sp
+ mov r9, r1
+ strb r4, [r1]
+ movs r1, 0x4
+ add r0, sp, 0x10
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x13
+ mov r0, r8
+ strb r0, [r4]
+ adds r0, r6, 0
+ movs r1, 0x26
+ add r2, sp, 0x10
+ bl pokemon_setattr
+ ldr r2, _08042198
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl pokemon_setattr
+ lsls r2, r5, 3
+ subs r2, r5
+ lsls r2, 2
+ ldr r0, _0804219C
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl pokemon_setattr
+ adds r0, r6, 0
+ movs r1, 0x24
+ mov r2, r9
+ bl pokemon_setattr
+ adds r0, r6, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl pokemon_setattr
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042198: .4byte gUnknown_08209AD4
+_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
+ thumb_func_end sub_80420FC
+
+ thumb_func_start sp0B8_daycare
+sp0B8_daycare: @ 80421A0
+ push {lr}
+ ldr r0, _080421AC
+ bl sub_8041FC4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080421AC: .4byte 0x020286d0
+ thumb_func_end sp0B8_daycare
+
+ thumb_func_start sub_80421B0
+sub_80421B0: @ 80421B0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r2, 0
+ movs r6, 0
+ adds r5, r7, 0
+_080421BC:
+ lsls r4, r6, 2
+ adds r0, r5, 0
+ movs r1, 0x5
+ str r2, [sp, 0x4]
+ bl PokemonGetEncryptedField
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ beq _080421DE
+ movs r0, 0x88
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r1, r4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ adds r2, 0x1
+_080421DE:
+ adds r5, 0x50
+ adds r6, 0x1
+ cmp r6, 0x1
+ bls _080421BC
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08042226
+ cmp r2, 0x2
+ bne _08042226
+ subs r1, 0x4
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08042226
+ adds r0, r7, 0
+ bl daycare_relationship_score
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08042240
+ bl __udivsi3
+ cmp r4, r0
+ bls _08042226
+ bl sub_8041940
+_08042226:
+ movs r0, 0x8D
+ lsls r0, 1
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08042290
+ movs r6, 0
+ b _08042288
+ .align 2, 0
+_08042240: .4byte 0x0000ffff
+_08042244:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08042270
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ beq _08042286
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl PokemonGetField
+ str r0, [sp]
+ cmp r0, 0
+ bne _08042278
+ ldr r0, _08042274
+ strh r6, [r0]
+ movs r0, 0x1
+ b _08042292
+ .align 2, 0
+_08042270: .4byte 0x03004360
+_08042274: .4byte 0x0202e8cc
+_08042278:
+ subs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl pokemon_setattr
+_08042286:
+ adds r6, 0x1
+_08042288:
+ ldr r0, _0804229C
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _08042244
+_08042290:
+ movs r0, 0
+_08042292:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804229C: .4byte 0x03004350
+ thumb_func_end sub_80421B0
+
+ thumb_func_start sub_80422A0
+sub_80422A0: @ 80422A0
+ push {lr}
+ ldr r0, _080422B0
+ bl sub_80421B0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080422B0: .4byte 0x020286d0
+ thumb_func_end sub_80422A0
+
+ thumb_func_start sub_80422B4
+sub_80422B4: @ 80422B4
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ thumb_func_end sub_80422B4
+
+ thumb_func_start sub_80422C4
+sub_80422C4: @ 80422C4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ beq _080422FC
+ ldr r1, _0804231C
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl PokemonGetEncryptedField
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08042320
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r5, 0
+ bl PokemonGetEncryptedField
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl ConvertInternationalString
+_080422FC:
+ adds r4, r6, 0
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ cmp r0, 0
+ beq _08042314
+ ldr r1, _08042324
+ adds r0, r4, 0
+ bl pokemon_get_nick_
+_08042314:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804231C: .4byte 0x020231cc
+_08042320: .4byte 0x020233cc
+_08042324: .4byte 0x020232cc
+ thumb_func_end sub_80422C4
+
+ thumb_func_start sub_8042328
+sub_8042328: @ 8042328
+ push {r4-r6,lr}
+ ldr r6, _08042354
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08042358
+ adds r0, r4
+ ldr r1, _0804235C
+ bl pokemon_get_nick_
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042354: .4byte 0x03005ce0
+_08042358: .4byte 0x03004360
+_0804235C: .4byte 0x020231cc
+ thumb_func_end sub_8042328
+
+ thumb_func_start sp0B5_daycare
+sp0B5_daycare: @ 8042360
+ push {lr}
+ ldr r0, _0804236C
+ bl sub_80422C4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804236C: .4byte 0x020286d0
+ thumb_func_end sp0B5_daycare
+
+ thumb_func_start sp0B6_daycare
+sp0B6_daycare: @ 8042370
+ push {r4,lr}
+ ldr r4, _08042384
+ adds r0, r4, 0
+ bl sub_80422B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042388
+ movs r0, 0x1
+ b _080423A0
+ .align 2, 0
+_08042384: .4byte 0x020286d0
+_08042388:
+ adds r0, r4, 0
+ bl daycare_count_pokemon
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0804239A
+ movs r0, 0
+ b _080423A0
+_0804239A:
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080423A0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sp0B6_daycare
+
+ thumb_func_start sub_80423A8
+sub_80423A8: @ 80423A8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ movs r4, 0
+ adds r1, r0, 0
+_080423B0:
+ movs r3, 0
+ ldrh r0, [r1]
+ adds r2, r5, 0
+_080423B6:
+ ldrh r6, [r2]
+ cmp r0, r6
+ bne _080423C0
+ movs r0, 0x1
+ b _080423D2
+_080423C0:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _080423B6
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _080423B0
+ movs r0, 0
+_080423D2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80423A8
+
+ thumb_func_start daycare_relationship_score
+daycare_relationship_score: @ 80423D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r1, 0
+ mov r8, r1
+ mov r2, sp
+ adds r2, 0x8
+ str r2, [sp, 0x1C]
+ add r1, sp, 0xC
+ mov r10, r1
+ adds r2, 0xC
+ str r2, [sp, 0x20]
+ mov r1, sp
+ adds r1, 0x2
+ ldr r2, _08042488
+ mov r9, r2
+ ldr r5, [sp, 0x1C]
+ adds r7, r1, 0
+ mov r6, sp
+ ldr r1, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r2, r10
+ str r2, [sp, 0x28]
+ adds r4, r0, 0
+_0804240E:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetEncryptedField
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl PokemonGetEncryptedField
+ ldr r1, [sp, 0x28]
+ stm r1!, {r0}
+ str r1, [sp, 0x28]
+ adds r0, r4, 0
+ movs r1, 0
+ bl PokemonGetEncryptedField
+ adds r1, r0, 0
+ ldrh r0, [r5]
+ bl pokemon_species_get_gender_info
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x24]
+ stm r2!, {r0}
+ str r2, [sp, 0x24]
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x14]
+ strh r0, [r6]
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x15]
+ strh r0, [r7]
+ adds r5, 0x2
+ adds r7, 0x4
+ adds r6, 0x4
+ adds r4, 0x50
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x1
+ bls _0804240E
+ mov r0, sp
+ ldrh r1, [r0]
+ cmp r1, 0xF
+ beq _08042484
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0xF
+ beq _08042484
+ cmp r1, 0xD
+ bne _0804248C
+ cmp r0, 0xD
+ bne _08042490
+_08042484:
+ movs r0, 0
+ b _080424E4
+ .align 2, 0
+_08042488: .4byte gBaseStats
+_0804248C:
+ cmp r0, 0xD
+ bne _0804249C
+_08042490:
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ beq _080424DE
+ b _080424E2
+_0804249C:
+ ldr r0, [sp, 0x14]
+ ldr r2, [sp, 0x20]
+ ldr r1, [r2, 0x4]
+ cmp r0, r1
+ beq _08042484
+ cmp r0, 0xFF
+ beq _08042484
+ cmp r1, 0xFF
+ beq _08042484
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_80423A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042484
+ ldr r0, [sp, 0x1C]
+ ldrh r1, [r0, 0x2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _080424D4
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ beq _080424E2
+ movs r0, 0x46
+ b _080424E4
+_080424D4:
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bne _080424E2
+_080424DE:
+ movs r0, 0x14
+ b _080424E4
+_080424E2:
+ movs r0, 0x32
+_080424E4:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_relationship_score
+
+ thumb_func_start daycare_relationship_score_from_savegame
+daycare_relationship_score_from_savegame: @ 80424F4
+ push {lr}
+ ldr r0, _08042504
+ bl daycare_relationship_score
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042504: .4byte 0x020286d0
+ thumb_func_end daycare_relationship_score_from_savegame
+
+ thumb_func_start sp0B9_daycare_relationship_comment
+sp0B9_daycare_relationship_comment: @ 8042508
+ push {lr}
+ bl daycare_relationship_score_from_savegame
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ movs r1, 0
+ cmp r0, 0
+ bne _0804251C
+ movs r1, 0x3
+_0804251C:
+ cmp r0, 0x14
+ bne _08042522
+ movs r1, 0x2
+_08042522:
+ cmp r0, 0x32
+ bne _08042528
+ movs r1, 0x1
+_08042528:
+ cmp r2, 0x46
+ bne _0804252E
+ movs r1, 0
+_0804252E:
+ ldr r0, _08042540
+ ldr r2, _08042544
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042540: .4byte 0x020234cc
+_08042544: .4byte gUnknown_08209AC4
+ thumb_func_end sp0B9_daycare_relationship_comment
+
+ thumb_func_start sub_8042548
+sub_8042548: @ 8042548
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r2, sp
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ strb r0, [r2]
+ movs r3, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0804258C
+_08042564:
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ cmp r0, 0xB5
+ bne _08042572
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+_08042572:
+ ldrb r0, [r1]
+ cmp r0, 0xB6
+ bne _0804257E
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ strb r0, [r2, 0x1]
+_0804257E:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08042564
+_0804258C:
+ cmp r5, 0
+ bne _080425A0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080425A0
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080425B4
+_080425A0:
+ cmp r5, 0xFE
+ bne _080425B8
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080425B8
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080425B8
+_080425B4:
+ movs r0, 0x1
+ b _080425BA
+_080425B8:
+ movs r0, 0
+_080425BA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042548
+
+ thumb_func_start sub_80425C4
+sub_80425C4: @ 80425C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080425E4
+ movs r1, 0
+ bl sub_8042548
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042600
+ ldr r1, _080425E0
+ b _08042602
+ .align 2, 0
+_080425E0: .4byte gUnknown_0820C33D
+_080425E4:
+ cmp r1, 0xFE
+ bne _08042600
+ adds r0, r4, 0
+ movs r1, 0xFE
+ bl sub_8042548
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042600
+ ldr r1, _080425FC
+ b _08042602
+ .align 2, 0
+_080425FC: .4byte gUnknown_0820C33F
+_08042600:
+ ldr r1, _08042610
+_08042602:
+ adds r0, r4, 0
+ bl StringAppend
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042610: .4byte gUnknown_0820C341
+ thumb_func_end sub_80425C4
+
+ thumb_func_start sub_8042614
+sub_8042614: @ 8042614
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ bl pokemon_roll_gender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80425C4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042614
+
+ thumb_func_start sub_8042630
+sub_8042630: @ 8042630
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x28
+ mov r8, r0
+ adds r7, r1, 0
+ movs r0, 0xFF
+ strb r0, [r7]
+ movs r6, 0
+ add r0, sp, 0x14
+ mov r9, r0
+_08042648:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r0, 2
+ mov r1, sp
+ adds r5, r1, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl pokemon_get_nick_
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8042614
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _08042648
+ adds r0, r7, 0
+ mov r1, sp
+ bl StringCopy
+ ldr r4, _080426A8
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringAppend
+ adds r0, r7, 0
+ mov r1, r9
+ bl StringAppend
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringAppend
+ ldr r1, _080426AC
+ adds r0, r7, 0
+ bl StringAppend
+ add sp, 0x28
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080426A8: .4byte gUnknown_0842CC28
+_080426AC: .4byte gUnknown_0842CC2A
+ thumb_func_end sub_8042630
+
+ thumb_func_start sub_80426B0
+sub_80426B0: @ 80426B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r5, 0
+ movs r0, 0xFC
+ mov r8, r0
+ movs r7, 0x14
+_080426C6:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r6, r3
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8041664
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ mov r0, r8
+ strb r0, [r4, 0x1]
+ strb r7, [r4, 0x2]
+ movs r0, 0x6
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, r0, 0
+ mov r3, r8
+ strb r3, [r4]
+ strb r7, [r4, 0x1]
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ adds r0, r4, 0x3
+ ldr r1, _08042728
+ bl StringCopy
+ adds r4, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _080426C6
+ movs r0, 0xFF
+ strb r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042728: .4byte gUnknown_0842CC28
+ thumb_func_end sub_80426B0
+
+ thumb_func_start sub_804272C
+sub_804272C: @ 804272C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08042760
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08042768
+ ldr r0, _08042764
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08042816
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ b _0804278A
+ .align 2, 0
+_08042760: .4byte 0x03001770
+_08042764: .4byte 0x03004b20
+_08042768:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804279C
+ ldr r0, _08042798
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ beq _08042816
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+_0804278A:
+ bl MoveMenuCursor
+ movs r0, 0x5
+ bl audio_play
+ b _08042816
+ .align 2, 0
+_08042798: .4byte 0x03004b20
+_0804279C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080427E8
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl audio_play
+ ldr r3, _080427DC
+ ldr r2, _080427E0
+ ldr r1, _080427E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strh r0, [r2]
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ bl script_env_2_enable_and_set_ctx_running
+ b _08042816
+ .align 2, 0
+_080427DC: .4byte 0x03005ce0
+_080427E0: .4byte 0x0202e8dc
+_080427E4: .4byte 0x03004b20
+_080427E8:
+ movs r4, 0x2
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08042816
+ bl sub_8072DEC
+ ldr r0, _0804281C
+ ldr r1, _08042820
+ strh r4, [r1]
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ bl script_env_2_enable_and_set_ctx_running
+_08042816:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804281C: .4byte 0x03005ce0
+_08042820: .4byte 0x0202e8dc
+ thumb_func_end sub_804272C
+
+ thumb_func_start sub_8042824
+sub_8042824: @ 8042824
+ push {r4,lr}
+ sub sp, 0x6C
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl DrawDefaultWindow
+ ldr r4, _08042880
+ adds r0, r4, 0
+ add r1, sp, 0x8
+ bl sub_8042630
+ add r0, sp, 0x8
+ movs r1, 0x10
+ movs r2, 0x7
+ bl Print
+ adds r0, r4, 0
+ add r1, sp, 0x8
+ bl sub_80426B0
+ add r0, sp, 0x8
+ movs r1, 0xCE
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_80729D8
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ movs r3, 0x3
+ bl InitMenu
+ ldr r0, _08042884
+ movs r1, 0x3
+ bl CreateTask
+ add sp, 0x6C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042880: .4byte 0x020286d0
+_08042884: .4byte sub_804272C
+ thumb_func_end sub_8042824
+
+ thumb_func_start sub_8042888
+sub_8042888: @ 8042888
+ push {lr}
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_806AFAC
+ ldr r1, _0804289C
+ ldr r0, _080428A0
+ str r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804289C: .4byte 0x03001770
+_080428A0: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8042888
+
+ thumb_func_start sub_80428A4
+sub_80428A4: @ 80428A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x48
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0
+ add r7, sp, 0x18
+ mov r0, sp
+ adds r0, 0x31
+ str r0, [sp, 0x38]
+ mov r1, sp
+ adds r1, 0x32
+ str r1, [sp, 0x3C]
+ add r0, sp, 0x30
+ mov r9, r0
+ adds r1, 0x1
+ str r1, [sp, 0x40]
+ mov r0, sp
+ adds r0, 0x34
+ str r0, [sp, 0x44]
+_080428DE:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl PokemonGetField
+ lsls r1, r4, 1
+ add r1, sp
+ adds r1, 0x10
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080428DE
+ adds r0, r6, 0
+ movs r1, 0
+ bl PokemonGetField
+ mov r8, r0
+ movs r4, 0
+_08042906:
+ adds r1, r4, 0
+ adds r1, 0x27
+ adds r0, r6, 0
+ bl PokemonGetField
+ lsls r1, r4, 2
+ adds r1, r7, r1
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08042906
+ adds r0, r6, 0
+ movs r1, 0x25
+ bl PokemonGetField
+ ldr r1, [sp, 0x38]
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl PokemonGetField
+ ldr r1, [sp, 0x3C]
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x22
+ bl PokemonGetField
+ str r0, [sp, 0x34]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ mov r1, r10
+ movs r2, 0x5
+ movs r3, 0x20
+ bl create_pokemon_set_level
+ movs r4, 0
+_0804295E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r0, r4, 1
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x10
+ adds r0, r5, 0
+ bl pokemon_setattr
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0804295E
+ movs r4, 0
+_0804297C:
+ adds r1, r4, 0
+ adds r1, 0x27
+ lsls r2, r4, 2
+ adds r2, r7, r2
+ adds r0, r5, 0
+ bl pokemon_setattr
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0804297C
+ movs r0, 0x2
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x3
+ mov r2, r9
+ bl pokemon_setattr
+ adds r0, r5, 0
+ movs r1, 0x25
+ ldr r2, [sp, 0x38]
+ bl pokemon_setattr
+ adds r0, r5, 0
+ movs r1, 0x8
+ ldr r2, [sp, 0x3C]
+ bl pokemon_setattr
+ movs r0, 0x78
+ ldr r1, [sp, 0x40]
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x40]
+ bl pokemon_setattr
+ adds r0, r5, 0
+ movs r1, 0x22
+ ldr r2, [sp, 0x44]
+ bl pokemon_setattr
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x48
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80428A4
+
+ thumb_func_start sub_80429EC
+sub_80429EC: @ 80429EC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r5, r0, 0
+ muls r5, r1
+ ldr r0, _08042A9C
+ adds r5, r0
+ ldr r1, _08042AA0
+ adds r0, r5, 0
+ bl sub_80428A4
+ add r2, sp, 0xC
+ movs r6, 0
+ strb r6, [r2]
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl pokemon_setattr
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetSpeciesName
+ adds r0, r5, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl pokemon_setattr
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8090D90
+ ldr r1, _08042AA4
+ adds r0, r5, 0
+ bl pokemon_get_nick
+ mov r2, sp
+ adds r2, 0xE
+ movs r0, 0x4
+ strh r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x26
+ bl pokemon_setattr
+ add r2, sp, 0x10
+ strh r6, [r2]
+ adds r0, r5, 0
+ movs r1, 0x24
+ bl pokemon_setattr
+ bl sav1_map_get_name
+ mov r2, sp
+ adds r2, 0x12
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x23
+ bl pokemon_setattr
+ adds r0, r5, 0
+ bl sub_8040B1C
+ adds r0, r5, 0
+ bl pokemon_calc_effective_stats
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042A9C: .4byte 0x03004360
+_08042AA0: .4byte 0x030045c0
+_08042AA4: .4byte 0x020231cc
+ thumb_func_end sub_80429EC
+
+ thumb_func_start sub_8042AA8
+sub_8042AA8: @ 8042AA8
+ push {lr}
+ ldr r0, _08042AB8
+ ldrb r0, [r0]
+ bl sub_80429EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042AB8: .4byte 0x0202e8cc
+ thumb_func_end sub_8042AA8
+
+ thumb_func_start sub_8042ABC
+sub_8042ABC: @ 8042ABC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r5, r0
+ mov r1, sp
+ bl pokemon_get_nick_
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r1, r0, 3
+ adds r0, r5, r1
+ adds r0, 0xC0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08042B40
+ adds r0, r1, 0
+ adds r0, 0xA0
+ adds r5, r0
+ adds r6, r5, 0
+ adds r6, 0x2C
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _08042B08
+ ldr r0, _08042B30
+ adds r1, r5, 0
+ adds r1, 0x24
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _08042B40
+_08042B08:
+ ldr r0, _08042B34
+ mov r1, sp
+ bl StringCopy
+ ldr r4, _08042B38
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _08042B3C
+ adds r1, r6, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ movs r0, 0x1
+ b _08042B42
+ .align 2, 0
+_08042B30: .4byte 0x02024ea4
+_08042B34: .4byte 0x020231cc
+_08042B38: .4byte 0x020232cc
+_08042B3C: .4byte 0x020233cc
+_08042B40:
+ movs r0, 0
+_08042B42:
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042ABC
+
+ thumb_func_start sub_8042B4C
+sub_8042B4C: @ 8042B4C
+ push {lr}
+ ldr r0, _08042B60
+ ldr r1, _08042B64
+ ldrb r1, [r1]
+ bl sub_8042ABC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042B60: .4byte 0x020286d0
+_08042B64: .4byte 0x0202e8cc
+ thumb_func_end sub_8042B4C
+
+ thumb_func_start sub_8042B68
+sub_8042B68: @ 8042B68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r1, r2, 24
+ adds r2, r1, 0
+ movs r5, 0
+ mov r9, r5
+ movs r7, 0
+ cmp r3, 0
+ bne _08042B96
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08042BB0
+ adds r7, r1, r0
+ movs r5, 0x1
+_08042B96:
+ cmp r3, 0x1
+ bne _08042BA6
+ movs r0, 0x64
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _08042BB0
+ adds r7, r1, r0
+ movs r5, 0x3
+_08042BA6:
+ cmp r6, 0
+ beq _08042BB4
+ cmp r6, 0x1
+ beq _08042C14
+ b _08042C50
+ .align 2, 0
+_08042BB0: .4byte 0x03004360
+_08042BB4:
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl PokemonGetField
+ mov r8, r0
+ lsls r0, r5, 3
+ ldr r1, _08042C04
+ adds r0, r1
+ ldr r1, _08042C08
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r3, _08042C0C
+ ldr r6, _08042C10
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r6
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r4, r8
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r7, 0
+ bl sub_8040990
+ bl LoadCompressedObjectPalette
+ b _08042C50
+ .align 2, 0
+_08042C04: .4byte gMonFrontPicTable
+_08042C08: .4byte gMonFrontPicCoords
+_08042C0C: .4byte 0x02000000
+_08042C10: .4byte gUnknown_081FAF4C
+_08042C14:
+ adds r0, r7, 0
+ bl sub_8040990
+ ldrh r0, [r0, 0x4]
+ adds r1, r5, 0
+ bl gpu_pal_obj_decompress_and_apply
+ ldr r0, _08042C60
+ movs r1, 0x78
+ movs r2, 0x46
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _08042C64
+ lsls r1, r0, 4
+ add r1, r9
+ lsls r1, 2
+ adds r2, r1, r4
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r1, r4
+ ldr r0, _08042C68
+ str r0, [r1]
+_08042C50:
+ mov r0, r9
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042C60: .4byte 0x02024e8c
+_08042C64: .4byte 0x02020004
+_08042C68: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8042B68
+
+ thumb_func_start sub_8042C6C
+sub_8042C6C: @ 8042C6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042C6C
+
+ thumb_func_start sub_8042C80
+sub_8042C80: @ 8042C80
+ push {lr}
+ sub sp, 0x4
+ bl script_env_2_enable
+ ldr r0, _08042CA8
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CA8: .4byte sub_8042CAC
+ thumb_func_end sub_8042C80
+
+ thumb_func_start sub_8042CAC
+sub_8042CAC: @ 8042CAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08042CD8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08042CD0
+ ldr r0, _08042CDC
+ bl SetMainCallback2
+ ldr r1, _08042CE0
+ ldr r0, _08042CE4
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_08042CD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CD8: .4byte 0x0202f388
+_08042CDC: .4byte sub_8042CE8
+_08042CE0: .4byte 0x0300485c
+_08042CE4: .4byte sub_8080990
+ thumb_func_end sub_8042CAC
+
+ thumb_func_start sub_8042CE8
+sub_8042CE8: @ 8042CE8
+ push {r4-r7,lr}
+ ldr r0, _08042D04
+ ldr r1, _08042D08
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08042CF8
+ b _08042F6E
+_08042CF8:
+ lsls r0, 2
+ ldr r1, _08042D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08042D04: .4byte 0x03001770
+_08042D08: .4byte 0x0000043c
+_08042D0C: .4byte _08042D10
+ .align 2, 0
+_08042D10:
+ .4byte _08042D34
+ .4byte _08042D90
+ .4byte _08042DC4
+ .4byte _08042E20
+ .4byte _08042E40
+ .4byte _08042E74
+ .4byte _08042E88
+ .4byte _08042EB0
+ .4byte _08042F40
+_08042D34:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08042D74
+ ldr r0, _08042D78
+ str r0, [r1]
+ ldr r1, _08042D7C
+ ldrh r1, [r1]
+ strb r1, [r0, 0x4]
+ adds r0, 0x3A
+ strb r2, [r0]
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _08042D80
+ bl SetVBlankCallback
+ ldr r1, _08042D84
+ ldr r2, _08042D88
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl current_map_music_get
+ ldr r1, _08042D8C
+ strh r0, [r1]
+ b _08042F6E
+ .align 2, 0
+_08042D74: .4byte 0x0300481c
+_08042D78: .4byte 0x02018000
+_08042D7C: .4byte 0x0202e8cc
+_08042D80: .4byte sub_8042C6C
+_08042D84: .4byte 0x03001770
+_08042D88: .4byte 0x0000043c
+_08042D8C: .4byte 0x0202e8ce
+_08042D90:
+ ldr r5, _08042DBC
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ ldr r4, _08042DC0
+ ldr r0, [r4]
+ adds r0, 0x8
+ adds r1, r5, 0
+ bl InitWindowFromConfig
+ movs r0, 0x14
+ bl sub_8064EF4
+ ldr r1, [r4]
+ adds r1, 0x38
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_8064F08
+ b _08042F04
+ .align 2, 0
+_08042DBC: .4byte gWindowConfig_81E6F84
+_08042DC0: .4byte 0x0300481c
+_08042DC4:
+ ldr r0, _08042DFC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _08042E00
+ ldr r4, _08042E04
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r4, 0
+ bl CpuSet
+ ldr r1, _08042E08
+ str r4, [r1]
+ ldr r0, _08042E0C
+ str r0, [r1, 0x4]
+ ldr r0, _08042E10
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _08042E14
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _08042E18
+ ldr r2, _08042E1C
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042DFC: .4byte gUnknown_08D00000
+_08042E00: .4byte gUnknown_08D00524
+_08042E04: .4byte 0x02000000
+_08042E08: .4byte 0x040000d4
+_08042E0C: .4byte 0x06002800
+_08042E10: .4byte 0x80000280
+_08042E14: .4byte gUnknown_08D004E0
+_08042E18: .4byte 0x03001770
+_08042E1C: .4byte 0x0000043c
+_08042E20:
+ ldr r0, _08042E34
+ bl LoadSpriteSheet
+ ldr r0, _08042E38
+ bl LoadSpriteSheet
+ ldr r0, _08042E3C
+ bl LoadSpritePalette
+ b _08042F04
+ .align 2, 0
+_08042E34: .4byte gUnknown_0820A3B0
+_08042E38: .4byte gUnknown_0820A3B8
+_08042E3C: .4byte gUnknown_0820A3C0
+_08042E40:
+ ldr r0, _08042E64
+ movs r1, 0x78
+ movs r2, 0x4B
+ movs r3, 0x5
+ bl CreateSprite
+ ldr r2, _08042E68
+ ldr r1, [r2]
+ strb r0, [r1]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ bl sub_80429EC
+ ldr r1, _08042E6C
+ ldr r2, _08042E70
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042E64: .4byte gSpriteTemplate_820A3C8
+_08042E68: .4byte 0x0300481c
+_08042E6C: .4byte 0x03001770
+_08042E70: .4byte 0x0000043c
+_08042E74:
+ ldr r0, _08042E84
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8042B68
+ b _08042F04
+ .align 2, 0
+_08042E84: .4byte 0x0300481c
+_08042E88:
+ ldr r4, _08042EA4
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8042B68
+ ldr r1, [r4]
+ strb r0, [r1, 0x1]
+ ldr r1, _08042EA8
+ ldr r2, _08042EAC
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042EA4: .4byte 0x0300481c
+_08042EA8: .4byte 0x03001770
+_08042EAC: .4byte 0x0000043c
+_08042EB0:
+ ldr r0, _08042F14
+ ldr r2, _08042F18
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _08042F1C
+ movs r1, 0x10
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r3, _08042F20
+ ldr r4, _08042F24
+ movs r5, 0x98
+ lsls r5, 5
+ ldr r1, _08042F28
+ ldr r6, _08042F2C
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08042ED6:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08042ED6
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _08042F30
+ ldr r2, _08042F34
+ ldr r0, _08042F28
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08042F2C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+_08042F04:
+ ldr r1, _08042F38
+ ldr r0, _08042F3C
+ adds r1, r0
+_08042F0A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08042F6E
+ .align 2, 0
+_08042F14: .4byte 0x0400000c
+_08042F18: .4byte 0x00004c06
+_08042F1C: .4byte gUnknown_0820C9F8
+_08042F20: .4byte gUnknown_0820CA98
+_08042F24: .4byte 0x06004000
+_08042F28: .4byte 0x040000d4
+_08042F2C: .4byte 0x80000800
+_08042F30: .4byte gUnknown_0820F798
+_08042F34: .4byte 0x06006000
+_08042F38: .4byte 0x03001770
+_08042F3C: .4byte 0x0000043c
+_08042F40:
+ ldr r1, _08042F74
+ ldr r2, _08042F78
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08042F7C
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _08042F80
+ bl SetMainCallback2
+ ldr r0, _08042F84
+ ldr r0, [r0]
+ strb r4, [r0, 0x2]
+_08042F6E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042F74: .4byte 0x0400000a
+_08042F78: .4byte 0x00000501
+_08042F7C: .4byte 0x04000010
+_08042F80: .4byte sub_804300C
+_08042F84: .4byte 0x0300481c
+ thumb_func_end sub_8042CE8
+
+ thumb_func_start sub_8042F88
+sub_8042F88: @ 8042F88
+ push {lr}
+ ldr r0, _08042FA8
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08042FAC
+ adds r0, r1
+ ldr r2, _08042FB0
+ movs r1, 0x2
+ bl pokemon_setattr
+ ldr r0, _08042FB4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042FA8: .4byte 0x0202e8cc
+_08042FAC: .4byte 0x03004360
+_08042FB0: .4byte 0x020233cc
+_08042FB4: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8042F88
+
+ thumb_func_start c3_080472E4
+c3_080472E4: @ 8042FB8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08043004
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08042FD4
+ bl sub_8074D08
+_08042FD4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08042FE4
+ movs r0, 0xBC
+ lsls r0, 1
+ bl sub_8075474
+_08042FE4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ ble _08042FF8
+ ldr r0, _08043008
+ bl sub_8075474
+ adds r0, r5, 0
+ bl DestroyTask
+_08042FF8:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043004: .4byte 0x03004b20
+_08043008: .4byte 0x00000179
+ thumb_func_end c3_080472E4
+
+ thumb_func_start sub_804300C
+sub_804300C: @ 804300C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r1, _08043030
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x2]
+ adds r5, r1, 0
+ cmp r0, 0xB
+ bls _08043026
+ b _080432BA
+_08043026:
+ lsls r0, 2
+ ldr r1, _08043034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08043030: .4byte 0x0300481c
+_08043034: .4byte _08043038
+ .align 2, 0
+_08043038:
+ .4byte _08043068
+ .4byte _080430A0
+ .4byte _080430C0
+ .4byte _080430F8
+ .4byte _08043124
+ .4byte _08043164
+ .4byte _08043172
+ .4byte _08043180
+ .4byte _080431B8
+ .4byte _080431DA
+ .4byte _08043288
+ .4byte _080432A8
+_08043068:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08043098
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r0, _0804309C
+ movs r1, 0x5
+ bl CreateTask
+ b _080432BA
+ .align 2, 0
+_08043098: .4byte 0x0300481c
+_0804309C: .4byte c3_080472E4
+_080430A0:
+ ldr r0, _080430BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080430B2
+ b _080432BA
+_080430B2:
+ ldr r0, [r5]
+ strb r1, [r0, 0x3]
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_080430BC: .4byte 0x0202f388
+_080430C0:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bhi _080430D2
+ b _080432BA
+_080430D2:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r2, _080430F0
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080430F4
+ str r1, [r0]
+ b _080432BA
+ .align 2, 0
+_080430F0: .4byte 0x02020004
+_080430F4: .4byte sub_80432E4
+_080430F8:
+ ldr r2, _0804311C
+ ldr r3, [r5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08043120
+ cmp r1, r0
+ beq _08043112
+ b _080432BA
+_08043112:
+ ldrb r0, [r3, 0x2]
+ adds r0, 0x1
+ strb r0, [r3, 0x2]
+ b _080432BA
+ .align 2, 0
+_0804311C: .4byte 0x02020004
+_08043120: .4byte SpriteCallbackDummy
+_08043124:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08043150
+ adds r0, r1
+ ldr r1, _08043154
+ bl pokemon_get_nick
+ ldr r4, _08043158
+ ldr r1, _0804315C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl sub_80436FC
+ ldr r0, _08043160
+ bl fanfare_play
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_08043150: .4byte 0x03004360
+_08043154: .4byte 0x020231cc
+_08043158: .4byte 0x020234cc
+_0804315C: .4byte gUnknown_0842CC38
+_08043160: .4byte 0x00000173
+_08043164:
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043170
+ b _080432BA
+_08043170:
+ b _08043298
+_08043172:
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804317E
+ b _080432BA
+_0804317E:
+ b _08043298
+_08043180:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080431A8
+ adds r0, r1
+ ldr r1, _080431AC
+ bl pokemon_get_nick
+ ldr r4, _080431B0
+ ldr r1, _080431B4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl sub_80436D4
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_080431A8: .4byte 0x03004360
+_080431AC: .4byte 0x020231cc
+_080431B0: .4byte 0x020234cc
+_080431B4: .4byte gUnknown_0842CC5A
+_080431B8:
+ bl sub_8043724
+ lsls r0, 24
+ cmp r0, 0
+ beq _080432BA
+ movs r0, 0x16
+ movs r1, 0x8
+ movs r2, 0x1B
+ movs r3, 0xD
+ bl DrawDefaultWindow
+ movs r0, 0x16
+ movs r1, 0x8
+ movs r2, 0x4
+ bl sub_807292C
+ b _08043298
+_080431DA:
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ movs r1, 0x2
+ negs r1, r1
+ cmp r0, r1
+ beq _080432BA
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08043298
+ cmp r1, 0x1
+ beq _08043298
+ ldr r0, _08043278
+ mov r9, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r6, _0804327C
+ adds r0, r6
+ ldr r1, _08043280
+ mov r10, r1
+ bl pokemon_get_nick
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl pokemon_get_gender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl PokemonGetField
+ str r0, [sp]
+ ldr r0, _08043284
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DoNamingScreen
+ b _080432BA
+ .align 2, 0
+_08043278: .4byte 0x0300481c
+_0804327C: .4byte 0x03004360
+_08043280: .4byte 0x020233cc
+_08043284: .4byte sub_8042F88
+_08043288:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_08043298:
+ ldr r0, _080432A4
+ ldr r1, [r0]
+_0804329C:
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ b _080432BA
+ .align 2, 0
+_080432A4: .4byte 0x0300481c
+_080432A8:
+ ldr r0, _080432DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080432BA
+ ldr r0, _080432E0
+ bl SetMainCallback2
+_080432BA:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080432DC: .4byte 0x0202f388
+_080432E0: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_804300C
+
+ thumb_func_start sub_80432E4
+sub_80432E4: @ 80432E4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08043304
+ ldr r0, _08043300
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ b _08043334
+ .align 2, 0
+_08043300: .4byte sub_804333C
+_08043304:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl sine
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08043334
+ movs r0, 0x17
+ bl audio_play
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ bl sub_80435FC
+_08043334:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80432E4
+
+ thumb_func_start sub_804333C
+sub_804333C: @ 804333C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08043398
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0804336C
+ ldr r0, _08043368
+ str r0, [r4, 0x1C]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ b _08043398
+ .align 2, 0
+_08043368: .4byte sub_80433A0
+_0804336C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl sine
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08043398
+ movs r0, 0x17
+ bl audio_play
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_08043398:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804333C
+
+ thumb_func_start sub_80433A0
+sub_80433A0: @ 80433A0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _0804345A
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x26
+ ble _08043418
+ ldr r0, _08043404
+ str r0, [r4, 0x1C]
+ strh r6, [r4, 0x2E]
+ ldr r5, _08043408
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0804340C
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ ldr r4, _08043410
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r6, [r1, 0x24]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08043414
+ lsrs r0, 14
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x26]
+ b _0804345A
+ .align 2, 0
+_08043404: .4byte sub_8043460
+_08043408: .4byte 0x0300481c
+_0804340C: .4byte 0x03004360
+_08043410: .4byte 0x02020004
+_08043414: .4byte gMonFrontPicCoords
+_08043418:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl sine
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _0804344C
+ movs r0, 0x17
+ bl audio_play
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl sub_80435FC
+ bl sub_80435FC
+_0804344C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ bne _0804345A
+ movs r0, 0x17
+ bl audio_play
+_0804345A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80433A0
+
+ thumb_func_start sub_8043460
+sub_8043460: @ 8043460
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _0804347A
+ ldr r0, _08043480
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_0804347A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043480: .4byte sub_8043484
+ thumb_func_end sub_8043460
+
+ thumb_func_start sub_8043484
+sub_8043484: @ 8043484
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080434A4
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _080434F8
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080434A4:
+ ldrh r0, [r5, 0x2E]
+ cmp r0, 0x3
+ bhi _080434C0
+ movs r4, 0
+_080434AC:
+ bl sub_80435FC
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080434AC
+_080434C0:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ ldr r0, _080434FC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080434EE
+ movs r0, 0x71
+ bl audio_play
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08043500
+ str r0, [r5, 0x1C]
+ strh r4, [r5, 0x2E]
+_080434EE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080434F8: .4byte 0x0000ffff
+_080434FC: .4byte 0x0202f388
+_08043500: .4byte sub_8043504
+ thumb_func_end sub_8043484
+
+ thumb_func_start sub_8043504
+sub_8043504: @ 8043504
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08043540
+ ldr r4, _08043594
+ ldr r3, _08043598
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08043540:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x8
+ bne _0804355A
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _0804359C
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0804355A:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x9
+ bgt _08043578
+ ldr r2, _08043594
+ ldr r0, _08043598
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_08043578:
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x28
+ ble _08043586
+ ldr r0, _080435A0
+ str r0, [r5, 0x1C]
+_08043586:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043594: .4byte 0x02020004
+_08043598: .4byte 0x0300481c
+_0804359C: .4byte 0x0000ffff
+_080435A0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8043504
+
+ thumb_func_start sub_80435A4
+sub_80435A4: @ 80435A4
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ ldrh r3, [r2, 0x38]
+ adds r0, r1, r3
+ strh r0, [r2, 0x38]
+ movs r4, 0x36
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bge _080435C2
+ adds r0, 0xFF
+_080435C2:
+ asrs r0, 8
+ strh r0, [r2, 0x24]
+ movs r3, 0x38
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _080435D0
+ adds r0, 0xFF
+_080435D0:
+ asrs r0, 8
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r3, r1, r0
+ strh r3, [r2, 0x32]
+ movs r4, 0x22
+ ldrsh r1, [r2, r4]
+ movs r4, 0x26
+ ldrsh r0, [r2, r4]
+ adds r0, r1, r0
+ adds r1, 0x14
+ cmp r0, r1
+ ble _080435F6
+ lsls r0, r3, 16
+ cmp r0, 0
+ ble _080435F6
+ adds r0, r2, 0
+ bl DestroySprite
+_080435F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80435A4
+
+ thumb_func_start sub_80435FC
+sub_80435FC: @ 80435FC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r3, _0804364C
+ ldr r0, _08043650
+ ldr r4, [r0]
+ adds r4, 0x3A
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r1, r0, r3
+ ldrh r6, [r1]
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r5, [r0]
+ adds r2, 0x1
+ strb r2, [r4]
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ movs r0, 0x64
+ str r0, [sp]
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ movs r0, 0x78
+ movs r1, 0x3C
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_8043654
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804364C: .4byte gUnknown_0820A430
+_08043650: .4byte 0x0300481c
+ thumb_func_end sub_80435FC
+
+ thumb_func_start sub_8043654
+sub_8043654: @ 8043654
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r0, [sp, 0x1C]
+ mov r9, r0
+ ldr r1, [sp, 0x20]
+ mov r10, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r1, r9
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080436CC
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080436D0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r6, [r0, 0x30]
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ mov r1, r9
+ strh r1, [r0, 0x34]
+ mov r1, r10
+ bl StartSpriteAnim
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080436CC: .4byte gSpriteTemplate_820A418
+_080436D0: .4byte 0x02020004
+ thumb_func_end sub_8043654
+
+ thumb_func_start sub_80436D4
+sub_80436D4: @ 80436D4
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ ldr r0, _080436F8
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r2, 0x38
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x3
+ bl sub_8002EB0
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080436F8: .4byte 0x0300481c
+ thumb_func_end sub_80436D4
+
+ thumb_func_start sub_80436FC
+sub_80436FC: @ 80436FC
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ ldr r0, _08043720
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r2, 0x38
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043720: .4byte 0x0300481c
+ thumb_func_end sub_80436FC
+
+ thumb_func_start sub_8043724
+sub_8043724: @ 8043724
+ push {lr}
+ ldr r0, _08043738
+ ldr r0, [r0]
+ adds r0, 0x8
+ bl sub_80035AC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043738: .4byte 0x0300481c
+ thumb_func_end sub_8043724
+
+ thumb_func_start sub_804373C
+sub_804373C: @ 804373C
+ movs r0, 0x9
+ bx lr
+ thumb_func_end sub_804373C
+
+ thumb_func_start sub_8043740
+sub_8043740: @ 8043740
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r3, 0
+ movs r2, 0
+_0804375C:
+ lsls r0, r3, 24
+ asrs r0, 24
+ mov r3, sp
+ adds r1, r3, r0
+ strb r2, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0804375C
+ movs r3, 0x3
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r8, sp
+_0804377C:
+ lsls r0, r5, 16
+ asrs r6, r0, 16
+ cmp r6, 0
+ ble _080437AA
+ lsls r4, r3, 24
+ asrs r4, 24
+ mov r1, sp
+ adds r5, r1, r4
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __modsi3
+ strb r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r3, r4, 24
+ b _0804377C
+_080437AA:
+ lsls r1, r3, 24
+ asrs r0, r1, 24
+ cmp r0, r9
+ ble _080437CE
+ movs r4, 0xFF
+ movs r3, 0x1
+ negs r3, r3
+_080437B8:
+ asrs r2, r1, 24
+ mov r5, sp
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ subs r2, 0x1
+ lsls r1, r2, 24
+ asrs r0, r1, 24
+ cmp r0, r3
+ bgt _080437B8
+_080437CE:
+ mov r1, r8
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0xFF
+ bne _080437DA
+ movs r0, 0
+ strb r0, [r1, 0x3]
+_080437DA:
+ mov r2, r10
+ cmp r2, 0
+ bne _0804386A
+ movs r3, 0
+ movs r1, 0
+ movs r6, 0xFC
+ lsls r6, 8
+ movs r5, 0x1E
+ mov r12, r5
+_080437EC:
+ lsls r1, 24
+ asrs r2, r1, 24
+ mov r0, sp
+ adds r5, r0, r2
+ ldrb r0, [r5]
+ mov r8, r1
+ cmp r0, 0xFF
+ bne _08043822
+ lsls r1, r2, 1
+ adds r1, r7
+ ldrh r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ mov r2, r12
+ orrs r0, r2
+ strh r0, [r1]
+ lsls r3, 24
+ asrs r1, r3, 23
+ adds r1, r7
+ adds r1, 0x40
+ ldrh r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ mov r5, r12
+ orrs r0, r5
+ strh r0, [r1]
+ b _08043852
+_08043822:
+ lsls r2, 1
+ adds r2, r7
+ ldrh r0, [r2]
+ adds r1, r6, 0
+ ands r1, r0
+ ldrb r0, [r5]
+ adds r0, 0x14
+ orrs r1, r0
+ strh r1, [r2]
+ lsls r4, r3, 24
+ asrs r3, r4, 24
+ lsls r2, r3, 1
+ adds r2, r7
+ adds r2, 0x40
+ ldrh r0, [r2]
+ adds r1, r6, 0
+ ands r1, r0
+ mov r5, sp
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ adds r0, 0x34
+ orrs r1, r0
+ strh r1, [r2]
+ adds r3, r4, 0
+_08043852:
+ movs r0, 0x80
+ lsls r0, 17
+ add r0, r8
+ lsrs r1, r0, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r3, r2
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080437EC
+ b _080438CE
+_0804386A:
+ movs r3, 0
+ movs r4, 0xFC
+ lsls r4, 8
+ movs r6, 0x1E
+_08043872:
+ lsls r1, r3, 24
+ asrs r2, r1, 24
+ mov r3, sp
+ adds r5, r3, r2
+ ldrb r0, [r5]
+ adds r3, r1, 0
+ cmp r0, 0xFF
+ bne _0804389E
+ lsls r1, r2, 1
+ adds r1, r7
+ ldrh r2, [r1]
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r6
+ strh r0, [r1]
+ adds r1, 0x40
+ ldrh r2, [r1]
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r6
+ strh r0, [r1]
+ b _080438C0
+_0804389E:
+ lsls r2, 1
+ adds r2, r7
+ ldrh r0, [r2]
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r0, [r5]
+ adds r0, 0x14
+ orrs r1, r0
+ strh r1, [r2]
+ adds r2, 0x40
+ ldrh r0, [r2]
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r0, [r5]
+ adds r0, 0x34
+ orrs r1, r0
+ strh r1, [r2]
+_080438C0:
+ movs r5, 0x80
+ lsls r5, 17
+ adds r0, r3, r5
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _08043872
+_080438CE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8043740
+
+ thumb_func_start unref_sub_80438E0
+unref_sub_80438E0: @ 80438E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r1, 0x1E
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8043740
+ lsls r4, 16
+ asrs r4, 16
+ adds r5, 0xA
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8043740
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80438E0
+
+ thumb_func_start battle_make_oam_normal_battle
+battle_make_oam_normal_battle: @ 8043914
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r0, 0
+ str r0, [sp]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043A28
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080439AC
+ ldr r4, _0804399C
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _080439A0
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ lsls r2, r7, 4
+ adds r2, r7
+ lsls r2, 2
+ adds r2, r4
+ ldrb r0, [r2, 0x1]
+ ands r3, r0
+ strb r3, [r2, 0x1]
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r4, _080439A4
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080439A8
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ b _080439F2
+ .align 2, 0
+_0804399C: .4byte gSpriteTemplate_820A4EC
+_080439A0: .4byte 0x02020004
+_080439A4: .4byte 0x000003ff
+_080439A8: .4byte 0xfffffc00
+_080439AC:
+ ldr r4, _08043A14
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08043A18
+ lsls r2, r7, 4
+ adds r2, r7
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r5, _08043A1C
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _08043A20
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ movs r0, 0x2
+ str r0, [sp]
+_080439F2:
+ ldr r2, _08043A18
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r2
+ strh r7, [r0, 0x6]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r1, r0, r2
+ strh r6, [r1, 0x38]
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08043A24
+ str r1, [r0]
+ b _08043B50
+ .align 2, 0
+_08043A14: .4byte gSpriteTemplate_820A51C
+_08043A18: .4byte 0x02020004
+_08043A1C: .4byte 0x000003ff
+_08043A20: .4byte 0xfffffc00
+_08043A24: .4byte sub_8043D5C
+_08043A28:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043ACC
+ mov r0, r10
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r4, _08043AB8
+ adds r0, r4
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r10
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _08043ABC
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x6]
+ lsls r2, r7, 4
+ adds r2, r7
+ lsls r2, 2
+ adds r3, r2, r4
+ strh r6, [r3, 0x38]
+ ldrh r1, [r3, 0x4]
+ mov r8, r1
+ mov r5, r8
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r5, _08043AC0
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _08043AC4
+ mov r5, r8
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, _08043AC8
+ str r0, [r2]
+ movs r0, 0x1
+ b _08043B4E
+ .align 2, 0
+_08043AB8: .4byte gSpriteTemplate_820A4EC
+_08043ABC: .4byte 0x02020004
+_08043AC0: .4byte 0x000003ff
+_08043AC4: .4byte 0xfffffc00
+_08043AC8: .4byte sub_8043D5C
+_08043ACC:
+ mov r0, r10
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r4, _08043C14
+ adds r0, r4
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r10
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _08043C18
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x6]
+ lsls r2, r7, 4
+ adds r2, r7
+ lsls r2, 2
+ adds r3, r2, r4
+ strh r6, [r3, 0x38]
+ ldrh r1, [r3, 0x4]
+ mov r8, r1
+ mov r5, r8
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r5, _08043C1C
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _08043C20
+ mov r5, r8
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, _08043C24
+ str r0, [r2]
+ movs r0, 0x2
+_08043B4E:
+ str r0, [sp]
+_08043B50:
+ ldr r0, _08043C28
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08043C2C
+ adds r0, r1
+ movs r1, 0x8C
+ movs r2, 0x3C
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r1, _08043C18
+ mov r8, r1
+ add r4, r8
+ mov r0, r10
+ bl battle_side_get_owner
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 21
+ ldr r0, _08043C30
+ adds r1, r0
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ adds r2, r4, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r2, 0x4
+ mov r9, r2
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0x1
+ bl sub_8043CDC
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, _08043C34
+ adds r1, r2
+ ldr r2, _08043C38
+ bl CpuSet
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ strh r5, [r0, 0x38]
+ mov r2, r10
+ strh r2, [r0, 0x3A]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ mov r5, r9
+ orrs r1, r5
+ strb r1, [r0]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ strh r6, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r5
+ strb r0, [r4]
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043C14: .4byte gSpriteTemplate_820A51C
+_08043C18: .4byte 0x02020004
+_08043C1C: .4byte 0x000003ff
+_08043C20: .4byte 0xfffffc00
+_08043C24: .4byte sub_8043D5C
+_08043C28: .4byte 0x02024a72
+_08043C2C: .4byte gSpriteTemplate_820A56C
+_08043C30: .4byte gUnknown_0820A684
+_08043C34: .4byte 0x06010000
+_08043C38: .4byte 0x04000010
+ thumb_func_end battle_make_oam_normal_battle
+
+ thumb_func_start battle_make_oam_safari_battle
+battle_make_oam_safari_battle: @ 8043C3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _08043CC8
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x1
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08043CCC
+ mov r9, r1
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ add r4, r9
+ ldrb r3, [r4, 0x1]
+ movs r2, 0x3F
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r4, 0x1]
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ mov r7, r9
+ adds r5, r3, r7
+ ldrb r1, [r5, 0x1]
+ ands r2, r1
+ strb r2, [r5, 0x1]
+ ldrh r1, [r5, 0x4]
+ mov r8, r1
+ mov r7, r8
+ lsls r2, r7, 22
+ lsrs r2, 22
+ adds r2, 0x40
+ ldr r7, _08043CD0
+ adds r1, r7, 0
+ ands r2, r1
+ ldr r1, _08043CD4
+ mov r7, r8
+ ands r1, r7
+ orrs r1, r2
+ strh r1, [r5, 0x4]
+ strh r0, [r4, 0x6]
+ strh r6, [r5, 0x38]
+ movs r0, 0x1C
+ add r9, r0
+ add r3, r9
+ ldr r0, _08043CD8
+ str r0, [r3]
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043CC8: .4byte gSpriteTemplate_820A54C
+_08043CCC: .4byte 0x02020004
+_08043CD0: .4byte 0x000003ff
+_08043CD4: .4byte 0xfffffc00
+_08043CD8: .4byte sub_8043D5C
+ thumb_func_end battle_make_oam_safari_battle
+
+ thumb_func_start sub_8043CDC
+sub_8043CDC: @ 8043CDC
+ lsls r0, 24
+ lsrs r0, 19
+ ldr r1, _08043CE8
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08043CE8: .4byte gUnknown_08D1216C
+ thumb_func_end sub_8043CDC
+
+ thumb_func_start sub_8043CEC
+sub_8043CEC: @ 8043CEC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08043D1C
+ cmp r0, 0x1
+ bgt _08043D30
+ cmp r0, 0
+ bne _08043D30
+ ldr r2, _08043D18
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x10
+ b _08043D3E
+ .align 2, 0
+_08043D18: .4byte 0x02020004
+_08043D1C:
+ ldr r2, _08043D2C
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x10
+ b _08043D3E
+ .align 2, 0
+_08043D2C: .4byte 0x02020004
+_08043D30:
+ ldr r2, _08043D58
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x8
+_08043D3E:
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x22]
+ strh r0, [r4, 0x22]
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ strh r1, [r4, 0x24]
+ ldrh r0, [r0, 0x26]
+ strh r0, [r4, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043D58: .4byte 0x02020004
+ thumb_func_end sub_8043CEC
+
+ thumb_func_start sub_8043D5C
+sub_8043D5C: @ 8043D5C
+ ldrh r1, [r0, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08043D80
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x20]
+ adds r1, 0x40
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x22]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x24]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r2, 0x26]
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_08043D80: .4byte 0x02020004
+ thumb_func_end sub_8043D5C
+
+ thumb_func_start sub_8043D84
+sub_8043D84: @ 8043D84
+ push {r4,r5,lr}
+ ldr r5, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08043DA8
+ adds r4, r0
+ strb r1, [r4]
+ str r2, [r4, 0x4]
+ str r3, [r4, 0x8]
+ str r5, [r4, 0xC]
+ ldr r0, _08043DAC
+ str r0, [r4, 0x10]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043DA8: .4byte 0x02017850
+_08043DAC: .4byte 0xffff8000
+ thumb_func_end sub_8043D84
+
+ thumb_func_start sub_8043DB0
+sub_8043DB0: @ 8043DB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08043DF8
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ movs r0, 0x38
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ ldrh r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043DF8: .4byte 0x02020004
+ thumb_func_end sub_8043DB0
+
+ thumb_func_start sub_8043DFC
+sub_8043DFC: @ 8043DFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08043E4C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ adds r4, r2, 0
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ movs r0, 0x38
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r4, [r0]
+ adds r1, r3, 0
+ ands r1, r4
+ strb r1, [r0]
+ ldrh r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043E4C: .4byte 0x02020004
+ thumb_func_end sub_8043DFC
+
+ thumb_func_start sub_8043E50
+sub_8043E50: @ 8043E50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08043E6C
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r4
+ strh r1, [r3, 0x20]
+ strh r2, [r3, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043E6C: .4byte 0x02020004
+ thumb_func_end sub_8043E50
+
+ thumb_func_start unref_sub_8043E70
+unref_sub_8043E70: @ 8043E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08043EAC
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r5
+ ldrh r1, [r4, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043EAC: .4byte 0x02020004
+ thumb_func_end unref_sub_8043E70
+
+ thumb_func_start nullsub_11
+nullsub_11: @ 8043EB0
+ bx lr
+ thumb_func_end nullsub_11
+
+ thumb_func_start sub_8043EB4
+sub_8043EB4: @ 8043EB4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ ldr r1, _08043F38
+ mov r8, r1
+ ldrb r2, [r1]
+ cmp r6, r2
+ bge _08043F2C
+ ldr r1, _08043F3C
+ mov r12, r1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r7, 0xD
+ negs r7, r7
+ ldr r2, _08043F40
+ mov r9, r2
+_08043EDE:
+ mov r1, r9
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldrb r4, [r1, 0x6]
+ ldrh r3, [r1, 0x38]
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ add r1, r12
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ add r1, r12
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ adds r6, 0x1
+ mov r2, r8
+ ldrb r2, [r2]
+ cmp r6, r2
+ blt _08043EDE
+_08043F2C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043F38: .4byte 0x02024a68
+_08043F3C: .4byte 0x02020004
+_08043F40: .4byte 0x03004340
+ thumb_func_end sub_8043EB4
+
+ thumb_func_start sub_8043F44
+sub_8043F44: @ 8043F44
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043F70
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043F6A
+ movs r5, 0x2C
+ movs r4, 0x1E
+ b _08043FA8
+_08043F6A:
+ movs r5, 0x9E
+ movs r4, 0x58
+ b _08043FA8
+_08043F70:
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08043F9E
+ cmp r0, 0x1
+ bgt _08043F88
+ cmp r0, 0
+ beq _08043F92
+ b _08043FA8
+_08043F88:
+ cmp r0, 0x2
+ beq _08043F98
+ cmp r0, 0x3
+ beq _08043FA4
+ b _08043FA8
+_08043F92:
+ movs r5, 0x9F
+ movs r4, 0x4D
+ b _08043FA8
+_08043F98:
+ movs r5, 0xAB
+ movs r4, 0x66
+ b _08043FA8
+_08043F9E:
+ movs r5, 0x2C
+ movs r4, 0x13
+ b _08043FA8
+_08043FA4:
+ movs r5, 0x20
+ movs r4, 0x2C
+_08043FA8:
+ ldr r0, _08043FBC
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8043E50
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043FBC: .4byte 0x03004340
+ thumb_func_end sub_8043F44
+
+ thumb_func_start sub_8043FC0
+sub_8043FC0: @ 8043FC0
+ push {r4-r7,lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _08044000
+ mov r0, sp
+ movs r2, 0x1E
+ bl memcpy
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044010
+ ldr r1, _08044004
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r7, _08044008
+ cmp r0, 0
+ bne _0804402E
+ ldr r7, _0804400C
+ b _0804402E
+ .align 2, 0
+_08044000: .4byte gUnknown_0820A81C
+_08044004: .4byte 0x02020004
+_08044008: .4byte gUnknown_0820A80C
+_0804400C: .4byte gUnknown_0820A804
+_08044010:
+ ldr r1, _08044040
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r7, _08044044
+ cmp r0, 0
+ bne _0804402E
+ ldr r7, _08044048
+_0804402E:
+ mov r3, sp
+ adds r3, 0x6
+ cmp r6, 0x64
+ bne _0804404C
+ adds r0, r3, 0
+ movs r1, 0x64
+ movs r2, 0
+ movs r3, 0x3
+ b _0804408C
+ .align 2, 0
+_08044040: .4byte 0x02020004
+_08044044: .4byte gUnknown_0820A80C
+_08044048: .4byte gUnknown_0820A814
+_0804404C:
+ movs r1, 0xFC
+ strb r1, [r3]
+ mov r3, sp
+ adds r3, 0x7
+ movs r0, 0x11
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x1
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r2, 0x14
+ strb r2, [r3]
+ adds r3, 0x1
+ movs r0, 0x4
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xF0
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ strb r2, [r3]
+ adds r3, 0x1
+ movs r0, 0
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r3, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+_0804408C:
+ bl ConvertIntToDecimalStringN
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x13
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xF
+ strb r0, [r3]
+ movs r0, 0xFF
+ strb r0, [r3, 0x1]
+ movs r0, 0x80
+ lsls r0, 18
+ mov r1, sp
+ bl sub_80034D4
+ ldr r1, _080440E0
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r6, r0, r1
+ ldr r5, _080440E4
+ movs r4, 0x2
+_080440BC:
+ ldrh r0, [r6, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldm r7!, {r1}
+ adds r1, r0
+ adds r0, r5, 0
+ ldr r2, _080440E8
+ bl CpuSet
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080440BC
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080440E0: .4byte 0x02020004
+_080440E4: .4byte 0x02000020
+_080440E8: .4byte 0x04000008
+ thumb_func_end sub_8043FC0
+
+ thumb_func_start sub_80440EC
+sub_80440EC: @ 80440EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, _08044144
+ mov r0, sp
+ movs r2, 0x14
+ bl memcpy
+ ldr r1, _08044148
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x3A
+ ldrsh r5, [r4, r0]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08044136
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0804414C
+_08044136:
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r0, r7, 0
+ mov r2, r8
+ bl sub_8044210
+ b _080441F0
+ .align 2, 0
+_08044144: .4byte gUnknown_0820A864
+_08044148: .4byte 0x02020004
+_0804414C:
+ mov r5, sp
+ adds r5, 0x6
+ mov r0, r8
+ cmp r0, 0
+ bne _08044190
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _08044188
+ cmp r0, 0
+ bne _0804416A
+ ldr r4, _0804418C
+_0804416A:
+ movs r0, 0x3
+ mov r8, r0
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x13
+ movs r3, 0x1
+ bl sub_8003504
+ adds r5, r0, 0
+ movs r0, 0xBA
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ b _080441B6
+ .align 2, 0
+_08044188: .4byte gUnknown_0820A848
+_0804418C: .4byte gUnknown_0820A83C
+_08044190:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _080441FC
+ cmp r0, 0
+ bne _080441A4
+ ldr r4, _08044200
+_080441A4:
+ movs r0, 0x2
+ mov r8, r0
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8003504
+_080441B6:
+ movs r0, 0x80
+ lsls r0, 18
+ mov r1, sp
+ bl sub_80034D4
+ mov r0, r8
+ cmp r0, 0
+ beq _080441F0
+ ldr r1, _08044204
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ adds r7, r4, 0
+ ldr r5, _08044208
+ mov r4, r8
+_080441D6:
+ ldrh r0, [r6, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldm r7!, {r1}
+ adds r1, r0
+ adds r0, r5, 0
+ ldr r2, _0804420C
+ bl CpuSet
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080441D6
+_080441F0:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080441FC: .4byte gUnknown_0820A85C
+_08044200: .4byte gUnknown_0820A854
+_08044204: .4byte 0x02020004
+_08044208: .4byte 0x02000020
+_0804420C: .4byte 0x04000008
+ thumb_func_end sub_80440EC
+
+ thumb_func_start sub_8044210
+sub_8044210: @ 8044210
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ mov r9, r6
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r1, _0804427C
+ mov r0, sp
+ movs r2, 0x14
+ bl memcpy
+ ldr r1, _08044280
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ mov r8, r0
+ movs r1, 0x3A
+ ldrsh r4, [r0, r1]
+ lsls r0, r4, 2
+ ldr r1, _08044284
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08044312
+ mov r2, sp
+ adds r2, 0x6
+ cmp r7, 0
+ bne _0804428C
+ ldr r7, _08044288
+ movs r0, 0x6
+ mov r10, r0
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x2B
+ movs r3, 0x1
+ bl sub_8003504
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x1]
+ b _080442CE
+ .align 2, 0
+_0804427C: .4byte gUnknown_0820A89C
+_08044280: .4byte 0x02020004
+_08044284: .4byte 0x02017800
+_08044288: .4byte gUnknown_0820A87C
+_0804428C:
+ ldr r7, _08044324
+ movs r1, 0x2
+ mov r10, r1
+ mov r0, r9
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8003504
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442CE
+ movs r0, 0x74
+ bl sub_8043CDC
+ mov r2, r8
+ ldrh r1, [r2, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ movs r2, 0xD0
+ lsls r2, 3
+ adds r1, r2
+ ldr r2, _08044328
+ adds r1, r2
+ ldr r2, _0804432C
+ bl CpuSet
+_080442CE:
+ ldr r6, _08044330
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x38
+ ldrsh r4, [r0, r1]
+ movs r0, 0x80
+ lsls r0, 18
+ mov r1, sp
+ bl sub_80034D4
+ mov r2, r10
+ cmp r2, 0
+ beq _08044312
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r6, r0, r6
+ ldr r5, _08044334
+ mov r4, r10
+_080442F8:
+ ldrh r0, [r6, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldm r7!, {r1}
+ adds r1, r0
+ adds r0, r5, 0
+ ldr r2, _0804432C
+ bl CpuSet
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080442F8
+_08044312:
+ 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
+_08044324: .4byte gUnknown_0820A894
+_08044328: .4byte 0x06010000
+_0804432C: .4byte 0x04000008
+_08044330: .4byte 0x02020004
+_08044334: .4byte 0x02000020
+ thumb_func_end sub_8044210
+
+ thumb_func_start sub_8044338
+sub_8044338: @ 8044338
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r1, _080443CC
+ mov r0, sp
+ movs r2, 0x14
+ bl memcpy
+ ldr r1, _080443D0
+ ldr r2, [sp, 0x14]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 7
+ ldr r3, _080443D4
+ adds r6, r1, r3
+ movs r0, 0x5
+ mov r8, r0
+ adds r0, r4, 0
+ bl GetNature
+ lsls r0, 24
+ mov r4, sp
+ adds r4, 0x6
+ ldr r1, _080443D8
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_80034D4
+ movs r7, 0x6
+ movs r5, 0
+ mov r1, sp
+ adds r1, 0x9
+ str r1, [sp, 0x1C]
+_080443AA:
+ mov r2, sp
+ adds r0, r2, r7
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ subs r0, 0x37
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080443C8
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080443DC
+_080443C8:
+ movs r0, 0x2C
+ b _080443FA
+ .align 2, 0
+_080443CC: .4byte gUnknown_0820A864
+_080443D0: .4byte 0x02020004
+_080443D4: .4byte 0x02000520
+_080443D8: .4byte gNatureNames
+_080443DC:
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080443F4
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080443F8
+_080443F4:
+ movs r0, 0x2D
+ b _080443FA
+_080443F8:
+ movs r0, 0x2B
+_080443FA:
+ bl sub_8043CDC
+ lsls r1, r5, 6
+ adds r1, r6, r1
+ ldr r2, _080444F8
+ bl CpuSet
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, 0x1
+ cmp r5, r8
+ bcc _080443AA
+ movs r7, 0x1
+ ldr r3, [sp, 0x14]
+ lsls r3, 4
+ str r3, [sp, 0x18]
+ movs r0, 0x1
+ add r0, r8
+ mov r9, r0
+ cmp r7, r9
+ bge _08044486
+ ldr r1, _080444FC
+ ldr r2, _080444F8
+ mov r10, r2
+ ldr r2, [sp, 0x14]
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ mov r8, r0
+_08044436:
+ mov r3, r8
+ ldrh r0, [r3, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r5, r7, 0
+ cmp r7, 0
+ bge _08044446
+ adds r5, r7, 0x7
+_08044446:
+ asrs r5, 3
+ lsls r4, r5, 3
+ subs r4, r7, r4
+ adds r0, r4
+ lsls r5, 6
+ adds r0, r5
+ lsls r0, 5
+ ldr r2, _08044500
+ adds r1, r0, r2
+ adds r0, r6, 0
+ mov r2, r10
+ bl CpuSet
+ adds r6, 0x20
+ mov r3, r8
+ ldrh r0, [r3, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r4, 0x8
+ adds r0, r4
+ adds r0, r5
+ lsls r0, 5
+ ldr r2, _08044500
+ adds r1, r0, r2
+ adds r0, r6, 0
+ mov r2, r10
+ bl CpuSet
+ adds r6, 0x20
+ adds r7, 0x1
+ cmp r7, r9
+ blt _08044436
+_08044486:
+ ldr r6, _080444FC
+ ldr r3, [sp, 0x18]
+ ldr r1, [sp, 0x14]
+ adds r0, r3, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r5, [r0, 0x38]
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _08044504
+ ldr r2, _08044508
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ mov r0, sp
+ adds r0, 0x6
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r3, _0804450C
+ adds r4, r3
+ ldrb r1, [r4]
+ ldr r0, [sp, 0x1C]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0xBA
+ strb r0, [r1, 0x8]
+ movs r0, 0x80
+ lsls r0, 18
+ bl sub_80034D4
+ movs r7, 0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r5, r0, r6
+ ldr r4, _08044510
+_080444DA:
+ cmp r7, 0x1
+ bgt _08044514
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r0, r7, 0x2
+ adds r1, r0
+ lsls r1, 5
+ ldr r0, _08044500
+ adds r1, r0
+ adds r0, r4, 0
+ ldr r2, _080444F8
+ bl CpuSet
+ b _0804452A
+ .align 2, 0
+_080444F8: .4byte 0x04000008
+_080444FC: .4byte 0x02020004
+_08044500: .4byte 0x06010000
+_08044504: .4byte 0x02000000
+_08044508: .4byte 0x00016089
+_0804450C: .4byte 0x00016088
+_08044510: .4byte 0x02000020
+_08044514:
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r1, r7, r1
+ lsls r1, 5
+ ldr r2, _08044544
+ adds r1, r2
+ adds r0, r4, 0
+ ldr r2, _08044548
+ bl CpuSet
+_0804452A:
+ adds r4, 0x40
+ adds r7, 0x1
+ cmp r7, 0x4
+ ble _080444DA
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044544: .4byte 0x060100c0
+_08044548: .4byte 0x04000008
+ thumb_func_end sub_8044338
+
+ thumb_func_start sub_804454C
+sub_804454C: @ 804454C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _0804466C
+ ldrb r0, [r0]
+ cmp r8, r0
+ blt _08044566
+ b _080447E4
+_08044566:
+ ldr r1, _08044670
+ mov r9, r1
+ movs r2, 0x64
+ mov r10, r2
+ ldr r7, _08044674
+_08044570:
+ ldr r0, _08044678
+ mov r6, r8
+ adds r5, r6, r0
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r9
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0804467C
+ cmp r1, r0
+ beq _0804458E
+ b _080447D4
+_0804458E:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080445A2
+ b _080447D4
+_080445A2:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080445BA
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080445BA
+ b _080447D4
+_080445BA:
+ mov r0, r8
+ lsls r3, r0, 2
+ ldr r0, _08044680
+ adds r3, r0
+ ldr r0, [r3]
+ lsls r0, 27
+ lsrs r0, 31
+ movs r2, 0x1
+ eors r2, r0
+ lsls r2, 4
+ ldrb r0, [r3]
+ movs r6, 0x11
+ negs r6, r6
+ adds r1, r6, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r0, [r3]
+ lsls r0, 27
+ lsrs r6, r0, 31
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080446DC
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080445FA
+ b _080447D4
+_080445FA:
+ ldr r0, _08044684
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0804460C
+ b _080447D4
+_0804460C:
+ cmp r6, 0x1
+ bne _08044694
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x38]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ str r2, [sp]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r1, [r0, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r0, _08044688
+ adds r1, r0
+ mov r0, sp
+ ldr r2, _0804468C
+ bl CpuSet
+ ldrb r4, [r5]
+ ldrh r0, [r7]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r2, _08044690
+ adds r0, r2
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8044210
+ ldrb r4, [r5]
+ ldrh r0, [r7]
+ mov r6, r10
+ muls r6, r0
+ adds r0, r6, 0
+ ldr r1, _08044690
+ b _08044766
+ .align 2, 0
+_0804466C: .4byte 0x02024a68
+_08044670: .4byte 0x02020004
+_08044674: .4byte 0x02024a6a
+_08044678: .4byte 0x03004340
+_0804467C: .4byte SpriteCallbackDummy
+_08044680: .4byte 0x02017800
+_08044684: .4byte 0x020239f8
+_08044688: .4byte 0x06010000
+_0804468C: .4byte 0x05000040
+_08044690: .4byte 0x03004360
+_08044694:
+ ldrb r0, [r5]
+ bl draw_status_ailment_maybe
+ ldrb r0, [r5]
+ ldrh r1, [r7]
+ mov r2, r10
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _080446D0
+ adds r1, r6
+ movs r2, 0x5
+ bl sub_8045A5C
+ movs r0, 0x75
+ bl sub_8043CDC
+ ldrb r2, [r5]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r9
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, _080446D4
+ adds r1, r2
+ ldr r2, _080446D8
+ bl CpuSet
+ b _080447BE
+ .align 2, 0
+_080446D0: .4byte 0x03004360
+_080446D4: .4byte 0x06010680
+_080446D8: .4byte 0x04000008
+_080446DC:
+ cmp r6, 0x1
+ bne _0804478C
+ ldr r0, _08044704
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0804470C
+ ldrb r0, [r5]
+ ldrh r1, [r7]
+ mov r6, r10
+ muls r6, r1
+ adds r1, r6, 0
+ ldr r2, _08044708
+ adds r1, r2
+ bl sub_8044338
+ b _080447BE
+ .align 2, 0
+_08044704: .4byte 0x020239f8
+_08044708: .4byte 0x030045c0
+_0804470C:
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x38]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ str r2, [sp]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r1, [r0, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r6, _08044780
+ adds r1, r6
+ mov r0, sp
+ ldr r2, _08044784
+ bl CpuSet
+ ldrb r4, [r5]
+ ldrh r0, [r7]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r2, _08044788
+ adds r0, r2
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8044210
+ ldrb r4, [r5]
+ ldrh r0, [r7]
+ mov r6, r10
+ muls r6, r0
+ adds r0, r6, 0
+ ldr r1, _08044788
+_08044766:
+ adds r0, r1
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_8044210
+ b _080447BE
+ .align 2, 0
+_08044780: .4byte 0x06010000
+_08044784: .4byte 0x05000040
+_08044788: .4byte 0x030045c0
+_0804478C:
+ ldrb r0, [r5]
+ bl draw_status_ailment_maybe
+ ldrb r0, [r5]
+ ldrh r1, [r7]
+ movs r6, 0x64
+ muls r1, r6
+ ldr r4, _080447F4
+ adds r1, r4
+ movs r2, 0x5
+ bl sub_8045A5C
+ ldr r0, _080447F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080447BE
+ ldrb r0, [r5]
+ ldrh r1, [r7]
+ muls r1, r6
+ adds r1, r4
+ movs r2, 0x4
+ bl sub_8045A5C
+_080447BE:
+ ldr r0, _080447FC
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r1, [r0, 0x3C]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0x3C]
+_080447D4:
+ adds r7, 0x2
+ movs r2, 0x1
+ add r8, r2
+ ldr r0, _08044800
+ ldrb r0, [r0]
+ cmp r8, r0
+ bge _080447E4
+ b _08044570
+_080447E4:
+ 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
+_080447F4: .4byte 0x030045c0
+_080447F8: .4byte 0x020239f8
+_080447FC: .4byte 0x03004340
+_08044800: .4byte 0x02024a68
+ thumb_func_end sub_804454C
+
+ thumb_func_start sub_8044804
+sub_8044804: @ 8044804
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ str r1, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ adds r4, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ cmp r4, 0
+ beq _08044834
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08044878
+_08044834:
+ ldr r0, [sp, 0x8]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044854
+ movs r7, 0
+ movs r1, 0x88
+ movs r2, 0x60
+ movs r0, 0x64
+ mov r8, r0
+ ldr r5, _08044850
+ b _08044884
+ .align 2, 0
+_08044850: .4byte 0x0000fffb
+_08044854:
+ movs r7, 0x1
+ cmp r4, 0
+ beq _08044864
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804486A
+_08044864:
+ movs r1, 0x68
+ movs r2, 0x28
+ b _0804486E
+_0804486A:
+ movs r1, 0x68
+ movs r2, 0x10
+_0804486E:
+ ldr r3, _08044874
+ mov r8, r3
+ b _08044882
+ .align 2, 0
+_08044874: .4byte 0x0000ff9c
+_08044878:
+ movs r7, 0x1
+ movs r1, 0x68
+ movs r2, 0x28
+ ldr r5, _08044930
+ mov r8, r5
+_08044882:
+ movs r5, 0x5
+_08044884:
+ movs r6, 0
+ str r6, [sp, 0x14]
+ lsls r4, r7, 3
+ ldr r0, _08044934
+ mov r10, r0
+ lsls r3, r7, 1
+ mov r9, r3
+ lsls r1, 16
+ str r1, [sp, 0x20]
+ lsls r2, 16
+ str r2, [sp, 0x24]
+ ldr r2, _08044938
+ ldr r1, [sp, 0xC]
+ movs r6, 0x5
+_080448A0:
+ ldrh r0, [r1]
+ cmp r0, r2
+ beq _080448B4
+ ldr r3, [sp, 0x14]
+ lsls r0, r3, 24
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+_080448B4:
+ adds r1, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080448A0
+ mov r6, r10
+ adds r0, r4, r6
+ bl LoadCompressedObjectPic
+ ldr r0, _0804493C
+ adds r0, r4, r0
+ bl LoadSpriteSheet
+ ldr r0, _08044940
+ adds r0, r4, r0
+ bl LoadSpritePalette
+ ldr r0, _08044944
+ adds r0, r4, r0
+ bl LoadSpritePalette
+ mov r1, r9
+ adds r0, r1, r7
+ lsls r0, 3
+ ldr r1, _08044948
+ adds r0, r1
+ ldr r2, [sp, 0x20]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x24]
+ asrs r2, r3, 16
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ lsls r0, 4
+ ldr r6, [sp, 0x18]
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0804494C
+ adds r4, r0, r1
+ ldr r1, _08044950
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ mov r0, r8
+ strh r0, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ cmp r7, 0
+ beq _08044954
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x60
+ strh r0, [r4, 0x20]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ b _0804495A
+ .align 2, 0
+_08044930: .4byte 0x0000ff9c
+_08044934: .4byte gUnknown_0820A754
+_08044938: .4byte 0x0000ffff
+_0804493C: .4byte gUnknown_0820A784
+_08044940: .4byte gUnknown_0820A764
+_08044944: .4byte gUnknown_0820A774
+_08044948: .4byte gSpriteTemplate_820A7A4
+_0804494C: .4byte 0x02020004
+_08044950: .4byte gUnknown_0820A6E4
+_08044954:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x60
+ strh r0, [r4, 0x20]
+_0804495A:
+ movs r6, 0
+ ldr r1, _08044A04
+ mov r10, r1
+ mov r4, sp
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ str r0, [sp, 0x1C]
+ movs r3, 0xA
+ mov r9, r3
+ mov r8, r6
+_08044970:
+ ldr r0, _08044A08
+ ldr r5, [sp, 0x24]
+ ldr r1, _08044A0C
+ adds r2, r5, r1
+ ldr r3, [sp, 0x1C]
+ adds r0, r3, r0
+ ldr r5, [sp, 0x20]
+ asrs r1, r5, 16
+ asrs r2, 16
+ movs r3, 0x9
+ bl CreateSpriteAtEnd
+ strb r0, [r4]
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _080449A0
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08044A10
+ adds r1, r2
+ ldr r0, _08044A14
+ str r0, [r1]
+_080449A0:
+ ldr r5, _08044A04
+ cmp r7, 0
+ bne _080449BE
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ strh r7, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ strh r7, [r0, 0x26]
+_080449BE:
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ mov r3, sp
+ ldrh r3, [r3, 0x18]
+ strh r3, [r0, 0x2E]
+ cmp r7, 0
+ bne _08044A18
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x18
+ add r0, r8
+ strh r0, [r1, 0x20]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x78
+ b _08044A56
+ .align 2, 0
+_08044A04: .4byte 0x02020004
+_08044A08: .4byte gSpriteTemplate_820A7D4
+_08044A0C: .4byte 0xfffc0000
+_08044A10: .4byte 0x02020020
+_08044A14: .4byte sub_8045180
+_08044A18:
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x20]
+ subs r3, 0x18
+ movs r1, 0x5
+ subs r1, r6
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ subs r3, r0
+ strh r3, [r2, 0x20]
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r1, 0x6
+ subs r1, r6
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, 0xA
+ strh r0, [r2, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08044AC4
+_08044A56:
+ strh r1, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r7, [r0, 0x32]
+ adds r4, 0x1
+ movs r2, 0x7
+ add r9, r2
+ movs r3, 0xA
+ add r8, r3
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _08044A76
+ b _08044970
+_08044A76:
+ ldr r0, [sp, 0x8]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044B5E
+ movs r6, 0
+ ldr r5, _08044AC8
+ mov r10, r5
+ ldr r0, _08044ACC
+ mov r9, r0
+ ldr r7, _08044AD0
+ ldr r1, _08044AD4
+ mov r12, r1
+ ldr r2, _08044AD8
+ mov r8, r2
+ mov r4, sp
+ ldr r5, [sp, 0xC]
+_08044A9A:
+ mov r3, r10
+ ldrh r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08044ADC
+ ldrh r0, [r5]
+ cmp r0, r9
+ beq _08044AE6
+ cmp r0, 0
+ bne _08044B2E
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08044B46
+ .align 2, 0
+_08044AC4: .4byte 0x0000ff88
+_08044AC8: .4byte 0x020239f8
+_08044ACC: .4byte 0x0000ffff
+_08044AD0: .4byte 0x02020004
+_08044AD4: .4byte 0x000003ff
+_08044AD8: .4byte 0xfffffc00
+_08044ADC:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _08044B14
+_08044AE6:
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ mov r0, r12
+ ands r1, r0
+ mov r0, r8
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ b _08044B52
+_08044B14:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08044B2E
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08044B46
+_08044B2E:
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ beq _08044B52
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_08044B46:
+ mov r0, r12
+ ands r1, r0
+ mov r0, r8
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08044B52:
+ adds r4, 0x1
+ adds r5, 0x8
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08044A9A
+ b _08044C38
+_08044B5E:
+ movs r6, 0
+ ldr r1, _08044BA4
+ mov r10, r1
+ ldr r2, _08044BA8
+ mov r9, r2
+ ldr r7, _08044BAC
+ ldr r3, _08044BB0
+ mov r12, r3
+ ldr r5, _08044BB4
+ mov r8, r5
+ ldr r5, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x5
+_08044B78:
+ mov r0, r10
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08044BB8
+ ldrh r0, [r5]
+ cmp r0, r9
+ beq _08044BC2
+ cmp r0, 0
+ bne _08044C0A
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08044C22
+ .align 2, 0
+_08044BA4: .4byte 0x020239f8
+_08044BA8: .4byte 0x0000ffff
+_08044BAC: .4byte 0x02020004
+_08044BB0: .4byte 0x000003ff
+_08044BB4: .4byte 0xfffffc00
+_08044BB8:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _08044BF0
+_08044BC2:
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ mov r0, r12
+ ands r1, r0
+ mov r0, r8
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ b _08044C2E
+_08044BF0:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08044C0A
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x3
+ b _08044C22
+_08044C0A:
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ beq _08044C2E
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+_08044C22:
+ mov r0, r12
+ ands r1, r0
+ mov r0, r8
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08044C2E:
+ subs r4, 0x1
+ adds r5, 0x8
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08044B78
+_08044C38:
+ ldr r0, _08044C98
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _08044C9C
+ lsls r3, r4, 2
+ adds r1, r3, r4
+ lsls r1, 3
+ adds r0, r1, r2
+ mov r5, sp
+ ldrh r5, [r5, 0x8]
+ strh r5, [r0, 0x8]
+ mov r6, sp
+ ldrh r6, [r6, 0x18]
+ strh r6, [r0, 0xA]
+ movs r6, 0
+ adds r0, r2, 0
+ adds r0, 0xE
+ adds r1, r0
+_08044C62:
+ mov r5, sp
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08044C62
+ adds r0, r3, r4
+ lsls r0, 3
+ adds r0, r2
+ ldrh r6, [r5, 0x10]
+ strh r6, [r0, 0x1C]
+ movs r0, 0x72
+ movs r1, 0
+ bl audio_play_and_stuff
+ adds r0, r4, 0
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044C98: .4byte TaskDummy
+_08044C9C: .4byte 0x03004b20
+ thumb_func_end sub_8044804
+
+ thumb_func_start sub_8044CA0
+sub_8044CA0: @ 8044CA0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _08044DB4
+ lsls r3, r0, 2
+ adds r1, r3, r0
+ lsls r1, 3
+ adds r0, r1, r2
+ ldrb r4, [r0, 0x1C]
+ mov r9, r4
+ ldrb r4, [r0, 0xA]
+ mov r10, r4
+ ldrb r0, [r0, 0x8]
+ str r0, [sp, 0x8]
+ movs r5, 0
+ adds r7, r2, 0
+ ldr r0, _08044DB8
+ mov r12, r0
+ str r3, [sp, 0xC]
+ adds r0, r7, 0
+ adds r0, 0xE
+ adds r2, r1, r0
+_08044CD8:
+ mov r4, sp
+ adds r1, r4, r5
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044CD8
+ ldr r1, _08044DBC
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x10
+ strh r1, [r0, 0x26]
+ movs r5, 0
+ mov r4, r10
+ lsls r4, 4
+ str r4, [sp, 0x10]
+ ldr r4, _08044DB8
+ movs r6, 0xD
+ negs r6, r6
+ movs r3, 0x4
+_08044D14:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044D14
+ ldr r2, [sp, 0x10]
+ add r2, r10
+ lsls r2, 2
+ add r2, r12
+ ldrb r1, [r2, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ mov r2, r9
+ cmp r2, 0
+ bne _08044D50
+ b _08044E54
+_08044D50:
+ movs r5, 0
+ mov r6, r12
+ mov r9, r5
+ adds r3, r6, 0
+ adds r3, 0x1C
+ mov r4, sp
+ movs r7, 0
+_08044D5E:
+ ldr r0, [sp, 0x8]
+ str r3, [sp, 0x14]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r2, 0
+ beq _08044DC4
+ movs r0, 0x5
+ subs r0, r5
+ mov r1, sp
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r7, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r9
+ strh r1, [r0, 0x34]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r9
+ strh r1, [r0, 0x36]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _08044DC0
+ str r1, [r0]
+ ldr r2, _08044DB8
+ mov r12, r2
+ b _08044DFA
+ .align 2, 0
+_08044DB4: .4byte 0x03004b20
+_08044DB8: .4byte 0x02020004
+_08044DBC: .4byte 0x04000050
+_08044DC0: .4byte sub_8045110
+_08044DC4:
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r7, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r2, [r0, 0x34]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r2, [r0, 0x36]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _08044E3C
+ str r1, [r0]
+ ldr r0, _08044E40
+ mov r12, r0
+_08044DFA:
+ adds r4, 0x1
+ adds r7, 0x7
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044D5E
+ ldr r3, [sp, 0x10]
+ add r3, r10
+ lsls r3, 2
+ mov r1, r12
+ adds r0, r3, r1
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ mov r1, r12
+ adds r1, 0x1C
+ adds r3, r1
+ ldr r1, _08044E44
+ str r1, [r3]
+ ldr r1, _08044E48
+ bl SetSubspriteTables
+ ldr r1, _08044E4C
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08044E50
+ b _08044E5E
+ .align 2, 0
+_08044E3C: .4byte sub_8045110
+_08044E40: .4byte 0x02020004
+_08044E44: .4byte sub_8045048
+_08044E48: .4byte gUnknown_0820A6EC
+_08044E4C: .4byte 0x03004b20
+_08044E50: .4byte sub_8044E74
+_08044E54:
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _08044E70
+_08044E5E:
+ str r1, [r0]
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044E70: .4byte sub_8044F70
+ thumb_func_end sub_8044CA0
+
+ thumb_func_start sub_8044E74
+sub_8044E74: @ 8044E74
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08044EC0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1E]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08044EAE
+ ldrh r0, [r3, 0x26]
+ subs r2, r0, 0x1
+ strh r2, [r3, 0x26]
+ lsls r0, r2, 16
+ cmp r0, 0
+ blt _08044EBA
+ ldr r1, _08044EC4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1]
+_08044EAE:
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08044EBA
+ ldr r0, _08044EC8
+ str r0, [r3]
+_08044EBA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044EC0: .4byte 0x03004b20
+_08044EC4: .4byte 0x04000052
+_08044EC8: .4byte sub_8044ECC
+ thumb_func_end sub_8044E74
+
+ thumb_func_start sub_8044ECC
+sub_8044ECC: @ 8044ECC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r6, _08044F44
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r4, r0, 3
+ adds r1, r4, r6
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x1
+ movs r5, 0
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r2, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ bne _08044F4C
+ ldrb r3, [r1, 0xA]
+ adds r0, r6, 0
+ adds r0, 0xE
+ adds r2, r4, r0
+_08044EFA:
+ mov r0, sp
+ adds r1, r0, r5
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044EFA
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r4, _08044F48
+ adds r0, r4
+ bl DestroySpriteAndFreeResources
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySpriteAndFreeResources
+ movs r5, 0x1
+_08044F2A:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044F2A
+ b _08044F62
+ .align 2, 0
+_08044F44: .4byte 0x03004b20
+_08044F48: .4byte 0x02020004
+_08044F4C:
+ movs r0, 0x3
+ negs r0, r0
+ cmp r2, r0
+ bne _08044F62
+ ldr r0, _08044F6C
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+_08044F62:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044F6C: .4byte 0x04000050
+ thumb_func_end sub_8044ECC
+
+ thumb_func_start sub_8044F70
+sub_8044F70: @ 8044F70
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r7, _08044FA4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r6, r0, 3
+ adds r3, r6, r7
+ ldrh r0, [r3, 0x26]
+ subs r2, r0, 0x1
+ movs r5, 0
+ strh r2, [r3, 0x26]
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ blt _08044FAC
+ ldr r1, _08044FA8
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1]
+ b _08045022
+ .align 2, 0
+_08044FA4: .4byte 0x03004b20
+_08044FA8: .4byte 0x04000052
+_08044FAC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0804500C
+ ldrb r3, [r3, 0xA]
+ movs r5, 0
+ adds r0, r7, 0
+ adds r0, 0xE
+ adds r2, r6, r0
+_08044FBE:
+ mov r0, sp
+ adds r1, r0, r5
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044FBE
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r4, _08045008
+ adds r0, r4
+ bl DestroySpriteAndFreeResources
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySpriteAndFreeResources
+ movs r5, 0x1
+_08044FEE:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08044FEE
+ b _08045022
+ .align 2, 0
+_08045008: .4byte 0x02020004
+_0804500C:
+ movs r0, 0x3
+ negs r0, r0
+ cmp r1, r0
+ bne _08045022
+ ldr r0, _0804502C
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_08045022:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804502C: .4byte 0x04000050
+ thumb_func_end sub_8044F70
+
+ thumb_func_start sub_8045030
+sub_8045030: @ 8045030
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08045044
+ ldrh r0, [r1, 0x2E]
+ adds r0, r2, r0
+ strh r0, [r1, 0x24]
+_08045044:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8045030
+
+ thumb_func_start sub_8045048
+sub_8045048: @ 8045048
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ adds r1, 0x20
+ strh r1, [r2, 0x30]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _08045066
+ lsls r0, r1, 16
+ asrs r0, 20
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ b _0804506E
+_08045066:
+ lsls r1, 16
+ asrs r1, 20
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+_0804506E:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x30]
+ movs r0, 0xF
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8045048
+
+ thumb_func_start sub_804507C
+sub_804507C: @ 804507C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08045090
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08045106
+_08045090:
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r2, 0
+ adds r0, 0x38
+ lsls r1, r0, 16
+ lsrs r2, r1, 16
+ ldr r0, _080450C0
+ ands r2, r0
+ strh r2, [r4, 0x34]
+ cmp r3, 0
+ beq _080450C4
+ lsrs r0, r1, 20
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080450D4
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ b _080450D4
+ .align 2, 0
+_080450C0: .4byte 0x0000fff0
+_080450C4:
+ lsrs r1, 20
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080450D4
+ strh r3, [r4, 0x24]
+_080450D4:
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08045106
+ movs r1, 0x3F
+ cmp r3, 0
+ beq _080450E4
+ movs r1, 0xC0
+_080450E4:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080450F8
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x74
+ bl sub_807552C
+ b _08045102
+_080450F8:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x73
+ bl sub_80754F8
+_08045102:
+ ldr r0, _0804510C
+ str r0, [r4, 0x1C]
+_08045106:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804510C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_804507C
+
+ thumb_func_start sub_8045110
+sub_8045110: @ 8045110
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _08045124
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _08045174
+_08045124:
+ ldrh r0, [r3, 0x32]
+ lsls r0, 24
+ ldrh r2, [r3, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x38
+ lsls r4, r1, 16
+ lsrs r2, r4, 16
+ ldr r1, _08045144
+ ands r2, r1
+ strh r2, [r3, 0x34]
+ cmp r0, 0
+ beq _08045148
+ lsrs r0, r4, 20
+ ldrh r1, [r3, 0x24]
+ adds r0, r1
+ b _0804514E
+ .align 2, 0
+_08045144: .4byte 0x0000fff0
+_08045148:
+ lsrs r1, r4, 20
+ ldrh r0, [r3, 0x24]
+ subs r0, r1
+_0804514E:
+ strh r0, [r3, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x80
+ lsls r1, 1
+ cmp r0, r1
+ bls _08045174
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0804517C
+ str r0, [r3, 0x1C]
+_08045174:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804517C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8045110
+
+ thumb_func_start sub_8045180
+sub_8045180: @ 8045180
+ ldrh r2, [r0, 0x2E]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0804519C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ strh r2, [r0, 0x24]
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_0804519C: .4byte 0x02020004
+ thumb_func_end sub_8045180
+
+ thumb_func_start sub_80451A0
+sub_80451A0: @ 80451A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _08045238
+ ldr r1, _0804523C
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r7, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ mov r0, sp
+ bl StringGetEnd10
+ adds r4, 0x3
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ adds r5, r0, 0
+ movs r1, 0xFC
+ strb r1, [r5]
+ movs r0, 0x3
+ strb r0, [r5, 0x1]
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x1
+ strb r0, [r5, 0x4]
+ adds r5, 0x5
+ adds r0, r7, 0
+ bl pokemon_get_gender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl PokemonGetField
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8040D3C
+ cmp r0, 0
+ beq _08045222
+ movs r6, 0x64
+_08045222:
+ cmp r6, 0
+ beq _08045240
+ cmp r6, 0xFE
+ beq _08045248
+ movs r0, 0xB
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08045256
+ .align 2, 0
+_08045238: .4byte 0x020238cc
+_0804523C: .4byte gUnknown_0820A8B0
+_08045240:
+ movs r0, 0xB
+ strb r0, [r5]
+ movs r0, 0xB5
+ b _0804524E
+_08045248:
+ movs r0, 0xA
+ strb r0, [r5]
+ movs r0, 0xB6
+_0804524E:
+ strb r0, [r5, 0x1]
+ movs r0, 0xFF
+ strb r0, [r5, 0x2]
+ adds r5, 0x2
+_08045256:
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x37
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r1, _080452D8
+ mov r0, r9
+ lsls r4, r0, 4
+ adds r0, r4, r0
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 7
+ ldr r2, _080452DC
+ adds r5, r1, r2
+ ldr r0, _080452E0
+ mov r8, r0
+ adds r0, r5, 0
+ mov r1, r8
+ bl sub_80034D4
+ movs r6, 0
+ movs r1, 0x7
+ mov r10, r1
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl PokemonGetField
+ str r4, [sp, 0xC]
+ cmp r0, 0x1
+ bne _08045338
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _08045338
+ mov r4, r8
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _08045338
+ adds r7, r5, 0
+_080452C2:
+ cmp r1, 0xFC
+ bne _080452E4
+ ldrb r0, [r4, 0x1]
+ bl GetExtCtrlCodeLength
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ adds r4, r0
+ b _08045330
+ .align 2, 0
+_080452D8: .4byte 0x02020004
+_080452DC: .4byte 0x02000520
+_080452E0: .4byte 0x020238cc
+_080452E4:
+ adds r0, r1, 0
+ subs r0, 0x37
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080452FC
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08045300
+_080452FC:
+ movs r0, 0x2C
+ b _0804531E
+_08045300:
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _08045318
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _0804531C
+_08045318:
+ movs r0, 0x2D
+ b _0804531E
+_0804531C:
+ movs r0, 0x2B
+_0804531E:
+ bl sub_8043CDC
+ adds r1, r7, 0
+ ldr r2, _080453C8
+ bl CpuSet
+ adds r7, 0x40
+ adds r6, 0x1
+ adds r4, 0x1
+_08045330:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _080452C2
+_08045338:
+ cmp r6, r10
+ bge _0804535A
+ lsls r0, r6, 6
+ adds r4, r0, r5
+ mov r2, r10
+ subs r6, r2, r6
+_08045344:
+ movs r0, 0x2B
+ bl sub_8043CDC
+ adds r1, r4, 0
+ ldr r2, _080453C8
+ bl CpuSet
+ adds r4, 0x40
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08045344
+_0804535A:
+ ldr r1, _080453CC
+ ldr r0, [sp, 0xC]
+ add r0, r9
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080453D4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080453D4
+ ldr r1, _080453D0
+ mov r0, r10
+ cmp r0, 0
+ beq _08045438
+ mov r8, r6
+ mov r9, r1
+ ldr r7, _080453C8
+ mov r6, r10
+_0804538E:
+ mov r1, r9
+ adds r1, 0x4
+ mov r9, r1
+ subs r1, 0x4
+ ldm r1!, {r4}
+ mov r2, r8
+ ldrh r0, [r2, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r5, 0x20
+ movs r0, 0x80
+ lsls r0, 1
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r5, 0x20
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0804538E
+ b _08045438
+ .align 2, 0
+_080453C8: .4byte 0x04000008
+_080453CC: .4byte 0x02020004
+_080453D0: .4byte gUnknown_0820A8B4
+_080453D4:
+ ldr r1, _08045448
+ ldr r0, [sp, 0xC]
+ add r0, r9
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _0804544C
+ cmp r0, 0
+ bne _080453F2
+ ldr r1, _08045450
+_080453F2:
+ mov r2, r10
+ cmp r2, 0
+ beq _08045438
+ mov r8, r4
+ mov r9, r1
+ ldr r7, _08045454
+ mov r6, r10
+_08045400:
+ mov r0, r9
+ adds r0, 0x4
+ mov r9, r0
+ subs r0, 0x4
+ ldm r0!, {r4}
+ mov r1, r8
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r5, 0x20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r5, 0x20
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08045400
+_08045438:
+ 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
+_08045448: .4byte 0x02020004
+_0804544C: .4byte gUnknown_0820A8DC
+_08045450: .4byte gUnknown_0820A904
+_08045454: .4byte 0x04000008
+ thumb_func_end sub_80451A0
+
+ thumb_func_start sub_8045458
+sub_8045458: @ 8045458
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080454F4
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0804552E
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0804552E
+ ldr r6, _080454F8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r6
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804552E
+ ldr r1, _080454FC
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08045500
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804552E
+ ldrh r0, [r5, 0x38]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, 0
+ beq _0804550C
+ movs r0, 0x46
+ bl sub_8043CDC
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2
+ ldr r2, _08045504
+ adds r1, r2
+ ldr r2, _08045508
+ bl CpuSet
+ b _0804552E
+ .align 2, 0
+_080454F4: .4byte 0x020239f8
+_080454F8: .4byte 0x02020004
+_080454FC: .4byte 0x02024a6a
+_08045500: .4byte 0x030045c0
+_08045504: .4byte 0x06010000
+_08045508: .4byte 0x04000008
+_0804550C:
+ str r7, [sp]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, _08045538
+ adds r1, r0
+ ldr r2, _0804553C
+ mov r0, sp
+ bl CpuSet
+_0804552E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045538: .4byte 0x06010000
+_0804553C: .4byte 0x05000008
+ thumb_func_end sub_8045458
+
+ thumb_func_start draw_status_ailment_maybe
+draw_status_ailment_maybe: @ 8045540
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080455A4
+ mov r2, r9
+ lsls r1, r2, 4
+ add r1, r9
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x3A]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r1, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080455B0
+ ldr r1, _080455A8
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080455AC
+ adds r0, r1
+ movs r1, 0x37
+ bl PokemonGetField
+ adds r4, r0, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ movs r3, 0x12
+ mov r8, r3
+ cmp r0, 0
+ bne _080455CC
+ movs r0, 0x1A
+ mov r8, r0
+ b _080455CC
+ .align 2, 0
+_080455A4: .4byte 0x02020004
+_080455A8: .4byte 0x02024a6a
+_080455AC: .4byte 0x03004360
+_080455B0:
+ ldr r1, _080455EC
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080455F0
+ adds r0, r1
+ movs r1, 0x37
+ bl PokemonGetField
+ adds r4, r0, 0
+ movs r1, 0x11
+ mov r8, r1
+_080455CC:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _080455F4
+ movs r0, 0x1B
+ adds r1, r7, 0
+ bl sub_80457E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r0, 0x2
+ b _080456FC
+ .align 2, 0
+_080455EC: .4byte 0x02024a6a
+_080455F0: .4byte 0x030045c0
+_080455F4:
+ movs r0, 0x88
+ ands r0, r4
+ cmp r0, 0
+ beq _08045612
+ movs r0, 0x15
+ adds r1, r7, 0
+ bl sub_80457E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r0, 0
+ b _080456FC
+_08045612:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _08045630
+ movs r0, 0x21
+ adds r1, r7, 0
+ bl sub_80457E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r0, 0x4
+ b _080456FC
+_08045630:
+ movs r0, 0x20
+ ands r0, r4
+ cmp r0, 0
+ beq _0804564E
+ movs r0, 0x1E
+ adds r1, r7, 0
+ bl sub_80457E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r0, 0x3
+ b _080456FC
+_0804564E:
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ beq _0804566C
+ movs r0, 0x18
+ adds r1, r7, 0
+ bl sub_80457E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r0, 0x1
+ b _080456FC
+_0804566C:
+ movs r0, 0x27
+ bl sub_8043CDC
+ adds r6, r0, 0
+ movs r4, 0
+ mov r2, r9
+ lsls r0, r2, 4
+ mov r3, r8
+ lsls r3, 16
+ mov r8, r3
+ lsls r7, 2
+ ldr r1, _080456E8
+ add r0, r9
+ lsls r0, 2
+ adds r5, r0, r1
+_0804568A:
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ mov r2, r8
+ asrs r0, r2, 16
+ adds r1, r0
+ adds r1, r4
+ lsls r1, 5
+ ldr r3, _080456EC
+ adds r1, r3
+ adds r0, r6, 0
+ ldr r2, _080456F0
+ bl CpuSet
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0804568A
+ ldr r0, _080456F4
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080456DC
+ movs r0, 0x1
+ bl sub_8043CDC
+ ldr r2, _080456E8
+ mov r3, r10
+ lsls r1, r3, 4
+ add r1, r10
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, _080456EC
+ adds r1, r2
+ ldr r2, _080456F8
+ bl CpuSet
+_080456DC:
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_8045458
+ b _080457BA
+ .align 2, 0
+_080456E8: .4byte 0x02020004
+_080456EC: .4byte 0x06010000
+_080456F0: .4byte 0x04000008
+_080456F4: .4byte 0x02017800
+_080456F8: .4byte 0x04000010
+_080456FC:
+ mov r1, r9
+ lsls r5, r1, 4
+ add r5, r9
+ lsls r5, 2
+ ldr r2, _080457C8
+ adds r5, r2
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ adds r4, 0xC
+ adds r4, r7
+ lsls r0, 1
+ ldr r1, _080457CC
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r4, r3
+ movs r2, 0x2
+ bl FillPalette
+ lsls r4, 1
+ ldr r0, _080457D0
+ adds r0, r4, r0
+ ldr r1, _080457D4
+ adds r4, r1
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl CpuSet
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ add r1, r8
+ lsls r1, 5
+ ldr r2, _080457D8
+ mov r8, r2
+ add r1, r8
+ ldr r2, _080457DC
+ adds r0, r6, 0
+ bl CpuSet
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0804576A
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080457B2
+_0804576A:
+ lsls r0, r7, 2
+ ldr r1, _080457E0
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080457B2
+ movs r0, 0
+ bl sub_8043CDC
+ mov r3, r10
+ lsls r4, r3, 4
+ add r4, r10
+ lsls r4, 2
+ ldr r1, _080457C8
+ adds r4, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ add r1, r8
+ ldr r5, _080457E4
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x41
+ bl sub_8043CDC
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ adds r1, 0x20
+ add r1, r8
+ adds r2, r5, 0
+ bl CpuSet
+_080457B2:
+ mov r0, r9
+ movs r1, 0
+ bl sub_8045458
+_080457BA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080457C8: .4byte 0x02020004
+_080457CC: .4byte gUnknown_08E903F8
+_080457D0: .4byte 0x0202ecc8
+_080457D4: .4byte 0x05000200
+_080457D8: .4byte 0x06010000
+_080457DC: .4byte 0x04000018
+_080457E0: .4byte 0x02017800
+_080457E4: .4byte 0x04000008
+ thumb_func_end draw_status_ailment_maybe
+
+ thumb_func_start sub_80457E8
+sub_80457E8: @ 80457E8
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsrs r2, r0, 24
+ adds r0, r2, 0
+ subs r0, 0x15
+ cmp r0, 0xC
+ bhi _080458A8
+ lsls r0, 2
+ ldr r1, _08045804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08045804: .4byte _08045808
+ .align 2, 0
+_08045808:
+ .4byte _0804583C
+ .4byte _080458A8
+ .4byte _080458A8
+ .4byte _08045852
+ .4byte _080458A8
+ .4byte _080458A8
+ .4byte _08045868
+ .4byte _080458A8
+ .4byte _080458A8
+ .4byte _0804587E
+ .4byte _080458A8
+ .4byte _080458A8
+ .4byte _08045894
+_0804583C:
+ movs r2, 0x15
+ cmp r3, 0
+ beq _080458A8
+ movs r2, 0x47
+ cmp r3, 0x1
+ beq _080458A8
+ movs r2, 0x65
+ cmp r3, 0x2
+ bne _080458A8
+ movs r2, 0x56
+ b _080458A8
+_08045852:
+ movs r2, 0x18
+ cmp r3, 0
+ beq _080458A8
+ movs r2, 0x4A
+ cmp r3, 0x1
+ beq _080458A8
+ movs r2, 0x68
+ cmp r3, 0x2
+ bne _080458A8
+ movs r2, 0x59
+ b _080458A8
+_08045868:
+ movs r2, 0x1B
+ cmp r3, 0
+ beq _080458A8
+ movs r2, 0x4D
+ cmp r3, 0x1
+ beq _080458A8
+ movs r2, 0x6B
+ cmp r3, 0x2
+ bne _080458A8
+ movs r2, 0x5C
+ b _080458A8
+_0804587E:
+ movs r2, 0x1E
+ cmp r3, 0
+ beq _080458A8
+ movs r2, 0x50
+ cmp r3, 0x1
+ beq _080458A8
+ movs r2, 0x6E
+ cmp r3, 0x2
+ bne _080458A8
+ movs r2, 0x5F
+ b _080458A8
+_08045894:
+ movs r2, 0x21
+ cmp r3, 0
+ beq _080458A8
+ movs r2, 0x53
+ cmp r3, 0x1
+ beq _080458A8
+ movs r2, 0x71
+ cmp r3, 0x2
+ bne _080458A8
+ movs r2, 0x62
+_080458A8:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80457E8
+
+ thumb_func_start sub_80458B0
+sub_80458B0: @ 80458B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08045984
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 7
+ ldr r0, _08045988
+ adds r6, r1, r0
+ movs r1, 0x7
+ mov r8, r1
+ ldr r1, _0804598C
+ adds r0, r6, 0
+ bl sub_80034D4
+ movs r4, 0
+_080458EE:
+ movs r0, 0x2B
+ bl sub_8043CDC
+ lsls r1, r4, 6
+ adds r1, r6, r1
+ ldr r2, _08045990
+ bl CpuSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bcc _080458EE
+ movs r7, 0x3
+ movs r2, 0x3
+ add r2, r8
+ mov r9, r2
+ cmp r7, r9
+ bge _08045974
+ ldr r1, _08045984
+ ldr r0, _08045990
+ mov r10, r0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ mov r8, r0
+_08045924:
+ mov r1, r8
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r5, r7, 0
+ cmp r7, 0
+ bge _08045934
+ adds r5, r7, 0x7
+_08045934:
+ asrs r5, 3
+ lsls r4, r5, 3
+ subs r4, r7, r4
+ adds r0, r4
+ lsls r5, 6
+ adds r0, r5
+ lsls r0, 5
+ ldr r2, _08045994
+ adds r1, r0, r2
+ adds r0, r6, 0
+ mov r2, r10
+ bl CpuSet
+ adds r6, 0x20
+ mov r1, r8
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r4, 0x8
+ adds r0, r4
+ adds r0, r5
+ lsls r0, 5
+ ldr r2, _08045994
+ adds r1, r0, r2
+ adds r0, r6, 0
+ mov r2, r10
+ bl CpuSet
+ adds r6, 0x20
+ adds r7, 0x1
+ cmp r7, r9
+ blt _08045924
+_08045974:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045984: .4byte 0x02020004
+_08045988: .4byte 0x02000520
+_0804598C: .4byte gUnknown_08400DD6
+_08045990: .4byte 0x04000008
+_08045994: .4byte 0x06010000
+ thumb_func_end sub_80458B0
+
+ thumb_func_start sub_8045998
+sub_8045998: @ 8045998
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08045A38
+ mov r8, r0
+ ldr r1, _08045A3C
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r0, _08045A40
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_8003504
+ adds r7, r0, 0
+ ldr r1, _08045A44
+ bl StringAppend
+ ldr r0, _08045A48
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r0
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 7
+ ldr r0, _08045A4C
+ adds r7, r4, r0
+ movs r6, 0x5
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_80034D4
+ ldr r0, _08045A50
+ adds r7, r4, r0
+ movs r4, 0x6
+_080459F8:
+ ldrh r0, [r5, 0x4]
+ lsls r0, 22
+ lsrs r2, r0, 22
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08045A06
+ adds r0, r4, 0x7
+_08045A06:
+ asrs r0, 3
+ lsls r1, r0, 3
+ subs r1, r4, r1
+ adds r1, 0x18
+ adds r1, r2, r1
+ lsls r0, 6
+ adds r1, r0
+ lsls r1, 5
+ ldr r0, _08045A54
+ adds r1, r0
+ adds r0, r7, 0
+ ldr r2, _08045A58
+ bl CpuSet
+ adds r7, 0x40
+ adds r4, 0x1
+ adds r0, r6, 0x6
+ cmp r4, r0
+ blt _080459F8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045A38: .4byte 0x020238cc
+_08045A3C: .4byte gUnknown_08400DE6
+_08045A40: .4byte 0x02038808
+_08045A44: .4byte gUnknown_08400DF0
+_08045A48: .4byte 0x02020004
+_08045A4C: .4byte 0x02000520
+_08045A50: .4byte 0x02000540
+_08045A54: .4byte 0x06010000
+_08045A58: .4byte 0x04000008
+ thumb_func_end sub_8045998
+
+ thumb_func_start sub_8045A5C
+sub_8045A5C: @ 8045A5C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r1, _08045BE4
+ lsls r0, 4
+ add r0, r8
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045A92
+ b _08045BF0
+_08045A92:
+ cmp r7, 0x3
+ beq _08045A9A
+ cmp r7, 0
+ bne _08045AAE
+_08045A9A:
+ mov r0, r9
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8043FC0
+_08045AAE:
+ cmp r7, 0x1
+ bhi _08045AC8
+ mov r0, r9
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, r8
+ movs r2, 0
+ bl sub_80440EC
+_08045AC8:
+ cmp r7, 0x2
+ beq _08045AD0
+ cmp r7, 0
+ bne _08045AE6
+_08045AD0:
+ mov r0, r9
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, r8
+ movs r2, 0x1
+ bl sub_80440EC
+_08045AE6:
+ cmp r7, 0x5
+ beq _08045AEE
+ cmp r7, 0
+ bne _08045B22
+_08045AEE:
+ movs r0, 0
+ bl load_gfxc_health_bar
+ mov r0, r9
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r4, r0, 0
+ mov r0, r9
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r3, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r10
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_8043D84
+ mov r0, r10
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+_08045B22:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ cmp r0, 0
+ bne _08045BA6
+ cmp r7, 0x6
+ beq _08045B38
+ cmp r7, 0
+ bne _08045BA6
+_08045B38:
+ movs r0, 0x3
+ bl load_gfxc_health_bar
+ mov r0, r9
+ movs r1, 0xB
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r9
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ movs r1, 0x19
+ bl PokemonGetField
+ adds r3, r0, 0
+ ldr r6, _08045BE8
+ lsls r1, r4, 2
+ ldr r2, _08045BEC
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r2
+ adds r1, r0
+ adds r1, r6
+ ldr r1, [r1]
+ subs r3, r1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r0
+ adds r4, r6
+ ldr r2, [r4]
+ subs r2, r1
+ ldr r0, [sp, 0x4]
+ str r0, [sp]
+ mov r0, r10
+ mov r1, r8
+ bl sub_8043D84
+ mov r0, r10
+ mov r1, r8
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8045C78
+_08045BA6:
+ cmp r7, 0x4
+ beq _08045BAE
+ cmp r7, 0
+ bne _08045BB6
+_08045BAE:
+ mov r0, r8
+ mov r1, r9
+ bl sub_80451A0
+_08045BB6:
+ cmp r7, 0x9
+ beq _08045BBE
+ cmp r7, 0
+ bne _08045BC4
+_08045BBE:
+ mov r0, r8
+ bl draw_status_ailment_maybe
+_08045BC4:
+ cmp r7, 0xA
+ bne _08045BCE
+ mov r0, r8
+ bl sub_80458B0
+_08045BCE:
+ adds r0, r7, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08045C66
+ mov r0, r8
+ bl sub_8045998
+ b _08045C66
+ .align 2, 0
+_08045BE4: .4byte 0x02020004
+_08045BE8: .4byte gExperienceTables
+_08045BEC: .4byte gBaseStats
+_08045BF0:
+ cmp r7, 0x3
+ beq _08045BF8
+ cmp r7, 0
+ bne _08045C0C
+_08045BF8:
+ mov r0, r9
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8043FC0
+_08045C0C:
+ cmp r7, 0x5
+ beq _08045C14
+ cmp r7, 0
+ bne _08045C48
+_08045C14:
+ movs r0, 0
+ bl load_gfxc_health_bar
+ mov r0, r9
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r4, r0, 0
+ mov r0, r9
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r3, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r10
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_8043D84
+ mov r0, r10
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+_08045C48:
+ cmp r7, 0x4
+ beq _08045C50
+ cmp r7, 0
+ bne _08045C58
+_08045C50:
+ mov r0, r8
+ mov r1, r9
+ bl sub_80451A0
+_08045C58:
+ cmp r7, 0x9
+ beq _08045C60
+ cmp r7, 0
+ bne _08045C66
+_08045C60:
+ mov r0, r8
+ bl draw_status_ailment_maybe
+_08045C66:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8045A5C
+
+ thumb_func_start sub_8045C78
+sub_8045C78: @ 8045C78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ cmp r2, 0
+ bne _08045CBC
+ lsls r5, r7, 2
+ adds r3, r5, r7
+ lsls r3, 2
+ ldr r4, _08045CB8
+ adds r2, r3, r4
+ ldr r0, [r2, 0x4]
+ ldr r1, [r2, 0x8]
+ ldr r2, [r2, 0xC]
+ adds r4, 0x10
+ adds r3, r4
+ movs r4, 0x6
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ bl sub_8045F58
+ adds r6, r0, 0
+ adds r4, r5, 0
+ b _08045D0A
+ .align 2, 0
+_08045CB8: .4byte 0x02017850
+_08045CBC:
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 2
+ mov r10, r0
+ ldr r6, _08045D50
+ add r6, r10
+ ldr r0, [r6, 0x8]
+ ldr r1, [r6, 0xC]
+ ldr r2, [r6, 0x4]
+ movs r3, 0x8
+ bl sub_8046188
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08045CDE
+ movs r5, 0x1
+_08045CDE:
+ ldr r0, [r6, 0xC]
+ mov r8, r0
+ adds r1, r5, 0
+ bl __divsi3
+ cmp r0, 0
+ bge _08045CEE
+ negs r0, r0
+_08045CEE:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [r6, 0x4]
+ ldr r1, [r6, 0x8]
+ ldr r3, _08045D50
+ adds r3, 0x10
+ add r3, r10
+ movs r2, 0x8
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ mov r2, r8
+ bl sub_8045F58
+ adds r6, r0, 0
+_08045D0A:
+ mov r0, r9
+ cmp r0, 0x1
+ beq _08045D22
+ cmp r0, 0
+ bne _08045D2A
+ ldr r0, _08045D54
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08045D2A
+_08045D22:
+ adds r0, r7, 0
+ mov r1, r9
+ bl sub_8045D58
+_08045D2A:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ bne _08045D3E
+ adds r0, r4, r7
+ lsls r0, 2
+ ldr r1, _08045D50
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0, 0x10]
+_08045D3E:
+ adds r0, r6, 0
+ 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
+_08045D50: .4byte 0x02017850
+_08045D54: .4byte 0x02017800
+ thumb_func_end sub_8045C78
+
+ thumb_func_start sub_8045D58
+sub_8045D58: @ 8045D58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ beq _08045D72
+ cmp r1, 0x1
+ beq _08045E54
+ b _08045F42
+_08045D72:
+ lsls r5, r6, 2
+ adds r3, r5, r6
+ lsls r3, 2
+ ldr r4, _08045E00
+ adds r2, r3, r4
+ ldr r0, [r2, 0x4]
+ ldr r1, [r2, 0x8]
+ ldr r2, [r2, 0xC]
+ adds r4, 0x10
+ adds r3, r4
+ add r4, sp, 0x8
+ str r4, [sp]
+ movs r4, 0x6
+ str r4, [sp, 0x4]
+ bl sub_804602C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ mov r8, r1
+ adds r1, r5, 0
+ cmp r0, 0x18
+ bhi _08045DAC
+ movs r2, 0x38
+ mov r8, r2
+ cmp r0, 0x9
+ bls _08045DAC
+ movs r4, 0x2F
+ mov r8, r4
+_08045DAC:
+ movs r5, 0
+ ldr r7, _08045E04
+ adds r0, r1, r6
+ lsls r6, r0, 2
+_08045DB4:
+ ldr r0, _08045E00
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r0, [r0, 0x38]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r5, 0x1
+ bhi _08045E10
+ mov r0, r8
+ bl sub_8043CDC
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r7
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r2, r5, 0x2
+ adds r1, r2
+ lsls r1, 5
+ ldr r2, _08045E08
+ adds r1, r2
+ ldr r2, _08045E0C
+ bl CpuSet
+ b _08045E3E
+ .align 2, 0
+_08045E00: .4byte 0x02017850
+_08045E04: .4byte 0x02020004
+_08045E08: .4byte 0x06010000
+_08045E0C: .4byte 0x04000008
+_08045E10:
+ mov r0, r8
+ bl sub_8043CDC
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r7
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r1, r5, r1
+ lsls r1, 5
+ ldr r4, _08045E4C
+ adds r1, r4
+ ldr r2, _08045E50
+ bl CpuSet
+_08045E3E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08045DB4
+ b _08045F42
+ .align 2, 0
+_08045E4C: .4byte 0x06010040
+_08045E50: .4byte 0x04000008
+_08045E54:
+ lsls r5, r6, 2
+ adds r3, r5, r6
+ lsls r3, 2
+ ldr r4, _08045EF0
+ adds r2, r3, r4
+ ldr r0, [r2, 0x4]
+ ldr r1, [r2, 0x8]
+ ldr r2, [r2, 0xC]
+ adds r4, 0x10
+ adds r3, r4
+ add r4, sp, 0x8
+ str r4, [sp]
+ movs r4, 0x8
+ str r4, [sp, 0x4]
+ bl sub_804602C
+ ldr r1, _08045EF4
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08045EF8
+ adds r0, r1
+ movs r1, 0x38
+ bl PokemonGetField
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ cmp r0, 0x64
+ bne _08045EAA
+ movs r5, 0
+ movs r2, 0
+_08045E98:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _08045E98
+_08045EAA:
+ movs r5, 0
+ ldr r7, _08045EFC
+ adds r0, r1, r6
+ lsls r0, 2
+ ldr r1, _08045EF0
+ adds r4, r0, r1
+_08045EB6:
+ cmp r5, 0x3
+ bhi _08045F08
+ movs r0, 0xC
+ bl sub_8043CDC
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r7
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r2, r5, 0
+ adds r2, 0x24
+ adds r1, r2
+ lsls r1, 5
+ ldr r2, _08045F00
+ adds r1, r2
+ ldr r2, _08045F04
+ bl CpuSet
+ b _08045F38
+ .align 2, 0
+_08045EF0: .4byte 0x02017850
+_08045EF4: .4byte 0x02024a6a
+_08045EF8: .4byte 0x03004360
+_08045EFC: .4byte 0x02020004
+_08045F00: .4byte 0x06010000
+_08045F04: .4byte 0x04000008
+_08045F08:
+ movs r0, 0xC
+ bl sub_8043CDC
+ mov r1, sp
+ adds r1, r5
+ adds r1, 0x8
+ ldrb r1, [r1]
+ lsls r1, 5
+ adds r0, r1
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r7
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r1, r5, r1
+ lsls r1, 5
+ ldr r2, _08045F50
+ adds r1, r2
+ ldr r2, _08045F54
+ bl CpuSet
+_08045F38:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _08045EB6
+_08045F42:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045F50: .4byte 0x06010b80
+_08045F54: .4byte 0x04000008
+ thumb_func_end sub_8045D58
+
+ thumb_func_start sub_8045F58
+sub_8045F58: @ 8045F58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ mov r8, r2
+ adds r5, r3, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, [sp, 0x1C]
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 27
+ lsrs r2, r1, 24
+ ldr r1, [r5]
+ ldr r0, _08045F84
+ cmp r1, r0
+ bne _08045F8A
+ cmp r7, r2
+ bge _08045F88
+ lsls r0, r4, 8
+ str r0, [r5]
+ b _08045F8A
+ .align 2, 0
+_08045F84: .4byte 0xffff8000
+_08045F88:
+ str r4, [r5]
+_08045F8A:
+ mov r0, r8
+ subs r4, r0
+ cmp r4, 0
+ bge _08045F96
+ movs r4, 0
+ b _08045F9C
+_08045F96:
+ cmp r4, r7
+ ble _08045F9C
+ adds r4, r7, 0
+_08045F9C:
+ cmp r7, r2
+ bge _08045FB8
+ ldr r0, [r5]
+ asrs r1, r0, 8
+ adds r6, r0, 0
+ cmp r4, r1
+ bne _08045FC4
+ movs r0, 0xFF
+ ands r0, r6
+ cmp r0, 0
+ bne _08045FC4
+ movs r0, 0x1
+ negs r0, r0
+ b _08046020
+_08045FB8:
+ ldr r6, [r5]
+ cmp r4, r6
+ bne _08045FC4
+ movs r0, 0x1
+ negs r0, r0
+ b _08046020
+_08045FC4:
+ cmp r7, r2
+ bge _08045FFE
+ lsls r0, r7, 8
+ adds r1, r2, 0
+ bl __divsi3
+ mov r1, r8
+ cmp r1, 0
+ bge _08045FE2
+ adds r0, r6, r0
+ str r0, [r5]
+ asrs r2, r0, 8
+ cmp r2, r4
+ blt _0804601E
+ b _08045FF6
+_08045FE2:
+ subs r0, r6, r0
+ str r0, [r5]
+ asrs r2, r0, 8
+ movs r1, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ ble _08045FF2
+ adds r2, 0x1
+_08045FF2:
+ cmp r2, r4
+ bgt _0804601E
+_08045FF6:
+ lsls r0, r4, 8
+ str r0, [r5]
+ adds r2, r4, 0
+ b _0804601E
+_08045FFE:
+ mov r0, r8
+ cmp r0, 0
+ bge _08046010
+ ldr r0, [r5]
+ adds r0, r3
+ str r0, [r5]
+ cmp r0, r4
+ ble _0804601C
+ b _0804601A
+_08046010:
+ ldr r0, [r5]
+ subs r0, r3
+ str r0, [r5]
+ cmp r0, r4
+ bge _0804601C
+_0804601A:
+ str r4, [r5]
+_0804601C:
+ ldr r2, [r5]
+_0804601E:
+ adds r0, r2, 0
+_08046020:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045F58
+
+ thumb_func_start sub_804602C
+sub_804602C: @ 804602C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ mov r12, r3
+ ldr r7, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ subs r5, r1, r2
+ cmp r5, 0
+ bge _08046044
+ movs r5, 0
+ b _0804604A
+_08046044:
+ cmp r5, r4
+ ble _0804604A
+ adds r5, r4, 0
+_0804604A:
+ lsls r0, r6, 27
+ lsrs r3, r0, 24
+ movs r1, 0
+ cmp r1, r6
+ bcs _08046064
+ movs r2, 0
+_08046056:
+ adds r0, r7, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcc _08046056
+_08046064:
+ cmp r4, r3
+ bge _08046078
+ mov r1, r12
+ ldr r0, [r1]
+ muls r0, r3
+ adds r1, r4, 0
+ bl __divsi3
+ asrs r0, 8
+ b _08046084
+_08046078:
+ mov r1, r12
+ ldr r0, [r1]
+ muls r0, r3
+ adds r1, r4, 0
+ bl __divsi3
+_08046084:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r3, 0
+ bne _0804609A
+ cmp r5, 0
+ ble _0804609A
+ movs r0, 0x1
+ strb r0, [r7]
+ movs r3, 0x1
+ b _080460BE
+_0804609A:
+ movs r1, 0
+ movs r4, 0x8
+_0804609E:
+ cmp r1, r6
+ bcs _080460BE
+ cmp r2, 0x7
+ bls _080460BA
+ adds r0, r7, r1
+ strb r4, [r0]
+ adds r0, r2, 0
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ b _0804609E
+_080460BA:
+ adds r0, r7, r1
+ strb r2, [r0]
+_080460BE:
+ adds r0, r3, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804602C
+
+ thumb_func_start sub_80460C8
+sub_80460C8: @ 80460C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ ldr r2, [r5, 0x8]
+ movs r3, 0x6
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ adds r3, r6, 0
+ bl sub_8045F58
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8046128
+ ldr r0, [r5]
+ cmp r0, 0x2F
+ bgt _08046108
+ ldr r0, [r6]
+ lsls r0, 8
+ lsrs r1, r0, 16
+ b _0804610A
+_08046108:
+ ldrh r1, [r6]
+_0804610A:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ lsls r1, 16
+ asrs r1, 16
+ mov r2, r8
+ bl sub_804373C
+ lsls r0, r7, 16
+ asrs r0, 16
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80460C8
+
+ thumb_func_start sub_8046128
+sub_8046128: @ 8046128
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x1C
+ adds r5, r0, 0
+ adds r3, r1, 0
+ mov r8, r2
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ ldr r2, [r5, 0x8]
+ add r4, sp, 0x8
+ str r4, [sp]
+ movs r4, 0x6
+ str r4, [sp, 0x4]
+ bl sub_804602C
+ movs r3, 0
+ add r7, sp, 0x10
+ mov r12, r7
+ ldrb r0, [r5, 0xC]
+ lsls r6, r0, 27
+ ldr r4, [r5, 0x10]
+_08046154:
+ lsls r2, r3, 1
+ add r2, r12
+ lsrs r1, r6, 15
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ orrs r1, r0
+ strh r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ bls _08046154
+ adds r0, r7, 0
+ mov r1, r8
+ movs r2, 0x6
+ bl CpuSet
+ add sp, 0x1C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046128
+
+ thumb_func_start sub_8046188
+sub_8046188: @ 8046188
+ push {r4-r7,lr}
+ adds r6, r2, 0
+ lsls r3, 27
+ lsrs r7, r3, 24
+ subs r5, r0, r1
+ cmp r5, 0
+ bge _0804619A
+ movs r5, 0
+ b _080461A0
+_0804619A:
+ cmp r5, r6
+ ble _080461A0
+ adds r5, r6, 0
+_080461A0:
+ muls r0, r7
+ adds r1, r6, 0
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ muls r0, r7
+ adds r1, r6, 0
+ bl __divsi3
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r4, r0
+ cmp r0, 0
+ bge _080461C8
+ negs r0, r0
+_080461C8:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046188
+
+ thumb_func_start sub_80461D4
+sub_80461D4: @ 80461D4
+ push {r4,lr}
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ muls r0, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl __divsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080461F8
+ cmp r4, 0
+ ble _080461F8
+ movs r0, 0x1
+_080461F8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80461D4
+
+ thumb_func_start sub_8046200
+sub_8046200: @ 8046200
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _08046212
+ movs r0, 0x4
+ b _0804622E
+_08046212:
+ movs r2, 0x30
+ bl sub_80461D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x3
+ cmp r1, 0x18
+ bhi _0804622E
+ movs r0, 0x2
+ cmp r1, 0x9
+ bhi _0804622E
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_0804622E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046200
+
+ thumb_func_start sub_8046234
+sub_8046234: @ 8046234
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r5, _0804636C
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08046370
+ cmp r0, r1
+ bne _08046266
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08046374
+ bl LoadCompressedObjectPalette
+_08046266:
+ ldr r0, _08046378
+ bl object_new_hidden_with_callback
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r0, _0804637C
+ adds r5, r0
+ strh r4, [r5, 0x30]
+ ldr r0, _08046380
+ mov r9, r0
+ lsls r6, 16
+ asrs r0, r6, 16
+ mov r10, r0
+ ldr r0, _08046384
+ adds r6, r0
+ asrs r6, 16
+ lsls r4, r7, 16
+ asrs r7, r4, 16
+ adds r4, r0
+ asrs r4, 16
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0804637C
+ adds r1, r0
+ mov r0, r8
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804636C: .4byte gUnknown_081FAEA4
+_08046370: .4byte 0xffff0000
+_08046374: .4byte gUnknown_081FAEAC
+_08046378: .4byte sub_8046388
+_0804637C: .4byte 0x02020004
+_08046380: .4byte gSpriteTemplate_81FAF0C
+_08046384: .4byte 0xfff00000
+ thumb_func_end sub_8046234
+
+ thumb_func_start sub_8046388
+sub_8046388: @ 8046388
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463C0
+ ldr r0, _080463B4
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _080463B8
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463BC
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080463C0
+ .align 2, 0
+_080463B4: .4byte gUnknown_081FAEA4
+_080463B8: .4byte gUnknown_081FAEAC
+_080463BC:
+ ldr r0, _080463C8
+ str r0, [r4, 0x1C]
+_080463C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463C8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8046388
+
+ thumb_func_start sub_80463CC
+sub_80463CC: @ 80463CC
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080463F6
+ ldr r2, _080463FC
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ subs r1, 0x1
+ strh r1, [r0, 0x2E]
+ adds r0, r3, 0
+ bl DestroySprite
+_080463F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463FC: .4byte 0x02020004
+ thumb_func_end sub_80463CC
+
+ thumb_func_start sub_8046400
+sub_8046400: @ 8046400
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _08046450
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r6, _08046454
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08046458
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0804645C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046460
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ ldrb r0, [r6]
+ strh r0, [r1, 0xE]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046450: .4byte 0x02024e6d
+_08046454: .4byte 0x02024a60
+_08046458: .4byte 0x02017810
+_0804645C: .4byte sub_8046464
+_08046460: .4byte 0x03004b20
+ thumb_func_end sub_8046400
+
+ thumb_func_start sub_8046464
+sub_8046464: @ 8046464
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _08046498
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0804649C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ b _08046616
+ .align 2, 0
+_08046498: .4byte 0x03004b20
+_0804649C:
+ ldrh r0, [r1, 0xC]
+ mov r8, r0
+ ldrb r5, [r1, 0xE]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080464C8
+ ldr r1, _080464C0
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080464C4
+ b _080464D6
+ .align 2, 0
+_080464C0: .4byte 0x02024a6a
+_080464C4: .4byte 0x030045c0
+_080464C8:
+ ldr r1, _08046544
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08046548
+_080464D6:
+ adds r0, r1
+ movs r1, 0x26
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0804654C
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08046550
+ mov r9, r2
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ adds r4, r6, r2
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ movs r3, 0
+ strh r3, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ mov r2, r8
+ cmp r2, 0xFE
+ beq _0804655C
+ cmp r2, 0xFF
+ bne _08046598
+ ldr r0, _08046554
+ strb r5, [r0]
+ movs r0, 0x18
+ strh r0, [r4, 0x20]
+ movs r0, 0x44
+ strh r0, [r4, 0x22]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046558
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046544: .4byte 0x02024a6a
+_08046548: .4byte 0x03004360
+_0804654C: .4byte gSpriteTemplate_820AAB4
+_08046550: .4byte 0x02020004
+_08046554: .4byte 0x02024c08
+_08046558: .4byte sub_8047074
+_0804655C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x22]
+ ldr r0, _08046590
+ strb r5, [r0]
+ movs r3, 0
+ strh r3, [r4, 0x2E]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _08046594
+ str r1, [r0]
+ b _080465A6
+ .align 2, 0
+_08046590: .4byte 0x02024c08
+_08046594: .4byte sub_8047254
+_08046598:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _080465C4
+ strb r0, [r1]
+ movs r0, 0x1
+ str r0, [sp]
+_080465A6:
+ ldr r0, _080465C8
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r5, _080465C4
+ ldrb r0, [r5]
+ strh r0, [r4, 0x3A]
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _080465CC
+ mov r0, r10
+ bl DestroyTask
+ b _08046616
+ .align 2, 0
+_080465C4: .4byte 0x02024c08
+_080465C8: .4byte 0x02020004
+_080465CC:
+ movs r0, 0x22
+ strh r0, [r4, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r4, 0x36]
+ ldr r0, _08046628
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ mov r3, r10
+ strh r3, [r4, 0x6]
+ ldr r1, _0804662C
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r5]
+ strh r1, [r0, 0x10]
+ ldr r1, _08046630
+ str r1, [r0]
+ movs r0, 0x3D
+ bl audio_play
+_08046616:
+ 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
+_08046628: .4byte 0x0000ffd8
+_0804662C: .4byte 0x03004b20
+_08046630: .4byte TaskDummy
+ thumb_func_end sub_8046464
+
+ thumb_func_start objc_0804ABD4
+objc_0804ABD4: @ 8046634
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080466D4
+ ldrb r6, [r7, 0x6]
+ ldr r1, _080466E0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x10]
+ ldrb r0, [r0, 0xC]
+ mov r8, r0
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r2, [r7, 0x22]
+ adds r0, r2
+ strh r0, [r7, 0x22]
+ strh r1, [r7, 0x24]
+ strh r1, [r7, 0x26]
+ strh r1, [r7, 0x38]
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r7, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x2E]
+ strh r5, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ adds r0, r6, 0
+ bl DestroyTask
+ ldr r0, _080466E4
+ str r0, [r7, 0x1C]
+_080466D4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080466E0: .4byte 0x03004b20
+_080466E4: .4byte sub_80466E8
+ thumb_func_end objc_0804ABD4
+
+ thumb_func_start sub_80466E8
+sub_80466E8: @ 80466E8
+ ldr r1, _080466F0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080466F0: .4byte sub_80466F4
+ thumb_func_end sub_80466E8
+
+ thumb_func_start sub_80466F4
+sub_80466F4: @ 80466F4
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x38]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0804674E
+ strh r7, [r6, 0x38]
+ ldr r0, _08046754
+ str r0, [r6, 0x1C]
+ ldr r5, _08046758
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804675C
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x30]
+_0804674E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046754: .4byte sub_8046760
+_08046758: .4byte 0x02024be0
+_0804675C: .4byte 0x02020004
+ thumb_func_end sub_80466F4
+
+ thumb_func_start sub_8046760
+sub_8046760: @ 8046760
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _08046778
+ movs r0, 0x3C
+ bl audio_play
+_08046778:
+ ldr r6, _080467C4
+ ldr r5, _080467C8
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080467D0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _080467CC
+ str r0, [r4, 0x1C]
+ b _080467F0
+ .align 2, 0
+_080467C4: .4byte 0x02020004
+_080467C8: .4byte 0x02024be0
+_080467CC: .4byte sub_80467F8
+_080467D0:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x60
+ strh r0, [r1, 0x30]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+_080467F0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046760
+
+ thumb_func_start sub_80467F8
+sub_80467F8: @ 80467F8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046840
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046840
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl cosine
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl cosine
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08046848
+ str r0, [r4, 0x1C]
+_08046840:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046848: .4byte sub_804684C
+ thumb_func_end sub_80467F8
+
+ thumb_func_start sub_804684C
+sub_804684C: @ 804684C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _08046862
+ cmp r1, 0x1
+ beq _080468D6
+ b _08046902
+_08046862:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl cosine
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _08046902
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _080468AC
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _0804689E
+ movs r5, 0x1
+_0804689E:
+ cmp r0, 0x2
+ beq _080468BE
+ cmp r0, 0x2
+ bgt _080468B0
+ cmp r0, 0x1
+ beq _080468B6
+ b _080468CE
+ .align 2, 0
+_080468AC: .4byte 0x00000101
+_080468B0:
+ cmp r0, 0x3
+ beq _080468C6
+ b _080468CE
+_080468B6:
+ movs r0, 0x38
+ bl audio_play
+ b _08046902
+_080468BE:
+ movs r0, 0x39
+ bl audio_play
+ b _08046902
+_080468C6:
+ movs r0, 0x3A
+ bl audio_play
+ b _08046902
+_080468CE:
+ movs r0, 0x3B
+ bl audio_play
+ b _08046902
+_080468D6:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl cosine
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _08046902
+ strh r5, [r4, 0x38]
+ ldr r0, _08046928
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_08046902:
+ cmp r5, 0
+ beq _0804693A
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl cosine
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08046930
+ ldr r0, _0804692C
+ str r0, [r4, 0x1C]
+ b _0804693A
+ .align 2, 0
+_08046928: .4byte 0xffffff00
+_0804692C: .4byte sub_8046C78
+_08046930:
+ ldr r0, _08046940
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0804693A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046940: .4byte sub_8046944
+ thumb_func_end sub_804684C
+
+ thumb_func_start sub_8046944
+sub_8046944: @ 8046944
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046978
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08046980
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl audio_play
+_08046978:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046980: .4byte sub_8046984
+ thumb_func_end sub_8046944
+
+ thumb_func_start sub_8046984
+sub_8046984: @ 8046984
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x4
+ bhi _08046A84
+ lsls r0, r1, 2
+ ldr r1, _0804699C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804699C: .4byte _080469A0
+ .align 2, 0
+_080469A0:
+ .4byte _080469B4
+ .4byte _080469E6
+ .4byte _080469B4
+ .4byte _08046A3A
+ .4byte _08046A84
+_080469B4:
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x24]
+ adds r1, r0, r2
+ strh r1, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bls _08046ACA
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _08046ACA
+_080469E6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08046A2C
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _08046A22
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A22:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _08046ACA
+_08046A2C:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08046ACA
+_08046A3A:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x34]
+ adds r0, r2
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08046A5C
+ ldr r0, _08046A58
+ str r0, [r4, 0x1C]
+ b _08046ACA
+ .align 2, 0
+_08046A58: .4byte sub_8046C78
+_08046A5C:
+ cmp r1, 0x4
+ bne _08046A70
+ cmp r0, 0x3
+ bne _08046A70
+ ldr r0, _08046A6C
+ str r0, [r4, 0x1C]
+ b _08046A76
+ .align 2, 0
+_08046A6C: .4byte sub_8046E7C
+_08046A70:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_08046A76:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _08046ACA
+_08046A84:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08046ACA
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _08046AB8
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _08046ABC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08046AC4
+ .align 2, 0
+_08046AB8: .4byte 0xffffff00
+_08046ABC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08046AC4:
+ movs r0, 0x17
+ bl audio_play
+_08046ACA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046984
+
+ thumb_func_start sub_8046AD0
+sub_8046AD0: @ 8046AD0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08046AFC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r6, [r0, 0xC]
+ ldrb r3, [r0, 0xA]
+ ldrh r5, [r0, 0x8]
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x20
+ bhi _08046B88
+ lsls r0, 2
+ ldr r1, _08046B00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08046AFC: .4byte 0x03004b20
+_08046B00: .4byte _08046B04
+ .align 2, 0
+_08046B04:
+ .4byte _08046B88
+ .4byte _08046BA6
+ .4byte _08046BB2
+ .4byte _08046BF6
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046BD0
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046B88
+ .4byte _08046C08
+ .4byte _08046C20
+ .4byte _08046C48
+_08046B88:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _08046BA0
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x18]
+ b _08046C72
+_08046BA0:
+ adds r0, r6, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+_08046BA6:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl cry_related
+ b _08046BEE
+_08046BB2:
+ bl sub_8075398
+ ldr r1, _08046BCC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x1C]
+ movs r1, 0x14
+ strh r1, [r0, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046BCC: .4byte 0x03004b20
+_08046BD0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _08046C5A
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8075114
+_08046BEE:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _08046C72
+_08046BF6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x1C]
+ movs r1, 0x1E
+ strh r1, [r0, 0x26]
+ b _08046C72
+_08046C08:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r3, 0x1C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08046C5A
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+_08046C20:
+ bl sub_80753C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046C72
+ bl sub_8075398
+ ldr r0, _08046C44
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08046C72
+ .align 2, 0
+_08046C44: .4byte 0x03004b20
+_08046C48:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x1C]
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08046C60
+_08046C5A:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x1C]
+ b _08046C72
+_08046C60:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_8075114
+ adds r0, r4, 0
+ bl DestroyTask
+_08046C72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046AD0
+
+ thumb_func_start sub_8046C78
+sub_8046C78: @ 8046C78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_8047978
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldrh r1, [r6, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r4, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x2E]
+ ldr r0, _08046D0C
+ str r0, [r6, 0x1C]
+ ldr r0, _08046D10
+ ldr r1, _08046D14
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08046CE8
+ b _08046E1C
+_08046CE8:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046D20
+ ldr r1, _08046D18
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D1C
+ adds r0, r1, r0
+ movs r3, 0x19
+ mov r8, r3
+ b _08046D34
+ .align 2, 0
+_08046D0C: .4byte sub_8046E9C
+_08046D10: .4byte 0x03001770
+_08046D14: .4byte 0x0000043d
+_08046D18: .4byte 0x02024a6a
+_08046D1C: .4byte 0x030045c0
+_08046D20:
+ ldr r1, _08046D90
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046D94
+ adds r0, r1, r0
+ movs r1, 0xE7
+ mov r8, r1
+_08046D34:
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046D5A
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DAE
+_08046D5A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D98
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046D9C
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DA4
+ bl sub_80755D4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DAE
+ ldr r0, _08046DA0
+ bl m4aMPlayStop
+ b _08046DAE
+ .align 2, 0
+_08046D90: .4byte 0x02024a6a
+_08046D94: .4byte 0x03004360
+_08046D98: .4byte 0x02017840
+_08046D9C: .4byte 0x020239f8
+_08046DA0: .4byte 0x03007380
+_08046DA4:
+ ldr r0, _08046DC8
+ ldr r1, _08046DCC
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_08046DAE:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046DC4
+ ldr r0, _08046DD0
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08046DD4
+_08046DC4:
+ movs r4, 0
+ b _08046DF6
+ .align 2, 0
+_08046DC8: .4byte 0x03007380
+_08046DCC: .4byte 0x0000ffff
+_08046DD0: .4byte 0x02017840
+_08046DD4:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08046DF0
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bne _08046DF4
+_08046DF0:
+ movs r4, 0x1
+ b _08046DF6
+_08046DF4:
+ movs r4, 0x2
+_08046DF6:
+ ldr r0, _08046E6C
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08046E70
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r7, [r1, 0x8]
+ mov r3, r8
+ lsls r0, r3, 24
+ asrs r0, 24
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r2, [r1, 0x26]
+_08046E1C:
+ ldr r5, _08046E74
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08046E78
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r3, 0x3A
+ ldrsh r0, [r6, r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl AnimateSprite
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046E6C: .4byte sub_8046AD0
+_08046E70: .4byte 0x03004b20
+_08046E74: .4byte 0x02024be0
+_08046E78: .4byte 0x02020004
+ thumb_func_end sub_8046C78
+
+ thumb_func_start sub_8046E7C
+sub_8046E7C: @ 8046E7C
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08046E98
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08046E98: .4byte sub_8046FBC
+ thumb_func_end sub_8046E7C
+
+ thumb_func_start sub_8046E9C
+sub_8046E9C: @ 8046E9C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r7, 0
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _08046F00
+ ldr r0, _08046F04
+ adds r3, r4, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046EDE
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08046EDE:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08046F08
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r7, 0x1
+ b _08046F24
+ .align 2, 0
+_08046F00: .4byte 0x02020004
+_08046F04: .4byte 0x02024be0
+_08046F08:
+ ldr r2, _08046FA8
+ adds r0, r2, 0
+ ldrh r2, [r1, 0x30]
+ adds r0, r2
+ strh r0, [r1, 0x30]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08046F24:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FA0
+ cmp r7, 0
+ beq _08046FA0
+ ldr r2, _08046FAC
+ ldr r0, _08046FB0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r0, _08046FB4
+ strb r2, [r0]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r4, _08046FB8
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+ movs r3, 0
+ movs r5, 0x8
+ adds r2, r4, 0
+ movs r4, 0x3
+_08046F78:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08046F84
+ adds r3, 0x1
+_08046F84:
+ adds r2, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08046F78
+ cmp r3, 0x4
+ bne _08046FA0
+ movs r4, 0
+_08046F92:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _08046F92
+_08046FA0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046FA8: .4byte 0xfffffee0
+_08046FAC: .4byte 0x02020004
+_08046FB0: .4byte 0x02024be0
+_08046FB4: .4byte 0x02024e6d
+_08046FB8: .4byte 0x02017810
+ thumb_func_end sub_8046E9C
+
+ thumb_func_start sub_8046FBC
+sub_8046FBC: @ 8046FBC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x3A]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _08047056
+ cmp r1, 0x5F
+ bne _08046FF4
+ ldr r0, _08046FEC
+ movs r1, 0
+ strb r1, [r0]
+ bl m4aMPlayAllStop
+ ldr r0, _08046FF0
+ bl audio_play
+ b _08047056
+ .align 2, 0
+_08046FEC: .4byte 0x02024e6d
+_08046FF0: .4byte 0x00000173
+_08046FF4:
+ ldr r0, _0804705C
+ cmp r1, r0
+ bne _08047056
+ ldr r5, _08047060
+ ldr r4, _08047064
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r6, 0
+ bl DestroySpriteAndFreeResources
+ ldr r0, _08047068
+ ldr r1, _0804706C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08047056
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 2
+ ldr r0, _08047070
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_08047056:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804705C: .4byte 0x0000013b
+_08047060: .4byte 0x02020004
+_08047064: .4byte 0x02024be0
+_08047068: .4byte 0x03001770
+_0804706C: .4byte 0x0000043d
+_08047070: .4byte 0x02017810
+ thumb_func_end sub_8046FBC
+
+ thumb_func_start sub_8047074
+sub_8047074: @ 8047074
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x19
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x18
+ strh r0, [r4, 0x36]
+ ldr r0, _080470BC
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x6]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080470C0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080470BC: .4byte 0x0000ffe2
+_080470C0: .4byte sub_80470C4
+ thumb_func_end sub_8047074
+
+ thumb_func_start sub_80470C4
+sub_80470C4: @ 80470C4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x3C]
+ movs r1, 0xFF
+ mov r8, r1
+ lsrs r0, 8
+ subs r0, 0x23
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2C
+ bhi _080471B8
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08047126
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x2
+ negs r1, r1
+ adds r4, r1, 0
+ ands r0, r4
+ orrs r6, r0
+ strh r6, [r5, 0x30]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r1, 0x3
+ bl __divsi3
+ ands r0, r4
+ orrs r7, r0
+ strh r7, [r5, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl StartSpriteAffineAnim
+_08047126:
+ ldrh r4, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ ldrh r0, [r5, 0x3C]
+ adds r0, r1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ mov r2, r8
+ ands r0, r2
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ bl sine
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r5, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08047176
+ strh r4, [r5, 0x2E]
+ b _0804717E
+_08047176:
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+_0804717E:
+ ldrh r0, [r5, 0x3C]
+ lsrs r0, 8
+ cmp r0, 0x4F
+ ble _08047220
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ adds r6, r1, 0
+ ands r6, r0
+ ldrh r0, [r5, 0x32]
+ adds r7, r1, 0
+ ands r7, r0
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x2
+ negs r1, r1
+ adds r2, r1, 0
+ ands r0, r2
+ orrs r0, r6
+ strh r0, [r5, 0x30]
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ands r0, r2
+ orrs r0, r7
+ strh r0, [r5, 0x32]
+ b _08047220
+_080471B8:
+ adds r0, r5, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047220
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldrb r0, [r5, 0x6]
+ strh r0, [r5, 0x3A]
+ strh r1, [r5, 0x2E]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047214
+ ldr r0, _0804720C
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08047214
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08047214
+ ldr r0, _08047210
+ b _08047216
+ .align 2, 0
+_0804720C: .4byte 0x02017840
+_08047210: .4byte sub_8047230
+_08047214:
+ ldr r0, _0804722C
+_08047216:
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_08047220:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804722C: .4byte sub_8046C78
+ thumb_func_end sub_80470C4
+
+ thumb_func_start sub_8047230
+sub_8047230: @ 8047230
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _0804724A
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldr r0, _08047250
+ str r0, [r2, 0x1C]
+_0804724A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047250: .4byte sub_8046C78
+ thumb_func_end sub_8047230
+
+ thumb_func_start sub_8047254
+sub_8047254: @ 8047254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080472A4
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080472A0
+ ldr r0, _08047298
+ ldrb r1, [r0, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080472A0
+ movs r0, 0x3A
+ ldrsh r4, [r5, r0]
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080472A0
+ ldr r0, _0804729C
+ b _080472A2
+ .align 2, 0
+_08047298: .4byte 0x02017840
+_0804729C: .4byte sub_8047230
+_080472A0:
+ ldr r0, _080472AC
+_080472A2:
+ str r0, [r5, 0x1C]
+_080472A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080472AC: .4byte sub_8046C78
+ thumb_func_end sub_8047254
+
+ thumb_func_start sub_80472B0
+sub_80472B0: @ 80472B0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472B0
+
+ thumb_func_start sub_80472D8
+sub_80472D8: @ 80472D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80472D8
+
+ thumb_func_start AddTextPrinterForMessage
+AddTextPrinterForMessage: @ 80472F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r6, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r0, [sp, 0x2C]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080473BC
+ bl LoadCompressedObjectPic
+ ldr r0, _080473C0
+ bl LoadCompressedObjectPalette
+ ldr r0, _080473C4
+ mov r1, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080473C8
+ mov r8, r3
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r1, r4, r3
+ strh r5, [r1, 0x2E]
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ add r2, r8
+ ldrh r0, [r2, 0x20]
+ strh r0, [r1, 0x38]
+ ldrh r0, [r2, 0x22]
+ strh r0, [r1, 0x3A]
+ mov r0, r9
+ strh r0, [r2, 0x20]
+ mov r3, r10
+ strh r3, [r2, 0x22]
+ strh r7, [r1, 0x30]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1, 0x32]
+ mov r3, sp
+ ldrh r3, [r3, 0x30]
+ strh r3, [r1, 0x34]
+ ldr r3, [sp, 0x30]
+ lsrs r0, r3, 16
+ strh r0, [r1, 0x36]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _080473CC
+ str r0, [r4]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ 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
+_080473BC: .4byte gUnknown_0820A92C
+_080473C0: .4byte gUnknown_0820A98C
+_080473C4: .4byte gSpriteTemplate_820AAB4
+_080473C8: .4byte 0x02020004
+_080473CC: .4byte sub_80473D0
+ thumb_func_end AddTextPrinterForMessage
+
+ thumb_func_start sub_80473D0
+sub_80473D0: @ 80473D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r1, [r6, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0804747C
+ ldrh r0, [r6, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r4, [r6, 0x34]
+ ldrh r0, [r6, 0x36]
+ lsls r0, 16
+ orrs r4, r0
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804740A
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0804740C
+_0804740A:
+ movs r5, 0
+_0804740C:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r5, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x30]
+ ldr r0, _08047474
+ str r0, [r6, 0x1C]
+ ldr r0, _08047478
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r4, r0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r4, 0x30]
+ strh r5, [r6, 0x3C]
+ b _08047480
+ .align 2, 0
+_08047474: .4byte sub_804748C
+_08047478: .4byte 0x02020004
+_0804747C:
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x30]
+_08047480:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80473D0
+
+ thumb_func_start sub_804748C
+sub_804748C: @ 804748C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ mov r12, r0
+ movs r6, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080474B6
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080474B6:
+ ldr r0, _08047544
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080474D8
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0x1
+ mov r12, r1
+_080474D8:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r7, 0x20
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ movs r1, 0x3C
+ ldrsh r2, [r4, r1]
+ muls r0, r2
+ cmp r0, 0
+ bge _080474EE
+ adds r0, 0x7F
+_080474EE:
+ asrs r0, 7
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r7, 0x22
+ ldrsh r1, [r4, r7]
+ subs r0, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _0804750A
+ adds r0, 0x7F
+_0804750A:
+ asrs r0, 7
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r3, [r5, 0x20]
+ strh r0, [r5, 0x22]
+ ldrh r2, [r4, 0x3C]
+ movs r7, 0x3C
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x7F
+ bgt _0804754C
+ ldr r1, _08047548
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _08047530
+ adds r0, 0x7
+_08047530:
+ asrs r0, 3
+ negs r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r2, 0x4
+ strh r1, [r4, 0x3C]
+ strh r0, [r5, 0x24]
+ strh r0, [r5, 0x26]
+ b _0804755A
+ .align 2, 0
+_08047544: .4byte 0x02020004
+_08047548: .4byte gUnknown_08208344
+_0804754C:
+ ldrh r0, [r4, 0x38]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r5, 0x22]
+ strh r6, [r5, 0x24]
+ strh r6, [r5, 0x26]
+ movs r6, 0x1
+_0804755A:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047578
+ mov r2, r12
+ cmp r2, 0
+ beq _08047578
+ cmp r6, 0
+ beq _08047578
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+_08047578:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804748C
+
+ thumb_func_start sub_8047580
+sub_8047580: @ 8047580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r5, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ ldr r0, [sp, 0x28]
+ mov r9, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _08047624
+ bl LoadCompressedObjectPic
+ ldr r0, _08047628
+ bl LoadCompressedObjectPalette
+ ldr r0, _0804762C
+ adds r1, r6, 0
+ mov r2, r8
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _08047630
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r6
+ mov r1, r10
+ strh r1, [r2, 0x2E]
+ mov r4, r9
+ strh r4, [r2, 0x30]
+ strh r7, [r2, 0x32]
+ mov r1, sp
+ ldrh r1, [r1, 0x2C]
+ strh r1, [r2, 0x34]
+ ldr r4, [sp, 0x2C]
+ lsrs r1, r4, 16
+ strh r1, [r2, 0x36]
+ movs r1, 0x3
+ ands r5, r1
+ lsls r5, 2
+ ldrb r4, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r5
+ strb r1, [r2, 0x5]
+ adds r6, 0x1C
+ adds r3, r6
+ ldr r1, _08047634
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08047624: .4byte gUnknown_0820A92C
+_08047628: .4byte gUnknown_0820A98C
+_0804762C: .4byte gSpriteTemplate_820AAB4
+_08047630: .4byte 0x02020004
+_08047634: .4byte sub_8047638
+ thumb_func_end sub_8047580
+
+ thumb_func_start sub_8047638
+sub_8047638: @ 8047638
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080476D0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r5, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ orrs r5, r0
+ adds r0, r4, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08047672
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08047674
+_08047672:
+ movs r6, 0
+_08047674:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r4, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r3, r6, 0
+ bl sub_80472B0
+ movs r0, 0x1
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80472D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ ldr r0, _080476C8
+ str r0, [r4, 0x1C]
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ ldr r0, _080476CC
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ strh r5, [r4, 0x30]
+ b _080476D4
+ .align 2, 0
+_080476C8: .4byte sub_80476E0
+_080476CC: .4byte 0x02020004
+_080476D0:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_080476D4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8047638
+
+ thumb_func_start sub_80476E0
+sub_80476E0: @ 80476E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080476F8
+ movs r0, 0x3C
+ bl audio_play
+_080476F8:
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08047734
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0804773C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r5, 0x38]
+ ldr r0, _08047738
+ str r0, [r5, 0x1C]
+ b _0804774C
+ .align 2, 0
+_08047734: .4byte 0x02020004
+_08047738: .4byte sub_8047754
+_0804773C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x60
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+_0804774C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80476E0
+
+ thumb_func_start sub_8047754
+sub_8047754: @ 8047754
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08047768
+ ldr r0, _0804776C
+ str r0, [r2, 0x1C]
+_08047768:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804776C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047754
+
+ thumb_func_start obj_delete_and_free_associated_resources_
+obj_delete_and_free_associated_resources_: @ 8047770
+ push {lr}
+ bl DestroySpriteAndFreeResources
+ pop {r0}
+ bx r0
+ thumb_func_end obj_delete_and_free_associated_resources_
+
+ thumb_func_start sub_804777C
+sub_804777C: @ 804777C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _080477FC
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08047800
+ adds r4, r0, r6
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x73
+ strh r0, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ ldr r0, _08047804
+ str r0, [r4, 0x1C]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080477CA
+ ldrh r0, [r4, 0x2E]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080477CA:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r6
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080477F4
+ ldr r0, _08047808
+ str r0, [r4, 0x1C]
+_080477F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080477FC: .4byte 0x03004340
+_08047800: .4byte 0x02020004
+_08047804: .4byte sub_8047830
+_08047808: .4byte sub_804780C
+ thumb_func_end sub_804777C
+
+ thumb_func_start sub_804780C
+sub_804780C: @ 804780C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _08047826
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldr r0, _0804782C
+ str r0, [r1, 0x1C]
+_08047826:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804782C: .4byte sub_8047830
+ thumb_func_end sub_804780C
+
+ thumb_func_start sub_8047830
+sub_8047830: @ 8047830
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ ldrh r1, [r2, 0x30]
+ subs r0, r1
+ strh r0, [r2, 0x26]
+ ldr r0, [r2, 0x24]
+ cmp r0, 0
+ bne _0804784E
+ ldr r0, _08047854
+ str r0, [r2, 0x1C]
+_0804784E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047854: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8047830
+
+ thumb_func_start sub_8047858
+sub_8047858: @ 8047858
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08047890
+ adds r0, r5, 0
+ bl object_new_hidden_with_callback
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08047894
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r2
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _08047898
+ adds r4, r0
+ ldrb r0, [r4]
+ strh r0, [r3, 0x30]
+ adds r2, 0x1C
+ adds r1, r2
+ str r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047890: .4byte oamc_804BEB4
+_08047894: .4byte 0x02020004
+_08047898: .4byte 0x03004340
+ thumb_func_end sub_8047858
+
+ thumb_func_start oamc_804BEB4
+oamc_804BEB4: @ 804789C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080478D8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x2E]
+ movs r2, 0
+ strh r0, [r1, 0x26]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080478D4
+ strh r2, [r1, 0x24]
+ strh r2, [r1, 0x26]
+ adds r0, r3, 0
+ bl DestroySprite
+_080478D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080478D8: .4byte 0x02020004
+ thumb_func_end oamc_804BEB4
+
+ thumb_func_start sub_80478DC
+sub_80478DC: @ 80478DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08047938
+ lsls r6, r4, 3
+ adds r5, r6, r0
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _0804793C
+ cmp r0, r1
+ bne _08047904
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08047940
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_08047904:
+ cmp r4, 0x6
+ beq _08047930
+ cmp r4, 0x6
+ blt _08047914
+ cmp r4, 0xB
+ bgt _08047914
+ cmp r4, 0xA
+ bge _08047930
+_08047914:
+ ldr r1, _08047938
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ ldr r0, _08047944
+ lsrs r1, 11
+ ldr r2, _08047948
+ adds r1, r2
+ bl LZDecompressVram
+_08047930:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047938: .4byte gUnknown_0820A92C
+_0804793C: .4byte 0xffff0000
+_08047940: .4byte gUnknown_0820A98C
+_08047944: .4byte gUnknown_08D030D0
+_08047948: .4byte 0x06010100
+ thumb_func_end sub_80478DC
+
+ thumb_func_start sub_804794C
+sub_804794C: @ 804794C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _08047970
+ lsrs r4, 21
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _08047974
+ adds r4, r0
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047970: .4byte gUnknown_0820A92C
+_08047974: .4byte gUnknown_0820A98C
+ thumb_func_end sub_804794C
+
+ thumb_func_start sub_8047978
+sub_8047978: @ 8047978
+ 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 _080479A4
+ ldr r1, _0804799C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479A0
+ b _080479B2
+ .align 2, 0
+_0804799C: .4byte 0x02024a6a
+_080479A0: .4byte 0x030045c0
+_080479A4:
+ ldr r1, _080479C4
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080479C8
+_080479B2:
+ adds r0, r1
+ movs r1, 0x26
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080479C4: .4byte 0x02024a6a
+_080479C8: .4byte 0x03004360
+ thumb_func_end sub_8047978
+
+ thumb_func_start CheckForFlashMemory
+CheckForFlashMemory: @ 80479CC
+ push {lr}
+ bl IdentifyFlash
+ lsls r0, 16
+ cmp r0, 0
+ bne _080479E8
+ ldr r1, _080479E4
+ movs r0, 0x1
+ str r0, [r1]
+ bl InitFlashTimer
+ b _080479EE
+ .align 2, 0
+_080479E4: .4byte 0x03004820
+_080479E8:
+ ldr r1, _080479F4
+ movs r0, 0
+ str r0, [r1]
+_080479EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080479F4: .4byte 0x03004820
+ thumb_func_end CheckForFlashMemory
+
+ thumb_func_start sub_80479F8
+sub_80479F8: @ 80479F8
+ ldr r0, _08047A00
+ ldrb r0, [r0, 0x9]
+ bx lr
+ .align 2, 0
+_08047A00: .4byte 0x02024ea4
+ thumb_func_end sub_80479F8
+
+ thumb_func_start sub_8047A04
+sub_8047A04: @ 8047A04
+ ldr r1, _08047A0C
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bx lr
+ .align 2, 0
+_08047A0C: .4byte 0x02024ea4
+ thumb_func_end sub_8047A04
+
+ thumb_func_start sub_8047A10
+sub_8047A10: @ 8047A10
+ ldr r1, _08047A18
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ bx lr
+ .align 2, 0
+_08047A18: .4byte 0x02024ea4
+ thumb_func_end sub_8047A10
+
+ thumb_func_start sub_8047A1C
+sub_8047A1C: @ 8047A1C
+ push {lr}
+ movs r0, 0
+ bl gpu_sync_bg_hide
+ ldr r1, _08047A30
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047A30: .4byte 0x02024ea4
+ thumb_func_end sub_8047A1C
+
+ thumb_func_start sub_8047A34
+sub_8047A34: @ 8047A34
+ ldr r1, _08047A3C
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bx lr
+ .align 2, 0
+_08047A3C: .4byte 0x02024ea4
+ thumb_func_end sub_8047A34
+
+ thumb_func_start sub_8047A40
+sub_8047A40: @ 8047A40
+ push {r4-r6,lr}
+ ldr r2, _08047A78
+ ldr r0, _08047A7C
+ ldrb r1, [r0]
+ movs r3, 0x8D
+ lsls r3, 2
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r6, 0
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r5, r2, r0
+ movs r4, 0
+_08047A5A:
+ ldr r1, _08047A80
+ adds r1, r4, r1
+ adds r0, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x64
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08047A5A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047A78: .4byte 0x02025734
+_08047A7C: .4byte 0x03004350
+_08047A80: .4byte 0x03004360
+ thumb_func_end sub_8047A40
+
+ thumb_func_start copy_player_party_from_sav1
+copy_player_party_from_sav1: @ 8047A84
+ push {r4-r6,lr}
+ ldr r0, _08047AC0
+ ldr r1, _08047AC4
+ movs r2, 0x8D
+ lsls r2, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r4, _08047AC8
+ movs r5, 0
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r6, r4, r0
+_08047A9E:
+ ldr r1, _08047AC4
+ adds r1, r5, r1
+ movs r2, 0x8E
+ lsls r2, 2
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r4, 0x64
+ adds r5, 0x64
+ cmp r4, r6
+ ble _08047A9E
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047AC0: .4byte 0x03004350
+_08047AC4: .4byte 0x02025734
+_08047AC8: .4byte 0x03004360
+ thumb_func_end copy_player_party_from_sav1
+
+ thumb_func_start sub_8047ACC
+sub_8047ACC: @ 8047ACC
+ push {r4-r7,lr}
+ ldr r0, _08047AFC
+ ldr r4, _08047B00
+ movs r1, 0x9E
+ lsls r1, 4
+ adds r3, r0, r1
+ movs r2, 0xF
+_08047ADA:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r4, 0x24
+ adds r3, 0x24
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047ADA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047AFC: .4byte 0x02025734
+_08047B00: .4byte 0x030048a0
+ thumb_func_end sub_8047ACC
+
+ thumb_func_start save_deserialize_npcs
+save_deserialize_npcs: @ 8047B04
+ push {r4-r7,lr}
+ ldr r0, _08047B34
+ movs r1, 0x9E
+ lsls r1, 4
+ adds r4, r0, r1
+ ldr r3, _08047B38
+ movs r2, 0xF
+_08047B12:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r4, 0x24
+ adds r3, 0x24
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047B12
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047B34: .4byte 0x02025734
+_08047B38: .4byte 0x030048a0
+ thumb_func_end save_deserialize_npcs
+
+ thumb_func_start save_serialize_game
+save_serialize_game: @ 8047B3C
+ push {lr}
+ bl sub_8047A40
+ bl sub_8047ACC
+ pop {r0}
+ bx r0
+ thumb_func_end save_serialize_game
+
+ thumb_func_start save_deserialize_game
+save_deserialize_game: @ 8047B4C
+ push {lr}
+ bl copy_player_party_from_sav1
+ bl save_deserialize_npcs
+ pop {r0}
+ bx r0
+ thumb_func_end save_deserialize_game
+
+ thumb_func_start copy_bags_and_unk_data_from_save_blocks
+copy_bags_and_unk_data_from_save_blocks: @ 8047B5C
+ push {r4-r7,lr}
+ ldr r0, _08047C0C
+ movs r1, 0xAC
+ lsls r1, 3
+ adds r3, r0, r1
+ ldr r1, _08047C10
+ movs r2, 0x13
+_08047B6A:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047B6A
+ ldr r1, _08047C10
+ ldr r0, _08047C0C
+ movs r2, 0xB6
+ lsls r2, 3
+ adds r3, r0, r2
+ adds r1, 0x50
+ movs r2, 0x13
+_08047B82:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047B82
+ ldr r1, _08047C10
+ ldr r0, _08047C0C
+ movs r5, 0xC0
+ lsls r5, 3
+ adds r3, r0, r5
+ adds r1, 0xA0
+ movs r2, 0xF
+_08047B9A:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047B9A
+ ldr r1, _08047C10
+ ldr r0, _08047C0C
+ movs r6, 0xC8
+ lsls r6, 3
+ adds r3, r0, r6
+ adds r1, 0xE0
+ movs r2, 0x3F
+_08047BB2:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047BB2
+ ldr r1, _08047C10
+ ldr r0, _08047C0C
+ movs r7, 0xE8
+ lsls r7, 3
+ adds r3, r0, r7
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0x2D
+_08047BCE:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047BCE
+ ldr r0, _08047C10
+ ldr r4, _08047C0C
+ movs r1, 0xA6
+ lsls r1, 2
+ adds r3, r0, r1
+ ldr r2, _08047C14
+ mov r12, r2
+ movs r2, 0xF
+_08047BE8:
+ adds r1, r3, 0
+ mov r5, r12
+ adds r0, r4, r5
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r4, 0x24
+ adds r3, 0x24
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047BE8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047C0C: .4byte 0x02025734
+_08047C10: .4byte 0x020291f4
+_08047C14: .4byte 0x00002b4c
+ thumb_func_end copy_bags_and_unk_data_from_save_blocks
+
+ thumb_func_start copy_bags_and_unk_data_to_save_blocks
+copy_bags_and_unk_data_to_save_blocks: @ 8047C18
+ push {r4-r7,lr}
+ ldr r0, _08047CCC
+ ldr r3, _08047CD0
+ movs r2, 0xAC
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0x13
+_08047C26:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047C26
+ ldr r1, _08047CCC
+ ldr r0, _08047CD0
+ adds r3, r0, 0
+ adds r3, 0x50
+ movs r5, 0xB6
+ lsls r5, 3
+ adds r1, r5
+ movs r2, 0x13
+_08047C40:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047C40
+ ldr r1, _08047CCC
+ ldr r0, _08047CD0
+ adds r3, r0, 0
+ adds r3, 0xA0
+ movs r6, 0xC0
+ lsls r6, 3
+ adds r1, r6
+ movs r2, 0xF
+_08047C5A:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047C5A
+ ldr r1, _08047CCC
+ ldr r0, _08047CD0
+ adds r3, r0, 0
+ adds r3, 0xE0
+ movs r7, 0xC8
+ lsls r7, 3
+ adds r1, r7
+ movs r2, 0x3F
+_08047C74:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047C74
+ ldr r1, _08047CCC
+ ldr r0, _08047CD0
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r3, r0, r2
+ movs r5, 0xE8
+ lsls r5, 3
+ adds r1, r5
+ movs r2, 0x2D
+_08047C90:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047C90
+ ldr r0, _08047CCC
+ ldr r4, _08047CD0
+ ldr r6, _08047CD4
+ adds r3, r0, r6
+ movs r7, 0xA6
+ lsls r7, 2
+ mov r12, r7
+ movs r2, 0xF
+_08047CAA:
+ adds r1, r3, 0
+ mov r5, r12
+ adds r0, r4, r5
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r4, 0x24
+ adds r3, 0x24
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08047CAA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047CCC: .4byte 0x02025734
+_08047CD0: .4byte 0x020291f4
+_08047CD4: .4byte 0x00002b4c
+ thumb_func_end copy_bags_and_unk_data_to_save_blocks
+
+ thumb_func_start sub_8047CD8
+sub_8047CD8: @ 8047CD8
+ push {lr}
+ ldr r0, _08047CE4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047CE4: .4byte sub_8047EC0
+ thumb_func_end sub_8047CD8
+
+ thumb_func_start sub_8047CE8
+sub_8047CE8: @ 8047CE8
+ push {r4-r6,lr}
+ ldr r6, _08047D44
+ ldr r5, _08047D48
+ ldr r1, [r5]
+ ldr r2, _08047D4C
+ adds r0, r6, 0
+ movs r3, 0xC
+ bl sub_804AFB8
+ bl GetMultiplayerId
+ lsls r0, 24
+ ldr r1, [r5, 0xC]
+ movs r3, 0x80
+ lsls r3, 17
+ eors r3, r0
+ lsrs r3, 24
+ lsls r2, r3, 3
+ subs r2, r3
+ lsls r2, 2
+ ldr r0, _08047D50
+ adds r2, r0
+ adds r0, r6, 0
+ movs r3, 0xC
+ bl sub_804AFB8
+ ldr r1, [r5, 0x18]
+ ldr r4, _08047D54
+ ldr r2, [r4]
+ adds r0, r6, 0
+ movs r3, 0x8
+ bl sub_804AFB8
+ ldr r0, [r4, 0x4]
+ ldr r1, [r5, 0x20]
+ movs r2, 0x14
+ bl sub_804ACD8
+ movs r0, 0x3
+ movs r1, 0
+ bl nullsub_5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047D44: .4byte gWindowConfig_81E725C
+_08047D48: .4byte 0x020296cc
+_08047D4C: .4byte 0x02024ea4
+_08047D50: .4byte 0x03002978
+_08047D54: .4byte gUnknown_0820C14C
+ thumb_func_end sub_8047CE8
+
+ thumb_func_start sub_8047D58
+sub_8047D58: @ 8047D58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ ldr r0, _08047E30
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ cmp r0, 0x5
+ bls _08047D72
+ movs r1, 0x1
+_08047D72:
+ movs r5, 0
+ lsls r2, r1, 2
+ mov r6, sp
+ ldr r0, _08047E34
+ adds r1, r0, 0x1
+ adds r1, r2
+ mov r8, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r4, r0, 16
+_08047D86:
+ mov r1, sp
+ ldr r0, _08047E38
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldrh r0, [r6]
+ adds r0, r5
+ strh r0, [r6]
+ asrs r1, r4, 16
+ mov r0, sp
+ mov r3, r8
+ ldrb r2, [r3]
+ movs r3, 0x1
+ bl CreateSprite
+ movs r7, 0x80
+ lsls r7, 14
+ adds r4, r7
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08047D86
+ bl GetMultiplayerId
+ lsls r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ eors r1, r0
+ lsrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _08047E3C
+ adds r0, r1
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ cmp r0, 0x5
+ bls _08047DDA
+ movs r1, 0x1
+_08047DDA:
+ movs r5, 0
+ lsls r2, r1, 2
+ mov r6, sp
+ ldr r0, _08047E40
+ adds r1, r2, r0
+ mov r8, r1
+ subs r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r4, r0, 16
+_08047DEE:
+ mov r1, sp
+ ldr r0, _08047E38
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r5, 0x3
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r6]
+ asrs r1, r4, 16
+ mov r0, sp
+ mov r3, r8
+ ldrb r2, [r3]
+ movs r3, 0x1
+ bl CreateSprite
+ movs r7, 0x80
+ lsls r7, 14
+ adds r4, r7
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08047DEE
+ movs r0, 0x5
+ movs r1, 0
+ bl nullsub_5
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047E30: .4byte 0x02024ea4
+_08047E34: .4byte gUnknown_0820C2E6
+_08047E38: .4byte gSpriteTemplate_820C0EC
+_08047E3C: .4byte 0x03002978
+_08047E40: .4byte gUnknown_0820C2E9
+ thumb_func_end sub_8047D58
+
+ thumb_func_start sub_8047E44
+sub_8047E44: @ 8047E44
+ push {r4-r7,lr}
+ sub sp, 0x18
+ movs r4, 0
+ mov r5, sp
+ movs r6, 0xD6
+ lsls r6, 16
+_08047E50:
+ mov r1, sp
+ ldr r0, _08047EBC
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r4, 0x6
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ asrs r1, r6, 16
+ mov r0, sp
+ movs r2, 0x98
+ movs r3, 0x1
+ bl CreateSprite
+ movs r2, 0x80
+ lsls r2, 14
+ adds r6, r2
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08047E50
+ movs r4, 0
+ mov r5, sp
+ movs r6, 0xC0
+ lsls r6, 13
+_08047E84:
+ mov r1, sp
+ ldr r0, _08047EBC
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r4, 0
+ adds r0, 0x8
+ ldrh r3, [r5]
+ adds r0, r3
+ strh r0, [r5]
+ asrs r1, r6, 16
+ mov r0, sp
+ movs r2, 0x96
+ movs r3, 0x1
+ bl CreateSprite
+ movs r7, 0x80
+ lsls r7, 14
+ adds r6, r7
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _08047E84
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047EBC: .4byte gSpriteTemplate_820C0EC
+ thumb_func_end sub_8047E44
+
+ thumb_func_start sub_8047EC0
+sub_8047EC0: @ 8047EC0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r1, _08047EE4
+ ldr r2, _08047EE8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x15
+ bls _08047ED8
+ b _080484C6
+_08047ED8:
+ lsls r0, 2
+ ldr r1, _08047EEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08047EE4: .4byte 0x03001770
+_08047EE8: .4byte 0x0000043c
+_08047EEC: .4byte _08047EF0
+ .align 2, 0
+_08047EF0:
+ .4byte _08047F48
+ .4byte _08048048
+ .4byte _080480B4
+ .4byte _080480E0
+ .4byte _08048130
+ .4byte _08048160
+ .4byte _08048172
+ .4byte _080482B4
+ .4byte _080482DC
+ .4byte _08048300
+ .4byte _08048328
+ .4byte _0804834C
+ .4byte _08048360
+ .4byte _080483B8
+ .4byte _08048400
+ .4byte _08048418
+ .4byte _08048430
+ .4byte _08048448
+ .4byte _0804845A
+ .4byte _08048470
+ .4byte _08048488
+ .4byte _080484A8
+_08047F48:
+ ldr r5, _08048018
+ ldr r6, _0804801C
+ str r6, [r5]
+ bl sub_804AA88
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, [r5]
+ adds r0, 0xC8
+ ldr r1, _08048020
+ bl sub_804A964
+ ldr r0, _08048024
+ bl SetVBlankCallback
+ ldr r0, _08048028
+ bl sub_8071C4C
+ ldr r4, _0804802C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, [r5]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ movs r0, 0x14
+ bl sub_8064EF4
+ ldr r1, [r5]
+ adds r1, 0x7A
+ movs r4, 0
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8064F08
+ bl sub_8071EF4
+ bl sub_809D51C
+ ldr r0, [r5]
+ adds r0, 0x75
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x80
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x81
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x87
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0xB4
+ strb r4, [r0]
+ ldr r0, _08048030
+ strb r4, [r0]
+ ldr r1, _08048034
+ ldr r3, _08048038
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_804AA0C
+ add r0, sp, 0x10
+ strh r4, [r0]
+ movs r0, 0xC0
+ lsls r0, 7
+ adds r1, r6, r0
+ ldr r2, _0804803C
+ add r0, sp, 0x10
+ bl CpuSet
+ ldr r1, _08048040
+ movs r2, 0xD8
+ lsls r2, 7
+ adds r6, r2
+ adds r0, r1, 0
+ adds r0, 0x30
+ ldr r2, _08048044
+_0804800A:
+ str r6, [r0]
+ adds r6, r2
+ subs r0, 0x4
+ cmp r0, r1
+ bge _0804800A
+ b _080484C6
+ .align 2, 0
+_08048018: .4byte 0x03004824
+_0804801C: .4byte 0x02017000
+_08048020: .4byte 0x06002800
+_08048024: .4byte sub_80489F4
+_08048028: .4byte gWindowConfig_81E6CE4
+_0804802C: .4byte gWindowConfig_81E6F84
+_08048030: .4byte 0x03000508
+_08048034: .4byte 0x03001770
+_08048038: .4byte 0x0000043c
+_0804803C: .4byte 0x01000680
+_08048040: .4byte 0x020296cc
+_08048044: .4byte 0xffffff00
+_08048048:
+ ldr r1, _08048098
+ ldr r3, _0804809C
+ adds r0, r3, 0
+ strh r0, [r1]
+ bl OpenLink
+ movs r6, 0
+ movs r4, 0
+_08048058:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080480A0
+ adds r0, r1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x20
+ bl create_pokemon_set_level
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08048058
+ ldr r1, _080480A4
+ ldr r0, _080480A8
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _080480AC
+ ldr r0, [r0]
+ adds r0, 0xB4
+ strb r2, [r0]
+ ldr r0, _080480B0
+ movs r1, 0x1
+ bl CreateTask
+ b _080484C6
+ .align 2, 0
+_08048098: .4byte 0x03002b74
+_0804809C: .4byte 0x00001122
+_080480A0: .4byte 0x030045c0
+_080480A4: .4byte 0x03001770
+_080480A8: .4byte 0x0000043c
+_080480AC: .4byte 0x03004824
+_080480B0: .4byte sub_8083C50
+_080480B4:
+ ldr r2, _080480D8
+ ldr r1, [r2]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ bhi _080480CE
+ b _080484C6
+_080480CE:
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _080480DC
+ adds r1, r3, r2
+ b _08048498
+ .align 2, 0
+_080480D8: .4byte 0x03004824
+_080480DC: .4byte 0x0000043c
+_080480E0:
+ bl GetLinkPlayerCount_2
+ adds r4, r0, 0
+ bl sub_800820C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080480F4
+ b _080484C6
+_080480F4:
+ bl IsLinkMaster
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048120
+ ldr r0, _0804811C
+ ldr r1, [r0]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bhi _08048114
+ b _080484C6
+_08048114:
+ bl sub_8007F4C
+ b _08048492
+ .align 2, 0
+_0804811C: .4byte 0x03004824
+_08048120:
+ ldr r1, _08048128
+ ldr r0, _0804812C
+ adds r1, r0
+ b _08048498
+ .align 2, 0
+_08048128: .4byte 0x03001770
+_0804812C: .4byte 0x0000043c
+_08048130:
+ ldr r0, _08048154
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0804813A
+ b _080484C6
+_0804813A:
+ bl IsLinkPlayerDataExchangeComplete
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08048148
+ b _080484C6
+_08048148:
+ bl calc_player_party_count
+ ldr r1, _08048158
+ ldr r2, _0804815C
+ adds r1, r2
+ b _08048498
+ .align 2, 0
+_08048154: .4byte 0x03002fa4
+_08048158: .4byte 0x03001770
+_0804815C: .4byte 0x0000043c
+_08048160:
+ bl sub_8048D44
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804816C
+ b _080484C6
+_0804816C:
+ bl sub_804AF84
+ b _08048492
+_08048172:
+ bl calc_enemy_party_count
+ ldr r4, _08048294
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x1D
+ str r1, [sp]
+ movs r1, 0x13
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r4]
+ ldr r1, _08048298
+ ldrb r1, [r1]
+ adds r0, 0x42
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _0804829C
+ ldrb r1, [r1]
+ adds r0, 0x43
+ strb r1, [r0]
+ movs r6, 0
+ ldr r0, [r4]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08048216
+ mov r8, r4
+ ldr r7, _080482A0
+_080481BA:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080482A4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl PokemonGetField
+ ldrb r2, [r7]
+ lsls r2, 19
+ movs r1, 0xE0
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ ldrb r3, [r7, 0x1]
+ lsls r3, 19
+ ldr r1, _080482A8
+ adds r3, r1
+ asrs r3, 16
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r1, _080482AC
+ bl sub_809D2FC
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, 0x34
+ adds r1, r6
+ strb r0, [r1]
+ adds r7, 0x2
+ adds r6, 0x1
+ ldr r0, [r2]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080481BA
+_08048216:
+ movs r6, 0
+ ldr r1, _08048294
+ ldr r0, [r1]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _0804828A
+ ldr r0, _080482A0
+ mov r8, r1
+ adds r7, r0, 0
+ adds r7, 0xC
+_0804822C:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080482B0
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl PokemonGetField
+ ldrb r2, [r7]
+ lsls r2, 19
+ movs r3, 0xE0
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ ldrb r3, [r7, 0x1]
+ lsls r3, 19
+ ldr r1, _080482A8
+ adds r3, r1
+ asrs r3, 16
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r1, _080482AC
+ bl sub_809D2FC
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, 0x3A
+ adds r1, r6
+ strb r0, [r1]
+ adds r7, 0x2
+ adds r6, 0x1
+ ldr r0, [r2]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0804822C
+_0804828A:
+ movs r0, 0x2
+ movs r1, 0
+ bl nullsub_5
+ b _08048492
+ .align 2, 0
+_08048294: .4byte 0x03004824
+_08048298: .4byte 0x03004350
+_0804829C: .4byte 0x030045b8
+_080482A0: .4byte gUnknown_0820C29C
+_080482A4: .4byte 0x03004360
+_080482A8: .4byte 0xfff40000
+_080482AC: .4byte sub_809D62C
+_080482B0: .4byte 0x030045c0
+_080482B4:
+ bl sub_806DA98
+ ldr r0, _080482D0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x42
+ adds r1, 0x34
+ movs r2, 0
+ bl sub_806DB90
+ ldr r1, _080482D4
+ ldr r0, _080482D8
+ adds r1, r0
+ b _08048498
+ .align 2, 0
+_080482D0: .4byte 0x03004824
+_080482D4: .4byte 0x03001770
+_080482D8: .4byte 0x0000043c
+_080482DC:
+ ldr r0, _080482F4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x42
+ adds r1, 0x34
+ movs r2, 0x1
+ bl sub_806DB90
+ ldr r1, _080482F8
+ ldr r2, _080482FC
+ adds r1, r2
+ b _08048498
+ .align 2, 0
+_080482F4: .4byte 0x03004824
+_080482F8: .4byte 0x03001770
+_080482FC: .4byte 0x0000043c
+_08048300:
+ bl sub_8047CE8
+ ldr r1, _0804831C
+ ldr r3, _08048320
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08048324
+ ldr r0, [r0]
+ adds r0, 0xB4
+ strb r2, [r0]
+ b _080484C6
+ .align 2, 0
+_0804831C: .4byte 0x03001770
+_08048320: .4byte 0x0000043c
+_08048324: .4byte 0x03004824
+_08048328:
+ movs r0, 0x4
+ movs r1, 0
+ bl nullsub_5
+ bl sub_804ABF8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804833C
+ b _080484C6
+_0804833C:
+ ldr r1, _08048344
+ ldr r0, _08048348
+ adds r1, r0
+ b _08048498
+ .align 2, 0
+_08048344: .4byte 0x03001770
+_08048348: .4byte 0x0000043c
+_0804834C:
+ bl sub_8047D58
+ ldr r1, _08048358
+ ldr r2, _0804835C
+ adds r1, r2
+ b _08048498
+ .align 2, 0
+_08048358: .4byte 0x03001770
+_0804835C: .4byte 0x0000043c
+_08048360:
+ bl sub_8047E44
+ ldr r0, _080483A4
+ ldr r2, _080483A8
+ ldrb r1, [r2]
+ lsls r1, 19
+ movs r3, 0x80
+ lsls r3, 14
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2, 0x1]
+ lsls r2, 3
+ movs r3, 0x2
+ bl CreateSprite
+ ldr r2, _080483AC
+ ldr r1, [r2]
+ adds r1, 0x40
+ movs r3, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0x41
+ strb r3, [r0]
+ ldr r1, _080483B0
+ ldr r0, _080483B4
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x6
+ movs r1, 0
+ bl nullsub_5
+ b _080484C6
+ .align 2, 0
+_080483A4: .4byte gSpriteTemplate_820C134
+_080483A8: .4byte gUnknown_0820C29C
+_080483AC: .4byte 0x03004824
+_080483B0: .4byte 0x03001770
+_080483B4: .4byte 0x0000043c
+_080483B8:
+ movs r0, 0
+ bl sub_804ACF4
+ movs r0, 0
+ bl sub_804A41C
+ ldr r2, _080483F0
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1]
+ bl sub_8048C70
+ ldr r1, _080483F4
+ ldr r2, _080483F8
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x7
+ movs r1, 0
+ bl nullsub_5
+ ldr r0, _080483FC
+ bl sub_8075474
+ b _080484C6
+ .align 2, 0
+_080483F0: .4byte 0x03004824
+_080483F4: .4byte 0x03001770
+_080483F8: .4byte 0x0000043c
+_080483FC: .4byte 0x000001b3
+_08048400:
+ movs r0, 0x1
+ bl sub_804ACF4
+ movs r0, 0x1
+ bl sub_804A41C
+ ldr r1, _08048428
+ ldr r3, _0804842C
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08048418:
+ movs r0, 0
+ bl sub_8048B0C
+ ldr r1, _08048428
+ ldr r0, _0804842C
+ adds r1, r0
+ b _08048498
+ .align 2, 0
+_08048428: .4byte 0x03001770
+_0804842C: .4byte 0x0000043c
+_08048430:
+ movs r0, 0x1
+ bl sub_8048B0C
+ ldr r1, _08048440
+ ldr r2, _08048444
+ adds r1, r2
+ b _08048498
+ .align 2, 0
+_08048440: .4byte 0x03001770
+_08048444: .4byte 0x0000043c
+_08048448:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08048492
+_0804845A:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804846C
+ adds r1, r3, r0
+ b _08048498
+ .align 2, 0
+_0804846C: .4byte 0x0000043c
+_08048470:
+ movs r0, 0
+ bl sub_804AE3C
+ ldr r1, _08048480
+ ldr r2, _08048484
+ adds r1, r2
+ b _08048498
+ .align 2, 0
+_08048480: .4byte 0x03001770
+_08048484: .4byte 0x0000043c
+_08048488:
+ movs r0, 0x1
+ bl sub_804AE3C
+ bl sub_804AF10
+_08048492:
+ ldr r1, _080484A0
+ ldr r3, _080484A4
+ adds r1, r3
+_08048498:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080484C6
+ .align 2, 0
+_080484A0: .4byte 0x03001770
+_080484A4: .4byte 0x0000043c
+_080484A8:
+ ldr r0, _080484E4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080484C6
+ ldr r0, _080484E8
+ str r0, [r3]
+ ldr r0, _080484EC
+ bl SetMainCallback2
+ ldr r0, _080484F0
+ strb r4, [r0]
+_080484C6:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080484E4: .4byte 0x0202f388
+_080484E8: .4byte sub_80494D8
+_080484EC: .4byte sub_8048AB4
+_080484F0: .4byte 0x03000508
+ thumb_func_end sub_8047EC0
+
+ thumb_func_start sub_80484F4
+sub_80484F4: @ 80484F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r1, _08048518
+ ldr r2, _0804851C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x15
+ bls _0804850C
+ b _080489CA
+_0804850C:
+ lsls r0, 2
+ ldr r1, _08048520
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08048518: .4byte 0x03001770
+_0804851C: .4byte 0x0000043c
+_08048520: .4byte _08048524
+ .align 2, 0
+_08048524:
+ .4byte _0804857C
+ .4byte _0804865C
+ .4byte _08048668
+ .4byte _08048674
+ .4byte _08048680
+ .4byte _08048694
+ .4byte _080486A0
+ .4byte _080487E8
+ .4byte _08048810
+ .4byte _08048834
+ .4byte _0804885C
+ .4byte _08048880
+ .4byte _08048894
+ .4byte _080489CA
+ .4byte _080489CA
+ .4byte _08048914
+ .4byte _0804891C
+ .4byte _08048950
+ .4byte _08048970
+ .4byte _08048988
+ .4byte _08048994
+ .4byte _080489B0
+_0804857C:
+ ldr r5, _08048630
+ ldr r6, _08048634
+ str r6, [r5]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, [r5]
+ adds r0, 0xC8
+ ldr r1, _08048638
+ bl sub_804A964
+ ldr r0, _0804863C
+ bl SetVBlankCallback
+ ldr r0, _08048640
+ bl sub_8071C4C
+ ldr r4, _08048644
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, [r5]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ movs r0, 0x14
+ bl sub_8064EF4
+ ldr r1, [r5]
+ adds r1, 0x7A
+ movs r4, 0
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8064F08
+ bl sub_8071EF4
+ bl sub_809D51C
+ ldr r0, [r5]
+ adds r0, 0x75
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x80
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x81
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x87
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0xB4
+ strb r4, [r0]
+ ldr r0, _08048648
+ strb r4, [r0]
+ ldr r1, _0804864C
+ ldr r3, _08048650
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08048654
+ movs r5, 0xD8
+ lsls r5, 7
+ adds r6, r5
+ adds r0, r1, 0
+ adds r0, 0x30
+ ldr r2, _08048658
+_08048622:
+ str r6, [r0]
+ adds r6, r2
+ subs r0, 0x4
+ cmp r0, r1
+ bge _08048622
+ b _080489CA
+ .align 2, 0
+_08048630: .4byte 0x03004824
+_08048634: .4byte 0x02017000
+_08048638: .4byte 0x06002800
+_0804863C: .4byte sub_80489F4
+_08048640: .4byte gWindowConfig_81E6CE4
+_08048644: .4byte gWindowConfig_81E6F84
+_08048648: .4byte 0x03000508
+_0804864C: .4byte 0x03001770
+_08048650: .4byte 0x0000043c
+_08048654: .4byte 0x020296cc
+_08048658: .4byte 0xffffff00
+_0804865C:
+ ldr r0, _08048664
+ adds r1, r2, r0
+ b _0804883E
+ .align 2, 0
+_08048664: .4byte 0x0000043c
+_08048668:
+ ldr r3, _08048670
+ adds r1, r2, r3
+ b _0804899E
+ .align 2, 0
+_08048670: .4byte 0x0000043c
+_08048674:
+ ldr r5, _0804867C
+ adds r1, r2, r5
+ b _0804899E
+ .align 2, 0
+_0804867C: .4byte 0x0000043c
+_08048680:
+ bl calc_player_party_count
+ ldr r1, _0804868C
+ ldr r0, _08048690
+ adds r1, r0
+ b _0804899E
+ .align 2, 0
+_0804868C: .4byte 0x03001770
+_08048690: .4byte 0x0000043c
+_08048694:
+ ldr r3, _0804869C
+ adds r1, r2, r3
+ b _0804899E
+ .align 2, 0
+_0804869C: .4byte 0x0000043c
+_080486A0:
+ bl calc_enemy_party_count
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _080487C0
+ ldr r0, [r4]
+ ldr r1, _080487C4
+ ldrb r1, [r1]
+ adds r0, 0x42
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _080487C8
+ ldrb r1, [r1]
+ adds r0, 0x43
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_804A41C
+ movs r0, 0x1
+ bl sub_804A41C
+ movs r6, 0
+ ldr r0, [r4]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _0804873C
+ mov r8, r4
+ ldr r7, _080487CC
+_080486DE:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080487D0
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl PokemonGetField
+ ldrb r2, [r7]
+ lsls r2, 19
+ movs r1, 0xE0
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ ldrb r3, [r7, 0x1]
+ lsls r3, 19
+ ldr r1, _080487D4
+ adds r3, r1
+ asrs r3, 16
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r1, _080487D8
+ bl sub_809D2FC
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, 0x34
+ adds r1, r6
+ strb r0, [r1]
+ adds r7, 0x2
+ adds r6, 0x1
+ ldr r0, [r2]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080486DE
+_0804873C:
+ movs r6, 0
+ ldr r1, _080487C0
+ ldr r0, [r1]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _080487B0
+ ldr r0, _080487CC
+ mov r8, r1
+ adds r7, r0, 0
+ adds r7, 0xC
+_08048752:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080487DC
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl PokemonGetField
+ ldrb r2, [r7]
+ lsls r2, 19
+ movs r3, 0xE0
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ ldrb r3, [r7, 0x1]
+ lsls r3, 19
+ ldr r1, _080487D4
+ adds r3, r1
+ asrs r3, 16
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r1, _080487D8
+ bl sub_809D2FC
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, 0x3A
+ adds r1, r6
+ strb r0, [r1]
+ adds r7, 0x2
+ adds r6, 0x1
+ ldr r0, [r2]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _08048752
+_080487B0:
+ movs r0, 0x2
+ movs r1, 0
+ bl nullsub_5
+ ldr r1, _080487E0
+ ldr r3, _080487E4
+ adds r1, r3
+ b _0804899E
+ .align 2, 0
+_080487C0: .4byte 0x03004824
+_080487C4: .4byte 0x03004350
+_080487C8: .4byte 0x030045b8
+_080487CC: .4byte gUnknown_0820C29C
+_080487D0: .4byte 0x03004360
+_080487D4: .4byte 0xfff40000
+_080487D8: .4byte sub_809D62C
+_080487DC: .4byte 0x030045c0
+_080487E0: .4byte 0x03001770
+_080487E4: .4byte 0x0000043c
+_080487E8:
+ bl sub_806DA98
+ ldr r0, _08048804
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x42
+ adds r1, 0x34
+ movs r2, 0
+ bl sub_806DB90
+ ldr r1, _08048808
+ ldr r5, _0804880C
+ adds r1, r5
+ b _0804899E
+ .align 2, 0
+_08048804: .4byte 0x03004824
+_08048808: .4byte 0x03001770
+_0804880C: .4byte 0x0000043c
+_08048810:
+ ldr r0, _08048828
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x42
+ adds r1, 0x34
+ movs r2, 0x1
+ bl sub_806DB90
+ ldr r1, _0804882C
+ ldr r0, _08048830
+ adds r1, r0
+ b _0804899E
+ .align 2, 0
+_08048828: .4byte 0x03004824
+_0804882C: .4byte 0x03001770
+_08048830: .4byte 0x0000043c
+_08048834:
+ bl sub_8047CE8
+ ldr r1, _08048850
+ ldr r2, _08048854
+ adds r1, r2
+_0804883E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08048858
+ ldr r0, [r0]
+ adds r0, 0xB4
+ strb r2, [r0]
+ b _080489CA
+ .align 2, 0
+_08048850: .4byte 0x03001770
+_08048854: .4byte 0x0000043c
+_08048858: .4byte 0x03004824
+_0804885C:
+ movs r0, 0x4
+ movs r1, 0
+ bl nullsub_5
+ bl sub_804ABF8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08048870
+ b _080489CA
+_08048870:
+ ldr r1, _08048878
+ ldr r3, _0804887C
+ adds r1, r3
+ b _0804899E
+ .align 2, 0
+_08048878: .4byte 0x03001770
+_0804887C: .4byte 0x0000043c
+_08048880:
+ bl sub_8047D58
+ ldr r1, _0804888C
+ ldr r5, _08048890
+ adds r1, r5
+ b _0804899E
+ .align 2, 0
+_0804888C: .4byte 0x03001770
+_08048890: .4byte 0x0000043c
+_08048894:
+ bl sub_8047E44
+ ldr r2, _080488AC
+ ldr r0, _080488B0
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x41
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _080488B4
+ ldrb r0, [r2, 0x9]
+ b _080488B8
+ .align 2, 0
+_080488AC: .4byte 0x02018000
+_080488B0: .4byte 0x03004824
+_080488B4:
+ ldrb r0, [r2, 0x9]
+ adds r0, 0x6
+_080488B8:
+ strb r0, [r1]
+ ldr r0, _08048900
+ ldr r3, _08048904
+ ldr r4, _08048908
+ ldr r1, [r4]
+ adds r1, 0x41
+ ldrb r2, [r1]
+ lsls r2, 1
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ lsls r1, 19
+ movs r5, 0x80
+ lsls r5, 14
+ adds r1, r5
+ asrs r1, 16
+ adds r3, 0x1
+ adds r2, r3
+ ldrb r2, [r2]
+ lsls r2, 3
+ movs r3, 0x2
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r1, 0x40
+ strb r0, [r1]
+ ldr r0, _0804890C
+ ldr r1, _08048910
+ adds r0, r1
+ movs r1, 0xF
+ strb r1, [r0]
+ movs r0, 0x6
+ movs r1, 0
+ bl nullsub_5
+ b _080489CA
+ .align 2, 0
+_08048900: .4byte gSpriteTemplate_820C134
+_08048904: .4byte gUnknown_0820C29C
+_08048908: .4byte 0x03004824
+_0804890C: .4byte 0x03001770
+_08048910: .4byte 0x0000043c
+_08048914:
+ movs r0, 0
+ bl sub_8048B0C
+ b _08048998
+_0804891C:
+ movs r0, 0x1
+ bl sub_8048B0C
+ ldr r2, _08048944
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1]
+ bl sub_8048C70
+ movs r0, 0x7
+ movs r1, 0
+ bl nullsub_5
+ ldr r1, _08048948
+ ldr r3, _0804894C
+ adds r1, r3
+ b _0804899E
+ .align 2, 0
+_08048944: .4byte 0x03004824
+_08048948: .4byte 0x03001770
+_0804894C: .4byte 0x0000043c
+_08048950:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08048968
+ ldr r5, _0804896C
+ adds r1, r5
+ b _0804899E
+ .align 2, 0
+_08048968: .4byte 0x03001770
+_0804896C: .4byte 0x0000043c
+_08048970:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r3, 0xFA
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r5, _08048984
+ adds r1, r2, r5
+ b _0804899E
+ .align 2, 0
+_08048984: .4byte 0x0000043c
+_08048988:
+ ldr r0, _08048990
+ adds r1, r2, r0
+ b _0804899E
+ .align 2, 0
+_08048990: .4byte 0x0000043c
+_08048994:
+ bl sub_804AF10
+_08048998:
+ ldr r1, _080489A8
+ ldr r2, _080489AC
+ adds r1, r2
+_0804899E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080489CA
+ .align 2, 0
+_080489A8: .4byte 0x03001770
+_080489AC: .4byte 0x0000043c
+_080489B0:
+ ldr r0, _080489E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080489CA
+ ldr r0, _080489EC
+ bl SetMainCallback2
+ ldr r0, _080489F0
+ strb r4, [r0]
+_080489CA:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080489E8: .4byte 0x0202f388
+_080489EC: .4byte sub_8048AB4
+_080489F0: .4byte 0x03000508
+ thumb_func_end sub_80484F4
+
+ thumb_func_start sub_80489F4
+sub_80489F4: @ 80489F4
+ push {lr}
+ ldr r0, _08048A10
+ ldr r0, [r0]
+ adds r0, 0xC8
+ bl sub_804A940
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048A10: .4byte 0x03004824
+ thumb_func_end sub_80489F4
+
+ thumb_func_start sub_8048A14
+sub_8048A14: @ 8048A14
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08048A4C
+ ldr r1, [r4]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bls _08048A44
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0xA
+ strb r1, [r0]
+_08048A44:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048A4C: .4byte 0x03004824
+ thumb_func_end sub_8048A14
+
+ thumb_func_start sub_8048A50
+sub_8048A50: @ 8048A50
+ push {r4,lr}
+ ldr r0, _08048A84
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08048A7E
+ ldr r2, _08048A88
+ ldr r4, _08048A8C
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ strb r1, [r2]
+ adds r0, 0x8A
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ bl sub_800832C
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0xD
+ strb r1, [r0]
+_08048A7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048A84: .4byte 0x0202f388
+_08048A88: .4byte 0x020297d8
+_08048A8C: .4byte 0x03004824
+ thumb_func_end sub_8048A50
+
+ thumb_func_start sub_8048A90
+sub_8048A90: @ 8048A90
+ push {lr}
+ ldr r0, _08048AA8
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08048AA4
+ ldr r0, _08048AAC
+ str r1, [r0]
+ ldr r0, _08048AB0
+ bl SetMainCallback2
+_08048AA4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048AA8: .4byte 0x03002fa4
+_08048AAC: .4byte 0x03001770
+_08048AB0: .4byte sub_804B41C
+ thumb_func_end sub_8048A90
+
+ thumb_func_start sub_8048AB4
+sub_8048AB4: @ 8048AB4
+ push {r4,lr}
+ bl sub_8049DE0
+ bl sub_804AB30
+ movs r0, 0
+ bl sub_8049ED4
+ movs r0, 0x1
+ bl sub_8049ED4
+ ldr r4, _08048B04
+ ldr r3, _08048B08
+ ldr r2, [r3]
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ adds r4, 0x4
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r2, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048B04: .4byte 0x04000018
+_08048B08: .4byte 0x03004824
+ thumb_func_end sub_8048AB4
+
+ thumb_func_start sub_8048B0C
+sub_8048B0C: @ 8048B0C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08048B1C
+ cmp r0, 0x1
+ beq _08048BD0
+ b _08048C3A
+_08048B1C:
+ ldr r5, _08048BA0
+ ldr r0, _08048BA4
+ mov r12, r0
+ ldr r1, _08048BA8
+ ldr r4, _08048BAC
+ ldr r3, _08048BB0
+ movs r2, 0x2F
+_08048B2A:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ ldrh r0, [r1]
+ strh r0, [r4]
+ adds r1, 0x2
+ adds r4, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08048B2A
+ adds r3, r5, 0
+ movs r4, 0xC0
+ lsls r4, 19
+ movs r5, 0x94
+ lsls r5, 5
+ ldr r1, _08048BB4
+ ldr r6, _08048BB8
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08048B54:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08048B54
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ ldr r5, _08048BBC
+ ldr r4, _08048BC0
+ ldr r3, _08048BC4
+_08048B7A:
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r0, 0xDA
+ adds r0, r1
+ ldrh r1, [r3]
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ ble _08048B7A
+ ldr r1, _08048BC8
+ ldr r0, _08048BB4
+ mov r2, r12
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _08048BCC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _08048C3A
+ .align 2, 0
+_08048BA0: .4byte gUnknown_08EA0348
+_08048BA4: .4byte gUnknown_0820AFEC
+_08048BA8: .4byte gUnknown_08EA02C8
+_08048BAC: .4byte 0x0202eec8
+_08048BB0: .4byte 0x0202eac8
+_08048BB4: .4byte 0x040000d4
+_08048BB8: .4byte 0x80000800
+_08048BBC: .4byte 0x000003ff
+_08048BC0: .4byte 0x03004824
+_08048BC4: .4byte gUnknown_08EA15C8
+_08048BC8: .4byte 0x06003000
+_08048BCC: .4byte 0x80000400
+_08048BD0:
+ ldr r1, _08048C40
+ ldr r2, _08048C44
+ ldr r0, _08048C48
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08048C4C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r0, 0
+ bl sub_804A6DC
+ movs r0, 0x1
+ bl sub_804A6DC
+ ldr r0, _08048C50
+ ldr r0, [r0]
+ adds r0, 0xC8
+ bl sub_804A938
+ ldr r2, _08048C54
+ ldrh r1, [r2]
+ ldr r0, _08048C58
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _08048C5C
+ ldr r2, _08048C60
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08048C64
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08048C68
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08048C6C
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+_08048C3A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048C40: .4byte gUnknown_0820B7EC
+_08048C44: .4byte 0x06003800
+_08048C48: .4byte 0x040000d4
+_08048C4C: .4byte 0x80000400
+_08048C50: .4byte 0x03004824
+_08048C54: .4byte 0x04000008
+_08048C58: .4byte 0x0000fffc
+_08048C5C: .4byte 0x0400000a
+_08048C60: .4byte 0x00000501
+_08048C64: .4byte 0x00000602
+_08048C68: .4byte 0x00000703
+_08048C6C: .4byte 0x04000010
+ thumb_func_end sub_8048B0C
+
+ thumb_func_start sub_8048C70
+sub_8048C70: @ 8048C70
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r3, 0
+ ldr r5, _08048CC0
+ mov r8, r5
+ ldr r0, _08048CC4
+ mov r12, r0
+ movs r1, 0x5
+ negs r1, r1
+ mov r9, r1
+ movs r4, 0x6
+ movs r7, 0x1
+ movs r6, 0
+_08048C8E:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0x42
+ ldrb r1, [r1]
+ cmp r3, r1
+ bge _08048CC8
+ adds r0, 0x34
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x44
+ adds r0, r3
+ strb r7, [r0]
+ b _08048CCE
+ .align 2, 0
+_08048CC0: .4byte 0x03004824
+_08048CC4: .4byte 0x02020004
+_08048CC8:
+ adds r0, 0x44
+ adds r0, r3
+ strb r6, [r0]
+_08048CCE:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0x43
+ ldrb r1, [r1]
+ cmp r3, r1
+ bge _08048CFE
+ adds r0, 0x3A
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x44
+ adds r0, r4
+ strb r7, [r0]
+ b _08048D04
+_08048CFE:
+ adds r0, 0x44
+ adds r0, r4
+ strb r6, [r0]
+_08048D04:
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _08048C8E
+ ldr r0, [r5]
+ adds r0, 0x50
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048C70
+
+ thumb_func_start nullsub_5
+nullsub_5: @ 8048D20
+ bx lr
+ thumb_func_end nullsub_5
+
+ thumb_func_start sub_8048D24
+sub_8048D24: @ 8048D24
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r3, 0
+ cmp r3, r2
+ bcs _08048D3E
+_08048D30:
+ adds r0, r5, r3
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, r2
+ bcc _08048D30
+_08048D3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048D24
+
+ thumb_func_start sub_8048D44
+sub_8048D44: @ 8048D44
+ push {r4-r7,lr}
+ sub sp, 0xC
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _08048D90
+ ldr r0, [r6]
+ adds r0, 0x75
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl SetLinkDebugValues
+ ldr r0, [r6]
+ adds r0, 0x75
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bls _08048D86
+ b _0804907C
+_08048D86:
+ lsls r0, 2
+ ldr r1, _08048D94
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08048D90: .4byte 0x03004824
+_08048D94: .4byte _08048D98
+ .align 2, 0
+_08048D98:
+ .4byte _08048DDC
+ .4byte _08048DF8
+ .4byte _08048E28
+ .4byte _08048E3C
+ .4byte _08048E74
+ .4byte _08048E90
+ .4byte _08048EA4
+ .4byte _08048EDC
+ .4byte _08048EF8
+ .4byte _08048F0C
+ .4byte _08048F44
+ .4byte _08048F60
+ .4byte _08048F74
+ .4byte _08048FAC
+ .4byte _08048FC8
+ .4byte _08048FDC
+ .4byte _08049018
+_08048DDC:
+ ldr r0, _08048DEC
+ ldr r1, _08048DF0
+ movs r2, 0xC8
+ bl sub_8048D24
+ ldr r0, _08048DF4
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048DEC: .4byte 0x03002a70
+_08048DF0: .4byte 0x03004360
+_08048DF4: .4byte 0x03004824
+_08048DF8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08048E04
+ b _0804907C
+_08048E04:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08048E18
+ ldr r0, _08048E14
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048E14: .4byte 0x03004824
+_08048E18:
+ bl ResetBlockReceivedFlags
+ ldr r0, _08048E24
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048E24: .4byte 0x03004824
+_08048E28:
+ cmp r7, 0
+ bne _08048E32
+ movs r0, 0x1
+ bl sub_8007E9C
+_08048E32:
+ ldr r0, _08048E38
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048E38: .4byte 0x03004824
+_08048E3C:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08048E4A
+ b _0804907C
+_08048E4A:
+ ldr r0, _08048E68
+ movs r2, 0x1
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r1, 8
+ ldr r2, _08048E6C
+ adds r1, r2
+ movs r2, 0xC8
+ bl sub_8048D24
+ bl ResetBlockReceivedFlags
+ ldr r0, _08048E70
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048E68: .4byte 0x030045c0
+_08048E6C: .4byte 0x03002b80
+_08048E70: .4byte 0x03004824
+_08048E74:
+ ldr r0, _08048E84
+ ldr r1, _08048E88
+ movs r2, 0xC8
+ bl sub_8048D24
+ ldr r0, _08048E8C
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048E84: .4byte 0x03002a70
+_08048E88: .4byte 0x03004428
+_08048E8C: .4byte 0x03004824
+_08048E90:
+ cmp r7, 0
+ bne _08048E9A
+ movs r0, 0x1
+ bl sub_8007E9C
+_08048E9A:
+ ldr r0, _08048EA0
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048EA0: .4byte 0x03004824
+_08048EA4:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08048EB2
+ b _0804907C
+_08048EB2:
+ ldr r0, _08048ED0
+ movs r2, 0x1
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r1, 8
+ ldr r2, _08048ED4
+ adds r1, r2
+ movs r2, 0xC8
+ bl sub_8048D24
+ bl ResetBlockReceivedFlags
+ ldr r0, _08048ED8
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048ED0: .4byte 0x03004688
+_08048ED4: .4byte 0x03002b80
+_08048ED8: .4byte 0x03004824
+_08048EDC:
+ ldr r0, _08048EEC
+ ldr r1, _08048EF0
+ movs r2, 0xC8
+ bl sub_8048D24
+ ldr r0, _08048EF4
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048EEC: .4byte 0x03002a70
+_08048EF0: .4byte 0x030044f0
+_08048EF4: .4byte 0x03004824
+_08048EF8:
+ cmp r7, 0
+ bne _08048F02
+ movs r0, 0x1
+ bl sub_8007E9C
+_08048F02:
+ ldr r0, _08048F08
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048F08: .4byte 0x03004824
+_08048F0C:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08048F1A
+ b _0804907C
+_08048F1A:
+ ldr r0, _08048F38
+ movs r2, 0x1
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r1, 8
+ ldr r2, _08048F3C
+ adds r1, r2
+ movs r2, 0xC8
+ bl sub_8048D24
+ bl ResetBlockReceivedFlags
+ ldr r0, _08048F40
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048F38: .4byte 0x03004750
+_08048F3C: .4byte 0x03002b80
+_08048F40: .4byte 0x03004824
+_08048F44:
+ ldr r0, _08048F54
+ ldr r1, _08048F58
+ movs r2, 0xDC
+ bl sub_8048D24
+ ldr r0, _08048F5C
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048F54: .4byte 0x03002a70
+_08048F58: .4byte 0x02028280
+_08048F5C: .4byte 0x03004824
+_08048F60:
+ cmp r7, 0
+ bne _08048F6A
+ movs r0, 0x3
+ bl sub_8007E9C
+_08048F6A:
+ ldr r0, _08048F70
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048F70: .4byte 0x03004824
+_08048F74:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08048F82
+ b _0804907C
+_08048F82:
+ ldr r0, _08048FA0
+ movs r2, 0x1
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r1, 8
+ ldr r2, _08048FA4
+ adds r1, r2
+ movs r2, 0xD8
+ bl sub_8048D24
+ bl ResetBlockReceivedFlags
+ ldr r0, _08048FA8
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048FA0: .4byte 0x02029700
+_08048FA4: .4byte 0x03002b80
+_08048FA8: .4byte 0x03004824
+_08048FAC:
+ ldr r0, _08048FBC
+ ldr r1, _08048FC0
+ movs r2, 0xB
+ bl sub_8048D24
+ ldr r0, _08048FC4
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048FBC: .4byte 0x03002a70
+_08048FC0: .4byte 0x02028844
+_08048FC4: .4byte 0x03004824
+_08048FC8:
+ cmp r7, 0
+ bne _08048FD2
+ movs r0, 0x4
+ bl sub_8007E9C
+_08048FD2:
+ ldr r0, _08048FD8
+ ldr r1, [r0]
+ b _08049006
+ .align 2, 0
+_08048FD8: .4byte 0x03004824
+_08048FDC:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0804907C
+ ldr r4, _08049010
+ ldr r0, [r4]
+ adds r0, 0xB5
+ movs r2, 0x1
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r1, 8
+ ldr r2, _08049014
+ adds r1, r2
+ movs r2, 0xB
+ bl sub_8048D24
+ bl ResetBlockReceivedFlags
+ ldr r1, [r4]
+_08049006:
+ adds r1, 0x75
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804907C
+ .align 2, 0
+_08049010: .4byte 0x03004824
+_08049014: .4byte 0x03002b80
+_08049018:
+ ldr r4, _0804906C
+ ldr r6, _08049070
+ movs r5, 0x5
+_0804901E:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _0804905E
+ cmp r0, r6
+ bne _0804905E
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl PokemonGetField
+ cmp r0, 0x1
+ beq _0804905E
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ mov r0, sp
+ ldr r1, _08049074
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0804905E
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, _08049078
+ bl pokemon_setattr
+_0804905E:
+ adds r4, 0x64
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804901E
+ movs r0, 0x1
+ b _0804907E
+ .align 2, 0
+_0804906C: .4byte 0x030045c0
+_08049070: .4byte 0x0000012f
+_08049074: .4byte gUnknown_0820C3B0
+_08049078: .4byte gSpeciesNames + 0xD05
+_0804907C:
+ movs r0, 0
+_0804907E:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048D44
+
+ thumb_func_start sub_8049088
+sub_8049088: @ 8049088
+ push {lr}
+ sub sp, 0x1C
+ ldr r1, _080490B0
+ mov r0, sp
+ bl StringCopy
+ ldr r0, _080490B4
+ ldr r0, [r0]
+ adds r0, 0x7E
+ ldrh r1, [r0]
+ lsls r1, 5
+ ldr r0, _080490B8
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x14
+ bl sub_804ACD8
+ add sp, 0x1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080490B0: .4byte gUnknown_0842C7B6
+_080490B4: .4byte 0x03004824
+_080490B8: .4byte 0x06010000
+ thumb_func_end sub_8049088
+
+ thumb_func_start sub_80490BC
+sub_80490BC: @ 80490BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0x1
+ adds r0, r4, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08049148
+ ldr r1, _080490EC
+ lsls r0, r2, 8
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080490F0
+ cmp r1, r0
+ beq _08049128
+ cmp r1, r0
+ bgt _080490F8
+ ldr r0, _080490F4
+ cmp r1, r0
+ beq _08049118
+ b _08049142
+ .align 2, 0
+_080490EC: .4byte 0x03002b80
+_080490F0: .4byte 0x0000bbbb
+_080490F4: .4byte 0x0000aabb
+_080490F8:
+ ldr r0, _0804910C
+ cmp r1, r0
+ beq _08049138
+ ldr r0, _08049110
+ cmp r1, r0
+ bne _08049142
+ ldr r0, _08049114
+ ldr r0, [r0]
+ adds r0, 0x84
+ b _0804913E
+ .align 2, 0
+_0804910C: .4byte 0x0000bbcc
+_08049110: .4byte 0x0000eeaa
+_08049114: .4byte 0x03004824
+_08049118:
+ ldr r0, _08049124
+ ldr r0, [r0]
+ adds r0, 0x84
+ strb r3, [r0]
+ b _08049142
+ .align 2, 0
+_08049124: .4byte 0x03004824
+_08049128:
+ ldr r0, _08049134
+ ldr r0, [r0]
+ adds r0, 0x86
+ strb r3, [r0]
+ b _08049142
+ .align 2, 0
+_08049134: .4byte 0x03004824
+_08049138:
+ ldr r0, _08049170
+ ldr r0, [r0]
+ adds r0, 0x86
+_0804913E:
+ movs r1, 0x2
+ strb r1, [r0]
+_08049142:
+ movs r0, 0
+ bl ResetBlockReceivedFlag
+_08049148:
+ movs r2, 0x2
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080491DA
+ ldr r3, _08049174
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ ldr r0, _08049178
+ cmp r1, r0
+ beq _080491BC
+ cmp r1, r0
+ bgt _08049180
+ ldr r0, _0804917C
+ cmp r1, r0
+ beq _080491A0
+ b _080491D4
+ .align 2, 0
+_08049170: .4byte 0x03004824
+_08049174: .4byte 0x03002b80
+_08049178: .4byte 0x0000bbbb
+_0804917C: .4byte 0x0000aabb
+_08049180:
+ ldr r0, _08049194
+ cmp r1, r0
+ beq _080491CC
+ ldr r0, _08049198
+ cmp r1, r0
+ bne _080491D4
+ ldr r0, _0804919C
+ ldr r0, [r0]
+ adds r0, 0x85
+ b _080491D2
+ .align 2, 0
+_08049194: .4byte 0x0000bbcc
+_08049198: .4byte 0x0000eeaa
+_0804919C: .4byte 0x03004824
+_080491A0:
+ ldr r2, _080491B8
+ ldr r1, [r2]
+ movs r4, 0x81
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r0, 0x6
+ adds r1, 0x8A
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0x85
+ b _080491C2
+ .align 2, 0
+_080491B8: .4byte 0x03004824
+_080491BC:
+ ldr r0, _080491C8
+ ldr r0, [r0]
+ adds r0, 0x87
+_080491C2:
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080491D4
+ .align 2, 0
+_080491C8: .4byte 0x03004824
+_080491CC:
+ ldr r0, _080491E0
+ ldr r0, [r0]
+ adds r0, 0x87
+_080491D2:
+ strb r2, [r0]
+_080491D4:
+ movs r0, 0x1
+ bl ResetBlockReceivedFlag
+_080491DA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080491E0: .4byte 0x03004824
+ thumb_func_end sub_80490BC
+
+ thumb_func_start sub_80491E4
+sub_80491E4: @ 80491E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _080492BE
+ ldr r2, _08049210
+ ldrh r1, [r2]
+ ldr r0, _08049214
+ cmp r1, r0
+ beq _080492A8
+ cmp r1, r0
+ bgt _08049220
+ ldr r0, _08049218
+ cmp r1, r0
+ beq _08049288
+ ldr r0, _0804921C
+ cmp r1, r0
+ beq _0804925C
+ b _080492B8
+ .align 2, 0
+_08049210: .4byte 0x03002b80
+_08049214: .4byte 0x0000ddee
+_08049218: .4byte 0x0000ccdd
+_0804921C: .4byte 0x0000dddd
+_08049220:
+ ldr r0, _08049230
+ cmp r1, r0
+ beq _08049234
+ adds r0, 0x11
+ cmp r1, r0
+ beq _08049258
+ b _080492B8
+ .align 2, 0
+_08049230: .4byte 0x0000eebb
+_08049234:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x4
+ bl sub_804AA0C
+ ldr r0, _08049254
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0xB
+ b _080492B6
+ .align 2, 0
+_08049254: .4byte 0x03004824
+_08049258:
+ movs r0, 0x5
+ b _080492AA
+_0804925C:
+ ldr r4, _08049284
+ ldr r1, [r4]
+ ldrb r0, [r2, 0x2]
+ adds r0, 0x6
+ adds r1, 0x8A
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x41
+ ldrb r0, [r0]
+ bl sub_8049E9C
+ ldr r0, [r4]
+ adds r0, 0x8A
+ ldrb r0, [r0]
+ bl sub_8049E9C
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x7
+ b _080492B6
+ .align 2, 0
+_08049284: .4byte 0x03004824
+_08049288:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080492A4
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0xA
+ b _080492B6
+ .align 2, 0
+_080492A4: .4byte 0x03004824
+_080492A8:
+ movs r0, 0x1
+_080492AA:
+ bl sub_804AA0C
+ ldr r0, _080492D4
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0x8
+_080492B6:
+ strb r1, [r0]
+_080492B8:
+ movs r0, 0
+ bl ResetBlockReceivedFlag
+_080492BE:
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080492CC
+ movs r0, 0x1
+ bl ResetBlockReceivedFlag
+_080492CC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080492D4: .4byte 0x03004824
+ thumb_func_end sub_80491E4
+
+ thumb_func_start sub_80492D8
+sub_80492D8: @ 80492D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08049334
+ ldr r2, [r6]
+ adds r1, r2, 0
+ adds r1, 0x84
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080492EC
+ b _08049420
+_080492EC:
+ adds r0, r2, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080492F8
+ b _08049420
+_080492F8:
+ ldrh r1, [r1]
+ ldr r0, _08049338
+ cmp r1, r0
+ bne _08049340
+ adds r1, r2, 0
+ adds r1, 0x7B
+ movs r0, 0x6
+ strb r0, [r1]
+ ldr r2, [r6]
+ adds r1, r2, 0
+ adds r1, 0x8C
+ movs r4, 0
+ ldr r0, _0804933C
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ adds r0, 0x4D
+ strh r1, [r0]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r0, [r6]
+ adds r2, r0, 0
+ adds r2, 0x85
+ strb r4, [r2]
+ adds r0, 0x84
+ strb r4, [r0]
+ b _08049420
+ .align 2, 0
+_08049334: .4byte 0x03004824
+_08049338: .4byte 0x00000101
+_0804933C: .4byte 0x0000dddd
+_08049340:
+ ldr r0, _08049388
+ cmp r1, r0
+ bne _08049390
+ movs r0, 0x1
+ bl sub_804AA0C
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0x8C
+ movs r4, 0
+ movs r3, 0
+ ldr r0, _0804938C
+ strh r0, [r2]
+ adds r1, 0x8E
+ strh r3, [r1]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x87
+ strb r4, [r1]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x85
+ strb r4, [r1]
+ adds r0, 0x84
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r0, 0x7B
+ movs r1, 0x8
+ b _0804941E
+ .align 2, 0
+_08049388: .4byte 0x00000201
+_0804938C: .4byte 0x0000eecc
+_08049390:
+ movs r0, 0x81
+ lsls r0, 1
+ cmp r1, r0
+ bne _080493DC
+ movs r0, 0x5
+ bl sub_804AA0C
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0x8C
+ movs r4, 0
+ movs r3, 0
+ ldr r0, _080493D8
+ strh r0, [r2]
+ adds r1, 0x8E
+ strh r3, [r1]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x87
+ strb r4, [r1]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x85
+ strb r4, [r1]
+ adds r0, 0x84
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r0, 0x7B
+ movs r1, 0x8
+ b _0804941E
+ .align 2, 0
+_080493D8: .4byte 0x0000ddee
+_080493DC:
+ ldr r0, _080494C0
+ cmp r1, r0
+ bne _08049420
+ adds r1, r2, 0
+ adds r1, 0x8C
+ movs r5, 0
+ movs r4, 0
+ ldr r0, _080494C4
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x8E
+ strh r4, [r0]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x85
+ strb r5, [r1]
+ adds r0, 0x84
+ strb r5, [r0]
+ ldr r0, [r6]
+ adds r0, 0x7B
+ movs r1, 0xB
+_0804941E:
+ strb r1, [r0]
+_08049420:
+ ldr r5, _080494C8
+ ldr r3, [r5]
+ adds r1, r3, 0
+ adds r1, 0x86
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080494B8
+ adds r0, r3, 0
+ adds r0, 0x87
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080494B8
+ ldrh r1, [r1]
+ ldr r0, _080494CC
+ cmp r1, r0
+ bne _0804946E
+ adds r1, r3, 0
+ adds r1, 0x8C
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080494D0
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8E
+ strh r2, [r0]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r0, [r5]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x87
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7B
+ movs r1, 0x9
+ strb r1, [r0]
+_0804946E:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08049484
+ adds r0, r1, 0
+ adds r0, 0x87
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080494B8
+_08049484:
+ movs r0, 0x1
+ bl sub_804AA0C
+ ldr r1, [r5]
+ adds r2, r1, 0
+ adds r2, 0x8C
+ movs r4, 0
+ movs r3, 0
+ ldr r0, _080494D4
+ strh r0, [r2]
+ adds r1, 0x8E
+ strh r3, [r1]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r0, [r5]
+ adds r0, 0x86
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x87
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, 0x7B
+ movs r1, 0x8
+ strb r1, [r0]
+_080494B8:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080494C0: .4byte 0x00000202
+_080494C4: .4byte 0x0000eebb
+_080494C8: .4byte 0x03004824
+_080494CC: .4byte 0x00000101
+_080494D0: .4byte 0x0000ccdd
+_080494D4: .4byte 0x0000ddee
+ thumb_func_end sub_80492D8
+
+ thumb_func_start sub_80494D8
+sub_80494D8: @ 80494D8
+ push {r4,lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08049504
+ cmp r4, 0
+ bne _080494FA
+ movs r0, 0
+ bl sub_80490BC
+ b _08049500
+_080494FA:
+ adds r0, r4, 0
+ bl sub_80491E4
+_08049500:
+ bl ResetBlockReceivedFlags
+_08049504:
+ cmp r4, 0
+ bne _0804950C
+ bl sub_80492D8
+_0804950C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80494D8
+
+ thumb_func_start sub_8049514
+sub_8049514: @ 8049514
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r6, 0
+ movs r5, 0
+ ldr r2, _08049548
+ ldr r3, [r2]
+ ldr r4, _0804954C
+ lsls r2, r1, 1
+ adds r2, r1
+ lsls r2, 1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r3, 0x44
+ adds r2, r1
+ adds r2, r4
+_0804953A:
+ ldrb r1, [r2]
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08049550
+ adds r6, r1, 0
+ b _08049558
+ .align 2, 0
+_08049548: .4byte 0x03004824
+_0804954C: .4byte gUnknown_0820C164
+_08049550:
+ adds r2, 0x1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0804953A
+_08049558:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8049514
+
+ thumb_func_start sub_8049560
+sub_8049560: @ 8049560
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r7]
+ bl sub_8049514
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xC
+ bne _080495B8
+ ldr r5, _080495B0
+ ldr r0, [r5]
+ adds r0, 0x40
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080495B4
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r5]
+ adds r2, 0x40
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xE0
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ b _08049600
+ .align 2, 0
+_080495B0: .4byte 0x03004824
+_080495B4: .4byte 0x02020004
+_080495B8:
+ ldr r4, _08049614
+ ldr r0, [r4]
+ adds r0, 0x40
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08049618
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, [r4]
+ adds r4, 0x40
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r2, _0804961C
+ lsls r3, r6, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0x20
+ strh r0, [r1, 0x20]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r2, 0x1
+ adds r3, r2
+ ldrb r0, [r3]
+ lsls r0, 3
+ strh r0, [r1, 0x22]
+_08049600:
+ ldrb r0, [r7]
+ cmp r0, r6
+ beq _0804960C
+ movs r0, 0x5
+ bl audio_play
+_0804960C:
+ strb r6, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049614: .4byte 0x03004824
+_08049618: .4byte 0x02020004
+_0804961C: .4byte gUnknown_0820C29C
+ thumb_func_end sub_8049560
+
+ thumb_func_start sub_8049620
+sub_8049620: @ 8049620
+ push {r4,lr}
+ movs r0, 0
+ bl sub_804AA0C
+ ldr r4, _08049668
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x5
+ strb r1, [r0]
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08049670
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x8C
+ ldr r0, _0804966C
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ adds r0, 0x4D
+ strh r1, [r0]
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+ b _08049678
+ .align 2, 0
+_08049668: .4byte 0x03004824
+_0804966C: .4byte 0x0000aabb
+_08049670:
+ ldr r0, [r4]
+ adds r0, 0x84
+ movs r1, 0x1
+ strb r1, [r0]
+_08049678:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049620
+
+ thumb_func_start sub_8049680
+sub_8049680: @ 8049680
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080496A0
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080496A8
+ ldr r0, _080496A4
+ ldr r0, [r0]
+ adds r0, 0x41
+ movs r1, 0
+ bl sub_8049560
+ b _080496F4
+ .align 2, 0
+_080496A0: .4byte 0x03001770
+_080496A4: .4byte 0x03004824
+_080496A8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080496C4
+ ldr r0, _080496C0
+ ldr r0, [r0]
+ adds r0, 0x41
+ movs r1, 0x1
+ bl sub_8049560
+ b _080496F4
+ .align 2, 0
+_080496C0: .4byte 0x03004824
+_080496C4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080496E0
+ ldr r0, _080496DC
+ ldr r0, [r0]
+ adds r0, 0x41
+ movs r1, 0x2
+ bl sub_8049560
+ b _080496F4
+ .align 2, 0
+_080496DC: .4byte 0x03004824
+_080496E0:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080496F4
+ ldr r0, _08049750
+ ldr r0, [r0]
+ adds r0, 0x41
+ movs r1, 0x3
+ bl sub_8049560
+_080496F4:
+ ldr r0, _08049754
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080497B6
+ movs r0, 0x5
+ bl audio_play
+ ldr r4, _08049750
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ cmp r1, 0x5
+ bhi _0804975C
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0x12
+ movs r2, 0xE
+ movs r3, 0x1C
+ bl AddTextPrinterParametrized
+ ldr r3, _08049758
+ movs r0, 0x13
+ movs r1, 0xF
+ movs r2, 0x2
+ bl PrintStringArray
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0xF
+ movs r3, 0x2
+ bl InitMenu
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080497B6
+ .align 2, 0
+_08049750: .4byte 0x03004824
+_08049754: .4byte 0x03001770
+_08049758: .4byte gUnknown_0820C320
+_0804975C:
+ cmp r1, 0xB
+ bhi _0804977A
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x2
+ strb r1, [r0]
+ b _080497B6
+_0804977A:
+ cmp r1, 0xC
+ bne _080497B6
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x1D
+ bl AddTextPrinterParametrized
+ movs r0, 0x18
+ movs r1, 0xE
+ movs r2, 0x4
+ bl sub_807292C
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r0, _080497F4
+ ldr r0, [r0, 0x10]
+ ldr r1, [r4]
+ adds r1, 0x7E
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r2, _080497F8
+ adds r1, r2
+ movs r2, 0x14
+ bl sub_804ACD8
+_080497B6:
+ ldr r0, _080497FC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080497EC
+ movs r2, 0
+ ldr r3, _08049800
+_080497C8:
+ ldr r0, [r3]
+ lsls r1, r2, 1
+ adds r0, 0x8C
+ adds r0, r1
+ strh r2, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _080497C8
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08049800
+ ldr r1, [r1]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+_080497EC:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080497F4: .4byte gUnknown_0820C14C
+_080497F8: .4byte 0x06010000
+_080497FC: .4byte 0x03001770
+_08049800: .4byte 0x03004824
+ thumb_func_end sub_8049680
+
+ thumb_func_start sub_8049804
+sub_8049804: @ 8049804
+ push {lr}
+ bl sub_8072DEC
+ bl sub_804A80C
+ ldr r3, _08049850
+ ldr r0, [r3]
+ adds r0, 0x7B
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08049854
+ ldr r0, [r3]
+ adds r0, 0x40
+ 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]
+ ldr r0, _08049858
+ ldr r0, [r0, 0x4]
+ ldr r1, [r3]
+ adds r1, 0x7E
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r2, _0804985C
+ adds r1, r2
+ movs r2, 0x14
+ bl sub_804ACD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049850: .4byte 0x03004824
+_08049854: .4byte 0x02020004
+_08049858: .4byte gUnknown_0820C14C
+_0804985C: .4byte 0x06010000
+ thumb_func_end sub_8049804
+
+ thumb_func_start sub_8049860
+sub_8049860: @ 8049860
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0804987C
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08049880
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ negs r0, r0
+ b _08049890
+ .align 2, 0
+_0804987C: .4byte 0x03001770
+_08049880:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804989C
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+_08049890:
+ bl MoveMenuCursor
+ ldr r1, _080498D8
+ ldr r1, [r1]
+ adds r1, 0x7C
+ strb r0, [r1]
+_0804989C:
+ ldr r0, _080498DC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08049938
+ movs r0, 0x5
+ bl audio_play
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080498E0
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080498D8
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0x2
+ strb r1, [r0]
+ b _0804994A
+ .align 2, 0
+_080498D8: .4byte 0x03004824
+_080498DC: .4byte 0x03001770
+_080498E0:
+ ldr r4, _08049910
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x51
+ adds r1, r2, 0
+ adds r1, 0x42
+ ldrb r1, [r1]
+ adds r2, 0x41
+ ldrb r2, [r2]
+ bl sub_80499F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08049914
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_804AADC
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x8
+ strb r1, [r0]
+ b _0804994A
+ .align 2, 0
+_08049910: .4byte 0x03004824
+_08049914:
+ bl sub_8049620
+ ldr r2, _08049934
+ ldr r0, [r4]
+ adds r0, 0x40
+ 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]
+ b _0804994A
+ .align 2, 0
+_08049934: .4byte 0x02020004
+_08049938:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804994A
+ movs r0, 0x5
+ bl audio_play
+ bl sub_8049804
+_0804994A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049860
+
+ thumb_func_start sub_8049954
+sub_8049954: @ 8049954
+ push {lr}
+ ldr r0, _08049978
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0804996A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08049974
+_0804996A:
+ movs r0, 0x5
+ bl audio_play
+ bl sub_8049804
+_08049974:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049978: .4byte 0x03001770
+ thumb_func_end sub_8049954
+
+ thumb_func_start sub_804997C
+sub_804997C: @ 804997C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080499B4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080499E0
+ ldr r0, _080499B8
+ ldr r2, [r0]
+ adds r3, r2, 0
+ adds r3, 0x41
+ ldrb r1, [r3]
+ cmp r1, 0x5
+ bhi _080499C4
+ ldr r0, _080499BC
+ ldrb r1, [r3]
+ adds r2, 0x42
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080499C0
+ movs r4, 0x4
+ str r4, [sp]
+ bl sub_809D8BC
+ b _080499E0
+ .align 2, 0
+_080499B4: .4byte 0x0202f388
+_080499B8: .4byte 0x03004824
+_080499BC: .4byte 0x03004360
+_080499C0: .4byte sub_80484F4
+_080499C4:
+ ldr r0, _080499E8
+ subs r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x43
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080499EC
+ movs r4, 0x4
+ str r4, [sp]
+ bl sub_809D8BC
+_080499E0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080499E8: .4byte 0x030045c0
+_080499EC: .4byte sub_80484F4
+ thumb_func_end sub_804997C
+
+ thumb_func_start sub_80499F0
+sub_80499F0: @ 80499F0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0
+ cmp r1, r4
+ bge _08049A18
+_08049A04:
+ cmp r2, r3
+ beq _08049A12
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08049A12:
+ adds r3, 0x1
+ cmp r3, r4
+ blt _08049A04
+_08049A18:
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80499F0
+
+ thumb_func_start sub_8049A20
+sub_8049A20: @ 8049A20
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r2, 0
+ ldr r0, _08049A80
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0x42
+ adds r5, r0, 0
+ ldrb r0, [r3]
+ cmp r2, r0
+ bge _08049A4C
+ adds r4, r1, 0
+ adds r4, 0x51
+_08049A3A:
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ ldrb r0, [r3]
+ cmp r2, r0
+ blt _08049A3A
+_08049A4C:
+ adds r4, r5, 0
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x42
+ ldrb r1, [r1]
+ adds r0, 0x41
+ ldrb r2, [r0]
+ mov r0, sp
+ bl sub_80499F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08049A88
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_804AADC
+ ldr r0, [r4]
+ adds r0, 0x8C
+ ldr r1, _08049A84
+ strh r1, [r0]
+ movs r0, 0xB4
+ movs r1, 0
+ bl sub_804AADC
+ b _08049AB4
+ .align 2, 0
+_08049A80: .4byte 0x03004824
+_08049A84: .4byte 0x0000bbcc
+_08049A88:
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_804AADC
+ ldr r0, [r5]
+ adds r0, 0x8C
+ ldr r1, _08049ABC
+ strh r1, [r0]
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08049AB4
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r5]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+_08049AB4:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049ABC: .4byte 0x0000bbbb
+ thumb_func_end sub_8049A20
+
+ thumb_func_start sub_8049AC0
+sub_8049AC0: @ 8049AC0
+ push {r4,lr}
+ ldr r0, _08049ADC
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08049AE0
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ negs r0, r0
+ b _08049AF0
+ .align 2, 0
+_08049ADC: .4byte 0x03001770
+_08049AE0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08049AFC
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+_08049AF0:
+ bl MoveMenuCursor
+ ldr r1, _08049B20
+ ldr r1, [r1]
+ adds r1, 0x7C
+ strb r0, [r1]
+_08049AFC:
+ ldr r0, _08049B24
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08049B64
+ movs r0, 0x5
+ bl audio_play
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ bne _08049B28
+ bl sub_8049A20
+ b _08049B56
+ .align 2, 0
+_08049B20: .4byte 0x03004824
+_08049B24: .4byte 0x03001770
+_08049B28:
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_804AADC
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08049B56
+ ldr r4, _08049B5C
+ ldr r0, [r4]
+ adds r0, 0x8C
+ ldr r1, _08049B60
+ strh r1, [r0]
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+_08049B56:
+ ldr r0, _08049B5C
+ ldr r0, [r0]
+ b _08049BAA
+ .align 2, 0
+_08049B5C: .4byte 0x03004824
+_08049B60: .4byte 0x0000bbcc
+_08049B64:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08049BB0
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_804AADC
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ bne _08049B8C
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _08049BB8
+ ldr r1, [r1]
+ adds r1, 0x7C
+ strb r0, [r1]
+_08049B8C:
+ ldr r4, _08049BB8
+ ldr r0, [r4]
+ adds r0, 0x8C
+ ldr r1, _08049BBC
+ strh r1, [r0]
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+ ldr r0, [r4]
+_08049BAA:
+ adds r0, 0x7B
+ movs r1, 0x64
+ strb r1, [r0]
+_08049BB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049BB8: .4byte 0x03004824
+_08049BBC: .4byte 0x0000bbcc
+ thumb_func_end sub_8049AC0
+
+ thumb_func_start sub_8049BC0
+sub_8049BC0: @ 8049BC0
+ push {r4,r5,lr}
+ ldr r0, _08049BDC
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08049BE0
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ negs r0, r0
+ b _08049BF0
+ .align 2, 0
+_08049BDC: .4byte 0x03001770
+_08049BE0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08049BFC
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+_08049BF0:
+ bl MoveMenuCursor
+ ldr r1, _08049C5C
+ ldr r1, [r1]
+ adds r1, 0x7C
+ strb r0, [r1]
+_08049BFC:
+ ldr r0, _08049C60
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08049C72
+ movs r0, 0x5
+ bl audio_play
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08049C6C
+ movs r0, 0x4
+ bl sub_804AA0C
+ ldr r4, _08049C5C
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x8C
+ ldr r1, _08049C64
+ strh r1, [r2]
+ adds r0, 0x8E
+ strh r5, [r0]
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_804AADC
+ ldr r2, _08049C68
+ ldr r0, [r4]
+ adds r0, 0x40
+ 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 r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x64
+ strb r1, [r0]
+ b _08049C84
+ .align 2, 0
+_08049C5C: .4byte 0x03004824
+_08049C60: .4byte 0x03001770
+_08049C64: .4byte 0x0000eeaa
+_08049C68: .4byte 0x02020004
+_08049C6C:
+ bl sub_8049804
+ b _08049C84
+_08049C72:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08049C84
+ movs r0, 0x5
+ bl audio_play
+ bl sub_8049804
+_08049C84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049BC0
+
+ thumb_func_start sub_8049C8C
+sub_8049C8C: @ 8049C8C
+ push {r4,lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _08049CAE
+ ldr r4, _08049CC0
+ ldr r0, [r4]
+ adds r0, 0x41
+ ldrb r0, [r0]
+ bl sub_8049E9C
+ ldr r0, [r4]
+ adds r0, 0x8A
+ ldrb r0, [r0]
+ bl sub_8049E9C
+_08049CAE:
+ ldr r0, _08049CC0
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0x7
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049CC0: .4byte 0x03004824
+ thumb_func_end sub_8049C8C
+
+ thumb_func_start sub_8049CC4
+sub_8049CC4: @ 8049CC4
+ push {r4,lr}
+ ldr r4, _08049CE8
+ ldr r0, [r4]
+ adds r0, 0x80
+ ldrh r1, [r0]
+ ldr r0, _08049CEC
+ cmp r1, r0
+ bne _08049CE0
+ bl sub_8049088
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0xE
+ strb r1, [r0]
+_08049CE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049CE8: .4byte 0x03004824
+_08049CEC: .4byte 0x00000505
+ thumb_func_end sub_8049CC4
+
+ thumb_func_start DisplayMessageAndContinueTask
+DisplayMessageAndContinueTask: @ 8049CF0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08049D40
+ ldr r1, [r4]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ cmp r0, 0x78
+ bls _08049D36
+ adds r0, r1, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x1D
+ bl AddTextPrinterParametrized
+ movs r0, 0x18
+ movs r1, 0xE
+ movs r2, 0x4
+ bl sub_807292C
+ ldr r0, [r4]
+ adds r0, 0xB4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x7B
+ movs r1, 0x3
+ strb r1, [r0]
+_08049D36:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049D40: .4byte 0x03004824
+ thumb_func_end DisplayMessageAndContinueTask
+
+ thumb_func_start sub_8049D44
+sub_8049D44: @ 8049D44
+ push {lr}
+ ldr r0, _08049D90
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08049D8A
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0
+ bl sub_804A840
+ movs r0, 0x1
+ bl sub_804A840
+ ldr r2, _08049D94
+ ldr r0, [r2]
+ adds r0, 0x7B
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _08049D98
+ ldr r0, [r2]
+ adds r0, 0x40
+ 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]
+_08049D8A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049D90: .4byte 0x03001770
+_08049D94: .4byte 0x03004824
+_08049D98: .4byte 0x02020004
+ thumb_func_end sub_8049D44
+
+ thumb_func_start sub_8049D9C
+sub_8049D9C: @ 8049D9C
+ push {lr}
+ ldr r0, _08049DBC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08049DB8
+ bl sub_800832C
+ ldr r0, _08049DC0
+ ldr r0, [r0]
+ adds r0, 0x7B
+ movs r1, 0xC
+ strb r1, [r0]
+_08049DB8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049DBC: .4byte 0x0202f388
+_08049DC0: .4byte 0x03004824
+ thumb_func_end sub_8049D9C
+
+ thumb_func_start sub_8049DC4
+sub_8049DC4: @ 8049DC4
+ push {lr}
+ ldr r0, _08049DD8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08049DD4
+ ldr r0, _08049DDC
+ bl SetMainCallback2
+_08049DD4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049DD8: .4byte 0x03002fa4
+_08049DDC: .4byte sub_805465C
+ thumb_func_end sub_8049DC4
+
+ thumb_func_start sub_8049DE0
+sub_8049DE0: @ 8049DE0
+ push {lr}
+ ldr r0, _08049DF8
+ ldr r0, [r0]
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bhi _08049E98
+ lsls r0, 2
+ ldr r1, _08049DFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08049DF8: .4byte 0x03004824
+_08049DFC: .4byte _08049E00
+ .align 2, 0
+_08049E00:
+ .4byte _08049E40
+ .4byte _08049E46
+ .4byte _08049E4C
+ .4byte _08049E52
+ .4byte _08049E58
+ .4byte _08049E98
+ .4byte _08049E5E
+ .4byte _08049E64
+ .4byte _08049E6A
+ .4byte _08049E70
+ .4byte _08049E76
+ .4byte _08049E7C
+ .4byte _08049E82
+ .4byte _08049E88
+ .4byte _08049E8E
+ .4byte _08049E94
+_08049E40:
+ bl sub_8049680
+ b _08049E98
+_08049E46:
+ bl sub_8049860
+ b _08049E98
+_08049E4C:
+ bl sub_804997C
+ b _08049E98
+_08049E52:
+ bl sub_8049AC0
+ b _08049E98
+_08049E58:
+ bl sub_8049BC0
+ b _08049E98
+_08049E5E:
+ bl sub_8049C8C
+ b _08049E98
+_08049E64:
+ bl sub_8049CC4
+ b _08049E98
+_08049E6A:
+ bl sub_8049D44
+ b _08049E98
+_08049E70:
+ bl sub_8048A14
+ b _08049E98
+_08049E76:
+ bl sub_8048A50
+ b _08049E98
+_08049E7C:
+ bl sub_8049D9C
+ b _08049E98
+_08049E82:
+ bl sub_8049DC4
+ b _08049E98
+_08049E88:
+ bl sub_8048A90
+ b _08049E98
+_08049E8E:
+ bl DisplayMessageAndContinueTask
+ b _08049E98
+_08049E94:
+ bl sub_8049954
+_08049E98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049DE0
+
+ thumb_func_start sub_8049E9C
+sub_8049E9C: @ 8049E9C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _08049ED0
+ ldr r0, [r3]
+ adds r0, 0x80
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08049EC8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x82
+ adds r0, r2
+ strb r4, [r0]
+_08049EC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049ED0: .4byte 0x03004824
+ thumb_func_end sub_8049E9C
+
+ thumb_func_start sub_8049ED4
+sub_8049ED4: @ 8049ED4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08049F24
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x82
+ add r0, r10
+ ldrb r0, [r0]
+ movs r1, 0x1
+ str r1, [sp, 0x6C]
+ cmp r0, 0x5
+ bhi _08049EFE
+ movs r2, 0
+ str r2, [sp, 0x6C]
+_08049EFE:
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r5, 0
+ adds r0, 0x80
+ mov r1, r10
+ adds r3, r0, r1
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bne _08049F1A
+ b _0804A0AC
+_08049F1A:
+ cmp r0, 0x2
+ bgt _08049F28
+ cmp r0, 0x1
+ beq _08049F36
+ b _0804A294
+ .align 2, 0
+_08049F24: .4byte 0x03004824
+_08049F28:
+ cmp r0, 0x3
+ bne _08049F2E
+ b _0804A0E4
+_08049F2E:
+ cmp r0, 0x4
+ bne _08049F34
+ b _0804A244
+_08049F34:
+ b _0804A294
+_08049F36:
+ movs r4, 0
+ adds r0, r5, 0
+ adds r0, 0x42
+ add r0, r10
+ ldr r7, _0804A094
+ ldr r2, [sp, 0x6C]
+ lsls r2, 1
+ mov r9, r2
+ ldr r3, _0804A098
+ mov r12, r3
+ mov r5, r10
+ lsls r5, 4
+ str r5, [sp, 0x70]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08049F8E
+ adds r6, r7, 0
+ ldr r2, _0804A09C
+ ldr r0, [sp, 0x6C]
+ add r0, r9
+ lsls r3, r0, 1
+ movs r5, 0x4
+_08049F62:
+ ldr r0, [r2]
+ adds r1, r4, r3
+ adds r0, 0x34
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, [r2]
+ adds r0, 0x42
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _08049F62
+_08049F8E:
+ ldr r1, _0804A09C
+ ldr r0, [r1]
+ ldr r5, [sp, 0x6C]
+ add r5, r9
+ lsls r3, r5, 1
+ mov r2, r8
+ adds r6, r2, r3
+ adds r0, 0x34
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, _0804A09C
+ ldr r4, [r0]
+ adds r4, 0x34
+ adds r4, r6
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ lsls r5, 2
+ mov r1, r12
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, 0x1
+ lsls r3, 1
+ add r3, r12
+ ldrb r1, [r3]
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 3
+ adds r0, 0xE
+ strh r0, [r2, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ mov r0, r12
+ adds r0, 0x1
+ adds r5, r0
+ ldrb r0, [r5]
+ lsls r0, 3
+ subs r0, 0xC
+ strh r0, [r1, 0x36]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _0804A0A0
+ bl oamt_set_x3A_32
+ ldr r2, _0804A09C
+ ldr r1, [r2]
+ adds r1, 0x80
+ add r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0x34
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ bl sub_8078A34
+ bl sub_8072DEC
+ ldr r3, _0804A09C
+ ldr r0, [r3]
+ adds r0, 0x4
+ ldr r1, _0804A0A4
+ mov r5, r9
+ adds r2, r5, r1
+ ldrb r2, [r2]
+ adds r1, 0x1
+ add r1, r9
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0x13
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _0804A09C
+ ldr r0, [r1]
+ adds r0, 0xC8
+ ldr r2, [sp, 0x70]
+ mov r3, r10
+ subs r1, r2, r3
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0804A0A8
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x11
+ str r2, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r2, 0
+ bl sub_804A96C
+ ldr r0, [sp, 0x6C]
+ cmp r0, 0
+ beq _0804A08C
+ b _0804A294
+_0804A08C:
+ bl sub_804A80C
+ b _0804A294
+ .align 2, 0
+_0804A094: .4byte 0x02020004
+_0804A098: .4byte gUnknown_0820C29C
+_0804A09C: .4byte 0x03004824
+_0804A0A0: .4byte sub_809D62C
+_0804A0A4: .4byte gUnknown_0820C330
+_0804A0A8: .4byte gUnknown_0820ADEE
+_0804A0AC:
+ ldr r2, _0804A0DC
+ ldr r1, [sp, 0x6C]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r8
+ adds r1, r5, 0
+ adds r1, 0x34
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0804A0E0
+ cmp r1, r0
+ beq _0804A0D4
+ b _0804A294
+_0804A0D4:
+ movs r0, 0x3
+ strb r0, [r3]
+ b _0804A294
+ .align 2, 0
+_0804A0DC: .4byte 0x02020004
+_0804A0E0: .4byte sub_809D62C
+_0804A0E4:
+ adds r0, r5, 0
+ adds r0, 0xC8
+ ldr r2, [sp, 0x6C]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0804A228
+ movs r2, 0xF
+ str r2, [sp]
+ movs r7, 0x11
+ str r7, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r2, 0
+ bl sub_804A96C
+ ldr r0, _0804A22C
+ ldr r3, [r0]
+ ldr r1, [sp, 0x6C]
+ lsls r6, r1, 1
+ adds r1, r6
+ mov r9, r1
+ lsls r1, 1
+ mov r2, r8
+ adds r0, r2, r1
+ adds r3, 0x34
+ adds r3, r0
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r5, _0804A230
+ adds r2, r5
+ ldr r4, _0804A234
+ mov r0, r9
+ lsls r5, r0, 2
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ adds r1, r4
+ ldrb r1, [r1]
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 3
+ adds r0, 0xE
+ strh r0, [r2, 0x20]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0804A230
+ adds r1, r2
+ adds r4, 0x1
+ adds r5, r4
+ ldrb r0, [r5]
+ lsls r0, 3
+ subs r0, 0xC
+ strh r0, [r1, 0x22]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r5, 0
+ strh r5, [r0, 0x24]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ mov r0, sp
+ adds r0, 0x12
+ ldr r1, [sp, 0x6C]
+ mov r2, r8
+ bl sub_804A2B4
+ add r1, sp, 0xC
+ movs r3, 0xFC
+ strb r3, [r1]
+ adds r2, r1, 0
+ movs r1, 0x6
+ strb r1, [r2, 0x1]
+ movs r1, 0x4
+ strb r1, [r2, 0x2]
+ adds r1, r2, 0
+ strb r3, [r1, 0x3]
+ strb r7, [r1, 0x4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ strb r1, [r2, 0x5]
+ ldr r0, _0804A22C
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x7A
+ ldrb r2, [r1]
+ mov r1, r9
+ lsls r1, 6
+ mov r9, r1
+ add r2, r9
+ ldr r4, _0804A238
+ ldr r3, [sp, 0x6C]
+ lsls r1, r3, 2
+ adds r3, r1, r4
+ ldrb r3, [r3]
+ ldr r5, _0804A23C
+ adds r1, r5
+ ldrb r1, [r1]
+ str r1, [sp]
+ add r1, sp, 0xC
+ bl sub_8003460
+ add r7, sp, 0x34
+ adds r0, r7, 0
+ ldr r1, [sp, 0x6C]
+ mov r2, r8
+ bl sub_804A33C
+ ldr r0, _0804A22C
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _0804A240
+ adds r2, 0x7A
+ ldrb r2, [r2]
+ add r2, r9
+ adds r2, 0x20
+ adds r6, 0x1
+ lsls r6, 1
+ adds r4, r6, r4
+ ldrb r5, [r4]
+ ldr r3, _0804A23C
+ adds r6, r3
+ ldrb r4, [r6]
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ adds r3, r5, 0
+ bl sub_8003460
+ ldr r0, _0804A22C
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x7A
+ ldrb r2, [r1]
+ add r2, r9
+ adds r2, 0x26
+ str r4, [sp]
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl sub_8003460
+ ldr r2, _0804A22C
+ ldr r1, [r2]
+ b _0804A28A
+ .align 2, 0
+_0804A228: .4byte gUnknown_0820ABF0
+_0804A22C: .4byte 0x03004824
+_0804A230: .4byte 0x02020004
+_0804A234: .4byte gUnknown_0820C29C
+_0804A238: .4byte gUnknown_0820C334
+_0804A23C: .4byte gUnknown_0820C335
+_0804A240: .4byte gUnknown_0842C7CA
+_0804A244:
+ ldr r0, _0804A2A4
+ ldr r0, [r0, 0x14]
+ adds r1, r5, 0
+ adds r1, 0x7E
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r3, _0804A2A8
+ adds r1, r3
+ movs r2, 0x14
+ bl sub_804ACD8
+ ldr r0, _0804A2AC
+ mov r5, r10
+ lsls r1, r5, 1
+ adds r4, r1, r0
+ ldrb r2, [r4]
+ adds r2, 0x4
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r3, [r1]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldrb r0, [r1]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ mov r1, r8
+ bl sub_804A51C
+ ldr r0, _0804A2B0
+ ldr r1, [r0]
+_0804A28A:
+ adds r1, 0x80
+ add r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804A294:
+ add sp, 0x74
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A2A4: .4byte gUnknown_0820C14C
+_0804A2A8: .4byte 0x06010000
+_0804A2AC: .4byte gUnknown_0820C3D1
+_0804A2B0: .4byte 0x03004824
+ thumb_func_end sub_8049ED4
+
+ thumb_func_start sub_804A2B4
+sub_804A2B4: @ 804A2B4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r1, 0
+ bne _0804A2F4
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, _0804A2F0
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ adds r0, r5, 0
+ mov r1, sp
+ bl StringCopy10
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl PokemonGetField
+ b _0804A31E
+ .align 2, 0
+_0804A2F0: .4byte 0x03004360
+_0804A2F4:
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, _0804A334
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ adds r0, r5, 0
+ mov r1, sp
+ bl StringCopy10
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl PokemonGetField
+_0804A31E:
+ ldr r0, _0804A338
+ adds r1, r5, 0
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804A334: .4byte 0x030045c0
+_0804A338: .4byte gWindowConfig_81E7294
+ thumb_func_end sub_804A2B4
+
+ thumb_func_start sub_804A33C
+sub_804A33C: @ 804A33C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0804A384
+ ldr r1, [r0]
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 1
+ adds r0, r2, r0
+ adds r1, 0x5D
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0804A3F4
+ movs r4, 0
+ movs r0, 0x64
+ adds r5, r2, 0
+ muls r5, r0
+ ldr r0, _0804A388
+ mov r9, r0
+ ldr r2, _0804A38C
+ mov r8, r2
+_0804A376:
+ cmp r7, 0
+ bne _0804A390
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r2, r9
+ b _0804A396
+ .align 2, 0
+_0804A384: .4byte 0x03004824
+_0804A388: .4byte 0x03004360
+_0804A38C: .4byte 0x030045c0
+_0804A390:
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r2, r8
+_0804A396:
+ adds r0, r5, r2
+ movs r2, 0
+ bl PokemonGetField
+ lsls r1, r4, 1
+ add r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _0804A376
+ ldr r1, _0804A3E8
+ adds r0, r6, 0
+ bl StringCopy
+ movs r4, 0
+_0804A3B8:
+ lsls r0, r4, 1
+ mov r2, sp
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0804A3D4
+ adds r1, r0, 0
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0804A3EC
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringAppend
+_0804A3D4:
+ adds r0, r6, 0
+ ldr r1, _0804A3F0
+ bl StringAppend
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _0804A3B8
+ b _0804A404
+ .align 2, 0
+_0804A3E8: .4byte gUnknown_0820C33C
+_0804A3EC: .4byte gMoveNames
+_0804A3F0: .4byte gUnknown_0842C7CB
+_0804A3F4:
+ ldr r1, _0804A414
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r1, _0804A418
+ adds r0, r6, 0
+ bl StringAppend
+_0804A404:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A414: .4byte gUnknown_0820C33C
+_0804A418: .4byte gUnknown_0842C7D6
+ thumb_func_end sub_804A33C
+
+ thumb_func_start sub_804A41C
+sub_804A41C: @ 804A41C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ add r3, sp, 0x1C
+ movs r2, 0
+ movs r1, 0xFC
+ strb r1, [r3]
+ movs r0, 0x6
+ strb r0, [r3, 0x1]
+ movs r0, 0x4
+ strb r0, [r3, 0x2]
+ strb r1, [r3, 0x3]
+ movs r0, 0x11
+ strb r0, [r3, 0x4]
+ strb r2, [r3, 0x5]
+ movs r6, 0
+ ldr r1, _0804A470
+ ldr r0, [r1]
+ adds r0, 0x42
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _0804A504
+ mov r8, r3
+ adds r7, r1, 0
+ ldr r0, _0804A474
+ mov r9, r0
+ movs r4, 0x1
+ add r4, r9
+ mov r10, r4
+_0804A462:
+ cmp r5, 0
+ bne _0804A47C
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _0804A478
+ b _0804A484
+ .align 2, 0
+_0804A470: .4byte 0x03004824
+_0804A474: .4byte gUnknown_0820C29C
+_0804A478: .4byte 0x03004360
+_0804A47C:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _0804A514
+_0804A484:
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl PokemonGetField
+ mov r0, sp
+ adds r0, 0x22
+ add r1, sp, 0x4
+ bl StringCopy10
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ mov r1, sp
+ adds r1, 0x22
+ ldr r0, _0804A518
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x32
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ mov r0, r8
+ strb r1, [r0, 0x5]
+ ldr r1, [r7]
+ adds r0, r1, 0x4
+ adds r1, 0x7A
+ lsls r2, r5, 5
+ adds r2, r5
+ lsls r2, 2
+ ldrb r1, [r1]
+ adds r2, r1
+ movs r1, 0x16
+ muls r1, r6
+ adds r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r6, r1
+ lsls r1, 1
+ mov r4, r9
+ adds r3, r1, r4
+ ldrb r3, [r3]
+ add r1, r10
+ ldrb r1, [r1]
+ str r1, [sp]
+ mov r1, r8
+ bl sub_8003460
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [r7]
+ adds r0, 0x42
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0804A462
+_0804A504:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A514: .4byte 0x030045c0
+_0804A518: .4byte gWindowConfig_81E7294
+ thumb_func_end sub_804A41C
+
+ thumb_func_start sub_804A51C
+sub_804A51C: @ 804A51C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, [sp, 0x48]
+ ldr r5, [sp, 0x4C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x24]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0804A59C
+ ldr r0, [r0]
+ adds r0, 0xC8
+ ldr r3, _0804A5A0
+ movs r1, 0x6
+ str r1, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804A96C
+ mov r0, r8
+ cmp r0, 0
+ bne _0804A5A8
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, _0804A5A4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl PokemonGetField
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ add r2, sp, 0xC
+ bl PokemonGetField
+ b _0804A5D4
+ .align 2, 0
+_0804A59C: .4byte 0x03004824
+_0804A5A0: .4byte gUnknown_08EA1DC8
+_0804A5A4: .4byte 0x03004360
+_0804A5A8:
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, _0804A65C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl PokemonGetField
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ add r2, sp, 0xC
+ bl PokemonGetField
+_0804A5D4:
+ ldr r1, _0804A660
+ ldr r5, [r1]
+ mov r3, r8
+ lsls r0, r3, 1
+ add r0, r8
+ lsls r0, 1
+ add r0, r9
+ adds r1, r5, 0
+ adds r1, 0x5D
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0804A690
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, [sp, 0x24]
+ lsls r2, r0, 5
+ cmp r4, 0
+ beq _0804A614
+ mov r1, r10
+ adds r0, r1, r2
+ lsls r0, 1
+ adds r1, r5, 0
+ adds r1, 0xDA
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x60
+ strh r0, [r1]
+_0804A614:
+ ldr r3, _0804A660
+ ldr r4, [r3]
+ mov r0, r10
+ adds r5, r0, r2
+ adds r0, r5, 0x1
+ lsls r0, 1
+ adds r4, 0xDA
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x70
+ strh r0, [r4]
+ cmp r7, 0
+ bne _0804A664
+ add r0, sp, 0xC
+ movs r1, 0
+ bl sub_8042548
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804A6CC
+ ldr r3, _0804A660
+ ldr r1, [r3]
+ adds r0, r5, 0
+ subs r0, 0x1F
+ lsls r0, 1
+ adds r1, 0xDA
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804A6CA
+ .align 2, 0
+_0804A65C: .4byte 0x030045c0
+_0804A660: .4byte 0x03004824
+_0804A664:
+ cmp r7, 0xFE
+ bne _0804A6CC
+ add r0, sp, 0xC
+ movs r1, 0xFE
+ bl sub_8042548
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804A6CC
+ ldr r0, _0804A68C
+ ldr r1, [r0]
+ adds r0, r5, 0
+ subs r0, 0x1F
+ lsls r0, 1
+ adds r1, 0xDA
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x2
+ b _0804A6CA
+ .align 2, 0
+_0804A68C: .4byte 0x03004824
+_0804A690:
+ ldr r1, [sp, 0x24]
+ lsls r0, r1, 5
+ mov r1, r10
+ adds r3, r1, r0
+ adds r1, r3, 0
+ subs r1, 0x20
+ lsls r1, 1
+ adds r2, r5, 0
+ adds r2, 0xDA
+ adds r1, r2, r1
+ adds r0, r3, 0
+ subs r0, 0x21
+ lsls r0, 1
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, r3, 0
+ subs r1, 0x1F
+ lsls r1, 1
+ adds r1, r2, r1
+ adds r0, r3, 0
+ subs r0, 0x24
+ lsls r0, 1
+ adds r2, r0
+ ldrh r2, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ orrs r0, r2
+_0804A6CA:
+ strh r0, [r1]
+_0804A6CC:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804A51C
+
+ thumb_func_start sub_804A6DC
+sub_804A6DC: @ 804A6DC
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r0, _0804A734
+ ldr r0, [r0]
+ adds r0, 0x42
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r7, r0
+ bge _0804A72C
+ lsls r0, r6, 1
+ adds r0, r6
+ ldr r1, _0804A738
+ lsls r0, 2
+ adds r5, r0, r1
+ ldr r1, _0804A73C
+ adds r4, r0, r1
+_0804A702:
+ lsls r1, r7, 24
+ lsrs r1, 24
+ ldrb r2, [r5]
+ ldrb r3, [r5, 0x1]
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldrb r0, [r4, 0x1]
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ bl sub_804A51C
+ adds r5, 0x2
+ adds r4, 0x2
+ adds r7, 0x1
+ ldr r0, _0804A734
+ ldr r0, [r0]
+ adds r0, 0x42
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r7, r0
+ blt _0804A702
+_0804A72C:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A734: .4byte 0x03004824
+_0804A738: .4byte gUnknown_0820C2B6
+_0804A73C: .4byte gUnknown_0820C2CE
+ thumb_func_end sub_804A6DC
+
+ thumb_func_start sub_804A740
+sub_804A740: @ 804A740
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r7, 0
+ ldr r3, _0804A800
+ ldr r0, [r3]
+ adds r0, 0x42
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r7, r0
+ bge _0804A7F2
+ ldr r6, _0804A804
+ mov r9, r3
+ mov r1, r12
+ lsls r0, r1, 1
+ add r0, r12
+ lsls r2, r0, 1
+ mov r10, r2
+ ldr r1, _0804A808
+ movs r2, 0
+ mov r8, r2
+ lsls r0, 2
+ adds r5, r0, r1
+_0804A778:
+ mov r1, r9
+ ldr r0, [r1]
+ mov r2, r10
+ adds r4, r7, r2
+ adds r0, 0x34
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ mov r0, r9
+ ldr r3, [r0]
+ adds r2, r3, 0
+ adds r2, 0x34
+ adds r2, r4
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r5]
+ lsls r0, 3
+ adds r0, 0xE
+ strh r0, [r1, 0x20]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r5, 0x1]
+ lsls r0, 3
+ subs r0, 0xC
+ strh r0, [r1, 0x22]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x24]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r2, r8
+ strh r2, [r0, 0x26]
+ adds r5, 0x2
+ adds r7, 0x1
+ adds r3, 0x42
+ add r3, r12
+ ldrb r3, [r3]
+ cmp r7, r3
+ blt _0804A778
+_0804A7F2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A800: .4byte 0x03004824
+_0804A804: .4byte 0x02020004
+_0804A808: .4byte gUnknown_0820C29C
+ thumb_func_end sub_804A740
+
+ thumb_func_start sub_804A80C
+sub_804A80C: @ 804A80C
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0804A838
+ ldr r0, [r0]
+ adds r0, 0x4
+ ldr r1, _0804A83C
+ ldrb r2, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp]
+ movs r1, 0x13
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ movs r0, 0x1
+ bl sub_804A41C
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A838: .4byte 0x03004824
+_0804A83C: .4byte gUnknown_0820C330
+ thumb_func_end sub_804A80C
+
+ thumb_func_start sub_804A840
+sub_804A840: @ 804A840
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0804A8A8
+ ldr r4, _0804A89C
+ ldr r0, [r4]
+ adds r0, 0x4
+ ldr r1, _0804A8A0
+ ldrb r2, [r1]
+ ldrb r1, [r1, 0x1]
+ str r1, [sp]
+ movs r1, 0x13
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r0, [r4]
+ adds r0, 0xC8
+ ldr r3, _0804A8A4
+ movs r1, 0xF
+ str r1, [sp]
+ movs r1, 0x11
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0
+ movs r2, 0
+ bl sub_804A96C
+ movs r0, 0
+ bl sub_804A6DC
+ movs r0, 0
+ bl sub_804A41C
+ movs r0, 0
+ bl sub_804A740
+ ldr r0, [r4]
+ adds r0, 0xC8
+ bl sub_804A938
+ b _0804A8FA
+ .align 2, 0
+_0804A89C: .4byte 0x03004824
+_0804A8A0: .4byte gUnknown_0820C330
+_0804A8A4: .4byte gUnknown_0820ADEE
+_0804A8A8:
+ bl sub_8072DEC
+ ldr r4, _0804A924
+ ldr r0, [r4]
+ adds r0, 0x4
+ ldr r1, _0804A928
+ ldrb r2, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp]
+ movs r1, 0x13
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r0, [r4]
+ adds r0, 0xC8
+ ldr r3, _0804A92C
+ movs r1, 0xF
+ str r1, [sp]
+ movs r1, 0x11
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0xF
+ movs r2, 0
+ bl sub_804A96C
+ movs r0, 0x1
+ bl sub_804A6DC
+ movs r0, 0x1
+ bl sub_804A41C
+ movs r0, 0x1
+ bl sub_804A740
+ ldr r0, [r4]
+ adds r0, 0xC8
+ bl sub_804A938
+_0804A8FA:
+ ldr r0, _0804A930
+ ldr r0, [r0, 0x4]
+ ldr r4, _0804A924
+ ldr r1, [r4]
+ adds r1, 0x7E
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r2, _0804A934
+ adds r1, r2
+ movs r2, 0x14
+ bl sub_804ACD8
+ ldr r0, [r4]
+ adds r0, 0x80
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A924: .4byte 0x03004824
+_0804A928: .4byte gUnknown_0820C330
+_0804A92C: .4byte gUnknown_0820ADEE
+_0804A930: .4byte gUnknown_0820C14C
+_0804A934: .4byte 0x06010000
+ thumb_func_end sub_804A840
+
+ thumb_func_start sub_804A938
+sub_804A938: @ 804A938
+ movs r1, 0x1
+ strb r1, [r0, 0x10]
+ bx lr
+ thumb_func_end sub_804A938
+
+ thumb_func_start sub_804A940
+sub_804A940: @ 804A940
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _0804A95C
+ adds r0, r4, 0
+ adds r0, 0x12
+ ldr r1, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ movs r0, 0
+ strb r0, [r4, 0x10]
+_0804A95C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804A940
+
+ thumb_func_start sub_804A964
+sub_804A964: @ 804A964
+ movs r2, 0
+ strb r2, [r0, 0x10]
+ str r1, [r0, 0x8]
+ bx lr
+ thumb_func_end sub_804A964
+
+ thumb_func_start sub_804A96C
+sub_804A96C: @ 804A96C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ mov r10, r3
+ ldr r0, [sp, 0x24]
+ ldr r3, [sp, 0x28]
+ ldr r4, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r2, 0
+ cmp r2, r12
+ bge _0804A9DE
+ ldr r0, [sp]
+ adds r0, 0x12
+ mov r9, r0
+ lsls r0, r6, 5
+ adds r0, r1
+ mov r8, r0
+_0804A9AA:
+ movs r4, 0
+ adds r6, r2, 0x1
+ cmp r4, r5
+ bge _0804A9D8
+ lsls r1, r2, 5
+ add r1, r8
+ adds r0, r5, 0
+ muls r0, r2
+ lsls r0, 1
+ mov r2, r10
+ adds r3, r0, r2
+ lsls r1, 1
+ mov r0, r9
+ adds r2, r1, r0
+_0804A9C6:
+ ldrh r1, [r3]
+ adds r0, r7, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0804A9C6
+_0804A9D8:
+ adds r2, r6, 0
+ cmp r2, r12
+ blt _0804A9AA
+_0804A9DE:
+ movs r0, 0x1
+ ldr r1, [sp]
+ strb r0, [r1, 0x10]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804A96C
+
+ thumb_func_start sub_804A9F4
+sub_804A9F4: @ 804A9F4
+ push {lr}
+ bl sub_8071EF4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804A9F4
+
+ thumb_func_start sub_804AA00
+sub_804AA00: @ 804AA00
+ push {lr}
+ bl sub_8071EF4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804AA00
+
+ thumb_func_start sub_804AA0C
+sub_804AA0C: @ 804AA0C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _0804AA7C
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0x4
+ ldr r2, _0804AA80
+ lsrs r4, 22
+ adds r1, r4, r2
+ ldrb r6, [r1]
+ adds r1, r2, 0x1
+ adds r1, r4, r1
+ ldrb r5, [r1]
+ adds r1, r2, 0x2
+ adds r1, r4, r1
+ ldrb r3, [r1]
+ adds r2, 0x3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ str r1, [sp]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl AddTextPrinterParametrized
+ mov r1, r8
+ ldr r3, [r1]
+ adds r0, r3, 0x4
+ ldr r1, _0804AA84
+ adds r4, r1
+ ldr r1, [r4]
+ adds r3, 0x7A
+ movs r4, 0xC0
+ lsls r4, 1
+ adds r2, r4, 0
+ ldrb r3, [r3]
+ adds r2, r3
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp]
+ adds r3, r6, 0
+ bl sub_8003460
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AA7C: .4byte 0x03004824
+_0804AA80: .4byte gUnknown_0820C308
+_0804AA84: .4byte gUnknown_0820C2F0
+ thumb_func_end sub_804AA0C
+
+ thumb_func_start sub_804AA88
+sub_804AA88: @ 804AA88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ ldr r5, _0804AAD0
+ ldr r0, _0804AAD4
+ mov r8, r0
+ movs r4, 0
+ ldr r2, _0804AAD8
+ mov r12, r2
+ movs r7, 0x8E
+ lsls r7, 4
+ movs r6, 0xFF
+_0804AAA2:
+ ldr r0, [r5]
+ lsls r2, r3, 3
+ adds r0, r2
+ add r0, r8
+ strb r4, [r0]
+ ldr r1, [r5]
+ adds r1, r2
+ mov r2, r12
+ adds r0, r1, r2
+ strh r4, [r0]
+ adds r1, r7
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0804AAA2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AAD0: .4byte 0x03004824
+_0804AAD4: .4byte 0x000008dc
+_0804AAD8: .4byte 0x000008de
+ thumb_func_end sub_804AA88
+
+ thumb_func_start sub_804AADC
+sub_804AADC: @ 804AADC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r3, 0
+ ldr r4, _0804AB18
+ mov r12, r4
+ ldr r7, _0804AB1C
+_0804AAEE:
+ mov r1, r12
+ ldr r0, [r1]
+ lsls r1, r3, 3
+ adds r2, r0, r1
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804AB24
+ ldr r3, _0804AB20
+ adds r0, r2, r3
+ strh r5, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strb r6, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ ldr r1, _0804AB1C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0804AB2A
+ .align 2, 0
+_0804AB18: .4byte 0x03004824
+_0804AB1C: .4byte 0x000008dc
+_0804AB20: .4byte 0x000008de
+_0804AB24:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0804AAEE
+_0804AB2A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804AADC
+
+ thumb_func_start sub_804AB30
+sub_804AB30: @ 804AB30
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r3, _0804AB58
+_0804AB36:
+ ldr r0, [r3]
+ lsls r1, r4, 3
+ adds r2, r0, r1
+ ldr r5, _0804AB5C
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _0804ABE2
+ ldr r0, _0804AB60
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0804AB64
+ subs r0, 0x1
+ strh r0, [r1]
+ b _0804ABE2
+ .align 2, 0
+_0804AB58: .4byte 0x03004824
+_0804AB5C: .4byte 0x000008dc
+_0804AB60: .4byte 0x000008de
+_0804AB64:
+ movs r1, 0x8E
+ lsls r1, 4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _0804ABD2
+ lsls r0, 2
+ ldr r1, _0804AB7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804AB7C: .4byte _0804AB80
+ .align 2, 0
+_0804AB80:
+ .4byte _0804AB98
+ .4byte _0804ABB4
+ .4byte _0804ABBC
+ .4byte _0804ABC4
+ .4byte _0804ABC4
+ .4byte _0804ABCC
+_0804AB98:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0804ABB0
+ ldr r1, [r1]
+ adds r1, 0x8C
+ movs r2, 0x14
+ bl SendBlock
+ b _0804ABD2
+ .align 2, 0
+_0804ABB0: .4byte 0x03004824
+_0804ABB4:
+ movs r0, 0
+ bl sub_804AA0C
+ b _0804ABD2
+_0804ABBC:
+ movs r0, 0x2
+ bl sub_804AA0C
+ b _0804ABD2
+_0804ABC4:
+ movs r0, 0x3
+ bl sub_804AA0C
+ b _0804ABD2
+_0804ABCC:
+ movs r0, 0x3
+ bl sub_804AA0C
+_0804ABD2:
+ ldr r0, _0804ABF0
+ ldr r1, [r0]
+ adds r1, r5
+ ldr r2, _0804ABF4
+ adds r1, r2
+ movs r2, 0
+ strb r2, [r1]
+ adds r3, r0, 0
+_0804ABE2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804AB36
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ABF0: .4byte 0x03004824
+_0804ABF4: .4byte 0x000008dc
+ thumb_func_end sub_804AB30
+
+ thumb_func_start sub_804ABF8
+sub_804ABF8: @ 804ABF8
+ push {r4,lr}
+ ldr r0, _0804AC14
+ ldr r1, [r0]
+ adds r1, 0xB4
+ ldrb r1, [r1]
+ subs r1, 0x8
+ adds r4, r0, 0
+ cmp r1, 0x8
+ bhi _0804ACB0
+ lsls r0, r1, 2
+ ldr r1, _0804AC18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804AC14: .4byte 0x03004824
+_0804AC18: .4byte _0804AC1C
+ .align 2, 0
+_0804AC1C:
+ .4byte _0804AC40
+ .4byte _0804ACB0
+ .4byte _0804ACB0
+ .4byte _0804ACB0
+ .4byte _0804ACB0
+ .4byte _0804AC60
+ .4byte _0804AC74
+ .4byte _0804AC88
+ .4byte _0804AC9A
+_0804AC40:
+ ldr r0, [r4]
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _0804AC5C
+ adds r0, r1
+ bl LoadSpriteSheet
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strh r0, [r2]
+ b _0804ACC2
+ .align 2, 0
+_0804AC5C: .4byte gUnknown_0820C07C
+_0804AC60:
+ ldr r0, _0804AC6C
+ bl LoadSpritePalette
+ ldr r0, _0804AC70
+ ldr r1, [r0]
+ b _0804ACC2
+ .align 2, 0
+_0804AC6C: .4byte gUnknown_0820C0E4
+_0804AC70: .4byte 0x03004824
+_0804AC74:
+ ldr r0, _0804AC80
+ bl LoadSpritePalette
+ ldr r0, _0804AC84
+ ldr r1, [r0]
+ b _0804ACC2
+ .align 2, 0
+_0804AC80: .4byte gUnknown_0820C12C
+_0804AC84: .4byte 0x03004824
+_0804AC88:
+ ldr r0, _0804ACA8
+ bl LoadSpriteSheet
+ ldr r0, _0804ACAC
+ ldr r1, [r0]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804AC9A:
+ ldr r0, _0804ACAC
+ ldr r0, [r0]
+ adds r0, 0xB4
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0804ACCC
+ .align 2, 0
+_0804ACA8: .4byte gUnknown_0820C124
+_0804ACAC: .4byte 0x03004824
+_0804ACB0:
+ ldr r0, [r4]
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _0804ACD4
+ adds r0, r1
+ bl LoadSpriteSheet
+ ldr r1, [r4]
+_0804ACC2:
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_0804ACCC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804ACD4: .4byte gUnknown_0820C07C
+ thumb_func_end sub_804ABF8
+
+ thumb_func_start sub_804ACD8
+sub_804ACD8: @ 804ACD8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r3, r2, 24
+ lsrs r3, 24
+ ldr r0, _0804ACF0
+ adds r2, r4, 0
+ bl sub_804AFB8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ACF0: .4byte gWindowConfig_81E725C
+ thumb_func_end sub_804ACD8
+
+ thumb_func_start sub_804ACF4
+sub_804ACF4: @ 804ACF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0
+ beq _0804AD0C
+ cmp r0, 0x1
+ beq _0804ADA0
+ b _0804AE2C
+_0804AD0C:
+ movs r7, 0
+ ldr r1, _0804AD4C
+ ldr r0, [r1]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r7, r0
+ blt _0804AD1C
+ b _0804AE2C
+_0804AD1C:
+ adds r6, r1, 0
+ movs r5, 0
+ mov r9, r5
+_0804AD22:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _0804AD50
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _0804AD54
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ mov r2, r9
+ strb r2, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ b _0804AD84
+ .align 2, 0
+_0804AD4C: .4byte 0x03004824
+_0804AD50: .4byte 0x03004360
+_0804AD54:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0804AD72
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ b _0804AD84
+_0804AD72:
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ mov r1, r9
+_0804AD84:
+ strb r1, [r0]
+ ldr r0, _0804AD9C
+ adds r5, 0x1
+ adds r7, 0x1
+ ldr r0, [r0]
+ adds r0, 0x42
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r7, r0
+ blt _0804AD22
+ b _0804AE2C
+ .align 2, 0
+_0804AD9C: .4byte 0x03004824
+_0804ADA0:
+ movs r7, 0
+ ldr r1, _0804ADE0
+ ldr r0, [r1]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r7, r0
+ bge _0804AE2C
+ adds r6, r1, 0
+ movs r5, 0x6
+ movs r2, 0
+ mov r9, r2
+_0804ADB6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _0804ADE4
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _0804ADE8
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ mov r2, r9
+ strb r2, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ b _0804AE18
+ .align 2, 0
+_0804ADE0: .4byte 0x03004824
+_0804ADE4: .4byte 0x030045c0
+_0804ADE8:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0804AE06
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ b _0804AE18
+_0804AE06:
+ ldr r0, [r6]
+ adds r0, 0x51
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r0, 0x5D
+ adds r0, r5
+ mov r1, r9
+_0804AE18:
+ strb r1, [r0]
+ ldr r0, _0804AE38
+ adds r5, 0x1
+ adds r7, 0x1
+ ldr r0, [r0]
+ adds r0, 0x42
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r7, r0
+ blt _0804ADB6
+_0804AE2C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AE38: .4byte 0x03004824
+ thumb_func_end sub_804ACF4
+
+ thumb_func_start sub_804AE3C
+sub_804AE3C: @ 804AE3C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0804AE4C
+ cmp r0, 0x1
+ beq _0804AEAC
+ b _0804AF00
+_0804AE4C:
+ movs r6, 0
+ ldr r1, _0804AEA4
+ ldr r0, [r1]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _0804AF00
+ adds r7, r1, 0
+_0804AE5C:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _0804AEA8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8046200
+ ldr r1, [r7]
+ adds r1, 0x69
+ adds r1, r6
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r7]
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0804AE5C
+ b _0804AF00
+ .align 2, 0
+_0804AEA4: .4byte 0x03004824
+_0804AEA8: .4byte 0x03004360
+_0804AEAC:
+ movs r6, 0
+ ldr r1, _0804AF08
+ ldr r0, [r1]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _0804AF00
+ adds r7, r1, 0
+_0804AEBC:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _0804AF0C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8046200
+ ldr r1, [r7]
+ adds r1, 0x6F
+ adds r1, r6
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r7]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0804AEBC
+_0804AF00:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AF08: .4byte 0x03004824
+_0804AF0C: .4byte 0x030045c0
+ thumb_func_end sub_804AE3C
+
+ thumb_func_start sub_804AF10
+sub_804AF10: @ 804AF10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+_0804AF18:
+ movs r4, 0
+ ldr r2, _0804AF7C
+ ldr r0, [r2]
+ adds r0, 0x42
+ adds r0, r5
+ adds r1, r5, 0x1
+ mov r8, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _0804AF6A
+ adds r6, r2, 0
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r7, r0, 1
+_0804AF34:
+ ldr r2, [r6]
+ adds r3, r4, r7
+ adds r0, r2, 0
+ adds r0, 0x34
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804AF80
+ adds r0, r1
+ adds r2, 0x69
+ adds r2, r3
+ ldrb r2, [r2]
+ movs r1, 0x4
+ subs r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_809D824
+ adds r4, 0x1
+ ldr r0, [r6]
+ adds r0, 0x42
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0804AF34
+_0804AF6A:
+ mov r5, r8
+ cmp r5, 0x1
+ ble _0804AF18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AF7C: .4byte 0x03004824
+_0804AF80: .4byte 0x02020004
+ thumb_func_end sub_804AF10
+
+ thumb_func_start sub_804AF84
+sub_804AF84: @ 804AF84
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _0804AFB0
+ ldr r3, _0804AFB4
+_0804AF8C:
+ adds r1, r2, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0804AFA2
+ ldr r0, [r3]
+ adds r0, 0xB5
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804AFA2
+ strb r0, [r1]
+_0804AFA2:
+ adds r2, 0x1
+ cmp r2, 0xA
+ ble _0804AF8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AFB0: .4byte 0x02028844
+_0804AFB4: .4byte 0x03004824
+ thumb_func_end sub_804AF84
+
+ thumb_func_start sub_804AFB8
+sub_804AFB8: @ 804AFB8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r0
+ mov r8, r1
+ mov r10, r2
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r0, r6, 0x3
+ lsrs r6, r0, 2
+ ldr r7, _0804B054
+ mov r0, sp
+ movs r5, 0
+ strh r5, [r0]
+ lsls r4, r6, 6
+ movs r0, 0x80
+ lsls r0, 17
+ orrs r4, r0
+ mov r0, sp
+ adds r1, r7, 0
+ adds r2, r4, 0
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x2
+ strh r5, [r0]
+ mov r2, r9
+ ldrb r1, [r2, 0xD]
+ lsls r1, 5
+ adds r1, r7
+ adds r2, r4, 0
+ bl CpuSet
+ mov r0, r9
+ adds r1, r7, 0
+ mov r2, r10
+ bl sub_8004E3C
+ movs r4, 0
+ cmp r4, r6
+ bcs _0804B042
+_0804B010:
+ lsls r0, r4, 7
+ adds r0, r7, r0
+ lsls r1, r4, 8
+ add r1, r8
+ movs r2, 0x40
+ bl CpuSet
+ lsls r0, r4, 2
+ mov r1, r9
+ ldrb r1, [r1, 0xD]
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r7, r0
+ lsls r1, r4, 3
+ adds r1, 0x4
+ lsls r1, 5
+ add r1, r8
+ movs r2, 0x40
+ bl CpuSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _0804B010
+_0804B042:
+ 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
+_0804B054: .4byte 0x02039360
+ thumb_func_end sub_804AFB8
+
+ thumb_func_start sub_804B058
+sub_804B058: @ 804B058
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0804B074
+ movs r0, 0x17
+ bl audio_play
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0804B074:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B058
+
+ thumb_func_start sub_804B07C
+sub_804B07C: @ 804B07C
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ bne _0804B0B2
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _0804B098
+ strh r1, [r2, 0x2E]
+_0804B098:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldr r1, _0804B0B8
+ adds r0, r1
+ ldrb r1, [r2, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ lsls r1, 4
+ adds r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+_0804B0B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B0B8: .4byte gUnknown_08215A98
+ thumb_func_end sub_804B07C
+
+ thumb_func_start sub_804B0BC
+sub_804B0BC: @ 804B0BC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ adds r1, 0x1
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xA
+ bne _0804B0DA
+ adds r0, r2, 0
+ bl DestroySprite
+_0804B0DA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B0BC
+
+ thumb_func_start sub_804B0E0
+sub_804B0E0: @ 804B0E0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ adds r1, 0x1
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x26]
+ subs r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xA
+ bne _0804B0FE
+ adds r0, r2, 0
+ bl DestroySprite
+_0804B0FE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B0E0
+
+ thumb_func_start sub_804B104
+sub_804B104: @ 804B104
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _0804B120
+ movs r0, 0xCC
+ bl audio_play
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0804B120:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B104
+
+ thumb_func_start sub_804B128
+sub_804B128: @ 804B128
+ push {r4,r5,lr}
+ sub sp, 0x20
+ ldr r0, _0804B1B4
+ ldr r0, [r0]
+ mov r12, r0
+ movs r0, 0x82
+ lsls r0, 1
+ add r0, r12
+ ldrh r1, [r0]
+ lsls r1, 8
+ movs r0, 0x83
+ lsls r0, 1
+ add r0, r12
+ ldrh r2, [r0]
+ lsls r2, 8
+ movs r0, 0x86
+ lsls r0, 1
+ add r0, r12
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ movs r0, 0x87
+ lsls r0, 1
+ add r0, r12
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ str r0, [sp]
+ movs r4, 0x8C
+ lsls r4, 1
+ add r4, r12
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ str r0, [sp, 0x4]
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ str r0, [sp, 0x8]
+ movs r0, 0x8E
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ str r0, [sp, 0xC]
+ add r0, sp, 0x10
+ bl sub_8040F34
+ ldr r1, _0804B1B8
+ add r0, sp, 0x10
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ add r0, sp, 0x10
+ ldrh r0, [r0, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ add r0, sp, 0x10
+ ldrh r0, [r0, 0x4]
+ strh r0, [r1]
+ adds r1, 0x2
+ add r0, sp, 0x10
+ ldrh r0, [r0, 0x6]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [sp, 0x18]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [sp, 0x1C]
+ str r0, [r1]
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B1B4: .4byte 0x03004828
+_0804B1B8: .4byte 0x04000020
+ thumb_func_end sub_804B128
+
+ thumb_func_start sub_804B1BC
+sub_804B1BC: @ 804B1BC
+ push {lr}
+ ldr r1, _0804B1FC
+ ldr r0, _0804B200
+ ldr r2, [r0]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0804B208
+ ldr r1, _0804B204
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0804B20C
+ .align 2, 0
+_0804B1FC: .4byte 0x04000016
+_0804B200: .4byte 0x03004828
+_0804B204: .4byte 0x0400001a
+_0804B208:
+ bl sub_804B128
+_0804B20C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B1BC
+
+ thumb_func_start sub_804B210
+sub_804B210: @ 804B210
+ push {lr}
+ bl sub_804B1BC
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B210
+
+ thumb_func_start sub_804B228
+sub_804B228: @ 804B228
+ push {r4,lr}
+ ldr r4, _0804B248
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0xB4
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ adds r1, 0xB2
+ strb r3, [r1]
+ ldr r0, [r4]
+ adds r0, 0xB3
+ strb r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B248: .4byte 0x03004828
+ thumb_func_end sub_804B228
+
+ thumb_func_start sub_804B24C
+sub_804B24C: @ 804B24C
+ push {r4,r5,lr}
+ ldr r1, _0804B270
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0xB2
+ adds r3, r2, 0
+ adds r3, 0xB3
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ ldrb r3, [r3]
+ cmp r0, r3
+ bne _0804B274
+ adds r1, r2, 0
+ adds r1, 0xB4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804B27A
+ .align 2, 0
+_0804B270: .4byte 0x03004828
+_0804B274:
+ adds r1, r2, 0
+ adds r1, 0xB4
+ movs r0, 0
+_0804B27A:
+ strh r0, [r1]
+ adds r4, r5, 0
+ ldr r3, [r4]
+ adds r2, r3, 0
+ adds r2, 0xB4
+ ldrh r0, [r2]
+ cmp r0, 0xB4
+ bls _0804B29C
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0xB3
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xB2
+ strb r1, [r0]
+_0804B29C:
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0xB2
+ ldrb r1, [r1]
+ adds r0, 0xB3
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804B24C
+
+ thumb_func_start sub_804B2B0
+sub_804B2B0: @ 804B2B0
+ push {lr}
+ ldr r0, _0804B2C0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804B2C4
+ movs r0, 0
+ b _0804B2CC
+ .align 2, 0
+_0804B2C0: .4byte 0x03002fa4
+_0804B2C4:
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+_0804B2CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804B2B0
+
+ thumb_func_start sub_804B2D0
+sub_804B2D0: @ 804B2D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r4, 0
+ mov r10, r4
+ cmp r7, 0
+ bne _0804B2FC
+ ldr r0, _0804B324
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0804B328
+ adds r1, r0
+ mov r10, r1
+ movs r4, 0x1
+_0804B2FC:
+ cmp r7, 0x1
+ bne _0804B31A
+ ldr r0, _0804B324
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _0804B32C
+ adds r1, r0
+ mov r10, r1
+ movs r4, 0x3
+_0804B31A:
+ cmp r5, 0
+ beq _0804B330
+ cmp r5, 0x1
+ beq _0804B3A4
+ b _0804B3FA
+ .align 2, 0
+_0804B324: .4byte 0x020297d8
+_0804B328: .4byte 0x03004360
+_0804B32C: .4byte 0x030045c0
+_0804B330:
+ mov r0, r10
+ movs r1, 0x41
+ bl PokemonGetField
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r10
+ movs r1, 0
+ bl PokemonGetField
+ mov r9, r0
+ lsls r0, r5, 3
+ ldr r1, _0804B390
+ adds r0, r1
+ ldr r1, _0804B394
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r3, _0804B398
+ ldr r6, _0804B39C
+ lsls r7, 1
+ mov r8, r7
+ mov r4, r8
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r6
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r4, r9
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r0, r10
+ bl sub_8040990
+ bl LoadCompressedObjectPalette
+ ldr r0, _0804B3A0
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ adds r0, r1
+ add r0, r8
+ strh r5, [r0]
+ b _0804B3FA
+ .align 2, 0
+_0804B390: .4byte gMonFrontPicTable
+_0804B394: .4byte gMonFrontPicCoords
+_0804B398: .4byte 0x02000000
+_0804B39C: .4byte gUnknown_081FAF4C
+_0804B3A0: .4byte 0x03004828
+_0804B3A4:
+ mov r0, r10
+ bl sub_8040990
+ ldrh r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl gpu_pal_obj_decompress_and_apply
+ ldr r0, _0804B40C
+ movs r1, 0x78
+ movs r2, 0x3C
+ movs r3, 0x6
+ bl CreateSprite
+ ldr r4, _0804B410
+ ldr r1, [r4]
+ adds r1, 0xB8
+ adds r1, r7
+ strb r0, [r1]
+ ldr r3, _0804B414
+ ldr r0, [r4]
+ adds r0, 0xB8
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xB8
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _0804B418
+ str r1, [r0]
+_0804B3FA:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B40C: .4byte 0x02024e8c
+_0804B410: .4byte 0x03004828
+_0804B414: .4byte 0x02020004
+_0804B418: .4byte SpriteCallbackDummy
+ thumb_func_end sub_804B2D0
+
+ thumb_func_start sub_804B41C
+sub_804B41C: @ 804B41C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r1, _0804B43C
+ ldr r2, _0804B440
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xC
+ bls _0804B430
+ b _0804B76E
+_0804B430:
+ lsls r0, 2
+ ldr r1, _0804B444
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804B43C: .4byte 0x03001770
+_0804B440: .4byte 0x0000043c
+_0804B444: .4byte _0804B448
+ .align 2, 0
+_0804B448:
+ .4byte _0804B47C
+ .4byte _0804B5AC
+ .4byte _0804B5D4
+ .4byte _0804B5FC
+ .4byte _0804B648
+ .4byte _0804B678
+ .4byte _0804B6A8
+ .4byte _0804B6B2
+ .4byte _0804B6CC
+ .4byte _0804B6E4
+ .4byte _0804B71C
+ .4byte _0804B726
+ .4byte _0804B75C
+_0804B47C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetTasks
+ bl CloseLink
+ ldr r6, _0804B570
+ ldr r5, _0804B574
+ str r5, [r6]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0804B578
+ bl SetVBlankCallback
+ bl sub_804B228
+ ldr r4, _0804B57C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ movs r0, 0x2
+ bl sub_8064EF4
+ ldr r1, [r6]
+ adds r1, 0x34
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x4
+ bl sub_8064F08
+ bl sub_8071EF4
+ ldr r1, _0804B580
+ ldr r4, _0804B584
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, _0804B588
+ ldr r0, _0804B58C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0804B590
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0804B594
+ ldr r1, _0804B598
+ adds r5, r1
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r5, 0
+ bl CpuSet
+ ldr r1, _0804B59C
+ ldr r0, _0804B5A0
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804B5A4
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0804B5A8
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0xB6
+ movs r2, 0
+ strh r2, [r0]
+ adds r0, 0xE
+ strh r2, [r0]
+ movs r4, 0x8F
+ lsls r4, 1
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r3, [r6]
+ movs r1, 0x82
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0x40
+ strh r1, [r0]
+ subs r4, 0x18
+ adds r0, r3, r4
+ strh r1, [r0]
+ adds r1, 0xC8
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x4
+ adds r0, r3, r4
+ strh r2, [r0]
+ movs r0, 0x86
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x78
+ strh r0, [r1]
+ adds r4, 0x4
+ adds r1, r3, r4
+ movs r0, 0x50
+ strh r0, [r1]
+ adds r0, 0xC8
+ adds r1, r3, r0
+ subs r0, 0x18
+ strh r0, [r1]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r3, r1
+ strh r2, [r0]
+ b _0804B76E
+ .align 2, 0
+_0804B570: .4byte 0x03004828
+_0804B574: .4byte 0x0201f000
+_0804B578: .4byte sub_804B210
+_0804B57C: .4byte gWindowConfig_81E6F84
+_0804B580: .4byte 0x03002b74
+_0804B584: .4byte 0x00001144
+_0804B588: .4byte 0x03001770
+_0804B58C: .4byte 0x0000043c
+_0804B590: .4byte gUnknown_08D00000
+_0804B594: .4byte gUnknown_08D00524
+_0804B598: .4byte 0xfffe1000
+_0804B59C: .4byte 0x06002800
+_0804B5A0: .4byte 0x040000d4
+_0804B5A4: .4byte 0x80000280
+_0804B5A8: .4byte gUnknown_08D004E0
+_0804B5AC:
+ bl OpenLink
+ ldr r1, _0804B5C8
+ ldr r2, _0804B5CC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _0804B5D0
+ ldr r0, [r0]
+ adds r0, 0xC0
+ str r2, [r0]
+ b _0804B76E
+ .align 2, 0
+_0804B5C8: .4byte 0x03001770
+_0804B5CC: .4byte 0x0000043c
+_0804B5D0: .4byte 0x03004828
+_0804B5D4:
+ ldr r0, _0804B5F4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bhi _0804B5E8
+ b _0804B76E
+_0804B5E8:
+ movs r0, 0
+ str r0, [r1]
+ ldr r4, _0804B5F8
+ adds r1, r2, r4
+ b _0804B74C
+ .align 2, 0
+_0804B5F4: .4byte 0x03004828
+_0804B5F8: .4byte 0x0000043c
+_0804B5FC:
+ bl IsLinkMaster
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804B608
+ b _0804B746
+_0804B608:
+ bl GetLinkPlayerCount_2
+ adds r4, r0, 0
+ bl sub_800820C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _0804B61C
+ b _0804B76E
+_0804B61C:
+ ldr r0, _0804B63C
+ ldr r1, [r0]
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x1E
+ bhi _0804B62E
+ b _0804B76E
+_0804B62E:
+ bl sub_8007F4C
+ ldr r1, _0804B640
+ ldr r0, _0804B644
+ adds r1, r0
+ b _0804B74C
+ .align 2, 0
+_0804B63C: .4byte 0x03004828
+_0804B640: .4byte 0x03001770
+_0804B644: .4byte 0x0000043c
+_0804B648:
+ bl sub_804B24C
+ ldr r0, _0804B66C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0804B656
+ b _0804B76E
+_0804B656:
+ bl IsLinkPlayerDataExchangeComplete
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0804B664
+ b _0804B76E
+_0804B664:
+ ldr r1, _0804B670
+ ldr r4, _0804B674
+ adds r1, r4
+ b _0804B74C
+ .align 2, 0
+_0804B66C: .4byte 0x03002fa4
+_0804B670: .4byte 0x03001770
+_0804B674: .4byte 0x0000043c
+_0804B678:
+ ldr r2, _0804B69C
+ ldr r0, [r2]
+ adds r0, 0x9C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x9D
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0xBD
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_804B2D0
+ ldr r1, _0804B6A0
+ ldr r0, _0804B6A4
+ adds r1, r0
+ b _0804B74C
+ .align 2, 0
+_0804B69C: .4byte 0x03004828
+_0804B6A0: .4byte 0x03001770
+_0804B6A4: .4byte 0x0000043c
+_0804B6A8:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_804B2D0
+ b _0804B746
+_0804B6B2:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_804B2D0
+ ldr r1, _0804B6C4
+ ldr r4, _0804B6C8
+ adds r1, r4
+ b _0804B74C
+ .align 2, 0
+_0804B6C4: .4byte 0x03001770
+_0804B6C8: .4byte 0x0000043c
+_0804B6CC:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_804B2D0
+ ldr r1, _0804B6DC
+ ldr r0, _0804B6E0
+ adds r1, r0
+ b _0804B74C
+ .align 2, 0
+_0804B6DC: .4byte 0x03001770
+_0804B6E0: .4byte 0x0000043c
+_0804B6E4:
+ bl sub_804C164
+ ldr r0, _0804B704
+ bl LoadSpriteSheet
+ ldr r0, _0804B708
+ bl LoadSpritePalette
+ ldr r1, _0804B70C
+ ldr r2, _0804B710
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0804B714
+ ldr r4, _0804B718
+ adds r1, r4
+ b _0804B74C
+ .align 2, 0
+_0804B704: .4byte gUnknown_0821594C
+_0804B708: .4byte gUnknown_08215954
+_0804B70C: .4byte 0x0400000a
+_0804B710: .4byte 0x00000502
+_0804B714: .4byte 0x03001770
+_0804B718: .4byte 0x0000043c
+_0804B71C:
+ ldr r0, _0804B754
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804B726:
+ movs r0, 0x5
+ bl sub_804BBE8
+ movs r0, 0
+ bl sub_804BBE8
+ bl sub_804C1A8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0804B746:
+ ldr r1, _0804B758
+ ldr r2, _0804B754
+ adds r1, r2
+_0804B74C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804B76E
+ .align 2, 0
+_0804B754: .4byte 0x0000043c
+_0804B758: .4byte 0x03001770
+_0804B75C:
+ ldr r0, _0804B788
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804B76E
+ ldr r0, _0804B78C
+ bl SetMainCallback2
+_0804B76E:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B788: .4byte 0x0202f388
+_0804B78C: .4byte sub_804DB84
+ thumb_func_end sub_804B41C
+
+ thumb_func_start sub_804B790
+sub_804B790: @ 804B790
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ ldr r1, _0804B7B4
+ ldr r2, _0804B7B8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xC
+ bls _0804B7A8
+ b _0804B9F2
+_0804B7A8:
+ lsls r0, 2
+ ldr r1, _0804B7BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804B7B4: .4byte 0x03001770
+_0804B7B8: .4byte 0x0000043c
+_0804B7BC: .4byte _0804B7C0
+ .align 2, 0
+_0804B7C0:
+ .4byte _0804B7F4
+ .4byte _0804B9F2
+ .4byte _0804B9F2
+ .4byte _0804B9F2
+ .4byte _0804B9F2
+ .4byte _0804B914
+ .4byte _0804B92C
+ .4byte _0804B944
+ .4byte _0804B94E
+ .4byte _0804B968
+ .4byte _0804B9A0
+ .4byte _0804B9AA
+ .4byte _0804B9E0
+_0804B7F4:
+ ldr r1, _0804B8E0
+ ldr r0, _0804B8E4
+ ldrh r0, [r0]
+ movs r6, 0
+ strb r0, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ ldr r4, _0804B8E8
+ ldr r1, _0804B8EC
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _0804B8F0
+ movs r1, 0x7
+ add r2, sp, 0x4
+ bl PokemonGetField
+ adds r4, 0x1C
+ adds r0, r4, 0
+ add r1, sp, 0x4
+ bl StringCopy
+ movs r0, 0x80
+ lsls r0, 19
+ movs r3, 0
+ mov r8, r3
+ strh r6, [r0]
+ bl ResetTasks
+ ldr r5, _0804B8F4
+ ldr r0, _0804B8F8
+ str r0, [r5]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0804B8FC
+ bl SetVBlankCallback
+ bl sub_804B228
+ ldr r4, _0804B900
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, [r5]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ movs r0, 0x2
+ bl sub_8064EF4
+ ldr r1, [r5]
+ adds r1, 0x34
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8064F08
+ bl sub_8071EF4
+ ldr r1, _0804B904
+ ldr r2, _0804B908
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, [r5]
+ movs r3, 0x8F
+ lsls r3, 1
+ adds r0, r3
+ mov r1, r8
+ strb r1, [r0]
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0xB6
+ strh r6, [r0]
+ adds r0, 0xE
+ strh r6, [r0]
+ subs r3, 0x1A
+ adds r0, r2, r3
+ movs r1, 0x40
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r1, 0xC8
+ adds r0, r2, r1
+ strh r6, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ strh r6, [r0]
+ movs r0, 0x86
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0x78
+ strh r0, [r1]
+ adds r3, 0x4
+ adds r1, r2, r3
+ movs r0, 0x50
+ strh r0, [r1]
+ adds r0, 0xC8
+ adds r1, r2, r0
+ subs r0, 0x18
+ strh r0, [r1]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r2, r1
+ strh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0xC0
+ str r6, [r0]
+ ldr r0, _0804B90C
+ ldr r2, _0804B910
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0]
+ b _0804B9F2
+ .align 2, 0
+_0804B8E0: .4byte 0x020297d8
+_0804B8E4: .4byte 0x0202e8ce
+_0804B8E8: .4byte 0x03002978
+_0804B8EC: .4byte 0x02024ea4
+_0804B8F0: .4byte 0x030045c0
+_0804B8F4: .4byte 0x03004828
+_0804B8F8: .4byte 0x0201f000
+_0804B8FC: .4byte sub_804B210
+_0804B900: .4byte gWindowConfig_81E717C
+_0804B904: .4byte 0x03002b74
+_0804B908: .4byte 0x00001144
+_0804B90C: .4byte 0x03001770
+_0804B910: .4byte 0x0000043c
+_0804B914:
+ movs r0, 0
+ movs r1, 0
+ bl sub_804B2D0
+ ldr r1, _0804B924
+ ldr r3, _0804B928
+ adds r1, r3
+ b _0804B9D0
+ .align 2, 0
+_0804B924: .4byte 0x03001770
+_0804B928: .4byte 0x0000043c
+_0804B92C:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_804B2D0
+ ldr r1, _0804B93C
+ ldr r0, _0804B940
+ adds r1, r0
+ b _0804B9D0
+ .align 2, 0
+_0804B93C: .4byte 0x03001770
+_0804B940: .4byte 0x0000043c
+_0804B944:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_804B2D0
+ b _0804B9CA
+_0804B94E:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_804B2D0
+ ldr r1, _0804B960
+ ldr r3, _0804B964
+ adds r1, r3
+ b _0804B9D0
+ .align 2, 0
+_0804B960: .4byte 0x03001770
+_0804B964: .4byte 0x0000043c
+_0804B968:
+ bl sub_804C164
+ ldr r0, _0804B988
+ bl LoadSpriteSheet
+ ldr r0, _0804B98C
+ bl LoadSpritePalette
+ ldr r1, _0804B990
+ ldr r2, _0804B994
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0804B998
+ ldr r3, _0804B99C
+ adds r1, r3
+ b _0804B9D0
+ .align 2, 0
+_0804B988: .4byte gUnknown_0821594C
+_0804B98C: .4byte gUnknown_08215954
+_0804B990: .4byte 0x0400000a
+_0804B994: .4byte 0x00000502
+_0804B998: .4byte 0x03001770
+_0804B99C: .4byte 0x0000043c
+_0804B9A0:
+ ldr r0, _0804B9D8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804B9AA:
+ movs r0, 0x5
+ bl sub_804BBE8
+ movs r0, 0
+ bl sub_804BBE8
+ bl sub_804C1A8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0804B9CA:
+ ldr r1, _0804B9DC
+ ldr r2, _0804B9D8
+ adds r1, r2
+_0804B9D0:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804B9F2
+ .align 2, 0
+_0804B9D8: .4byte 0x0000043c
+_0804B9DC: .4byte 0x03001770
+_0804B9E0:
+ ldr r0, _0804BA10
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804B9F2
+ ldr r0, _0804BA14
+ bl SetMainCallback2
+_0804B9F2:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BA10: .4byte 0x0202f388
+_0804BA14: .4byte sub_804BBCC
+ thumb_func_end sub_804B790
+
+ thumb_func_start sub_804BA18
+sub_804BA18: @ 804BA18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _0804BA60
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0804BA5A
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_0804BA5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BA60: .4byte 0x03004360
+ thumb_func_end sub_804BA18
+
+ thumb_func_start sub_804BA64
+sub_804BA64: @ 804BA64
+ push {lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ ldr r2, _0804BA90
+ movs r1, 0x80
+ lsls r1, 17
+ eors r1, r0
+ lsrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x80
+ lsls r0, 8
+ cmp r1, r0
+ bne _0804BA8C
+ bl sub_80690F0
+_0804BA8C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BA90: .4byte 0x03002970
+ thumb_func_end sub_804BA64
+
+ thumb_func_start sub_804BA94
+sub_804BA94: @ 804BA94
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r5, 0x64
+ mov r1, r9
+ muls r1, r5
+ ldr r0, _0804BB60
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x40
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r1, r4, 0
+ muls r1, r5
+ ldr r0, _0804BB64
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x40
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r6, 0xFF
+ beq _0804BAE8
+ lsls r0, r6, 3
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0804BB68
+ adds r0, r1
+ bl sub_80A2B40
+_0804BAE8:
+ ldr r4, _0804BB6C
+ ldr r0, [r4]
+ adds r0, 0x38
+ adds r1, r7, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ ldr r1, [r4]
+ adds r1, 0x38
+ adds r0, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ movs r1, 0x46
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0804BB28
+ adds r0, r7, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl pokemon_setattr
+_0804BB28:
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _0804BB3E
+ lsls r1, r0, 3
+ add r1, r8
+ lsls r1, 2
+ ldr r0, _0804BB70
+ adds r1, r0
+ adds r0, r7, 0
+ bl sub_80A2D88
+_0804BB3E:
+ mov r0, r9
+ bl sub_804BA18
+ ldr r0, _0804BB74
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804BB50
+ bl sub_804BA64
+_0804BB50:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BB60: .4byte 0x03004360
+_0804BB64: .4byte 0x030045c0
+_0804BB68: .4byte 0x02028280
+_0804BB6C: .4byte 0x03004828
+_0804BB70: .4byte 0x02029700
+_0804BB74: .4byte 0x03002fa4
+ thumb_func_end sub_804BA94
+
+ thumb_func_start sub_804BB78
+sub_804BB78: @ 804BB78
+ push {r4,lr}
+ ldr r4, _0804BB8C
+ ldr r0, [r4]
+ adds r0, 0xBD
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0804BB90
+ cmp r0, 0x2
+ beq _0804BBB6
+ b _0804BBC0
+ .align 2, 0
+_0804BB8C: .4byte 0x03004828
+_0804BB90:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804BBB6
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ adds r1, 0x9E
+ movs r2, 0x14
+ bl SendBlock
+ ldr r1, [r4]
+ adds r1, 0xBD
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804BBB6:
+ ldr r0, _0804BBC8
+ ldr r0, [r0]
+ adds r0, 0xBD
+ movs r1, 0
+ strb r1, [r0]
+_0804BBC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804BBC8: .4byte 0x03004828
+ thumb_func_end sub_804BB78
+
+ thumb_func_start sub_804BBCC
+sub_804BBCC: @ 804BBCC
+ push {lr}
+ bl sub_804C29C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804BBCC
+
+ thumb_func_start sub_804BBE8
+sub_804BBE8: @ 804BBE8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bls _0804BBF4
+ b _0804C0CA
+_0804BBF4:
+ lsls r0, 2
+ ldr r1, _0804BC00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804BC00: .4byte _0804BC04
+ .align 2, 0
+_0804BC04:
+ .4byte _0804BC24
+ .4byte _0804BCC4
+ .4byte _0804BD5C
+ .4byte _0804BDA4
+ .4byte _0804BE48
+ .4byte _0804BEF8
+ .4byte _0804BFA0
+ .4byte _0804C060
+_0804BC24:
+ ldr r0, _0804BCA0
+ movs r1, 0x10
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r3, _0804BCA4
+ ldr r4, _0804BCA8
+ movs r5, 0x98
+ lsls r5, 5
+ ldr r1, _0804BCAC
+ ldr r6, _0804BCB0
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804BC42:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804BC42
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0804BCB4
+ ldr r2, _0804BCB8
+ ldr r0, _0804BCAC
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804BCB0
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0804BCBC
+ ldr r2, [r0]
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0x8B
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0xB4
+ strh r0, [r1]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r4, 0xBA
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0xC
+ ldr r2, _0804BCC0
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0804C0CA
+ .align 2, 0
+_0804BCA0: .4byte gUnknown_0820C9F8
+_0804BCA4: .4byte gUnknown_0820CA98
+_0804BCA8: .4byte 0x06004000
+_0804BCAC: .4byte 0x040000d4
+_0804BCB0: .4byte 0x80000800
+_0804BCB4: .4byte gUnknown_0820F798
+_0804BCB8: .4byte 0x06009000
+_0804BCBC: .4byte 0x03004828
+_0804BCC0: .4byte 0x00005206
+_0804BCC4:
+ ldr r0, _0804BD3C
+ ldr r2, [r0]
+ movs r3, 0x89
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r0, r2, r4
+ movs r1, 0xAE
+ lsls r1, 1
+ strh r1, [r0]
+ ldr r0, _0804BD40
+ strh r1, [r0]
+ ldr r1, _0804BD44
+ ldr r2, _0804BD48
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804BD4C
+ ldr r2, _0804BD50
+ movs r3, 0x80
+ lsls r3, 5
+ adds r1, 0xCA
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r4, [r1, 0x8]
+ ldr r4, _0804BD54
+ movs r5, 0xC0
+ lsls r5, 19
+ movs r6, 0x98
+ lsls r6, 5
+ adds r7, r0, 0
+_0804BD10:
+ str r4, [r1]
+ str r5, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r3
+ adds r5, r3
+ subs r6, r3
+ cmp r6, r3
+ bhi _0804BD10
+ str r4, [r1]
+ str r5, [r1, 0x4]
+ lsrs r0, r6, 1
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _0804BD58
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _0804C0CA
+ .align 2, 0
+_0804BD3C: .4byte 0x03004828
+_0804BD40: .4byte 0x04000016
+_0804BD44: .4byte 0x0400000a
+_0804BD48: .4byte 0x00008502
+_0804BD4C: .4byte gUnknown_08210798
+_0804BD50: .4byte 0x06002800
+_0804BD54: .4byte gUnknown_0820CA98
+_0804BD58: .4byte 0x00001241
+_0804BD5C:
+ ldr r0, _0804BD8C
+ ldr r2, [r0]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r0, r2, r4
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r4, _0804BD90
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, _0804BD94
+ ldr r2, _0804BD98
+ ldr r0, _0804BD9C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804BDA0
+ b _0804C0C6
+ .align 2, 0
+_0804BD8C: .4byte 0x03004828
+_0804BD90: .4byte 0x00001241
+_0804BD94: .4byte gUnknown_08211798
+_0804BD98: .4byte 0x06002800
+_0804BD9C: .4byte 0x040000d4
+_0804BDA0: .4byte 0x80000400
+_0804BDA4:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x92
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804BE24
+ ldr r3, [r0]
+ movs r4, 0x82
+ lsls r4, 1
+ adds r1, r3, r4
+ movs r2, 0
+ movs r0, 0x40
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, r3, r4
+ strh r0, [r1]
+ adds r0, 0xCC
+ adds r1, r3, r0
+ movs r0, 0x78
+ strh r0, [r1]
+ adds r4, 0x8
+ adds r1, r3, r4
+ ldr r0, _0804BE28
+ strh r0, [r1]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r3, _0804BE2C
+ ldr r4, _0804BE30
+ movs r5, 0xD0
+ lsls r5, 5
+ ldr r2, _0804BE34
+ mov r12, r2
+ ldr r1, _0804BE38
+ ldr r6, _0804BE3C
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804BDF6:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804BDF6
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0804BE40
+ ldr r0, _0804BE38
+ mov r3, r12
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804BE44
+ b _0804C0C6
+ .align 2, 0
+_0804BE24: .4byte 0x03004828
+_0804BE28: .4byte 0x0000ffba
+_0804BE2C: .4byte gUnknown_0820DD98
+_0804BE30: .4byte 0x06004000
+_0804BE34: .4byte gUnknown_08211F98
+_0804BE38: .4byte 0x040000d4
+_0804BE3C: .4byte 0x80000800
+_0804BE40: .4byte 0x06009000
+_0804BE44: .4byte 0x80000080
+_0804BE48:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r4, _0804BED0
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0xC
+ ldr r2, _0804BED4
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804BED8
+ ldr r3, [r0]
+ movs r4, 0x82
+ lsls r4, 1
+ adds r1, r3, r4
+ movs r2, 0
+ movs r0, 0x40
+ strh r0, [r1]
+ adds r0, 0xC6
+ adds r1, r3, r0
+ movs r0, 0x5C
+ strh r0, [r1]
+ adds r4, 0x14
+ adds r1, r3, r4
+ movs r0, 0x20
+ strh r0, [r1]
+ adds r0, 0xFA
+ adds r1, r3, r0
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r1]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r3, _0804BEDC
+ ldr r4, _0804BEE0
+ movs r5, 0x81
+ lsls r5, 6
+ ldr r2, _0804BEE4
+ mov r12, r2
+ ldr r1, _0804BEE8
+ ldr r6, _0804BEEC
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804BEA4:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804BEA4
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0804BEF0
+ ldr r0, _0804BEE8
+ mov r3, r12
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804BEF4
+ b _0804C0C6
+ .align 2, 0
+_0804BED0: .4byte 0x00001441
+_0804BED4: .4byte 0x00001287
+_0804BED8: .4byte 0x03004828
+_0804BEDC: .4byte gUnknown_08213738
+_0804BEE0: .4byte 0x06004000
+_0804BEE4: .4byte gUnknown_08215778
+_0804BEE8: .4byte 0x040000d4
+_0804BEEC: .4byte 0x80000800
+_0804BEF0: .4byte 0x06009000
+_0804BEF4: .4byte 0x80000080
+_0804BEF8:
+ ldr r0, _0804BF78
+ ldr r2, [r0]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r0, r2, r4
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _0804BF7C
+ ldr r4, _0804BF80
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r0, _0804BF84
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0804BF88
+ ldr r4, _0804BF8C
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r4, 0
+ bl CpuSet
+ ldr r0, _0804BF90
+ movs r1, 0x70
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ movs r0, 0xE0
+ lsls r0, 7
+ adds r2, r0, 0
+ movs r1, 0xA0
+ lsls r1, 2
+_0804BF4C:
+ ldrh r0, [r4]
+ orrs r0, r2
+ strh r0, [r4]
+ adds r4, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804BF4C
+ ldr r1, _0804BF8C
+ ldr r2, _0804BF94
+ ldr r0, _0804BF98
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804BF9C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl Reset
+ b _0804C0CA
+ .align 2, 0
+_0804BF78: .4byte 0x03004828
+_0804BF7C: .4byte 0x0400000a
+_0804BF80: .4byte 0x00000502
+_0804BF84: .4byte gUnknown_08D00000
+_0804BF88: .4byte gUnknown_08D00524
+_0804BF8C: .4byte 0x02000000
+_0804BF90: .4byte gUnknown_08D004E0
+_0804BF94: .4byte 0x06002800
+_0804BF98: .4byte 0x040000d4
+_0804BF9C: .4byte 0x80000280
+_0804BFA0:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _0804C038
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0xC
+ ldr r3, _0804C03C
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0804C040
+ ldr r3, [r0]
+ movs r4, 0x82
+ lsls r4, 1
+ adds r1, r3, r4
+ movs r2, 0
+ movs r0, 0x40
+ strh r0, [r1]
+ adds r0, 0xC6
+ adds r1, r3, r0
+ movs r0, 0x5C
+ strh r0, [r1]
+ adds r4, 0x14
+ adds r1, r3, r4
+ adds r0, 0xA4
+ strh r0, [r1]
+ adds r0, 0x1A
+ adds r1, r3, r0
+ movs r0, 0x80
+ strh r0, [r1]
+ subs r4, 0xC
+ adds r1, r3, r4
+ movs r0, 0x78
+ strh r0, [r1]
+ adds r0, 0x96
+ adds r1, r3, r0
+ movs r0, 0x50
+ strh r0, [r1]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r3, _0804C044
+ ldr r4, _0804C048
+ movs r5, 0x81
+ lsls r5, 6
+ ldr r2, _0804C04C
+ mov r12, r2
+ ldr r1, _0804C050
+ ldr r6, _0804C054
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804C00A:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804C00A
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0804C058
+ ldr r0, _0804C050
+ mov r3, r12
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804C05C
+ b _0804C0C6
+ .align 2, 0
+_0804C038: .4byte 0x00001441
+_0804C03C: .4byte 0x00001287
+_0804C040: .4byte 0x03004828
+_0804C044: .4byte gUnknown_08213738
+_0804C048: .4byte 0x06004000
+_0804C04C: .4byte gUnknown_08215778
+_0804C050: .4byte 0x040000d4
+_0804C054: .4byte 0x80000800
+_0804C058: .4byte 0x06009000
+_0804C05C: .4byte 0x80000080
+_0804C060:
+ ldr r0, _0804C0D0
+ ldr r2, [r0]
+ movs r4, 0x8A
+ lsls r4, 1
+ adds r0, r2, r4
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0x8B
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _0804C0D4
+ ldr r4, _0804C0D8
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r0, _0804C0DC
+ movs r1, 0x10
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r3, _0804C0E0
+ ldr r4, _0804C0E4
+ movs r5, 0x98
+ lsls r5, 5
+ ldr r1, _0804C0E8
+ ldr r6, _0804C0EC
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804C09C:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804C09C
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0804C0F0
+ ldr r2, _0804C0F4
+ ldr r0, _0804C0E8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804C0EC
+_0804C0C6:
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+_0804C0CA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C0D0: .4byte 0x03004828
+_0804C0D4: .4byte 0x0400000c
+_0804C0D8: .4byte 0x00005206
+_0804C0DC: .4byte gUnknown_0820C9F8
+_0804C0E0: .4byte gUnknown_0820CA98
+_0804C0E4: .4byte 0x06004000
+_0804C0E8: .4byte 0x040000d4
+_0804C0EC: .4byte 0x80000800
+_0804C0F0: .4byte gUnknown_0820F798
+_0804C0F4: .4byte 0x06009000
+ thumb_func_end sub_804BBE8
+
+ thumb_func_start sub_804C0F8
+sub_804C0F8: @ 804C0F8
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804C130
+ ldr r0, _0804C128
+ ldr r2, [r0]
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _0804C12C
+ cmp r1, r0
+ bgt _0804C15A
+ adds r0, 0x5
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r2, r3
+ b _0804C154
+ .align 2, 0
+_0804C128: .4byte 0x03004828
+_0804C12C: .4byte 0x00000109
+_0804C130:
+ ldr r0, _0804C160
+ ldr r0, [r0]
+ mov r12, r0
+ movs r2, 0x87
+ lsls r2, 1
+ add r2, r12
+ ldrh r3, [r2]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ ble _0804C15A
+ subs r0, r3, 0x1
+ strh r0, [r2]
+ movs r1, 0x8E
+ lsls r1, 1
+ add r1, r12
+_0804C154:
+ ldrh r0, [r1]
+ adds r0, 0x40
+ strh r0, [r1]
+_0804C15A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C160: .4byte 0x03004828
+ thumb_func_end sub_804C0F8
+
+ thumb_func_start sub_804C164
+sub_804C164: @ 804C164
+ push {lr}
+ ldr r0, _0804C190
+ bl LoadSpriteSheet
+ ldr r0, _0804C194
+ bl LoadSpriteSheet
+ ldr r0, _0804C198
+ bl LoadSpriteSheet
+ ldr r0, _0804C19C
+ bl LoadSpriteSheet
+ ldr r0, _0804C1A0
+ bl LoadSpritePalette
+ ldr r0, _0804C1A4
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C190: .4byte gUnknown_082159A4
+_0804C194: .4byte gUnknown_082159F4
+_0804C198: .4byte gUnknown_08215A28
+_0804C19C: .4byte gUnknown_08215A78
+_0804C1A0: .4byte gUnknown_082159AC
+_0804C1A4: .4byte gUnknown_082159B4
+ thumb_func_end sub_804C164
+
+ thumb_func_start sub_804C1A8
+sub_804C1A8: @ 804C1A8
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r0, _0804C21C
+ ldr r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804C23C
+ bl GetMultiplayerId
+ lsls r0, 24
+ ldr r3, _0804C220
+ movs r2, 0x80
+ lsls r2, 17
+ eors r2, r0
+ lsrs r2, 24
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _0804C224
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r5, _0804C228
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x64
+ muls r0, r4
+ ldr r1, _0804C22C
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ ldr r0, _0804C230
+ mov r1, sp
+ bl StringCopy10
+ ldrb r0, [r5]
+ muls r0, r4
+ ldr r1, _0804C234
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ ldr r0, _0804C238
+ mov r1, sp
+ bl StringCopy10
+ b _0804C278
+ .align 2, 0
+_0804C21C: .4byte 0x03004828
+_0804C220: .4byte 0x020231cc
+_0804C224: .4byte 0x03002978
+_0804C228: .4byte 0x020297d8
+_0804C22C: .4byte 0x030045c0
+_0804C230: .4byte 0x020233cc
+_0804C234: .4byte 0x03004360
+_0804C238: .4byte 0x020232cc
+_0804C23C:
+ ldr r0, _0804C280
+ ldrh r0, [r0]
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r4, 2
+ ldr r0, _0804C284
+ adds r4, r0
+ ldr r0, _0804C288
+ adds r1, r4, 0
+ adds r1, 0x2B
+ bl StringCopy
+ ldr r0, _0804C28C
+ adds r1, r4, 0
+ bl StringCopy10
+ ldr r0, _0804C290
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0804C294
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ ldr r0, _0804C298
+ mov r1, sp
+ bl StringCopy10
+_0804C278:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C280: .4byte 0x0202e8cc
+_0804C284: .4byte gIngameTrades
+_0804C288: .4byte 0x020231cc
+_0804C28C: .4byte 0x020233cc
+_0804C290: .4byte 0x0202e8ce
+_0804C294: .4byte 0x03004360
+_0804C298: .4byte 0x020232cc
+ thumb_func_end sub_804C1A8
+
+ thumb_func_start sub_804C29C
+sub_804C29C: @ 804C29C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r1, _0804C2C0
+ ldr r0, [r1]
+ adds r0, 0xC4
+ ldrh r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0xC8
+ bls _0804C2B6
+ bl _0804D570
+_0804C2B6:
+ lsls r0, 2
+ ldr r1, _0804C2C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804C2C0: .4byte 0x03004828
+_0804C2C4: .4byte _0804C2C8
+ .align 2, 0
+_0804C2C8:
+ .4byte _0804C5EC
+ .4byte _0804C66C
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804C6C8
+ .4byte _0804C704
+ .4byte _0804C79C
+ .4byte _0804D570
+ .4byte _0804C824
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804C848
+ .4byte _0804C868
+ .4byte _0804C87A
+ .4byte _0804C89C
+ .4byte _0804C8F4
+ .4byte _0804C92C
+ .4byte _0804C978
+ .4byte _0804C9C8
+ .4byte _0804CA1C
+ .4byte _0804CAB4
+ .4byte _0804CAD8
+ .4byte _0804CB24
+ .4byte _0804CB70
+ .4byte _0804CBCC
+ .4byte _0804CC2C
+ .4byte _0804CC40
+ .4byte _0804CC54
+ .4byte _0804CC68
+ .4byte _0804CD94
+ .4byte _0804CE64
+ .4byte _0804CEEC
+ .4byte _0804CF68
+ .4byte _0804CF78
+ .4byte _0804CFA0
+ .4byte _0804CFFC
+ .4byte _0804D028
+ .4byte _0804D054
+ .4byte _0804D06A
+ .4byte _0804D0D4
+ .4byte _0804D570
+ .4byte _0804D0FC
+ .4byte _0804D13C
+ .4byte _0804D182
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D1A4
+ .4byte _0804D1C4
+ .4byte _0804D1D2
+ .4byte _0804D1F4
+ .4byte _0804D2A8
+ .4byte _0804D2E4
+ .4byte _0804D314
+ .4byte _0804D3C4
+ .4byte _0804D41C
+ .4byte _0804D48C
+ .4byte _0804D4A0
+ .4byte _0804D4A6
+ .4byte _0804D4CC
+ .4byte _0804D528
+ .4byte _0804D54C
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804D570
+ .4byte _0804CA54
+_0804C5EC:
+ ldr r3, _0804C65C
+ ldr r0, [r6]
+ adds r0, 0xB8
+ 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]
+ ldr r4, [r6]
+ adds r2, r4, 0
+ adds r2, 0xB8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _0804C660
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, _0804C664
+ movs r3, 0x90
+ lsls r3, 1
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x26]
+ adds r1, r4, 0
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl current_map_music_get
+ ldr r1, [r6]
+ movs r7, 0x92
+ lsls r7, 1
+ adds r1, r7
+ strh r0, [r1]
+ ldr r0, _0804C668
+ bl sub_8075474
+ bl _0804D570
+ .align 2, 0
+_0804C65C: .4byte 0x02020004
+_0804C660: .4byte 0x0000ff4c
+_0804C664: .4byte gMonFrontPicCoords
+_0804C668: .4byte 0x00000179
+_0804C66C:
+ ldr r4, [r6]
+ movs r0, 0x8B
+ lsls r0, 1
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ ble _0804C6A0
+ ldr r2, _0804C69C
+ adds r0, r4, 0
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x3
+ strh r1, [r0, 0x24]
+ ldrh r0, [r5]
+ subs r0, 0x3
+ strh r0, [r5]
+ bl _0804D570
+ .align 2, 0
+_0804C69C: .4byte 0x02020004
+_0804C6A0:
+ ldr r2, _0804C6C4
+ adds r0, r4, 0
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r5]
+ adds r1, r4, 0
+ adds r1, 0xC4
+ movs r0, 0xA
+ strh r0, [r1]
+ bl _0804D570
+ .align 2, 0
+_0804C6C4: .4byte 0x02020004
+_0804C6C8:
+ ldr r5, _0804C6F8
+ ldr r1, _0804C6FC
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r4, _0804C700
+ ldr r1, [r4]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0x2
+ bl sub_8003460
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0xC4
+ movs r3, 0
+ movs r0, 0xB
+ bl _0804D40C
+ .align 2, 0
+_0804C6F8: .4byte 0x020234cc
+_0804C6FC: .4byte gUnknown_0842C60B
+_0804C700: .4byte 0x03004828
+_0804C704:
+ ldr r2, [r6]
+ adds r1, r2, 0
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x50
+ beq _0804C718
+ bl _0804D570
+_0804C718:
+ adds r0, r2, 0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ ldr r2, _0804C78C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ movs r2, 0x2
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0x14
+ str r2, [sp, 0x8]
+ ldr r2, _0804C790
+ str r2, [sp, 0xC]
+ movs r2, 0x78
+ movs r3, 0x20
+ bl sub_8047580
+ ldr r1, [r6]
+ movs r2, 0x81
+ lsls r2, 1
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r2, r0, 0
+ adds r2, 0xC4
+ ldrh r1, [r2]
+ adds r1, 0x1
+ strh r1, [r2]
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ ldr r4, _0804C794
+ ldr r1, _0804C798
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8003460
+ bl _0804D570
+ .align 2, 0
+_0804C78C: .4byte 0x02020004
+_0804C790: .4byte 0x000fffff
+_0804C794: .4byte 0x020234cc
+_0804C798: .4byte gUnknown_0842C622
+_0804C79C:
+ ldr r7, _0804C810
+ ldr r2, [r6]
+ movs r5, 0x81
+ lsls r5, 1
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r7, 0
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r0, _0804C814
+ cmp r1, r0
+ beq _0804C7C0
+ bl _0804D570
+_0804C7C0:
+ adds r0, r2, 0x4
+ bl sub_80035AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0804C7D2
+ bl _0804D570
+_0804C7D2:
+ ldr r0, _0804C818
+ movs r1, 0x78
+ movs r2, 0x20
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ ldr r2, _0804C81C
+ adds r1, r2
+ strb r0, [r1]
+ ldr r3, [r6]
+ adds r2, r3, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0804C820
+ str r1, [r0]
+ adds r3, r5
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ bl DestroySprite
+ ldr r1, [r6]
+ bl _0804D53C
+ .align 2, 0
+_0804C810: .4byte 0x02020004
+_0804C814: .4byte SpriteCallbackDummy
+_0804C818: .4byte gSpriteTemplate_821595C
+_0804C81C: .4byte 0x00000103
+_0804C820: .4byte sub_804D738
+_0804C824:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0804C844
+ ldr r0, [r0]
+ adds r0, 0xC4
+ movs r1, 0x14
+ strh r1, [r0]
+ bl _0804D570
+ .align 2, 0
+_0804C844: .4byte 0x03004828
+_0804C848:
+ ldr r0, _0804C864
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804C858
+ bl _0804D570
+_0804C858:
+ movs r0, 0x4
+ bl sub_804BBE8
+ bl _0804D538
+ .align 2, 0
+_0804C864: .4byte 0x0202f388
+_0804C868:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl _0804D534
+_0804C87A:
+ ldr r0, _0804C898
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804C88A
+ bl _0804D570
+_0804C88A:
+ ldr r0, [r6]
+ adds r0, 0xC4
+ movs r1, 0x17
+ strh r1, [r0]
+ bl _0804D570
+ .align 2, 0
+_0804C898: .4byte 0x0202f388
+_0804C89C:
+ ldr r4, _0804C8B8
+ ldr r0, [r4]
+ movs r3, 0x8D
+ lsls r3, 1
+ adds r2, r0, r3
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bls _0804C8BC
+ adds r0, r1, 0
+ subs r0, 0x34
+ strh r0, [r2]
+ b _0804C8E0
+ .align 2, 0
+_0804C8B8: .4byte 0x03004828
+_0804C8BC:
+ movs r0, 0x1
+ bl sub_804BBE8
+ ldr r3, [r4]
+ movs r7, 0x8D
+ lsls r7, 1
+ adds r1, r3, r7
+ movs r2, 0
+ movs r0, 0x80
+ strh r0, [r1]
+ adds r1, r3, 0
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0xC0
+ str r2, [r0]
+_0804C8E0:
+ ldr r0, _0804C8F0
+ ldr r4, [r0]
+ movs r1, 0x8D
+ lsls r1, 1
+ adds r0, r4, r1
+ bl _0804D16E
+ .align 2, 0
+_0804C8F0: .4byte 0x03004828
+_0804C8F4:
+ ldr r1, [r6]
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ bhi _0804C906
+ bl _0804D570
+_0804C906:
+ movs r0, 0x3
+ bl sub_804BBE8
+ bl sub_804B128
+ ldr r0, _0804C928
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0xBB
+ strb r0, [r1]
+ ldr r1, [r6]
+ bl _0804D53C
+ .align 2, 0
+_0804C928: .4byte gSpriteTemplate_8215A80
+_0804C92C:
+ ldr r2, _0804C96C
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ blt _0804C94C
+ bl _0804D570
+_0804C94C:
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r1, _0804C970
+ movs r3, 0xC8
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r7, _0804C974
+ adds r0, r7, 0
+ strh r0, [r1]
+ ldr r1, [r6]
+ bl _0804D53C
+ .align 2, 0
+_0804C96C: .4byte 0x02020004
+_0804C970: .4byte 0x04000050
+_0804C974: .4byte 0x0000040c
+_0804C978:
+ ldr r2, [r6]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ subs r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x9E
+ lsls r0, 17
+ cmp r1, r0
+ bne _0804C99A
+ adds r1, r2, 0
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0804C99A:
+ ldr r0, [r6]
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ beq _0804C9AE
+ bl _0804D570
+_0804C9AE:
+ ldr r0, _0804C9C4
+ movs r1, 0x80
+ movs r2, 0x41
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0xBC
+ strb r0, [r1]
+ bl _0804D570
+ .align 2, 0
+_0804C9C4: .4byte gSpriteTemplate_8215A30
+_0804C9C8:
+ ldr r0, _0804CA0C
+ movs r1, 0x80
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ ldr r4, _0804CA10
+ ldr r1, [r4]
+ adds r1, 0xBA
+ strb r0, [r1]
+ ldr r0, _0804CA14
+ movs r1, 0x80
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r1, 0xBB
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804CA18
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ bl _0804D53C
+ .align 2, 0
+_0804CA0C: .4byte gSpriteTemplate_82159BC
+_0804CA10: .4byte 0x03004828
+_0804CA14: .4byte gSpriteTemplate_82159FC
+_0804CA18: .4byte 0x02020004
+_0804CA1C:
+ ldr r2, [r6]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r2, r3
+ ldrh r0, [r1]
+ subs r0, 0x2
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA6
+ bne _0804CA3A
+ adds r1, r2, 0
+ adds r1, 0xC4
+ movs r0, 0xC8
+ strh r0, [r1]
+_0804CA3A:
+ movs r0, 0
+ bl sub_804C0F8
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r7, _0804CA50
+ adds r0, r7, 0
+ strh r0, [r1]
+ bl _0804D570
+ .align 2, 0
+_0804CA50: .4byte 0x00001641
+_0804CA54:
+ ldr r4, _0804CAB0
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x2
+ strh r1, [r0, 0x22]
+ adds r2, 0xBB
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x2
+ strh r1, [r0, 0x22]
+ movs r0, 0
+ bl sub_804C0F8
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _0804CAA4
+ bl _0804D570
+_0804CAA4:
+ adds r1, r2, 0
+ adds r1, 0xC4
+ movs r0, 0x1D
+ strh r0, [r1]
+ bl _0804D570
+ .align 2, 0
+_0804CAB0: .4byte 0x02020004
+_0804CAB4:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0804CAD4
+ ldr r0, [r0]
+ adds r0, 0xC4
+ movs r1, 0x1E
+ strh r1, [r0]
+ bl _0804D570
+ .align 2, 0
+_0804CAD4: .4byte 0x03004828
+_0804CAD8:
+ ldr r0, _0804CB1C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804CAE8
+ bl _0804D570
+_0804CAE8:
+ ldr r0, [r6]
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804CB20
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x2
+ bl sub_804BBE8
+ ldr r1, [r6]
+ bl _0804D53C
+ .align 2, 0
+_0804CB1C: .4byte 0x0202f388
+_0804CB20: .4byte 0x02020004
+_0804CB24:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r5, _0804CB68
+ adds r0, r5, 0
+ movs r1, 0x6F
+ movs r2, 0xAA
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _0804CB6C
+ ldr r1, [r4]
+ adds r1, 0xBA
+ strb r0, [r1]
+ movs r2, 0xA
+ negs r2, r2
+ adds r0, r5, 0
+ movs r1, 0x81
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r1, 0xBB
+ strb r0, [r1]
+ ldr r1, [r4]
+ bl _0804D53C
+ .align 2, 0
+_0804CB68: .4byte gSpriteTemplate_82159FC
+_0804CB6C: .4byte 0x03004828
+_0804CB70:
+ ldr r0, _0804CBC0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804CB8E
+ movs r0, 0x2E
+ bl audio_play
+ ldr r0, _0804CBC4
+ ldr r1, [r0]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0804CB8E:
+ ldr r3, _0804CBC8
+ ldr r0, _0804CBC4
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+ adds r2, 0xBB
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ bl _0804D570
+ .align 2, 0
+_0804CBC0: .4byte 0x0202f388
+_0804CBC4: .4byte 0x03004828
+_0804CBC8: .4byte 0x02020004
+_0804CBCC:
+ ldr r5, _0804CC28
+ ldr r4, [r6]
+ adds r2, r4, 0
+ adds r2, 0xBA
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+ adds r6, r4, 0
+ adds r6, 0xBB
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ movs r7, 0x26
+ ldrsh r1, [r3, r7]
+ movs r0, 0x5A
+ negs r0, r0
+ cmp r1, r0
+ ble _0804CC12
+ bl _0804D570
+_0804CC12:
+ movs r2, 0x1
+ strh r2, [r3, 0x30]
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x30]
+ adds r1, r4, 0
+ bl _0804D53C
+ .align 2, 0
+_0804CC28: .4byte 0x02020004
+_0804CC2C:
+ ldr r2, _0804CC3C
+ movs r0, 0x1
+ movs r1, 0x10
+ bl BlendPalettes
+ bl _0804D538
+ .align 2, 0
+_0804CC3C: .4byte 0x0000ffff
+_0804CC40:
+ ldr r2, _0804CC50
+ movs r0, 0x1
+ movs r1, 0
+ bl BlendPalettes
+ bl _0804D538
+ .align 2, 0
+_0804CC50: .4byte 0x0000ffff
+_0804CC54:
+ ldr r2, _0804CC64
+ movs r0, 0x1
+ movs r1, 0x10
+ bl BlendPalettes
+ bl _0804D538
+ .align 2, 0
+_0804CC64: .4byte 0x0000ffff
+_0804CC68:
+ ldr r5, _0804CCD8
+ ldr r0, [r5]
+ movs r1, 0x90
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804CCE4
+ ldr r4, _0804CCDC
+ ldr r2, [r5]
+ adds r2, 0xB8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0804CCE0
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ b _0804CCFA
+ .align 2, 0
+_0804CCD8: .4byte 0x03004828
+_0804CCDC: .4byte 0x02020004
+_0804CCE0: .4byte gUnknown_08215AC0
+_0804CCE4:
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804CD88
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0804CCFA:
+ ldr r5, _0804CD8C
+ ldr r0, [r5]
+ adds r0, 0xB9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804CD88
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r2, [r5]
+ adds r3, r2, 0
+ adds r3, 0xB8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x3C
+ strh r1, [r0, 0x20]
+ adds r2, 0xB9
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xB4
+ strh r1, [r0, 0x20]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xC0
+ strh r1, [r0, 0x22]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0804CD90
+ strh r1, [r0, 0x22]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0xB9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r1, [r5]
+ bl _0804D53C
+ .align 2, 0
+_0804CD88: .4byte 0x02020004
+_0804CD8C: .4byte 0x03004828
+_0804CD90: .4byte 0x0000ffe0
+_0804CD94:
+ ldr r4, _0804CE5C
+ ldr r2, [r6]
+ adds r3, r2, 0
+ adds r3, 0xB8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ movs r5, 0
+ strh r1, [r0, 0x26]
+ adds r2, 0xB9
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x26]
+ adds r0, 0xA3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0804CDDC
+ movs r0, 0x2D
+ bl audio_play
+_0804CDDC:
+ ldr r2, [r6]
+ adds r3, r2, 0
+ adds r3, 0xB8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r7, 0x26
+ ldrsh r1, [r0, r7]
+ movs r0, 0xDE
+ negs r0, r0
+ cmp r1, r0
+ blt _0804CDFA
+ b _0804D570
+_0804CDFA:
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r5, [r0, 0x30]
+ adds r0, r2, 0
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r5, [r0, 0x30]
+ adds r1, r2, 0
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ adds r0, 0xB9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, _0804CE60
+ movs r0, 0x1
+ movs r1, 0
+ bl BlendPalettes
+ b _0804D570
+ .align 2, 0
+_0804CE5C: .4byte 0x02020004
+_0804CE60: .4byte 0x0000ffff
+_0804CE64:
+ ldr r4, _0804CEE8
+ ldr r2, [r6]
+ adds r3, r2, 0
+ adds r3, 0xBA
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+ adds r2, 0xBB
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0x26
+ ldrsh r1, [r0, r2]
+ movs r0, 0xDE
+ negs r0, r0
+ cmp r1, r0
+ ble _0804CEA6
+ b _0804D570
+_0804CEA6:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0xC4
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0xBA
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ b _0804D570
+ .align 2, 0
+_0804CEE8: .4byte 0x02020004
+_0804CEEC:
+ ldr r0, _0804CF58
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804CEFA
+ b _0804D570
+_0804CEFA:
+ ldr r1, [r6]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_804BBE8
+ ldr r0, [r6]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3
+ movs r1, 0xA6
+ strh r1, [r0]
+ ldr r0, _0804CF5C
+ movs r4, 0x14
+ negs r4, r4
+ movs r1, 0x80
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0xBA
+ strb r0, [r1]
+ ldr r0, _0804CF60
+ movs r1, 0x80
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0xBB
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804CF64
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _0804D570
+ .align 2, 0
+_0804CF58: .4byte 0x0202f388
+_0804CF5C: .4byte gSpriteTemplate_82159BC
+_0804CF60: .4byte gSpriteTemplate_82159FC
+_0804CF64: .4byte 0x02020004
+_0804CF68:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ b _0804D534
+_0804CF78:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r7, _0804CF98
+ adds r0, r7, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_804C0F8
+ ldr r0, _0804CF9C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804CF96
+ b _0804D570
+_0804CF96:
+ b _0804D538
+ .align 2, 0
+_0804CF98: .4byte 0x00001641
+_0804CF9C: .4byte 0x0202f388
+_0804CFA0:
+ movs r0, 0x1
+ bl sub_804C0F8
+ ldr r2, _0804CFF4
+ ldr r0, _0804CFF8
+ ldr r3, [r0]
+ adds r4, r3, 0
+ adds r4, 0xBA
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ adds r0, r3, 0
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ strh r1, [r0, 0x26]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x26
+ ldrsh r1, [r0, r2]
+ movs r7, 0x22
+ ldrsh r0, [r0, r7]
+ adds r1, r0
+ cmp r1, 0x40
+ beq _0804CFEE
+ b _0804D570
+_0804CFEE:
+ adds r1, r3, 0
+ b _0804D53C
+ .align 2, 0
+_0804CFF4: .4byte 0x02020004
+_0804CFF8: .4byte 0x03004828
+_0804CFFC:
+ movs r0, 0x1
+ bl sub_804C0F8
+ ldr r0, _0804D024
+ ldr r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ adds r0, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x9E
+ lsls r3, 1
+ cmp r0, r3
+ bgt _0804D020
+ b _0804D570
+_0804D020:
+ strh r3, [r2]
+ b _0804D53C
+ .align 2, 0
+_0804D024: .4byte 0x03004828
+_0804D028:
+ ldr r0, [r6]
+ adds r0, 0xBA
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804D050
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ b _0804D400
+ .align 2, 0
+_0804D050: .4byte 0x02020004
+_0804D054:
+ ldr r2, [r6]
+ adds r1, r2, 0
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xA
+ beq _0804D066
+ b _0804D570
+_0804D066:
+ adds r1, 0x4
+ b _0804D53E
+_0804D06A:
+ ldr r1, [r6]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r2, r1, r4
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0xAE
+ lsls r3, 1
+ cmp r0, r3
+ ble _0804D08E
+ strh r3, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0804D08E:
+ ldr r0, [r6]
+ adds r0, r4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ bne _0804D0B0
+ ldr r0, _0804D0C8
+ movs r1, 0x80
+ movs r2, 0x41
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0xBC
+ strb r0, [r1]
+_0804D0B0:
+ ldr r2, _0804D0CC
+ ldr r0, [r6]
+ adds r0, 0xBC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0804D0D0
+ str r1, [r0]
+ b _0804D570
+ .align 2, 0
+_0804D0C8: .4byte gSpriteTemplate_8215A30
+_0804D0CC: .4byte 0x02020004
+_0804D0D0: .4byte sub_804B0E0
+_0804D0D4:
+ ldr r0, _0804D0F4
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, _0804D0F8
+ ldr r1, [r2]
+ adds r1, 0xBB
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0xC4
+ movs r1, 0x32
+ strh r1, [r0]
+ b _0804D570
+ .align 2, 0
+_0804D0F4: .4byte gSpriteTemplate_8215A80
+_0804D0F8: .4byte 0x03004828
+_0804D0FC:
+ ldr r2, _0804D138
+ ldr r0, [r6]
+ adds r0, 0xBB
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ blt _0804D11A
+ b _0804D570
+_0804D11A:
+ adds r0, r1, 0
+ bl DestroySprite
+ movs r0, 0x6
+ bl sub_804BBE8
+ ldr r1, [r6]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x9F
+ bl audio_play
+ b _0804D570
+ .align 2, 0
+_0804D138: .4byte 0x02020004
+_0804D13C:
+ ldr r1, [r6]
+ movs r3, 0x8D
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrh r3, [r2]
+ ldr r0, _0804D154
+ cmp r3, r0
+ bhi _0804D158
+ adds r0, r3, 0
+ adds r0, 0x34
+ strh r0, [r2]
+ b _0804D166
+ .align 2, 0
+_0804D154: .4byte 0x000003ff
+_0804D158:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0804D166:
+ ldr r4, [r6]
+ movs r7, 0x8D
+ lsls r7, 1
+ adds r0, r4, r7
+_0804D16E:
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 8
+ bl __divsi3
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r1, r4, r2
+ strh r0, [r1]
+ b _0804D570
+_0804D182:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0804D1A0
+ ldr r0, [r0]
+ adds r0, 0xC4
+ movs r1, 0x3C
+ strh r1, [r0]
+ b _0804D570
+ .align 2, 0
+_0804D1A0: .4byte 0x03004828
+_0804D1A4:
+ ldr r0, _0804D1C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804D1B2
+ b _0804D570
+_0804D1B2:
+ movs r0, 0x5
+ bl sub_804BBE8
+ movs r0, 0x7
+ bl sub_804BBE8
+ b _0804D538
+ .align 2, 0
+_0804D1C0: .4byte 0x0202f388
+_0804D1C4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ b _0804D534
+_0804D1D2:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r3, 0xA2
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0804D1F0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804D1EC
+ b _0804D570
+_0804D1EC:
+ ldr r1, [r6]
+ b _0804D53C
+ .align 2, 0
+_0804D1F0: .4byte 0x0202f388
+_0804D1F4:
+ ldr r0, _0804D290
+ movs r2, 0x8
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0
+ bl CreateSprite
+ ldr r6, _0804D294
+ ldr r1, [r6]
+ ldr r5, _0804D298
+ adds r1, r5
+ movs r7, 0
+ mov r8, r7
+ strb r0, [r1]
+ ldr r4, _0804D29C
+ ldr r2, [r6]
+ adds r2, r5
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x4A
+ strh r1, [r0, 0x34]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0804D2A0
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ ldr r2, _0804D2A4
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0xC4
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0xC0
+ mov r0, r8
+ str r0, [r1]
+ b _0804D570
+ .align 2, 0
+_0804D290: .4byte gSpriteTemplate_821595C
+_0804D294: .4byte 0x03004828
+_0804D298: .4byte 0x00000103
+_0804D29C: .4byte 0x02020004
+_0804D2A0: .4byte sub_804D80C
+_0804D2A4: .4byte 0x0000ffff
+_0804D2A8:
+ ldr r2, _0804D2D8
+ ldr r0, [r6]
+ ldr r1, _0804D2DC
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ ldr r1, _0804D2E0
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, [r6]
+ b _0804D53C
+ .align 2, 0
+_0804D2D8: .4byte 0x02020004
+_0804D2DC: .4byte 0x00000103
+_0804D2E0: .4byte 0x0000ffff
+_0804D2E4:
+ ldr r2, _0804D308
+ ldr r3, [r6]
+ ldr r7, _0804D30C
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0804D310
+ cmp r1, r0
+ beq _0804D302
+ b _0804D570
+_0804D302:
+ adds r1, r3, 0
+ b _0804D53C
+ .align 2, 0
+_0804D308: .4byte 0x02020004
+_0804D30C: .4byte 0x00000103
+_0804D310: .4byte SpriteCallbackDummy
+_0804D314:
+ ldr r4, _0804D3B4
+ ldr r0, [r6]
+ mov r8, r0
+ mov r5, r8
+ adds r5, 0xB9
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _0804D3B8
+ movs r0, 0x91
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x3C
+ strh r0, [r1, 0x22]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x24]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x26]
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ movs r2, 0x2
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0x14
+ str r2, [sp, 0x8]
+ ldr r2, _0804D3BC
+ str r2, [sp, 0xC]
+ movs r2, 0x78
+ movs r3, 0x54
+ bl AddTextPrinterForMessage
+ ldr r0, [r6]
+ ldr r5, _0804D3C0
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, [r6]
+ b _0804D53C
+ .align 2, 0
+_0804D3B4: .4byte 0x02020004
+_0804D3B8: .4byte gMonFrontPicCoords
+_0804D3BC: .4byte 0x000fffff
+_0804D3C0: .4byte 0x00000103
+_0804D3C4:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ ldr r4, _0804D414
+ ldr r1, _0804D418
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8003460
+_0804D400:
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0xC4
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+_0804D40C:
+ strh r0, [r2]
+ adds r1, 0xC0
+ str r3, [r1]
+ b _0804D570
+ .align 2, 0
+_0804D414: .4byte 0x020234cc
+_0804D418: .4byte gUnknown_0842C62F
+_0804D41C:
+ ldr r1, [r6]
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x4
+ bne _0804D430
+ ldr r0, _0804D480
+ bl fanfare_play
+_0804D430:
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xC0
+ ldr r0, [r0]
+ cmp r0, 0xF0
+ beq _0804D43E
+ b _0804D570
+_0804D43E:
+ adds r1, r2, 0
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r1]
+ adds r0, r2, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ ldr r4, _0804D484
+ ldr r1, _0804D488
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8003460
+ ldr r0, [r6]
+ adds r0, 0xC0
+ str r5, [r0]
+ b _0804D570
+ .align 2, 0
+_0804D480: .4byte 0x00000173
+_0804D484: .4byte 0x020234cc
+_0804D488: .4byte gUnknown_0842C640
+_0804D48C:
+ ldr r2, [r6]
+ adds r1, r2, 0
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bne _0804D570
+ adds r1, 0x4
+ b _0804D53E
+_0804D4A0:
+ bl sub_804E1DC
+ b _0804D538
+_0804D4A6:
+ ldr r2, [r6]
+ movs r3, 0x8F
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804D4B8
+ movs r0, 0x1
+ b _0804D572
+_0804D4B8:
+ ldr r0, _0804D4C8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804D570
+ adds r1, r2, 0
+ b _0804D53C
+ .align 2, 0
+_0804D4C8: .4byte 0x03001770
+_0804D4CC:
+ ldr r0, _0804D510
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_804BA94
+ ldr r1, _0804D514
+ ldr r0, _0804D518
+ str r0, [r1]
+ ldr r7, _0804D51C
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0804D520
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _0804D538
+ ldrb r3, [r7]
+ adds r0, r3, 0
+ muls r0, r6
+ adds r0, r5
+ ldr r1, _0804D524
+ ldr r1, [r1]
+ adds r1, 0xB9
+ ldrb r2, [r1]
+ adds r1, r4, 0
+ bl sub_81120E4
+ b _0804D538
+ .align 2, 0
+_0804D510: .4byte 0x0202e8ce
+_0804D514: .4byte 0x03005e94
+_0804D518: .4byte sub_804BBCC
+_0804D51C: .4byte 0x020297d8
+_0804D520: .4byte 0x03004360
+_0804D524: .4byte 0x03004828
+_0804D528:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+_0804D534:
+ bl BeginNormalPaletteFade
+_0804D538:
+ ldr r0, _0804D548
+ ldr r1, [r0]
+_0804D53C:
+ adds r1, 0xC4
+_0804D53E:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0804D570
+ .align 2, 0
+_0804D548: .4byte 0x03004828
+_0804D54C:
+ ldr r0, _0804D580
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804D570
+ ldr r0, [r6]
+ movs r7, 0x92
+ lsls r7, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ bl sub_8075474
+ ldr r0, _0804D584
+ bl SetMainCallback2
+ bl sub_804D8E4
+_0804D570:
+ movs r0, 0
+_0804D572:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804D580: .4byte 0x0202f388
+_0804D584: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_804C29C
+
+ thumb_func_start sub_804D588
+sub_804D588: @ 804D588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0804D5A0
+ ldr r2, _0804D5A4
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0804D5A8
+ cmp r0, 0x4
+ beq _0804D5B8
+ b _0804D614
+ .align 2, 0
+_0804D5A0: .4byte 0x03001770
+_0804D5A4: .4byte 0x0000043c
+_0804D5A8:
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r1, _0804D5B4
+ movs r0, 0x1
+ b _0804D612
+ .align 2, 0
+_0804D5B4: .4byte 0x03001bb4
+_0804D5B8:
+ ldr r0, _0804D5F4
+ ldr r1, _0804D5F8
+ mov r8, r1
+ str r1, [r0]
+ ldr r7, _0804D5FC
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0804D600
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _0804D608
+ ldrb r3, [r7]
+ adds r0, r3, 0
+ muls r0, r6
+ adds r0, r5
+ ldr r1, _0804D604
+ ldr r1, [r1]
+ adds r1, 0xB9
+ ldrb r2, [r1]
+ adds r1, r4, 0
+ bl sub_81120E4
+ b _0804D60E
+ .align 2, 0
+_0804D5F4: .4byte 0x03005e94
+_0804D5F8: .4byte sub_804DC88
+_0804D5FC: .4byte 0x020297d8
+_0804D600: .4byte 0x03004360
+_0804D604: .4byte 0x03004828
+_0804D608:
+ mov r0, r8
+ bl SetMainCallback2
+_0804D60E:
+ ldr r1, _0804D638
+ movs r0, 0xFF
+_0804D612:
+ strb r0, [r1]
+_0804D614:
+ bl HasLinkErrorOccurred
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804D622
+ bl RunTasks
+_0804D622:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D638: .4byte 0x020297d8
+ thumb_func_end sub_804D588
+
+ thumb_func_start sub_804D63C
+sub_804D63C: @ 804D63C
+ push {r4-r6,lr}
+ bl sub_804B2B0
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0x1
+ adds r0, r5, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _0804D67A
+ ldr r4, _0804D6A8
+ ldrh r1, [r4]
+ ldr r0, _0804D6AC
+ cmp r1, r0
+ bne _0804D664
+ ldr r0, _0804D6B0
+ bl SetMainCallback2
+_0804D664:
+ ldrh r1, [r4]
+ ldr r0, _0804D6B4
+ cmp r1, r0
+ bne _0804D674
+ ldr r0, _0804D6B8
+ ldr r0, [r0]
+ adds r0, 0x9C
+ strb r6, [r0]
+_0804D674:
+ movs r0, 0
+ bl ResetBlockReceivedFlag
+_0804D67A:
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _0804D6A2
+ ldr r0, _0804D6A8
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0804D6B4
+ cmp r1, r0
+ bne _0804D69C
+ ldr r0, _0804D6B8
+ ldr r0, [r0]
+ adds r0, 0x9D
+ movs r1, 0x1
+ strb r1, [r0]
+_0804D69C:
+ movs r0, 0x1
+ bl ResetBlockReceivedFlag
+_0804D6A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D6A8: .4byte 0x03002b80
+_0804D6AC: .4byte 0x0000dcba
+_0804D6B0: .4byte sub_804D588
+_0804D6B4: .4byte 0x0000abcd
+_0804D6B8: .4byte 0x03004828
+ thumb_func_end sub_804D63C
+
+ thumb_func_start sub_804D6BC
+sub_804D6BC: @ 804D6BC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ ldrh r4, [r5, 0x22]
+ adds r4, r0
+ strh r4, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ ldrh r2, [r5, 0x38]
+ adds r0, r2
+ strh r0, [r5, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r5, 0x20]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0x4C
+ ble _0804D70A
+ movs r0, 0x4C
+ strh r0, [r5, 0x22]
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ muls r0, r1
+ negs r0, r0
+ movs r1, 0x64
+ bl __divsi3
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+_0804D70A:
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x78
+ bne _0804D716
+ movs r0, 0
+ strh r0, [r5, 0x30]
+_0804D716:
+ ldrh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x2E]
+ adds r0, r2
+ strh r0, [r5, 0x2E]
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bne _0804D72E
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+ ldr r0, _0804D734
+ str r0, [r5, 0x1C]
+_0804D72E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D734: .4byte SpriteCallbackDummy
+ thumb_func_end sub_804D6BC
+
+ thumb_func_start sub_804D738
+sub_804D738: @ 804D738
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _0804D7A0
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x16
+ bne _0804D760
+ movs r0, 0x38
+ bl audio_play
+_0804D760:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2C
+ bne _0804D796
+ movs r0, 0x8C
+ bl audio_play
+ ldr r0, _0804D7A4
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ ldr r2, _0804D7A8
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0804D796:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D7A0: .4byte gUnknown_08215BA0
+_0804D7A4: .4byte sub_804D7AC
+_0804D7A8: .4byte 0x0000ffff
+ thumb_func_end sub_804D738
+
+ thumb_func_start sub_804D7AC
+sub_804D7AC: @ 804D7AC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ bne _0804D7C0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0804D7C0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0804D7FE
+ ldr r1, _0804D804
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ bne _0804D7FE
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r0, _0804D808
+ ldr r0, [r0]
+ adds r0, 0xC4
+ movs r1, 0xE
+ strh r1, [r0]
+_0804D7FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D804: .4byte gUnknown_08215BA0
+_0804D808: .4byte 0x03004828
+ thumb_func_end sub_804D7AC
+
+ thumb_func_start sub_804D80C
+sub_804D80C: @ 804D80C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0804D83C
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x4
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _0804D88C
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x16
+ strh r0, [r4, 0x2E]
+ movs r0, 0x38
+ bl audio_play
+ b _0804D88C
+_0804D83C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x42
+ bne _0804D84A
+ movs r0, 0x39
+ bl audio_play
+_0804D84A:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5C
+ bne _0804D858
+ movs r0, 0x3A
+ bl audio_play
+_0804D858:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x6B
+ bne _0804D866
+ movs r0, 0x3B
+ bl audio_play
+_0804D866:
+ ldr r1, _0804D894
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6C
+ bne _0804D88C
+ ldr r0, _0804D898
+ str r0, [r4, 0x1C]
+_0804D88C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D894: .4byte gUnknown_08215BA0
+_0804D898: .4byte SpriteCallbackDummy
+ thumb_func_end sub_804D80C
+
+ thumb_func_start sub_804D89C
+sub_804D89C: @ 804D89C
+ push {r4-r6,lr}
+ ldr r0, _0804D8D0
+ ldrh r0, [r0]
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r4, 2
+ ldr r0, _0804D8D4
+ adds r4, r0
+ ldr r0, _0804D8D8
+ ldrh r1, [r4, 0x38]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _0804D8DC
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _0804D8E0
+ ldrh r1, [r4, 0xC]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldrh r0, [r4, 0x38]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804D8D0: .4byte 0x0202e8cc
+_0804D8D4: .4byte gIngameTrades
+_0804D8D8: .4byte 0x020231cc
+_0804D8DC: .4byte gSpeciesNames
+_0804D8E0: .4byte 0x020232cc
+ thumb_func_end sub_804D89C
+
+ thumb_func_start sub_804D8E4
+sub_804D8E4: @ 804D8E4
+ push {r4,lr}
+ sub sp, 0x20
+ ldr r0, _0804D92C
+ ldrh r0, [r0]
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r4, 2
+ ldr r0, _0804D930
+ adds r4, r0
+ ldr r0, _0804D934
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0804D938
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl PokemonGetField
+ ldr r0, _0804D93C
+ mov r1, sp
+ bl StringCopy10
+ ldr r0, _0804D940
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _0804D944
+ adds r1, r2
+ bl StringCopy
+ add sp, 0x20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D92C: .4byte 0x0202e8cc
+_0804D930: .4byte gIngameTrades
+_0804D934: .4byte 0x0202e8ce
+_0804D938: .4byte 0x03004360
+_0804D93C: .4byte 0x020231cc
+_0804D940: .4byte 0x020232cc
+_0804D944: .4byte gSpeciesNames
+ thumb_func_end sub_804D8E4
+
+ thumb_func_start sub_804D948
+sub_804D948: @ 804D948
+ push {r4-r7,lr}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 4
+ subs r2, r1
+ lsls r2, 2
+ ldr r1, _0804DAA4
+ adds r5, r2, r1
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0804DAA8
+ adds r0, r1
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ add r4, sp, 0x34
+ movs r0, 0xFE
+ strb r0, [r4]
+ ldr r6, _0804DAAC
+ ldrh r1, [r5, 0xC]
+ movs r3, 0x1
+ str r3, [sp]
+ ldr r0, [r5, 0x24]
+ str r0, [sp, 0x4]
+ str r3, [sp, 0x8]
+ ldr r0, [r5, 0x18]
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ movs r3, 0x20
+ bl create_pokemon_set_level
+ adds r2, r5, 0
+ adds r2, 0xE
+ adds r0, r6, 0
+ movs r1, 0x27
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0xF
+ adds r0, r6, 0
+ movs r1, 0x28
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x10
+ adds r0, r6, 0
+ movs r1, 0x29
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x11
+ adds r0, r6, 0
+ movs r1, 0x2A
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x12
+ adds r0, r6, 0
+ movs r1, 0x2B
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x13
+ adds r0, r6, 0
+ movs r1, 0x2C
+ bl pokemon_setattr
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x2B
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x36
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x14
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x1D
+ adds r0, r6, 0
+ movs r1, 0x17
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x1E
+ adds r0, r6, 0
+ movs r1, 0x18
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x1C
+ adds r0, r6, 0
+ movs r1, 0x16
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x1F
+ adds r0, r6, 0
+ movs r1, 0x21
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r0, r6, 0
+ movs r1, 0x2F
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x37
+ adds r0, r6, 0
+ movs r1, 0x30
+ bl pokemon_setattr
+ adds r0, r6, 0
+ movs r1, 0x23
+ adds r2, r4, 0
+ bl pokemon_setattr
+ mov r4, sp
+ adds r4, 0x35
+ movs r0, 0
+ strb r0, [r4]
+ ldrh r0, [r5, 0x28]
+ cmp r0, 0
+ beq _0804DAC0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804DAB4
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ bl sub_804DAD4
+ ldr r0, _0804DAB0
+ add r1, sp, 0x10
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ adds r0, r6, 0
+ movs r1, 0x40
+ adds r2, r4, 0
+ bl pokemon_setattr
+ adds r2, r5, 0
+ adds r2, 0x28
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl pokemon_setattr
+ b _0804DAC0
+ .align 2, 0
+_0804DAA4: .4byte gIngameTrades
+_0804DAA8: .4byte 0x03004360
+_0804DAAC: .4byte 0x030045c0
+_0804DAB0: .4byte 0x02029700
+_0804DAB4:
+ adds r2, r5, 0
+ adds r2, 0x28
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl pokemon_setattr
+_0804DAC0:
+ ldr r0, _0804DAD0
+ bl pokemon_calc_effective_stats
+ add sp, 0x38
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DAD0: .4byte 0x030045c0
+ thumb_func_end sub_804D948
+
+ thumb_func_start sub_804DAD4
+sub_804DAD4: @ 804DAD4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r2, _0804DB28
+ adds r0, r5, 0
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r1, r4, 0
+ movs r3, 0x8
+_0804DAEE:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0804DAEE
+ adds r0, r4, 0
+ adds r0, 0x12
+ adds r1, r5, 0
+ adds r1, 0x2B
+ bl StringCopy
+ ldr r1, [r5, 0x18]
+ lsrs r0, r1, 24
+ strb r0, [r4, 0x1A]
+ lsrs r0, r1, 16
+ strb r0, [r4, 0x1B]
+ lsrs r0, r1, 8
+ strb r0, [r4, 0x1C]
+ strb r1, [r4, 0x1D]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r5, 0x28]
+ strh r0, [r4, 0x20]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DB28: .4byte gUnknown_08215B78
+ thumb_func_end sub_804DAD4
+
+ thumb_func_start sub_804DB2C
+sub_804DB2C: @ 804DB2C
+ push {r4-r6,lr}
+ ldr r6, _0804DB58
+ ldrh r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0804DB5C
+ adds r0, r4
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0804DB60
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ b _0804DB62
+ .align 2, 0
+_0804DB58: .4byte 0x0202e8ce
+_0804DB5C: .4byte 0x03004360
+_0804DB60:
+ movs r0, 0
+_0804DB62:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804DB2C
+
+ thumb_func_start sub_804DB68
+sub_804DB68: @ 804DB68
+ push {lr}
+ ldr r0, _0804DB7C
+ ldrb r0, [r0]
+ ldr r1, _0804DB80
+ ldrb r1, [r1]
+ bl sub_804D948
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DB7C: .4byte 0x0202e8ce
+_0804DB80: .4byte 0x0202e8cc
+ thumb_func_end sub_804DB68
+
+ thumb_func_start sub_804DB84
+sub_804DB84: @ 804DB84
+ push {r4-r6,lr}
+ bl sub_804C29C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bne _0804DBE6
+ ldr r5, _0804DC04
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0804DC08
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r5]
+ adds r0, 0xB9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldr r0, _0804DC0C
+ ldrb r4, [r0]
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x6
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_804BA94
+ ldr r0, [r5]
+ adds r2, r0, 0
+ adds r2, 0x9E
+ ldr r1, _0804DC10
+ strh r1, [r2]
+ adds r0, 0xBD
+ strb r6, [r0]
+ ldr r0, _0804DC14
+ bl SetMainCallback2
+_0804DBE6:
+ bl sub_804BB78
+ bl sub_804D63C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DC04: .4byte 0x03004828
+_0804DC08: .4byte 0x02020004
+_0804DC0C: .4byte 0x020297d8
+_0804DC10: .4byte 0x0000abcd
+_0804DC14: .4byte sub_804DC18
+ thumb_func_end sub_804DB84
+
+ thumb_func_start sub_804DC18
+sub_804DC18: @ 804DC18
+ push {r4,lr}
+ bl sub_804B2B0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_804D63C
+ cmp r4, 0
+ bne _0804DC64
+ ldr r4, _0804DC7C
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x9C
+ ldrh r1, [r0]
+ ldr r0, _0804DC80
+ cmp r1, r0
+ bne _0804DC64
+ adds r1, r2, 0
+ adds r1, 0x9E
+ ldr r0, _0804DC84
+ strh r0, [r1]
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ adds r1, 0x9E
+ movs r2, 0x14
+ bl SendBlock
+ ldr r0, [r4]
+ adds r0, 0x9C
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9D
+ strb r1, [r0]
+_0804DC64:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804DC7C: .4byte 0x03004828
+_0804DC80: .4byte 0x00000101
+_0804DC84: .4byte 0x0000dcba
+ thumb_func_end sub_804DC18
+
+ thumb_func_start sub_804DC88
+sub_804DC88: @ 804DC88
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _0804DCA8
+ ldr r2, _0804DCAC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x65
+ bls _0804DC9C
+ b _0804E11A
+_0804DC9C:
+ lsls r0, 2
+ ldr r1, _0804DCB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804DCA8: .4byte 0x03001770
+_0804DCAC: .4byte 0x0000043c
+_0804DCB0: .4byte _0804DCB4
+ .align 2, 0
+_0804DCB4:
+ .4byte _0804DE4C
+ .4byte _0804DE9C
+ .4byte _0804DF14
+ .4byte _0804E11A
+ .4byte _0804DFE0
+ .4byte _0804E078
+ .4byte _0804E0A0
+ .4byte _0804E0BC
+ .4byte _0804E0E4
+ .4byte _0804E10C
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E008
+ .4byte _0804E034
+ .4byte _0804E04C
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804DF54
+ .4byte _0804DF7C
+ .4byte _0804DF9C
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804E11A
+ .4byte _0804DEB4
+ .4byte _0804DEF4
+_0804DE4C:
+ ldr r5, _0804DE88
+ ldr r0, _0804DE8C
+ str r0, [r5]
+ ldr r1, _0804DE90
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0x1
+ strb r1, [r2]
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ ldr r4, _0804DE94
+ ldr r1, _0804DE98
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, [r5]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ b _0804DF3E
+ .align 2, 0
+_0804DE88: .4byte 0x03004828
+_0804DE8C: .4byte 0x0201f000
+_0804DE90: .4byte 0x0000043c
+_0804DE94: .4byte 0x020234cc
+_0804DE98: .4byte gUnknown_0842D1EE
+_0804DE9C:
+ bl sub_80084A4
+ ldr r0, _0804DEAC
+ ldr r2, _0804DEB0
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0x64
+ b _0804DFEE
+ .align 2, 0
+_0804DEAC: .4byte 0x03001770
+_0804DEB0: .4byte 0x0000043c
+_0804DEB4:
+ ldr r0, _0804DEE8
+ ldr r0, [r0]
+ adds r3, r0, 0
+ adds r3, 0xC0
+ ldr r0, [r3]
+ adds r0, 0x1
+ str r0, [r3]
+ cmp r0, 0xB4
+ bls _0804DED2
+ ldr r1, _0804DEEC
+ adds r0, r2, r1
+ movs r2, 0
+ movs r1, 0x65
+ strb r1, [r0]
+ str r2, [r3]
+_0804DED2:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804DEDE
+ b _0804E11A
+_0804DEDE:
+ ldr r0, _0804DEF0
+ ldr r2, _0804DEEC
+ adds r0, r2
+ b _0804DF06
+ .align 2, 0
+_0804DEE8: .4byte 0x03004828
+_0804DEEC: .4byte 0x0000043c
+_0804DEF0: .4byte 0x03001770
+_0804DEF4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804DF00
+ b _0804E11A
+_0804DF00:
+ ldr r0, _0804DF0C
+ ldr r1, _0804DF10
+ adds r0, r1
+_0804DF06:
+ movs r1, 0x2
+ strb r1, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804DF0C: .4byte 0x03001770
+_0804DF10: .4byte 0x0000043c
+_0804DF14:
+ ldr r0, _0804DF48
+ adds r1, r2, r0
+ movs r0, 0x32
+ strb r0, [r1]
+ ldr r4, _0804DF4C
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x13
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _0804DF50
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+_0804DF3E:
+ movs r3, 0x2
+ bl sub_8003460
+ b _0804E11A
+ .align 2, 0
+_0804DF48: .4byte 0x0000043c
+_0804DF4C: .4byte 0x03004828
+_0804DF50: .4byte gUnknown_08411905
+_0804DF54:
+ bl sub_8047A1C
+ movs r0, 0x15
+ bl sav12_xor_increment
+ bl sub_8125D80
+ ldr r1, _0804DF74
+ ldr r2, _0804DF78
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ b _0804DFF0
+ .align 2, 0
+_0804DF74: .4byte 0x03001770
+_0804DF78: .4byte 0x0000043c
+_0804DF7C:
+ ldr r0, _0804DF94
+ ldr r1, [r0]
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x5
+ beq _0804DF8E
+ b _0804E11A
+_0804DF8E:
+ ldr r0, _0804DF98
+ adds r1, r2, r0
+ b _0804E0FA
+ .align 2, 0
+_0804DF94: .4byte 0x03004828
+_0804DF98: .4byte 0x0000043c
+_0804DF9C:
+ bl sub_8125DA8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0804DFC0
+ bl sub_8047A34
+ ldr r0, _0804DFB8
+ ldr r1, _0804DFBC
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804DFB8: .4byte 0x03001770
+_0804DFBC: .4byte 0x0000043c
+_0804DFC0:
+ ldr r0, _0804DFD4
+ ldr r0, [r0]
+ adds r0, 0xC0
+ str r1, [r0]
+ ldr r0, _0804DFD8
+ ldr r2, _0804DFDC
+ adds r0, r2
+ movs r1, 0x33
+ strb r1, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804DFD4: .4byte 0x03004828
+_0804DFD8: .4byte 0x03001770
+_0804DFDC: .4byte 0x0000043c
+_0804DFE0:
+ bl sub_8125DDC
+ ldr r0, _0804DFFC
+ ldr r1, _0804E000
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x28
+_0804DFEE:
+ strb r1, [r0]
+_0804DFF0:
+ ldr r0, _0804E004
+ ldr r0, [r0]
+ adds r0, 0xC0
+ str r2, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804DFFC: .4byte 0x03001770
+_0804E000: .4byte 0x0000043c
+_0804E004: .4byte 0x03004828
+_0804E008:
+ ldr r0, _0804E02C
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x32
+ bhi _0804E01C
+ b _0804E11A
+_0804E01C:
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, _0804E030
+ adds r1, r2, r0
+ movs r0, 0x29
+ strb r0, [r1]
+ b _0804E11A
+ .align 2, 0
+_0804E02C: .4byte 0x03004828
+_0804E030: .4byte 0x0000043c
+_0804E034:
+ bl sub_80084A4
+ ldr r0, _0804E044
+ ldr r1, _0804E048
+ adds r0, r1
+ movs r1, 0x2A
+ strb r1, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804E044: .4byte 0x03001770
+_0804E048: .4byte 0x0000043c
+_0804E04C:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804E11A
+ bl sub_8125E04
+ ldr r1, _0804E06C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0804E070
+ ldr r2, _0804E074
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0]
+ b _0804E11A
+ .align 2, 0
+_0804E06C: .4byte 0x03001bb4
+_0804E070: .4byte 0x03001770
+_0804E074: .4byte 0x0000043c
+_0804E078:
+ ldr r0, _0804E098
+ ldr r1, [r0]
+ adds r1, 0xC0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bls _0804E11A
+ ldr r0, _0804E09C
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_80084A4
+ b _0804E11A
+ .align 2, 0
+_0804E098: .4byte 0x03004828
+_0804E09C: .4byte 0x0000043c
+_0804E0A0:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804E11A
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0804E0F4
+_0804E0BC:
+ ldr r0, _0804E0D8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804E11A
+ movs r0, 0x3
+ bl play_sound_effect
+ ldr r1, _0804E0DC
+ ldr r0, _0804E0E0
+ adds r1, r0
+ b _0804E0FA
+ .align 2, 0
+_0804E0D8: .4byte 0x0202f388
+_0804E0DC: .4byte 0x03001770
+_0804E0E0: .4byte 0x0000043c
+_0804E0E4:
+ bl sub_8075028
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0804E11A
+ bl sub_800832C
+_0804E0F4:
+ ldr r1, _0804E104
+ ldr r2, _0804E108
+ adds r1, r2
+_0804E0FA:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804E11A
+ .align 2, 0
+_0804E104: .4byte 0x03001770
+_0804E108: .4byte 0x0000043c
+_0804E10C:
+ ldr r0, _0804E13C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804E11A
+ ldr r0, _0804E140
+ bl SetMainCallback2
+_0804E11A:
+ bl HasLinkErrorOccurred
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804E128
+ bl RunTasks
+_0804E128:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E13C: .4byte 0x03002fa4
+_0804E140: .4byte sub_804E144
+ thumb_func_end sub_804DC88
+
+ thumb_func_start sub_804E144
+sub_804E144: @ 804E144
+ push {lr}
+ ldr r0, _0804E16C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804E158
+ ldr r0, _0804E170
+ bl SetMainCallback2
+_0804E158:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E16C: .4byte 0x0202f388
+_0804E170: .4byte sub_8047CD8
+ thumb_func_end sub_804E144
+
+ thumb_func_start sub_804E174
+sub_804E174: @ 804E174
+ push {lr}
+ sub sp, 0x4
+ bl script_env_2_enable
+ ldr r0, _0804E19C
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E19C: .4byte sub_804E1A0
+ thumb_func_end sub_804E174
+
+ thumb_func_start sub_804E1A0
+sub_804E1A0: @ 804E1A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0804E1CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804E1C4
+ ldr r0, _0804E1D0
+ bl SetMainCallback2
+ ldr r1, _0804E1D4
+ ldr r0, _0804E1D8
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0804E1C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E1CC: .4byte 0x0202f388
+_0804E1D0: .4byte sub_804B790
+_0804E1D4: .4byte 0x0300485c
+_0804E1D8: .4byte sub_8080990
+ thumb_func_end sub_804E1A0
+
+ thumb_func_start sub_804E1DC
+sub_804E1DC: @ 804E1DC
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_0804E1E2:
+ ldr r0, _0804E220
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0804E224
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ bl PokemonGetField
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _0804E1E2
+ cmp r5, 0
+ beq _0804E21A
+ ldr r0, _0804E228
+ bl FlagSet
+_0804E21A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E220: .4byte 0x020297d8
+_0804E224: .4byte 0x030045c0
+_0804E228: .4byte 0x0000083b
+ thumb_func_end sub_804E1DC
+
+ thumb_func_start sub_804E22C
+sub_804E22C: @ 804E22C
+ push {r4,lr}
+ ldr r0, _0804E26C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0804E270
+ ldr r4, _0804E274
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r4, 0
+ bl CpuSet
+ ldr r1, _0804E278
+ ldr r0, _0804E27C
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804E280
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0804E284
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0804E288
+ ldr r2, _0804E28C
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E26C: .4byte gUnknown_08D00000
+_0804E270: .4byte gUnknown_08D00524
+_0804E274: .4byte 0x02000000
+_0804E278: .4byte 0x06002800
+_0804E27C: .4byte 0x040000d4
+_0804E280: .4byte 0x80000280
+_0804E284: .4byte gUnknown_08D004E0
+_0804E288: .4byte 0x0400000a
+_0804E28C: .4byte 0x00000502
+ thumb_func_end sub_804E22C
+
+ thumb_func_start sub_804E290
+sub_804E290: @ 804E290
+ push {lr}
+ ldr r0, _0804E2B0
+ ldr r1, _0804E2B4
+ ldr r2, _0804E2B8
+ ldr r2, [r2]
+ adds r2, 0x56
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ subs r2, 0x80
+ lsls r2, 17
+ asrs r2, 16
+ bl m4aMPlayPitchControl
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E2B0: .4byte 0x03007400
+_0804E2B4: .4byte 0x0000ffff
+_0804E2B8: .4byte 0x03004854
+ thumb_func_end sub_804E290
+
+ thumb_func_start sub_804E2BC
+sub_804E2BC: @ 804E2BC
+ push {lr}
+ bl sub_80514A4
+ bl sub_80514F0
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E2BC
+
+ thumb_func_start sub_804E2D8
+sub_804E2D8: @ 804E2D8
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E2D8
+
+ thumb_func_start sub_804E2EC
+sub_804E2EC: @ 804E2EC
+ push {r4-r7,lr}
+ ldr r1, _0804E308
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ mov r12, r1
+ cmp r0, 0x9
+ bls _0804E2FC
+ b _0804E4F4
+_0804E2FC:
+ lsls r0, 2
+ ldr r1, _0804E30C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804E308: .4byte 0x03004854
+_0804E30C: .4byte _0804E310
+ .align 2, 0
+_0804E310:
+ .4byte _0804E338
+ .4byte _0804E34C
+ .4byte _0804E380
+ .4byte _0804E3C4
+ .4byte _0804E3D8
+ .4byte _0804E3EC
+ .4byte _0804E410
+ .4byte _0804E434
+ .4byte _0804E48C
+ .4byte _0804E4BC
+_0804E338:
+ ldr r0, _0804E344
+ ldr r1, _0804E348
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E344: .4byte gUnknown_08E6C100
+_0804E348: .4byte 0x02010000
+_0804E34C:
+ ldr r1, _0804E36C
+ ldr r2, _0804E370
+ ldr r0, _0804E374
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E378
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0804E37C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ b _0804E49E
+ .align 2, 0
+_0804E36C: .4byte gUnknown_08215C2C
+_0804E370: .4byte 0x06004000
+_0804E374: .4byte 0x040000d4
+_0804E378: .4byte 0x80000200
+_0804E37C: .4byte gUnknown_08215C0C
+_0804E380:
+ ldr r3, _0804E3B8
+ movs r4, 0xC0
+ lsls r4, 19
+ movs r5, 0x80
+ lsls r5, 6
+ ldr r1, _0804E3BC
+ ldr r6, _0804E3C0
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804E396:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804E396
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E3B8: .4byte 0x02010000
+_0804E3BC: .4byte 0x040000d4
+_0804E3C0: .4byte 0x80000800
+_0804E3C4:
+ ldr r0, _0804E3D0
+ ldr r1, _0804E3D4
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E3D0: .4byte gUnknown_08E6C920
+_0804E3D4: .4byte 0x02010000
+_0804E3D8:
+ ldr r0, _0804E3E4
+ ldr r1, _0804E3E8
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E3E4: .4byte gUnknown_08E6D354
+_0804E3E8: .4byte 0x02013000
+_0804E3EC:
+ ldr r1, _0804E400
+ ldr r2, _0804E404
+ ldr r0, _0804E408
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E40C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E400: .4byte 0x02010000
+_0804E404: .4byte 0x0600e000
+_0804E408: .4byte 0x040000d4
+_0804E40C: .4byte 0x80000800
+_0804E410:
+ ldr r1, _0804E424
+ ldr r2, _0804E428
+ ldr r0, _0804E42C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E430
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E424: .4byte 0x02011000
+_0804E428: .4byte 0x0600f000
+_0804E42C: .4byte 0x040000d4
+_0804E430: .4byte 0x80000800
+_0804E434:
+ ldr r3, _0804E474
+ movs r2, 0
+ adds r6, r3, 0
+ ldr r7, _0804E478
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0, 0
+ ldr r4, _0804E47C
+_0804E444:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r4
+ bls _0804E444
+ ldr r1, _0804E480
+ ldr r0, _0804E484
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804E488
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x80
+ movs r2, 0x20
+ bl LoadPalette
+ b _0804E49E
+ .align 2, 0
+_0804E474: .4byte 0x02013000
+_0804E478: .4byte gUnknown_0821602C
+_0804E47C: .4byte 0x0000027f
+_0804E480: .4byte 0x06006000
+_0804E484: .4byte 0x040000d4
+_0804E488: .4byte 0x80000280
+_0804E48C:
+ ldr r0, _0804E4AC
+ bl LoadSpriteSheet
+ ldr r0, _0804E4B0
+ bl LoadSpriteSheet
+ ldr r0, _0804E4B4
+ bl LoadSpriteSheet
+_0804E49E:
+ ldr r0, _0804E4B8
+_0804E4A0:
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _0804E4F4
+ .align 2, 0
+_0804E4AC: .4byte gUnknown_082163DC
+_0804E4B0: .4byte gUnknown_082164F4
+_0804E4B4: .4byte gUnknown_08216454
+_0804E4B8: .4byte 0x03004854
+_0804E4BC:
+ ldr r0, _0804E4E0
+ bl LoadSpriteSheet
+ ldr r0, _0804E4E4
+ bl LoadSpriteSheet
+ ldr r0, _0804E4E8
+ bl LoadSpritePalette
+ ldr r0, _0804E4EC
+ bl LoadSpritePalette
+ ldr r0, _0804E4F0
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ b _0804E4F6
+ .align 2, 0
+_0804E4E0: .4byte gUnknown_08216540
+_0804E4E4: .4byte gUnknown_08216574
+_0804E4E8: .4byte gUnknown_082163EC
+_0804E4EC: .4byte gUnknown_082163E4
+_0804E4F0: .4byte 0x03004854
+_0804E4F4:
+ movs r0, 0
+_0804E4F6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804E2EC
+
+ thumb_func_start sub_804E4FC
+sub_804E4FC: @ 804E4FC
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _0804E52C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0xC
+ movs r2, 0x91
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0804E530
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804E534
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0804E52C: .4byte 0x00001341
+_0804E530: .4byte 0x00000c0d
+_0804E534: .4byte 0x04000010
+ thumb_func_end sub_804E4FC
+
+ thumb_func_start sub_804E538
+sub_804E538: @ 804E538
+ push {lr}
+ ldr r1, _0804E55C
+ ldr r0, _0804E560
+ str r0, [r1]
+ adds r2, r0, 0
+ adds r2, 0x6F
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r2]
+ ldr r0, _0804E564
+ ldrb r0, [r0]
+ bl sub_804E884
+ ldr r0, _0804E568
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E55C: .4byte 0x03004854
+_0804E560: .4byte 0x02018000
+_0804E564: .4byte 0x0202e8cc
+_0804E568: .4byte sub_804E56C
+ thumb_func_end sub_804E538
+
+ thumb_func_start sub_804E56C
+sub_804E56C: @ 804E56C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _0804E588
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _0804E57C
+ b _0804E71A
+_0804E57C:
+ lsls r0, 2
+ ldr r1, _0804E58C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804E588: .4byte 0x03004854
+_0804E58C: .4byte _0804E590
+ .align 2, 0
+_0804E590:
+ .4byte _0804E5AC
+ .4byte _0804E614
+ .4byte _0804E67C
+ .4byte _0804E692
+ .4byte _0804E6A8
+ .4byte _0804E6D4
+ .4byte _0804E700
+_0804E5AC:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r5, 0
+ strh r5, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, _0804E60C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ ldr r3, _0804E610
+ ldr r2, [r3]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r2]
+ ldr r2, [r3]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ subs r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0x50
+ strh r0, [r3]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ strb r5, [r2, 0x1]
+ bl sub_8051474
+ b _0804E71A
+ .align 2, 0
+_0804E60C: .4byte gWindowConfig_81E6F68
+_0804E610: .4byte 0x03004854
+_0804E614:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804E620
+ b _0804E71A
+_0804E620:
+ movs r4, 0
+ ldr r5, _0804E668
+ ldr r6, _0804E66C
+_0804E626:
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ ldr r0, _0804E670
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x5C
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x5C
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804E674
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804E626
+ ldr r0, _0804E678
+ bl SetVBlankCallback
+ b _0804E6BE
+ .align 2, 0
+_0804E668: .4byte gUnknown_082162E4
+_0804E66C: .4byte 0x03004854
+_0804E670: .4byte gSpriteTemplate_82163F4
+_0804E674: .4byte 0x02020004
+_0804E678: .4byte sub_804E2BC
+_0804E67C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl sub_8051474
+ b _0804E6BE
+_0804E692:
+ bl sub_804E4FC
+ ldr r0, _0804E6A4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804E71A
+ b _0804E6BE
+ .align 2, 0
+_0804E6A4: .4byte 0x0202f388
+_0804E6A8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _0804E6CC
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+_0804E6BE:
+ ldr r0, _0804E6D0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804E71A
+ .align 2, 0
+_0804E6CC: .4byte gUnknown_0842D307
+_0804E6D0: .4byte 0x03004854
+_0804E6D4:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804E71A
+ ldr r0, _0804E6FC
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0804E71A
+ .align 2, 0
+_0804E6FC: .4byte 0x03004854
+_0804E700:
+ ldr r0, _0804E730
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804E71A
+ bl sub_80A6978
+ ldr r0, _0804E734
+ ldr r0, [r0]
+ strb r4, [r0]
+_0804E71A:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E730: .4byte 0x0202f388
+_0804E734: .4byte 0x03004854
+ thumb_func_end sub_804E56C
+
+ thumb_func_start sub_804E738
+sub_804E738: @ 804E738
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ subs r1, r2
+ ldrh r0, [r4, 0x3C]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ ldrh r3, [r4, 0x2E]
+ adds r0, r3
+ strh r0, [r4, 0x2E]
+ subs r2, 0x1
+ strh r2, [r4, 0x36]
+ lsls r0, 16
+ lsls r1, 16
+ cmp r0, r1
+ bge _0804E786
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0804E780
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0804E786
+_0804E780:
+ movs r0, 0x74
+ bl audio_play
+_0804E786:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ strh r0, [r4, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E738
+
+ thumb_func_start sub_804E794
+sub_804E794: @ 804E794
+ push {r4-r6,lr}
+ ldr r5, [sp, 0x10]
+ ldr r6, [sp, 0x14]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r4, 0
+ strh r2, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ strh r3, [r0, 0x34]
+ movs r1, 0xA
+ strh r1, [r0, 0x36]
+ strh r4, [r0, 0x38]
+ strh r5, [r0, 0x3A]
+ strh r6, [r0, 0x3C]
+ ldr r1, _0804E7BC
+ str r1, [r0, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E7BC: .4byte sub_804E738
+ thumb_func_end sub_804E794
+
+ thumb_func_start sub_804E7C0
+sub_804E7C0: @ 804E7C0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, 24
+ movs r1, 0xF6
+ lsls r1, 23
+ adds r0, r1
+ lsrs r0, 24
+ movs r3, 0x1
+ ands r3, r6
+ movs r1, 0
+ movs r2, 0x50
+ bl sub_80A7DEC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ mov r8, r2
+ add r8, r0
+ mov r3, r8
+ lsls r3, 2
+ mov r8, r3
+ ldr r0, _0804E83C
+ add r8, r0
+ ldr r5, _0804E840
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 1
+ adds r0, r4, r5
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ adds r0, r5, 0x2
+ adds r0, r4, r0
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r0, r5, 0x4
+ adds r0, r4, r0
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ adds r0, r5, 0x6
+ adds r0, r4, r0
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ str r0, [sp]
+ adds r5, 0x8
+ adds r4, r5
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl sub_804E794
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E83C: .4byte 0x02020004
+_0804E840: .4byte gUnknown_08216594
+ thumb_func_end sub_804E7C0
+
+ thumb_func_start sub_804E844
+sub_804E844: @ 804E844
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+ adds r0, 0x7C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r4, r0, 0
+ strh r5, [r6]
+ adds r0, r6, 0x2
+ adds r1, r4, 0
+ bl StringCopy
+ ldrb r0, [r4, 0x15]
+ strb r0, [r6, 0x9]
+ ldrb r0, [r4, 0x16]
+ strb r0, [r6, 0xA]
+ ldrb r0, [r4, 0x17]
+ strb r0, [r6, 0xB]
+ ldrb r0, [r4, 0x18]
+ strb r0, [r6, 0xC]
+ ldrb r0, [r4, 0x19]
+ strb r0, [r6, 0xD]
+ ldrb r0, [r4, 0x1A]
+ strb r0, [r6, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E844
+
+ thumb_func_start sub_804E884
+sub_804E884: @ 804E884
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0804E89E
+ ldr r2, _0804E8AC
+ movs r3, 0x2
+ adds r0, r2, 0
+ adds r0, 0x54
+_0804E896:
+ strh r3, [r0, 0x1A]
+ subs r0, 0x1C
+ cmp r0, r2
+ bge _0804E896
+_0804E89E:
+ cmp r1, 0x1
+ beq _0804E8C4
+ cmp r1, 0x1
+ bgt _0804E8B0
+ cmp r1, 0
+ beq _0804E8BA
+ b _0804E974
+ .align 2, 0
+_0804E8AC: .4byte 0x03002970
+_0804E8B0:
+ cmp r1, 0x2
+ beq _0804E8F8
+ cmp r1, 0x3
+ beq _0804E93C
+ b _0804E974
+_0804E8BA:
+ ldr r0, _0804E8C0
+ strb r1, [r0]
+ b _0804E974
+ .align 2, 0
+_0804E8C0: .4byte 0x03004834
+_0804E8C4:
+ ldr r0, _0804E8E4
+ strb r1, [r0]
+ ldr r0, _0804E8E8
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r4, _0804E8EC
+ ldr r1, _0804E8F0
+ adds r0, r4, 0
+ bl StringCopy
+ adds r4, 0x1C
+ ldr r0, _0804E8F4
+ ldr r1, [r0]
+ b _0804E920
+ .align 2, 0
+_0804E8E4: .4byte 0x03004834
+_0804E8E8: .4byte 0x03004854
+_0804E8EC: .4byte 0x03002978
+_0804E8F0: .4byte 0x02024ea4
+_0804E8F4: .4byte gUnknown_082162B8
+_0804E8F8:
+ ldr r0, _0804E928
+ strb r1, [r0]
+ ldr r0, _0804E92C
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r4, _0804E930
+ ldr r1, _0804E934
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x1C
+ ldr r5, _0804E938
+ ldr r1, [r5]
+ bl StringCopy
+ adds r4, 0x38
+ ldr r1, [r5, 0x4]
+_0804E920:
+ adds r0, r4, 0
+ bl StringCopy
+ b _0804E974
+ .align 2, 0
+_0804E928: .4byte 0x03004834
+_0804E92C: .4byte 0x03004854
+_0804E930: .4byte 0x03002978
+_0804E934: .4byte 0x02024ea4
+_0804E938: .4byte gUnknown_082162B8
+_0804E93C:
+ ldr r0, _0804E97C
+ strb r1, [r0]
+ ldr r0, _0804E980
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r4, _0804E984
+ ldr r1, _0804E988
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x1C
+ ldr r5, _0804E98C
+ ldr r1, [r5]
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x38
+ ldr r1, [r5, 0x4]
+ bl StringCopy
+ adds r4, 0x54
+ ldr r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StringCopy
+_0804E974:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E97C: .4byte 0x03004834
+_0804E980: .4byte 0x03004854
+_0804E984: .4byte 0x03002978
+_0804E988: .4byte 0x02024ea4
+_0804E98C: .4byte gUnknown_082162B8
+ thumb_func_end sub_804E884
+
+ thumb_func_start sub_804E990
+sub_804E990: @ 804E990
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 19
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _0804E9D8
+ ldr r0, _0804E9DC
+ str r0, [r3]
+ movs r1, 0
+ strb r2, [r0]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ movs r2, 0
+ ldr r5, _0804E9E0
+ adds r4, r3, 0
+ movs r3, 0
+_0804E9B4:
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r0, 0x80
+ adds r0, r1
+ strh r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0804E9B4
+ ldrb r0, [r5]
+ bl sub_804E884
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0804E9E8
+ ldr r0, _0804E9E4
+ bl SetMainCallback2
+ b _0804E9EE
+ .align 2, 0
+_0804E9D8: .4byte 0x03004854
+_0804E9DC: .4byte 0x02018000
+_0804E9E0: .4byte 0x0202e8cc
+_0804E9E4: .4byte sub_804E9F8
+_0804E9E8:
+ ldr r0, _0804E9F4
+ bl SetMainCallback2
+_0804E9EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E9F4: .4byte sub_804F378
+ thumb_func_end sub_804E990
+
+ thumb_func_start sub_804E9F8
+sub_804E9F8: @ 804E9F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _0804EA18
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0x66
+ bls _0804EA0E
+ b _0804F0CE
+_0804EA0E:
+ lsls r0, 2
+ ldr r1, _0804EA1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804EA18: .4byte 0x03004854
+_0804EA1C: .4byte _0804EA20
+ .align 2, 0
+_0804EA20:
+ .4byte _0804EBBC
+ .4byte _0804EC74
+ .4byte _0804EC94
+ .4byte _0804ECE8
+ .4byte _0804ECFA
+ .4byte _0804ED14
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804ED48
+ .4byte _0804ED94
+ .4byte _0804EDB8
+ .4byte _0804EE46
+ .4byte _0804EEA0
+ .4byte _0804EF16
+ .4byte _0804EF34
+ .4byte _0804EFD8
+ .4byte _0804F00C
+ .4byte _0804F0CE
+ .4byte _0804F020
+ .4byte _0804F024
+ .4byte _0804F02A
+ .4byte _0804F03A
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F084
+ .4byte _0804F0A0
+ .4byte _0804F0BC
+_0804EBBC:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0804EC60
+ bl SetVBlankCallback
+ ldr r4, _0804EC64
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ ldr r1, _0804EC68
+ ldr r2, _0804EC6C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0804EC70
+ ldr r1, [r3]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r4, r0, 0
+ adds r4, 0x4E
+ movs r1, 0
+ strh r2, [r4]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, [r3]
+ movs r4, 0xA2
+ lsls r4, 1
+ adds r0, r1, r4
+ strh r2, [r0]
+ adds r4, 0x2
+ adds r0, r1, r4
+ strh r2, [r0]
+ movs r5, 0
+ movs r6, 0
+ mov r8, r3
+ movs r7, 0xA6
+ lsls r7, 1
+_0804EC18:
+ ldr r0, [r3]
+ lsls r1, r5, 1
+ adds r0, 0x70
+ adds r0, r1
+ strh r6, [r0]
+ adds r4, r5, 0x1
+ adds r1, r5
+ lsls r1, 1
+ movs r2, 0x2
+_0804EC2A:
+ ldr r0, [r3]
+ adds r0, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804EC2A
+ adds r5, r4, 0
+ cmp r5, 0x3
+ ble _0804EC18
+ mov r0, r8
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x26
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r1, [r0]
+ strb r2, [r3, 0x1]
+ b _0804F0CE
+ .align 2, 0
+_0804EC60: .4byte sub_804E2BC
+_0804EC64: .4byte gWindowConfig_81E6F68
+_0804EC68: .4byte 0x03002b74
+_0804EC6C: .4byte 0x00004422
+_0804EC70: .4byte 0x03004854
+_0804EC74:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EC80
+ b _0804F0CE
+_0804EC80:
+ ldr r0, _0804EC90
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8051474
+ b _0804F0CE
+ .align 2, 0
+_0804EC90: .4byte 0x03004854
+_0804EC94:
+ movs r5, 0
+ ldr r4, _0804ECD8
+ ldr r6, _0804ECDC
+_0804EC9A:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ ldr r0, _0804ECE0
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x60
+ adds r1, r5
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x60
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804ECE4
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804EC9A
+ b _0804F0AA
+ .align 2, 0
+_0804ECD8: .4byte gUnknown_082162E4
+_0804ECDC: .4byte 0x03004854
+_0804ECE0: .4byte gSpriteTemplate_82163F4
+_0804ECE4: .4byte 0x02020004
+_0804ECE8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0804F0AA
+_0804ECFA:
+ bl sub_804E4FC
+ ldr r0, _0804ED10
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804ED0C
+ b _0804F0CE
+_0804ED0C:
+ b _0804F0AA
+ .align 2, 0
+_0804ED10: .4byte 0x0202f388
+_0804ED14:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _0804ED40
+ movs r1, 0x1
+ movs r2, 0xE
+ bl Print
+ ldr r2, _0804ED44
+ ldr r1, [r2]
+ movs r3, 0
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ str r3, [r0]
+ b _0804F0CE
+ .align 2, 0
+_0804ED40: .4byte gUnknown_0842D3A5
+_0804ED44: .4byte 0x03004854
+_0804ED48:
+ mov r2, r8
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r5, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r0, r3
+ strb r5, [r0]
+ ldr r0, [r2]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ ldr r1, _0804ED8C
+ ldrh r1, [r1]
+ bl sub_804E844
+ ldr r0, _0804ED90
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ movs r2, 0x10
+ bl memcpy
+ bl sub_80084A4
+ mov r3, r8
+ ldr r0, [r3]
+ subs r4, 0x4C
+ adds r0, r4
+ str r5, [r0]
+ b _0804F0CE
+ .align 2, 0
+_0804ED8C: .4byte 0x0203855e
+_0804ED90: .4byte 0x03002a70
+_0804ED94:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EDA0
+ b _0804F0CE
+_0804EDA0:
+ bl ResetBlockReceivedFlags
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804EDB0
+ b _0804F0AA
+_0804EDB0:
+ movs r0, 0x4
+ bl sub_8007E9C
+ b _0804F0AA
+_0804EDB8:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ bgt _0804EDCE
+ b _0804F0CE
+_0804EDCE:
+ bl sub_8071EF4
+ bl GetBlockRecievedStatus
+ adds r4, r0, 0
+ bl sub_8008198
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0804EDE6
+ b _0804F0CE
+_0804EDE6:
+ movs r5, 0
+ mov r7, r8
+ movs r6, 0xBE
+ lsls r6, 1
+ b _0804EE18
+_0804EDF0:
+ ldr r0, [r7]
+ lsls r4, r5, 4
+ adds r0, r4, r0
+ adds r0, r6
+ lsls r1, r5, 8
+ ldr r2, _0804EE2C
+ adds r1, r2
+ movs r2, 0x10
+ bl memcpy
+ ldr r0, [r7]
+ lsls r2, r5, 1
+ adds r1, r0, 0
+ adds r1, 0x80
+ adds r1, r2
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r5, 0x1
+_0804EE18:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ blt _0804EDF0
+ bl ResetBlockReceivedFlags
+ b _0804F0AA
+ .align 2, 0
+_0804EE2C: .4byte 0x03002b80
+_0804EE30:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x80
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl sub_804E7C0
+ b _0804EE7A
+_0804EE46:
+ bl GetLinkPlayerCount
+ ldr r2, _0804EE98
+ ldr r1, [r2]
+ adds r1, 0x88
+ strb r0, [r1]
+ movs r5, 0
+ ldr r2, [r2]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r4, r2, r3
+ ldr r1, _0804EE9C
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ ldrb r3, [r4]
+ adds r0, r1
+_0804EE6C:
+ ldrb r1, [r0]
+ cmp r3, r1
+ beq _0804EE30
+ adds r0, 0x1
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804EE6C
+_0804EE7A:
+ ldr r3, _0804EE98
+ ldr r1, [r3]
+ movs r4, 0x98
+ lsls r4, 1
+ adds r2, r1, r4
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r3]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r0
+ b _0804F0AE
+ .align 2, 0
+_0804EE98: .4byte 0x03004854
+_0804EE9C: .4byte gUnknown_082162EC
+_0804EEA0:
+ mov r1, r8
+ ldr r2, [r1]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r1, r2, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _0804EEB6
+ b _0804F0CE
+_0804EEB6:
+ movs r4, 0x9E
+ lsls r4, 1
+ adds r0, r2, r4
+ adds r1, r2, 0
+ adds r1, 0x88
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0804EF00
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r3, _0804EEF4
+ ldr r1, _0804EEF8
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r3
+ ldr r3, _0804EEFC
+ adds r1, r3, 0
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r2, 0x54
+ strh r1, [r2]
+ b _0804EF06
+ .align 2, 0
+_0804EEF4: .4byte gUnknown_082162F8
+_0804EEF8: .4byte gUnknown_08216300
+_0804EEFC: .4byte 0xffffa800
+_0804EF00:
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_0804EF06:
+ mov r4, r8
+ ldr r0, [r4]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _0804F0CE
+_0804EF16:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EF22
+ b _0804F0CE
+_0804EF22:
+ ldr r2, _0804EF30
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ b _0804EFBC
+ .align 2, 0
+_0804EF30: .4byte 0x03004854
+_0804EF34:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ mov r4, r8
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x54
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r4, [r1]
+ adds r0, r4
+ strh r0, [r1]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _0804EFB8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0xA1
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r2, _0804EFC8
+ ldr r1, _0804EFCC
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldr r1, _0804EFD0
+ ldr r4, _0804EFD4
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ str r0, [r1]
+ bl sub_804F238
+ bl BuyMenuDrawFieldObjects
+_0804EFB8:
+ mov r1, r8
+ ldr r0, [r1]
+_0804EFBC:
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2
+ bl sub_8051414
+ b _0804F0CE
+ .align 2, 0
+_0804EFC8: .4byte gUnknown_082162F8
+_0804EFCC: .4byte gUnknown_08216300
+_0804EFD0: .4byte 0x0400000c
+_0804EFD4: .4byte 0x00004882
+_0804EFD8:
+ bl sub_8051B8C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804EFF6
+ ldr r0, _0804F008
+ ldr r1, [r0]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r2, r1, r3
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804EFF6:
+ ldr r0, _0804F008
+ ldr r0, [r0]
+ movs r4, 0xB4
+ lsls r4, 1
+ adds r0, r4
+ bl sub_8051414
+ b _0804F0CE
+ .align 2, 0
+_0804F008: .4byte 0x03004854
+_0804F00C:
+ ldr r0, _0804F01C
+ movs r2, 0x10
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x3
+ bl CreateSprite
+ b _0804F0AA
+ .align 2, 0
+_0804F01C: .4byte gSpriteTemplate_8216548
+_0804F020:
+ mov r0, r8
+ b _0804F0AC
+_0804F024:
+ bl sub_80084A4
+ b _0804F0AA
+_0804F02A:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F0CE
+ bl sub_8007E24
+ b _0804F0AA
+_0804F03A:
+ mov r1, r8
+ ldr r3, [r1]
+ adds r2, r3, 0
+ adds r2, 0x56
+ movs r1, 0
+ movs r0, 0x80
+ strh r0, [r2]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r3, r2
+ str r1, [r0]
+ ldr r0, _0804F07C
+ bl SetMainCallback2
+ bl current_map_music_get
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _0804F080
+ cmp r0, r4
+ beq _0804F074
+ bl current_map_music_get
+ mov r3, r8
+ ldr r1, [r3]
+ movs r2, 0xBC
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+_0804F074:
+ adds r0, r4, 0
+ bl sub_8075474
+ b _0804F0CE
+ .align 2, 0
+_0804F07C: .4byte sub_80501FC
+_0804F080: .4byte 0x00000193
+_0804F084:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _0804F09C
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ b _0804F0AA
+ .align 2, 0
+_0804F09C: .4byte gUnknown_0842D2D9
+_0804F0A0:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F0CE
+_0804F0AA:
+ ldr r0, _0804F0B8
+_0804F0AC:
+ ldr r1, [r0]
+_0804F0AE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804F0CE
+ .align 2, 0
+_0804F0B8: .4byte 0x03004854
+_0804F0BC:
+ ldr r0, _0804F0EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804F0CE
+ ldr r0, _0804F0F0
+ bl SetMainCallback2
+_0804F0CE:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F0EC: .4byte 0x0202f388
+_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_804E9F8
+
+ thumb_func_start sub_804F0F4
+sub_804F0F4: @ 804F0F4
+ push {r4,lr}
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0804F158
+ bl SetVBlankCallback
+ ldr r4, _0804F15C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ ldr r1, _0804F160
+ ldr r2, _0804F164
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804F168
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4E
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r1, [r0]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F158: .4byte sub_804E2BC
+_0804F15C: .4byte gWindowConfig_81E6F68
+_0804F160: .4byte 0x03002b74
+_0804F164: .4byte 0x00004422
+_0804F168: .4byte 0x03004854
+ thumb_func_end sub_804F0F4
+
+ thumb_func_start task_tutorial_oak_boy_girl
+task_tutorial_oak_boy_girl: @ 804F16C
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ adds r2, 0x18
+ ldr r0, _0804F1A8
+ ldr r0, [r0]
+ lsrs r1, 23
+ adds r0, 0xA2
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0804F1AC
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcc _0804F1B4
+ adds r0, r1, 0
+ adds r0, 0x30
+ cmp r2, r0
+ bcs _0804F1B4
+ subs r0, 0x1C
+ cmp r2, r0
+ bcc _0804F1B0
+ adds r0, 0x8
+ cmp r2, r0
+ bcs _0804F1B0
+ movs r0, 0x2
+ b _0804F1B6
+ .align 2, 0
+_0804F1A8: .4byte 0x03004854
+_0804F1AC: .4byte gUnknown_08216303
+_0804F1B0:
+ movs r0, 0x1
+ b _0804F1B6
+_0804F1B4:
+ movs r0, 0
+_0804F1B6:
+ pop {r1}
+ bx r1
+ thumb_func_end task_tutorial_oak_boy_girl
+
+ thumb_func_start sub_804F1BC
+sub_804F1BC: @ 804F1BC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ movs r4, 0
+ cmp r0, 0xAF
+ bne _0804F1EE
+ movs r3, 0
+ subs r5, r1, 0x1
+ adds r2, 0x9
+_0804F1D2:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0804F1E0
+ adds r4, r3, 0
+_0804F1E0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _0804F1D2
+ adds r0, r4, 0x5
+ b _0804F204
+_0804F1EE:
+ subs r0, 0x85
+ lsls r0, 16
+ lsrs r4, r0, 16
+ subs r5, r1, 0x1
+ cmp r4, 0x4
+ bls _0804F208
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __umodsi3
+ adds r0, 0x5
+_0804F204:
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0804F208:
+ movs r3, 0
+ cmp r3, r5
+ bge _0804F22E
+ ldr r7, _0804F234
+ lsls r0, r4, 1
+ adds r6, r0, r4
+_0804F214:
+ adds r4, r3, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ adds r1, r3, r6
+ adds r1, r7
+ ldrb r1, [r1]
+ adds r1, 0x85
+ bl sub_80516C4
+ lsls r4, 16
+ lsrs r3, r4, 16
+ cmp r3, r5
+ blt _0804F214
+_0804F22E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F234: .4byte gUnknown_082165BC
+ thumb_func_end sub_804F1BC
+
+ thumb_func_start sub_804F238
+sub_804F238: @ 804F238
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r7, _0804F2A0
+ movs r6, 0xFF
+ ldr r5, _0804F2A4
+_0804F242:
+ ldr r3, [r7]
+ lsls r2, r4, 1
+ adds r0, r3, 0
+ adds r0, 0xA2
+ adds r0, r2
+ strh r6, [r0]
+ adds r1, r3, 0
+ adds r1, 0x9A
+ adds r1, r2
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F242
+ movs r3, 0
+ ldr r7, _0804F2A0
+_0804F270:
+ movs r4, 0
+ adds r6, r3, 0x1
+ lsls r5, r3, 1
+_0804F276:
+ ldr r2, [r7]
+ lsls r0, r4, 1
+ adds r1, r2, 0
+ adds r1, 0x9A
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _0804F28E
+ adds r0, r2, 0
+ adds r0, 0xA2
+ adds r0, r5
+ strh r4, [r0]
+_0804F28E:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F276
+ adds r3, r6, 0
+ cmp r3, 0x3
+ ble _0804F270
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F2A0: .4byte 0x03004854
+_0804F2A4: .4byte gUnknown_082162EC
+ thumb_func_end sub_804F238
+
+ thumb_func_start BuyMenuDrawFieldObjects
+BuyMenuDrawFieldObjects: @ 804F2A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r7, _0804F360
+ ldr r0, _0804F364
+ mov r8, r0
+_0804F2B6:
+ ldr r2, [r7]
+ lsls r4, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x9A
+ adds r3, r0, r4
+ ldrh r0, [r3]
+ cmp r0, 0xFF
+ beq _0804F34A
+ ldr r5, _0804F368
+ adds r1, r2, 0
+ adds r1, 0x5C
+ ldrh r3, [r3]
+ adds r1, r3
+ adds r0, r2, 0
+ adds r0, 0x60
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r1, r0, 0
+ adds r1, 0x9A
+ adds r1, r4
+ adds r0, 0x5C
+ ldrh r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804F36C
+ adds r0, r1
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ bl GetMultiplayerId
+ lsls r0, 24
+ ldr r1, [r7]
+ adds r1, 0x9A
+ adds r1, r4
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0804F31A
+ adds r0, r5, 0
+ ldr r1, _0804F370
+ bl StringCopy
+ adds r5, r0, 0
+_0804F31A:
+ ldr r0, [r7]
+ adds r0, 0x9A
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _0804F374
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0x1]
+ lsls r2, 3
+ ldr r0, _0804F368
+ movs r3, 0x1
+ bl sub_80729D8
+_0804F34A:
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0804F2B6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F360: .4byte 0x03004854
+_0804F364: .4byte gUnknown_082162D4
+_0804F368: .4byte 0x020231cc
+_0804F36C: .4byte 0x02020004
+_0804F370: .4byte gUnknown_082162C4
+_0804F374: .4byte 0x03002978
+ thumb_func_end BuyMenuDrawFieldObjects
+
+ thumb_func_start sub_804F378
+sub_804F378: @ 804F378
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _0804F398
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0x15
+ bls _0804F38E
+ b _0804F7E6
+_0804F38E:
+ lsls r0, 2
+ ldr r1, _0804F39C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804F398: .4byte 0x03004854
+_0804F39C: .4byte _0804F3A0
+ .align 2, 0
+_0804F3A0:
+ .4byte _0804F3F8
+ .4byte _0804F474
+ .4byte _0804F494
+ .4byte _0804F4EC
+ .4byte _0804F518
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F54C
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F578
+ .4byte _0804F5C8
+ .4byte _0804F636
+ .4byte _0804F650
+ .4byte _0804F6F8
+ .4byte _0804F720
+ .4byte _0804F7E6
+ .4byte _0804F73C
+ .4byte _0804F742
+ .4byte _0804F748
+ .4byte _0804F754
+_0804F3F8:
+ bl sub_804F0F4
+ ldr r4, _0804F46C
+ ldrh r1, [r4]
+ movs r0, 0
+ bl sub_80516C4
+ ldr r5, _0804F470
+ ldr r0, [r5]
+ movs r6, 0xBE
+ lsls r6, 1
+ adds r0, r6
+ ldrh r1, [r4]
+ bl sub_804E844
+ ldrh r0, [r4]
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x88
+ ldrb r1, [r1]
+ adds r2, r6
+ bl sub_804F1BC
+ movs r4, 0
+ movs r6, 0
+ mov r8, r5
+ movs r7, 0xA6
+ lsls r7, 1
+_0804F430:
+ ldr r0, [r5]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ strh r6, [r0]
+ adds r3, r4, 0x1
+ adds r1, r4
+ lsls r1, 1
+ movs r2, 0x2
+_0804F442:
+ ldr r0, [r5]
+ adds r0, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804F442
+ adds r4, r3, 0
+ cmp r4, 0x3
+ ble _0804F430
+ mov r0, r8
+ ldr r3, [r0]
+ adds r1, r3, 0
+ adds r1, 0x7C
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ strb r2, [r3, 0x1]
+ b _0804F7E6
+ .align 2, 0
+_0804F46C: .4byte 0x0203855e
+_0804F470: .4byte 0x03004854
+_0804F474:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804F480
+ b _0804F7E6
+_0804F480:
+ ldr r0, _0804F490
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8051474
+ b _0804F7E6
+ .align 2, 0
+_0804F490: .4byte 0x03004854
+_0804F494:
+ movs r4, 0
+ ldr r5, _0804F4DC
+ ldr r6, _0804F4E0
+_0804F49A:
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ ldr r0, _0804F4E4
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x60
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x60
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804F4E8
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F49A
+ ldr r0, _0804F4E0
+ ldr r1, [r0]
+ b _0804F74C
+ .align 2, 0
+_0804F4DC: .4byte gUnknown_082162E4
+_0804F4E0: .4byte 0x03004854
+_0804F4E4: .4byte gSpriteTemplate_82163F4
+_0804F4E8: .4byte 0x02020004
+_0804F4EC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0804F514
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ str r4, [r0]
+ b _0804F7E6
+ .align 2, 0
+_0804F514: .4byte 0x03004854
+_0804F518:
+ mov r2, r8
+ ldr r1, [r2]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x2
+ bne _0804F530
+ bl sub_804E4FC
+_0804F530:
+ ldr r0, _0804F548
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804F53E
+ b _0804F7E6
+_0804F53E:
+ mov r5, r8
+ ldr r1, [r5]
+ movs r0, 0x8
+ strb r0, [r1]
+ b _0804F7E6
+ .align 2, 0
+_0804F548: .4byte 0x0202f388
+_0804F54C:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0xB
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r0, r3
+ strb r2, [r0]
+ b _0804F7E6
+_0804F564:
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x80
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_804E7C0
+ b _0804F5A2
+_0804F578:
+ movs r4, 0
+ ldr r2, _0804F5C0
+ ldr r0, _0804F5C4
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ adds r0, r2
+_0804F594:
+ ldrb r2, [r0]
+ cmp r1, r2
+ beq _0804F564
+ adds r0, 0x1
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F594
+_0804F5A2:
+ ldr r3, _0804F5C4
+ ldr r1, [r3]
+ movs r5, 0x98
+ lsls r5, 1
+ adds r2, r1, r5
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r3]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r0
+ b _0804F74C
+ .align 2, 0
+_0804F5C0: .4byte gUnknown_082162EC
+_0804F5C4: .4byte 0x03004854
+_0804F5C8:
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r3, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _0804F5DE
+ b _0804F7E6
+_0804F5DE:
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r0, r3, r5
+ adds r4, r3, 0
+ adds r4, 0x88
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _0804F620
+ ldr r2, _0804F614
+ ldr r1, _0804F618
+ ldrb r0, [r4]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldr r2, _0804F61C
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ b _0804F624
+ .align 2, 0
+_0804F614: .4byte gUnknown_082162F8
+_0804F618: .4byte gUnknown_08216300
+_0804F61C: .4byte 0xffffa800
+_0804F620:
+ ldrb r0, [r3]
+ subs r0, 0x1
+_0804F624:
+ strb r0, [r3]
+ mov r3, r8
+ ldr r0, [r3]
+ movs r5, 0x98
+ lsls r5, 1
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ b _0804F7E6
+_0804F636:
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ bl sub_804F238
+ movs r0, 0x2B
+ bl audio_play
+ mov r2, r8
+ ldr r0, [r2]
+ b _0804F710
+_0804F650:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r5, 0x80
+ lsls r5, 3
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, r8
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x54
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r5, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _0804F6D6
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0xA1
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r2, _0804F6E8
+ ldr r1, _0804F6EC
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldr r1, _0804F6F0
+ ldr r5, _0804F6F4
+ adds r0, r5, 0
+ strh r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ str r0, [r1]
+ movs r0, 0x34
+ bl audio_play
+ bl BuyMenuDrawFieldObjects
+_0804F6D6:
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2
+ bl sub_8051414
+ b _0804F7E6
+ .align 2, 0
+_0804F6E8: .4byte gUnknown_082162F8
+_0804F6EC: .4byte gUnknown_08216300
+_0804F6F0: .4byte 0x0400000c
+_0804F6F4: .4byte 0x00004882
+_0804F6F8:
+ bl sub_8051B8C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F70C
+ ldr r0, _0804F71C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804F70C:
+ ldr r0, _0804F71C
+ ldr r0, [r0]
+_0804F710:
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r3
+ bl sub_8051414
+ b _0804F7E6
+ .align 2, 0
+_0804F71C: .4byte 0x03004854
+_0804F720:
+ ldr r0, _0804F734
+ movs r2, 0x10
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x3
+ bl CreateSprite
+ ldr r0, _0804F738
+ ldr r1, [r0]
+ b _0804F74C
+ .align 2, 0
+_0804F734: .4byte gSpriteTemplate_8216548
+_0804F738: .4byte 0x03004854
+_0804F73C:
+ mov r5, r8
+ ldr r1, [r5]
+ b _0804F74C
+_0804F742:
+ mov r0, r8
+ ldr r1, [r0]
+ b _0804F74C
+_0804F748:
+ mov r2, r8
+ ldr r1, [r2]
+_0804F74C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804F7E6
+_0804F754:
+ bl sub_804F81C
+ ldr r3, _0804F804
+ ldr r4, [r3]
+ adds r5, r4, 0
+ adds r5, 0x56
+ movs r2, 0
+ movs r1, 0
+ movs r0, 0x80
+ strh r0, [r5]
+ movs r5, 0x96
+ lsls r5, 1
+ adds r0, r4, r5
+ str r1, [r0]
+ ldr r1, _0804F808
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, 0x7E
+ strb r2, [r0]
+ ldr r0, _0804F80C
+ bl SetMainCallback2
+ movs r4, 0
+ ldr r0, _0804F810
+ ldrh r0, [r0]
+ cmp r4, r0
+ bge _0804F7B8
+ movs r5, 0xA0
+ lsls r5, 20
+ ldr r6, _0804F814
+_0804F792:
+ ldm r6!, {r0}
+ lsrs r1, r5, 24
+ bl CreateTask
+ ldr r1, _0804F804
+ ldr r1, [r1]
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ movs r3, 0x80
+ lsls r3, 17
+ adds r5, r3
+ adds r4, 0x1
+ ldr r0, _0804F810
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _0804F792
+_0804F7B8:
+ bl current_map_music_get
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _0804F818
+ cmp r0, r4
+ beq _0804F7D6
+ bl current_map_music_get
+ ldr r1, _0804F804
+ ldr r1, [r1]
+ movs r5, 0xBC
+ lsls r5, 1
+ adds r1, r5
+ strh r0, [r1]
+_0804F7D6:
+ adds r0, r4, 0
+ bl sub_8075474
+ movs r0, 0x35
+ bl audio_play
+ bl sub_804E290
+_0804F7E6:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F804: .4byte 0x03004854
+_0804F808: .4byte 0x0000014b
+_0804F80C: .4byte sub_80501FC
+_0804F810: .4byte 0x0202e8cc
+_0804F814: .4byte gUnknown_08216308
+_0804F818: .4byte 0x00000193
+ thumb_func_end sub_804F378
+
+ thumb_func_start sub_804F81C
+sub_804F81C: @ 804F81C
+ push {lr}
+ ldr r3, _0804F83C
+ movs r0, 0
+ ldr r1, _0804F840
+ movs r2, 0x3
+_0804F826:
+ strh r0, [r3]
+ strh r0, [r3, 0x4]
+ strh r0, [r1]
+ strh r0, [r1, 0x10]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804F826
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F83C: .4byte 0x03002f90
+_0804F840: .4byte 0x03002a20
+ thumb_func_end sub_804F81C
+
+ thumb_func_start sub_804F844
+sub_804F844: @ 804F844
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0804F884
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ ble _0804F87C
+ ldr r0, _0804F888
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ lsls r1, 1
+ adds r0, 0x10
+ adds r1, r0
+ ldr r0, _0804F88C
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroyTask
+_0804F87C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F884: .4byte 0x03004b20
+_0804F888: .4byte 0x03002a20
+_0804F88C: .4byte 0x00002345
+ thumb_func_end sub_804F844
+
+ thumb_func_start sub_804F890
+sub_804F890: @ 804F890
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0804F8C0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0804F8C4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F8C0: .4byte sub_804F844
+_0804F8C4: .4byte 0x03004b20
+ thumb_func_end sub_804F890
+
+ thumb_func_start sub_804F8C8
+sub_804F8C8: @ 804F8C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0804F934
+ ldr r0, [r4]
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl task_tutorial_oak_boy_girl
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _0804F8E6
+ b _0804F9DC
+_0804F8E6:
+ ldr r2, _0804F938
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0804F8FC
+ b _0804F9EA
+_0804F8FC:
+ ldr r0, [r4]
+ ldr r1, _0804F93C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804F9BE
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804F940
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, r1, 0
+ ldr r0, [r4]
+ adds r0, 0x56
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ ldr r0, _0804F944
+ cmp r2, r0
+ bgt _0804F964
+ cmp r1, 0x4B
+ bls _0804F950
+ ldr r1, _0804F948
+ ldr r0, _0804F94C
+ b _0804F954
+ .align 2, 0
+_0804F934: .4byte 0x03004854
+_0804F938: .4byte 0x03004b20
+_0804F93C: .4byte 0x0000014b
+_0804F940: .4byte 0x0000028f
+_0804F944: .4byte 0x000001f3
+_0804F948: .4byte 0x03002a20
+_0804F94C: .4byte 0x00004523
+_0804F950:
+ ldr r1, _0804F95C
+ ldr r0, _0804F960
+_0804F954:
+ strh r0, [r1, 0x12]
+ ldr r0, _0804F960
+ b _0804F9C2
+ .align 2, 0
+_0804F95C: .4byte 0x03002a20
+_0804F960: .4byte 0x00005432
+_0804F964:
+ ldr r0, _0804F980
+ cmp r2, r0
+ bgt _0804F992
+ cmp r1, 0x50
+ bhi _0804F9BE
+ adds r0, r1, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _0804F98C
+ ldr r1, _0804F984
+ ldr r0, _0804F988
+ b _0804F9C2
+ .align 2, 0
+_0804F980: .4byte 0x000005db
+_0804F984: .4byte 0x03002a20
+_0804F988: .4byte 0x00005432
+_0804F98C:
+ cmp r1, 0x9
+ bhi _0804F9C4
+ b _0804F9B4
+_0804F992:
+ cmp r1, 0x5A
+ bhi _0804F9BE
+ adds r0, r1, 0
+ subs r0, 0x47
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _0804F9B0
+ ldr r1, _0804F9A8
+ ldr r0, _0804F9AC
+ b _0804F9C2
+ .align 2, 0
+_0804F9A8: .4byte 0x03002a20
+_0804F9AC: .4byte 0x00005432
+_0804F9B0:
+ cmp r3, 0x1D
+ bhi _0804F9C4
+_0804F9B4:
+ movs r0, 0x1
+ movs r1, 0x5
+ bl sub_804F890
+ b _0804F9C4
+_0804F9BE:
+ ldr r1, _0804F9D0
+ ldr r0, _0804F9D4
+_0804F9C2:
+ strh r0, [r1, 0x12]
+_0804F9C4:
+ ldr r0, _0804F9D8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804F9E8
+ .align 2, 0
+_0804F9D0: .4byte 0x03002a20
+_0804F9D4: .4byte 0x00004523
+_0804F9D8: .4byte 0x03004b20
+_0804F9DC:
+ ldr r0, _0804F9F0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804F9E8:
+ strh r0, [r1, 0x8]
+_0804F9EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F9F0: .4byte 0x03004b20
+ thumb_func_end sub_804F8C8
+
+ thumb_func_start sub_804F9F4
+sub_804F9F4: @ 804F9F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _0804FA78
+ ldr r3, [r6]
+ adds r0, r3, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, _0804FA7C
+ ands r0, r1
+ adds r1, r3, 0
+ adds r1, 0xA6
+ ldrb r1, [r1]
+ lsrs r2, r0, 8
+ ldr r0, _0804FA80
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x14
+ cmp r2, r0
+ bls _0804FB04
+ adds r0, 0x14
+ cmp r2, r0
+ bcs _0804FB04
+ ldr r2, _0804FA84
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r2, r0, r2
+ movs r5, 0x8
+ ldrsh r0, [r2, r5]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _0804FB12
+ ldr r1, _0804FA88
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804FAF0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804FA8C
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ ldr r0, [r6]
+ adds r0, 0x56
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ ldr r0, _0804FA90
+ cmp r1, r0
+ bgt _0804FAAC
+ cmp r2, 0x42
+ bls _0804FA9C
+ ldr r1, _0804FA94
+ ldr r0, _0804FA98
+ strh r0, [r1, 0x14]
+ b _0804FAD4
+ .align 2, 0
+_0804FA78: .4byte 0x03004854
+_0804FA7C: .4byte 0x0000ffff
+_0804FA80: .4byte gUnknown_08216303
+_0804FA84: .4byte 0x03004b20
+_0804FA88: .4byte 0x0000014b
+_0804FA8C: .4byte 0x0000028f
+_0804FA90: .4byte 0x000001f3
+_0804FA94: .4byte 0x03002a20
+_0804FA98: .4byte 0x00004523
+_0804FA9C:
+ ldr r1, _0804FAA4
+ ldr r0, _0804FAA8
+ strh r0, [r1, 0x14]
+ b _0804FAD4
+ .align 2, 0
+_0804FAA4: .4byte 0x03002a20
+_0804FAA8: .4byte 0x00005432
+_0804FAAC:
+ cmp r2, 0x41
+ bls _0804FAB6
+ ldr r1, _0804FAE0
+ ldr r0, _0804FAE4
+ strh r0, [r1, 0x14]
+_0804FAB6:
+ adds r0, r2, 0
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x18
+ bhi _0804FAC8
+ ldr r1, _0804FAE0
+ ldr r0, _0804FAE8
+ strh r0, [r1, 0x14]
+_0804FAC8:
+ cmp r3, 0x9
+ bhi _0804FAD4
+ movs r0, 0x2
+ movs r1, 0x5
+ bl sub_804F890
+_0804FAD4:
+ ldr r0, _0804FAEC
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804FB10
+ .align 2, 0
+_0804FAE0: .4byte 0x03002a20
+_0804FAE4: .4byte 0x00004523
+_0804FAE8: .4byte 0x00005432
+_0804FAEC: .4byte 0x03004b20
+_0804FAF0:
+ ldr r0, _0804FAFC
+ ldr r1, _0804FB00
+ strh r1, [r0, 0x14]
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0804FB12
+ .align 2, 0
+_0804FAFC: .4byte 0x03002a20
+_0804FB00: .4byte 0x00004523
+_0804FB04:
+ ldr r0, _0804FB18
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804FB10:
+ strh r0, [r1, 0x8]
+_0804FB12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FB18: .4byte 0x03004b20
+ thumb_func_end sub_804F9F4
+
+ thumb_func_start sub_804FB1C
+sub_804FB1C: @ 804FB1C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0804FB9C
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, _0804FBA0
+ ands r0, r1
+ adds r1, r3, 0
+ adds r1, 0xA8
+ ldrb r1, [r1]
+ lsrs r2, r0, 8
+ ldr r0, _0804FBA4
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x14
+ cmp r2, r0
+ bls _0804FC30
+ adds r0, 0x14
+ cmp r2, r0
+ bcs _0804FC30
+ ldr r2, _0804FBA8
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r2, r0, r2
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _0804FC3E
+ ldr r1, _0804FBAC
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804FC1C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804FBB0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r5]
+ adds r0, 0x56
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _0804FBB4
+ cmp r1, r0
+ bgt _0804FBD0
+ cmp r2, 0x58
+ bls _0804FBC0
+ ldr r1, _0804FBB8
+ ldr r0, _0804FBBC
+ strh r0, [r1, 0x16]
+ b _0804FC02
+ .align 2, 0
+_0804FB9C: .4byte 0x03004854
+_0804FBA0: .4byte 0x0000ffff
+_0804FBA4: .4byte gUnknown_08216303
+_0804FBA8: .4byte 0x03004b20
+_0804FBAC: .4byte 0x0000014b
+_0804FBB0: .4byte 0x0000028f
+_0804FBB4: .4byte 0x000001f3
+_0804FBB8: .4byte 0x03002a20
+_0804FBBC: .4byte 0x00004523
+_0804FBC0:
+ ldr r1, _0804FBC8
+ ldr r0, _0804FBCC
+ strh r0, [r1, 0x16]
+ b _0804FC02
+ .align 2, 0
+_0804FBC8: .4byte 0x03002a20
+_0804FBCC: .4byte 0x00005432
+_0804FBD0:
+ cmp r2, 0x3C
+ bls _0804FBE4
+ ldr r1, _0804FBDC
+ ldr r0, _0804FBE0
+ b _0804FBF4
+ .align 2, 0
+_0804FBDC: .4byte 0x03002a20
+_0804FBE0: .4byte 0x00004523
+_0804FBE4:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _0804FBF6
+ ldr r1, _0804FC10
+ ldr r0, _0804FC14
+_0804FBF4:
+ strh r0, [r1, 0x16]
+_0804FBF6:
+ cmp r2, 0x4
+ bhi _0804FC02
+ movs r0, 0x3
+ movs r1, 0x5
+ bl sub_804F890
+_0804FC02:
+ ldr r0, _0804FC18
+ adds r1, r6, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804FC3C
+ .align 2, 0
+_0804FC10: .4byte 0x03002a20
+_0804FC14: .4byte 0x00005432
+_0804FC18: .4byte 0x03004b20
+_0804FC1C:
+ ldr r0, _0804FC28
+ ldr r1, _0804FC2C
+ strh r1, [r0, 0x16]
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0804FC3E
+ .align 2, 0
+_0804FC28: .4byte 0x03002a20
+_0804FC2C: .4byte 0x00004523
+_0804FC30:
+ ldr r0, _0804FC44
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804FC3C:
+ strh r0, [r1, 0x8]
+_0804FC3E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FC44: .4byte 0x03004b20
+ thumb_func_end sub_804FB1C
+
+ thumb_func_start sub_804FC48
+sub_804FC48: @ 804FC48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r8, r7
+ lsls r1, 24
+ ldr r0, _0804FCBC
+ ldr r4, _0804FCC0
+ lsrs r1, 23
+ adds r2, r1, r4
+ ldrb r6, [r2]
+ ldr r5, _0804FCC4
+ adds r2, r1, r5
+ movs r3, 0
+ ldrsb r3, [r2, r3]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 1
+ subs r6, r2
+ adds r4, 0x1
+ adds r4, r1, r4
+ ldrb r2, [r4]
+ adds r5, 0x1
+ adds r1, r5
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 1
+ subs r2, r1
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ ldr r0, _0804FCC8
+ cmp r7, r0
+ bne _0804FCD4
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r5, _0804FCCC
+ adds r0, r4, r5
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0804FCD0
+ str r0, [r4]
+ movs r0, 0x28
+ bl audio_play
+ b _0804FD18
+ .align 2, 0
+_0804FCBC: .4byte gSpriteTemplate_821645C
+_0804FCC0: .4byte gUnknown_082162E4
+_0804FCC4: .4byte gUnknown_082162CC
+_0804FCC8: .4byte 0x00004523
+_0804FCCC: .4byte 0x02020004
+_0804FCD0: .4byte sub_8051684
+_0804FCD4:
+ ldr r0, _0804FCF4
+ cmp r7, r0
+ bne _0804FCFC
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804FCF8
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x1F
+ bl audio_play
+ b _0804FD18
+ .align 2, 0
+_0804FCF4: .4byte 0x00005432
+_0804FCF8: .4byte 0x02020004
+_0804FCFC:
+ ldr r0, _0804FD28
+ cmp r8, r0
+ bne _0804FD18
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0804FD2C
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x20
+ bl audio_play
+_0804FD18:
+ bl sub_805156C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FD28: .4byte 0x00002345
+_0804FD2C: .4byte 0x02020004
+ thumb_func_end sub_804FC48
+
+ thumb_func_start sub_804FD30
+sub_804FD30: @ 804FD30
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_804E290
+ ldr r0, _0804FD50
+ cmp r4, r0
+ beq _0804FD64
+ cmp r4, r0
+ bgt _0804FD58
+ ldr r0, _0804FD54
+ cmp r4, r0
+ beq _0804FE34
+ b _0804FE60
+ .align 2, 0
+_0804FD50: .4byte 0x00004523
+_0804FD54: .4byte 0x00002345
+_0804FD58:
+ ldr r0, _0804FD60
+ cmp r5, r0
+ beq _0804FDFC
+ b _0804FE60
+ .align 2, 0
+_0804FD60: .4byte 0x00005432
+_0804FD64:
+ ldr r7, _0804FD94
+ ldr r4, [r7]
+ adds r5, r4, 0
+ adds r5, 0x56
+ ldrh r6, [r5]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldr r0, _0804FD98
+ cmp r1, r0
+ bgt _0804FDA0
+ ldr r1, _0804FD9C
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 1
+ bl __divsi3
+ adds r0, r6, r0
+ strh r0, [r5]
+ b _0804FE60
+ .align 2, 0
+_0804FD94: .4byte 0x03004854
+_0804FD98: .4byte 0x000005db
+_0804FD9C: .4byte gUnknown_082165DA
+_0804FDA0:
+ ldr r1, _0804FDF8
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ bl __divsi3
+ adds r0, r6, r0
+ strh r0, [r5]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r4, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ subs r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8051AC8
+ ldr r0, [r7]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ subs r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8051AC8
+ b _0804FE60
+ .align 2, 0
+_0804FDF8: .4byte gUnknown_082165DA
+_0804FDFC:
+ ldr r0, _0804FE28
+ ldr r2, [r0]
+ adds r4, r2, 0
+ adds r4, 0x56
+ ldrh r5, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, _0804FE2C
+ cmp r1, r0
+ bgt _0804FE60
+ ldr r1, _0804FE30
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ bl __divsi3
+ adds r0, r5, r0
+ b _0804FE5E
+ .align 2, 0
+_0804FE28: .4byte 0x03004854
+_0804FE2C: .4byte 0x000005db
+_0804FE30: .4byte gUnknown_082165DA
+_0804FE34:
+ ldr r0, _0804FE68
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x56
+ ldr r1, _0804FE6C
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ bl __divsi3
+ ldrh r1, [r4]
+ subs r1, r0
+ strh r1, [r4]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ bgt _0804FE60
+ movs r0, 0x80
+_0804FE5E:
+ strh r0, [r4]
+_0804FE60:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FE68: .4byte 0x03004854
+_0804FE6C: .4byte gUnknown_082165DA
+ thumb_func_end sub_804FD30
+
+ thumb_func_start sub_804FE70
+sub_804FE70: @ 804FE70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0804FF40
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0804FEB6
+ ldr r3, _0804FF44
+ ldrh r0, [r3, 0x4]
+ ldr r2, _0804FF48
+ cmp r0, 0
+ beq _0804FE98
+ movs r1, 0
+ strh r0, [r2, 0x10]
+ ldr r0, _0804FF4C
+ strh r0, [r2]
+ strh r1, [r3, 0x4]
+_0804FE98:
+ ldr r0, _0804FF48
+ ldr r3, _0804FF4C
+ adds r1, r2, 0x2
+ adds r2, r0, 0
+ adds r2, 0x12
+ movs r6, 0x2
+_0804FEA4:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0804FEAC
+ strh r3, [r1]
+_0804FEAC:
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0804FEA4
+_0804FEB6:
+ movs r6, 0
+ ldr r7, _0804FF50
+ adds r1, r7, 0
+ ldr r0, [r1]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0804FEC8
+ b _0805005C
+_0804FEC8:
+ movs r2, 0
+ str r2, [sp]
+ mov r9, r2
+ ldr r0, _0804FF48
+ adds r0, 0x10
+ mov r8, r0
+ ldr r1, _0804FF54
+ mov r10, r1
+_0804FED8:
+ ldr r2, [sp]
+ ldr r1, _0804FF48
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ ldr r0, _0804FF4C
+ cmp r1, r0
+ beq _0804FEE8
+ b _0805003E
+_0804FEE8:
+ ldr r0, [r7]
+ adds r0, 0xA2
+ adds r0, r2
+ ldrh r5, [r0]
+ mov r2, r8
+ ldrh r4, [r2]
+ ldr r0, _0804FF58
+ cmp r4, r0
+ bne _0804FF60
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0x9F
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x37
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ lsls r1, 16
+ ldr r0, _0804FF5C
+ cmp r1, r0
+ bls _0804FF26
+ movs r0, 0xFA
+ lsls r0, 2
+ strh r0, [r4]
+_0804FF26:
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r0, _0804FF58
+ bl sub_804FC48
+ ldr r1, [r7]
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r1, r0
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804FFCA
+ .align 2, 0
+_0804FF40: .4byte 0x0202e8cc
+_0804FF44: .4byte 0x03002f90
+_0804FF48: .4byte 0x03002a20
+_0804FF4C: .4byte 0x00004444
+_0804FF50: .4byte 0x03004854
+_0804FF54: .4byte 0x00005432
+_0804FF58: .4byte 0x00004523
+_0804FF5C: .4byte 0x03e70000
+_0804FF60:
+ cmp r4, r10
+ bne _0804FF9E
+ mov r0, r10
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0x9F
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x46
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r10
+ bl sub_804FC48
+ ldr r1, [r7]
+ movs r0, 0xA7
+ lsls r0, 1
+ adds r1, r0
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804FFCA
+_0804FF9E:
+ ldr r0, _08050018
+ cmp r4, r0
+ bne _0804FFD6
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_804FC48
+ adds r0, r4, 0
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r1
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ldr r0, _0805001C
+ cmp r2, r0
+ bhi _0804FFCC
+ adds r0, r2, 0x1
+_0804FFCA:
+ strh r0, [r1]
+_0804FFCC:
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08050018
+ cmp r1, r0
+ beq _0804FFE4
+_0804FFD6:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r2, _08050020
+ cmp r0, r2
+ beq _0804FFE4
+ cmp r0, r10
+ bne _0805003E
+_0804FFE4:
+ ldr r0, _08050024
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0x56
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ ldr r0, _08050028
+ cmp r1, r0
+ ble _08050034
+ adds r0, r1, 0
+ ldr r2, _0805002C
+ adds r0, r2
+ movs r1, 0x14
+ bl __divsi3
+ adds r1, r0, 0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08050030
+ bl m4aMPlayTempoControl
+ b _0805003E
+ .align 2, 0
+_08050018: .4byte 0x00002345
+_0805001C: .4byte 0x000003e6
+_08050020: .4byte 0x00004523
+_08050024: .4byte 0x03004854
+_08050028: .4byte 0x000005dc
+_0805002C: .4byte 0xfffffd12
+_08050030: .4byte 0x03007380
+_08050034:
+ ldr r0, _08050098
+ movs r1, 0x80
+ lsls r1, 1
+ bl m4aMPlayTempoControl
+_0805003E:
+ ldr r1, [sp]
+ adds r1, 0x2
+ str r1, [sp]
+ movs r2, 0x6
+ add r9, r2
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ ldr r7, _0805009C
+ ldr r0, [r7]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _0805005C
+ b _0804FED8
+_0805005C:
+ ldr r0, _080500A0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08050088
+ movs r6, 0
+ ldr r3, _0805009C
+ ldr r0, [r3]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08050088
+ movs r2, 0
+ ldr r1, _080500A4
+_08050076:
+ strh r2, [r1]
+ strh r2, [r1, 0x10]
+ adds r1, 0x2
+ adds r6, 0x1
+ ldr r0, [r3]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _08050076
+_08050088:
+ 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
+_08050098: .4byte 0x03007380
+_0805009C: .4byte 0x03004854
+_080500A0: .4byte 0x0202e8cc
+_080500A4: .4byte 0x03002a20
+ thumb_func_end sub_804FE70
+
+ thumb_func_start sub_80500A8
+sub_80500A8: @ 80500A8
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r5, _080500EC
+ ldr r4, [r5]
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 23
+ adds r4, 0xA2
+ adds r4, r0
+ ldrb r3, [r4]
+ ldr r0, [r5]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805018A
+ ldr r0, _080500F0
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x2
+ bne _080500FC
+ ldr r2, _080500F4
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805010A
+ ldrh r0, [r2, 0x28]
+ ldr r1, _080500F8
+ bics r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r6, r0, 31
+ b _0805010A
+ .align 2, 0
+_080500EC: .4byte 0x03004854
+_080500F0: .4byte 0x02024ea4
+_080500F4: .4byte 0x03001770
+_080500F8: .4byte 0x00000201
+_080500FC:
+ ldr r0, _0805015C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805010A
+ movs r6, 0x1
+_0805010A:
+ cmp r6, 0
+ beq _0805018A
+ ldr r4, _08050160
+ ldr r1, [r4]
+ lsls r2, r3, 1
+ adds r0, r1, 0
+ adds r0, 0x9A
+ adds r0, r2
+ adds r1, 0x5C
+ ldrh r0, [r0]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08050164
+ adds r0, r1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ adds r0, 0x54
+ ldrh r4, [r0]
+ bl GetMultiplayerId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl task_tutorial_oak_boy_girl
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08050170
+ ldr r1, _08050168
+ ldr r0, _0805016C
+ b _08050188
+ .align 2, 0
+_0805015C: .4byte 0x03001770
+_08050160: .4byte 0x03004854
+_08050164: .4byte 0x02020004
+_08050168: .4byte 0x03002f90
+_0805016C: .4byte 0x00004523
+_08050170:
+ cmp r0, 0x1
+ bne _08050184
+ ldr r1, _0805017C
+ ldr r0, _08050180
+ b _08050188
+ .align 2, 0
+_0805017C: .4byte 0x03002f90
+_08050180: .4byte 0x00005432
+_08050184:
+ ldr r1, _080501E4
+ ldr r0, _080501E8
+_08050188:
+ strh r0, [r1, 0x4]
+_0805018A:
+ ldr r2, _080501EC
+ ldr r1, [r2]
+ adds r1, 0x7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080501BA
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x56
+ ldrh r3, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x80
+ ble _080501B2
+ subs r0, r3, 0x1
+ strh r0, [r1]
+_080501B2:
+ ldr r0, [r2]
+ adds r0, 0x7E
+ movs r1, 0
+ strb r1, [r0]
+_080501BA:
+ ldr r0, _080501F0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080501DE
+ ldr r0, _080501F4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080501DE
+ ldr r0, [r2]
+ ldr r1, _080501F8
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r2]
+_080501DE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080501E4: .4byte 0x03002f90
+_080501E8: .4byte 0x00002345
+_080501EC: .4byte 0x03004854
+_080501F0: .4byte 0x020297ed
+_080501F4: .4byte 0x03001770
+_080501F8: .4byte 0x0000014b
+ thumb_func_end sub_80500A8
+
+ thumb_func_start sub_80501FC
+sub_80501FC: @ 80501FC
+ push {r4-r6,lr}
+ bl sub_8051474
+ ldr r4, _08050294
+ ldr r0, [r4]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r2, r0, r1
+ ldr r1, [r2]
+ ldr r0, _08050298
+ cmp r1, r0
+ bhi _08050218
+ adds r0, r1, 0x1
+ str r0, [r2]
+_08050218:
+ bl sub_80500A8
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ bl SetLinkDebugValues
+ bl sub_804FE70
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r6, 0xFA
+ lsls r6, 2
+ adds r1, r6, 0
+ bl sub_805194C
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrh r0, [r0]
+ bl sub_8051A3C
+ bl sub_8051B18
+ bl sub_805123C
+ ldr r2, [r4]
+ adds r3, r2, 0
+ adds r3, 0x6F
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0805027E
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ ldr r0, _0805029C
+ cmp r1, r0
+ bls _0805027E
+ adds r0, r2, r5
+ strh r6, [r0]
+ movs r0, 0x1
+ strb r0, [r3]
+ ldr r0, _080502A0
+ bl SetMainCallback2
+_0805027E:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050294: .4byte 0x03004854
+_08050298: .4byte 0x00057e03
+_0805029C: .4byte 0x000003e7
+_080502A0: .4byte sub_8050954
+ thumb_func_end sub_80501FC
+
+ thumb_func_start help_system_is_not_first_time
+help_system_is_not_first_time: @ 80502A4
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r1, 20
+ adds r4, r1, r0
+ lsrs r2, 20
+ adds r5, r2, r0
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080502E2
+ adds r0, r4, 0x2
+ adds r1, r5, 0x2
+ bl StringCompare
+ cmp r0, 0
+ bne _080502F0
+ ldr r0, [r4, 0x8]
+ ldr r2, _080502E8
+ ands r0, r2
+ ldr r1, [r5, 0x8]
+ ands r1, r2
+ cmp r0, r1
+ bne _080502F0
+ ldr r0, [r4, 0xC]
+ ldr r2, _080502EC
+ ands r0, r2
+ ldr r1, [r5, 0xC]
+ ands r1, r2
+ cmp r0, r1
+ bne _080502F0
+_080502E2:
+ movs r0, 0x1
+ b _080502F2
+ .align 2, 0
+_080502E8: .4byte 0xffffff00
+_080502EC: .4byte 0x00ffffff
+_080502F0:
+ movs r0, 0
+_080502F2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end help_system_is_not_first_time
+
+ thumb_func_start sub_80502F8
+sub_80502F8: @ 80502F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, sp
+ movs r4, 0x5
+_08050314:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08050314
+ movs r6, 0
+ mov r1, sp
+ movs r4, 0x4
+_08050328:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08050332
+ adds r6, 0x1
+_08050332:
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08050328
+ cmp r6, 0x5
+ beq _08050386
+ cmp r3, 0x3
+ bhi _08050386
+ movs r4, 0
+ ldr r3, [sp, 0x10]
+ cmp r4, r3
+ bge _0805039E
+ mov r3, r10
+_0805034C:
+ movs r6, 0
+ ldr r7, [sp, 0x10]
+ cmp r6, r7
+ bge _08050394
+ mov r9, r3
+ mov r5, r10
+ lsls r0, r4, 24
+ mov r8, r0
+_0805035C:
+ mov r1, r9
+ ldrh r0, [r1]
+ ldrh r2, [r5]
+ cmp r0, r2
+ bne _0805038A
+ cmp r4, r6
+ beq _0805038A
+ cmp r0, 0xAF
+ bne _08050386
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r0, r10
+ mov r7, r8
+ lsrs r1, r7, 24
+ str r3, [sp, 0xC]
+ bl help_system_is_not_first_time
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _0805038A
+_08050386:
+ movs r0, 0xC
+ b _080504DE
+_0805038A:
+ adds r5, 0x10
+ adds r6, 0x1
+ ldr r0, [sp, 0x10]
+ cmp r6, r0
+ blt _0805035C
+_08050394:
+ adds r3, 0x10
+ adds r4, 0x1
+ ldr r1, [sp, 0x10]
+ cmp r4, r1
+ blt _0805034C
+_0805039E:
+ movs r2, 0
+ mov r1, sp
+ movs r4, 0x4
+_080503A4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080503B2
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080503B2:
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080503A4
+ cmp r2, 0x3
+ bls _080503C2
+ movs r0, 0xD
+ b _080504DE
+_080503C2:
+ cmp r2, 0x3
+ bne _080503CA
+ movs r0, 0xB
+ b _080504DE
+_080503CA:
+ movs r4, 0
+ mov r1, sp
+_080503CE:
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r0, 0x32
+ ble _080503D8
+ b _080504D8
+_080503D8:
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _080503CE
+ cmp r2, 0x1
+ bne _0805042A
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _080503F2
+ movs r0, 0x1
+ b _080504DE
+_080503F2:
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08050400
+ movs r0, 0x2
+ b _080504DE
+_08050400:
+ mov r0, sp
+ movs r3, 0x4
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ ble _0805040E
+ movs r0, 0x3
+ b _080504DE
+_0805040E:
+ mov r0, sp
+ movs r4, 0x6
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ ble _0805041C
+ movs r0, 0x4
+ b _080504DE
+_0805041C:
+ mov r0, sp
+ movs r7, 0x8
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ ble _0805042A
+ movs r0, 0x5
+ b _080504DE
+_0805042A:
+ cmp r2, 0x2
+ bne _080504DC
+ movs r4, 0
+ ldr r5, _08050474
+ mov r1, sp
+ adds r2, r5, 0
+_08050436:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08050442
+ strh r4, [r2]
+ adds r2, 0x2
+_08050442:
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _08050436
+ movs r4, 0
+ ldrsh r3, [r5, r4]
+ lsls r0, r3, 1
+ mov r7, sp
+ adds r1, r7, r0
+ movs r0, 0x2
+ ldrsh r2, [r5, r0]
+ lsls r0, r2, 1
+ add r0, sp
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ cmp r1, r0
+ blt _08050498
+ adds r0, r3, 0
+ cmp r0, 0
+ bne _08050478
+ lsls r0, r2, 16
+ b _080504A2
+ .align 2, 0
+_08050474: .4byte 0x03000520
+_08050478:
+ cmp r0, 0x1
+ bne _08050480
+ lsls r0, r2, 16
+ b _080504AE
+_08050480:
+ cmp r0, 0x2
+ bne _08050488
+ lsls r0, r2, 16
+ b _080504BA
+_08050488:
+ cmp r0, 0x3
+ bne _08050490
+ lsls r0, r2, 16
+ b _080504C6
+_08050490:
+ cmp r0, 0x4
+ bne _080504DC
+ lsls r0, r2, 16
+ b _080504D2
+_08050498:
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080504A8
+ lsls r0, r3, 16
+_080504A2:
+ movs r1, 0x6
+ orrs r0, r1
+ b _080504DE
+_080504A8:
+ cmp r0, 0x1
+ bne _080504B4
+ lsls r0, r3, 16
+_080504AE:
+ movs r1, 0x7
+ orrs r0, r1
+ b _080504DE
+_080504B4:
+ cmp r0, 0x2
+ bne _080504C0
+ lsls r0, r3, 16
+_080504BA:
+ movs r1, 0x8
+ orrs r0, r1
+ b _080504DE
+_080504C0:
+ cmp r0, 0x3
+ bne _080504CC
+ lsls r0, r3, 16
+_080504C6:
+ movs r1, 0x9
+ orrs r0, r1
+ b _080504DE
+_080504CC:
+ cmp r0, 0x4
+ bne _080504DC
+ lsls r0, r3, 16
+_080504D2:
+ movs r1, 0xA
+ orrs r0, r1
+ b _080504DE
+_080504D8:
+ movs r0, 0xE
+ b _080504DE
+_080504DC:
+ movs r0, 0
+_080504DE:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80502F8
+
+ thumb_func_start sub_80504F0
+sub_80504F0: @ 80504F0
+ ldr r1, _080504F8
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080504F8: .4byte 0x0300052c
+ thumb_func_end sub_80504F0
+
+ thumb_func_start unref_sub_80504FC
+unref_sub_80504FC: @ 80504FC
+ ldr r0, _08050504
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08050504: .4byte 0x0300052c
+ thumb_func_end unref_sub_80504FC
+
+ thumb_func_start sub_8050508
+sub_8050508: @ 8050508
+ ldr r1, _08050510
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08050510: .4byte 0x0300052e
+ thumb_func_end sub_8050508
+
+ thumb_func_start unref_sub_8050514
+unref_sub_8050514: @ 8050514
+ ldr r0, _0805051C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0805051C: .4byte 0x0300052e
+ thumb_func_end unref_sub_8050514
+
+ thumb_func_start sub_8050520
+sub_8050520: @ 8050520
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp]
+ mov r8, r1
+ str r3, [sp, 0x4]
+ ldr r0, [sp, 0x30]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r7, _080505DC
+ adds r2, r7, 0
+ movs r1, 0
+ adds r0, r7, 0
+ adds r0, 0xA
+_0805054A:
+ strh r1, [r0]
+ subs r0, 0x2
+ cmp r0, r2
+ bge _0805054A
+ movs r6, 0
+ cmp r6, r9
+ bge _08050580
+ ldr r0, _080505DC
+ mov r12, r0
+ ldr r5, [sp]
+ adds r5, 0x9
+_08050560:
+ movs r3, 0
+ adds r4, r5, 0
+ mov r2, r12
+_08050566:
+ adds r1, r4, r3
+ ldrh r0, [r2]
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _08050566
+ adds r5, 0x10
+ adds r6, 0x1
+ cmp r6, r9
+ blt _08050560
+_08050580:
+ movs r1, 0
+ ldrsh r3, [r7, r1]
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ subs r0, r1
+ strh r0, [r7]
+ ldrh r0, [r7, 0x4]
+ subs r1, r0
+ strh r1, [r7, 0x2]
+ ldrh r1, [r7, 0x6]
+ subs r0, r1
+ strh r0, [r7, 0x4]
+ ldrh r0, [r7, 0x8]
+ subs r1, r0
+ strh r1, [r7, 0x6]
+ subs r0, r3
+ strh r0, [r7, 0x8]
+ movs r3, 0
+ movs r2, 0
+ adds r1, r7, 0
+ movs r6, 0x4
+_080505AA:
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bge _080505B6
+ strh r2, [r1]
+ adds r3, 0x1
+_080505B6:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505AA
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r4, 0
+ ldr r1, _080505DC
+ movs r6, 0x4
+_080505CA:
+ ldrh r2, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ ble _080505E4
+ cmp r0, r3
+ bge _080505E0
+ strh r4, [r1]
+ b _080505E4
+ .align 2, 0
+_080505DC: .4byte 0x03000510
+_080505E0:
+ subs r0, r2, r3
+ strh r0, [r1]
+_080505E4:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505CA
+ ldr r1, _080506C4
+ ldr r2, _080506C8
+ movs r6, 0x4
+_080505F2:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ stm r2!, {r0}
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505F2
+ ldr r1, _080506CC
+ ldr r0, [sp, 0x8]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0x64
+ ldr r4, _080506D0
+ str r3, [r4]
+ movs r6, 0x4
+_08050616:
+ movs r0, 0
+ ldrsh r5, [r7, r0]
+ adds r0, r5, 0
+ muls r0, r3
+ movs r1, 0xA
+ str r3, [sp, 0xC]
+ bl __divsi3
+ adds r5, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r5, r0, 0
+ ldr r3, [sp, 0xC]
+ cmp r4, 0x4
+ ble _08050642
+ adds r5, 0x1
+_08050642:
+ strh r5, [r7]
+ adds r7, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08050616
+ ldr r1, _080506C4
+ ldr r2, _080506D4
+ movs r6, 0x4
+_08050652:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ stm r2!, {r0}
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08050652
+ ldr r4, _080506C4
+ ldr r0, [sp]
+ adds r1, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl sub_80502F8
+ mov r5, r8
+ strb r0, [r5]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ mov r1, r9
+ bl __divsi3
+ mov r3, r9
+ subs r0, r3
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0805068C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_0805068C:
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0xC
+ bne _080506E6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r6, 0
+ ldr r0, _080506D8
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ movs r4, 0x1
+ movs r3, 0x2
+_080506B4:
+ adds r2, r0, 0
+ asrs r2, r6
+ ands r2, r4
+ cmp r2, 0
+ beq _080506DC
+ strh r3, [r1]
+ b _080506DE
+ .align 2, 0
+_080506C4: .4byte 0x03000510
+_080506C8: .4byte 0x03000530
+_080506CC: .4byte 0x0000014d
+_080506D0: .4byte 0x0300055c
+_080506D4: .4byte 0x03000548
+_080506D8: .4byte gUnknown_082165DF
+_080506DC:
+ strh r2, [r1]
+_080506DE:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _080506B4
+_080506E6:
+ ldr r7, _08050740
+ movs r2, 0xFF
+ adds r1, r7, 0
+ movs r6, 0x5
+_080506EE:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xFF
+ ble _080506F8
+ strh r2, [r1]
+_080506F8:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080506EE
+ ldrh r0, [r7]
+ mov r4, r8
+ strb r0, [r4, 0x1]
+ ldrh r0, [r7, 0x2]
+ strb r0, [r4, 0x2]
+ ldrh r0, [r7, 0x4]
+ strb r0, [r4, 0x3]
+ ldrh r0, [r7, 0x6]
+ strb r0, [r4, 0x4]
+ ldrh r0, [r7, 0x8]
+ strb r0, [r4, 0x5]
+ ldrh r0, [r7, 0xA]
+ strb r0, [r4, 0x6]
+ movs r6, 0
+ adds r2, r7, 0
+_0805071E:
+ ldr r5, [sp, 0x4]
+ adds r1, r5, r6
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0805071E
+ 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
+_08050740: .4byte 0x03000510
+ thumb_func_end sub_8050520
+
+ thumb_func_start sub_8050744
+sub_8050744: @ 8050744
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0xC]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp]
+ bl sub_8050520
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8050744
+
+ thumb_func_start sub_8050760
+sub_8050760: @ 8050760
+ push {r4-r6,lr}
+ ldr r0, _08050780
+ ldr r0, [r0]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r0, 0x5A
+ ldrh r4, [r0]
+ movs r2, 0
+ ldr r5, _08050784
+ cmp r1, r5
+ bhi _08050788
+ movs r2, 0x5
+ b _080507DA
+ .align 2, 0
+_08050780: .4byte 0x03004854
+_08050784: .4byte 0x00000383
+_08050788:
+ ldr r3, _0805079C
+ adds r0, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _080507A0
+ cmp r0, r3
+ bhi _080507A4
+ movs r2, 0x4
+ b _080507DA
+ .align 2, 0
+_0805079C: .4byte 0xfffffc7c
+_080507A0: .4byte 0x00000257
+_080507A4:
+ ldr r6, _080507B4
+ adds r0, r1, r6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r3
+ bhi _080507B8
+ movs r2, 0x3
+ b _080507DA
+ .align 2, 0
+_080507B4: .4byte 0xfffffa24
+_080507B8:
+ ldr r3, _080507C8
+ adds r0, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bhi _080507CC
+ movs r2, 0x2
+ b _080507DA
+ .align 2, 0
+_080507C8: .4byte 0xfffff7cc
+_080507CC:
+ ldr r6, _080507F8
+ adds r0, r1, r6
+ lsls r0, 16
+ ldr r1, _080507FC
+ cmp r0, r1
+ bhi _080507DA
+ movs r2, 0x1
+_080507DA:
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl sub_8050508
+ movs r2, 0
+ cmp r4, 0x40
+ bhi _080508BC
+ adds r0, r4, 0
+ subs r0, 0x32
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050804
+ ldr r2, _08050800
+ b _080508BC
+ .align 2, 0
+_080507F8: .4byte 0xfffff31c
+_080507FC: .4byte 0x012b0000
+_08050800: .4byte 0x0000ffff
+_08050804:
+ adds r0, r4, 0
+ subs r0, 0x64
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050818
+ ldr r2, _08050814
+ b _080508BC
+ .align 2, 0
+_08050814: .4byte 0x0000fffe
+_08050818:
+ adds r0, r4, 0
+ subs r0, 0x96
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805082C
+ ldr r2, _08050828
+ b _080508BC
+ .align 2, 0
+_08050828: .4byte 0x0000fffd
+_0805082C:
+ adds r0, r4, 0
+ subs r0, 0xC8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050840
+ ldr r2, _0805083C
+ b _080508BC
+ .align 2, 0
+_0805083C: .4byte 0x0000fffc
+_08050840:
+ adds r0, r4, 0
+ subs r0, 0xFA
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050854
+ ldr r2, _08050850
+ b _080508BC
+ .align 2, 0
+_08050850: .4byte 0x0000fffb
+_08050854:
+ ldr r1, _08050864
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805086C
+ ldr r2, _08050868
+ b _080508BC
+ .align 2, 0
+_08050864: .4byte 0xfffffea2
+_08050868: .4byte 0x0000fffa
+_0805086C:
+ ldr r3, _0805087C
+ adds r0, r4, r3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050884
+ ldr r2, _08050880
+ b _080508BC
+ .align 2, 0
+_0805087C: .4byte 0xfffffe70
+_08050880: .4byte 0x0000fff9
+_08050884:
+ ldr r6, _08050894
+ adds r0, r4, r6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805089C
+ ldr r2, _08050898
+ b _080508BC
+ .align 2, 0
+_08050894: .4byte 0xfffffe0c
+_08050898: .4byte 0x0000fff8
+_0805089C:
+ ldr r1, _080508AC
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _080508B4
+ ldr r2, _080508B0
+ b _080508BC
+ .align 2, 0
+_080508AC: .4byte 0xfffffdda
+_080508B0: .4byte 0x0000fff7
+_080508B4:
+ ldr r0, _080508CC
+ cmp r4, r0
+ bls _080508BC
+ ldr r2, _080508D0
+_080508BC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl sub_80504F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080508CC: .4byte 0x00000257
+_080508D0: .4byte 0x0000fff6
+ thumb_func_end sub_8050760
+
+ thumb_func_start sub_80508D4
+sub_80508D4: @ 80508D4
+ push {lr}
+ ldr r2, _080508F8
+ ldr r1, [r2]
+ adds r1, 0xAA
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0xAA
+ ldrb r1, [r0]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC0
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080508F8: .4byte 0x03004854
+ thumb_func_end sub_80508D4
+
+ thumb_func_start sub_80508FC
+sub_80508FC: @ 80508FC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08050944
+ ldr r0, [r4]
+ adds r0, 0xAA
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl DrawDefaultWindow
+ ldr r1, _08050948
+ ldr r3, _0805094C
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ ldr r0, _08050950
+ movs r1, 0x18
+ movs r2, 0x9
+ bl Print
+ ldr r0, [r4]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ bl sub_80508D4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050944: .4byte 0x03004854
+_08050948: .4byte 0x0000ffff
+_0805094C: .4byte 0x00002d9f
+_08050950: .4byte gUnknown_0842D2C5
+ thumb_func_end sub_80508FC
+
+ thumb_func_start sub_8050954
+sub_8050954: @ 8050954
+ push {r4-r7,lr}
+ bl sub_8051474
+ bl GetMultiplayerId
+ ldr r0, _08050978
+ ldr r0, [r0]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0xC
+ bls _0805096E
+ b _08050CB6
+_0805096E:
+ lsls r0, 2
+ ldr r1, _0805097C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050978: .4byte 0x03004854
+_0805097C: .4byte _08050980
+ .align 2, 0
+_08050980:
+ .4byte _080509B4
+ .4byte _080509F8
+ .4byte _08050A4C
+ .4byte _08050A94
+ .4byte _08050AD0
+ .4byte _08050ADE
+ .4byte _08050B08
+ .4byte _08050B34
+ .4byte _08050B42
+ .4byte _08050B58
+ .4byte _08050BE0
+ .4byte _08050C64
+ .4byte _08050C98
+_080509B4:
+ bl ClearLinkCallback
+ ldr r0, _080509C8
+ movs r1, 0x80
+ lsls r1, 1
+ bl m4aMPlayTempoControl
+ movs r4, 0
+ b _080509E4
+ .align 2, 0
+_080509C8: .4byte 0x03007380
+_080509CC:
+ ldr r0, _080509F0
+ ldr r0, [r0]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080509E4:
+ ldr r0, _080509F4
+ ldrh r0, [r0]
+ cmp r4, r0
+ bcc _080509CC
+ b _08050C82
+ .align 2, 0
+_080509F0: .4byte 0x03004854
+_080509F4: .4byte 0x0202e8cc
+_080509F8:
+ ldr r1, _08050A24
+ ldr r3, [r1]
+ adds r2, r3, 0
+ adds r2, 0x56
+ ldrh r0, [r2]
+ subs r0, 0x20
+ strh r0, [r2]
+ lsls r0, 16
+ adds r4, r1, 0
+ cmp r0, 0
+ bgt _08050A40
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _08050A28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050A2C
+ adds r1, r3, 0
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08050A32
+ .align 2, 0
+_08050A24: .4byte 0x03004854
+_08050A28: .4byte 0x03002fa4
+_08050A2C:
+ adds r1, r3, 0
+ adds r1, 0x6F
+ movs r0, 0x5
+_08050A32:
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _08050A48
+ bl m4aMPlayStop
+_08050A40:
+ bl sub_804E290
+ b _08050CB6
+ .align 2, 0
+_08050A48: .4byte 0x03007400
+_08050A4C:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050A58
+ b _08050C82
+_08050A58:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050A64
+ b _08050CB6
+_08050A64:
+ ldr r4, _08050A90
+ ldr r3, [r4]
+ movs r2, 0xDE
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r5, 0x96
+ lsls r5, 1
+ adds r0, r3, r5
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x5A
+ ldrh r2, [r0]
+ adds r5, 0x94
+ adds r0, r3, r5
+ strh r2, [r0]
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ ldr r1, [r4]
+ b _08050C86
+ .align 2, 0
+_08050A90: .4byte 0x03004854
+_08050A94:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050AA0
+ b _08050CB6
+_08050AA0:
+ ldr r2, _08050AC8
+ ldr r0, _08050ACC
+ ldr r3, [r0]
+ ldrh r0, [r2, 0x4]
+ adds r1, r3, 0
+ adds r1, 0x5A
+ strh r0, [r1]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r1, r3, r0
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r1, r3, 0
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl ResetBlockReceivedFlags
+ b _08050CB6
+ .align 2, 0
+_08050AC8: .4byte 0x03002b80
+_08050ACC: .4byte 0x03004854
+_08050AD0:
+ bl sub_8052228
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050ADC
+ b _08050CB6
+_08050ADC:
+ b _08050C82
+_08050ADE:
+ bl sub_8051C58
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050AEA
+ b _08050CB6
+_08050AEA:
+ ldr r0, _08050AFC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08050B00
+ movs r0, 0x22
+ bl sav12_xor_increment
+ b _08050C82
+ .align 2, 0
+_08050AFC: .4byte 0x03004834
+_08050B00:
+ movs r0, 0x21
+ bl sav12_xor_increment
+ b _08050C82
+_08050B08:
+ ldr r0, _08050B2C
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _08050B30
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ b _08050CB6
+ .align 2, 0
+_08050B2C: .4byte 0x03004854
+_08050B30: .4byte gUnknown_0842D3B5
+_08050B34:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050B40
+ b _08050CB6
+_08050B40:
+ b _08050C82
+_08050B42:
+ ldr r4, _08050B54
+ ldr r0, [r4]
+ adds r0, 0xAA
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80508FC
+ ldr r1, [r4]
+ b _08050C86
+ .align 2, 0
+_08050B54: .4byte 0x03004854
+_08050B58:
+ ldr r0, _08050B80
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08050B88
+ ldr r0, _08050B84
+ ldr r0, [r0]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050B76
+ movs r0, 0x5
+ bl audio_play
+_08050B76:
+ movs r0, 0
+ bl sub_80508D4
+ b _08050CB6
+ .align 2, 0
+_08050B80: .4byte 0x03001770
+_08050B84: .4byte 0x03004854
+_08050B88:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08050BA8
+ ldr r0, _08050BA4
+ ldr r0, [r0]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08050BD4
+ movs r0, 0x5
+ bl audio_play
+ b _08050BD4
+ .align 2, 0
+_08050BA4: .4byte 0x03004854
+_08050BA8:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08050BB8
+ movs r0, 0x5
+ bl audio_play
+ b _08050C82
+_08050BB8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08050BC2
+ b _08050CB6
+_08050BC2:
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _08050BDC
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08050BD4:
+ movs r0, 0x1
+ bl sub_80508D4
+ b _08050CB6
+ .align 2, 0
+_08050BDC: .4byte 0x03004854
+_08050BE0:
+ ldr r6, _08050C10
+ movs r7, 0
+ ldr r0, _08050C14
+ strh r0, [r6]
+ ldr r4, _08050C18
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0xAA
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _08050C50
+ movs r0, 0x4
+ bl IsBagPocketNonEmpty
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050C20
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x2
+ strh r1, [r0]
+ ldr r0, _08050C1C
+ b _08050C48
+ .align 2, 0
+_08050C10: .4byte 0x03002f90
+_08050C14: .4byte 0x00002fff
+_08050C18: .4byte 0x03004854
+_08050C1C: .4byte 0x00009999
+_08050C20:
+ bl sub_810CA00
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08050C40
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _08050C3C
+ b _08050C48
+ .align 2, 0
+_08050C3C: .4byte 0x0000aaaa
+_08050C40:
+ ldr r0, [r4]
+ adds r0, 0x7C
+ strh r5, [r0]
+ ldr r0, _08050C4C
+_08050C48:
+ strh r0, [r6, 0x2]
+ b _08050C82
+ .align 2, 0
+_08050C4C: .4byte 0x00007779
+_08050C50:
+ adds r1, r2, 0
+ adds r1, 0x7C
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08050C60
+ strh r0, [r6, 0x2]
+ subs r1, 0xD
+ b _08050C88
+ .align 2, 0
+_08050C60: .4byte 0x00008888
+_08050C64:
+ ldr r0, _08050C70
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050C78
+ ldr r0, _08050C74
+ b _08050CA4
+ .align 2, 0
+_08050C70: .4byte 0x03004834
+_08050C74: .4byte sub_80510E8
+_08050C78:
+ ldr r0, _08050C90
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+_08050C82:
+ ldr r0, _08050C94
+ ldr r1, [r0]
+_08050C86:
+ adds r1, 0x6F
+_08050C88:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08050CB6
+ .align 2, 0
+_08050C90: .4byte gUnknown_0842D3A5
+_08050C94: .4byte 0x03004854
+_08050C98:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050CB6
+ ldr r0, _08050CE0
+_08050CA4:
+ bl SetMainCallback2
+ ldr r2, _08050CE4
+ ldr r0, [r2]
+ adds r0, 0x6F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0]
+_08050CB6:
+ bl sub_8051B18
+ ldr r0, _08050CE4
+ ldr r0, [r0]
+ adds r0, 0x56
+ ldrh r0, [r0]
+ bl sub_8051A3C
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050CE0: .4byte sub_8050E30
+_08050CE4: .4byte 0x03004854
+ thumb_func_end sub_8050954
+
+ thumb_func_start sub_8050CE8
+sub_8050CE8: @ 8050CE8
+ push {r4,lr}
+ ldr r1, _08050D08
+ ldr r0, [r1]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _08050CFE
+ b _08050E28
+_08050CFE:
+ lsls r0, 2
+ ldr r1, _08050D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050D08: .4byte 0x03004854
+_08050D0C: .4byte _08050D10
+ .align 2, 0
+_08050D10:
+ .4byte _08050D2C
+ .4byte _08050D44
+ .4byte _08050D70
+ .4byte _08050D80
+ .4byte _08050DA6
+ .4byte _08050DEC
+ .4byte _08050E06
+_08050D2C:
+ bl sub_80084A4
+ ldr r0, _08050D40
+ ldr r2, [r0]
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x1
+ b _08050DF8
+ .align 2, 0
+_08050D40: .4byte 0x03004854
+_08050D44:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050E28
+ ldr r0, _08050D68
+ ldr r1, [r0]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r1, _08050D6C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08050E28
+ .align 2, 0
+_08050D68: .4byte 0x03004854
+_08050D6C: .4byte 0x03001bb4
+_08050D70:
+ bl sub_8125E2C
+ ldr r0, _08050D7C
+ ldr r2, [r0]
+ b _08050DEE
+ .align 2, 0
+_08050D7C: .4byte 0x03004854
+_08050D80:
+ ldr r1, [r4]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xA
+ bne _08050E28
+ bl sub_80084A4
+ ldr r1, [r4]
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _08050E28
+_08050DA6:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050E28
+ bl sub_8125E6C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08050DD0
+ ldr r0, _08050DCC
+ ldr r0, [r0]
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ str r1, [r0]
+ b _08050E28
+ .align 2, 0
+_08050DCC: .4byte 0x03004854
+_08050DD0:
+ ldr r0, _08050DE8
+ ldr r1, [r0]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r0, r1, r3
+ str r2, [r0]
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0x3
+ str r0, [r1]
+ b _08050E28
+ .align 2, 0
+_08050DE8: .4byte 0x03004854
+_08050DEC:
+ ldr r2, [r4]
+_08050DEE:
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r2, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+_08050DF8:
+ str r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ str r0, [r1]
+ b _08050E28
+_08050E06:
+ ldr r1, [r4]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x5
+ ble _08050E28
+ ldr r1, _08050E24
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _08050E2A
+ .align 2, 0
+_08050E24: .4byte 0x03001bb4
+_08050E28:
+ movs r0, 0
+_08050E2A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8050CE8
+
+ thumb_func_start sub_8050E30
+sub_8050E30: @ 8050E30
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _08050E50
+ ldr r0, [r1]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xC
+ bls _08050E44
+ b _080510C4
+_08050E44:
+ lsls r0, 2
+ ldr r1, _08050E54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050E50: .4byte 0x03004854
+_08050E54: .4byte _08050E58
+ .align 2, 0
+_08050E58:
+ .4byte _08050E8C
+ .4byte _08050ED8
+ .4byte _08050F18
+ .4byte _08050F6C
+ .4byte _08050F8C
+ .4byte _08050FAA
+ .4byte _08050FD4
+ .4byte _08051004
+ .4byte _08051020
+ .4byte _08051030
+ .4byte _08051054
+ .4byte _08051094
+ .4byte _080510B6
+_08050E8C:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x70
+ ldrh r2, [r0]
+ ldr r0, _08050EB8
+ cmp r2, r0
+ bne _08050E9C
+ b _08050FA2
+_08050E9C:
+ ldr r0, _08050EBC
+ cmp r2, r0
+ beq _08050EA4
+ b _080510C4
+_08050EA4:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrh r2, [r0]
+ ldr r0, _08050EC0
+ cmp r2, r0
+ bne _08050EC4
+ adds r1, 0x6F
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080510C4
+ .align 2, 0
+_08050EB8: .4byte 0x00002222
+_08050EBC: .4byte 0x00001111
+_08050EC0: .4byte 0x00009999
+_08050EC4:
+ ldr r0, _08050ED4
+ cmp r2, r0
+ bne _08050FA2
+ adds r1, 0x6F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080510C4
+ .align 2, 0
+_08050ED4: .4byte 0x0000aaaa
+_08050ED8:
+ ldr r0, [r5]
+ adds r0, 0x6F
+ movs r1, 0x3
+ strb r1, [r0]
+ bl sub_814A7FC
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl Reset
+ ldr r4, _08050F0C
+ ldr r0, [r5]
+ adds r0, 0x7A
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _08050F10
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _08050F14
+ b _08050F4C
+ .align 2, 0
+_08050F0C: .4byte 0x020234cc
+_08050F10: .4byte 0x03002978
+_08050F14: .4byte gUnknown_0842D461
+_08050F18:
+ ldr r1, [r5]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_814A7FC
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl Reset
+ ldr r4, _08050F60
+ ldr r0, [r5]
+ adds r0, 0x7A
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _08050F64
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _08050F68
+_08050F4C:
+ adds r0, r4, 0
+ bl StringAppend
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ b _080510C4
+ .align 2, 0
+_08050F60: .4byte 0x020234cc
+_08050F64: .4byte 0x03002978
+_08050F68: .4byte gUnknown_0842D434
+_08050F6C:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050F78
+ b _080510C4
+_08050F78:
+ ldr r0, _08050F88
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _080510AC
+ .align 2, 0
+_08050F88: .4byte 0x03004854
+_08050F8C:
+ ldr r2, [r5]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _08050FA0
+ b _080510C4
+_08050FA0:
+ adds r1, r2, 0
+_08050FA2:
+ adds r1, 0x6F
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080510C4
+_08050FAA:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _08050FCC
+ movs r1, 0x2
+ movs r2, 0xF
+ bl Print
+ bl sub_80084A4
+ ldr r0, _08050FD0
+ ldr r1, [r0]
+ b _080510AC
+ .align 2, 0
+_08050FCC: .4byte gUnknown_0842C328
+_08050FD0: .4byte 0x03004854
+_08050FD4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510C4
+ ldr r3, _08051000
+ ldr r1, [r3]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r0, r1, r2
+ movs r2, 0
+ str r2, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r1
+ str r2, [r0]
+ b _080510C4
+ .align 2, 0
+_08051000: .4byte 0x03004854
+_08051004:
+ bl sub_8050CE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510C4
+ movs r0, 0x37
+ bl audio_play
+ ldr r0, _0805101C
+ ldr r1, [r0]
+ b _080510AC
+ .align 2, 0
+_0805101C: .4byte 0x03004854
+_08051020:
+ ldr r1, [r5]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_80084A4
+ b _080510C4
+_08051030:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510C4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08051050
+ ldr r1, [r0]
+ b _080510AC
+ .align 2, 0
+_08051050: .4byte 0x03004854
+_08051054:
+ ldr r0, _0805107C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080510C4
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x70
+ ldrh r1, [r0]
+ ldr r0, _08051080
+ cmp r1, r0
+ bne _08051088
+ ldr r0, _08051084
+ bl SetMainCallback2
+ b _080510C4
+ .align 2, 0
+_0805107C: .4byte 0x0202f388
+_08051080: .4byte 0x00002222
+_08051084: .4byte sub_804E538
+_08051088:
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r2, r1
+ str r3, [r0]
+ adds r1, r2, 0
+ b _080510AC
+_08051094:
+ ldr r1, [r5]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x1E
+ ble _080510C4
+ bl sub_800832C
+ ldr r1, [r5]
+_080510AC:
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080510C4
+_080510B6:
+ ldr r0, _080510E0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080510C4
+ ldr r0, _080510E4
+ bl SetMainCallback2
+_080510C4:
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080510E0: .4byte 0x03002fa4
+_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_8050E30
+
+ thumb_func_start sub_80510E8
+sub_80510E8: @ 80510E8
+ push {lr}
+ ldr r1, _08051104
+ ldr r0, [r1]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xA
+ bls _080510FA
+ b _0805121E
+_080510FA:
+ lsls r0, 2
+ ldr r1, _08051108
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08051104: .4byte 0x03004854
+_08051108: .4byte _0805110C
+ .align 2, 0
+_0805110C:
+ .4byte _08051138
+ .4byte _0805116E
+ .4byte _08051190
+ .4byte _080511BC
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _080511D8
+ .4byte _080511F0
+_08051138:
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _0805114A
+ adds r1, 0x6F
+ movs r0, 0x9
+ strb r0, [r1]
+_0805114A:
+ ldr r2, [r3]
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r1, [r0]
+ cmp r1, 0x2
+ bne _0805115A
+ subs r0, 0xD
+ strb r1, [r0]
+_0805115A:
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _0805121E
+ adds r1, 0x6F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _0805121E
+_0805116E:
+ ldr r0, [r3]
+ adds r0, 0x6F
+ movs r1, 0x3
+ strb r1, [r0]
+ bl sub_814A7FC
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _0805118C
+ b _080511AC
+ .align 2, 0
+_0805118C: .4byte gUnknown_0842D41A
+_08051190:
+ ldr r0, [r3]
+ adds r0, 0x6F
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ bl sub_814A7FC
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _080511B8
+_080511AC:
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ b _0805121E
+ .align 2, 0
+_080511B8: .4byte gUnknown_0842D3DC
+_080511BC:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805121E
+ ldr r0, _080511D4
+ ldr r0, [r0]
+ adds r0, 0x6F
+ movs r1, 0x9
+ strb r1, [r0]
+ b _0805121E
+ .align 2, 0
+_080511D4: .4byte 0x03004854
+_080511D8:
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ ldr r0, _080511EC
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0805121E
+ .align 2, 0
+_080511EC: .4byte 0x03004854
+_080511F0:
+ ldr r0, _08051210
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0805121E
+ ldr r0, [r3]
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08051218
+ ldr r0, _08051214
+ bl SetMainCallback2
+ b _0805121E
+ .align 2, 0
+_08051210: .4byte 0x0202f388
+_08051214: .4byte sub_804E538
+_08051218:
+ ldr r0, _08051238
+ bl SetMainCallback2
+_0805121E:
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80510E8
+
+ thumb_func_start sub_805123C
+sub_805123C: @ 805123C
+ push {r4-r6,lr}
+ ldr r0, _0805126C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08051248
+ b _08051404
+_08051248:
+ ldr r4, _08051270
+ ldrh r1, [r4]
+ ldr r0, _08051274
+ cmp r1, r0
+ bne _080512C6
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08051278
+ cmp r1, r0
+ bne _080512B8
+ ldrh r3, [r4, 0x10]
+ ldr r0, _0805127C
+ cmp r3, r0
+ beq _08051298
+ cmp r3, r0
+ bgt _08051284
+ ldr r0, _08051280
+ b _08051286
+ .align 2, 0
+_0805126C: .4byte 0x03002fa4
+_08051270: .4byte 0x03002a20
+_08051274: .4byte 0x00002fff
+_08051278: .4byte 0x00001111
+_0805127C: .4byte 0x00009999
+_08051280: .4byte 0x00008888
+_08051284:
+ ldr r0, _08051290
+_08051286:
+ cmp r3, r0
+ beq _08051298
+ ldr r2, _08051294
+ b _080512A8
+ .align 2, 0
+_08051290: .4byte 0x0000aaaa
+_08051294: .4byte 0x03004854
+_08051298:
+ ldr r2, _080512B0
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x78
+ strh r3, [r1]
+ ldrh r1, [r4, 0x18]
+ adds r0, 0x7A
+ strh r1, [r0]
+_080512A8:
+ ldr r0, [r2]
+ adds r0, 0x70
+ ldr r1, _080512B4
+ b _080512C4
+ .align 2, 0
+_080512B0: .4byte 0x03004854
+_080512B4: .4byte 0x00001111
+_080512B8:
+ ldr r0, _080512F4
+ cmp r1, r0
+ bne _080512C6
+ ldr r0, _080512F8
+ ldr r0, [r0]
+ adds r0, 0x70
+_080512C4:
+ strh r1, [r0]
+_080512C6:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _080512D2
+ b _08051404
+_080512D2:
+ ldr r2, _080512F8
+ ldr r0, [r2]
+ adds r0, 0x70
+ ldrh r1, [r0]
+ ldr r0, _080512FC
+ cmp r1, r0
+ bne _080512E2
+ b _08051404
+_080512E2:
+ ldr r0, _080512F4
+ cmp r1, r0
+ bne _080512EA
+ b _08051404
+_080512EA:
+ movs r4, 0
+ ldr r6, _08051300
+ adds r5, r2, 0
+ b _0805134E
+ .align 2, 0
+_080512F4: .4byte 0x00002222
+_080512F8: .4byte 0x03004854
+_080512FC: .4byte 0x00001111
+_08051300: .4byte 0x00002fff
+_08051304:
+ ldr r1, _08051328
+ lsls r2, r4, 1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _08051348
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ ldr r0, _0805132C
+ cmp r1, r0
+ beq _08051340
+ cmp r1, r0
+ bgt _08051334
+ ldr r0, _08051330
+ b _0805133C
+ .align 2, 0
+_08051328: .4byte 0x03002a20
+_0805132C: .4byte 0x00008888
+_08051330: .4byte 0x00007779
+_08051334:
+ ldr r0, _08051360
+ cmp r1, r0
+ beq _08051340
+ ldr r0, _08051364
+_0805133C:
+ cmp r1, r0
+ bne _08051348
+_08051340:
+ ldr r0, [r5]
+ adds r0, 0x70
+ adds r0, r2
+ strh r1, [r0]
+_08051348:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805134E:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08051304
+ movs r4, 0
+ b _0805136E
+ .align 2, 0
+_08051360: .4byte 0x00009999
+_08051364: .4byte 0x0000aaaa
+_08051368:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805136E:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _0805138A
+ ldr r0, _0805139C
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08051368
+_0805138A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08051404
+ movs r4, 0
+ ldr r5, _080513A0
+ b _080513AA
+ .align 2, 0
+_0805139C: .4byte 0x03004854
+_080513A0: .4byte 0x00007779
+_080513A4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080513AA:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _080513C6
+ ldr r0, _080513E0
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080513A4
+_080513C6:
+ ldr r5, _080513E4
+ movs r6, 0
+ ldr r0, _080513E8
+ strh r0, [r5]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080513F0
+ ldr r0, _080513EC
+ strh r0, [r5, 0x2]
+ b _08051404
+ .align 2, 0
+_080513E0: .4byte 0x03004854
+_080513E4: .4byte 0x03002f90
+_080513E8: .4byte 0x00002fff
+_080513EC: .4byte 0x00002222
+_080513F0:
+ ldr r0, _0805140C
+ strh r0, [r5, 0x2]
+ ldr r0, _08051410
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ strh r4, [r5, 0x6]
+_08051404:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805140C: .4byte 0x00001111
+_08051410: .4byte 0x03004854
+ thumb_func_end sub_805123C
+
+ thumb_func_start sub_8051414
+sub_8051414: @ 8051414
+ push {lr}
+ sub sp, 0x14
+ adds r1, r0, 0
+ movs r0, 0xF0
+ lsls r0, 7
+ str r0, [sp]
+ movs r0, 0xA0
+ lsls r0, 7
+ str r0, [sp, 0x4]
+ mov r3, sp
+ ldr r0, _08051470
+ ldr r0, [r0]
+ mov r12, r0
+ movs r0, 0xA2
+ lsls r0, 1
+ add r0, r12
+ ldrh r2, [r0]
+ movs r0, 0x78
+ subs r0, r2
+ strh r0, [r3, 0x8]
+ movs r0, 0xA3
+ lsls r0, 1
+ add r0, r12
+ ldrh r2, [r0]
+ movs r0, 0x50
+ subs r0, r2
+ strh r0, [r3, 0xA]
+ mov r2, sp
+ movs r3, 0xA1
+ lsls r3, 1
+ add r3, r12
+ ldrh r0, [r3]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r3]
+ strh r0, [r2, 0xE]
+ mov r0, r12
+ adds r0, 0x54
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ mov r0, sp
+ movs r2, 0x1
+ bl BgAffineSet
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051470: .4byte 0x03004854
+ thumb_func_end sub_8051414
+
+ thumb_func_start sub_8051474
+sub_8051474: @ 8051474
+ push {lr}
+ ldr r0, _080514A0
+ ldr r3, [r0]
+ adds r1, r3, 0
+ adds r1, 0x54
+ ldrh r2, [r1]
+ adds r0, r3, 0
+ adds r0, 0x58
+ strh r2, [r0]
+ subs r0, 0x2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r3, r1
+ bl sub_8051414
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080514A0: .4byte 0x03004854
+ thumb_func_end sub_8051474
+
+ thumb_func_start sub_80514A4
+sub_80514A4: @ 80514A4
+ ldr r1, _080514E8
+ ldr r0, _080514EC
+ ldr r2, [r0]
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ adds r3, 0x4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080514E8: .4byte 0x04000020
+_080514EC: .4byte 0x03004854
+ thumb_func_end sub_80514A4
+
+ thumb_func_start sub_80514F0
+sub_80514F0: @ 80514F0
+ ldr r1, _0805151C
+ ldr r0, _08051520
+ ldr r3, [r0]
+ movs r0, 0xA2
+ lsls r0, 1
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA3
+ lsls r0, 1
+ adds r3, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0805151C: .4byte 0x04000014
+_08051520: .4byte 0x03004854
+ thumb_func_end sub_80514F0
+
+ thumb_func_start sub_8051524
+sub_8051524: @ 8051524
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r0, r1
+ strh r0, [r2, 0x34]
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _08051542
+ adds r0, 0x7
+_08051542:
+ asrs r0, 3
+ strh r0, [r2, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _08051550
+ adds r0, 0x7
+_08051550:
+ asrs r0, 3
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08051568
+ adds r0, r2, 0
+ bl DestroySprite
+_08051568:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051524
+
+ thumb_func_start sub_805156C
+sub_805156C: @ 805156C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl Random
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0x1
+ ands r1, r0
+ adds r0, r1, 0x1
+ cmp r0, 0
+ beq _08051628
+ ldr r0, _08051638
+ mov r9, r0
+ ldr r2, _0805163C
+ mov r10, r2
+ adds r6, r1, 0x1
+ movs r3, 0x1F
+ mov r8, r3
+ movs r7, 0x10
+_08051598:
+ bl Random
+ ldr r1, _08051640
+ ldr r4, [r1]
+ adds r4, 0x54
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x40
+ lsls r0, 1
+ add r0, r9
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ bge _080515CC
+ adds r1, 0x3
+_080515CC:
+ asrs r1, 2
+ lsls r0, r2, 1
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080515DC
+ adds r0, 0x3
+_080515DC:
+ asrs r2, r0, 2
+ adds r1, 0x78
+ adds r2, 0x50
+ ldr r0, _08051644
+ movs r3, 0x1
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ mov r3, r10
+ adds r4, r5, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ ands r0, r1
+ subs r0, r7, r0
+ strh r0, [r4, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r8
+ ands r0, r2
+ subs r0, r7, r0
+ strh r0, [r4, 0x30]
+ ldr r3, _08051648
+ adds r5, r3
+ ldr r0, _0805164C
+ str r0, [r5]
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08051598
+_08051628:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051638: .4byte gUnknown_08208344
+_0805163C: .4byte 0x02020004
+_08051640: .4byte 0x03004854
+_08051644: .4byte gSpriteTemplate_82164FC
+_08051648: .4byte 0x02020020
+_0805164C: .4byte sub_8051524
+ thumb_func_end sub_805156C
+
+ thumb_func_start sub_8051650
+sub_8051650: @ 8051650
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0805167C
+ adds r0, r4, 0
+ bl DestroySprite
+_0805167C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051650
+
+ thumb_func_start sub_8051684
+sub_8051684: @ 8051684
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xC
+ negs r1, r1
+ cmp r0, r1
+ bge _080516A8
+ ldr r0, _080516C0
+ strh r0, [r2, 0x26]
+_080516A8:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080516BC
+ adds r0, r2, 0
+ bl DestroySprite
+_080516BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080516C0: .4byte 0x0000fff4
+ thumb_func_end sub_8051684
+
+ thumb_func_start sub_80516C4
+sub_80516C4: @ 80516C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080516F4
+ ldr r3, [r2]
+ lsls r4, r0, 1
+ adds r2, r3, 0
+ adds r2, 0x80
+ adds r2, r4
+ strh r1, [r2]
+ lsls r0, 4
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r2
+ adds r3, r0
+ adds r0, r3, 0
+ bl sub_804E844
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080516F4: .4byte 0x03004854
+ thumb_func_end sub_80516C4
+
+ thumb_func_start unref_sub_80516F8
+unref_sub_80516F8: @ 80516F8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080517B8
+ adds r4, r0, r1
+ ldr r6, _080517BC
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _0805180C
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080517D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _08051730
+ strh r1, [r4, 0x8]
+_08051730:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x64
+ bne _080517A0
+ ldr r0, _080517C0
+ ldr r0, [r0]
+ adds r0, 0x4
+ movs r1, 0x14
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl ZeroFillWindowRect
+ movs r0, 0x4
+ movs r1, 0x4
+ movs r2, 0xA
+ movs r3, 0xC
+ bl DrawDefaultWindow
+ movs r2, 0
+ ldr r6, _080517C4
+_0805175C:
+ adds r4, r2, 0x1
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08051784
+ ldr r1, _080517C8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r2, 25
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x5
+ bl Print
+_08051784:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ ldr r0, _080517CC
+ movs r1, 0x1
+ movs r2, 0xF
+ bl Print
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _0805175C
+_080517A0:
+ ldr r0, _080517D0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805180C
+ bl sub_8007E4C
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0805180C
+ .align 2, 0
+_080517B8: .4byte 0x03004b20
+_080517BC: .4byte 0x03002fa4
+_080517C0: .4byte 0x03004854
+_080517C4: .4byte 0x03002974
+_080517C8: .4byte gUnknown_08216284
+_080517CC: .4byte gUnknown_0842D373
+_080517D0: .4byte 0x03001770
+_080517D4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080517E6
+ ldr r0, _08051814
+ movs r1, 0x3
+ movs r2, 0xA
+ bl Print
+_080517E6:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080517F8
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080517F8:
+ ldr r0, _08051818
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0805180C
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ bne _0805180C
+ adds r0, r5, 0
+ bl DestroyTask
+_0805180C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051814: .4byte gUnknown_0842D390
+_08051818: .4byte 0x03002a68
+ thumb_func_end unref_sub_80516F8
+
+ thumb_func_start sub_805181C
+sub_805181C: @ 805181C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08051858
+ cmp r0, 0x1
+ bgt _08051832
+ cmp r0, 0
+ beq _08051838
+ b _080518BE
+_08051832:
+ cmp r0, 0x2
+ beq _08051872
+ b _080518BE
+_08051838:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x58
+ ble _080518BE
+ movs r0, 0x58
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x38
+ bl audio_play
+ b _080518BE
+_08051858:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080518BE
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _080518BE
+_08051872:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB0
+ ble _080518BE
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ adds r1, r0, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080518AC
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r0, _080518A8
+ movs r2, 0x14
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x2
+ bl CreateSprite
+ b _080518BE
+ .align 2, 0
+_080518A8: .4byte gSpriteTemplate_821657C
+_080518AC:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080518C8
+ strh r0, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080518BE:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080518C8: .4byte 0x0000fff0
+ thumb_func_end sub_805181C
+
+ thumb_func_start sub_80518CC
+sub_80518CC: @ 80518CC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08051908
+ cmp r0, 0x1
+ bgt _080518E2
+ cmp r0, 0
+ beq _080518E8
+ b _0805193C
+_080518E2:
+ cmp r0, 0x2
+ beq _0805191E
+ b _0805193C
+_080518E8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5C
+ ble _0805193C
+ movs r0, 0x5C
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x15
+ bl audio_play
+ b _0805193C
+_08051908:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0805193C
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0805193C
+_0805191E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB0
+ ble _0805193C
+ ldr r0, _08051948
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0805193C:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051948: .4byte 0x03004854
+ thumb_func_end sub_80518CC
+
+ thumb_func_start sub_805194C
+sub_805194C: @ 805194C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r1, _08051978
+ ldr r1, [r1]
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ cmp r2, r0
+ bcs _08051972
+ adds r0, r2, 0x2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ adds r1, r3, 0
+ bl sub_805197C
+_08051972:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051978: .4byte 0x03004854
+ thumb_func_end sub_805194C
+
+ thumb_func_start sub_805197C
+sub_805197C: @ 805197C
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r7, _08051A0C
+ lsrs r0, 10
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r1, 0
+ bge _08051994
+ adds r0, r1, 0x7
+_08051994:
+ asrs r4, r0, 3
+ movs r3, 0
+ cmp r3, r4
+ bge _080519BC
+ ldr r0, _08051A10
+ adds r6, r0, 0
+ adds r0, 0x10
+ adds r5, r0, 0
+ adds r2, r7, 0
+ adds r2, 0x56
+ adds r0, r7, 0
+ adds r3, r4, 0
+_080519AC:
+ strh r6, [r0, 0x16]
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080519AC
+ adds r3, r4, 0
+_080519BC:
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080519C4
+ adds r0, r1, 0x7
+_080519C4:
+ asrs r2, r0, 3
+ lsls r0, r2, 3
+ subs r2, r1, r0
+ cmp r2, 0
+ beq _080519E2
+ lsls r0, r3, 1
+ adds r0, r7
+ ldr r4, _08051A14
+ adds r1, r2, r4
+ strh r1, [r0, 0x16]
+ adds r0, 0x56
+ adds r4, 0x10
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r3, 0x1
+_080519E2:
+ cmp r3, 0x7
+ bgt _08051A06
+ ldr r0, _08051A18
+ adds r4, r0, 0
+ adds r0, 0x10
+ adds r2, r0, 0
+ lsls r1, r3, 1
+ adds r0, r1, 0
+ adds r0, 0x56
+ adds r0, r7
+ adds r1, r7
+_080519F8:
+ strh r4, [r1, 0x16]
+ strh r2, [r0]
+ adds r0, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _080519F8
+_08051A06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051A0C: .4byte 0x06006000
+_08051A10: .4byte 0x000081e9
+_08051A14: .4byte 0xffff81e1
+_08051A18: .4byte 0x000081e1
+ thumb_func_end sub_805197C
+
+ thumb_func_start sub_8051A1C
+sub_8051A1C: @ 8051A1C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08051A34
+ muls r0, r1
+ cmp r0, 0
+ bge _08051A2E
+ ldr r1, _08051A38
+ adds r0, r1
+_08051A2E:
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08051A34: .4byte 0x00057e40
+_08051A38: .4byte 0x0000ffff
+ thumb_func_end sub_8051A1C
+
+ thumb_func_start sub_8051A3C
+sub_8051A3C: @ 8051A3C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8051A1C
+ adds r5, r0, 0
+ ldr r0, _08051ABC
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x5A
+ ldrh r0, [r1]
+ cmp r0, r5
+ bcs _08051A5A
+ strh r5, [r1]
+_08051A5A:
+ movs r6, 0
+_08051A5C:
+ mov r0, sp
+ adds r4, r0, r6
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ strb r0, [r4]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r5, r0, 0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _08051A5C
+ ldr r2, _08051AC0
+ mov r0, sp
+ ldr r3, _08051AC4
+ adds r1, r3, 0
+ ldrb r0, [r0, 0x4]
+ adds r0, r1, r0
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x4
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0]
+ adds r1, r0
+ strh r1, [r2]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051ABC: .4byte 0x03004854
+_08051AC0: .4byte 0x06006458
+_08051AC4: .4byte 0x00008172
+ thumb_func_end sub_8051A3C
+
+ thumb_func_start sub_8051AC8
+sub_8051AC8: @ 8051AC8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 16
+ lsrs r5, r4, 16
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08051AEC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsrs r1, r4, 17
+ subs r0, r1
+ strh r0, [r6]
+_08051AEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051AC8
+
+ thumb_func_start sub_8051AF4
+sub_8051AF4: @ 8051AF4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bge _08051B06
+ adds r0, r2, 0x1
+ strh r0, [r1]
+_08051B06:
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08051B14
+ subs r0, r2, 0x1
+ strh r0, [r1]
+_08051B14:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051AF4
+
+ thumb_func_start sub_8051B18
+sub_8051B18: @ 8051B18
+ push {r4,lr}
+ ldr r4, _08051B3C
+ ldr r0, [r4]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8051AF4
+ ldr r0, [r4]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8051AF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051B3C: .4byte 0x03004854
+ thumb_func_end sub_8051B18
+
+ thumb_func_start sub_8051B40
+sub_8051B40: @ 8051B40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r5, 0x8
+ cmp r1, 0x9
+ bhi _08051B50
+ movs r5, 0x10
+_08051B50:
+ ldrh r0, [r4]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _08051B6E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ lsrs r1, r5, 1
+ subs r0, r1
+ b _08051B82
+_08051B6E:
+ cmp r1, 0
+ bge _08051B76
+ adds r0, 0x1
+ strh r0, [r4]
+_08051B76:
+ ldrh r1, [r4]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08051B84
+ subs r0, r1, 0x1
+_08051B82:
+ strh r0, [r4]
+_08051B84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051B40
+
+ thumb_func_start sub_8051B8C
+sub_8051B8C: @ 8051B8C
+ push {r4,r5,lr}
+ ldr r5, _08051BE4
+ ldr r2, [r5]
+ movs r4, 0x98
+ lsls r4, 1
+ adds r0, r2, r4
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08051BAC
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+_08051BAC:
+ ldr r0, [r5]
+ adds r2, r0, r4
+ ldr r1, [r2]
+ adds r1, 0x1
+ str r1, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r2
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8051B40
+ ldr r1, [r5]
+ movs r3, 0xA3
+ lsls r3, 1
+ adds r0, r1, r3
+ adds r1, r4
+ ldrh r1, [r1]
+ bl sub_8051B40
+ ldr r2, [r5]
+ adds r0, r2, r4
+ ldr r0, [r0]
+ cmp r0, 0x14
+ beq _08051BE8
+ movs r0, 0
+ b _08051BFC
+ .align 2, 0
+_08051BE4: .4byte 0x03004854
+_08051BE8:
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0xA3
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, 0x1
+_08051BFC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8051B8C
+
+ thumb_func_start sub_8051C04
+sub_8051C04: @ 8051C04
+ ldr r1, _08051C20
+ ldr r2, [r1]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x24]
+ adds r3, 0x2
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_08051C20: .4byte 0x03004854
+ thumb_func_end sub_8051C04
+
+ thumb_func_start sub_8051C24
+sub_8051C24: @ 8051C24
+ push {lr}
+ ldr r2, _08051C4C
+ ldr r0, _08051C50
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 1
+ ldr r3, _08051C54
+ adds r2, r3
+ adds r2, r0, r2
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ ldrh r0, [r2]
+ cmp r0, r1
+ bcs _08051C48
+ strh r1, [r2]
+_08051C48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C4C: .4byte 0x02025734
+_08051C50: .4byte 0x03004854
+_08051C54: .4byte 0x0000096c
+ thumb_func_end sub_8051C24
+
+ thumb_func_start sub_8051C58
+sub_8051C58: @ 8051C58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r1, _08051C7C
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bls _08051C72
+ b _0805200A
+_08051C72:
+ lsls r0, 2
+ ldr r1, _08051C80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08051C7C: .4byte 0x03004854
+_08051C80: .4byte _08051C84
+ .align 2, 0
+_08051C84:
+ .4byte _08051CA0
+ .4byte _08051CB6
+ .4byte _08051CD0
+ .4byte _08051D20
+ .4byte _08051F44
+ .4byte _08051F58
+ .4byte _08051FF8
+_08051CA0:
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x11
+ str r1, [r0]
+ b _0805200A
+_08051CB6:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ subs r0, 0xA
+ str r0, [r2]
+ cmp r0, 0
+ blt _08051CCA
+ b _0805200A
+_08051CCA:
+ movs r0, 0
+ str r0, [r2]
+ b _08051FE2
+_08051CD0:
+ ldr r1, [r2]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ bgt _08051CE4
+ b _0805200A
+_08051CE4:
+ movs r6, 0
+_08051CE6:
+ ldr r4, _08051D18
+ ldr r0, [r4]
+ adds r0, 0x50
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08051D1C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x2
+ bls _08051CE6
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08051FE2
+ .align 2, 0
+_08051D18: .4byte 0x03004854
+_08051D1C: .4byte 0x02020004
+_08051D20:
+ movs r0, 0x4
+ movs r1, 0x2
+ movs r2, 0x19
+ movs r3, 0x11
+ bl DrawDefaultWindow
+ ldr r0, _08051F14
+ movs r1, 0x5
+ movs r2, 0x3
+ movs r3, 0xA0
+ bl Free
+ movs r6, 0
+ ldr r1, _08051F18
+ ldr r0, [r1]
+ adds r0, 0x88
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r2, sp
+ adds r2, 0x16
+ str r2, [sp, 0x30]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _08051E04
+ mov r8, r1
+ ldr r0, _08051F1C
+ mov r10, r0
+_08051D56:
+ mov r1, r8
+ ldr r2, [r1]
+ movs r1, 0xB2
+ lsls r1, 1
+ adds r0, r2, r1
+ adds r0, r6
+ ldrb r5, [r0]
+ mov r7, r9
+ lsls r1, r5, 4
+ adds r1, r2
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r1, r2
+ adds r0, r7, 0
+ bl StringCopy
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrb r1, [r0, 0x1A]
+ adds r0, r7, 0
+ bl ConvertInternationalString
+ adds r0, r7, 0
+ ldr r1, _08051F20
+ bl StringAppend
+ mov r2, r8
+ ldr r0, [r2]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ adds r5, r6, 0x1
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ adds r7, r0, 0
+ movs r1, 0
+ strb r1, [r7]
+ movs r0, 0xAD
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ adds r7, 0x3
+ ldr r0, _08051F24
+ adds r4, r0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x58
+ movs r3, 0
+ bl sub_8072C74
+ adds r7, r0, 0
+ add r1, sp, 0xC
+ movs r2, 0x9D
+ movs r3, 0
+ bl sub_8072C74
+ mov r2, r8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0xAB
+ ldr r3, _08051F28
+ adds r1, 0x88
+ ldrb r2, [r1]
+ adds r3, r2, r3
+ ldr r1, _08051F2C
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r2, r6, 0
+ muls r2, r1
+ ldrb r3, [r3]
+ adds r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x5
+ bl Print
+ lsls r5, 16
+ lsrs r6, r5, 16
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _08051D56
+_08051E04:
+ ldr r6, _08051F18
+ ldr r0, [r6]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r6]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ ldr r1, _08051F30
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r0, [r6]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r7, 0
+ movs r2, 0x79
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r1, 0
+ strb r1, [r7]
+ movs r0, 0xAD
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x8E
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F34
+ bl StringCopy
+ ldr r0, [r6]
+ adds r0, 0xAB
+ movs r1, 0x5
+ movs r2, 0xD
+ bl Print
+ ldr r0, [r6]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [sp, 0x30]
+ adds r1, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r6]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ ldr r1, _08051F38
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r1, r9
+ movs r2, 0x66
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F3C
+ bl StringAppend
+ adds r7, r0, 0
+ ldr r1, [sp, 0x30]
+ movs r2, 0x88
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F40
+ bl StringCopy
+ ldr r0, [r6]
+ adds r0, 0xAB
+ movs r1, 0x5
+ movs r2, 0xF
+ bl Print
+ ldr r1, [r6]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08051FE2
+ .align 2, 0
+_08051F14: .4byte gUnknown_0842D479
+_08051F18: .4byte 0x03004854
+_08051F1C: .4byte 0x03002970
+_08051F20: .4byte gUnknown_0842D498
+_08051F24: .4byte 0x03002978
+_08051F28: .4byte gUnknown_082165E9
+_08051F2C: .4byte gUnknown_082165EE
+_08051F30: .4byte gUnknown_0842D4B7
+_08051F34: .4byte gUnknown_0842D4C5
+_08051F38: .4byte gUnknown_0842D49F
+_08051F3C: .4byte gUnknown_0842D4AD
+_08051F40: .4byte gUnknown_0842D4B2
+_08051F44:
+ ldr r0, _08051F54
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805200A
+ ldr r1, [r2]
+ b _08051FE2
+ .align 2, 0
+_08051F54: .4byte 0x03001770
+_08051F58:
+ bl sub_8071EF4
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ movs r6, 0
+ add r5, sp, 0x28
+ ldr r0, _08051FEC
+ ldr r0, [r0]
+ adds r3, r0, 0
+ adds r3, 0x80
+ add r2, sp, 0x20
+_08051F76:
+ lsls r1, r6, 1
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08051F86
+ adds r1, r2, r1
+ subs r0, 0x85
+ strh r0, [r1]
+_08051F86:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08051F76
+ bl sub_8050760
+ ldr r4, _08051FEC
+ ldr r3, [r4]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r3, r1
+ adds r1, r3, 0
+ adds r1, 0x88
+ ldrb r2, [r1]
+ subs r1, 0x2E
+ ldrh r1, [r1]
+ str r1, [sp]
+ adds r1, r5, 0
+ add r3, sp, 0x4
+ bl sub_8050520
+ ldr r1, [r4]
+ adds r1, 0xAB
+ adds r0, r5, 0
+ bl sub_805201C
+ ldr r0, _08051FF0
+ movs r1, 0x6
+ bl CreateTask
+ ldr r0, [r4]
+ adds r0, 0xAB
+ movs r1, 0x1
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ ldr r0, _08051FF4
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r5, 0
+ bl sub_810CA34
+ ldr r1, [r4]
+_08051FE2:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0805200A
+ .align 2, 0
+_08051FEC: .4byte 0x03004854
+_08051FF0: .4byte sub_8052BD0
+_08051FF4: .4byte 0x0203855e
+_08051FF8:
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805200A
+ bl sub_8051C24
+ movs r0, 0x1
+ b _0805200C
+_0805200A:
+ movs r0, 0
+_0805200C:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8051C58
+
+ thumb_func_start sub_805201C
+sub_805201C: @ 805201C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0xFF
+ strb r0, [r6]
+ ldr r1, _080520B0
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r1, _080520B4
+ adds r0, r6, 0
+ bl StringAppend
+ ldr r1, _080520B8
+ adds r0, r6, 0
+ bl StringAppend
+ adds r0, r5, 0
+ bl sub_810C9B0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_810C9E8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080520BC
+ adds r0, r6, 0
+ bl StringAppend
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ ldr r1, _080520C0
+ adds r0, r6, 0
+ bl StringAppend
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ ldr r1, _080520C4
+ adds r0, r6, 0
+ bl StringAppend
+ ldr r1, _080520C8
+ adds r0, r6, 0
+ bl StringAppend
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080520B0: .4byte gUnknown_083F7EB8
+_080520B4: .4byte gUnknown_0842D368
+_080520B8: .4byte gUnknown_082162C8
+_080520BC: .4byte gUnknown_0842D4D3
+_080520C0: .4byte gUnknown_0842D4E1
+_080520C4: .4byte gUnknown_0842D4F4
+_080520C8: .4byte gUnknown_08216249
+ thumb_func_end sub_805201C
+
+ thumb_func_start sub_80520CC
+sub_80520CC: @ 80520CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ mov r12, r2
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r0, 0
+ cmp r0, r7
+ bge _08052118
+_080520E2:
+ movs r5, 0
+ adds r1, r0, 0x1
+ mov r8, r1
+ cmp r5, r7
+ bge _08052112
+ mov r1, r9
+ adds r6, r1, r0
+_080520F0:
+ ldrb r4, [r6]
+ lsls r1, r4, 2
+ add r1, r12
+ mov r0, r9
+ adds r2, r0, r5
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ add r0, r12
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ bls _0805210C
+ strb r3, [r6]
+ strb r4, [r2]
+_0805210C:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _080520F0
+_08052112:
+ mov r0, r8
+ cmp r0, r7
+ blt _080520E2
+_08052118:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80520CC
+
+ thumb_func_start sub_8052124
+sub_8052124: @ 8052124
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r5, 0
+ ldr r1, _08052144
+ ldr r0, [r1]
+ adds r0, 0x88
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x4
+ str r2, [sp, 0x14]
+ b _08052158
+ .align 2, 0
+_08052144: .4byte 0x03004854
+_08052148:
+ mov r4, sp
+ adds r0, r4, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r1]
+ adds r0, 0x88
+_08052158:
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _08052148
+ movs r5, 0
+ mov r1, r10
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0x88
+ ldrb r2, [r1]
+ cmp r5, r2
+ bcs _080521D6
+ ldr r4, [sp, 0x14]
+ mov r9, r4
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r2, r0
+ mov r8, r2
+ mov r12, r1
+ movs r4, 0xA7
+ lsls r4, 1
+ adds r7, r0, r4
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r6, r0, r1
+_08052188:
+ lsls r4, r5, 2
+ add r4, r9
+ lsls r3, r5, 1
+ adds r3, r5
+ lsls r3, 1
+ mov r2, r8
+ adds r0, r2, r3
+ ldrh r2, [r0]
+ lsls r0, r2, 5
+ subs r0, r2
+ lsls r1, r0, 6
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r1, 6
+ str r1, [r4]
+ adds r0, r7, r3
+ ldrh r2, [r0]
+ lsls r0, r2, 5
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ str r1, [r4]
+ movs r0, 0xFA
+ lsls r0, 2
+ adds r1, r0
+ adds r3, r6, r3
+ ldrh r0, [r3]
+ subs r1, r0
+ str r1, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _08052188
+_080521D6:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, 0x88
+ ldrb r1, [r0]
+ mov r0, sp
+ ldr r2, [sp, 0x14]
+ bl sub_80520CC
+ movs r5, 0
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _08052218
+ mov r2, r10
+ movs r3, 0xB2
+ lsls r3, 1
+_080521FA:
+ ldr r1, [r2]
+ adds r1, r3
+ adds r1, r5
+ mov r4, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r2]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080521FA
+_08052218:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8052124
+
+ thumb_func_start sub_8052228
+sub_8052228: @ 8052228
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08052248
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bls _0805223C
+ b _080524AE
+_0805223C:
+ lsls r0, 2
+ ldr r1, _0805224C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08052248: .4byte 0x03004854
+_0805224C: .4byte _08052250
+ .align 2, 0
+_08052250:
+ .4byte _0805226C
+ .4byte _08052282
+ .4byte _0805229C
+ .4byte _080522B6
+ .4byte _08052464
+ .4byte _0805247E
+ .4byte _080524A4
+_0805226C:
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ str r1, [r0]
+ b _080524AE
+_08052282:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ subs r0, 0xA
+ str r0, [r2]
+ cmp r0, 0
+ blt _08052296
+ b _080524AE
+_08052296:
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+_0805229C:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ adds r0, 0x1
+ str r0, [r2]
+ cmp r0, 0x14
+ bgt _080522B0
+ b _080524AE
+_080522B0:
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+_080522B6:
+ movs r0, 0x4
+ movs r1, 0x2
+ movs r2, 0x19
+ movs r3, 0x11
+ bl DrawDefaultWindow
+ ldr r0, _0805236C
+ movs r1, 0x5
+ movs r2, 0x3
+ movs r3, 0xA0
+ bl Free
+ ldr r6, _08052370
+ adds r0, r6, 0
+ movs r1, 0x8C
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r7, _08052374
+ ldr r1, [r7]
+ adds r1, 0x50
+ strb r0, [r1]
+ ldr r1, _08052378
+ mov r8, r1
+ ldr r2, [r7]
+ adds r2, 0x50
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r5, r8
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r4, _0805237C
+ str r4, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r6, 0
+ movs r1, 0xA4
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ adds r1, 0x51
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x51
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r4, [r0]
+ adds r0, r6, 0
+ movs r1, 0xBC
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ adds r1, 0x52
+ strb r0, [r1]
+ ldr r2, [r7]
+ adds r2, 0x52
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r4, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x1
+ bl StartSpriteAnim
+ bl sub_8052124
+ movs r2, 0
+ mov r8, r2
+ b _0805243C
+ .align 2, 0
+_0805236C: .4byte gUnknown_0842D4CB
+_08052370: .4byte gSpriteTemplate_821645C
+_08052374: .4byte 0x03004854
+_08052378: .4byte 0x02020004
+_0805237C: .4byte SpriteCallbackDummy
+_08052380:
+ ldr r1, [r7]
+ movs r2, 0xB2
+ lsls r2, 1
+ adds r0, r1, r2
+ add r0, r8
+ ldrb r5, [r0]
+ adds r2, r1, 0
+ adds r2, 0xAB
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ mov r6, r8
+ adds r6, 0x1
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xAD
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ ldr r0, _08052458
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, [r7]
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 1
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x6C
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ ldr r0, [r7]
+ movs r1, 0xA7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x84
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x9C
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xAB
+ ldr r2, _0805245C
+ adds r1, 0x88
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r2, r8
+ muls r2, r1
+ adds r2, 0x8
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x5
+ bl Print
+ lsls r6, 16
+ lsrs r6, 16
+ mov r8, r6
+_0805243C:
+ ldr r0, [r7]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _08052380
+ ldr r0, _08052460
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+ .align 2, 0
+_08052458: .4byte 0x03002978
+_0805245C: .4byte gUnknown_082165F3
+_08052460: .4byte 0x03004854
+_08052464:
+ ldr r2, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ ble _080524AE
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _080524AE
+_0805247E:
+ ldr r0, _0805249C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080524AE
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _080524A0
+ ldr r1, [r0]
+_08052494:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080524AE
+ .align 2, 0
+_0805249C: .4byte 0x03001770
+_080524A0: .4byte 0x03004854
+_080524A4:
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080524B0
+_080524AE:
+ movs r0, 0
+_080524B0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8052228
+
+ thumb_func_start unref_sub_80524BC
+unref_sub_80524BC: @ 80524BC
+ push {r4,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0805251C
+ bl SetVBlankCallback
+ ldr r4, _08052520
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ ldr r0, _08052524
+ ldrh r0, [r0, 0x20]
+ bl SeedRng
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xAA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r1, _08052528
+ movs r0, 0xFA
+ lsls r0, 5
+ strh r0, [r1, 0x1A]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ ldr r0, _0805252C
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805251C: .4byte sub_804E2D8
+_08052520: .4byte gWindowConfig_81E6CE4
+_08052524: .4byte 0x03001770
+_08052528: .4byte 0x03000560
+_0805252C: .4byte sub_8052AF8
+ thumb_func_end unref_sub_80524BC
+
+ thumb_func_start sub_8052530
+sub_8052530: @ 8052530
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x98
+ ldr r1, _080525C8
+ mov r0, sp
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0
+ bl Print
+ ldr r4, _080525CC
+ movs r1, 0x1A
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x6
+ movs r2, 0
+ bl Print
+ movs r6, 0
+ mov r2, sp
+ adds r2, 0x3
+ str r2, [sp, 0x84]
+ mov r3, sp
+ adds r3, 0x6
+ str r3, [sp, 0x88]
+ mov r0, sp
+ adds r0, 0x9
+ str r0, [sp, 0x8C]
+ mov r1, sp
+ adds r1, 0xC
+ str r1, [sp, 0x90]
+ adds r2, 0xC
+ str r2, [sp, 0x94]
+ mov r8, r4
+ mov r7, sp
+ ldr r3, _080525D0
+ mov r9, r3
+ ldr r0, _080525D4
+ mov r10, r0
+_0805259E:
+ mov r1, r8
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, r6
+ bne _080525D8
+ movs r0, 0xEF
+ strb r0, [r7]
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ adds r1, 0x1
+ bl itemid_copy_name
+ b _080525F8
+ .align 2, 0
+_080525C8: .4byte gUnknown_082165FA
+_080525CC: .4byte 0x03000560
+_080525D0: .4byte gBerries
+_080525D4: .4byte gUnknown_082165F8
+_080525D8:
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl itemid_copy_name
+ movs r0, 0
+ strb r0, [r7, 0x6]
+ movs r0, 0xFF
+ strb r0, [r7, 0x7]
+_080525F8:
+ lsls r5, r6, 1
+ adds r5, r6
+ adds r5, 0x3
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, sp
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl Print
+ mov r4, r8
+ adds r4, 0x1
+ adds r4, r6, r4
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x15]
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x16]
+ ldr r0, [sp, 0x84]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x17]
+ ldr r0, [sp, 0x88]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x18]
+ ldr r0, [sp, 0x8C]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x19]
+ ldr r0, [sp, 0x90]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x1A]
+ ldr r0, [sp, 0x94]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r2, 0x1
+ negs r2, r2
+ add r3, sp, 0x80
+ strb r2, [r3]
+ movs r0, 0xFF
+ strb r0, [r7, 0x11]
+ mov r0, sp
+ movs r1, 0x7
+ adds r2, r5, 0
+ bl Print
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080526EC
+ b _0805259E
+_080526EC:
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _080527A4
+ ldr r1, _080527B4
+ mov r2, r8
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, sp
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0xF
+ bl Print
+ mov r3, r8
+ ldrb r1, [r3, 0x11]
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ ldr r4, _080527B8
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r0, r8
+ ldrb r1, [r0, 0x12]
+ ldr r0, [sp, 0x84]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r2, r8
+ ldrb r1, [r2, 0x13]
+ ldr r0, [sp, 0x88]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r3, r8
+ ldrb r1, [r3, 0x14]
+ ldr r0, [sp, 0x8C]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r0, r8
+ ldrb r1, [r0, 0x15]
+ ldr r0, [sp, 0x90]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r2, r8
+ ldrb r1, [r2, 0x16]
+ ldr r0, [sp, 0x94]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r1, sp
+ ldrb r0, [r1, 0x11]
+ add r3, sp, 0x80
+ ldrb r3, [r3]
+ orrs r0, r3
+ strb r0, [r1, 0x11]
+ mov r0, sp
+ movs r1, 0x7
+ movs r2, 0x11
+ bl Print
+_080527A4:
+ add sp, 0x98
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080527B4: .4byte gUnknown_083F7EB8
+_080527B8: .4byte gUnknown_082165F8
+ thumb_func_end sub_8052530
+
+ thumb_func_start sub_80527BC
+sub_80527BC: @ 80527BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ ldr r0, _08052844
+ ldrb r0, [r0]
+ add r6, sp, 0x48
+ cmp r0, 0x1
+ bne _08052814
+ movs r1, 0
+ ldr r3, _08052848
+ movs r2, 0
+_080527D6:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9
+ bls _080527D6
+ bl Random
+ ldr r1, _0805284C
+ strh r0, [r1]
+ ldr r1, _08052850
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08052844
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r4, 0
+ ldr r2, _08052854
+ movs r1, 0
+_08052800:
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xC7
+ bls _08052800
+ ldr r1, _08052858
+ movs r0, 0
+ strb r0, [r1]
+_08052814:
+ movs r4, 0
+ movs r0, 0x1
+ mov r8, r0
+ ldr r7, _08052858
+ ldr r5, _08052850
+ ldr r1, _08052854
+ mov r9, r1
+ ldr r3, _0805285C
+_08052824:
+ str r3, [sp, 0x54]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 31
+ mov r1, r8
+ ands r0, r1
+ ldr r3, [sp, 0x54]
+ ldrb r1, [r7]
+ cmp r0, r1
+ bne _08052860
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ b _0805287A
+ .align 2, 0
+_08052844: .4byte 0x020297dc
+_08052848: .4byte 0x03004840
+_0805284C: .4byte 0x03004830
+_08052850: .4byte 0x020297e0
+_08052854: .4byte 0x02000000
+_08052858: .4byte 0x020297e8
+_0805285C: .4byte 0x020297e4
+_08052860:
+ ldr r2, [r3]
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r1, [r5]
+ strh r1, [r0]
+ adds r2, 0x1
+ str r2, [r3]
+ movs r0, 0
+ str r0, [r5]
+ ldrb r0, [r7]
+ mov r1, r8
+ eors r0, r1
+ strb r0, [r7]
+_0805287A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x63
+ bls _08052824
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r0, _08052900
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x8
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ ldr r1, _08052904
+ mov r0, sp
+ bl StringAppend
+ ldr r0, _08052908
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x8
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ ldr r1, _0805290C
+ mov r0, sp
+ bl StringAppend
+ ldr r4, _08052910
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ bne _080528E8
+ ldr r0, _08052914
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x10
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ movs r0, 0
+ strb r0, [r4]
+_080528E8:
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0xF
+ bl Print
+ add sp, 0x58
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052900: .4byte 0x03004830
+_08052904: .4byte gUnknown_082165F8
+_08052908: .4byte 0x020297e0
+_0805290C: .4byte gUnknown_08216600
+_08052910: .4byte 0x020297dc
+_08052914: .4byte 0x020297e4
+ thumb_func_end sub_80527BC
+
+ thumb_func_start sub_8052918
+sub_8052918: @ 8052918
+ push {r4-r6,lr}
+ sub sp, 0x4C
+ ldr r2, _08052A88
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ ldr r4, _08052A8C
+ cmp r0, 0
+ beq _0805294C
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ ldr r1, _08052A90
+ cmp r0, r1
+ ble _08052946
+ movs r0, 0xFA
+ lsls r0, 2
+ strh r0, [r4, 0x1A]
+_08052946:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_0805294C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _08052972
+ ldr r1, _08052A94
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0805296C
+ ldr r0, _08052A98
+ strh r0, [r4, 0x1A]
+_0805296C:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_08052972:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08052992
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bge _0805298C
+ movs r0, 0x3
+ strb r0, [r4]
+_0805298C:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_08052992:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080529B4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080529AE
+ movs r0, 0
+ strb r0, [r4]
+_080529AE:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_080529B4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080529E4
+ adds r3, r4, 0
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ adds r5, r3, 0x1
+ adds r1, r5
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080529DE
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, r5
+ movs r1, 0x2A
+ strb r1, [r0]
+_080529DE:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_080529E4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08052A16
+ ldr r3, _08052A8C
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ adds r4, r3, 0x1
+ adds r1, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2A
+ ble _08052A10
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+_08052A10:
+ ldrb r0, [r3, 0x10]
+ adds r0, 0x1
+ strb r0, [r3, 0x10]
+_08052A16:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08052AA0
+ movs r6, 0
+ movs r4, 0
+ ldr r5, _08052A8C
+_08052A26:
+ adds r0, r5, 0x1
+ adds r2, r4, r0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x2A
+ beq _08052A64
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r4, 1
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x4
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ strh r0, [r1]
+ add r0, sp, 0xC
+ lsls r1, r4, 4
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ adds r1, 0x85
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_804E844
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08052A26
+_08052A64:
+ cmp r6, 0x1
+ bls _08052A9C
+ add r0, sp, 0xC
+ adds r1, r5, 0
+ adds r1, 0x8
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0x11
+ ldrh r4, [r5, 0x1A]
+ str r4, [sp]
+ bl sub_8050744
+ ldrb r0, [r5, 0x10]
+ adds r0, 0x1
+ strb r0, [r5, 0x10]
+ b _08052AA0
+ .align 2, 0
+_08052A88: .4byte 0x03001770
+_08052A8C: .4byte 0x03000560
+_08052A90: .4byte 0x75300000
+_08052A94: .4byte 0xfffffc18
+_08052A98: .4byte 0x00007530
+_08052A9C:
+ movs r0, 0xFF
+ strb r0, [r5, 0x8]
+_08052AA0:
+ ldr r4, _08052AE8
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _08052AB0
+ bl sub_8052530
+ movs r0, 0
+ strb r0, [r4, 0x10]
+_08052AB0:
+ ldr r3, _08052AEC
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08052AD4
+ ldr r2, _08052AF0
+ ldrb r0, [r2]
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08052ADC
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r0, _08052AF4
+ str r1, [r0]
+ ldrh r0, [r3, 0x20]
+ bl SeedRng
+_08052AD4:
+ ldr r0, _08052AF0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08052AE0
+_08052ADC:
+ bl sub_80527BC
+_08052AE0:
+ add sp, 0x4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052AE8: .4byte 0x03000560
+_08052AEC: .4byte 0x03001770
+_08052AF0: .4byte 0x020297dc
+_08052AF4: .4byte 0x020297e0
+ thumb_func_end sub_8052918
+
+ thumb_func_start sub_8052AF8
+sub_8052AF8: @ 8052AF8
+ push {lr}
+ bl sub_8052918
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8052AF8
+
+ thumb_func_start ShowBerryBlenderRecordWindow
+ShowBerryBlenderRecordWindow: @ 8052B14
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x20
+ movs r0, 0x6
+ movs r1, 0x3
+ movs r2, 0x17
+ movs r3, 0x10
+ bl DrawDefaultWindow
+ ldr r0, _08052BBC
+ movs r1, 0x8
+ movs r2, 0x4
+ bl Print
+ ldr r0, _08052BC0
+ movs r1, 0x8
+ movs r2, 0x9
+ bl Print
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08052BC4
+ movs r7, 0x90
+ lsls r7, 20
+ ldr r1, _08052BC8
+ adds r6, r0, r1
+ movs r0, 0
+ mov r9, r0
+_08052B50:
+ ldrh r4, [r6]
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r1, r0, 0
+ mov r0, sp
+ movs r2, 0x12
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r5, r0, 0
+ mov r1, r9
+ strb r1, [r5]
+ movs r0, 0xAD
+ strb r0, [r5, 0x1]
+ strb r1, [r5, 0x2]
+ adds r5, 0x3
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __umodsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ ldr r1, _08052BCC
+ bl StringAppend
+ lsrs r2, r7, 24
+ mov r0, sp
+ movs r1, 0xF
+ bl Print
+ movs r0, 0x80
+ lsls r0, 18
+ adds r7, r0
+ adds r6, 0x2
+ movs r1, 0x1
+ add r8, r1
+ mov r0, r8
+ cmp r0, 0x2
+ ble _08052B50
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052BBC: .4byte gUnknown_0842C2E6
+_08052BC0: .4byte gUnknown_0842C30A
+_08052BC4: .4byte 0x02025734
+_08052BC8: .4byte 0x0000096c
+_08052BCC: .4byte gUnknown_0842D4C5
+ thumb_func_end ShowBerryBlenderRecordWindow
+
+ thumb_func_start sub_8052BD0
+sub_8052BD0: @ 8052BD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _08052C1C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08052BF6
+ ldr r0, _08052C20
+ bl fanfare_play
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08052BF6:
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _08052C16
+ ldr r0, _08052C24
+ ldr r0, [r0]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8075474
+ adds r0, r5, 0
+ bl DestroyTask
+_08052C16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C1C: .4byte 0x03004b20
+_08052C20: .4byte 0x0000016f
+_08052C24: .4byte 0x03004854
+ thumb_func_end sub_8052BD0
diff --git a/iwram_syms.txt b/iwram_syms.txt
index 109e02501..954308adb 100644
--- a/iwram_syms.txt
+++ b/iwram_syms.txt
@@ -8,6 +8,8 @@ gPlayTimeCounterState = 0x300057C;
gLocalTime = 0x3004038;
+gRngValue = 0x03004818;
+
gUnknown_3004820 = 0x3004820;
word_3004858 = 0x3004858;
diff --git a/ld_script.txt b/ld_script.txt
index ed3aa449d..567a9768e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -66,6 +66,8 @@ SECTIONS {
src/link.o(.text);
src/rtc.o(.text);
asm/rom3.o(.text);
+ src/rng.o(.text);
+ asm/rom_8040EB4.o(.text);
src/play_time.o(.text);
asm/rom4.o(.text);
src/palette.o(.text);
diff --git a/src/rng.c b/src/rng.c
new file mode 100644
index 000000000..e0a3e6bfb
--- /dev/null
+++ b/src/rng.c
@@ -0,0 +1,14 @@
+#include "global.h"
+
+extern u32 gRngValue;
+
+u16 Random(void)
+{
+ gRngValue = 0x41c64e6d * gRngValue + 0x00006073;
+ return gRngValue >> 16;
+}
+
+void SeedRng(u16 seed)
+{
+ gRngValue = seed;
+}