summaryrefslogtreecommitdiff
path: root/asm/rom_8040EB4.s
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2016-07-25 00:56:03 -0500
committerYamaArashi <YamaArashi@users.noreply.github.com>2016-07-24 22:56:03 -0700
commit8459f924d10dc67402e14f64e5332cad30c66d27 (patch)
tree274d73455af87997ae417796271adf4d3ab26c93 /asm/rom_8040EB4.s
parent3acf71df203aa69503c3a460a9200a359010512d (diff)
decompile rng functions (#25)
Diffstat (limited to 'asm/rom_8040EB4.s')
-rw-r--r--asm/rom_8040EB4.s35453
1 files changed, 35453 insertions, 0 deletions
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